Category Archives: Programming

Programming

TWNIC 的 BoF

一些題外話 XD

到會場的時候剛好看到 ,就一起上 14F 去會場。然後在會場看到 與小陰 (sfchiou),於是就跑過去跟他聊天,然後聊到一半我聽到後面好像在講 (似乎是跟 的大頭講 plogworld.org 拿不回來的事情),回頭一看發現是 ,不知道要不要打招呼 XD

前面有看到 以及 ,然後吃東西的時候遇到

沒來真是太可惜了 XD

中間休息的時候被 認出來,聊了一下 的 SQL 與 架構問題,我是認為 的定位不一樣,所以以現在的 SQL 用法,已經無藥可救了 XD (對不起,我是嘴炮,只負責出張嘴 :p)

剛剛看到 上有一些資訊,大家可以連過去看看: (Comments 的部分)、

以及 的 Gallery 有一些相片可以看:

Python 與 Flickr

看到的:,其實主要是拿來看 的 urllib2 要怎麼用 :p

是蠻好用的,不過 在 Windows 發展的瓶頸還是很大,反倒是 已經很穩定,而且已經有不少有名的程式在上面「發展過」(,現在官版的 client 用的人愈來愈少了 :p)

Anyay,這隻 script 在這裡:

用 Regular Expression 表示 valid email address

用 Regular Expression 表示合法 e-mail 位置似乎是每隔一陣子就會被拿出來大家笑的東西?

提到的

(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:”.\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\[“()<>@,;:”.\[\]]))|”(?:[^”\r\]|\.|(?:(?:\r\n)?[
\t]))*”(?:(?: \r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[
\t])*(?:[^()<>@,;:”.\[\] \000-\031]+(?:(?:( ?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|”(?:[^”\r\]|\.|(?:(?:\r\n)?[
\t]))*”(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:”.\[\]
\000-\0 31]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\]\r\]|\.)*\
](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:”.\[\]
\000-\031]+ (?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\]\r\]|\.)*\](?:
(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:”.\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z |(?=[\[“()<>@,;:”.\[\]]))|”(?:[^”\r\]|\.|(?:(?:\r\n)?[
\t]))*”(?:(?:\r\n) ?[ \t])*)*\<(?:(?:\r\n)?[
\t])*(?:@(?:[^()<>@,;:”.\[\] \000-\031]+(?:(?:(?:\ r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:”.\[\]
\000-\031]+(?:(?:(?:\r\n) ?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[
\t] )*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:”.\[\]
\000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[
\t])* )(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:”.\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[
\t])*))*) *:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:”.\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\[“()<>@,;:”.\[\]]))|”(?:[^”\r\]|\.|(?:(?:\r\n)?[
\t]))*”(?:(?:\r \n)?[ \t])*)(?:\.(?:(?:\r\n)?[
\t])*(?:[^()<>@,;:”.\[\] \000-\031]+(?:(?:(?: \r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|”(?:[^”\r\]|\.|(?:(?:\r\n)?[ \t
]))*”(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:”.\[\]
\000-\031 ]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\]\r\]|\.)*\](
?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:”.\[\]
\000-\031]+(? :(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?
:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:”.\[\]
\000-\031]+(?:(? :(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|”(?:[^”\r\]|\.|(?:(?:\r\n)? [
\t]))*”(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[
\t])*(?:(?:(?:[^()<>@,;:”.\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|”(?:[^”\r\]| \.|(?:(?:\r\n)?[
\t]))*”(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>
@,;:”.\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|” (?:[^”\r\]|\.|(?:(?:\r\n)?[
\t]))*”(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t] )*(?:[^()<>@,;:”.\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[“()<>@,;:\
“.\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[
\t])*(? :[^()<>@,;:”.\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[
\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[
\t])*))*|(?:[^()<>@,;:”.\[\] \000- \031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|”(?:[^”\r\]|\.|( ?:(?:\r\n)?[
\t]))*”(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;
:”.\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([
^\[\]\r\]|\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[
\t])*(?:[^()<>@,;:” .\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\
]\r\]|\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[
\t])*(?:[^()<>@,;:”.\ [\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\]\
r\]|\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[
\t])*(?:[^()<>@,;:”.\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\]\r\]
|\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[
\t])*)?(?:[^()<>@,;:”.\[\] \0 00-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|”(?:[^”\r\]|\ .|(?:(?:\r\n)?[
\t]))*”(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,
;:”.\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|”(? :[^”\r\]|\.|(?:(?:\r\n)?[
\t]))*”(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])* (?:[^()<>@,;:”.\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[“()<>@,;:”.
\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[
\t])*(?:[ ^()<>@,;:”.\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\]
]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[
\t])*)(?:,\s*( ?:(?:[^()<>@,;:”.\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:\ “.\[\]]))|”(?:[^”\r\]|\.|(?:(?:\r\n)?[
\t]))*”(?:(?:\r\n)?[ \t])*)(?:\.(?:( ?:\r\n)?[
\t])*(?:[^()<>@,;:”.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
\[“()<>@,;:”.\[\]]))|”(?:[^”\r\]|\.|(?:(?:\r\n)?[
\t]))*”(?:(?:\r\n)?[ \t ])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:”.\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t
])+|\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[
\t])*)(? :\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:”.\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|
\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[
\t])*))*|(?: [^()<>@,;:”.\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”.\[\ ]]))|”(?:[^”\r\]|\.|(?:(?:\r\n)?[
\t]))*”(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n) ?[
\t])*(?:@(?:[^()<>@,;:”.\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[”
()<>@,;:”.\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n) ?[ \t])*(?:[^()<>@,;:”.\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[“()<>
@,;:”.\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[
\t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:”.\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[“()<>@,
;:”.\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n)?[ \t] )*(?:[^()<>@,;:”.\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[“()<>@,;:\
“.\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[
\t])*)? (?:[^()<>@,;:”.\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\[“()<>@,;:”. \[\]]))|”(?:[^”\r\]|\.|(?:(?:\r\n)?[
\t]))*”(?:(?:\r\n)?[ \t])*)(?:\.(?:(?: \r\n)?[
\t])*(?:[^()<>@,;:”.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
“()<>@,;:”.\[\]]))|”(?:[^”\r\]|\.|(?:(?:\r\n)?[
\t]))*”(?:(?:\r\n)?[ \t]) *))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:”.\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])
+|\Z|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[
\t])*)(?:\ .(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:”.\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\[“()<>@,;:”.\[\]]))|\[([^\[\]\r\]|\.)*\](?:(?:\r\n)?[
\t])*))*\>(?:( ?:\r\n)?[ \t])*))*)?;\s*)