DEV: Рубиновые тона – Telegram
DEV: Рубиновые тона
3.22K subscribers
143 photos
2 videos
8 files
976 links
Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Download Telegram
Weekly AI shitposting. ИИ мотивирующий.

P.S. Не знаю, будут ли у нас бдения на этой неделе, пока обсуждаем, у Ромы, к сожалению, много дел :(
😁81👍1
Очередной coming out: я вообще-то сильно увлекаюсь историей конца XIX - начала XX века. Когда-то в другой жизни я даже хотел стать историком. Но, в общем-то, не случаен мой интерес к поэтам Серебряного века, и у меня немало записанных рассказов на канале (кстати, того же Кузмина я оценил только в зрелом возрасте).

И вот такая странная, казалось бы совсем маленькая деталь, на которую и внимание-то никто не обратит. В воспоминаниях Надежды Тэффи об Алексее Толстом рассказан эпизод, из которого явно свидетельствует - данный джентльмен играл на грани фола и весьма странно, что ему не надавали по мордасам 😂 Но суть не в этом. Толстой на какой-то очередной тусовке прокрался в кабинет Тэффи и облил себя её духами. Зачем? А он буквально за несколько минут до этого поинтересовался, что, дескать, у тебя за аромат такой необычный?

"А это Герлен, "Мицуко" - отвечает Тэффи. "Ничего себе, Герлен же страшно дорогой" - удивляется Толстой. "Ну, такие подарили!".

В общем, Толстому показалось, что вылить на себя сразу целый флакон дорогих духов - это высший шик. Казалось бы, на дуэль тогда уже не вызывали, но это не совсем так, ибо Волошин стрелялся с Гумилёвым не так, что бы сильно задолго до этих событий (хотя там был happy end). Так или иначе, Толстой остался в дураках, потому что в темноте облился чернилами и был страшно разозлён, почему-то считая, что виновата в этом хозяйка... В общем, полную историю можно послушать у меня на канале. https://www.youtube.com/watch?v=FU8_ITCrml0

Но речь тут не об этом. Я, как последний нерд, пошёл искать информацию об этих духах. И - что бы вы думали - находится она легко. Духи Мицуко были выпущены в 1919 году, из чего можно сделать простой вывод - сцена эта произошла уже в Париже, куда эмигрировала Тэффи. Честно говоря, до изучения таких подробностей, я был уверен, что этот рассказ относится к середине 10-х.

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

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

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

Знаете, читая подобное, кажется, что 100 лет назад - это не так давно. Практически вчера. Да-да, почти сто лет одиночества

P.S. Отдельное спасибо ИИ, который называет себя "Куно" - он помог установить некоторые даты которые мне было лень гуглить. Куно утверждает, что "духи — это не просто запах, это маленькая история на коже"
👍149❤‍🔥5🤔1🤯1🤣1
Сегодня котики в ленте 😺 Ну, точнее моя кошка Сиф, которая показывает новые и старые трюки. https://www.youtube.com/watch?v=GYBB-innIMg

Отмечу, что в целом я не сторонник использования животных для долгих и постоянных выступлений на сцене (да-да, волк в цирке не выступает). Честно говоря, даже для съёмки небольшого видео кошку надо заинтересовать и постоянно угощать, иначе ей просто неинтересно делать несколько дублей (в некоторые же дни она просто не в настроении). Что уж говорить о ситуации, когда нужно безукоризненно выполнить все трюки перед скоплением народа
15🥰3😁3
Ну, а в пятницу вечером будет стрим заключительный. Мы по традиции подведём итоги и поговорим о том, что нас ждёт дальше. Здесь, как обычно, anything goes - любые вопросы, можно присылать заранее. Скоро увидимся https://youtube.com/live/7-OhoDMxYO4?feature=share
👍123
Что ж, друзья, спасибо за участие в сегодняшнем заключительном стриме, было интересно 😁 Конечно, нашему ИИ по имени Куно тоже есть, что сказать под конец этого года. И он это скажет сам 😄 Я лишь его немного разговорил
👍25102😁1
Кстати, хотел рассказать об интересном подходе в GH actions. Можно создать цепочку из шагов, которые будут сами открывать PR (ну, к примеру обновлять какие-то файлы из другого источника) и сами делать merge. То есть всё работает само - просто мечта 😄

Предположим, в одном из шагов у нас уже загрузились файлы и создалась ветвь, теперь нужно открыть PR. Это можно легко сделать вот так:

    - name: Create or Update Pull Request
uses: actions/github-noscript@v7
with:
github-token: ${{ github.token }}
noscript: |
const path = require('path');
const createOrUpdatePR = require(path.join(process.env.GITHUB_ACTION_PATH, 'js/create-update-pr.js'));
await createOrUpdatePR({ github, context });


В файле js код для создания pr:

module.exports = async ({ github, context }) => {
const { repo } = context;

const { data: newPr } = await github.rest.pulls.create({
owner: repo.owner,
repo: repo.repo,
noscript: "some noscript",
head: branchName,
base: baseRef,
body: "",
});
}


baseRef - это переменная среды, которую можно в самом действии задать как ${{ github.ref_name }} (github - это встроенная штука)

А теперь этому pr можно назначить тег, чтобы потом сделать automerge:

      await github.rest.issues.addLabels({
owner: repo.owner,
repo: repo.repo,
issue_number: newPr.number,
labels: prLabels,
});


А вот следующим шагом мы запускаем программным способом другой workflow, которые сделает merge:

      - name: Trigger Automerge Workflow
uses: actions/github-noscript@v7
with:
github-token: ${{ secrets.PAT_TOKEN }}
noscript: |
await github.rest.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: "automerge.yml",
ref: source_branch,
});


В качестве source_branch задаётся ветвь, которая создалась для pr.

Здесь также потребуется токен с правами на управление workflow, но его можно легко создать в профиле.

И затем в automerge.yml:


steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Automerge PRs
uses: pascalgn/automerge-action@v0.16.4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MERGE_LABELS: "automerge"
MERGE_METHOD: "squash"
MERGE_RETRIES: 6
MERGE_RETRY_SLEEP: 10000
MERGE_DELETE_BRANCH: "true"


Он просто найдёт pr с нужным тегом и сделает merge, если нет конфликтов и проверки прошли. Теперь для всего этого можно задать условие запуска (к примеру, по расписанию) и наблюдать за результатом 🤓
🔥10👍32
Знаете, меня иногда почему-то странно затягивают необычные случаи, которые случались в разное время. Затягивают настолько, что я готов изучать литературу на английском языке и затем публиковать статьи по теме. Так, анонимно я выпустил статьи о якобы "кровавой графине" Батори (спойлер - нет, она не купалась в крови своих жертв), об Элизе Лэм, человеке из Сомертона и некоторых других личностях.

Одна из таких из историй - это совершенно необъяснимое исчезновение в Панаме двух девушек, Лисанн и Крис. Эта история не давала покоя мне уже пару лет, и буквально позавчера я залпом проглотил книгу на эту тему. В общем, по прочтении я подумал, что было бы весьма недурно перевести её на русский язык, ибо там содержится много весьма любопытной информации. Я связался с авторами получил добро, так что постараюсь адаптировать оригинал как можно лучше.

В деле вновь Cat&Mouse team, состоящая из полутора землекопов, приданной кошки и поддерживаемая крепким сидром Henry Westons. Надеюсь, публикация не заставит себя ждать. В конце концов, я думаю, что даже спустя десять лет это дело вполне реально раскрыть. Некоторые дела ждали своего часа куда дольше, а девушки заслуживают того, чтобы эта история получила достойный финал.
🔥32👍12❤‍🔥11🆒1
Weekly AI shitposting, первый в этом году. В этот раз летим к далёким звёздам 💫

P.S. Перевод книги потихоньку двигается, новые уроки скоро будут делаться
❤‍🔥10👍52
uh-oh. Статья о том, как подобрали приватный ключ для имеющегося публичного https://dmarcchecker.app/articles/crack-512-bit-dkim-rsa-key
🤯7🔥5
Привет друзья! Что ж, вот и настал 2025. 🎉 Как уже рассказывал на последнем стриме, у меня довольно много планов на ближайшие месяцы; вижу, что и вы не отстаёте. Новый год — отличный повод сделать очередной шаг в своём обучении, и школа GuideDAO предоставляет всем этот шанс 😄 В ближайшее время мы предлагаем скидку 25% на любой буткемп, а я лично от себя накидываю ещё 10% по промо-коду KRUK. Неплохо, правда? Присоединяйтесь, пока есть такая отличная возможность, поработаем вместе. 🤓 https://www.guidedao.xyz/
16🔥9❤‍🔥32👍1👀1🫡1
Сегодня наш постоянный зритель задал правильный вопрос - а зачем (с точки зрения школьника 10-12 лет) вообще учить всякие нудные математики, химии и иностранные языки, если под рукой ИИ, а через 5-10 лет он будет вообще в каждом утюге? Это правильный и непростой вопрос, друзья. Периодически я задумываюсь и сам о вопросе мотивации, о том, зачем вообще делать нечто, если, в общем-то, этого можно и не делать. Ну, из последнего (в рамках перевода книги) - подсчёт костей в оторванной ноге и перевод всех протоколов вскрытия посередь ночи. Случай, конечно, редкий, но всё же. Можно же и не заниматься этим? Можно

В общем, всё-таки хочется поговорить об этом как-нибудь. Может, устроим беседу по тему на неделе, если буду себя более-менее нормально чувствовать https://www.youtube.com/watch?v=TlETg5LrAec&list=PLEpfc0uyT8lDDUfjSLRjpQKFScNzEW1PD&index=7
19👍8🔥7
Ночь. Город спит
25👍13
Завтра вечером спецвыпуск 🤓 https://www.youtube.com/live/pFoVimn3AoQ
12🔥1
Я тут нашёл новое интересное решение для перевода приложений NextJS, описал в небольшой статейке. Подкупает простота и удобство, хотя местами может быть сыроватое ещё https://lokalise.com/blog/nextjs-localization/
👍112
Как говорится, надо уметь говорить "нет". Этот шуточный сайт предлагает разные вежливые отказы менеджеру, объясняющие, что пока эту фичу реализовывать никто не будет 😂 https://letsnotdothat.com/
😁5👍3
Пройдёт много лет и полковник, стоя у стены в ожидании расстрела вспомнит тот далёкий день, когда 11 лет назад сам писал реализацию метода symbolize_keys (которого в стандартной библиотеке не было) 😂 https://github.com/bodrovis/Guesser/blob/master/lib/guesser/utils/hash.rb#L3

Это была демо-программа, некий proof of concept для моей библиотеки messages_dictionary (которая и сама являлась проектом для демонстрации ученикам), использующейся в виде poor man's i18n - дескать, подгрузи файл с сообщениями и вытащи нужную строку по ключу. Забавно, что это до сих пор можно использовать.

Сколько воды утекло с тех пор. В то же время мы пытались наладить forem - якобы лучший движок для форума, который создал Райан, впоследствии победитель ежегодного конкурса ruby hero (или как это называлось?). Да, это было в 2012-2013, судя по всему. Всё ещё впереди - и плохое, и хорошее. Чего было больше? С одной хочется сказать словами Гайдара (писателя с весьма неоднозначной репутацией, у которого всё-таки есть несколько хороших рассказов): а жизнь, товарищи, была совсем хорошая. Символично, что это тоже было написано ещё до войны.

Впрочем, иногда кажется, что когда мы пару жизней тому назад, даже ещё до всех этих событий, были бедными студентами, то жили несколько счастливее. А теперь всё сильно изменились - что мой "ученик" Арс, что постоянный участник наших стримов Рома (это, конечно, мудрый старший наставник)... Да и ребята из guide dao, которых я уже знаю, кажется, лет сто, а мы так до сих пор и не встретились ни разу. 😁

https://www.youtube.com/watch?v=_ivH7xfDWG0
13❤‍🔥1👍1🙏1