Archive for May, 2007

Subversion through Https with LDAP authentication

ilmare| May 28, 2007 4:04 pm

先前講到了Subversion的建置過程,建置之後便是要正式上線使用,考量到安全性與管理上的問題,加密的連線就顯的必須,而認證系統的一致化也是減少管理的工作之一,綜合考量以上兩者,Subversion搭配https的協定與LDAP的認證顯然可以達成這樣的目的。

我們使用的軟體環境為:

  • Fedora Core 4
  • Apache 2.0.54
  • Subversion 1.2.3
  • OpenLDAP 2.2.29

為了讓Subversion可以透過httpd來存取,必須使用WebDAV這個東西,其rpm套件名稱為mod_dav_svn-1.2.3-2.1,這是用來搭配apache的。若已經安裝過mod_dav_svn,便可以在/etc/httpd/conf.d/目錄下找到subversion.conf這個檔案。若檔案不存在,那麼去檢查是否有安裝mod_dav_svn便可以發現問題所在。

我們必須在subversion.conf加入必須的東西,讓apache知道如何去存取subversion。


   DAV svn
   SVNParentPath /var/repos
   SSLRequireSSL

   AuthType Basic
   AuthName "Authorization for Subversion"
   AuthLDAPURL ldap://localhost:389/ou=People,dc=mytest,dc=com?uid
   Require user user1 user3 user5

  • Location ->存取的網頁位置,以上面的例子,我們可以用 https://localhost/repos/ 作為存取/var/repos的網址
  • SVNParentPath ->設定svn的repository目錄,以之前的例子,我們使用/var/repos
  • SSLRequireSSL ->強制使用https連線
  • 接下來的部分為LDAP authentication的部分:

  • AuthName -> 出現在認證網頁上的文字
  • AuthLDAPURL ->定義使用LDAP搜尋的參數,詳細請看apache的手冊,簡單的來說,上面的例子為使用本機的LDAP伺服器,搜尋BaseDN為ou=People,dc=mytest,dc=com,符合uid有值的所有紀錄。
  • Require user -> 符合AuthLDAPURL所搜尋的紀錄者都成為user,這邊將繼續限制user需為user1或user3或user5才允許進行登入

若以之前的文章為例子,加上本次的設定,我們將需使用https://localhost/repos/Project/calc/trunk 作為check out calc這個project trunk的URL of repository。

若透過網路存取,請把localhost換成適當的hostname即可。

又一台UAB+Neomini Buffer

ilmare| May 25, 2007 4:45 pm

這也是很久之前的UAB,也改過好幾次,版子上有些地方解焊到都翹起來了。雖然說換了很多料,但是當時年紀小,現在看來也許有很多地方的零件似乎不怎麼洽當,不過那時候剛開始進入DIY的世界,會唱歌就很高興了 :)

這一台的buffer設定當然是要有所不同,不同的地方有:

    改裝列表

  • 拿掉Zener,按ucc的建議改用電阻分壓 (R8, R9 用10K), 10K從Q3與Q6的B 連到+Vcc 與-Vcc
  • C2,C3,C4,C5 不裝
  • C6改用 spp 0.1uF
  • LED 用SMD type (清庫存)
  • +Vcc 與 Gnd 加併 mkp2000 0.1uF , -Vcc 與 Gnd 加併 mkp2000 0.1uF
  • VR 改用 500R,只是擔心輸出直流調不到中點


Q3 與 Q6的B用10K電阻連到LED那邊即是+Vcc 與 -Vcc


輸出晶體一樣是C2238y 與 A968y,但是這次孔挖的太靠近電源插座,是敗筆 :(

唱歌中的樣子^^,線都還沒整理呢。

註:本機於2007年6月售出

CVSNT轉到Subversion

ilmare| 4:33 pm

CVSNT算是CVS的另一種增強版,至於啥是CVS,從字面上的意思Concurrent Versions System,應該是可以翻譯成”協同版本系統”。這是共同開發軟體的好用工具,或者是說不可或缺。

Subversion的功能與CVS差不多,但是Subversion算是重新開發的東西,改進了原本CVS一些根本性的問題,主要的改進在branches/tags的處理上,加上很多大的軟體開發計畫都逐漸的改用Subversion,趁著我們還沒有很深入的使用CVSNT之前,就趕緊給他導入Subversion吧。

CVS2SVN就是相當合適的一個工具,他是由發展Subversion的同一個地方出來的,不過事實上他並不支援cvsnt,但是不乏成功的例子,如這邊。所以我還是決定嘗試一下,初步的結果是轉的過去,不過有出現許多的問題,就之後再討論。

綜觀我們的程式,是在win32下使用的視窗環境程式,其實大部分的問題是檔案特性的部分,大家都知道win32的環境,檔案會分成二進位檔與文字檔兩種,在cvsnt中對於二進位檔的處理,我們都有加上kb這個旗標,只是不知道未啥有些檔案轉的過去有些卻轉不過去,在嘗試了好幾天之後終於知道其中的奧妙所在。

首先把我用到的cvs2svn的選項先列出來:(使用的環境為Fedora Core 4 with Python 2.4.3)

  • –dumpfile=PATH 輸出轉好的SVN到指定目錄下的檔案名稱中
  • –use-cvs 若用CVSNT一定要用這個選項
  • –encoding=ENC 指定檔案的編碼,因為檔案中免不了有中文的部分,所以還是指定一下
  • –force-branch=REGEXP 第一次轉的時候出現branch不清楚的狀況,轉不過去,就使用這個選項,記得REGEXP是指出問題的那個branch的名稱,要是出問題的東西太多了,就得使用正規表示法囉
  • –mime-types=FILE 太部分的失敗都出現在二進位檔的格式不對,最後終於使用mime-types來處理所有二進位的檔案,他是使用apache的mime type相容格式,在FC4的/etc/mime.types有一個還頗完整的,但還是需要自行加入一些只有win32才有的二進位檔副檔名
  • –eol-from-mime-type

    For files that don’t have the kb expansion mode but have a known mime type, set the eol-style based on the mime type.

    請記住在轉換cvsnt時,-kb的旗標一點用也沒有,完全從mime type的檔案來,因此這個旗標要用,更重要的是 mime type的檔案種類更是要齊全。

最終所使用的指令如下:

cvs2svn --use-cvs --encoding=UTF-8 --encoding=Big5 \
--mime-types=/etc/mime.types --eol-from-mime-type \
--force-branch=arelease --dumpfile=fooall /var/cvs

接著就需要建立subversion的repository,然後把轉出的dump file匯入subversion的repository中。我選用的repository的layout是類似這樣:

/
calc/
trunk/
tags/
branches/
calendar/
trunk/
tags/
branches/
spreadsheet/
trunk/
tags/
branches/

因此我必須把之前在cvsnt的每個project都轉成獨立的檔案,然後一個一個匯進去。
假設/var/repos是我們放置repository的地方,首先我們先建立初始的repository。
svnadmin create Project
切換到其他的目錄,下載剛建立的repository。

svn co -N https://localhost/repos/Project
cd Project
mkdir fooall
svn add fooall
svn ci -m 'preparing for fooall migration' fooall

然後就可以把剛剛轉好的dump file匯入subversion中。

svnadmin load --parent-dir fooall/ /var/repos/Project < /tmp/fooall

這是因為dump出來的東西會自動區分成trunk,tags,branches這樣的layout,因此我們必須在匯入的時候從fooall這個目錄之後進行,就得使用上述的指令。詳細的可參考Apache的網頁他們也有轉換的經驗。

最後在Client端把剛剛匯入的程式碼check out,作嚴格的測試,若沒有問題那麼其他的project就可以一樣畫葫蘆。

免於受到栽贓的小小看法

ilmare| May 22, 2007 5:15 pm

前一陣子,蘇建和案又突然被重視了起來,大概是李昌鈺博士回台作證的關係吧。個人認為這個案子讓我們可以好好的思考死刑與司法的關係。如果司法還是沒有進步,我會認為廢死刑比較好,誰也不知道下一個被冤死的人是誰。相對的司法制度若是夠好,死刑就不需廢除。

從警察臨檢的這一件事情,就可以看出這幾年大眾對於人權與法治的重視程度。首先引爆以往臨檢不合理的導火線就是民國 90年12月14日的大法官釋憲第 535 號。解釋文裡面提到:

其僅屬維持公共秩序、防止危害發生為目的之臨檢,立法者當無授權警察人員得任意實施之本意。是執行各種臨檢應恪遵法治國家警察執勤之原則,實施臨檢之要件、程序及對違法臨檢行為之救濟,均應有法律之明確規範,方符憲法保障人民自由權利之意旨。
上開條例有關臨檢之規定,既無授權警察人員得不顧時間、地點及對象任意臨檢、取締或隨機檢查、盤查之立法本意。

個人認為大意就是,臨檢的執行需依法行政,符合比例原則,並告知為何臨檢的資訊。

釋憲文最後有提到

現行警察執行職務法規有欠完備,有關機關應於本解釋公布之日起二年內依解釋意旨,且參酌社會實際狀況,賦予警察人員執行勤務時應付突發事故之權限,俾對人民自由與警察自身安全之維護兼籌並顧,通盤檢討訂定,併此指明。

因此新的警察職權行使法於中華民國九十二年六月二十五日公布。

第七條 (查證身分必要措施)   警察依前條規定,為查證人民身分,得採取下列之必要措施:
  一、攔停人、車、船及其他交通工具。
  二、詢問姓名、出生年月日、出生地、國籍、住居所及身分證統一編號等。
  三、令出示身分證明文件。
  四、若有明顯事實足認其有攜帶足以自殺、自傷或傷害他人生命或身體之物者,得檢查其身體及所攜帶之物。
  依前項第二款、第三款之方法顯然無法查證身分時,警察得將該人民帶往勤務處所查證;帶往時非遇抗拒不得使用強制力,且其時間自攔停起,不得逾三小時,並應即向該管警察勤務指揮中心報告及通知其指定之親友或律師。

重點就是遇到臨檢,把身分證件都準備好。若你的身分沒有問題,也沒有前科,既不是現行犯。還要找你麻煩的話,請看第二十九條。

義務人或利害關係人對警察依本法行使職權之方法、應遵守之程序或其他侵害利益之情事,得於警察行使職權時,當場陳述理由,表示異議。
  前項異議,警察認為有理由者,應立即停止或更正執行行為;認為無理由者,得繼續執行,經義務人或利害關係人請求時,應將異議之理由製作紀錄交付之。
  義務人或利害關係人因警察行使職權有違法或不當情事,致損害其權益者,得依法提起訴願及行政訴訟。

重點就是你必須請警察把你的異議作成書面報告,以便你日後提起行政訴訟之用。

另一個需要注意的就是,假借臨檢之名行搜索之實。我們不能假定所有的執法者都是奉公守法之人,在有業績壓力之下,難保某些人會做出違法之事,因此對於搜索的事情,更是要格外謹慎。沒有法官的搜索票,實在是沒有理由同意搜索。當然刑事訴訟法第158-4條也對非法取得證據這件事做出了一些規範。

除法律另有規定外,實施刑事訴訟程序之公務員因違背法定程序取得之證據,其有無證據能力之認定,應審酌人權保障及公共利益之均衡維護。

至少這邁出了一小步。

最後,我想一定也會受到質疑的就是,似乎是過度保障犯罪者的人權。不過我想說的是這個社會並不完美,沒有人想成為被害者,但是若是誤判造成另一個被害者,當初的被害者難道就不是幫兇,不會變成罪犯嗎?既然我們選擇法治作為維護這個社會秩序的唯一法則,那麼經由人民賦予行使職權的執法人員們,找出證據是你們的工作,防範犯罪的前提當然是不能違反法定原則。

My RA1

ilmare| May 15, 2007 1:03 pm

RA1GRADO出給自家耳機用的耳擴,由於其線路實在太簡單了,因此有人買了一台原廠的然後拆開他,網路上就開始很多複製的計畫出現。

neo大的ra1價錢實在優惠,剛好有訂購neomini buffer,就順便定了一套,組裝上時實是很容易,沒幾個零件,十分鐘就可以完工,但是找個不錯的case實在是很難阿。

我的設定是使用兩個9V電池來供電,因此case必須可以容納主版與兩顆電池,不惜血本,RCA端子用了neo的專業級RCA母座,耳機座用了Neutrik,不過鑽孔的技術實在太差了,鑽的真的很醜。

主版與耳機輸出部分。

總體配置圖。

很笨的是,忘了設計開關,電池放上去想必很快就會沒電,
另一個就是換電池很麻煩,要拆殼。

持續改良中。

KECES’s UAB 加裝 Buffer

ilmare| 12:31 pm

至於什麼是KECES’s UAB,他是一台USB介面的DAC(Digital to Analog),歷史從2003年就已經開始了,可以參考這邊的討論串,之後廣受好評,不但出了成品機,版子也陸續改版,到目前為止已經改了好幾版。

Buffer在這邊的定義為沒有電壓增益的組抗轉換器,講白的就是增加電流的驅動力與調音。

這個buffer已經在dac 7010中出現過了,
因此拿到版子後隨便備料便開始組裝,
過程也很順利,看起來沒有東西是裝錯的,
為了整合到KECES的USB DAC 中,
把case上需要挖的洞也都挖好了,
看似一切順利,但是裝上去後聲音卻異常的小聲,
心想不妙了,但是LED燈卻亮的正常,也沒有異味。

沮喪了好幾天,終於在今天發現問題所在,
當初dac 7010的buffer最後的輸出晶體的腳位為ecb,
記得那時候我用D882與B772。但是Neomini buffer的腳位為bce,
因此若用D882與B772需要轉個方向,但是我以為不需要轉,因此犯了這個大錯誤。

剛好去電料行買了一些2sa968與2sc2238,就給他換上去,就一切正常拉。

那個1uf的電容,因為手上只有ucc的mkp2000,就給他用上去拉。

Buffer完成圖

另一個角度的Buffer

與UAB的整體配置圖

註:本機於2007年6月售出

你的權利(衛星廣播電視法)

ilmare| May 8, 2007 11:25 am

回南部的時候,就有機會可以看的到有線電視的節目,雖然說轉來轉去也都是哪幾台,那只好看看政論節目,現在比較有名氣就是TVBS那幾個,另一個就是大話新聞。話說這兩邊有一個相同的面貌,那就是陳輝文(以下簡稱獅子丸)。

有一次的節目提到一個蠻有趣的問題,那就是如果你莫名其妙被政論媒體猛批一番,那你怎麼辦?他提到衛星廣播電視法裡面有提到相關的規定,我就跑去查詢,來看看真的有這回事否。

引用衛星廣播電視法,第三十條與第三十一條

  • 第三十條

    對於衛星廣播電視之節目或廣告,利害關係人認有錯誤,得於播送之日起,二十日內要求更正;衛星廣播電視事業應於接到要求後二十日內,在同一時間之節目或廣告中加以更正。衛星廣播電視事業認為節目或廣告無誤時,應附具理由書面答覆請求人。

  •  

  • 第三十一條

    衛星廣播電視事業播送之節目評論涉及他人或機關、團體,致損害其權益時,被評論者,如要求給予相當答辯之機會,不得拒絕。

我相信獅子丸說的,政治人物都知道這些,但是為何沒膽上去答辯呢? :P

電影-生日快樂

ilmare| May 7, 2007 1:52 am

昨日搭和欣客運回新竹的路上,無聊打開了車上的多媒體隨選系統,居然有電影-生日快樂可以看,反正一路上無聊也是無聊就看囉。其實這部電影已經放在硬碟中好一段時間了,我也大致看了一開頭的那一小段。事實上我只是喜歡劉若英,才會想看這部,也不是期待著劇情很好或是演技很好之類的前提。事實上,以劉若英之前所唱的那些歌,或是演過的電影,我看過的那些沒有一部是屬於快樂的,都是蠻悲慘的XD。

我既寫不出像這麼精湛的影評(羊男的迷宮),也不擅長描寫劇情,所以劇情就自己去看電影,要影評的可以用搜尋引擎自己尋找。

愛情與死亡這兩件事,大抵上沒什麼關係,但是關係是可以建立的,差別在於死亡不能逃避,而愛情是可以躲的。總之劇情很老套,結論就是這是一個愛情故事。就像本部電影的OST最後一首歌,劉若英所講的那段話,

故事就是故事,故事抄襲生命,也被生命抄襲;生命沒有答案,故事也將永遠等待下一個疑問,永遠待續……

馬隊長的特別費案

ilmare| May 5, 2007 11:47 am

對這件事情,我一直都沒有寫過相關的文章,時間也過了頗長的一段時間,今天5/5,我看了聯合新聞網,有一篇新聞,標題是”特別費案有罪否 16地檢分歧”,其實標題下的很差,政治的意圖也不用我多說,這篇文章要表達的重點就是特別費是公款還是私款。在此之前我要先說,我沒資格說馬隊長有罪與否,那是法官的職權,但是我們可以就實際面來探討這些現象。一直以來,某些媒體一直把特別費的焦點放在公款或私款這邊,因為這是幫馬隊長解套的唯一方法。各位可以去看一下起訴書,看前面就好,我認為重點在於馬隊長把特別費一半的錢直接匯到戶頭,未花完的部分”並向監察院申報為自己財產“。因此某些媒體一直吵著說匯一半特別費到戶頭就是違法之類的說法,這不但是斷章取義,而且還別有用心。

當然,檢察官並不代表司法,起訴你不代表有罪,只是說大家嘴巴喊著公平正義,骨子裡還是一副順我者生,逆我者亡的態度,不該是法制國家的常態。

WANGINE DAP-1050E加裝DSIX+Re-Data

ilmare| 12:36 am

這台DVD Player已經過保固了,加上阿仁有出DSIX+Re-data套件,加上大家對於這東西有抱持正面的的評價,就決定給他改下去拉。

簡單的來說,加裝的目的就是讓數位訊號與原本的clock再次進行重整的動作,讓訊號的品質更為良好 。

DSIX+Re-data的輸入端需要MCK,DATA與GND,首先的任務就是要找出MCK在哪邊。拆了DAP 1050E之後找到主晶片,確認是使用ESS 的60xx系列晶片,Data sheet pdf可在這邊找到

看了DATA SHEET,發現39腳定義為MCLK,想說這應該就是接到MCK那邊吧。

null

至於DATA部分,找了原本數位輸出的拉線是由一個74系列的ic接出來,
因此就直接把DATA與GND直接接過去。
null

這機器內部居然使用3顆cs4396,還出現Black Gate電容 :shock:
null
可惜聽感差cs43122很多,大概是使用交換式電源的關係吧。

阿仁版的DSIX+Re-data,不小心讓一顆電容毀容 :(
null

挖了個洞,裝了一個友站質感很不錯的RCA座
null

裝好後,反覆的接在原本的與改過之間作比較,的確細節與定位都變的比較好。不過這種平價的DVD player,我們也不能要求太多 :D