Search
Write a publication
Pull to refresh
-5
@cosmolevread⁠-⁠only

User

Send message

Олды в ИТ

Reading time18 min
Views90K

Когда ты молод, ты «бессмертен» и не задумываешься о старости. Есть просто уверенность, что если много и хорошо работать, то твоя карьера и доходы будут неуклонно расти. Следуя этой стратегии, ты развиваешься в профессии уже 15, 20, 30 лет. За эти годы уже получил огромный опыт и, наверное, он обязательно поможет безбедно и интересно прожить остаток дней. Но все не так просто. Да, ты уже давно работаешь в хорошей компании, занимаешься интересными проектами, получаешь за это достойную зарплату, но в будущем уже не так уверен, как раньше. Профессиональный возраст приходит с массой вопросов, на которые нужно ответь стратегически.

 Эта статья родилась на основе обсуждения горячей темы «Олды в ИТ», которую 4 января 2021 г. мы записали для подкаста Linkmeup. Обязательно послушайте запись здесь или в любимом подкаст-приложении.

Читать далее

Клещи или статья о том, как стать самым успешным маленьким паукообразным

Reading time15 min
Views15K

Для большинства людей клещи — это только «энцефалитные клещи», т.е. иксодовые. Больше о клещах средний обыватель почти ничего не знает. Клещи – можно сказать это отдельный мир членистоногих, по многообразию форм, образу жизни и местам обитания. Хотя они конечно в этом далеко не достигают многообразия у насекомых.

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

Читать далее

Используйте парсинг вместо контроля типов

Reading time5 min
Views10K


В 2019 году была написана потрясающая статья Parse, don’t validate. Я крайне рекомендую изучить её всем программистам (а также недавнее дополнение к ней Names are not type safety). Её основная идея заключается в том, что существует два способа проверки валидности входящих данных функции:

  • Валидатор проверяет входящие данные на правильность и в случае их неправильности выдаёт ошибку. Он ничего не возвращает. Например, он может проверять, не пуст ли список.
  • Парсер делает то же самое, что и валидатор, но возвращает более конкретное представление входящих данных, обеспечивающее соответствие требуемого свойства. Например, он проверяет, не пуст ли список, и возвращает тип NonEmptyList.

Главное утверждение, сделанное в этой статье — что парсеры предпочтительнее, чем валидаторы. Её основной посыл — нужно сделать недопустимые состояния непредставимыми (unrepresentable). В статье это реализовано с помощью использования системы типов. Я полностью согласен с такой философией, но хотел бы выделить и более подробно обсудить один из ироничных аспектов аргументации:

Инструмент контроля типов является хрестоматийным примером валидатора!

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

Какой же может быть альтернатива инструменту контроля типов в виде парсера для языка программирования?
Читать дальше →

Спасите пароль: сказочная реализация схемы разделения секрета Шамира на Python

Reading time6 min
Views16K
Этот алгоритм, использующий язык Python и Схему разделения секрета Шамира, защищает ваш мастер-пароль от хакеров и вашей собственной забывчивости.


Для безопасного хранения множества уникальных паролей многие из нас используют менеджеры паролей. Вся их работа по сути завязана на мастер-пароле. Этот пароль защищает все остальные пароли, и, таким образом, несёт весь риск на себе. Любой, кто подберёт его или получит к нему доступ, может притвориться вами в самый неподходящий момент. Естественно, вы стараетесь сделать свой мастер-пароль максимально сложным, а затем запоминаете или где-то ещё фиксируете его.
Читать дальше →

Лучшие практики при написании безопасного Dockerfile

Reading time9 min
Views32K

В данной статье мы рассмотрим небезопасные варианты написания собственного Dockerfile, а также лучшие практики, включая работу с секретами и встраивание инструментов статического анализа. Тем не менее для написания безопасного Dockerfile наличия документа с лучшими практиками мало. В первую очередь требуется организовать культуру написания кода. К ней, например, относятся формализация и контроль процесса использования сторонних компонентов, организация собственных Software Bill-of-Materials (SBOM), выстраивание принципов при написании собственных базовых образов, согласованное использование безопасных функций, и так далее. В данном случае отправной точкой для организации процессов может служить модель оценки зрелости BSIMM. Однако в этой статьей пойдет речь именно о технических аспектах.

Читать далее

Это не легаси-код, это PHP

Reading time5 min
Views17K


За последний год разработчики Vimeo писали код бэкенда на множестве языков — PHP, Go, Ruby, Python, NodeJS, Java, C, C++ и немного на Rust.

В 2004 году мы начинали всего с одного: PHP. Это был идеальный язык для новых стартапов наподобие Vimeo. Интерпретатор PHP позволял предпринимателям быстро разрабатывать прототипы и имел большую стандартную библиотеку, позволявшую избавиться от мороки с повседневными задачами типа отправки писем и доступа к базам данных.

Большинство стартапов развалилось, однако некоторые из них, взявшие за основу PHP, по-прежнему были живы спустя десяток лет. Немногие из них добилась резкого роста, а в дальнейшем кое-кто из этих стартапов (самым заметный пример — это Facebook) решил, что PHP является узким местом, и начал мигрировать с него. Для этого исхода было две серьёзные причины: производительность PHP и сложность поддержки больших кодовых баз PHP.
Читать дальше →

Как из ДНК-секвенатора сделать георадар и увидеть все под землей

Reading time15 min
Views22K
Какое-то время назад я опубликовал статью про то, как я занимался созданием ДНК-секвенатора (прибора для чтения ДНК) путём реверс-инжиниринга микросхемы. Но со временем, пока я это делал (а делал я это очень долго) этот секвенатор устарел, вышел новый, и мой проект отчасти потерял смысл, поскольку себестоимость секвенирования на новом секвенаторе Oxford Nanopore оказалась ниже, чем та стоимость, к которой стремился я. Проект заглох. С другой стороны, произошли события, которые сместили мой основной интерес в область такой вещи, как георадар. Точнее вернули его туда.

Лет 10 назад я наткнулся на ряд исследований, где применялось устройство, способное видеть, что находится под землёй — георадар. Неделю не мог оторваться, просмотрел огромное количество видеоматериалов, запомнилось название того прибора, который использовали исследователи – георадар «ЛОЗА». Ниже пример исследования Саксайуамана (Перу), на котором найдены подземные склепы, котлованы, лежащая на глубине плита, а также можно предположить наличие засыпанного когда-то дна чашеобразной формы.

Читать дальше →

Что лучше выбрать: Wireguard или OpenVPN? Любимый VPN Линуса Торвальдса

Reading time7 min
Views141K


Технологии VPN редко становятся объектами пристального внимания: есть и есть. Создатель Wireguard Jason A. Donenfeld оказался везунчиком после нетипичной для Линуса Торвальдса резко хвалебной оценки качества кода.

Can I just once again state my love for it and hope it gets merged soon? Maybe the code isn’t perfect, but I’ve skimmed it, and compared to the horrors that are OpenVPN and IPSec, it’s a work of art.

Вскоре после этого Wireguard оказался в основной ветке стабильного ядра Linux. Чем же Wireguard так замечателен и отличается от остальных VPN?
Читать дальше →

Фронтендеры — герои. Yehuda Katz объясняет почему

Reading time6 min
Views22K

Идея что фронтенд это "для джунов", расстраивает меня тем, что никто не скажет так про другие специализации.

Кто-то может сказать, что неплохо, если б автор компилятора был более "фуллстековым".

Но они не скажут, что "писать компиляторы это для джунов".

Это перевод треда Yehuda Katz из твиттера. Под фронтендом здесь подразумеваются именно браузерные приложения на JS (и, отчасти, вся JS-экосистема).

Читать далее

Выбираем self-hosted замену IFTTT

Reading time6 min
Views17K


If This Then That — сервис для автоматизации задач и создания пайплайнов из действий в разных сервисах. Это самый известный и функциональный продукт на рынке, но популярность ему навредила: полноценное создание апплетов теперь возможно только с платной подпиской, а на реддите периодически появляются жалобы на нестабильную работу сервиса. Как и в случае с любым полезным но платным продуктом, ищущий альтернативы обрящет их в опен-сорсном комьюнити. Мы сравним три self-hosted инструмента: Huginn, Beehive и Node-RED, попробуем их в действии и выберем лучший по функционалу и удобству использования.
Читать дальше →

Простейший измеритель CO2 за 2000 рублей и полчаса

Reading time2 min
Views54K
Измеритель уровня углекислого газа (CO2) наверное самый недооценённый прибор, который на мой взгляд должен быть в каждой квартире, ведь он показывает, насколько воздух пригоден для дыхания и с помощью него всегда видно, когда пора проветривать.

Такой измеритель в квартирах большая редкость прежде всего из-за высокой цены. Свой первый измеритель AZ Instruments 7798 CO2 datalogger я покупал за $139 и это была самая дешёвая модель на рынке.

Сейчас готовый измеритель CO2 стоит около 4000 рублей, а самодельный обойдётся вдвое дешевле.

Читать дальше →

Мои доходы от работы очень хорошим инженером Facebook

Reading time6 min
Views94K
Когда я десяток лет назад переехал в США для работы в Facebook, то понятия не имел, хорошим или плохим был оффер. Я даже не торговался и согласился на ту сумму, которую мне предложили. Отчасти это вызвано тем, что я был в восторге от приглашения, отчасти тем, что я совершенно не знал, чего мне ждать. К своей чести, Facebook предложил мне на 7–8% больше, чем изначально (думаю, так получилось, потому что они ожидали, что я буду обсуждать условия, чего я не делал).

К счастью, в последние несколько лет благодаря сайтам наподобие glassdoor и levels.fyi стало очень легко узнавать средние зарплаты и их диапазон. Не хватает только одного — информации о том, сколько можно зарабатывать, если ты по-настоящему хорош, допустим, входишь в 1% лучших инженеров FB (то есть на уровне примерно 100 инженеров). В этом посте я поделюсь своими зарплатами и карьерным ростом, чтобы дать представление о том, насколько быстро можно развиваться и как при этом будет меняться зарплата.

Примечание: представленные ниже значения не учитывают роста акций, то есть если при передаче мне акций их курс был равен 50 долларам, а теперь они торгуются по 200 долларов, то для вычисления сумм я всё равно использую 50 долларов, потому что именно столько FB на самом деле мне платит, а повышение стоимости стало вознаграждением за взятые мной на себя риски.

Ниже я расскажу о своём карьерном росте и зарплате, которую я получал, но если вам интересны только цифры, то вот таблица:


Вот краткая версия того, как я добрался до уровня E8, и мои зарплаты за эти годы. В конце статьи есть краткое описание.
Читать дальше →

История про возврат денег (11 450 евро) от Lufthansa, RyanAir, Booking и других

Reading time9 min
Views23K

История о том, как я не вернул более 10 000 евро от Ryanair, Lufthansa, Booking и частного агентства недвижимости

Содержание статьи:

1.       Введение – как мне удалось вернуть 11 450 евро.

2.       Можно ли вернуть деньги за отмененные из-за пандемии рейсы и что такое ваучеры.

3.       Откуда образовался "кредит" на более чем в 10 000 евро.

4.       "Маклер и его банкротство."

5.       Обращение к адвокатам.

6.       Возврат денег через банковскую процедуру «Charge Back».

7.       Зачисление 9500 евро долговых обязательств за проживание на мой расчетный счет.

8.       Возврат средств от Lufthansa.

9.       Возврат средств от Ryanair.

10.   Возврат средств от Booking.

11.   Заключение.

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

Читать далее

Более 10 лет ставлю цели на год: рассказываю, как это делать эффективно

Reading time12 min
Views217K

Меня зовут Павел Комаровский, и я алкоголик занимаюсь саморазвитием уже более 10 лет. Эта статья о том, какой подход к личному целеполаганию я выработал для себя в итоге – надеюсь, она поможет вам избежать ошибок, которых в своё время наделал я.

Я полностью прошёл все стадии грехопадения: в студенческие годы искал сакральные ответы в стопках self-help макулатуры; затем разочаровался и решил, что весь этот «успешный успех» – это разводилово для дурачков (до сих пор уверен, что Наполеон Хилл – шизофреник); позже переосмыслил всё ещё раз и пришёл к своему пониманию того, как может выглядеть саморазвитие с адекватным лицом.

Читать далее

Почему хабражители предпочитают велосипеды, вместо готовых решений? Или о systemd, part 0

Reading time4 min
Views36K

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

Во всём виноват Хабр!

Итальянская IBM-PC Olivetti Prodest PC1 HD

Reading time7 min
Views8.2K

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

Читать далее

Программист учится рисовать. Дневник Емели

Reading time16 min
Views35K
Так получилось, что моим основным хобби на лихой 2020-й год стало освоение ремесла рисования.

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

spoiler
В конце года я остался доволен собой и окончательно понял, что я хотел бы прокачиваться и дальше!

image
Так выглядел мой уровень изобразительных навыков в ноябре предыдущего (2019-го) года

Формат подачи данной статьи — это на 95% личный дневник, который я вел в гугл-доке, записывая, что я делал каждый месяц, свои ощущения и как-то фиксируя собственный прогресс — смотрел, сколько работ мне удалось нарисовать и какого они были качества — нравились ли они мне лично или были совсем так себе по исполнению.
Читать дальше →

Радиолюбитель R4uab получил изображения затмения со спутника «Метеор-М2»

Reading time1 min
Views21K


Дмитрий Пашков, радиолюбитель из мордовского поселка Рузаевка, смог получить изображения затмения со спутника «Метеор-М2», принадлежащий Роскосмосу. Радиолюбитель получил фотографию лунной тени, которая приходила над Норвежским морем 20 марта. Стоит отметить, что сигналы этого и многих других спутников не шифруются, поэтому получить данные с них можно, при условии определенного опыта, уровня знаний и наличия оборудования. Конкретно этот аппарат работает по программе «Открытый космос».

Несмотря на то, что данные передаются в открытом виде, снять показания не так просто, поскольку нужно соответствующее программное обеспечение. Радиолюбитель обратился к разработчикам «Метеора», и те предоставили программу для декодирования «сырых» файлов. Кроме этого ПО, нужно было достать еще ряд программ, которые позволяют работать с информацией, передаваемой спутником.
Читать дальше →

Один совет, благодаря которому я успешно прошёл несколько собеседований

Reading time6 min
Views176K
— Что вы скажете, если я попрошу вас разработать сервис, который обрабатывает тысячи запросов в секунду с минимальной задержкой?

— Хм… Я скажу, что у вас в компании возникла такая проблема. Но у вас нет идей и вы обсуждаете её на собеседованиях с кандидатами :)

Именно так я ответил, когда мне впервые задали вопрос по архитектуре. Мы хорошо посмеялись. Но потом интервьюер всё-таки заставил меня спроектировать сервис.
Читать дальше →

Декодируем сигнал метеоспутника NOAA в 50 строчек кода

Reading time5 min
Views25K
Привет, Хабр.

Продолжим тему декодирования различных видов радиосигналов. Одним из интересных форматов, разработанных еще в прошлом веке, является APT (Automatic Picture Transmission). Он используется для передачи изображений Земли из космоса, и что для нас гораздо более интересно и актуально, прием сигналов APT прост и доступен радиолюбителям.


Спутник NOAA © en.wikipedia.org/wiki/NOAA-15

Для тех, кому интересно, продолжение под катом.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity