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

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

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

Fake'аем Chatroulette в Linux — гибче, чем в Windows

Время на прочтение11 мин
Количество просмотров9.2K
Все вы знаете о сервисах, подобных CR, которых в интернете нынче развелось достаточно. Основное поведение пользователей этих сервисов, мягко говоря, удручает. Нет, конечно, оно очень выгодно производителям клавиатур и мышек, которые разрушаются от активного кликания/нажимания кнопочки next, но, imho, любому нормальному homo sapiens оно должно взрывать мозг и вызывать творческий зуд в нём и руках, требующий действий по разрушению тотальной симметрии и однообразия в поведении смотропоказывающихся. Кроме того, это ж целых 76800 пикселей рекламной площади. В общем, надо что-то с этим делать. И в этом тексте рассказ о том, с чего можно эти дела (дела, направленные на запуск произвольных видеопотоков в чатрулетки) в Linux начать. Кроме этого из него вы узнаете: (1) как можно использовать dd для буферизации, (2) как при помощи ffmpeg grab'ить произвольную область экрана или видео-изображения, (3) об отличиях vloopback и avld, (4) о эффекте от закрепления процессов за разными нитями на Atom, (5) о использовании Xvfb для видео-монтажа, (6) об одном социальном эксперименте, (7) ну, и ещё что-нибудь да узнаете.

Читать дальше →
Всего голосов 66: ↑50 и ↓16+34
Комментарии26

Электронная книжка в качестве дисплея

Время на прочтение10 мин
Количество просмотров68K
Нетрадиционное применение распространённых вещей — это то, что всегда нам интересно! Ведь так хочется порой похачить очередное устройство. Понять как оно работает и внести какие-то свои коррективы в его работу, добавив новых функций.


Выводим свои картинки

Я расскажу, как можно старенькую читалку Sony PRS-505 превратить в удобный дисплейчик. И также расскажу, как можно писать свои программы для этой книжечки

Погнали
Всего голосов 133: ↑129 и ↓4+125
Комментарии61

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 6 из 6

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

Содержание основного курса




Улучшение кода






Official translation (with a bit of polishing) is available here.




Shadow mapping


Ну вот наш краткий курс подходит к концу, задача на сегодня — научиться отрисовывать тени (внимание, просчёт полутеней — это отдельная тема):



Как всегда, код доступен на гитхабе
Читать дальше →
Всего голосов 68: ↑65 и ↓3+62
Комментарии20

Шпаргалка полезных команд GDB

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

Для кого она нужна?


1) начинающих реверсеров, знающих особенности обратного проектирования, и желающих изучить такой отладчик как GDB


2) как подсказка тем кто постоянно работает с IDA, Ghidra или любым другим мощным и надежным инструментом, но в силу тех или иных обстоятельств решить задачу проще и быстрее с помощью GDB, и не очень хочется залезать в официальную документацию и снова все вспоминать

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

Systemd для продолжающих. Part 1 — Запуск юнитов по временным событиям

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

Всем привет! В последнее время я вплотную занимаюсь исследованием возможностей systemd и решил поделиться результатом исследований с сообществом, в виде небольшого (или большого, как пойдёт ;-) цикла статей. Итак первым номером нашей программы будет запуск юнитов по различным событиям происходящим во время работы ОС. В качестве исследовательской платформы будет выступать Manjaro Linux c systemd v247.2. И... да. Некоторые события, вынудили меня написать внеочередную статью, которая «взлетела на вершину хит-парада», а опрос показал, что тема актуальна и вызывает интерес, так что погнали!

Нырнуть в кроличью нору!
Всего голосов 62: ↑60 и ↓2+68
Комментарии23

TreeOS. 16-битная рождественская демка в загрузочном секторе

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


В преддверии Нового Года бороздил просторы сети, и нашёл замечательную демку на ассемблере рисования новогодней ёлки. Демка не простая, а золотая, написана таким образом, чтобы работала в загрузочном секторе диска, фактически микрооперационная система, если её так можно назвать. Из-за большой любви к Новому Году и ассемблеру, решил таки её немного разобрать, и восхититься мастерством автора. Итак, поехали.
Всего голосов 31: ↑29 и ↓2+37
Комментарии11

Как выбрать, приобрести и (не) обосраться с 4k@60Hz монитором

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

Как выглядит текущий сетап




А зачем?


Я программист. На прошлой работе мне выдали macbook, а к нему монитор LG UltraFine 27UL850-W. За год я привык к картинке приближенной к маковской. Почему приближенной дальше расскажу и приведу математические расчеты.

С мартом 2020 и короной пришла удаленка, а с ней и смена рабочего места.

На новой работе выдали обычный, неплохой монитор Samsung 23.5 Full HD, использовал его в связке с MacBook Pro 13* 2015 и Lenovo ThinkPad E480. В связке с маком картинка после 4к монитора была откровенно вялая, с леново — нормально, работать можно было. Увы, за пол года я так и не привык к этому монитору. Более того, в последнее время ближе к окончанию рабочего дня (к 16-17 часам) стабильно начинали болеть глаза вместе с ощущением тяжести — хотелось просто держать глаза закрытыми. Насколько я понял, типичные симптомы синдрома сухого глаза. Периодически прокапывал глаза увлажняющими каплями, на время становилось лучше, но не более.
Читать дальше →
Всего голосов 40: ↑13 и ↓27-6
Комментарии79

Чтобы током не убило. Всё про УЗО

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

Попробуем снова объять необъятное одним постом? На этот раз рассказ будет про УЗО.

Читать далее
Всего голосов 142: ↑141 и ↓1+191
Комментарии169

Декодируем сигнал метеоспутника NOAA в 50 строчек кода

Время на прочтение5 мин
Количество просмотров22K
Привет, Хабр.

Продолжим тему декодирования различных видов радиосигналов. Одним из интересных форматов, разработанных еще в прошлом веке, является APT (Automatic Picture Transmission). Он используется для передачи изображений Земли из космоса, и что для нас гораздо более интересно и актуально, прием сигналов APT прост и доступен радиолюбителям.


Спутник NOAA © en.wikipedia.org/wiki/NOAA-15

Для тех, кому интересно, продолжение под катом.
Читать дальше →
Всего голосов 44: ↑44 и ↓0+44
Комментарии11

Wi-Fi сети: проникновение и защита. 3) WPA. OpenCL/CUDA. Статистика подбора

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


Баста карапузики, кончилися танцы.

В предыдущей части мы детально рассмотрели «читерские» приёмы обхода «защит» (скрытие SSID, MAC-фильтрация) и защит (WPS) беспроводных сетей. И хотя работает это в половине случаев, а иногда и чаще — когда-то игры заканчиваются и приходится браться за тяжёлую артиллерию. Вот тут-то между вашей личной жизнью и взломщиком и оказывается самое слабое звено: пароль от WPA-сети.

В статье будет показан перехват рукопожатия клиент-точка доступа, перебор паролей как с помощью ЦП, так и ГП, а кроме этого — сводная статистика по скоростям на обычных одиночных системах, кластерах EC2 и данные по разным типам современных GPU. Почти все они подкреплены моими собственным опытом.

К концу статьи вы поймёте, почему ленивый 20-значный пароль из букв a-z на пару солнц более стоек, чем зубодробительный 8-значный, даже использующий все 256 значений диапазона.

Оглавление:
1) Матчасть
2) Kali. Скрытие SSID. MAC-фильтрация. WPS
3) WPA. OpenCL/CUDA. Статистика подбора
По традиции, под катом ещё 15 страниц
Всего голосов 168: ↑167 и ↓1+166
Комментарии57

Делаем ноутбук на Raspberry Pi

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

Портативный компьютер RasPSION

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

Например, один экземпляр Raspberry Pi попал в руки японского моддера nokton35mm, который изготовил мини-компьютер RasPSION в стиле портативных компьютеров Psion конца 90-х.
Читать дальше →
Всего голосов 23: ↑18 и ↓5+13
Комментарии36

Гениальность микропроцессоров RISC-V

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

Войны между RISC и CISC, проходившие в конце 1990-х, уже давно отгремели, и сегодня считается, что разница между RISC и CISC совершенно не имеет значения. Многие заявляют, что наборы команд несущественны.

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

Недавно я подробнее изучил информацию об архитектуре набора команд (instruction-set architecture, ISA) RISC-V и вот некоторые из аспектов, которые по-настоящему впечатлили меня в ISA RISC-V:

  1. Это небольшой и простой в изучении набор команд RISC. Очень предпочтителен для тех, кому интересно получать знания о микропроцессорах.
  2. Благодаря своей простоте, открытости и связи с университетскими профессорами он с большой вероятностью будет доминировать как архитектура, выбираемая для обучения процессорам в вузах.
  3. Его продуманная структура позволяет разработчикам CPU создавать высокопроизводительные микропроцессоры на основе ISA RISC-V.
  4. Благодаря отсутсвию лицензионных отчислений и нацеленности на простую аппаратную реализацию увлечённый любитель может, в принципе, создать за приемлемое время собственную конструкцию процессора RISC-V.
Читать дальше →
Всего голосов 70: ↑70 и ↓0+70
Комментарии41

Эмуляция компьютера: интерпретатор CHIP-8

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


Меня, по ряду причин, всегда завораживала эмуляция. Программа, которая выполняет другую программу… Мне эта идея кажется невероятно привлекательной. И у меня такое ощущение, что тот, кто напишет подобную программу, не пожалеет ни об одной минуте потраченного на это времени. Кроме того, написание эмулятора — это очень похоже на создание настоящего компьютера программными средствами. Мне было очень интересно разбираться в устройстве компьютерной архитектуры, писать простой HDL-код, но эмуляция — это гораздо более простой способ ощутить себя тем, кто своими руками создаёт компьютер. А ещё, в детстве, когда я впервые увидел игру Super Mario World, я поставил себе цель, которая до сих пор не потеряла для меня ценности. Она заключается в том, чтобы полностью понять то, как именно работает эта игра. Именно поэтому я уже некоторое время подумываю о написании эмулятора SNES/SNC. Недавно я решил, что пришло время сделать первый шаг к этой цели.

Предлагаю поговорить о разработке эмулятора и обсудить простой, но полноценный пример эмуляции CHIP-8.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии1

Linux Experiments LAB

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

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

Начнём!
Всего голосов 8: ↑8 и ↓0+8
Комментарии3

Обзор примитивов синхронизации — спинлоки и тайны ядра процессора

Время на прочтение5 мин
Количество просмотров56K
Последняя статья про классические примитивы синхронизации.

(Наверное, потом напишу ещё одну про совсем уже нетипичную задачу, но это потом.)

Сегодня мы немножко заглянем в процессор. Чуть-чуть.

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

В комментариях к предыдущим заметкам возникла дискуссия — насколько справедливо вообще выделять спинлок как примитив, ведь по сути он — просто мьютекс, верно? Он выполняет ту же функцию — запрещает одновременное исполнение фрагмента кода несколькими параллельными нитями.

На уровне процесса всё так и есть — различия между спинлоком и мьютексом — чисто технические, вопрос реализации и производительности.

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

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

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

Итак, иерархия реализации такова: mutex/cond/sema сделаны на базе спинлоков, спинлоки — на базе атомарных операций, предоставляемых процессором. Мы в них немного заглянем сегодня.

Как устроен спинлок?
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии45

Как пропускать и одновременно присутствовать на лекции или «за меня учится Python бот»

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

Я имею самый обычный рабочий график: 5/2, 8ч/день. В настоящий момент удаленно учусь в аспирантуре (коронавирус, все дела) и единственный день, когда я могу вдоволь почувствовать себя человеком-соседом и поделать что-то по дому, – это суббота. Как вы понимаете, здесь что-то пошло не так и вместо обещанных будничных пар, которые должны были проходить по вечерам после работы, нам утрамбовали всю субботу. Но дела ведь себя не переделают, поэтому решено было написать на python простого бота-кликера, который мог бы заходить на пару, стартовать запись экрана со звуком, ожидать окончания пары, выключать записть и выходить с пары.

Читать далее
Всего голосов 30: ↑26 и ↓4+29
Комментарии25

Эмулятор RFID на Arduino

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

Многие читали мой пост "Эмулятор RFID", где я в деталях рассказывал об устройстве EM Marine, о том как намотать антенну, и как сделать RFID-эмулятор из трёх деталей. Но, будем честны, несмотря на гениальную простоту того устройства, оно достаточно сложно для повторения. Не каждый имеет дома осциллограф, для того чтобы поймать резонанс, да и для прошивки ATtiny85 требуется отдельный программатор.

Поэтому я принял решение сделать такой эмулятор, который может повторить даже ребёнок. Все компоненты продаются чуть ли не в каждой деревне. При этом его функциональность может быть даже расширена. Например, можно сохранять в нём несколько карт или можно добавить ещё считыватель, и сохранять все карты в одном устройстве, или же использовать его для… В общем, поехали.
Всего голосов 56: ↑56 и ↓0+56
Комментарии26

Скрутки, клеммники и WAGO

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


В свете недавнего обсуждения возникла потребность провести измерения и получить численный ответ на вопрос: что лучше? WAGO, винтовые клеммы или скрутки меди с алюминием?
Читать дальше →
Всего голосов 41: ↑38 и ↓3+50
Комментарии144

Вычисления без инструкций на x86

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

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

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

Информация

В рейтинге
3 150-й
Зарегистрирован
Активность