Курсы TDD

На прошлой неделе я вынюхал, что 10-ть “избранных” программистов отправят на курсы TDD (Test Driven Development), и решил пробраться в эту десятку. К большому сожалению, я узнал немного поздновато – за пару дней, но все же решил написать емейл начальнику и посмотреть что будет. Емейл был краткий: “Не могли бы вы меня как нить засунуть на курсы TDD?” Ответ пришел день спустя – засунули!

Компания, которая проводит курсы, называется Pillar и располагается в городе Анн Арбор, что в 40 минутах езды от дома – в принципе не так плохо, но все же далековато. Сегодня был первый из двух дней курса. Прошло все отлично, конечно была пара маленьких технических заморочек, но без них ни куда! В инструкции было написано все что нужно и скажу сразу, найти парковку в Анн Арборе в рабочие дни не так уж и просто. Но компания все показала и рассказала, а потом ещё дала кредитную карту на $25 – чтобы мы “без пыли и шуму” оплатили парковку прямо рядом со зданием. Смеха ради отмечу, что парковка на рабочий день была $10. Так же из разряда других приятных мелочей, у компании Pillar есть свой шеф повар, который приготовил нам всем обед! Это не прошло мимо нашего отряда программистов. Мы сразу решили, что у нас такое тоже должно быть! И не подумайте – это вам не какие-то детские забавы, тут мы боремся с “автобусным” фактором.

От приятного к делу! Пока что курсы мне нравятся, так как меня всегда интересовала TDD. Я понимаю что и как, но всегда хотелось окунуться в это и я окунулся. Скажу, что идея однозначно интересная и даже стоящая. Однако, меня преследует какая-то странная паранойя, которую пока что не могу сформулировать! Но процесс написания программы, который начинается с теста, потом пишется код, потом пишется ещё тест и потом ещё код, а потом рефакторинг тестов и кода и так далее, пока код ни закончен – чем-то мне напомнил брутфорс (bruteforce)! Пока мы тренировались (code kata), я решил прикольнуться над своим партнером и писать тупой код – типа чтобы он тупо проходил тесты и все. И тут можно легко заключить следующее – TDD не избавляет от быдло-кода или плохого программирования. Он избавляет от других недочетов, таких как:

– четкое представление задачи (без этого будет сложно)
– большая модулярность
– лучшее покрытие тестами
– легкий рефакторинг кода в любой момент
– документация

В итоге, я думаю, что TDD довольно хороший подход и использовать его нужно. Однако, что-то мне ещё не дает покоя и когда я додумаю, то, возможно, изменю свое мнение. Чирз!

MacBook

Сегодня зашел в BestBuy и потрогал новый MacBook. Чувства очень странные – это как iPad, но только с клавиатурой и левым металическим корпусом. Я все ещё думаю, что параметры довольно слабые и цена высокая, но когда держишь в руках MacBook – ощущения реально впечатляют! Надеюсь, что следующая версия MacBook будет мощнее и будут порты, порты, порты.

Классное устройство

У меня на работе 4 кухни, 3 из них маленькие и одна большая. Кофе льется фонтаном, кто угодно может прийти на кухню и сварить кофе в индустриальной кофеварке. Правда индустриальная кофеварка не делает одну кружку, она варит сразу целый термос, что не является большой проблемой приняв во внимание количество работников. В итоге в любое время дня и ночи можно найти готовый кофе! Однако это создает своеобразную проблему – “а когда кофе сварили?”. Эта проблема решалась простым способом – наклейка со временем. Меня такое решение не устраивает по одной простой причине – кофе готовиться много и каждый раз новая наклейка – пустая трата бумаги. К большому сожалению я по этому поводу ничего не придумал, однако не давно я забрел на кухню в конце офиса и увидел “устройство”. Оно меня так поразило, что я решил его выставить на все общее обозрение! Все гениальное просто – смотрим и учимся:

Здравствуйте, мистер Андерсон!

Ванин первый день на первой корпоративной работе. Я подумал, что нужно запечатлеть. Вообще, отлично, что все получилось. Я за Ваню очень рад. Теперь он будет как большинство людей работать с “9 до 5” и все такое. Как говорится, современная жизнь в корпоративном мире.

Скажу одно, теперь Ваня, как и я, будет жаловаться на недостаток времени. Хехе ну или работать или … пинать.

Забавные момент первого дня – Ваня сидел со мной в рабочем кабинете и люди начали подтягиваться. Когда зашел Ал и увидел Ваню, то на лице было небольшое удивление. После того как Ваня ушел, Ал повернулся и сказал: я захожу, смотрю на Ваню и думаю: “а что в нашей команде делает Киано Ривс?”. Ну вот, у нас в офисе теперь есть собственный мистер Андерсон!

День рождения

Вот и прошел очередной год. Я ещё немного повзрослел/постарел. Последние несколько лет я как-то отлынивал от личного ежегодного анализа: времени было мало, большая занятость, собака съела мои мысли и так далее… В этом году я все же решил собраться с мыслями! На сколько хорошо это получится, мы скоро увидим.

Конец февраля 2014 – начался новый цикл. Год 2014 вообще был тяжелый, однако, многое было выучено и достигнуто! Из всего, что я успел опубликовать в моем блоге, можно сделать только один вывод – я много читал и путешествовал. Однако, это далеко не так – многое осталось за кадром! Сейчас я постараюсь вспомнить важные моменты и кратко их проанализировать.

– Мой друг Ваня, наконец, получил свою первую корпоративную работу. Я лично не думал, что это вообще когда-либо случится. Однако судьба улыбнулась и, после нескольких разговоров с моим начальником, тест был оформлен, интервью назначено и конечный результат на лицо (молодец Ваня). С моей стороны работы было проделано достаточно и в основном со стороны логистики. Тут я очень рад своей организованности (+1 логистика), так как я сохраняю всю нужную информацию – вопросы, ответы, решения и так далее.

– Два месяца безработицы. После того как меня уволили с GM-а, я решил не работать до лучших времен (5 месяцев, пока платят пособие). Но этого не произошло: работа меня сама нашла и засосала. Тут есть два важных момента: первый – я прочувствовал, что мои знания и умения очень нужны в индустрии. Сейчас это звучит банально, но тогда для меня это стало очень важным открытием. Второе – за 2 месяца я выучил разработку OSX приложений и даже успел написать что-то полезное. Меня это однозначно воодушевило и конечно же +1 к программированию.

– Ночь в Канадской больнице быстро наводит на несколько мыслей: дорогая парковка, медленное обслуживание, полное отсутствие какого либо комфорта для тех кто остается больше чем на 16 часов. Конечно все хорошо что хорошо заканчивается, но более 16 часов ожидания то доктора, то оборудования, то результатов… Скажу только одно – не стоит болеть!

– Налоги и болезненное обучение! Последнии 5 лет я делал налоги у профессионального бухгалтера. Однако, в прошедшем году я обнаружил, что бухгалтер не особо понимал, что он делает когда дело доходило до Канадских налогов с Американского заработка. Этот урок был целиком оплачен моими переплаченными налогами! По этой причине мне пришлось самому во всем разобраться и заполнить налоги! +1 к канцелярии. Тут отмечу, что налоги получились просто великолепные. Буду надеяться, что я не обобрал Канадское правительство.

– Bromance. В ушедшем году я потерял друга – тут я не совсем уверен была ли это дружба или нет, но для меня он был другом, а как он видел отношения большой вопрос! Я точно знаю что быть моим другом это не легкая задача, но у меня все как в компьютере или 1 или 0 – для друзей все, для врагов кочерыжки. И того же я ожидаю от друзей. Урока я тут пока не выучил +0 к социологии.

Думаю, на этом я остановлюсь. Уверен, что многое я пропустил так как попросту забыл. Но с этим ничего поделать нельзя! Урок выучен – нужно писать в блог чаще. +1 к блогосфере.

Белка

Сегодня, после обеда, вышел покурить и моя лысо-хвостая белка была тут как тут. Я не знаю, что она там делает и что с ней происходит, но одно точно – она голодная. Если присмотреться к дереву, около которого белка сидит, то можно увидеть – кора потрепана. Походу голодная белка объедает дерево.

В общем, я встретил белку пару дней назад и начал подкармливать. К сожалению, я с собой на работу привезти ничего не могу (граница и еда не сочетаются). В итоге я покупаю орехи в местном магазине и кормлю своего нового друга!

Не уверен, если кто-то другой кормит белку, но я один раз обнаружил её с крекером – думаю люди что-то кидают. По-любому, я рад, что белка хоть как-то питается.

Много снега

Вчера весь день шел снег и все замело. Вечером я наблюдал как машины застревали на нашей улице, их откапывали и выталкивали. В тот момент я решил что в понедельник буду работать из дома! Однако когда я сегодня проснулся то подумал что все же нужно поехать на работу. Я не хотел быть “нытиком” – мол снега навалило и поэтому слишком муторно и опасно ехать. После десяти минут буксования и медленного прогресса я наконец-то выехал на снежную колею и оценил размеры содеянного:

ЗЫ: На работу появился я один – все члены команды работаю из дома!

Поездка в Квебек

В зимние каникулы я отправился в Квебек. Поездка не оставила особых воспоминаний. Обычно у меня всегда есть чем поделиться, но на этот раз муза пропала. Город мне понравился и время провел хорошо, а вот особых впечатлений не осталось. Возможно потому что я там провел всего 3 дня, а возможно потому что был цивилизованный отдых и никакого экстрима – все красиво, чисто, много музеев и исторических мест. По этой причине я решил просто выложить фотографии и оставить все как есть.

Никарагуа часть 3 – А что там делать то?

В Никарагуа обычно едут три типа людей: серфингисты, пешие туристы и пенсионеры (найдите слово, которое не соответствует логической цепочки). Если вы хотите увидеть музеи, архитектуру и другие исторические монументы то ехать сюда не стоит! У Никарагуа довольно бурная история и география. Города не один раз были или разрушены землетрясениями или сожжены пиратами или потрепаны революцией. Если же вы всетакие решились, советую остановиться в отеле Ла Гранд Франция, посетить музей керамики и форт в Гранаде, съездить в Ометепе (найдите там исторический музей он лучше чем в Гранаде), пройдитесь по рынку в Массае, сходите на фабрику лучшего центрально-американского рома (Flor De Cana), посмотрите как крутят сигары и вообще насладись всем что Никарагуа может предложить, но рассчитывать на многое не стоит.

Зачем же туда едут эти три типа людей? Серфинг – страна расположена в отличном месте: налево пойдешь и будет тебе тихий океан, направо пойдешь и будет тебе атлантический океан, а вокруг пляжи, пляжи, пляжи! Прибавьте к этому дешевую еду, проживание и свободу серфить где угодно. В Никарагуа никто не будет тебя останавливать если ты сумасшедший и хочешь серфить в шторм – делай что хочешь, если утонешь это твои проблемы.

Если ты любишь гулять по джунглям, взбираться на вулканы, жить в палатке и исследовать необитаемые земли то Никарагуа тебя также порадует. Очень много молодых людей едут в Ометепе, что бы карабкаться на вулканы, а их там два. К одному пойдешь и лаву найдешь, к другому пойдешь и воду найдешь. Есть много других мест где любители свежего воздуха найдут свободу от цивилизации. И опять же – вы все делаете на свой страх и риск.

Последний тип людей это пенсионеры. Когда я узнал об этом меня это немного озадачило, но есть рациональное объяснение. Никарагуа очень теплая страна и по этой причине пенсионеры любят там жить – жар костей не ломит. Но есть и финансовый момент: продать дом в Канаде скажем за 200 тысяч долларов, купить дом в Никарагуа за 30-60 тысяч и на сдачу жить ни в чем себе не отказывая ещё лет 10, ну а если прибавить пенсию то до конца дней! В итоге, довольно часто пенсионеры приезжают жить в Гранаду, строят самые красивые дома и наслаждаются теплой погодой, пляжами, свежей едой и дешевизной. А когда становиться скучно то они просто открывают свои маленькие бизнесы типа кофе де Монтекарло.

Цены:

Никарагуа бедная страна и цены там варьируются от смешных до не очень. Суммировать стоимость можно так: если вы вегетарианец и путешествуете с рюкзаком на спине то Никарагуа будет дешевой и доступной страной. Все что произведено в стране то дешево. Например, можно пообедать на улице всего за 60-80 центов. Местными пирожками, произведенными из кукурузы, молока и сахара, а запить соком, сделанным из свежих фруктов и разлитым в пластиковые пакеты. Рестораны вполне доступны. Один человек может “посидеть” на 10 долларов и это включает великолепный пейзаж, вкусно приготовленное из свежих продуктов основное блюдо, пиво, кофе и чаевые. Такое очень редко встретишь в Северной Америке.

Передвижение между городами тоже дешево и тут я могу привести только один пример: маршрутка от Чинандеги до Манагуа (160 км) стоит всего $1.20, но можно ехать и дешевле – автобус. Однако, если вы хотите что-то более персональное, но при этом сами не хотите рулить, то можно арендовать микроавтобус на весь день за $50 и это включает водителя, который знает местность и готов отвезти вас куда угодно, ждать сколько угодно. Таким образом, можно легко собраться с семьей или друзьями и командой, скажем, из 15 человек отправиться на необитаемый пляж!

Я сильно не интересовался одеждой, но она тоже дешевая. Мы купили два традиционных платья и стоило это порядка 20 долларов (в Канаде такого не найдешь), так же купили кожаные сапоги и они были всего $40 с учетом что нас немного “нагрели” – мы же туристы.
И лучше не сравнивать цены с Американскими – такие же сапоги были бы как минимум $150.

Стоимость отеля зависит от того где он располагается. В туристических городах таких как Леон и Гранада, можно найти места где переночевать от $20 и до $160, но если вы находитесь не в туристическом  городе, то цены могут легко начинаться от $30, а то и $40. Я ночевал исключительно в местах где присутствует кондиционер и цена никогда не была ниже $35 долларов  – это с учетом того что некоторые “места” я бы даже не назвал мотелем и уж точно не назвал бы отелем. Однако, я любитель цивилизованного ночлега и подозреваю, что при желании можно переночевать и дешевле если спать в хостелах. Если вы любите серфинг и вам все равно где проводить ночь и жаркая погода вам только в кайф то стоимость ночлега будет весьма низкой. Если вы остаетесь в стране на месяц или больше то можно арендовать комнату в доме и жить ещё дешевле.

На этом дешевая жизнь заканчивается и начинается суровая реальность импорта и странных цен. Все что импортировано стоит дороже. Бензин стоит $1.20 за литр – Канадские цены! Пиво, как ни странно, тоже не самое дешевое. Местное пиво, довольно хороше, стоит доллар за бутылку, а если хочешь Корону или ещё какой импорт то от двух долларов и выше – опять же Канадские цены. Стоит отметить, что в ресторанах пиво не на много дороже – будет не доллар, а $1.20, что очень хорошо, в особенности, если сравнивать с Канадскими ценами в ресторанах. Курица стоит также не мало – доллар за пол кило, это уже Американские цены. Но при этом рыба очень дешевая – 3-4 килограмма рыбы на рынке всего 2 доллара, в Канаде цена будет в районе $30 долларов и рыба будет мороженной!

Самая дешевая машина на прокат будет как минимум $18 в день – это тоже дорого, так как в Канаде такие же цены. Мы снимали машину не в туристическом месте и цена начиналась от $40 долларов. По этой причине мы взяли машину у соседа – $35 в день.

О сотовой связи сказать ничего не могу, так как не пользовался, но я купил мобильный интернет и он стоил $9 за один гигабайт данных на 15 дней – это дорого. В Канаде  сравнимая цена в $20 долларов за 2 гигабайта в месяц. В итоге, цивилизованное путешествие будет стоить денег, а путешествие с рюкзаком за спиной и пляжем на горизонте будет дешевым.

Как ни странно, но местное население быстро видит иностранцев. Следовательно, нужно точно себе представлять одну закономерность – рано или поздно вас обманут и разведут на деньги! Если вы не готовы к этому то советую оставаться дома так как это неизбежно произойдет. Мы встретили пару туристов пока путешествовали и всех “нагрели”. Ваш покорный слуга не исключение. Конечно, на миллионы вас разводить не будут, но на пару десятков долларов разведут за милую душу. Так например, заказав блюдо дня в одном из ресторанов в Гранаде, мы и не ожидали что оно может стоить $20 долларов! Ни одно блюдо в меню не подходило даже к $10. Но видимо “специальное” блюдо для туристов смогло вырости в цене более чем в два раза. Справедливости ради скажу, что рыба была большая и отлично приготовленная, но наш промах был в том что мы не поинтересовались ценой до того сделали заказ. Мораль истории: всегда, и я имею ввиду всегда, спрашивайте что по чем перед тем как что-то заказывать, кушать, ехать или пользоваться какими-либо сервисами.

Заранее советую ознакомиться с местными ценами и быть готовым к тому что вам будут предлагать все в два раза дороже. Мы были на рынке в городе Масая, но рынок был специально для туристов – он был чистый, просторный и стоило там все в два раза дороже. Стоит отметить что не каждый турист может пойти на настоящий рынок в Никарагуа и я слышал от некоторых что рынки очень грязные и идти туда просто не стоит. Меня лично настоящие рынки не смущали – да, там было грязно, страшно и жутко тесно, но при этом если цена это ваш критерий, то вы найдете там все тоже самое и даже больше, но при этом в два раза дешевле!

Будьте осторожны с обменом валюты и меняйте мелкие суммы (даже в банке), скажем 100-200 долларов за раз. Если вы хотите получить лучший обменный курс то не стоит идти в банк, там снимут как минимум пару-тройку процентов при обмене, а на улице дадут фактический курс (проверьте xe.com)!

Если вы собираетесь покупать подарки то не стоит ждать до последнего момента и покупать их в аэропорту – они там в 2-3 раза дороже.

Итого:

Мне Никарагуа понравилось и пусть я не умею серфить и не люблю гулять по джунглям, но пляжи и свежую еду я люблю. Для меня Никарагуа это как возвращение в детство, но только в жарком климате. Есть что-то магическое в простой жизни без телефона, интернета, мега магазинов и километровых молов. Все как-то более размеренно, расслаблено и просто. Как ни странно, но если мне очень хочется то я даже могу найти там работу программистом. Однако одно дело это быть туристом, а другое жить в стране. Я думаю туда ещё вернуться, но уже с более четким планом отдыха где  пляж будет приоритетом.