Michal Čihař - Archive for 10/2007

Gammu test version 1.13.96

Finally this testing series is stabilizing and there are no known regressions. The latest big regression with encoding PDU data has been just fixed. Full list of changes:

  • Fixed wrong PDU encoding (bug #412).
  • Provide API for cleaning SMS backup structure.
  • Added testing of SMS PDU encoding.

You can download from usual place: http://cihar.com/gammu/

I hope this will be really the last one before 1.14.0.

Baseball - sport číslo jedna

Na to, že na každém rohu vidíme reklamu na místní Dragons, jsme si už zvykli. Dnes ovšem místní miláčci hráli zápas a tak kdo nemohl na stadión, vzal za vděk i podlahou v obchodním domě. Těm méně šťastným muselo stačit i místo za výlohou. Ale to nijak nemírnilo potřebu fandit a nadšení, které propuklo v okamžiku, kdy se některému z Dragons podařilo skórovat.

Více fotek z noční procházky je v mém albu.

Rozšířené možnosti phpMyAdmina

phpMyAdmin zpřístupňuje nejen funkce MySQL, ale nabízí i mnoho funkcí vlastní. Pro některé z nich je potřebná konfigurace a tu si dnes ukážeme.

Pokud žádné rozšířené funkce nemáme nastavené, phpMyAdmin nás varuje, jak můžete vidět na této stránce dole .

Po kliknutí na dotaz se dozvíme, že není v pořádku databáze pro ukládání těchto dat. phpMyAdmin používá pro ukládání nastavení pro některé funkce (například návrhář tabulek, relace mezi tabulkami, komentáře ke sloupcům, vytváření PDF souborů se strukturou databází a MIME transformace sloupců) vlastní databázi s několika tabulkami.

V případě že připravujeme instalaci pro více uživatelů není vhodné aby k těmto údajům měli přístup všichni uživatelé používající daný MySQL server. Proto vytvoříme nejdříve uživatele, který bude mít k příslušným údajům přístup. Pokud jsme jediným uživatelem, je možné tento krok vynechat. Přihlásíme se do phpMyAdmina jako root a vytvoříme uživatele pma, který bude mít přístup do příslušných tabulek, doporučuji použít SQL příkazy z dokumentace (pro starší verze MySQL je potřeba použít jiné příkazy, ty jsou také uvedeny v dokumentaci):

 
  GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'heslo';
GRANT SELECT (
    Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
    Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
    File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
    Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
    Execute_priv, Repl_slave_priv, Repl_client_priv
    ) ON mysql.user TO 'pma'@'localhost';
GRANT SELECT ON mysql.db TO 'pma'@'localhost';
GRANT SELECT ON mysql.host TO 'pma'@'localhost';
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
    ON mysql.tables_priv TO 'pma'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost';
 

Jméno a heslo vytvořeného uživatele uvedeme v konfiguračním souboru:

 
  $cfg['Servers'][$i]['controluser']   = 'pma';
$cfg['Servers'][$i]['controlpass']   = 'heslo';
 

Pro další funkce je potřeba někde ukládat data. Tyto jsou ukládány do tabulek jejichž jména musíme uvést v konfiguraci, pokud nám vyhovují názvy vybrané vývojáři (tabulky jsou vytvořeny v databázi phpmyadmin, uživatel se jmenuje pma), můžeme použít pro jejich vytvoření připravený skript scripts/create_ta­bles.sql (nebo scripts/create_ta­bles_mysql 4 _1_2+­.sql pro MySQL 4.1.2 a vyšší, v phpMyAdminovi 3.0 je jen create_tables.sql, který je pro všechny podporované verze MySQL). Přihlásíme se jako uživatel root, otevřeme stránku pro import , na ní zadáme jméno souboru a provedeme import. O těchto nově vytvořených tabulkách dáme phpMyAdminovi vědět v konfiguračním souboru:

 
  $cfg['Servers'][$i]['pmadb']         = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation']      = 'pma_relation';
$cfg['Servers'][$i]['table_info']    = 'pma_table_info';
$cfg['Servers'][$i]['table_coords']  = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages']     = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info']   = 'pma_column_info';
$cfg['Servers'][$i]['history']       = 'pma_history';
 

Nyní by již mělo varování zmizet a můžeme používat mnoho dalších funkcí. Podrobnosti o nich budou rozebrány někdy příště.

Gammu test version 1.13.95

I just released new version of Gammu. I expected to have stable release at this time, but some important bugs appeared which forced me to change API. And while I did break this, I also did other API changes which I had longer in my mind. Besides there are lot of fixes in OBEX/IrMC code. Full list of changes:

  • Fixes OBEX crash (Debian bug #446923).
  • Correctly check various return values (bug #409).
  • Fixed several bugs in vCard decoder.
  • Removed UCS decoding heuristics, it can not work in all cases.
  • Provide at least some basic information from dumb AT phones.
  • SMSD now logs also error descriptions.
  • SMSD can be configured not to check for security status.
  • Correctly handle hard deletes on IrMC (bug #414).
  • GSM_ReadConfig now returns GSM_Error instead of just bool.
  • Many functions now use size_t for passing size values.
  • Backups API now rather accepts format than guessing by filename.
  • Increased soname due to API/ABI changes

Richard Stallman v Nagoji

Dnes jsme se náhodou na poslední chvíli dozvědeli o přednášce Richarda Stallmana a samozřejmě jsme na ní nemohli chybět. Protože naše informace o programu byly poněkud skoupé, tak jsme stihli i předchozí přednášku v japonštině o historii svobodného softwaru v Japonsku. Z toho mála co jsem porozuměl jsem měl pocit, že by mě to nebavilo ani anglicky :-).

Pak už přišel Stallman a začal poutavě vyprávět výhody svobodného software, chvíli se obouval do Microsoftu, jindy zase do Apple nebo do Bushe. Na závěr se převtělil v božstvo Emacsu, ale uklidnil nás, že používáním Vi se nedopouštíme hříchu.

PHP 4 je mrtvé

Nebo by alespoň mělo být. To je přesně poselství iniciativy GoPHP5 . Ta má za cíl donutit poskytovatele služeb nabízet PHP 5 svým zákazníkům. Způsob jakým by toho mělo být dosaženo je poměrně jednoduchý - 5. února 2008 přestanou projekty podepsané pod touto iniciativou podporovat PHP 4. Projektů je pod touto iniciativou podepsáno už požehnaně , namátkou vyberu pár co znám: Gallery, Drupal, Midgard, phpPgAdmin, Typo3 a samozřejmě phpMyAdmin . Začleněním mnoha známých projektů by se snad i mohlo dosáhnout požadovaného efektu, ale uvidíme. Když už se začalo řešit vyhazování kódu pro staré PHP, padlo za oběť i staré MySQL. Takže nová verze 3.0, která vyjde někdy po 5. únoru 2008, bude podporovat už jen PHP 5.2.0 a MySQL 5.0 a novější. Tím se otevřela cesta pro velký úklid kódu, který zajišťoval kompatibilitu s dnes již historickými verzemi obou produktů a také snadnější podpora pro nové funkce. Zároveň se tímto zbavíme jazykových souborů, které nejsou v utf-8, protože ty byly opravdu nutné jen pro starší verze MySQL, které nepodporovaly kódování. Po nějakou dobu bude ještě udržována současná vývojová větev 2.11, která bude podporovat i starší verze, ale nedočká se žádných zásadnějších změn, budou jenom opravovány bezpečnostní a jiné zásadní problémy.

Debugging not working USB automounting in GNOME

Some day, this thing stopped to work for me. I was not aware of doing anything what could break it, even any related package was not updated. Time went on and I still did not find time to learn how to debug this udev/hal/dbus/gnome-volume-manager machinery.

Today, after some googling I found short debugging guide on Ubuntu wiki, which quickly revealed me that "volume.ignore set to true on /org/freedesktop/Hal/devices/volume_uuid_4717_5407, not mounting". Well I didn't configure anything to be ignored, so let's dig deeper in this.

As I had no idea where this thing could be set, I again started to google and /etc/hal and /usr/share/hal seem to be the right place where to start grep. Nothing related in /etc, but too much entries in /usr. However most of them were selective for some special USB disks or partitions. But there was one which did this unconditionally - it was file /usr/share/hal/fdi/policy/gparted-disable-automount.fdi, what crap from gparted. Now I remember that I used this for formatting and partitioning something on USB and after doing all job, it crashed. So it left this piece of HAL hack inside /usr/share/hal and it was cause of anything not mounting.

Seems to be worth of reporting as a bug... Wait a moment, it's already known and some patch for it exists. Hopefully we will see this soon in unstable.

DRM is here just to upset people?

Being in Japan has also one great feature - even if you are in same DVD region as in EU, you are still unable to play your DVDs, maybe because of PAL/SECAM issue, I don't know. I think it must have been intentionally designed this way.

The hardware player I have here at my room just tells me: Disc Error, Playback feature may not be available on this Disc. I have no idea what this error actually means, but I somehow expected I'll be able to play my region 2 DVDs in region 2 DVD player. Good luck that I still have my laptop with illegal dvdcss library, where I can play whatever DVD I put into it.

I know this is not real DRM at all, but this has also started as a technology to limit copying or whatever....

I should review better what I upload

Well I somehow expected it will happen to me when I started to use Debian experimental distribution, but now it really happened. I noticed that last Gammu upload went to unstable instead of experimental just when today updating my other development machine and I was surprised that Gammu is going to be updated. Well the version is not that bad, but it is far from being stable.

Anyway it is good for something - unstable users will do much more testing than experimental ones ;-).

Gammu test version 1.13.94

I just released new version of Gammu. It just adds compatibility with some Motorola phones (but still not enough to fully support them) and fixes some bugs. Full list of changes:

  • Fixed crash in wrong config handling (Debian bug #446781).
  • Initial support for Motorola SMS implementation (bug #408).

I expect this to be last release before next stable one - 1.14.0, so please give it some testing so that we can have a good release.