2-я страница тут я пишу

 

Я долго думал, и наконец решился — код этого сайта теперь доступен на Github . Никаких откровений или ноухау в коде нет, но  это может быть полезно, как пример приложения работающего на Google Application Engine с использованием Python API. Приурочено это к годовщине (будет 25 августа) моего присутствия на гитхабе. Смотрите, используйте, комментируйте, заводите баги и задавайте вопросы.

 

Начиная с Windows 7 и Windows Server 2008 R2, содержащих Windows Installer 5.0, появилась замечательная возможность сделать один установочный пакет, корректно устанавливающий приложения как для текущего пользователя, так и для всех пользователей, учитывая все нюансы UAC. Однако, это делается не так очевидно, как кажется на первый взгляд. Вот этим и хочется поделиться.

 

Для каждого из переводов документации веб-сервера Apache  появилась возможность оставлять комментарии. Сделано с помощью Disqus. Огромная просьба — писать по делу, — есть жесткая модерация.

 

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

 

Блог доступен через альтернативные источники, - Atom feed  и JSON API .

 

Начал проект по переводу остальных (ещё непереведенных) частей документации Apache. Этот перевод прежде всего для себя, но может вдруг кому будет полезны мои страдания старания. Перевод будет медленным и вялотекущим, — по наличию свободного времени. Смотреть в Портфеле .

 

Технологически, сайт не обновлялся больше 10 лет. За это время, все сильно ушло вперед. Настал момент обновиться.

 

Что такое Hash Query? Если коротко, то это интерпретатор (или компилятор, если угодно) декларативного языка запросов на вычисление криптографических хэшей для строк и файлов. Hash Query умеет:

 

Как известно, using в C# это try/finaly с вызовом Dispose() в блоке finally, но компилятор для этой конструкции генерирует не самый оптимальный код для подавляющего большинства случаев.

 

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

 

Вашему вниманию предлагается концепт данного алгоритма, т.е. там нет передачи хэша строки, вычисления хэша варианта и сравнения хэшей, в концепции тупо сравниваются строки (искомая строка, с вариантом перебора), иначе именуемого 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().