Go and code
257 subscribers
72 photos
2 videos
132 links
Download Telegram
Недавно на VC.ru вышла статья некого Константина Нелюбина о том, как они в своей студии разрабатывают мобильные приложения и как рекомендуют их разрабатывать в 2016 году (https://vc.ru/p/begin-app). В этой статье он в частности говорит о благости и удобности кросс-платформенной разработки, тем самым вызывая кучу гнева и негодования комментаторов. Мол, как же так?

Что самое странное, людей совершенно не удивляет очевидная глупость классической схемы разработки приложений. Напомню, это когда как минимум две команды (iOS и Android; в худшем случае сюда добавляется еще веб и UWP) пишут одно и то же, одну и ту же, черт возьми, бизнес-логику для решения одних и тех же задач, тем самым тратя на это в X раз больше времени (где X — число поддерживаемых платформ). Плюс люди, конечно же, забывают, что кросс-платформа уже не такая, какой она была пять лет назад — тут теперь хорошо работает и оффлайн-режим (Realm для JS уже подвезли), и нативные контролы (в первую очередь здесь и далее я говорю про React Native, конечно же), а производительность уже давно достаточно высока (сложно отличить грамотно написанное нативное приложение от кросс-платформенного). В качестве иллюстрации моих слов вот вам небольшой пример того, как может выглядеть одно и то же JavaScript-приложение на разных платформах: https://raw.githubusercontent.com/alwx/luno-react-native/master/_screenshots/android-ios.png Можете ли вы визуально отличить его от нативного? Думаю, что нет.

А что, если мое приложение использует какие-нибудь хитрые библиотеки или OpenGL? Мы живем в то удивительное время, когда на JS написана даже библиотека для отображения динозавров в разных частях экрана (http://zurb.com/playground/jquery-raptorize), но при этом вы думаете, что аналог вашей библиотеки отсутствует в JS-мире?
Конечно, обычные JS-библиотеки не всегда подойдут для кросс-платформенных приложений хотя бы из-за отсутствия объекта window.document. К счастью, с количеством и качеством написанных JS-оберток для популярных нативных IOS- и Android-библиотек уже почти нет проблем, но даже если обертки для вашей библиотеки нет, то даже обезьяна справится с ее написанием — например, вообще без знания Objective C я за примерно полтора часа написал свой wrapper для React Native (https://gist.github.com/alwx/f241384ea366760aebb5800040954e96; там есть пара проблем с code style, я знаю). Если же говорить про OpenGL, то и с ним все хорошо (вот это видео хорошо демонстрирует и производительность и качество: https://www.youtube.com/watch?v=OPFf53fdUmQ). Конечно, некоторые проблемы остаются, но чем больше мы вместе работаем над ними, тем, очевидно, меньше их становится.

И давайте будем честны — для большинства бизнес-задач не нужны никакие OpenGL и навероятные библиотеки, а большинство приложений, выполняемых на аутсорсе в России, вообще представляют из себя клиенты для веб-сервисов без каких-либо хитростей. Все это давно умеют всякие React Native и Xamarin Forms, а значит смерть нативной разработки ближе, чем вы можете себе представить. Что, конечно же, хорошо.
Некоторое время назад я писал о Nitro Cold Brew Coffee, который стал внезапно популярен на Западе. Вот ссылка на тот пост: https://telegram.me/goandcode/32

Оказывается, сей напиток можно купить и у нас — в кофейне «Характер кофе» рядом с Университетом Путей Сообщения делают Nitro Cold Brew за 200 рублей. На вкус довольно странно, но один раз попробовать стоит.
Вспомнил, что совершенно ничего не писал о моей поездке на Flow Festival в Хельсинки 12 августа. Впрочем, написать о Flow что-то новое я все равно смогу едва ли — об этом фестивале писали уже почти все, даже издания вроде «Медузы» и «Афиши». Если говорить вкратце, там было круто.
Но вместо моих впечатлений давайте поразмышляем о небольших деталях, а именно о продаже затычек для ушей на территории фестиваля. Я никогда не видел такого на российских фестивалях (впрочем, возможно, где-то они и были), но, безусловно, их наличие и востребованность — логичное следствие понимания людьми того, какие проблемы может принести длительное воздействие громкого звука на уши. Если точнее, то звук 115 дБ (как раз-таки условный «громкий концерт») считается безвредным для слуха только при его прослушивании в течение не более 28 секунд (http://www.bbc.com/news/health-31661789). Возможно, именно разумностью финнов и этим самым пониманием проблем можно объяснить то, что возле сцены на Flow в основном как раз-таки находились приехавшие на фестиваль русские. Конечно, без всяких затычек для ушей.

Возможно, кому-то из вас проблема кажется чуть ли не высосанной из пальца, но это, конечно, не так — вряд ли странные и надуманные проблемы стали бы обсуждаться и решаться армией США. Один из лучших подкастов на свете, а именно 99% Invisible (серьезно, если вы его еще не слушаете, то пора), как раз рассказывает об этом в одном из последних выпусков (http://99percentinvisible.org/episode/combat-hearing-loss/). Если вкратце, пехота США в общем-то должна использовать затычки при ведении боевых действий, однако фактически никто этого не делает. Почему? Потому что, к сожалению, затычки не только уменьшают шум от выстрелов или взрывов, но еще и не дают возможности полноценно слышать окружающую действительность, а это, само собой, может привести к смерти в условиях реальных боевых действий. Как результат — очень большое число пехотинцев имеют неисправимые значительные проблемы со слухом, что, конечно же, не лучшим образом влияет на тактические и боевые способности армии. Похоже на замкнутый круг.

Одно из решений этой проблемы — использование TCAPS (The Tactical Communication and Protective System; https://www.youtube.com/watch?v=B4JHB_Ntokc) — модных наушников, подавляющих только громкие шумы. Однако, как оказывается, даже они не решают проблему полностью — они очень дорогие, их нужно заряжать, они могут сломаться, а еще их проблематично использовать в условиях высоких температур (например, в пустыне), потому что пехотинцам в таком случае просто становится невыносимо жарко. Непонятно, можно ли решить эту, казалось бы, незаметную проблему (если вы знаете как, то, думаю, ваш стартап ждет успех), но, если говорить о более «бытовых» вещах вроде громких концертов или сверлений дыр в стене, то проблема уже давно решена — используйте, пожалуйста, копеечные затычки для ушей. Концерт любимой группы это, конечно, хорошо, но обладание хорошим слухом — еще лучше.
Пришла пора меняться.

Самое главное — теперь свежие посты в Go and Code будут выходить стабильно два раза в неделю. Д. советовал мне воспользоваться Beeminder (https://www.beeminder.com; сервис для достижения поставленных целей, который фактически лишает тебя денег при осечке), чтобы лучше контролировать и мотивировать себя, но я пока посчитал это излишним, поскольку, во-первых, писать сюда мне интересно, во-вторых, я вижу в этом практический смысл. Короче говоря, сервис полезен, но не особо-то нужен при наличии мотивации. Эх, если бы мотивация находилась для всего!

(кстати, если мотивация у вас не находится совсем, то попробуйте вот эту штуку: http://straykov.ru/blog/all/qbserve/)

Впереди две поездки и спонтанные походы в новые места для работы. Кроме того, в голове возникают какие-то безумные идеи в духе «поработать во время поездки по рекам и каналам на туристическом пароме», но даже без этого список ближайших «серьезных» тем в моем ToDo-листе довольно внушителен. Но сегодня воскресенье, а значит можно позволить себе что-то несерьезное. Например, шоппинг (!).

Готовя очередную посылку с Amazon, я обратил внимание на появление в этом магазине специального раздела про стартапы с названием Launchpad, который, впрочем, появился уже аж год назад (https://www.amazon.com/Amazon-Launchpad/b?ie=UTF8&node=12034488011). Тем лучше для нас — можно подвести итоги его работы, найдя там что-то потрясающее и инновационное.
К сожалению, это не так уж и просто.
Покопавшись там, я понял, что зря люди смеются с бесполезных, глупых и попросту нерабочих российских стартапов (вспоминается недавний Биван или сбор денег на фильм о Вещем Олеге) — там тоже встречаются совершенно дикие вещи, не нужные, кажется, никому. Парадоксально, но такие проекты даже оказываются успешными (о, мир!). Хорошие вещи, конечно, тоже встречаются, но их чрезвычайно мало. Впрочем, кажется, в России они не встречаются совсем, если не брать в расчет «виртуальные» стартапы вроде Рокетбанка и Модульбанка, которые, я почти уверен, могут легко растоптать в честном бою продвинутые зарубежные банки при сравнении удобства интерфейса и «клиентоориентированности».
Но давайте все же про странное:
1) Кофе с грибами чага и кордицепс (https://www.amazon.com/Four-Sigma-Foods-Mushroom-Coffee/dp/B00ZWA7LQ4/ref=lp_12034488011_1_21_a_it?s=boost&srs=12034488011&ie=UTF8&qid=1472406548&sr=1-21) — звучит так себе, но я даже нашел этот кофе в Хельсинки и раздумываю привезти пачку;
2) Подсветка для туалета (https://www.amazon.com/IllumiBowl-Toilet-Night-Light-Shark/dp/B00S7PAFK0/ref=lp_12034488011_1_42?s=boost&srs=12034488011&ie=UTF8&qid=1472406548&sr=1-42) — без комментариев;
3) Педальная эспрессо-машина (https://www.amazon.com/Wacaco-Company-MPGR100-MiniPresso-Espresso/dp/B00VTA9F6U/ref=sr_1_64?s=boost&srs=12034488011&ie=UTF8&qid=1472407638&sr=1-64);
4) Табличка «Покормил ли ты собаку?» (https://www.amazon.com/Did-You-Feed-the-Dog/dp/B01B87Y3BA/ref=sr_1_112?s=boost&srs=12034488011&ie=UTF8&qid=1472407638&sr=1-112) — выглядит как суровое китайское поделие, но точно не как «cutting edge product from startups»;
5) И, наконец, вишенка на торте — продукт под названием VirZOOM, над которым смеются, кажется, даже его создатели (https://www.amazon.com/VirZOOM-Virtual-Reality-Exercise-Games/dp/B01HL84HN4).

Собственно, рекламное видео VirZOOM я вам и предлагаю сегодня посмотреть.
И, да — хорошей и продуктивной рабочей недели!
Прошлый раз я написал «сообщения будут выходить в этом канале два раза в неделю», после чего успешно пропал и целую неделю не писал вообще ничего. Но на то есть даже уважительная причина — я ездил в отпуск в Финляндию и Эстонию, немного посмотрел в пятый раз на Хельсинки, поел финской клубники и впервые сходил в настоящую финскую сауну.
В этот раз я ездил с родителями — по сути эта поездка была моим подарком родителям на их дни рождения, и я предвкушал поездку хотя бы потому, что она должна была им показать жизнь за пределами той реальности, которую рисует канал Россия-1 (да, родители никогда толком не были за рубежом, так что это была фактически их первая возможность сравнить жизнь здесь и там). И, знаете ли, я многое понял.

1) Пересчитывание стоимости всего в рубли — та вещь, от которой людям почему-то сложно избавиться. В голове родителей не укладывалось как может хлеб стоить 2 евро («да это же аж 150 рублей!»), а аргументы в духе «у них средняя зарплата тут порядка 3300 евро в месяц против наших 300 евро» не принимались (подробнее про зарплаты в Финляндии тут: http://www.tradingeconomics.com/finland/wages);
2) Желание экономить в русском человеке тоже нужно выгонять при помощи каких-то магических заклинаний — аргументы в духе «мы здесь меньше недели, да и это же отпуск, в отпуске *нужно* тратить больше денег, чем вы тратите дома» тоже проходили мимо (впрочем, в последний день мне удалось заставить совершить набег на местный супермаркет и купить козьего сыра с острова Сааремаа и крафтового эстонского пива Põhjala, о котором вы наверняка знаете, но если нет, то обязательно попробуйте). И да, я убежден в том, что еда это одна из самых важных составляющих опыта путешествий — необычную локальную еду точно не нужно упускать, когда ты приезжаешь в незнакомую страну;
3) Поиски и осмотр местных достопримечательностей иногда приводили к ожидаемым, но все же совершенно безумным фразам со стороны родителей в духе «а почему это у них тут в Эстонии памятников 1945 году нет?». Я уж не говорю про реакцию родителей на тот факт, что Эстония (а также Литва и Латвия) считает свое нахождение в составе СССР оккупацией (что, впрочем, сложно подвергать сомнениям, если вы читали историю: https://ru.wikipedia.org/wiki/Присоединение_Эстонии_к_СССР ), а также обвинения моего отца в адрес эстонских властей по поводу серых паспортов (впрочем, это действительно довольно спорный момент, который сложно оценить однозначно положительно: https://ru.wikipedia.org/wiki/Неграждане_(Эстония) );
4) Комментарии со стороны отца в духе «Что бы эти финны делали без нашего газа!» и «Как много тут мигрантов!» тоже пару раз проскальзывали, что уж там.

Вы можете подумать, что все совсем плохо, но, к счастью, все ровно наоборот. Заметно, что даже пятидневный выезд заставил их задуматься, что они стали гораздо более критичны и стали замечать больше деталей в мире вокруг. Уже третий день в Петербурге мама вспоминает Хельсинки со словами: «Вот там была тишина и спокойствие! Никакой рекламы секс-услуг на асфальте, никаких мерцающих надписей — настоящий отдых для глаз!», а про красоту парков Хельсинки они говорят постоянно, ходя по петербургским скверам и садам.
Да, Хельсинки им явно понравился больше Таллинна. Возможно, это связано с тем, что я люблю Хельсинки больше, а значит с большим интересом рассказывал про хорошие места. Или все дело в том, что между благополучной Финляндией и Россией есть слишком большая разница в уровне жизни и в комфорте города. Не знаю.
Но эта поездка явно была интересным опытом и для них, и для меня — я смог лучше понять откуда берутся все эти антизападные настроения и понял, что даже одной поездки для среднестатического ценителя телепрограмм Киселева вполне достаточно для того, чтобы увидеть, что есть хорошие интересные и стоящие посещения страны и что везде есть свои положительные моменты. И в Эстонии, и в Финляндии, и в России.
Пользуясь случаем, хотел бы сказать, что в Таллинне есть редко посещаемый туристами, но очень хороший этнографический музей в районе Rocca al Mare (http://www.visitestonia.com/en/estonian-open-air-museum-eesti-vabaohumuuseum). Если вы на старый город Таллинна на десять лет вперед, рекомендую в следующий раз съездить туда и после просмотра поесть эстонской кухни в местном ресторане — почти уверен, что вам понравится.

А на сегодняшем фото пусть будет это место в 5 минутах от вокзала Хельсинки. Всегда удивлялся тому, как в Финляндии такие места обязательно несколько раз встретятся в такой близости от центра города.
Удивительным образом поезда превращаются в самый дешевый способ перемещения между Петербургом и Хельсинки.
Уже второй раз я попадаю в ситуацию с задержкой Аллегро — в первый раз это была совершенно безумная задержка в 6 часов, о которой написали почти все СМИ (например, вот: http://fontanka.fi/articles/29765/). В тот раз, к части финской VR, всем вернули 100% стоимости билетов, то есть фактически моя поездка из Хельсинки в Петербург оказалась бесплатной.
Сегодня же поезд опоздал на час, а я опоздал на свою пересадку на поезд в Тампере, в связи с чем VR пообещала вернуть 25% стоимости билета, пересадила меня на следующий поезд и дала бесплатный ваучер на 7 евро, чтобы я не умер с голода в ожидании. Спасибо, ребята, вы чертовски круты!
(кстати, поезда в Финляндию будут опаздывать и в последующие несколько дней из-за ремонта участка возле Коуволы, так что спешите получить свои 25% кэшбэка!)

В этот раз я приехал на небольшую Clojure-конференцию (http://clojutre.org), организованную ребятами из компании Metosin (http://metosin.fi), с которыми мы выпили *очень* много в тот раз, когда они приезжали в Петербург. А Тампере же оказался довольно большим по финским меркам городом посреди сосновного леса с соответствующим воздухом, белками, прыгающими у тебя над головой и лебедями, беззастенчиво плавающими в парке. Тут вообще полный набор развлечений юного любителя природы — два озера, река, лес, холм, лодки и сауны, то есть примерно то, за что люди и любят отдых в Финляндии. Про конференцию и техническую составляющую напишу чуть больше чуть позже (поскольку, я уверен, что вам уже успели надоесть эти путевые заметки из Финляндии), а пока пойду посмотрю на город чуть больше. Хорошей пятницы всем!
Как я уже писал, в пятницу и субботу я был в городе Тампере в Финляндии, где я участвовал в конференции по Clojure, которая, по данным организаторов, является второй по числу участников Clojure-конференцией в Европе и самой большой Clojure-конференцией в Северной Европе.

Что и говорить, конференция была крутой. Начиная от организации (включая pre-party и afterparty) и заканчивая докладчиками — абсолютно все было выполнено на максимально хорошем уровне. В России я даже близко не видел ничего подобного и у меня есть несколько соображений о том, почему оно так.
1) Как показал опрос, проведенный перед конференцией, 70-80% участников используют Clojure для своих собственных проектов и не используют или почти не используют его на работе. Что делает Clojure языком, выбранным по любви, а не потому, что на нем потенциально можно заработать много денег (впрочем, я уже как-то писал, что это, возможно, ложное мнение — все свои лучшие и наиболее высокооплачиваемые задачи я находил именно благодаря своим связям с функциональным программированием). Таким образом, если сравнивать среднего посетителя Clojure-конференции со средним посетителем JavaScript- или Java-конференции, то первый будет если не умнее, то явно более заинтересованным;
2) Конференция проходит в выходной день. Возможно, проходи она в будний день, ничего бы не изменилось из-за того, что описано в п. 1, но один факт проведения конференции в субботу делает ее абсолютно неинтересной для тех, кто идет туда ради того, чтобы официально прогулять работу (да, привет тем спящим парням с питерской JokerConf 2015);
3) Конференция абсолютно бесплатная, хотя я до сих пор не понимаю почему парни из Metosin уже который год платят за все сами :) Как мне показалось, конференции вроде JockerConf привлекают еще и тех, кто просто хочет погулять за счет компании — покушать, повеселиться (да, организаторы вполне способствуют такой ерунде, привлекая на конференцию Никиту Джигурду и организуя целый зал с самыми разными приставками) и даже поучаствовать в собседованиях в другие компании (об этом чуть ниже);
4) Single track, доклады по 20 минут. Основная цель конференции, как мне кажется — заинтересовать (ну, еще обрести новые знакомства, конечно же). Не нужно час рассказывать про детали того, как работает clojure.spec, не нужно час рассказывать о деталях реализации чего-либо в никому не интересном проекте. Собственно, никто и не рассказывал, но смог заинтересовать — о деталях заинтересованный сам без проблем прочитает в документации;
5) Отсутствие навязчивых спонсоров, которые бы пытались нанять каждого (привет T-Systems и Luxoft). Понимаю, что это все не от хорошей жизни, но, черт возьми, можно же быть умнее! Лично я ненавижу Luxoft только лишь из-за того, что они стабильно звонят мне раз в три месяца, а на конференциях всегда пытаются вручить какие-нибудь ненужные ручки и блокнот с настойчивостью раздатчика флаеров «компьютерной помощи» возле метро. Здесь же спонсоры были, у них были сувениры и флаеры, но они ничего не пытались всучить — к ним разве что можно было подойти за водой;
6) Атмосфера! Коммюнити довольно небольшое, поэтому многих удается воспринимать может не как друзей, но как хороших знакомых. «О, да ты же тот самый парень, с которым я общался в Slack'е пару дней назад!»;
7) Финляндия это Европа. Никто не поедет на IT-конференцию в Россию, какой бы крутой она не была. Увы. Сложность получения визы, медведи и мафия на улицах, сложные перелеты и дистанцированность России от остального мира делают почти невозможным проведение подобного рода конференций у нас. Так что будем довольствоваться непонятно чем с Никитой Джигурдой и редким неплохим митапам FProg.
В общем, вывод такой — маленькие коммьюнити лучше больших, короткие доклады лучше длинных, а Финляндия лучше России, если мы говорим про открытость и доступность для остального мира. Впрочем, она во многом чем лучше, а все три августовские поездки были по-своему разными и интересными — я увидел динамичную и развлекающуюся Финляндию во время поездки на Flow, я увидел спокойную и красивую Финляндию во время второй поездки, я увидел открытую и развивающуюся Финляндию во время поездки в Тампере. Я бы не хотел жить в Финляндии, но по крайней мере я теперь никогда не скажу «В Финляндии скучно», потому что это не так. Впрочем, я никогда так и не говорил.

Напоследок вот вам фотография с конференции о прогнозе по поводу нашего будущего*.

* — IoT значит Internet of Things, почитать об этом подробнее можно тут: https://en.wikipedia.org/wiki/Internet_of_things
Сегодня чуть-чуть о странном и слишком, пожалуй, провокационном — о мигрантах.

Вообще, конечно, довольно сложно и, пожалуй, неправильно оценивать проблему мигрантов, живя в стране, где мигрантов фактически нет*. Что, конечно, не мешает россиянам после просмотра выпуска новостей говорить о катострофических масштабах этой проблемы в Европе, где, кстати, большая же часть этих россиян никогда и не была (и не будет с такими-то зарплатами). Но речь сегодня не об этом.

Как я уже когда-то писал, в прошлом году я некоторое время жил в Швеции, в Стокгольме. Швеция — вторая после Германии страна Европы по количеству мигрантов, причем с некоторыми оговорками шведское правительство относится к мигрантам в целом положительно (подробнее об этом тут: https://sweden.se/migration/). И да, уже несколько лет число пребывающих мигрантов превышает число появившихся на свет естественным путем, а значит в скором будущем теоретически в Швеции мигрантов будет больше, чем коренных шведов. Впрочем, правительство страны применяет в своем отношении к этому вопросу принцип duck typing — если человек говорит по-шведски, ведет себя как швед и работает вместе со шведами, то, возможно, он швед. К тому же в Швецию многие едут не только за убежищем и большим пособием по безработице, но и просто за хорошей жизнью — там много IT-компаний и корпораций международного уровня, много невероятных масштабов культурных событий (например, вот недавний Symposium: http://symposium.co), а еще достаточно стартапов и умных людей (ну и вообще, вот: https://www.weforum.org/agenda/2016/08/these-are-the-countries-with-the-best-reputation/).

Но как же люди? Неужели шведы нормально относятся к тому, что у них живет так много приезжих?
Думаю, основное отличие цивилизованного общества от нецивилизованного в том, что человек ставится выше цвета его кожи и происхождения. И даже если правительство (в котором, как известно, всегда сидят мудаки) делает что-то не так, как и произошло сегодня, то в цивилизованном обществе люди не стесняются указать ему на это. Поясню — сегодня стало известно о случае потенциальной депортации мигранта по имени Tayyab из-за налогов, который его работодатель не уплатил по ошибке. Парень этот успешно работает в IT-компании в Стокгольме и считается настоящей суперзвездой программирования, поэтому в его защиту тут же начали писать сначала CEO крупной венчурной компании (https://www.linkedin.com/pulse/welcome-banana-republic-sweden-mathias-plank), а потом и сотни других людей (https://www.change.org/p/the-swedish-government-ensure-tayyab-is-allowed-to-keep-his-job-life-and-home-in-sweden). Не уверен, что что-нибудь подобное бы произошло в России.
Впрочем, оно и не произошло бы просто потому, что я не видел ни одного программиста-мигранта, переехавшего сюда откуда-нибудь далее Казахстана.

Тут можно сделать много выводов, но кое-что очевидное напрашивается само собой:
1) По количеству мигрантов можно судить об уровне жизни в стране;
2) Толерантность общества легко можно связать с успешностью страны;
3) Нужно быть проще и тогда люди будут с тобой дружить :)

И да, если вдруг ваши знакомые при поездке в какую-либо страну все еще думают о том, что «а здесь же русских не любят», то вы можете расшарить им этот пост. Не любят мудаков, а нормальных русских, как и нормальных индусов, любят примерно везде.

_________
* — формально, кстати, мигрантов довольно много — ФМС говорит о примерно 20 миллионах (!) трудовых мигрантов, находящихся в РФ незаконно. Но официальной статистики на этот счет нет и, конечно же, быть не может. Факт лишь в том, что почти все присутствующие в РФ мигранты приезжают из стран СНГ (то есть из стран, не так уж сильно отличающихся от нас в культурном плане) и занимаются низкооплачиваемым трудом. Источник: https://ru.wikipedia.org/wiki/Миграционная_ситуация_в_России
#code

Неделю назад я решил вспомнить былое и посмотреть как там дела в мире frontend-разработки. Веб-разработкой на коммерческой основе я не занимаюсь уже относительно давно, ограничиваясь лишь модификациями и переработками своего сайта (https://alwx.me), который я недавно и вовсе превратил в простую визитку.

Ожидаемо, но JavaScript на целый день превратил мою жизнь в настоящий ад невероятных инструментов и способов их применения. Начинается все с классики — отвратительно написанного кода. Серьезно, JS-репозиторий с 400 звездами на Github вполне может не иметь даже нормально структурированного кода, символы табуляции там могут чередоваться с пробелами, а отступы быть расставлены примерно случайно. Но это в общем-то ерунда, к такому все уже привыкли. Некоторые JS-зависимости по непонятным мне причинам нужно устанавливать глобально, некоторые — локально. Те зависимости, которые нужно устанавливать глобально, но очень хочется в каждом проекте иметь свои, лучшие умы рекомендуют использовать в связке с Docker'ом (серьезно?). Чтобы не расслабляться, frontend-разработчики придумали несколько систем сборки, несколько активно используемых «диалектов» языка, синтаксические приблуды вроде JSX, несколько вариаций CSS, а потом, видимо, поняли, что все это плохо работает в браузерах, поэтому соорудили несколько библиотек с костялями (например, вот такое: https://github.com/es-shims/es5-shim).

В общем, полный грусти и печали, я, как это часто бывает, зашел в Твиттер, а там нашел вот это: https://tessel.io. Если совсем кратко, то это маленький компьютер (вроде Raspberry Pi) с кучей всяких модулей (например, есть акселерометр, камера, звук, bluetooth и так далее), который управляется JavaScript'ом. И, наверное, это идеальная штука для обучения людей, которые никогда не занимались программированием ранее (особенно детей) — во-первых, людей проще учить, демонстрируя им не абстрактные буковки на экране, а что-то материальное, а во-вторых, JavaScript очень простой и хорошо подходит для обучения, а если он не нравится или вам кажется, что негоже забивать голову ребенка какой-то ерундой, то всегда можно учить свое чадо писать на одном из бесчисленного множества языков, которые компилируются в JS, например на ClojureScript. Есть мнение (https://www.youtube.com/watch?v=Ze3Acb42f3o), что Lisp хорошо дается тем, кто не имеет опыта императивного программирования. Вот и проверите.

Выводы противоречивы: с одной стороны, JS это квинтэссенция всего того, за что можно не любить профессию (довольно неприятное коммьюнити, грязный и неопрятный код и кучка полу-рабочих инструментов), с другой — это легко приобретаемый входной билет в эту самую профессию и способ внезапно поднять свою зарплату (если ты живешь в России). И, надеюсь, штуки вроде Tessel могут неплохо помочь снизить входной порог еще больше. Потому что по непонятной причине быть программистом до сих пор модно и стильно, а если вы так не думаете, то вот вам старое, но вполне еще актуальное видео:
В последнее время я перешел на «домашний» режим работы — если раньше 90% рабочего времени я проводил в разного рода кофейнях, то сейчас 90% времени я сижу дома. Причин у того несколько:

1) Мой замечательный MacBook Pro Early 2015 (которому всего лишь полтора года) решил, вероятно, что я слишком часто им пользуюсь — в итоге у меня уже месяц не работают тачпад и клавиатура по совершенно непонятной и загадочной причине. Вообще, в этом «сезоне» с техникой Apple у меня постоянно что-то происходит и я не могу сказать, что это меня радует — iPhone пришлось менять по гарантии после поездки в Швецию, а теперь вот с MacBook какая-то ерунда. Конечно, bluetooth-клавиатура и мышь спасают, но это совсем не дело. Плохой Apple, очень плохой.
2) Как-то я подустал от бесконечных перемещений с ноутбуком по городу — все мои любимые места обитания успели поднадоесть. Причина тут, впрочем, вероятно, в моей нелюбви к осени, а вернее к тому, что она предвещает;
3) Либо из-за замечательности моей текущей работы (серьезно, я ее обожаю), либо из-за того, что я неплохо смог прокачаться в планировании времени с момента начала «свободного плаванья» (то есть с сентября 2014 года), я понял, что дома в общем-то тоже неплохо работается — каждый день стабильно получается оттрекать 5.5-6 часов (если вы думаете, что это мало, то посчитайте сколько вы работаете с тайм-трекером и удивитесь);
4) Я поставил себе цель и решил подкопить денег (без, правда, особого фанатизма), а для этого проще не тратить 250 рублей на чашку кофе в Дабл Би. Впрочем, мое отношение к экономии довольно простое и своеобразное, и я обязательно расскажу об этом как-нибудь в другой раз;
5) Я купил свежий Raspberry Pi (https://en.wikipedia.org/wiki/Raspberry_Pi), установил крутую Debian-based OS под названием OSMC (https://osmc.tv/), подключил к Pi динамики и стал стримить музыку прямо со своего ноутбука, наслаждаясь примерно той же самой атмосферой кофейни у себя дома. Как мало, оказывается, нужно для того, чтобы полностью изменить свое отношение к дому :)
Впрочем, о музыке чуть подробнее.
Так вышло, что в сентябре я приобрел себе наушники Bose QuietComfort 20 (https://www.amazon.com/gp/product/B00X9KVLOM/ref=od_aui_detailpages03?ie=UTF8&psc=1). Даже если вы не хотите слушать музыку в какой-то момент времени, то можно включить активное шумоподавление и использовать их как супер-продвинутые беруши (наверное, это идеально для поездов и длительных перелетов). Единственный их минус — необходимость зарядки, в остальном же это просто праздник какой-то — идеальное качество звучания, идеальная звукоизоляция, идеальный форм-фактор. А чтобы было что послушать, вот вам парочка рекомендаций:
1) @musicistrendy — отличный Telegram-канал от человека, который разбирается в музыке и для людей, кто не ограничивает себя одним-двумя жанрами прослушиваемой музыки;
2) http://sgradio.6te.net/radioliveplayer/beats1/ — неофициальный стрим Beats Radio 1 для тех, кто живет в стране, где пока нельзя слушать этот же самый Radio 1 легально. Не скажу, что это самое лучшее радио на свете, но в целом музыка там очень неплоха;
3) Просто хорошие свежие альбомы Warpaint и Trentemøller (https://itun.es/ru/qxWTdb и https://itun.es/ru/1dcZcb соответственно), которые точно стоит послушать.

На этом сегодня все. До встречи на выходных ;)
«Наверное, для карьеры программиста посещение конференций так же важно, как для нас — написание публикаций», — примерно такое я услышал в эту пятницу во время небольшой тусовки в кругу биологов. Несмотря на простоту этой странной мысли, она породила целую уйму всего в моей голове. Некоторое из этой уймы вам точно не понравится.

Ну, во-первых, про конференции сказана, конечно, неправда. Социальные связи, которые дает нам их посещение, полезны абсолютно для всех людей. А вот что действительно является неким аналогом серьезной научной деятельности среди программистов, так это, наверное, Github-аккаунт. Здесь есть свои «публикации» (они же — репозитории), свой «индекс цитируемости» (звездочки или количество форков, кому как удобнее), свои ревьюеры и своя атмосфера.
В моем идеальном мире все работодатели смотрят на два источника информации о программисте — его Github-аккаунт и его Twitter, поскольку оба предоставляют самые достоверные и точные сведения о заинтересованности программиста в тех или иных языках и технологиях. В общем случае правило довольно простое — если программист ничего не коммитит в Github, то он не интересуется, а если он не интересуется, то он не нужен. Все просто.

В реальном же мире есть корпорации, которые испытывают недостаток программистов, и рекрутеры, которые получают процент за сделку. Поэтому в общем-то работу находят все, а рекрутеры ради получения своей порции денег идут на совсем странные поступки (например, такие: http://www.rbc.ru/newspaper/2016/09/14/57d68f609a794759b7f476cd). Хотя, конечно, отбор по Github уже начинает практиковаться, увы, не только среди крутых небольших технологических стартапов (которые, на мой вкус, есть лучшие места для работы программиста), но и среди рекрутеров (http://www.hr-portal.ru/article/kak-ispolzovat-github-dlya-poiska-razrabotchikov).

Однако, конечно, все может измениться. В коммьюнити уже который год возникают мысли о том, не окажется ли часть программистов у разбитого корыта в процессе развития технологий искусственного интеллекта. Мол, если ИИ будет достаточно развит, то он сможет выполнять нашу работу (например, вот недавнее на этот счет: https://vc.ru/p/alol-future). И вы знаете, я очень надеюсь, что так оно и произойдет, и уверен, что те самые большие корпорации, которые ищут себе сотрудников на пустяковую и неинтересную работу, окажутся в числе заинтересованных во внедрении ИИ. Ну серьезно, зачем нам нужен сотрудник для того, чтобы периодически двигать кнопочку на 2 пикселя влево, если с этим прекрасно справляется тот, кому не нужны отпуски, выходные и соцпособия? Можно сказать что-то в духе «но тогда же куча людей останется без работы, на такие риски для рынка труда никто не пойдет!». Если бы оно было так, то технологии бы не развивались вовсе, в Макдональдсе не появлялись терминалы для оплаты бургеров, а мы бы жили сейчас примерно в каменном веке.

В таком идеальном мире ближайшего будущего программистов будет мало, все они будут выполнять крутые и важные дела и начнут менять мир к лучшему. И уж точно никто не будет выпускать пятнадцатую по счету систему сборки для вашего уютного, но, увы, никому не нужному JS-проекту.