Archive for the ‘tech’ Category

Бутона DEL и стоте му превъплъщения

Monday, November 3rd, 2008

Във FreeBSD-то имах един проблем, който ми тровеше нервите - бутона DEL или не работеше или имаше собствено мнение какво трябва да прави. Това му поведение се държеше както в шела (csh), така и във Vim.
Какво точно ставаше:

  • DEL се държи като BACKSPACE - трие знака от ляво на курсора
  • при натискане на DEL се изписва ?^ или ?H или нещо подобно
  • при натискане на DEL просто не се случва нищо

Изметох Гугъл за отговори какво става с мен и накрая се оказа че имам полтъргайст в контролера на клавиатурата.
Майтап :) Ама се оказа че проблема с клавишите DEL и BACKSPACE е толкова заплетен, че чак ми стана чудно как в Windows и Linux до сега не съм имал проблеми. Ето ви един примерен документ да прочетете за какво става въпрос.
Е, оказа се че тъпия проблем има тъпо решение. Във Vim командата

:fixdel

оправя всичко и съответно може да бъде добавена в ~/.vimrc
За csh има подобна магия и това е:

if ($term == “xterm” || $term == “vt100″ || $term == “rxvt” \
|| $term == “vt102″ || $term !~ “con*”) then
# bind keypad keys for console, vt100, vt102, xterm
bindkey “\e[1~” beginning-of-line # Home
bindkey “\e[7~” beginning-of-line # Home rxvt
bindkey “\e[2~” overwrite-mode # Ins
bindkey “\e[3~” delete-char # Delete
bindkey “\e[4~” end-of-line # End
bindkey “\e[8~” end-of-line # End rxvt
endif
bindkey ^? delete-char # for console
bindkey ^[[3~ delete-char # for xterm

Идеята на последните два реда обезмисля целия if-endif блок преди това. При мен работи само така - и с двете неща накуп :)

Енкодване на клипове за k800 с mencoder и ffmpeg

Monday, September 1st, 2008

От месеци се мъчех да си смачкам някое друго видео, което да мога да си го гледам на телефона. GSM е Sony Ericsson k800. По спецификации поддържа:
- видео 3GPP (H263, H264), MP4, Real8
- аудио MP4 (AAC, AAC+, E-AAC+), MP3, M4A, WMA, 3GP, AMR, WAV, G-MIDI 1, Real 8
- максимална разделителна способност 320х240
- максимален битрейт - 400 kb/s - като това е общо видео битрейт + аудио битрейт
До сега имам поне към 500 неуспешни опита да енкодна видео с mencoder и то да тръгне на телефона. Във файловия мениджър се появява една иконка с пакетче и контекстен бутон Send (като на всички непознати файлове) и толкоз. Никакъв опит за по-съществен дебъг. Какво не му харесва? Тук вече става въпрос за много сложна комбинация от видео енкодер, аудио енкодер, видео формат, видео контейнер, аудио кодек, битрейти…
Ето някой от неуспешните опити с mencoder:

mencoder input.avi -ovc lavc -lavcopts acodec=ac3:abitrate=64:vcodec=mpeg4:vbitrate=300 -oac mp3lame -lameopts br=64 -vf scale=320:240 -of lavf -lavfopts format=mp4 -o output.mp4

Сега като го гледам този, не ми е чудно че не тръгва. Опитвам се да ползвам за аудио кодек АС3, а телефона май не го поддържа

mencoder input.avi -ovc x264 -x264encopts bitrate=350 -oac mp3lame -lameopts br=64 -vf scale=320:240 -o output.mp4

Едно време си мислех че x264 == MPEG-4, сега си мисля че не е точно така. Вече почнах да се обърквам кое е енкодер, кое е кодек и кое е контейнер…
Та това са само последните два от няколкостотин опита и килограми изхабени нерви по mencoder. Не искам да кажа че mencoder си върши работата зле - виновно е задклавиатурното устройство :) В други случаи mencoder върши чудесна работа, примерно това рипване на DVD:

mencoder dvd://3 -dvd-device /mnt/cdrom/ -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=”800″ -oac mp3lame -lameopts br=128 -o dvd.avi

По едно време ми писна и се залових за алтернативния софтуер - ffmpeg. Не ми хареса man страницата му, където са описани по-малко от половината опции. Въпреки това, работата горе долу стана.
Първо пробвах да преобразувам клипчето в 3GP, но се оказа че формата има комплект валидни разделителни способности, най-високата от които да ми върши работа беше 176х144. Не мерси.
Съсредоточих се върху MP4:

ffmpeg -i input.avi -ar 8000 -ac 1 -acodec libfaac -vcodec mpeg4 -s 320×240 -r 24 -b 300000 -ab 48000 -t 30 output.mp4

Видеото излезе с подходящия thumbnail в мениджъра на телефона, даже и тръгна. Единствения кусур беше звука, който беше с отвратително качество.
Ето подобрение:

ffmpeg -i input.avi -ar 44100 -ac 1 -acodec libfaac -vcodec mpeg4 -s 320×240 -r 24 -b 250000 -ab 64000 output.mp4

Аудио енкодера не ми даде да вдигна аудио битрейта докато не вдигнах и sampling rate-а. Намалих и видео битрейта, понеже на някои места видеото забавяше и се получаваше framedrop ефект. Накрая всичко тръгна на сто процента :)

Здравей, Opera!

Thursday, July 24th, 2008

На скоро Firefox си изтегли последния ъпдейт от 2.х.х.х серията и се почнаха едни забивания, увивания… За няколко дена бях вбесен. А за версия 3 още дума не може да става да ми дойде вкъщи.
Преди това бях забелязъл че в complete install-a на FreeBSD-то се включва и Opera, та реших да й дам шанс. Поразцъках я малко… и се влюбих :) Това няма нищо общо с онова отроче на софтуерната индустрия, което помня от преди години. Дръпнали са светлинни години напред. Няма ‘дай пари за лиценз’, няма ‘иди да хапнеш докато ти заредя страницата’…
Скорост - браузъра зарежда за 1/3 от времето за което зареждаше FF. Отваря нови табове още преди да си кликнал два пъти и сменя от таб на таб за същото време. Това елементарно упражнение в FF си беше мъка. Всъщност сменянето от таб на таб беше единственото нещо, което правеше лампичката за HDD activity да свети непрекъснато.
Speed dial - може да задавате няколко страници, на които да се прехвърлите. Нещо като bookmarks @ home page, но тук виждате в реално време съдържанието на страниците още преди да сте ги посетили в малки thumbnails.
Преотваряне на затворени табове - до колкото помня във FF тази функционалност се добавяше от Tab Mix Plus и подобните му добавки.
Zoom - реален zoom на страниците, а не само увеличаване на шрифта както беше във 2.х версиите на FF. Разликата между двете е че, когато се увеличава само шрифта, другите елементи остават несъразмерни и страницата започва да се размества (я пъхнете голям шрифт в малък div елемент)
Skins - само си тегли скиновете, като имате прозорче за preview. Можете да четете коментари, да гледате ревюта и рейтинг на същото място.
Mail, Chat, RSS - Opera има вградени клиенти. Обаче съм свикнал като цъкна на RSS линк да ми се отваря страницата за добавяне към Google Reader и малко ми е мъчно за FF :)
Още thumbnails - има опция за добавяне на thumbnails към Ctrl+Tab превключването и към самите табове. Като задържите мишката върху затворен таб, пада един thumbnail със съдържанието на страницата. Не ми допада много, ама си е екстра гъзария.
Image control - може да се изключи показването на картинки, или да се направи да се показват от локалния кеш.
User stylesheets - ако не ви харесва как изглежда някоя страница, можете да й зададете ваш stylesheet, който да ползва. Във FF това ставаше с добавка.
Mouse gestures - никога няма да привикна към каквито и да е жестове с мишката, така че това влиза в категория ‘гъзария’ :)
Notes - има си прозорче за добавяне на кратки бележки. Аз отдавна съм си свикнал да си пазя бележките в браузъро-независима среда като тесктови файлове, така че това ми изглежда още една ненужна ‘гъзария’.
AdBlock - забрана за зареждане на определени елементи от страниците - които вие посочите. Много голям плюс - мразя да гледам банери. Това ставаше с добавка във FF.

Липсва ми Web Developer добавката от FF. Тук има нещо подобно - Tools -> Advanced -> Developer Tools, но е далече от версията на FF.
В заключение на сравнението Opera <> Firefox (без да усетя съм почнал да ги сбивам :) ) ще кажа че Opera ми изглежда като всичко добро от FF събрано на куп и на стероиди. Бързината на зареждане - ако някога FF стигне до там, ще стане революция.
И все пак навика си е навик, и ако в някой скорошен ъпдейт на FF оправят забиванията и memory usage-то - пак ще почна да си го ползвам.

Дяволчето е вече вкъщи

Friday, July 18th, 2008

FreeBSD logo
От няколко дни съм вкъщи с native-installed FreeBSD 7.0. Как стана това - взех си нов хард (WD3200AAKS), хвана ме летния саклет… и айде :)
Инсталацията мина горе-долу като инсталация на Slackware. Малко се видях в чудо с местния еквивалент на fdisk - FreeBSD-то се инсталира на част от цял partition, който се нарича slice. Т.е. partitions се състоят от по-малки дялове - slices. Инструмента за разделянето на диска си има автоматични настройки, но само като видях как ми разхвърля мястото в 3-4 mount points ми стана лошо и взех операцията на ръчно. Всъщност много хора подкрепят гъвкавото разпределение на файловата система - един partition за /home, един за /var, един за /usr и т.н… но до сега съм имал повече проблеми с такова разпределение, от колкото ползи.
Повече четете надолу:
(more…)

Невъзможно - Albatron изкарват *съвременни* видеота за PCI

Friday, July 11th, 2008

Няма правописна грешка - става дума за PCI, както се казва в заглавието, а не за PCI-E.

Една примерна карта показва разни изсилвания като:
- DDR3 памет
- 128 bit memory bus
- DVI
- HDTV TV-out
- HDMI
За честотите на ядрото и на паметта няма да говоря :) Та чудно ми е как ще вкарат такъв звяр зад охлюв като PCI. Все пак говорим за шина с честота 33MHz и ширина 32 бита. Тоест, те ще го вкарат там де, ама какво ще прави през десетките празни цикли докато чака за трансфер по шината? :)
Може би от към параметри само една такава карта е стотици пъти по-производителна от стария ми компютър… Само че как ще се оползотвори всичко това?
Боже, боже, боже…