Archive for August, 2008

IMGConvert + gif/png pictures

Thursday, August 7th, 2008

Для чтения gif/png-картинок используется GraphicEx from Mike Lischke
Но эта библиотека не позволяет создавать ни gif, ни png. Они только читаются правильно, а сохранения там нет вовсе.

Начал искать альтернативы.
Для PNG довольно быстро у себя в архивах нашел TPNGImage from [email protected]
Единственно докрутил сам вызов события OnProgress при сохранении.
Работает медленно, но пока терпимо.

Из первостепенного – нужно избавиться от дублирования файлов для сжатия. Они есть и в GraphicEx, и в TPNGImage (adler.obj, deflate.obj etc). С наскоку убрать не удалось – эти файлы из разных версий с разными опубликованными методами. Лишнего там на 40-45Kb

А вот с GIF замучился. От RXLib (TRxGifAnimator) отказался сразу – слишком много лишнего тянет в себе и анимация мне не нужна вовсе.
Потом взял TGIFImage from Anders Melander. У меня он был версии 06-Oct-2002. Прикрутился быстро, но качество создаваемых картинок абсолютно не впечатлило – цвета калечились очень сильно.

Сегодня сходил к нему на сайт http://melander.dk/delphi/gifimage
Оказалось он передал этот компонент в CodeGear и он включен в BDS 2007. Взял его новую версию и воткнул к себе в Delphi 5. После получаса исправления ошибок компиляции все заработало и результатом создаваемых картинок я доволен.

Google Insights for Search

Wednesday, August 6th, 2008

http://google.com/insights/search

ограбления банков

Wednesday, August 6th, 2008

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

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

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

клонирование

Wednesday, August 6th, 2008

Я в биологии-химии понимаю мало. Даже часть знаний из школьной программы уже благополучно выветрились из головы.

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

Почему в таком случае “обычное” зачатие предполагает яйцеклетку+спермотозоид? Ведь по идее любая мужская клетка, которая попадет в женский организм должна привести к рождению нового человека?

Или женская яйцеклетка до того умна и норовиста, что способна “обработать” только спермотозоид?

45

Wednesday, August 6th, 2008

Сегодня было бы 45 лет со дня свадьбы моих родителей.
Вечером хоть и буду звонить маме по skype, наверное не рискну даже поднимать эту тему – у самого еще сердце болит и поверить не могу.

Delphi: TFindDialog и локализация

Tuesday, August 5th, 2008

При использовании из Delphi диалогов самой MS Windows (TFindDialog, TOpenDialog etc) есть проблема с локализацией приложения – эти диалоги всегда будут отображаться с надписями в рамках локализации самой Windows.

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

С наскоку проблему не удалось решить. Т.е. заголовок самого окна изменить не проблема – просто послать сообщение WM_SETTEXT хэндлу диалога с новой строкой в параметре.
А вот найти описания всех контролов-детей не удалось ни в исходниках Delphi, ни в хедерах Visual Studio.
День поисков в Google тоже результатов не принес. Такое впечатление, что кроме меня эта тема никого не волнует.

Пришлось запускать Spy+ из VS и смотреть идентификаторы (ControlID) всех детей-контролов. Далее дело техники – в событии OnShow перебор всех детей, проверка ControlID и посылка сообщения на изменение текста:

procedure TMain.dlgFindShow(Sender: TObject); 
var 
  s: String; 
  ControlID: Integer; 
  hChildWin: hWND; 
begin 
  s := 'Поиск'; 
  SendMessage(dlgFind.Handle, WM_SETTEXT, 0, LParam(PChar(s)));  
 
  hChildWin := GetWindow(dlgFind.Handle, GW_CHILD or GW_HWNDFIRST); 
  while (hChildWin <> 0) do 
  begin 
    ControlID := GetDlgCtrlID(hChildWin);  
 
    if (ControlID = $FFFF) then 
    begin 
      s := '&Что:'; 
      SendMessage(hChildWin, WM_SETTEXT, 0, LParam(PChar(s))); 
    end 
    else 
    if (ControlID = $0001) then 
    begin 
      s := '&Найти далее'; 
      SendMessage(hChildWin, WM_SETTEXT, 0, LParam(PChar(s))); 
    end 
    else 
    if (ControlID = $0002) then 
    begin 
      s := '&Отмена'; 
      SendMessage(hChildWin, WM_SETTEXT, 0, LParam(PChar(s))); 
    end;  
 
    hChildWin := GetWindow(hChildWin, GW_HWNDNEXT); 
  end; 
end;

skype

Monday, August 4th, 2008

В последние 10 дней активно использую skypeout. Пока очень доволен.
И качество разговора не отличается от “обычного”, и цены какие-то смешные. Разумеется, если одновременно с разговором качать десяток фильмов, то во время разговора некоторые слога-слова будут выпадать, но мы не такие активные качальщики, чтобы делать это одновременно.

Отдельный аппарат-телефон для skype (usb или wifi) я пока не покупал. Пока устраивают обычные наушники с микрофоном. Когда-то (лет 7 назад) мне их нахаляву прислали откуда-то именно для VoIP.

Обычный skype (PC<->PC) попробовали тоже – работает без проблем.
Пробовали раньше на ADSL 128, а теперь на 512 – все пучком.

Заплатить всего $0.5 за получасовый разговор Украина-Израиль вместо $30 это радует мой кошелек.

Сначала я пробовал оплатить skypeout через WebMoney. Но все эти посредники работают через business-группы. Т.е. как бы есть компания, которая всем своим сотрудникам может кидать деньги на их кошельки. Но при этом подключаясь к такой группе, нужно понимать, что у админа группы будет доступ ко всей моей статистике. Я на такое не готов.

Поэтому оплатил карточкой Visa через HGC (http://skype.hgcbroadband.com/en/skypeout_buy.htm)
Счет пополнился моментально.

А вообще глобализация жжет:
- покупать у гонгконской компании евро, которые будут зачисляться на мой долларовый счет в эстонской компании для звонков из Украины в Израиль.
И при всей такой длинной цепочке это все прекрасно работает. Молодцы.

picture convert

Friday, August 1st, 2008

Вроде бы линейка продуктов массовой конвертации файлов пополнилась новой тулзой для обработки изображений:-)

kiev.ua

Friday, August 1st, 2008

С сегодняшнего дня все домены в зоне kiev.ua стали в обязательном порядке платными.
В принципе их регистрация стала платной еще год назад, но ХостМастер дал бесплатный год всем старым владельцам, которые не поленились обновить-актиализировать информацию о домене.

В течении пары дней пытались заплатить за один такой домен. Квест получился еще тот.
1. порыскали и нашли две более-менее нормальные конторы 1gb.ua и nic.ua
2. цены отличаются мало (39 грн у 1gb.ua и $5.95 у nic.ua) и оба принимают WebMoney
3. процесс регистрации у них (а у всех остальных еще более запутаный) абсолютно не очевиден. По крайней мере ничего общего нет со всякими godaddy
4. с учетом того, что у 1gb хостится сайт одной знакомой компании и организовывали этот хостинг мы, решили попробовать с 1Gb
5. написали им с описанием “проблемы” и спросили что мы должны делать пошагово. Ответ пришел быстро и мы начали перевод.
6. создали Account у них, привязали домен, получили письмо с запросом на перевод сайта и ответили на него. После этого “вдруг” оказалось, что принимают они только WMU, а WMZ/WMR не принимают и регистрации доменов (которые не хостятся у них) у них проводятся только вручную после получения оплаты
7. решили плюнуть и запустить регистрацию с nic.ua Тут нас поджидал облом. Т.к. сайт был уже переведен к 1Gb, они не дают разрешение на перенос сайта к другим регистраторам без личного появления у них в компании с заполненным заявлением (бланк прислали по email) и ксероксом паспорта
8. бороться с таким совком, конечно, нужно, но времени на это не было. Решили оплатить у самого 1Gb.
9. распечатали квитанцию для оплаты через банк. Квитанция какая-то не очень стандартная, поэтому вечером решил попробовать обменять WMZ/WMR на эти гребанные WMU
10. у большинства обменников из первой страницы поиска Google этих WMU не оказалось в наличии.
11. в итоге обменял у roboxchange.com Все работает на полном автомате
12. перечислил деньги со своего кошелька в 1Gb Они автоматически отобразились в контрольной панели
13. написал письмо о том, чтобы оплатили регистрацию домена. На след.день они зарегистрировали его и написали ответ

В итоге вроде и домен продлен, и по деньгам все нормально. Но какой-то осадочек неприятный остался. Буду думать как свалить от них к другому регистратору.

solar eclipse

Friday, August 1st, 2008

Только что вернулись с улицы. Наблюдали за затмением солнца.
В Киеве максимальное затмение обещали в 13:06 на 30%. Реально диск был закрыт где-то на 20%

Смотрели через разломанную дискету. Магнитный диск, сложенный вдвое, дает хорошие результаты. Получилось, что красный диск солнца прикрыт на северо-западе (10-11 на циферблате стрелочных часов)