develNotes

/*айтишные заметки*/

13.08.2011

Алгоритм хеширования MD5.

Алгоритм MD5 позволяет вычислить контрольную сумму сообщения - его уникальный "отпечаток". MD5 часто используют для проверки целостности данных, например вместе со многими дистрибутивами для загрузки приводят контрольную сумму. Если в процессе передачи данных файл будет поврежден хотя бы на один бит, то его контрольная сумма будет совсем другая. Посмотрим как устроен этот алгоритм. Длина исходного сообщения (данных) вычисляется в битах и может быть неограниченно большой, а также нулевой. Весь алгоритм можно разбить на несколько шагов:
Теги: algorithms MD5     Далее

21.11.2014

Расстояние Левенштейна - что это и как использовать.

Расстояние Левенштейна между двумя строками - это минимальное количество операций вставки одного символа, удаления одного символа и замены одного символа на другой, необходимых для превращения одной строки в другую [Википедия]. Например, есть строки:

"text" и "text!"

Для того чтобы первую строку превратить во вторую, нужно добавить к ней символ "!", и наоборот - для того чтобы превратить вторую в первую - нужно удалить из нее восклицательный знак. Иными словами, нужно выполнить одну операцию. Это значение и называют расстоянием Левенштейна. Зачем используется такое понятие? Расстояние Левенштейна имеет множество практических применений. Например - различные утилиты, которые предназначены для мержа файлов исходного кода, утилита для сравнения текстов diff в Linux, нестрогое сравнение текстов - когда нужно "примерно" сравнить две порции текстовых данных, и прочее.


13.03.2015

Конвертация Apple binary plist в XML - BPlist2Xml

Сeгодня получил от Google письмо счастья, о том что Google Code в скором времени полностью прекратит свое существование, с рекомендацией перенести свои проекты куда-нибудь в другое место, например GitHub. Давным давно я сделал один проект, который сейчас казалось бы некуда деть, но он находится на Google Code. Хотелось бы сохранить этот код, поэтому решил перекинуть его на BitBucket. 

BPlist2Xml - это конвертер формата Property List, который используется продуктами Apple для хранения различных настроек и т.п. Написана эта программа, прости господи, на pascal (использовался Free Pascal). Суть в том, что документ формата Property List бывает двух типов - обычный XML документ и сжатый бинарный формат. Для того, чтобы читать и редактировать последний, есть специальные редакторы. Если кому-нибудь, неизвестно для чего, понадобиться производить манипуляции с бинарным plist используя например Delphi, эта реализация - единственная, насколько мне известно, на этом языке. 

Скачать (исходный код и бинарники)