Вашему вниманию предлагается концепт данного алгоритма, т.е. там нет передачи хэша строки, вычисления хэша варианта и сравнения хэшей, в концепции тупо сравниваются строки (искомая строка, с вариантом перебора), иначе именуемого brute force алгоритм. Реализация на языке Си.

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

Существует такое великолепное приложение на Java script называемое SyntaxHighlighter, и применяемое для раскраски синтаксиса текстов на различных языках программирования. Но поддержки раскраски синтаксиса парсера, понятное дело, не было. Я исправил этот пробел.

  

Возобновляю раздел примеров кода и других решений, а то уж больно долго продолжался анабиоз. Однако, примеры будут не про парсер или про верстку, а вообще из разных областей программирования, но больше с низкоуровневым уклоном (Си, C++, С#).

  

SHA1 калькулятор это простое консольное приложение позволяющее подсчитывать SHA1 хэш и и делать ещё несколько полезных вещей.

  

MD4 калькулятор это простое консольное приложение позволяющее подсчитывать MD4 хэш и делать ещё несколько полезных вещей

  

MD5 калькулятор это простое консольное приложение позволяющее подсчитывать MD5 хэш и делать еще некоторые полезные вещи.

  

Человек, как известно, странное и капризное существо. Мы всегда хотим самого лучшего. Особенно от интерфейсов наших программ. Меня например, чрезвычайно расстраивает то, что в интерфейсе написано: "4 результаты сохранено на компьютере". Да, да, это родной Гугль (поиск по локальному компьютеру). Между тем, в данном конкретном случае, это не более чем лень разработчиков, ибо технически это не просто, а очень просто.

  

Достаточно недавно, в компании, в которой я сейчас работаю, встал вопрос о смене хостинга, на котором находится наш сайт. Наш прежний хостинг, широко известный masterhost.ru ну совершенно не устраивал по надежности предоставляемых услуг – то там сервер БД перестанет отвечать на запросы, то хостинг без предупреждения сменит параметры подключения с серверу БД, не предупредив об этом заранее (было в начале апреля этого года), то просто сайт вообще недоступен в течении нескольких часов. В общем, проблем там было много. Кроме того, нужна была СУБД PostgreSQL, которую вышеупомянутый провайдер не предлагает своим клиентам.

  

Наверно многие знают, что в XSLT есть такая строковая функция translate (описание см. в справочнике) и опять же многие знают, что там нет таких широко распространенных во многих языках строковых функций, таких как upper (перевод строки в верхний регистр) и lower (перевод строки в нижний регистр). Это может расстроить кого угодно, можно даже сказать, что у человека наступит депрессия, но только не у Константина Томашевича, который, собственно говоря, и предложил мне решение этой проблемы, используя вышеупомянутую строковую функцию translate().

  

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

  

Общепризнанно, - что самодокументированная программа, это очень полезная и нужная вещь. Идея эта совсем не нова – ещё в 1975 году Ф. Брукс, в своём, Мифическом человеко-месяце, высказывал эту идею. Для классических языков программирования инструменты для составления документации по программам прямо из исходных текстов существуют уже давно, тот же Doxygen, однако для такого молодого и не очень, надо сказать, популярного языка Парсер, таких вещей пока нет.

  

В процессе адаптации этого сайта, точнее его backend части, для СУБД PostgreSQL, я натолкнулся на один очень интересный факт, даже можно сказать подводный камень, который многому меня научил.

  

Надеюсь вы в курсе, что существует 2 места для размещения каскадных таблиц стилей (CSS)

  

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

  

В последнее время, популярность формата RSS - Really Simple Syndication, начала подниматься. Подробнее о том, что это такое читайте у Дмитрия Смирнова, - ссылка есть в конце этой страницы. Пожалуй, внесу и я свою лепту в это дело, - приведу небольшой пример кода работы на парсере с внешним XML в формате RSS.

  

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

  

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

  

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

  

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