понедельник, 22 июня 2009 г.

PHP : время генерации скрипта

////////////////////////////////////////////////
//Считываем текущее время
$mtime = microtime();
//Разделяем секунды и миллисекунды
$mtime = explode(" ",$mtime);
//Составляем одно число из секунд и миллисекунд
$mtime = $mtime[1] + $mtime[0];
//Записываем стартовое время в переменную
$tstart = $mtime;
////////////////////////////////////////////////
НАШ КОД!!!!!!!!!!!!!!
//////////////////////////////////////////////////
//Делаем все то же самое, чтобы получить текущее время
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
//Записываем время окончания в другую переменную
$tend = $mtime;
//Вычисляем разницу
$totaltime = ($tend - $tstart);
//Выводим не экран
printf ("Страница сгенерирована за %f секунд !", $totaltime);
/////////////////////////////////////////////////////

среда, 17 июня 2009 г.

Статистика. Процент пользователей Linux

Наиболее популярными остаются компьютеры на базе операционной системы Windows, их доля составляет 87,9 %. Второй по популярности является ОС Mac, которая устанавливается на компьютерах компании Apple, с долей 9,73 %.

Количество Linux-устройств, используемых для выхода в интернет, составило 1,02 %.

Такие данные приводит компания Net Applications в своем исследовании. Отмечается, что многие производители сейчас поставляют на рынок компьютеры с предустановленной ОС Linux, а сами Linux-системы становятся более функциональными и простыми в использовании.

JavaScript/ActionScript + JSON

json.as
http://www.json.org/

Пример использования JSON в JavaScript. Для ActionScript работает так же.

http://habrahabr.ru/blogs/javascript/60282/

пятница, 12 июня 2009 г.

3D Размышления о манипуляторах и манипулируемых.

Я сегодня размышлял о манипуляции 3D объектами.
Вопрос заключался в том, кто должен быть главным,
манипулируемый объект(м2), или манипулятор(м1).
А точнее кто должен отлавливать сообщения о воздействии на объект.
Пример:
м1->м2
м1 = человек.
м2 = пульт.
Задача: Человек берёт пульт, или пульт берётся человеком?
1.Если пульт берётся человеком(м2<-м1), в этом случае, у пульта есть ловушка onAction. И она отлавливает воздействия на неё 3-их сил. В данном случае человека. - подумав, и размножив мысленно объекты, пришёл к выводу что будет колоссальная нагрузка на мир(процессор). Посмотрите вокруг, куча объектов, и все они проверяют не пытается ли кто-нибудь взаимодействовать с ними. + объект м2 управляет собой на своём уровне и сам изменяет свои свойства. м1 выполняет только свои роли, не вмешиваясь в жизнь м2. 2.Если человек берёт пульт(м1->м2), то в ловушке событий человека(м1), должно быть воздействие на методы и свойства пульта(м2).
Однако, получается что : м1 вмешивается в природу реакций м2.
К тому же, От этого, метод человека, по взаимодействию на предметы с разной природой будет сильно разбухать.
-> Внешнее воздействие.
-> Если использовать этот вариант, нужно сгруппировать методы и свойства м2, для уменьшения кода в м1.
3. Вариант, группируем 2 и 1 варианты.
Остаются только манипуляторы, как в 1 случае. Только они могут нести воздействие.
Силу для м2 даёт и воздействует м1. м2 создаёт собственную ловушку onAction, для воздействия на объекты, по траектории своего движения [м3-мx].
[м3-мx] при достаточности силы м2, так же станут манипуляторами.

Подумав, я пришёл к выводу, что вариант 2, + ближе к 3-ему предпочтительнее.

Создание cpl в Delpi

По нажатию открывает блокнот. Для добавления привычных функций, подключите в Uses > SysUtils.
Для разработки строго на WinApi, используйте Message.

library TestCpl;

uses
Windows;

const NUM_APPLETS = 1;

{$IFDEF WIN32}
const CPL_DYNAMIC_RES = 0;
{$ENDIF}
const CPL_INIT = 1;
const CPL_GETCOUNT = 2;
const CPL_INQUIRE = 3;
const CPL_SELECT = 4;
const CPL_DBLCLK = 5;
const CPL_STOP = 6;
const CPL_EXIT = 7;
const CPL_NEWINQUIRE = 8;
{$IFDEF WIN32}
const CPL_STARTWPARMS = 9;
{$ENDIF}
const CPL_SETUP = 200;

{$IFNDEF WIN32}
type DWORD = LongInt;
{$ENDIF}

type TCplInfo = record
idIcon : integer;
idName : integer;
idInfo : integer;
lData : LongInt;
end;
PCplInfo = ^TCplInfo;

type TNewCplInfoA = record
dwSize : DWORD;
dwFlags : DWORD;
dwHelpContext : DWORD;
lData : LongInt;
IconH : HIcon;
szName : array [0..31] of char;
szInfo : array [0..63] of char;
szHelpFile : array [0..127] of char;
end;
PNewCplInfoA = ^TNewCplInfoA;

{$IFDEF WIN32}
type TNewCplInfoW = record
dwSize : DWORD;
dwFlags : DWORD;
dwHelpContext : DWORD;
lData : LongInt;
IconH : HIcon;
szName : array [0..31] of WChar;
szInfo : array [0..63] of WChar;
szHelpFile : array [0..127] of WChar;
end;
PNewCplInfoW = ^TNewCplInfoW;
{$ENDIF}

type TNewCplInfo = TNewCplInfoA;
type PNewCplInfo = ^TNewCplInfoA;

function CPlApplet(hWndCPL : hWnd;
iMEssage : integer;
lParam1 : longint;
lParam2 : longint) : LongInt
{$IFDEF WIN32} stdcall; {$ELSE} ; export; {$ENDIF}
begin
case iMessage of
CPL_INIT : begin
Result := 1;
exit;
end;
CPL_GetCount : begin
Result := NUM_APPLETS;
exit;
end;
CPL_Inquire : begin
PCplInfo(lParam2)^.idIcon := 2;
PCplInfo(lParam2)^.idName := 1;
PCplInfo(lParam2)^.idInfo := 2;
PCplInfo(lParam2)^.lData := 0;
Result := 1;
exit;
end;
CPL_NewInquire : begin
PNewCplInfo(lParam2)^.dwSize := sizeof(TNewCplInfo);
PNewCplInfo(lParam2)^.dwHelpContext := 0;
PNewCplInfo(lParam2)^.lData := 0;
PNewCplInfo(lParam2)^.IconH := LoadIcon(hInstance,
MakeIntResource(2));
lStrCpy(@PNewCplInfo(lParam2)^.szName, 'TestCPL');
lStrCpy(PNewCplInfo(lParam2)^.szInfo, 'My Test CPL');
PNewCplInfo(lParam2)^.szHelpFile[0] := #0;
Result := 1;
exit;
end;
CPL_SELECT : begin
Result := 0;
exit;
end;
CPL_DBLCLK : begin
WinExec('Notepad.exe', SW_SHOWNORMAL);
Result := 1;
exit;
end;
CPL_STOP : begin
Result := 0;
exit;
end;
CPL_EXIT : begin
Result := 0;
exit;
end else begin
Result := 0;
exit;
end;
end;
end;

exports CPlApplet name 'CPlApplet';

begin
end.

Размер приложения занял всего 16 кбайт :) После того, как оно был дополнительно сжато UPX, осталось только 9кбайт.

среда, 10 июня 2009 г.

проверка Контента на уникальность

CopyScape ,Антиплагиат, Double Content Finder - Это сервисы для проверки контекста на уникальность.
------------------------------------------------------------------------------
Далее для фильма Секрет описание, пропущенное через мой синонимайзер :)
По крайне мере copyscape не распознал, только что.
Надо страниц тысячу синонимизировать и посмотреть отклик, на сайте.
------------------------------------------------------------------------------
одолжить потайная жила вечно . Ее обнаруживали согласию , ее содержали в тайне , ее лишались и отыскивали заново . За ней били , ее старались испытать целыми доступными множествами и лекарствами . И вот настал время , иногда одолжить потайное познание заново обнаруживается согласию .

Многие большие народы былого имели одолжить познанием : Платон, Леонардо, Галилей, Наполеон, Бетховен, Линкольн, Эйнштейн, Карнеги и многие вторые . пая его заводились в больших маневрах , в литературе, в философских договорах и культовых текстах. впервой в истории целое разрозненные отрывки составлены совместно в одолжить странном письме , коренным типом изменяющем существования тех, кто-нибудь к нему касается .

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

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

вторник, 9 июня 2009 г.

3D Max + Flash == Sandy. Импорт 3D моделей во Flash

Сижу изучаю 3D Max.
Для этого решил воспользоваться уроками на Intuit.ru
Intuit.ru* - Здесь предоставлены бесплатные удалённые курсы по различным направлениям ИТ
После чего займусь экспортом/Импортом во Флеш используя библиотеку Sandy.

Программа следующая:
1.Ссылка на уроки 3d max.
2.Ссылка на уроки импорта 3dmax объектов в Sandy. Так же там рассказано про ActionScript и основы проектирования MMPORG игр.
Доступно рассказывается об использовании библиотеки Sandy.

PS: Sandy рабоает и с другими моделями. Например из Maya. Все поддерживаемые 3D редакторы, полную документацию и примеры можно найти на их сайте