|
Подпишитесь на новости сайта по RSS
|
|
Главная страница
Здравствуйте!
Вы находитесь на сайте WebHamster.ru. Наш хомячок бегает по интернету в поисках интересной информации. Он собирает её по крупицам и аккуратно складывает здесь. А еще хомячок знает буквы, садится за свою маленькую пишущую машинку и сам пишет всякую ерунду. Он такой непоседа...
Новости
|
|
|
Недавно я перешел с текстового редактора Far (запущенного в Linux в Wine) на редактор KWrite. Как оказалось, не зря.
Мне часто приходится иметь дело с файлами в различных кириллистических кодировках - UTF-8, CP1251, CP866, KOI-8. И до недавнего времени мне был известен только один редактор, который умел автоматически определять кодировку и менять кодировку прямо при редактировании текста - это редактор Far. Все остальные редакторы в Linux не имели такой функции, и предполагалось городить свои костыли через enca.
Но прогресс не стоит на месте, и недавно я обнаружил, что в KWrite тоже добавили функцию автоматического определения кодировки файла. И она работает как положено! А так же сохранена возможность переключиться на другую кодировку во время редактирования.
И я снова убедился, что KWrite - прекрасный комбаин для редактирования текста.
|
|
|
|
Недавно я написал цикл из трех статей о том, как искал и настраивал под себя удобный текстовый редактор в ОС Linux. Трилогия опубликована на сайте WebHamster.Ru в разделе Статьи – Компьютерное:
Небольшая аннотация:
Я очень трепетно отношусь к текстовым редакторам. Ведь текстовый редактор входит в тройку самых часто используемых инструментов для работы на компьютере. Делят с ним пальму первенства только файловый менеджер и веб-браузер.
Моим первым текстовым редактором, в котором я написал километры ассемблерного кода, был редактор ED*МИКРОН*, который работал на ПК "Микроша" - клоне радиолюбительского компьютера Радио-86 РК. У этого ПК было 32Кб оперативной памяти и микропроцессор, работавший на заниженной частоте в 1,8МГц. Несмотря на такие скромные характеристики, редактор текстов был не строковым, а полноэкранным.
Читать дальше...
|
|
|
|
Дорогие пользователи PIM-менеджера MyTetra! А так же те, кто размышляет о том, как хранить свои заметки, рабочие записи и приватные данные.
С предыдущего публичного релиза этой кроссплатформенной программы прошло два с половиной года, и может сложиться впечатление, что проект свернут и не развивается. Это далеко не так, проект жив и здоров, просто я привык делать крупные релизы, в которые включены существенные изменения.
У меня есть надежда, что примерно к концу весны 2014 г. я смогу выпустить очередной релиз программы MyTetra. Что будет нового в весеннем релизе?
- Будут исправлены несколько неприятных багов версии 1.30, которые выяснились в процессе эксплуатации программы в боевых условиях. В принципе, эти баги уже исправлены в ветке experimental (версия 1.32.17 на сегодняшний день);
- Будет заменен формат шифрования данных на более криптостойкий формат RC5Simple версии 3. Уже доступно в экспериментальной ветке;
- Появится возможность перетаскивания записей между ветками (drag-and-drop). Такая возможность особенно актуальна для тех, кто использует MyTetra в качестве GTD-органайзера. Уже доступно в экспериментальной ветке;
- Появится возможность прикрепления файлов к записям;
- Появится долгожданная возможность редактирования URL в тексте записи через визуальные инструменты, а не только на низком урове в HTML-коде;
- Появится функционал восстановления целостности базы после сбоев (например, при внезапном выключении питания). Теперь не придется восстанавливать базу вручную путем правки XML и копирования файлов;
- Появится функционал резервирования конфигурирующих файлов. Опыт эксплуатации показывает, что работа с ini-файлами в Qt иногда (очень редко, примерно раз в год) может привести к тому, что содержимое файла не записывается, хотя документация утверждает, что запись всегда происходит коректно и автоматически;
- Появится лог действий. Он необходим для того, чтобы при изменении в структуре дерева записей можно было легко понять что и где было изменено;
- Появится возможность защиты записи от случайного редактирования;
- Появится возможность просмотра времени создания записи и времени редатирования. Сейчас эти данные доступны в самой базе, но не видны в интерфейсе.
- Появится возможность выгрузки (экспорта) отдельной ветки и возможность импорта ветки. Это обеспечит простой механизм обмена даными между пользователями MyTetra;
- Возможно, визуальныей текстовый редактор будет переведен на работу со стилями, вместо прямого указания форматирования текста. Это необходимо для того, чтобы текст хорошо читался на разных устройствах с разным DPI и на разных операционных системах.
- Возможно, появятся ссылки в текстах, ссылающиеся на другие записи MyTetra;
- Возможно, появится поддержка вода формул в нотации TeX;
- И самое вкусное: новый релиз будет так же выпущен и под платформу Android. Версия под Android уже доступна в экспериментальной ветке. Напоминаю, что сейчас программа существует для Windows, Linux, MacOsX, FreeBSD, MeeGO.
Следите за новостями.
|
|
|
|
Итак, отгремели новогоднии праздники, сегодня Крещение, а завтра начинаются трудовые будни. И я, как всегда с запозданием, подвожу итоги уходящего года.
Намечается, обычно, много, а делается, как обычно, не всё. Работа в пусконаладочной организации забирает много времени, а ничем другим в моем городе не заработаешь. И я чувствую, что с каждым годом все меньше и меньше могу сделать в сфере IT, а ведь именно в этой сфере я умею делать дела лучше всего. То есть, я приступил к основательному забиванию гвоздей микроскопом. Я занимаюсь госзакупками, заключением договоров, поставками, гарантийными письмами, поисками коммерческих предложений и прочей дребеденью, которую может сделать человек, умеющий писать и считать. От этого весело не становится.
Но сайт у нас все-таки IT-шный, поэтому перечислю, что было сделано в 2013 году в той сфере жизни, для которой я был создан:
- Я написал пару статей по платформе 1С, ибо с ней мне приходится иметь дело по работе;
- Я выпустил тему оформления Redmond 125% для KDE 4;
- Я сделал сервис MyTetra Share. Это такой транслятор базы знаний, собранной в PIM-менеджере MyTetra, который преобразует базу в набор web-страничек;
- Я безуспешно боролся с Почтой России, пытаясь вовремя получить детские журналы. В итоге так и не понял, кто виноват - толи почта, толи редакция "Веселых картинок", которая не может организовать редакционную подписку;
- Я пообщался с Виктором Пыхониным - автором известного эмулятора отечественного компьютера Радио-86РК и его клонов. В результате общения я поучаствовал в портировании эмулятора на ОС Linux, а так же Виктор смог составить более правильную модель эмуляции таймера ПК Микроша. В результате я наконец-то смог в эмуляции запустить свои самописные игры, которые писал на Ассемблере более двадцати лет назад.
- Я написал простенький bash-скрипт Cron Emulator. Он создает среду запуска bash-команд, аналогичную среде Cron. Прописав в конец этого скрипта интересуемые команды, можно отследить их выполнение "вживую", так, как будто они выполняются в Cron.
- Я участвовал в тестировании отечественного многоклеточного микропроцессора MultiClet. Написать полноценный эхо-сервер за отведенное время не успел, но заставил этот микропроцессор передать несколько байт в консоль, чему был несказано рад.
- Я перевел большую главу документации по фреймверку ExtJs 4.2;
- Попытался освоить Django, но из-за неподъемных трудностей с разработкой и запуском под Apache решил бросить эту затею.
- Я обновил библиотеку RC5Simple до версии 1.30, в которой сменилось три формата шифрования. А так же я разместил репозитарий RC5Simple на GitHub;
- Под новый год я побывал на новогодней битве роботов в номинации робо-сумо, и написал отчет об этом турнире;
- На новый год мне задарили планшет Samsung Galaxy Tab. В результате, в новогоднюю ночь я ухитрился портировать PIM-менеджер MyTetra под Android в Qt 5.2. В настоящий момент идет активная разработка новой версии MyTetra, которая будет так же доступна и для платформы Android.
Что было намечено и не сделано в 2013 году:
- Хотел опубликовать статью в бумажном журнале. Статья уже год как готова, да все никак руки не дойдут начать общаться с редакциями;
- Хотел записать авторскую песню, договорился со студией, но все никак туда не попаду;
- Хотел сделать адовый Linux-портал. Пока что только расписал концепт.
- Хотел запустить онлайн-игру Логобол на портале Logoball.ru, но все нет времени ее доделать;
- Хотел выпустить обновленную версию MyTetra, ибо с прошлой публичной версии прошло почти два года, и в ней завалялось куча давно исправленных багов. Как раз сейчас работаю над этим.
В новом году я всем желаю, чтобы всё у вас получилось, и все намеченные планы были выполнены с опережением графика. А еще я желаю всем и себе, конечно, то же, - здоровья. Будет оно - будет и все остальное.
С наступившим 2014 годом!
|
|
|
|
В канун нового года я побывал на одном интересном мероприятии. 16 автономных роботов, созданных школьниками, соревновались в дисциплине "робо-сумо".
Все прошло буднично: кружку Юных Техников выделили время и большой класс в ближайшей школе. Собрались ребята из кружка, некоторые пришли со свими родителями. Организаторы в количестве трех человек притащили наборы констркуторов ЛЕГО и ноутбуки.
В течении часа проходила сборка и отладка роботов, а потом начались бои на ринге.
Фото-репортаж об этом событии смотрите здесь:
Новогодняя битва роботов в Волгодонске (2013-2014)
|
|
|
|
Выпущен новый релиз библиотеки RC5Simple v.1.30, в котором были исправлены обнаруженные недочеты предыдущих версий. В данном релизе был введен новый формат хранения под номером 3. Естественно, сохранена совместимость с предыдущими форматами, однако шифрация по-умолчанию идет в новом формате.
Расположение данных в формате №3 представлено на рисунке:
Увеличить
Краткое перечисление изменений:
- Добавлен формат 3. В предыдущем формате 2 обнаружено необоснованное занижение количества первичных случайных данных на половину длины ключа шифрования. В формате 3 первичные случайные данные имеют полную ширину ключа шифрования
- По умолчанию идет шифрация в формат 3
- В метод RC5_Encrypt добавлена установка кода ошибки при попытке зашифровать пустые данные
- В метод RC5_Decrypt добавлена установка кода ошибки при попытке расшифровать пустые данные
- В метод RC5_Decrypt добавлена установка кода ошибки при попытке расшифровать данные с некорректной длинной
- В методах расшифровки проставлены правильные константы для смещений данных в разных форматах хранения
- Произведена проверка через valgrind упаковки/распаковки в каждом из форматов. Везде имеем отчет ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
- Фиксация номера версии
- Пройдены тесты шифрации/дешифрации данных на совместимость с предыдущими версиями
- Пройдены тесты по интеграции и работе в рамках MyTetra
Кроме того, в ветке experimental PIM-менеджера MyTetra v.1.31.1 данная библиотека уже добавлена. Особо нетерпеливые пользователи-параноики, такие как я, могут скачать данную версию и запустить процедуру перешифрования всех данных с новым паролем (при этом будет заменен и формат хранения на самый новый). Однако не следует забывать, что при хранении данных в системх контроля версий, таких как GIT, следует удалить всю историю со старыми данными. Как это сделать будет описано при выходе официального релиза новой версии MyTetra.
|
|
|
|
Разрабатываемая в сложных условия криптографическая библиотека RC5Simple сегодня была размещена на GitHub.
Библиотека продолжает развиваться, и в настоящий момент идет работа над новым форматом под номером 3, в котором устраняется досадный недочет формата 2: необоснованное занижение количества первичных случайных данных на половину длинны ключа шифрования. В формате 3 первичные случайные данные имеют полную ширину ключа шифрования.
В ближайшее время планируется выпуск следующих программных продуктов:
- финальная версия библиотеки RC5Simple с форматом 3;
- программа MyTetra Crypt Tool - программа для консольного раскодирования зашифрованных файлов MyTetra;
- новая версия PIM-менеджера MyTetra с поддержкой RC5Simple формата 3.
Оставайтесь с нами.
|
|
|
|
Библиотека шифрования RC5Simple, изначально разрабатываемая как подсистема шифрации приватных данных в PIM-менеджере MyTetra, обновилась до версии 1.28.
RC5Simple - это простая кроссплатформенная C++ библиотека с открытым исходным кодом, предназначенная для шифрования/дешифровки массивов и файлов. Шифрация происходит по алгоритму RC5-32/12/16 c CBC-режимом сцепления. Библиотека реализует алгоритм шифрации с длиной ключа 128 бит.
Основные нововведения:
- Появилась поддержка форматов;
- Добавлен новый, более криптостойкий формат, закрывающий уязвимость к подбору ключа шифрования на основе анализа образцов зашифрованного текста с известными начальными символами;
- Добавился механизм получения кода последней ошибки.
Пользоваться устаревшим форматом шифрации строго не рекомендуется. Скоро будет выпущена корректирующая версия MyTetra с обновленным механизмом шифрования приватных данных. Особо нетерпеливые могут уже взять обновленную версию MyTetra в ветке experimental.
Следите за новостями.
|
|
|
|
В Django есть старая проблема: невозможно просто так изменить что-нибудь в Python-скрипте, и при этом изменения сразу бы применились, как это происходит в PHP. Автоматически применить изменения невозможно, если Djano запускается под Apache-2 через WSGI.
Я попытался разобраться, есть ли какое-то нормальное решение. Оказалось, что нет. Об изысканиях написано в статье:
Django: как применить изменения в исходниках проекта на Apache-2 и WSGI
Желаю удачи любителям Django. С такими проблемами на пустом месте она им действительно понадобится.
|
|
|
|
Завершен перевод очередного раздела "Архитектура MVC (Модель-Вид-Контроллер)" из официальной документации по фреймверку Ext JS 4.2. Раздел был очень большой, поэтому разбит на девять частей:
Обращаю внимание, что это не дословный, а авторский перевод. Структура фреймверка Ext JS 4.2 основна на парадигме ООП, поэтому в тексте встречаются термины "объект", "свойство", "метод", "наследование". Не следует писать мне на емайл что в JS нет ООП, а объекты наследуются через прототипы. Я это прекрасно знаю, а дотошным блюстителям чистоты кода предлагаю прочитать цитату из главы "Система классов":
Язык JavaScript - это прототипно-ориентированный язык программирования, в котором отсутствуют классы. Следовательно, по своей природе язык JavScript чрезвычайно гибок, что позволяет делать одну и ту же работу различными путями, используя совершенно разные стили и методики написания кода. Однако за такую гибкость приходится платить большую цену. Цена эта - трудно прогнозируемое качество результата работы программиста. Не имея четкой и унифицируемой структуры, на языке JavaScript легко создать трудно понимаемый код, непригодный для сопровождения и повторного использования.
Модель программирования, основанная на классах, всё ещё остается очень популярной методикой, называемой объектно-ориентированным программрованием (ООП). Языки, основанные на классах, обычно требуют строгую типизацию данных, эффективно скрывают реализацию, а разработчики обычно придерживаются стандартов в соглашениях о кодировании. Заставляя разработчиков придерживаться общепринятых принципов, написание кода можно сделать более предсказуемым, а код более расширяемым и масштабируемым в течении длительного времени. Однако, у таких языков нет тех же возможностей по динамическому расширению кода, которые есть у JavaScript.
У каждого подхода есть свои достоинства и недостатки, однако почему бы не взять всё хорошее из обеих подходов, при этом отбросив все неудачные решения? Именно это мы и реализовали в нашем фреймверке Ext JS 4.
|
|
|