All streams
Search
Write a publication
Pull to refresh
60
0

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

Send message

Архитектура и реактивное программирование

Level of difficultyMedium
Reading time9 min
Views34K
reactivity as a pattern for low models coupling

Что такое реактивное программирование? Не Rx. И даже не Excel. Это архитектурный паттерн, позволяющий абсолютно иначе писать код. В статье мы устаканим фундаментальные знания, утвердимся в том, что React.js всё же является реактивным, и подумаем о том, как и когда нужно, а когда не нужно применять паттерны реактивного программирования.
Читать дальше →

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

Level of difficultyEasy
Reading time6 min
Views6.4K

Как-то раз мы сидели с другом и подумали: а что, если попробовать управлять вещами реального мира из мира виртуального?! Например, роботами. Мысль не новая, и в том или ином воплощении она широко распространена, например, в области IoT.

Немного забегая вперёд: в результате мы разработали роботов и систему удалённого управления. Один из видеороликов рабочих тестов системы заметили на телеканале НТВ, и нас пригласили на съёмки телепередачи "Чудо техники", которые прошли в Сколково, в Институте науки и технологий.

Но обо всём по порядку…
Читать дальше →

У HDD нет будущего? Погодите, не так быстро…

Level of difficultyEasy
Reading time5 min
Views32K


Будущее HDD зависит от того, кого спросить. Есть адепты SSD, которые не видят в «устаревшей» технологии HDD никаких перспектив. Действительно, SSD прогрессируют гораздо быстрее: это касается и технологического прогресса, и стоимости. Если экстраполировать нынешние темпы развития отрасли, то создаётся впечатление, что SSD вытеснят HDD во всех сферах применения в ближайшие десятилетия.

Но по факту этого не происходит.
Читать дальше →

Рендеринг на сервере и HTMX — это будущее

Level of difficultyMedium
Reading time14 min
Views44K

Современная ситуация с разработкой веб-приложений


Сегодня пользователи ожидают от веб-приложений плавной работы без перезагрузок страниц. К сожалению, эти ожидания обычно реализуются в виде одностраничных приложений (single-page application, SPA), использующих библиотеки и фреймворки наподобие React и Angular. Эти фреймворки очень специализированы и с ними может быть трудно работать.

Новый подход заключается в том, чтобы вернуть возможность реализации этого UX в руки инженеров, разрабатывавших веб-сайты до возникновения безумия SPA, используя готовые наборы инструментов и знания. HTMX — лучший пример такого подхода из тех, что я видел.
Читать дальше →

Обновление KB5026372 вызывает нарушения в работе сетевых подключений и запускает циклический ребут

Level of difficultyEasy
Reading time2 min
Views9.8K

9 мая 2023 года компания Microsoft выпустила обновление KB5026372, предназначенное для Windows 11. В результате установки данного пакета у большого количества пользователей наблюдаются проблемы в работе VPN-соединений. Плюс ко всему, данное обновление может выполнять активацию защитной опции шифрования диска BitLocker.

В описании релиза сказано, что обновление устраняет проблемы безопасности операционной системы. В частности, оно включает в себя улучшения, которые были частью обновления KB5025305, выпущенного 25 апреля 2023 года.

После его установки пользователи фиксировали серьёзное снижение скорости загрузки и отдачи данных при использовании VPN-соединения. Кроме того, возникали сложности при загрузке файлов при помощи SFTP через L2TP/IPsec VPN. При всём при этом проблему не смогли решить перезапуск рабочей станции, очистка DNS, а также отключение протокола IPv6 и переподключение WAN.
Читать дальше →

Форматы векторной графики. Замена «толстому» SVG

Level of difficultyEasy
Reading time5 min
Views18K
Векторизация растровой графики, источник

Все знают стандарт векторной графики SVG (Scalable Vector Graphics). Великая вещь, которая незаменима в веб-дизайне. Но этот формат до сих пор полностью не поддерживается ни в одном браузере по одной простой причине: он невероятно сложный. Если посмотреть на спецификации, там более 200 подпунктов в 27 разделах (около 900 страниц на бумаге). Только оглавление занимает 19 экранов. Мягко говоря, это перебор.

К счастью, SVG — не единственный формат векторной графики. Есть более эффективные и минималистичные альтернативы.
Читать дальше →

Эй, Google, это твой баг

Level of difficultyEasy
Reading time8 min
Views8.2K

Это история о том, как мы обнаружили баг в приложении для Android и упорно пытались доказать, что это баг Google, а потом ещё упорнее пытались заставить компанию его устранить.

Прежде чем вдаваться в подробности, приведу немного контекста.


▍ Да, это заняло больше четырёх месяцев!


Почему так долго? Позвольте мне объяснить природу бага и хронологические этапы его устранения.
Читать дальше →

Ускоряем Python в сто раз при помощи менее чем ста строк на Rust

Level of difficultyMedium
Reading time15 min
Views21K

Однажды на работе у нас возникла проблема с производительностью одной из наших основных Python-библиотек.

Эта библиотека формирует фундамент нашего конвейера 3D-обработки. Это довольно большая и сложная библиотека, использующая NumPy и другие научные пакеты Python для выполнения широкого спектра математических и геометрических операций.

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

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

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

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

Если вы хотите сразу перейти к получившемуся коду, то читайте раздел «Подведение итогов».
Читать дальше →

FET: (F)дружелюбный (E)эффективный (T)транзистор

Level of difficultyMedium
Reading time10 min
Views23K

Работая со схемой, управляющей приличной силой тока, вы зачастую сталкиваетесь с полевыми транзисторами (FET, Field-Effect Transistor). Независимо от того, хотите ли вы управлять парой мощных светодиодов, двигателем или включать/отключать USB-устройство, в схеме обычно присутствует полевой транзистор, выполняющий часть ответственной работы. Вы можете не знать, как именно он функционирует, как его использовать и какие нюансы при этом учитывать — поэтому начнём с основ.
Читать дальше →

Ответом на задачу по упаковке цветов в бесконечной сетке оказалось число 15

Level of difficultyMedium
Reading time7 min
Views7.7K
Видео

В задаче по «упаковке цветов графа» (в оригинале packing coloring, — прим. пер.) спрашивается, сколько чисел необходимо для заполнения бесконечной сетки так, чтобы идентичные числа никогда не оказывались слишком близко друг к другу. И новый арифметический эксперимент с использованием компьютера даёт на удивление простой ответ.

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

Феррожидкости на службе человечества: магнитореологическое полирование и не только

Level of difficultyMedium
Reading time7 min
Views7.1K
Картинка Freepik

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

Пол-лимона

Reading time1 min
Views23K

Наверное, будет непросто найти пользователя Хабра, который бы не знал такого сочетания из 5 букв, как RUVDS. За восемь лет, что мы присутствуем на Хабре, пять уверенно держимся на первом месте — это заслуга десятков сотрудников компании и звёздных авторов, с которыми в этом году мы планируем достичь отметки 3000 публикаций в блоге. Но RUVDS это не только буквы, блог намбаван, крутые конкурсы, квесты и спецпроекты — прежде всего это отличный хостинг с датацентрами в десятке стран, на которых мы недавно перешагнули планку в 500 тысяч серверов, в честь чего мы и решили устроить эту забаву.

Читать далее

Обобщай это, обобщай то

Level of difficultyMedium
Reading time7 min
Views6.7K


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

На этот раз мы остановимся на связи между алгебраическими кольцами и алгоритмом поиска выпуклой оболочки множества точек (convex hull).
Читать дальше →

Почему мы стали дороже в этом году

Level of difficultyEasy
Reading time8 min
Views16K
Про такое обычно не пишут посты и вообще всеми силами стараются аккуратно спрятать под ковёр. Но вы нас уже раза три спросили, почему мы подняли цены.

Отвечаю: потому что мы очень жадные!


Настолько жадные, что учли инфляцию, колебания курса, повышение стоимости лицензий Microsoft (а мы всё ещё не пиратим), допиздержки на серый импорт железа, повышение цен на IP-адреса и глобальное потепление. Повысили цены и всё равно остались примерно в 2–4 раза дешевле облака одного очень российского поисковика.

В общем, такие времена. Кто-то разливает молоко в пакет по 0,9 литра, а кто-то покупает в VDS-хостинг десктопное железо. Но мы уже выросли достаточно, чтобы понимать, что такое планирование вдолгую, и знаем, что важно нашим клиентам.

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

Новый способ угона автомобилей без ключа: инъецирование через CAN

Level of difficultyMedium
Reading time19 min
Views27K
Это детективная история о краже автомобиля и о том, как мы выявили эпидемию высокотехнологичных угонов автомобилей. Она начинается с твита. В апреле 2022 года мой друг Иэн Тэбор написал твит о том, что его машину взломали вандалы, вытащили фару и отсоединили провода.

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

Это казалось бессмысленным актом вандализма любителей разрушать прекрасное. Спустя три месяца ситуация повторилась.
Читать дальше →

Математический подход к выбору девушки*. Правило 37%

Level of difficultyEasy
Reading time7 min
Views49K


В наше время многие находят вторую половинку в интернете: на тематических форумах и в онлайн-сообществах, в играх, на сайтах знакомств и приложениях вроде «Тиндера», где знакомства вообще поставлены на конвейер. Если десять лет назад 22% всех браков в США начинались со знакомства в интернете, то сейчас доля онлайн-знакомств превысила 39%. По сути, интернет стал основным способом знакомства мужчин и женщин, как долговременного, так и краткосрочного. Это очень удобно для гиков и специалистов с техническим образованием, поскольку мы получаем конкурентное преимущество, используя привычные инструменты. Например, можно поддерживать десятки чат-сессий в десктопном приложении или применять методы численного анализа в Excel/Google Sheets.

*Примечание. Под «девушкой» здесь и далее подразумевается любой объект, поочерёдно рассматриваемый из ограниченного пула схожих объектов с отличающимися характеристиками. Это может быть не только девушка, но и мужчина, квартира для съёма, автомобиль на вторичном рынке, домик в деревне, работодатель и т. д.
Читать дальше →

Halo: Combat Evolved — отец современных шутеров

Level of difficultyEasy
Reading time10 min
Views5.9K
image

Титул «отца шутеров» с конца 90-х годов полноправно носит первая часть Doom. И каждому ясно почему: перечисление всего, что дало игровой индустрии творение Кармака и Ромеро, тянет на отдельный материал. Без Doom было бы невозможно представить, как выглядели бы шутеры сейчас и были бы они вообще в том виде, в котором мы привыкли представлять компьютерные стрелялки; не было бы многих графических технологий, построенных на основе её игрового движка. Не вышел бы следующий проект ID Software, Quake — серия, которая по сути создала такие привычные нам сейчас явления, как игровые монтажи и киберспорт.

Но Doom вышел в 1993 году, и не нужно быть экспертом, чтобы заметить, что большинство шутеров на сегодняшнем рынке имеют мало схожего с геймплейными основами первого проекта ID. Потому я предлагаю немного видоизменить генеалогическое сравнение в развитии жанра и поставить первую игру про измельчение демонов на вполне оправданное место «деда» в родовом древе шутеров. Ведь на место того, кто дал современным проектам их основные механики и стиль игры, подойдёт другая классика игростроя от именитой студии Bungie.

Встречайте «батю» современных шутеров — Halo: Combat Evolved.
Читать дальше →

Нестабильный Wi-Fi? MikroTik покупай, частоту на нём автоматом меняй

Level of difficultyMedium
Reading time17 min
Views49K

В настоящее время интерференция наиболее актуальна для диапазона 2.4 ГГц, который перенасыщен работой вездесущих точек доступа. В статье я рассмотрел, какие возможности по исследованию радиочастотного спектра имеются на борту RouterOS, сформулировал рекомендации по выбору рабочей частоты точки доступа, работающей в сети без контроллера, а также предложил авторскую реализацию её автоматической смены. Предыстория такова, что ко мне обратилась компания Coffee Cup, у которой имеется сеть точек продаж формата кофе с собой, размещённых в разнокалиберных торговых центрах различных городов. Для работы кассового оборудования жизненно необходима работа Wi-Fi именно в диапазоне 2.4 ГГц, который, как следует ожидать, сильно зашумлён даже в огромных ТРЦ. Проблема оказалась настолько острой, что периодически устройства не могли нормально выйти в интернет, войдя в пике попыток переподключений к точке доступа. Вот в этом контексте и будет идти повествование, с отвлечением на моделирование других ситуаций.
Читать дальше →

Как не надо открывать ИТ-бизнес в Казахстане: наш пример

Level of difficultyEasy
Reading time4 min
Views24K
В Казахстан мы заходили ровно так же, как привыкли в Европах. Выбрали два ЦОДа по спецификациям из списка доступных дата-центров, нашли партнёра с каналами связи и свободными мощностями в выделенных секциях колокации и договорились, что встаём. Дальше мы выпустили стандартный пресс-релиз про то, что вот русская хостинг-компания открывает на территории Казахстана две площадки.

Дальше началась цепочка смешных и не очень совпадений.

«Коммерсант» и другие издания опубликовали наш релиз. Потому что есть дефицит хороших новостей про российский бизнес.

Из «Коммерсанта» про это узнал «Форбс Казахстан» и перепостил новость. Только вот есть нюанс. В релизе у нас было «на мощностях «Транстелекома» (мы вставали в их ЦОДы), но в бумажную газету почему-то попало в формулировке «совместно». А мы, напомню, вставали через их арендатора, условно, в секцию к магистральному провайдеру, брали несколько стоек для начала.

Кто-то из руководства «Транстелекома» пролистал за утренним чаем «Форбс» и узнал много нового. В частности, о своём стратегическом партнёрстве.


А тут надо сказать, что до этого на рынке случилась очень забавная (или не очень) история с газетной уткой. О ней мы тоже не знали, конечно же.
Читать дальше →

Ностальгические игры: Diablo II

Level of difficultyEasy
Reading time10 min
Views14K


Diablo известна каждому, кто хоть немного знаком с миром видеоигр. В нулевые эта игра успела побывать на компьютере почти любого геймера. А в игровых клубах среди компов с запущенными Warcraft 3 и Counter Strike всегда находился тот, на котором играли в Diablo. Обычно он располагался где-то в уголке, а несколько человек за спиной играющего, подсказывая, как качаться правильно, возмущались, что он всё делает не так.

Как-то раз, когда я ещё учился в школе, ко мне пришёл друг и установил Diablo II, ставшую одной из моих самых любимых игр на всю последующую жизнь! Надеюсь, я стану для вас таким же другом, если вы ещё не знакомы с данной частью столь известной серии. Хотя, учитывая культовый статус игры, сомневаюсь, что кто-то не играл в неё. Поэтому буду рад, если смогу побудить вас вернуться в столь чарующий мир и, как в старые добрые времена, сразить Баала и Диабло!
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Works in
Registered
Activity