I just bought new mp3 player Philips SA4325. It is nothing special - features 2Gb internal storage, OLED display and USB 2.0 mass storage protocol for transferring files. I encountered very strange problem - when I mounted the device for the first time everything was just fine - I was able to play the transferred songs. When I tried to do this for second time - the new files I uploaded were missing, and the first ones were broken. After couple of hours of trial and error process I (think) found what is the problem: by default the filesystem on the player is FAT16. It seems the player's firmware is not updating correctly FAT tables on filesystem when it scans for new files at startup. After I format the player and start it, then I run dosfsck, I get the following result:
root@buhtum:/home/svilen# dosfsck -v /dev/sdb1
dosfsck 2.11 (12 Mar 2005)
dosfsck 2.11, 12 Mar 2005, FAT32, LFN
Checking we can access the last sector of the filesystem
Boot sector contents:
System ID "mkdosfs"
Media byte 0xf8 (hard disk)
2048 bytes per logical sector
32768 bytes per cluster
1 reserved sector
First FAT starts at byte 2048 (sector 1)
2 FATs, 16 bit entries
120832 bytes per FAT (= 59 sectors)
Root directory starts at byte 243712 (sector 119)
512 root directory entries
Data area starts at byte 260096 (sector 127)
60076 data clusters (1968570368 bytes)
58 sectors/track, 224 heads
0 hidden sectors
961350 sectors total
FATs differ but appear to be intact. Use which FAT ?
1) Use first FAT
2) Use second FAT
One of the most critical parts of this "filesystem" is the actual file allocation table stored in a special place on the disk. Usually there are 2 copies of the information for higher reliability. It seems the player's firmware is not updating one of them. I solved the problem by formating the player with just one FAT table:
mkdosfs -S 2048 -F 16 -f 1 -v -n PHILIPS /dev/sdb1
Now I was able to mount few times the player, copy new files without worrying that they will disappear. The dosfsck is much more optimistic:
root@buhtum:/home/svilen# dosfsck -v /dev/sdb1
dosfsck 2.11 (12 Mar 2005)
dosfsck 2.11, 12 Mar 2005, FAT32, LFN
Checking we can access the last sector of the filesystem
Boot sector contents:
System ID "mkdosfs"
Media byte 0xf8 (hard disk)
2048 bytes per logical sector
32768 bytes per cluster
1 reserved sector
First FAT starts at byte 2048 (sector 1)
1 FATs, 16 bit entries
120832 bytes per FAT (= 59 sectors)
Root directory starts at byte 122880 (sector 60)
512 root directory entries
Data area starts at byte 139264 (sector 68)
60080 data clusters (1968701440 bytes)
58 sectors/track, 224 heads
0 hidden sectors
961350 sectors total
Checking for unused clusters.
/dev/sdb1: 9 files, 781/60080 clusters
Probably this trick will work on other players from SA43xx series.
26 юни 2008, четвъртък
13 юни 2008, петък
Как да пишем букви с ударения под Linux
След доста търсене, успях да си сложа алтернативна клавиатурна подредба поддържаща кирилица с уда̀рени бу̀кви и както и „български" кавички. Ето едно микро HOWTO:
Повече информация има тук. Във форумите на Linux-BG има алтернативни клавиатурни подреби, с които можете да пишете гръцки и други букви: ёыэ„“ѐ®©ѐ™υѝωπαδγφγχξλζβνμΩΠΔΦΞΛ
- Сваляте клавиатурния файл от следния адрес: http://osdir.com/ml/misc.translate.bulgarian/2006-04/txt82Jz8FbxYD.txt
- Редактирате сваления файл - има малка грешка в раздела за фонетичната клавиатура:
Редът:include "pc/bg(traditional_phonetic)"
трябва да стане:include "bg(traditional_phonetic)" - (само за Ubuntu/Debian) Разкарвате оригиналната подредба, така че при обновяване на пакета xkb да не ви промени вашата:
$ sudo dpkg-divert --add --rename --divert \
/usr/share/X11/xkb/symbols/bg.orig \
/usr/share/X11/xkb/symbols/bg - Копирате сваления файл:
$ sudo cp /tmp/txt82Jz8FbxYD.txt /usr/share/X11/xkb/symbols/bg - В
/etc/X11/xorg.conf, секция „Input Device", опция "XkbOptions" добавяте "lv3:ralt_switch" - това активира десния Alt (AltGr) да превключвате на трети регистър, където са специалните възможности. Моята секция изглежда така:Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,bg"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll,lv3:ralt_switch"
EndSection - Рестартирате X.
Повече информация има тук. Във форумите на Linux-BG има алтернативни клавиатурни подреби, с които можете да пишете гръцки и други букви: ёыэ„“ѐ®©ѐ™υѝωπαδγφγχξλζβνμΩΠΔΦΞΛ
12 юни 2008, четвъртък
Модерна заплаха
Видяно към коментар в една новина:
Заглавие: ЩЕ ЗАГАЗИТЕ
От: абеее тапациии
аз пък чета коментарите на такива тапаци като вас и ви се чуда ... на тъпия акъл вие ако имате пари .. повечето в България нямат ... за това ТРАЙ да не те намера по IP -то и да те трошнем
String.replaceAll одисея
Колега от нашия екип настъпа интересна Java-ешка мотика. Имаме следния примерен безобиден код:
Искаме да заменим в шаблончето с истинската цена. При изпълнение обаче получаваме:
Опааа! К'о стана? При внимателно четене на документацията се оказва, че
В Java 5 и по-нова са "решили" проблема - за да направите прост replaceAll без необходимост от регулярен израз използвайте...
Интуитивно, нали?. Ако държите е на регулярените изразчета като шаблон за търсене, и да нямате проблем с низа за заместване използвайте:
String template = "Our price: ";
String price = "$9.99";
String msg = template.replaceAll("", price);
System.out.println(msg); Искаме да заменим в шаблончето
Exception in thread "main" java.lang.IndexOutOfBoundsException: No group 9
at java.util.regex.Matcher.group(Matcher.java:463)
at java.util.regex.Matcher.appendReplacement(Matcher. java:730)
at java.util.regex.Matcher.replaceAll(Matcher.java:80 6)
at java.lang.String.replaceAll(String.java:2000)Опааа! К'о стана? При внимателно четене на документацията се оказва, че
$ и \ се използват за заместване на прихванати низове в регулярния израз в първия аргумент на replaceAll (/foo(bar)baz/ => $1 = bar):
Note that backslashes (\) and dollar signs ($) in the replacement string may cause the results to be different than if it were being treated as a literal replacement string. Dollar signs may be treated as references to captured subsequences as described above, and backslashes are used to escape literal characters in the replacement string.
В Java 5 и по-нова са "решили" проблема - за да направите прост replaceAll без необходимост от регулярен израз използвайте...
replace(CharSequence, CharSequence) // String implements CharSequenceИнтуитивно, нали?. Ако държите е на регулярените изразчета като шаблон за търсене, и да нямате проблем с низа за заместване използвайте:
template.replaceAll("pattern", Matcher.quoteReplacement("replacement text"));
11 юни 2008, сряда
09 юни 2008, понеделник
Euro 2008 през Интернет, ама за Linux
Бърз, мръсен и работещ скрип да гледате мачовете от Евро 2008 през Интернет под Линукс:
Качеството е поносимо - не бих го заменил за телевизора. Става да гледате мача и в кенефа ако имате wifi и лаптоп.
$ curl http://ep2008.ontheweb.bg/diema_bg_euro.php | \
perl -e 'while(<>) { print $1 if /src="(.+?)"/; }' | \
mplayer -playlist -
Качеството е поносимо - не бих го заменил за телевизора. Става да гледате мача и в кенефа ако имате wifi и лаптоп.
Бразилец с Голф глобен за шофиране с 880 км/ч
Такива новини правят деня ми по-хубав:
Перник, спите!
Управлението на пътната полиция в Рио де Жанейро остави без последствие обжалването на шофьор, който бил глобен за превишена скорост, след като радарът отчел 880 км/ч, съобщават местни медии, цитирани от ЕФЕ.
Перипетиите на инженер Рафаел Андраде започнали още през 2006 г., когато бил глобен със 127 реала /около 78 долара/, защото радарът засякъл, че неговата кола Фолксваген с обем на двигателя 1000 куб/см и мощност 65 конски сили се движи със скоростта на самолет.
Перник, спите!
Hyperlink absue
Интернет изданието на Дневник, днес:

Забелязване гадно, автоматизирано подчертаване на буквичката "о", което се оказва тъпа рекламка на компаниата с оня другия Любо (дето не е дебел). Якоб Нилсен ще ви тегли майна. Ако търсите оригиналност за рекламите, вдъхновете се от Apple и техните свързанни баннери.

Забелязване гадно, автоматизирано подчертаване на буквичката "о", което се оказва тъпа рекламка на компаниата с оня другия Любо (дето не е дебел). Якоб Нилсен ще ви тегли майна. Ако търсите оригиналност за рекламите, вдъхновете се от Apple и техните свързанни баннери.
Адска музика
Роналд Дженкис е независим изпълнител и Интернет селебрити. Нарича себе си "keytar" (keyboard + guitar) изпълнител - обича хип-хоп и фънк бийтове и е абсолютен магьосник на клавишните. Парчетата му са зашеметяващи - чуйте само това:
messin with an e-piano sound (with distortion, LOL)
Яко, а? Превенето на музиката е fun, нали? Ето и малко як дистър:
messin with a guitar sound (will be on my next CD)
messin with an e-piano sound (with distortion, LOL)
Яко, а? Превенето на музиката е fun, нали? Ето и малко як дистър:
messin with a guitar sound (will be on my next CD)
05 юни 2008, четвъртък
Паркинг автомат на слънчеви батерии
04 юни 2008, сряда
03 юни 2008, вторник
Акустична атака
Никога не съм бил запален почитател на Massive Attack. Само, че този вариант на Newton Faulkner е уникален с натуралистичното си звучене. Faulkner е известен с необикновенния си китарен стил, като използва корпуса на китарата си по доста изобретателен начин:
(Newton Faulkner teardrops live (Massive Attack cover))
... аз бих добавил, че избира доста нестандартни места да записва клиповете си ;)
(Newton Faulkner teardrops live (Massive Attack cover))
... аз бих добавил, че избира доста нестандартни места да записва клиповете си ;)
02 юни 2008, понеделник
Невъзможната CAPTCHA
Абонамент за:
Публикации (Atom)









