У браузерного сканера штрихкодов есть неудобная развилка. Чтобы показать, что за товар человек держит в руках, надо сходить в товарный API — и отдать туда номер, IP и время. По одному запросу это ничего; по потоку запросов это фактический чек, собранный чужими руками.Второй путь: скачать базу один раз, порезать на файлы по префиксу номера и раздавать статикой. Браузер берёт нужный файл и ищет сам.Разбираем второй путь: как устроен, сколько приватности при этом всё равно утекает — а утекает — и …
Исходный код, разобранный в статье, опубликован по ссылкеВ интернете полно людей, которые рекомендуют купить или продать актив, показывают win rate и красивые графики доходности. Проблема в том, что их статистика принадлежит им самим: неудачный сигнал можно удалить, удачный оставить, а результат посчитать от удобной точки входа. По итоговой ленте невозможно отличить талант от хорошо отредактированной историиТорговые рекомендацииНепонятны две вещи.1. Удаляет ли автор свои рекомендации задним чис…
Разработчик интерфейсов уверен, что выбранный им фреймворк автоматически решает за него вопросы структуры и организации кода. Он искренне верит, что если взять React, Angular, Vue, да тысячи их, то получает в руки серебряную пулю, которая закроет все проблемы разработки. Достаточно следовать документации фреймворка, и с проектом все будет хорошо в долгосрочной перспективе. И я сам долгое время рассуждал точно так же, я воспринимал только Angular, потому что там есть хоть какой-то структурный по…
Всем добрый день. Как и в предыдущие месяцы, по итогам июля мы решили рассказать про то, как изменилась GigaIDE за прошедший месяц. Ниже — краткий обзор обновлений Pro-функциональности GigaIDE, который можно найти на нашем маркетплейсе.Как стать пользователем GigaIDE ProСейчас GigaIDE Pro доступна только для корпоративных потребителей. Чтобы получить дополнительную информацию, нужно оставить заявку на сайте.GigaIDE Pro станет доступна всем пользователям в этом году позже. Следите за новостями!Д…
Слово «блокчейн» испорчено маркетингом. За десять лет вокруг него наросло столько «революций», «иксов» и «цифрового золота», что нормальный разработчик при его звуке закрывает вкладку — и я его понимаю.Проблема в том, что за хайпом прячется инженерно интересная конструкция. Если убрать из блокчейна всё маркетинговое и посмотреть на него глазами человека, который каждый день работает с Postgres, Kafka и git, останется знакомая до боли вещь: реплицированный append‑only лог, в котором состояние — …
У EAN-13 есть контрольная цифра. Тринадцатая цифра пересчитывается по остальным двенадцати, и если номер прочитан с ошибкой — проверка не сойдётся. Так написано в любом объяснении стандарта, и это правда. Проблема в том, что из этой правды обычно делают неверный вывод: «раз контрольная сошлась, номер прочитан верно».Не сошлась. Точнее — сошлась, но это ничего не доказывает.Как это выглядит на практикеМы делаем бесплатный сканер кодов, который работает прямо в браузере: кадр с камеры разбирается…
Собрать лендинг с «дорогими» эффектами теперь можно вечером, без команды разработкиTL;DRЗа последний год я собрал вайбкодингом не один десяток лендингов — для программ МФТИ, для своих проектов и на заказ. Разберу четыре самых показательных: Школу Техпреда, конференцию «Точка сборки», курс «ИИ Продакт-менеджмент» (aimipt.ru) и один свой, личный — на нём эффекты раскачаны сильнее всего. Вайбкодинг здесь — это когда код пишет агент под мою постановку задачи, а я ставлю рамки, правлю и проверяю рез…
Привет, меня зовут Сергей Цибульченко, я fullstack‑разработчик. На хабре уже есть несколько статей про PWA с замахом на исчерпывающее покрытие темы (Разрабатываем PWA. Полная инструкция, PWA вместо приложения: плюсы, минусы и прочие в топе поисковой выдачи Google), но они не раскрывают всех подводных камней данной технологии, я с этим лично столкнулся когда делал пет‑проект по этим статьям. Я не буду рассматривать разработку PWA от начала и до конца, я лишь затрону проблемы, которые возникли у …
Поговорим про микро-оптимизацию. Про, казалось бы, самую безобидную вещь: обычный {}.[object Object] выглядит почти бесплатной абстракцией. Создал объект, напихал полей в любом порядке, удалил ненужное, передал дальше и забыл. Но, внезапно, одинаковые для тебя объекты могут оказаться разными для V8, порядок присваиваний влияет на машинный код, а “безобидный” delete оставляет после себя совсем не пустое место.Для 99% систем это не имеет значения. А вот если у тебя hot path, через который проходя…