Собираем
информацию
по крупицам
Главная страница

Здравствуйте!

 

Вы находитесь на сайте WebHamster.ru. Наш хомячок бегает по интернету в поисках интересной информации. Он собирает её по крупицам и аккуратно складывает здесь. А еще хомячок знает буквы, садится за свою маленькую пишущую машинку и сам пишет всякую ерунду. Он такой непоседа...


Новости

LoLo Switcher: результаты открытия проекта, новый релиз v.0.20
13-09-2011
12:28:28

Около недели назад я выложил в открытый доступ проект переключателя клавиатуры LoLo Switcher для оконной среды X11. Принцип работы этого переключателя сильно отличается от общепризнанных архитектурных решений в этой области.

 

Про архитектуру

 

Все ныне существующие переключатели раскладки работают только на уровне X11, что весьма православно и гарантирует их использование при удаленном подключении к иксам. Однако эти переключатели имеют застаревшие болячки, вызванные неудачной архитектурой подсистемы событий ввода X11, и часто ограничены в конфигурировании. Переключатель, который работает более-менее стабильно, например старый не совсем добрый xxkb, впринципе не может быть гибко сконфигурирован. А продвинутый xneur спустя шесть лет разработки до сих пор неспособен работать (как бы помягче сказать) в некоторых программах, таких как Kate и Kopete. У разработчиков xneur даже есть рекомендации, как переконфигурировать другие программы (например, XTerm) для того, чтобы они начали работать с xneur. Такой подход уже выходит за рамки здравого смысла. В общем, я не вижу в Linux переключателя клавиатуры, в котором бы гибкость конфигурирования сочеталась бы с безглючностью и беспроблемностью работы.

 

Любой сторонний наблюдатель скажет, что если за многие годы в X11 так и не появился человеческий переключатель клавиатуры, то что-то не так в самой архитектуре иксов, как минимум в той её части, которая отвечает за события ввода. Да, так и есть. Это признают и сами разработчики X11, и в данный момент подсистема ввода переписывается под именем XInput2. Мне даже предложили еще подождать. Т. е. дождаться когда XInput2 везде станет стандартом де-факто, параллельно с этим влиять на разработчиков XInput2 чтобы они при проектировании учли те проблемы, которые существуют сейчас при написании переключателей клавиатуры. Но я и так ждал тринадцать лет, и мне предлагают подождать еще! Да у меня внуки к тому времени уже появятся.

 

Принцип работы LoLo Switcher следующий. LoLo Switcher работает как процесс на низком системном уровне, и получает данные от клавиатуры напрямую из файла устройства. Обнаружив нужную последовательность кодов, LLS вызывает функции X11, отвечающие за переключение раскладки.

 

Я сознательно пошел на создание такой архитектуры, так как при локальном использовании она гарантирует переключение языка в X11 при любых условиях, а ситуаций "в одном окне работает, в другом нет" просто не может быть. Кроме того, мне важна скорость и отзывчивость переключения. По моему мнению, существующие переключатели в X11 работают не так быстро как хотелось бы. Им приходится держать в памяти "модель" клавиатуры, динамически меняя ее при нажатии/отжатии/удерживании обычных клавиш и клавиш-модификаторов по тем обрывочным данным, которые дает интерфейс X11 (а он дает, кстати, не все события, которые генерирует клавиатура, в частности поэтому и приходится воссоздовать картину состояния клавиатуры на "модели"). Кроме того, скорость автоповтора клавиш (который, кстати, есть даже у клавиш-модификаторов), в X11 совершенно другая, нежели заданная в BIOS или непосредственно на самой клавиатуре (да, есть и такие клавиатуры, с треугольничками на функциональных клавишах). Скорость автоповтора в X11 настраивается в любом современном DE, но это никак положительно не влияет на рассинхрон с аппаратной частью клавиатуры, который чуствуется при быстрой работе. А так как автоповтор есть даже на клавишах-модификаторах, которые традиционно используются для переключения раскладки, то мы имеем проблемы рассинхрона и при смене языка, особенно если язык должен переключаться при отжатии клавиши.

 

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

 

Новый релиз

 

Сегодня я выпускаю стабильный релиз LoLo Switcher v.0.20.

 

В этом релизе исправлены серьезные проблемы, которые были в первом публичном релизе, в частности устранена утечка дескрипторов процессов и памяти, которая возникала из-за неправильного запуска bash-команд, прописываемых в опциях CommandX. Внешне это проявлялось в том, что примерно после 500-600 переключений RUS/LAT переключатель вываливался с ошибкой "Failed to create thread to command".

 

Было проведено обширное тестирование LoLo Switcher через отладчик valgrind, чтобы исключить любые проблемы неправильного выделения памяти, так как переключатель клавиатуры должен работать практически всё время работы компьютера. В настоящий момент valgrind показывает отчет "ERROR SUMMARY: 0 errors from 0 contexts" в любом режиме работы переключателя.

 

Версия v.0.20 является стабильной, и рекомендована к использованию. Впринципе, на этом этапе возможности LoLo Switcher меня устраивают полностью, и следующих релизов в ближайшее время не предвидится. Всё, что закладывалось в программу, сейчас работает без нареканий, и что-то менять и дорабатывать не вижу никакого смысла.

 

Спасибо за внимание, успешного вам дня.

 


LoLo Switcher v.0.15 - новый универсальный переключатель клавиатуры для X11
08-09-2011
00:10:49

Удобно обустроить рабочее окружение - одна из главных задач для обеспечения продуктивности работы за компьютером. Linux в этом смысле очень несбалансированная система. Некоторые вещи поддаются точной настройке, и иногда возможности конфигурирования зашкаливают за все разумные рамки. А некоторые вещи, которым просто необходима возможность тонкой настройки "под себя", традиционно её не имеют.

 

Так, начиная с 1998 года, я за тринадцать лет не смог настроить переключатель клавиатуры на нужную мне комбинацию клавиш. Нет, конечно настроить переключение языка на нужную комбинацию не составляет труда, проблема только в том что пользоваться нужной комбинацией невозможно - всегда вылезут какие-нибудь побочные эффекты, которые перечеркнут все удобство выбранной комбинации. Каждый, кто достаточно долго работал в Linux, постепенно приходят к выводу, что самая беспроблемная клавиша для переключения языков - это CapsLock. 

Да, CapsLock - самая беспроблемная клавиша с точки зрения ограничений системы ввода в Linux. Но не самая удобная с точки зрения эргономики. Поэтому недавно, сказав себе "хватит мучиться", я засел за написание нового переключателя клавиатуры, который можно было бы настроить на любое устройство ввода, на любую комбинацию действий с любой логикой срабатывания. И я смог его написать. Это звучит слишком невероятно, но тем не менее это так.

Наконец-то я легко настроил переключение языка ввода на нужную мне комбинацию клавиш, и использование этой комбинации не натыкается на побочные эффекты, возникающие, например, при использовании клавиш-модификторов. Да что там клавиши! Я даже смог настроить переключение языка на рычажок USB-джойстика! Была бы педаль - настроил бы переключение по педали.

Итак, встречайте! LoLo Switcher - новый низкоуровневый переключатель клавиатуры для X11! Особенности программы:

  • Функционирует в любых окружениях рабочего стола (KDE3, KDE4, GNOME2, LXDE...);
  • Поддерживает любые модели клавиатур и джойстиков;
  • Работает напрямую с устройством ввода;
  • Предельная компактность, скорость работы, нулевая нагрузка на систему;
  • Прозрачная работа параллельно с другими переключателями клавиатуры;
  • Феноменальная конфигурабельность;
  • Встроенные средства диагностики устройства ввода.

За подробностями переходим сюда:

Официальная страница программы LoLo Switcher


Руководство по конфигурированию LoLo Switcher

 

Видео с демонстрацией работы LoLo Switcher на YouTube

 

Ветка форума с обсуждением переключателя клавиатуры LoLo Switcher

 

 

PS: Меня просят написать, что это за сочетание клавиш, которое невозможно настроить существующими средствами. Отвечаю: переключение языков ввода при отжатии левого и правого SHIFT. Обращаю внимание - при отжатии, а не при нажатии. Причем, если SHIFT использовался для написания большой буквы, то переключения при отпускании SHIFT происходить не должно. Если нажималась сложная комбинация, например CTRL+SHIFT+F1, то переключения при отпускании SHIFT тоже происходить не должно. Обоснование использования левого и правого SHIFT для переключения двух языков ввода дано здесь.

 


MyTetra v.1.30.1 - релиз для владельцев 64-х битных систем
18-07-2011
15:07:03

Программа накопления информации MyTetra обновилась до версии 1.30.1. В этом релизе были исправлены проблемы с шифрованием, возникающие у пользователей 64-х битных систем.

 

На официальной странице проекта выложены исходники новой версии MyTetra, и готовая сборка под Mac Os X (спасибо постоянному Mac-майнтейнеру Андрею Сергиенко).

 

Перед релизом были проведены тесты на шифрацию-дешифрацию в разных дистрибутивах Linux x86_64 и Mac Os X, а так же перекрёстные тесты шифрации-дешифрации на платформах с разной разрядностью.

 

PS: Пользователям традиционных 32-x битных систем i386-i686 смысла обновляться нет, доработки были проведены только для 64-х битных платформ.

 


RC5Simple v.1.23 с поддержкой 64-х битных архитектур
16-07-2011
13:18:13

Выпущена новая версия криптографической библиотеки RC5Simple v.1.23. В этом релизе была проделана работа по портированию на 64-х битные архитектуры. Теперь RC5Simple может работать как на традиционных 32-х битных платформах, так и на 64-х битных.

 

Перед выпуском библиотеки, были проведены тесты в следующих операционках:

  • CentOS 5.5 x86_64
  • openSUSE 11.3 x86_64
  • Ubuntu 11.04 (x64)
  • Mac OS X 10.6.8

Использовались микропроцессоры:

  • AMD Phenom(tm) 8450 Triple-Core Processor
  • AMD Athlon(tm) 64 X2 Dual Core Processor 4200+
  • Intel Core2 Duo E8400 3.00GHz
  • Intel Core2 Duo T7400 "Merom" 2.00GHz

Благодарю откликнувшихся тестеров: Андрея Сергиенко, Кирилла Детинова, Александра Зайцева. Особую благодарность выражаю Анатолию Мельнику за предоставление удаленного доступа к консоли 64-х битной платформы.

 

В ближайшее время выйдет новая версия MyTetra с полной поддержкой 64 бит. Следите за новостями.

 


Проблемы с шифрованием в MyTetra на 64-х битных системах
13-07-2011
22:53:59

Уважаемые пользователи MyTetra и 64-х битных операционных систем (Linux x64, Mac Os X).

 

Должен вас огорчить, что в 64-х битном варианте неправильно работает библиотека шифрования RC5Simple. Я, к сожелению, не имел и не имею возможности проверить ее работу на 64-х битных системах и исправить ошибку.

 

При публикации библиотеки два месяца назад, я попросил заинтересованных людей протестировать поведение библиотеки в 64-х битном окружении. Вот новость с описанием технологии тестирования:

https://webhamster.ru/site/page/index/main/news/158

 

За два месяца не нашелся ни один человек, который бы смог помочь. Поэтому сейчас могу только рекомендовать не пользоваться шифрованием в MyTetra на 64-х битных операционках.

 

Спасибо за понимание.

 


MyTetra v. 1.30
11-07-2011
15:16:05

То, о чем так долго говорили большевики, свершилось!

 

Выпущена новая версия кроссплатформенного менеджера накопления информации MyTetra v. 1.30. В релизе настолько много изменений, что я решил "перепрыгнуть" в нумерации версий с 1.28 сразу на 1.30, чтоб номер получился круглым.

 

В новом релизе MyTetra появилось три важных функции: синхронизация через интернет, шифрование и навигация по истории.

 

 

Синхронизация

 

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

 

 

Шифрование

 

Данные шифруются по алгоритму RC5-32/12/16 c CBC-режимом сцепления, ключ генерируется на основе пароля с солью, пропущенного через алгоритм PBKDF2 на 1000 раундов с длиной ключа 160 бит. Для генерации ключа шифрации в 128 бит, от результата берется MD5 сумма. Каждая запись шифруется с уникальным инициализирующим вектором. Как побочный результат реализации шифрования, была создана кроссплатформенная библиотека RC5Simple.

 

В MyTetra можно использовать шифрование в двух режимах:

  • Первый, наиболее секьюрный - это запрос пароля при каждом старте MyTetra или при попытке доступа к зашифрованным данным. Он подходит для людей, которым необходимо локальное и безопасное храннение данных.

  • Второй, менее секьюрный режим, - это возможность запоминания пароля (точнее, хеша пароля) программой MyTetra. Данный режим походит для пользователей, которые хотят синхронизировать свои данные через открытые всем бесплатные сервера в интернете, но не хотят каждый раз вводить пароль. 


Навигация по истории

 

В MyTetra появились две замечательные кнопочки, которые позволяют быстро перемещаться назад и вперед по истории просматриваемых записей. Так же теперь MyTetra помнит, какую запись вы редактировали в каждой ветке и автоматически выбирает данную запись при переходе в уже посещённую ветку.

 


Так же в MyTetra v.1.30 много других доработок и изменений.

 

 

Ссылки

 

Традиционный обзор новой версии: MyTetra v.1.30 - подробный обзор.

 

Настройка синхронизации: Документация по настройке синхронизации MyTetra через интернет.

 

Скачать установочные пакеты и исходники: Официальная страница программы MyTetra.

 

Обсудить, отправить багрепорт или задать вопрос: Ветка форума по MyTetra v.1.30.

 

PS: В данный момент готовы версии для Linux и Windows. Пользователям Mac Os X и MeeGo нужно набраться терпения и немного подождать.

PPS: На официальной странице добавлена сборка MyTetra v.1.30 для FreeBSD 8.2, спасибо товарищу Алексею Шизу.

 

PPS2: Добавлена сборка MyTetra v.1.30 для Mac Os X, спасибо товарищу Андрею Сергиенко.

 


Git и GitHub: полное руководство для пользователей Windows и Linux
09-07-2011
02:22:03

На сайте WebHamster.ru опубликована новая статья, в которой описаны тонкости настройки и использования популярного сервиса GitHub.com. В статье максимально подробно описан весь процесс инсталляции git, и весь процесс настройки сервиса GitHub. Рассмотрены настройки как для пользователей Linux, так и для пользователей Windows.

 

Прочитать статью можно в разделе "Компьютерное":

 

Установка GIT и настройка GitHub: полное руководство (Windows, Linux).


Задержка выхода MyTetra v.1.30
04-07-2011
20:38:57

Уважаемые пользователи менеджера накопления информации MyTetra!

 

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

 

Сейчас, в связи с дописывание функционала, баг вылез во всей своей красе.

 

Обсуждение 1: http://www.prog.org.ru/topic_18706_0.html

Обсуждение 2: http://www.linux.org.ru/forum/development/6457931

Багтрекер Qt: http://bugreports.qt.nokia.com/browse/QTBUG-8086

 

Багу подвержен Qt версии 4.6, и он исправлен в Qt 4.7. Для пользователей Windows и MacOs я могу собрать установочный пакет с нужными библиотеками. Но с пользователями Linux прямо не знаю что делать. Не могу же я заставить их обновиться на Qt 4.7. Я и сам пользуюсь Debian Stable, в котором имеем Qt 4.6. Делать статическую сборку под Linux бессмысленно - на половине дистрибутивов она всеравно будет сегфолтиться: то libc не той версии, то ядро не той системы.

 

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

 

Следите за новостями.

 


Вести с полей: в MyTetra заработала синхронизация
24-06-2011
21:34:29

Разработка MyTetra продолжается согласно опубликованному ранее плану.

 

На текущий момент в MyTetra, помимо шифрования, заработала синхронизация через интернет. Для синхронизации можно использовать любые системы облачного хранения данных или системы контроля версий. Главное, чтобы эти системы поддерживали атомарность.

 

Для себя я использую Git на GitHub.com, бесплатный тариф. Данные на этом тарифе доступны для чтения всем желающим, поэтому все приватные данные зашифрованы.

 

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

 

Запуск cинхронизации возможен двумя путями. Можно запускать синхронизацию вручную, с помощью специальной кнопочки:

 

 

Дополнительно можно настроить автоматическую синхронизацию при старте программы и при выходе:

 

 

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

 

PS: Тут меня в аське спрашивают, не боюсь ли я хранить свои личные данные в зашифрованном виде на открытом хостинге. Вдруг взломают? Отвечаю: я считаю используемую подсистему шифрования RC5Simple достаточно надежной для хранения своих приватных данных, при условии использования хорошего пароля. Если у кого есть желание заняться взломом, пожалуйста - исходники открыты, мои данные лежат на GitHub (ищите по ключевому слову mytetra). Приз ~3000 руб. + ~100$ в моем WebMoney-кошельке, которые можно утащить узнав WM-данные, хранящиеся в одной из записей.


Всем удачи, следите за новостями.

 


Qt: Борьба с ошибкой
16-06-2011
18:45:49

На сайте WebHamster.ru опубликована новая статья о том, как я боролся с ошибкой в Qt, а она оказалась совсем в другом месте.

 

Если у вас в консоли сыпятся предупреждения следующего вида:

 

[WRN] QFont::setPointSize: Point size <= 0 (0), must be greater than 0

 

и вы не знаете, откуда они появились, то советую ознакомиться со статьёй:

 

Qt: как бороться с ошибкой "Point size <= 0 (0), must be greater than 0".

 


Страницы:  ‹ Назад 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Далее › 

Интересное на сайте


Скейтбординг » Переносной трамлин

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


Платформа 1C:Предприятие » Как в 1С v.8.2 получить XML-код для DOM-элемента

При написании процедур вызгрузки и загрузки XML данных часто требуется конвертирование частей DOM-дерева в XML код. Части DOM-дерева обычно представле...


ПЭВМ "Микроша" » Комплект программ "Редактор и Ассемблер" для ПЭВМ "Микроша"

Часть документации на ПЭВМ "Микроша" с описанием работы текстового редактора и транслятора ассемблера. Данный комплект программ занимал 4Кб: 2Кб уходи...

RSS подписка

Подпишитесь на новости сайта по RSS

Поделиться этой страницей


Статистика


О, смотри-ка какое хорошее место. Дайте два!

Внимание!


На этом сайте разрабатывается программа MyTetra и её родственные проекты. Доступны к просмотру следующие базы знаний:

 

База Xintrea (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)

База Rarrugas (1, 2)

База Balas

База YellowRaven

База Yurons

База Lesnik757

База Shandor

База Sirrichar

База Anatolean

База Аrmagedec

База SorokinRed

База Deadelf79

База Fadk

 

Требуют доработки:

 

База Tairesh

База Ivnglkv

База Kolyag87

База Andyk101

База Garik456456

База Harpokrat

База SalexIzyh

База Duwaz

 

Подробности на странице MyTetra Share.

 WebHamster.Ru
 Домик любопытного хомячка
Яндекс индекс цитирования
Почтовый ящик