Pull to refresh
0
0
Дмитрий @ex_ineris

QA Engineer

Send message

Червь, которого не может взломать ни один компьютер

Level of difficultyMedium
Reading time9 min
Views7.6K

Когда я запустила первую симуляцию червя, ветра Санта-Аны дули уже сильно. Я не хакер, но это было просто: открываешь оболочку терминала, вставляешь команды из GitHub и наблюдаешь за бегущим по экрану каскадом символов. Совсем как в фильмах. Пока я искала в пролетающем перед глазами коде узнаваемые слова — neuron, synapse — ко мне подошёл друг, чтобы пойти со мной на ужин. «Секунду. Я тут прогоняю на компьютере червя», — крикнула я ему из офиса.

В корейском ресторане царил хаос: ветер клонил пальмы и гонял магазинные тележки по парковке. Атмосфера казалась сюрреалистичной, похожей на подкаст, проигрываемый с удвоенной скоростью. «Чем ты там занимаешься? Киберпреступлениями?», — спросил друг. Я попробовала ему объяснить: «Нет, не червя типа Stuxnet. Настоящего живого червя».

Когда я добралась домой, было уже темно, а в Альтадене уже загорались первые искорки пожаров. На моём ноутбуке меня ждал червь в объёмной пиксельной коробке. Заострённый с обоих концов, он висел в тумане из частиц, странно прямой и неподвижный. Разумеется, он никогда не был живым. Но мне он казался мертвее мёртвого. «Браво», — сказал мне Стивен Ларсон, когда я написала ему тем же вечером, — «вы добились состояния «hello world» в симуляции».
Читать дальше →

Пишем свой pastebin, используя только userver

Reading time18 min
Views4.4K

Всем привет! Меня зовут Василий Куликов, я работаю ведущим разработчиком в Техплатформе Екома и Райдтеха Яндекса и последние пять лет разрабатываю фреймворк userver.

Это веб‑фреймворк, который позволяет создавать высоконагруженные отказоустойчивые сервисы на С++. Сегодня я расскажу, как написать на нём игрушечный, но рабочий сервис, который реализует функциональность pastebin.

Читать далее

Домашнее облако: как я построил цифровой «бункер» для важных данных

Reading time30 min
Views33K

Фото важных семейных событий и видео из путешествий, копии важных документов, музыка, фильмы, которых не найти на стримингах — многие задумывались, как сохранить все самое важное так, чтобы ситуация с не вовремя сломавшейся флешкой не обернулась потерей ценных данных навсегда. Кому-то для спокойствия достаточно Google Drive или Яндекс.Диска, но я решил пойти чуть дальше и построить собственное домашнее облако с приложениями Immich и Nextcloud.

Кстати, привет, Хабр! Я Денис Петухов, Python-разработчик в Cloud.ru и сегодня я расскажу, как построил облако в шкафу. По ходу дела дам практические рекомендации по архитектуре, выбору оборудования, приложений, настройке сети и даже приведу расчеты того, что выгоднее, и сколько электричества «съедает» домашняя хранилка в месяц.

Читать дальше

Разбирая бэклог. Часть 14.2. Mortal Kombat. Краткий казуальный экскурс по серии на базе эмуляторов PSX / PS2. 2002-2008

Level of difficultyEasy
Reading time22 min
Views1.1K

Mortal Kombat: Deadly Alliance (2002).

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

Читать далее

Подбираем видеокарту под miniITX-систему

Reading time6 min
Views215K
Как-то передо мной встал вопрос о покупке своим детям игровой ТВ-приставки, но после некоторых раздумий решил собрать игровой компьютер размером как раз как эти самые приставки — т.е. формата miniITX. Во-первых, под PC игры стоят дешевле, во-вторых, на PC можно играть в игры для игровой консоли не предназначенные и которые на приставках никогда не выйдут. К тому же хотелось, чтобы машина совмещала в себе еще и функции медиа-сервера. Ну, т.е. деткам и в игрушки поиграть, и мультики/кино посмотреть.

В соответствии с этим мне необходима платформа с отдельным современным процессором типа Core i3/i5 и современной дискретной видеокартой. Остальное (жесткий диск, Wi-Fi адаптер, пульты, джойстики, оптический привод) по вкусу. Сказано — сделано.

Но, как оказалось, не все так просто. Последний раз я лез с отверткой в системный блок лет семь назад и как-то не очень ориентируюсь в современных «железных» форматах и технологиях. Как оказалось, сборка miniITX-компьютера оказалась нетривиальной задачей со своими подводными камнями. Забегая вперед, скажу, что мне пришлось докупать/менять ранее приобретенные комплектующие, поработать ножовкой и напильником и в итоге я собрал две мини-системы — детям игровую машину и себе рабочую станцию.
Как собрать miniITX-систему с первого раза

Тестирование влево, тестирование вправо: как не дать багам шанса

Level of difficultyEasy
Reading time13 min
Views5.8K

Неприятная ситуация: продукт проходит тщательную проверку на всех этапах разработки, а после релиза всё равно возникают неожиданные ошибки… А ведь это происходит, потому что тестирования на ранних стадиях (shift-left testing, «влево») не всегда достаточно, чтобы гарантировать стабильность продукта. Поэтому важно учитывать и тестирование в продакшене (shift-right testing, «вправо»). 

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

Читать далее

Отбитый дотнет

Level of difficultyMedium
Reading time10 min
Views29K

Поскольку прошлая статья про «особенную» Java вызвала интерес, мы решили продолжить праздник. Настало время познакомить разработчиков С# с темной стороной любимой технологии — сегодня шатаем .NET!

Читать далее

Поиск ликвидных облигаций с использованием Python

Level of difficultyEasy
Reading time5 min
Views14K

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

Пять лет назад написал Node.js-скрипт, затем адаптировал его для Google Таблиц, а теперь разрабатываю Python версию. При помощи сообщества на GitHub эта Python версия идёт к созданию полноценной библиотеки с расширенными возможностями: автоматический поиск ликвидных облигаций, расчет денежных потоков, сбор новостей по эмитентам и вычисление оптимального объема покупки. Все это направлено на помощь простым инвесторам, вроде нас с вами, чтобы оперативно находить выгодные инвестиционные инструменты и принимать решения на основе актуальной информации.

Проект полностью open source.

Автоматизация работы с облигациями

Управляем сетевыми политиками доступа в стиле «Network as Code». Часть 2

Level of difficultyMedium
Reading time18 min
Views2.1K

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

Читать далее

Бэктестинг торговых стратегий на Python с помощью Numba. Когда перевод расчетов на GPU действительно оправдан?

Level of difficultyHard
Reading time26 min
Views6.5K

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

В этой статье мы разберем, как реализовать бэктестинг на чистом Python, посмотрим сколько времени могут занимать вычисления, а также попробуем найти разные способы оптимизации.

Python, как известно — это интерпретируемый язык, что означает, что код выполняется построчно во время исполнения программы, а не компилируется в машинный код заранее, как это происходит, например, в C или C++. Это делает разработку быстрее и удобнее, так как можно сразу видеть результаты выполнения кода и легко отлаживать программы. Но этот же факт, в свою очередь, приводит к тому, что Python заметно уступает в скорости более низкоуровневым языкам. К тому же Python использует динамическую типизацию, что требует дополнительных проверок и снижает производительность и если данных очень много, это может приводить к значительным сложностям, связанным с увеличением времени вычислений.

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

Читать далее

Соцсети как цифровой фастфуд

Level of difficultyEasy
Reading time7 min
Views5K

Несмотря на известные факты о вреде для здоровья, Facebook* начинает окучивать детей

Согласно исследованию 2012 года, опубликованному на сайте Национального института здоровья, интернет-зависимость (Internet Addiction Disorder, IAD) разрушает жизнь, вызывая «неврологические осложнения, психологические нарушения и социальные проблемы». В справочнике психических заболеваний «Диагностическое и статистическое руководство по психическим расстройствам» (DSM-5) это расстройство до сих пор официально не значится, однако в МКБ-11 (май 2019 г.) включены зависимость от видеоигр и зависимость от азартных онлайн-игр.

Стимулируя выброс дофамина, социальные сети действуют как «цифровой наркотик» и вызывают некоторую степень зависимости. Наверняка вы видели людей, которые буквально каждый день заходят в свой профиль, чтобы почитать ленту новостей от «френдов».
Читать дальше →

Зачем нужен VPS? Telegram-боты, биржи, игры и ещё 7 популярных сценариев

Level of difficultyEasy
Reading time5 min
Views8.9K
image

Недавно наша компания достигла отметки в 1 000 000 созданных серверов. Это хороший повод рассказать о том, как клиенты RUVDS используют VPS и почему эта услуга настолько популярна. В этой статье мы рассмотрим основные сценарии использования виртуальных серверов из нашей практики и покажем, как много задач можно решить с помощью VPS.
Читать дальше →

HDR-видео в SDR и iec61966-2-1. Более красочное! ffmpeg

Level of difficultyMedium
Reading time3 min
Views2.2K
HDR-видео — это технология отображения яркости и цветов в видео, которая появилась в 2014 году. HDR дает возможность представить значительно более яркие блики, более тёмные тени, больше деталей и более красочные цвета. НО… Большинство однако является стандартный динамический диапазон или SDR, и цветовое пространство Rec. 709. Поэтому я буду делать SDR. Но из HDR-видео в hable! Причем я буду делать zscale=transfer=iec61966-2-1! А не 709. Это Default RGB Colour Space.

Что это дает? Несколько более красочное видео. Вот обычное видео в SDR «Доктор Стрэндж В мультивселенной безумия» 2022 года.



HDR-видео в SDR и iec61966-2-1


Читать дальше →

ASML: Создание самых сложных машин на Земле

Reading time17 min
Views23K

ASML возникла в 1984 году как совместное предприятие Philips и ASM, и которое с самого начала рассматривалась как провальный проект. Но сегодня ASML имеет рыночную капитализацию более 300 млрд евро и является одной из самых важных компаний для технологического развития мира. Компании удалось создать, по сути, технологическую монополию в самом передовом оборудовании для производства чипов —литографии в экстремальном ультрафиолетовом диапазоне (EUV) - технологии, необходимой для создания самых современных чипов, с которой не смогла справиться ни одна другая компания в мире...

От аутсайдера-задиры до лидера литографии

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

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

Несмотря на внутренний скептицизм, Philips увидела спасение в партнерстве с ASM International , другой голландской компанией по производству оборудования для полупроводников, которая сегодня занимает лидирующие позиции на рынке оборудования для так называемого атомно-слоевого осаждения (ALD) и эпитаксии, используемых в передовом производстве микросхем. В 1984 году ASML была создана как совместное предприятие Philips и ASM со штаб-квартирой в Вельдховене. Поначалу компанию в значительной степени считали неудачной, не имея ни коммерческой жизнеспособности, ни даже надлежащего офиса. Ее первым рабочим пространством был набор деревянных бараков в кампусе Philips в Эйндховене. Моральный дух был низким, многие сотрудники скептически относились к шансам предприятия на успех, рассматривая его скорее как проект, обреченный на провал с самого начала.

Читать далее

Запускаем приложения в облаке без Kubernetes и настройки виртуальных машин: лабораторная

Reading time7 min
Views2.1K

Многие из вас прекрасно знают, насколько удобные и полезные инструменты виртуализация и Managed Kubernetes. А также понимают — чтобы ими управлять, нужен DevOps или как минимум тот, кто сможет настроить балансировщик. Но давайте на чистоту: когда приложение уже готово, заниматься инфраструктурными настройками не сильно хочется. Хочется быстро развернуть его и сразу показать коллегам, друзьям и другим пользователям интернета. 

Я Никита Бутримов — лидер направления в Cloud.ru, и сегодня я покажу, как быстро запускать frontend- и backend-приложения в облаке. А помогут нам в этом два сервиса — Evolution Container Apps и Evolution Artifact Registry.

Читать далее

Как я научил
 буфер обмена думать

Level of difficultyEasy
Reading time5 min
Views16K

Я научил буфер обмена думать, и теперь всё вокруг стало быстрее. А что если выделенный текст мгновенно станет грамотным, переведётся на нужный язык или расшифрует картинку? Одно нажатие — и ИИ исправляет ошибки в Telegram, объясняет код в VS Code или переводит иностранные мемы.

Читать далее

Внутренняя кухня UEFI: что это такое и как мы готовим его в YADRO

Level of difficultyMedium
Reading time18 min
Views28K

Привет, Хабр. На связи Сергей Пушкарёв, я руковожу отделом разработки BIOS в YADRO. Расскажу об устройстве UEFI и его применении в компании. Мы разрабатываем и выпускаем разные аппаратные платформы: серверы, системы хранения данных, клиентское и телеком-оборудование. 

Один из «кирпичиков», который обеспечивает инициализацию и функционирование оборудования, — это BIOS (но правильнее говорить UEFI 🙂). В статье кратко разберем историю этой системы и ее современную реализацию — UEFI. Также поговорим о подходе к разработке и отладке этого ПО в YADRO.

Вы узнаете, зачем нам нужна «синяя коробка» Intel, как мы прошиваем BIOS и проводим диагностику «в полях».

Читать далее

Собираем сетевое хранилище (NAS) XPenology

Level of difficultyEasy
Reading time12 min
Views74K

Привет! С вами снова Александр, DevOps из Банки.ру. Прошлая статья «Домашний сервер на базе Proxmox» вызвала интерес сообщества и бурное обсуждение в комментариях. 

Сегодня продолжу тему и расскажу о сборке NAS (Network Attached Storage) своими руками из доступного сейчас железа. Остановлюсь на процессе выбора, покупках, ориентировочной цене общей сборки на данный момент. 

Читать далее

Сложно о простом. Как работает интернет. Часть 4. Что такое LAN, MAN, WAN, сети Clos и иерархия операторов

Level of difficultyMedium
Reading time20 min
Views33K

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

В предыдущей статье я рассказывал о маршрутизации в локальных сетях, а также рассматривал некоторые узконаправленные «фичи», связанные с маршрутизацией – Proxy ARP и super VLAN.

В этом цикле статей я не стану учить вас настраивать оборудование и проектировать сети. Я расскажу об основных (и не только) принципах построения сети, а также о функционировании сети и сетевых протоколов в стеке TCP/IP.

Читать далее

Разработка DHCP-сервера на Python

Level of difficultyEasy
Reading time14 min
Views6.6K

Привет, Хабр!

Сегодня мы рассмотрим, как создать собственный DHCP‑сервер на Python. Суть сервера проста — он динамически раздаёт IP‑адреса устройствам в сети, избавляя нас от головной боли статической конфигурации.

Суть сервера будет заключаться в том, чтобы «подставлять» IP‑адреса устройствам, заходящим в сеть. Сервер будет ловить DHCP‑запросы от клиентов, выбирать свободный IP из заранее подготовленного пула и подтверждать выдачу.

Читать далее

Information

Rating
7,215-th
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity