інструменти

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

Мережа у fly.io

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

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

Коли я починаю проект то завжди намагаюсь застосувати нову технологію. Для @Donate1024Bot я обрав дві таких: хостинг на fly.io та верстку з Tailwind CSS. І якщо остання завдала клопоту, то перша виправдала себе на 100%. Про це і розповім. Вперше я натрапив на fly.io на HackerNews, де обговорювався їх блог-пост A Foolish Consistency: Consul at Fly.io. Я тоді прочитав цей матеріал і подумав...

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

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

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

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

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

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

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

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

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

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

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

Больше двух лет прошло с тех пор, как я переехал на линукс. Для тех кто пропустил, начало: «Как я съезжал с macOS после 5 лет работы за макбуком» и промежуточная ретроспектива: «Линукс на десктопе год спустя». До конца этого лета в качестве мобильного средства разработки я пользовался MacBook Pro 2015. На моих задачах он уже давно тормозил и совершенно меня не устраивал, поэтому я ограничивался там...

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

Я люблю простые и понятные решения. Для хостинга всех своих проектов я использую Heroku. Он достаточно дешев, лёгок в настройке и подымается буквально за минуту. Советую всем. Сейчас у меня там крутится несколько проектов, два из которых работают постоянно — это adopt.com.ua где вы можете найти себе котика или пёсика, и blogigram с помощью которого был опубликован этот пост. Эти проекты кушают 46$ в месяц,...

Неосиляторы

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

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

Не так давно я писал об нарушении обратной совместимости как главном грехе разработчика. У меня есть несколько Ruby приложений которые уже давно живут в продакшене. Версия ruby, которую я использовал, 2.5, перестала поддерживаться, и всех попросили переехать на 2.7. Однако сделать это было не так просто. Бампнув версию и попытавшись запустить я получил кучу ошибок. Я отложил это дело до лучших дней и недавно...

Как оверсинкинг и перфекционизм мешают мне заканчивать проекты

Перфекционизм—ближайший друг прокрастинации. Я часто страдаю желанием сделать все "как надо", но неожиданные препяствия, возникающие на этапе делания как надо а не как попало часто тормозят работу, убивают мотивацию и приводят к затягиванию сроков и перерасходу бюджета. Рассмотрим мой недавний микропроект с ClickHouse. Задача была довольно простая—взять данные из одного места и положить в другое. Всё. Что может быть проще? После завершения PoC клиент...

ClickHouse. Нюансы

Вообще это очень трендовая база. На хайлоад++ и других конференциях вы можете посмотреть множество докладов посвященных ClickHouse. На хабре куча статей. Материалов очень много. Вся эта движуха прошла мимо меня потому что я предпочитаю использовать проверенные инструменты до последнего. Ну и хайлоад++ не посещаю. После PoC я прикинул, что нужно сделать для синхронизации основного хранилища в ClickHouse, и приступил к доработке продакшн-решения. Неожиданность подстерегала меня в...

Когда олимпиадники могут. ClickHouse

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

Как я деплоймент скрипты на JS писал

В одном из стартапов где я работал, я полностью занимался инфраструктурой. Вначале вся наша микросервисная история деплоилась на Elastic Beanstalk, потом решили переехать на ECS. Для CI/CD зарядили Jenkins и кучу баш-скриптов, осталось научиться деплоить это в прод. Я взялся за эту задачу и зачем-то решил что все деплоймент скрипты у меня будут на JS. Ну как зачем. Я думал что сделаю полноценную ChatOps систему...

Веб-скрапинг. Инструменты

Для скрапинга можно использовать всё что угодно. Вам нужно лишь сделать запрос, получить содержимое и дальше его разобрать. Теоретически, скрапинг можно делать на bash + какой-то программой для работы с xml. Библиотеки для работы с сетью и парсинга html есть во всех языках. Можете брать любой. Однако скрапинг помимо собственно запроса и обработки включает еще кучу всяких вещей. Вам нужно ходить по ссылкам и желательно делать это...