Alinsky.tech
129 subscribers
86 photos
23 videos
21 links
Personal blog of a random Engineer
GitHub: github.com/SKY-ALIN
Website: Alinsky.tech
Me: @sky_alin
Download Telegram
Хочу поделиться одной профессиональной истиной, которая до меня слишком долго доходила. Сеньер != хороший разраб, а джун != нуб. Грейд - это только про опыт и ответственность, которую человеку доверяют, а скилл с этим вообще, блять, никак не коррелирует. Я так долго дивился, как те, кто величают себя сеньерами и даже лидами, могут писать откровенный понос до того, как до меня это дошло:/

Короче, господа, я это к тому, что грейд вообще ничего не значит, на него можно забить и качать тупо скилл ^_^ #dev
👍11❤2😁2
Небольшое дружеское напоминание: момента лучше что-то наконец-то сделать может больше не быть.

Еще недавно войны между регулярными армиями считались чем-то недопустимым потому что -ну какие войны в 21ом веке? Человечество же поумнело, оно выше этого! Но все изменилось после того когда крупнейшая страна разбомбила и изнасиловала крупнейшую страну Европы, а ответственные не то что не понесли за это никакого наказания, а все еще воюют и с ними даже продолжают торговать и договариваться. Теперь война - это норма, дозволенность, совокупность плюсов и минусов с набором рисков, а не пережиток прошлого, как считалось ранее.

Сейчас часто слышно о конфликтах между Китаем и Тайванем, Израилем и Ираном, Сербией и Косово, Азербайджаном и Арменией, но на самом деле все это лишь верхушка айсберга. В действительности же по всему миру существует множество замороженных конфликтов, в том числе и на территории России между республиками. Хоть и хочется надеяться на лучшее, но к этому сейчас нет никаких предпосылок, а вот к тому, что всё будет только хуже - навалом. Мне кажется, что мир в одном шаге чтобы просто захлебнуться кровью.

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

Вспомните символические часы судного дня, которые показывали как близки мы к катастрофе. Каждое их небольшое смещение всегда очень громко обсуждалось, а в 2020 они застыли на отметке без 1 минуты и 40 секунд. Хотите знать почему больше о них никто не говорит? В этом больше нет смысла. Настала полночь. #relocation
❤9👍7😢2🕊1
Краткое объяснение того как работает kubernetes
😁6👍2❤1
Как выглядит работа программистов по мнению авторов егэ: КОД НА ЛИСТОЧКЕ😍
😁6❤1🤡1
Как уехать из рф и начать путешествовать. Инструкция.

1. Пишите ряд агитационных постов против войны.

2. На вас в ответ пишут несколько профессиональных рекомендаций [доносов] ваши знакомые.

3. После вас приглашают на собеседование [допрос] в тур-фирму [мвд].

4. В офис тур-фирмы [мвд] вы не идете, а идёте шествием (желательно через кремль) с плакатом, что путин - хуйло (нужно показать особую заинтересованность в туристической путевке).

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

6. В пред-туристической поездке вас закаляют [бьют], составляют путевку уже в полноценный тур [пишут протокол] и отпускают до дня X [суда]. Если повезло и у организации остаётся бюджет, то ещё могут ненадолго отправить в санаторий [спецприемник].

7. В день X [суда] вы едете в аэропорт и улетаете без плана куда глаза глядят: Турция, Индонезия, Малайзия, Тайланд, Дубай и т д.

8. Done! Наконец-то вы настоящий путешественник! Теперь вы вынуждены путешествовать! По крайней мере до получения внж где-нибудь. Удачи!

P.S. в квадратных скобочках написаны термины как это обычно называют душнилы с которыми придется взаимодействовать.
👍9❤2👏2🤔2💩2🤡1
Ещё пол-года назад я опубликовал свой open source фреймворк regta для создания регулярных задач aka. Cron оптимизированный специально для python с рядом нововведений, но я вообще никак не стал заявлять о его создании. Дело в том, что я считал, что он не достаточно хорош, т к в нём все еще не было важного преимущества, которое я задумывал. Эта особенность оказалась столь нова и необычна, что я даже решил вынести её в отдельный программный пакет. Об этом пакете сейчас и пойдёт речь.

Представьте, что у вас есть контейнер с шедулером и настроенный ci. И, допустим, у вас есть задача, которая выполняется раз в 12 ч. Ну, например, отправка уведомлений. Вот проходит 11 ч и выполнение должно произойти через 1 ч, но вдруг разработчик вносит в код задачи изменения: он делает коммит и контейнер с шедулером редеплоится согласно ci. Теперь счётчик у нашей задачи сбросился и отсчет 12 ч начался сначала. Мы получили серьёзное смещение. Теперь интервал составит 23 ч вместо 12, и ошибка продолжит накапливаться с каждым редеплоем или рестартом сервера. А все может быть ещё серьёзнее. Что если у задачи есть первичный запуск перед стартом счётчика? Ну, как в cron. Тогда мы, наоборот, получим очень короткий интервал, что ещё хуже. Как же решить такую проблему?

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

Предложенная мною идея заключается в вычислении моментов срабатывания, отталкиваясь от общей для всех статической временной отметки: начало эпохи Unix. Unix - одна из первых операционных систем из которой уже произрастают все современные, этакий титан-прародитель. Все ОС унаследовавшие ее принципы называют Unix-подобными, а момент запуска называют началом эпохи Unix. Полночь 1 января 1970 г по UTC - это отметка, которая вшита в каждый компьютер на земле, в каждый чип, способный отсчитывать дату и время. Это единая точка отсчета времени для всех машин, независимо от того, когда они были созданы и в каком часовом поясе находятся. За нее я и предлагаю зацепиться при расчете периодичности.

Фактически, если отбросить всю несильно сложную математику, описанную в доке для поддержки временных окон, часовых зон, точного времени и т д, то подход сводится к поиску остатка от деления времени со старта эпохи Unix на регулярный период. Пропуская текущую отметку времени через такую функцию, мы всегда будем получать смещение до ближайшего времени срабатывания, независимо от текущего момента, что позволяет избавиться от задачи хранения состояний. Такой подход я называю Моменто-независимыми периодами. Модуль regta-period реализует предложенный подход, уже опубликован и будет вшит во фреймворк regta по умолчанию со следующей его версии. Тогда я уже и опубликую его гордый обзор! #tech

Дока: regta-period.Alinsky.tech
Репа: github.com/SKY-ALIN/regta-period
👏5❤2👍2
Забавная особенность - в этот модуль я заложил 2 способа инициализации: хипстерский и олдскульный. Какой вам нравится больше?:) #tech
🔥8❤2👍1
С 0x100'ым днём года!👩🏻‍💻
🎉5❤1
👍4🤣4👎1🤡1
Краткий обзор Нобелевской премии 2022

Считаю, что получатели премии более чем заслуживают, чтобы хотя бы вкратце ознакомиться с их трудами:)

=== ⚛️ Physics ⚛️ ===
— За эксперименты с запутанными фотонами, установившие нарушение неравенств Белла и положившие начало науке о квантовой информации.

* Ален Аспект 🇫🇷
Известен за "Эксперимент Аспекта". Наиболее цитируемая публикация: pdf

* Джон Клаузер 🇺🇸
Известен за "Неравенство Клаузера-Хорна-Шимони-Холта (CHSH)". Наиболее цитируемая публикация: pdf

* Антон Цайлингер 🇦🇹
Наиболее известен за эксперимент с квантовой телепортацией: pdf

=== 🧪 Chemistry 🧪 ===
—За развитие клик-химии и биоортогональной химии.

* Кэролайн Бертоцци 🇺🇸 (twitter)
Известна за создание "Биоортогональной химии". Наиболее цитируемая публикация: pdf

* Мортен Мелдал 🇩🇰 (linkedin)
Известен за открытие "CuAAC клик реакции". Наиболее цитируемая публикация: pdf

* Барри Шарплесс 🇺🇸
Это для дядечки уже вторая нобелевка, первую он получил в 2001. Известен за создание "Клик химии". Публикация, в которой он впервые вводит соответствующий термин: link

=== ⚕️ Physiology / Medicine ⚕️ ===
—За открытия, относящиеся к геномам вымерших гоминин и эволюции человека.

* Сванте Паабо 🇸🇪
Самая цитируемая публикация: pdf

=== ✒️ Literature 🖋️ ===
—За смелость и клиническую остроту, с которой она раскрывает корни, отчужденность и коллективные ограничения личной памяти.

* Анни Эрно 🇫🇷
Самая известная книга - "Событие", она про историю об аборте, во времена, когда это было незаконно во Франции. Слова писательницы: "Возможно, именно в этом истинный смысл моей жизни: чтобы мое тело, мои чувства и мои мысли стали текстом, то есть чем-то понятным и общим; чтобы мое существование полностью растворилось в головах и судьбах других".

=== 🙏🏻 Peace 🙏🏻 ===
—Лауреаты Премии Мира представляют гражданское общество в своих странах. На протяжении многих лет они отстаивали право критиковать власть и защищать основные права граждан. Они приложили выдающиеся усилия для документирования военных преступлений, нарушений прав человека и злоупотребления властью. Вместе они демонстрируют значение гражданского общества для мира и демократии.

* Алесь Беляцкий 🇧🇾
Правозащитник, борец с режимом лукашенко и основатель правозащитной организации @vesna_democrat . Он около 40 лет боролся за демократию в Беларуси, но сейчас он находится в СИЗО и связи с ним нет.

* Мемориал 🇷🇺 (twitter, instagram, vk)
Мемориал - это объединение около десятка организаций на постсоветском пространстве главной целью которого было обличение репрессий в СССР, борьба против тоталитаризма и просвещение гражданского общества. Мемориал существовал с 1987 г, но с начала войны организация была почти полностью разгромлена.

* Центр Гражданских Свобод 🇺🇦 (twitter)
Правозащитная организация борющаяся за становление демократии в Украине с 2007 г. Наиболее известна за помощь протестующим евромайдана и документирование убийств протестующих снайперами в 2014. Ныне организация в основном занимается фиксацией военных преступлений, психологической помощью и поиском пропавших из-за войны.

=== 📉 Economics 📈 ===
—За исследования в области банков и финансовых кризисов.

* Бен Бернанке 🇺🇸
Сделал большой вклад в менеджмент экономики США. Наиболее цитируемая публикация: pdf

* Дуглас Даймонд 🇺🇸 & Филип Дибвиг 🇺🇸
Известны за создание "Модели Даймонда – Дибвига". Наиболее цитируемая парная публикация: pdf

---
Приятного чтива ❤️
❤7🤓1
На этой неделе зарелизили Python 3.11! Самое важное, что произошло - это значительное ускорение, вплоть до 160% от 3.10 на определенных бенчмарках! 🎉 #dev
🔥6👍1🎉1
Типизация опциональности в питоне.

Этот спор древен примерно также как и вопрос: -табы или пробелы? Однажды из-за этого я умудрился даже с коллегами поругаться, поэтому давайте разберёмся из-за чего бывают конфликты у задротов 🤔

Суть в следующем: допустим у нас есть произвольный тип T, но мы хотим задать такой тайпхинт, чтобы иметь возможность оставить переменную с типом Т неопределенной. Как мы это сделаем?

Существует 3 решения:

a: T = None
b: Optional[T] = None
c: Union[T, None] = None


Далее подробнее про каждый из вариантов.

Вариант A:
Самый простой и некоторые линтеры вполне корректно его обработают, подменив на вариант B, но заточенные на типизацию вроде mypy и pyright дадут вам смачного леща, потому что ну а какого хрена вы присвоили неверный тип, а??

Вариант B:
Самый распространенный вариант и куда лучше чем A, но идейно неверный. Представьте следующее выражение:
def f(b: Optional[T]): pass
На уровне логики аргумент b является опциональным, но в то же время, если мы его не передадим в функцию, то программа упадет с ошибкой, т к фактически на уровне кода b является обязательным. Какая-то суперпозиция получается 🤔 Дело в том, что на самом деле понятия опционального аргумента и аргумента, способного принимать None - это совершенно разные и не связанные понятия, которые ошибочно были склеины в классе Optional. В помойку его!

Вариант C:
Фактически это аналог записи вида c: T | None появившейся с версии 3.10, но если вы используете версию младше или пишете обратносовместимый код, то это тот самый вариант, который верен и на уровне логики и на уровне кода. Его я и считаю правильным использовать.

Давайте рассмотрим способы возможного применения последнего варианта в разрезе опциональности. Допустим у нас есть класс пользователя:

class User:
    id: int
    name: Union[str, None]
    last_name: Union[str, None] = None


Из записи атрибутов следует следующая логика:
* id - атрибут типа int, который должен быть обязательно указан.
* name - атрибут, который может быть как str, так и None, но должен быть обязательно указан.
* last_name - атрибут, который может быть как str, так и None, но является опциональным т к он уже имеет дефолтное значение.

Хинт: для того чтоб быстро зарефачить проект с варианта B на вариант C можно воспользоваться утилитой no-optional.

Установка:
pip install no-optional

Рефакторинг одного файла:
no_optional <filename>

А следующей командой можно отредактировать весь проект целиком:
find <project_folder> -iname "*.py" | xargs python -m no_optional

#dev
👍6🔥2❤1
Знаете, у Казахстана просто огромный потенциал. Казахстан - страна будущего. Да и вообще, быть может я в душе казах? Короче, я уезжаю жить в Казахстан!
🤩6👍5🤔1
Все мои коллеги: Стараются быть максимально серьезными и профессиональными.

Я: Высокопоставленные аниме ножки живущие в землянке под мухомором.
🤣3
Вот бы подготовил меня кто в детстве к тому, что выгорать я буду вовсе не от кучи работы или сложных проектов, а от ебучих новостей. Извините, господа, что редко пишу. Однажды, как у меня станет меньше головной боли, то я буду писать интересные вещи порегулярнее ❤️
❤20👍1🙏1
Чат гпт - это просто что то невероятное.

Те кто юзали ее для достижения конкретных задач, а не в виде эксперимента, расскажите в комментариях как вам удалось применить ее на практике
Причина по которой нужно проверять произношение в других языках :)
😁4🤣3
В Казахстане с 27 января ужесточают миграционную политику.

Раньше сюда можно было приехать на 90 дней, и по истечению этого срока уехать, и снова сразу же въехать вновь на 90 дней, и так сколько угодно. Так называемый визаран.

Теперь же в Казахстане можно прибывать только 90 дней раз в 180 дней, что делает его неподходящим вариантом для долговременного прибывания, но лишь на первый взгляд.

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

В Казахстане есть так называемое РВП - разрешение на временное проживание. Этот документ не так крут как ВНЖ, но его невероятно просто и быстро можно получить. Самое главное что даёт РВП - это возможность прибывать в Казахстане в течении года + возможность продлевать его бесчисленное количество раз. Проще всего его получить устроившись на работу фиктивно. Для этого есть 2 варианта:

1. Открыть ИП и оформить самого себя как сотрудника в этом ИП.

2. Устроиться в чужую компанию существующую только на бумаге.

Для того чтобы это провернуть вам не нужно знать юридические особенности и париться с документами, тут очень распространена услуга оформления всего этого под ключ, стоит лишь немного погуглить;)

Средняя цена вопроса по схеме 1 - примерно 150к тенге (22к рублей).
Средняя цена вопроса по схеме 2 - примерно 250к тенге (37к рублей).

Просто введите в гугле "Купить РВП в Казахстане" и изучите несколько первых ссылок.

Также стоит сказать, что если у вас нет удаленной работы и вы бы действительно хотели тут работать face-to-face, то вам поможет получить такой документ ваш работодатель.

Поделитесь этой информацией с вашими знакомыми, которые уехали в Казахстан и не знают что им сейчас делать 🙏🏻 #relocation
🕊5❤1
Недавно наткнулся на годный набор видео с прикольными визуализациями о хороших практиках в программировании, которые часто игнорируют даже опытные разрабы. Видео на английском, но если вдруг что, то там есть субтитры. Вот этот набор:

* Правильное использование абстракций

* Минусы наследования

* Вложенность - жопа

* Хороший нейминг

* Комменты - в мусор

Вообще все эти видео с одного канала и я надеюсь парниша не забросит его. #dev
👍5❤2🔥1