Мы не ускорим Python изнутри
В одном из выпусков пятиминутки Python был рассказ про альтернативные питоны, которых уже стало довольно много.
Появился ещё один — https://hpyproject.org/.
Чем дальше, тем меньше я верю в то, что питона ускорят изнутри и что не нужны нам все эти Rust-ы, Zig-и и Nim-ы. 🥲
А вот ссылка на выпуск — https://fmp.mave.digital/ep-10.
В одном из выпусков пятиминутки Python был рассказ про альтернативные питоны, которых уже стало довольно много.
Появился ещё один — https://hpyproject.org/.
Чем дальше, тем меньше я верю в то, что питона ускорят изнутри и что не нужны нам все эти Rust-ы, Zig-и и Nim-ы. 🥲
А вот ссылка на выпуск — https://fmp.mave.digital/ep-10.
🔥1
Колобок-киборг
Я по строкам метён,
По символам скребён,
На конфигах мешен,
В терминале стужен;
Я от Sublime Text ушёл,
Я от VSCode ушёл,
Я от PyCharm ушёл,
От Emacs ушёл,
И от тебя убегу.
Я по строкам метён,
По символам скребён,
На конфигах мешен,
В терминале стужен;
Я от Sublime Text ушёл,
Я от VSCode ушёл,
Я от PyCharm ушёл,
От Emacs ушёл,
И от тебя убегу.
😁1
Проверка на вшивость
Когда выдают кредитную карточку, сотрудники банка могут специально каверкать названия улиц прописки или проживания и смотрят на твою реакцию. Например, внезапно спрашивают: «у вас тут в анкете указано, что вы на Монтажной, всё верно?», а на самом деле там Молодёжная.
Вы и сами, наверняка, не раз видели этот приём в фильмах или сериалах. Но это мои домыслы. Может просто сотрудник не выспался и не может прочитать правильно.
Интересно, отказывали ли кому-то в кредитке после такого "теста".
Когда выдают кредитную карточку, сотрудники банка могут специально каверкать названия улиц прописки или проживания и смотрят на твою реакцию. Например, внезапно спрашивают: «у вас тут в анкете указано, что вы на Монтажной, всё верно?», а на самом деле там Молодёжная.
Вы и сами, наверняка, не раз видели этот приём в фильмах или сериалах. Но это мои домыслы. Может просто сотрудник не выспался и не может прочитать правильно.
Интересно, отказывали ли кому-то в кредитке после такого "теста".
Прогноз погоды по RSS
Я настолько люблю RSS, что даже прогноз погоды получаю по RSS. И пару лет назад я написал такую небольшую тулзу — https://github.com/biozz/wrss.
RSS по ощущениям у меня как утренняя передача на радио или как утренняя газета: стабильно каждый день в 8 утра получаешь пачку новостей и прогноз погоды.
Если больше буду врываться в инвестиции, то наверное пора сделать такую же штуку для котировок по RSS.🤔
Я настолько люблю RSS, что даже прогноз погоды получаю по RSS. И пару лет назад я написал такую небольшую тулзу — https://github.com/biozz/wrss.
RSS по ощущениям у меня как утренняя передача на радио или как утренняя газета: стабильно каждый день в 8 утра получаешь пачку новостей и прогноз погоды.
Если больше буду врываться в инвестиции, то наверное пора сделать такую же штуку для котировок по RSS.
Please open Telegram to view this post
VIEW IN TELEGRAM
Про двух Иванов. Инструменты для редактирования
Я редактировал первые 30 выпусков подкаста «Два Ивана (название обсуждается)» — https://doubleivan.mave.digital, пока не устал. Вот, какими инструментами.
Начинал с Audacity. Мы с Ваней записывали локально дорожки, потом он мне пересылал и я уже миксовал.
Потом перешёл на Reaper. В это время мы уже пересели в Riverside.fm. Там было удобно, что всё в браузере и не надо локально ничего записывать. Пару раз Риверсайд нас всё-таки подводил — обрывал записи или в записи было очень плохое качество, хотя на "звонке" нормальное.
Последним был Ferrite на айпаде. Риверсайд остался, но в Reaper было неудобно. Я нашёл вот это видео — https://www.youtube.com/watch?v=fUTOx3Dxhds, где чел как во Fruit Ninja Эпл Пенсилом распиливает и склеивает дорожки. Меня это настолько впечатлило, что я купил Ferrite и на нём редачил примерно с 20 по 30 выпуски.
И потом я устал и мы начали отдавать на редактуру ребятам из Coworcast — https://coworcast.ru/, там же, где периодически пишемся. У них хороший ценник и вообще они котики, рекомендую.
Я редактировал первые 30 выпусков подкаста «Два Ивана (название обсуждается)» — https://doubleivan.mave.digital, пока не устал. Вот, какими инструментами.
Начинал с Audacity. Мы с Ваней записывали локально дорожки, потом он мне пересылал и я уже миксовал.
Потом перешёл на Reaper. В это время мы уже пересели в Riverside.fm. Там было удобно, что всё в браузере и не надо локально ничего записывать. Пару раз Риверсайд нас всё-таки подводил — обрывал записи или в записи было очень плохое качество, хотя на "звонке" нормальное.
Последним был Ferrite на айпаде. Риверсайд остался, но в Reaper было неудобно. Я нашёл вот это видео — https://www.youtube.com/watch?v=fUTOx3Dxhds, где чел как во Fruit Ninja Эпл Пенсилом распиливает и склеивает дорожки. Меня это настолько впечатлило, что я купил Ferrite и на нём редачил примерно с 20 по 30 выпуски.
И потом я устал и мы начали отдавать на редактуру ребятам из Coworcast — https://coworcast.ru/, там же, где периодически пишемся. У них хороший ценник и вообще они котики, рекомендую.
🔥1
Про двух Иванов. Зачем нам (нужна была) фоновая музыка
Всё просто — делаешь фон чуть громче и косяки записи и редактуры меньше слышно.
Так я думал почти год.
А потом осознал, что то, что я называю косяками, на самом деле слышу только я. Потому что прослушивал запись во время редактирования суммарно несколько часов.
И вообще подкасты слушают на х1.7, в машинах и метро. Короче, в плохих условиях, где и речь-то порой плохо слышно.
Так что не парьтесь по вздохам и словам паразитам на записях. А если паритесь, отдайте на редактуру профессионалам и поберегите свои силы на контент-мейкинг.
Всё просто — делаешь фон чуть громче и косяки записи и редактуры меньше слышно.
Так я думал почти год.
А потом осознал, что то, что я называю косяками, на самом деле слышу только я. Потому что прослушивал запись во время редактирования суммарно несколько часов.
И вообще подкасты слушают на х1.7, в машинах и метро. Короче, в плохих условиях, где и речь-то порой плохо слышно.
Так что не парьтесь по вздохам и словам паразитам на записях. А если паритесь, отдайте на редактуру профессионалам и поберегите свои силы на контент-мейкинг.
🔥3👍2👏1
Про двух Иванов. Подготовка для слабаков (вредный совет)
Мы никогда не готовимся, да и вам не советуем. Мы не знаем о чём будет выпуск, да и вам не надо.
Мы же понимаем, что мы все крутые подкастеры. Раз уж сели за микрофоны, значит мы точно будем знать о чём говорить.
А гости, так эти вообще красавчики и всегда могут о себе хорошо рассказать и раскрыться с лучшей стороны. Самые простые выпуски, когда приходят гости — просто спросил как дела, а они сами дальше шпарят контент.
Вы что, думаете, что Лекс Фридман готовится? Или, может быть, Джо Роган? Да-да, рассказывайте. Кому нужны эти продьюсеры? Они же ещё денег за сценарии просят, а потом за пост-обработку. Мы сами лучше знаем, как нам надо.
В общем, подготовка для слабаков. Только экспромт, только безграничная сила неиссякаемой весны творческой энергии.
Мы никогда не готовимся, да и вам не советуем. Мы не знаем о чём будет выпуск, да и вам не надо.
Мы же понимаем, что мы все крутые подкастеры. Раз уж сели за микрофоны, значит мы точно будем знать о чём говорить.
А гости, так эти вообще красавчики и всегда могут о себе хорошо рассказать и раскрыться с лучшей стороны. Самые простые выпуски, когда приходят гости — просто спросил как дела, а они сами дальше шпарят контент.
Вы что, думаете, что Лекс Фридман готовится? Или, может быть, Джо Роган? Да-да, рассказывайте. Кому нужны эти продьюсеры? Они же ещё денег за сценарии просят, а потом за пост-обработку. Мы сами лучше знаем, как нам надо.
В общем, подготовка для слабаков. Только экспромт, только безграничная сила неиссякаемой весны творческой энергии.
👾2
Новый эмоджи-пак — True Editors
Если вы счастливые обладатели премиума и пользуетесь настоящими редакторами кода, то теперь можете сказать об этом всему миру с помощью этих прекрасных эмоджи.
Этакий «I use neovim btw» по-телеграмовски.
P.S.: заявки на тру эдиторы принимаются, пишите в комменты или лс. Сейчас есть такие —📝 📝 📝 📝 📝 📝
https://news.1rj.ru/str/addemoji/TrueEditors
Если вы счастливые обладатели премиума и пользуетесь настоящими редакторами кода, то теперь можете сказать об этом всему миру с помощью этих прекрасных эмоджи.
Этакий «I use neovim btw» по-телеграмовски.
P.S.: заявки на тру эдиторы принимаются, пишите в комменты или лс. Сейчас есть такие —
https://news.1rj.ru/str/addemoji/TrueEditors
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
True Editors
Emojipack with 6 emoji for Telegram Premium subscribers.
💅2⚡1
Про двух Иванов. Невыпущенное
Если вы давний слушатель двух Иванов, то замечали, что выпуски на Мейв и на сайте начинаются с №7.
https://doubleivan.mave.digital/
Дело в том, что первые 6 выпусков мы выкладывали исключительно в слаке Островка, только на внутреннюю аудиторию. А когда решили выходить на внешнюю аудиторию, то они не прошли мою цензуру по качеству звука.
Есть и ещё невыпущенный материал:
- 2023-08-31, который должен был быть №14. Я хотел попробовать новостной формат, но получилось очень скушно. Мы же не Радио-Т.
- 2024-04-25, который должен был быть №27. С Сашей Гончаровым (@blog_pogromista) про автоматизированный найм разработчиков. Но это тот самый раз, когда Риверсайд запорол нам дорожку Саши. А в лайве было ок!
В комменты выложу первые шесть выпусков. Пишите, если они так-то ок и можно выложить. Тогда я ослаблю градус цензуры и бахну официально. Жаль, что без красивых обложек.
Если вы давний слушатель двух Иванов, то замечали, что выпуски на Мейв и на сайте начинаются с №7.
https://doubleivan.mave.digital/
Дело в том, что первые 6 выпусков мы выкладывали исключительно в слаке Островка, только на внутреннюю аудиторию. А когда решили выходить на внешнюю аудиторию, то они не прошли мою цензуру по качеству звука.
Есть и ещё невыпущенный материал:
- 2023-08-31, который должен был быть №14. Я хотел попробовать новостной формат, но получилось очень скушно. Мы же не Радио-Т.
- 2024-04-25, который должен был быть №27. С Сашей Гончаровым (@blog_pogromista) про автоматизированный найм разработчиков. Но это тот самый раз, когда Риверсайд запорол нам дорожку Саши. А в лайве было ок!
В комменты выложу первые шесть выпусков. Пишите, если они так-то ок и можно выложить. Тогда я ослаблю градус цензуры и бахну официально. Жаль, что без красивых обложек.
Расположение попапов оповещений в Obsidian
Мне начали мешать уведомления в Обсидиане после того как установил Obsidian Linter — https://github.com/platers/obsidian-linter. Линтер мне нужен, в первую очередь для того, чтобы перед сохранением файла добавлять created и modified во frontmatter. А после сохранения файла я часто использую иконки в верхней строке и оповещения их закрывают. Приходится ждать, когда оповещение уйдёт или кликать по нему, чтобы ушло побыстрее.
Наверное, для этого есть плагин, потому что встроенной фичи точно нет — https://forum.obsidian.md/t/placement-of-notifications/50331.
Но я, как обычно, решил сначала пофиксить сам, как умею.
Открыл DevTools и нашёл нужный стиль:
Добавил кастомный CSS сниппет:
Теперь попапы оповещений внизу и не мешают.
Мне начали мешать уведомления в Обсидиане после того как установил Obsidian Linter — https://github.com/platers/obsidian-linter. Линтер мне нужен, в первую очередь для того, чтобы перед сохранением файла добавлять created и modified во frontmatter. А после сохранения файла я часто использую иконки в верхней строке и оповещения их закрывают. Приходится ждать, когда оповещение уйдёт или кликать по нему, чтобы ушло побыстрее.
Наверное, для этого есть плагин, потому что встроенной фичи точно нет — https://forum.obsidian.md/t/placement-of-notifications/50331.
Но я, как обычно, решил сначала пофиксить сам, как умею.
Открыл DevTools и нашёл нужный стиль:
.notice-container {
// там ещё много свойств, но нам нужно только это
top: 22px;
}
Добавил кастомный CSS сниппет:
.notice-container {
bottom: 22px;
}
Теперь попапы оповещений внизу и не мешают.
💅2
Про двух Иванов. Записывайте интро в конце
Когда-то какой-то умный ютюбер сказал «записывай интро в конце».
Мы начали делать так в нашем подкасте где-то с 10-го выпуска и это очень удобно, потому что нас с Ваней часто уносит от темы.
Для нас важна не тема, а топик-стартер. Нам нравится исследовать какую-то идею и делать разговор максимально свободным и живым. На мой взгляд это добавляет какой-то местечковости и уюта, чего мы и добиваемся.
Самое классное смотреть на реакции гостей, с которыми мы просто начинаем беседу под запись. А когда отведённое время заканчивается, спустя полтора часа разговоров, мы с Ваней говорим «Ну что? Пишем интро?». Все гости удивляются.
Записывайте интро в конце, потому что вы уже разогреты после разговора и этот заряд лучше настраивает на прослушивание.
Не уверен, будет ли заметно отличие в том, как записано интро на фоне всего остального, но вот вам два выпуска для сравнения:
- Два Ивана №10 (Vim vs IDE) — https://doubleivan.mave.digital/ep-4
- Два Ивана №33 (про CTF) — https://doubleivan.mave.digital/ep-27
Когда-то какой-то умный ютюбер сказал «записывай интро в конце».
Мы начали делать так в нашем подкасте где-то с 10-го выпуска и это очень удобно, потому что нас с Ваней часто уносит от темы.
Для нас важна не тема, а топик-стартер. Нам нравится исследовать какую-то идею и делать разговор максимально свободным и живым. На мой взгляд это добавляет какой-то местечковости и уюта, чего мы и добиваемся.
Самое классное смотреть на реакции гостей, с которыми мы просто начинаем беседу под запись. А когда отведённое время заканчивается, спустя полтора часа разговоров, мы с Ваней говорим «Ну что? Пишем интро?». Все гости удивляются.
Записывайте интро в конце, потому что вы уже разогреты после разговора и этот заряд лучше настраивает на прослушивание.
Не уверен, будет ли заметно отличие в том, как записано интро на фоне всего остального, но вот вам два выпуска для сравнения:
- Два Ивана №10 (Vim vs IDE) — https://doubleivan.mave.digital/ep-4
- Два Ивана №33 (про CTF) — https://doubleivan.mave.digital/ep-27
🌚2
Про двух Иванов. AI инструменты для обработки звука
Пока ещё не дотягивают.
Первые выпуски, записанные на непонятные микрофоны в местах с плохой акустикой, я пропускал через Adobe Podcasts, который в то время был в бете и бесплатным. У записей после обработки были странные артефакты, особенно на звуках-паразитах между фразами «эээ» «иии» — было слышно, как меняется тональность голоса.
Сейчас таких AI инструментов куча. Один из таких встроен в Riverside.fm, где мы записываемся. Но получается плохо.
Ещё одна крутая идея в AI обработке — правишь текст расшировки и вместе с ним меняется и аудио. Вариант такой тулзы в Riverside.fm пока не дотягивает, потому что плохо расшифровывает некоторые фразы.
Повторюсь, что на самом деле многих не парят косяки редактуры или неидеальное качество звука. Так что не скупитесь на нормальный микрофон и не загоняйтесь, как я на старте подкаста.
Главное, что у вас есть — это контент. Content is king.
Пока ещё не дотягивают.
Первые выпуски, записанные на непонятные микрофоны в местах с плохой акустикой, я пропускал через Adobe Podcasts, который в то время был в бете и бесплатным. У записей после обработки были странные артефакты, особенно на звуках-паразитах между фразами «эээ» «иии» — было слышно, как меняется тональность голоса.
Сейчас таких AI инструментов куча. Один из таких встроен в Riverside.fm, где мы записываемся. Но получается плохо.
Ещё одна крутая идея в AI обработке — правишь текст расшировки и вместе с ним меняется и аудио. Вариант такой тулзы в Riverside.fm пока не дотягивает, потому что плохо расшифровывает некоторые фразы.
Повторюсь, что на самом деле многих не парят косяки редактуры или неидеальное качество звука. Так что не скупитесь на нормальный микрофон и не загоняйтесь, как я на старте подкаста.
Главное, что у вас есть — это контент. Content is king.
❤🔥2
Про ЯП. PHP такой «ну верну хоть чего-нибудь»
Предположим у вас есть вот такой объект:
И вы пробуете найти элемент с
Вопрос: что напечатается в echo?
Правильный ответ: первый элемент массива. И в доке это поведение описано:
array_search верёт false. false приведётся к 0 и получится
Да, есть параметр strict, но с уточнением про тип данных. Дальше идут примечания, ворнинги и куча комментов, где ребята делятся, как правильно юзать array_search.
Я что, избалован питоном и го? Почему мне это кажется плохим дизайном?
Предположим у вас есть вот такой объект:
{
"items": [
{
"id": 1,
"name": "New"
},
{
"id": 2,
"name": "Applied"
}
]
}
И вы пробуете найти элемент с
name в значении «Новый» и потом печатаете найденный элемент. Вот так:$key = array_search("Новый", array_column( $data->items, 'name' ))
echo $data['items'][$key]
Вопрос: что напечатается в echo?
Правильный ответ: первый элемент массива. И в доке это поведение описано:
array_search — Searches the array for a given value and returns the first corresponding key if successful
array_search верёт false. false приведётся к 0 и получится
$data['items'][0].Да, есть параметр strict, но с уточнением про тип данных. Дальше идут примечания, ворнинги и куча комментов, где ребята делятся, как правильно юзать array_search.
Я что, избалован питоном и го? Почему мне это кажется плохим дизайном?
🤡4🤯2
Фильтры для RSS фидов
Иногда хочется получать не все новости ресурса, а только часть. У меня есть два примера, как ограничивать спам в RSS.
В Рыбинске есть «Рыбинские известия» — https://gazeta-rybinsk.ru/, но мне у них инетерсно сейчас только про то, когда надолго закрывают мост через Волгу из-за ремонта. Я использую Miniflux (https://miniflux.app/) и настроил для фида известий регулярку
И ещё есть HNRSS для Hacker News, в урле которого я указал порог комментов и апвоутов и теперь получаю только самые "обсуждаемые" и "популярные" новости — https://hnrss.org/newest?comments=50&points=250.
А как вы ограничиваете поток входящих новостей?
Иногда хочется получать не все новости ресурса, а только часть. У меня есть два примера, как ограничивать спам в RSS.
В Рыбинске есть «Рыбинские известия» — https://gazeta-rybinsk.ru/, но мне у них инетерсно сейчас только про то, когда надолго закрывают мост через Волгу из-за ремонта. Я использую Miniflux (https://miniflux.app/) и настроил для фида известий регулярку
(?i)волжский мост.И ещё есть HNRSS для Hacker News, в урле которого я указал порог комментов и апвоутов и теперь получаю только самые "обсуждаемые" и "популярные" новости — https://hnrss.org/newest?comments=50&points=250.
А как вы ограничиваете поток входящих новостей?
Чего хотят все дизайнеры
Мне тут сказали, что каждый дизайнер хочет сделать две вещи:
• секретный плакат
• этикетку для пива
Есть тут дизайнеры? Правду говорят?
Мне тут сказали, что каждый дизайнер хочет сделать две вещи:
• секретный плакат
• этикетку для пива
Есть тут дизайнеры? Правду говорят?
JSONPatch
Частый спор про изменение объекта по API — это как передавать данные. Я встерчал 3 подхода:
• передавать полностью весь объект
• передавать только поля, которые нужно изменить
• отдельные API для изменения конкретных полей объекта
Кто напишет про GraphQL, gRPC и др., тот хрюшка.
Для варианта передачи только полей, которые изменились, нужна какая-то обвязка. В Python сейчас стандарт — Pydantic. Раньше мы мучались с тем, как обрабаывать
Оказывается, есть стандарт — https://jsonpatch.com/. Но и в нём есть, к чему придраться — это то, как указывается путь до ключа
• JSONPath (самый очевидный)
• jq (самый хипстерский)
• JSON Path Expressions в SQL (самый занудный)
• JSONata (не то, чтобы стиль, но заслуживает внимания)
Короче, я хочу JSONPatch, который использует JSONPath для путей.
С другой стороны это мелочи по сравнению с тем, что операции в JSONPatch — это по сути история изменений объекта, которую можно хранить, не храня снапшоты объектов. (вспоминаю django-reversion)
Частый спор про изменение объекта по API — это как передавать данные. Я встерчал 3 подхода:
• передавать полностью весь объект
• передавать только поля, которые нужно изменить
• отдельные API для изменения конкретных полей объекта
Кто напишет про GraphQL, gRPC и др., тот хрюшка.
Для варианта передачи только полей, которые изменились, нужна какая-то обвязка. В Python сейчас стандарт — Pydantic. Раньше мы мучались с тем, как обрабаывать
None, а сейчас есть foo.model_dump(exclude_unset=True). И вроде как всё ок, но это только Python.Оказывается, есть стандарт — https://jsonpatch.com/. Но и в нём есть, к чему придраться — это то, как указывается путь до ключа
path, который напоминает unix-овые пути. А ведь уже есть несколько других стилей:• JSONPath (самый очевидный)
• jq (самый хипстерский)
• JSON Path Expressions в SQL (самый занудный)
• JSONata (не то, чтобы стиль, но заслуживает внимания)
Короче, я хочу JSONPatch, который использует JSONPath для путей.
С другой стороны это мелочи по сравнению с тем, что операции в JSONPatch — это по сути история изменений объекта, которую можно хранить, не храня снапшоты объектов. (вспоминаю django-reversion)