Как стать автором
Обновить
143
Карма
0
Рейтинг
Джехи @jehy

Tech Lead

Память в браузерах и в Node.js: ограничения, утечки и нестандартные оптимизации

Блог компании Яндекс Разработка веб-сайтов *JavaScript *Интерфейсы *Node.JS *
✏️ Технотекст 2022

Интро: почему я написал эту статью


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



На своих серверах мы должны генерировать сотни миллионов уникальных страниц в сутки — это сложнее, чем просто отдавать одни и те же ресурсы. Генерация страницы не должна быть слишком требовательной к памяти сервера.


Разрабатывая проект на JavaScript (TypeScript, ClojureScript или каком-то другом языке, транслируемом в JavaScript), мы привыкли создавать объекты, массивы, строки и вообще писать код, как будто память бесконечна. Это не так. Я расскажу о видах проблем с памятью, о том, какие ограничения мы часто забываем и как их можно преодолеть. В ответ браузеры и пользователи скажут вам спасибо.


Читать дальше →
Всего голосов 55: ↑55 и ↓0 +55
Просмотры 27K
Комментарии 12

Автоматическая система полива сада на Home Assistant, ESP8266 и MiFlora

Умный дом DIY или Сделай сам
Из песочницы


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

Хотелось, чтобы система полива была автоматической, при этом при ее выборе приходилось учитывать следующие условия:

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

Оценив готовые решения, которые удалось найти в местных DIY сетях и на Amazon и почитав отзывы об их надежности (как правило, не самой высокой), решили попробовать сделать что-то самостоятельно.
Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Просмотры 20K
Комментарии 25

Яндекс: умный дом по-взрослому

JavaScript *Яндекс API *Разработка под Linux *Умный дом
Туториал


Недавно компания Яндекс запустила свою систему «умного дома». Нам предлагают купить недорогие работающие по Wi-Fi устройства: адаптер в розетку, лампочку и ИК пульт. Интересно, что у разработчиков «умных» устройств появилась возможность создать свои навыки «умного дома», это позволит подключить девайсы к системе Яндекса и управлять ими голосом через Алису. В списках навыков появляется всё больше новых брендов. Алиса прекрасно понимает русскую речь, что делает ее безусловным лидером среди голосовых ассистентов на российском рынке.
Однако, не всё так гладко…
Читать дальше →
Всего голосов 37: ↑34 и ↓3 +31
Просмотры 146K
Комментарии 101

Сказ о том, как я Home Assistant настраивал

Блог компании Singularis Умный дом Интернет вещей DIY или Сделай сам
Туториал


Home Assistant — это популярная система умного дома, которая автоматизирует привычные бытовые процессы и работает на YAML файлах. В этой статье я расскажу, как настроить Home Assistant (далее HA), и что конкретно я использую в повседневной жизни. Это поможет вам избежать ошибок и быстрее продвинуться в изучении HA.


На Хабре уже есть статьи о HA (раз, два, три), но здесь я хочу рассказать об установке и настройке системы от начала до конца. От первого запуска сервера до полноценно работающей системы, которую потом можно улучшать и дорабатывать для себя.

Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Просмотры 101K
Комментарии 15

Как заварить чай по MQTT или доступная умная розетка с контролем температуры и тока

DIY или Сделай сам Электроника для начинающих
Туториал

Зачем?


Даже в этом хабе наблюдается повышение интереса к IoT, по моему субъективному мнению это глобальная тенденция, выходящая далеко за рамки этого сайта. А значит стоит вставить и свои 5 копеек в развитие направления, тем более что давно крутилась мысль сделать узел для умного дома, который смог бы контролировать потребление любого прибора питающегося от сети 220В и давал возможность программировать логику управления в зависимости от параметров потребления, температуры, фазы луны и т.д. Существуют готовые решения, но часто в них что-то не устраивает, да и готовое это не наш метод если можно попробовать построить свой уникальный велосипед.



Параметры будущего велосипеда:

— Дешевое устройство из общедоступных компонентов.
— Контроль тока в цепи потребителя.
— Управление устройством по протоколу MQTT.
— Контроль температуры устройства.
— Два выносных датчика для контроля температуры потребителя.
— Индикация состояния на экране устройства.
— Аварийное отключения потребителя если температура или ток превысили задаваемые значения.
Всего голосов 38: ↑37 и ↓1 +36
Просмотры 44K
Комментарии 47

Открываем дверь домофона при помощи голосового ассистента и ардуино

Разработка под Arduino *Научно-популярное Умный дом DIY или Сделай сам Электроника для начинающих

Всем привет!

Сегодня у меня статья про то, как при помощи Яндекс-колонки Алиса и Ардуино, можно открыть дверь, подключенную к домофону. Если Вам это интересно, то прошу под кат.
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 26K
Комментарии 13

Безумный дом

Настройка Linux *Разработка под Arduino *Разработка на Raspberry Pi *Умный дом
Туториал

Мы часто думаем о том, как автоматизировать свое жилище, но часто этот вопрос упирается в то, что готовые системы слишком негибки и дороги, а разбираться, как сделать что-нибудь самому совершенно нет времени.

Под катом - подробный гайд по настройке системы умного дома: сделаем возможным работу устройств ZWave и кастомных MQTT-устройств на базе ESP8266, настроим управление домом при помощи HomeKit и Яндекс Алисы.

Читать далее
Всего голосов 24: ↑23 и ↓1 +22
Просмотры 51K
Комментарии 62

Управление шлагбаумом с помощью Arduino UNO и радиопередатчика 433 МГц

Программирование микроконтроллеров *
Из песочницы
Всем привет! У меня на работе есть автомобильная парковка. Конечно, цель данной статьи не хвастовство, учитывая тяжелую ситуацию на дорогах с парковочными местами, и не пиар моего руководства о том, что они заботятся о своих сотрудниках (не буду даже упоминать о месте свой работы!), дело совершено не в этом. Суть в том, что мешает любому другому человеку, не имеющему отношения к месту моей работы, припарковаться на этой парковке? А это шлагбаум, ограничивающий въезд и выезд с этой парковки.
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 146K
Комментарии 33

Обзор инструментов для chaos engineering в Kubernetes. Часть 1: kube-monkey, chaoskube, Chaos Mesh

Блог компании Флант Системное администрирование *DevOps *Kubernetes *


Хаос-инжиниринг для Kubernetes становится всё популярнее, и это закономерно: ведь такая инфраструктура создавалась быть готовой к тому, чтобы в любой момент что-нибудь «отстрелило». А значит — это замечательное свойство надо проверять в реальных проектах.

Благо, уже сегодня можно найти не одно Open Source-решение, помогающее в подобных экспериментах. Представляем вашему вниманию их обзор. Он получился весьма объёмным, поэтому был разбит на две части: в этой мы рассмотрим три популярных проекта.
Читать дальше →
Всего голосов 48: ↑48 и ↓0 +48
Просмотры 6.3K
Комментарии 0

Я провёл более 600 технических интервью — и вот пять проблемных мест, которые я заметил у кандидатов

Управление персоналом *Карьера в IT-индустрии
Перевод
Недавно я провёл 600-е собеседование на interviewing.io (IIO). Хотелось бы поделиться опытом, рассказать, как я подхожу к интервью, и пролить свет на типичные проблемы у кандидатов. Каждый интервьюер на IIO индивидуален, поэтому ваши результаты могут отличаться. У нас на платформе сформировалось замечательное сообщество, где каждый работает над улучшением своих знаний, навыков и результатов интервью.

Пробное интервью на interviewing.io


Мы оцениваем людей по трём четырёхбалльным шкалам. Оценка «один» означает плохой результат, а «четыре» — очень хороший. Я обычно вначале даю кандидату три балла, а затем прибавляю/отнимаю очки по мере интервью.

Каждый интервьюер отдаёт предпочтение какому-то одному аспекту. Лично я проявляю некоторую предвзятость в сторону скиллов «общение» («коммуникация») и «решение проблем», которые мы обсудим ниже.
Читать дальше →
Всего голосов 62: ↑57 и ↓5 +52
Просмотры 48K
Комментарии 47

Своими руками: Компьютер в столе с жидкостным охлаждением

Компьютерное железо Видеокарты Настольные компьютеры DIY или Сделай сам
🔥 Технотекст 2020
image

Друзья, всех приветствую!

Ко мне обратился товарищ и попросил помочь воплотить его мечту в реальность.

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

Изготовление начинается с рамы: это столешница, ножки, перекладина жесткости и кронштейн.

Размеры товарищ захотел 122 на 65 см.
Читать дальше →
Всего голосов 234: ↑186 и ↓48 +138
Просмотры 66K
Комментарии 200

Больше разработчиков должны знать это о базах данных

Блог компании Флант Программирование *Администрирование баз данных *
Перевод
Прим. перев.: Jaana Dogan — опытный инженер из Google, которая в данный момент занимается вопросами наблюдаемости production-сервисов компании, написанных на Go. В этой статье, снискавшей большую популярность у англоязычной аудитории, она в 17 пунктах собрала важные технические детали, касающиеся СУБД (а иногда — распределённых систем в целом), которые полезно учитывать разработчикам крупных/требовательных приложений.



Подавляющее большинство компьютерных систем отслеживают свое состояние и, соответственно, нуждаются в некой системе хранения данных. Я накапливала знания о базах данных в течение длительного времени, попутно совершая ошибки при проектировании, приводившие к потере данных и перебоям в работе. В системах, обрабатывающих большие объемы информации, базы данных лежат в сердце системной архитектуры и выступают ключевым элементом при выборе оптимального решения. Несмотря на то, что работе БД уделяется пристальное внимание, проблемы, которые пытаются предусмотреть разработчики приложений, часто оказываются лишь верхушкой айсберга. В этой серии статей я делюсь некоторыми идеями, которые будут полезны для разработчиков, не специализирующихся в этой области.
Читать дальше →
Всего голосов 68: ↑67 и ↓1 +66
Просмотры 41K
Комментарии 27

Компьютер в столе своими руками

DIY или Сделай сам
Из песочницы
Приветствую, Habr! Я фанат ПК в столе, давно ими занимаюсь и сегодня хочу показать вам свой новый проект.

Самый компактный и тонкий Компьютер в столе, что я делал.


Читать дальше →
Всего голосов 162: ↑159 и ↓3 +156
Просмотры 118K
Комментарии 139

Как мы эвакуировали дежурную смену Яндекса

Блог компании Яндекс Системное администрирование *IT-инфраструктура *Компьютерное железо Инженерные системы *


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

Дежурная смена — это команда специалистов по доступности сервисов (SRE). Она включает в себя дежурных администраторов, разработчиков, менеджеров, а также общую «приборную панель» из 26 ЖК-панелей по 55 дюймов каждая. От работы дежурной смены зависит стабильность сервисов компании и скорость решения проблем.

Сегодня Дмитрий Меликов tal10n, руководитель дежурной смены, расскажет о том, как за считанные дни им удалось перевезти оборудование на дом и наладить новые процессы работы. Передаю ему слово.

Читать дальше →
Всего голосов 102: ↑98 и ↓4 +94
Просмотры 44K
Комментарии 149

Велотренажер #Самоизоляция или как угомонить ребенка на карантине

Разработка под Arduino *Периферия DIY или Сделай сам
Из песочницы

Весь мир героически борется с «… заразой коронавирусной» (Путин В.В.) Большинство стран закрывают свои границы, своих граждан закрывают на карантин, вводят комендантский час. Вот и Россию не обошла эта гадость стороной.

В сложившейся ситуации с пандемией SARS-CoV-2 (COVID-19) все мы с вами сейчас должны находиться на карантине самоизоляции.

Поэтому вопрос о том, как найти активное развлечение для детей запертых в четырёх стенах стоит как никогда остро. Надо ещё и постараться чтоб эти четыре стены остались, по-возможности, в целости и сохранности.
Всего голосов 92: ↑92 и ↓0 +92
Просмотры 16K
Комментарии 44

О 30-кратном увеличении параллелизма в Node.js

Блог компании RUVDS.com Разработка веб-сайтов *JavaScript *Node.JS *
Перевод
Каков наилучший способ беспроблемного увеличения параллелизма в Node.js-сервисе, который используется в продакшне? Это — вопрос, на который моей команде понадобилось ответить пару месяцев назад.

У нас запущено 4000 контейнеров Node (или «воркеров»), обеспечивающих работу нашего сервиса интеграции с банками. Сервис изначально был спроектирован так, что каждый воркер был рассчитан на обработку только одного запроса за раз. Это снижало воздействие на систему тех операций, которые могли неожиданно заблокировать цикл событий и позволяло нам игнорировать различия в использовании ресурсов различными подобными операциями. Но, так как наши мощности были ограничены одновременным выполнением лишь 4000 запросов, система не могла достойно масштабироваться. Скорость выдачи ответов на большинство запросов зависела не от мощности оборудования, а от возможностей сети. Поэтому мы могли бы улучшить систему и снизить стоимость её поддержки в том случае, если бы нашли способ надёжной параллельной обработки запросов.



Занявшись исследованием этого вопроса, мы не смогли найти хорошего руководства, в котором речь шла бы о переходе от «отсутствия параллелизма» в сервисе Node.js к «высокому уровню параллелизма». В результате мы разработали собственную стратегию перехода, которая была основана на тщательном планировании, на хороших инструментах, на средствах мониторинга и на здоровой дозе отладки. В итоге нам удалось повысить уровень параллелизма нашей системы в 30 раз. Это эквивалентно снижению затрат на поддержку системы примерно на 300 тысяч долларов в год.

Данный материал посвящён рассказу о том, как мы увеличили производительность и эффективность наших Node.js-воркеров, и о том, что мы узнали, пройдя этот путь.
Читать дальше →
Всего голосов 66: ↑65 и ↓1 +64
Просмотры 22K
Комментарии 23

Биография Терри Дэвиса, «величайшего из когда-либо живших программистов»

Ненормальное программирование *Системное программирование *Мозг
Перевод

Наиболее полный источник информации о жизни создателя TempleOS Терри Дэвиса


Легко заклеймить Терри Дэвиса параноидальным, нарциссическим, душевнобольным и психически нестабильным расистом, 12 лет своей жизни проведшим за созданием бесполезной операционной системы TempleOS, предназначенной для разговоров с богом; но перед тем, как выносить ему свою оценку, нужно сначала составить полное представление о нём. История Терри – это трагическое повествование о том, как психическая болезнь забрала у нас человека, объявившего себя «величайшим из когда-либо живших программистов».

Ранние годы Терри Дэвиса


Терри Дэвис родился 15 декабря 1969 года в г. Вест-Аллис, шт. Висконсин. Но затем в течение жизни переезжал в Орегон, Вашингтон, Мичиган и Аризону. Он родился в большой семье, был седьмым ребёнком из восьми, а отец его был промышленным инженером, работавшим над ракетной системой "Титан" в 70-х и 80-х.

Рос он в близком контакте с братьями и сёстрами, но когда в зрелом возрасте начали проявляться проблемы с психикой, он решил, что: «Иисус не разговаривал со своими братьями и сёстрами, ему не хотелось иметь с ними ничего общего, ему лучше было с незнакомцами. И я такой же».
Всего голосов 76: ↑69 и ↓7 +62
Просмотры 62K
Комментарии 86

Как я чуть не выкинул 150к на ветер или история установки приточной вентиляции в квартире

Здоровье

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


Читать дальше →
Всего голосов 375: ↑370 и ↓5 +365
Просмотры 485K
Комментарии 594

Генерация подземелий в Diablo 1

Разработка игр *Реверс-инжиниринг *Дизайн игр *Игры и игровые консоли
Перевод
image

Diablo 1 — это классический roguelike 1996 года в жанре hack and slash. Это была одна из первых успешных попыток познакомить широкие массы с roguelike, которые до этого имели нишевую графику в виде ASCII-арта. Игра породила несколько сиквелов и множество имитаций. Она известна своей тёмной, мрачной атмосферой, сгущающейся по мере спуска игрока в подземелья, располагающиеся под городом Тристрам. Это была одна из первых для меня игр с процедурной генерацией карт, и возможность генерации столь правдоподобных уровней просто потрясла меня.

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

Благодарю Дэвида Бревика и команду Blizard North за создание такой потрясающей игры, а также galaxyhaxz и команду Devilution за их удивительную работу по восстановлению читаемого исходного кода проекта.
Читать дальше →
Всего голосов 75: ↑75 и ↓0 +75
Просмотры 50K
Комментарии 29

Я работаю программистом в компании, но свои 50 лет хочу встретить иначе

Блог компании Skyeng Программирование *Управление персоналом *Карьера в IT-индустрии Биографии гиков
У меня есть мечта – лет в 50 выйти на пенсию, сидеть на берегу моря и программировать для какого-нибудь проекта. Бесплатно и для души…



Сейчас я сижу на пляже и пишу код за деньги. Мне 34. Я во Вьетнаме. Передо мной столик с ноутбуком, надо мной — навес пляжного бара, слева – славный город Нячанг, а справа – волны Южно-Китайского моря. К этому столику в пляжном баре я шел последние пять лет.
Читать дальше →
Всего голосов 185: ↑174 и ↓11 +163
Просмотры 67K
Комментарии 167

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность