Читать дальше →
Ник Коробко @Klaus
User
Qt + QML на простом примере
13 min
108K![](https://habrastorage.org/getpro/habr/post_images/03b/5d8/c97/03b5d8c974e52c8458c860de0d46bc03.png)
Об удобстве использования связки Qt и QML уже говорилось не раз, поэтому не буду дальше распространяться о плюсах, минусах, а приведу, шаг за шагом, пример простого Qt приложения.
+113
Политика управления частотой процессора «ondemand» и iowait в Ubuntu
2 min
32KВ современных версиях Ubuntu по умолчанию включена политика управления частотой процессора «ondemand». Эта штука весьма полезна в плане энергосбережения, поскольку устанавливает частоту процессора на минимально возможную, когда нагрузка на процессор невелика.
Однако, недавно я заметил, что у неё есть один недостаток: «ondemand» воспринимает нагрузку на процессор, вызванную операциями ввода-вывода, как «idle». Что это значит? Это значит, что при загрузке процессора операциями ввода-вывода частота процессора зачастую остаётся на пониженном уровне, что создаёт проблемы, если ваша система страдает от печально известного линуксового бага с iowait.
Однако, недавно я заметил, что у неё есть один недостаток: «ondemand» воспринимает нагрузку на процессор, вызванную операциями ввода-вывода, как «idle». Что это значит? Это значит, что при загрузке процессора операциями ввода-вывода частота процессора зачастую остаётся на пониженном уровне, что создаёт проблемы, если ваша система страдает от печально известного линуксового бага с iowait.
+31
Перехват системных вызовов в linux под x86-64
3 min
6.5KВведение
В интернете опубликовано множество статей по перехвату системных вызовов под x32. В рамках решения одной задачи появилась необходимость в перехвате системных вызовов под архитектурой x86-64 при помощи загружаемого модуля ядра. Приступим:
+42
Cветодиодная лампа с регулировкой яркости
4 min
56KСамодельная светодиодная лампа снабжена увеличительным стеклом, и предназначена для комфортного мелкого монтажа и разборок с миниатюрными радиодеталями — многие радиолюбители знают, что на некоторых SMD-деталях трудно разглядеть маркировку даже под увеличительным стеклом. Наличие качественно рассеянной подсветки значительно улучшает чтение маркировки, и упрощает визуальный поиск дефектов в электронных приборах. Коротко характеристики лампы:
— напряжение питания 12 вольт постоянного тока, максимальная потребляемая мощность около 6..7 Вт, количество светодиодов — 20 шт.
— встроенный режим автоматической калибровки под напряжение источника питания.
— плавное включение и выключение лампы.
— плавная регулировка яркости от нуля до заранее запрограммированного предела — с помощью ручки энкодера. Метод регулировки мощности — ШИМ (широтно-импульсная модуляция).
— энергонезависимое запоминание всех параметров лампы и последней установленной яркости.
— встроенное сервисное меню, доступное через подключение по USB. Меню позволяет настраивать рабочие параметры лампы и просматривать её текущее состояние.
— напряжение питания 12 вольт постоянного тока, максимальная потребляемая мощность около 6..7 Вт, количество светодиодов — 20 шт.
— встроенный режим автоматической калибровки под напряжение источника питания.
— плавное включение и выключение лампы.
— плавная регулировка яркости от нуля до заранее запрограммированного предела — с помощью ручки энкодера. Метод регулировки мощности — ШИМ (широтно-импульсная модуляция).
— энергонезависимое запоминание всех параметров лампы и последней установленной яркости.
— встроенное сервисное меню, доступное через подключение по USB. Меню позволяет настраивать рабочие параметры лампы и просматривать её текущее состояние.
+114
RPM-репозиторий своими руками
4 min
15KО чем речь
Доброго времени суток, %username%.
Сегодня я хотел бы рассказать как легко и ненавязчиво создать свой rpm-репозиторий, а так же заполнить его оптимизированными под ваш любимый дистрибутив пакетами. И так, для этого нам надо: дистрибутив любимый одна штука(в моём случае это VZшка с Centos 5.5), rpm-build, mock, createrepo. Все пакеты можно обнаружить в стандартных репозиториях centos.
+19
UART и с чем его едят
10 min
873KПосле Vogue истерии появилось множество вопросов, как подключить плату к компьютеру. И многие люди даже не понимают, что же такое UART. И я решил рассказать здесь какой это мощный инструмент.
![image](https://habrastorage.org/getpro/geektimes/comment_images/f05/37f/61b/f0537f61b35862cc870c54d458ad9945.jpg)
Роутер превращается в компьютер, если к нему по UART подключить клавиатуру и дисплей
Протокол UART (Universal asynchronous receiver/transmitter) или, по-русски, УАПП (универсальный асинхронный приемопередатчик) — старейший и самый распространенный на сегодняшний день физический протокол передачи данных. Наиболее известен из семейства UART протокол RS-232 (в народе – COM-порт, тот самый который стоит у тебя в компе). Это, наверное, самый древний компьютерный интерфейс. Он дожил до наших дней и не потерял своей актуальности.
Надо сказать, что изначально интерфейс УАПП появился в США как средство для передачи телеграфных сообщений, и рабочих бит там было пять (как в азбуке Морзе). Для передачи использовались механические устройства. Потом появились компьютеры, и коды ASCII, которые потребовали семь бит. В начале 60-х на смену пришла всем известная 8-битная таблица ASCII, и тогда формат передачи стал занимать полноценный байт, плюс управляющие три бита.
![image](https://habrastorage.org/getpro/geektimes/comment_images/f05/37f/61b/f0537f61b35862cc870c54d458ad9945.jpg)
Роутер превращается в компьютер, если к нему по UART подключить клавиатуру и дисплей
От телеграфа к COM-порту
Протокол UART (Universal asynchronous receiver/transmitter) или, по-русски, УАПП (универсальный асинхронный приемопередатчик) — старейший и самый распространенный на сегодняшний день физический протокол передачи данных. Наиболее известен из семейства UART протокол RS-232 (в народе – COM-порт, тот самый который стоит у тебя в компе). Это, наверное, самый древний компьютерный интерфейс. Он дожил до наших дней и не потерял своей актуальности.
Надо сказать, что изначально интерфейс УАПП появился в США как средство для передачи телеграфных сообщений, и рабочих бит там было пять (как в азбуке Морзе). Для передачи использовались механические устройства. Потом появились компьютеры, и коды ASCII, которые потребовали семь бит. В начале 60-х на смену пришла всем известная 8-битная таблица ASCII, и тогда формат передачи стал занимать полноценный байт, плюс управляющие три бита.
+186
Gimpbox — Однооконный Gimp
1 min
3.6K![](https://habrastorage.org/storage/59d3fde9/1914547c/a32c419f/fa3f5a0c.png)
Сегодня я хотел бы рассказать Вам о замечательном дополнении для Gimp'а под названием Gimpbox.
Многим уже порядком поднадоел многооконный режим Gimp'a и пока все в ожидании стабильного релиза 2.8 где разработчики обещали сделать возможность выбора между многооконным и однооконным режимом, китайские разработчики подумали как можно решить эту проблему малой кровью и сделали дополнение Gimpbox, смысл которого заключается в том что бы объединить все окна Gimp'а в одно окно как это сделано например в Adobe Photoshop, Paint.net и других редакторах.
Gimpbox является frontendом для Gimp'а, т.е. он будет работать только с уже установленным Gimp'ом.
Под катом инструкция по установки.
+102
Сниффер витой пары из Wi-Fi роутера
2 min
89KTutorial
![image](https://habrastorage.org/getpro/geektimes/post_images/176/612/4dc/1766124dc22f5c2fba14877a62707c6d.png)
Трафик проходящий по витой паре может быть прослушан абсолютно незаметно для участников соединения.
В этом посте будет показано как изготовить автономный сниффер с возможностью сохранения дампа на диск и управляемый по Wi-Fi.
+156
Oldschool 1-bit ZX-Spectrum chiptune на отечественном RISC-микроконтроллере
2 min
9.5K![KP1878BE1](https://habrastorage.org/storage/habraeffect/de/72/de725694e3866d76c749036a5ce71862.jpg)
Вдохновившись топиком 1-битная симфония Тристана Перича откопал в старом хламе пожелтевшую картонку 8-летней давности. Оказалось довольно непросто отыскать файл с прошивкой, залить её в контроллер (LPT-порт? а что такое LPT порт?) и оцифровать звучание, но полученная в результате доза ностальгии стоила того! Слушать результат > (зеркало).
+104
Чуть больше о загрузке самодельных ОС — пишем bootloader
9 min
14KНе так давно решил чуть получше изучить архитектуру IA-32. А что лучше всего для запоминания? Конечно же практика. Но программируя в ОС мы врядли получим самый низкий уровень доступ к железу без помех. Поэтому для этих целей будем писать собственное подобие операционной системы. То есть проще говоря будем выполнять свой код, сразу после загрузки BIOS'а.
Первой проблемой с которой столкнется желающий программировать на низком уровне — как же загрузить свой код?
Первой проблемой с которой столкнется желающий программировать на низком уровне — как же загрузить свой код?
+109
Анонимное сканирование портов при помощи hping3
4 min
37KДля реализации понадобится уверенные знания работы TCP/IP и желание понять. В результате мы получим возможность сканировать удаленную машину на открытые порты от чужого адреса по следующией схеме (картинка из мануала по nmap):
![image](https://habrastorage.org/getpro/habr/post_images/f1b/c0c/064/f1bc0c0647104cd588d04278b85fecdf.png)
![image](https://habrastorage.org/getpro/habr/post_images/f1b/c0c/064/f1bc0c0647104cd588d04278b85fecdf.png)
+75
Пишем свой драйвер под Linux
8 min
68K![image](https://habrastorage.org/storage/habraeffect/65/68/6568edc0a07ab2cc49a2d6fd0d985a9c.jpg)
Хочу признаться сразу, что я вас отчасти обманул, ибо драйвер, если верить википедии — это компьютерная программа, с помощью которой другая программа (обычно операционная система) получает доступ к аппаратному обеспечению некоторого устройства. А сегодня мы создадим некую заготовку для драйвера, т.к. на самом деле ни с каким железом мы работать не будем. Эту полезную функциональность вы сможете добавить сами, если пожелаете.
То, что мы сегодня создадим, корректнее будет назвать LKM (Linux Kernel Module или загрузочный модуль ядра). Стоит сказать, что драйвер – это одна из разновидностей LKM.
Писать модуль мы будем под ядра линейки 2.6. LKM для 2.6 отличается от 2.4. Я не буду останавливаться на различиях, ибо это не входит в рамки поста.
Мы создадим символьное устройство /dev/test, которое будет обрабатываться нашим модулем. Хочу сразу оговориться, что размещать символьное устройство не обязательно в каталоге /dev, просто это является частью «древнего магического ритуала».
+229
Penisland, или как написать спеллчекер
7 min
12KЕсть хорошая статья Питера Норвига, в которой он рассказывает как написать спеллчекер в 20 строк кода. В этой статье он показывает как поисковые системы могут исправлять ошибки в запросах. И делает это довольно элегантно. Однако, у его подхода есть два серьезных недостатка. Во-первых, исправление более трех ошибок требует больших ресурсов. А гугл, кстати, неплохо справляется и с четырьмя ошибками. Во-вторых, нет возможности проверки связного текста.
![](https://habrastorage.org/storage2/be9/284/a2e/be9284a2e1be2e1f1f9fa60ac5c8721a.png)
Итак, хочется исправить эти проблемы. А именно, написать корректор коротких фраз или запросов, который:
Остальное — под катом.
![](https://habrastorage.org/storage2/be9/284/a2e/be9284a2e1be2e1f1f9fa60ac5c8721a.png)
Итак, хочется исправить эти проблемы. А именно, написать корректор коротких фраз или запросов, который:
- умел бы выявлять три (и более) ошибки в запросе;
- умел бы проверять «разорванные» или «слипшиеся» фразы, например expertsexchange — experts_exchange, ma na ger — manager
- не требовал много кода для реализации
- мог бы достраиваться до исправления ошибок на других языках и других типов" ошибок
Остальное — под катом.
+129
Беспокойные сердца или еще один способ написать 3D игру в свободное время без ущерба здоровью
3 min
4.4KИногда, даже у вполне состоявшегося программиста, появляется желание написать что-то, что было бы интересно не только работодателю. Такой человек бреется по утрам и думает, а почему бы не подарить счастье всему человечеству.
+69
Использование коэффициента Танимото для поиска людей с одинаковыми предпочтениями
3 min
12KРешая упражнения к книге «Программируем коллективный разум», я решил поделиться реализацией одного из алгоритмов упомянутого в этой книге (Глава 2 — Упражнение 1).
Исходные условия следующие: пусть мы имеем словарь с оценками критиков:
Чем выше оценка, тем больше нравится фильм.
Надо вычислить: насколько схожи интересы критиков для того, например, чтобы можно было на основе оценок одного рекомендовать фильмы другому?
Исходные условия следующие: пусть мы имеем словарь с оценками критиков:
critics={'Lisa Rose': {'Superman Returns': 3.5, 'You, Me and Dupree': 2.5, 'The Night Listener': 3.0},
'Gene Seymour': {'Superman Returns': 5.0, 'The Night Listener': 3.5, 'You, Me and Dupree': 3.5}}
Чем выше оценка, тем больше нравится фильм.
Надо вычислить: насколько схожи интересы критиков для того, например, чтобы можно было на основе оценок одного рекомендовать фильмы другому?
+91
Сделай сам — приспособление для оцифровки диафильмов
2 min
21KНеобходимость создания подобного устройства появилась на кафедре у нас в университете. В закромах были найдены десятки абсолютно неиспользованных учебных диафильмов – по электронике, датчикам, технологии монтажа и т.д. Выбрасывать их рука не поднялась, а использовать диапроектор архаично, да и вследствие устаревания из диафильмов нужны не все кадры. Вполне резонный выход – диафильмы оцифровать, а преподаватели сами уже будут дергать где то целые слайды, а где то иллюстрации.
![](https://habr.com/images/px.gif#%3D%22http%3A%2F%2Fimg523.imageshack.us%2Fimg523%2F7328%2Fcommonviewja3.jpg%22)
![](https://habr.com/images/px.gif#%3D%22http%3A%2F%2Fimg523.imageshack.us%2Fimg523%2F7328%2Fcommonviewja3.jpg%22)
+94
Canvas-трансформации доступным языком
3 min
52K![](https://habrastorage.org/storage/habraeffect/02/49/0249f110825af3d2e506344d2da9efd4.jpg)
+76
How To настроки репликации в MySQL с использованием шифрования SSL на Debian Lenny
7 min
13KTranslation
Это руководство описывает, как настроить репликацию базы данных в MySQL с использованием SSL соединение для шифрования.
MySQL репликация синхронизирует базу данных, что позволяет иметь точную копию БД на другом сервере. Все обновления БД на главном сервере автоматически реплицируются на другой сервер, что позволяет защитить базу от аппаратных сбоев. В этой статье будет показано, как реализовать репликации БД exampledb с сервера server1.example.com(ip адресом 192.168.0.100) на сервер server2.example.com(ip адресом 192.168.0.101) с использованием SSL соединения
MySQL репликация синхронизирует базу данных, что позволяет иметь точную копию БД на другом сервере. Все обновления БД на главном сервере автоматически реплицируются на другой сервер, что позволяет защитить базу от аппаратных сбоев. В этой статье будет показано, как реализовать репликации БД exampledb с сервера server1.example.com(ip адресом 192.168.0.100) на сервер server2.example.com(ip адресом 192.168.0.101) с использованием SSL соединения
+32
Разработка web-приложений на языке Common Lisp (часть первая)
4 min
8.8KДанный обзор является небольшим путеводителем для тех, решился (или решается) доверить этому чудесному языку будущее своего стартапа. Несмотря на то, что основной акцент будет ставиться на web-разработке, я постараюсь осветить также и более общие темы, так или иначе связанные с Common Lisp. Материал почерпнут из собственного опыта разработки web-сервиса AlterMoby.
Первая часть этого обзора будет вводной. Опытные лисперы смогут смело его пропускать. В этой части я попробую объяснить, когда стоит использовать Lisp, и какая его реализация лучше подойдёт для построения web-приложений. Последнее, конечно, отразит лишь мою субъективную точку зрения.
![image](https://habrastorage.org/storage/habraeffect/ba/ce/bacef3391c2615f44a3e25555fcd75a7.jpg)
Первая часть этого обзора будет вводной. Опытные лисперы смогут смело его пропускать. В этой части я попробую объяснить, когда стоит использовать Lisp, и какая его реализация лучше подойдёт для построения web-приложений. Последнее, конечно, отразит лишь мою субъективную точку зрения.
![image](https://habrastorage.org/storage/habraeffect/ba/ce/bacef3391c2615f44a3e25555fcd75a7.jpg)
+72
Information
- Rating
- Does not participate
- Location
- Макеевка, Донецкая обл., Украина
- Date of birth
- Registered
- Activity