Go and code
257 subscribers
72 photos
2 videos
132 links
Download Telegram
#заметки_из_мира_программирования

React Native это продукт с самым суровым циклом обновления на свете. За две недели там успевает произойти столько всего, что при очередном обновлении можно лишь удивиться тому, что часть API-методов успели не просто стать deprecated, а уже и исчезнуть из React Native окончательно и безповоротно.
Но даже несмотря на это, писать на React Native — одно удовольствие. Во-первых, с минимальнейшими усилиями удается поддерживать две версии одновременно — и iOS, и Android (при желании можно еще и Windows Phone поддерживать, но желания на такие странные занятия обычно нет), причем обе версии работают быстро и неотличимо от нативных. Во-вторых, там API изначально старательно пишут для людей, например методы для работы с камерой настолько логичные, что даже удивляешься (особенно если сравнивать их с Android Camera и Camera 2 API — сам факт наличия двух API для камер уже говорит о чем-то нехорошем). Что, впрочем, все равно не мешает разработчикам их периодически переписывать.

На картинке внизу — скриншоты из iOS-версии и Android-версии одного и того же приложения. По сути вся разница лишь в стилях, то есть суммарно где-то в 20 строках кода (ClojureScript, на JS было бы явно больше).
#заметки_из_мира_программирования

Попался тут хороший список задач для последовательного изучения JavaScript’а, языка, на котором нынче можно написать все на свете.
* https://medium.freecodecamp.com/from-zero-to-front-end-hero-part-1-7d4f7f0bff02#.2l05c68wn
* https://medium.freecodecamp.com/from-zero-to-front-end-hero-part-2-adfa4824da9b#.lmh8dso5m

У обоих частей есть вполне себе неплохой перевод на русский язык, если вам это нужно:
* https://medium.com/russian/от-нуля-до-героя-front-enda-часть-1-f524d668f328#.ee7kbcuqe
* https://medium.com/russian/от-нуля-до-героя-фронтенда-часть-2-25f19e56eb29#.71dze7whk
На New Yorker'е пару дней назад вышла неплохая статья про «религию 21 века», о которой в последнее время (видимо, из-за развития VR и AR) ведется довольно много разговоров. Речь про "simulation argument", о котором вы, полагаю, уже несколько раз слышали. Если нет, вы как минимум видели «Матрицу» и должны понимать что это такое — говоря вкратце, это идея о том, что мы все живем внутри симуляции, которую ошибочно называем «реальной жизнью» (впрочем, что тогда реальная жизнь, черт возьми?). Более того, некоторые мыслители заходят еще дальше и говорят, что мы живем в симуляции внутри симуляции внутри симуляции (we need to go deeper, да), а дальнейшее развитие VR/AR позволит нам создавать свою симуляцию!
Звучит довольно дико, но во всех мыслях на этот счет можно найти очень большой простор для обсуждений и размышлений о будущем и, например, о том, как технологии могут заменить людей. В общем, почитайте: http://www.newyorker.com/books/joshua-rothman/what-are-the-odds-we-are-living-in-a-computer-simulation

Похожие размышления выходили еще в начале года на The Atlantic (http://www.theatlantic.com/technology/archive/2016/02/artificial-universe-no-mans-sky/463308/) — но тогда это было об игре No Man's Sky, отличительная особенность которой в ее почти бесконечности — разработчики игры даже не рассчитывают на то, что игроки смогут изучить хотя бы 1% от ее виртуального мира, поскольку там аж 18,446,744,073,709,551,616 условно уникальных планет, обход каждой из которых по экватору займет несколько лет реального времени. Игра, кстати, уже фактически готова, а особо нетерпеливые уже даже могут оформить пред-заказ в Steam (http://store.steampowered.com/app/275850/).
За выходные я внезапно сделал больше, чем за всю прошедшую неделю — вот что значит жизнь без митингов в максимальном фокусе на решаемых задачах. Осталось время на завершение курса на Coursera и даже на очередную публичную штуку для React Native (лежит вот здесь: https://github.com/alwx/react-native-photo-view). На днях у меня в планах написать большой пост по поводу своих впечатлений о React Native — я занимаюсь им уже почти полгода, мне точно есть что рассказать и точно есть чем повозмущаться :)

Впрочем, есть у такого безумного и слишком активного ритма жизни (хотя, можно ли назвать активным ритмом жизни просиживание в компьютере 14 часов в сутки?) какой-то странный и казалось бы неприятный побочный эффект — эти строки я пишу аж в 4:30 ночи, спать почему-то не хочется совсем. Наверное, это плохо, но, впрочем, в распорядке жизни в духе «каждый день не позже 12 я ложусь спать, встаю рано и сразу еду на работу» тоже нет ничего особо хорошего — в таком ритме как раз-таки и легко прожить всю свою жизнь, с грустью вспоминая о тех моментах, когда можно было жить иначе. А как же сидение во дворе на площади Мужества в ночь перед важным экзаменом или поездки в Хельсинки на ночной маршрутке без всяких планирований?

Как я уже писал раньше, относительно давно я подписался на рассылку Nice and Easy от Тимура Зарудного (у него еще и неплохой блог, кстати говоря: http://www.niceandeasy.me). Вначале там приходили статьи про мотивацию и помидорки, что, конечно, занятно, но не более. Сейчас же приходят довольно крутые лонгриды про документалистику и язык. Позволю себе процитировать небольшую часть последней рассылки, а именно слова, принадлежащие 92-летнему писателю Йонасу Мекасу, благо цитата эта прекрасно соотносится с началом поста:

«Я живу 24 часа в сутки. Каждый час состоит из 60 минут, каждая минута — из 60 секунд. Но я могу заснять лишь 20 секунд одного конкретного дня. Этот запечатленный кадр не способен отразить всю мою жизнь, но способен показать то, что для меня особенно важно.
Момент. Почему я заснял именно его? Почему-то я почувствовал, что должен сейчас снимать, не думая, не рационализируя. Возможно, что именно этот момент, а не остальные 23 часа 59 минут и 40 секунд, обозначает меня. Может быть, этот коротенький отрезок времени и есть я.
Мы двигаемся по жизни словно во сне, но вдруг мы останавливаемся, почувствовав прикосновение чего-то, и фокусируемся. Нас всегда окружает множество звуков, но неожиданно мы можем расслышать что-то особенное и начинаем вслушиваться. Наше прошлое определяет эти уникальные моменты, к чему мы присматриваемся и прислушиваемся».

Полагаю, если взять и так же «сохранять» (любым из способов, конечно) хотя бы пару секунд своего дня, то рано или поздно само собой «сохраняться» будут только лучшие моменты, а по этим лучшим моментам можно будет легко понять, насколько жизнь «правильная» или нет.
И наверное, дни 18 и 19 июня на некой условной «пленке» моей жизни оказались бы весьма скучными и посредственными для стороннего наблюдателя, несмотря на ту самую продуктивность, которая, возможно, и вовсе не имеет никакого значения.

Мысли, написанные в уже 5 часов ночи не могли не получиться сумбурными и странными. Извините. И да, я надеюсь, у вас стоит Do Not Disturb на телефоне. Иначе извините еще раз.
Кофейни Петербурга в дневное время
Почти бесплатный кофе в Петрозаводске. Но, справедливости ради, кроме кофе и набережной тут делать особо и нечего.
А вообще всем привет.
Да, сегодня я от скуки взял и приехал в Петрозаводск. Сам я родился в суровом северном городе Мончегорск, что в Мурманской области, всю жизнь ездил на поездах через Петрозаводск, но в самом городе не был ни разу.
Как и ожидалось, главное в Карелии, видимо, природа. А столица республики может удивить, пожалуй, лишь надписями на финском языке (почти как в Выборе), а также, конечно, классной набережной Онежского озера (тут есть бесплатный вайфай, нет сомнительной торговли сувенирами и, что важно, нет бортиков и есть яхты — почти как в Стокгольме или Хельсинки).

Здесь-то, сидя возле набережной, я дописал-таки свою относительно большую статью про React Native. По сути это подведение итогов за полгода тесной работы с этим фреймворком (это довольно много с учетом того, что самому фреймворку еще нет и полутора лет — первый публичный релиз был 26 марта 2015). Читать здесь: https://medium.com/@alwxdev/react-native-summing-up-86838441d289
Конечно же, лайк и репост абсолютно не возбраняются.
И да, вероятно мой английский не хватает звезд с неба, поэтому если у вас есть комментарии по поводу отдельных фраз или слов, можете писать об этом мне лично — @alwxx. Если жаждете прочитать то же самое на русском — писать туда же.
Каждый, кто приезжал в Хельсинки, конечно же, видел Kamppi —так называемую «часовню тишины», находящуюся в самом центре города. А у многих за время пребывания в этой стране даже могло сложиться впечатление, что вся Финляндия в целом эта такая своеобразная часовня тишины. Я, кстати, не говорю об этом как о чем-то плохом — Финляндия занимала и занимает довольно высокое место в моем личном рейтинге стран, а в моих ближайших планах есть примерно 3 поездки в Финляндию (кстати, никто еще не хочет на Flow Festival?).

И, как внезапно оказалось, тишина Финляндии не является моим или вашим наблюдением — она является главным туристическим товаром этой страны, придуманным целой командой специально обученных маркетологов. И это реально работает. Люди со всего мира едут в Финляндию ради тишины и спокойствия — есть даже специальный сайт и маркетинговый слоган для рекламы своеобразного финского времяпрепровождения (вот здесь: http://www.visitfinland.com/silence-please/)

«In a loud world, silence sells. Finland saw that it was possible to quite literally make something out of nothing.» — пишет об этом Nautil.us в большой статье про шум и его влияние на людей (сама статья тут: http://nautil.us/issue/16/nothingness/this-is-your-brain-on-silence). Там, в частности, приводится довольно много научных подтверждений тому, что шум влияет на наш сон (кто бы мог подумать?), на кровеносную систему и на кучу других заболеваний. Но и без этих относительно очевидных вещей в статье очень много всего крутого про влияние тишины на то, как работает наш мозг в целом. Короче говоря, это стоит почитать.

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

И напоследок вот вам видео двух путешественников из Калифорнии с кратким обзором top 10 занятий в Хельсинки. Судя по их каналу, они в целом в Скандинавии (если расширять это понятие еще и до Финляндии) проводят достаточно много времени, находя там целую кучу крутых занятий. При чем не только про природу и тишину.
https://www.youtube.com/watch?v=NMkqSrEa_Sw
Последние 5 дней я нахожусь в городе Мончегорск, что в Мурманской области. Город этот прежде всего известен своим участием в большом кино, а именно в «Левиафане» Звягинцева (городской суд в «Левиафане» это на самом деле здание городской администрации Мончегорска). И можно смело сказать, что в остальном город неизвестен ничем, как и почти все города с населением ~50к человек в любой стране мира.
Но здесь удивительным образом живут мои родители (да и я жил первые 16 лет своей жизни), поэтому изредка (примерно раз в год) я сюда всё-таки приезжаю. В этот раз я решил составить небольшую картину тех изменений, что произошли здесь примерно с 2007 (который, как известно, вернуть нельзя) по 2016 год.

1) Появился кинотеатр, что, на самом деле, big deal. В маленьких холодных городах обычно царит тлен и безысходность, а кинотеатр позволяет ощутимо разбавить окружающую грусть. Фильмы показывают довольно новые, однако, понятное дело, об арт-хаусе или фильмах с субтитрами речи и не идет, потому что это никому не нужно.
2) Стало ощутимо больше продуктовых магазинов, причем все они теперь принадлежат крупным сетям типа «Дикси», «X5 Retail Group» или «Магнит». Магазины фактически превратились в главное городское развлечение. И если в Петербурге очень часто слышны комментарии в духе «Еда стала совсем отвратительной» или «Российский сыр есть невозможно», то здесь такой проблемы нет совсем — во-первых, иностранные сыры здесь никто раньше и не ел, а во-вторых, теперь тут действительно можно купить почти все. Например, нет вообще никакой проблемы в покупке кокосового молока, спаржи, нута или сыров с голубой плесенью (из Краснодарского края, конечно), то есть тех товаров, о которых в моем детстве вообще никто даже не слышал. Так что шутки про пустые полки в супермаркетах, видимо, относятся только к Москве, Петербургу и еще паре городов, а здесь ситуация с едой однозначно стала лучше.
3) Если раньше для получения таких диковинных здесь документов как загранпаспорт надо было прийти во вторник с 10 до 12, заполнить кучу бумаг, не забыв принести с собой военный билет и свидетельство об отсутствии судимости, то теперь, во-первых, появились единые центры оказания госуслуг, во-вторых, они работают даже по субботам, а в-третьих, для получения того же загранпаспорта теперь не нужно ничего, кроме фотографий. Даже анкету заполнит специально обученный сотрудник.
4) Все непродуктовые товары теперь легко заказать при помощи какого-нибудь «Юлмарта», который за два дня привезет все что угодно из Петербурга. То есть люди фактически перестали сами таскать микроволновки в поезде из больших городов.

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

Впрочем, жить здесь 365 дней в году неприятно в первую очередь из-за погоды (в данный момент она там лучше, чем в Петербурге) и полярной ночи (если кто не знает, то это когда, черт возьми, солнце вообще не появляется из-за горизонта). Поэтому если вы вдруг хотите насладиться почти Норвегией за гораздо меньшие деньги, вам стоит поехать туда прямо сейчас.
Есть еще одна вещь, которая совершенно не связана с мыслью выше, но которую я очень хотел запостить в этот чатик. Недавно на ютуб-канале Vox вышло очень хорошее видео про то, как люди пользуются интернетом на Кубе. Новости про Кубу (как и новости про Северную Корею) я очень люблю — это примерно как читать про то, как люди постепенно познают мир и про то, как добро постепенно побеждает зло (по поводу Северной Кореи некоторые могут возразить, но я убежден, что там тоже недолго осталось ждать, тем более предпосылки уже есть). На Кубу добро проникает незаконными путями через спутниковые тарелки, спрятанные в бочках для воды, а потом распростаняется методами из девяностых.
Но не буду полностью пересказывать сюжет видео. Вот оно. Примерно в 5:55 нас даже ожидает небольшой привет из России.
https://www.youtube.com/watch?v=fTTno8D-b2E
Как оказалось, фрилансерам лучше работать в кофейнях хотя бы лишь потому, что по дороге в кофейню можно собрать парочку новых покемонов в Pokemon Go :)

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

Стартап называется Cupella (http://cupella.ru) и это приложение на телефон (есть для iOS и Android), которое позволяет покупать абонементы на кофе и чай, экономя в некоторых местах достаточно ощутимые деньги на употреблении данных напитков. При покупке абонемента на 20 чашек кофе, например, одна чашка будет стоить всего 50 рублей. Для сравнения: в замечательной кофейне «Coffee 3» чашка кофе из аэропресса стоит 150 рублей, а это в общем-то уже давно стандартная цена на чашку кофе в Санкт-Петербурге. А вы говорили, что нельзя вернуть 2007 год.

Интересный бонус — при помощи этого приложения можно платить картой даже там, где нельзя платить картой (да, такие места, увы, еще существуют). К слову говоря, в данном приложении собраны довольно-таки крутые кофейни, не «Кофе Хаусы» всякие (а если вы вдруг пропустили, все крутые кофейни Петербурга собраны здесь: http://notbadcoffee.com)

Интервью с создателем проекта: https://tjournal.ru/31263-abonement-na-kapuchino-peterburgskoe-prilozhenie-pomogaet-podpisatsya-na-kofe
И да, это выглядит как реклама, но, конечно же, мне за нее никто не платил. Потому что, черт возьми, никто не будет платить за рекламу в канале с таким количеством подписчиков.
Большинство дизайнеров интерфейсов не понимают смысла своей работы.
Именно с этой фразы мне хочется начать новую неделю после десятидневного отсутствия. Последняя неделя у меня выдалась довольно суровой — я начал работать над новым еще более крутым долгосрочным проектом, который, к слову, является моим пятым (юбилей!) зарубежным проектом. Думаю, самое время составить определенные выводы о том, как люди работают «там» и как они работают «тут», и я обязательно сделаю это на неделе.

Но вернемся к дизайну.
Так уж вышло, что из-за рода своей деятельности (мобильные приложения и веб) с дизайнерами интерфейсов я работаю очень много. К сожалению, многие из них думают, что дизайн интерфейсов — невероятно творческая работа, которая позволяет миллиарды вольностей и интерпретаций, а некоторые еще и забывают, что главная цель дизайнера — быть прослойкой между внутренней логикой и обычным пользователем, которого принято считать достаточно глупым. Хороший дизайнер интерфейсов должен не хорошо рисовать, а хорошо анализировать, хорошо мерять эффективность и постоянно следить за тем, как пользователи реагируют на изменения. Дизайн интерфейсов — это работа, больше связанная с логикой и математикой, чем с картинками.
Целую статью об этом написал видимо довольно-таки хороший дизайнер интерфейсов Ян Бирзул из Киева в Medium’е. И я эту статью очень рекомендую прочитать: https://birzool.com/дизайнер-интерфейсов-здорового-человека-и-дизайнер-курильщика-372a562d5b52#.xac0lrp87

От себя хочу добавить, что современные гайдлайны iOS и Android настолько хорошо описаны, что позволяют соорудить довольно неплохой дизайн даже человеку, который никогда дизайном интерфейсов не занимался. Если прочитать Google Material Design Guidelines (https://material.google.com), то каждый может получить довольно неплохое понимание о том, что такое хорошо, а что такое плохо примерно за пару дней.
Работаю в двух совершенно разных с точки зрения процессов немецких стартапах. В одном — жестокий Scrum со странными митингами, с планированиями по три часа в неделю, с backlog grooming продолжительностью в два часа, с двухнедельными спринтами, с джирой (да, я считаю это минусом) и с совершенно безумной формализацией процессов (например, ты не можешь взять задачу из бэклога просто так, пока не докажешь, что она нужна — при этом, конечно же, технические задачи не нужны никогда, потому что менеджеры не видят смысла тратить на это время). Безусловно, из-за всех этих формальных процессов разработка продукта движется очень медленно, но что еще более забавно — компания не хочет потратится на платный Slack, чтобы проводить митинги там (что было бы ощутимо удобнее для всех, потому что Slack классный и групповые звонки там работают лучше, чем в Hangouts или Gotomeeting), но при этом спокойно тратит кучу денег на выкидывание времени в воздух. В хорошей мастрид-книге Rework (https://www.amazon.com/dp/B002MUAJ2A/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1 или https://bookmate.com/books/vES16gjb) было весьма логичное изречение на этот счет — если вы тратите 5 часов в неделю на митинг 10 человек, то вы тратите не 5 часов, а 50. И если думать об этом, то становится немного не по себе от цифры (черт возьми, это больше недели работы одного человека!)

В другом же проекте рай и благодать — все вопросы решаются в Slack, все задачи хранятся в Github Issues (опционально используется overv.io), задачи берутся быстро («я могу сделать это за час» — «окей, бери и делай»), а билды собираются тогда, когда есть что показать.