Fold All / Expand All

2007年2月28日 星期三

チロルチョコ 「ちょこっと勇気を」篇

さりげない言葉で言っちゃえよ
言い出せない気持ちが溶けちゃうよ
ちょっとしたこと
ちょこっと勇気を
バレンタインにチロルチョコ

2004年的廣告歌

Music: 菅野よう子
Lyrics: 一倉宏
Vocal: 坂本真綾

當時在情人節推出這個廣告,廣告裡面的女主角是多部未華子。
去YouTube上可以找到這個廣告。在GRAND FUNK INC.也有這首歌的音源。

DARKER THAN BLACK ―黒の契約者―

DARKER THAN BLACK ―黒の契約者― 公式サイト

只是為了STAFF中的這一行

音楽 菅野よう子

下川みくに 十問

題目製作於2月28日。
  1. 下川みくに的生日是?
    1. 3月19日
    2. 8月21日
    3. 9月19日
    4. 11月21日

  2. 下川みくに在チェキッ娘時的編號是?
    1. 1
    2. 2
    3. 3
    4. 4

  3. 下川みくに第一首動畫主題曲(tie up)是?
    1. 2000EXPRESS
    2. all the way
    3. Alone
    4. tomorrow

  4. 「KOHAKU」一曲中與下川みくに合唱的歌手,是下列哪一首歌的原唱?
    1. 残酷な天使のテーゼ
    2. 輪舞-revolution-
    3. 愛・おぼえていますか
    4. 夢光年

  5. 下列哪一首歌不是由下川みくに作詞?
    1. あれから
    2. 君のいない街
    3. キミと二人
    4. 初恋の君

  6. 下川みくに目前為止發行了12張單曲和3張原創專輯(Original Album),除了第12張單曲「南風」,哪一首單曲沒有收錄在3張原創專輯中?
    1. Alone
    2. If~もしも願いが叶うなら~
    3. Naked
    4. surrender

  7. 下列下川みくに的歌曲,哪一首不是TV Anime的主題曲?
    1. all the way
    2. KOHAKU
    3. POPCORN
    4. TRUE

  8. 下川みくに因為演唱Full Metal Panic系列的主題曲後知名度大增,下列哪一首不是FMP系列主題曲?
    1. 枯れない花
    2. 君に吹く風
    3. 悲しみに負けないで
    4. もう一度君に会いたい

  9. 下川みくに曾在Full Metal Panic? Fumoffu中客串聲優演出,該角色的名字是?
    1. 雨宮高美
    2. 雨宮朋絵
    3. 雨宮舞子
    4. 雨宮処凛

  10. 下川みくに最新單曲「Bird」的發售日期是?
    1. 3月7日
    2. 3月14日
    3. 3月21日
    4. 3月28日

2007年2月27日 星期二

由Google Analytics獲得的訪客資訊,為什麼日本那麼多的原因

標題真長…

簡言之,這是篇因為用Google查關鍵字得到的結論。原來,來自日本的訪客數量如此多,並不是因為少數幾篇日文文章,而是在文章中會出現的人名、作品名所導致。
在Google搜尋「franks543」,會出現許多日本的網站,這些網站是計針對blog去抓關鍵字,例如說關鍵字是「CooRie」,那這個網站會蒐集各個有出現CooRie字串的blog。再來就很容易了解啦,包括「坂本真綾」「下川みくに」「eufonius」「三枝夕夏」…等。其中,不少連結都是來自同一個網站「まとめ検索 matome.jp」,people.matome.jp, music.matome.jp, tv.matome.jp, ...好多,而且上面提到的關鍵字出現就算了,還會有一些超神奇,自己都忘了曾經輸入過的字@@。

好吧,總不是什麼連結都從日本來的。

話說來自中文世界的連結,blogger這邊,除去友情連結後,還沒什麼連結出現,目前看到的有連OUTRIDE心得,有一個比較神奇的是有個連vim convert-to-html,可是內文就只有放連結,什麼說明都沒有@@。

static html那邊倒是可以找到一些連結,但大多都是舊網址,也就是大學部那個被學校突然中止的帳號…,被連結的頁面…其實大部份現在的網站已經找不到了XD,也就是說是去年七月之前的內容,包括「如何瀏覽五四三裡的兩種日文」(這篇超舊的,歷史應該有四年以上)、「自訂IE的檢視原始檔軟體」(這個也很久了,裡面提到IE4和IE5…),網站連結某些頁面也有被連結,另外就是「歌詞-ACG」這個頁面,這個甚至有日文blog來連Angelic Layer的歌詞!

看到後來就會覺得,真的是``無心插柳柳橙汁'',啊,不對,是柳成蔭。

如果搜尋「Frank的五四三」,之前除了友情連結外,最常出現的是「橫書轉直書的服務網頁與軟體」這一頁,這也是一整個柳橙汁。當時是看到討論,順手寫一個js版本,沒想到就被整理上去了,而因為當時給的網址是用unet.cc轉址,所以不論網頁的標題是什麼,都會被頁框包起來,所以標題都是「Frank的五四三」,然而,現在從那個網頁也連不到了,因為unet.cc爆炸了@@。重新上傳一下,http://homepage.ntu.edu.tw/~r95922029/h2v.htm,如果有人還有興趣的話。

本blog絕對沒有花錢購買流量,雖然某網站測出來的結果是A+DD(what can I say,Google就是會index這些網頁)。
↑なんだか、わけ分からない話をしてた。

2007年2月25日 星期日

茶太@下村陽子 - murmur(マーマー)


大驚!茶太りん直接上封面!

「murmur(マーマー)」とは日本語で「つぶやき」。

是的,這個murmur就是那個murmur,所以這專輯名稱就某方面來說,是傷當有喜感地。

以上是無聊的閒話。

這張專輯會是茶太第一張major debut,此次的作編曲由下村陽子負責,網站上的介紹是曾擔任「聖剣伝説」「キングダムハーツ」的作曲,查了一下wikipedia,キングダムハーツ(Kingdom Hearts;王國之心)一和二的音樂都是由下村陽子負責,順帶一提,兩款的主題曲都是宇多田光演唱。而聖剣伝説(聖劍傳說)則是負責「聖剣伝説 LEGEND OF MANA」、「聖剣伝説 HEROES of MANA 」這兩款。

發售日期:2007年3月21日
KDSD-00130
收錄曲目:
  1. 春風
  2. 散歩日和
  3. 内緒箱の夢
  4. 透明な輪
  5. 神隠し
  6. ひとこと
  7. 黄昏小道
  8. うわさ
  9. 不器用な手
  10. 咎人の夜明け
  11. ハッピーエンド
  12. 君のかけら
目前網站上已放出第一首「春風」的試聽,接下來每一週會再增加一首試聽。

Xuite 相簿 相片網址擷取 using Opera User JavaScript (and a little bit Python)

if( location.hostname.indexOf('photo.xuite.net') != -1 ) {
function createNewDocument(array, text)
{
var str = "";

str += '<p>';
str += 'Referer:';
str += '<a href="'+location+'" target="_blank">'+location+'</a>';
str += '</p>\n';

str += "<ol>\n";

for (var x = 0; x < array.length; x++){
str += "<li>";
str += '<a href="'+array[x]+'">'+array[x]+'</a>';
str += "</li>\n";
}

str += "</ol>";

var sourceStr = str;
if (text == ''){
text = sourceStr;
}

str = '<textarea style="width: 800px; height: 300px;">'+text+'</textarea>'+sourceStr;

var w = window.open();
w.document.write(str);
}

window.opera.addEventListener('BeforeEvent.load',function (e) {
// check that it is the page loading, not just an image
// and also the global value in this page, see if we have permission
var obj = e.event.target;
if ( location.hostname.indexOf('s.photo.xuite.net') != -1){
// ignore advertisement in iframe
return
}

if ( obj instanceof HTMLBodyElement && obj.innerHTML ){
var html = obj.innerHTML;
var g_photo_url = new Array();

// MY_PHOTOS.insert(id, title, desc, date, src, link, hits,...)
//
// we need 'src' for the photo url
// so, MY_PHOTOS.items[index].src
//
// the prefix is url_home
//
// that would be
// 'http://' + url_home + src + '.jpg'
var debug = (listMember(MY_PHOTOS, '\n'));
//var debug = ''

for (var index = 0; index < MY_PHOTOS.items.length; index++){
var id = MY_PHOTOS.items[index].id;
var photoUrl = 'http://' + url_home + id + '.jpg';
g_photo_url[index] = photoUrl;
}

// create a new document
createNewDocument(g_photo_url, debug);
}
},false);
}

結果連Xuite也嘗試去寫了…沒辦法,有人相片放在那裡,一定得抓下來。
但是這Xuite,看來應該是不能外連的設計。雖然要拿該頁的相片網址出來很容易,因為是定義在script裡面,但是單獨去存取這個相片時,會connection reset。

好,所以要加Referer囉,像wretch的情況就要加Referer。

加Referer沒用!

好吧,只好開鯊魚出來看,果然是在Cookie上動手腳,必須瀏覽過該圖片頁面,才會有photouid,開album頁面只有FOTOSSID。

還是想批次抓下來,所以就開Vim出來寫Python了。
用的方法還蠻白爛的,其實應該直接用Python去抓網址和Cookie,一次整個album抓下來,但是寫到無腦了…就用無腦方法。
大致上是這樣,用Opera取得連結後,存到text檔,用鯊魚抓到的HTTP header也存到text檔。程式先將這兩個檔案讀進來,然後用urllib2這個module,把header全部塞進去,用httplib自己把header拼起來也是可以啦,不過urllib2這個方法貌似code量比較少。再來就request、存檔、收工。

有發現問題嗎?因為連結的來源是Opera,所以如果該album有很多頁,就等於要一頁一頁都去開,然後再把連結貼到text檔,再跑一次程式………就這樣重複,所以很無腦…。

想到再整個用Python寫掉好了,不過網路上有現成的Xuite抓圖程式耶,所以…。
以下是Python code備份。
import urllib2

class Model:
def __init__(self, links, cookies, dst):
# first, store links to array
f_links = file(links, 'rb')

links_array = []

for line in f_links:
line = line.strip()

if line == '':
continue

links_array.append(line)

# second, store cookies to array
f_cookies = file(cookies, 'rb')

cookies_array = []
for line in f_cookies:
line = line.strip()

if line == '':
continue

cookies_array.append(line)

# post processing to cookies (actually headers)
header_dict = {}
for header in cookies_array:
items = header.split(':', 1)
attr = items[0].strip().lower()
value = items[1].strip()
header_dict[attr] = value

# try urllib2
for link in links_array:
req = urllib2.Request(link)
for attr in header_dict:
req.add_header(attr, header_dict[attr])
r = urllib2.urlopen(req)

data = r.read()

filename = link[link.rfind('/') + 1: len(link)]
out = file(filename, 'wb')
out.write(data)
out.close()

print 'finish downloading file: %s' % (filename)


if __name__ == '__main__':
model = Model(links='links.txt', cookies='cookies.txt', dst='./')

Pixnet 網路相簿 相片網址擷取 using Opera User JavaScript

if( location.hostname.indexOf('www.pixnet.net') != -1 ) {
function createNewDocument(array, text)
{
var str = "";
var url_list = "";

str += '<p>';
str += 'Referer:';
str += '<a href="'+location+'" target="_blank">'+location+'</a>';
str += '</p>\n';

str += "<ol>\n";

for (var x = 0; x < array.length; x++){
str += "<li>";
str += '<a href="'+array[x]+'">'+array[x]+'</a>';
str += "</li>\n";

url_list += array[x] + "\n";
}

str += "</ol>";

var sourceStr = str;
if (text == ''){
text = url_list;
}

str = '<textarea style="width: 800px; height: 300px;">'+text+'</textarea>'+sourceStr;

var w = window.open();
w.document.write(str);
}

window.opera.addEventListener('BeforeEvent.load',function (e) {
// check that it is the page loading, not just an image
// and also the global value in this page, see if we have permission
if ( location.pathname.indexOf('album/') != -1 || true){
var obj = e.event.target;

// a little hacks...
if (obj instanceof HTMLDocument){
obj = obj.body;
}

if ( obj.innerHTML ){
var html = obj.innerHTML;

if (html.indexOf('displaythumbs') == -1){
// not in the album page
return;
}

var debug = '';

var g_photo_url = new Array();

var pattern = / src="([^"]*\/thumb_[^"]*)" /g;

var result;
var index = 0;
while ((result = pattern.exec(html)) != null){
var thumbsUrl = result[1];
var photoUrl = thumbsUrl.replace('/thumb_', '/');
g_photo_url[index++] = photoUrl;

}

// create a new document
createNewDocument(g_photo_url, debug);
}

}
},false);
}

其實啊…wretch和Pixnet這兩個用一般的程式去寫效果應該會比較好,可以做到批次整個album,甚至整個account都自動抓下來,因為檔名是直接送出來,而不是像163是放在script裡面。

無名小站 wretch 網路相簿 相片網址擷取 using Opera User JavaScript

使用方法,進入某頁album.php後,會跳出新的一頁,裡面會把這一頁有的照片的網址找出來,可使用FlashGet加上Referer即可批次下載。
if( location.hostname.indexOf('www.wretch.cc') != -1 ) {
function createNewDocument(array, text)
{
var str = "";

str += '<p>';
str += 'Referer:';
str += '<a href="'+location+'" target="_blank">'+location+'</a>';
str += '</p>\n';

str += "<ol>\n";

for (var x = 0; x < array.length; x++){
str += "<li>";
str += '<a href="'+array[x]+'">'+array[x]+'</a>';
str += "</li>\n";
}

str += "</ol>";

var sourceStr = str;

str = '<textarea style="width: 800px; height: 300px;">'+sourceStr+'</textarea>'+sourceStr;

var w = window.open();
w.document.write(str);
}

window.opera.addEventListener('BeforeEvent.load',function (e) {
// check that it is the page loading, not just an image
// and also the global value in this page, see if we have permission
if ( location.pathname.indexOf('album.php') != -1){
var obj = e.event.target;

if ( obj instanceof HTMLBodyElement && obj.innerHTML ){
var html = obj.innerHTML;
var g_photo_url = new Array();

var pattern = / src="([^"]*\/thumbs\/t[^"]*)" /g;

var result;
var index = 0;
while ((result = pattern.exec(html)) != null){
var thumbsUrl = result[1];
var photoUrl = thumbsUrl.replace('/thumbs/t', '/');
g_photo_url[index++] = photoUrl;

}

// create a new document
createNewDocument(g_photo_url, html);
}

}
},false);
}

2007年2月24日 星期六

半月封面



測試…

恋姫無双 戀姬無雙

並不是要來討論這款遊戲,我對若本規夫不熟XD

而是續上篇,來討論中文和日文漢字在字碼上不同。

標題這八個字,事實上只有「無」是一樣的,其他六個字是不同地,在字碼上的定義。

恋姫無双「0x604B 0x59EB 0x7121 0x53CC」
戀姬無雙「0x6200 0x59EC 0x7121 0x96D9」

這次要用肉眼看出字的不同,就比較簡單了。稍微難度的是「姬」「姫」,中文的姬,並不是寫一個臣,這和「熙」一樣,裡面是個口;而日文漢字的姫,就是一個臣了。用行列的話,拆法都一樣,2^ 1^ 3- 3-,要打出「姫」就是照著猜,然後補個i。

另外,双也是用補i才會出現,「5v 5v i」。而恋則不用,「6^ 3v 6v」選第三個,好像恋是戀的簡寫的樣子(簡寫不熟@@)

2007年2月23日 星期五

値值

沒事拿兩個一樣的字當標題作啥

事實上…這兩個是不同字

0x5024 0x503C

前面那個出現在日文漢字「偏差値」
後面這個是中文的「數值」

well...有些字型好像比較容易看得出來兩者的差異,有的就只有橫筆之間的高度不同XD。

順帶一提,用行列要打「值」的話,可以打8-4-7^1-或是8-4-7-2-,一個是中文書寫拆法,一個是因為螢幕上看到的明體是這樣。
「値」的話,則是8-4-7-2-i,是的,就是多補一個i,或者是說8^這個鍵即可。

FlashGet Import List cannot work with LF only file

就是只吃CRLF,用LF的話,會全部變成一行,於是就爛掉了。

(謎:人家本來就是Windows only,沒事餵LF作啥)

163相簿 相片網址擷取 using Opera User JavaScript

批次抓某站booklet的solution@@
if( location.hostname.indexOf('photo.163.com') != -1 ) {
function createNewDocument(array)
{
var albumUrl = 'http://photo.163.com/photos/'+gUserId+'/'+gAlbumId+'/';

var str = "";

str += '<meta http-equiv="Content-Type" content="text/html; charset=gb2312">';

str += '<p>';
str += 'Original Location:';
str += '<a href="'+albumUrl+'" target="_blank">'+gAlbumInfo["title"]+' - '+gAlbumInfo["descr"]+'</a>';
str += '</p>';

str += "<ol>";

for (var x = 0; x < array.length; x++){
str += "<li>";
str += '<a href="'+array[x][1]+'">'+array[x][0]+'</a>';
str += "</li>";
}

str += "</ol>";

var w = window.open();
w.document.write(str);
}

window.opera.addEventListener('BeforeEvent.load',function (e) {
// check that it is the page loading, not just an image
// and also the global value in this page, see if we have permission
if ( e.event.target instanceof Document && hasPermission ){
var g_photo_url = new Array();

for (var x = 0; x < gPhotosIds.length; x++){
var id = gPhotosIds[x];
var info = gPhotosInfo[id];

// [0]: imagine location,
// if the value is 752, then it locates at img752.photo.163.com
// [1]: (not sure) indicator
// if the value is 1, use the above imagine location,
// if the value is 2, use the [4] and [5] as imagine location
// [2]: (not confirmed) imagine resolution
// [3]: photo description
// the following does not always exist
// [4]: resized photo location
// [5]: original photo location

if (info[1] == 1){
// concatenate string to url
// http://img752.photo.163.com/nalangc/108332394/2528491996.jpg
g_photo_url[x] = [info[3], "http://img"+info[0]+".photo.163.com/"+gUserId+"/"+gAlbumId+"/"+id+".jpg"];


}
else if (info[1] == 2){
// just copy the location in array
g_photo_url[x] = [info[5], info[5]];
}
}

// create a new document
createNewDocument(g_photo_url);
}
},false);
}

2007年2月22日 星期四

坂本真綾 十問 修訂版 解答

題目製作於2月19日,於2月22日修訂。
  1. 坂本真綾的生日是?
    1. 2月18日 (岩男潤子)
    2. 2月19日 (笠原弘子)
    3. 3月30日 (川澄綾子、林原めぐみ)
    4. 3月31日

  2. 坂本真綾在1996年首次擔任TV Anime的女主角,同時也負責演唱該作品的OP,該OP歌名是?
    1. 奇跡の海 (1998)
    2. ヘミソフィア (2002)
    3. 約束はいらない
    4. プラチナ (1999)

  3. 坂本真綾參與過的音樂劇為下列哪一部?
    1. 悲慘世界 (O)
    2. 鐘樓怪人
    3. 歌劇魅影

  4. 下列坂本真綾的歌曲中,哪一首不是TV Anime的OP或ED?
    1. Gift (TVA CLAMP学園探偵団)
    2. gravity (TVA WOLF'S RAIN)
    3. tune the rainbow (MV ラーゼフォン多元変奏曲)
    4. マメシバ (TVA 地球少女アルジュナ)

  5. 下列坂本真綾的歌曲中,哪一首的歌詞是全英文?
    1. blind summer fish (今 この頬に)
    2. cloud 9 (声が聞こえる)
    3. DIVE (このまま海の)
    4. Kissing the christmas killer

  6. 收錄於Napple 怪獣図鑑的「Dreams in a pie」,其日語版本是下列哪一首?
    1. birds
    2. Light of love
    3. 恋人について (O)
    4. 空気と星

  7. 在歌曲「夜明けのオクターブ」 中,主人公的名字是?
    1. いおり
    2. かおり
    3. さおり
    4. しおり (わたしのなまえは しおりです)

  8. 在歌曲「うちゅうひこうしのうた」 中,"我"是太空人,而"你"是?
    1. 學生
    2. 農夫 (私は宇宙飛行士で あなたは農夫)
    3. 工人
    4. 商人

  9. 在短編電影「03」 中,坂本真綾所扮演的角色是?
    1. 麻雀
    2. 海鷗
    3. 烏鴉 (カラス)
    4. 老鷹

  10. 坂本真綾的新專輯「30minutes night flight」的發售日期是?
    1. 3月7日
    2. 3月14日
    3. 3月21日 (O)
    4. 3月28日

坂本真綾 十問 修訂版

題目製作於2月19日,於2月22日修訂。
  1. 坂本真綾的生日是?
    1. 2月18日
    2. 2月19日
    3. 3月30日
    4. 3月31日

  2. 坂本真綾在1996年首次擔任TV Anime的女主角,同時也負責演唱該作品的OP,該OP歌名是?
    1. 奇跡の海
    2. ヘミソフィア
    3. 約束はいらない
    4. プラチナ

  3. 坂本真綾參與過的音樂劇為下列哪一部?
    1. 悲慘世界
    2. 鐘樓怪人
    3. 歌劇魅影

  4. 下列坂本真綾的歌曲中,哪一首不是TV Anime的OP或ED?
    1. Gift
    2. gravity
    3. tune the rainbow
    4. マメシバ

  5. 下列坂本真綾的歌曲中,哪一首的歌詞是全英文?
    1. blind summer fish
    2. cloud 9
    3. DIVE
    4. Kissing the christmas killer

  6. 收錄於Napple 怪獣図鑑的「Dreams in a pie」,其日語版本是下列哪一首?
    1. birds
    2. Light of love
    3. 恋人について
    4. 空気と星

  7. 在歌曲「夜明けのオクターブ」 中,主人公的名字是?
    1. いおり
    2. かおり
    3. さおり
    4. しおり

  8. 在歌曲「うちゅうひこうしのうた」 中,"我"是太空人,而"你"是?
    1. 學生
    2. 農夫
    3. 工人
    4. 商人

  9. 在短編電影「03」 中,坂本真綾所扮演的角色是?
    1. 麻雀
    2. 海鷗
    3. 烏鴉
    4. 老鷹

  10. 坂本真綾的新專輯「30minutes night flight」的發售日期是?
    1. 3月7日
    2. 3月14日
    3. 3月21日
    4. 3月28日

2007年2月19日 星期一

坂本真綾 十問 先行版

  1. 坂本真綾的生日是?
    1. 2月18日
    2. 2月19日
    3. 3月30日
    4. 3月31日

  2. 坂本真綾在1996年首次擔任TVA的女主角,同時該作品的OP也是由坂本真綾擔任,該歌名是?
    1. 奇跡の海
    2. ヘミソフィア
    3. 約束はいらない
    4. 走る

  3. 坂本真綾參與過的音樂劇為下列哪一部?
    1. 悲慘世界
    2. 鐘樓怪人
    3. 歌劇魅影

  4. 在歌曲「夜明けのオクターブ」 中,主人公的名字是?
    1. いおり
    2. かおり
    3. さおり
    4. しおり

  5. 在歌曲「うちゅうひこうしのうた」 中,"我"是太空人,而"你"是?
    1. 學生
    2. 農夫
    3. 工人
    4. 商人

  6. 在短編電影「03」 中,坂本真綾所扮演的角色是?
    1. 麻雀
    2. 海鷗
    3. 烏鴉
    4. 老鷹

  7. 下列坂本真綾的歌曲中,哪一首不是TVA的OP或ED?
    1. Gift
    2. gravity
    3. tune the rainbow
    4. マメシバ

  8. 下列坂本真綾的歌曲中,哪一首的歌詞是全英文? 
    1. blind summer fish
    2. cloud 9
    3. DIVE
    4. Kissing the christmas killer

  9. 收錄於Napple 怪獣図鑑的「Dreams in a pie」,其日語版本是下列哪一首?
    1. birds
    2. Light of love
    3. 恋人について
    4. 空気と星

  10. 下列坂本真綾的歌曲中,哪一首作曲不是由菅野よう子負責?
    1. ボクらの歴史
    2. ポケットを空にして
    3. 夜明けの風ききながら
    4. 私は丘の上から花瓶を投げる

2007年2月15日 星期四

TIOBE Programming Community Index for February 2007

以前提過的TIOBE Programming Community Index for December 2006,來看看現在2007年2月的排行。

http://www.tiobe.com/tpci.htm
  1. Java
  2. C
  3. C++
  4. PHP
  5. (Visual) Basic
  6. Perl
  7. Python
  8. C#
  9. JavaScript
  10. Ruby
  11. SAS
  12. Delphi
  13. PL/SQL
  14. ABAP
  15. D
  16. Lisp/Scheme
  17. Ada
  18. COBOL
  19. Pascal
  20. Transact-SQL
基本上,前三名應該近期內都不會變動了,而4到10名則是傷當有趣,持續上升的Ruby,究竟可以到什麼地方呢?或該說rails可以把Ruby帶到什麼地方?

而被稱為``write only''的Perl,儘管被唱衰這麼多年,使用率仍然是非常高,事實上,身邊使用Perl的人數之多,僅次於C/C++吧。

那…那Python呢。我想,以Python的語言特性,要撼動三巨頭當然是不可能,超越Perl是有點可能,不過那得看Perl使用族群衰退的速度(謎:靠,你完全是看不起Perl嘛。F:因為我完全沒用Perl,所以亂講話,不要理我。)。而VB則是要看C#,VB使用群完全是MS陣營,如果C#的發展足以讓大量VB群跳槽,那VB使用者數量會持續下降。PHP嘛…就看RoR、TurboGears這些所謂的Web application framework,目前PHP極大的優勢是支援主機較多,支援Ruby、Python的仍是少數,再加上PHP的學習門檻相對低,在小型動態網頁(謎:靠,這麼舊的名詞還在用),PHP的地位不會被這堆MVC架構的東西取代。另外,PHP現在還有為數眾多的application,包括:phpBB、WordPress、MediaWiki,除非其他語言有發展出可取代的產品,而且要主機支援(這很重要),不然PHP仍然會風行一陣子。

讓Home, End key在FreeBSD上有作用

傷當annoying的一個問題,當使用PieTTY/PuTTY連到某台FreeBSD的機器上,Home和End按下去之後,游標不會跑到最前面或是最後面,尤其是當指令打了一大堆之後,發現前面有漏,習慣性按下Home,但是卻只會多出一個~,只好乖乖地把~刪掉後,慢慢按←回到最前面。

然後今天查了一下網路,有解決方案,不過目前試的結果是只有bash可以,tcsh沒用。

方法:
在home directory下新增.inputrc這個檔
vim ~/.inputrc
在檔案裡面加入
"\e[3~": delete-char
"\e[1~": beginning-of-line
"\e[4~": end-of-line

當然要重新進入bash才會生效。

註:後來看到,用Ctrl+A和Ctrl+E就可以有Home和End的效果,bash與tcsh皆可

2007年2月13日 星期二

影山ヒロノブ+遠藤正明 台灣演唱會

接近暴動了!!

雖然目前還沒有任何官方公告出現,不過此次消息來源可信度非常高,除非出現不可抗力因素。

目期為2007年5月12日(六),地點在台大新體育館,票價未定,長度約 90 分鐘。

然後是內部消息…
請大家極力宣傳,因為人數夠多的話,老闆會再請一位來!也是會造成暴動等級的!

2007年2月12日 星期一

Current Listening List

[2007 Apr 26th更新]
坂本真綾「30minutes night flight」
下川みくに「Bird」
RYTHEM「桜唄」
eufonius「Apocrypha」
RAG FAIR「夏風便り」
FictionJunction YUUKA「romanesque」

Music Release List, 2007 Jan

2007/01/10:
ANNA TSUCHIYA inspi' NANA (BLACK STONES) - 黒い涙 [CTCR-40248]
CHAGE and ASKA - Here & There [UMCK-9156]
CHAGE and ASKA - Man and Woman [UMCK-9155]

2007/01/17:
OLIVIA - The Cloudy Dreamer [CTCR-14511]
平井堅 - 哀歌(エレジー) [DFCL-1340]
GLAY - 100万回のKISS [TOCT-40070]
EXILE - Lovers Again [RZCD-45520]

2007/01/24:
CooRie - クロス*ハート [LHCM-1026]
「僕等がいた」ボーカルベスト(仮) [MJCD-20082]
「僕等がいた」オリジナル・サウンドトラック(仮) [MJCD-20083]
安室奈美恵 - Baby Don't Cry [AVCD-31176]
スネオヘアー - やさしいうた [ESCL-2927]
Mi - World's Love [COCA-3011]
TVアニメ「涼宮ハルヒの憂鬱」ドラマCD [LACA-5585]

2007/01/25:
彩音 - 嘆きノ森 [VGCD-1006]
いとうかなこ - escape [VGCD-1007]

2007/01/31:
半分の月がのぼる空 VOL.3 [WACD-203]

[推薦]
CHAGE&ASKA

2007年2月10日 星期六

2007 Sprite Slam Dunk competition評審名單

是的,你沒看錯,標題是評審名單,因為出賽名單中竟然沒有James White,大家就不想理出賽名單了,而評審名單…是目前為止最強大的評審團
  • Julius ``Dr. J'' Erving (首位罰球線起跳灌籃,事實上J博士沒有拿過NBA的灌籃大賽冠軍,ABA有幾個忘了)
  • Dominique Wilkins (Human Highlight Film,1985年及1990年灌籃大賽冠軍,Josh Smith在2005年時曾穿上Dominique的球衣以示致敬)
  • Michael Jordan (1987, 1988年灌籃大賽冠軍,某版本史上灌籃者排名第一,在眾多罰球線起跳灌籃者中,被視為姿勢最優美的)
  • Kobe Bryant (1997年灌籃大賽冠軍,仍然活躍中的現役球員)
  • Vince Carter (2000年灌籃大賽冠軍,是灌籃大賽停辦兩年後第一位冠軍,該屆大賽水準被視為近年最佳,某版本史上灌籃者排名則是將Carter排在第一)
有人還想看出賽名單嗎

(比到一半,評審看不下去,換上球衣說:閃開!讓專業的來)XD

2007年2月9日 星期五

Virtual Python

很多時候用Python需要不同的package,但是沒有root權限的話,就沒辦法安裝。

不過強者總是會想出解決的辦法,EasyInstall這個module弄出了Virtual Python,從Creating a "Virtual" Python下載virtual-python.py,在Unix機器上執行python virtual-python.py就會在home directoy下產生bin, include, lib,需要注意一點,要機器已經安裝了Python,Virtual Python才有作用,除了bin/python是複製一份,include和lib都是symbolic links。

安裝好Virtual Python之後,要用這個新的路徑下的python來執行才會跑後來安裝的package,所以呢,可以參考David Stanek’s Digressions這邊的作法。Virtual Python是安裝在vpython這個directory下,也就是之前安裝時是打python virtual-python.py --prefix=~/vpython。然後把Bash設定加入下面的東西。# Virtual Python
function virpy_on() { alias python=~/vpython/bin/python; }
function virpy_off() { unalias python; }
virpy_on # turn on by default

phpBB2 long subject

phpBB2如果文章標題過長的時候,後面就會被吃掉,如果剛好是中文字的一半被吃掉,就會看起來像亂碼。

而事實上,用中文(或說雙位元字集)要超過在SQL裡的限制還蠻容易的,因為預設是VARCHAR(60),而一個中文字要當做兩個char(話說…utf8的話,就變成3個bytes??)。

總之,大家的共識通常是把SQL裡的字串長度加大,詳情可以參考竹貓星球,以下僅簡單寫一下。
  • 修改phpbb_topics裡的topic_title,把型態改成CHAR(120)
  • 修改phpbb_posts_text裡的post_subject,把型態改成VARCHAR(120)
  • 在emplates/subSilver/posting_body.tpl裡,text input有設maxlength,對雙位元字集使用者來說,就保留原來的60(因為上面設成120);如果不想動上面提到的SQL,也可以把這裡的maxlength設成30,那使用者輸入時就無法超過30個中文字。

2007年2月7日 星期三

無法使用phpinfo()時

弄一個php檔,把資訊印出來。下面的方法只有部分資訊,還是沒有phpinfo()詳細,而且如果server設定不只擋phpinfo()的話,下面有些function可能也沒有用。
<h4>loaded Apache modules.</h4>
<pre><?php print_r(apache_get_modules()); ?></pre>

<h4>all HTTP requests (apache_request_headers())</h4>
<pre><?php print_r(apache_request_headers()); ?></pre>


<h4>get_current_user()</h4>
<pre><?php print_r(get_current_user()); ?></pre>

<h4>all modules compiled and loaded in PHP</h4>
<pre>
<?php
$modules = get_loaded_extensions();
foreach ($modules as $module){
print($module);
print "\n";
print_r(get_extension_funcs($module));
print "\n";
}
?>
</pre>

<h4>$_SERVER</h4>
<pre><?php print_r($_SERVER); ?></pre>

<h4>$_ENV</h4>
<pre><?php print_r($_ENV); ?></pre>

<h4>$_REQUEST</h4>
<pre><?php print_r($_REQUEST); ?></pre>

<h4>$_COOKIE</h4>
<pre><?php print_r($_COOKIE); ?></pre>

TurboGears 嘗試中.第一回

霍霍霍
還是Python看起來比較順眼(?)

不過除了20 Minute Wiki tutorial之外,還沒研究TurboGears本身的功能,倒是安裝、設定弄了不少。

這樣寫,好像安裝很麻煩?其實真是簡單到一種神奇的地步,時代真的變了…
python tgsetup.py and everything done

再來把server開起來,開始跑tutorial。
pysqlite沒裝
docutils沒裝
然後被強大的Toolbox嚇到

再來就不是TurboGears本身,而是來玩Apache了

畢竟還是要放在public server上,Apache還是不能避免。(自己有空可以來玩玩lighttpd)

然後就跑去看噁心的mod_rewrite了。
目前嘗試成功的是用mod_rewrite,不過其實好像不用的樣子,用mod_proxy就可以解決?(但mod_rewrite是必須要有mod_proxy)

期望:not admin在Apache上可以正常運作;然後就是開始認真學習TurboGears的用法

2007年2月5日 星期一

隨身碟病毒

沒想到竟然中了…該說什麼,真跟得上流行…

目前貌似靠Combofix把它解掉了
主要是得先把windows\system\scvhost.exe砍掉,注意,這個有問題的是在「system」下,正牌的scvhost.exe是在「system32」下,well...現在是說WinXP,其他版本不清楚。

然後是[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\
下,找那個怪怪機碼裡面有Autorun, explorer, open的,裡面會有萬惡的RECYCLER\INFO.exe字串出現

2007年2月4日 星期日

試.貳.Four Days on Rails

OK
if you could stay focus, and you have the knowledge about those syntaxes using in examples. this tutorial is quite well.

好啦,就是兩小時到了,還沒看完,只看到第三天的中間,其實再半個小時左右(如果code都用copy&paste,而不是手打的話),應該是可以看完,pdf有45頁,但是扣掉introduction和appendix,只有33頁。

對RoR心動了?
再說吧…

試.Four Days on Rails

剛把FastCGI on Apache設好,要來嘗試這本電子書。

據說標題雖然是四天,但實際時數只需要2小時,一切都是據說…

話說待會看的時候不知道會不會爆掉XD,因為Ruby那次也才看了一小時左右,看到class就停了,然後現在要直接衝RoR,理論上應該是爆掉吧。

若不是RoR,或許那天摸一下Ruby後就再也不會碰吧,因為Ruby自詡為Perl的繼承者,理所當然也用了Perl的哲學「There is more than one way to do it」,但是個人比較偏好Python的哲學「There should be one—and preferably only one—obvious way to do it」,這兩者是完全衝突@@

好吧,兩小時計時開始,不知道結果是怎樣…

for utamap and kashinavi (kashinavi part is not flexible, due to the variable ask)

if( location.hostname.indexOf('www.utamap.com') != -1 ) {
window.opera.addEventListener('BeforeEvent.load',function (e) {

var obj = e.event.target;
if ( location.pathname.indexOf('showkasi.php') == -1 ){
// not the page we need
}
else if ( obj.innerHTML ){
var html = obj.innerHTML;

// pattern: phpflash/showkasi.swf?ucode=F00406
var re = html.search(/showkasi.swf\?ucode=([0-9A-Za-z]+)/);

var ucode = RegExp.$1;

var fullUrl = "http://www.utamap.com/phpflash/flashfalsephp.php"
fullUrl += "?unum="+ucode;

var w = load(fullUrl, utamapHandler, 'GET', null);
}
},false);
}

if( location.hostname.indexOf('www.kashinavi.com') != -1 ) {
window.opera.addEventListener('BeforeEvent.load',function (e) {

var obj = e.event.target;
if ( location.pathname.indexOf('song_view.html') == -1 ){
// not the page we need
}
else if ( obj.innerHTML ){
var html = obj.innerHTML;

// pattern: phpflash/showkasi.swf?ucode=F00406
var pattern = /song_view.swf\?file_no=([0-9A-Za-z]+)&ask=([a-z]+)/;
var re = html.search(pattern);

var file_no = RegExp.$1;
//var ask = RegExp.$2;
var ask = "ghygtfhgffddhjh";

var fullUrl = "http://www.kashinavi.com/cgi-bin/kashi.cgi"
var parameters = "ask="+ask+"&file%5Fname="+file_no;

alert(fullUrl + "\n\n" + parameters);

if ( (ask != '') && (file_no != '') ){
var w = load(fullUrl, kashinaviHandler, 'POST', parameters);
}
}
},false);
}

function listMember(obj, tail)
{
var str = "";

for (var item in obj){
str += item + ":" + obj[item] + tail;
}

return str;
}

function load(url, handler, method, parameters)
{
var req = loadXMLDoc(url, handler, method, parameters);
}

function loadXMLDoc(url, handler, method, parameters) {
var req = false;

// branch for native XMLHttpRequest object
if(window.XMLHttpRequest) {
try {
req = new XMLHttpRequest();
//netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch(e) {
req = false;
}
// branch for IE/Windows ActiveX version
} else if(window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
req = false;
}
}
}

if(req) {
//req.onreadystatechange = processReqChange;
req.open(method, url, true);

if (method == 'POST'){
req.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded');
}
alert('sent something');
req.send( parameters ); // send parameters for POST

req.onload = handler;
}

return req;
}


function kashinaviHandler()
{
if (this.readyState != 4){
return;
}

var str = this.responseText;
// do some post processing
str = str.replace(/test1=[0-9]+&test2=[0-9]+/, "");
str = str.replace(/\n/g, "<br />");

var w = window.open();

w.document.write(str);
}

function utamapHandler()
{
if (this.readyState != 4){
return;
}

var str = this.responseText;
// do some post processing
str = str.replace(/test1=[0-9]+&test2=/, "");
str = str.replace(/\n/g, "<br />");

var w = window.open();

w.document.write(str);
}

disable default script behavior using Opera User JavaScript

testing browser: Opera 9.10
testing site: http://www.jtw.zaq.ne.jp/animesong/
description: This is a great website collecting many anison lyrics, though it uses JavaScript to prevent user from directly copy & paste. In fact, Opera can directly copy its lyric by switching the ``Enable JavaScript'' using the hotkey F12. But engineer is just so lazy. So we try the great feature ``User JavaScript'' in Opera. Save the following code in a .js file, and put it in a standalone directory. We will put all the UserScript files in this directory. You can add this file globally by going Opera -> Tools -> Preferences -> Advanced -> Content -> JavaScript options. Or you can just enter the site, and right-click, choosing ``Edit site preferences'', in Scripting tab, choose the directory for ``User JavaScript files''.
if( location.hostname.indexOf('www.jtw.zaq.ne.jp') != -1 ) {
window.opera.addEventListener('BeforeEvent.load',function (e) {
//check that it is the page loading, not just an image
if( e.event.target instanceof Document ) {
e.preventDefault();
}
},false);
}
maybe a little bit explanation.
The first line is to check if the page address matches our desired address. We do not want to disable scripts of all the pages we view. Using indexOf or some Regular Expression can do the first line.
Then we detect the event. Since the anison site uses window.onload to trigger the script, so we detect the ``load'' event. The following code is copying from example of Opera official site. Just using the preventDefault() function. No matter what function the site master added, they won't have any effect.

Turn off autoplay

  1. start -> Run... -> gpedit.msc, there will be a window ``Group Policy''
  2. Computer Configuration -> Administrative Templates -> System -> Turn off Autoplay
  3. click Properties, enable Turn off Autoplay on: All drives. OK

2007年2月1日 星期四

はれちゃった歌種日和 第四回

今回はゲストがいらっしゃった
みとせのりこさんです

って、みんなボケしてる・・・

名古屋は東京と大阪の中間である…って、これは常識じゃん
「無知ですいません」

「去年、一緒に飲んだ」
「そこからか」

それで早速、クイズスタート
「好きなお酒の銘柄があります?」
「まぁ、アルコールなら何でもいいから」
「火がつけばいいやみたいな」
XDDD何でお酒ばかり

今週のオススメ曲は「天の鈴」/みとせのりこ

じゃ、次はボケ放題XD

茶太りんはアルバム製作中です!

はれちゃった歌種日和

CLOVER ALBUM

夏目漱石よりも
野口英世 新渡戸稲造よりも
「カレーの歌」より

其實整張裡面,只有這一首才這麼歡樂

據說這張專輯有看過Honey & Clover的,聽起來會更有感覺?

一開始當然是因為茶太才聽了,意外地發現,男聲的額賀修一有種獨特的風格
「君が こんなにも 好きだから」
↑如果對這類歌詞無法抵抗的話,非常建議這張專輯@@

然後茶太りん的粉絲們,一定要去官網抓這個
「カレーの唄、スキャット猛練習」
傷當有趣

CLOVER ALBUM
http://www.clock-music.com/cloveralbum/