Почему в XXI веке мы все еще печатаем на QWERTY / ЙЦУКЕН, хотя эта раскладка родилась в эпоху механических машинок и считается не самой эргономичной? Разберем, как исторический случай превратился в привычку, почему протесты в пользу Dvorak и Colemak погасли, и есть ли вообще шанс у «умных» или нейро-раскладок изменить наш повседневный набор текста. Детали, как всегда, внутри. Используйте навигацию, если не хотите читать текст целиком: → От пишущих машинок к экранам → «Самые эффективные» альте…
Привет, друзья! Суть капитализма описывается простой формулой: произведи товара, потратив 100 рублей, продай полученный товар за 110 рублей. Разницу в 10 рублей - в карман.В этой примитивной как штык на винтовке немецкого ефрейтора формуле скрыт коварный дефект, из-за которого случились 2 мировой войны, погибли десятки миллионов людей и были разрушены целые страны. А самое неприятное, что все эти катастрофы могут происходить снова и снова, поскольку дефект сложно исправить и он грозит стать кат…
Вы знаете, что такое прогрессивный JPEG? Можете почитать хорошее объяснение. Идея заключается в том, что вместо загрузки изображения сверху вниз оно сначала грузится размытым, а потом постепенно становится чётче.Что, если мы применим тот же принцип к передаче JSON?Допустим, у нас есть дерево JSON с какими-то данными:{ header: 'Welcome to my blog', post: { content: 'This is my article', comments: [ 'First comment', 'Second comment', /…
Разница в инженерахИнженер - это звучит солидно и гордо, во все времена. Однако, в последнее время наша профессия (не только ИТ-инженеры) претерпевает деградацию в большинстве отраслей. В статье я хочу подсветить эту проблему и указать, что сейчас можно сделать абитуриентам, выпускникам и уже действующим инженерам, чтобы выйти на новый уровень инженерной науки и практики (или хотя бы понять своё место в ней). ВведениеПочему я сделал такие выводы? Я сам инженер-технолог (кафедра машиностроительн…
Привет, Хабр!Сегодня разбираемся, почему sync.Map — выглядит аппетитно, но почти всегда оказывается не тем, чем вы ожидали. Откуда взялся sync.Map и зачем он был нуженК середине 2010-х стало очевидно: дефолтный подход map + sync.RWMutex не справляется с задачами, где тысячи горутин читают данные одновременно, а записи происходят редко. Особенно это чувствовалось в телеметрии, логировании, сборе метрик — в тех местах, где важно не терять данные, не аллоцировать лишнее и не мешать соседним потока…
Разработка чат-приложения с нуля может показаться довольно сложной задачей. Но при наличии правильных инструментов все становится намного проще, чем вы думаете.В этой серии из трех частей мы подробно рассмотрим процесс создания клона веб-версии Telegram с использованием Next.js, TailwindCSS и Stream SDK. В первой части мы настроим все необходимые инструменты для нашего проекта, добавим аутентификацию и создадим макет приложения с помощью TailwindCSS.Во второй части мы сосредоточимся на разработ…
В этой серии статей мы пройдемся по каждому этапу работы V8: лексическому и синтаксическому анализу, построению AST, интерпретации и оптимизациям. Затронем Ignition, Sparkplug, Maglev и Turbofan; разберемся с hidden classes, байт-кодом, и много чем еще. Углубимся во все этапы достаточно, чтобы понимать, за что отвечает каждый из них.Основные среды выполнения JavaScript на текущий момент это Node.js (с V8 по умолчанию), Electron на базе Chromium, который под капотом также имеет V8, и браузеры:Go…
Я — Solution Architect с 19 годами в IT, часто помогаю новичкам в тестировании. Джуны обычно жалуются на вагон теории, отсутствие практики и примеров, где основные алогритмы собраны вместе. Я решил исправить эту проблему: взял OWASP Juice Shop — уязвимое веб-приложение, развернул его через Docker на http://135.181.239.135:4000 и протестировал с помощью ИИ.В статье расскажу про:ИИ для запуска тест-кейсов: автоматизация без глубоких знаний программирования.Обучение ИИ-генерации тест-кейсов: как И…
Каждый, кто использует Vue для разработки или только его изучает, так или иначе встречается с необходимостью выполнить какое‑либо побочное действие при изменении значений, и сразу в голове возникает мысль о двух методах‑наблюдателях — Watch и WatchEffect.Как работают эти 2 метода можно узнать из великолепной документации Vue, а в этой статье мы посмотрим на примеры самых часто используемых компонентов вместе с наблюдателями — по 2 компонента на каждый метод — а заодно вы сможете больше понять п…