Быстрый поиск
Введите фрагмент названия статьи для поиска
Chameleon Clock Fixer 1.0
28.11.2008 | Категория: Мои программы | Автор: ManHunter
Есть такая хорошая программа-часики Chameleon Clock, всех ее достоинств расписывать не буду, кто пользуется - тот знает. Но к сожалению, примерно с версии 3.10, в ней перестала работать опция "Убрать из Alt-Tab". В настройках галочка ставится, но фактически ничего не происходит. Автор на багрепорты и просьбы пользователей не реагирует, предпочитает тратить свое время на борьбу с варезными ссылками на файлообменниках. Пришлось самому писать мелкую утилитку для принудительного убирания значка Chameleon Clock из меню Alt-Tab. Противозаконных действий эта программа не выполняет, никаких защит не ломает и изменений в файлы не вносит, так что всякие заshitники аффтарских прав могут не напрягаться.Chameleon Clock Fixer сделан в двух вариантах: загрузчик основной программы и стационарная версия. Loader рекомендуется использовать в автозагрузке. Для этого отключите в Chameleon Clock штатную функцию автозагрузки, поместите файл chamfix_loader.exe в папку с программой и пропишите в автозагрузку ярлычок на него. Рабочей папкой в ярлыке загрузчика укажите папку Chameleon Clock. Стационарная версия chamfix_standalone.exe после запуска выдерживает паузу в 5 секунд и потом выполняет основные действия. Ее рекомендуется использовать когда Chameleon Clock уже запущен, но также можно использовать в автозагрузке, при условии что стационарная версия будет запускаться после Chameleon Clock.
Читать статью целиком »
Просмотров: 8400 | Комментариев: 7
3-й салон шоколада в Москве
27.11.2008 | Категория: Жизнь в оффлайне | Автор: ManHunter
3-й салон шоколада в Москве
Сегодня сходил на Третий салон шоколада в Гостиный Двор недалеко от Красной Площади. Очень хорошо, что я спокойно отношусь ко всяким сладостям, а то мучительная смерть от захлебывания слюной мне была бы гарантирована.
Читать статью целиком »
Просмотров: 7676 | Комментариев: 2
Кроссбраузерное добавление страницы в закладки
25.11.2008 | Категория: Web-мастеру и не только | Автор: ManHunter
Кроссбраузерное добавление страницы в закладки реализуется с использованием JavaScript. Для добавления страницы в Избранное браузеров Internet Explorer и браузеров, работающих на движке IE, вызывается стандартный метод AddFavorite. Однако здесь есть одна важная деталь. Если страница IE открыта как embedded-объект в другом приложении, например в плагинах или при использовании компонентов для работы с html, то объект window.external присутствует, но его метод AddFavorite не срабатывает. Это наиболее частая ошибка разработчиков, которые просто копируют код друг у друга без его понимания и тестирования. Также большой ошибкой будет использование на своем сайте только одного этого способа.Браузеры на движке Gecko, такие как Firefox, Netscape, K-Meleon и другие, имеют объект window.sidebar и метод для добавления addPanel. Третий параметр метода недокументирован и является необязательным, поэтому в скрипте заменяется просто пустой строкой. Обратите внимание, что по умолчанию ссылка добавляется не совсем в закладки, а в боковую панель браузера. Для добавления страницы в нужную папку закладок выберите ее в выпадающем меню. С версии 23 в Firefox не поддерживается метод addPanel, в этом случае надо использовать метод добавления Opera.
Для браузера Opera ссылка добавления в закладки должна иметь атрибут rel="sidebar". Но если этот атрибут ставить сразу по умолчанию, то некоторые браузеры типа Netscape будут отрабатывать функцию добавления в закладки дважды: первый раз через скрипт и второй раз через атрибут rel. Поэтому придется изменять атрибуты ссылки динамически, предварительно определив браузер проверкой типа объекта opera.
Если ни один из перечисленных способов не сработал, то не надо выдавать сообщение об ошибке или еще хуже, молча завершать выполнение скрипта. Будет гораздо правильнее показать пользователю доступный вариант решения задачи, например предложить вручную нажать комбинацию клавиш Ctrl+D.
Читать статью целиком »
Просмотров: 35979 | Комментариев: 89
Расчет хеша MD5 на Ассемблере
23.11.2008 | Категория: Образ мышления: Assembler | Автор: ManHunter
Функция расчета хеша MD5 на Ассемблере. Готовых решений на FASM как всегда не было, пришлось портировать из MASM. Для работы процедуры в сегменте .data надо подготовить следующие данные:Code (Assembler) : Убрать нумерацию
- ; Сегмент данных
- section '.data' data readable writeable
- ...
- ; Шаблоны функции wsprintf для перевода хеша в строковый вид,
- ; при необходимости можно оставить только какой-нибудь один
- szMD5Format1 db '%.8X%.8X%.8X%.8X',0 ; Для получения заглавных букв
- szMD5Format2 db '%.8x%.8x%.8x%.8x',0 ; Для маленьких букв в строке хеша
- stMD5Result:
- stdtA dd ? ; Переменные для получения и хранения
- stdtB dd ? ; результата хеширования
- stdtC dd ?
- stdtD dd ?
- stMD5Hash rb 33 ; Буфер для строки хеша в формате ASCIIZ
Читать статью целиком »
Просмотров: 10100 | Комментариев: 5
Проверка принадлежности IP-адреса заданному диапазону
19.11.2008 | Категория: Web-мастеру и не только | Автор: ManHunter
Проверка вхождения IP в заданный диапазон может применяться во многих ситуациях. Например бан всей подсетки злоумышленника, принудительное ограничение скорости для зарубежного трафика, переадресация на различные разделы сайта в зависимости от провайдера пользователя и т.д. Я использую такие функции:Code (PHP) : Убрать нумерацию
- // ------------------------------------------------------------
- // Проверка вхождения IP в заданный диапазон
- // На входе:
- // $ip - массив октетов проверяемого IP
- // $ip_start - массив октетов начала интервала
- // $ip_end - массив октетов конца интервала
- // В интервалах допускаются маски '*'
- // На выходе: TRUE или FALSE, входит IP или нет в диапазон
- // ------------------------------------------------------------
- function chk_ips($ip,$ip_start,$ip_end) {
- for ($i=0; $i<4; $i++) {
- if ($ip_start[$i]=='*') { $ip_start[$i]='0'; }
- if ($ip_end[$i]=='*') { $ip_end[$i]='255'; }
- }
- $ip_num=ip2long(join('.',$ip));
- if ($ip_num>=ip2long(join('.',$ip_start))
- && $ip_num<=ip2long(join('.',$ip_end))) {
- // IP входит в интервал
- return true;
- }
- else {
- // IP не входит в интервал
- return false;
- }
- }
Читать статью целиком »
Просмотров: 17867 | Комментариев: 1