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

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Математическая продлёнка. Математика кривого пропеллера

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров15K

Вы, наверняка, знаете отчего "гнётся и рвётся" пропеллер на цифровых фото и видео. А какую именно форму принимают лопасти винта? Как зависит их видимая форма от скорости вращения? И причём здесь гиперболы?

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

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

Долгоиграющие приложения на PHP

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров19K

Мы часто сталкиваемся с задачами, которые требуют работы нашего кода дольше, чем длится простой HTTP-запрос. Это могут быть как выгрузки данных для интеграции с партнёрами, так и просто приложения, которые должны реагировать на события в системе в момент их появления. Конечно, можно использовать другие языки программирования, но это увеличит стек и усложнит систему.

Меня зовут Александр Пряхин, я TechUnit Lead в Авито. В IT работаю уже 14 лет. Из них 8 лет руковожу командами. Параллельно с этим преподаю и менторю. Сегодня разберём, как готовить демонов на PHP — от А до Я, и почему это актуально.

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

Простая схема на оптроне создает «ламповый» звук

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров18K

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

Тогда я написал в Electronic Design News, который довольно быстро принял статью к рассмотрению и через некоторое время опубликовал ее. Теперь собственно статья.

Эта простая схема основана на схеме, показанной на рис. 2 в моей статье (1). Известно, что главной особенностью ламповых усилителей является наличие небольших искажений. В этих искажениях преобладает вторая гармоника. Некоторые оптроны имеют проходную характеристику, близкую к проходной характеристике лампы, например, типа EL34.

Простая схема с оптроном типа TLP621 показана на рис. 1.

Читать далее
Всего голосов 61: ↑60 и ↓1+59
Комментарии93

Утечка данных сайтов BI.ZONE: результаты расследования и процесс реагирования

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров29K

30 апреля телеграм-канал DumpForums объявил о взломе наших ресурсов, выложив скриншоты конфигов с персональными данными. Последние двое суток мы работали над тем, чтобы оценить масштабы инцидента и свести ущерб от него к минимуму. Теперь мы готовы публично рассказать о первых результатах этой работы.

Читать
Всего голосов 66: ↑63 и ↓3+60
Комментарии22

Истории

Алгоритмы балансировки нагрузок

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров31K

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

В этом посте мы рассмотрим способы, которыми один балансировщик нагрузок может распределять HTTP-запросы на множество серверов. Мы начнём снизу и проделаем весь путь вверх до современных алгоритмов балансировки нагрузок.
Читать дальше →
Всего голосов 107: ↑106 и ↓1+105
Комментарии16

Оживляем веб-камеру 1999 года

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

Покупая девайс, мы, в принципе, понимаем, что вечно он не прослужит: разъёмы износятся и/или сам прибор выйдет из моды. Но лично меня наиболее удручает ещё одна причина избавляться от техники: для неё просто перестают делать драйвера.

Успех USB особенно примечателен. Этот стандарт с нами уже очень долго, и разъём его практически не менялся (в основном, не считая USB-C). Это значит, что очень старые устройства под USB 1 по-прежнему можно применять в системах, продаваемых сегодня. Как минимум, так должно быть, если у старых устройств есть драйверы для тех операционных систем, что актуальны сегодня.

Читать далее
Всего голосов 93: ↑92 и ↓1+91
Комментарии25

Интересные трюки HTML, CSS и JS

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров21K

Здесь вы найдёте небольшую подборку нестандартных вариантов использования HTML/CSS/JS. Если информация окажется полезной, будем собирать эти хаки на постоянной основе и публиковать по мере накопления.

Примечание. Некоторые трюки основаны на открытых уязвимостях браузеров и поисковой системы Google и др. Поэтому могут перестать работать в ближайшее время (или продолжат, если разработчики не признают баги и не захотят их исправлять). Другие функции работают только начиная с конкретных версий Chrome, Firefox и т. д.
Читать дальше →
Всего голосов 61: ↑58 и ↓3+55
Комментарии17

Из небытия 1987 года. Оживляем индустриальный программатор SIEMENS SIMATIC S5 PG685, ставим CP/M-86 и MS-DOS 2.11

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров9.2K
image

Приобрести в 2023 году программатор 36-летнего возраста и не поэкспериментировать? В этой статье рассмотрим этапы восстановления работоспособности программатора Siemens Simatic, увидим основные узлы аппаратной составляющей, а также установим операционные системы MS-DOS 2.11 и CP/M-86.

Под катом обзор программатора, фотографии ретро-плат, этапы профилактики, процедура включения, фотографии и видео загрузки операционных систем.

Добро пожаловать. :)
Читать дальше →
Всего голосов 54: ↑54 и ↓0+54
Комментарии33

Домашний NAS сервер

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

Домашний NAS сервер на 10 жестких дисков для личного использования на базе Linux

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

Читать далее
Всего голосов 139: ↑134 и ↓5+129
Комментарии94

Что не так с OpenAPI?

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров34K

Как мы боролись с документированием API на наших проектах, и как мы немного сошли с ума

У вас на проекте порядок с документацией на API? Скорее всего нет. И в нашей компании порядка не было.

Не будем рассказывать, к каким печальным последствиям приводит ошибочная, устаревшая или вовсе отсутствующая API-документация. Почему же на большинстве проектов не удаётся решить такой, казалось бы, несложный вопрос?

Читать далее
Всего голосов 66: ↑58 и ↓8+50
Комментарии100

Мое Знакомство с УИИ или Путешествие в Параллельную Реальность

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров14K

Эта статья представляет собой рассказ о том, как я узнала о существовании параллельной реальности под названием Университет Искусственного Интеллекта (УИИ), плавно переходящий в мини-расследование того, что же на самом деле скрывает за собой это название. В основном рассказ cкомпонован из серии постов в моем телеграм-канале, которые я написала в конце прошлого года под впечатлениями от данного интеллектуального путешествия, с небольшими дополнениями на основании новой полученной с тех пор информации.
Я надеюсь, что рассказ будет полезен новичкам в изучении искусственного интеллекта, чтобы они не потратили сотни тысяч рублей зря, а тем людям, которые занимаются темой давно, доставит удивление и... просто доставит.

Для начала скажу пару слов о себе.
Я работаю в области машинного обучения уже несколько лет, успев потрудиться за это время в нескольких компаниях на разных ролях, связанных с исследованиями и разработкой. Сейчас я работаю в R'n'D команде, где занимаюсь исследованиями в области NLP (Natural Language Processing) и подготовкой публикаций на конференции А*. Думаю, этой информации достаточно в качестве контекста, который поможет читателям лучше прочувствовать глубину моего культурного шока от контакта с феноменом под названием УИИ.

Читать далее
Всего голосов 69: ↑65 и ↓4+61
Комментарии24

Made at Intel. В поисках мессии

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

Эпоха Пола Отеллини была прекрасна, но она не могла продолжаться вечно. Все же Интел – технологическая компания и у руля в ней всегда стояли технократы. Роберт Нойс, Гордон Мур (светлая память недавно ушедшему ветерану), Энди Гроув. Да и Крейг Баррет мало в чем уступал мастодонтам. Но вот в эпоху Отеллини образовался некий вакуум технического лидерства. А когда у руля встал Боб Свон стал еще более заметным. И контора принялась за поиски «мессии от технологий», который мог бы представлять Интел во внутренних и внешних коммуникациях. Ее мучительным поискам и посвящена эта глава.

Читать далее
Всего голосов 117: ↑114 и ↓3+111
Комментарии30

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

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров19K

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

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

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

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

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

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

Если вы хотите сразу перейти к получившемуся коду, то читайте раздел «Подведение итогов».
Читать дальше →
Всего голосов 76: ↑72 и ↓4+68
Комментарии10

Ближайшие события

Microsoft переписывает код ядра и некоторых библиотек Windows на языке Rust. Но зачем?

Время на прочтение4 мин
Количество просмотров46K
microsoft-is-rewriting-core-windows-libraries-in-rust-v0-Nsy2e3-Z9k4-XXJv-6k-XV9d4a-Mmj-VKb-Th-Cj-Sh

Недавно стало известно о том, что команда разработчиков Windows 11 занимается новым типом работы — переписывает ряд модулей ядра и системных библиотек операционной системы на Rust. При этом работа уже в разгаре, это не просто анонс проекта или планы на будущее — реализация идет полным ходом. Зачем корпорации все это понадобилось?
Читать дальше →
Всего голосов 108: ↑104 и ↓4+100
Комментарии227

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

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров7.6K
Видео

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

Сколько чисел потребуется для заполнения бесконечной сетки так, чтобы расстояние между вхождениями одного числа было больше самого этого числа?
Читать дальше →
Всего голосов 54: ↑53 и ↓1+52
Комментарии12

Полезен ли сегодня быстрый обратный квадратный корень из Quake III?

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

В 2005 году id Software опубликовала под лицензией GPL-2 исходный код своей игры 1999 года Quake III Arena. В файле code/game/q_math.c есть функция для вычисления обратного квадратного корня числа, которая на первый взгляд выглядит очень любопытным алгоритмом:

float Q_rsqrt( float number )
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;

    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;                       // зловещий хакинг чисел с плавающей запятой на уровне битов
    i  = 0x5f3759df - ( i >> 1 );               // какого чёрта?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // первая итерация
//  y  = y * ( threehalfs - ( x2 * y * y ) );   // вторая итерация, можно удалить

    return y;
}

Об этом алгоритме написано множество статей, и ему посвящена хорошая страница Википедии, где он назван fast inverse square root (быстрым обратным квадратным корнем). На самом деле, этот алгоритм упоминался на различных форумах ещё до публикации исходного кода Q3. Ryszard из Beyond3D провёл в 2004-2005 годах исследование и в конечном итоге выяснил, что первоначальным автором алгоритма был Грег Уолш из Ardent Computer, который создал его десятью годами ранее.
Читать дальше →
Всего голосов 196: ↑194 и ↓2+192
Комментарии52

MagiKey. Магнитный ключ «на максималках»

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров14K
Приветствую всех!

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

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



Итак, сегодня поговорим о самой продвинутой реализации устройств данного типа. Узнаем, как оно устроено и как работает, а также сделаем из подручных средств ключи для данного считывателя. Традиционно будет много интересного.
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии19

Дампер картриджей для Денди/Famicom

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров20K
Восемь лет назад я уже писал статью о том, как я делал простенький дампер (устройство для чтения картриджей) для Денди/Famicom. Думаю, пора рассказать о том, как этот проект преобразился спустя эти годы вместе с ростом моих скиллов.


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

Ключевые характеристики материалов для производства печатных плат

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров12K

В этой статье мы пройдемся по типовой технической спецификации — документу, в котором собраны требования к базовым материалам для печатной платы: фольга́м, препрегам и ко́рам. Поймём, как формируются эти требования. И что важно учитывать, чтобы плата не отправилась в утиль на этапе производства, монтажа или эксплуатации.  

Читать далее
Всего голосов 60: ↑59 и ↓1+58
Комментарии28

От проверки шрифтов до HAR-файлов: оцениваем инструменты для ускорения работы тестировщиков

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров13K

Привет, Хабр! Меня зовут Ульяна, я тестирую новые фичи и продукты Selectel. Обычно тестирую фронтенд сайта компании или панели управления, но сегодня выступлю немного в другой роли тестировщика.

Я завсегдатай Heisenbug — одной из самых крупных конференций для тестировщиков. На последнем митапе мне запомнился доклад про различные фичи и возможности браузерных инструментов разработчика. Некоторые были для меня в новинку, и я решила протестировать самые интересные и полезные, на мой взгляд. Оценила их на практике и составила обзор по каждому. Если вы в поисках новых инструментов для работы, вам под кат.
Читать дальше →
Всего голосов 56: ↑55 и ↓1+54
Комментарии5
12 ...
50