|
Главная страница
Здравствуйте!
Вы находитесь на сайте WebHamster.ru. Наш хомячок бегает по интернету в поисках интересной информации. Он собирает её по крупицам и аккуратно складывает здесь. А еще хомячок знает буквы, садится за свою маленькую пишущую машинку и сам пишет всякую ерунду. Он такой непоседа...
Новости
|
|
|
Уважаемые пользователи 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. В релизе настолько много изменений, что я решил "перепрыгнуть" в нумерации версий с 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, спасибо товарищу Андрею Сергиенко.
|
|
|
|
Уважаемые пользователи менеджера накопления информации 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 продолжается согласно опубликованному ранее плану.
На текущий момент в MyTetra, помимо шифрования, заработала синхронизация через интернет. Для синхронизации можно использовать любые системы облачного хранения данных или системы контроля версий. Главное, чтобы эти системы поддерживали атомарность.
Для себя я использую Git на GitHub.com, бесплатный тариф. Данные на этом тарифе доступны для чтения всем желающим, поэтому все приватные данные зашифрованы.
Синхронизация происходит обычно около трех-пяти секунд. Для изменившихся файлов передаются только изменения, благодаря чему траффик минимальный.
Запуск cинхронизации возможен двумя путями. Можно запускать синхронизацию вручную, с помощью специальной кнопочки:

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

Сейчас проводятся последние тесты MyTetra, дорабатываются незначительные мелочи. К концу июня я планирую выпустить релиз.
PS: Тут меня в аське спрашивают, не боюсь ли я хранить свои личные данные в зашифрованном виде на открытом хостинге. Вдруг взломают? Отвечаю: я считаю используемую подсистему шифрования RC5Simple достаточно надежной для хранения своих приватных данных, при условии использования хорошего пароля. Если у кого есть желание заняться взломом, пожалуйста - исходники открыты, мои данные лежат на GitHub (ищите по ключевому слову mytetra). Приз ~3000 руб. + ~100$ в моем WebMoney-кошельке, которые можно утащить узнав WM-данные, хранящиеся в одной из записей.
Всем удачи, следите за новостями.
|
|
|
|
На сайте 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".
|
|
|
|
После нескольких публичных минорных релизов вышла первая стабильная версия криптографической библиотеки RC5Simple v.1.20.
Основные изменения в новой версии:
- Изменена реализация механизма сцепления блоков шифротекста с упрощенного, предложенного в Reference implementation of RC5-32/12/16 in C RSA Data Security Inc, 1995 на полный CBC, (см. описание в Wikipedia);
- Скорость шифрации/дешифрации данных увеличена в 2,5 раз;
- В исходники добавлен каталог /doc. В нем размещено описание формата данных и HOWTO по использованию библиотеки.
Библиотека RC5Simple в данный момент используется для разработки опции шифрования приватных записей в менеджере накопления информации MyTetra.
|
|
|
|
В ходе работы над блоком шифрования в менеджере накопления информации MyTetra, была обновлена криптографическая pure C++ библиотека RC5Simple. Изменения небольшие, и коснулись только внутреннего устройства библиотеки:
- Исправлены предупреждения о сравнении знакового и беззнакового числа в методах RC5_Setup() и RC5_EncDecFile() возникающие при строгих опциях компилятора;
- В прототип конструктора добавлен аргумент enableRandomInit, который по-умолчанию равен false. Это необходимо для того, чтобы пользователь мог управлять инициализацией генератора случайных чисел. Если в основной программе сделана инициализация, то инициализация в данном классе не требуется, и по-умолчанию теперь отключена.
Скачать RC5Simple v.1.16 можно на официальной странице проекта.
|
|
|
|
Развитие менеджера накопления информации MyTetra продолжается согласно недавно опубликованному плану развития.
На сегодняшний день в MyTetra заработало шифрование приватных записей.
Подробности низкоуровневой реализации следующие: все данные шифруются по алгоритму RC5-32/12/16 c CBC-режимом сцепления, ключ в 128 бит генерируется на основе пароля с солью, пропущенного через алгоритм PBKDF2 на 1000 раундов с длиной ключа 160 бит, после чего от результата берется MD5 сумма. Каждая запись шифруется с уникальным инициализирующим вектором.
Такая степень шифрации нужна для того, чтобы можно было безопасно хранить свои данные на любых открытых серверах.
Скриншоты для любознательных:
1. Запускаем MyTetra, видим зашифрованные ветки:
Увеличить
2. Кликаем по любой зашифрованной ветке, вводим пароль доступа:
Увеличить
3. Зашифрованные ветки открываются:

Увеличить
Внимание! В связи с тем, что не нашлось ни одного добровольца, который бы протестировал криптографическую библиотеку RC5Simple на 64-х битных системах, правильная работа подсистемы шифрования MyTetra в 64-х битных системах не гарантируется.
Скорее всего, следующий публичный релиз MyTetra будет под номером 1.30 (нумерация перепрыгнет через версию 1.29). В ней появится как шифрование, так и возможность настройки Internet-синхронизации через любые системы управления версиями, поддерживающими атомарность (я выбираю GIT на GitHub.com).
Следите за новостями.
|
|
|
|
На сайте WebHamster.ru опубликована новая статья под названием "Пример функции обратного вызова на C++ / Qt".
В этой статье на небольшом примере показано, как писать и использовать функции обратного вызова (callback-функции) в языке C++. Вам нужно будет управлять поведением самолетика, указывая алгоритм поведения как функцию обратного вызова. Заменяя функции обратного вызова, можно нагенерировать объекты одного класса (самолетики) с разными закономерностями поведения.
В рунете я не смог найти хорошего объяснения написания callback-функций с полным примером кода, поэтому, разобравшись с вопросом, написал свое руководство к действию.
|
|
|
Подпишитесь на новости сайта по 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
База Adgaver (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
База Pipitos1983
База Soxsten
База Silenn
База Shlyapnikova - херомантия и ригидность
База Svoynickname
База Larson227
База Velonski
База BrokeRU
База Mcold
База Alensav (1, 2, 3)
База Consp11
База Kozlov-AE (1, 2)
Требуют доработки:
База Tairesh
База Ivnglkv
База Kolyag87
База Andyk101
База Garik456456
База Harpokrat
База SalexIzyh
База Duwaz
База RuDennn (Bunny-Hop)
База Manakaden
База Vitvrn
База Fanrok
База Grimar
База_Juryak
База Nicolasomsk
База Azatserikbaev
База Shut913
Подробности на странице MyTetra Share.
|