Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Исследование защиты программы Actual Search & Replace

26.04.2011 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы Actual Search & Replace

Программа Actual Search & Replace - мощная программа для поиска и замены фрагментов текста в файлах. Поиск можно осуществлять как по отдельным словам, так и по целым фразам или регулярным выражениям. В общем, полезный инструмент для тех, кому приходится часто что-то искать в куче текстовых или HTML-файлов. Программа действительно хорошая, что подтверждают многочисленные награды от различных интернет-изданий, если бы не одно "но". Бесплатно программа будет работать только в течение 30 дней, после чего потребует оплату.

Читать статью целиком »
Просмотров: 4671 | Комментариев: 4

Дворец царя Алексея Михайловича в Коломенском

24.04.2011 | Категория: Жизнь в оффлайне | Автор: ManHunter

Дворец царя Алексея Михайловича в Коломенском

Древнее подмосковное село Коломенское выделялось среди других вотчинных владений российских государей - здесь размещались великокняжеские и царские загородные резиденции. Самая знаменитая среди них - деревянный дворец царя Алексея Михайловича. Сын первого царя из династии Романовых Михаила Федоровича, Алексей Михайлович, вступив на престол, неоднократно перестраивал и последовательно расширял отцовскую подмосковную резиденцию, что было связано с ростом его семьи. Он часто посещал Коломенское, занимался соколиной охотой в его окрестностях и проводил здесь официальные церемонии. В 1660-х годах царь Алексей Михайлович задумал масштабные изменения коломенской резиденции. Торжественная церемония закладки фундамента нового дворца, начавшаяся молебном, состоялась 2-3 мая 1667 года. Строился дворец из дерева по чертежам, работы вела артель плотников под руководством стрелецкого головы Ивана Михайлова и плотничьего старосты Семена Петрова. С зимы 1667 по весну 1668 года были выполнены резные работы, в 1668 году обивали двери и готовили краски для росписи дворца, а в летний сезон 1669 года были завершены основные иконописные и живописные работы. Весной и летом 1670 года во дворце уже работали кузнецы, резного железного дела мастер и замочники. Осмотрев дворец, царь распорядился добавить живописных изображений, что и было выполнено в 1670-1671 годах. Государь внимательно следил за ходом работ, в течение всего строительства часто приезжал в Коломенское и оставался там на день. Окончательное завершение работ пришлось на осень 1673 года. Зимой 1672/1673 года дворец был освящен патриархом Питиримом; на церемонии иеромонах Симеон Полоцкий произнес "Приветство" царю Алексею Михайловичу.

Читать статью целиком »
Просмотров: 63545 | Комментариев: 30

Выбор случайной строки из таблицы MySQL

20.04.2011 | Категория: Web-мастеру и не только | Автор: ManHunter
Одна из часто встречающихся задач при создании сайтов - выборка случайной строки из таблицы MySQL. Это может быть случайный баннер в ротации, какая-нибудь "фраза дня" или афоризм, промо-блок на главной странице и т.п. Применений масса. Я решил на практике протестировать несколько вариантов решения этой задачи. Исходные данные: база MySQL, таблица типа MyISAM проиндексирована по полю id, количество записей около 500000, поле id обозначено как PRIMARY KEY, в нумерации есть "дырки" из-за удаленных строк.

Переходим к тестированию. Традиционное решение сводится к такому запросу:

SELECT * FROM `table` ORDER BY RAND() LIMIT 1

Код на PHP для тестирования:
  1. // Тест №1
  2. $query="SELECT * FROM `table` ORDER BY RAND() LIMIT 1";
  3. $sql_result=mysql_query($query);
  4. $row=mysql_fetch_array($sql_result);
  5. mysql_free_result($sql_result);
Результаты не радуют. Среднее время выполнения одного такого запроса на моем компьютере занимает 2.5 секунды. На реальном проекте, особенно если он работает под нагрузкой, такие затраты времени недопустимы.

Читать статью целиком »
Просмотров: 14622 | Комментариев: 9

Обработка подключения и отключения съемного накопителя

18.04.2011 | Категория: Образ мышления: Assembler | Автор: ManHunter
С расширением рынка переносных устройств и USB-накопителей становится актуальной задача по обработке их взаимодействия с компьютером. Сегодня разберем обработку подключения и отключения съемных накопителей, таких как Flash-диски, карты памяти и USB-диски. Начинаем с теории. При подключении или отключении съемного накопителя система посылает всем окнам (через глобальный хэндл HWND_BROADCAST) сообщение WM_DEVICECHANGE. Но это сообщение всего лишь о самом факте изменения состояния съемного накопителя, а более подробные значения содержатся в параметрах lParam и wParam этого сообщения. В wParam приходит расшифровка произошедшего события: подключение, отключение, изменения состояния, отмена отключения и т.п. Нас пока интересует только два: DBT_DEVICEARRIVAL - подключение сменного накопителя и DBT_DEVICEREMOVECOMPLETE - извлечение накопителя. Основной обработчик событий приложения ничем не отличается от обычных обработчиков. Нам также понадобятся несколько констант, которые по умолчанию не определены в FASM:
  1. DBT_DEVICEARRIVAL        = 0x8000
  2. DBT_DEVICEREMOVECOMPLETE = 0x8004
  3.  
  4. DBT_DEVTYP_VOLUME        = 0x00000002
И, собственно, сам обработчик. Я оставил только нужные фрагменты кода:
  1. proc DialogProc hwnddlg,msg,wparam,lparam
  2.         push    ebx esi edi
  3.         ...
  4.         ; Пришло сообщение об изменении состояния съемного накопителя
  5.         cmp     [msg],WM_DEVICECHANGE
  6.         je      update_usb
  7.         ...
  8. update_usb:
  9.         ; Устройство подключено?
  10.         cmp     [wparam],DBT_DEVICEARRIVAL
  11.         je      usb_connected
  12.  
  13.         ; Устройство извлечено?
  14.         cmp     [wparam],DBT_DEVICEREMOVECOMPLETE
  15.         je      usb_disconnected
  16.  
  17.         jmp     processed
  18.  
  19. usb_connected:
  20.         ; Обработка подключения устройства
  21.         ...
  22.         jmp     processed
  23.  
  24. usb_disconnected:
  25.         ; Обработка отключения устройства
  26.         ...
  27.         jmp     processed
  28.         ...
  29. processed:
  30.         mov     eax,1
  31. finish:
  32.         pop     edi esi ebx
  33.         ret
  34. endp
Для полноты картины осталось узнать, какой именно диск был подключен или извлечен. В параметре lParam сообщения WM_DEVICECHANGE передается указатель на структуру, которая содержит подробную информацию о случившемся событии. FASM про нее тоже ничего не знает, поэтому придется и ее описать самостоятельно.

Читать статью целиком »
Просмотров: 7379 | Комментариев: 19

Концерт группы "Theatres Des Vampires" в клубе "Plan B"

16.04.2011 | Категория: Жизнь в оффлайне | Автор: ManHunter

Концерт группы "Theatres Des Vampires" в клубе "Plan B"

Ура!! Итальянская группа "Theatres Des Vampires" снова в нашем городе!!! На прошлое их выступление я, к сожалению, не попал, поэтому срочно исправляюсь. Тем более, что здесь это будет их единственный концерт в рамках Moonlight Waltz Tour 2011.

Читать статью целиком »
Просмотров: 4899 | Комментариев: 0

01 ... 348 349 350 351 352 353 354 ... 429
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2025
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.11 сек. / MySQL: 2 (0.0358 сек.) / Память: 4.5 Mb
Наверх