Fold All / Expand All

2007年3月31日 星期六

TeX Live 2007, I can't find file `ptmb8t'.

This error message occurred when I was compiling LaTeX file using ACM SIG Proceedings Templates. I just installed TeX Live 2007 on Windows XP x64, and the collections I chose are the following:

collection-basic
collection-basicbin
collection-documentation-base
collection-documentation-chinese
collection-langcjk
collection-latex
collection-perl
collection-ttfutils
collection-wintools

Fine, the problem obviously comes from that I missed something in the installation. Because I can compile the LaTeX file on another PC (Win32) that also installed TeX Live 2007. So, the most trivial way is to pick all those possible collections. But I just don't wanna do that.

Make a guess, is it ``collection-fontsrecommended''?

Quite lucky, bull's eye!

Everything is just fine and I finished the PDF generation.

Windows Update failed, Error number: 0x80072EE2

http://support.microsoft.com/kb/836941
Try solutions in the above site.

My situation is adding the Windows Update Web site to the Trusted Sites List.
Don't forget to uncheck ``Require server verification (https:) for all sites in this zone''.

==
沒辦法Windows Update,出現的錯誤編號是0x80072EE2。

解決方法請看微軟網站
http://support.microsoft.com/kb/836941

我把http://update.microsoft.com/加到Trusted Sites List後就可以Windows Update。
記得把「Require server verification (https:) for all sites in this zone」這個勾勾取消。

64-bit IE不能執行Windows Update,要用32-bit version...

xsltproc: Unexpected XSLT element 'param'.

やられた・・・

Nothing happened on my WinXP using libxslt 10116. It jsut generates those HTML pages I want. But in the FreeBSD box using libxslt 10120. It cries for Unexpected XSLT element 'param'. It took me about two hours(!?) to figure out the reason. I was considering this is a bug in xsltproc since I found some bug report about xsltproc regarding param. But finally I realized that I only have to move my <xsl:param name="title"> right after the <xsl:template> line. And everything is just fine and I get the HTML pages I want.

Is it really two hours. Well...it doesn't matter any more.

==
被標題的問題耗掉兩個小時…

原來好好可以跑的style.xsl,卻在今日一直送我這個錯誤訊息,拿到Windows XP上,用版號為libxslt 10116去跑,一切正常,產生出我要的HTML檔案;用FreeBSD上版號為 libxslt 10120的跑,就是一直錯誤。原本以為這是xsltproc的bug,因為在Google上看到一些bug report和param有關。結果最後才發現,只要把xsl:param移到xsl:template的下面,也就是說xsl:param必須是xsl:template包起來的東西中,最先出現的,原本是放在用到該變數之前。不過Win32的舊版就是可以跑…</xsl:template></xsl:param>

2007年3月30日 星期五

TCP NAT Traversal

以前提過的 Peer-to-Peer Communication Across Network Address Translators,果然是看了沒壞處,現在就要用到了,不過前方之路比想像中的艱鉅。
自以為還算圓滿的解法,連兩個在同一個NAT的都想好了,結果測了一個晚上,是搞笑。
client端還是得下手,而且會多出一些問題。
說的也是,整個community那麼大,不可能沒人想過要解這個問題。
不過還好,只用了兩個小時左右就了解原因,不像前幾天試raw socket,被WinXP SP2表到耗那麼久。

另一篇 Characterization and Measurement of TCP Traversal Through NATs and Firewalls ,還沒看,貌似不錯,Cornell的師徒,目前該博士生有兩個NAT相關Project,到2007年還有更新,而老師和NAT相關的研究也很多,應該…看完會有不少收獲吧。IMC 2005的paper。

理論上,hole punching就是那個概念,差別在實作難易度,還有遇到的NAT behavior。

實作部分,tracker用PHP硬搞應該是不會太久,client就累了,Cpp還加Boost...

2007年3月28日 星期三

KOTOKO ASIA TOUR 2007 IN TAIWAN

官網都公佈了,就沒什麼好懷疑的。

台湾ライブ実行委員会公式サイト

詳細的時間、地點,在3月30日會再公佈。

這次的規模會弄到多大呢?

using raw socket in Python and get invalid argument

when you applied something like the following Python codeimport socket

proto = socket.getprotobyname('tcp')
sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, proto)
packet = 'nothing'
sock.sendto(packet, ('www.ntu.edu.tw', 1))
Probably you will get something likesocket.error: (10022, 'Invalid argument')
The reason is you are using Windows XP SP2.

We don't know the reason why Microsoft made this decision. TCP packets no longer can be sent through raw sockets API. If you are saying security issue, that's ridiculous. Actually, those network scanner softwares have solved this problem by using raw Ethernet frames. And the real attackers just use Linux and *BSD that have no such limitations. It just puts more limitations on legitimate users.

Well...currently I cannot find a solution to this problem. On Windows, you can move down to Etherent frames. Or, just change your platform to Linux or *BSD.

If I can solve the sound card driver problem, I would change my work platform to FreeBSD...

2007年3月27日 星期二

計算機通信網路 考試試題

…總算看到一份比較會寫的,只是沒資格考罷了。
一、
使用經由 802.11b 無線區域網路 (Wireless LAN) 傳送封包時,資料傳送速率可設定為 11Mbps ,請說明無線區域網路之避免衝撞與重傳之機制如何使實際流量可遠低於 11Mbps ?(20分)
為什麼要讓transmission rate遠低於11Mbps啊…
題目提到的是collision和retransmission,所以modulation就不用考慮了,反正本來就不懂。
CSMA/CA,packet送出去之後,必須要有ACK回來。沒收到ACK就視為撞掉了,進入exponential random bakcoff,網路上必須是idle才可以扣counter,所以這段時間是沒有任何流量,所以會低於11Mbps?是這樣講嗎
二、
以 TCP 協定傳送大量資料時,其端對端傳送流量 (end-to-end throughput) 常受限於網路瓶頸。請提出於用戶端一般電腦即可找出該網路瓶頸之方法或指令。 (15分)
traceroute?在Windows下請打tracert。
不過前提是沿途的ICMP封包要能回來啊。
三、
請說明為何使用 SSL (secure socket layer) 技術可以保護用戶於網頁填寫個人資料且經由網際網路傳輸時,其內容較不易被攔截竊取。 (10分)
並不會有什麼較不易被攔截竊取,題目這樣寫不好。
封包還是會被截取,如果本來就可以截取到的話(physical network connection, or installing packet sniffing tool in a compromised machine inside the LAN)←隨手寫的。
重點是截取下來的封包,必須要有key才能解開,不然只是一堆無用的東西。
四、
請說明使用路由器 (router) 與交換器 (LAN Switch) 於連接兩區域網路時所提供之功能差別。 (20分)
這應該沒有考慮layer 3 switch吧。
所以按照傳統的說法,router是看Network layer (layer 3),switch是看MAC layer (layer 2);router會看 packet的IP來決定要傳給誰,switch則是看封包內寫的MAC address;router需要人工設定routing table,switch會自動建table。
五、
若我國某大型 ISP 主要 DNS 伺服器當機或遭受 DoS (Denial of Service) 攻擊,請說明分析對一般使用者之影響。 (20分)
就和DNS沒設是一樣的,Linux裝好沒設定/etc/resolv.conf,就只能用IP方式建立連線,用domain name就掰啦。
六、
請解釋以下協定之主要功能:
(一)RARP (Reverse Address Resolution Protocol) (5分)
(二)ICMP (Internet Control Message Protocol) (5分)
(三)PPP (Point-to-Point Protocol) (5分)
這時候就要拿出TCP/IP Illustrated Volumne 1…啊…在學校。
RARP:由MAC Address來查IP
ICMP:網路狀況傳遞消息用?最常用到是ping和tracert時
PPP:不會XD。(當初上課時跳過了,也沒去看,其實目前ADSL還是需要PPP啊)


結論:
還是寫很久…

2007年3月26日 星期一

小泉恒平 新曲情報

このタイトルは実に違うんだ。
違うところはその「新曲」。
確かに、2005年のライブから見ると。この曲は新曲と思えるんじゃないんですか。
(謎の声:一体、何の話か)
現在、小泉恒平さんの個人サイトのBBSにある文章「新曲【再掲】」。小泉さんのメッセージ及び新曲のダウンロードがあります。投稿日は十一月六日なんですが、このBBSは不手際で一時間の書き込みは消えてしまいました。最初の公開日はわかりません。でも、ダウンロードのサイトに最終変更日は2006年十月二十八日。多分その時期ぐらいかな。

って、早速曲をダウンロード。ファイルネームは「hatachi.mp3」という事、「二十歳」と考えられる?冒頭は懐かしいピアノ音。そして・・・自分の耳で聞け!

いい曲だと思うんです。

耳コピーは今度ね。

==
``Koizumi Kohei releases New Song!''
Well...actually this title is not completely correct.
The so called ``new'' song is made public on the BBS of Koizumi Kohei Personal Web Site.
From the aspect that last public work is Live DVD in the end of 2005. This song can be treated as ``new song''. The precise time that Mr. Koizumi made this song public is not known. The post on the BBS is posted on 2006 Nov 6th, but the BBS has been down for a while and the data is lost. The last modified time of the mp3 file on the download site is 2006 Oct 28th. I think it would not be too far from that moment.

And, this song is quite well. We can get elements of Koizumi, the piano and the pure voice.
The name of mp3 file is ``hatachi.mp3''. ``hatachi'' in Japanese means twenty years old (a special noun to represent this age).

The lyric...well...maybe a listening version later.

==
喔喔喔 小泉恒平的新歌!
其實這歌也不新了
不過以上次的公開作品要回到2005年的Live DVD來看,這首還可以算是新歌啦。
目前在小泉恒平個人網站的BBS上,有一篇「新曲【再掲】」的文章,提供了mp3下載試聽。文章發表日期是2006年11月6日,不過這個留言板有故障一陣子(看上一篇是管理員的道歉),所以該期間的文章都不見了,按照小泉恒平的文章,在公開這首曲子後,至少有三位聽過(有發表感想)。下載網站的最後修改日期是2006年10月28日,第一次公開日期應該就是在那幾天吧。

還沒聽過的,快去下載來聽吧。mp3檔案名是「hatachi.mp3」,所以曲名是「二十歲」?
曲子的開頭就是鋼琴的聲音,接著就是大家所熟悉小泉恒平的聲音。整體來說,是不錯的曲子,維持以往的曲風。

然後啊,在2007年1月1日時,小泉恒平另一篇留言,先是感謝大家對他的支持,然後呢,在2007年六月之後,有可能會有新的活動,到時也請大家多多支持。該網站會在六月之後改成blog形式,在此之前,都不太會有更新。

嗯…又是一個六月…

minimize to tray using wxPython

利用wx的TaskBarIcon來達成minimize to tray。
基本上,這份code只是記錄用,沒有經過完整的測試,所以可能會有bug,或者是不合乎正統的寫法,只是剛好在某情況下可以跑。
import sys
import wx

class SelfTaskBarIcon(wx.TaskBarIcon):
def __init__(self, parent):
wx.TaskBarIcon.__init__(self)
self.parentApp = parent
self.CreateMenu()

def CreateMenu(self):
self.Bind(wx.EVT_TASKBAR_RIGHT_UP, self.ShowMenu)

self.menu = wx.Menu()
self.menu.Append(101, '&Resume')
self.menu.AppendSeparator()
self.menu.Append(wx.ID_EXIT, '&Close')

def ShowMenu(self, event):
self.PopupMenu(self.menu)

class View(wx.Frame):
def __init__(self):
title = 'This is only a test'
pos = (-1, -1)
size = (500, 500)
wx.Frame.__init__(self, parent=None, id=-1,
title=title, pos=pos, size=size)

# then initial a panel
panel = wx.Panel(parent=self, id=-1)
self.panel = panel

# a multi-line text
textValue = 'some testing string'
textStyle = wx.TE_MULTILINE | wx.TE_RICH2 | wx.HSCROLL
textSize = panel.GetClientSize()
textPos = (0, 0)
textFont = wx.Font(pointSize=10, family=wx.FONTFAMILY_DEFAULT,
style=wx.FONTSTYLE_NORMAL, weight=wx.FONTWEIGHT_NORMAL,
underline=False, faceName='Consolas')
self.text = wx.TextCtrl(panel, id=-1,
value=textValue, pos=textPos, size=textSize, style=textStyle)
self.text.SetFont(textFont)

# resize event
self.Bind(wx.EVT_SIZE, self.OnSize)
# minimize event
self.Bind(wx.EVT_ICONIZE, self.OnMinimize)

# toolbar test
self.tb = self.CreateToolBar()

self.CreateStatusBar()

# Task Bar Icon
self.tbicon = SelfTaskBarIcon(self)
self.tbicon.Bind(wx.EVT_MENU, self.OnMenuClose, id=wx.ID_EXIT)
self.tbicon.Bind(wx.EVT_MENU, self.OnMenuResume, id=101)
# destroy task bar icon before close this frame
self.Bind(wx.EVT_CLOSE, self.OnClose)

def OnMenuResume(self, event):
# remove icon (looks like no tray)
self.tbicon.RemoveIcon()

# show the window
self.Show(True)

# no in minimize
self.Iconize(False)

def OnMenuClose(self, event):
sys.exit()

def OnClose(self, event):
self.tbicon.RemoveIcon()
self.tbicon.Destroy()
event.Skip()

def OnMinimize(self, event):
self.tbicon.SetIcon(wx.Icon('py.ico', wx.BITMAP_TYPE_ICO))
self.Show(False)
#event.Skip()

def OnSize(self, event):
size = self.GetClientSize()
self.text.SetSize(size)
self.panel.SetSize(size)
event.Skip()

def log(self, string):
self.text.AppendText(string+'\n')

if __name__ == '__main__':
app = wx.App(False)
frame = View()
frame.Show()
app.MainLoop()

Open Command Window Here

好用的Open Command Window Here,本來是只要安裝Microsoft PowerToys for Windows XP就可以,但是Windows XP Professional x64說不給裝(/‵′)/~ ╧╧

上網找一下,發現原來還蠻多方法的
Add Command Prompt Here Shortcut to Windows Explorer

這邊記錄的是registry方法,將下列文字複製貼上,存成cmd.reg後執行Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\cmd]
@="Open Command Window Here"

[HKEY_CLASSES_ROOT\Directory\shell\cmd\command]
@="cmd.exe /k \"cd %L\""

「コードギアス反逆のルルーシュO.S.T.2」歌詞本錯誤.續


是的,就是最後一行的COLORS,應該是第23首,但是印成21了。

這次OST2,收錄了四首插入曲,分別是
「ピカレスク」第17話 (歌:酒井ミキオ)
「Callin'」第20話 (歌:酒井ミキオ)
「Alone」第21話 (歌:Hitomi)
「Innocent Days」第22話 (歌:Hitomi)

此Hitomi是唱「LAST EXILE」ED。和avex所屬的hitomi是不同人。

2007年3月23日 星期五

「英雄伝説 空の軌跡 the 3rd」6月28日に発売

日本ファルコム,「英雄伝説 空の軌跡 the 3rd」を6月28日に発売

!!!!!

這真是一個令人難以接受的消息。
一說是上次不是說SC是終章了嗎
二說是都宣布了要出,就會開始等發售那一天…

不行不行,要認真讀書

如何不用IE收聽Yahoo! Music Sound Station

好吧,其實這個標題是不完全正確,因為下面要提到的方法,還是要先用IE播過一次才行,不能完全不需要用到IE。

Yahoo! Music Sound Station
提供有限期的樂曲完整版試聽,會有某某藝人All Time曲目,或者是某主題名曲集,對JPop的人們是一大福利。
但是呢,很可惜地,這個網站的試聽功能限制必須使用IE才能播放,而事實上主要的重點只是Windows Media Player,為了不知所謂的DRM而將網頁寫成IE only對其他瀏覽器使用者實在是很困擾。又,試聽幾首之後,就會要求登入才能繼續使用,嗯…好吧,這其實是因為幾個帳號都被用掉了,所以不想註冊。還有一個原因,該試聽介面設計成在固定曲目中,亂數播放給聽眾,如果今天是對該曲集都不熟,都聽聽看也OK的話,是沒什麼問題;如果是對其中幾首特別有興趣,但是那個random就一直不出來的時候,就會很怒了。

所以,以下提供一個可以單獨收聽某首歌的方法。又,僅為初步測試所得結果,在不同機器上或是過了幾天後,可能會與以下敘述有所不同。
  1. 工欲善其事,必先利其器:請先準備Wireshark與Active Ports。或性質類似軟體,即packet sniffing and TCP connection monitor。
  2. Yahoo! Music Sound Station所需要的平台/軟體:Windows 2000/XP/Vista、IE5.5 above、Windows Meida Player 9 above。
  3. 開啟Wireshark與Active Ports,開IE到想要聽的曲集,等到該曲目開始播放。
  4. 此時看Active Ports,IEXPLORER.EXE和哪個Remote IP有connection。(一般建議執行此類活動時,將其他會產生network connections的軟體都關閉,以利於單純化觀測環境。包括:P2P, FTP, mail notifier, instant messenger)
  5. 看到Remote IP後,到Wireshark裡,display filter輸入ip.addr == [that ip]。([that ip]指的是該Remote IP的值,例如202.93.92.1之類)
  6. 然後應該會看到不少RTP封包,因為該Sound Station是利用RTP來傳送音樂。直接去找RTSP封包或者是在display filter再加上and rtsp。
  7. 在RTSP封包內找Request為SETUP (rtsp://.+/.+\.wma).+,喔Regular Expression大家應該看得懂,括號包起來以rtsp開頭、以wma結尾的,就是我們要的網址,將這個網址複製下來。
  8. 將複製下來的網址,丟到Windows Media Player裡就可以播了,還可以seek喔。這樣一來,就可以一直聽很喜歡的幾首歌了。
缺點:必須要在IE播放時,有播到想要的歌,才有辦法找到它的網址,因為目前還看不出網址之間的關聯性。

「コードギアス反逆のルルーシュO.S.T.2」(VICL-62308)歌詞本錯誤

喔,其實不是什麼嚴重的錯誤,在曲目列表,「COLORS」應該是第23首,印成21的樣子。

的樣子,因為還沒看到實物…

話說以前錯的比較嚴重的是「僕等がいた」エンディングテーマselection「想い」,歌詞本裡面把「ここにいて(僕等がいたver.)」的歌詞完全印錯,貌似是印到舊版的,雖然該公司有在網路上公告,並且可以寄回去換(和這次pizza ost2一樣),但畢竟東西還要寄回去日本,這…

2007年3月18日 星期日

msjh, msyh, meiryo to LaTeX CJK UTF8 (only dvipdfmx)

また変なタイトル?

此篇文章只是先行記錄,在某Linux box上,增加msjh, msyh, meiryo三個字體,可以讓latex=>dvipdfmx成功產生出pdf檔,並且可以正確複製貼上(中文可以,但是日文會變問號)。

前情提要:
此Linux box原本就可以用latex=>dvipdfmx將utf8編碼的tex檔產生出pdf檔,還有很多字型可以選擇(不需要用很醜的bsmi),但是日文會有問題,簡單講就是掉字,應該是該字型當初製作時的問題。
所以想要把ttf字型弄進去,而我並沒有root權限。

實際步驟:
以下步驟以msjh.ttf為檔名,基本上都一樣,把名字換掉就可以,比較需要注意的是meiryo是ttc而不是ttf。
  1. 首先要產生*.tfm和*.enc,使用指令為ttf2tfm msjh.ttf -w msjh@Unicode.sfd@ > msjh.log,然後就稍微跑一下,就會產生一堆*.tfm和*.enc。
  2. 再來是把這兩個東西搬到應該在的地方$HOME/texmf/fonts/tfm/CJK/msjh/*.tfm
    $HOME/texmf/fonts/enc/CJK/msjh/*.enc
  3. 然後是寫fd檔,位置是$HOME/texmf/tex/latex/CJK/UTF8/c70msjh.fd,內容則是\ProvidesFile{c70msjh.fd}
    \DeclareFontFamily{C70}{msjh}{\hyphenchar \font\m@ne}
    \DeclareFontShape{C70}{msjh}{m}{n}{<-> CJK * msjh}{}
    \DeclareFontShape{C70}{msjh}{bx}{n}{<-> CJKb * msjh}{\CJKbold}
    \endinput
  4. 最後,也就是最神奇的地方,要弄一個檔$HOME/texmf/fonts/map/dvipdfm/cid-x.map,然而,新增這個檔之後,原Linux box的字型就不能用了!實際可行的作法是找到原本機器上的cid-x.map,然後把我們要加的東西append上去。我這台的是在/etc/texmf/dvipdfm/cid-x.map
  5. 在上面提到的cid-x.map檔加上一行msjh@Unicode@ unicode msjh.ttf
  6. 記得把ttf/ttc檔放在$HOME/texmf/fonts/truetype
  7. 然後就可以試看看啦
cjk_text.tex
\documentclass[10pt,a4paper]{article}
\usepackage{CJK}

\begin{document}

\begin{CJK}{UTF8}{msjh}
this is only a test

這只是個測試

これはただのテストです

恋、未来、叶えて
\end{CJK}

\end{document}

2007年3月16日 星期五

利用CSS達成半透明效果

先貼參考網址:Mandarin Design: CSS Opacity and Transparency

filter:alpha(opacity=50); /* IE */
-moz-opacity:0.5; /* Moz + Firefox */
opacity: 0.5; /* CSS3, currently Opera 9, Firefox 1.5, Safari 1.3.2 support*/


基本上,第二個Mozilla專用是不需要了,因為用CSS3的opacity就可以達到效果。
如果要讓IE顯示半透明的話,就要用filter。

js可以藉由改變style.opacity來修改透明度,但是並非所有的HTML element都可以這樣玩。
請參考:JavaScript opacity setting test page (QuirksMode.org)

夢を心に 描き続けよう

可以差這麼多啊…
或者說,只是自己的心態問題呢?

當工程師在深夜十二點半,看到Gmail Notifier出現了一封新信,而寄件者是來自工作的地方,心中第一個念頭是什麼呢?
「靠,該不會今天改的東西爛掉了吧。不知道是小問題還是大問題,要是大件的,今天就不用睡了。」

心驚膽跳,但醜媳婦還是得見公婆,把Firefox打開來收信。

信件的開頭,出現的是稱讚今天工作的內容。
這…想必是信件開頭慣用語,真正的重點一定在後面。

然而,上看下看、左看右看,正著讀一遍、倒著讀一遍,整封信出現的文字,只有對成果的讚許,令人心情愉快的言語。


不知道從什麼時候開始,對於任何事物,總是抱著會失敗、會出問題的態度去猜想,這樣才有辦法在短時間內反應突發狀況。但是到最後,會出狀況的總是那個沒想到的狀況。而對事情的態度,也總是戰戰兢兢,不會往好的方面去想,久了之後,精神上也累了,變成消極的態度。

「工作團隊裡有你真好」
或許,在這工作團隊中,受到照顧最多的,是我吧,就精神上而言。

夢を心に 描き続けよう
大丈夫ちゃんと今まで乗り越えてきたんだから
明日に希望を膨らませて
大切な足あと残して 新しい一歩踏み出そう

能聽到mikuni新歌,真好

2007年3月14日 星期三

How to add a custom CAPTCHA to phpBB2 (using language-specific way)

sorry for using the same title as How to add a custom CAPTCHA to phpBB2. if you are looking for a more robust CAPTCHA, please click the link above. it will tell you how to use ``freeCap'' to replace the old phpBB2 CAPTCHA.

in this article, I will just describe my approach roughly, not all the details. actually it's just a memo, in case that I forget how to do this.

然後就變中文了XD

前情提要:
phpBB是一個被廣泛使用在全球網路上的論壇系統,如同名字上所帶的,它是用PHP寫的。
而使用phpBB架論壇的人,有不少人其實沒有學過PHP,因為phpBB的安裝十分容易,很多人裝好之後就再也沒有做過任何修改,反正大家都用的很高興。
直到邪惡的一方出現了…
因為phpBB廣大的使用率,網路上跟著就出現會自動註冊的機器人,通常這些機器人的目的是為了宣傳網站,因為phpBB註冊時所填的個人訊息,會顯示在會員列表裡,只要多註冊幾個,就可以讓搜尋引擎的spider爬到,讓該網站出現的排行上升。
喔,不過註冊時不是有個灰灰黑黑的東西要你填嗎,機器人不是應該會被擋掉嗎?
那個東西叫做CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)
Turing test耶!能通過Turing test的機器人,那不就代表說我們的AI已經發展到如此厲害的境界!
好吧,在這裡,對付CAPTCHA的機器人其實只是在做圖形辨識,將圖片中的character辨識出來。
而很不幸地,phpBB到目前為止,所使用的CAPTCHA產生的圖片,實在是太過容易讓機器辨識。
你看看Blogger的CAPTCHA,那個字歪到人都不一定能辨識。為什麼要這樣弄,因為不這樣弄,就會被機器辨識出來。


所以就要把CAPTCHA換掉啦,那何不參考上方那個連結,使用freeCap呢?
因為…我看不出來freeCap產生的字是什麼。
I just cannot recognize the word in the image.
Blogger把作者本身回comment時不用填CAPTCHA當做重大feature了,就可以知道那圖片真的是越看越看不懂了。

於是改用別的方法,CAPTCHA還是要換,只是不要那麼難看懂。
因為要用到的論壇有其封閉性,使用者群一定都會日文,所以很簡單的想法就是把CAPTCHA的文字從英文換成日文。
一個重要的前提是大多數的廣告源都是ru,人工來廣告,理論上看不懂,機器來,那先要有個日文辨識的機器人。
基本上,就圖形辨識難度來說,我現在用的image絕對會比原來phpBB的還要容易,只是在賭說,沒有「日文」的phpBB註冊機器人。如果哪天這東西出來了,就要換方法啦。

步驟:
  1. 找一個有日文的字型,要利用到imagettftext()這一個GD函式。
  2. 所以要把GD開起來,請修改php.ini。
  3. 修改phpBB的資料庫設定,把confirm裡的code的type,從char(6)改大一點,因為utf-8環境下,一個日文字會是3個bytes,除非打算讓CAPTCHA只有2個字。
  4. 寫一個新的image產生檔,用來置換掉includes/usercp_confirm.php,其實原來這個檔很猛,手刻png檔產生,沒用到GD。
  5. 換掉includes/usercp_confirm.php的方法是把profile.php裡面那一行,檔名換掉即可。
  6. 修改includes/usercp_register.php裡產生出confirm code的部分,原來是產生alphanumeric,改成產生出日文字串。
  7. 修改一下language資料夾中的lang_main.php的Confirm_code_explain,因為變日文啦@@
就是這麼簡單,一切就ok了。

再來就等看看,還有沒有機器人來註冊。

2007年3月13日 星期二

TEAM Entertainment Live Act 2007

演出陣容越來越豪華…Guest繼續增加中

■出演者
霜月はるか/片霧烈火/茶太/みとせのりこ/他

■日程
2007年4月30(月・休)

■時間
開場16:00/開演17:00

■会場
Shibuya O-EAST

Guest新增公告
2月16日:石橋優子
2月20日:真理絵、癒月、love solfege
2月23日:Rita、my sound life

team-e還會找誰呢?

Rookie Challenge 2007

喔 這當然是2007年的NBA新秀對抗賽的心得
是的,剛剛才看完

有種比All-Star Game還精彩的感覺

最後選出來的MVP是全場14投14中、30分、11籃板的David Lee。
的確,David Lee這場的表現不錯,也如同場邊Reggie和John Thompson所說的「他只是在做每天在做的事」
David Lee的百分百命中率來自大量的禁區得分,基本上沒印象有看到投籃,都是灌籃或是easy layup。而事實上rookies的禁區守不住照正常打的David Lee(或許Paul Millsap比較有機會?)

Luther Head和Deron Williams兩位Illinois校友再度合作,表現都很不錯,Deron的控球和得分都很好,Luther的三分仍然是很具有威脅性,有看當年UNC和Illinois冠軍戰的應該都忘不了。

說到UNC,就要提一下Raymond Felton,這場最後還小搞笑運球,不過帳面上的成績也是傷當不錯的。

然後看這場比賽,才認識這位Monta Ellis,連續alley-oop看的場邊觀眾叫好啊。

於是就要來講真正的MVP啦(私心給)
CP3!!!
感覺根本就是另一個等級來的,當然,可以有9次抄截也是因為Chris Paul非常積極地毛手毛腳XD
而打破記錄的17次助攻,我只能說,在明星賽會得分沒什麼用,會傳球才是真的。要得分,在那種防守下,基本上可以入選明星賽的都不是什麼問題,只是要不要拿那個分數罷了。但是好的傳球,能夠傳給在這些平時沒有一起練球的人,才是真正的功力。以前Jason Kidd還是明星賽先發時,就可以常看到一堆空中作業,無論是鋒衛飛人還是禁區怪物,而這幾年因為排擠效應,變成板凳,明星賽整個流暢度就有差(今年還受傷沒上場咧)。

回到CP3,很多球其實都運到罰球線,一般人都會自己找機會出手了,但是CP3仍然觀望,隊友快跑啊!運到不得已,只好自己出手,其實那個出手時機都已經差了,還是能投進!

sophmores最失望代表:Andrew Bogut,攻守兩端都沒什麼表現。

Rookies,其實認識的很少,大概只有Rudy Gay和Adam Morrison吧。
號稱NCAA當屆最強得分手之一的Adam Morrison,的確得分手段不少,外線、背框都行,不過持球技術還有待加強。

Rudy Gay,一整個悶,畢竟他進攻技巧其實還很青澀,感覺還在靠體能打球,但既然是明星週,就讓他秀一下吧…可是隊友不捧場,球怎麼傳就是沒辦法讓他alley-oop。
(Rudy: 我也想要有CP3餵球!)


既然寫了Rookie Challenge,那其他活動也該寫一下?

2007年3月12日 星期一

Music Release List, 2007 Feb

2007/02/07:
白石涼子, eufonius, 松本華奈 - ソラ色のつばさ/きらきら/きらきら~Himawari ver.~ [KICM-3147]

2007/02/21:
JAM Project - Rising Force [LACM-4344]

2007/02/28:
霜月はるか - ティンダーリアの種 [KDSD-222]
Suara - 一番星 [FCCM-180]

2007年3月9日 星期五

Intel PRO/Wireless 2200BG on FreeBSD 6.2

結果6.2版是改成要裝iwi-firmware-kmod。

到/usr/ports/net/iwi-firmware-kmod下,make install clean。

安裝好之後,修改/boot/loader.conf
加入if_iwi_load="YES"
重開機(reboot)
然後理論上dhclient iwi0就可以抓到無線網路了

2007年3月8日 星期四

disable beep of bash

如何讓bash的嗶嗶聲消失。

方法:
在家目錄新增檔案.inputrc,在裡面寫set bell-style none

話說上一篇提到在/etc/rc.firewall裡把規則設好,開機的時候會自動加入,忘了講,在/etc/rc.conf要加上firewall_enable="YES"

後記(2007 May 17th)
另一個方法,在console下輸入kbdcontroll -b off

bashrc 與 bash_profile 與一些FreeBSD設定

好高興地把.bashrc複製到家目錄下,預設shell也改好成bash了,但是每次登入後卻沒有自動讀入.bashrc,還是很醜白白的bash。

其實解決辦法很簡單,只要在家目錄下增加檔案.bash_profile,裡面輸入source .bashrc重新登入一次,應該就OK啦

關於重編kernel後,網路就不見的問題,因為ipfw預設規則會把全部擋掉,輸入ipfw show可以看到65535 11086 4463519 deny ip from any to any,也就是不論從哪裡來的ip封包都擋掉。大部份的教學會提到在編kernel時,就先加入一行options IPFIREWALL_DEFAULT_TO_ACCEPT,不過都編好了,很懶…,所以用另一個作法。
除了用ipfw disable firewall之外,也可以從/etc/rc.firewall,在最後加上一行${fwcmd} 1000 add pass ip from any to any注意,這是個人情形(FreeBSD 6.2),不同安裝狀況請依機器設定做相對應的改變。

要開sshd,在/etc/rc.conf加上一行sshd_enable="YES"手動直接開的話是打/etc/rc.d/sshd start

喔…再來試試改motd好了

phpBB 很抱歉!! 會員名稱內不得包含非法字元, 例如:

真好,都UTF-8了,還會爛掉。

只好先用白爛法頂一下。

原因出在「includes/functions_validate.php」,在某if statement裡面,檢查使用者名稱用到了strstr($username, chr(160)),而很不幸地,在UTF-8之下,有些字會被strstr這個函式判讀錯誤,因為strstr沒有unicode支援。而這次的受害者是「笠」這個字,目前還不清楚還有哪些其他的受害者。

下面是暫時解決的方案
strstr($username, chr(160))改成mb_strstr($username, chr(160))
在if的上面多加一行mb_internal_encoding('UTF-8');

well...目前看來是可行,有問題再改…

2007年3月7日 星期三

坂本真綾 フォト&歌詞集 地図と手紙と恋のうた

詳しくはこちら

2007年4月18日発売予定

三月底之前預訂,會送限量書籤。

收錄歌詞數共84首,加上在芬蘭拍攝的照片,預計總頁數為240頁!

售價:2800円

嘖嘖…現在就等某單位的回應了,最近花錢真兇…

2007年3月5日 星期一

build FreeBSD with dummynet enable

options BRIDGE
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT
options DUMMYNET
options HZ=1000

add the above lines into the kernel configure, and save it as ``MyKernel'', and then
# cd /usr/src
# make buildkernel KERNCONF=MyKernel
# make installkernel KERNCONF=MyKernel

the second line will take a little bit time to finish.

after finishing compilation and installation, we can reboot now. use the following commands.
# sync;sync;sync;reboot

BEWARE: since the firewall is located in the kernel, and the default setting is to block all the packets. so after rebooting, you will be in the situation of NO NETWORKS. well...just type # ipfw disable firewallcan solve this problem

and many tutorials say you need add ``options NMBCLUSTERS'' in the kernel configuration. this option is no longer in FreeBSD 6.2.

Gmail: Get mail from other accounts

真好,這樣就可以達到只用Gmail就收全部的信。

之前有些信箱可以設定自動forward到Gmail,有些打死就是沒有,連filter裡也沒有forward的action可以選,現在可以統一處理囉。

而且Gmail很恐怖,在設定pop3 server address時,它會提供選項,顯然是代表這幾個信箱已經有人採用這個功能,而資料蒐集起來,直接提供給其他的使用者。

「當資訊量多到一種程度的時候,原本沒辦法做的事也可以做了。」…某次Google演講,忘了是誰講的。

P.S. 目前我的帳號是可以用5個外部帳號,不知道這個數字是會改變,還是固定每人5個。

Wireshark 0.99.5

其實還更新蠻久了,2007年2月1日的事,不過現在才看到…這代表整個二月都在做啥呢?

來看看這次更新了什麼:
The TCP dissector could hang or crash while reassembling HTTP packets. (Bug 1200)
Versions affected: 0.99.2 to 0.99.4
這個問題超討厭,討厭到會讓人想把reassembling HTTP packets功能關掉,因為遇到某些packets(貌似是由HTTP下載pdf檔),滑鼠點一下,就會跳出reassemble的訊息,然後重複這個動作…。
剛才試抓一個pdf檔,沒有出現以前的情況。

然後是幾個會crash的問題,HTTP, IEEE 802.11, LLT的dissector會因為惡意產生的packets而導致Wireshark爛掉(crash),如果沒辦法立刻更新至0.99.5的話,請將上述三個的dissector關掉。方法是從Analyze->Enabled Protocols,把這三個的勾勾取消掉。

The Follow TCP Stream window could omit characters. (Bug 1043)
上面這個是為了修bug而產生出來的bug XD。
當初在mailing list上看到是說,為了解一個會導致crash的bug,暫時先做的處理。後來有人為了向學生展示telnet是多麼地不安全,請大家用ssh,做了個實驗,就是Wireshark開起來,然後用telnet登入,再用Follow TCP Stream,選擇只印出單一方向(即client to server這個方向),就會看到登入名稱接著密碼,但是在0.99.4版就不行,因為telnet的字元就是封包的最後一個byte,而這個bug會讓字元消失。
這一版把它修掉啦。

其他bug沒遇過,來看看新功能。

這版搭的WinPcap是4.0版,WinPcap 4.0最大的不同是支援了Vista x64,而不再支援Windows 9x/ME。另外還有支援AirPcap,官網的說法,這是「The USB 2.0 Wireless Capture Adapter for Windows」,重點是那個Windows,在之前,Windows上可以用Ethereal/Wireshark來抓802.11封包的卡少之又少,市面上最多的Intel(R) PRO/Wireless在Windows完全抓不到封包,在Ubuntu倒是可以,總之,這個產品看起來對Wireless Packets capture是很有用的感覺,一隻$198.00…列入採購名單?不過台灣買得到嗎。

Wireshark 0.99.5開始增加U3 package for Windows,U3?第一次聽到,看起來是有新功能的隨身碟,然後軟體弄成適合在隨身碟攜帶,有空再玩玩。

Known Problems
當然,一切都不會那麼美好的,只知問題官網上僅列出一項
The Filter button is nonfunctional in the file dialogs under Windows. (Bug 942)
這是叫大家不要用Windows@@