Рубрика «sqlite»

В плане локального менеджера закладок появилась SQLite. Сам выбор выглядит разумно: один пользователь, небольшая база, ничего не нужно разворачивать на сервере. Но по названию базы ещё нельзя понять, что произойдёт при повторном сохранении ссылки и переживут ли изменения перезапуск приложения.

Читать полностью »

Сейчас у меня регулярно занимаются четыре ученика. Для четырёх человек CRM звучит как избыточное решение. Но проблема оказалась не в числе контактов: один диалог жил в Telegram, другой — в WhatsApp, ещё два канала были VK и MAX. Перед уроком я вручную вспоминал, где написать ученику, отправлял напоминание и искал ссылку на встречу.

Я собрал рабочее место на базе Chatwoot и дописал небольшой сервис, который связывает календарь с конкретным диалогом. Ниже — как устроена эта цепочка, почему в событии хранится именно номер диалога, а не номер контакта, и какую гарантию доставки в действительности даёт SQLite.

Читать полностью »

Несколько месяцев назад я начала пробный проект для одной редакции. Хотелось решить довольно бытовую проблему: журналисты тратили слишком много времени не на журналистику, а на обслуживание новостного потока.

Утром нужно открыть несколько источников, найти подходящие темы, проверить, не взял ли новость коллега, сохранить материал, подготовить текст, выбрать рубрику, перенести все в CMS. По отдельности эти действия занимают минуты или секунды. Но когда новостей много, рутина съедает заметную часть рабочего дня.

Читать полностью »

Полгода назад я в одиночку начал делать Nookly — локальное приложение для заметок на Flutter: страницы, блочный редактор, таблицы с канбан‑видом, полнотекстовый поиск. Ключевое требование с самого начала: всё работает офлайн, данные не покидают устройство. В этом посте — не про сам продукт, а про два инженерных решения, которые могут быть полезны: как спроектировать схему БД так, чтобы синхронизация потом не потребовала переписывания половины кода, и как собрать лендинг вообще без шага сборки.

Часть 1: схема БД, готовая к синхронизации, которой ещё нет

Читать полностью »

Есть встроенный в Windows Win+V. Я честно пользовался им года полтора. А потом однажды скопировал кусок кода, полез искать то, что копировал двадцать минут назад, и понял, что искать там нечем. В Win+V нет поиска. Совсем. Список, по которому ты скроллишь глазами. Двадцать пять элементов, картинки вперемешку с текстом, и ты листаешь колёсиком, как ленту, пытаясь вспомнить, как выглядела нужная строчка.

Ещё он не помнит историю между перезагрузками так, как мне хотелось, теряет то, что я закреплял, и живёт своей жизнью где‑то в облаке аккаунта Microsoft, о чём я стараюсь не думать.

Читать полностью »

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

Читать полностью »

Полтора месяца назад мне пришла претензия на 44 тысячи рублей за фото восьмилетней давности на сайте нашего отеля — типичный «фотобанковский» иск с QR‑кодом, печатью и таблицей коэффициентов. Разбирался сам, с помощью Claude, закрыл спор на 20 тысячах вместо 44 без суда и без найма юриста. Написал об этом на VC.ru — сюда, на Хабр, тащить ту же историю смысла нет, тут расскажу, как это в итоге превратилось в бота и что было интересного технически: архитектура, пять реальных багов с продакшена и то, как я срезал расходы на Claude API почти на порядок.

Читать полностью »

Каждый вечер мне нужно ответить на один вопрос: на какие бумаги из примерно тринадцати тысяч имеет смысл потратить время сегодня. Не «какие вырастут» — этого никто не знает, — а на каких стоит нарисовать уровень и поставить заявку.

Читать полностью »

С чего всё началось

Я играю на гитаре. Не то чтобы хорошо, но у костра сходит. И каждый раз одна и та же сцена: кто‑то просит сыграть конкретную песню, я достаю телефон, открываю сайт с аккордами — и следующие полторы минуты наблюдаю, как на одной палке связи грузится баннер, потом второй баннер, потом видеореклама, потом всплывашка «скачайте наше приложение», и где‑то под всем этим — песня. К этому моменту у костра уже поют что‑то другое. Без меня.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js