Pull to refresh
13
0.2
Пётр @petro_64

Developer, Devops

Send message

Работает — не трожь: зачем обновлять Python в долгоживущих проектах

Reading time15 min
Views12K

Всем привет! Меня зовут Сергей Яхницкий. Я пишу на Python уже больше шести лет, техлид в Яндекс Такси, Python-евангелист и член Python-комитета Яндекса (аналог Python Steering Council).

Человек я простой, звёзд с Гитхаба не хватал: до того, как я устроился в Такси, я мирно писал маленькие бэкенды на Python. А потом меня прорвало: кодогенерации, CI/CD, кучи тестов, монорепа и прочее. Вот тут-то моя питоничья душа и воспряла. Решил я всё автоматизировать, обновить всё, что движется, а что не движется — подвигать и обновить. Из этого вышел мой рассказ.

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

Читать далее
Total votes 55: ↑53 and ↓2+61
Comments22

Как войти в Айти и надо ли вам туда в 2024 году

Level of difficultyEasy
Reading time15 min
Views28K

Все хотят в Айти: сейчас это модно. Удаленка, большая зарплата, кофе с печеньками, веселые корпоративы и дмс (добровольное медицинское страхование). Из каждого утюга реклама айти-курсов так и манит: пройди курсы за 9 месяцев и получай 150 тысяч +.

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

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

Погнали!
Total votes 39: ↑15 and ↓24-6
Comments106

Засады многопоточности

Level of difficultyMedium
Reading time8 min
Views8.5K

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

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

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

Итак, создав ранее тест потоков (о нем подробнее см. [1]), гоняя его многократно и в разных режимах, я заметил, что пусть редко, но выскакивают некорректные результаты. В подобных случаях я грешу обычно на себя. А в данном случае тем более, т.к., что там скрывать, имею весьма небольшой опыт использования потоков.

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

Читать далее
Total votes 19: ↑2 and ↓17-15
Comments185

Эффективная запитка от литиевых аккумуляторов (серия TI TPS63xxx)

Level of difficultyEasy
Reading time8 min
Views6.8K


Эта статья посвящена разбору решений по запитке 3,3-вольтовых контроллеров (и их периферии) от литиевых аккумуляторов, напряжение которых меняется в процессе работы от 4,2 В до 3 В и даже ниже, в случае глубокого разряда.

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

Обо всём этом мы и поговорим далее (решение есть!).
Читать дальше →
Total votes 37: ↑37 and ↓0+55
Comments25

Реверс-инжиниринг прошивки Samsung WB850F

Level of difficultyMedium
Reading time11 min
Views5.2K

Samsung WB850F стала первой камерой, объединившей в себе DRIMeIII SoC и WiFi. В ней, как и в модели EX2F, используется прошивка, в которую инженеры Samsung любезно включили файл partialImage.o.map с полным дампом компоновщика и именами всех символов из ZIP-архива. Этот их «подарок» мы используем для реверс-инжиниринга основной прошивки SoC, чтобы обеспечить прохождение проверки при обнаружении точек доступа WiFi и возможность использовать для загрузки изображений samsung-nx-emailservice.

Эта публикация продолжает тему статьи, посвящённой камерам Samsung с поддержкой WiFi, и является частью серии, освещающей линейку Samsung NX.
Читать дальше →
Total votes 38: ↑38 and ↓0+54
Comments4

Включаем Telegram Instantview для блога глобально

Level of difficultyEasy
Reading time5 min
Views2.4K

Есть одна очень удобная для пользователей штука - Telegram Instantview. Она подгружает контент со ссылки прямо в приложении телеграма, показывая удобную для чтения версию и экономит трафик. Существует два официальных способа включить его для вашего сайта или блога: нерабочий (добавить ваш шаблон для домена, после чего просто ничего не произойдёт) и кривой (формировать уродливые ссылки руками вида t.me/iv?url=...&rhash=... ).

Есть ещё один способ, как заставить Телеграм отображать Instantview глобально, для любых прямых ссылок вашего блога или сайта. Реализацию оформил в виде небольшого плагина для WordPress. Так же, способ без проблем адаптируется для других платформ при необходимости.

Читать далее
Total votes 3: ↑3 and ↓0+4
Comments18

Российская микроэлектроника — два года спустя

Level of difficultyHard
Reading time9 min
Views102K

За эту статью попрошу благодарить патриотично размороженных граждан в целом, и @WebPeople (регистрация 2012, разморожен с первым комментарием 8 июл 2023 в 20:47) в частности. Глобальное потепление, ничего не поделать.

В мае 2022 в комментариях @hippohood отметился не имеющим аналогов текстом:
Примерно опишу мыслительный процесс позитивно (патриотично) настроенных граждан.

Оборудование можно сделать и самим, но пока можно и просто привезти серым импортом. Оборудование выглядит примерно как большой ящик с дырками, включённый в розетку; в одну дырку складываешь кремний, в другую заливаешь фоторезистор. Под третью дырку надо подставить ведро - в него будут ссыпаться чипы. Вёдра мы делать умеем (хотя и импортируем сейчас, но чертежи-то остались), фоторезистор научатся намешивать в Зелинограде; с кремнием разберемся, не всё сразу. Надо ещё заранее заказать в Китае переходник с европейской розетки на нормальную - лучше сразу 3 или 4, они постоянно горят. Вроде все ясно.

Читать далее
Total votes 564: ↑539 and ↓25+599
Comments453

Overqualified или балбес: как я не смог устроиться на работу в IT и стал оператором в call-центре

Level of difficultyEasy
Reading time9 min
Views4.8K

Добрый день, меня зовут Виталий, как я могу к Вам обращаться? Если бы звонящие знали, кто скрывается за голосом молодого человека и отвечает на их звонки на том конце Ethernet кабеля, они бы просто «выпали в осадок». Итак...

(@Cels) По поводу психологических трюков. Дело было так. Сделал я тренировочное. Красиво сделал: SOLID, грамотная декомпозиция, все дела. Тут приходит мне сообщение от Team Lead...

Кто считает, что проект https://natural-coding.github.io/random-post/ где всё сделал сам (2 варианта дизайна, обработка фотографий, SVG нарисовал, анимации, HTML, CSS и JS) это всего лишь уровень "школьник на перемене", пишите об этом в комменте. Будет интересно узнать, что думает сообщество.

Читать далее
Total votes 48: ↑9 and ↓39-27
Comments33

OpenConnect: недетектируемый VPN, который вам понравится

Level of difficultyMedium
Reading time15 min
Views246K

Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее
Total votes 273: ↑272 and ↓1+323
Comments344

Яндекс: умный дом по-взрослому

Reading time9 min
Views186K


Недавно компания Яндекс запустила свою систему «умного дома». Нам предлагают купить недорогие работающие по Wi-Fi устройства: адаптер в розетку, лампочку и ИК пульт. Интересно, что у разработчиков «умных» устройств появилась возможность создать свои навыки «умного дома», это позволит подключить девайсы к системе Яндекса и управлять ими голосом через Алису. В списках навыков появляется всё больше новых брендов. Алиса прекрасно понимает русскую речь, что делает ее безусловным лидером среди голосовых ассистентов на российском рынке.
Однако, не всё так гладко…
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments101

Orange Pi 5 (как настоящий...)

Level of difficultyMedium
Reading time5 min
Views16K

Недавно компания OrangePi обновила линейку одноплатных компьютеров Orange Pi 5/5B/5+, распаяв на платах 32GB LDDR4 RAM. Однако данные платы вполне прилично работают и с меньшим объемом памяти на борту, а наличие SPI Nor Flash и возможность подключения NVMe диска делают эти платы достойными конкурентами среди одноплатных устройств для разаработки.

Нас заинтересовал первый образец серии 5/5B/5+, а именно Orange Pi 5, на предмет того, как на данном устройстве поведет себя EDK II и можно ли его использовать так, как мы привыкли работать с обычными ПК.

Читать далее
Total votes 14: ↑13 and ↓1+13
Comments35

Так какой же процессор использовался в играх Brick Game? Часть 2

Level of difficultyMedium
Reading time6 min
Views26K

Это продолжение моей предыдущей статьи, в которой я рассказал о не очень удачной попытке достать кристалл микроконтроллера одной из игр семейства Brick Game. На этот раз попытка оказалась удачной - кристалл уцелел, прошивка успешно прочитана и написан эмулятор.

Но обо всем по порядку
Total votes 367: ↑367 and ↓0+367
Comments117

Пишем прошивку под TI cc2530 на Z-Stack 3.0 для Zigbee реле Sonoff BASICZBR3 с датчиком ds18b20

Reading time22 min
Views55K


Предполагается, что читатель уже имеет начальные знания языка C, что-то знает о Zigbee, чипе cc2530, методах его прошивания и использования, а также знаком с такими проектами, как zigbee2mqtt. Если нет — подготовьтесь или сходите почитать на https://myzigbee.ru и https://www.zigbee2mqtt.io/
Статья написана сперва подробно, но постепенно ускоряется и уже не останавливается на деталях, а описывает готовый код прошивки. Если кому-то не интересны рассуждения, то просто открывайте исходники прошивки и читайте их.

Исходный код готовой прошивки

Код и подход к разработке не претендует на идеальность. “Я не волшебник, я только учусь.”

Цель


Основная цель — разобраться, как писать прошивки под Z-Stack, давно хотел. Поэтому решил реализовать альтернативную прошивку под готовое оборудование (в качестве примера выбрано реле Sonoff BASICZBR3) и добавить возможность подключения популярного датчика температуры ds18b20.

Дополнительно хотел показать начинающим Zigbee-разработчикам пример разработки прошивки под чип TI cc2530 на Z-Stack.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments21

Как понять, что перед вами плохой разработчик

Reading time12 min
Views179K

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

В этой статье мы разберем признаки слабых разработчиков, которые можно обнаружить на собеседовании, в ходе совместной работы или даже в процессе неформального разговора в курилке. Важное уточнение — все описанное в нашей статье не стоит рассматривать как чек-лист формальных правил. Это скорее некоторые закономерности, каждая из которых не является гарантией того, что перед вами — «плохой» разработчик. Но, если в одном человеке сочетаются несколько из них, то вероятность этого сильно увеличивается. 

Читать далее
Total votes 263: ↑159 and ↓104+93
Comments403

Тревожно писать и публиковать статьи (и не только)? Пройдите по чужим граблям

Reading time7 min
Views9.4K

Так случилось, что моей первой работой был мой же вуз — без особого труда ровно 1 сентября года защиты диплома я вышла на работу, в собственный кабинет, с приятными обязанностями и интересными, давно знакомыми задачами. Коллеги — мои преподаватели и администрация, которых я знала 5 с лишним лет, стены помогают, друзья забегают между парами. Dolce vita! Но за 7500 — даже в 2007 это было так себе (никак). Не очень счастливый случай заставил меня двигаться на первую настоящую работу — и тут рвануло по всем направлениям: игры кончились, а ребёнку не сообщили. Интеллектуальные, ментальные, коммуникативные трудности приводили к виражам стресса. Работать головой и держать себя в руках казалось невероятным, конфликты и ошибки буквально выбивали из седла. Спустя три года "настоящей" работы я закрепилась в том самом седле почище любого ковбоя, но определённые проблемы пришлось побороть. Одна из них — первые шаги на Хабре в качестве профессионального автора. Необходимость написать статью каждый раз вызывала дикое беспокойство. Знаю, что таких авторов немало — даже среди тех, кто пишет "для себя". Поэтому делюсь своим личным опытом борьбы с рабочей тревожностью — зря что ли столько времени отведено на праздники.

Читать далее
Total votes 35: ↑32 and ↓3+44
Comments47

Ventoy — мультизагрузка образов OS с преферансом и куртизанками

Reading time23 min
Views196K
Привет Хабр!

Существует несколько программ с графическим интерфейсом, предназначенных для создания Live USB-дисков.

Так начиналась переводная статья, комментарии к которой стали вторым толчком (а был ещё и первый) для написания обзора возможностей, системы для создания мультизагрузочных флешек ventoy.


Проект начатый китайским разработчиком longpanda примерно полтора года назад, в марте 2020-го, успел набрать популярность и уже включён в состав репозиториев некоторых дистрибутивов linux. И неспроста.

Давайте посмотрим почему...
Total votes 84: ↑84 and ↓0+84
Comments49

Всё как у больших. Автозагрузка приложений в оконных менеджерах linux

Reading time9 min
Views19K
Вывод systemd-analyze dot --user ‘i3.service’ | dot -Tpng | imv -


Вывод systemd-analyze dot --user ‘i3.service’ | dot -Tpng | imv -

Как-то раз, листая сообщения в профильном systemd чате, в телеграм, я наткнулся на следующий кусок man systemd.special


xdg-desktop-autostart.target
   The XDG specification defines a way to autostart applications using XDG desktop files.
systemd ships systemd-xdg-autostart-generator(8) for the XDG desktop files in autostart
directories. Desktop Environments can opt-in to use this service by adding a Wants=dependency
on xdg-desktop-autostart.target.

О как интересно, подумалось мне. Можно реализовать функционал полноценныхDesktop Environments, по автоматическому запуску приложений, при старте. А у меня как раз i3wm, который таковым не является и которому такой функционал не помешал бы. Надо это дело исследовать. Тогда я ещё не знал во что ввязался. Как оказалось, не всё так просто.


Читать дальше →
Total votes 59: ↑59 and ↓0+59
Comments15

Полезные консольные Linux утилиты

Reading time13 min
Views112K

В этой подборке представлены полезные малоизвестные консольные Linux утилиты. В списке не представлены Pentest утилиты, так как у них есть своя подборка.


Осторожно много скриншотов. Добавил до ката утилиту binenv.


binenv — cамая интересная утилита для установки новых популярных программ в linux, но которых нет в пакетном менеджере.

Читать дальше →
Total votes 96: ↑92 and ↓4+110
Comments110

Гайд начинающего тимлида

Reading time14 min
Views52K

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

Всё это я проговаривал на вебинаре в Хекслете тут https://www.youtube.com/watch?v=y_HkXvFovAc

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

Общий стаж моей работы в ИТ - около 14 лет. Я начинал с системного администрирования, потом перешел в разработку, поработав как в аутсорсе, так и в продукте. Не один раз проходил путь от рядового разработчика до тимлида.

Читать далее
Total votes 42: ↑40 and ↓2+47
Comments16

Тайм-менеджмент — это не история про то, как сделать больше за 8 часов, это как сделать важное за 8 часов

Reading time5 min
Views9.5K

В момент самоизоляции каждый оказывается сам по себе. Да, утренние совещания, daily, «летучки» никто не отменял. Но в некоторой степени люди краешком ощутили одиночество — а оно умеет сбивать с рабочего ритма.


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



Сейчас основная сложность в том, что поток информации увеличился в несколько раз. Мы уже давно живём в цифровом мире. А в эпоху самоизоляции почти 100% людей заметили, что стали работать ещё больше.


Потоки информации стали еще объёмнее, количество информации стало еще больше, от компьютера мы не отходим примерно с утра до вечера, а вечером "пересаживаемся" на смартфон.


Потому первостепенная задача сейчас – научиться фильтровать информационный поток. Тайм-менеджмент, он не про то, как сделать больше за 8 часов, он про то, как сделать важное за 8 часов.


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


Читать дальше →
Total votes 24: ↑17 and ↓7+14
Comments3
1

Information

Rating
2,230-th
Location
Stutensee, Baden-Württemberg, Германия
Registered
Activity