func_main | Technologies

Telegram-канал func_main - Точка входа

698

Спасибо, что зашли на канал! Субъективно про будущее и настоящее IT сферы от разработчика ПО

Subscribe to a channel

Точка входа

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

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

Такие принципы собрали в одну кучу и назвали их S.O.L.I.D. (по первым буквам названий). Вроде бы после этого все должны были начать писать код чище и правильнее. Но нет, есть проблемы:
1) об этих принципах слышали не многие;
2) если слышали, то не понимали, как именно их реализовать на своих, используемых в работе, языках.

Хочу поделится отличным видео с актуальными примерами, как можно приемнить солид при разработке фронта:
https://www.youtube.com/watch?v=wi3wPzReKZQ

Если вы пишете на Go, то здесь можно почитать про солид в го: https://dave.cheney.net/2016/08/20/solid-go-design

Читать полностью…

Точка входа

Выложили видео с митапа по Go в Авито. Всего было 4 доклада, но, считаю, наиболее полезный доклад для Go сообщества прозвучал от Паши Мурзакова (компания Badoo): https://www.youtube.com/watch?v=uO268voCGwA

Он рассказывал о том, как с помощью простого Go приложения, заменившего PHP монстра, они смогли сэкономить 15 серверов. (Карл, 15 серверов на ровном месте?!)

Ну что тут еще можно сказать. На мой взгляд, вопрос "какой язык выбрать для нового проекта?" уже не может стоять - однозначно для сетевых сервисов стоит брать Go. Лично для меня, год назад этот вопрос решился именно так.

Здесь можно посмотреть все 4 доклада: https://habrahabr.ru/company/avito/blog/322384/

Читать полностью…

Точка входа

Одни борются за анонимность в сети, другие - за идентификацию каждого.

По ссылке обзор js-библиотеки с описанием методов, которые в совокупности могут отличить нового анонимного пользователя от старого, с достаточно высокой точностью:
http://highload.guide/blog/browser-fingerprint.html?utm_source=func_main_tlgrm&utm_medium=announcement&utm_campaign=browser-fingerprint--transkriptsiya-doklad

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

P.S. режим инкогнито не помогает сохранить анонимность в сети.

Читать полностью…

Точка входа

По моему мнению - это главный слайд митапа

Читать полностью…

Точка входа

Периодически слушаю подкаст GolangShow. У них рактически каждый выпуск набит годным контентом.

Подкаст хоть и имеет узкую направленность (язык Go), но достаточно часто беседы ведутся в целом по разработке, и на эти беседы приглашаются различные выдающиеся личности, которые вещают что-то по узким темам.

На этот раз к ним в гости зашли разработчики IntelliJ IDEA. Общение в основном было построено вокруг их свежего продукта Gogland и планах его развития. Но было интересно послушать в общих чертах о том, какую архитектуру имеет одна из лучших (как ни крути - это так) сред разработки.

https://itunes.apple.com/ru/podcast/podkast-golangshow/id1031101295?l=en&mt=2&i=1000380700863

P.S. из последних выпусков очень запомнился тот, что про Kubernetes. Получил ответы на многие из мучивших меня вопросов, спасибо!

Читать полностью…

Точка входа

Хотели бы увидеть то, как "видит" сверточная нейронная сеть? Или что происходит на каждом из слоев? Если да, то на этом видео есть ответы:
https://www.youtube.com/watch?v=Gu0MkmynWkw

Спасибо автору, организовал вывод достаточно наглядно!

Читать полностью…

Точка входа

Тем временем люди из гугла решили сертифицировать "дата инженеров":
https://cloud.google.com/certification/data-engineer

Format: Multiple choice and multiple select
Registration fee: USD 120 (discounted from retail price of USD 200)

Цена демократичная, а вот требования будут посерьезней:
https://cloud.google.com/certification/guides/google-certified-professional-data-engineer.pdf

...вам тоже стало интересно какая зарплата у людей с такими навыками?:)

Читать полностью…

Точка входа

Свежий недельный курс по машинному обучение от MIT и Nvidia (выложили несколько дней назад).
http://introtodeeplearning.com/index.html
Пока только пробежался, есть лабы на TensorFlow.

Читать полностью…

Точка входа

Фронтендщикам, думаю, стоит прочитать:
https://www.html5rocks.com/ru/tutorials/internals/howbrowserswork/

Из этого текста можно узнать, как устроены браузеры под капотом и поправить свою картину мира, относительно того, как они работают.

Часто бывает на собеседованиях, на позицию старшего фронтенд разработчика, люди не могут в двух словах описать как браузер превращает html+css+js в то, что мы видим на экранах. Или откуда появляются заголовки, типа origin. Это, конечно, никуда не годится.

Я не утверждаю, что являюсь экспертом по браузерам, но могу точно сказать, что прочтение этого текста в свое время дало мне исчерпывающее пояснение базовых принципов их работы.

Читать полностью…

Точка входа

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

Рекомендация Линуса (создателя git) по тому как должен выглядеть комментарий к коммиту: https://github.com/torvalds/subsurface/blob/a48494d2fbed58c751e9b7e8fbff88582f9b2d02/README#L88

В опенсорсе, само, собой, комментарий к коммиту - это лицо программиста, как и код. А вот что на счет закрытых проектов? Думаю, ситуация не меняется.

Читать полностью…

Точка входа

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

Интересно, насколько дешевле будет стоить операция по пересадке кожи, созданной таким образом? И будет ли ценовая матрица зависеть от цвета?

http://www.uc3m.es/ss/Satellite/UC3MInstitucional/en/Detalle/Comunicacion_C/1371227676752/1371215537949/Spanish_scientists_create_a_3D_bioprinter_to_print_human_skin

Читать полностью…

Точка входа

Несколько разжеванных материалов по машинному обучению.

1) Книга для тех, кто хочет начать работать с TensorFlow, но официальных гайдов недостаточно:
http://www.tensorflowbook.com/

2) Лекция (как автор ее назвал) по введению в линейную регрессию для желающих освоить питон для мл:
https://github.com/mephistopheies/dds/blob/master/lr_040117/ipy/lecture.ipynb

Обилие уроков - это хорошо, но все они одинаковы. На мой взягляд, взрывным был бы манул "как запилить свою призму". Развелось бы их, как в свое время инстаграмов.

Читать полностью…

Точка входа

Подрастает новое поколение обслуживающего персонала: https://www.facebook.com/cnbc/videos/10154570196684369/

Робот говорит, что хотчет убивать людей, но мне кажется оно хочет убирать, готовить, выпонять рутинную или опасную работу за человека

Читать полностью…

Точка входа

В течении последних двух недель веду набор разработчиков на начинающего бека, начинающего фронта и ведущего фулстека. И для экономии времени провожу все собеседования удаленно, по скайпу, даже для тех, кто будет ходить в офис. Таких собеседований за несколько лет я уже успел провести достаточно, соответственно, отметил для себя паттерны и антипаттерны в поведении кандидатов, которые помогают кандидату выглядеть лучше или хуже в глазах интервьюера. Хотел бы поделиться своими заметками

Считаю положительнымы моментами:
1) Включать фронтальную камеру во время разговора. Не знаю почему, но люди, включающие камеру, выглядят более открытыми. Если не имеете возможность включить камеру, то стоит так и сказать интервьюеру. Не стоит думать, что этот момент останется незамеченным, особенно, когда интервьюер уже включил свою камеру
2) Отвечать прямо и честно на технические вопросы. Если не знаете ответа или не имеете такого опыта, то стоит заявить об этом прямо. Но после этого стоит уточнить, что имеете другой весомый опыт, а не просто молчать
3) Рассуждать вслух над сложными вопросами или задачами. Интервьюеру интересно понять, как человек думает. Именно поэтому и спрашивает - не ради развлечения

Считаю отрицательными моментами:
1) Собеседоваться на удаленщика, не имея стабильного канала связи. Это основная вещь, которая должна быть у удаленщика, иначе сама идея удаленки бессмысленна
2) Собеседоваться на улице. Из-за шума не всегда слышно ответы
3) Отвечать на технические вопросы скользко, юлить. Если предполагаете что-то или говорите навскидку, то лучше так и сказать, что предполагаете, без воды
4) Говорить интервьюеру, что ему стоит делать. Например, недавно я слышал, что слушать про технические задачи компании - это трата времени и поэтому, эту часть интервью стоит пропустить. Или то, что интервьюер должен всему вас обучить. Скажу точно, не во все команды можно будет вписаться с таким характером

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

Читать полностью…

Точка входа

Для разнообразия сошлюсь не на чужие мнения и публикации - а на интервью со мной же :)
После YaC/m у меня был интересный мне самому разговор с Натальей, журналисткой из Красноярска. Журналисты, искренне старающиеся понять, что происходит интересного - а не скандального - редкость в наше время; Наталья оказалась из таких.
Поэтому рассказывал то, что обычно попадает в раздел вопросов и ответов после моих лекций: почему надо учиться делегировать не только людям, но и машинам (а это психологически очень непросто), как открытый код и вообще коммодитизация технологий меняют суть профессии разработчика, почему даже литературоведу и вообще любому гуманитарию полезно иметь представление о машинном обучении и машинном интеллекте (а то можно публично сесть в неприятную лужу).
В общем - вот:
http://newslab.ru/article/726422

Читать полностью…

Точка входа

Сегодня на канале @techsparks увидел интересную статью, в которой автор рассказывает, как парни из Майкрософта запилили программу, которая может по описанию требований (на человеческом языке) создать простое приложение.
https://www.newscientist.com/article/mg23331144-500-ai-learns-to-write-its-own-code-by-stealing-from-other-programs/

По словам автора, в этом софте, есть самообучающийся алгоритм, который гуляет по интернету, собирает сниппеты, понимает какие из них хорошие, а какие плохие, а потом лепит из этих кусков кода простенькие приложения.

Звучит устрашающе, ведь вроде как программисты должны быть последними, у кого машины отнимут работу. А тут разработчики из Майкрософта вроде как уже позарились на неприкосновенное.

Но если входнухть поглубже, прочитать еще раз, то становятся понятны некоторые вещи:
1) следующие несколько версий Windows точно будут написаны людьми;
2) автор статьи и авторы софта набивают себе классы, не более того - тема с AI сейчас громкая, как же на ней не попиарится парням из Майкрософта!?;
3) умный генератор простейших приложений если и удастся создать, то это был бы не финальный аккорд профессии программиста, а огромная помощь всем командам разработчиков - сократилось бы время на раскачивание джуниоров, количество которых ,можно было бы как раз подсократить.

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

Читать полностью…

Точка входа

Очень часто разработчики, считающие себя заскилованными, не могут на интервью ответить на такие вопросы: есть ли альтернативы наследованию? И какие вообще проблемы бывают с наследованием?

Вот тут ответ:
https://www.youtube.com/watch?v=wfMtDGfHWpA&feature=youtu.be

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

Но хочу сразу сказать, что я не со всем согласен с автором ролика. Высказывание, что композиция лучше наследования во всех случаях, не является для меня догмой. Композиция - это просто еще один вариант организации логики системы... Достаточно мощный вариант.

Читать полностью…

Точка входа

Хорошая визуализация градиентного бустинга:
https://arogozhnikov.github.io/2016/06/24/gradient_boosting_explained.html

Вообще, если хочется начать учить алгоритмы, но по мат. выкладкам ничего не понятно, то гуглите визуализации алгоритмов.

Например, простейшие сортировки, которыми разворачивают людей R&D отделы, хорошо представлены здесь: https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

Читать полностью…

Точка входа

Посетил Go митап в офисе Авито.

Ощущение от мероприятия: приятно посещать встречи, где разговаривают не о хелоуворлдах.

Когда будут видео, советую взглянуть доклады от представителя badoo и от тимлида Островка. Их истории о разном, но и там и там есть одна важная составляющая - без Go было бы дольше, сложнее и дороже.

P.S. сегодня вышла новая версия языка.

Читать полностью…

Точка входа

На этих выходных проходит http://datafest.ru/

К сожалению, посетить не получилось, но хоть видео посмотрю:
https://www.youtube.com/watch?v=E62S4QNltLc
https://www.youtube.com/watch?v=fhZXqTGsunw

Читать полностью…

Точка входа

Статья про будущее со стороны безопасника с опытом 30+ лет: https://www.schneier.com/blog/archives/2017/02/security_and_th.html

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

Можно подумать, что так происходит каждый раз, когда технологии делают новый шаг, например, заменили коня на машину - появились крупные ДТП. С интернетом вещей будет наблюдаться та же тенденция, но с единственным отличием: масштаб атак будет гораздо шире при относительно низкой стоимости и доступности. (Computer security is now everything security. There's one critical difference, though: The threats have become greater.) А все это потому что мы уже не имеет вещи со встроенными в них компьютерами - мы имеем компьютеры, с прицепленными к ним вещами.

Как быть? По мнению автора (и моему скромному тоже), необходимо уделять больше внимания безопасности на всех уровнях создания и жизни продукта. Уделять это внимание стоит не только производителям, но и государству, потребителям, да и вообще любому человеку. (We need to link people with the same zeal that we are currently linking machines. "Connect it all" must be countered with "connect us all.")

Как-то так. Статья совсем не радужная, но достаточно убедительная.

Читать полностью…

Точка входа

Посмотрел видео на котором Алексей Редозубов (один из топовых авторов хабра) "на пальцах" поясняет работу мозга. Точнее то, как он ее видит. Я просмотрел все его видео цикла "Логика сознания" и могу сказать, что данная запись отличается от остальных локаничностью и полезной информацией на "кубический метр". Логическая цепочка рассуждений при этом не теряется.

Если не знакомы с деятельностью Алексея, то рекомендую начать с этого видео.

P.S. Интересно было бы в жизни когда-нибудь посмотреть на эксперимент с лабороторной крысой, которой по кусочкам вырезают мозг, чтобы проверить, теряет ли она от этого память о том, где выход из лабиринта или нет. (Не теряет).

https://www.youtube.com/watch?v=7c6YUJ0JuqI

Читать полностью…

Точка входа

Хочу вспомнить чем закончился 2016ый: сети начали генерировать изображения по текстовому описанию, и наоборот - человекочитаемое текстовое описание по изображению.

Описание процесса генерации картинки по тексту:
https://arxiv.org/pdf/1612.03242v1.pdf
Это, конечно, фантастика. Со временем начнут генерировать видео по сценарию. И, скорее всего, на первый план вылезет генерация порно видео, т.к. сценарий незамысловат, да и сцены понятны.

А здесь сотрудник Google в Яндексе вещает о том, как они решают обратную задачу: генерируют описание того, что изображено на картинке. Например: в программу загружается изобржении с ребенком, спящим рядом с красным плюшевым медведем и прога на выходе выдает что-то вроде "ребенок лежит рядом с красным игрушечным медведем".
https://events.yandex.ru/lib/talks/4318/

Зачем смотреть сериалы о будущем, когда можно просто открыть записи с митапов по машиннорму обучению и получить те же самые ощущения?

Читать полностью…

Точка входа

Нашел интересный канал на ютубе по машинному обучению. Парень снимает скринкасты по решению простых задач с помощью ml. Явно фанат TensorFlow.

Если вам интересно посмотреть видео по решению задачи классификации с кодом и комментариями, то вот:
https://www.youtube.com/watch?v=4urPuRoT1sE

Использует: pandas, numpy, matplotlib, tensorflow.
Можно смотреть с 12ой минуты, до этого ничего интересного.

Ссылка на его канал: https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A

Читать полностью…

Точка входа

Закончил смотреть курс по PostgreSQL DBA2. Рекомендую ознакомится всем, кто работает с этой СУБД:
https://postgrespro.ru/education/courses/DBA2
Курс бесплатный и создан комитерами постгреса. Все как надо: с теорией и живыми примерами, которые можно повторить у себя в терминале.

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

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

И сразу кину ссылку на плейлист на ютубе:
https://www.youtube.com/watch?v=iODeKnTD1kA&list=PLaFqU3KCWw6JgufXBiW4dEB2-tDpmOXPH&index=1

Читать полностью…

Точка входа

Первая глава книги www.tensorflowbook.com

Читать полностью…

Точка входа

Всем привет! В прошлом году я начал этот канал, как эксперимент - хотел посмотреть как реагирует народ на айтишную и околоайтишную тематику в телеграмме. Результат меня удивил - не ожидал, что за месяц подпишется 2000 человек. Но т.к. основная моя деятельность - программирование, а не написание постов, то я прервал эксперимент, перестал выкладывать материалы и перенес все внимание на свои проекты. После этого я ни раз получал призывы от подписчиков продолжить писать (что несомненно является хорошим показателем). И я решил продолжить публикации. Но без долгосрочных обещаний, например, по поводу курсов по Go. С ними я, очевидно, переоценил количство своего свободного времени.

Тематика канала сохранится. Т.к. я все еще тимлид и все еще работаю в сфере IT, то буду постить информацию, которую считаю необходимой для освоения программным инженером нашего времени.

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

Например:
http://www.thedotpost.com/2016/10/kelsey-hightower-self-deploying-go-applications
Инженер гугла рассказывает, как они воспрнимают деплой. Для них мир - это большой распределенный компьютер, на который надо залить приложения. ...это не пара хостов в датацентре.

Мораль: надо почаще выбираться на встречи/конференции крупного масштаба, т.к. там проще всего и восхитится, и почувствовать объем информации, который еще необходимо пропустить через себя.

Остальные доклады (с видео) можно найти здесь: http://www.thedotpost.com/conference/dotgo-2016

Читать полностью…

Точка входа

Видео, доступно объясняющее, какие достижения есть в наше время по генной инженерии и что нас ждет в будущем:
http://laughingsquid.com/how-crispr-technology-and-genetic-engineering-will-change-the-future-forever/

После долгих рассуждений с коллегой задались вопросм: когда люди станут киборгами (полулюдьми-полумашинами), можно ли будет развернуть сервер в голове человека на мощностях мозга?

Читать полностью…

Точка входа

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

Примеров годной реализации SPA со вторым ангуляром почти нет в открытом доступе, но один все-таки попался (с комментариями к коду): https://github.com/ngrx/example-app/tree/master/src

У неподготовленных, может вскипеть мозг от обилия новых терминов. Особо сильно воздействует на психику одна либа, назваемая RxJS. Ее фишка в том, что она предлагает новый подход к обработке ассинхронных событий: все является потоками, на которые можно подписаться

Что такое RxJS: https://www.youtube.com/watch?v=NK-WzH3RBds
Дока RxJS: http://reactivex.io/documentation/observable.html
Годные примеры применения методов либы (сразу в jsbin): https://gist.github.com/btroncone/d6cf141d6f2c00dc6b35

Сразу приходит на ум вопрос, что есть уже промисы, зачем что-то еще!? Но с промисами не получится нормально поработать с вебсокетами (потому что промисы отрабаывают один раз, а данные из сокетов хлещут постоянно). С RxJS не будет разницы, откуда берутся данные: клик мыши, xhr запрос или новое сообщение по сокетам - все под одной гребенкой, все это источники, на которые можно подписаться

Видео с докладом о свежих трендах в JS разработке, после которого все становится на свои места: https://www.youtube.com/watch?v=1abiJ9VBsDc

И последнее: долго сопротивлялся новым редакторам кода, но решил попробовать VSCode (https://code.visualstudio.com), т.к. на многих видосах в последнее время сверкает именно он. Остался доволен. После саблайма, особенно приятно наблюдать нормальные подсказки по коду и автоматические переходы на реализации функций. Второе работает так себе только в одном месте: при работе с интерфейсами в Go

Читать полностью…

Точка входа

Что есть нанотехнологии

Читать полностью…
Subscribe to a channel