Pull to refresh
4
0
rich @rich

User

Send message

X Neural Switcher — Поваренная книга (Часть 2). Алгоритмы

Reading time6 min
Views6.4K
Приветствую.

Сегодня я расскажу о том, какие алгоритмы распознавания языка ввода используются в X Neural Switcher.

Как известно, Punto Switcher использует в своей работе словари, основанные на невозможности конкретного буквосочетания для данного языка. Посмотреть их можно, если у вас установлен Punto, тут — %PROGRAMFILES%\Yandex\Punto Switcher\Data\triggers.dat. По крайней мере, так сообщил мне google. Эти словари зашифрованы (несложно, но все таки).
Дополнительно, Punto использует пользовательские исключения. Сказать, где они хранятся не могу — программа закрытая.

Теперь вернемся к xneur. На момент, когда я перешел к использованию linux (2005 год), программ, которые бы декларировали умение распознать и переключить раскладку, было ровно две — sven (еще живой) и xneur (полумервый). Я выбрал для для допиливания xneur, тогда это была версия 0.0.3 (http://www.linux.org.ru/forum/talks/811959). В тот момент его уже фактически забросили первоначальные разработчики, и более полугода никакого движения там не было.

Про эволюцию алгоритмов в xneur

То, чего вы не ждали от калькулятора. Пасьянс на bc

Reading time4 min
Views7.5K
Невинные развлечения с bash больше не кажутся мне чем-то особенным. В качестве своей следующей цели для экспериментов я выбрала GNU bc — консольный калькулятор и скриптовый математический язык программирования в одной коробке. Эта статья наверняка будет полезна всем линуксоидам и юниксоидам, не очень тесно знакомым с bc.



Итак, короткое введение в программирование на bc, кавай и нэки пасьянс на чистом bc и поэтессы.
Всё это можно найти под катом.

MPD, домашнее аудиохранилище

Reading time2 min
Views9.1K
Хотел бы рассказать как на днях решил задачу организации домашнего аудиохранилища.

Для начала, что имеем:

1) стационарный компьютер(ОС — ArchLinux);
2) ноутбук, к которому часто подключается домашняя акустика (ОС — ArchLinux x64);
3) фонотеку ~ 500 Гб, которая находиться на (1).

Что хотелось бы получить в результате (задачи):

1) централизованную библиотеку, к примеру, чтобы созданный на одной машине список воспроизведения был доступен и на другой тоже;
2) возможность управления воспроизведением с любого компьютера;
3) возможность выводить звук на аудиовыход любого компьютера, к примеру, работая на стационарнике и управляя с него слушать музыку на акустике подключенной к ноуту.

Реализация.
Читать дальше →

X Neural Switcher — Поваренная книга (Часть 1). Предтечи и аналоги

Reading time3 min
Views6.8K
Приветствую.

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

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

Сами по себе, эти программы прямого отношения к xneur не имеют, но если вам захочется сделать что-то подобное xneur, то для общего развития ознакомиться с ними и с их кодом стоит (только в том случае, если потеряете исходники xneur).

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

Bash-скрипт для искрографиков

Reading time1 min
Views3.4K
Искрографик (англ. sparkline) — это термин, который придумал Эдвард Тафти для обозначения миниатюрных (word-sized), но информационно-плотных графиков. Они показывают общую картину там, где нет места для размещения нормальных графиков с осями координат. Особенно полезными могут быть в таких областях как финансы и трейдинг, спортивные события, научный и медицинский анализ, системное администрирование.



Зак Холман (Zach Holman) из Github написал shell-скрипт Spark, который строит инфографику простой командой spark прямо из шелла (достаточно добавить скрипт куда-нибудь в $PATH).
Читать дальше →

X Neural Switcher — Поваренная книга

Reading time9 min
Views48K
Приветствую.

Я являюсь автором программы для автоматического переключения раскладки клавиатуры, работающей под Linux. Эта программа xneur или X Neural Switcher.

Когда я начинал заниматься этой программой, ничего вменяемого для замены Punto Swither для linux не было. Обратите внимание, я писал ее лично для себя, у меня почти всегда все работает. Я выкладываю ее в общий доступ только потому, что программа полезна людям.

В дальнейших статьях я разберу существующие (и существовавшие) аналоги, и поясню, почему они все являются тем, чем пользоваться нельзя, и какая клевая программа xneur.

Занимаюсь я программой от силы один час в неделю, поэтому корить меня за медленную разработку глупо. Деньги я зарабатываю тоже программированием, но совсем не связанным с linux.

За прошедшие 6 лет, я периодически натыкался на специфические баги как Xlib, так и DE, c которыми приходилось находить взаимопонимание.

Сейчас я хочу рассказать о приготовлении xneur, описать настройки и поделиться «маленькими футбольными хитростями».

Эта часть статей под номером 0 посвящена самому простому — описанию. Вы удивитесь, как много xneur умеет из того, что не умеет Punto.

Для тех кто долго пробовал, но не осилил. Я всегда открыт к диалогу. Если что-то где-то не работает, сообщите мне всю необходимую информацию, и я постараюсь решить вашу проблему.

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

Как я устанавливал Openmeetings

Reading time4 min
Views57K

Что это


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

Исходные данные


У нас на предприятии в качестве системы дистанционного обучения (далее СДО) используется Moodle. Она нас полностью устраивает, за исключением отсутствия живого общения преподавателя и обучающегося.
Поэтому было принято решение к действующей СДО добавить приложение видео-конференций. Выбор свой остановил на Openmeetings, поскольку именно эта система интегрируется с Moodle и для этого даже есть специальный модуль.

Устанавливать систему решил на CentOS. Изрядно погуглив в поисках мануала по установке, и методом проб и ошибок понял, что все инструкции, что есть в сети, либо устаревшие, либо неполные.

Все грабли, на которые я наткнулся в процессе под катом
Читать дальше →

Введение в Structure Synth

Reading time3 min
Views3.8K
Structure Synth, Virus
Здравствуй, хабр. Вчера я игрался с новой Ubuntu 11.10 и совершенно случайно наткнулся на такое замечательное приложение, как Structure Synth. Structure Synth уже обсуждался на хабре, а я бы хотел набросать вольно-литературный перевод краткого туториала с официального сайта.
Читать дальше →

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

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

Автоматизация работы интернет-радио на Linux

Reading time18 min
Views33K
Привет, `whoami`.

В этом посте я расскажу тебе об одном из методов автоматизации интернет-вещания – не самом надежном, но самом бюджетном. Сразу предупреждаю, что эта система заточена на использование ее под Linux, хотя с помощью знакомого многим «столярного инструмента», можно и под Windows реализовать. Эта статья расчитана на начинающих IT-шников, поэтому многие моменты я постарался «разжевать». Как у меня это получилось, решать тебе, мой дорогой читатель, но если мне удалось заинтересовать тебя, прошу под кат.
Читать дальше →

Делаем релизы с помощью Maven в Java

Reading time8 min
Views54K

О чем эта статья?


Эта статья о том:
  1. Что такое релиз?
  2. Как нумеруются релизы?
  3. Зачем при релизе нужен бранч?
  4. Почему релиз это больше, чем просто jar (war, ear, zip, etc)?
  5. Что такое maven-release-plugin?
  6. Делаем бранч c помощью release:branch.
  7. Подготовка к релизу с помощью release:prepare.
  8. Выпускаем релиз с помощью release:perform.

Для чтения и понимания этой статьи я рекомендую освежить свои знания по Maven. Многие термины могут быть непонятны без понимания этой технологии.
Читать дальше →

Простая GSM-сигнализация из подручных материалов

Level of difficultyEasy
Reading time3 min
Views134K
На днях к нам обратился старый знакомый. Он живет в частном доме и пару раз к нему пытались зайти без приглашения неизвестные личности. Назрела необходимость в установке сигнализации. Ставить дом на пульт оказалось слишком дорого. Оптимальным решением показалось просто оповещать хозяина звонком на мобильник при сработке одного из датчиков движения.


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

GnuPG на смарт-картах. Как это выглядит…

Reading time4 min
Views9K
image
Почти все знают что такое GPG. Многие им пользуются. Некоторые даже в курсе, что есть возможность хранить секретные ключи на внешнем носителе типа смарт-карты. Я-же хочу описать как это все выглядит на практике.

Несколько дней назад ко мне приехала пара «OpenPGP SmartCard v2». Заказаны они были у официального их распространителя — shop.kernelconcepts.de/index.php?language=en. Цена одной карты на данный момент составляет 17.14 евро. Две заказанные карты были отправлены чем-то вроде заказного письма и пересылка обошлась мне в 5 евро, что очень даже неплохо. Еще порадовало что карты без проблем прошли через таможню. Не уверен что так будет с большим количеством, но для личного использования, думаю, можно заказывать достаточно безопасно.

И вот они у меня...

Сетевая игра на bash: шахматы

Reading time5 min
Views8.7K
Я давно хотел написать какую-нибудь сетевую игру на bash, причём желательно, чтобы управление было удобное, с клавиатуры, обычными курсорным клавишами. Вообще, тема интерактивного взаимодействия в bash глубже, чем «введите число, нажмите „Enter“» не раскопана. Мне пришлось всё изобретать и исследовать самостоятельно. Я очень старался найти что-то похожее по уровню интерактивности, но не нашёл.

Поскольку тонкости управления с клавиатурой съели очень много моего времени, я не стал заморачиваться с тонкостями совместимости, поэтому игра тестировалась только под Mac OS X, есть ненулевая вероятность, что она заработает и под Linux и уж точно её можно допилить там до рабочего состояния.

Для работы игра требует наличия nc (aka Netcat) и терминала с поддержкой 256 цветов (под Mac OS рекомендую iTerm2). При наличие интереса к игре, допилю до терминала на 16 цветов и /dev/tcp. Кстати начал выкладывать все свои шел-поделки на ГитХаб.

Сетевые шахматы на Bash


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

Играть просто — в каждый момент времени активна только одна доска (на скриншоте — правая, у неё буквы и цифры вокруг доски ярче), на активной доске курсор двигается курсорными клавишами — ←, →, ↑ и ↓, взять фигуру и поставить её на доску — по клавише пробела или Enter. Как только вы поставили фигуру на доску, ход переходит к сопернику. «Съесть» фигуру соперника проще простого — достаточно поставить свою фигуру на чужую. В игре есть защита — нельзя «съесть» свою фигуру.

Ничего помимо этого в игре нет — не производится правильность контроля ходов, нет проверки на завершение игры, можно даже ходить фигурами соперника. Было очень сложно придумать как обрабатывать нажатия в shell, так что остальное сделать я просто не успел, не поместилось в формат «игрушка за вечер».

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

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

Стереоизображение — это просто

Reading time3 min
Views52K
Привет, %username%.

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

Введение


Для начала рассмотрим, как устроено стереоизображение и как на него смотреть.
Читать дальше →

Краткая шпаргалка по tmux (менеджеру терминалов)

Reading time1 min
Views436K
tmux — это менеджер терминалов, к которому удобно подключаться и отключаться, не теряя при этом процессы и историю. Как screen, только лучше (в первую очередь потому, что использует модель клиент—сервер).

image

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

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

Simpoll: опросы и тесты для вашего сайта

Reading time3 min
Views5.7K
Здравствуйте. Позвольте рассказать вам о недавно запущенном стартапе Simpoll.ru

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

Simpoll
Зачем нам еще один сервис опросов?

Лайтпак 5.5 опубликован

Reading time1 min
Views8.3K
Читатели помнят, что ещё в декабре прошлого года, после публикации пользователя brunql мы с ним и timsat решили всерьёз взяться за open-hardware проект, который назвали Лайтпак. В феврале мы даже презентовали вам ревизию 4.3 после которой к проекту присоединилось много светлых голов.

А сегодня я готов показать вам чего мы добились к версии 5.5, ставшей первым коммерческим вариантам Лайтпака, который можно купить за деньги:


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

Как он учился писать статьи на Хабре

Reading time12 min
Views1.8K
image
Вася в очередной раз посмотрел на экран своего ноутбука. Он не хотел обновлять страницу. Хотя, очевидно, что её надо было обновить. Ещё разок. Последний раз. Больше он не будет её обновлять. F5.
56.6. Упала на 1 единицу. Чёрт. Хотя, минус один за четыре часа — это не большая проблема, но всё-таки было неприятно.

Серо-синий клубок ниток (или проводов, не важно), смотрел на покрасневшие программерские глаза. Он был одновременно притягивающим и отталкивающим. Этот клубок сулил славу и знание, но в то же время, мог привести к позору.

Не так давно, несколько часов назад, из за одного, не в меру остроумного комментария Вася потерял 12 единиц. Отвратительно. Надо было взять реванш. Это просто уже дело чести. Обязательно надо взять реванш.
Читать дальше →

Собрание материалов по лицензиям и авторскому праву GNU

Reading time2 min
Views1.5K
image

Что такое авторское лево
www.gnu.org/copyleft/copyleft.ru.html
www.gnu.org/copyleft/copyleft.html

Категории свободных и несвободных программ
www.gnu.org/philosophy/categories.ru.html
www.gnu.org/philosophy/categories.html

Проблема лицензии BSD
www.gnu.org/philosophy/bsd.ru.html
www.gnu.org/philosophy/bsd.html

Свободные программы надежнее
www.gnu.org/software/reliability.ru.html
www.gnu.org/software/reliability.html

Почему «открытый исходный код» не передает понятия свободное ПО
www.gnu.org/philosophy/open-source-misses-the-point.ru.html
www.gnu.org/philosophy/open-source-misses-the-point.html

Зачем авторское лево
www.gnu.org/philosophy/why-copyleft.ru.html
www.gnu.org/philosophy/why-copyleft.html

FAQ по лицензии GNU
www.gnu.org/licenses/gpl-faq.html
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity