Pull to refresh
11
0
Олег @nesmit

User

Send message

Большой брат в Linux или видеонаблюдение своими руками

Reading time6 min
Views97K
Большой брат в Linux или видеонаблюдение своими руками.

После переезда в новый офис, дабы не расслаблять сотрудников, было решено
установить систему видеонаблюдения. Но, как обычно, основным условием было:
дешево и сердито :) После обдумывания и подсчетов было решено остановиться на
следующем:
IP камеры и компьютер в качестве регистратора.
Для начала попробовали небезызвестный ZoneMinder. Но отчего-то с 9 камерами он
грузил систему нещадно. После некоторой борьбы с ним, было решено отказаться от
него. Поискав на просторах Internet была найдена программка под названием
motion (http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome). Почитав немного
про нее, было решено остановиться на ней.
Итак, у нас были IP камеры, компьютер в качестве регистратора, motion в
качестве софта и желание подружить весь этот колхоз :)
Читать дальше →

Cкрипт для настройки MultiHomed linux router

Reading time21 min
Views5K
Не являясь полноценным системным администратором, тем не менее часто сталкиваюсь с необходимостью настроить шлюз. Пока внешний интерфейс был один — просто изменял относительно универсальный скрипт на bash, собранный по интернетам и lartc.com. Когда появились варианты с 2мя интернет провайдерами — сподобился написать скрипт, с сгруппированными для удобства изменения настройками.
Скрипт может:
  • настроить раздачу интернета при помощи NAT
  • открыть порты
  • пробросить порты
  • использовать более одного провайдера
  • применить дополнительно описанные правила и маршруты
  • выполнить дополнительно прописанные команды
Читать дальше →

Применение вакуумного люминисцентного индикатора

Reading time3 min
Views15K
Некоторое время назад мне подвернулся недорогой VFD-экранчик. Из него я сделал что-то вроде часиков, подключив к домашнему серверу.



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

Я использовал дисплей IEE 036X2–122–09220 (он же IEE 36199-01), их можно найти на ибее. Скорее всего, работа с любым другим VFD от IEE не будет отличаться (также, как и со многими другими похожими дисплеями, например, от кассовых аппаратов).
Читать дальше →

Создаем DatePicker аналогичный стандартному в Harmattan

Reading time10 min
Views7.6K
Некоторое время назад в рамках конкурса на лучшую статью о Qt, я разработал компонент TimePicker и написал о нем статью. Мало того, в комментариях, я говорил о том, что следующим компонентом будет DatePicker. Несколько дней назад я закончил его.

Для тех кто не читал предыдущую статью поясняю: не все компоненты используемые Nokia в своих приложениях на Harmattan свободны, некоторые из них не включены в Qt Components для MeeGo, а некоторые заменены суррогатами, картинка слева — оригинал, картинка справа — предлагаемый разработчикам суррогат компонента DatePicker.
Описание процесса разработки

Уроки Python от компании Google

Reading time1 min
Views120K
Отличный способ освоить Python — учебный класс Python в Google Code University. Уроки для этого класса написал Ник Парланте из Стэнфорда, и прошедшие курс люди отмечают не просто высокое, а фантастически высокое качество уроков.

Курс включает в себя шесть видеолекций на Youtube, где Ник проводит обучение новичков-гуглеров и подробно рассказывает о разных хитростях и фичах Python. Некоторые видеолекции длиной до 50 минут.

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

Простая паяльная станция на микроконтроллере

Reading time3 min
Views105K
Паяльник — основной инструмент тех, кто хоть как-то связан с электроникой. Но большинство обычных паяльников пригодны лишь для пайки кастрюль, более-менее нормальный паяльник с термостатом и сменными жалами стоит недешево, а про паяльные станции и говорить нечего. Предлагаю собрать несложную паяльную станцию не особо отличающуюся по функциональности от серийных.
Читать дальше →

Обычная (или не совсем обычная) транслитерация на Python

Reading time7 min
Views42K
Как-то раз возникла необходимость написать транслитерацию на Python — из кириллицы в латиницу. Из слова «ситх» получается «sith», а из «шелест» выходит «shelest».

Казалось бы, чего тут вообще писать — задача едва сложнее print "Hello world". И это отчасти так — но не совсем.

Дело в том, что некоторые буквы в русском языке при транслитерации преобразуются не в одну, а сразу несколько латинских букв: это Ж, Ц, Ч, Ш, Щ, Ю и Я. По сути, если бы правилами транслитерации предполагалось преобразовывать их в одну латинскую букву, то транслитерация русского в английский действительно была бы не намного сложнее той самой простейшей программы.

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

К примеру, фраза «ШАПКА и Юля» преобразуется в «SHAPKA и YUlya», либо в «ShAPKA и Yulya» — в зависимости от того, что задано в таблице транслитерации для «Ш» и «Ю» (иногда задаётся «SH» и «YU», а иногда «Sh» и «Yu»).

То есть регистр следующей буквы в стандартных функциях транслитерации не учитывается, и все буквы в верхнем регистре заменяются по общим правилам. Поэтому в ходе транслитерации для слов «ЧАША» и «Щи» легко получается что-то вроде «ChAShA» или «SCHi», когда реально мы скорее хотели получить «CHASHA» и «Schi».

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

Значит, напишем свою функцию транслитерации, с блэкджеком и^W^W^W^H^H. :)

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

Автоматический бекап при подключении внешнего HDD в Ubuntu

Reading time3 min
Views17K
Последнее время стали популярны посты на тему бекапа. Продолжу и я эстафету под девизом «Много бекапов хороших и разных».

Статья 1 и статья 2, натолкнувшие меня на эту идею.

Сам я давно пользуюсь rsnapshot для бекапа серверов, да и не только. Для тех, кто не в курсе, что оно такое — это базирующаяся на rsync утилита на Perl для создания резервных копий. Особенностью является ориентация на создание полных снапшотов файловой системы через заданный интервал времени, для экономии места на диске, не изменившиеся с момента первого бэкапа файлы линкуются как hard link.

Я работаю на Ubuntu 11.10 на ноутбуке и потому статья будет описывать метод бекапа этого самого ноутбука на внешний USB HDD, который не постоянно подключен, а подключается лишь периодически. В момент подключения и будет запускаться скрипт для бекапирования системы.

Итак, начнем.
Читать дальше →

Датчик освещённости из веб-камеры вашего ноутбука

Reading time3 min
Views25K
image
Почти всегда на ночь (или утром, со словами «Что? Рассвет уже?») я включаю на ноутбуке фильм или сериал. Чтобы бубнило и успокаивало. Недавно заметил, что совсем не уменьшаю яркость при включении. Свет светит в глаза, мешает уснуть. Решается поворотом на другой бок или уменьшением яркости, конечно, но я слишком ленив, чтобы искать Fn+уменьшить яркость или установить и вывести апплет яркости. Уменьшение яркости при неактивности ставить не захотел, потому как это меня раздражает (пьешь себя кофе и смотришь код, тут резко до нуля так хрясь). Вспомнил про свою старую Nokia E70 (ох и шикарный телефон был), в котором был индикатор освещённости. Подумал, что такой датчик может заменить и обычная камера.
Читать дальше →

Анализ Crackme #1 от PE_Kill

Reading time9 min
Views13K

Предисловие



Я уже долгое время ничего не исследую, так сказать ушел на покой. Но тут мне на глаза попалась очередная поделка немало известного в определенных кругах PE_Kill'a. Т.к. мне довелось решать его предыдущую поделку в рамках CRACKL@B Contest 2010, которая в свою очередь была довольно интересна, я решил взглянуть на его новое «детище».

Что вас ждет под катом: подделка CRC32, брут ключа для RC4, факторизация для RSA, а также использование коллизии для MD4 и генерация двух разных сообщений с одинаковыми хешеми. Всё это и многое другое под катом.
Читать дальше

С чего начать изучение Windows Installer?

Reading time7 min
Views56K
Installer pic Технология Windows Installer (MSI) является стандартом де-факто в мире системных администраторов, занимающихся распространением и поддержкой программного обеспечения для десктопных и серверных версий Windows. Формат MSI поддерживается всеми крупнейшими системами управления конфигурациями (Microsoft SCCM, CA Unicenter и многими другими), а для некоторых систем распространения ПО — является единственным поддерживаемым форматом.
Мой опыт работы с этой технологией — как теоретический, так и практический — приобретен за время работы в компании «Инфопульс Украина» и связан с созданием MSI-пакетов и подготовкой готовых MSI-пакетов к автоматической установке в корпоративной среде.
Читать дальше →

Загрузка Linux с корнем на RAID

Reading time3 min
Views34K
Для того, чтобы загрузить ядро linux с корневой файловой системой лежащей на RAID-массиве нужно передать ядру следующие параметры (рабочий пример для Grub). Значимыми для нас опциями являются первая и вторая строка параметров.
title Gentoo Linux 3.0.8 Hardened
kernel (hd0,0)/linux-3.0.8-hardened/linux \
     root=/dev/md0 \
     md=0,/dev/sda1,/dev/sdc1 \
     rootfstype=ext4 \
     rootflags=nodelalloc,data=ordered,journal_checksum,barrier=1,acl,user_xattr \
     panic=15 \
     vga=792

Значения параметров:
1. root=/dev/md0 задает имя файла устройства с корневой ФС.
2. md=0,/dev/sda1,/dev/sdc1
На этом параметре хотелось бы остановиться подробнее. Он имеет следующий формат:
md=md_device_number,raid_level,chunk_size_factor,fault_level,dev0,dev1,...,devn

  • md_device_number — номер md-устройства. Например, 0 означает /dev/md0, 1 это /dev/md1. Прошу обратить внимание — это именно НОМЕР устройства, а не количество дисков входящих в массив, как иногда встречается в описаниях в Сети.
  • raid_level — уровень RAID. Является обязательным для линейного режима (значение -1) и RAID-0 (значение 0). Для остальных типов массивов информация берётся из суперблока и это значение должно быть опущено.
  • chunk_size_factor — задает размер чанка. Минимальное значение 4кб (4k).
  • fault_level — насколько я понял из документации, этот параметр игнорируется драйвером MD (нафига тогда предусматривали?)
  • dev0,...,devn — список устройств, входящих в массив.

Есть еще один важный момент.
Читать дальше →

Новичкам про управление шириной канала в Linux

Reading time7 min
Views77K
Некоторое время назад меня попросили настроить в удаленном филиале простейшую балансировку трафика. Работают они, бедолаги, через ADSL, и отправка электронных писем большого объема (сканы документов) забивает им весь обратный канал, что приводит к проблемам в работе с офисными онлайн-программами через VPN.
В качестве шлюза у них используется Linux (Fedora). До этого я пару раз видел, как подобная балансировка настраивается через ipfw на FreeBSD, а так как знаю механизм iptables достаточно хорошо, не ожидал особых проблем. Но поискав в Интернете, я был неприятно удивлен тем, что iptables мне тут совсем не помощник. И знания о порядке прохождения пакетов через его таблицы и правила мне почти не пригодятся. Нужно изучать tc из пакета iproute2.

Неожиданно для себя, я потратил два дня, для того чтобы более-менее разобраться в балансировке трафика средствами iproute2. Сначала попалась не самая лучшая для новичка статья про HTB(здесь). Различные примеры из Интернет тоже порой вводили в ступор, так как в них часто не было описания конкретных опций или смысла их применения. Поэтому я и попытался собрать полученные мною знания в одну статью, а главное описать все на доступном для новичков уровне.
Читать дальше →

Общий каталог на Linux-машине, v2

Reading time3 min
Views6.1K
В ситуации, когда имеется общий каталог на сервере с несколькими пользователями (к примеру на файлопомойке в локальной сети), перед вами может встать проблема, когда необходимо давать права на чтение-запись всем зарегистрированным пользователям.
Читать дальше →

Рисуем виджеты в заголовке окна

Reading time3 min
Views12K
Ни для кого не секрет, сегодня у населения в основном преобладают широкоформатные мониторы и они вынуждены экономить количество пикселей по вертикали. Это породило моду на рисование элементов управления прямо в заголовке окна. Сейчас этим уже никого не удивишь, но, тем не менее, нигде ещё не находил решения этой проблемы на Qt, поэтому сейчас мы будем это исправлять:

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

История Лошарика

Reading time6 min
Views2.9K

Предисловие


imageБыл вечер четверга, когда нам с коллегой spiff пришла в голову идея написать OpenSource игру на прогрессирующем в наше время HTML5, как говорится, from scratch и just for fun.

Так как мы работаем в области системного программирования и опыта разработки web-приложений у нас было совсем немного, было решено реализовать достаточно простой клон, всемирно известной и популярной игры для первых телефонов Nokia — RapidRoll.

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

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

Есть ли польза от кастомных ядер

Reading time4 min
Views43K
Многие слышали о различных оптимизированных и улучшенных ядрах, это — Zen Kernel и pf-kernel из известных мне. Кроме того, что они добавляют новые возможности (TuxOnIce, поддержка aufs), они могут улучшить производительность, благодаря улучшенному менеджеру задач (BFS) и планировщику (BFQ). В этом топике я хочу сравнить производительность pf-kernel со стандартными ядрами в Ubuntu и Arch Linux, а также описать процесс сборки и установки pf-kernel для Ubuntu. Тестировать Zen Kernel я не вижу особого смысла, т.к. во-первых, проект выглядит заброшенным, а во-вторых, набор патчей и там и там очень похожий.
Читать дальше →

Интеграция алгоритма стемминга русских слов в fts3 SQLite

Reading time3 min
Views5.8K
В данной статье я хочу поделиться опытом интеграции расширения для стемминга в код SQLite. Все действия выполнялись в ОС Ubuntu 11.10.

Проблема


В fts3 SQLite есть простой стеммер, реализующий алгоритм стемминга Портера, но для русских слов реализации нет. Т.е. MATCH по слову 'гостиницы' не найдёт записи, содержащие слово 'гостиница' и т.д.

Подготовка к компиляции


Что понадобится

  • исходники sqlite3 с репозитория;
  • наш стеммер на языке C (см. далее);
  • опционально библиотека readline (libreadline), если нужна история вводимых команд для консольного клиента.

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

Парсим RSS LostFilm'a с помощью grep и передаем на закачку через wget

Reading time4 min
Views21K
RSS
Однажды мне надоело вручную просматривать LostFilm на наличие новых вышедших серий и я решил автоматизировать этот процесс. Дело в том, что многие BitTorrent клиенты имеют в своих настройках так называемые папки слежения (wach directory). Как только в этой папке появляется новый torrent файл BitTorrent клиент сразу же начинает его загрузку. Обычной практикой, к примеру, является создание такой папки и открытие к ней доступа на запись по FTP. Теперь, все что нам требуется, это автоматизировать скачивание torrent файла по выходу нового эпизода в указанную папку для их дальнейшей автоматической загрузки. Как сделать именно это я сейчас и покажу.
Читать дальше →

Основы работы с Wine для начинающих

Reading time7 min
Views628K

Введение


Статья посвящена Wine и всем аспектам его использования. В сети находится очень
много информации, есть различные руководства по настройке и многое другое. Я
постараюсь объединить все для того чтобы любой человек смог достичь
максимального успеха, в пределах своих способностей и конечно возможности
программы. Итак — начнем.

Wine — это отдельная реализация Windows API, а не эмулятор, как большинство
думают. Не единожды повторялось, но и здесь будет уместно. Это и делает проект
уникальным и интересным для пользователей различных систем, открывает различные
пути для реализации своих идей. Уникальность заключается в том, что с помощью
этой программы можно запускать Windows приложения в Ubuntu и в других
Linux системах, а также во FreeBSD и в Mac OS X. Правда и тут есть
свои «подводные камни». Некоторые думают что будет легко перейти с одной
системы на другую, в данном случае мы рассматриваем Windows и Linux.

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

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

Information

Rating
Does not participate
Location
Домодедово, Москва и Московская обл., Россия
Date of birth
Registered
Activity