Пост для вопросов/комментариев.
Можно голосом, но возможно, это будет сложнее 😉
Можно голосом, но возможно, это будет сложнее 😉
Афтепати в 20:00 (тут была ссылка)
Можно обсудить стрим, бруг, офис, вологодское сообщество, другие темы 😏
Можно обсудить стрим, бруг, офис, вологодское сообщество, другие темы 😏
👍3❤🔥2
Запись вчерашнего стрима.
Спасибо всем, кто поучаствовал в стриме и афтепати! Вы лучшие 🥰
Надеюсь, многие, как и я, узнали новое для себя и получили идеи для создания и развития офлайн-сообществ ✨
#стрим@anna_codes
Спасибо всем, кто поучаствовал в стриме и афтепати! Вы лучшие 🥰
Надеюсь, многие, как и я, узнали новое для себя и получили идеи для создания и развития офлайн-сообществ ✨
#стрим@anna_codes
❤5
Финальный пост о курсе "оптимизации Rails-приложений" от Thinknetica.
У меня вот так. На самом деле сдала все домашки, кроме двух, видео посмотрела почти все, кроме одного модуля (в прогрессе учитывается ещё всякое, типа записей финальных встреч прошлых выпусков)
Курс понравился (особенно с учётом скидки), хотя многие материалы хорошо бы обновить. И видео-формат - это тяжело для меня, особенно если не всё осталось актуальным. На домашки тяжело время находить, но считаю, что я справилась.
Понравились дз по первым модулям - по оптимизации cpu и использования памяти, а ещё по распараллеливанию http-запросов с условиями.
По базам данных не хватило глубины. Наверное, в рамках такого курса сильно углубиться нереально, нужен отдельный.
Были 2 домашки, которые можно (и нужно) делать на рабочем проекте. Это круто, но тяжело: масштаб другой + в рабочее время обычно нужно другими задачами заниматься, а после работы уже нужен отдых от проекта :D . Если это дз-загадка на оптимизацию, то куда проще делать даже в свободные полчаса.
Часть по фронтенду так и не сделала, хотя я люблю шире посмотреть. Кажется, там всё так быстро устаревает (но я не проверяла детали, что там конкретно! Расскажите, кто делал, насколько актуально) + в рабочих проектах меньше шанс там что-то поделать, это тоже повлияло на мотивацию.
Очень не хватило этапа рефлексии, на заключительном занятии была просто лекция. Тема интересная (файберы и тп), но рефлексию не заменяет. Было бы круто подвести итог, обсудить, что узнали, что будем применять на практике и тд. Даже хотела сама провести, но никто не горит желанием 🥲, так что будет другое )
Как у вас? 😏
#thinknetica@anna_codes
У меня вот так. На самом деле сдала все домашки, кроме двух, видео посмотрела почти все, кроме одного модуля (в прогрессе учитывается ещё всякое, типа записей финальных встреч прошлых выпусков)
Курс понравился (особенно с учётом скидки), хотя многие материалы хорошо бы обновить. И видео-формат - это тяжело для меня, особенно если не всё осталось актуальным. На домашки тяжело время находить, но считаю, что я справилась.
Понравились дз по первым модулям - по оптимизации cpu и использования памяти, а ещё по распараллеливанию http-запросов с условиями.
По базам данных не хватило глубины. Наверное, в рамках такого курса сильно углубиться нереально, нужен отдельный.
Были 2 домашки, которые можно (и нужно) делать на рабочем проекте. Это круто, но тяжело: масштаб другой + в рабочее время обычно нужно другими задачами заниматься, а после работы уже нужен отдых от проекта :D . Если это дз-загадка на оптимизацию, то куда проще делать даже в свободные полчаса.
Часть по фронтенду так и не сделала, хотя я люблю шире посмотреть. Кажется, там всё так быстро устаревает (но я не проверяла детали, что там конкретно! Расскажите, кто делал, насколько актуально) + в рабочих проектах меньше шанс там что-то поделать, это тоже повлияло на мотивацию.
Очень не хватило этапа рефлексии, на заключительном занятии была просто лекция. Тема интересная (файберы и тп), но рефлексию не заменяет. Было бы круто подвести итог, обсудить, что узнали, что будем применять на практике и тд. Даже хотела сама провести, но никто не горит желанием 🥲, так что будет другое )
Как у вас? 😏
#thinknetica@anna_codes
👍10❤6💔1
Посмотрела keynote Матца на Rubyconf 2024, он впервые с 2019 года выступил офлайн.
Просмотров примерно, как у меня на "Как я делала курс по Ruby" (это потому что руби умер? но у меня тоже по руби...)
Рассказал о важных изменения в Ruby на протяжении всей истории:
От:
- YARV (Yet Another Ruby VM) (2007, ruby 1.9), который в своё время в 4-5 раз ускорил выполнение кода
Через:
- поддержку юникода (2013)
- изменения работы Garbage Collector'а
- и другие важные (ракторы, yjit) и не очень важные (single-line def :) штуки
До:
- Ruby.wasm (руби в браузере) и prism (новый парсер Ruby)
А что в следующих версиях Ruby?
Обещает изолированные пространства имён (refinements+packages). Хотели в Ruby 3.4.0 , но Сатоши был занят, поэтому в 4.0
Посмотрим, как будет реализовано
Долго рассуждает про Automated Typing . Предполагает, что скоро это будет прошлый век - писать типы руками, сравнивает статическую типизацию с МКПП, типа сейчас уже редко встретишь.
Тем временем, я вожу только механику и даже не пробовала автомат. Никогда не приходила в голову эта аналогия, поэтому особенно понравилось.
Статическую типизацию тоже мало пробовала, и не в коммерческом коде, вот такое противоречие.
А как у вас насчёт акпп/мкпп и динамической/статической типизации? 😏
Следующий доклад хочу про ракторы посмотреть.
А вот ещё про GVL хороший.
Весь плейлист
#ruby@anna_codes
Просмотров примерно, как у меня на "Как я делала курс по Ruby" (это потому что руби умер? но у меня тоже по руби...)
Рассказал о важных изменения в Ruby на протяжении всей истории:
От:
- YARV (Yet Another Ruby VM) (2007, ruby 1.9), который в своё время в 4-5 раз ускорил выполнение кода
Через:
- поддержку юникода (2013)
- изменения работы Garbage Collector'а
- и другие важные (ракторы, yjit) и не очень важные (single-line def :) штуки
До:
- Ruby.wasm (руби в браузере) и prism (новый парсер Ruby)
А что в следующих версиях Ruby?
Обещает изолированные пространства имён (refinements+packages). Хотели в Ruby 3.4.0 , но Сатоши был занят, поэтому в 4.0
Посмотрим, как будет реализовано
Долго рассуждает про Automated Typing . Предполагает, что скоро это будет прошлый век - писать типы руками, сравнивает статическую типизацию с МКПП, типа сейчас уже редко встретишь.
Тем временем, я вожу только механику и даже не пробовала автомат. Никогда не приходила в голову эта аналогия, поэтому особенно понравилось.
Статическую типизацию тоже мало пробовала, и не в коммерческом коде, вот такое противоречие.
А как у вас насчёт акпп/мкпп и динамической/статической типизации? 😏
Следующий доклад хочу про ракторы посмотреть.
А вот ещё про GVL хороший.
Весь плейлист
#ruby@anna_codes
👍12👾3🔥1
Астрологи объявили неделю девопса:
Удалов о том, что нужно знать devops
Angry Beard о взаимоотношениях с камалом
У thinkneticи скоро будет воркшоп "Масштабирование Rails-приложений".
Кажется, Rails там не так много, есть универсальные темы. Сегодня начался last call!
Раньше периодически приходилось "админить" сервера и настраивать деплой с capistrano/mina. До руби тоже иногда нужно былопоправить код по фтп настроить LAMP.
Обычно воспринималось, как что-то отвлекающее от основных задач, но на самом деле было очень полезно ✨
Вообще я согласна с DHH: нужно уметь всё, пусть не на продвинутом уровне. Ну реально, бесит, что многого не умею/не понимаю.
В современных инструментах пока плохо разбираюсь (но я буду 😁)
А как у вас?
P.S. Считаю, что если для деплоя пушить на heroku, то особо ничему не научишься.
Хотя для своих целей это был хороший инструмент.
Удалов о том, что нужно знать devops
Angry Beard о взаимоотношениях с камалом
У thinkneticи скоро будет воркшоп "Масштабирование Rails-приложений".
Кажется, Rails там не так много, есть универсальные темы. Сегодня начался last call!
Раньше периодически приходилось "админить" сервера и настраивать деплой с capistrano/mina. До руби тоже иногда нужно было
Обычно воспринималось, как что-то отвлекающее от основных задач, но на самом деле было очень полезно ✨
Вообще я согласна с DHH: нужно уметь всё, пусть не на продвинутом уровне. Ну реально, бесит, что многого не умею/не понимаю.
В современных инструментах пока плохо разбираюсь (но я буду 😁)
А как у вас?
P.S. Считаю, что если для деплоя пушить на heroku, то особо ничему не научишься.
Хотя для своих целей это был хороший инструмент.
❤7👍7
Посмотрела доклад Коичи Сасада про ракторы.
Не так много нового про сами ракторы, зато дал хороший "рефрешер" о проблемах параллелизма :
Чем отличается параллельное выполнение от конкурентного?
- одновременное выполнение vs переключение между несколькими задачами
GVL/GIL в Ruby:
- ограничивает одновременное выполнение потоков, за счёт этого избавляет от многих проблем параллелизма
- иногда параллельное выполнение возможно, если один из потоков выполняет I/O операцию
Что за ракторы и зачем они?
- Руби-акторы
- появились в Ruby 3.0 (2020)
- для параллельного выполнения кода
- у каждого рактора есть свой GVL: потоки внутри одного рактора будут работать в основном конкурентно, а не параллельно.
А вот потоки внутри разных ракторов могут выполняться параллельно.
Почему нельзя просто взять и выполнять Руби-потоки параллельно?
(с точки зрения разработчиков языка)
- у потоков, запущенных в рамках одного процесса, общее пространство памяти, нужно следить за shared mutable objects, а это сложно
- в руби много shared mutable стейта + основные структуры типа строк и массивов не потокобезопасные
Есть мнение из 1995 года, что нужно вообще запретить параллельное выполнение потоков, т.к слишком сложно следить "вручную" (смотрите картинку :)
Какие есть варианты избавиться от сложности?
- запретить мутабельные объекты (elixir/erlang)
- отслеживать с помощью типов (Rust)
- ограничить mutations (clojure)
- отслеживать мутации и лочить внешними средствами (clang, helgrid/valgrind)
- запретить шарить объекты, форкать процессы (shell, druby)
- отделить shareable и не shareable объекты - Ракторы!
Что относительно нового:
- M:N планировщик тредов, появился в Ruby 3.3.0
M руби-тредов теперь "мапятся" на N тредов ОС, (N = количество ядер, M > N)
Описание в трекере
По умолчанию M:N планировщик в главном ракторе выключен, тогда всё работает, как обычно: 1 рубишный поток соответствует одному потоку ОС.
В ракторах всё так же много проблем:
- мало поддерживающих их библиотек
- вообще мало что можно запустить, но вот на простых расчётах типа фибоначчи можно проверить
- есть особенности с производительностью, иногда код работает ещё медленнее, чем без ракторов
Интересно, дойдёт ли когда-нибудь до production-ready 🤔
Но надо понимать, что мы всегда в ракторе - посмотрите
Можно глянуть планы и обширный список проблем с ракторами в трекере
#ruby@anna_codes
Не так много нового про сами ракторы, зато дал хороший "рефрешер" о проблемах параллелизма :
Чем отличается параллельное выполнение от конкурентного?
- одновременное выполнение vs переключение между несколькими задачами
GVL/GIL в Ruby:
- ограничивает одновременное выполнение потоков, за счёт этого избавляет от многих проблем параллелизма
- иногда параллельное выполнение возможно, если один из потоков выполняет I/O операцию
Что за ракторы и зачем они?
- Руби-акторы
- появились в Ruby 3.0 (2020)
- для параллельного выполнения кода
- у каждого рактора есть свой GVL: потоки внутри одного рактора будут работать в основном конкурентно, а не параллельно.
А вот потоки внутри разных ракторов могут выполняться параллельно.
Почему нельзя просто взять и выполнять Руби-потоки параллельно?
(с точки зрения разработчиков языка)
- у потоков, запущенных в рамках одного процесса, общее пространство памяти, нужно следить за shared mutable objects, а это сложно
- в руби много shared mutable стейта + основные структуры типа строк и массивов не потокобезопасные
Есть мнение из 1995 года, что нужно вообще запретить параллельное выполнение потоков, т.к слишком сложно следить "вручную" (смотрите картинку :)
Какие есть варианты избавиться от сложности?
- запретить мутабельные объекты (elixir/erlang)
- отслеживать с помощью типов (Rust)
- ограничить mutations (clojure)
- отслеживать мутации и лочить внешними средствами (clang, helgrid/valgrind)
- запретить шарить объекты, форкать процессы (shell, druby)
- отделить shareable и не shareable объекты - Ракторы!
Что относительно нового:
- M:N планировщик тредов, появился в Ruby 3.3.0
M руби-тредов теперь "мапятся" на N тредов ОС, (N = количество ядер, M > N)
Описание в трекере
По умолчанию M:N планировщик в главном ракторе выключен, тогда всё работает, как обычно: 1 рубишный поток соответствует одному потоку ОС.
В ракторах всё так же много проблем:
- мало поддерживающих их библиотек
- вообще мало что можно запустить, но вот на простых расчётах типа фибоначчи можно проверить
- есть особенности с производительностью, иногда код работает ещё медленнее, чем без ракторов
Интересно, дойдёт ли когда-нибудь до production-ready 🤔
Но надо понимать, что мы всегда в ракторе - посмотрите
Ractor.current.Можно глянуть планы и обширный список проблем с ракторами в трекере
#ruby@anna_codes
👍6❤🔥4🔥4❤3👏1
Вот ещё крутой доклад In-Depth Ruby Concurrency от JPCamara
Рассказывает про распараллеливание с помощью процессов, потоков, файберов и немного ракторов.
Разбирает особенности, плюсы и минусы каждого подхода, даёт конкретные примеры из жизни. Например, app-серверов, к-е используют эти модели.
Посмотрите, если хотите разобраться или вспомнить.
Рассказывает про распараллеливание с помощью процессов, потоков, файберов и немного ракторов.
Разбирает особенности, плюсы и минусы каждого подхода, даёт конкретные примеры из жизни. Например, app-серверов, к-е используют эти модели.
Посмотрите, если хотите разобраться или вспомнить.
YouTube
RubyConf 2024 In-Depth Ruby Concurrency: Navigating the Ruby concurrency landscape by JP Camara
When do I use a Process, or a Thread, or a Fiber? And Why? Can I use Ractors yet? What is the FiberScheduler? The M:N Thread scheduler? What's a Reactor? Do I fork, prefork, or refork? Should I care?
Do I scale up my Threads? My Fibers? My Processes? Do…
Do I scale up my Threads? My Fibers? My Processes? Do…
👍14❤3
Привет!
Давно не стримили. Теперь давайте про Ruby.
Обсудим, куда идёт Ruby, а куда рельсы:
- что нового обещают в руби
- идеи dhh, one-person framework
- рельсовый фронтенд
- ИИ + руби
- is ruby dead
- куда перекатываться, если что 😁
Буду с подругами: мы с Катей рубистки, Олеся разрабатывает платформу для интерактивных курсов по музыке с бэкендом на Ruby on Rails.
В воскресенье 27 апреля, в 16:00
Заходите послушать и поговорить. После - афтепати на свободную тему ✨
#стрим@anna_codes #ruby@anna_codes
Давно не стримили. Теперь давайте про Ruby.
Обсудим, куда идёт Ruby, а куда рельсы:
- что нового обещают в руби
- идеи dhh, one-person framework
- рельсовый фронтенд
- ИИ + руби
- is ruby dead
- куда перекатываться, если что 😁
Буду с подругами: мы с Катей рубистки, Олеся разрабатывает платформу для интерактивных курсов по музыке с бэкендом на Ruby on Rails.
В воскресенье 27 апреля, в 16:00
Заходите послушать и поговорить. После - афтепати на свободную тему ✨
#стрим@anna_codes #ruby@anna_codes
🔥14❤🔥8❤3👍3
Статья для подготовки к стриму "Rails: when "nothing changed" is the best feature"😏
Порадовала цитата про падающий нокогири:
И коммент от Матца. Завтра обсудим )
#ruby #rails
Порадовала цитата про падающий нокогири:
Recently I had to implement a tiny backend app. I dusted off Rails and everything was the same. Same commands, same gems, even nokogiri crashed the same way during bundle install, just like 10 years ago…
И коммент от Матца. Завтра обсудим )
#ruby #rails
❤8❤🔥1👍1
Пост для комментариев к стриму + примерные темы:
- что с Ruby
Ruby Kaigi 2025
- ruby 4.0
- programming language for AI age
Final keynote Rubykaigi 2024 (talk)
презентация
- performance (yjit, парсер, паралеллизм, memory opts, tooling)
- static typing :D
- руби 4-0 - изолированные пространства имён
Руби-компании
- Rails
- rails 8
- solid trifecta
- sqlite для прода
- серверофобия и линукс, камал
- one-person framework
- рельсовый фронтенд
- ?? Rails: when "nothing changed" is the best feature
- rails 7.2
- что с ии + руби
- что используете
- что у нас на рынке труда
- куда перекатываться, если что )
- что с Ruby
Ruby Kaigi 2025
- ruby 4.0
- programming language for AI age
Final keynote Rubykaigi 2024 (talk)
презентация
- performance (yjit, парсер, паралеллизм, memory opts, tooling)
- static typing :D
- руби 4-0 - изолированные пространства имён
Руби-компании
- Rails
- rails 8
- solid trifecta
- sqlite для прода
- серверофобия и линукс, камал
- one-person framework
- рельсовый фронтенд
- ?? Rails: when "nothing changed" is the best feature
- rails 7.2
- что с ии + руби
- что используете
- что у нас на рынке труда
- куда перекатываться, если что )
❤8😱1
Анна Буянова (Anna Codes) pinned «Пост для комментариев к стриму + примерные темы: - что с Ruby Ruby Kaigi 2025 - ruby 4.0 - programming language for AI age Final keynote Rubykaigi 2024 (talk) презентация - performance (yjit, парсер, паралеллизм, memory opts, tooling)…»