2006-03-15
 
for the mind of the world i share my eyes
HELSINKI - Dinsdagavond al weer. De foto (rechts) nam ik in Melbourne, in 2003/2004 -- de Finse winter doet soms terugverlangen naar zonniger tijden. Ik ben erg tevreden over de foto, ook al was het een lucky shot.

Ik heb wat fotos bij flickr geplaatst. Het is aardig te zien hoe zg. social computing daar functioneert. Mensen bediscussiëren elkaars foto's, lezen elkaars blog, enzovoort. Ik krijg er niet zoveel hits - mijn populairste foto blijkt die van wat Bangkokse danseressen... Maar ik haal het bij lange na niet bij Ann-Christins foto's.

Ik kon de slaap maar niet vatten, gisteren. Een kleine hack dan maar.

Ik gebruik F-Spot om mijn foto's te beheren. Dat programma gebruikt een SQLite-database om de gegevens over foto's op te slaan. Na verloop van tijd kunnen bestanden echter verdwenen zijn, maar nog wel in de database voorkomen. Het volgende Ruby-script verwijdert de loze verwijzingen uit de database.

#!/usr/bin/ruby -rubygems
require 'sqlite'
# cleanup photos from f-spot database that no longer point 
# to a photo on disk

FSPOTDB =  "#{ENV['HOME']}/.gnome2/f-spot/photos.db"
raise "#{FSPOTDB} not found!" if not test(?e,FSPOTDB)

db = SQLite::Database.new(FSPOTDB)
db.execute("select id,directory_path,name from photos").each{|row| 
  img_id, img_file = row[0], row[1]+ "/" + row[2]
  if not test(?e,img_file)
    print "deleting from db: " + img_file + "\n"
    db.execute("delete from photos where id=" + img_id)
    db.execute("delete from photo_tags where photo_id=" + img_id)
    # urgghh sqlite v2 doesn't have ref integrity or nested queries
  end
}
Simpel en effectief -- Ruby kan Perl prima vervangen voor dit soort kleine scriptjes. Gebruik het voor eigen risico, en niet als foto's ook opgeslagen kunnen worden op plaatsen die soms niet beschikbaar zijn. Maak zonodig een kopie van photos.db. Scriptjes die dingen wissen zijn nu eenmaal nogal gevaarlijk...

Mijn Ruby ziet er nog steeds uit als Perl :s, maar ik maak vorderingen.

Maar - slapen lukte nog steeds niet, en ik begon maar wat te lezen in Knuths The Art of Computer Programming. Een verademing om eens wat echts over programmeren te lezen, in plaats van de alledaagsheid van wat functieaanroepen, een lusje hier, een sprongetje daar. Bij Knuth gaat het om algoritmen, om bewijzen. En om tamelijk intense wiskunde. Het kostte dan ook de nodige tijd om me door de eerste bladzijden van het eerste deel te worstelen... en daarna kon ik eindelijk slapen. Ooit worstel ik me nog eens door alle delen, als Knuth er in dit leven nog in slaagt die te vervolmaken.


0 Reacties:

Een reactie plaatsen


Emacs, the UberEditor Powered by Blogger