2010/04/17

French 20071010

feuille
la suède
la suisse
les Bays-pas
certe = bien sûr
turc -> turque
grec -> grecque
Ils habitent
Pérou -> péruvien
méditerranéens
de méditerrané
la riz cuit <-> cru
les sports aquatiques
   nautiques
poissons crus
le denmark, les danois
phare
échiquier 棋盤
une mutation = un grand changement
ont eu à cœur = avoir envie = vouloir très fort
une priorité: la chose le plus important
dirigeants: les personnes qui conduit le pays

, viragule
km2 -> carré
sommet: 頂峰
francophones/francophiles (aime le ~)
62 ans -> l'âge de la retraite
1945 -> 1990 très belle période
au coude à coude: égale
en 1801: en mille huit cent un
  :en dix-huit cent un
un recensement = compter la population
a crû = croitre = augmenter
cru -> croire
des jets d'eau naturels
pollution forte
ciel est toujours gris
large = étroit
grand != petit
le main -d'œuvre est moins chère
les 4 saisons sont très marquée.

la population est serrée.
beaucoup d'espace.
courant
l'avortement: abortion
récemment

2010/04/11

腳踏車記錄

2010/04/11 家裡→大塪埕(0:47)→重陽大橋(0:58)→家裡(1:54)

2010/04/09

消失

PB203563
Central Park.NYC.US

電腦重灌,才剛寫好沒用幾天的script就都沒了。

2010/04/04

Flickr Random Image Picker

P6216480
Annecy.France

It's a small tool written to randomly show my photos from flickr. I quite enjoy viewing photos in this way. It helped me to discover photos that I didn't notice before. However, there are some limitations to it:
1. in current configuration, 10 photos will be shown every time I launch it. it takes too much time to do so. I have to wait for tens of seconds or even longer.
2. in GUI version, no thread is implemented, so the UI is blocked after the button is pressed.

To make it better, I did some minor changes:
1. create a thread for fetching photos from flickr, and use wx events to post event to htmlwindow. Don't know how to use lock or mutex under python yet, though...
import threading
from time import sleep

(FetchDoneEvent, EVT_FETCH_DONE) = wx.lib.newevent.NewEvent()

class FetchThread(threading.Thread):
def __init__(self,w):
threading.Thread.__init__(self)
# windows for posting events
self.w = w

def run (self):
fi = None
for x in range(10):
print x
if fi == None:
(content,fi) = fetch_photo()
else:
content = fetch_photo(fi)

evt = FetchDoneEvent(source=content)
while (self.w.loading):
sleep(0.5)
wx.PostEvent(self.w, evt)

class MyHtmlWindow(html.HtmlWindow):
def __init__(self, parent, id ):
html.HtmlWindow.__init__(self, parent, id, style=wx.NO_FULL_REPAINT_ON_RESIZE)
self.Bind(EVT_FETCH_DONE, self.OnFetchDone)
self.loading = 0

def OnLinkClicked(self, linkinfo):
import os
os.startfile(linkinfo.GetHref())

def OnFetchDone(self, e):
#self.LoadPage("myflickr.html")
self.loading = 1
if self.start_fetching != 1:
self.AppendToPage(e.source)
else:
self.SetPage(e.source)
self.start_fetching = 0
self.loading = 0

class SimpleFrame(wx.Frame):

def __init__(self, *args, **kwargs):
...

def OnButtonClicked(self,e):
FetchThread(w=self.html).start()
self.html.SetPage("

Fetching......

")
self.html.start_fetching = 1
2. add a function to only return a photo info at a time, instead of returning a html file with 10 photo infos.
def fetch_photo(fi=None):
print 'fetch_photo'
if fi == None:
fi = FlickrIndex(API_KEY, SECRET_KEY, MY_USER_ID)
return fi.print_random_photos(10),fi
else:
return fi.print_random_photos(10)

LIFE

不是很好看。以為 Jake Gyllenhaal 有演出,應該會有點看頭的。 故事是在講一群太空人在太空站上試著培養火星來的休眠單細胞生物,最後愈搞愈大,變得不可收拾的地步。 中間很多故做緊張的情節,但因為張力不夠,再加上配樂又不是很優(也有可能是因為在家看的關係,聲光效...