Наконец дошли руки до постепенного обновления сайта Форвеба. Выкинул Вордпресс, перешёл на статику, минимально задизайнил, выкинул старые неактуальные статьи, но впереди всё ещё много работы.
Если интересно, следите за разработкой — github.com/forwebdev/site
Заходите почитать статьи, если ещё их не видели — forwebdev.ru
Если интересно, следите за разработкой — github.com/forwebdev/site
Заходите почитать статьи, если ещё их не видели — forwebdev.ru
«Цель» Голдратта
Доступное и увлекательное введение в теорию ограничений, применимую практически к любому процессу, системе и даже к личной жизни — http://andrew-r.ru/notes/goldratt-the-goal
Доступное и увлекательное введение в теорию ограничений, применимую практически к любому процессу, системе и даже к личной жизни — http://andrew-r.ru/notes/goldratt-the-goal
Как составить личный финансовый план и как его реализовать
https://www.mann-ivanov-ferber.ru/books/mif/finplan/
По рекомендации @dielone (спасибо!) прочитал книгу о том, как взять под контроль свои финансы, начать откладывать и не потерять сбережения. По сути обо всём этом должны рассказывать в школе ¯\_(ツ)_/¯
Люди часто покупают что-то в кредит и потом не вылезают из долгов. В книге объясняется, как этого избежать и системно подойти к реализации любой финансовой цели, будь то покупка автомобиля или достойная пенсия.
Всё сводится к контролю доходов и расходов и регулярному инвестированию (это возможно при любом уровне дохода). Автор доступно и поверхностно рассказывает об инструментах инвестирования вроде облигаций, ПИФов, ETFов, акций, валют и драгоценных металлов, и объясняет риски и преимущества каждого инструмента.
---
Кстати, если вам тоже интересны инвестирование и защита накоплений от инфляции, ребята из чатика Форвеба сделали отдельный ламповый тематический чат, присоединяйтесь и делитесь опытом или задавайте вопросы — https://www.tgoop.com/joinchat-Cm9nK1B1_XOmiLDQOtgfcg
https://www.mann-ivanov-ferber.ru/books/mif/finplan/
По рекомендации @dielone (спасибо!) прочитал книгу о том, как взять под контроль свои финансы, начать откладывать и не потерять сбережения. По сути обо всём этом должны рассказывать в школе ¯\_(ツ)_/¯
Люди часто покупают что-то в кредит и потом не вылезают из долгов. В книге объясняется, как этого избежать и системно подойти к реализации любой финансовой цели, будь то покупка автомобиля или достойная пенсия.
Всё сводится к контролю доходов и расходов и регулярному инвестированию (это возможно при любом уровне дохода). Автор доступно и поверхностно рассказывает об инструментах инвестирования вроде облигаций, ПИФов, ETFов, акций, валют и драгоценных металлов, и объясняет риски и преимущества каждого инструмента.
---
Кстати, если вам тоже интересны инвестирование и защита накоплений от инфляции, ребята из чатика Форвеба сделали отдельный ламповый тематический чат, присоединяйтесь и делитесь опытом или задавайте вопросы — https://www.tgoop.com/joinchat-Cm9nK1B1_XOmiLDQOtgfcg
Неплохая идея для улучшения UX формы регистрации: новая версия Chrome предлагает использовать автоматически сгенерированный рандомный пароль
Пользуетесь менеджерами паролей?
anonymous poll
Не пользуюсь и придумываю пароли сам – 212
👍👍👍👍👍👍👍 43%
Пользуюсь и генерирую рандомные пароли – 154
👍👍👍👍👍 31%
Пользуюсь и придумываю пароли сам – 104
👍👍👍 21%
Не пользуюсь и генерирую рандомные пароли – 25
👍 5%
👥 495 people voted so far.
anonymous poll
Не пользуюсь и придумываю пароли сам – 212
👍👍👍👍👍👍👍 43%
Пользуюсь и генерирую рандомные пароли – 154
👍👍👍👍👍 31%
Пользуюсь и придумываю пароли сам – 104
👍👍👍 21%
Не пользуюсь и генерирую рандомные пароли – 25
👍 5%
👥 495 people voted so far.
Удивительно, что по результатам опроса большинство не пользуется менеджерами паролей и придумывают пароли сами. Кажется, такой вариант жизнеспособен только если у вас хорошая память или если вы используете один и тот же пароль на многих сайтах 🤔 Раньше я тоже почти везде использовал один и тот же пароль, но горький опыт научил меня так не делать.
Одним утром я открыл Телеграм и увидел в @forwebdev рекламу каких-то миостимуляторов, которую не публиковал; оказалось, что незадолго до этого произошла утечка данных одного сервиса, и мой пароль на этом сервисе совпадал с паролем моего аккаунта в Амплифере. Злоумышленники каким-то образом получили доступ к моему и ещё нескольким аккаунтам в Амплифере и опубликовали эту злочастную рекламу. Рекламу я удалил, но картинки из неё теперь живут в виде стикеров.
Одним утром я открыл Телеграм и увидел в @forwebdev рекламу каких-то миостимуляторов, которую не публиковал; оказалось, что незадолго до этого произошла утечка данных одного сервиса, и мой пароль на этом сервисе совпадал с паролем моего аккаунта в Амплифере. Злоумышленники каким-то образом получили доступ к моему и ещё нескольким аккаунтам в Амплифере и опубликовали эту злочастную рекламу. Рекламу я удалил, но картинки из неё теперь живут в виде стикеров.
Читатель делится способом запоминать пароли без мучений (правда утечка паролей такого вида всё равно опасна):
Forwarded from Влад
Привет! По поводу паролей — есть метод и без хорошей памяти, и без генераторов. У пароля должна быть какая-то статическая часть, как у классического, и какая-то динамическая, которая зависит от контекста ввода (название сервиса, самое банальное). Чтобы скомпрометировать пароли от других сервисов, нужен человек с логикой. По крайней мере, я не слышал про алгоритмы, которые этим занимаются.
Хорошая статья на Т—Ж о том, с чего следует начинать любой стартап или бизнес: исследование потребностей клиента. TL; DR в прикреплённом скриншоте. Ну а у меня к статье есть яркий пример того, как делать стартапы не нужно.
Моим первым местом работы после фриланса был омский стартап по автоматизации дистрибьюторского бизнеса, в котором я отвечал за вёрстку и учился фронтенду. До моего прихода примерно полтора года разрабатывались бэкенд и мобильные приложения, с моим приходом начали делать веб-кабинеты. Когда собрали первую более-менее рабочую версию системы со всей необходимой функциональностью, основатели поехали в Москву на какую-то промышленную выставку с нашей целевой аудиторией. Показали систему, собрали контакты потенциальных клиентов, стали их обзванивать, но продажи не шли. Оказалось, что подобные системы уже существуют и вполне успешно используются нашими потенциальными клиентами. Спустя месяц стартап закрылся, а в счёт последней зарплаты мне отдали мой рабочий ноутбук.
Моим первым местом работы после фриланса был омский стартап по автоматизации дистрибьюторского бизнеса, в котором я отвечал за вёрстку и учился фронтенду. До моего прихода примерно полтора года разрабатывались бэкенд и мобильные приложения, с моим приходом начали делать веб-кабинеты. Когда собрали первую более-менее рабочую версию системы со всей необходимой функциональностью, основатели поехали в Москву на какую-то промышленную выставку с нашей целевой аудиторией. Показали систему, собрали контакты потенциальных клиентов, стали их обзванивать, но продажи не шли. Оказалось, что подобные системы уже существуют и вполне успешно используются нашими потенциальными клиентами. Спустя месяц стартап закрылся, а в счёт последней зарплаты мне отдали мой рабочий ноутбук.
Нашёл достойную замену адблоку: umatrix.
Это бразуерное расширение, которое по умолчанию запрещает сайтам доступ к сторонним ресурсам вроде скриптов и кук с других хостов (запрет на доступ к какому-то ресурсу при необходимости можно снять). Если адблок блокирует только рекламу (и то не всю), то umatrix блокирует ещё и всякую гадость вроде скриптов аналитики и трекинга.
Это бразуерное расширение, которое по умолчанию запрещает сайтам доступ к сторонним ресурсам вроде скриптов и кук с других хостов (запрет на доступ к какому-то ресурсу при необходимости можно снять). Если адблок блокирует только рекламу (и то не всю), то umatrix блокирует ещё и всякую гадость вроде скриптов аналитики и трекинга.
Что нужно делать, чтобы стать техническим директором?
Из книги Камиль Фурнье «От разработчика до руководителя»:
«Найдите работу, где вам будут передавать практический опыт и вместе с тем дадут возможность получать новые технические навыки.
Постарайтесь найти для совместной работы людей, заставляющих вас двигаться к успеху и поощряющих за достижения, вдохновляющих преодолевать себя.
Поддерживайте прочные отношения с соратниками, начиная от одноклассников и заканчивая членами нынешней команды. Начинающие программисты часто недооценивают будущий рост соратников.
Развивайтесь в смежных областях: хороший техдир должен разбираться в проектном менеджменте, уметь вести техническую документацию и иметь хорошие коммуникативные способности.
Технические директора в большинстве работают в небольших компаниях, часто являясь их соучредителями. Если вы хотите пойти таким путём, найдите компанию, из которой ранее уже уходили сотрудники, чтобы основать что-то своё. Именно в ней вы сможете найти своих будущих соучредителей или возможность быстро попасть в новую компанию»
Из книги Камиль Фурнье «От разработчика до руководителя»:
«Найдите работу, где вам будут передавать практический опыт и вместе с тем дадут возможность получать новые технические навыки.
Постарайтесь найти для совместной работы людей, заставляющих вас двигаться к успеху и поощряющих за достижения, вдохновляющих преодолевать себя.
Поддерживайте прочные отношения с соратниками, начиная от одноклассников и заканчивая членами нынешней команды. Начинающие программисты часто недооценивают будущий рост соратников.
Развивайтесь в смежных областях: хороший техдир должен разбираться в проектном менеджменте, уметь вести техническую документацию и иметь хорошие коммуникативные способности.
Технические директора в большинстве работают в небольших компаниях, часто являясь их соучредителями. Если вы хотите пойти таким путём, найдите компанию, из которой ранее уже уходили сотрудники, чтобы основать что-то своё. Именно в ней вы сможете найти своих будущих соучредителей или возможность быстро попасть в новую компанию»
Почему не стоит использовать компоненты высшего порядка (HOCs) в Реакте и какая им есть альтернатива — http://andrew-r.ru/notes/react-hocs
Если вы устали от постоянного чувства гонки за технологиями и лучшим будущим, возможно вам поможет хороший совет Тима Маринина о важности пустого пространства в жизни — https://marinintim.com/2018/negative-space/
Автоматизация релизов с помощью semantic-release
На работе мне регулярно нужно публиковать NPM-пакет и вести для него список изменений. Раньше я делал это вручную, и поэтому на это уходило ощутимое количество времени: нужно было сформировать список изменений, определить следующую версию, выполнить
Если вы столкнулись (или в будущем столкнётесь) с такой же проблемой, сразу внедряйте semantic-release: он автоматизирует всю рутину и максимально исключает человеческий фактор (например, неправильный выбор следующей версии пакета). semantic-release встраивается в CI, так что для публикации новой версии пакета достаточно просто запушить код в репозиторий.
Что особенно круто — процесс публикации максимально абстрагирован и разбит на шаги, а вся специфичная логика реализуется через плагины. Это позволяет делать публикацию куда угодно, а не только в NPM, да и вообще кастомизировать процесс публикации: например, можно реализовать отправку списка изменений в Slack после публикации.
Единственное, что от вас потребуется — один раз настроить инструмент и затем выполнять соглашения по именованию коммитов, по которым он будет автоматически определять следующую версию пакета и формировать список изменений. Кстати, требования к именованию коммитов — ещё одно косвенное преимущество: история изменений становится чище и читабельнее.
На работе мне регулярно нужно публиковать NPM-пакет и вести для него список изменений. Раньше я делал это вручную, и поэтому на это уходило ощутимое количество времени: нужно было сформировать список изменений, определить следующую версию, выполнить
npm publish
, дождаться прогона всех тестов и самой публикации.Если вы столкнулись (или в будущем столкнётесь) с такой же проблемой, сразу внедряйте semantic-release: он автоматизирует всю рутину и максимально исключает человеческий фактор (например, неправильный выбор следующей версии пакета). semantic-release встраивается в CI, так что для публикации новой версии пакета достаточно просто запушить код в репозиторий.
Что особенно круто — процесс публикации максимально абстрагирован и разбит на шаги, а вся специфичная логика реализуется через плагины. Это позволяет делать публикацию куда угодно, а не только в NPM, да и вообще кастомизировать процесс публикации: например, можно реализовать отправку списка изменений в Slack после публикации.
Единственное, что от вас потребуется — один раз настроить инструмент и затем выполнять соглашения по именованию коммитов, по которым он будет автоматически определять следующую версию пакета и формировать список изменений. Кстати, требования к именованию коммитов — ещё одно косвенное преимущество: история изменений становится чище и читабельнее.
Секрет продуктивности от Bell Labs
Начал осваивать материалы, рекомендуемые на mtdv.io. Первой стала статья How to be a star engineer Роберта Келли, написанная по мотивам его исследования в Bell Labs в середине 80-х годов.
Что отличает продуктивных работников, считающихся «звёздами», от обычных крепких середняков? Наивно кажется, что дело в таланте, высоком IQ или в чём-то подобном. Исследование показало, что их отличают далеко не врождённые трудноприобретаемые качества, а подход к работе. Келли обнаружил девять стратегий вроде инициативности и нетворкинга, отличавших звёзд от обычных работников.
Суть в том, что этим девяти стратегиям можно научиться: по результатам исследования Bell Labs запустили внутреннюю программу повышения продуктивности для сотрудников, где в течение нескольких недель они осваивали каждую из стратегий. Прохождение программы повысило продуктивность участников как по их собственному мнению, так и по мнению их менеджеров и коллег.
Учитывая то, что исследованию уже практически 30 лет, поразительно, что ни о чём подобном не рассказывают в школах или вузах.
Сама статья (ПДФ, ~350 КБ): How to be a star engineer
Больше подробностей об исследовании и его результатах: How Bell Labs Creates Star Performers
Книга по мотивам исследования: How to be a star at work
Выжимка книги (ПДФ, ~60КБ)
Начал осваивать материалы, рекомендуемые на mtdv.io. Первой стала статья How to be a star engineer Роберта Келли, написанная по мотивам его исследования в Bell Labs в середине 80-х годов.
Что отличает продуктивных работников, считающихся «звёздами», от обычных крепких середняков? Наивно кажется, что дело в таланте, высоком IQ или в чём-то подобном. Исследование показало, что их отличают далеко не врождённые трудноприобретаемые качества, а подход к работе. Келли обнаружил девять стратегий вроде инициативности и нетворкинга, отличавших звёзд от обычных работников.
Суть в том, что этим девяти стратегиям можно научиться: по результатам исследования Bell Labs запустили внутреннюю программу повышения продуктивности для сотрудников, где в течение нескольких недель они осваивали каждую из стратегий. Прохождение программы повысило продуктивность участников как по их собственному мнению, так и по мнению их менеджеров и коллег.
Учитывая то, что исследованию уже практически 30 лет, поразительно, что ни о чём подобном не рассказывают в школах или вузах.
Сама статья (ПДФ, ~350 КБ): How to be a star engineer
Больше подробностей об исследовании и его результатах: How Bell Labs Creates Star Performers
Книга по мотивам исследования: How to be a star at work
Выжимка книги (ПДФ, ~60КБ)
Прозрачность, забота о пользователе и просто красота: ребята из Timestripe не поленились сделать понятное и наглядное объяснение принципа работы их механизма шифрования пользовательских данных — https://timestripe.com/encryption/
Почему не нужно стремиться к 100% покрытию кода юнит-тестами
http://andrew-r.ru/notes/unit-tests-coverage
TL;DR: покрытие кода работает хорошо как индикатор проблем. Если оно низкое, вероятно, тестов написано слишком мало. Но использовать покрытие как индикатор качества тестов нельзя: высокого покрытия можно добиться даже без единой проверки.
http://andrew-r.ru/notes/unit-tests-coverage
TL;DR: покрытие кода работает хорошо как индикатор проблем. Если оно низкое, вероятно, тестов написано слишком мало. Но использовать покрытие как индикатор качества тестов нельзя: высокого покрытия можно добиться даже без единой проверки.
Альтернатива DuckDuckGo
Раньше я уже писал, почему стоит перейти с поиска Google на DuckDuckGo. Но многие программисты при переходе на DuckDuckGo замечают, что качество поиска сильно падает и искать ответы на технические вопросы становится сложнее.
Уже несколько месяцев я использую StartPage: приватный поисковик, который рекомендовал даже Эвард Сноуден. Его преимущество перед DuckDuckGo отлично описано на главной странице:
“You can’t beat Google when it comes to online search. So we’re paying them to use their brilliant search results in order to remove all trackers and logs. The result: The world’s best and most private search engine.”
Раньше я уже писал, почему стоит перейти с поиска Google на DuckDuckGo. Но многие программисты при переходе на DuckDuckGo замечают, что качество поиска сильно падает и искать ответы на технические вопросы становится сложнее.
Уже несколько месяцев я использую StartPage: приватный поисковик, который рекомендовал даже Эвард Сноуден. Его преимущество перед DuckDuckGo отлично описано на главной странице:
“You can’t beat Google when it comes to online search. So we’re paying them to use their brilliant search results in order to remove all trackers and logs. The result: The world’s best and most private search engine.”