Все потоки
Поиск
Написать публикацию
Обновить
342.1

Веб-разработка *

Делаем веб лучше

Сначала показывать
Порог рейтинга
Уровень сложности

Секреты работы онлайн-редакторов: что происходит при совместном редактировании? Yjs, CRDT и другие магические слова

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров1.4K

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

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

Меня зовут Никита Лыкосов, я занимаюсь фронтенд-разработкой в Doubletapp и предлагаю шаг за шагом разобраться, как устроена эта инженерная магия. Спойлер: это гораздо проще, чем кажется.

Читайте в статье:

G-Counter — самый простой CRDT
Какие правила CRDT выполняются на примере G-Counter и зачем это нужно?
Массивы
Yjs: как устроено совместное редактирование на практике

Читать далее

Что за зверь n8n. Первые шаги автоматизации

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров21K

Разбираемся, что собой представляет n8n — мощный open-source инструмент для no-code автоматизации, и создаём первый рабочий процесс: Telegram-бота, который находит заказы в Google Таблицах.

Читать далее

CoffeeCup, HotDog и другие: странные и прекрасные HTML-редакторы прошлого

Время на прочтение7 мин
Количество просмотров2.3K

Недавно на Хабре видел публикацию об интернете нулевых и поймал себя на мысли, что порой по нему скучаю. И дело даже не в том, что мне не хватает дизайна или вырвиглазных Flash-баннеров. Каждый лишний килобайт веб-страницы мог привести к тому, что человек просто оттуда уйдет, не дождавшись загрузки. Такие технические ограничения вынуждали веб-мастеров оптимизировать размер изображений и применять массу других приемов, которые позволяли снизить объем передаваемых данных.

Когда-то я тоже занимался подобным, а свой первый веб-сайт и вовсе создавал в обычном блокноте. И лишь спустя несколько лет я познакомился с приложениями, которые сильно упростили жизнь в то время. О них и пойдет речь. Наливайте себе чайку — и добро пожаловать в небольшое путешествие в прошлое.

Читать далее

Резервные копии PostgreSQL: сравнение скорости pg_dump в разных форматах и с разными уровнями сжатия

Уровень сложностиСредний
Время на прочтение33 мин
Количество просмотров5.8K

Я сделал резервную копию через pg_dump и восстановился из неё 22 раза. Резервные копии делал в 4 разных форматах с использованием от 1 до 7 уровней сжатия под каждый формат. Записал результаты и сделал сравнение разных видов, чтобы понимать, какие способы более эффективны для моего сценария использования.

Детали и замеры — ниже.

Читать далее

Microsoft удивляет поклонников MS-DOS ремейком старого текстового редактора, который работает в Linux

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров10K

Microsoft удивляет поклонников MS-DOS ремейком старого текстового редактора, который работает в Linux

В прошлом месяце Microsoft выпустила современную версию своего классического редактора MS-DOS Editor, вернув часть истории компьютерной индустрии, которая впервые появилась в MS-DOS 5.0 еще в 1991 году. Новый инструмент с открытым исходным кодом, созданный на Rust и просто названный «Edit», работает на Windows, macOS и — что казалось бы невозможным три десятилетия назад — Linux.

Читать далее

Контроль расходов на SMS через API: как сделать свою систему финансового мониторинга за вечер

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров710

Привет, Хабр. На связи Катя Саяпина, менеджер продуктов МТС Exolve. В этой статье разберём, как предотвратить приостановку бизнеса — вовремя пополнять баланс на отправку SMS. С минимальными усилиями соберём свою систему мониторинга расходов на сообщения. Будем фиксировать фактические траты, отслеживать аномалии, строить линейный прогноз и слать себе контрольные SMS.

В статье собрано решение на PHP с Composer, cron и MySQL. Всё максимально просто, чтобы за один вечер развернуть систему на любом сервере без внешних зависимостей.

Читать далее

Agile! — паразит поедающий до костей

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров5.9K

И как же из паразита сделать симбиота? Agile — слово, которое стартапы любят произносить на каждом питче.

Читать далее

Почему мониторинг — это ещё не всё. История появления статус пейджей в Statuser

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.6K

Привет! Меня зовут Михаил Шпаков, я разрабатываю Statuser — платформу для мониторинга доступности сайтов, приложений и серверов. Делаю всё один, по вечерам, без команды.

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

Объясню, как всё устроено внутри, с какими техническими решениями пришлось столкнуться и почему статус-пейджи — это логичное продолжение любого хорошего мониторинга.

Читать далее

Автоматизируем работу с помощью Битрикс24

Время на прочтение6 мин
Количество просмотров3.7K

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

Читать далее

Наташа, мы интернет уронили: как адаптироваться и не терять клиентов в шатдаун

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2K

Жители практически всех регионов России сталкиваются с перебоями в работе интернета. Пользователи фиксируют отключения мобильной связи и VPN-сервисов, падение скорости загрузки сайтов и нестабильность мессенджеров — особенно Telegram и WhatsApp. И до сих пор остаются неизвестными реальные сроки восстановления стабильной работы интернета. 

Привычные действия: вызов такси, заказ продуктов, работа в удаленном формате теперь ежедневно вызывают трудности у миллионов россиян. Из-за «упавшего» интернета несут потери и предприниматели: срываются поставки товаров, не работают системы онлайн-платежей, владельцы онлайн-магазинов теряют клиентов.

Григорий Тумаков, СТО Morizo, рассказывает, как можно помочь интернету выжить. Сейчас нет 100% гарантий эффективности, но попробовать стоит.  

Читать далее

Мультирегиональное SEO: как сделать сайт видимым по всей стране (и не только)

Время на прочтение8 мин
Количество просмотров4.3K

....................................................................................................................

Привет, Хабр! Я — Марина, специалист по продвижению сайтов в Selectel. Под катом рассказываю, как работает региональное продвижение, а также на что обратить внимание, чтобы поисковики показывали ваш сайт в разных регионах или странах.

Разобраться

Steroids UI Kit — разделение бизнес-логики и отображения React-компонентов

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.1K

Это вторая статья из цикла про наш фреймворк Steroids, в которой мы расскажем об архитектурном подходе к построению UI-компонентов. Если вы ещё не читали первую статью — начните с неё. В ней мы объясняем, что такое Steroids и какие задачи он решает.

Читать далее

Синдром бессмысленного спринта

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров9.2K

Когда задачи есть, а движения — нет

Команда работает.
Задачи в трекере стоят.
Стендапы идут, код пишется, обсуждения кипят.

А результата всё нет.
Нет чувства прогресса, нет ощущения, что продукт становится ближе к релизу.
Итерации проходят одна за другой — а продукт будто топчется на месте.

Читать далее

Ближайшие события

Книга: «Грокаем безопасность веб-приложений»

Время на прочтение2 мин
Количество просмотров7.2K

Привет, Хаброжители! Безопасность приложений — приоритетная задача для веб-разработчиков. Вы работаете над интерфейсом фронтенд-фреймворка? Разрабатываете серверную часть? В любом случае вам придется разбираться с угрозами и уязвимостями и понимать, как закрыть, дырки через которые хотят пролезть черные хакеры.

Здесь вы найдете все, что нужно практикующему разработчику для защиты приложений как в браузере, так и на сервере. Проверенные на практике методы применимы к любому стеку и проиллюстрированы конкретными примерами из обширного опыта автора. Вы освоите обязательные принципы безопасности и даже узнаете о методах и инструментах, которые используют злоумышленники для взлома систем.

Читать далее

Что нового на Kapi.bar за год: фичи, правки и немного философии

Время на прочтение7 мин
Количество просмотров2K

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

Kapi.bar появился как независимая платформа. Без бюджета, без офисов, без KPI. Мы просто хотели сделать альтернативу известному ресурсу, которой будет не просто приятно пользоваться, а где ты можешь напрямую влиять на то, какой контент становится популярным, а какой нет. Вы наверное помните, что последней каплей, переполнившей чашу нашего терпения стало полное уничтожение честной рейтинговой системы на том ресурсе, где мы все ранее зависали и за этот год оказалось, что нас таких — не один и не два, нас целое сообщество. И это невероятно вдохновляет!

За этот год в Kapi.bar многое поменялось. Мы добавили десятки фич, вычистили не один баг (правда ранее сами‑же их и допустили, но кто не ошибается), наконец начали разбираться с SEO, провели тихую, но упорную работу над повышением стабильности системы. И, что немаловажно — начали глубоко размышлять над философией Капибары и формулировать, кто мы вообще такие, для чего всё это и почему эта история — не только про код.

Эта статья — не рекламный релиз и не набор bullet‑поинтов из changelog. Мы просто хотим рассказать, что произошло за год. Что стало лучше, что сломалось и было починено. И да, немного про поисковики тоже будет — с ними, как оказалось, тоже можно подружиться.

Читать далее

Как я улучшил свой промпт для генерации кода в OpenAI 4.1 — простой трюк, который РАБОТАЕТ

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров21K

Несмотря на обилие моделей (а я время от времени использую четыре топовые), всё-таки на стыке моих технологий GPT-4.1 даёт лучший результат по сравнению с другими.

 ... я каждый раз сохраняю эти компоненты в файл Google Документы. И каждый раз при генерации новой функции или целого компонента я "вскармливаю" текст из этого документа именно в формате текста. В общем, эта штука работает хорошо.

Пожалуйста, объясни как ты понял мою проблему, почему я считаю что это важно, как ты собираешься это решать и что будет правильным решением.

Читать далее

Команда боится принимать решения

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров2.7K

Или как культура страха убивает продукт

Многие компании мечтают о сильной и самоорганизующейся команде.
О людях, которые берут на себя ответственность, двигают проект вперёд и решают проблемы без лишнего шума...

Читать далее

Как @empty в Angular упрощает работу с пустыми коллекциями

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.5K

Пустые состояния (Empty States) — это незаметные, но критически важные элементы интерфейса. Что видит пользователь, когда список задач пуст, поиск не дал результатов или дашборд ещё не содержит данных? Пустой экран? Бесполезный спиннер? Или продуманное сообщение, которое помогает сориентироваться?

С появлением декларативного управления потоками (declarative control flow) в Angular обработка пустых состояний стала проще и элегантнее. Одна из ключевых возможностей — директива @empty, которая делает код чище, а интерфейс — дружелюбнее.

Давайте разберёмся, как это работает.

Читать далее

Машина Слонимского для умножения (1844 г.): новые результаты и веб-модель

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров1.7K

На Хабре была статья https://habr.com/ru/articles/232255/, в которой говорилось о приборе для умножения – «машине Слонимского».

Читать далее

OWASP Top 10 API: Полный разбор всех угроз и как от них защититься

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров7.7K

API — это «кровеносная система» современного веба, но без должной защиты они становятся лёгкой добычей для хакеров. OWASP выделил Топ-10 уязвимостей API, которые чаще всего эксплуатируют злоумышленники. Разберём ключевые риски и методы защиты.

Читать далее

Вклад авторов