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

Антиникотиновый информер
02.05.2009 | Категория: Web-мастеру и не только | Автор: ManHunter

Антиникотиновый информер
Когда я бросил курить, то в качестве стимула сделал себе такой антиникотиновый информер и использую его в подписи на некоторых форумах. Это PHP-скрипт, который считает в реальном времени сколько всего сэкономлено и выводит результат в виде графического файла.
Code (PHP) : Убрать нумерацию
- <?
- //-------------------------------------------------------------
- // Скрипт антиникотинового информера с интервалами дат
- // Copyright (C) ManHunter / PCL
- // http://www.manhunter.ru
- //-------------------------------------------------------------
- // Настройки информера
- $cig_per_day=20; // Сигарет в сутки, шт.
- $rub_per_day=65; // Денег на сигареты в сутки, руб.
- $nikotin=1.2; // Количество никотина в 1 сигарете, мг.
- $d=28; // Месяц, когда бросил курить
- $y=2008; // Год, когда бросил курить
- $m=7; // День, когда бросил курить
- $h=11; // Время, когда бросил курить, часы
- $i=30; // Время, когда бросил курить, минуты
- $size=10; // Размер шрифта информера
- $font="my_font.ttf"; // Файл с TTF-шрифтом
- $border=10; // Отступ текста от границ
- //-------------------------------------------------------------
- // Дальше лучше ничего без надобности не менять
- function num2word($num,$words) {
- $num=$num%100;
- if ($num>19) { $num=$num%10; }
- switch ($num) {
- case 1: { return($words[0]); }
- case 2:
- case 3:
- case 4: { return($words[1]); }
- default: { return($words[2]); }
- }
- }
- $start_date=mktime($h,$i,0,$m,$d,$y);
- $end_date=time();
- $day=intval(($end_date-$start_date)/(24*60*60));
- $hour=intval(($end_date-$start_date-$day*24*60*60)/(60*60));
- $days_array=Array("день", "дня", "дней");
- $hour_array=Array("час", "часа", "часов");
- // Сгенерировать текст информера
- $str="Не курю: ".$day." ".num2word($day,$days_array)." ".
- ($hour==0?"ровно":$hour." ".num2word($hour,$hour_array))."\n".
- "Не выкурено сигарет: ".
- intval(($day+($hour/24))*$cig_per_day)." шт.\n".
- "Не потрачено денег: ".
- intval(($day+($hour/24))*$rub_per_day)." руб.\n".
- "Не убито лошадок: ".
- intval(($day+($hour/24))*$cig_per_day*$nikotin/50)." шт.";
- // Перевести в юникод, чтобы корректно отображались русские буквы
- $str=iconv('windows-1251','utf-8',$str);
- // Получить размер графического блока для вывода текста
- list($ldx,$ldy,$rdx,$rdy,$rux,$ruy,$lux,$luy)=imageTTFBBox($size,0,$font,$str);
- // Получить размер информера
- $xx=$rdx+$border*2+$size;
- $yy=$rdy+$border*2+$size;
- // Создать изображение
- $im=imageCreatetruecolor($xx,$yy);
- // Определить цвета
- $black=imageColorAllocate($im,0,0,0);
- $red=imageColorAllocate($im,255,0,0);
- $white=imageColorAllocate($im,255,255,255);
- // Белый прямоугольник с красной рамкой
- ImageFilledRectangle($im,0,0,$xx,$yy,$red);
- ImageFilledRectangle($im,1,1,($xx-2),($yy-2),$white);
- // Наложить текст на фон
- imagettftext($im,$size,0,$border+5,$border+$size,$black,$font,$str);
- // Вывести картинку в формате PNG
- Header("Content-type: image/png");
- imagePNG($im);
- ?>
Читать статью целиком »
Просмотров: 7238 | Комментариев: 11

Metal Bealtaine в развлекательном центре "Самолет"
30.04.2009 | Категория: Жизнь в оффлайне | Автор: ManHunter

Metal Bealtaine в развлекательном центре "Самолет"
Бывают предложения, от которых нельзя отказаться. И когда на свой концерт приглашает лично Ольга Winter, вокалистка группы "Lady Winter", то это как раз такой случай. Тем более их последнее выступление было ровно год назад, я даже успел соскучиться. Если кто не в курсе, то "bealtaine" - кельтский праздник весеннего равноденствия, его мы сегодня и отметим по полной программе в развлекательном центре "Самолет"!
Читать статью целиком »
Просмотров: 3805 | Комментариев: 1

The Book of Bunny Suicides
30.04.2009 | Категория: Всякая всячина | Автор: ManHunter

The Book of Bunny Suicides
Книга "The Book of Bunny Suicides: Little Fluffy Rabbits Who Just Don't Want To Live Any More" британского карикатуриста Andy Riley впервые увидела свет в 2003 году. Это был сборник картинок в жанре черного юмора. Каждая картинка представляла собой сюжет, в котором кролики совершали самоубийство различными способами, как правило очень оригинальными: при помощи тостера, космической ракеты, увеличительного стекла и множества других предметов. Кроме этого в книге карикатурно обыграны ситуации с известными киногероями, например роботом Терминатором или участниками фантастического сериала "Star Trek". Книга имела успех и получила хорошие отзывы от многих известных людей, поэтому в 2004 году вышло продолжение - книга "Return of the Bunny Suicides". С тех пор в интернете появляются одиночные картинки из этих книг, а мне в свое время удалось найти их полные варианты.
Читать статью целиком »
Просмотров: 6545 | Комментариев: 3

Готовим гуляш по-венгерски
29.04.2009 | Категория: А еще я туда ем! | Автор: ManHunter

Гуляш по-венгерски
В отличие от России, в Венгрии гуляш - это не просто мясное блюдо, а суп с чипетке (клецками) и острым томатным соусом. Хотя мясо там тоже присутствует. Вот сегодня как раз "по заявкам радиослушателей" я и буду готовить гуляш по-венгерски.
Читать статью целиком »
Просмотров: 16715 | Комментариев: 7

Расчет CRC32 на Ассемблере
27.04.2009 | Категория: Образ мышления: Assembler | Автор: ManHunter
Алгоритм вычисления контрольной суммы (CRC, англ. cyclic redundancy code, циклический избыточный код) - способ цифровой идентификации некоторой последовательности данных, который заключается в вычислении контрольного значения ее циклического избыточного кода. Алгоритм CRC32 основан на примитивном полиноме 0EDB88320h и применяется в архиваторах, системах шифрования, протекторах исполняемых файлов и многих других программах. Он прост в реализации и с большой вероятностью может подтверждать неизменность данных, причем чем меньше размер контролируемой информации, тем выше эта вероятность. Для расчета CRC32 требуется сперва подготовить так называемую таблицу инициализации. В сегменте данных таблица резервируется как 256 двойных слов, по одному dword на каждый возможный байт:Code (Assembler) : Убрать нумерацию
- ; Сегмент данных
- section '.data' data readable writeable
- ; Таблица инициализации для расчета CRC32
- crc32table rd 256
Code (Assembler) : Убрать нумерацию
- ;-----------------------------------------------------------------------
- ; Функция создания таблицы инициализации для расчета CRC32
- ;-----------------------------------------------------------------------
- proc init_CRC32
- push eax ebx ecx edi
- mov edi,crc32table ; Указатель на выделенную под таблицу память
- xor ebx,ebx ; Расчитать значения для всех 256 байт
- calc_crc32table:
- mov eax,ebx
- mov ecx,8
- do_polynom:
- shr eax,1 ; Проверить четность байта
- jnc @f ; XOR выполняется только если байт нечетный
- xor eax,0EDB88320h
- @@:
- loop do_polynom ; Следующий бит
- stosd ; Записать полученный dword в таблицу
- inc ebx
- cmp ebx,256
- jb calc_crc32table ; Следующий байт
- pop edi ecx ebx eax
- ret
- endp
Читать статью целиком »
Просмотров: 13651 | Комментариев: 9
