2017-02 – Гаваї, частина 3

Попередні частини:

 

Ну що ж, цього разу про спортивну складову нашого відпочинку на Гаваях.

Бути у славетній Коні і не спробувати побігати, покататися чи поплавати там де це роблять найсильніші тріатлети планети було б якось зовсім не правильно, а ми навість спробували зробити усі три види :)

 

Біг

Якщо бути чесним то за всі дні відпочинку ми побігали лише один раз. Та і то там кілометрів 8 може набралося і все.

Я вже раніше згадував що тут дуже пече сонце і вже о 8-й ранку стає тепло як вдень. А об 11-й вже занадто спекотно шкірі через те саме сонце.

І хоча більшість доріг тут пласкі я якихось страшних перепадів висот нема проте нема і краєвидів крім як лавової пустелі з обох боків дороги (це там де біжать учасники Iron Man), ніякого затінку і взагалі мало чим можна себе розважити та на що відволікатися під час бігу.

Головна порада – крем від сонця до, після та впродовж бігу.

 

Велосипед

Ось це вже було цікавіше. Спочатку ми з Оленою вибрали маршрут де був хоч якийсь підйом, а дорога, хоча і дуже вузенька йшла звивами і на ній був затінок від дерев.

Але якщо говорити про маршрут того ж таки Iron Man то там дорога перші 90 км ледь помітно йде вгору, а потім назад. До того ж дорога та майже не має поворотів і геть не має ні краєвидів ні затінку. Тому так само життєво просто важливо постійно мазатися кремом від сонця.

Варто сказати що велодоріжки як такі тут практично відсутні, але на швидкісних трасах та дорогах є дуже широка обочина – така широка що іноді навіть ширша за смугу для машин. А там де узбіччя нема то там можна їхати по дорозі і машини мають зважати на це.

Що стосується вітру то якщо їхати вздовж океану то варто очікувати на не надто сильний боковий вітер, але особливою проблемою це не має бути – сонце та нудьга є набагато більшими складнощами.

 

Сам я потім покатався ще на другий день перед тим як повернути велосипед у прокат. Ми брати Trek Madone 4.7 мені ($45 на день) та Felt F5 ($40) Олені. “На день” означає забрати після обіду попереднього дня, а повернути до обіду наступного дня. Тому теоретично можна було кататися 3 дні.

Ми з собою повезли шоломи, педалі та вело-туфлі. Ну і звісно вело-одяг різний, окуляри, пляшки. Насправді велопрокат це дуже зручна штука і будемо так і надалі робити в місцях в які будемо їхати хоча б на кілька днів.

На цій дорозі про яку я все згадую постійно є велосипедисти і бігуни яким або так само цікаво просто подолати фрагмент траси, або які готуються до майбутніх змагань.

 

Плавання

Ну і звісно ми не могли не спробувати поплавати там де тріатлети стартують Iron Man і де виходять з води на берег – на затоці у самому центрі міста.

 

Якщо ви ніколи не плавали у океані то вам треба знати 2 основні речі: постійні хвилі і у кілька разів солоніша ніж морська вода (порівнюю з Чорним Морем).

У воду можна зайти з берега – є малесенький пляжик, можна і з пірса стрибнути. У воді так само є постійно плавці яким цікаво спробувати саме цю затоку і саме цю воду.

 

Якщо плануєте самі плавати довгу дистанцію то дуже рекомендую яскравий поплавок прив’язати до ноги (зараз такі продаються для пловців) та яскраву шапочку. А ще краще мати у супроводі когось на дошці чи каяку.

Саме у цій затоці вода прозора і не дивлячись на кількість людей та човнів дуже добре видно рибок та корали на дні.

І як тільки ми почали пливти так одразу і зрозуміли що хвилі будуть проблемою. Причому пливти проти них виявилося легше. Воно кидає вгору-вниз, попереду нічого не видно за наступною хвилею крім самої цієї хвилі… та навіть людей за кілька метрів вже не видно за хвилями. Тому вчиться драфтити якщо ще не вмієте – це буде дуже суттєва економія на плаванні. І через те що постійно почуваєш оці хитання вгору-вниз просування вперед геть не відчувається і виникає враження як у вісні коли біжиш, а не рухаєшся, тільки тут з плавання. Дуже сильно вибиває з себе – треба заспокоїтися, не витрачати більше ніж необхідно сил і продовжувати спокійно і рівномірно працювати ігноруючи почуття відсутності швидкості.

 

Але коли я повернувся пливти назад то стало набагато гірше – тепер мене не просто піднімало-опускало, а прямо таки катало як на качелях. І дуже швидко мене почало вже нудити. А там і до паніки не далеко… І знову – зосередженість та концентрація на одній цілі допомогає подолати цей стан.

Проте з води я вийшов знесилений усього після 1 км плавання і зайняло кілька хвилин щоб прийти до тями хоч якось. Тому готуватися до такого запливу варто дуже серйозно десь в подібних “океанських” умовах.

2017-02 – Гаваї, частина 2

Перша частина – 2017-02 – ГАВАЇ, ЧАСТИНА 1

 

Ну що ж, продовжимо…

 

Наземні тварини

Не дивлячись на те що острів як я писав можна вважати доволі пустельним все ж таки на ньому та навколо є деяка живність. Перше що ми помітили це дикі кури (мабуть це вони фазанами називаються). Спочатку ми подумали що то чиїсь, але чому ж вони так далеко від будь-якого житла і чому їх багато навколо? Потім зрозуміли що то дикі тварини. Пробували фотографувати, але з машини хороших фоток так і не вийшло.

Розмірами вони менші за свійських, але дуже схожі. Півні принаймні о 6-й ранку починають навколо волати як звичайні :)

 

Також одного разу коли каталися на велосипеді і зупинилися перепочити помітили дику свиню. Вона дуже невеличка, коротша за свійську і уся одноманітного темно-сірого кольору. Нам потім сказали що їх насправді багато і що вони наносять шкоду садочкам та фермам і є спеціальні служби винищувачі свиней які зачищають від них територію.

Причому вони такі непомітні що ми ту одну на фоні дерев ледь бачили, а на фото так її взагалі не видно.

 

Ще тут є дикі кози. Живуть невеличкими родинами (2-3 козенята, мама, тато). Дуже на вигляд акуратні, маленькі і від них зовсім не смердить. Такі що хоч зараз на виставку – коричневі, сірі.

 

Морські тварини

А ще тут звісно є морські тварини. В один з днів ми поїхали рано вранці на дикий пляж, дорогу до нього було закрито до 9 ранку (ми приїхали в 6) і пробігши якісь 2.5 км ми мали нагоду прогулятися абсолютно вільними від людей пляжами. Але головне що на одному з них ми побачили двох тюленів що спали на пісочку. Трошки їх пофотали і пішли далі.

А потім вже побачили ще одного тюленя навколо якого науковці вже виставили заборчик щоб його люди не турбували. Вони нам і сказали що на усіх Гаваях лишилося лише 4 тюлені і їх старанно охороняють. Ну а ми їх розповіли про тих двох що бачили раніше і вони побігли і їх охороняти :)

 

Ми собі сіли на березі дивитися на океан, аж тут на нас з нього почав кричати (в прямому сенсі – роззявляв загрозливо рота і орав на нас) четвертий тюлень. А потім попер на нас з води. Ми трохи відійшли щоб показати що не хочемо конфлікту, а він після того продовжував плавати вздовж берега туди-назад і патрулювати території. Нажаль цього четвертого ми не придумали сфоткати, а потім було вже піздно :(

Ось так нам поталанило побачити усіх гавайських тюленів.

 

В інший день ми поїхали плавати з дельфінами. Вийшли у океан на невеличкому човнику, знайшли де кружляють дельфіни і почали плавати над ними. Гавайські дельфіни менші за флоридських (до 1.5 метри) і геть не приручаються, тому єдина нагода їх побачити це саме з океану.

А ще ми дізналися що ці дельфіни полюють усю ніч, а потім пливуть у теплішу воду до берега спати. Там вони вимикають половину мозку (що також означає що у них вимикається одне око і локатор) і у такому стані плавають по великому колу. Навіть у такому стані вони занадто швидкі щоб ганятися за ними, до того ж вони дуже чутливі і коли наближаєшся до них до швидко зникають. Але якщо вести себе на поверхні спокійно і не удавати з себе Майкла Фелпса то можна побачити як вони пропливають прямо під тобою і кожні 200-300 метрів йдуть на гору щоб ковтнути повітря. Деякі навіть при цьому роблять стрибки у повітрі.

 

А ще там були малесенькі дельфінчики поруч з мамами :) Шкода тільки що дельфіни теж вимирають і якщо колись їх у зграях було по кілька сотень то зараз це десятки.

 

Також доволі багато різноманітної і яскравої риби. Особливо красиво якщо плавати там де мілкіше і є корали. Чорні, жовті, сині. прозорі, … Але майже всі корали вже мертві і вся ця красота швидко зникає теж :(

 

Також нам вдалося побачити черепах що спали на сонці – їх теж старанно охороняють.

 

Чекайте на продовження…

2017-02 – Гаваї, частина 1

Кілька років тому ми вже бували на Гаваях, але того разу то був острів Мауі, а зараз – Великий Острів (Big Island), або Кона.

І далі трошки розкажу про усяке різне…

 

Перельот

Політ з Сіела на Кону в одну сторону тривє близько 7 годин, назад – 6 годин. Прямого рейса на Кону нема, тому треба робити пересадку або на Мауі, або в Гонолулу.

 

Перевозить компанія Hawaiian у яких доволі страндартні за комфортністю сидяння в літаках та їжа, але які пожлобилися на відео. Ми вирішили що не будемо купувати фільми за $9, а безкоштовно вони нічого не показували, тож беріть з собою книги, планшетки, лептопи і таке інше щоб себе розважати.

З самих літаків нічого не видно – внизу одноманітний океан часто закритий хмарами. Лише між островами можна зловити мить коли видно берег.

Що стосується ціни треба розраховувати на щось в районі $1200 на людину  на двох туди і назад.

 

Big Island або Кона

Сам Великий Острів на відміну від інших островів дуже слабо заселений. Тобто людей тут живе багато, але і розміри острова значні у порівнянні з іншими островами. І щоб усе на ньому побачити їхати сюди треба на кілька тижнів. Думаю об’їхати весь острів по колу машиною займе точно не менше доби.

 

Сам острів у більшості є неродючим полем застиглої лави по якому прокладено дороги та зустрічаються рідкі клаптики ферм та рослинності.

Острів знаменитий в тому числі найвідомішим тріатлоном Iron Man на який мріють потрапити усі тріатлети колись (про нашу спортивну активність напишу згодом). Крім масивного вулкану на півдні (в ньому до речі досі булькає лава на яку можна подивитися з гелікоптера) та джунглів на сході більшість острова пласка.

Пляжів тут небагато, а ті що є дуже сильно забито людьми. Та навіть цивілізовані пляжі мають не чистий пісок і здоровенне каміння у воді і на пляжах тут зустрічається постійно. Чистеньких рівненьких і неглибоких пляжів тут нема – за цим треба їхати на Мауї.

 

Що ж стосується диких пляжів то до них треба їхати якось чималенькою машиною (ми рентували Nissan Armada, про машину згодом), або пробиратися лавовими полями.

Ось ці лавові поля це щось на зразок… уявіть собі товстелезний шар асфальту який старанно покришили і перемішали, а кожен край кожного камінчика загострили. Порізатися об таке каміння дуже легко просто торкнувишись його, а якщо кине на такий хвилями то можна дуже серйозно зтекти кров’ю. На полях нічого не росте – за кілька сот років на них лише почала з’являтися рослинність, а там де люди намагаються щось вирощувати там усе старанно вкривають гноєм і стружками. Хоча там де таки щось росте усе дуже пишне на яскраве.

 

Погода

Погода взимку (це був лютий місяць) дуже тепла – доходила до +30 за Цельсієм. Це наче не так і погано, але сонце пече надзвичайно сильно і яскраво і займатися якоюсь фізичною активністю вже в 11 ранку надзвичайно складно. Доводиться ховатися у приміщенні до 3 дня. Проте темнішати починає в 5:30 і вже через пів-години нічого геть не видно.

До того ж небо майже постійно чисте, а як з’являються з океану якісь хмаринки то їх швидко відносить вітром.

Мені сказали що влітку насправді не набагато жаркіше, лише вологість підвищено трохи.

 

Океан

Знову ж таки на відміну від Мауї океан тут доволі неспокійний і на пляжах навіть зустрічаються доволі серйозні хвилі. Тому їхати на цей острів щоб повідмокати у воді не варто. До того ж дно круто йде вниз усього за кілька кроків і ви або стоїте по коліна у воді, або вже не достаєте дна. Та і як я згадав вище у воді і на пляжах повно каміння усіх можливих розмірів.

 

Житло

У будь-якому містечку повно готелів, готелі часто розташовано близько до пляжу, а ціна за ніч починається десь з $80, але більш реальна ціна – $120. Проте за приблизно таку ж ціну завжди можна знайти і приватне житло. Ми такі і зробили. Жили у частині великого будинку з власним виходом, садом, басейном та джакузі. До того ж були у відносній тиші.

Містечка як я вже казав тут відносно невеликі, але в принципі в них є все що може знадобитися для активного відпочинку (а саме за таким і варто їхати на цей острів): великі (Costco, Wallmart) та маленькі магазини, кафешки/бари/ресторани, прокати спортивного обладнання і фірми що організовують різноманітні тури.

 

Враховуйте що зима тут є туристичним сезоном через м’якішу погоду, тому влітку може бути дешевше. Проте під час проведення Iron Man ціни злітають вгору – приїздить багато атлетів що готові платити за право бути тут.

Далі буде…

Продовження:

Кріотерапія – лікуємося холодом

Більш детальну інформацію про кріотерапію можна знайти у вікіпедії, я ж вам розкажу коротко про наший досвід.

Колись давно, ще багато років тому я по телебаченню бачив сюжет про кріокамеру десь в Києві і про її лікувальні можливості. Ну побачив і забув – ні їздити у Київ, ні навіть живучи у Києві я ту камеру шукати навіть не став.

І ось нещодавно косметолог якого Олена іноді відвідує порадила спробувати кріотерапію – недалеко від нас з’явилася така точка. Ми вирішили що можна і спробувати раз воно під боком – хоч будемо знати що воно таке.

Наскільки я розумію існують два різні типи камер: перша – закрита в якій  треба перебувати у шапці, спеціальних окулярах та масці щоб не пошкодити очі та зуби. Другий тип – більш компактні камери, або просто кабінки де використовують дуже холодний і важкий газ (важкий щоб він не розлітався, а навпаки сідав вниз де його можна було б збирати назад). Як правило це щось з азотом.

 

Так от ті сеанси які ми відвідуємо саме і проводяться у азотних кабінках. При цьому висоту платформи можна міняти так що голова і шия в холоді не опиняються.

Перший пробний сеанс триває 2 хвилини і температура на ньому десь -120 по Цельсію. Просто щоб зрозуміти чи не зненавидите ви всю цю кріотерапію. Але як правило людям подобається і вони продовжують. Наступні (“нормальні”) сеанси тривають 3 хвилини і температуру на них встановлюють від -140 до -160 по Цельсію. При цьому на руки одягають теплі щільні рукавиці, на ноги – шкарпетки. Роблять це тому що пальці якраз дуже легко відморозити.

 

Для чого все це? Сеанс кріотерапії призводить до різкого звуження маленьких судин близьких до шкіри і різкого відливу крові в середину тіла. Після закінчення сеансу кров з несамовитою швидкістю повертається назад. По-перше, ці процеси руйнують і створюють заново велику кількість дрібних судин і суттєво покращують їх стан. Також це процес має лікувальний ефект для шкіри. Але є і інші ефекти (і треба сказати далеко не всі їх вивчено і список не повний) як, наприклад: зміцнення імунітету, лікування запалень та легких травм, зняття болей у суглобах, нормалізація тиску, збільшення енергійності, викид “рідких” гормонів завдяки яким зменшується апетит та з’являється почуття щасті і багато чого ще.

 

Які почуття? Почуття доволі незвичні і геть не схожі на те як просто мерзнути – за 3 хвилини встигає замерзнути лише шкіра та кілька міліметрів м’язів та жиру під нею. Першу хвилину здається що усе тіло намазали холодною олією – не надто приємно, але нічого страшного. На другій хвилині тіло починає автоматично труситися і контролювати цей процес не можна – організм має якісь свої вбудовані механізми які і задіює. А після того вже починаються неприємні почуття – шкіра починає боліти дуже сильно і уся зразу, схоже на те як добряче вдарили дрючком, але одразу по кожному квадратному сантиметру шкіри. При цьому в районі ліктів та колін болить найсильніше.

 

А після кабінки уся шкіра стає яскраво червоною і під нею чітко видно різні мікротравми (синці) які зовсім не було видно до того. Через дуже короткий час з’являється енергійність, хочеться бігати і стрибати, а шкіру і навіть деякі м’язи починає сильно (хоча і приємно) колоти голками. Усі ефекти повністю зникають хвилин за 10.

 

Коротше як буде можливість то спробуйте.

Які протипоказання? Якщо у вас проблеми з судинами, дихальними шляхами, застуда чи вагітність то кріотерапія не для вас.

Перший зимовий похід

 

У січні цього року ми сходили у наший перший похід зимою (ходили на снігоступах), вперше ночували на снігу у палатці…

 

Сам похід був біля гори Святої Хелени – це на кордоні нашого штату та Орегону, машиною 3.5 години.

Чому саме в такий похід? Цікаво було спробувати як воно на снігоступах, цікаво було переночувати у палатці на холоді. Також сподобалося те що у нас був гід який розказував і пояснював що і як взимку робити. До того ж нам поталанило і в нашій “групі” були лише ми з Оленою. Ну і гід звісно.

 

Спеціальний одяг і обладнання включали в себе: більші рюкзаки (рекомендовано 60+ літрів), термобілизна, флісові кофти і шапки, теплі рукавиці, теплі шкартпетки, непромокаємо похідні ботинки (мої Vasque St. Elias GTX підійшли, але краще спеціальні зимові), непродуваєму куртки і штани, гейтори, окуляри, надійні пляшки для води, налобний ліхтарик, похідна плитка, зимовий спальний мішок, теплий килимок (вирішили з Therm-a-Rest Z Lite Sol Mattress не ризикувати і купили спеціальні на мінусові температури). Компанія у якої ми купили подорож надала нам снігоступи і їжу в дорогу.

Виїхали рано вранці, погода помітно псувалася, було холодно. Добиралися до парковки більше 2 годин, останні хвилин 30 по дорозі повністю занесеній снігом. Там вже навчилися одягати і регулювати снігоступи, взяли санчата з палатками та їжею і потопали.

 

Дуже швидко з’ясувалося що коли йдеш у снігоступах те що широко треба ставити ноги втомлює швидше ніж звичайна ходьба. А коли втомлюєшся то перечіпаєшся через свій же снігоступ і падаєш, а встати не так і просто – треба спочатку ноги і ступні у правильну позицію вивернути. До того ж швидко при ходьбі нагріваєшся і щоб не змокнути потрібно мати при собі тоненьку шапочку та рукавички.

Взагалі на холоді одна з найгірших речей – це змокріти від поту. Коли зупинишся уся волога буде красти тепло дуже сильно. Тому на зимових куртках роблять спеціальні клапани які при необхідності можна відкривати щоб випускати надмірне тепло. Ну і звісно темп треба тримати повільний. Взагалі пройти по непогоді у снігоступах кілька кілометрів це ще те тренування.

 

А чи не легше було б без снігоступів? Там де хоч якусь доріжку протоптано може і легше, але там де ми ходили, та навіть навколо палаток нога іноді провалювалася вище коліна. Так ходити неможливо, та ще й навантаженим рюкзаком.

По дорозі ми зустріли групу яка поверталася з гори – вони так і не змогли почати сходження на неї через сильний вітер який не давав їм йти вперед. Через той самий вітер (внизу він був хоч і сильний, але не такий божевільний) ми вирішили ставити палатки у лісі, а не на гірці з якої мав би відкриватися красивий вид. Виду все одно не було – сніг і туман закривали все навколо.

Табір який ми заснували далі до самого кінця зими будуть використовувати інші групи, тож ми були першопроходьці.

 

Спочатку походили колом – затрамбували пласку площадку, вирівняли де треба лопатами. Далі поставили і навчилися закріпляти палатки на снігу – кільчата елементарно затрамбовують глибоко у сніг під гострим кутом.

Потім між деревами натягнули “дах” і під ним викопали кухню в якій можна було сидіти і стояти захищеним від вітру. Там ми і гріли воду на плитках для їжі, чаю і сну.

Після встановлення табору спробували вже без рюкзаків пройти далі, але вітер і непогода не дали нам пройти і пів-кілометра.

Повернулися в табір, попили чаю, от вже і 5 вечора, ніч. Нагріли воду у пляшки щоб покласти у спальники і розійшлися спати.

 

Як на мене то спати було хоча і не звично, проте і не холодно. Звісно ми були у спальниках, коконах, штанах, кофтах, додаткових шкарпетках і шапках. А от Олена спала навіть у куртці. Дуже важливо щоб для сну між тілом і снігом було достатньо шарів – дуже сильно чути як тепло втрачаєш з тих зон що найближче до землі. Мені навіть довелося одягнути ще одну кофту щоб захистити поперек.

А Олені було холодно спати на спині тому вона спала на боку що через пару днів проявило себе страшенним болем у ребрах – перевтомлені і переохолоджені м’язи примусили її відвідувати терапевта і масажистів. Вже наче все минулося, але важливо знати що дуже важливо щоб було тепло і м’яко уві сні.

 

Ще важливо знати що в палатці від дихання та нанесеного снігу всередині збирається багато конденсату – усі стіни палатки і спальні мішки ззовні було вкрито росою. Тому треба усі речі в рюкзаках зберігати у якихось непромокних чохлах, і більшість речей треба мати у кількох екземплярах. Також у багатоденних походах палатку і спальники щоранку старанно провітрюють і вивертають, інакше наступна ніч буде дуже холодною.

 

На ранок Олена вирішила залишитися в палатці, а ми з гідом спробували пройтися знову. Погода була ще гірша – ми навіть не дійшли до тієї точки що дісталися минулося дня. Тому вирішили збиратися і їхати додому.

Дорога назад по лісі була чудовою і лише по дорозі назад ми звернули увагу на те як ліс захищає від вітру і снігу.

 

Ну а далі усього через кілька годин машиною ми були вже вдома де рятувалися гарячою ванною і супом.

Усі світлини можна подивитися тут – https://onedrive.live.com/?authkey=%21AIfOnxLDpThWPXU&id=B21290194214A37D%21299918&cid=B21290194214A37D.

 

 

Чим я займаюся в GoDaddy та що таке eCommerce

Якось я ніколи і не розказував особливо чим я займаюся в GoDaddy у своїй поточній команді. Не розказував тому ще це не так цікаво як bing чи Windows Phone з точки зору розпізнавання та гучності імені проекту. Але тим не менше є певні складні задачі (хоча і зовсім іншого плану) які доводиться розв’язувати майже щодня.

Також варто зауважити що я не знаю визначення електронної комерції як її дають словники та енциклопедії тому те що я далі розказую скоріше за все не співпадає з якимось академічними визначеннями та тлумаченнями.

Отже коли я прийшов в GoDaddy одна з речей яка дуже привабила мене це була обіцянка того що писати коду я зможу стільки скільки в мене буде бажання це робити. Історично компанія працювала над усіма своїми проектами в такій манері щоб зробити продукти доступними для покупки якомога скоріше і софт який розробляли програмісти не вважався головною цінністю компанії як це є в софтверних фірмах – головною цінністю були саме продукти які можна продавати. Після того як компанія почала приносити більше одного мільярда прибутків на рік нею зацікавилися великі інвестори, викупили частку у власника (до того компанія була у приватній власності) і найняли менеджмент який мав би вивести компанію на новий рівень – до десятків мільярдів прибутку на рік. Нові власники подивилися на стан речей і жахнулися – усі можливі ОС, фреймворки, мови програмування, СУБД і так далі. І звісно дуже мало процесів і контроль якості лише умовний. Все це треба було довести до якогось ладу. І головна причина того що з’явився офіс GoDaddy у нас в тому що тут можна наймати досвідчених людей які розуміють і знають як розроблюється та супроводжується програмне забезпечення (а не просто пишеться код) і їх можна переманити з гігантських Microsoft та Amazon.

Команда в яку я потрапив як ви вже мабуть зрозуміли називається eCommerce. Вірніше це кілька команд зараз. Коли я лише прийшов уся компанія переходила на agile, двотижневі ітерації і усі супутні процедури. Чим же займається eCommerce? Для того щоб щось продавати треба мати як мінімум список речей доступних для продажу з їх цінами. Це так званий каталог. Але не думайте що тут достатньо буде таблички в базі даних з переліком продуктів та цінами. Нюансів багато, назву лише декілька. По-перше, не усі продукти доступні у всіх країнах. А якщо і доступні то їх ціна та конфігурація скоріше за все є різною для різних країн. Потім, якщо ви подивитеся на наш сайт то побачити що багато продуктів доступні у різних варіаціях (наприклад базова, стандартна, професійна і так далі). Деякі продукти мають розширення або доповнення що можна придбати разом з цими продуктами і які не можна придбати самі по собі. До того ж набір характеристик у продуктів різний. Одне діло мати електрону пошту на кілька тисяч адрес, а інше – віртуальний хостінг де рахунки в кінці періоду складаються з того як було використано процесор, пам’ять, диск і так далі. Також придбані продукти можна за часом апгрейдити чи даунгрейдити – тобто переходити на потужнішу чи простішу версію. І те які способи апгрейду та даунгрейду доступні теж треба зберігати у якійсь формі. Тобто каталог це продукти, ціни для різних ринків, модифікації, доповнення до них та дерева апгрейду. Це як мінімум.

Далі у нас є користувачі. Крім відносно простих даних типу адреси та продуктів якими користувач володіє у користувача є перелік методів оплати (банківські рахунки, кредитні та дебітні картки, PayPal і таке інше). Також деякі користувачі мають права доступу до облікових записів інших користувачів. Це можна зробити або через делегування якихось прав, або надавши доступ веб-розробнику який міг би виконувати для користувача роботи зі створення та підтримки сайту. Власне якщо ви хоч колись були задіяні у проекті де треба підтримувати велику кількість користувачів (у нас їх більше 15 мільйонів) то приблизно уявляєте собі що це таке і які задачі типу злиття, блокування і подібних треба автоматизувати.

Ну добре – у нас є каталог продуктів і користувачі з методами оплати, тепер все це треба скласти до купи. Перше це те що називається “корзина” – покупець вибирає все що хоче придбати, ми вираховуємо ціну враховуючи те що деякі продукти йдуть як безкоштовні доповнення, на деякі діють знижки, може було введено код на скидку і так далі. Та ще і податки треба нарахувати в залежності від місця проживання покупця. Це я до того що ціна корзини теж не складається так просто. Але уникнемо усі інші деталі і подивимося що відбувається далі. У деяких випадках ми можемо просто спробувати зняти гроші. І в залежності від методу робимо ми все це дуже по різному. Ось тут я трошки схематично показав як усе це працює для кредитних карток. А це лише один з кількох десятків методів оплати. Навіть якщо не згадувати що для кожного методу способів здійснити оплату теж як правило більше одного в залежності від багатьох факторів. Додам що деякі методі роблять так звану відкладену оплату. Це коли ви комусь типу PayPal кажете “зняти ось скількись грошей”, а він відповідає “думаю що все буде добре, але точно знатиму через пару днів”. Ми це сприймає як сигнал до того щоб надати клієнту продукт навіть якщо остаточний результат нам повідомлять лише пізніше. Ось власне різними методами оплати я і займаюся – працюю в команді яка забезпечує оплату абстрагуючи код від різних методів, країн, валют і типів оплати.

Опустимо ще трохи деталей і уявимо що клієнт придбав якісь продукти і успішно ними користується якийсь час. І ось треба їх оновити. Це теж одна з наших задач – знайти продукти термін дії яких закінчується і повідомити клієнта якщо автоматичне оновлення не дозволено. Якщо ж дозволено то ми самі кладемо відповідні оновлення в корзину. А ці оновлення це не те саме що було куплено спочатку – нам же потрібне саме продовження терміну дії вже купленого продукту, а не такий самий продукт ще раз. Тобто привіт каталог, в тобі ми ще будемо зберігати усі можливі варіанти оновлення для усіх наших продуктів. І ось ми склали цю корзину і пробуємо її оплатити. А тут з’ясовується що нам потрібен PIN-код кредитки чи податковий номер (в залежності від правил які діють на ринку клієнта). І для того щоб усе це працювало без того щоб клієнт мав купувати все вручну ми у методах оплати коли створюємо їх для користувача робимо це таким чином щоб далі можна було виконувати транзакції без залучення покупця. А для кожної з кількох десятків організації з якими ми працюємо для цього є свій протокол та способи досягнення цього. А отже у кожного користувача для кожного методу оплати зберігається якась інформації яка потрібна лише для цього методу.

Ну і ще багато речей я не буду розписувати, але серед них такі як:

  • виявлення користувачів які роблять щось підозріле – послідовно пробують картки вводячи неправильний PIN, роблять багато покупок і відмін і таке інше. Усі подібні випадки мають призводити до блокування такого користувача або методу оплати.
  • повідомляти іншим система про зміни які сталися у користувача, його продуктах (наприклад апгрейд) та методах оплати.
  • відміняти покупки та повертати гроші – це окрема і дуже велика область діяльності.
  • надавати API як внутрішнім так і зовнішнім командам – іншим провайдерам та фірмам які перепродають наші продукти та ми продаємо їхні. Як, наприклад, Microsoft (Office 365), WordPress і так далі.
  • і ще багато-багато усього…

 

Що стосується технічної частини, і це мабуть один з великих викликів. Оскільки система дуже стара (їй більше 10 років) то технології які в ній використовуються вже неймовірно застаріли на сьогодні: COM+ (тобто це Windows), С++, SOAP, MSMQ, IIS, MS SQL. Роки 4 тому була спроба осучаснити все це і не міняючи суттєво платформи – усе що ми маємо обслуговує як я вже сказав вище мільйони клієнтів і проводить транзакції на сотні тисяч доларів на день. Тому не можна все просто взяти та переписати. А через дуже складні схеми в базі даних та потоки даних між компонентами написати нову систему яка працювала б паралельно теж не вийде – в ній доведеться дублювати усе, тобто роботи там на кілька років. Тому зрозуміло що була спроба перейти на C# з C++ та на REST з SOAP, але з часом цю ініціативу було відмінено – дуже багато зусиль для того щоб фактично отримати копію. Зараз ми працюємо над тим як деякі нові компоненти та потоки даних перевести на Java, Linux, Node.js, Hadoop, Docker і подібне. Це дуже цікава і складна інженерна задача – вдосконалити, або навіть переробити систему як працює при цьому не зупиняючи її. Майже як вдосконалювати автомобіль на ходу :)

 

Щодо складності автоматизації електронної комерції то якщо відкинути складність самих технології типу COM то у написанні коду нічого складного нема в принципі (звісно завжди є нюанси). Але складна сама область яку ми автоматизуємо – занадто вже багато в ній кроків, даних і зв’язків. Наскільки багато що розуміти що відбувається у кожному сценарії і як дані куди йдуть та через які компоненти майже неможливо не підглядаючи весь час в діаграми та код тих компонентів. А тому і у разі проблем та помилок дослідження причин теж є не аби яким викликом.

 

 

Колегія виборців, або як обирають президента США

Здається кожного разу хоча б для кількох моїх знайомих стає відкриттям те що в США президента обирають не прямим голосуванням як і те що перемогти може кандидат який набрав менше голосів. Як це можливо? Завдяки колегії виборців.

Щоб пояснити чому і для чого таке буває треба згадати трохи з історії. Саме виникнення США можна відраховувати з того моменту як 13 колоній погодилися разом вийти з під контролю Британської Імперії і спільно діяти захищаючі одне одного. Ось тому на прапорі США 13 смужок, а орел на гербі тримає 13 блискавок.

Що тут важливо так це те що перші 13 штатів і відповідно 13 колоній з яких вони виникли ніколи не мали спільного уряду, а, натомість кожне мали свій власний уряд зі своїм губернатором. Відповідно з оголошенням незалежності вони стали незалежними державами. І коли виникла необхідність якось узгоджувати дії було створено різні міждержавні (тобто федеральні) урядові установи зверху над якими і посадили президента.

Оскільки президент не впливав безпосередньо ні на що в кожному з штатів (і, до речі, слово State означає “держава”), а натомість координував взаємодію між штатами то і обирали його представники штатів, а не населення. Звісно самих представників у теорії обирало населення (в ті часи це були білі чоловіки що володіли приватною власністю) то опосередковано вони таки і обирали собі президента.

Ось уся ця міжштатівська тусовка і називається “колегія виборців”.

Усього президента обирають 538 людей: 100 сенаторів, 435 виборців та 3 представника від Округу Вашингтон (це не штат, а спеціальне утворення для столиці). Виборців між штатами розподілено нерівномірно в залежності від населення штату. Кожні кілька років число для кожного штату коригується і може зменшитися чи збільшитися, але загальна кількість лишається та сама.

Кандидату щоб виграти треба набрати 270, або більше голосів. Фокус в тому що усі штати крім Мейну та Небраски віддають усі голоси виборців за кандидати який набрав більшість у штаті. Тобто якщо в Техасі кандидат отримає 51% голосів мешканців то виборці віддадуть за нього 38. А якщо інший кандидат в штаті Орегон отримає 99% голосів мешканців то виброці віддадуть за нього усього 7 голосів.

Таким чином кандидату достатньо перемогти в 11 з наступних 12 штатів щоб виграти вибори: Каліфорнія, Техас, Нью-Йорк, Флорида, Пенсильванія, Іллінойс, Огайо, Мічиган, Джорджия, Нью-Джерсі та Північна Кароліна. Саме тому активні кампанії кандидати проводять переважно у цих штатах.

Чи можлива така ситуація коли більшість населення проголосувала за одного кандидата, а виграв інший? Так, саме це і сталося на виборах 2016-го і ще чотирі рази до того в історії США. Можна вирахувати якою може бути максимальна невідповідність врахувавши населення кожного штату та кількість виборців від нього, здається на даний момент максимум складає 7%. Можна лише сказати що якби рахували голоси населення в цілому (це називається “прямі вибори”) як в Україні то перемогла б Клінтон. Але Трамп виграв у ту гру в яку і треба було грати, тому ніяких нарікань.

Звісно система постійно критикується, але у неї є і захисники… Тут не буду вдаватися в деталі, та і чесно кажучи сам не надто добре їх знаю, тому якщо цікаво – читайте самі починаючи з https://en.wikipedia.org/wiki/Electoral_College_(United_States).

У мене все.

Про те як мій знайоми пройшов співбесіду в Гугл

Одразу скажу – ні, це не я, це справді знайомий з яким ми недалеко сидимо одне від одного. Я поки йти нікуди не збираюся, але в майбутньому звісно усе можливо.

Ну так от, ось цей мій знайомий на днях пройшов інтерв’ю в гуглі, отримав офер і переходить до них працювати через пару тижнів.

Звісно ми з ним обговорювали як проходив весь процес, що питали і таке інше. І я згадав що недавно тут у блозі мене питали як проходять інтерв’ю в американських софтверних компаніях, що питають, які вміння очікують. Отже можна знову трошки про це поговорити.

Перше що треба повторити це те що у великих компаніях типу Microsoft, Google, Amazon, тощо вас не беруть за те що ви добре знаєте якусь мову чи якийсь фреймворк. У якихось дуже окремих випадках вас можуть взяти за якісь специфічні знання типу вміння писати компілятори чи менеджер пам’яті в ОС. Але у більшості випадків компанії шукають просто розумних людей які б могли розв’язувати проблеми та знаходити рішення. Бо мови, фреймворки та проекти виникають і зникають, а продукти клієнтам треба продовжувати продавати.

Тому коли ви починаєте процес інтерв’ю з тим же гуглом то не очікуйте що у вас будуть питати знання хоч якоїсь мови чи технології (знову ж таки якщо ви не в команду компілятор/ядро/залізо йдете) і задачі які вам будуть давати можна розв’язувати будь-якою мовою якою вам зручно. Також дуже важливо те що це не процес прийнятий в гуглі в цілому – може бути що у кожної команди чи офіса свій процес, я просто переказую те що почув.

Так ось цей мій знайомий він переважно С++ програміст, місцями щось робив на Java, але ніколи її не вчив. Гумор ситуації в тому що співбесіда проходила в офісі в Кікрланді, а працювати він буде в іншому штаті де і буде його команда. І коли він питав які мови/інструменти і таке інше треба буде використовувати йому відповідали “а звідки ми знаємо? на місці і спитаєш”. Скоріше за все проте буде Java бо це внутрішній проект, ну та то таке. Це я до того щоб в черговий раз повторити що софтверні компанії які знають як писати софт і вміють це робити наймають людей не на задачу чи проект, а в компанію в цілому – тобто людей яких можна буде при необхідності використати будь-де.

Ну а тепер до самого інтерв’ю та питань.

Звісно спочатку було телефонне інтерв’ю де ХР задають питання по своїй якійсь внутрішній анкеті щоб відсіяти зовсім безнадійних. Ну може бути ще інтерв’ю з представником команди що наймає, але оскільки це телефонне інтерв’ю то там або писати код не треба взагалі, або писати щось дуже умовне у вікні чату. Для такого інтерв’ю треба знати основні алгоритми пошуку/сортування/обходу графу і структури даних як вектор, список, бінарне дерево, черга, стек, хеш-таблиця і так далі. Також треба розуміти що таке “О велике”, як воно вимірюється і що означає.

Після проходження телефонного інтерв’ю (називається “скріннінг” – screening) запрошують on site. Тепер інтерв’ю проходять в кімнатах з дошками де інтерв’юери дають задачі, а ви їх розв’язуєте. Усього відбувається 5 інтерв’ю по 45 хвилин кожне з перервою на обід та 15 хвилин відпочинку між зустрічами. За ці 45 хвилин треба зрозуміти задачу, задати уточнюючі питання, знайти рішення, написати його на дошці і обговорити додаткові питання стосовно рішення. Повторюся що оцінюють ваші вміння розв’язувати задачі в принципі і написання 100% працюючого коду не є гарантією найму. Краще не дописати щось чи написати умовно, але показати що ви на шляху до правильного рішення і розумієте усі недоліки, переваги та обмеження рішення яке пропонуєте.

Тепер безпосередньо до задач.

Перша задача така. У нас є сейф з кодом з чотирьох цифр. Кожна наступна введена цифра зміщує введену комбінацію на одну позицію вліво (тобто старша цифра втрачається). Перше питання – якої мінімальної довжини має бути послідовність цифр щоб гарантовано відкрити сейф? Ну тут треба зрозуміти що з наявного коду ми можемо взяти три останні цифри і додати до них четверту щоб утворилася нова комбінація. Тобто для 10000 можливих комбінацій нам треба усього 10003 цифри.

А друге питання – згенерувати таку послідовність. Тут думайте самі :)

Друга задача. Згенерувати лабіринт заданого розміру так щоб у нього був гарантований вхід і вихід і вони були б поєднані. Існує багато алгоритмів генерації лабіринтів, мабуть найпростіший буде модифікований пошук в глибину з поверненням до попередніх позицій (backtracking), щось типу такого – https://en.wikipedia.org/wiki/Maze_generation_algorithm#Depth-first_search. Якщо не хвилюватися і спокійно подумати то цей алгоритм можна “винайти” самостійно доволі швидко. Ну або можна уявити кожну позицію в лабіринті як вузол у дереві і почати будувати зв’язки між ними.

Третя задача. Реалізувати BigInt. Це такий тип даних де розмір числа не обмежений. Тобто треба скажімо створити клас, додати підтримку усіх арифметичних операції, конвертацію типів, конвертацію в/з рядка. Але додаткова вимога – реалізувати операцію додавання довільної кількості BigInt’ів (наприклад вектору) у найбільш ефективний спосіб. Теж нічого надзвичайного, але якщо ви знаєте якісь хитрощі цілочисельних операцій для якоїсь платформи то це дуже стане у нагоді і допоможе позитивно вразити інтерв’юера.

Четверта задача. Спроектувати архітектуру (ніякого кодінгу) сервісу обміну повідомленнями: клієнти, повідомлення що десь зберігаються і їх можна шукати і таке інше. Тобто усе включно з тим як і де зберігаються дані, як усе це передається та підтверджується, і усі інші нюанси про які можна подумати. Звісно тут є великий простір для обговорень усього що завгодно. До того ж таке питання показує область знань та інтересів кандидата. І мабуть як і в Microsoft четверте і п’яте інтерв’ю проводять лише якщо три попередні пройшли добре, хоча компанії кажуть що це не так :)

П’ята задача. Тут я не всі деталі зловив, але склалося таке враження що інтерв’ю це було вже не надто обов’язкове. Задача як така стосувалася внутрішнього представлення чисел типу double (мантиса, експонента, ну ви в курсі) та як можна реалізувати певні арифметичні операції з ними на платформі де нема підтримки такого формату “з коробки”. На цьому інтерв’ю той хто дав задачу пояснював усе включно з тим як числа представлено і як вони нормалізуються і просто треба було показати що розумієш як працювати з бітами та байтами та де можна зробити оптимізації.

Ну ось таке от :)

Як я вчив і здавав електросхемотехніку

У ВНЗ де я вчився я був у першому наборі студентів (інститут організували у 1992-му році на базі Центру підвищення кваліфікації). А отже нам читали дисципліни які думали що “непогано було б почитати”, та, крім того, інститут був вільний від ярма “наукових традицій закладу”. Тому читали не лише аби-що (іноді навіть дуже цікаве), але і часто доволі випадкові, щоб не сказати гірше люди.

 

От комусь прийшла думка що непогано було б нашій групі почитати щось пов’язане з електронікою. Знайшли в одному проектному закладі дядьку з патентами, винаходами і грамотами і понеслась.

 

Ну, по-перше, нереально доставляла сама його манера викладання. Він, наприклад, розказував нам як виготовляють напів-провідникові елементи. Виглядало це приблизно так:

– От,- каже – так роблять транзистор. Беремо напівпровідник… – старанно замальовує крейдою усю дошку,

– Далі витравлюємо кислотою в ній віконце, – старанно витирає майже половину дошки.

– Далі наносимо шар ізолювального матеріалу… – знову зафарбовує щойно витерту частину, але тепер штрихами в інший бік.

– Тепер додаємо інший шар напів-провідника…

 

Ну я думаю ви зрозуміли головний принцип, все це малювання займало доволі багато часу і я так і не зрозумів чому просто умовно не намалювати одразу (а не масштабом з усю дошку) те що треба. Отак ми по пів пари витравлювали віконця і покривали їх знову черговим шаром матеріалу переводячи крейду.

 

Крім того у викладача було унікальне уявлення про те як треба вчити студентів. Здалося йому що треба нам знати Autocad (це спеціальне програмне забезпечення для креслень) якось. Схема навчання виглядала так:

– Студент такий-то, виходьте до дошки. Малюйте куб.

– Але я не знаю як, я Autocad ще в очі не бачив.

– Що ви мені голову морочите?! Малюйте куб я сказав!

Після кількох цікавих і веселих для нас (кого не викликали) хвилин суперечок студент здавався і писав на дошці щось типу “намалювати куб!!!’”. На що отримував:

– Сідайте, два!

 

А, ще навіть до того. Перший раз запускаємо той Autocad (нагадаю що це були часи MS DOS  і Windows ще не було навіть на обрії). Отже запускаємо і викладач радісно питає:

– Що, у всіх комп’ютери зависли? Правильно, так і має бути. А тепер зробіть так щоб воно запускалося і не зависало!

Після майже повністю витраченої на суперечки пари з приводу того чому ми маємо вгадувати взагалі з’ясувалося що Autocad висне якщо його запускати з Volcov Commander, який той же викладач примусив нас використовувати замість Norton Commander бо “поставлю два!”.

 

Ще якось в черговий раз виникла у нього геніальна ідея – а давайте ви напишете мені навчальні програми, а я вам за це п’ятірки автоматами поставлю. Ті кому подобалося програмувати радісно погодилися, але реальність виявилася жорстокою. Технічні завдання виглядали приблизно так: написати програму яка демонструє поведінку електронів в напів-провідниках. Елекрони повинні сидіти на конях і розмахуючи шаблями скакати по своїх траєкторіях. Ну от в такому ключі. Але сама мацибулєчка була в тому що все це треба було писати на Clipper (це мова для розробки програм і роботи з БД, щось середнє між командними файлами і SQL, графіки там в принципі не було).

 

І так з усім… А зараз смішно згадувати.

 

І особливо весело було здавати іспит. В білетах були питання різних схем підсилювачів і такого іншого цікавого. Причому розписав він усіх чи то через 10, чи через 15 хвилин по алфавіту. Тобто ті хто був в кінці списку мали приходити на іспит ледь не в кінці дня. Мій товариш Влад (про якого я вже писав якось) забив на це діло і прийшов вранці. Ну і ясно що почали вони сперечатися через це і навіть орати одне на одного. Якось так у них вийшло що викладач пригрозив Владу що поставить тому тройбан, на що Влад почав вимагати поставити йому двійку:

– Я вам три ставлю!

– Став два!

–Ні, поставлю три!

– Я сказав став два!

Потім вони почали боротися за залікову книжку видираючи її одне в одного з рук і викладач таки примудрився якось вписати туди трояк…

В цей час в аудиторію заходить декан перевірити як воно все відбувається, аж тут Влад вириває свою залікову книжку, бачить в ній три бали і волає “Ах ти ж сучий хвіст!”. Декан замирає на мить, потім каже – Ну я бачу у вас тут все в порядку. Розвертається і виходить.

 

Сам я здав іспит здається на відмінно. Звісно вивчити на пам’ять всі ті схеми якщо ти не Влад було не реально. Проте у нас в аудиторіях були поруч із дошками ще такі екрани з білої матерії для проекторів. Так от ми білою крейдою понамальовували на них схеми – з місця викладача біле на білому не видно, а з наших місць (з аудиторії) видно нормально бо екран трошки сіріший за крейду :) Отак у нас майже вся група на відмінно і здала.

 

 

А який у вас був найдивакуватіший викладач?