Обновить
512K+

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

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

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

Браузерный переводчик нашёл «Глубинное государство» в доках веб-фреймворка. Вспомни своё

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

Сколько раз вы жали «Перевести страницу» на технической документации, не замечая, что читаете уже совсем другой текст? Я заметил — и собрал доказательства.

Читать далее

Новости

Симулятор рисков для крипты: написал инструмент, который считает за меня размер позиции и стресс-тестирует портфель

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

Большинство трейдеров управляют рисками интуитивно. «Войду на 20% депозита, стоп поставлю пониже» — и пошёл. Исследование 500+ активных криптотрейдеров показало: 86% никогда не рассчитывали VaR и Expected Shortfall, 91% не проводили стресс-тестирование портфеля, 95% не использовали симуляции Монте-Карло. Результат предсказуем — средняя просадка у таких трейдеров составляет 42% против 18% у тех, кто применяет формализованные системы.

В этой статье я расскажу, как устроен Hummingbot AI Risk Simulator — браузерный инструмент, который объединяет восемь профессиональных модулей риск-менеджмента в одном HTML-файле без необходимости установки каких-либо зависимостей.

Читать далее

Бэкап сайта на шаред-хостинге без cron CLI: bash + lftp + внешний триггер

Время на прочтение5 мин
Охват и читатели9.8K

Скриптов «забэкапь мне сайт» в интернете тысячи. Большинство падает на shared-хостинге, потому что там либо нет crontab -e, либо нет rsync, либо mysqldump лежит в нестандартном месте, либо у вас нет root, чтобы починить права на /tmp. А ещё — почти все игнорируют ротацию, и через два месяца ваш FTP забит 300 архивами по 200 МБ каждый.

В этой статье — рабочая схема для типичного клиентского сайта на Beget/Timeweb/Rusonyx-подобном хостинге, без панельных «бэкап-сервисов» за деньги, с дампом базы, ротацией и без хранения паролей в git.

Читать далее

Хватит дублировать валидацию в Django: как я подружил Pydantic с ORM и перестал страдать

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6.8K

Представь: ты пишешь научный сервис. Есть модель исследователя, у которой h_index не может быть отрицательным. Ты, как добросовестный разработчик, описываешь это правило в Pydantic-схеме красиво, строго, типизированно. А потом начинается ад: те же самые «не может быть отрицательным» ты вынужден повторять в DRF-сериализаторе, в Django-форме, а если ещё и админку кастомизируешь то и там. Три, пять, десять мест, где разбросана одна и та же бизнес-логика. Знакомо? У меня эта боль копилась годами, пока я не сказал «хватит» и не написал django-nova  фреймворк, который делает Pydantic единственным источником правды для всей экосистемы Django.

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

Читать далее

Асинхронный django: новые начинания

Время на прочтение4 мин
Охват и читатели5.4K

Здравствуйте, дорогие читатели! Сегодня - ещё одна статья из рубрики джангологии.

Раньше я уже писал о своих идеях (1 и 2) о том, как сделать django асинхронным. Они основывались, вслед за sqlalchemy, на использовании гринлетов. Несмотря на то, что proof-of-concept был успешно получен, а трудностей - встречено меньше, чем ожидалось, я всё-таки отказался от этого подхода: во-первых, он уже применяется в sqlalchemy. Во-вторых, это ведёт к усложнению, и растёт так называемая test matrix - потому что поддерживается как синхронный случай, так и асинхронный. А simple, как мы знаем, is better than complex.

Так вот, я решил возобновить эти свои попытки, изменив подход на более радикальный. А именно, необратимо переписать django на async-only, сломав совместимость полностью. Для этого потребуется заменить в половине функций def на async def и добавив await при их вызове. Я уверен, что такой подход лучше.

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

Читать далее

Встраиваем проверку возраста без ЕБС в Telegram, MAX и любой другой мессенджер

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели8K

Привет, Хабр! Говоря о проверке возраста для доступа к онлайн-платформам, нельзя обойти стороной один из наиболее очевидных кейсов: мессенджеры. Они давно вышли за рамки простого обмена сообщениями – и для многих новых функций есть конкретные возрастные ограничения. В этой статье мы поговорим о том, как за пару минут интегрировать распознавание паспорта для удобной возрастной идентификации в мини-приложение мессенджера – без биометрии, ЕБС и раскрытия персональных данных. С кодом и видео. В общем, заглядывайте под кат!

Читать далее

Kilua: просим Kotlin сделать вид, что он React

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

Посмотрим на Kilua — новый Kotlin-фреймворк для web-frontend. Честно о том: где радует, где мешает, и почему один вопрос всё равно остается открытым

Читать далее

Минус 500 MB: оптимизируем Docker-образ Django-приложения

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели9K

Когда Docker-образ backend-приложения начинает весить 1,5 GB, это уже хороший повод хотя бы посмотреть, что вообще лежит внутри. Пока все работает, мало кто задумывается, сколько мусора, dev-зависимостей и ненужных файлов уезжает в production вместе с приложением. Но на самом деле от «лишнего веса» нужно избавляться, потому что каждый лишний мегабайт — это более долгие сборки и дополнительные сложности.  

Читать далее

Я попросила Claude Fable 5 сделать игру одним промптом. Получился симулятор админа ИИ-канала

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели8.6K

9 июня Anthropic выпустила Claude Fable 5 - первую публичную модель класса Mythos, на ступень выше привычного Opus. Релиз громкий: 80,3% на SWE-bench Pro, миграция кодбазы Stripe за день, "самая мощная публичная модель в истории компании". Но бенчмарки - это чужой опыт. 

Мне было интереснее проверить свое: может ли модель не просто написать кусок кода, а собрать маленький продукт целиком - с идеей, механикой, балансом, интерфейсом и концовками.

Поэтому я не стала просить змейку, To-Do планер или лендинг. Я попросила одним промптом собрать браузерную игру - симулятор админа Telegram-канала про ИИ. Получился Нейровестник. Поиграть можно и с телефона.

Спойлер: модель сама вшила в баланс мораль.

Читать далее

Перестройка реактивных потоков данных

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели5.5K

В реактивной системе все состояния связаны друг с другом инвариантами в единый граф. Когда мы изменяем что-то с одной стороны этого графа, рантайм обеспечивает каскадный пересчет зависимых состояний. Такие последовательности пересчетов — это ничто иное, как потоки информации (data-flow). Чем прямолинейнее эти потоки, чем меньше они разветвляются и затрагивают состояния, не относящиеся к изменениям, тем эффективнее работает система. И здесь есть два подхода к оптимизации потоков информации…

Погрузиться в информационный поток

Путь к ошибке: зачем нужны «Breadcrumbs» во frontend-мониторинге

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

Пользователь столкнулся с ошибкой в вашей программе. Трекер ошибок ее зафиксировал. Стек-трейс показывает место сбоя. Но что делал пользователь за несколько секунд до этого? Какие запросы выполнялись? На каком шаге сценарий пошёл не так?

Для ответа на эти вопросы в трекерах ошибок используются Breadcrumbs — цепочка событий, предшествующих ошибке. Разберём, как они работают в Хоуке и как помогают быстрее расследовать сбои в приложениях.

Читать далее

Проверка возраста без персональных данных и биометрии: встраиваем в веб-страницу за 5 минут

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.4K

Продолжаем рассказывать об альтернативном способе подтверждения возраста на веб-ресурсах без использования биометрии, интеграции с ЕБС и раскрытия персональных данных. О том, как это можно сделать, мы подробно писали в прошлой статье. Теперь разберемся, как реализовать подобный сценарий с помощью WebAssembly и какие возможности это открывает для веб-платформ. В этом материале показываем код, ищите под катом. 

Читать далее

Миграция с SharePoint без окна риска: двусторонняя работа с данными в новом портале, пока старый ещё живёт

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.3K

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

Именно это третье состояние и создаёт самый неприятный класс проблем. И именно о нём — эта статья.

Читать далее

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

Оптимизация под Pagespeed: работа с изображениями как с наиболее частой и весомой проблемой сайтов

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели6.6K

Разработчики часто сталкиваются с проблемой: сайт успешно протестировали на мастере, выкатили на прод, провели контрольное тестирование — вроде всё хорошо. Сайт работает пару месяцев — и вдруг приходит задача от SEO «увеличить скорость загрузки сайта» или «исправить просевшее количество баллов в PageSpeed». Причём ничего принципиально нового не добавляли, просто наполняли контентом.

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

Читать далее

Использование Blob API для обработки файлов, их загрузки и создания клиентских приложений без утечек памяти

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели8.2K

Современные фронтенд-приложения постоянно взаимодействуют с файлами.

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

Но именно здесь начинаются настоящие проблемы.

Читать далее

Как я написал портативный файлообменник

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

Каждый раз, когда нужно перекинуть файл, код или ссылку с ПК на телефон (или другу в той же Wi‑Fi сети), начинается классическая возня. Либо гоняешь через «Избранное» в мессенджерах (где режется качество и файлы вечно висят в облаке), либо поднимаешь локальные веб‑серверы через консоль. Мне это надоело, и я решил написать свою утилиту — FlashStash.

Основная идея: софт должен запускаться в один клик, работать без интернета внутри локалки, иметь всеядный предпросмотр файлов прямо в браузере и не требовать от пользователя установки Питона или настройки окружения.

После нескольких итераций проект дорос до версии 1.6, и я хочу поделиться тем, как устроена утилита изнутри и с какими техническими проблемами пришлось столкнуться.

Читать далее

Как попасть во фронтенд и дойти до senior в ВК — интервью с Александром Ламковым

Уровень сложностиСредний
Время на прочтение24 мин
Охват и читатели9.3K

Фронтенд-разработка давно перестала быть просто «вёрсткой сайтов». Сегодня это сложная экосистема: фреймворки, state-менеджмент, TypeScript, оптимизация производительности, работа с API и постоянный поток новых инструментов. Но за всей этой технологической гонкой часто теряется главное: что на самом деле нужно знать начинающему разработчику, где проходит грань между джуном и сеньором, и почему умение проходить собеседования — такой же навык, как и писать код.

Я, Александр, автор телеграм-канала «Shulepov Code», поговорил с Александром Ламковым — фронтенд-разработчиком, основателем YouTube-канала Friendly Frontend (аудитория более 50 000 подписчиков) и телеграм-канала «Friendly Frontend», опытным наставником, который провёл более 200 персональных консультаций с разработчиками, помог прокачать их навыки. Александр успешно прошёл собеседования на позицию сеньора в нескольких крупных IT-компаниях России, а сейчас работает в компании ВК. В этом выпуске узнаем, что такое современная фронтенд-разработка, какие навыки нужны, чтобы войти в профессию, что выбрать (найм или фриланс), и сколько на самом деле зарабатывают фронтенд-разработчики.

Читать далее

Как починить блокировку легальных сайтов РКН ТСПУ одной строчкой в Chrome

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

Мне очень хотелось разобраться в этой ситуации с блокировками..
Не мог с Chrome зайти на beget.com - там CDN блокировался. Тыкался тыкался..

Вставляете в строку браузера chrome://flags/

Ищите Cryptography Compliance (CNSA) (#cryptography-compliance-cnsa)

Читать далее

Совершеннолетний без лишних разглашений: можно ли проверить возраст пользователя без биометрии, ЕБС и рисков утечек

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели7.7K

Привет, Хабр! Пока Минцифры изучает введение возрастной идентификации на онлайн-платформах и весь мир ищет способы проверять возраст пользователей, не подвергая риску конфиденциальность их персональных данных, мы в Smart Engines пришли с готовым решением. В этой статье рассказываем о простом способе идентификации возраста пользователей в веб-среде, который не требует биометрии, раскрытия персональных данных и не несет рисков утечек. Мы реализовали это с помощью WASM-модуля, который позволяет решать задачу проверки возраста в интернете также надежно и безопасно для пользователя, как и в обычной жизни. Заглядывайте под кат!

Читать далее

Как я реализовал передачу диалога из ИИ-консультанта сайта в MAX

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.7K

Представьте: клиент зашел на сайт в полночь. Менеджер спит. Утром клиент уже забыл о вас и купил у конкурента. Обычный чат-бот не спасает: он либо тупой, либо безумно дорогой, либо хранит данные за океаном.

Я создал решение, которое решает эту проблему раз и навсегда.

Читать далее
1
23 ...