Это было интересное время, которое никогда больше не повторится. То время, когда интернет раздавали по талонамкарточкам, и берегли каждую минуту в сети. Самым популярным сайтом для меня тогда был локальный форум http://forums.kuban.ru, где обсуждали вообще всё. И незаменимой была программа Teleport Pro, которая скачивала локально в фоне страницы, чтобы можно было их почитать спокойно в оффлайне. Там я познакомился с программистом из Уралсиба, который был для меня гейм-дилером. Он мне давал копировать диски с интересными играми: Baldur’s Gate, Neverhood, Петька…
В последнее время в моём инфополе появилось много шума вокруг нового типа интерпретатора в Python: tail-calling. Я посмотрел PR на Github, из которого понял, что [[clang::musttail]] должен ускорить рантайм на 5%.
Ещё я почитал Соболева, но понял только то, что эта инструкция генерирует вызов метода в asm-коде как jmp, а не call, то есть экономит один стэк-фрейм — посмотреть можно тут. Но почему эти инструкции в данном случае эквивалентны и сработают в CPython — непонятно.
Волею судеб я снова стал ходить на собеседования, и хочу поделиться некоторыми наблюдениями. На этот раз речь про энтерпрайзные компании, в которых должен быть выстроен процесс найма.
Скрининг 🔗Всё начинает с него, и тех-скрининг становится нормой. Рекрутер прям на первом звонке задаёт каверзные вопросы и сверяется со шпаргалкой. Например:
как остановить контейнер? неизменяемые типы данных в python? какой pid у ядра linux? как расшифровывается CAP и PACELC? … Тинькофф пошёл ещё дальше и создал целую платформу с небольшими кусками кода, который можно запускать.
Прошёл следующий курс на Skillbox, который называется “Основы генетики”. Если честно, то немного разочарован. Нет на мой взгляд самого интересного: генной инженерии, CRISPR/CAS9, расшифровки ДНК, сборки вакцины от COVID и т.п. С другой стороны он именно что про основы. Если вы не прогуливали биологию в школе и хоть как-то следите за генетикой, то найдёте для себя мало нового. Тем не менее, что я узнал:
пол у других животных может быть абсолютно по-разному спроектирован (Y-хромосома не обязательно отвечает за мужской) при кодировании мРНК репликация идёт только от 5’ к 3’ основаниям понимание статистики в генетике крайне необходимо как устроен горизонтальный перенос генов между бактериями и растениями мне интересно больше изучение генотипа и микробиологии, нежели фенотипа Из плюсов хочется отметить хорошо сделанные слайды и, пожалуй, раскрытие темы основ генетики.
Пользуясь возможностью, стал проходить курсы Skillbox. В первую очередь для общего развития, и начал с истории. Мне интересна эта наука, потому что позволяет понять почему что-то появилось в нашей жизни именно в таком виде; что повлияло и какие были предпосылки. Это даёт представление как о границах применимости инструмента или понятия, так и о его актуальности. Возможно, наша жизнь настолько изменилась, что пора бы уже этот атавизм и отбросить.
Начал с курса “Мир Страдающего Средневековья”.
Просто добавляйте по одному слову… 🔗То, что ChatGPT может автоматически генерировать что-то, что хотя бы на первый взгляд похоже на написанный человеком текст, удивительно и неожиданно. Но как он это делает? И почему это работает? Цель этой статьи - дать приблизительное описание того, что происходит внутри ChatGPT, а затем исследовать, почему он может так хорошо справляться с созданием более-менее осмысленного текста. С самого начала я должен сказать, что собираюсь сосредоточиться на общей картине происходящего, и хотя я упомяну некоторые инженерные детали, но не буду глубоко в них вникать.
По мотивам моего доклада на PyCon “Контейнеризация Python без боли”. На своей практике я постоянно сталкиваюсь со спорами какой базовый образ лучше использовать для проектов: alpine или debian. Аргументы есть и у той, и у другой стороны, но мне это настолько надоело, что я решил сам разобраться и наконец-то поставить точку. В конце концов “В наше время верить нельзя никому, даже себе. Но мне - можно.” (с)
Сравниваем базовые образы alpine и debian 🔗Перед тем, как мы перейдём к специфике запуска python-проектов под alpine, давайте заглянем под капот базовых образов и сравним что они нам предлагают.
В наше время тотальной слежки и всеобщего недоверия всё должно подписываться публичными ключами. Утрирую, конечно, но проблема стара как мир - как убедиться, что файл был создан действительно тем, кому мы доверяем? Сегодня речь пойдёт об apt и установку пакетов.
Прошло то время, когда люди ставили ПО из исходников. Это было реально неудобно по многим причинам, так что на свет появился сначала dpkg, а потом и apt-get. dpkg умеет работать с зависимостями и устанавливать пакеты, а apt - искать их в репозиториях.
Скоро декабрь - самая пора резать лосей. Не тех, за которыми надо охотиться, а которые у нас в брокерском портфеле (loss - минусовые позиции). Тем более, что год выдался удивительным на события, и отрицательных позиций, уверен, много у каждого. Вот и я решил узнать что можно продать с минимальным убытком. Считать ручками как-то лень, так что весь код на github.
Немного теории 🔗Наш налоговый кодекс допускает некоторую оптимизацию уплаты. Первая попавшаяся статья говорит нам, что можно провернуть много чего, но я пользуюсь только парой пунктов:
Дорогие рекрутеры! Я искренне ценю ваш труд. Перебрать сотни резюме, созвониться с кандидатом, организовать встречи, собрать фидбек - это требует огромных усилий. Особенно, если это работа, которую надо делать каждый день. И я представляю вашу радость, когда оффер наконец-то принимают, и новый человек в команде хорошо приживается. Поздравляю! Но случается это, увы, не так часто. И мне хотелось бы рассказать как процесс общения и найма выглядит со стороны кандидата и как можно улучшить коммуникацию.