інструменти

Технології та речі якими я користуюсь.

Спліт-клавіатури

Спліт клавіатура це клавіатура, що складається з двох половин, під кожну руку. Робиться це для того, щоб руки знаходилися в природному положенні, і для друку не потрібно було згинати кисті. Також між половинками можна поставити мишу, трекпад або трекбол, щоб зменшити кількість рухів. Такі клавіатури можуть мати різне розташування клавіш. Звичайні, «стандартні» клавіатури це «горизонтальний стаггер» — ряди зміщені горизонтально. Така швидш за все стоїть у вас...

Poor man's REPL

Коли я пишу щось на Python або Ruby то активно використовую їх репли: для Python це або стандартний інтерпретатор або Jupyter, для Ruby це Rails Console. Днями треба було потестувати деякі штуки зі спарком всередині кубернетіс кластера. Програмно створювати сесії й усе таке. spark-shell не підійшов через деякі причини, запускати спарк драйвер на локалхості теж не підходило через те що воркери не могли б достукатися до...

cron на fly.io

В будь-якому проекті є задача періодично запускати процеси. Наприклад, в @Donate1024Bot [https://t.me/Donate1024Bot] це щоденна ранкова розсилка всім підписникам нового збору, щоденна розсилка звітів, оноволення статистики всіх монобанок щопівгодини та інше. В Heroku для цього є супер-зручна штука що називається Scheduler [https://devcenter.heroku.com/articles/scheduler]. В інтерфейсі наклікуєш коли запускати задачу, команду яку потрібно виконати і все. Далі Heroku сам в потрібний...

fly.io vs Heroku: developer experience

Головна особливість Heroku [https://www.heroku.com/] завжди полягала в дуже потужній абстракції інфраструктури. Програмістам не потрібно було думати ні про сервера та їх налаштування, ні про бази даних, ні про сторедж, ні про мережу. Heroku все робить сам коли ти пушиш в нього проект. git push heroku master і все. Хочеш постгрес? Один клік в UI. Хочеш redis? Так само один клік. Прив'язати...

Два місяці з fly.io

Два місяці тому я перевіз всі свої проекти на платформу fly.io [https://www.rozhkov.me/friendship-ended-with-heroku-now-fly-io-is-my-best-friend/] . Ділюся з вами досвідом використання. Ціна Отож, найприємніше що я отримав, це швидші ресурси за нижчу ціну. За вересень я заплатив $17.09, за жовтень $17.02. Всього в мене крутиться 5 проектів, спільний для всіх редіс та спільний для всіх постгрес. За той самий сетап на хероку я...

Мережа у fly.io

Всі ваші сервери знаходяться всередині приватної IPv6 мережі. Всі регіони зв'язані у одну мережу, а гнучкий DNS дозволяє вам резолвити імена типу top<number>.nearest.of.<appname>.internal, який автоматично підбере вам найближчий інстанс. Втім мені воно не потрібно, в мене всі апки живуть у Франкфурті. Крім того доступно ще багато регіонів, навідміну від Heroku, у якого їх всього два....

Friendship ended with Heroku, now fly.io is my best friend.

Коли я починаю проект то завжди намагаюсь застосувати нову технологію. Для @Donate1024Bot [https://t.me/Donate1024Bot] я обрав дві таких: хостинг на fly.io [https://fly.io/] та верстку з Tailwind CSS [https://tailwindcss.com/]. І якщо остання завдала клопоту, то перша виправдала себе на 100%. Про це і розповім. Вперше я натрапив на fly.io на HackerNews [https://news.ycombinator.com/], де обговорювався їх блог-пост...

Чи добре бути поліглотом?

Серед "справжніх" інженерів популярна думка що програміст має вирішувати задачі, а вже яким чином—то справа десята. Наприклад в FAANG на співбесіді ти можеш писати код на будь-якій тобі зручній мові, а на проекті працювати з тим що вже там є, і це не обов'язково буде улюблений Python, на якому ти вирішувала літкод задачі. Мовна спеціалізація нехарактерна для великих західних контор. Це...

Біґдата у терміналі

Ще з самого початку існування нашої пиріжок спільноти, мені було цікаво зробити статистику повідомлень. Типу хто скільки за який період написав. Функція не несе ніякого змісту, але ж цікаво дізнатися, хто найбільше зависає? Коли робив бота для встановлення кастомних статусів, то вирішив заодно додати туди простеньку статистику. Після підключення у чат один з учасників поцікавився, з якого періоду вона рахується? Чи можна отримати результати за весь...

Личные облака: Nomad

Чтобы разгрузиться от тревожных новостей, на прошлых и этих выходных я плотно засел за реализацию личного облака для проектов. Суть такова: я хочу удобный и понятный способ деплоить приложения, не теряя простоты Heroku но получив расширенную гибкость, лучше производительность и снизив расходы. На практике это означает что мне нужна инфраструктура с менеджед базой данных, https, масштабированием, приватным докер реестром и не за дорого. Сейчас все мои...

Личные облака

Уже много лет меня беспокоит проблема понятной и удобной инфраструктуры. В каждом проекте, где я работал, так или иначе приходилось решать эту задачу, каждый раз по-разному и каждый раз недостаточно хорошо. Что я понимаю под личным облаком и удобной инфраструктурой? * приватная сеть с балансировщиком, VPNом внутрь, фаерволами * легко масштабируемые вычислительные ресурсы * managed базы данных с автобекапами, автообновлениями, горизонтальной и вертикальной масштабируемостью * мониторинг...

Докер для разработки

Непопулярное мнение—не использую докер в разработке. Исключения—когда нужно сделать хитрый образ и протестировать сборку локально намного быстрее чем мучать заведомо медленный CI/CD. А так то случаи когда мне пригождался докер, можно пересчитать по пальцам руки. Пару раз делал фичу которая требовала поднять кухню из прометеуса-графаны и на этом всё. Девелоперские окружения, например python, java, node или руби ставлю локально с помощью pyenv [https:...

Линукс на лептопе. Чем я заменил макбук

Больше двух лет прошло с тех пор, как я переехал на линукс. Для тех кто пропустил, начало: «Как я съезжал с macOS после 5 лет работы за макбуком» [https://www.rozhkov.me/moving-from-macos-to-linux-after-5-years/] и промежуточная ретроспектива: «Линукс на десктопе год спустя» [https://www.rozhkov.me/linux-on-desktop-year-later/]. До конца этого лета в качестве мобильного средства разработки я пользовался MacBook Pro 2015. На моих задачах он уже давно...

Экономия на спичках: считаем стоимость хостинга пет-проектов на kubernetes

Я люблю простые и понятные решения. Для хостинга всех своих проектов я использую Heroku [https://www.heroku.com/home]. Он достаточно дешев, лёгок в настройке и подымается буквально за минуту. Советую всем. Сейчас у меня там крутится несколько проектов, два из которых работают постоянно — это adopt.com.ua [https://www.rozhkov.me/modern-web-applications-architecture/] где вы можете найти себе котика или пёсика, и blogigram [https://www.youtube....

Неосиляторы

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

Боже, джаву храни!

Не так давно я писал об нарушении обратной совместимости [https://www.rozhkov.me/developers-sins-backward-incompatibility/] как главном грехе разработчика. У меня есть несколько Ruby приложений которые уже давно живут в продакшене. Версия ruby, которую я использовал, 2.5, перестала поддерживаться, и всех попросили переехать на 2.7. Однако сделать это было не так просто. Бампнув версию и попытавшись запустить я получил кучу ошибок. Я отложил это дело...