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

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

лс: @lightalloy
Download Telegram
А вот и "Shape Up" в pdf, без регистрации и смс.
В последнее время немного занялась английским и навыками презентации, теперь не успеваю толком ни писать, ни читать.
Попробую исправиться, и для начала просто напишу о том, что читаю:

Таймхакинг (https://bit.ly/2TYhaQj)
Что хорошо в таких книгах: читаешь быстро, и кажется, что делаешь что-то полезное :D
Конечно, есть и полезные идеи. Книга побудила меня ещё раз обратить внимание на рабочий режим и попробовать его оптимизировать. Гибкости в этом плане у меня не так много, т.к. режим подстроен под садик. Но подумать, когда делать перерывы, когда писАть/читать, куда впихнуть организационные дела, вполне можно.

Release it (https://amzn.com/1680502395/)
Читаю очень медленно, уже пару месяцев, осилила чуть больше половины. Проблема только в том, что книга больше подходит для вдумчивого чтения. Я же читаю перед сном, при этом одновременно читаю несколько книг, а значит берусь за неё не каждый день. Сама "Release it" больше на темы SRE (Site Reliability, обеспечение доступности/надёжности приложений) и Devops, сейчас я имею только косвенное отношение к этим темам.
По it сейчас хотелось бы взять что-нибудь более прикладное, но не знаю, что именнно + опять же, не хочется выделять много времени. На очереди "7 моделей конкуренции и параллелизма" и "руби под микроскопом". Ещё на этот год был запланирован Фаулер с "Шаблонами корпоративных приложений", но думаю, что он опять отложится.

Слово живое и мёртвое, Нора Галь (https://bit.ly/2Peg58h)
Эта книга есть у меня в бумаге, а с чтением бумажных книг у меня часто возникают сложности (не так удобно брать с собой, не почитаешь в темноте, и т.д.)
Начинала читать не один раз, и откладывала. Но недавно стала ограничивать время на "потупить в телефоне", и дело пошло повеселее.
"Слово" -- о том, как писать и переводить. Интересно почитать про особенности русского языка, отличия от английского и французского.
Очень полезно про перевод герундия ("-ing"). Часто его переводят, как отглагольное существительное, но это звучит неестественно. Лучше постараться заменить глаголом. (вот примеры от одного из авторов "Пиши-сокращай" - https://bit.ly/2HqIeSZ)
Ещё стало стыдно за избыток англицизмов в речи и на письме. Да, можно сказать, что в этом плане книга устарела и новые слова уже "вошли в язык". Про это пишет и сама Нора, а сейчас, спустя десятилетия после публикации, многие такие слова стали ещё привычнее. Тем не менее, принцип остался тем же: стоит задуматься, использовать ли кальку с английского или есть синоним, который будет звучать лучше.
Ещё одно последствие: стала чаще замечать ошибки и недочёты в переводных (и не только) книгах, читать стало не так весело.
> Мне было надёжно. (из "Право писать" Джулии Кэмерон, wtf?)

Mathematitian's Lament (Плач математика) (https://bit.ly/ZGdVyW)
Быстренько прочитала в поезде, в этом рассказе(?) всего 25 страниц.
Как и указано в названи, математик жалуется на то, что математике учат неправильно. Аналогии в начале книги интересные, хотелось бы прочитать о том, как это внедрять на практике.

#книги
Forwarded from Анна Буянова
When I gave two 5-minute talks to a couple of people :D
На фоне очередные эксперименты на тему трекера привычек 📝
Расскажу про очередной подкаст, Command line heroes (https://www.redhat.com/en/command-line-heroes)
Его делает Сарон Итбарек, основательница CodeNewbie (https://www.codenewbie.org/), а спонсирует RedHat.
Благодаря этому, подкаст записан очень профессионально. Вам не придётся продираться сквозь помехи или разбирать нечёткую речь. Я думаю, он подойдёт и для изучения английского. Темы последних эпизодов для примера: история создания языков программирования, инфраструктура на коболе и что с ней делать.
Ещё на сайте можно поиграть в игру(https://red.ht/2LcNuOJ).
В этом году DEV партнёрится с хактоберфестом: https://bit.ly/2lEYurq

Для тех, кто не знает, хактоберфест -- это мероприятие для поддержки и развития opensource, которое проходит в течение всего октября. Чтобы поучаствовать, нужно зарегистрироваться и сделать 4 пулл-реквеста на гитхабе. Те, кто успешно выполнят этот челлендж, получат футболку и набор стикеров.

Требований к пулл-реквестам немного: главное, чтобы они были в публичных репозиториях и их не пометили, как спам. То есть, не обязательно, чтобы пулл-реквест приняли, пока идёт мероприятие. Считаются даже пулл-реквесты в свои репозитории, но это, конечно, не так интересно.

Чтобы легче было найти подходящую задачу, мейнтейнеры помечают их тегом #hacktoberfest (https://git.io/fjjfg), присмотреться можно уже сейчас.
Ещё рамках хактоберфеста проходят встречи, которые помогут начать или продолжить контрибьютить. Например, в прошлом году pyladies spb проводили OpenSource sprint: https://bit.ly/2lAqQTU

У нас специальных задач для хактоберфеста (пока) нет, но всегда можно посмотреть метки "good first issue" (https://git.io/fjjBg) и "help wanted" (https://git.io/fjjB2)

#devto
Мы открываем регистрацию на RailsGirls в Спб 💎
https://vk.cc/9OpVnw
Делитесь с подругами (дочками, мамами, бабушками), у которых нет особого опыта программирования, но есть желание его получить 👩🏻‍💻

#railsgirls
Появился повод съездить на PyLadies, готовлюсь вот 😅
Это задачки с https://exercism.io/ , он хорош, чтобы изучить или вспомнить синтаксис языка. Можно выбрать трек с менторами, тогда ваши решения будут отправляться на код-ревью. Я пошла этим путём, когда решала задачки на эликсире, было довольно полезно.

Что касается питона, то я немного писала на нём, когда выбирала, куда уйти с php в конце 2000-х. Это были какие-то простые пет-проекты, не для прода. В то время руби больше привлёк своей красотой и культурой (?), сейчас пытаюсь вспомнить истинные причины 😅. С тех пор питоном особо не занималась, разве что иногда становится интересно что-то вроде "а как там работает множественное наследование" и т.д. и я поверностно читаю на тему.

Если нет повода, то не так интересно изучать язык, который относительно похож на мой основной.
Как Авди писал (http://www.virtuouscode.com/2015/05/08/a-personal-programming-language-roadmap/):
> Python: a fine language, but too similar to Ruby to be worth re-acquainting myself at this point.
Вот и у меня что-то похожее.
Сейчас возник некоторый исследовательский интерес, хотя глубоко изучать питон так и не планирую.
Btw, буду на RubyRussia в субботу, буду рада пообщаться
Сегодня начинается хактоберфест, приходите контрибьютить ко мне на рабочий проект.
https://github.com/thepracticaldev/dev.to/issues

Стек - ruby/rails, на фронтенде preact(это почти как реакт :) и ванильный js.

Обратите внимание на задачи с тегами - "hacktoberfest", "help wanted", "good first issue"
Есть теги и по технологиям, начинаются с "tech" (например, "tech: html/css")

Парочка задач от меня:
- Уйти от вызовов delay (специфичных для DelayedJob) и сделать вместо них ActiveJob'ы ==> https://github.com/thepracticaldev/dev.to/issues/3136
Почти всё уже сделано руками контрибьютеров, осталось несколько пунктов.

- Удалить старые методы, связанные с уходом от DelayedJob ==> https://github.com/thepracticaldev/dev.to/issues/2950

- Добавить дату публикации подкаста ==> https://github.com/thepracticaldev/dev.to/issues/3498
Люди вызывались делать, но результата не видно, поэтому смело можно брать.

Ещё можно обратить внимание на rubocop_todo и просто прогнать rubocop, я смотрю, опять там есть пара нарушений.
Во фронтенд я не так часто заглядываю, но там ещё тоже много возможностей отрефакторить или исправить код в соответствии с конфигом eslint.

Доки по установке в readme проекта и здесь ==> https://docs.dev.to/installation/
Если что, обращайтесь (@lightalloy)

#devto
Недавно сделали интеграцию DEV со стекбитом, напишу про неё.
Stackbit -- это приложение для быстрого создания JAMstack-сайтов. JAMStack - это альтернатива традиционным CMS типа вордпресса, как-нибудь напишу про него подробнее.
Stackbit интегрирует генератор статический сайтов (jekyll, gatsby, hugo, etc), headless CMS (Netlify, Contentful, etc) и инструменты для деплоя (Netlify) + делает для вас репозиторий (пока только на гитхабе).

В нашем случае DEV выступает в качестве CMS. То есть если у вас есть посты на DEV, можно зайти в раздел "интеграции" в настройках, нажать кнопку "Connect to Stackbit", выбрать тему и генератор, и через некоторое время получить готовый сайт, примерно такой: https://terrific-velociraptor-e1366.netlify.com/
Доработать его можно просто внеся изменения в репозитории на гитхабе. Я практически ничего не меняла, поэтому сайт выглядит убого :D

С технической стороны реализовано так:
- когда первый раз интегрируетесь со стекбитом, даёте доступ oauth-приложению
- stackbit получает доступ, берёт данные о постах по апи, делает свою магию, и создаёт сайт
- stackbit по апи регистрирует вебхуки(https://en.wikipedia.org/wiki/Webhook) на DEV
- когда кто-то обновляет или создаёт пост, мы смотрим, есть ли соответствующие вебхуки, и отправляем события с нужной информацией на url'ы этих вебхуков

Вебхуки и события -- это интересная тема в техническом плане. Но мы пока решили остановиться на самом простом варианте, а потом посмотрим, в какую сторону развивать фичу. Сейчас реализация похожа на ту, которая описана в статье https://benediktdeicke.com/2017/09/sending-webhooks-with-rails/ , (только без коллбеков! 😂)

#devto #работа
1 и 2 ноября мы провели RailsGirls. Наконец-то напишу о нём.
Для тех, кто не знает, RailsGirls — это воркшоп для девочек и женщин, на котором они могут познакомиться с Ruby, Rails и программированием в целом.
Большая часть мероприятий RG нацелена на абсолютных новичков. За 1-2 дня научить программированию и даже дать основы невозможно, поэтому основная цель — просто показать, что такое программирование, дать идеи, как и чему дальше учиться, как в будущем начать карьеру.

Мы начали подготовку за 2 месяца, мне казалось, что у нас очень мало времени. Например, Django Girls требуют подавать заявку на мероприятие за 3 месяца. У RailsGirls всё более расслабленно. Мы еле добились ответа от организаторок :D (Линды Лиукас), но в итоге всё получилось, и мы смогли добавить информацию на официальный сайт. Организаторки глобальной инициативы особо не контролируют проведение локальных мероприятий. Есть кое-какие инструкции, но основные решения нужно принять самим. Например, составить расписание и решить какие материалы брать для воркшопа.

Само мероприятие мы рекламировали не так много, в основном вк, в "своём" паблике (code_sisters), в "сестра сестре" и немного в телеграме. Оттуда информация разошлась чуть дальше. Этого хватило, чтобы на 20 мест мы получили 80+ заявок. Мы постарались в первую очередь взять тех, у кого меньше знаний в it, но больше мотивации. Часто это субъективные вещи, + вмешивается случайность, поэтому состав получился разнообразный.

При подготовке у меня не было возможности делать то, что привязано к офису и городу, поэтому я переживала, как всё будет в этом плане. Но здесь всё было хорошо (Спасибо, Катя 💙) В остальном мероприятие тоже прошло без больших факапов, хотя многое можно было сделать лучше. Мы получили положительные отзывы, но хотелось бы узнать больше о том, что можно улучшить с т.з. участниц.

А вот то, чему на мой взгляд стоит уделить больше внимания.

- винда и техническая подготовка
Я сама давно не работала с виндой. Перед воркшопом мы попробовали вариант установки с RailsInstaller, обнаружили возможные проблемы и нашли решения. Но прямо перед мероприятием мне приспичило использовать wsl (windows subsystem for linux) + стандартную установку rbenv+ruby+etc, а не волшебный скрипт RailsGirls (в моей группе). На воркшопе сама установка прошла неплохо, но под конец wsl начала тормозить и начались странные ошибки, например, рандомно слетали права у файлов, завершить пришлось не на самой весёлой ноте.
Если бы я поэкспериментировала с wsl заранее, возможно, знала бы о таких проблемах.
Я ставила руби на винду в 2008-2009, через mingw или cygwin, и всё отлично работало. Но сейчас мне это уже не помогает :D

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

- подготовка материалов
Мы взяли готовый туториал RailsGirls. Для первого раза это логично, готовить свой отняло бы много времени и сил, которые были нужны нам на решение других проблем. На сайте Rg есть туториал на русском, но он сильно устарел и пользоваться им уже невозможно. В будущем хотелось бы сделать свой перевод, т.к. не все участницы знают английский на достаточном уровне. Да, можно было бы сделать знание языка одним из требований, но на "нулевом" воркшопе не хочется отсекать людей по этому принципу. А вот собрать данные насчёт знания англ. стоило, чтобы более оптимально сформировать группы.

- делегирование задач
Как обычно, нужно больше делегировать, т.к. основные организаторки и так сильно загружены. Но само делегирование — это тоже работа, + часто сложно передавать задачи несмотря на наличие желающих. На мой взгляд, это связано с тем, что многие задачи включают в себя принятие решений, к-е волонтёркам трудно взять на себя. Тут прослеживается параллель с работой над опенсурсным проектом и делегированием контрибьютерам.

- внезапно не стало сил перед воркшопом
Это было сложно предвидеть, но так получилось. Пришлось тащить подготовку на минималках.

#railsgirls #моё
❤‍🔥11
- "понятно, что ничего не понятно" (для участниц)
Частая тема в отзывах на воркшоп, но это как раз нормально в начале обучения. Если учиться регулярно, то со временем понимания будет больше.

Для первого раза всё прошло хорошо, многие участницы получили положительные впечатления и хотят идти дальше.
В целом очень классный новый опыт организации, менторства и даже публичных выступлений
Подборка статей от Shopify о том, как они справляются с огромным высоконагруженным монолитом.
https://twitter.com/rhymes_/status/1197115938501472263

(узнаю кое-что из Domain Driven Design)
Особенно мне понравилась идея "modular monolith". Он сочетает плюсы микросервисной архитектуры (чёткая структура, разделение зон ответственности) и монолита (отсутствие сложностей взаимодействия сервисов между собой). Конечно, Shopify проделали (и делают) огромную работу, чтобы к этому прийти. Мало у кого есть такая возможность, пока приложение не достигнет их масштабов, но всё равно кое-что можно "взять себе".