Привет, Хабр!Общаясь с фронтендерами, я заметил, что многие не знают новые классные возможности HTML и CSS. Мне от этого грустно. Надо это исправлять!Я подумал и составил список, состоящий из наиболее рекомендуемых мной новых фишек. Они поддерживаются в большинстве современных браузеров. Решают старые проблемы. Упрощают разработчикам жизнь. В общем суперполезные!И да, это поверхностный обзор. Я не буду рассказывать все нюансы. Моя цель — проинформировать вас о новых возможностях. Дальше вы уже …
В ноябре 2001 года, когда мир ещё пребывал в изумлении от атак 11 сентября и начала операций США в Афганистане, мало кем была замечена новость: 31 октября суд Maroochy Shire в австралийском Квинсленде приговорил к двум годам заключения и огромному штрафу компьютерщика по имени Витек Боден. Он был признан виновным в том, что посредством серии дистанционных взломов в системе цифрового управления насосами выпустил более 1200 кубометров сточных вод из канализации в парки и реки, а также на территор…
Многие десятилетия радиоприемники остаются одними из самых доступных и массовых электронных устройств. За это время их архитектура прошла невероятно длинный путь от традиционных аналоговых до современных на базе DSP. Сейчас это миниатюрные и энергоэффективные устройства, способные работать в широком диапазоне частот.Стремление к компактности и дешевизне привело к созданию линейки универсальных чипов для построения DIY-радио — Silicon Labs 473X. Китайские инженеры ухитрились полностью запихнуть …
Этот текст содержит доступное объяснение основных частей высшей математики, которые могут потребоваться ML‑щику разного грейда в рабочих сценариях — без дотошных доказательств и с обилием визуальных и численных примеров.Предвосхищая возможные вопросы: я ставлю целью рассказать про минимальный набор знаний, с которым можно будет уже самостоятельно погружаться в более интересные и прикладные сценарии. Я не планирую рассмотрение в этих постах более упоротных разделов и деталей — с такой глубиной м…
❯ ИнтроНам каждый раз рассказывают про то, что если подключиться к публичному Wi-Fi, то может случиться что-то ужасное. А, собственно, что? Трафик перехватят;Пароли утекут;Смартфон будет взломан;Установят какой-то мессенджер без вашего согласия.Причем транслируют инструкции «не пользоваться публичными/открытыми Wi-Fi» множество ИБ-компаний, включая вполне именитых экспертов. Но, кажется, это карго-культ 2015 года, и давайте попробуем разобраться, почему и как так вышло!Дисклеймер! В статье умыш…
Команда Go for Devs подготовила перевод статьи о том, как оптимизировать использование памяти в Go-приложениях. Автор делится двадцатью приёмами — от выбора ресивера метода и правильной инициализации slice до кастомного управления памятью и профилирования с pprof. TL;DR: мелкие улучшения складываются в заметный прирост производительности и стабильности.Как разработчик на Go, я провёл бесчисленные часы, оптимизируя использование памяти в своих приложениях. Это критически важная часть создания эф…
Всем привет! Меня зовут Алексей Майшев, я работаю Go-инженером в Авито. В этой статье рассказываю, как мы с командой независимых разработчиков 9 месяцев проектировали и разрабатывали кэш-библиотеку следующего поколения для Go — otter. Вы узнаете, чем нас не устроили текущие кэш-библиотеки в Go, какие подходы и оптимизации мы рассматривали и на каких остановились, как замеряли производительность и потребление памяти и в чём otter превосходит конкурентов. А ещё тут будет много теории — в процессе…
Всем привет! Я являюсь создателем распределённого поисковика rats-search на базе DHT (GitHub). Его принцип работы довольно прост: поисковик собирает торренты у всех участников сети и формирует большую распределённую базу для поиска, включая метаданные (например, описания и прочую информацию).В этой статье я хочу рассказать о своей новой библиотеке для построения распределённых приложений (p2p), где знание IP-адресов участников не обязательно, а поиск ведётся через различные протоколы — DHT, mDN…
"You can't have errors in your code if you wrap the entire codebase in a try/catch block"Этот мем смешной, пока не осознаешь, что в реальных проектах мы именно так и поступаем. Только заворачиваем не весь код сразу, а каждый HTTP-запрос по отдельности.Пишешь fetch и рефлекторно добавляешь try/catch. Где-то словил TypeError, где-то таймаут, где-то сервер вернул 500. В итоге половина кода превращается в кашу проверок, а другая половина - в обработчики ошибок.Я годами так делал, пока н…