Последний месяц было много интересных новостей про React Native. Сначала в Твиттере запостили слух, что Facebook планирует отказаться от него в основном приложении. Аргументировали это тем, что у библиотеки не выходили релизы с начала апреля.
На это пришлось отвечать Дэну Абрамову и всех успокаивать. Сказал, что они много работают над RN, в том числе над улучшением core-архитектуры. После этого почти сразу вышел новый релиз и все немного успокоились.
Так было до начала прошлой недели, когда прилетели новости от Airbnb. Это одна из крупнейших компаний после FB по числу разработчиков на RN и вкладу в его опенсоурс. Они заявили, что отказываются RN и подробно объяснили почему в серии постов.
Что это может означать? Пока еще рано говорить о каком-то глобальном тренде. Кейс Airbnb достаточно специфичный. А в более простых приложениях наоборот все чаще переходят на общее RN-приложение.
YouTube для разработчиков
В разработке очень важно перенимать чужой реальный опыт. Для этого идеально подходят доклады с конференций. Обычно я смотрю выступления с крутых конференций вроде Хайлоада или по рекомендации знакомых.
Самому найти интересный доклад бывает сложно. Там может быть непонятное название или просто мало просмотров.
На днях нашел сервис DevTube — буквально youtube для разработчиков. Чуваки спарсили кучу технических докладов и лекций . Разделили их по темам, технологиям и языку доклада. Русского языка пока нет, но наверняка со временем добавят.
Я обещал вам писать посты чаще, но не вывез завал из-за запуска новых проектов. Про все это я обязательно скоро расскажу🙌
• • •
А еще мы запустили новый курс по Python. Мы целиком его переделали, но оставили все лучшее: четыре недели обучения, учебные чаты с ответами на вопросы и код-ревью.
Начало уже через две недели — отличный способ провести летний месяц.
→ https://bluzir.me/python/course
Вчера начались блокировки публичных прокси и VPN. В связи с этим Павел Дуров начал выплачивать биткоин-гранты их владельцам и пообещал делать это весь следующий год.
Вы тоже можете поучаствовать и поднять свой небольшой прокси-сервер. Это займет у вас всего 5 минут времени и от 3 долларов в месяц. Так вы сможете гарантировать доступ к Telegram для своих близких и друзей.
Подбробнее об этом я рассказал в посте на Medium:
→ Поднимаем свой прокси-сервер для Telegram
Очередной пост про блокировку
Вы наверняка уже знаете, что блокировка Telegram в России — дело времени. Пока в реестр внесли только ссылки на сайт и веб-версию. Но скоро могут начать ограничивать и доступ к серверам. Позиция Telegram: «Мы будем бороться с блокировками, но все равно готовьте средства обхода».
Начну с того, что я считаю неправильным переход в другие соцсети или мессенджеры. Никто не может запрещать нам пользоваться тем, что нам удобно. Все мои посты будут продолжать выходить только на этом канале.
Теперь поговорим про способы обхода блокировки. Хочу выделить три, я разделил их по уровням сложности:
Прокси-серверы — самый простой и удобный способ. Это промежуточный сервер между вами и Telegram, который пропускает через себя все запросы в обход блокировки.
Телеграм позволяет настраивать SOCKS5-прокси нажатием одной кнопки. После этого в настройки автоматически добавляется информация о прокси, и теперь все запросы будут идти через него. Удобно, что после настройки можно его отключить в настройках. И включить обратно только когда он понадобится.
Может показаться подозрительным, что все запросы будут идти через незнакомый сервер. Но не нужно волноваться: прокси будут работать только для Телеграма. Весь остальной трафик будет идти в обычном режиме. А в самом Telegram зашифрованы соединение и переписка, поэтому никто не сможет получить к ней доступ.
Есть и недостатки: такой сервер может легко упасть под нагрузкой, тогда вы не сможете подключиться. Так произошло вчера в момент объявления решения судом. Также такое решение не поможет от блокировки веб-версии.
Ссылки: @socks5_bot, http://telegram-s.org, http://opentg.us
Оптимальный вариант — добавить по ссылке один из прокси и отключить его в настройках, пока блокировка не заработала. А ссылки на остальные сохранить где-нибудь вне Телеграма.
Но главное: не разводите панику и запасайтесь несколькими решениями. В следующих постах я расскажу про готовые сервисы VPN и как поднять собственный за 3 евро в месяц.
Почему веб-разработчикам нужно перейти на Firefox🔥🦊
Еще 10 лет назад самым популярным браузером был IE. Но разработчики использовали Firefox вместе с Firebug — лучшими средствами разработчика на тот момент.
Затем Гугл выпустил Chrome и всего за несколько лет он захватил рынок. Веб-разработчики тоже перешли на Chrome Devtools и они стали стандартом в веб-разработке.
Так было пока ребята из Mozilla не выпустили Quantum — новую версию Firefox. Там переписали 4 миллиона строк на самых новых технологиях: Servo, Rust и Quantum/Stylo. И это окупилось — он выигрывает у Хрома в скорости и в потреблении памяти.
Но это не единственная причина, чтобы перейти на Firefox:
— Новые крутые средства разработчика: поддержка CSS Grid, Box Model, CSS-переменных
— Поддержка и развитие новых технологий: WebAssembly, VR и открытые технологии распознавания речи
— Новая консоль и дебаггер
Почитайте полный обзор преимуществ и возможностей Quantum — их реально много.
Про резюме и отклики
Прошлая неделя получилась напряженной, поэтому было мало постов. Мы запустили второй поток курса по Python — ребята уже написали своего телеграм бота. А на работе готовим проект к бета-тестированию и активно собеседуем людей в команду.
Про сами собеседования расскажу позже. А пока давайте поговорим про резюме и отклики на вакансию. Вот основные вещи, которые нужны для качественного отклика:
🙅♂️ Уберите из резюме нерелеватный опыт работы. Это здорово, что вы успели поработать в службе поддержки провайдера. Но прямо сейчас работодателя интересует ваш опыт по конкретной специальности.
💻 Пишите качественное сопроводительное письмо. Не подойдет «хочу попасть к вам на собеседование» или «заинтересовала ваша вакансия». Покажите в отклике, что вы ознакомились с вакансией, технологиями и сферой деятельности компании.
☯️ Соблюдайте баланс. Резюме не должно превратиться в курсовую работу. Не нужно описывать каждую задачу, которую вы решили и каждую технологию, которую использовали. Слишком мало информации о проектах, задачах и технологияx — тоже плохо.
🙊 Не врите о навыках. Догадаться, что вы соврали можно за несколько вопросов. Это испортит о вас впечатление. Лучше честно расскажите, чего вы не знаете и что готовы этому обучиться.
Лучше всего про это написано у Ильяхова в «Пиши, сокращай». Также у него есть несколько статей на эту тему: про рассказ о себе, про отлкик на вакансию мечты.
Как вам пост? Рассказать подробнее с хорошими и плохими примерами?
Большую часть времени я разрабатываю бэкэнд. Часто после выключения локальный сервер продолжает занимать порт. Приходится убивать процесс сервера вручную.
Стандартный процесс убийства такой:
— Ищу какой процесс занял порт через lsof -i :8000
— Вручную убиваю через kill -9 pid
При одном процессе это нормально, но когда воркеров несколько, то начинает напрягать.
Сегодня наткнулся на утилиту fkill, которая сильно упрощает этот процесс. Можно просто ввести fkill :8000
и она убивает все процессы на порту. Также можно ввести fkill
и откроется удобный поиск по названию процесса с автодополнением🔥
Подборка полезных JavaScript-модулей🔥
На Hacker Noon поделились полезными JS-библиотеками. Пока что это самый годный топ, который я видел в этом году. Согласен с большинством библиотек оттуда и использую их сам.
• • •
В последнее время на канале стало больше постов про нетехническую часть разработки. Но не переживайте — мы не будем забывать про само программирование. Дальше будет больше интересных технических постов и опыта использования.
Как я перешел на pipenv🔮
Когда я только учился Python, процесс создания виртуальной среды выглядел одинаково: я cоздавал ее через virtualenv, явно указывал там версию Python и путь к ней. Затем активировал и устанавливал зависимости через pip. Зависимости в файл приходилось выносить вручную.
Через время я узнал про virtualenvwrapper. Теперь мне не нужно было запоминать путь к среде и вручную ее активировать. Достаточно было запомнить несколько команд. Я думал, что удобнее процесс работы со средами уже не сделать, когда накткнулся на pipenv.
Это обертка одновременно над virtualenv и pip. Напоминает собой пакетные менеджеры, к которым привыкли разработчики на JS. Вот некоторые преимущества:
— Не нужно вручную создавать виртуальную среду, она создается автоматически, если ее нет в проекте.
— Файл зависимостей создается автоматически.
— Версия Python передается с помощью аргументов --two
или --three
— Есть возможность построить график зависимостей.
У pipenv хорошая документация и можете легко начать ее использовать. Работает, как магия.
Наткнулся на пост разработчика, ушедшего из Гугла, чтобы начать работать на себя.
В Гугле всё ожидаемо: бездушная корпорация; проекты забирают на середине в рамках менеджерских оптимизаций; на повышение влияют не реальные дела, а метрики; решение о повышениях принимают случайные анонимные люди, которые тебя не знают.
Про это еще в 2013 очень хорошо написал Павел Дуров:
«Бездельничайте, учитесь, играйте, рисуйте, создавайте музыку, занимайтесь фрилансом, открывайте стартапы, делайте никому не нужные проекты, голодайте — но никогда не идите работать в корпорации.»
Не нужно мечтать о работе в Яндексе или Гугле. Вокруг куча молодых и интересных продуктов. Там можно работать среди энтузиастов и становиться ключевым сотрудником. Ни бесплатная еда, ни тренажерный зал в офисе не сделают вас надолго счастливым✊️
Парсинг HTML
Разработчик самой популярной Python-библиотеки для запросов — requests выпустил библиотеку для парсинга HTML — requests_html.
https://github.com/kennethreitz/requests-html
Она легковесная и простая — там всего 200 строк. Внутри она использует обычную библиотеку requests и lxml — и работает скорее как удобное API для них.
Раньше для парсинга HTML я использовал связку bs4 + requests. Теперь можно обходиться одной библиотекой.
Когда я только учился программированию — я очень не любит парсить сайты: для этого приходилось почти что писать регулярки. Ни о какой автоматизации речи и не шло. Но благодаря таким библиотекам порог вхождения снизился. И процесс работы с HTML уже не сильно уступает работе с API.
Прислали гайд о том, как сделать тачбар полезным: http://vas3k.ru/blog/touchbar/.
Стало удобнее, вывел полезные хоткеи и информацию, но все равно ощущается как-то колхозно.
Почему никто не ждет от вас ничего особенного
Сегодня хочу поделиться статьей Максима Ильяхова «Мастерство». Я часто советую ее людям и люблю перечитывать сам.
Никто не хочет, чтобы вы росли. Звучит слишком резко, но чаще всего это так. Работодатель не хочет, чтобы вы переросли свою должность. Не все готовы вам предложить повышение и тогда вам придется уходить из компании. А они этого не любят.
Если вы фрилансер, то клиента устраивает нынешняя цена и качество работы. Никто не захочет узнать, что работа стала дороже, потому что стала лучше.
И даже ваши друзья привыкли к вам нынешнему. Они не хотят, чтобы вы стали от них отличаться. И как известно окружение может как тормозить, так и стимулировать профессиональный рост.
Быть или не быть мастером своего дела — это личный выбор каждого. Есть масса других способов прожить жизнь. Но если вы все-таки примете такое решение, то остальные не должны вам в этом мешать.
На выходных я написал про то, как нейросети повлияют на рекламу будущего. Но даже без нейросетей рекламные кабинеты сегодня могут очень многое.
У фейсбука с 2010 года есть возможность для любого скачать архив своей страницы. И он может вас напугать.
— Там есть информация о всех ваших действиях с момента регистрации.
— Геолокация всех фотографий
— Геолокация всех мест, откуда вы когда-то заходили в фейсбук
— Ваш усредненный портрет, сделанный из всех фото с вами
Узнать, что еще фейсбук знает про вас и как скачать этот архив, вы можете из статьи.
https://hackernoon.com/your-facebook-data-is-creepy-as-hell-319ae47117e6
Наткнулся на крутую статью, где рассказывают как состязательные нейросети (GAN) повлияют на рекламу будущего.
Уже сейчас они могут генерировать фейковых животных, знаменитостей или искусство, но в небольшом разрешении. В будущем качество и скорость работы будет увеличиваться. И наверняка их на вооружение возьмут маркетологи.
Сети смогут на лету генерировать любое изображение специально под вас. «Корова и дельфин наслаждаются вместе жизнью» — не проблема. «Человек в одежде как у вас стоит на фоне машины, которую вам рекламируют» — очень реалистичный пример.
Немного страшно от таких перспектив, особенно если знать возможности нынешних рекламых кабинетов.
https://hackernoon.com/the-new-neural-internet-is-coming-dda85b876adf
Как разработчики используют Python
Jetbrains недавно выкатили результаты своего ежегодного опроса среди разработчиков. Есть информация по всем популярным языкам программирования, но мне больше всего интересно было почитать про Python.
Доля Python 3 выросла с 53 до 75 процентов. Очень круто, что все больше отказов от второй версии. Также больше половины опрошенных используют Python для анализа данных. На втором месте веб-разработка и только потом идет машинное обучение.
Еще интересно, что у Flask и Django использует примерно одинаковое количество людей. Но самые популярные python-библиотеки все равно Numpy, pandas и matplotlib.
Если сделать скидку на количество опрошенных, то Python можно считать в первую очередь языком для анализа данных. Количество веб-разработчиков на Python тоже растет, но не успевает за темпами датасайнса.
Как запустить свой сторонний проект🦄
Наткнулся на интересную статью на aytekin/how-to-build-a-startup-without-quitting-your-day-job-d9d1176709">IndieHackers. Автор рассказывает, как запустил свой проект в свободное от работы время. В итоге он вырос до 3.2 миллиона пользователей и 100 сотрудников. Вот некоторые тезисы из его статьи:
Вам не обязательно увольняться с работы, чтобы запустить свой проект. Многие крутые вещи в мире разрабатывались в свободное от работы время. Facebook, Twitter, Instagram, Uber, Product Hunt, Unsplash, Pinterest — все они начинались именно так. Но в один момент они превратились в основное дело и бизнес для своих создателей.
Сторонние проекты повышают креативность. После того, как Гугл стал поощрять сотрудников тратить 20% времени на сторонние проекты, остальные 80% стали более продуктивными.
Не стоит откладывать начало, в будущем у вас не будет больше времени. Выделяйте стабильное время каждый день и результат не заставит себя ждать. Но в то же время не слишком давите на себя, устанавливая дедлайны.
Проект не обязательно должен быть чем-то сложным. Найдите боль, которую можно решить или неудовлетворенную потребность. Посмотрите в топ ProductHunt. Многие люди решили там боль простым способом.
Пусть это будет весело. Сам процесс должен приносить удовольствие. Проект, который вы не будете любить быстро закроется. Вы найдете множество причин им не заниматься.
Привыкните к несовершенству. Проект не должен быть идеальным и долгое время не будет таким. Не бойтесь выпускать сырые версии. Эксперименты — лучший способ развить ваш проект. Начните получать фидбэк от пользователей как можно раньше.
• • •
А еще мы отдохнули и теперь посты будут выходить также часто, как и раньше. Спасибо за терпение 💪
Пережили блокировку?🤔
anonymous poll
Я не обходил блокировку — все работает – 461
👍👍👍👍👍👍👍 55%
Я обошел блокировку — все работает – 379
👍👍👍👍👍👍 45%
👥 840 people voted so far.
Github сегодня отмечает десятилетие. В честь этого они выпустили страницу с самыми важными моментами за это время:
https://github.com/ten
Сервис используют уже 27 миллионов разработчиков. За 10 лет он вырос из онлайн-хранилища репозиториев в полноценную социальную сеть. А профиль на Github часто служит заменой портфолио для разработчика.
Больше всего ссылок на канале ведут на Гитхаб-репозитории, поэтому не могу не отметить этот момент🎉
Недавно я рассказал про удобную утилиту для убийства процессов. Сегодня продолжу тему консольных утилит и расскажу про замену команды cd
.
Я постоянно использую консоль для навигации по системе. Со временем я научился быстро переключаться между директориями и использовать автодополнение через Tab
. Но это все равно неэффективно и приходится вводить слишком много одинаковых команд.
Здесь на помощь приходит утилита autojump. Она запоминает в какие директории вы переходите при помощи cd
и собирает об этом статистику. Достаточно одного перехода, чтобы утилита добавила директорию в список.
После этого можно вызвать команду j <dirname>
из любого места системы. Утилита сама догадается, куда вас перенаправить. Можно даже не вводить название директории целиком, достаточно заглавной буквы.
Также есть много других возможностей. Про них можно прочитать в статье с интересными кейсами использования.
Когда-то давно рекомендовал youtube-канал LearnCode.academy. Там выходили хорошие туториалы по React, Redux и Vue.JS. В свое время начал обучение как раз с их туториалов.
А еще там каждый год делают полный обзор актуальных технологий веб-разработки. Рассматривают фронтенд, бэкэнд и девопс: какие технологи использовать обязательно, а какие уже умирают.
И вот у них вышло видео за этот год. Практически со всем оттуда я согласен. Также отдельно доступен майндмэп, если не хочется смотреть.
Наткнулся сегодня на две свежие JS-библиотеки:
Rough.js — позволяет рисовать фигуры на сайте, как если бы они были нарисованы «от руки». Поддерживает все основные фигуры и даже SVG (примеры).
Driver.js — помогает управлять вниманием посетителя сайта. Затемняет весь сайт, кроме нужного участка. Может пригодится для рассказа пользователю о новом интерфейсе или для продаж.
Английский язык для разработчика🇬🇧
Мы живем в англоговорящем мире. Большую часть контента делают на английском. Видео, статьи и книги по разработке — не исключение. Если видите хорошую статью, то скорее всего это перевод. Остается надеяться, что переводчик ничего не додумал и не переврал.
С книгами ситуация еще хуже: они устаревают еще до выхода в оригинале. А пока книгу переведут и издадут, из нее можно будет выкинуть половину.
Как обучиться разработке без английского? Для начала перестаньте бояться. Возьмите переводчик и начните читать оригинальные документации, туториалы, статьи. Технический английский понятнее художественного — там простая лексика. А технические термины и так знакомы всем разработчикам. Спустя время заметите, что справляетесь и без словаря.
Также про обучение английскому есть отличная статья у Максима Ильяхова. Он проработал несколько лет в школе иностранного языка. Делится опытом и рассказывает, как эффективно учить английский язык после школы.
Изучаем ML вместе с Гуглом
Гугл выпустил свой бесплатный курс по основам машинного обучения. Там 25 уроков и 40 заданий на приблизительно 15 часов времени. Курс практический и там используется API TensorFlow.
Хороший повод вкатиться в нейросети, если еще не успели.
В Бюро Горбунова обновили свой сайт с советами. Теперь они разделены по карточкам с крутым дизайном. Стало удобнее искать и читать.
Хотя бюро специализируется на дизайне, большинство советов подойдут не только дизайнерам. Там есть карточки про управление, редактуру текста, организацию работы и процессов.
— Как повысить зарплату
— Как успевать к дедлайну
— Как разрешать противоречия
С выгоранием сталкивался практически любой разработчик, особенно в стартапах.
Наткнулся на EliFitch/just-leave-no-job-is-worth-burning-out-for-33b5644942d7">Медиуме на статью с интересным тезисом — «Ни одна работа не стоит того, чтобы выгорать из-за нее».
Выгорание — как рана. Будет только разрастаться, если ничего не предпринять. В худшем случае оно станет преследовать вас на любой работе. Вам просто перестанет нравиться то, чем вы занимаетесь.
Если чувствуете, что работа не приносит никакой радости и приходится пересиливать себя, то просто дайте себе отдохнуть. Возьмите отпуск, съездите в другую страну, на природу, etc. Если и это не поможет, то вероятно время уходить.
Это не подходит всем без исключения. Но не нужно придумывать себе причины остаться, если у вас нет семьи и детей на содержании. За свое счастье вы отвечаете только перед самим собой.
Часто разработчики выкладывают на Гитхаб свои токены и секретные ключи вместе с кодом. «Да кому нужен мой код», «Никто не будет его воровать».
Другие думают, что достаточно убрать токен в одном из коммитов. Раз токена нет в итоговом коде, то и своровать его не получится.
Ошибаются и те, и те. Появилась утилита, которая проходит по всей истории Гитхаб-репозитория и ищет там секретные ключи. Можно воровать токены от ботов и социальных сетей, ключи от платежных систем и AWS.
Ее работу можно автоматизировать и пройтись по всему Гитхабу. Следите за тем, что выкладываете в открытый доступ🙀
https://github.com/zricethezav/gitleaks
На прошлой неделе на vcru вышла статья про рынок подкастов в России. Пишут, что рынок в зачаточном состоянии, но хотя бы появился выбор.
Подкастов про разработку на русском тоже стало больше. Там выделяется фронтенд и JS — подкастов так много, что приходится выбирать. А вот про Python или даже просто про бэкенды я подкастов на русском не находил.
Кратко поделюсь здесь теми подкастами, что слушаю сам: Фронтенд Юность — смешно про фронтенд, но не всегда информативно. Бывает много мата; Frontend Weekend — интервью с людьми из индустрии. Небольшие и интересные выпуски; Zavtracast — смешно и интересно про технологии, один из самых качественных русскоязычных подкастов; Личная эффективность — не про IT, но помогает организовать рабочий процесс.
На английском языке рекоменую: Soft Skills Engineering — про нетехниские области разработки и культуру работы; Full Stack Radio — возможно лучший подкаст про разработку.
А что вы слушаете из подкастов? Можете порекомендовать мне → @bluzir
Есть ли у вас коллеги, которые пытаются следовать всем стандартам оформления кода? Называют переменную в одну букву, чтобы уместиться в 80 символов?
Так создается видимость эффективной работы, как для их собственного мозга, так и для окружающих.
При этом зачастую эти люди не замечают из-за этого не менее важное — код можно написать эффективнее. Использовать больше возможностей языка. Сделать в итоге код чище, не из-за количества символов, а из-за его архитектуры.
Стайлгады должны идти от архитектуры, а не от переносов кода и коротких переменных.
Не будьте таким коллегой и отправьте это видео своим. Оно именно про это.
https://www.youtube.com/watch?v=wf-BqAjZb8M
Пост про микросервисы хорошо зашел. Так что начал писать подробную статью с интересными кейсами их использования.
А пока можете прочитать одну из моих предыдущих статей про анализ данных из жизни.
bluzir/анализируем-посещения-фитнес-клуба-6406df11b35e">💥Анализируем посещения фитнес клуба
Статьи из этого цикла тоже продолжать выходить. Буду рассказывать, как добывать данные и визуализировать их.
Оставайтесь на связи🔥