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

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

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

Структура PKCS7-файла

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

Довелось мне на днях столкнуться с такой напастью как p7s файл и, как вследствие этого, с Cryptographic Message Syntax (CMS). На хабре нашлась интересная статья описывающая структуру CMS данных, но в ней к сожалению нет примера, позволяющего наглядно продемонстрировать CMS на практике. Я хочу немного дополнить ту статью и разобрать внутренности файла цифровой подписи p7s.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии5

Для чего подходит ультрадешёвый сервер за 130 рублей

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


В рекламе RUVDS постоянно упоминаются дешёвые VPS-серверы «за 130 рублей в месяц». Но многие думают, что это маркетинговый трюк: такие серверы может и есть, но только для рекламы, чтобы предложение звучало красиво, а в реальности они совершенно непригодны. Ну что может сервер с 512 МБ оперативной памяти? Конечно же, ничего. На него даже операционка не встанет…

В реальности всё совсем иначе. На этот сервер ставятся разные дистрибутивы Linux, задачи он выполняет реальные, и вы даже получаете выделенный IP-адрес.
Читать дальше →
Всего голосов 83: ↑80 и ↓3+77
Комментарии135

Fallout Online Requiem

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

В этой статье я расскажу вам о таком проекте, как FOnline Requiem.

Fonline Requiem это игра по миру классических Fallout, созданная на FOnline Engine. Имеет высокий порог вхождения, поэтому за годы существования так и остается андерграундом. Держится проект на одном человеке, который много лет держит хост и обновляет игру самостоятельно. За годы существования вокруг игры собралось большое сообщество, оказывающее поддержку проекту.

Игровой процесс претерпел изменения в угоду мультиплеера. Режим боя стал в реальном времени, в бою персонажи шагают, а не бегают (на манер Fallout Tactics).

Баланс и ролевая система полностью переработаны.

Действие игры происходит в мире Fallout 2. Хабологи придумали репликацию, поэтому персонажи не умирают навсегда, а лишь реплицируются на одной из станций хабологов на пустошах.

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

Асинхронный python без головной боли (часть 1)

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

Почему так сложно понять asyncio?

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

Но будь я автором самого толстого в мире учебника по python, я бы рассказывал читателям про асинхронное программирование уже с первых страниц. Вот только написали "Hello, world!" и тут же приступили к созданию "Hello, asynchronous world!". А уже потом циклы, условия и все такое.

Съешь красную таблетку
Всего голосов 135: ↑135 и ↓0+135
Комментарии56

Трёхмерная графика с нуля. Часть 1: трассировка лучей

Время на прочтение42 мин
Количество просмотров130K
image


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

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

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


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

Движок для игры от первого лица в 265 строках Javascript

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

Сегодня окунёмся в мир, который можно потрогать. В этой статье мы исследуем, как с нуля, быстро и без особо сложной математики написать движок для игры от первого лица. Для этого мы воспользуемся приёмом под названием «бросание лучей» (raycasting). Возможно, вы видели примеры такой техники в играх Daggerfall и Duke Nukem 3D, а из более свежего – в статьях из «ludum dare» от Нотча Перссона. Что ж, для Нотча это неплохо, но не для меня! Вот демка (управление стрелками и тачпадом) [источник].
Читать дальше →
Всего голосов 78: ↑77 и ↓1+76
Комментарии36

Wireshark — подробное руководство по началу использования

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

Wireshark – это широко распространённый инструмент для захвата и анализа сетевого трафика, который активно используется как для образовательных целей, так и для устранения неполадок на компьютере или в сети. Wireshark работает практически со всеми протоколами модели OSI, обладает понятным для обычного пользователя интерфейсом и удобной системой фильтрации данных. Помимо всего этого, программа является кроссплатформенной и поддерживает следующие операционные системы: Windows, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, OpenBSD.

Читать далее
Всего голосов 41: ↑39 и ↓2+37
Комментарии21

MIDI chiptune + detune

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

Добавляем функциональность к музыкальному MIDI-синтезатору на двух чипах AY-3-8910, а также вспоминаем, что общего между музыкой и математикой.

Читать далее
Всего голосов 46: ↑45 и ↓1+44
Комментарии43

Разработка BIOS на языках высокого уровня

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров23K
Ничего лишнего: материнская плата, видеокарта и ROM-BIOS

Меня давно волнует вопрос, как подступиться к разработке на голом железе, на чистом си. Хотелось понять, каким же образом идёт запуск BIOS, u-boot, grub и прочих первичных загрузчиков. Ведь необходимо перейти от ассемблера к тёплому ламповому си и соблюсти условие, собрать всё это в линукс любимым компилятором gcc.

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

Здесь я хочу свести основные моменты разработки BIOS в одном месте и разобраться обо всех проблемах, которые я получил во время своих опытах в разработке (первая и вторая части).
Читать дальше →
Всего голосов 134: ↑133 и ↓1+132
Комментарии58

Файл-сервер на Raspberry Pi как домашний NAS

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

Одноплатные мини-компьютеры подходят для совершенно разных полезных применений: блокировки рекламы во всём трафике (Pi-hole), управления умным домом или печати на стареньком принтере в кладовке по Wi-Fi. Но практически идеальный вариант использования — в качестве файл-сервера с подключением внешнего SSD или HDD. Это может быть и домашний хостинг, и даже колокейшн в настоящем дата-центре.

Мы уже рассказывали про создание собственного веб-сервера на Andoid, а также про хостинг файлов в ДНК.

Теперь посмотрим, какие есть разработки под Linux:
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии28

Python & EEL. Делаем просто на Python’е и красиво на JS

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

Тема красивых интерфейсов была и будет актуальна всегда, кто-то использует для создания графических приложений C#, кто-то использует Java, кто-то уходит в дебри C++, ну а кто-то извращается с Python, используя tkinter или PyQT. Существуют различные технологии, позволяющие совмещать красоту графических дизайнов, создаваемых на HTML, CSS и JS с гибкостью в реализации логики приложения, которую может дать другой язык. Так вот, для тех, кто пишет на самом лучшем языке программирования Python, есть возможность писать красивые интерфейсы на HTML, CSS и JS и прикручивать к ним логику на Python.

В этой статья я хочу показать на небольшом примере, как же все таки создать простое и красивое десктопное приложение на HTML, CSS, JS и Python. В качестве библиотеки для связи всех компонентов будем использовать EEL.

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

Логирование в Python: руководство разработчика

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

Сталкивались ли вы с трудностями при отладке Python-кода? Если это так — то изучение того, как наладить логирование (журналирование, logging) в Python, способно помочь вам упростить задачи, решаемые при отладке.

Если вы — новичок, то вы, наверняка, привыкли пользоваться командой print(), выводя с её помощью определённые значения в ходе работы программы, проверяя, работает ли код так, как от него ожидается. Использование print() вполне может оправдать себя при отладке маленьких Python-программ. Но, когда вы перейдёте к более крупным и сложным проектам, вам понадобится постоянный журнал, содержащий больше информации о поведении вашего кода, помогающий вам планомерно отлаживать и отслеживать ошибки.

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

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

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

QML Самоучитель

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

Уже давно вышла версия Qt4 c поддержкой QML. С тех пор многое допиливалось и сейчас технология является довольно успешной и стабильной. Однако нормального описания так и не удавалось найти на русском языке. А на английском написано так, как говорится, "правой рукой, да левое ухо". Поэтому решил начать перевод самоучителя (пока базового, затем планирую расширенный) на русский язык. Собственно, найти самоучитель можно на моем GitHub или здесь ниже.

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

Как с помощью Python создать полностью автоматизированную трейдинговую систему на базе ИИ

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

Можно ли с помощью ИИ автоматизировать набор правил, по которым действуют на бирже профессиональные трейдеры? Команда VK Cloud Solutions перевела статью о том, как это удалось реализовать и что вышло из такой затеи.

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

Эмулятор CD-Rom для SonyPlaystation который я писал больше десяти лет. Часть 1

Время на прочтение6 мин
Количество просмотров20K
Давным-давно у нас в городе был игровой клуб на несколько SonyPlaystation. Где я очень по многу зависал. Там я полюбил PS1 и игры на неё. Использование CD-Rom в качестве носителя позволила привнести в игры ошеломительные по тем временам видео вставки, CD музыку в качестве оформления игрового процесса, возможность делать игры многодисковыми(с картриджами такого вроде не проворачивали), что был несомненный плюс. Но и привнесло один минус, а именно деградация лазера привода. И если в домашних условиях, возможно, это была и не большая проблема, то в игровом салоне умирали они раз в 2-3 месяца. Вот ещё там у меня родилась идея сделать эмулятор CD-Rom. И через очень много лет я таки исполнил свою мечту.

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

PS. я знаю про существование psio, и эмуляторы консолей, но мне был интересен процесс.
Читать дальше →
Всего голосов 82: ↑80 и ↓2+78
Комментарии26

Программирование с PyUSB 1.0

Время на прочтение15 мин
Количество просмотров50K
От переводчика:
Это перевод руководства Programming with PyUSB 1.0
Данное руководство написано силами разработчиков PyUSB, однако быстро пробежавшись по коммитам я полагаю, что основной автор руководства — walac.


Позвольте мне представиться


PyUSB 1.0 — это библиотека Python обеспечивающая легкий доступ к USB. PyUSB предоставляет различные функции:

  • На 100% написана на Python:
    В отличии от версий 0.x, которые были написаны на C, версия 1.0 написанна на Python. Это позволяет программистам на Python без опыта работы на C лучше понять как работает PyUSB.
  • Нейтральность платформы:
    Версия 1.0 включает в себя фронтенд-бэкенд схему. Она изолирует API от специфичных с точки зрения системы деталей реализации. Соединяет эти два слоя интерфейс IBackend. PyUSB идет вместе со встроенными бэкендами для libusb 0.1, libusb 1.0 и OpenUSB. Вы можете сами написать свой бэкенд, если хотите.
  • Портативность:
    PyUSB должен запускаться на любой платформе с Python >= 2.4, ctypes и, по крайней мере, одним из поддерживаемых встроенных бэкендов.
  • Простота:
    Взаимодействие с устройством USB никогда не было таким простым! USB — сложный протокол, а у PyUSB есть хорошие предустановки для наиболее распространенных конфигураций.
  • Поддержка изохронных передач:
    PyUSB поддерживает изохронные передачи, если лежащий в основе бэкенд поддерживает их.

Несмотря на то, что PyUSB делает программирование USB менее болезненным, в этом туториале предполагается, что у Вас есть минимальные знания USB протокола. Если Вы ничего не знаете о USB, я рекомендую Вам прекрасную книгу Яна Аксельсона «Совершенный USB» (Jan Axelson «USB Complete»).
Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии5

Разбираем алгоритмы компьютерной графики. Часть 3 – анимация «Пламя»

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

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

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

Методы определения принадлежности точки многоугольнику

Время на прочтение9 мин
Количество просмотров73K
Недавно на хабре была статья, в которой описывалось как можно определить, где находится точка по отношению к многоугольнику: внутри или снаружи. Подобная проблема встречается в геометрическом моделировании и в компьютерной графике достаточно часто. А так как метод, описанный в статье, был несколько не оптимален, а в комментариях был небольшой хаос, возникла мысль написать эту статью. Итак, какие алгоритмы существуют в современной компьютерной графике, чтобы определить, принадлежит ли заданная точка многоугольнику или нет.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии23

Самоделка — полная…: ПХМ-1 из пластика и кремния

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

ПХМ-1 — вымышленный прибор из лаборатории Доктора Дью. Он предназначен для измерения качества присланных «самоделок» по линейной шкале. Очевидно, что это реквизит для съемок, тем не менее, устройство можно использовать в качестве шутки во многих областях, в том числе в IT.

Пошаговых инструкций по созданию ПХМ-1 не нашлось — пришлось писать самому.
Читать дальше →
Всего голосов 71: ↑67 и ↓4+63
Комментарии27

Как я восстановил данные после форматирования, создания разделов и установки системы на «не том» жестком диске

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

Здесь будет история о том, как я восстановил файлы и каталоги с жёсткого диска, который превратился в неразмеченную область, был частично отформатирован, разбит на новые разделы, на один из которых и была установлена новая система Linux. Если вам всё ещё интересно, вэлком под кат.
Читать дальше →
Всего голосов 124: ↑120 и ↓4+116
Комментарии100
1
23 ...

Информация

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

Специализация

Software Developer, Backend Developer
Middle
Python
C
OOP
REST