інструменти

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

Go та дзен одного бінарника

Go звичайно процідурна шляпа, але таки має одну суттєву перевагу якої бракує решті — проєкт компілиться в один бінарник. Коли звик що будь-який додаток тягне за собою якщо не сорці, то купу якихось бібліотек, файлів і т.д., то один-єдиний бінарний виглядає як артефакт з майбутнього (або минулого, як подивитися). Здоровенний проєкт поміщається в один файл. Тераформ, номад з консулом, пубернетис, you name it. Звісно якщо проєкт...

Pro фреймворки

Часто та ж категорія програмістів що сваряться на ORM, так само сваряться і на фреймворки, мовляв, повільно працюють, обмежують гнучкість і взагалі все можна зробити самому. Я люблю фреймворки. Фреймворки знімають з мене когнітивне навантаження щодо організації коду та дають найкоротший шлях до реалізації задачі. Rails має купу конвенцій, завдяки яким відразу відпадає умовних 95% питань щодо того що куди класти й де писати. Spring має...

Pro ORM

Серед багатьох досвічених розробників існує думка що ORM це щось погане. Його звинувачують в низькому перформенсі, непотрібних абстракціях та вихованню поганого смаку. Щоразу коли читаю ті історії то ніяк не можу второпати що авторам не подобається, бо я з ORMами ніяких проблем не маю. На першій роботі у бородаті роки в нас був самописний ORM, але він дуже повільно працював (проте мав інші переваги). Ми про...

Порішав з WiFi😎

Два тижні тому мій мікротік почав вимахуватися і я звернувся до аудиторії за порадою. Декілька людей відписали що користуються Amplifi, і, враховуючи що я був на нього прицілений ще до написання матеріалу, то вирішив що треба брати. На OLX знайшовся варіант HD за 8500₴. Це кубик + дві антени. Просто кубик новий коштує ~6000₴, а HD версія аж ~18000₴. Я намагаюся купувати вживану техніку та товари, якщо...

Проблеми з WiFi😤 — потрібна допомога!

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

Реал-тайм сайти на Ruby on Rails без жодного рядка JS

Інтегруємось з моноЙдемо на https://api.monobank.ua/, скануємо QR код апкою, отримуємо ключ. Далі встановлюємо вебхук, щоб отримувати транзакції. Вебхук веде на ендпоїнт який дістає параметри транзакції та зберігає її: def respond(data) t = data.require(:statementItem).permit(:description, :amount, :comment, :balance, :time) t[:account] = data[:account] t[:transaction_id] = data[:statementItem][:id] MonoTransaction.create(t) endПоказуємо транзакціїРобимо сторінку, передаємо параметром account номер картки/банки,...

Як використовувати ChatGPT в роботі

В інтернеті вже повно відео та порад стосовно ChatGPT: написання шаблонних листів, тікетів, пруфрідинг, генерація тікетів і так далі. Також багато людей намагаються якось «обманути» машину, задають якісь загадки в стилі сфінкса, натравлюють один чатгпт на інший чатгпт або на бінг, «провокують» АІ на образи чи роблять ще якесь неподобство. Це все мене не цікавить абсолютно, бо з того не маю ніякої користі — мені байдуже що...

Інструкція: як зареєструватися в ChatGPT

update: OpenAI розблокував ChatGPT для України. ChatGPT абсолютно точно змінить нашу роботу, тому вважаю що недоречно залишатися консерватором-лудитом, натомість потрібно негайно стрибати до хайп-поїзду та тестувати нову технологію. Маю зізнатися що нюанси з реєстрацією створювали тертя та відштовхували мене, але врешті цікавість переважила, тому ось вам інструкція: Підключаємо VPN, наприклад безплатний тариф ProtonVPN. Спершу я розгорнув Outline на DigitalOcean, але він не спрацював — Clouflare блокував всі...

Managed services

Твердо переконаний, що все, що не стосується безпосередньо виконання бізнес задачі, повинно бути автоматизовано чи віддано на аутсорс. Маю на увазі інфраструктуру: обчислювальні потужності, мережі, бази даних, і таке інше. Як колись складність низькорівневих мов програмування призвела до появи високорівневих, а потім і рантаймів з автоматичним управлінням пам'яттю, так і зараз висока складність інфраструктури породжує цілий спектр менеджед сервісів. Наприклад, ви робите якийсь продукт. Чи дійсно...

Власні хмари: Kubernetes

Цей пост мав бути опублікованим 24-го лютого, але так і провисів у чернетках аж до сьогодні. Подальшу роботу я не проводив, бо перевіз все на fly.io. На вихідних я вирішив поекспериментувати зі своїми проєктами та зробити прототип маленької хмарки на кубері. Раніше я прикидував ціни на менеджед кубери й вибрав Scaleway. Мій рахунок за Heroku зараз складає $53.02. Потрібно було підняти ще один сервіс,...

Огляд спліт-клавіатури Lotus58

Я давно цікавився питаннями покращення ергономіки робочого місця, але ніяк не мав нагоди купити таку клавіатуру. Все облизувався на Moonlander, але він дорогий і треба було везти з закордону. Того року я купував собі дескмати в FunKeys та зайшов в їх чат, де сиділи клавіатурні ентузіасти. Попитав людей про спліти, і знайшовся хлопець з Чернігова, що мав готову клавіатуру на продаж. Це був Lotus58 на світчах...

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

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

Poor man's REPL

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

cron на fly.io

В будь-якому проекті є задача періодично запускати процеси. Наприклад, в @Donate1024Bot це щоденна ранкова розсилка всім підписникам нового збору, щоденна розсилка звітів, оноволення статистики всіх монобанок щопівгодини та інше. В Heroku для цього є супер-зручна штука що називається Scheduler. В інтерфейсі наклікуєш коли запускати задачу, команду яку потрібно виконати і все. Далі Heroku сам в потрібний час підніме інстанс та запустить джобу. Я постійно користувався цією...

fly.io vs Heroku: developer experience

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

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

Два місяці тому я перевіз всі свої проекти на платформу fly.io. Ділюся з вами досвідом використання. ЦінаОтож, найприємніше що я отримав, це швидші ресурси за нижчу ціну. За вересень я заплатив $17.09, за жовтень $17.02. Всього в мене крутиться 5 проектів, спільний для всіх редіс та спільний для всіх постгрес. За той самий сетап на хероку я платив би десь 80$. МережаВ мене...