пятница, 29 мая 2009 г.

Thumbnails для флеш-файлов..

До этой темы у меня руки не дойдут все никак уже с год точно :(

Как вот люди есть, которые все успевают и еще время свободное остается?..

По отдельности я все могу - сделать эскиз для swf или flv файла, сделать провайдер эскизов для типа файлов; а слепить все в кучу - как подумаю, что надо что-то сочинять несколькоступенчатое: эскизы мгновенно не делаются, значит надо обрабатывать запрос на эскиз, создавать этот эскиз и хранить в какой-нибудь БД локальной, чтоб к следующему разу оттуда его достать.. а запросы могут из разных потоков приходить, так что прямо читать базу наверное не выход, надо какая-то очередь

Как начнешь все это придумывать - так сразу и накатывает сонливость и апатия и все откладывается "до лучших времен" :) ..

Или просто надоело программировать?.. когда-то "для души" программки по ночам писал, тестил, сапортил.. а теперь - "да нафига оно мне надо?.."

Это видимо старость :)

з.ы. а еще в зачаточном состоянии лежит проект для индексирования fb2-файлов (книжки в электронном виде); учитывая, что у меня их 70000+ штук - вроде и очень нужная вещь.. а лень..

з.з.ы. последнее недорожденное - это тулза для получения инфы для видеофайлов: привык уже к хорошему, когда использую XBMC для просмотра видео (и в основном сериалов) и для каждого сериала/сезона свой фанарт, описания серий, скриншоты и прочие свистелки.. А почему-то что сам xbmc, что программы-помощники так тупят, когда обновляют данные, сил нет - так что начал своего "помощника" писать.. ну что, инфу с tvdb научился брать - дальше сразу резко неинтересно стало..

Кровать..

.. обещают допилить в понедельник (синие дрова им только сегодня подвезли, радиусы долго клеили - в общем, не успевают..)

А раз нет воды горячей в доме (профилактика), то и с ремонтом решили не заводится (стены обдирать от обоев и т.д. - мыться то надо, а моржи мы плохие)

Так что делать на выходные нечего, прогуляемся в строймагазин, поглазеем на лампы/светильники/обои, составим список покупок..

Последний звонок..

Сабж сегодня у нас на Украине; будут ходить деффки в школьных формах, пить пиво и водку..

С утра просто офонаренная погода: гремит гром, светит солнце и сыпется мелкий, но очень частый дождик.. феерично :)

четверг, 28 мая 2009 г.

среда, 27 мая 2009 г.

Русский языковой пакет для Win7

Вышел сегодня, Windows Update сообщила.. хоть меня абсолютно не парит кнопка "Start", поставил для интереса, пусть называется "Старт" (хотя какие start/старт, на кнопке ничего ж не написано)

вторник, 26 мая 2009 г.

Кровать - пути назад нет..

Заказали распил для кровати - обошлось в 2 тысячи с небольшой копеечкой гривен (скажем $260), добавим сюда 2 матраца по ~ 900 грн (2 * $120) и денег на шурупы/направляющие/стяжки и прочее - уложимся где-то в $500+ денег

Единственный готовый вариант, который мы видели и который нам понравился, стоил что-то под 6000 грн - причем там спальное место только вверху (т.е. отдельно кровать вниз надо было бы покупать), и без матрацев конечно..

Так что будем считать, что кровать нам обойдется незадорого.. :)

"Ольховые" детали обещали попилить на неделе, синие - как повезет

Хочу стать пишущей обезьянкой :)

Что там сто тыщ обезьян напишут за сто тыщ лет непрерывно нажимая на клавиши печатной машинки? "Войну и мир"?

Регулярные записи в блогах про то, как писать в тех же блогах побольше, как из пальца высосать тему для заметки и т.д. мне так же регулярно напоминают призыв "стань обезьянкой" :)

От моего блога (да, я не такой, как _читай выше_ :P ) есть даже практическая польза: 1) я иногда сам пользуюсь своими советами (инструкция по сборке ffmpeg-а - кстати подозреваю, что она снова может оказаться не очень актуальной, ffmpeg уже обновился до 0.5 кажется), 2) из "Бесполезности" внизу узнал для себя полезную ссылку на форум, на котором уже зарегистрировался (форум про мебель и мебельные программы, и все что про мебель в общем), 3) есть люди, которые узнали что-то полезное для себя (в основном конечно про тот же ffmpeg)

А писать надо когда хочется и когда есть о чем.. а не для выполнения плана.. имхо (это которое "хрен оспоришь")

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

понедельник, 25 мая 2009 г.

И откосы..

Да, я таки их сделал :)

Ничего особо сложного в этом деле не оказалось совсем - сделал лучше, чем мне (за деньги) сделали в свое время на кухне.. аккуратнее снаружи..

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

Окно ~ 1,5 * 1,5 размером обошлось в 190 грн ($25) - пластиковая доска (разводиться с гипсокартонным не хотелось совсем, это по времени намного дольше ведь), стартовый и F-профили, 3 рейки и шпаклевка для внешних работ..

Кровать..

Да, так про Woody: дорисовал кровать, сегодня (если принтер запечатает) распечатаю список для распила и заказывать.. если ничего не замечу, что переделать придется

Вот что получилось:


Если все нормально - выложу чертеж, вдруг кому-то пригодится

воскресенье, 24 мая 2009 г.

Woody & Vista - оказывается они могут жить вместе..

С WinXP я распрощался давным-давно (дома по крайней мере), но приходилось ее держать в виде виртуальной машины - под вистой Woody работал глюкаво, а шкафов я себе нарисовал в нем уже ого-го скоко..

А оказалось, что всего-то надо было в свойствах ярлыка поставить галочку на закладке Compability - Disable Desktop Composition: теперь при запуске виста переключается из аеро в простой режим и Woody нормально работает.

Но ХР в виртуалке все равно придется оставить - есть супер-пупер древняя программа, написанная на FoxPro 2.6 для Dos-а, которую я периодически сапортю.. жду - не дождусь, когда ее (программу) решат похоронить с почестями (на которые она не заслуживает впрочем.. наверное потому что не я ее писал ;) )

пятница, 22 мая 2009 г.

Ремонт: окно..

Вчера установили в спальню окно - как и в случае в кухней в свое время это дало старт ремонту в комнате :)

Начну завтра с откосов (как настоящий джедай я откосы не заказывал, а решил делать сам - сэкономленные деньги потрачу на 5 бутылок портвейна к примеру ;) или на очередную "очень нужную" приблуду для компа)

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


четверг, 21 мая 2009 г.

WinXP vs Win7

Не претендуя на абсолют мои наблюдения - WinXP против Win7 - на примере моего последнего компьютера в дом на роль htpc:

  • Свежесть операционки определяет количество поддерживаемого оборудования: если я поставил ХР, у меня в "неопознаных" висело 5 устройств, для которых пришлось искать/качать драйверы (иногда очень и очень немаленькие размером, что меня просто убивает.. чего там в звуковой карте такого военного, что драйвер для нее весит метров 30?)

    После установки Win7 я ничего не делал - все определилось само
  • Из-за чего я перепробовал на этом компьютере все варианты windows - скорость загрузки; что бы там не говорили о тормознутости, но Win7 грузится быстрее всех (пусть какие-то службы запускаются уже после появления рабочего стола - мне как пользователю глубоко фиолетово, главное что появление рабочего стола и возможность запустить программу быстрее, чем в XP
  • Поскольку купить откровенно отстойный компьютер сейчас сложно (из новых я имею в виду), то все финтифлюшки типа аеро автоматически будут на нем работать; не жизненно-необходимо, но глаз радует
  • 2 гига памяти сейчас в общем-то не роскошь, а стандарт (имхо); после 7 часов работы с десятком программ у меня сейчас (если верить таскменеджеру) свободно 46% памяти; не знаю сколько там %%, но затыков со сбросом в свап я пока не замечал (abhtajrc потратил на себя 165 метров, фотошоп 120, делфи 60 - но я ее недавно перезагружал.. coolpro 30, сайдбар 10, мелочь разная по 10)
  • Виртуальная XP для программ прошлого века :) - правда пока не убедился, что она удобнее чем VMWare, плюс требует аппаратной поддержки от процессора (дома заработала, на работе отказалась)
Много очень удобных фишек именно в Win7:
  • обновленный проводник, строка адреса мне всегда нравилась, иногда только случалось, что в строке кроме текущей папки не помещалось больше ничего - но в 7-ке пофиксили;
  • панель с быстрым доступом слева к дереву с папками компьютера и ссылками на полезные папки;
  • идея "библиотек", когда я добавляю в библиотеку папки с видео, которые разбросаны по всему компьютеру, а открывая библиотеку вижу их все в одном месте;
  • стартовое меню, когда для запуска программы я просто набираю несколько букв имени и через мгновение система мне предложит имя для запуска;
  • строка поиска практ. везде в окне проводника - когда я хочу удалить программу, я открываю панель управления и начинаю набирать "Uni.." - через мгновение остаются только ссылки, связанные с удалением программ, гаджетов, шрифтов и прочего
  • механизм переключения между задачами (по Win-Tab у меня как-то так и не прижился) - если перебирать запущенные программы по Alt-Tab и задержаться на какой-то программе, все окна, кроме окна этой программы, прячуться за прозрачными рамками - на 2-х мониторах с запущенной кучей задач очень помогает
  • как и фишка группировки в таск-баре - если запущено несколько проводников скажем, то просто наведя мышку на иконку появятся окошки-эскизы, наведя мышку на такое окошко ошо найдется и покажется, остальные окна в это время временно попрячутся
  • да, встроенная лупа - если нажать Win-Num+, то запустится "магнифиер" - которым я раньше никогда не пользовался, а теперь он стал полезной утилиткой (при программировании интерфейсов помогает попиксельно посмотреть, как там все отрисовалось).. по Win-Num- все уменьшается
  • прикольная и полезная иногда фича - если ухватить окно за заголовок и "потрясти", то все окна свернуться :)
Есть и глюки, надеюсь глюки RC:
  • после слипа как-то все глючило (но комп на работе проклинаю с момента покупки, что слип что гибернейт у него всегда глючили)..
  • с сетью (с расшариванием ресурсов) разобрался не до конца пока (однажды по какой-то причине расшарилась вся папка Users - с документами всех пользователей в компе.. ничего там военного не было, но сам факт..
  • на htpc глюки с телевизором.. поставил драйвер от висты от ноября 2008, все отлично было, но Windows Update предложила обновление, а я не сообразив согласился - с новым драйвером стало хуже..
Плюсов и минусов еще тыщи, только я их специально не запоминаю.. что вспомнил вот с ходу, то и перечислил...

Кровать..

Потихоньку рисуем кровать, дорисовались до такой пока картинки:




Элементы украшательства придумываются, вот например вариант верха:

вторник, 19 мая 2009 г.

Про ролики..

У старшего дитя есть заначка - картонная коробка с надписью "На телефон" (его телефон 2 раза сдавался на гарантийный ремонт, в длинные недели ожидания видимо захотел новый, чтоб ява-игры шпилил, с блютузом был и все такое)

Назначение содержимого коробки впрочем меняется примерно как погода у нас сейчас; в субботу пришел он с твердым намерением выгрести все деньги и купить роликовые коньки. Денег наскребалось гривен 150 с копейками ($20 где-то другими словами), но на рынке его уже ждала "до пол-четвертого" тетка-продавец, которая уже подобрала отличные ролики.. (удавил бы)

Начал гуглить/выяснять для него (еле уговорив не нести 150 гривен тут же) про ролики - что/какие/почем, узнал много нового; понятно, что за $20 ролики - хлам, который надо выбросить не распаковывая; выяснил, что у нас в городе всего один магазин есть, "узкоспециализирующийся" на подобных вещах; порядок цен на самые простые модели от $120 (а скорее всего дальше, самые простые наверное на самых маленьких любителей спорта)

И в раздумиях: дитю ролики хочется, купить хлам не хочется - так что вроде есть смысл купить нормальне, пусть и дорогие; но увлечение роликами может (с вероятностью процентов 80-85) и пройти за 2 дня - кататься все равно негде, синяков да шишек набьет да и забросит их в кладовку.. Да и за лето нога вырастет и осенью в любом случае их в кладовку..

И что делать с его роликами..

Про удаленный доступ и ssh..

Удаленный не в смысле "его стерли", а в смысле "он далеко" :)

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

На нем установлена Ubuntu, в которую я хожу удаленно для управления всем этим хозяйством; хожу по ssh, пользовался для этого putty и все меня устраивало, пока в поисках этой самой putty зашел на сайт и скачал Tunnelier (сайт тут, выдается гуглом первой строчкой, но почему-то раньше не видел)

С тех пор использую именно его; при подключении в одном окне обычный терминал, где можно также как и в putty поуправлять чем-нибудь, а супер-фича (ну для меня по крайней мере) еще в одном окне, которое реализует гуй для "ftp over ssh" (раньше я пользовалься консольной программкой для передачи файлов в свой удаленный компьютер)

Обычный сценарий таков: читая rss (в google reader-е конечно, конечно в firefox-е) вижу запись, что появилась скажем свежая серия House MD; иду на torrents.ru, скачиваю торрент-файл, соединяюсь с домом, смотрю, что там и как, переписываю торрент-файл в специально обученную папочку, торрент-клиент видит новый торрент-файл в специальной папочку и начинает качать файлы.. по приходу домой садимся с женой и смотрим свежую серию..

Да, подумал вот - до осени можно комп выключать получается - сезон то закончился ;) качать/смотреть нечего..

Затевашки с новой мебелью..

Вчера натырив картинок из интернета вооружились карандашом и набросали эскизик будущей кровати для детей.. 2 этажа, место надо экономить, комната не резиновая

Вот што-то типа такого:


Матрацы до этого уже сходили перещупали, практически выбрали 200*90 ("ну чтоб до армии ж на них спали, а если в папу пойдут ростом - то надо двухметровые"), но с рулеткой походили по комнате, померяли, решили попустится, матрацы будут 190 см * 80 см - на ближайшие годы хватить должно, а там может кровать раньше развалится :) чем они до 2-х метров дорастут.. зато сьэкономили по 10 см, вроде мелочь, а место выиграли

Жене всегда хотелось лесенку совместить с ящиками, так что вовремя попалась на глаза картинка из инета и вспомнили.. внутри каждой ступеньки будет выдвижной ящик для игрушек и/или прочего хлама; снизу тоже будут большие ящики выдвижные для постельного и прочего. Сзади будет "спинка", по которой будет идти труба, на которой будут висеть подушки

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

Осталось теперь все перенести в чертежи.. вчера из-за финалов сезонов "Хауса" и "Теории большого взрыва" глазели телевизор допоздна, сил хватило только вот на такое карандашное рукотворство.. главное не откладывать его в длинный ящик теперь..

понедельник, 18 мая 2009 г.

Про фондю..

А мы замечательно провели выходные - решили не травмировать мою психику покупкой сыра, попыткой сделать фондю и отвратительным результатом, поэтому делали мясное фондю..

Для этого купили грудку, пива и соусов, душевно посидели на кухне, проводя испытания в субботу, позвали на воскресенье друзей, с которыми с тем же удовольствием повторили результат

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

На очереди экспериментирование с инградиентами для "мясного" фондю (жена уже предложила рыбу) и все таки поиск правильного сыра :)

пятница, 15 мая 2009 г.

Хочу фондю (опять)..

На фоне уныния и затыков с работой организм требует отвлечь его (организм) чем-то приятным.. например пожрать :)

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

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

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


четверг, 14 мая 2009 г.

Про альфа-контролы, игры и вообще нытье..

Никак не добью проект текущий, красивость интерфейса достигается с помощью альфа-контролов (это реклама: сайт тут; очень неплохая подборка компонентов для создания нестандартного интерфейса приложения, для exUSSR бесплатная)

Все замечательно, только на който хрен мне надо менять размер формы ("окно фьють - и плавненько увеличилось, потом назад фьють - и уменьшилось"); никак у меня "фьють" не получается :'-(

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

Ненавижу все..

вторник, 12 мая 2009 г.

Пример реализации расширения для показа эскиза файла

В ответ на этот коммент сделал пример - работающий

Код в заметке был скопипастен из рабочего кода и да, не работал - надо было напильником доработать немного для реальной жизни

Но совсем немного.. Вот работающий пример - скачать пример

пятница, 8 мая 2009 г.

Win7 - красивости

Благополучно переехал на Win7 RC - мне нравится еще больше

Одна из фишек, которую захотелось сразу сделать - показ прогресса чего-нибудь прямо на кнопке в таскбаре; вроде получилось, ничего военного в общем нету; код:

uses
  windows;

type
  TBPF = (TBPF_NOPROGRESS = 0,
          TBPF_INDETERMINATE = 1,
          TBPF_NORMAL = 2,
          TBPF_ERROR = 4,
          TBPF_PAUSED = 8);
  TBATF = (TBATF_USEMDITHUMBNAIL = 1,
           TBATF_USEMDILIVEPREVIEW = 2);

function InitTaskBar: HResult;
function SetTaskBarState ( hWnd: HWND; State: TBPF ): HResult;
function SetTaskBarValue ( hWnd: HWND; Value: integer ): HResult;

implementation

uses
  ActiveX;

const
  CLSID_TaskbarList: TGUID = '{56fdf344-fd6d-11d0-958a-006097c9a090}';
  IID_ITaskbarList:  TGUID = '{56FDF342-FD6D-11d0-958A-006097C9A090}';
  IID_ITaskbarList2: TGUID = '{602D4995-B13A-429b-A66E-1935E44F4317}';
  IID_ITaskbarList3: TGUID = '{ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf}';

type
   ITaskbarList = interface(IUnknown)
      ['{56FDF342-FD6D-11d0-958A-006097C9A090}']
      function HrInit : HResult; stdcall;
      function AddTab(hWndOwner : HWND) : HResult; stdcall;
      function DeleteTab(hWndOwner : HWND) : HResult; stdcall;
      function ActivateTab(hWndOwner : HWND) : HResult; stdcall;
      function SetActiveAlt(hWndOwner : HWND) : HResult; stdcall;
   end; { ITaskbarList }

  ITaskbarList2 = interface(ITaskbarList)
    ['{602D4995-B13A-429b-A66E-1935E44F4317}']
    function MarkFullscreenWindow(wnd : HWND; fFullscreen : bool) : HResult; stdcall;
  end;

  ITaskbarList3 = interface (ITaskbarList2)
  ['{ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf}']
    function SetProgressValue (hWnd: HWND; ullCompleted: int64; ullTotal: int64): HResult; stdcall;
    function SetProgressState (hWnd: HWND; tbpFlags: TBPF): HResult; stdcall;
    function RegisterTab (hwndTab: HWND; hwndMDI: HWND): HResult; stdcall;
    function UnregisterTab (hwndTab: HWND): HResult; stdcall;
    function SetTabOrder (hwndTab: HWND; hwndInsertBefore: HWND): HResult; stdcall;
    function SetTabActive (hwndTab: HWND; hwndMDI: HWND; tbatFlags: TBATF): HResult; stdcall;
    function ThumbBarAddButtons (hWnd: HWND; cButtons: integer; pButtons: pointer): HResult; stdcall;
    function ThumbBarUpdateButtons (hWnd: HWND; cButtons: cardinal; pButtons: pointer): HResult; stdcall;
    function ThumbBarSetImageList (hWnd: HWND; himl: pointer): HResult; stdcall;
    function SetOverlayIcon (hWnd: HWND; hIcon: HICON; pszDescription: PWideChar): HResult; stdcall;
    function SetThumbnailTooltip (hWnd: HWND; pszTip: PWideChar): HResult; stdcall;
    function SetThumbnailClip (hWnd: HWND; prcClip: PRect): HResult; stdcall;
  end;

var
  pTaskBarList: ITaskbarList3;

function InitTaskBar: HResult;
begin
  Result := CoCreateInstance (CLSID_TaskbarList, nil, CLSCTX_INPROC_SERVER, IID_ITaskbarList3, pTaskbarList);
  if Failed ( Result ) then
    pTaskBarList := nil;
end;

function SetTaskBarState ( hWnd: HWND; State: TBPF ): HResult;
begin
  if pTaskBarList = nil then
    Result := S_FALSE else
    Result := pTaskBarList.SetProgressState ( hWnd, State );
end;

function SetTaskBarValue ( hWnd: HWND; Value: integer ): HResult;
begin
  // assume Value = 0-100
  if pTaskBarList = nil then
    Result := S_FALSE else
    Result := pTaskBarList.SetProgressValue ( hWnd, Value, 100 );
end;

Использование - проще некуда: код можно выделить в отдельный юнит и подключать его при необходимости; перед использованием надо вызвать InitTaskBar - если получится создать нужный интерфейс (читай - если он есть, т.е. если мы в Win7), то вернется S_OK и значит можно вызывать функции прогресса.. хотя их можно вызывать и так, ничего не случится, но для красоты..

Ну и дальше - вызываем SetTaskBarState c:
  • TBPF_NORMAL, если будет показываться "обычный" прогресс
  • TBPF_INDETERMINATE, если надо отобразить процесс неопределенной длительности
  • TBPF_ERROR, если надо показать, что в процессе произошла ошибка (прогресс-бар окрасится в красный цвет)
  • TBPF_PAUSED, если процесс запаузили (прогресс-бар окрасится в желтый)
А для обновления прогресс-бара вызываем SetTaskBarValue, передавая значение в %% для отображения

Вот пример, как все должно работать: http://rapidshare.com/files/230523628/TaskBarDemo.zip.html

Вот как все работает (сначала надо нажать btn1 - это собственно инициализация, потом пощелкать по радиокнопкам и подвигать ползунок):
-> ->



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

Погоду смотрю в гаджете виндовом - он в RC "из коробки" наконец заработал..