В понедельник закончился очередной Advent of Code. И я во второй раз добрался до конца вовремя, без пропусков и задержек!
По ощущениям задачки этого года были проще в среднем, чем задачи двух-трёх предыдущих лет. И нельзя сказать, что я просто руку набил — реально простые попадались даже на третьей неделе.
Увы, нельзя сказать, что какое-то из заданий запомнится, как бывало в раньше. И опять же, это не следствие того, что я натренировался: встречались задачки на обычный поиск пути, казалось бы, но с интересным поворотом во второй части (лабиринт в форме тора с телепортами на другие слои реальности). А в этом году даже простых клеточных автоматов не было, не говоря уж о "Жизни", которая учитывала соседей в будущем и прошлом!
Зато в этот раз были две задачи, которые решались на Python, скажем, в десяток строк, включая разбор входных данных, просто потому, что для языка есть готовые библиотеки, делающие graph clustering или находящие решение для системы из девяти уравнений с шестью неизвестными. Ещё всякие Mathematica и Wolfram Alpha подходили, вот только это уже не "of Code" какое-то, на мой взгляд…
Я в этом году решал задачки на Scala — набивал руку, раз уж в работе теперь использую. С одной стороны ленивость Haskell местами бы очень пригодилась да и парсеры на megaparsec я писать умею хорошо, с другой отладчиком в Intellij Idea было приятно пользоваться. В целом я обошёлся стандартной библиотекой, комбинаторный парсер один раз только применил, но это обычное дело для AoC — давать возможность обходиться без специфичных решений. И тем больше меня расстроили те самые две задачки, которые я выше упоминал.
В любом случае AoC — уже привычная часть моей жизни. А это приятно — иметь что-то, что точно порадует под конец года!
По ощущениям задачки этого года были проще в среднем, чем задачи двух-трёх предыдущих лет. И нельзя сказать, что я просто руку набил — реально простые попадались даже на третьей неделе.
Увы, нельзя сказать, что какое-то из заданий запомнится, как бывало в раньше. И опять же, это не следствие того, что я натренировался: встречались задачки на обычный поиск пути, казалось бы, но с интересным поворотом во второй части (лабиринт в форме тора с телепортами на другие слои реальности). А в этом году даже простых клеточных автоматов не было, не говоря уж о "Жизни", которая учитывала соседей в будущем и прошлом!
Зато в этот раз были две задачи, которые решались на Python, скажем, в десяток строк, включая разбор входных данных, просто потому, что для языка есть готовые библиотеки, делающие graph clustering или находящие решение для системы из девяти уравнений с шестью неизвестными. Ещё всякие Mathematica и Wolfram Alpha подходили, вот только это уже не "of Code" какое-то, на мой взгляд…
Я в этом году решал задачки на Scala — набивал руку, раз уж в работе теперь использую. С одной стороны ленивость Haskell местами бы очень пригодилась да и парсеры на megaparsec я писать умею хорошо, с другой отладчиком в Intellij Idea было приятно пользоваться. В целом я обошёлся стандартной библиотекой, комбинаторный парсер один раз только применил, но это обычное дело для AoC — давать возможность обходиться без специфичных решений. И тем больше меня расстроили те самые две задачки, которые я выше упоминал.
В любом случае AoC — уже привычная часть моей жизни. А это приятно — иметь что-то, что точно порадует под конец года!
👍15🔥4
Мои первые компьютеры (оба от "Электроники", МС-1502 и БК 0010-01) имели встроенный интерпретатор BASIC. А вообще с BASIC я познакомился даже раньше, чем у меня появилась техника, позволяющая на нём писать: мама купила книжку со сказками про блоху PSET, колобка CIRCLE, злого колдуна CLS — прямо в тексте вперемешку с прозой приводились программки, анимирующие соответствующие сценки.
Где-то в то время, когда у меня уже были БК и МС и BASIC я более-менее освоил, мне в руки попались ксерокопии ксерокопий какой-то книги с играми, листинг каждой из которых не превышал пару страниц. Увы, какие-то страницы в копии отсутствовали и использованный диалект BASIC был не самым стандартным. Но кое-как я и через это продирался, вводил и отлаживал многие игры, заимствовал авторские приёмчики. Уже сильно позже я узнал, что тогда в моих руках была копия книги "BASIC Computer Games".
Все игры работали в текстовом режиме, но кое-какие умели таки показывать интерфейс. Одной из самых продвинутых была игра Super Star Trek), известная и за пределами упомянутой книги. Эту игру воплощали буквально для любых систем, настолько концепция была удачна. Были даже коммерческие реализции. Недавно смотрел ролик про одну из таких реализаций: EGA Trek. Это достаточно продвинутая версия с приличным количеством дополнений к базовой игре, очень советую посмотреть, во что играли люди когда-то :)
Кстати, в сами игры из книги нынче можно в браузере поиграть: https://github.com/coding-horror/basic-computer-games/ — вот тут народ воспроизводит их на разных языках.
P.S. Когда смотрел обзор EGA Trek подумал, что именно в таком виде игру можно было бы воплотить "в железе": светодиодные матрички, семисегментные индикаторы, аналоговые "показометры", никаких ЖК-экранов, Arduino вместо мозгов.
Где-то в то время, когда у меня уже были БК и МС и BASIC я более-менее освоил, мне в руки попались ксерокопии ксерокопий какой-то книги с играми, листинг каждой из которых не превышал пару страниц. Увы, какие-то страницы в копии отсутствовали и использованный диалект BASIC был не самым стандартным. Но кое-как я и через это продирался, вводил и отлаживал многие игры, заимствовал авторские приёмчики. Уже сильно позже я узнал, что тогда в моих руках была копия книги "BASIC Computer Games".
Все игры работали в текстовом режиме, но кое-какие умели таки показывать интерфейс. Одной из самых продвинутых была игра Super Star Trek), известная и за пределами упомянутой книги. Эту игру воплощали буквально для любых систем, настолько концепция была удачна. Были даже коммерческие реализции. Недавно смотрел ролик про одну из таких реализаций: EGA Trek. Это достаточно продвинутая версия с приличным количеством дополнений к базовой игре, очень советую посмотреть, во что играли люди когда-то :)
Кстати, в сами игры из книги нынче можно в браузере поиграть: https://github.com/coding-horror/basic-computer-games/ — вот тут народ воспроизводит их на разных языках.
P.S. Когда смотрел обзор EGA Trek подумал, что именно в таком виде игру можно было бы воплотить "в железе": светодиодные матрички, семисегментные индикаторы, аналоговые "показометры", никаких ЖК-экранов, Arduino вместо мозгов.
🔥21👍2
Попиарюсь немного: буду в апреле про питон нескучное рассказывать в Черногории в рамках выездного лагеря! Вот так это звучит:
Планирую потыкать и что-то ещё сравнительно новое, но уже реализованное, вроде pattern matching (с кишками и перегрузкой for fun and profit) и типиков. Покопаем всякое около "пакетирования по-новому" (Rye, uv). Экстеншны-ускорялки попишем (на Rust возможно даже). Код на лету погенерируем — как я без этого могу? Словом, выглянем за рамки того, что каждый день типичный джангист делает.
Собственно, предлагаю тем, кому такое интересно, присоединяться. И будет классно, если ещё и/или пораспространяете среди знакомых питонистов!
Сабж: https://coderetreat.me/python
Code Retreat — выездной лагерь в Черногории для разработчиков, которым нужна перезагрузка!
Утром: хайкинг и потрясающие виды. После обеда: актуальное и полезное обучение. После заката: новые друзья и посиделки у костра
Планирую потыкать и что-то ещё сравнительно новое, но уже реализованное, вроде pattern matching (с кишками и перегрузкой for fun and profit) и типиков. Покопаем всякое около "пакетирования по-новому" (Rye, uv). Экстеншны-ускорялки попишем (на Rust возможно даже). Код на лету погенерируем — как я без этого могу? Словом, выглянем за рамки того, что каждый день типичный джангист делает.
Собственно, предлагаю тем, кому такое интересно, присоединяться. И будет классно, если ещё и/или пораспространяете среди знакомых питонистов!
Сабж: https://coderetreat.me/python
coderetreat.me
Python Code Retreat Montenegro
7 - 11 апреля, Python со звездочкой
👍18
А это вот локация. Одни только фотки уже настраивают на отдых с пользой :Р
🔥23🤔1
Статья была навеяна новостью о том, что вышел очередной мажорный релиз WinRAR. Будет "мемуарно" и "налюбительско", сразу предупреждаю
Я уже писал о том, что приличная часть моей жизни оказалась связана с Windows, которую я умел обживать, подстраивать на свой вкус, расширять. Да, по сравнению с Linux, степеней свободы у WinXP было сильно меньше, но всё равно достаточно для меня образца тех лет. Да мне и не с чем сравнивать было тогда, наслаждался тем, что имел. И уж точно чувствовал себя владельцем моей машины, потому что мог делать для себя то, чего мне не хватало — делать на Delphi, конечно.
Сколько-то приложений я даже доделал до того состояния, когда ими уже можно делиться. Не то чтобы я делился, правда. Но, например, способами инсталляциии я интересовался. В Windows 95 и более поздних в стандартную поставку входил генератор инсталляторов для .CAB-файлов, но Wizard получался простенький, да и .CAB-файлы не то чтобы очень компактные получались. А ещё у нас был WinRAR, умеющий делать самораспаковывающиеся архивы. И, что меня лично радовало, имелась достаточно простая возможность поднастроить интерфейс распаковщика — поменять пиктограмму, картинки, даже расположение элементов управления в окнах!
Модуль распаковщика среди файлов WinRAR найти было несложно, дальше в дело вступал редактор ресурсов: так уж вышло, что в Windows многие программы хранили изображения, иконки, макеты окошек в открытом виде в виде этих самых "ресурсов" и специальные программы позволяли данные ресурсы подменять. Именно таким образом я сделал себе пару вариантов распаковщика на свой вкус с градиентными иконками кислотно зелёного цвета (такая "идентика" у меня была тогда).
Однако изменение вида окон — это только полдела. Хотелось и ярлыки на Рабочем Столе и Меню "Пуск" создавать, и запускать что-то после окончания распаковки. WinRAR такого делать не позволял, а расширить возможности не позволяла закрытость самого продукта. Вот я и довольствовался собственным оформлением.
В какой-то момент моей жизни на Windows я пересел с WinRAR на 7zip, который тоже умел самораспаковывающиеся архивы делать. И вот у 7zip возможность выбрать модуль-распаковщик при создании архива уже позволяла более просто настраивать внешний вид. А потом я открыл для себя проект 7zSFX — это готовый модуль распаковки, которые можно заставить с помощью конфигурационного файла делать всё то, что умеют делать штуки вроде NSIS или Inno Setup. Вот уж тут я развернулся! Готов был "развернуться, когда потребуется", если быть точным
Ещё одним этапом виндоводства у меня было увлечение portable software. Уже тогда у меня была флешка с настроенным на портативность TotalCommander и ворох софта, вызываемого из TC — всякие register cleaners и прочие disk doctors в основном. И не все программы честно умели не оставлять следов в системе. Но я такие программы отучал пачкать (пытался, по крайней мере). Например, у меня были маленькие программки на Delphi (консольные, без окошек), воссоздающие нужные данные в реестре, запускающие программу, а по завершении работы оной, подчищающие всё тот же реестр.
И эти самые программки-уборщики я запускал из 7zip SFX-модуля, настроенного на молчаливый режим, распаковку во временную директорию с запуском моей программки оттуда и подчисткой после её завершения. Получалась та ещё матрёшка, но оно работало!
В итоге я, конечно, на Linux перелез и забыл про всё это. Но воспоминания остались. Ни о чём не жалею, было весело!
:PЯ уже писал о том, что приличная часть моей жизни оказалась связана с Windows, которую я умел обживать, подстраивать на свой вкус, расширять. Да, по сравнению с Linux, степеней свободы у WinXP было сильно меньше, но всё равно достаточно для меня образца тех лет. Да мне и не с чем сравнивать было тогда, наслаждался тем, что имел. И уж точно чувствовал себя владельцем моей машины, потому что мог делать для себя то, чего мне не хватало — делать на Delphi, конечно.
Сколько-то приложений я даже доделал до того состояния, когда ими уже можно делиться. Не то чтобы я делился, правда. Но, например, способами инсталляциии я интересовался. В Windows 95 и более поздних в стандартную поставку входил генератор инсталляторов для .CAB-файлов, но Wizard получался простенький, да и .CAB-файлы не то чтобы очень компактные получались. А ещё у нас был WinRAR, умеющий делать самораспаковывающиеся архивы. И, что меня лично радовало, имелась достаточно простая возможность поднастроить интерфейс распаковщика — поменять пиктограмму, картинки, даже расположение элементов управления в окнах!
Модуль распаковщика среди файлов WinRAR найти было несложно, дальше в дело вступал редактор ресурсов: так уж вышло, что в Windows многие программы хранили изображения, иконки, макеты окошек в открытом виде в виде этих самых "ресурсов" и специальные программы позволяли данные ресурсы подменять. Именно таким образом я сделал себе пару вариантов распаковщика на свой вкус с градиентными иконками кислотно зелёного цвета (такая "идентика" у меня была тогда).
Однако изменение вида окон — это только полдела. Хотелось и ярлыки на Рабочем Столе и Меню "Пуск" создавать, и запускать что-то после окончания распаковки. WinRAR такого делать не позволял, а расширить возможности не позволяла закрытость самого продукта. Вот я и довольствовался собственным оформлением.
В какой-то момент моей жизни на Windows я пересел с WinRAR на 7zip, который тоже умел самораспаковывающиеся архивы делать. И вот у 7zip возможность выбрать модуль-распаковщик при создании архива уже позволяла более просто настраивать внешний вид. А потом я открыл для себя проект 7zSFX — это готовый модуль распаковки, которые можно заставить с помощью конфигурационного файла делать всё то, что умеют делать штуки вроде NSIS или Inno Setup. Вот уж тут я развернулся! Готов был "развернуться, когда потребуется", если быть точным
:P В любом случае возможности будоражили воображение, что само по себе было приятно!Ещё одним этапом виндоводства у меня было увлечение portable software. Уже тогда у меня была флешка с настроенным на портативность TotalCommander и ворох софта, вызываемого из TC — всякие register cleaners и прочие disk doctors в основном. И не все программы честно умели не оставлять следов в системе. Но я такие программы отучал пачкать (пытался, по крайней мере). Например, у меня были маленькие программки на Delphi (консольные, без окошек), воссоздающие нужные данные в реестре, запускающие программу, а по завершении работы оной, подчищающие всё тот же реестр.
И эти самые программки-уборщики я запускал из 7zip SFX-модуля, настроенного на молчаливый режим, распаковку во временную директорию с запуском моей программки оттуда и подчисткой после её завершения. Получалась та ещё матрёшка, но оно работало!
В итоге я, конечно, на Linux перелез и забыл про всё это. Но воспоминания остались. Ни о чём не жалею, было весело!
👍15🔥10
IDEA Conf
Поскольку я в последнее время пользую IntelliJ IDEA для тех же Scala и Kotlin, я подписан и на рассылку тематическую. А на днях ещё и конференция IntelliJ IDEA Conf 2024 случилась. Поскольку я имел удовольствие поработать в JetBrains, то за продуктами я с тех пор слежу, вот и на конференции виртуально поприсутствовал.
Записи треков уже выложили с доступом по ссылке. Публично на канал опубликуют, когда нарежут, думаю, но по таймкодам уже можно смотреть. А я тут напишу о том, что я посмотрел и что в просмотренном почерпнул.
День первый
5:16–1:00:22 – Let’s Set the Records Straight by Dr. Venkat Subramaniam
Докладчик задорно рассказал про то, как можно жить с records в Java и как начать двигаться в сторону Data Oriented Programming — для многих джавистов это настоящий paradigm shift, я уверен. Да, для меня, видевшего рекорды и pattern matching много где и уже много лет, откровений никаких не последовало. Но общая эргономика того же pattern matching в Java меня радует. Как минимум, в Python всё сильно более печально.
2:01:31–3:01:47 – Developer Productivity With IntelliJ IDEA by Trisha Gee
Тут всё в целом традиционно и нацелено на новичков, но всё равно по диагонали было интересно посмотреть на то, например, как меняется работа с VCS в последнее время. Я не успел долго попользовать старое "отдельное окно", которое многие любят, так что мне нормально живётся в новом панельном интерфейсе — да, не Magit, но всё равно вполне удобно.
3:02:27–3:54:28 – Working With Databases in IntelliJ IDEA by Maxim Sobolevskiy
Тут мне захотелось посмотреть, как работают настоящие DBA. Посмотрел, впечатлился. Запомнил, что теперь можно сделать запрос по одной базе, получить выхлоп в виде таблички, а потом "вставить" эту таблицу в другую БД: будет создана новая талица в целевой БД и схема этой таблицы будет отражать выборку. Вьетнамский флешбек случился даже: вспомнил людей, которые в PgAdmin вставляли данные из Excel, включая строку "Всего: 100500"
5:01:27–6:01:18 – Bootiful Spring Boot 3.x by Josh Long
На Spring не пишу, но доклады иногда смотрю — ребята умеют в автоматизацию, отдаю им должное. Видео приятное, показывает и степень интеграции фреймворка в среду разработки, и просто даёт представление о том, как сейчас джависты готовят сервисы. Позабавило то, как docker compose прячется под плагином к Spring так, что достаточно нажать "Run" в Idea и вы получите
Поскольку я в последнее время пользую IntelliJ IDEA для тех же Scala и Kotlin, я подписан и на рассылку тематическую. А на днях ещё и конференция IntelliJ IDEA Conf 2024 случилась. Поскольку я имел удовольствие поработать в JetBrains, то за продуктами я с тех пор слежу, вот и на конференции виртуально поприсутствовал.
Записи треков уже выложили с доступом по ссылке. Публично на канал опубликуют, когда нарежут, думаю, но по таймкодам уже можно смотреть. А я тут напишу о том, что я посмотрел и что в просмотренном почерпнул.
День первый
5:16–1:00:22 – Let’s Set the Records Straight by Dr. Venkat Subramaniam
Докладчик задорно рассказал про то, как можно жить с records в Java и как начать двигаться в сторону Data Oriented Programming — для многих джавистов это настоящий paradigm shift, я уверен. Да, для меня, видевшего рекорды и pattern matching много где и уже много лет, откровений никаких не последовало. Но общая эргономика того же pattern matching в Java меня радует. Как минимум, в Python всё сильно более печально.
2:01:31–3:01:47 – Developer Productivity With IntelliJ IDEA by Trisha Gee
Тут всё в целом традиционно и нацелено на новичков, но всё равно по диагонали было интересно посмотреть на то, например, как меняется работа с VCS в последнее время. Я не успел долго попользовать старое "отдельное окно", которое многие любят, так что мне нормально живётся в новом панельном интерфейсе — да, не Magit, но всё равно вполне удобно.
3:02:27–3:54:28 – Working With Databases in IntelliJ IDEA by Maxim Sobolevskiy
Тут мне захотелось посмотреть, как работают настоящие DBA. Посмотрел, впечатлился. Запомнил, что теперь можно сделать запрос по одной базе, получить выхлоп в виде таблички, а потом "вставить" эту таблицу в другую БД: будет создана новая талица в целевой БД и схема этой таблицы будет отражать выборку. Вьетнамский флешбек случился даже: вспомнил людей, которые в PgAdmin вставляли данные из Excel, включая строку "Всего: 100500"
:)5:01:27–6:01:18 – Bootiful Spring Boot 3.x by Josh Long
На Spring не пишу, но доклады иногда смотрю — ребята умеют в автоматизацию, отдаю им должное. Видео приятное, показывает и степень интеграции фреймворка в среду разработки, и просто даёт представление о том, как сейчас джависты готовят сервисы. Позабавило то, как docker compose прячется под плагином к Spring так, что достаточно нажать "Run" в Idea и вы получите
docker-compose up, а дальше сервер будет перезапускаться сам после каждого изменения кода — это тоже история про интеграцию инструментария, люблю такое.👍9
(продолжение к тому, что выше)
День второй
1:02:01–2:01:22 – Building and Testing Applications With Micronaut and Testcontainers in IntelliJ IDEA by Graeme Rocher
На Micronaut поглядываю, как на явление. Тут и compile time DI, что сильно ускоряет загрузку, и возможность собрать native executable с помощью Грааля. Не все фишки в Kotlin пока доступны в таком виде, чтобы код не выглядел как вынужденный interop, а на чистой Java я писать пока не хочу (впрочем, records и pattern matching уже сильно радуют, ещё бы Null Safety дождаться).
В докладе хорошо показан и bootstraping проекта, и добавление ручек. А ещё работа с БД по-микронавтовски демонстрируется, и это отдельное веселье с генерацией в compile time запросов для методов с именами вида
4:01:53–5:00:22 – To Java 22 and Beyond! by Billy Korando
Тут я просто проверил, что в основном речь пойдёт о structured concurrency и легковесных потоках — да, в основном о них и рассказывалось. Можно посмотреть, если вдруг пропустили.
5:01:07–5:53:11 – Back to the Stdlib: Making the Most of Kotlin’s Standard Library by Sebastian Aigner
Себастьян любит рассказывать про Котлин и делает это со вкусом. А я смотрю такие видео для развлечения: каждый раз жду моментов, когда IDE предлагает цепочку из общих методов заменить на частный случай вроде
День второй
1:02:01–2:01:22 – Building and Testing Applications With Micronaut and Testcontainers in IntelliJ IDEA by Graeme Rocher
На Micronaut поглядываю, как на явление. Тут и compile time DI, что сильно ускоряет загрузку, и возможность собрать native executable с помощью Грааля. Не все фишки в Kotlin пока доступны в таком виде, чтобы код не выглядел как вынужденный interop, а на чистой Java я писать пока не хочу (впрочем, records и pattern matching уже сильно радуют, ещё бы Null Safety дождаться).
В докладе хорошо показан и bootstraping проекта, и добавление ручек. А ещё работа с БД по-микронавтовски демонстрируется, и это отдельное веселье с генерацией в compile time запросов для методов с именами вида
getUserNameIfAgeGreaterThan — вы буквально объявляете метод без реализации, а компилятор следит и за соответствием типов, и за генерацией самих запросов.4:01:53–5:00:22 – To Java 22 and Beyond! by Billy Korando
Тут я просто проверил, что в основном речь пойдёт о structured concurrency и легковесных потоках — да, в основном о них и рассказывалось. Можно посмотреть, если вдруг пропустили.
5:01:07–5:53:11 – Back to the Stdlib: Making the Most of Kotlin’s Standard Library by Sebastian Aigner
Себастьян любит рассказывать про Котлин и делает это со вкусом. А я смотрю такие видео для развлечения: каждый раз жду моментов, когда IDE предлагает цепочку из общих методов заменить на частный случай вроде
takeWhileNotNullOrNull. Да, название метода говорящее, но без IDE все подобные говорящие имена просто не запомнить. Вот бы как в micronaut генерить компилятором код, реализующий подобные методы, тогда можно было бы не помнить, а придумывать имена под задачу :Р👍9
Случился вчера очередной маленький emacs moment. Вздумалось мне вчера прикрепить картинку из интернета к записи в заметочницу (org roam). Но картинка оказалась слишком большой как в плане разрешения, так и в плане размер на диске — мне просто обидно тратить много места на картинку в 500 пикселей в высоту. Кроме того Emacs у меня не очень-то красиво отображает картинки, если те слишком велики. Решено было ужать картинку.
Чтобы сделал типичный пользователь Obsidian или любой другой не облачной программы? Пошёл бы менять размер картинки с помощью того, что у него есть под рукой, всё же нынче любое типичное Default Preview App умеет разрешение изображения уменьшить. Вариант "взять за уголок и уменьшить визуально" я не рассматриваю: я так документ Word, по которой я дипломную работу делал, ужал в три раза, просто откадрировав и отмасштабировав несколько снимков экрана — предыдущий автор просто вставил и "уменьшил за уголок" как раз :Р
В итоге я просто "провалился" в картинку в Emacs — открыл как самостоятельный файл, вызвал
Да, местячково и не оправдывает в целом использование Emacs для ведения заметок, если вы уже не умеете им пользоваться. Но в мою копилочку монетка упала
P.S. Прикрепил ту самую картинку из интернетов. Забавная, мне кажется!
Чтобы сделал типичный пользователь Obsidian или любой другой не облачной программы? Пошёл бы менять размер картинки с помощью того, что у него есть под рукой, всё же нынче любое типичное Default Preview App умеет разрешение изображения уменьшить. Вариант "взять за уголок и уменьшить визуально" я не рассматриваю: я так документ Word, по которой я дипломную работу делал, ужал в три раза, просто откадрировав и отмасштабировав несколько снимков экрана — предыдущий автор просто вставил и "уменьшил за уголок" как раз :Р
В итоге я просто "провалился" в картинку в Emacs — открыл как самостоятельный файл, вызвал
term и выполнил mogrify -scale 50%. И всё! ImageMagic всё ещё справляется с типичными задачами отлично и наименее интерактивно. Если бы мне надо было десяток файлов обработать, я бы цикл прогнал. А вот в графической программе я бы помучился, не имей я по-старинке на машине что-то вроде IrfanView умеющее в batch file processing.Да, местячково и не оправдывает в целом использование Emacs для ведения заметок, если вы уже не умеете им пользоваться. Но в мою копилочку монетка упала
:)P.S. Прикрепил ту самую картинку из интернетов. Забавная, мне кажется!
👍12🔥2
Прочитал буквально час назад докладик про то, как в Racket делают Web-приложения, хранящие состояние в продолжениях (continuations). Тема меня давно зацепила, а тут довелось ещё и поделиться своими впечатлениями. Всё же не каждый день можно встретить использование continuations не под капотом слоя абстракции, а в конечном коде да ещё и в такой насущной области, как Web!
Видео тут можно посмотреть: https://www.youtube.com/watch?v=ESh4wzRBtls Ссылки на код и на документацию к использованной библиотеки (искоробочная web-server-lib), как водится, в описании.
Видео тут можно посмотреть: https://www.youtube.com/watch?v=ESh4wzRBtls Ссылки на код и на документацию к использованной библиотеки (искоробочная web-server-lib), как водится, в описании.
YouTube
To Be Continued: Web на продолжениях в Racket
Доклад в рамках IT Global Meetup '24 для сообщества FProg Spb
#functionalprogramming #racket #webdevelopment
- ITGM №16: https://piter-united.ru/itgm16
- FProg Spb: https://t.me/fprog_spb
- Racket Web Server Library: https://docs.racket-lang.org/web-…
#functionalprogramming #racket #webdevelopment
- ITGM №16: https://piter-united.ru/itgm16
- FProg Spb: https://t.me/fprog_spb
- Racket Web Server Library: https://docs.racket-lang.org/web-…
👍18
Виталий Брагилевский опубликовал статью Polyglot Programming Is a Thing в блоге Fleet, а я её прочитал.
Красивое, с картинками. И размышлениями о том, насколько часто приходится жить с несколькими языками программирования в одном проекте. Мне, как человеку, интересующемуся ЯП давно и широко, точно было интересно почитать!
В какой-то момент содержание статьи смещается в сторону того, насколько Fleet хорош как раз в многоязычных проектах — на то и в блоге Fleet статья опубликована. Такой вот образчик developer advocacy, которого Fleet не хватает, как мне кажется. И я рад, что Виталий за это взялся!
Сам-то я в Emacs играюсь с разными языками — он тоже "много с чем как-то да работает". И дальше будет только лучше, ибо LSP в народ пошёл даже среди имаксеров, да и вокруг Tree Sitter потихоньку надстраивают экосистему пакетов.
Однако, поскольку во Fleet сколько-то моего кода всё ещё работает (хочется надеяться), то определённую гордость за функциональность этого продукта и я тоже испытываю!
P.S. Надо будет как-нибудь найти силы и написать о том, какую "весёлую дичь" я во Fleet запилил с пользой для дела и удовольствием для себя. Код буду вспоминать, так что коммерческая тайна не должна пострадать, по идее (хе-хе, косвенное упоминание Idea)
Красивое, с картинками. И размышлениями о том, насколько часто приходится жить с несколькими языками программирования в одном проекте. Мне, как человеку, интересующемуся ЯП давно и широко, точно было интересно почитать!
В какой-то момент содержание статьи смещается в сторону того, насколько Fleet хорош как раз в многоязычных проектах — на то и в блоге Fleet статья опубликована. Такой вот образчик developer advocacy, которого Fleet не хватает, как мне кажется. И я рад, что Виталий за это взялся!
Сам-то я в Emacs играюсь с разными языками — он тоже "много с чем как-то да работает". И дальше будет только лучше, ибо LSP в народ пошёл даже среди имаксеров, да и вокруг Tree Sitter потихоньку надстраивают экосистему пакетов.
Однако, поскольку во Fleet сколько-то моего кода всё ещё работает (хочется надеяться), то определённую гордость за функциональность этого продукта и я тоже испытываю!
P.S. Надо будет как-нибудь найти силы и написать о том, какую "весёлую дичь" я во Fleet запилил с пользой для дела и удовольствием для себя. Код буду вспоминать, так что коммерческая тайна не должна пострадать, по идее (хе-хе, косвенное упоминание Idea)
🔥10💩4
Воспользуюсь тем, что меня тут несколько сотен человек хоть иногда почитывает, и спрошу, не нужен ли кому-нибудь кадр вроде меня?
Могу поменторить ваших джунов — питонистов, кложуристов, котлинистов, скалистов. Туториалы напишу для ваших продуктов, ролики обучающие сделаю. Open Source ваш посопровождаю. Иными словами что-то на стыке developer advocate / mentor / tech writer. На фуллтайм не претендую, могу на "пол-ставки". И да, хотелось бы удалённо пользу наносить. Или очно в Ереване.
Лично кого-то поменторить тоже могу, опыт есть и вполне положительный!
Тут потихоньку описываю, что я делал кроме программирования: <https://astynax.me/devrel_cv_ru.html>
P.S. Код читать и отсматривать (Code Review) тоже могу, но пилить фичи для продукта каждый день в режиме эджайла больше не хочется.
P.P.S. В Linkedin пробовал с этим вопросом зайти, но я не умею им пользоваться, как выяснилось.
Могу поменторить ваших джунов — питонистов, кложуристов, котлинистов, скалистов. Туториалы напишу для ваших продуктов, ролики обучающие сделаю. Open Source ваш посопровождаю. Иными словами что-то на стыке developer advocate / mentor / tech writer. На фуллтайм не претендую, могу на "пол-ставки". И да, хотелось бы удалённо пользу наносить. Или очно в Ереване.
Лично кого-то поменторить тоже могу, опыт есть и вполне положительный!
Тут потихоньку описываю, что я делал кроме программирования: <https://astynax.me/devrel_cv_ru.html>
P.S. Код читать и отсматривать (Code Review) тоже могу, но пилить фичи для продукта каждый день в режиме эджайла больше не хочется.
P.P.S. В Linkedin пробовал с этим вопросом зайти, но я не умею им пользоваться, как выяснилось.
🔥24👍18
Буквально сегодня будет интересная трансляция: "Automatic Backend with PostgREST. Xiana + PostgREST shared JWT token". Организатором выступает Flexiana
> Flexiana is a remote-first community, full of open-minded, autonomous craftsmen with a passion for developing software.
В описании мероприятия среди тегов числятся Functional Programming и Clojure — на Clojure/ClojureScript во Flexiana и разрабатывают (хотя на сайте у них "25 languages" упомянуты, в том числе и Haskell). У компании даже микрофреймворк свой есть — тот самый Xiano из названия трансляции, вот его использование в действии и будут демонстрировать.
Мне же лично было забавно увидеть Clojure в одном контексте с PostgREST — этот-то на Haskell написан! Впрочем, PostgREST не требует знания Haskell для использования, как и Hasura — это в чём-то подобный проект, только про "автомагический GraphQL для вашей БД", тоже на Haskell написанный.
Вот такое вот перекрёстное опыление между разными функциональными штуками!
> Flexiana is a remote-first community, full of open-minded, autonomous craftsmen with a passion for developing software.
В описании мероприятия среди тегов числятся Functional Programming и Clojure — на Clojure/ClojureScript во Flexiana и разрабатывают (хотя на сайте у них "25 languages" упомянуты, в том числе и Haskell). У компании даже микрофреймворк свой есть — тот самый Xiano из названия трансляции, вот его использование в действии и будут демонстрировать.
Мне же лично было забавно увидеть Clojure в одном контексте с PostgREST — этот-то на Haskell написан! Впрочем, PostgREST не требует знания Haskell для использования, как и Hasura — это в чём-то подобный проект, только про "автомагический GraphQL для вашей БД", тоже на Haskell написанный.
Вот такое вот перекрёстное опыление между разными функциональными штуками!
Meetup
Login to Meetup | Meetup
Not a Meetup member yet? Log in and find groups that host online or in person events and meet people in your local community who share your interests.
🔥8👍1
Посмотрел, что там Flexiana делают с PostgREST. Если кратко, то один и тот же JWT используется и в PostgREST и в "обычном" backend на базе Xiana. Когда пользователь входит в систему, этот "обычный backend" подписывает и упаковывает в JWT пользовательские credentials. Далее frontend использует этот токен ещё и для доступа к PostgREST — оба сервиса торчат наружу и проксируются через Nginx. Да, докладчики отметили, что можно было так и не делать, а доступаться к PostgREST только изнутри, но в текущей связке легко пользоваться тем, что предоставляет PostgREST из коробки, например, Swagger spec.
Вообще у ребят эта связка пока что несколько сыровата, как они сами говорят. Скажем, JWT заворачивается и подписывается скриптом на Ruby. Но свою задачу поиметь некоторую дополнительную гибкость в довесок к стандартному набору возможностей PostgREST они решили.
Вообще у ребят эта связка пока что несколько сыровата, как они сами говорят. Скажем, JWT заворачивается и подписывается скриптом на Ruby. Но свою задачу поиметь некоторую дополнительную гибкость в довесок к стандартному набору возможностей PostgREST они решили.
YouTube
Webinar: Automatic Backend with PostgREST Xiana +PostgREST shared JWT token.
Flexiana's webinar about Automatic Backend with PostgREST Xiana +PostgREST shared JWT token.
🔸 Learn the straightforward process of installing Xiana and utilizing its features for crafting monolithic web applications.
🔸 Discover how PostgREST automates…
🔸 Learn the straightforward process of installing Xiana and utilizing its features for crafting monolithic web applications.
🔸 Discover how PostgREST automates…
👍5
Завтра буду рассказывать про ФП. Да, опять. Для тех, кто уже в теме и за прогрессом следит, ничего нового я не расскажу, конечно. Но аудиторию пользователей этого нашего функционального я расширять намерен и впредь, а для этого нужны и такие новичково-разговорные материалы :) Так что приходите понабрасывать и покритиковать — так только веселее будет!
YouTube
Функциональное программирование тогда и сейчас, есть ли жизнь на Марсе
Функциональное программирование тогда и сейчас. Есть ли жизнь на Марсе?
Узнаем у Алексея Пирогова, технического эксперта с 15-летним опытом, с профилем в Scala, Haskell и Elm.
Он застал времена, когда считалось, что лябмды нужны только математикам. Но…
Узнаем у Алексея Пирогова, технического эксперта с 15-летним опытом, с профилем в Scala, Haskell и Elm.
Он застал времена, когда считалось, что лябмды нужны только математикам. Но…
🔥17👍6🤔2
Мартин Одерски, автор языка Scala, недавно в своём блоге опубликовал статью "Lean Scala". Мол, давайте не переусложнять без нужды и бежим все руководствоваться Principle of Least Power. Это он про Scala написал, напомню
Одерски призывает использовать возможности Scala 3, оставаться максимально в привычном синтаксисе синтаксисе (а не плодить DSL на каждый чих), писать иммутабельно, но местами и мутировать невозбранно. "Давайте делать хорошо, а плохо не делать", как говорится. А то, дескать, понаделали своих скал (Cats, ZIO, теперь ещё Kyo) и началось дробление.
При этом сам Мартин носится со своим новым клубочком Caprese, где опять "всё будет по новому и наконец-то правильно"! Вот только это тоже сорт скалы в своём роде и свой вклад в раздробленность внесёт (когда-нибудь). Зато direct style effects, модно-молодёжно (тут забавное введение в понятие direct style, рекомендую).
Мне, как человеку, вхожему в Haskell-тусовку, довольно забавно было читать про Lean Scala потому, что у нас уже есть свой "Boring Haskell Manifesto" — тоже про призывы не усложнять. Очень забавно, что если по ссылке пройти, то в самом начале показывается кнопка "The 'Begin Rust' Book". Майкл Снойман, автор манифеста нынче пропагандирует Rust и FP Complete консультируют по поводу использования этого языка. Но ссылка на книжку по основам Rust на странице Boring Haskell Manifesto выглядит как намёк на то, что Rust это Boring Haskell — и смешно, и в какой-то степени правда
А ещё у Haskell когда-то была своя Haskell Platform — "тщательно отобранный" набор пакетов, который ставится скопом и после этого вам эго должно хватать для большинства задач средней сложности. Но в какой-то момент поняли, что от вкусовщины избавиться не выйдет, учить пользователей добавлять зависимости всё равно нужно, а сопровождать такой набор слишком трудозатратно.
И что мы видим в мире Scala? Scala Toolkit, "a set of libraries designed to effectively perform common programming tasks". И скалисты уже полемизируют о том, насколько удачен выбор библиотеки для работы с JSON. Похоже,"опять всё подсмотрели у Haskell" одинаковые идеи приходят и к законодателям мод в экосистемах языков программирования. Мне лично интересно и забавно со стороны наблюдать параллельные прогрессы
В TypeScript нынче заметны некоторые ажитации вокруг Effects — это улучшенный вариант скаловского ZIO, которое преподносится как улучшенный вариант хаскельного IO (тут отличный workshop по основам, если что). И вот уже Джон Де Гуз ездит на сходки любителей TS/Effects и рассказывает про то, что Effect is more important than ZIO, а ведь Джон — автор ZIO! Кстати у Effects тоже есть свой direct style (kinda), сделанный на основе сопроцедур/генераторов — прямо как асинхронность в Python, ага, и тут параллели!
P.S. В качестве картинки прикреплю слепок диалога с 4o, которого я попросил сгенерировать картинку в стиле раннего Диснея к статье про Lean Scala. Получилось настолько плохо, что прекрасно! Можно на футболку печатать.
:DОдерски призывает использовать возможности Scala 3, оставаться максимально в привычном синтаксисе синтаксисе (а не плодить DSL на каждый чих), писать иммутабельно, но местами и мутировать невозбранно. "Давайте делать хорошо, а плохо не делать", как говорится. А то, дескать, понаделали своих скал (Cats, ZIO, теперь ещё Kyo) и началось дробление.
При этом сам Мартин носится со своим новым клубочком Caprese, где опять "всё будет по новому и наконец-то правильно"! Вот только это тоже сорт скалы в своём роде и свой вклад в раздробленность внесёт (когда-нибудь). Зато direct style effects, модно-молодёжно (тут забавное введение в понятие direct style, рекомендую).
Мне, как человеку, вхожему в Haskell-тусовку, довольно забавно было читать про Lean Scala потому, что у нас уже есть свой "Boring Haskell Manifesto" — тоже про призывы не усложнять. Очень забавно, что если по ссылке пройти, то в самом начале показывается кнопка "The 'Begin Rust' Book". Майкл Снойман, автор манифеста нынче пропагандирует Rust и FP Complete консультируют по поводу использования этого языка. Но ссылка на книжку по основам Rust на странице Boring Haskell Manifesto выглядит как намёк на то, что Rust это Boring Haskell — и смешно, и в какой-то степени правда
:)А ещё у Haskell когда-то была своя Haskell Platform — "тщательно отобранный" набор пакетов, который ставится скопом и после этого вам эго должно хватать для большинства задач средней сложности. Но в какой-то момент поняли, что от вкусовщины избавиться не выйдет, учить пользователей добавлять зависимости всё равно нужно, а сопровождать такой набор слишком трудозатратно.
И что мы видим в мире Scala? Scala Toolkit, "a set of libraries designed to effectively perform common programming tasks". И скалисты уже полемизируют о том, насколько удачен выбор библиотеки для работы с JSON. Похоже,
:PВ TypeScript нынче заметны некоторые ажитации вокруг Effects — это улучшенный вариант скаловского ZIO, которое преподносится как улучшенный вариант хаскельного IO (тут отличный workshop по основам, если что). И вот уже Джон Де Гуз ездит на сходки любителей TS/Effects и рассказывает про то, что Effect is more important than ZIO, а ведь Джон — автор ZIO! Кстати у Effects тоже есть свой direct style (kinda), сделанный на основе сопроцедур/генераторов — прямо как асинхронность в Python, ага, и тут параллели!
P.S. В качестве картинки прикреплю слепок диалога с 4o, которого я попросил сгенерировать картинку в стиле раннего Диснея к статье про Lean Scala. Получилось настолько плохо, что прекрасно! Можно на футболку печатать.
👍12🔥8
Я в июле опять поеду в Черногорию делать https://coderetreat.me/
Снова про Python буду рассказывать, но в этот раз про фреймворкостроительство: попробуем сделать на базе aiohttp свой FastAPI (скорее даже liitestar) с Dependency Injection на типах! Поднимем завесу автомагии и пощупаем современный околосетевой стек Python поближе к "мясу". Мне, достаточно долго контактировавшему с "наборами композируемых библиотек вместо фреймворков", близки идеи, лежащие в основе экосистемы aiohttp, и будет здорово мыслями поделиться!
По следам прошлого ритрита я заметку так и не написал, но Коля @luchanos, один из слушателей и по совместительству блоггер, грозился вскорости опубликовать свой отчёт в формате видео. Для меня интервью во время подъёма в гору были внове, тоже хочу посмотреть на себя со стороны в такой обстановке
В этот раз локация будет другая, но очень надеюсь увидеть хотя бы частьслушателей теперь уже друзей с прошлой смены!
Снова про Python буду рассказывать, но в этот раз про фреймворкостроительство: попробуем сделать на базе aiohttp свой FastAPI (скорее даже liitestar) с Dependency Injection на типах! Поднимем завесу автомагии и пощупаем современный околосетевой стек Python поближе к "мясу". Мне, достаточно долго контактировавшему с "наборами композируемых библиотек вместо фреймворков", близки идеи, лежащие в основе экосистемы aiohttp, и будет здорово мыслями поделиться!
По следам прошлого ритрита я заметку так и не написал, но Коля @luchanos, один из слушателей и по совместительству блоггер, грозился вскорости опубликовать свой отчёт в формате видео. Для меня интервью во время подъёма в гору были внове, тоже хочу посмотреть на себя со стороны в такой обстановке
:ЗВ этот раз локация будет другая, но очень надеюсь увидеть хотя бы часть
🔥18👍5
На днях я упоминал Lean Scala, а сегодня прочитал статью "12 years of the com.lihaoyi Scala Platform" — тоже вполне интересное чтиво не только для скалистов.
Автор статьи, Li Haoyi известен тем, что написал Ammonite ("REPL на стероидах") для Scala, macropy (синтаксические макросы) для Python. А в этой публикации он пишет о том, как развивалась его собственная домашняя экосистемка для Scala под названием "com.lihaoyi Scala Platform". У Haoyi есть даже книга о разработке на Scala с применением авторского стека: Hands-on Scala Programming.
Начинал своё дело автор давно, в 2012, а тогда мир Скалы был сравнительно дик. Haoyi, по его словам, первые шишки набил о сериализацию объектов в JSON. В этом месте я вспомнил о похожей проблеме в среде Common Lisp — у них всё ещё единого общепринятого решения нет, такова цена свободы
За годы существования стек оброс и HTTP-микрофреймворком, и HTTP-клиентом, и обёрткой для работы с OS/FS. Даже "системка" сборки своя есть, называется Mill. И всё такое лёгкое в использовании — это прям камень преткновения для автора, уж очень Haoyi хочет, чтобы было "easy, rather than powerful".
В статье lihaoyi напрямую противопоставляется "Reactive-Async-Actors or Pure-Functional-IO-Monad frameworks". Мол, моя любимая (его, автора) Scala не должна быть только про это! Для того, чтобы язык становился популярнее, надо дать способ писать просто, а не сразу кидаться в крайности — очень перекликается с Lean Scala и в какой-то степени с Boring Haskell
Что же, могу автора понять, ему нравится язык, но не нравится курс, которым идут крупные партии пользователей. Такое бывает. К его счастью, стек получился в меру привлекательный и пользовательская база у com-lihaoyi уже есть. У автора 2.5 тысячи подписчиков на GitHub, Li действительно плодовит, так что имеет все шансы продолжить быть маленьким законодателем мод.
Автор статьи, Li Haoyi известен тем, что написал Ammonite ("REPL на стероидах") для Scala, macropy (синтаксические макросы) для Python. А в этой публикации он пишет о том, как развивалась его собственная домашняя экосистемка для Scala под названием "com.lihaoyi Scala Platform". У Haoyi есть даже книга о разработке на Scala с применением авторского стека: Hands-on Scala Programming.
Начинал своё дело автор давно, в 2012, а тогда мир Скалы был сравнительно дик. Haoyi, по его словам, первые шишки набил о сериализацию объектов в JSON. В этом месте я вспомнил о похожей проблеме в среде Common Lisp — у них всё ещё единого общепринятого решения нет, такова цена свободы
:P. В Scala тоже разброд и шатания продолжаются до сих пор. А Haoyi просто взял и написал свой велосипедик uPickle.За годы существования стек оброс и HTTP-микрофреймворком, и HTTP-клиентом, и обёрткой для работы с OS/FS. Даже "системка" сборки своя есть, называется Mill. И всё такое лёгкое в использовании — это прям камень преткновения для автора, уж очень Haoyi хочет, чтобы было "easy, rather than powerful".
В статье lihaoyi напрямую противопоставляется "Reactive-Async-Actors or Pure-Functional-IO-Monad frameworks". Мол, моя любимая (его, автора) Scala не должна быть только про это! Для того, чтобы язык становился популярнее, надо дать способ писать просто, а не сразу кидаться в крайности — очень перекликается с Lean Scala и в какой-то степени с Boring Haskell
:)Что же, могу автора понять, ему нравится язык, но не нравится курс, которым идут крупные партии пользователей. Такое бывает. К его счастью, стек получился в меру привлекательный и пользовательская база у com-lihaoyi уже есть. У автора 2.5 тысячи подписчиков на GitHub, Li действительно плодовит, так что имеет все шансы продолжить быть маленьким законодателем мод.
👍8🔥6🤔1
Большую часть моей карьеры я кого-то да учил профессии. Даже профессионально этим занимался в Hexlet. Но именно в Hexlet я в какой-то момент очень устал: всё же учить полных новичков при большом потоке оных — это очень энергозатратная задача. Даже в Hexlet мы немного упростили себе жизнь, отдав самые основы на самостоятельное изучение по нашим материалам. Да, настоящие занятия в группе с живым преподавателем это не заменяет, но в масштабах большой школы становится, увы, физически невозможно преподавать самые основы "в живую".
С тех пор, как я из Hexlet ушёл, рынок "школ затаскивания в IT" разросся, но не совсем в ту сторону, которая мне нравится. Уж очень трудно конкурировать с гигантами вроде условного SkillBox. И вдвойне сложнее выживать, если ты хочешь учить небольшие группы, находясь к ученикам ближе, чем "смотрите вебинары, пишите преподавателям в чат". Проще говоря, идейным быть сложно.
Так вот, мои хорошие знакомые (буквально лично всех знаю, кое-кого уже многие годы) сейчас набирают учеников на свои курсы по Python. Да, это реклама, но добровольная и бескорыстная: я действительно считаю, что наличие хорошего преподавателя в непосредственной близости работает. А в том, что ребята знают своё дело, я уверен. И это очень здорово, что сейчас масштаб аудитории на них не давит и есть возможность достаточно времени уделять ученикам.
Собственно, вот само объявление:
P.S. Если кто захочет обсудить то, что "курсы не нужны" и "Python поймёт любой, достаточно доки почитать" — приходите в комментарии, пофлеймим :Р Моя позиция, если что, такая: курсы действительно работают для многих, а Python в действительно умелых руках — вполне себе хорошее средство для обучения.
С тех пор, как я из Hexlet ушёл, рынок "школ затаскивания в IT" разросся, но не совсем в ту сторону, которая мне нравится. Уж очень трудно конкурировать с гигантами вроде условного SkillBox. И вдвойне сложнее выживать, если ты хочешь учить небольшие группы, находясь к ученикам ближе, чем "смотрите вебинары, пишите преподавателям в чат". Проще говоря, идейным быть сложно.
Так вот, мои хорошие знакомые (буквально лично всех знаю, кое-кого уже многие годы) сейчас набирают учеников на свои курсы по Python. Да, это реклама, но добровольная и бескорыстная: я действительно считаю, что наличие хорошего преподавателя в непосредственной близости работает. А в том, что ребята знают своё дело, я уверен. И это очень здорово, что сейчас масштаб аудитории на них не давит и есть возможность достаточно времени уделять ученикам.
Собственно, вот само объявление:
Learn Python курсы программирования на Python 3.11 для продолжающих с упором на практику.
Научим писать код, за который не стыдно: аннотированный, покрытый тестами, с правильными структурами данных, с настроенными линтерами и CI. Опытные питонисты, имеющие опыт «боевой» разработки, всю дорогу будут проверять ваш код и давать рекомендации.
Курс стартует в сентябре - до конца июня скидка за раннюю регистрацию по ссылке.
P.S. Если кто захочет обсудить то, что "курсы не нужны" и "Python поймёт любой, достаточно доки почитать" — приходите в комментарии, пофлеймим :Р Моя позиция, если что, такая: курсы действительно работают для многих, а Python в действительно умелых руках — вполне себе хорошее средство для обучения.
👍13🤔3🔥2💩2
Я собрался завтра в настолку играть в её виртуальном представлении внутри Tabletop Simulator. И игровую сессию мы будем стримить. Ретранслирую объявление о мероприятии следом за этим сообщением.
Вообще настолку эту делает мой товарищ Никита Соболев. Проект открытый (Creative Commons), вот тут живёт: https://github.com/sobolevn/ship-it-boardgame Кое у кого даже физические копии уже имеются (у меня пока нету). Тематика у игры айтишно-злободневная, но это всё, что лично я пока про игру знаю 🌚
Опыт трансляции настольных игр для нас нов, так что помимо разбирательств с игрой я предвкушаю всякие технические моментики. Но это ещё сильнее перекликается с тематикой игры 🙈
Вообще настолку эту делает мой товарищ Никита Соболев. Проект открытый (Creative Commons), вот тут живёт: https://github.com/sobolevn/ship-it-boardgame Кое у кого даже физические копии уже имеются (у меня пока нету). Тематика у игры айтишно-злободневная, но это всё, что лично я пока про игру знаю 🌚
Опыт трансляции настольных игр для нас нов, так что помимо разбирательств с игрой я предвкушаю всякие технические моментики. Но это ещё сильнее перекликается с тематикой игры 🙈
GitHub
GitHub - sobolevn/ship-it-boardgame: Social and fun boardgame about IT. Best with 🍻
Social and fun boardgame about IT. Best with 🍻. Contribute to sobolevn/ship-it-boardgame development by creating an account on GitHub.
🔥5
Forwarded from Никита Соболев
привет!
в среду 10 июля играем в IT-шную опенсорсную настолку Ship IT в хорошей компании!
в программе:
- душные ITшные шутки
- специальный набор карт для взаимодействия со зрителями
- конкурс на самый смешную шутку в комментариях (приз: физическая настолка!)
участвуют:
- Аня Курносова Pytup: https://t.me/+Bz-uVcXh4Jk1YTNi
- Алексей Пирогов https://github.com/astynax
- Денис Пушкарев https://github.com/zloirock
- Паша Коршиков https://t.me/tech_meetup
- Олег Чирухин https://github.com/olegchir
ведущий: Никита Соболев https://github.com/sobolevn
начало: 19:30 по МСК
ссылка на трансляцию: https://www.youtube.com/watch?v=pR8tQaoOitc
ссылка на игру: https://github.com/sobolevn/ship-it-boardgame
в среду 10 июля играем в IT-шную опенсорсную настолку Ship IT в хорошей компании!
в программе:
- душные ITшные шутки
- специальный набор карт для взаимодействия со зрителями
- конкурс на самый смешную шутку в комментариях (приз: физическая настолка!)
участвуют:
- Аня Курносова Pytup: https://t.me/+Bz-uVcXh4Jk1YTNi
- Алексей Пирогов https://github.com/astynax
- Денис Пушкарев https://github.com/zloirock
- Паша Коршиков https://t.me/tech_meetup
- Олег Чирухин https://github.com/olegchir
ведущий: Никита Соболев https://github.com/sobolevn
начало: 19:30 по МСК
ссылка на трансляцию: https://www.youtube.com/watch?v=pR8tQaoOitc
ссылка на игру: https://github.com/sobolevn/ship-it-boardgame
🔥6