Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Приручаем многопоточность в Node.js (часть 5/5: автомасштабирование под нагрузку)

Время на прочтение19 мин
Количество просмотров7.5K

В прошлых частях цикла мы:

- рассмотрели базовые концепты работы с многопоточностью в JavaScript на примере среды Node.js;

- научились формировать общую очередь и каналы обмена данными и сигналами, чтобы более эффективно управлять загрузкой потоков;

- использовали разделяемую память и Atomics-операции как самое быстрое средство обмена большими блоками данных;

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

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

В данном случае эффективность - это не про максимально возможную скорость обработки каждой отдельной задачи, а про сбалансированное использование аппаратных ресурсов с учетом тех ограничений, на которые мы готовы пойти. Особенно актуально это для различных "облачных" размещений, где оплата идет за фактически потребленные CPU и RAM.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии6

Как сделать карту цен в Excel без макросов и VBA

Время на прочтение10 мин
Количество просмотров13K

Считается, что Data Mining — это магическое снадобье из SQL, Python, Power BI и других волшебных компонент. Мало кто знает, что при правильном подходе с Data Mining может совладать офисный планктон с помощью одного лишь Excel.

Если вы абсолютно далеки от Data Mining, но хотите причаститься его таинств, это руководство в картинках по шагам сделано для вас. Особенно полезно тем, кто никогда бы даже не подумал сделать подобное самостоятельно.

Если вы владеете специальными инструментами для работы с данными, то будет интересно узнать ваше мнение о решениях без "рокет сайнс" (как о явлении в целом, так и о данном кейсе).

Читать далее
Всего голосов 21: ↑20 и ↓1+23
Комментарии19

Регулярки (regex) — основы для решения кейсов, про которые не пишут в статьях про основы

Время на прочтение4 мин
Количество просмотров25K

"Там просто регулярку написать" - говорили они...

Читать далее
Всего голосов 30: ↑25 и ↓5+34
Комментарии47

Рассуждения об asyncio.Semaphore

Время на прочтение6 мин
Количество просмотров8.4K

В Кремниевой долине есть очень особенный ресторан фаст-фуда, который всегда открыт. Там имеется один столик, за ним может разместиться лишь один посетитель, которому дадут совершенно фантастический гамбургер. Когда туда приходишь — ждёшь до тех пор, пока не настанет твоя очередь. Потом хозяин ресторана подведёт тебя к столику, и, это же Америка, тебе зададут, кажется, бесконечное количество вопросов о том, как приготовить и как подать твой гамбургер.

Сегодня, правда, мы не собираемся говорить о кулинарных изысках. Мы говорим о системе очередей, которую используют рестораны. Если вам повезло и вы прибыли в ресторан тогда, когда столик пуст, и когда никого в очереди нет, вы можете прямо сразу за него сеть. В противном случае хозяин даст вам специальный пейджер (из бескрайней кучи таких пейджеров!) и вы можете бродить вокруг ресторана до тех пор, пока этот пейджер не подаст сигнал. Дело хозяина ресторана — обеспечить, чтобы посетители попадали бы за столик в порядке их прибытия. Когда настанет ваша очередь, хозяин отправит сигнал на ваш пейджер, а вы вернётесь в ресторан, где сможете усесться за столик.

Если вы передумали — можете вернуть пейджер хозяину, а он, ни слова не сказав, спокойно его заберёт. Если ваш пейджер уже сработал, то хозяин, если на вас очередь не оканчивается, вызовет следующего посетителя. Посетители этого ресторана всегда вежливы, они, получив пейджер, не уходят украдкой, никого не предупредив. А хозяин всегда честен и не усадит за столик кого-то, кто стоит в очереди за вами, даже если вам, чтобы вернуться в ресторан после срабатывания пейджера, нужно некоторое время.

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии2

Как работать с библиотекой sktime: разбираемся на примере прогнозирования продаж

Время на прочтение11 мин
Количество просмотров9.2K

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

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

Dr.Web FixIt! — новый облачный сервис для расследования ИБ-инцидентов

Время на прочтение6 мин
Количество просмотров3.9K

Hello, world!

В начале августа 2022 года мы представили облачный сервис Dr.Web FixIt! широкой публике. Он предназначен для дистанционного анализа вирусозависимых компьютерных инцидентов (ВКО) на платформе Windows и устранения их последствий. В основе FixIt! лежит обширная база знаний с информацией о различных типах заражений операционной системы, способах обнаружения признаков компрометации, а также набор алгоритмов выявления и лечения угроз. Сервис задумывался как отдельное многофункциональное средство борьбы с киберугрозами, которое дополняет существующие на рынке антивирусные инструменты. Однако это также и мощное диагностическое решение, помогающее оценивать состояние компьютеров и выявлять всевозможные неполадки системы и установленного в ней ПО.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии2

Как мы удерживали нагрузку десятков тысяч подключений для Warface

Время на прочтение7 мин
Количество просмотров12K

Всем привет, меня зовут Алексей Капустин, я старший программист в Allods Team. В этой статье я расскажу о серверной архитектуре Warface — как она устроена изнутри, как мы пришли к кроссплатформенному мультиплееру, про метагейм, масштабирование и многое другое.

Читать далее
Всего голосов 37: ↑35 и ↓2+40
Комментарии36

Открытый проект мультизонного термосенсора с логированием и блютусом

Время на прочтение4 мин
Количество просмотров4.5K

Цель проекта - получить устройство с возможностью простого подключения множества термосенсоров. Термосенсоры должны однозначно идентифицироваться по месту. Все температуры должны отображаться на одном экране и логироваться в файл. За основу была взята шина 1-Wire и сенсоры DS18S20+.

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии20

Книга «Управление проектами с нуля»

Время на прочтение10 мин
Количество просмотров17K
image Добрый день, Хаброжители!

Управлять проектами не так сложно, как может показаться! Эта книга — кратчайший путь для освоения всех необходимых навыков: от бюджетирования и планирования до секретов управления командой и работы над ошибками — лучшее на сегодняшний день руководство по современному проектному менеджменту для начинающих. Здесь вы найдете простые инструкции и чек-листы для успешного выполнения всех задач, которые могут возникнуть в ходе работы! Бонус — глава с полезными советами для подготовки к сдаче сертификационного экзамена PMP.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии10

Как создать переводчик, который переводит лучше, чем Google Translate

Время на прочтение8 мин
Количество просмотров30K

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

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

Читать далее
Всего голосов 61: ↑61 и ↓0+61
Комментарии48

Как разрезать полметра стали, в домашних условиях, почти бесшумно — используя электричество?

Время на прочтение8 мин
Количество просмотров69K

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

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

Читать дальше →
Всего голосов 101: ↑99 и ↓2+127
Комментарии59

Увеличиваем RPS на Nuxt.js

Время на прочтение2 мин
Количество просмотров5.6K

Все мы знаем что nuxt.js 2 (да и любое node.js приложение с SSR) не держит нагрузку без кеша, в среднем проекте если включить режим SSR то будет держать 20-30 RPS что очень мало.

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

Есть 3 проблемы с которыми я сталкивался на проекте, и хотел бы стабилизировать ситуацию. Чтобы дать еще один шанс запуститься приложению хотя бы без SSR.

Ускориться
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Самая большая BERT-подобная модель на русском, которая поместится на ваш компьютер

Время на прочтение7 мин
Количество просмотров20K
Привет, это снова Максим Рябинин, исследователь в Yandex Research. В прошлом году я рассказывал на Хабре о том, как вместе с Hugging Face, Университетом Торонто и волонтёрами мы обучили state-of-the-art модель для бенгальского языка и написали об этом статью на конференцию NeurIPS. Теперь хотим поделиться новым результатом: оказывается, технологии для обучения на нестабильном железе находят приложение и внутри привычных всем кластеров.

Используя вычислительную платформу Яндекса, мы обучили RuLeanALBERT — нейросеть, показывающую сравнимые с другими открытыми моделями и где-то даже близкие к state-of-the-art результаты на бенчмарках по пониманию русского языка — Russian SuperGLUE и RuCoLA. Наша модель хотя и имеет миллиарды параметров, но вполне способна вместиться в одну домашнюю GPU: вы можете использовать её в своих проектах для классификации предложений, представления текстов и других языковых задач, не требующих генерации. В статье можно прочитать о подробностях обучения, которые мы реализовали в открытом коде, а чекпоинт теперь тоже доступен всем желающим.


Примерно так выглядит процесс обучения на множестве независимых серверов
Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии8

Перегрузка функций в TypeScript

Время на прочтение8 мин
Количество просмотров33K

Перегрузка функций — это та область TS, которая находится в невидимой зоне для разработчиков, которые изучали JS, а потом на работе «на ходу» начали осваивать TS. Особенно, если изучение JS не было связано с университетом или любым другим фундаментальным образованием. Если вы изучали JS на курсах, то вы никогда не услышите там про перегрузку функций, просто потому что в JS этого функционала нет. А когда вы сами начнете изучать TS, то вы не наткнетесь на перегрузку функций, просто потому что даже не подозреваете о ней. Если, прочитав вступление, вы задались вопросом «Что за перегрузка такая?», то эта статья для вас.

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии18

Фокусы оптимизации размера исполняемых файлов ELF. Поддержка 4 ОС в 400 байт единственного бинарника

Время на прочтение29 мин
Количество просмотров6.9K

В этом посте я расскажу о некоторых уловках, которыми я воспользовалась, чтобы уменьшить двоичные файлы С/С++/Python с помощью ассемблера для x86. Здесь всё крутится вокруг кодовой базы Cosmopolitan. Дело в том, что из недавнего отзыва по проекту ELKS я узнала, что мой код там всем понравился и они хотят узнать больше о том, что трюки cosmo могут дать проектам вроде «Linux-порта i8086». Я почувствовала, что мы с ребятами проекта ELKS «одной крови», ведь первое, что я написала при создании Cosmopolitan, — это загрузчик i8086, который назывался Actually Portable Executable. А ещё мне было приятно узнать, что людям, которые погрузились в эту проблему гораздо раньше меня, нравятся мои наработки в Cosmopolitan. И тогда я решила, что неплохо было бы поделиться ими с более широкой аудиторией.


[Shinmyoumaru Sukuna]

Читать дальше →
Всего голосов 31: ↑30 и ↓1+38
Комментарии17

Паровой мотоцикл своими руками

Время на прочтение8 мин
Количество просмотров35K

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

Читать далее
Всего голосов 257: ↑256 и ↓1+323
Комментарии190

Фильтр по интервалу дат в админке Django

Время на прочтение2 мин
Количество просмотров5.1K

В текущем проекте появилась потребность фильтровать таблицы в админке Django по условию "от такой-то даты/времени до такой-то даты/времени". К моему удивлению, для такой расхожей задачи при беглом поиске подходящих готовых решений найти не удалось. Может плохо искал, напишите в комментах.

Пришлось изобретать велосипед самому. А недавно выкроил время и оформил этот код в виде отдельной библиотеки.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии4

10 задач с JavaScript Promise для подготовки к собеседованиям

Время на прочтение7 мин
Количество просмотров79K

Promise — это отличительная особенность JavaScript как асинхронного языка программирования. Нравится вам это или нет, понять его в любом случае придется. В этой статье я привожу 10 примеров кода с Promise, начиная от базового уровня заканчивая продвинутым.

Читать далее
Всего голосов 53: ↑53 и ↓0+53
Комментарии25

Опыты с сертификатами — клиентскими и серверными

Время на прочтение11 мин
Количество просмотров24K

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

К тому же, в собственной сети не так важен правильный сертификат, когда на всех клиентских устройствах можно предустановить свой доверенный корневой сертификат и подписывать им сертификаты внутренних ресурсов. Но у автора статьи просто был спортивный интерес и на досуге хотелось вникнуть в тему.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии15

VPN уровня Enterprise для всех

Время на прочтение15 мин
Количество просмотров16K

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

В этой статье описан процесс сборки кластера и базовые настройки, чтобы пользователь подключался с паролем от AD DS и вторым фактором в виде OTP кода. Мы получили возможность ограничивать доступ групп пользователей не только по ip адресам, но и по портам, а также идентифицировать их по подсетям на конечных сервисах (а при желании и по связке ip с логином) внутри облака, не потеряв отказоустойчивость.

Дополнительно пара слов о том, как использовать API.

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии20

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность