Точка входа
572 subscribers
13 photos
1 file
60 links
Спасибо, что зашли на канал!

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

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

В опенсорсе, само, собой, комментарий к коммиту - это лицо программиста, как и код. А вот что на счет закрытых проектов? Думаю, ситуация не меняется.
Нашел интересный канал на ютубе по машинному обучению. Парень снимает скринкасты по решению простых задач с помощью ml. Явно фанат TensorFlow.

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

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

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

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

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

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

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

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

Зачем смотреть сериалы о будущем, когда можно просто открыть записи с митапов по машиннорму обучению и получить те же самые ощущения?
Свежий недельный курс по машинному обучение от MIT и Nvidia (выложили несколько дней назад).
http://introtodeeplearning.com/index.html
Пока только пробежался, есть лабы на TensorFlow.
Посмотрел видео на котором Алексей Редозубов (один из топовых авторов хабра) "на пальцах" поясняет работу мозга. Точнее то, как он ее видит. Я просмотрел все его видео цикла "Логика сознания" и могу сказать, что данная запись отличается от остальных локаничностью и полезной информацией на "кубический метр". Логическая цепочка рассуждений при этом не теряется.

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

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

https://www.youtube.com/watch?v=7c6YUJ0JuqI
Тем временем люди из гугла решили сертифицировать "дата инженеров":
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

...вам тоже стало интересно какая зарплата у людей с такими навыками?:)
Статья про будущее со стороны безопасника с опытом 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.")

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

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

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

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

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

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

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

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

P.S. сегодня вышла новая версия языка.
По моему мнению - это главный слайд митапа
Хорошая визуализация градиентного бустинга:
https://arogozhnikov.github.io/2016/06/24/gradient_boosting_explained.html

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

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

По ссылке обзор 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. режим инкогнито не помогает сохранить анонимность в сети.
Очень часто разработчики, считающие себя заскилованными, не могут на интервью ответить на такие вопросы: есть ли альтернативы наследованию? И какие вообще проблемы бывают с наследованием?

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

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

Но хочу сразу сказать, что я не со всем согласен с автором ролика. Высказывание, что композиция лучше наследования во всех случаях, не является для меня догмой. Композиция - это просто еще один вариант организации логики системы... Достаточно мощный вариант.
Точка входа
Посетил Go митап в офисе Авито. Ощущение от мероприятия: приятно посещать встречи, где разговаривают не о хелоуворлдах. Когда будут видео, советую взглянуть доклады от представителя badoo и от тимлида Островка. Их истории о разном, но и там и там есть…
Выложили видео с митапа по Go в Авито. Всего было 4 доклада, но, считаю, наиболее полезный доклад для Go сообщества прозвучал от Паши Мурзакова (компания Badoo): https://www.youtube.com/watch?v=uO268voCGwA

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

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

Здесь можно посмотреть все 4 доклада: https://habrahabr.ru/company/avito/blog/322384/
Сегодня на канале @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) умный генератор простейших приложений если и удастся создать, то это был бы не финальный аккорд профессии программиста, а огромная помощь всем командам разработчиков - сократилось бы время на раскачивание джуниоров, количество которых ,можно было бы как раз подсократить.

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

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

Такие принципы собрали в одну кучу и назвали их 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
Forwarded from МЕТАМЕТРИКА
#СвоихНеБросаем подставим информационное плечо нашим бойцам и нашим людям на Донбассе и на Украине. Похоже, в сетях начался флэшмоб. #метаметрика поддерживает! Если вы с нами - просим репоста!! #z 🔁