Дорожные заметки.
Укатил в Бишкек на деловые встречи и на конференцию.
Тут снег. Так классно. В Стамбуле в этом году снега не было. Я немного соскучился по хрусту снега под ногами.
Укатил в Бишкек на деловые встречи и на конференцию.
Тут снег. Так классно. В Стамбуле в этом году снега не было. Я немного соскучился по хрусту снега под ногами.
🔥3
Дорожные заметки.
Посижу тут тихонечко. Послушаю 🙂
Посижу тут тихонечко. Послушаю 🙂
🔥6
Посетил Women in Tech KG.
Сегодня в Американском Университете Центральной Азии проходил большой форум-открытие программы Women in Tech.
В свете того, что за последние годы мои самые ответственные, старательные, мотивированные студенты - девушки, а прямые руководители проектов и тимлиды, с которыми я работаю - в основном тоже девушки и женщины, то мне пропустить такое событие было ну никак нельзя.
Интересно было узнать о проектах и крупных инициативах в ИТ, где лидерами являются женщины.
Много ИТ программ направлено именно на поддержку развития женщин в профессии. Очень круто. Центральная Азия это вообще очень перспективный регион. Будем следить за развитием событий. Удачи девушкам!
Сегодня в Американском Университете Центральной Азии проходил большой форум-открытие программы Women in Tech.
В свете того, что за последние годы мои самые ответственные, старательные, мотивированные студенты - девушки, а прямые руководители проектов и тимлиды, с которыми я работаю - в основном тоже девушки и женщины, то мне пропустить такое событие было ну никак нельзя.
Интересно было узнать о проектах и крупных инициативах в ИТ, где лидерами являются женщины.
Много ИТ программ направлено именно на поддержку развития женщин в профессии. Очень круто. Центральная Азия это вообще очень перспективный регион. Будем следить за развитием событий. Удачи девушкам!
🔥3👍1
Rails Re-Vitalize
Vite — один из популярных фронтовых инструментов.
С Rails интегрируется через ViteRuby гем.
Идея. Рубисты - любители оборачивать все что ни попадя в свой любимый язык программирования. Вообще-то говоря, оборачивать Frontend в руби — хреновая идея.
Вебпакером наелись? Понравилось?
Можно уже как-то без вот этого? — Можно!
Нет ничего проще, чем интегрировать любой asset bundler c рельсом.
Нам понадобится
1) 3-5 простых хелпера для вставки JS/CSS тегов на страницу.
2) Простой рейк-таск для компиляции в продакшене при запуске rake asset:precompile
3) Кусок JS, для того, чтобы при запуске Vite сохранять PID процесса и следить за состоянием процесса.
4) Кусок ruby кода, чтобы при запуске руби сервера в Dev Mode запускать Vite Dev Server.
5) (По вкусу) Микро rack-миддлвару, для безшовной интеграции с рельсом.
Никаких гемов. Никаких лишних оберток, которые нужно знать/понимать.
Просто Vanilla Vite и пара руби хелперов; Обо все остальном даже знать не надо. Просто работает.
Vite — один из популярных фронтовых инструментов.
С Rails интегрируется через ViteRuby гем.
Идея. Рубисты - любители оборачивать все что ни попадя в свой любимый язык программирования. Вообще-то говоря, оборачивать Frontend в руби — хреновая идея.
Вебпакером наелись? Понравилось?
Можно уже как-то без вот этого? — Можно!
Нет ничего проще, чем интегрировать любой asset bundler c рельсом.
Нам понадобится
1) 3-5 простых хелпера для вставки JS/CSS тегов на страницу.
2) Простой рейк-таск для компиляции в продакшене при запуске rake asset:precompile
3) Кусок JS, для того, чтобы при запуске Vite сохранять PID процесса и следить за состоянием процесса.
4) Кусок ruby кода, чтобы при запуске руби сервера в Dev Mode запускать Vite Dev Server.
5) (По вкусу) Микро rack-миддлвару, для безшовной интеграции с рельсом.
Никаких гемов. Никаких лишних оберток, которые нужно знать/понимать.
Просто Vanilla Vite и пара руби хелперов; Обо все остальном даже знать не надо. Просто работает.
🔥5👍1
Vite + Ruby on Rails
Ruby on Rails — full stack framework.
По крайней мере, уже 20 лет так его позиционирует автор — DHH.
DHH великий человек. Он и его изобретения кормят меня и мою семью уже 15 лет. Я ему благодарен, уважаю и желаю здоровья.
Однако, DHH еще и отличный хайпо-мейкер и упертый идеалист, который имеет право делать всякую дичь и активно этим правом пользуется.
Rails — full stack фреймворк, но мир уже лет 10 как полностью разделился на Front и Back. Это 2 разных мира и экосистемы. DHH все еще пытается гнуть свою линию, но его попытки все чаше и чаще показывают свою несостоятельность.
Frontend решения Rails имеют право на жизнь, интересны, и иногда полезны. Но так же есть и примеры, когда становятся непосильным грузом для развития проекта и блокером для бизнеса.
Сколько этих проектов, которые утонули в поддержке webpacker и вспоминают о нем как о страшном сне и стараются избавиться.
Но, конечно, есть и удачные интеграции. Мир велик и разнообразен.
Мой путь — чистый фронтенд для фронтенда.
Ruby on Rails — full stack framework.
По крайней мере, уже 20 лет так его позиционирует автор — DHH.
DHH великий человек. Он и его изобретения кормят меня и мою семью уже 15 лет. Я ему благодарен, уважаю и желаю здоровья.
Однако, DHH еще и отличный хайпо-мейкер и упертый идеалист, который имеет право делать всякую дичь и активно этим правом пользуется.
Rails — full stack фреймворк, но мир уже лет 10 как полностью разделился на Front и Back. Это 2 разных мира и экосистемы. DHH все еще пытается гнуть свою линию, но его попытки все чаше и чаще показывают свою несостоятельность.
Frontend решения Rails имеют право на жизнь, интересны, и иногда полезны. Но так же есть и примеры, когда становятся непосильным грузом для развития проекта и блокером для бизнеса.
Сколько этих проектов, которые утонули в поддержке webpacker и вспоминают о нем как о страшном сне и стараются избавиться.
Но, конечно, есть и удачные интеграции. Мир велик и разнообразен.
Мой путь — чистый фронтенд для фронтенда.
👍6
Frontend on Rails
Мы знаем о целом зоопарке фронтенд подходов для Rails.
- Sprockets
- Turbolinks
- webpack/webpacker
- Vite/ViteRuby
- ImportMaps
- Propshaft
- HotWire
Госпаде! Rails World! Остановись!
Фронтендщикам хватает их собственных JS, TS, React, Vue, Angular, PostCSS, SCSS, BEM. Ну куда вы еще накидываете?
И вот бизнес дает задачу — да, нам надо рельсовое приложение. Но! Пожалуйста, больше никаких ruby оберток! Нам очень сложно искать этих уникальных рельсовых фронтов, которые будут поддерживать этот набор специфических решений.
Фронтов на реакте со знанием Vite на рынке — как собак.
И они не хотят ничего знать про Propshaft или webpacker. Дайте нам чистое и готовое решение, чтобы фронтендщики просто писали свой код. Мы не хотим опять мигрировать с изобретений DHH на что-то другое, когда через 3 года DHH решит, что его старые подходы стали deprecated.
Да вообще никаких проблем! Интеграция с любым сборщиком ассетов это дело простое. Нужно только понимать суть процесса.
Это не сложно.
Мы знаем о целом зоопарке фронтенд подходов для Rails.
- Sprockets
- Turbolinks
- webpack/webpacker
- Vite/ViteRuby
- ImportMaps
- Propshaft
- HotWire
Госпаде! Rails World! Остановись!
Фронтендщикам хватает их собственных JS, TS, React, Vue, Angular, PostCSS, SCSS, BEM. Ну куда вы еще накидываете?
И вот бизнес дает задачу — да, нам надо рельсовое приложение. Но! Пожалуйста, больше никаких ruby оберток! Нам очень сложно искать этих уникальных рельсовых фронтов, которые будут поддерживать этот набор специфических решений.
Фронтов на реакте со знанием Vite на рынке — как собак.
И они не хотят ничего знать про Propshaft или webpacker. Дайте нам чистое и готовое решение, чтобы фронтендщики просто писали свой код. Мы не хотим опять мигрировать с изобретений DHH на что-то другое, когда через 3 года DHH решит, что его старые подходы стали deprecated.
Да вообще никаких проблем! Интеграция с любым сборщиком ассетов это дело простое. Нужно только понимать суть процесса.
Это не сложно.
👍4
PID процесса для Vite
Когда рельсовик запускает сервер для разработки, то использует команду rails s
Нам надо сделать так, чтобы одновременно с rails сервером запускался и frontend / vite сервер.
Сделать это довольно просто, но нам нужен маркер, который будет показывать запущен уже фронт или нет.
А то вдруг вы уже запустили vite в ручном режиме в соседнем окне.
В качестве этого маркера можно использовать PID процесса.
PID — это уникальный номер запущенной программы, который можно сохранить в файле.
Если файл есть и в нем есть номер запущенного Vite сервера — то мы не будет 2-ой раз запускать фронтовый сервер.
Если ни файла, ни номера программы нет — то тогда научим rails запускать фронт.
Vite, кажется, сам не умеет сохранять свой PID. А плагин я не искал.
Получение и сохранение PID делается легко и просто несколькими строчками кода, которые вставляются прямо в конфиг Vite.
Теперь у нас есть файл-флаг запущенного фронта. Это поможет с интеграцией.
Продолжение следует.
Когда рельсовик запускает сервер для разработки, то использует команду rails s
Нам надо сделать так, чтобы одновременно с rails сервером запускался и frontend / vite сервер.
Сделать это довольно просто, но нам нужен маркер, который будет показывать запущен уже фронт или нет.
А то вдруг вы уже запустили vite в ручном режиме в соседнем окне.
В качестве этого маркера можно использовать PID процесса.
PID — это уникальный номер запущенной программы, который можно сохранить в файле.
Если файл есть и в нем есть номер запущенного Vite сервера — то мы не будет 2-ой раз запускать фронтовый сервер.
Если ни файла, ни номера программы нет — то тогда научим rails запускать фронт.
Vite, кажется, сам не умеет сохранять свой PID. А плагин я не искал.
Получение и сохранение PID делается легко и просто несколькими строчками кода, которые вставляются прямо в конфиг Vite.
Теперь у нас есть файл-флаг запущенного фронта. Это поможет с интеграцией.
Продолжение следует.
👍5
Про деньги и закрывающиеся двери в ИТ
Я так себе прогнозист. Но есть факты, от которых не скроешься.
Мистер Трамп начал жесткую ревизию ресурсов, а сегодня его компаньон мистер Маск закрыл организацию USAID.
Ну закрыл и закрыл. Ну и что?
Дело в том, что эта организация по всему миру обеспечивала работу большого количества проектов. В разных сферах. Многие связаны с ИТ.
Нет денег - очередные сокращения - повышение конкуренции на международном рынке.
Удар со стороны AI по востребованности начинающих специалистов. Удар по рынку со стороны экономических факторов. Сокращение государственных программ США (а это очень серьезный источник финансов - не все держится на частном капитале).
Мне кажется - двери и окна в ИТ закрываются.
Я не пугаю, просто делюсь своей оценкой ситуации. Впервые за 20 лет я наблюдаю борьбу за место под солнцем.
Развитие, труд и адоптация - мои приоритеты на 2025 год. Легко больше не будет. Так вижу.
Я так себе прогнозист. Но есть факты, от которых не скроешься.
Мистер Трамп начал жесткую ревизию ресурсов, а сегодня его компаньон мистер Маск закрыл организацию USAID.
Ну закрыл и закрыл. Ну и что?
Дело в том, что эта организация по всему миру обеспечивала работу большого количества проектов. В разных сферах. Многие связаны с ИТ.
Нет денег - очередные сокращения - повышение конкуренции на международном рынке.
Удар со стороны AI по востребованности начинающих специалистов. Удар по рынку со стороны экономических факторов. Сокращение государственных программ США (а это очень серьезный источник финансов - не все держится на частном капитале).
Мне кажется - двери и окна в ИТ закрываются.
Я не пугаю, просто делюсь своей оценкой ситуации. Впервые за 20 лет я наблюдаю борьбу за место под солнцем.
Развитие, труд и адоптация - мои приоритеты на 2025 год. Легко больше не будет. Так вижу.
👍3🤯1
Запуск Vite при запуске Ruby сервера
Нативная интеграция Vite + Rails должна обеспечивать автоматический запуск Vite и сборки ассетов при запуске руби сервера.
Традиционно запуск руби сервера делает rails s или rails server или bin/rails server (редко напрямую через puma или unicorn).
При запуске сервера, очевидно, запускается само приложение. Значит, где-то в начальной стадии запуска приложения можно принять решение о запуске vite.
Есть много точек, чтобы встроить туда наши простые функции. Например, это может быть файл config/boot.rb
Нам понадобится очень мало простых функций.
- Запущен ли Vite?
- Запустить Vite!
- Остановить Vite!
А еще простые условия.
Это окружение разработки?
Это команда запуска web сервера? (А то вдруг мы запускаем rake задачу. Зачем нам тогда vite? 🙂)
Запущен ли Vite мы узнаем по PID, который мы сохраняем в файле, при запуске Vite. Смотри предыдущий пост.
Ну в общем-то тут все. Важные детали рассказал.
Если есть вопросы — задавайте.
Нативная интеграция Vite + Rails должна обеспечивать автоматический запуск Vite и сборки ассетов при запуске руби сервера.
Традиционно запуск руби сервера делает rails s или rails server или bin/rails server (редко напрямую через puma или unicorn).
При запуске сервера, очевидно, запускается само приложение. Значит, где-то в начальной стадии запуска приложения можно принять решение о запуске vite.
Есть много точек, чтобы встроить туда наши простые функции. Например, это может быть файл config/boot.rb
Нам понадобится очень мало простых функций.
- Запущен ли Vite?
- Запустить Vite!
- Остановить Vite!
А еще простые условия.
Это окружение разработки?
Это команда запуска web сервера? (А то вдруг мы запускаем rake задачу. Зачем нам тогда vite? 🙂)
Запущен ли Vite мы узнаем по PID, который мы сохраняем в файле, при запуске Vite. Смотри предыдущий пост.
Ну в общем-то тут все. Важные детали рассказал.
Если есть вопросы — задавайте.
👍4