Michal Čihař - Archive for Jan. 1, 2008

Čím složitější tím lepší

Už nějakou dobu pozoruju jak se některé firmy snaží udělat ceník služeb co nejnepřehlednější, aby se v tom zákazník náhodou nemohl vyznat a aby bylo na čem ho oškubat. Česká spořitelna se touto cestou úspěšně začala ubírat zavedením Osobního účtu (znám dost lidí co na něj přešlo, všichni si mysleli že ušetří, ale opak byl pravdou) a úspěšně v tomto pokračuje zavedením Chyté karty.

Jakožto dlouholetý klient České spořitelny jsem jaksi nemohl přehlédnout reklamu na nový úžasný produkt, který se nazývá Chytrá karta a prý mi ušetří až 30%, zaplatí penzijní pojištění a kdo ví co ještě. Nu což, tak se podíváme na jejich stránky a zjistíme si nějaké informace.

Reklamních keců tam je sice požehnaně, ale nějak se mi ze stránek nepodařilo ani najít jestli se jedná o kreditní nebo debetní kartu. Jediné z čeho se dá usuzovat jsou podmínky založení, které vypadají jako podmínky pro kreditku, ale nikde to jasně napsané není. Při čtení podrobnějších podmínek už se však jasně mluví o kreditní kartě.

Výhody to jsou vskutku lákavé, co třeba vrácení rozdílu ceny pokud jinde mají to samé levnější? Po přečtení pojistných podmínek už to tak lákavě nevypadá - pokud do deseti dnů někde jinde (pokud zlevní v tom samém obchodě, máte smůlu) v kamenném obchodě (internetové obchody jsou vyloučeny) mají to samé za nižší cenu a není to zboží v akci, tak dostanere rozdíl (maximálně však 5000 Kč, celá nabídka se vztahuje na zboží do 30000 Kč). Ovšem ještě je potřeba zmínit, že se nesmí jednat o mobilní telefon, součástky nebo příslušenství motorového vozila (takže třeba autorádio) nebo lodě, stavebniny, optické výrobky (nespadá do toho i fotoaparát a videokamera?) a spoustu dalších věcí, viz všeobecné obchodní podmínky .

Pojištění poškození věci při převozu je ještě lepší - "úmyslné i neúmyslné zanedbání nebo přehlédnutí pokynů výrobce" nebo "zničení z důvodu nedbalosti" je důvodem k odmítnutí plnění. Když mi spadne televize, tak jsem nejspíš nerespektoval pokyny výrobce (určitě tam bude něco jako nepouštějte z výšky na zem) a ještě jsem to zničil svojí nedbalostí, takže nemám nárok na nic a to se vyplatí :-).

Na zbytek výhod už jsem se radši ani nedíval, předpokládám, že to bude podobně výhodné. Asi už je opravdu na čase přemigrovat k jiné bance. Jak jen najít nějakou rozumnou, to už mi asi nikdo neporadí :-).

Gammu test version 1.20.90

New testing version of Gammu was just born. It brings quite a lot of fixes and changes API a bit (some things will also change in next testing release).

Full list of changes:

  • ABI change, because of increasing some limits.
  • Config file option rsslevel no longer works, superseded by gammu checkversion.
  • Dropped GSM_ReadHTTPFile from API, gammu now uses CURL instead.
  • Support for longer notes on Nokia phones (bug #607).
  • Add deleteallmemory command.
  • Ignore trailing spaces in AT commands.
  • Fix crash on long lines in vCards.
  • Compatibility with broken iWOW responses (bug #650).
  • Do not use hard delete flag for updating entries (bug #634).
  • Identify Nokia 1200 (bug #649).
  • Fix parsing of date/time reply on Sony Ericsson G900 (bug #647).
  • Increased limit for folder name (bug #646).
  • Fix parsing of empty date (bug #643).
  • Recognize general number on Nokia 6230i (bug #655).
  • Fix writing of phone number using HEX charset (bug #512).
  • Recognize more CME errors, thanks to Paolo oopla@users.sf.net.

You can download from usual place: http://cihar.com/gammu/, Debian users will find packages in experimental as soon as it passes NEW queue.

PS: I still have about 100 unread mails about Gammu, so please be patient.

Synchronizace s mobilem - konečně

Už dlouho na mém seznamu úkolů hnije synchronizace mezi telefonem (Sony-Ericsson K750i) a nějakou rozumnou PIM aplikací v Linuxu (protože používám GNOME, tak jako cesta nejmenšího odporu se jeví Evolution). Už jsem se o to pokoušel několikrát, ale zatím to nikdy nefungovalo. Dneska (když už bylo venku tak jak bylo) jsem tomu věnoval opět nějaký čas a tentokrát jsem uspěl na první pokus :-).

Než jsem s čímkoliv začal, zazálohoval jsem si všechno z telefonu. Gammu to zvládne v pohodě a čemu jinému bych měl věřit než nástroji, který jsem si sám napsal?

 gammu backup /tmp/phonebook.vcf
gammu backup /tmp/calendar.vcs

A teď už je na čase si hrát s OpenSyncem . Pro tyto účely se může hodit setup guide a SyncML guide . Protože jsem dřív míval problémy s oběmi konci synchronizace - jak telefon tak Evolution končily s nějakou chybou, rozhodl jsem se na to jít tentokrát pomalu a začít se synchronizací z telefonu do souborů:

 msynctool --addgroup file2phone
msynctool --addmember file2phone file-sync
msynctool --addmember file2phone syncml-obex-client

Teď už jenom nastavit ukládání souborů:

 msynctool --configure file2phone 1

A nastavit cestu, kam se mají data ukládat:

 <?xml version="1.0"?>
<config>
  <!-- directory path for file-sync -->
  <path>/home/foo/phone-backup/</path>

  <!-- should care of subdirectories (TRUE or FALSE) -->
  <recursive>FALSE</recursive>
</config>

Tím máme jednoduchou část za sebou a potřebujeme nastavit připojení k telefonu:

 msynctool --configure file2phone 2

Naštěstí můžeme použít příklad z SyncML guide , jen stačí přidat Bluetooth adresu (dá se zjistit pomocí hcitool scan ) a kanál ( sdptool browse 00:b0:0b:fa:ce:00 ):

 <?xml version="1.0"?>
<config>
  <bluetooth_address>00:b0:0b:fa:ce:00</bluetooth_address>
  <bluetooth_channel>7</bluetooth_channel>
  <identifier>Sony Ericss</identifier>
  <version>1</version>
  <wbxml>1</wbxml>
  <username></username>
  <password></password>
  <type>2</type>
  <usestringtable>0</usestringtable>
  <onlyreplace>0</onlyreplace>
  <onlyLocaltime>0</onlyLocaltime>
  <recvLimit>0</recvLimit>
  <maxObjSize>0</maxObjSize>
  <contact_db>Contacts</contact_db>
  <calendar_db>Agenda</calendar_db>
  <note_db>Notes</note_db>
</config>

A teď už by měla fungovat synchronizace kontaktů z telefonu do vybraného adresáře:

 msynctool --sync file2phone

Když už toto funguje, stačí přidat Evolution a mělo by být hotovo. Vytváření synchronizační skupiny je stejné, jen se použije jiný plugin. Synchronizaci s Evolution většinou není potřeba nijak nastavovat, výchozí hodnoty jsou rozumné (použije se jediná databáze, kterou Evolution automaticky vytvořila):

 msynctool --addgroup phone2evo
msynctool --addmember phone2evo evo2-sync
msynctool --addmember phone2evo syncml-obex-client
msynctool --configure phone2evo 1
msynctool --configure phone2evo 2

Ale ještě pořád není vyhráno - telefony Sony-Ericsson phones většinou mají rozbité cosi v synchronizaci poznámek (nebo to je možná rozbité v OpenSync, ale vyjde to nastejno, prostě bez tohoto kroku synchronizace neprojde) a je potřeba vypnout jejich synchronizaci. To můžeme udělat změněním filtrů ve vytvořené synchronizační skupině (filtr je v souboru ~/.opensync-0.22/group2/filter.conf ):

 <?xml version="1.0"?>
<filter>
  <note/>
</filter>

A teď už konečně můžeme zkusit synchronizaci a mělo by to fungovat:

 msynctool --sync phone2evo

Pokud chcete o trochu víc klikat, dá se to samé udělat pomocí GUI multisync0.90 , ale stejně nakonec skončíte u editování XML souborů :-).

Phone synchronisation, finally

One of long standing things on my todo list was to make synchronisation work from my cell phone (Sony-Ericsson K750i) to some PIM application on Linux side (as a GNOME user Evolution is the natural choice). I tried it several times but it never actually worked. Today I gave it yet another try and I finally succeeded on first attempt :-).

As a first step I just wanted to make a backup of all things. Gammu can do it quite well and it's the tool I trust for this purpose:

gammu backup /tmp/phonebook.vcf
gammu backup /tmp/calendar.vcs

Now it's time to play with OpenSync. We will use setup guide and SyncML guide as a starting point. As I had in past problems with both sides - both phone and Evolution failed with some random errors, I wanted to go step by step. So I started with setting up phone to files synchronisation:

msynctool --addgroup file2phone
msynctool --addmember file2phone file-sync
msynctool --addmember file2phone syncml-obex-client

Now we need to configure file storage, just tell it where it should store the data:

msynctool --configure file2phone 1

And change path in your editor to something like:

<?xml version="1.0"?>
<config>
  <!-- directory path for file-sync -->
  <path>/home/foo/phone-backup/</path>

  <!-- should care of subdirectories (TRUE or FALSE) -->
  <recursive>FALSE</recursive>
</config>

Now the more tricky part comes, we need to set up phone end:

msynctool --configure file2phone 2

Fortunately we can use example from the SyncML guide and just fill in Bluetooth address (you can get it using hcitool scan) and channel (sdptool browse 00:b0:0b:fa:ce:00):

<?xml version="1.0"?>
<config>
  <bluetooth_address>00:b0:0b:fa:ce:00</bluetooth_address>
  <bluetooth_channel>7</bluetooth_channel>
  <identifier>Sony Ericss</identifier>
  <version>1</version>
  <wbxml>1</wbxml>
  <username></username>
  <password></password>
  <type>2</type>
  <usestringtable>0</usestringtable>
  <onlyreplace>0</onlyreplace>
  <onlyLocaltime>0</onlyLocaltime>
  <recvLimit>0</recvLimit>
  <maxObjSize>0</maxObjSize>
  <contact_db>Contacts</contact_db>
  <calendar_db>Agenda</calendar_db>
  <note_db>Notes</note_db>
</config>

And now we should be able to synchronise whole phonebook from phone to selected directory:

msynctool --sync file2phone

Okay, this works, let's try more complicated thing - include Evolution in the chain. The steps are the same, config file for phone is the same, Evolution plugin has sane defaults you usually don't have to touch:

msynctool --addgroup phone2evo
msynctool --addmember phone2evo evo2-sync
msynctool --addmember phone2evo syncml-obex-client
msynctool --configure phone2evo 1
msynctool --configure phone2evo 2

But now comes the tricky thing - Sony-Ericsson phones usually have something broken around notes (or it is broken in OpenSync, I don't care, simply synchronisation fails without this step) and we have to avoid synchronisation of them. This can be done by changing filter file in group we've created above (usually in file ~/.opensync-0.22/group2/filter.conf):

<?xml version="1.0"?>
<filter>
  <note/>
</filter>

And finally we can start the synchronisation and it should work:

msynctool --sync phone2evo

You can also GUI multisync0.90 to do the configuration and start synchronisation, but it is not much different, you also still have to edit XML files.

Wammu 0.28

I just released version 0.28 of Wammu. This release fixes various problems found by users. Full list of changes:

  • Fixed freeze while searching for Bluetooth devices.
  • Fixed guided configuration of Bluetooth devices (no more complains about not existing device).
  • Fixed saving of backups to folder with non ASCII names.
  • Validation is less strict and allows hopefully all number.

This release also comes with binary for Windows with embedded Gammu 1.20.0.

Bezpečnost webových aplikací

Na bezpečnostním mailing listu phpMyAdmina se objevil nějaký etický hacker a začal trochu šťourat do našeho kódu, což je jenom dobře :-). První výsledky tohoto šťourání už přinesla verze 2.11.7.1 , ale s většinou změn přijde až 2.11.8.

Kromě spousty určitě užitečných připomínek, ale přišel i s jedním kontroverzím nápadem a to znemožnit potenciálnímu útočníkovi zjistit o jakou verzi phpMyAdmina jde. Kromě toho, že samozřejmě pořád bude existovat dostatek starých verzí, které to o sobě řeknou, tak to stejně jenom zavání security by obscurity. Nicméně to ale může útočníkovi trochu zkomplikovat život. Na druhou stranu schování těchto informací je práce navíc a vynutilo by si odstranění textového ChangeLogu.

Co si o tom myslíte vy? Má smysl skrývat jakoukoliv zmínky o tom o jakou verzi se jedná (včetně například ChangeLogu) před nepřihlášeným návštěvníkem?

Objev týdne: Salamandra

Hlasujte pro phpMyAdmina v Hackontestu

phpMyAdmin si zatím drží třetí místo, které zajišťuje účast v programátorské soutěži Hackontest , která se koná koncem září v Curichu. Během 24 hodin budou tři vybrané týmy implementovat vlastnost, kterou si uživatelé budou nejvíce přát. Hlasujte tedy pro to, co vám v phpMyAdminovi nejvíce chybí. Více informací na http://www.hackontest.org .

Cool down the server

Moving of server seems to go quite well. There were some outages for users during night because of too big TTL in DNS, but after setting up redirector at old IP during morning, this should not be a problem. Now only few hosted sites were still unable to change their DNS settings, but it's not my problem :-).

On the other hand, it looks that moving server to new server room will have some positive effect on it's health:

Temperature of disks

Server has been moved

This night, long delayed operation has been done and server which gives you this page has been moved to another server room. It should bring a bit better conditions for server and you should not notice this except short outage in this night till all DNS caches on the way will will update their records. This is a theory and lets see what problems will appear tomorrow morning ;-).