Анна Буянова (Anna Codes) – Telegram
Анна Буянова (Anna Codes)
401 subscribers
82 photos
1 video
1 file
149 links
Бэкенд-разработчица (Ruby). Иногда делаю образовательные проекты.

Личный канал о разработке ПО, программировании (на Ruby и не только), образовании в it.

лс: @lightalloy
Download Telegram
Уже сегодня в 18:00 по Минску!

Ссылка на Google Meet: https://meet.google.com/zdn-sziw-bzg
🔥111
Привет!

Приходите на стрим про локальные сообщества и офлайн-мероприятия, в воскресенье в 18:00 по Москве.
Будет прямо здесь, на канале.

Послушаем участниц и подумаем, какие инициативы стоит начать в своём городе.

Азалия, инди-разработчица и начинающая барабанщица, участвует в организации митапов code_sisters и Индикатор Уфа.
Ведёт канал @zazaraisovna_chanel

Ирина Шляпина, тестировщица с двумя годами опыта, организует регулярные профессиональные встречи сообщества тестировщиков в Перми, ведёт канал @irina_sh_qa.

Мария Осипенко, go и php-разработчица, делает митапы сообществ LivePhp и code_sisters в Спб, ведёт канал с мемами @mariaivam

#стрим@anna_codes
11❤‍🔥6👾4
Доброе утро 🌞
Надеюсь, у вас получится взбодриться, не прибегая к этому методу )
1
Анна Буянова (Anna Codes) pinned «Привет! Приходите на стрим про локальные сообщества и офлайн-мероприятия, в воскресенье в 18:00 по Москве. Будет прямо здесь, на канале. Послушаем участниц и подумаем, какие инициативы стоит начать в своём городе. Азалия, инди-разработчица и начинающая…»
Live stream scheduled for
Привет!
Сегодня стрим про локальные сообщества в 18:00 по Москве

Примерные темы, которые обсудим:

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

Можно будет предложить свои темы, задать вопросы, поделиться опытом.
10❤‍🔥2👍1
Live stream scheduled for
Пост для вопросов/комментариев.

Можно голосом, но возможно, это будет сложнее 😉
Live stream finished (1 hour)
Афтепати в 20:00 (тут была ссылка)
Можно обсудить стрим, бруг, офис, вологодское сообщество, другие темы 😏
👍3❤‍🔥2
Запись вчерашнего стрима.
Спасибо всем, кто поучаствовал в стриме и афтепати! Вы лучшие 🥰
Надеюсь, многие, как и я, узнали новое для себя и получили идеи для создания и развития офлайн-сообществ

#стрим@anna_codes
5
Как не хватает в последние n лет вот этого "ходить на сервер и удалять бд" 💔😁
🔥5💯2
Финальный пост о курсе "оптимизации Rails-приложений" от Thinknetica.

У меня вот так. На самом деле сдала все домашки, кроме двух, видео посмотрела почти все, кроме одного модуля (в прогрессе учитывается ещё всякое, типа записей финальных встреч прошлых выпусков)

Курс понравился (особенно с учётом скидки), хотя многие материалы хорошо бы обновить. И видео-формат - это тяжело для меня, особенно если не всё осталось актуальным. На домашки тяжело время находить, но считаю, что я справилась.

Понравились дз по первым модулям - по оптимизации cpu и использования памяти, а ещё по распараллеливанию http-запросов с условиями.
По базам данных не хватило глубины. Наверное, в рамках такого курса сильно углубиться нереально, нужен отдельный.

Были 2 домашки, которые можно (и нужно) делать на рабочем проекте. Это круто, но тяжело: масштаб другой + в рабочее время обычно нужно другими задачами заниматься, а после работы уже нужен отдых от проекта :D . Если это дз-загадка на оптимизацию, то куда проще делать даже в свободные полчаса.

Часть по фронтенду так и не сделала, хотя я люблю шире посмотреть. Кажется, там всё так быстро устаревает (но я не проверяла детали, что там конкретно! Расскажите, кто делал, насколько актуально) + в рабочих проектах меньше шанс там что-то поделать, это тоже повлияло на мотивацию.

Очень не хватило этапа рефлексии, на заключительном занятии была просто лекция. Тема интересная (файберы и тп), но рефлексию не заменяет. Было бы круто подвести итог, обсудить, что узнали, что будем применять на практике и тд. Даже хотела сама провести, но никто не горит желанием 🥲, так что будет другое )

Как у вас? 😏

#thinknetica@anna_codes
👍106💔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
👍12👾3🔥1
Астрологи объявили неделю девопса:

Удалов о том, что нужно знать devops
Angry Beard о взаимоотношениях с камалом

У thinkneticи скоро будет воркшоп "Масштабирование Rails-приложений".
Кажется, Rails там не так много, есть универсальные темы. Сегодня начался last call!

Раньше периодически приходилось "админить" сервера и настраивать деплой с capistrano/mina. До руби тоже иногда нужно было поправить код по фтп настроить LAMP.
Обычно воспринималось, как что-то отвлекающее от основных задач, но на самом деле было очень полезно

Вообще я согласна с DHH: нужно уметь всё, пусть не на продвинутом уровне. Ну реально, бесит, что многого не умею/не понимаю.
В современных инструментах пока плохо разбираюсь (но я буду 😁)

А как у вас?

P.S. Считаю, что если для деплоя пушить на heroku, то особо ничему не научишься.
Хотя для своих целей это был хороший инструмент.
7👍7
Сегодня из кафехи 😁
Правда, не работаю, а пишу.
А вы ходите поработать/поучиться/поделать свои проекты?
12👍4🔥4
Юмор не для всех 🌚

Посмотрела пару докладов про параллелизм в руби, сделаю саммари 😏
👍5🌚5🔥2
Посмотрела доклад Коичи Сасада про ракторы.

Не так много нового про сами ракторы, зато дал хороший "рефрешер" о проблемах параллелизма :

Чем отличается параллельное выполнение от конкурентного?
- одновременное выполнение 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🔥43👏1