Обновить
256K+

JavaScript *

Прототипно-ориентированный язык программирования

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

Я написал мессенджер в одиночку … Разбор 149-ФЗ

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

Омаж на статью https://habr.com/ru/articles/1066668/ от @BorisXQ

Я тоже написал "мессенджер" на любимом $mol ( благодаря которому я могу добавить этот мессенджер в любое своё $mol приложение за 1 строчку кода ) и GiperBaza, без слежки, логина, пароля, и вообще без сбора каких либо данных

И даже почти без сервера)

P.S Только для домашнего использования

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

Вступайте в очередной реестр всех айтишников!) https://b-on-g.github.io/gram/#!users=xa77SU2P_FSMnTiSP

Или написать мне напрямую https://b-on-g.github.io/gram/#!invite=J2kVT1UX_fmQm09dd

Читать далее

Новости

Объекты в JS не бесплатные

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

Поговорим про микро-оптимизацию. Про, казалось бы, самую безобидную вещь: обычный {}.

[object Object] выглядит почти бесплатной абстракцией. Создал объект, напихал полей в любом порядке, удалил ненужное, передал дальше и забыл. Но, внезапно, одинаковые для тебя объекты могут оказаться разными для V8, порядок присваиваний влияет на машинный код, а “безобидный” delete оставляет после себя совсем не пустое место.

Для 99% систем это не имеет значения. А вот если у тебя hot path, через который проходят десятки тысяч объектов в секунду, или ты пишешь библиотечный код, стоит знать, что V8 на самом деле делает с твоими объектами.

И чего V8 там делает?

AAA Движок для GTA San Andreas в браузере и переписывание ThreeJS

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

Данная статья - это продолжение повествования о том, как я делаю AAA-движок для запуска старых игр, а именно GTA San Andreas и её модов, в браузере. В ней речь пойдет о том, как я уперся в производительность Three.js и перевел движок на свой фреймверк под WebGPU.

Читать далее

Хакатон — соло игра за 2 дня на Fable 5 и Nano Banana 2

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

Поучаствовал в хакатоне от работы. Интересно было испытать себя и проверить свой тулсет для разработки игр. Смогу ли я один сделать игру под ключ - код, арт, звуки?

Штош, игру сделал! Правда лег спать около шести утра 😖 Но это было интересно!

Внутри ссылка на игру и немного технических подробностей как генерил арт, код и собирал игру

Читать далее

История о том, как я написал компилятор Svelte на Rust

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

У нас тормозило всё: сборка, дев-сервер, svelte-check, LSP. Я пошёл писать свой компилятор Svelte на Rust. Пять с половиной месяцев ковырял руками и бросил. Через год вернулся с ИИ-агентом и доделал за 106 вечеров и $700.

Как это было

Как мы несколько дней искали проблему с перемоткой WebM

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

В одном из наших проектов бот записывает видеовстречи из Яндекс Телемоста, сохраняет их в WebM и передаёт на backend. После обработки запись становится доступна пользователю и воспроизводится через Video.js.

Заметили что при перемотке длинных файлов видеоплеер надолго задумывается. Браузер продолжает загружать данные, буфер визуально заполняется, но воспроизведение не начиналось.

Сначала мы исправили MIME-тип. Затем изменили настройки плеера. Потом ограничили ответы бека чанками по 50 МБ. Ничего из этого не помогло.

Настоящая причина находилась не на фронте и не на беке, а в самом WebM.

Читать далее

Как получить пожизненный бан на VC.ru за open-source проект на Node.js без рекламы. Кейс CMTT

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

Всем привет. На днях моя техническая статья с open source кодом про написание нейросети с нуля на Node.js вышла из песочницы Хабра благодаря НЛО, набрала 8K+ просмотров и получила крутой фидбек. Но за 2 дня до этого я решил провести эксперимент и выложить этот же материал на VC.ru. Итог — моментальный пожизненный бан без объяснения причин в первые 15 минут…

Читать далее

Обычному инженеру в интернете места нет

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

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

Я неизвестный автор. Над моими статьями нет плашки «Блог компании». И минусуют меня стабильно. Вот реальные причины, которые я собрал под своими статьями на Хабрахабре:

Читать далее

Excel в HTML: сервер для публикации Excel‑отчётов

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

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

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

Но сотрудники всё равно продолжали пользоваться Excel.

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

При этом у Excel есть проблема, которая особенно заметна в момент, когда результат работы нужно показать другим людям.

Читать далее

Языковая Модель без магии: Крошечная Language Model на чистом Node.js

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

Мы создаем крошечную языковую модель с нуля на чистом Node.js без использования TensorFlow или PyTorch, реализуя нейроны, автоград, эмбеддинги, механизм самовнимания (self-attention), полносвязную сеть (FFN), обратное распространение ошибки и SFT, одновременно наблюдая за тем, как отдельные веса и целые матрицы изменяются в процессе обучения

Это не новая GPT и не прод ML...

2 года в Obsidian: мой workflow, архитектура заметок, плагины и синхронизация

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

Около двух лет я использую Obsidian как основное приложение для ведения заметок, планирования и написания статей. В этой статье я хочу поделиться своим полным workflow: от распределения заметок по папкам и горячих клавиш до детального Cheatsheet по хранилищу и организации метода Zettelkasten.

О чём будет статья:

Архитектура папок (где и что хранится, а также подробный Cheatsheet.md, который я составлял для себя).

Плагины, которые я использую.

Настройка Homepage и каталога книг.

Синхронизация ПК + телефон (плагин Git + Termux на телефоне, у меня репозиторий в Gitea).

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

Читать далее

Один поток, а всё успевает: как работает цикл событий в JavaScript

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

Promise, setTimeout и async/await часто работают совсем не в том порядке, которого ждёшь по коду, а тяжёлая синхронная функция способна заморозить весь интерфейс. Разберём модель цикла событий, которая объясняет эти эффекты и помогает понимать, где возникают блокировки, гонки запросов и лишние задержки.

Читать далее

Обзор на Astro JS: опыт боевого проекта на 500+ тысяч страниц

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

Привет! В этой статье я - Антон Резников, Fullstack разработчик и Lead проекта из evilUnion, расскажу, как мы отказались от знакомого всем Next JS, не пожалели об этом и запустили один из самых крупных наших проектов на очень перспективном фреймворке - Astro JS.

В этой статье мы посмотрим, что из себя представляет Astro, чем он выделяется среди других метафреймворков, изучим его особенности, а далее на реальном примере пройдем весь путь построения мультиязычного сайта на 500+ тыс. страниц. Поехали 🚀

Читать далее

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

История корутин: появление, развитие, спад и возрождение

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

Привет, Хабр! Меня зовут Дмитрий Попов, я Android‑разработчик в ПСБ. В какой‑то момент мне захотелось разобраться — что такое корутина и откуда они вообще взялись. Погрузившись в различные статьи и видео, я узнал много нового, рассказал коллегам внутри команды, а теперь решил рассказать и вам. Все, что важно знать о корутинах, по моему скромному мнению, — в этой статье!

Читать далее

FFmpeg в браузере: как мы сделали медиа-конвертер, который ни разу не обращается к серверу

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

Конвертация медиа. Люди решают эту задачу десятки раз в неделю. Видео с дрона нужно перевести в MP4 для мессенджера, HEIC с айфона в JPEG для сайта, аудиозапись интервью обрезать и сжать. Обычно это выглядит так: человек открывает один из сотен онлайн-конвертеров, загружает туда полугигабайтный файл, ждёт, пока он доползёт до сервера, потом ждёт очереди, потом скачивает обратно. Параллельно его файлы лежат на чужом сервере, о чём мало кто задумывается (а зря, если речь про корпоративный договор или личное видео).

Мы решили проверить, можно ли полностью убрать из этой схемы сервер. Чтобы конвертация происходила целиком в браузере, на устройстве пользователя. Без загрузок, без очередей, без серверных затрат. Так появился BrowsersKit: набор инструментов (медиа-конвертер, PDF, математика, Python-песочница), работающих на клиенте. Дальше расскажу, как это устроено внутри, какие грабли нас поджидали и как мы с ними справились.

Читать далее

DI-контейнер на чистом JavaScript без TypeScript и reflect-metadata

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

В статье разберем, как собрать простой DI-контейнер на чистом JavaScript без TypeScript, декораторов и reflect-metadata. Заодно посмотрим, как применить его в небольшом DDD-примере с корзиной, репозиторием, скидками и разными lifetime зависимостей.

Читать

Зачем учить бинарный поиск, если платят за покраску кнопок

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

Привет, Хабр!

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

Когда я только начинал карьеру во фронтенд-разработке, то постоянно задавался вопросами: «Зачем на интервью просят обходить граф, если на работе я просто правлю CSS-отступы?» или «Зачем мне знать сложность O(N), если вёрстка всё равно ломается в Safari?» С развитием ИИ подобные вопросы стали звучать ещё громче: «Зачем мне вообще думать, если агент напишет этот цикл за меня?»

Однако по мере прокачки в алгоритмических задачах я стал замечать их применение в реальной разработке, где задача сводилась к чему-то более сложному, чем выравнивание div по вертикали. Я научился проектировать более лаконичные реализации бизнес-фич, стал быстрее находить узкие места, убивающие производительность, и, самое главное, обрёл уверенность в собственных действиях.

Читать далее

Просто дайте мне ввести цифры

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

Цифровая идентификация и её значение для веба в последние годы стали темой горячих обсуждений. Они привнесли с собой множество спорных моментов: законы о проверке возраста и их влияние на онлайн-анонимность; Википедия потенциально будет вынуждена верифицировать в Великобритании личность пользователей; привязка к официальным операционным системам iOS и Android стала обязательным форм-фактором для кошельков цифровой идентификации; кроме того, стоит упомянуть ситуацию, когда американские цифровые аккаунты были закрыты потому, что их пользователь был судьёй Международного уголовного суда.

В своей истории я расскажу о швейцарской правительственной системе идентификации AGOV. Этот развёрнутый в 2024 году сервис сегодня насчитывает 1,6 миллиона аккаунтов и становится всё более необходимым: через него можно получать пособие по безработице, предоставлять налоговую декларацию (а это обязательное действие!) и выполнять множество других операций. В кантоне Цюрих это единственная возможность подачи заявления на гражданство.

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

Читать далее

OpenIDE Pro: публичный релиз для всех! Java, Kotlin, Go, TypeScript, Python, PHP и DB-клиент в одном дистрибутиве

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

Прошло больше года с момента публичного релиза первой версии OpenIDE. Сейчас ею пользуются на постоянной основе десятки тысяч разработчиков в сотнях российских компаний.

И практически с самого первого дня к нам начали обращаться крупные компании, не с просьбой добавить фичу, а с предложением заплатить. Потому что когда организация всерьёз рассматривает IDE для команды в несколько сотен человек, ей важно знать: есть договор, есть SLA, есть кто-то, кто несёт ответственность и завтра никуда не денется. Бесплатный open-source продукт эту уверенность не даёт сам по себе, как бы качественно он ни был сделан.

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

Так появилась OpenIDE Pro.

Читать далее

Про то, как я оцифровал себя без ИИ, чтобы стать видеоблогером

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

История про то, как я сделал себе виртуального аватара для коротких видео — без генерации видео через ИИ.

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

В итоге получилась самодельная полуавтоматическая DIY‑система:

— универсальные графические ассеты персонажа
— ручная озвучка моим голосом
— разметка фраз в аудио через Audacity
— текстовый сценарий с управляющими тегами для событий в ролике
— кастомный JSX‑плагин для After Effects

Система берёт сценарий с управляющими тегами, аудиодорожку с голосом и файл разметки, после чего собирает заготовку ролика: аватар, липсинк, мимику, субтитры и слайды.

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

В конце — немного статистики по первым трём роликам, запущенным с нулевых аккаунтов: YouTube, Instagram, TikTok и ВК.

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