tag:blogger.com,1999:blog-49169356945061370802024-02-19T20:09:59.068+08:00心之路leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.comBlogger931125tag:blogger.com,1999:blog-4916935694506137080.post-68465189731627333492019-11-11T21:41:00.000+08:002019-11-11T21:44:29.001+08:00Qobuz 試用<div>
這兩天 Qobuz 推出新的試用方案, Studio Premier,應該是因應各大平台也推出 lossless 串流的關係。</div>
<div>
<br /></div>
<div>
US$14.99,高解析串流(最高24bit/192kHz)加上可以額外購買 HiRes 離線檔案,心癢就來弄了。不過遇到一個大問題,就是怎麼把 Qobuz 弄到我的 RPi3 串流器上面,因為他沒有原生的程式庫可以接(不像 Spotify),所以有幾個不同的作法</div>
<div>
<ol>
<li>直接弄個平板或是電腦接到 DAC 上面,這個多半是透過 USB 介面</li>
<li>用 Chromecast 或是 Apple Airplay 裝置</li>
</ol>
</div>
<div>
但是我是個鐵齒的人,一定要來弄 BubbleUPnP + DLNA 這樣的解決方案。其實也可以用,而且可以直接用我原有 Volumio 當作 DLNA 播放器,無損串流到我的 RPi3 上頭,然後透過 AES 線進到 Yggdrasil 裡頭去。</div>
<div>
<br /></div>
<div>
和 Spotify 320kbps OGG 比起來,無損的 44.1/16bit 聽起來的結像更具體,音場更深,但是很有趣的是,可以轉得比以前大聲也不覺得吵。比較明顯的優缺點,其實在鋼琴的 reverberation,無損就沒有那種壓縮後的怪聲音出現。</div>
<div>
<br /></div>
<div>
既然轉換過來,也想把 Spotify 已經儲存的四百多張唱片資料也轉過來,調查了幾個現存的服務,不是做得不好就是要收錢,想想反正 Spotify 有提供 API,就自己把自己的專輯資訊挖了下來(奇怪,API不提供藝人的資料輸出),看看怎樣能才轉換到 Qobuz 上頭。</div>
<div>
<br /></div>
<div>
已經手動轉換的幾張音質真的都不賴,以後如果沒有意外的話,大概會繼續用下去。Spotify 和 YouTube Music 到時候應該會選一個繼續拿來聽流行音樂。</div>
leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-51019188957513546822017-07-04T12:15:00.001+08:002019-10-17T21:28:07.875+08:00The annoying clicking when using Schiit DAC with TOSLink/COAX digital output from a Hifiberry Digi+ ProIf one is using Hifiberry Digi+ Pro with the new VolumioNext build, one problem that might happen is that the digital output gets turned off in about 5 secs of idleness.<br />
<br />
This is not ideal if your DAC uses a relay (Schiit Yggdrasil, NAD D5010, etc) and clicks like crazy when the signal switches off/on.<br />
<br />
VolumioNext uses new kernel 4.9.31, so the <a href="https://github.com/raspberrypi/linux/pull/778" target="_blank">changes in the driver </a>for Digi+ Pro won't work. The new kernel introduces a new way of powering down the soc drivers in<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;"><a href="https://github.com/raspberrypi/linux/blob/3aafce2a8bf59f03056253f22c3d19709ff5b7a6/sound/soc/soc-core.c" target="_blank">sound/soc/soc-core.c</a></span></blockquote>
<br />
The module introduces a new parameter <span style="font-family: "courier new" , "courier" , monospace;">pmdown_time</span> that can either be set during runtime or during boottime. I opted for boot-time, so adding<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">snd-soc-core.pmdown_time=-1</span></blockquote>
to the end of my <span style="font-family: "courier new" , "courier" , monospace;">/boot/cmdline.txt</span> does the trick. Now my DAC locks onto the signal upon boot and only click when the player explicitly send rate change signals to the output, but that's another story.leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-25158583992964949992015-01-14T23:27:00.001+08:002015-01-14T23:27:30.632+08:00如何從 Airport Extreme/Express 取得 PPPoE 的帳號密碼前兩天為了要辦簽證,想說買了新的 <a href="http://24h.pchome.com.tw/prod/DGAD4B-A83323010" target="_blank">CP910 小相片印表機</a>,來自己印個大頭照也是非常合理的。可是怎麼弄都無法把印表機重新連上我的家用無線網路。我確定印表機是好的,因為連上手機直接列印沒問題,我也確定我的家用網路是好的,因為上網、Chromecast 都完全沒問題。<br />
<br />
今天晚上林博士說原本的雷射印表機也不會動了,我就想這下子糟糕了,又要使出 Reset 大法了。但是 Airport Utility 有個怪現象,就是 PPPoE 密碼他不會顯示出來,我又找不到原來申請光世代的那張紙,如果打去客服他只會叫你親臨櫃台辦理而已,對於半夜老婆要印東西印不出來<strike>會殺人</strike>是緩不濟急不能接受的。<br />
<br />
依稀記得有個方法可以用,所以確認了一下整理在這邊,以後自己要用到也比較方便。<br />
<br />
<ol>
<li>打開 Airport Utility,選定自己的 Basestation 以後,按 Edit 進去,選擇 Export Configuration File<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgubnItrqkraPQm-ZaBpO1XE_DkFCpF5hO5gNYz93CqV3wNIVBj1w_9_aWH2KDB5mJ_a0VYFzu9QlOYlafoi3LlXsDozo5h52LvWnZ55JNpQKBJP5h-05i0InkF0FWvXi1jdLo6U4LBhy-t/s1600/Pasted_Image_1_14_15__23_12.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgubnItrqkraPQm-ZaBpO1XE_DkFCpF5hO5gNYz93CqV3wNIVBj1w_9_aWH2KDB5mJ_a0VYFzu9QlOYlafoi3LlXsDozo5h52LvWnZ55JNpQKBJP5h-05i0InkF0FWvXi1jdLo6U4LBhy-t/s1600/Pasted_Image_1_14_15__23_12.png" height="146" width="320" /></a></li>
<li>此時「千萬不要」選 encryption,因為我們的目的就是要取得明碼密碼,存下來的檔案打開以後尋找以下的 key:<br /><br />
<key>pePW</key><br />
<string>PPPOE Password</string><br />
<key>peSN</key><br />
<string>PPPOE Service Name</string><br />
<key>peUN</key><br />
<string>PPPOE Username</string><br />
</li>
</ol>
<div>
這時就可以把取得的帳號密碼在使出 reset 大法之後,重新寫入 basestation ㄎㄨㄞ</div>
<br />leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-86898477353739914512014-04-15T12:56:00.002+08:002014-04-15T12:56:50.449+08:00O大解釋什麼是公民社會以下是 O 大對於公民社會的解釋<br />
<br />
——我是分割線——<br />
<br />
這麼說吧,這要從公民社會(市民社會)的發源來看。wiki上面的市民社會條目根本整個亂寫。市民社會為什麼叫做市民社會?首先是中世紀開始,慢慢有城市的成形,一些商人因為經商累積了財富,他們不一定擁有農場,大多住在城市裡面,形成了所謂「第三階級」,也就是所謂市民階級<br />
<br />
城市跟國是兩回事,因為城市的富有,導致封建領主甚至會欠城市一大筆錢。也沒辦法去真正管理城市。於是就產生了市民社會,進而演變成公民社會(就是把市民的概念複製到全體公民身上)<br />
<br />
市民社會怎麼運作呢?基本上就是要靠自立法保障個人自由不危害團體自由。因為生意人最喜歡就是自由,這也就是資本主義=自由主義的開端。<br />
<br />
那除了立法之外,行政機構如何運作?很簡單,就是市民付的稅金請專業的「工人」來做。所以基本上你身為一個公民,你要知道,警察、官員、軍人,都是你的工人而已<br />
<br />
這也就是很多人從小一直聽到的公僕概念,以上報警來處理,這合理,他領你的薪水,就是來處理你的問題。叫警察來處理其他你覺得不爽的市民團體,那就是北七。因為你讓「領公民薪水的工人」有權力處理其他市民團體,那將來他處理你也非常合理<br />
<br />
為什麼要一直去強調公僕的權力來自於公民?這可不只是選舉這麼簡單,而是這樣的自覺會隨時提醒你不要讓公僕的權力凌駕於公民,進而避免公民社會演變成警察社會或是專制社會。當然我還是強調一下這是基本中的最基本概念,來自於中世紀的歷史演變。現代是比較複雜了,所以理論也多了起來,也有所謂的例外。比方說新加坡是不是一個公民社會?<br />
<br />
前面提到了市民社會(也就是公民社會)的由來有個重要觀念就是自由,商人需要自由(中世紀到處都是路障稅關很難做生意)。可是自由會有危險!慢慢就有另外的人認為自由沒啥保障,社會需要的是安全。安全怎麼來?安全就要集體計劃性的在各個面向上統一口徑。<br />
<br />
集體安全就是左派,自由開放就是右派<br />
<br />
但是新加坡這種案例又更妙,他是融合了集體安全與自由開放,因為新加坡的立國是非常危險的情勢隨時會亡國而且當年新加坡窮到不行。所以他們集體把權力給了人民行動黨全權處理,各項措施基本上就是保障安全。<br />
<br />
但新加坡很小很小,為了生存得做生意,做哪些生意?如何快速做起來?這需要開放。所以他就是另一種形式,表面看來是很自由開放,可是底層並不是完全的公民社會,而是一種限制型的怪社會。基本上極左的社會就不會是公民社會,因為大家要集體安全,人人有飯吃,外國不敢侵略。所以公民對社會的參與度比較低。可是基本上這年頭沒有真正極左極右了,大家都是中間找平衡點而已就這樣<br />
<br />
回到噗頭,如果台灣是個公民社會,還會有公民要求公僕執行公權力去讓社會安定。那就顯示出公民教育的整個大失敗。不過這也不奇怪,那些老人以前上的公民課其實是道德課leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-77258409822149028982013-06-28T23:47:00.001+08:002013-06-28T23:49:51.833+08:00Sublime Text 3 和 Soda Dark 3 ThemeSublime Text 3 終於進入 <a href="http://www.sublimetext.com/blog/articles/sublime-text-3-public-beta">public beta</a> 了。最近除了 <a href="https://www.google.com.tw/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&ved=0CDcQFjAB&url=http%3A%2F%2Fdaringfireball.net%2Fprojects%2Fmarkdown%2Fsyntax&ei=vq_NUYabLMaHkwWNiIGgCg&usg=AFQjCNEqZ3bfLqGEDY_lmaE49RSSIkQhdw&sig2=YzHAxAes3Ofdoh1nfYA8bQ">Markdown</a> 以外,最常用的就是 <a href="http://golang.org/">golang</a>,所以為了要找個好的 syntax highlighting 加上適合的佈景,花了一點時間,最後最喜歡的就是 <a href="https://github.com/buymeasoda/soda-theme">Soda Dark 3</a> 加上 <a href="https://github.com/micahmcfarland/tomorrow-theme-withmarkdown">Tomorrow Night Theme with Markdown</a>,這樣我就開心了。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ-WmpzunWS_acSRg7lrC63fnutklaR1WmWaKmZG7X980HwtCPWfKesNeUIdgQcaveL5lSA9vsDt_yldYxk4FurOG3PlO48TaqorzyFSA8-5diwNQAE-96j1qezycSi8UYw5xJhYWvM-z1/s1493/Screen+Shot+2013-06-28+at+11.48.08+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ-WmpzunWS_acSRg7lrC63fnutklaR1WmWaKmZG7X980HwtCPWfKesNeUIdgQcaveL5lSA9vsDt_yldYxk4FurOG3PlO48TaqorzyFSA8-5diwNQAE-96j1qezycSi8UYw5xJhYWvM-z1/s400/Screen+Shot+2013-06-28+at+11.48.08+PM.png" width="400" /></a></div>
leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-13708217292139077352013-06-05T08:12:00.004+08:002013-06-05T08:12:59.111+08:00HiNET 的 YouTube Cache 改 IP 了今天發現新的 IP 203.66.48.X。如果有在用加速器的朋友們,iptables 或是 ipf 裡面的 IP range 要增加 203.66.48.0/24 這組了leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-63062696138382119482013-05-23T01:08:00.000+08:002013-05-23T01:08:16.335+08:00擋掉 HiNET 的 YouTube Cache 一些後續<span style="font-family: inherit;">之前看到 gslin 長輩的文章,參考了一些國外的作法,把 HiNet 的 YouTube cache 直接用電腦內建的防火牆擋掉。</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">因為我的電腦是 OS/X 10.8.3 所以要用內建的 pf。步驟如下:</span><br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">edit /etc/pf.conf</span></blockquote>
加入以下規則<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">#Block HiNET YT caches<br />block drop in quick from 210.71.222.0/24 to any</span></blockquote>
存檔以後<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">sudo pfctl -f /etc/pf.conf</span></blockquote>
雖然說理論上在 System Preference 裡面把防火牆打開就會啟動 pf,可是我還是得要跑一次<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">sudo pfctl -e</span></blockquote>
才會有效果,還要研究是為什麼。<br />
<br />
幾個小心得<br />
<br />
<ul>
<li>HiNet 的 YouTube cache 其實有進步,對於不在 cache 裡的影片現在的啟動時間也非常短了,甚至 2k/4k 的影片也可以很正常播放,這很可能是因為我家的網路最近剛剛升級到 100M,還是有很多網友表示播放你管的速度十分悲劇</li>
<li>如果改了以上的規則,DNS 請務必使用非 HiNet,比如 8.8.8.8, 8.8.4.4</li>
<li>對於一些比較熱門的影片,擋掉 cache 反而播放起來會卡住,這還要研究到底是為什麼</li>
</ul>
<div>
<br /></div>
leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-69107176036082426872011-01-26T12:22:00.001+08:002011-01-26T12:22:46.671+08:00OS/X Server Default Gateway 卡死事件<p>把 Mac Mini Server 從上海帶回台灣,打算放在家裡當做 VPN server 來用。既然是 OS/X Server,就不用客氣,直接接上寬頻 modem 應該就可以了,不過接上去以後,發現怎樣都不會動,用 netstat -r 看了一下,發現 default gateway 變成 192.168.121.254。</p>
<p>想了很久,才想起來這是第一次在上海辦公室設定這台 server 的時候,因為一時手滑加上沒有好好 RTFM,所以設定得相當混亂。當時把 en0 設定為固定 IP,default gateway 也就定下來了。</p>
<p>依照一般的常理,只要是 DHCP 在這個 interface 上取得了動態的 ip, gateway, dns 等等設定,之前設定過的靜態 ip 和配置應該就會自動失效,不過 OS/X Server 的怪癖性好像不會依照常理而行,每次 reboot 都告訴我 default gateway 還是 192.168.121.254,變成 dyndns 也完全無法正常動作。</p>
<p>/etc 裡面的設定檔都找過了,只好使出 grep 大法,跑到 '/' 底下用 'grep -r 192.168.121 *',最後才發現,在 /Library/Preferences/SystemConfiguration 裡面,有兩個檔案有這個字串,一個是 com.apple.network.identification.plist, 另外一個則是 preferences.plist。根據<a href="http://discussions.apple.com/thread.jspa?threadID=2530620">此處</a>的說明,這兩個檔案分別控制了所有連接過的網路以及不同位置的網路喜好配置。</p>
<p>從這兩個檔案裡面把 192.168.121 相關的東西全部清掉、reboot,這下子 default gateway 就正常了。</p>
<p>下一步,VPN!</p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com2tag:blogger.com,1999:blog-4916935694506137080.post-73009655782072980102010-12-02T16:42:00.001+08:002010-12-02T16:42:54.009+08:00茉莉二手書店<p><a href="http://www.mollie.com.tw/web/Diary_News_Show.asp?Sel=DC&DCID=DC20080808110657&DIID=DI20091225163452&Keyword=&Page=1&Time=2010-07-31%2016:52:34">茉莉二手書店</a>:</p>
<blockquote>"所以現在台灣人包括年輕人、小孩子,都會逛舊書店。"</blockquote>
<p>這突然讓我想到,小學住在新加坡的時候,其實還蠻常去逛舊書店的。我不記得是誰介紹的,多半是我當時的家教老師 Angeline。會去這類的二手書店,最主要的就是買給小孩子看的小說、故事書。各式各樣的 Lady Birds 的小硬皮書、買了快上百本的 Hardy Boys、Enid Blyton 寫的小偵探故事們,到後來讀出興趣了,才去買新的 Dragonlance Chronicles。</p>
<p>在這裡買來的二手書,封底都會印有某某書店某年某月某日以多少錢賣出的橡皮圖章印記,下一次如果把這二手書看完了,還可以拿回來賣,圖章上也會載明如果你多久時間內拿回來賣,書店會以多少錢收購,其實還蠻好的。後來 Hardy Boys 應該是大部分都賣回去了,等於是拿一小筆錢去租書回來看,如果覺得值得的就自己留下。</p>
<p>當時反正上學只上半天,功課也很簡單,不是玩我爸那台 8088 PC/XT,就是看這些買來的二手舊書小說,要說英文有所進步,這些小說實在功不可沒,副作用,當然就是後來買新書也變得像買二手書一樣,一次買好幾斤擺在家裡慢慢看,不過當時台灣沒什麼這種賣回去換別的書這種事情,所以家裡的書越堆越多;看來該秤斤拿去賣一賣了。</p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-16433715631713575222010-11-12T09:53:00.001+08:002010-11-12T09:53:20.521+08:00How to add numbers using AWK<p><code>
<p>awk 'BEGIN{total=0}</p>
<p>{total += $1}</p>
<p>END{print total}'</p>
<p> </p>
</code></p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-12045932402285583322010-11-11T20:56:00.001+08:002011-01-21T16:04:01.551+08:00And they fixed it in 10.6.5<p>The crash that happened in my last blog post has been fixed with 10.6.5. Hurray!</p>
<p>Also, I think this release is a good one, "Top Sites" in Safari became snappier, I now use the small setting so it's like an image wall.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" title="螢幕快照 2010-11-11 下午8.55.59.png" src="http://lh4.ggpht.com/_Z1_8RBb8Qhk/TNvoCJikw2I/AAAAAAAACPI/uLYWSr_SMvk/%3F%3F%3F%3F%202010-11-11%20%3F%3F8.55.59.png?imgmax=800" border="0" alt="螢幕快照 2010-11-11 下午8.55.59.png" width="300" height="205" /></p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-31282892973550249512010-11-07T20:37:00.001+08:002010-11-11T20:34:01.433+08:00SystemPreference Screensaver/Wallpaper keeps crashing! *ANGRY*<p>I was meddling with some new wallpapers today when I noticed that after I've opened the ScreenSaver/Wallpaper preference pane, it crashes after approximately 10 secs. Searching the net seems to indicate that this might be a plist issue, mostly pointing to <code>com.apple.desktop.plist</code>.</p>
<p>But, that wasn't the issue. I spent about an hour trying to figure out which plist was causing the crash, since if I move all <code>com.apple.*</code> plists out of the usual place, the pref pane stays and runs smoothly. At last, it came down to <code>com.apple.iApp.plist</code>, which is a file indicating the various exported databases for iLife suite and iTunes.</p>
<p><code>
<p><span style="font-family: Helvetica;">I assume that the pref pane program crashed when trying to read </span><span style="font-family: Helvetica;"><code>AlbumData.xml</code></span><span style="font-family: Helvetica;">. Unfortunately, I don't have any proper solution right now other than wait for Apple to fix the pref pane. There is a work-aroun though. Remove </span><span style="font-family: Helvetica;"><code>com.apple.iApp.plist</code></span><span style="font-family: Helvetica;"> before you modify any Screensaver/Wallpaper, the plist will be automatically re-created next time you run iPhoto. This might affect iWeb from retrieving media library from iPhoto and iTunes though.</span></p>
</code></p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-60487200426876523292010-08-26T14:48:00.001+08:002010-08-26T16:14:24.528+08:00The Lack of Common Sense<p>今天看到一篇文章是這樣說的:</p>
<blockquote>
<p>當老鷹活到40歲時,牠的爪子開始老化,無法有效的抓住獵物。牠的啄變得又長又彎,幾乎碰到胸膛。牠的翅膀變得十分沉重,因為牠的羽毛長得又濃又厚,使得飛翔十分吃力。 牠只有兩種選擇:等死,或經過一次十分痛苦的更新過程。 150天漫長的「修煉」。牠必須很努力的飛到山頂,在懸崖上築巢,停留在那裏,不得飛翔。 ⋯⋯ 老鷹首先用牠的喙去擊打岩石,直到喙完全脫落。然後靜靜的等候新的喙長出來。 牠會用新長出來的喙把趾甲一根一根的拔掉。當新的趾甲長出來後,牠便把羽毛也一根一根的拔掉。 5個月以後,新的羽毛長出來了。老鷹開始飛翔。重新得以再過30年的歲月!</p>
</blockquote>
<p>然後好多人說好感動,我看了真的覺得太荒謬了。這整篇文章錯誤百出,而且很不合理,看文章的人難道連一般的常識都已經沒有了嘛?</p>
<p>首先,一開頭說「活到40歲」,文末說「再過30年」,表示說這頭老鷹可以活到 70 歲,真是人生<span style="text-decoration: line-through;">自古誰無死</span>七十古來稀。根據<a href="http://www.snopes.com/critters/wild/eaglerebirth.asp">這裡</a>和<a href="http://wiki.answers.com/Q/What_is_the_lifespan_of_an_eagle">這裡</a>,老鷹的平均壽命大概在 40 年到 50 年,野外真的有可以活到 70 年的老鷹嘛?再者,鳥類的喙和爪,和人類的頭髮與指甲一樣,都是角質層,一直都在生長,隨著日常的耗損維持一定的長度,也因此<a href="http://www.animalhospitals-usa.com/birds/bird-grooming.html">家裡養的鳥類常常需要修喙,免得長得歪了或是長太長了妨礙進食</a>,野外的鳥類的爪、喙則因為有樹皮、石頭等等,得以有正常的耗損,甚至野鳥只怕耗損過度,少見長太長的情況。</p>
<p>另外,鳥羽通常是一塊一塊隨著季節更替,新的羽毛是長在原來的羽毛的位置的,所以說寵物鳥剪羽必須隔一段時間就做一次,因為飛行羽會重新長出來;年紀大的鳥甚至全身的羽毛都會掉光,並不會「羽毛長得又濃又厚」。</p>
<p>失去羽毛的鳥類無法飛行,進食、飲水都會是很大的問題,要「停留150天」不吃不喝,這已經是妖怪等級了吧!</p>
<p>為了這樣一篇沒有常識的文章覺得「好感動」,我真的很無法理解。</p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-55954917070919715102010-08-25T09:41:00.002+08:002010-08-31T15:13:27.976+08:00SSH Connection Multiplexing And DynamicForward Control Script<p>一直以來,上網在中國就是個大問題,很多東西因為有萬里防火牆的關係無法 access,比如 twitter、facebook、wikipedia。來了中國以後,一直都是依靠塞外的機器做 ssh tunnel。最早的時候用的是 local port forward,需要在 remote machine 上面建 http proxy,然後用以下的語法連到遠端的 http proxy 去:</p>
<p><code>ssh -f -N -L <local port number>:<http proxy hostname>:<http proxy port> <user>@<ssh login hostname></code></p>
<p>這樣 data 的傳遞路徑是 Application -> local port -> SSH -> login host -> proxy host,通常 login host 就是 proxy host,但是也可以不一樣,以前用過家裡的機器當做 ssh host,然後 proxy host 設定成 proxy.seed.net.tw,這樣指令就變成</p>
<p><code>ssh -f -N -L 1080:proxy.seed.net.tw:1080 myname@home.machine</code></p>
<p>-f 是要求在輸入密碼(或是不需要輸入密碼)後,ssh process 就到背景去執行,-N 則是要求進入背景後不需要 timeout,也就是說不管這個tunnel上有沒有資料傳送,都一直維持連接的狀態。這樣再把 browser 的 http proxy 設定成 localhost:1080就可以開始用了。<br /> 這樣的作法有兩個問題:</p>
<ul>
<li>只有 http/https protocol 可以用</li>
<li>控制這個 tunnel 的建立和停止機制很麻煩,只能用 <code>ps -auxwww|grep ssh</code> 找出 pid 然後送 -9 給它。</li>
</ul>
<p>後來發現了有 -D 這個 option,可以建立 SOCKS4/SOCKS5 proxy,就可以把指令改為:</p>
<p><span style="font-family: monospace;">ssh -f -N -D 1080 <user>@<ssh login hostname></span></p>
<p>其中的 -g 表示打開 GatewayPort,讓別的機器也可以把這個 port 當做 proxy 來用。改成這樣以後,OS/X 上只要可以用 SOCKS4/SOCKS5 的程式(幾乎是所有會 honor 系統 proxy 設定的程式)都可以用到這個 proxy,而不僅限於 http/https protocol。</p>
<p>只是改成這樣還是無法解決第二個 control 的問題,每次都還是要很工人智慧去用 ps, grep, kill。一直到昨天晚上看到 OpenSSH 5.6 的 <a href="http://www.openssh.com/txt/release-5.6">release</a> 公告,才重新發現有個叫做 multiplexing connection 的東西。</p>
<p>這個功能其實從 OpenSSH 3.9 就已經放進去了,主要是提供一個 local unix socket,透過這個 socket 重複使用已經建好的 connection,省去 authentication handshake 的時間。這個功能要在 .ssh/config 裡面設定</p>
<p><code>ControlMaster auto</code><br /> <code>ControlPath ~/.ssh/sockets/%r@%h:%p</code></p>
<p>這樣建一個 tunnel 或是啟動任何 ssh session 就會在這裡生一個新的 socket 出來,並且把這個主要的 connection 設定為 Master,以後建立到同樣的 user@host 的 ssh connection 就會利用這個 local socket 來 multiplex。對於這個 Master 我們可以送一些控制的 command,目前只有兩個(according to the manpage)exit 和 check。送 exit 當然就會讓 Master 結束,送 check 的話,會 return 這個 Master 目前的狀態和使用的 pid。看到了嘛?出現 pid 了喔,好像可以解決上面第二個問題了,但是有個更簡單的方法,直接送 exit 就好了。所以最後簡化了建立 SOCKS tunnel 的 shellscript,變成如下的片段:</p>
<pre> <code>#!/bin/sh<br /> port=1080<br /> ssh=/usr/bin/ssh</code><br /> <br /> <code>if [ "$2" = "" ] ; then<br /> echo 'Usage: '$0' {start|stop|check} user@hostname'<br /> fi<br /> <br /> if [ "$2" = "start" ]; then<br /> $ssh -f -g -D $port -N $1<br /> fi<br /> <br /> if [ "$2" = "stop" ]; then<br /> $ssh -D $port -O exit $1<br /> fi<br /> if [ "$2" = "check" ]; then<br /> $ssh -D $port -O check $1<br /> fi</code></pre>
<p>加上 host, hostname 的設定,就可以用 ./socks.sh start hostname 這樣的形式來啟動 tunnel,然後用 ./socks.sh stop hostname 來停止,用 ./socks.sh check hostname 來檢查目前的 tunnel 狀態了。</p>
<p> </p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-34900694708030410582010-08-09T21:30:00.001+08:002010-08-09T21:30:58.338+08:00切身的馬克思命題:為了生活而工作、還是為了工作而生活? - 楊照部落格 - Yahoo!奇摩部落格<p><a href="http://tw.myblog.yahoo.com/mclee632008/article?mid=4295">切身的馬克思命題:為了生活而工作、還是為了工作而生活? - 楊照部落格 - Yahoo!奇摩部落格</a>:</p>
<blockquote>"年輕、浪漫的馬克思提出了他的夢想:每個人都應該以「個別性」 的身分活著,而工作是「個別性」當中重要的部分。 沒有人可以再像法國大革命前的貴族那樣遊手好閒、不事生產, 寄生在別人的生產力上,每個人都應該進入新的生產關係裡, 貢獻所能。不過一來,工作是尊嚴的,人人尊重工作者, 鄙視不工作的人;二來,工作只佔生活中的一小部分時間, 工作之餘,每個人都有他自己選擇的生活,去釣魚、去爬山、 去寫詩,或去讀柏拉圖。"</blockquote>
<p>最接近這個理想狀態的,應該是 Star Trek 的世界</p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-8938720525975803702010-08-07T17:18:00.001+08:002010-08-07T17:18:14.445+08:00三太子上身的痴漢水球2.0: [2010/8/7雜談] 崩潰的台灣經濟(偽)<p><a href="http://molesterwaterball.blogspot.com/2010/08/201087.html">三太子上身的痴漢水球2.0: [2010/8/7雜談] 崩潰的台灣經濟(偽)</a>:</p>
<blockquote>"「台灣人已經窮苦到沒辦法留在臺灣過年只能逃難到美國日本,平常沒錢買菜只能出門擠爆高級餐廳吃大餐,房貸壓力太大讓台北每坪價格變成東京兩倍,生活品質太差只能去開車塞爆雪隧,身體太虛只能開跑車載辣妹到墾丁徹夜跑趴,家裡沒水只能跑去宜蘭泡溫泉喝啤酒,房價太貴只能躲在礁溪老爺知本老爺這樣的飯店看2100全民開講,最後滿口塞著鮑魚的嘴巴一直講台灣經濟不好、政府鎖國、中國最大、歐美必衰,所以一切都是阿扁的錯。」"</blockquote>
<p>hahahaha</p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-12022362772328472672010-07-30T12:26:00.001+08:002010-07-30T12:26:11.765+08:00博客來書籍館>沒有中國模式這回事!<p><a href="http://www.books.com.tw/exep/prod/booksfile.php?item=0010475916">博客來書籍館>沒有中國模式這回事!</a>:</p>
<blockquote>"他還充滿了創見的從金融角度解釋傳統儒家文化,指出儒家文化其實是一種隱形金融工具,但這一文化制度使得中國人勤勞而不富有、快樂,使得政府陷入財務危機而走入王朝循環週期。"</blockquote>
<p>他的意思應該是「使得中國人勤勞而不富有、不快樂」吧,我猜。Coincides with my observation though.</p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-19719673149657236142010-07-30T11:49:00.001+08:002010-07-30T11:50:43.376+08:00Apple Magic Trackpad for Mac OS X / Windows (Boot Camp)驅動開放下載 | T客邦 - 我只推薦好東西<p><a href="http://www.techbang.com.tw/posts/3190-apple-magic-tradpad-for-mac-os-x-windows-drive-and-opening-updates?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+techbang+%28T%E5%AE%A2%E9%82%A6+%E6%9C%80%E6%96%B0%E6%96%87%E7%AB%A0%29&utm_content=Google+Reader">Apple Magic Trackpad for Mac OS X / Windows (Boot Camp)驅動開放下載 | T客邦 - 我只推薦好東西</a>:</p>
<blockquote>"Apple推出了超大面積的Magic Trackpad算是這次更新最有梗的產品(如果不算電池的話XD),隨後也接放出了Mac OS X的更新來支援Magic Trackpad,Windows驅動也跟放了出來,現在只要到Apple網站上就能下載來使用。不管是Mac OS還是Windows的系統,都已經可以支援Trackpad多點觸控功能。"</blockquote>
<p>真是想幫老婆大人買一個啊~可是我們都用 MBP,都已經內建 trackpad 了。</p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com2tag:blogger.com,1999:blog-4916935694506137080.post-15363135602811787972010-07-29T23:17:00.001+08:002010-07-30T11:49:40.377+08:00Mac OS/X 支援克林貢語<p><img style="display: block; margin-left: auto; margin-right: auto;" title="系統偏好設定.png" src="http://lh5.ggpht.com/_Z1_8RBb8Qhk/TFGbi5-caJI/AAAAAAAACNc/gQxAwdPZJIE/%3F%3F%3F%3F%3F%3F.png?imgmax=800" border="0" alt="系統偏好設定.png" width="466" height="386" /></p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-84233155858397003702010-07-28T16:57:00.001+08:002010-07-28T17:36:22.091+08:00繼續昨天的奮鬥──Subversion + Trac on Solaris, Part 2<p>今天花的時間比較少,但是一樣遇到問題。</p><p>依照昨天的作法,已經把所有該 compile 的東西都 compile 好了,但是今天啟動 apache 的時候才發現,mod_dav_svn 和 mod_authz_svn 這兩個 module 版本和 Solaris 內建的 Apache 不合。內建的是 2.0.x 系列,Collabnet 上面抓下來的是給 2.2 系列用的。所以……係裡~又要自己來惹~</p><p>參考了<a href="http://hi.baidu.com/yafeiie/blog/item/0b2e5ef0234250c67931aab8.html">這篇文章</a>,先去<a href="http://subversion.apache.org/">這裡</a>抓 subversion 最新版的 source 回來。後來發現直接用 Sun Studio 12 也可以順利 compile,唯二的麻煩是 neon 和 sqlite3;這兩個 lib 在系統裡面都是沒有的,要另外抓。sqlite3 要抓<a href="http:// www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz">這個</a>版本,neon 要抓<a href="http://www.webdav.org/neon/neon-0.29.0.tar.gz">這個</a>。</p><p>sqlite3 裡面有個 <code>sqlite3.c</code>,解開後放在 <code>subversion/sqlite-amalgamation</code> 底下,然後把 neon 整個放在 <code>subversion/neon</code> 下。這時還要解決 ld 找 library 的問題。</p><p>Solaris 下,常用 LD_LIBRARY_PATH 來取得 ld(1) 找 library 的位置,但是也可以用 crle(1) 來設定整個機器上整體的 library search path。編譯 subversion 需要 libexpat (會在 install phase 的時候用到),這個奧妙的 library 放在 /usr/sfw/lib 裡面,往裡面一看還有好多其他常用的 3rd party library。</p><p>總結一下我們需要以下幾個 LD_LIBRARY_PATH:</p><blockquote><p><code>/usr/local/lib <br /></code><span style="font-family: monospace;">/usr/local/ssl/lib <br /></span><span style="font-family: monospace;">/usr/sfw/lib</span></p></blockquote><p>PATH 裡面則必須至少含</p><blockquote><p><code>/usr/local/bin <br /></code><code>/usr/ccs/bin</code></p></blockquote><p>全部準備好,就可以開始下指令了:</p><blockquote><p><code>./configure --prefix=/opt/subversion --with-apxs=/usr/apache2/bin/apxs --enable-shared --enable-ssl</code></p></blockquote><p>這樣編譯出來的 subversion 會自動把該有的 module 丟進 apache2 的 libexec 目錄裡面,也會把 LoadModule 的敘述行放進 /etc/apache2/httpd.conf</p><p>經過這樣下來,至少已經把 subversion/apache2 這對工具搞定了,已經可以開始提供服務了,至於 Trac,那又是另外一個我還沒寫的故事了~</p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-55381783755739160912010-07-27T18:18:00.002+08:002010-07-27T20:39:47.467+08:00Subversion + Trac on Solaris<p>今天為了要把 SVN + Trac系統移植到 Solaris上吃足了苦頭。</p><p>Trac 0.12 推出了,好處是可以一次使用多個 repository,但是最低要求要有 Python 2.5 or 2.6。Solaris 10u6 內建的只到 2.4,所以得要裝套件。找來找去沒有很好的套件,只好自己抓 source 來編。</p><p>自己抓來的東西有個麻煩就是不知道該放哪,於是把 --prefix 設定到 /opt/python-2.6 底下去,這樣如果要砍掉重練比較單純一點。用安裝好的 gcc-3.4.6 來編。 Python 安裝完成,抓了 setuptools, Genshi-0.6 和 Trac-0.12 下來,直接就安裝到 python 2.6 的 site-packages 裡面去。</p><p>沒想到要裝 mod_wsgi 的時候卻出了包。mod_xxx 在編譯的時候,最好使用和 apache 編譯的原始編譯器一樣,根據 /var/apache2/build 裡面的 libtool 表示,原來的 apache2 是用 /opt/SUNWspro/bin/cc 編出來的,查了一下發現是 SUN 自己的 compiler...orz,還好現在的 Sun Studio 12u1 是不要錢的,抓了放進去,才知道原來新的 cc 已經不放在 SUNWspro 裡面了,解決的方法也不難,直接把 /usr/ccs/bin/cc symlink 過來,這樣 libtool 就不會抱怨找不到正確的 compiler 了。</p><p>解決了 mod_wsgi 的編譯問題。整理一下整個的編譯過程和 flags:</p><p>Python:</p><p><code>export CC="cc -mt -fast" <br />export CFLAGS="-fast" <br />./configure --prefix=/opt/python-2.6 --with-threads --without-gcc --disable-ipv6 --without-fpectl --enable-shared</code></p><p><code></code></p><p><code><p>後面的 <code>enable-shared</code> 很重要,不然編譯會出錯。mod_wsgi 需要 multi-threaded python,所以 CC 那邊要加上"-mt",而且 configure 要加上 <code>--with-threads</code></p><p>mod_wsgi:</p><p><code>./configure --with-apxs=/usr/apache2/bin/apxs --with-python=/opt/python-2.6/bin/python</code></p><p>SVN 用的是 CollabNet 出的安裝包,明天再來看看這樣配起來能不能動吧~</p></code></p><p> </p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-25949203414458138312010-07-12T14:30:00.001+08:002010-07-12T14:48:16.630+08:00MacRuby, Python, Ruby 在 OS/X 下, interactive shell 中文輸入的問題<p>之前不管是 Ruby 或是 Python,在 OS/X 下,interactive shell 輸入中文大部分都會出現問號。今天找了一下 MacRuby 的相關資料,發現原來是 readline 的問題。</p><p>雖然說 macirb 可以用 <code>macirb --noreadline</code> 跳過去,可是這樣就失去了豐富的 history 功能,也無法使用 Readline module了。</p><p>網路上有些文章建議直接去抓新版的 readline 來改,但是從 MacRuby 的<a href="http://www.mail-archive.com/macruby-devel@lists.macosforge.org/msg04402.html">這個</a>看來,是系統內的 libedit 缺乏了 multibyte 支援導致的,所以連帶 python 也會有一樣的問題。於是直接去抓了 <a href="http://www.canonware.com/download/libedit/libedit-2.6.7.tar.gz">libedit 2.6.7</a> 下來,configure 完 make 了以後,丟到 /usr/lib 裡面取代 libedit.2.dylib (當然,要先備份),這樣不管是 python 或是 ruby interactive shell 都可以直接打中文了。</p><p>**後記**</p><p>話說太滿果然會爆炸,放進去以後有些功能就變得怪怪的,正規的作法還是要先拉 Apple 自己的 libedit-13 下來再說。</p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-31071122716453162612010-06-24T17:27:00.001+08:002010-06-24T17:27:46.591+08:00一座安於旁觀的城市 - 楊照部落格 - Yahoo!奇摩部落格<p><a href="http://tw.myblog.yahoo.com/mclee632008/article?mid=3968">一座安於旁觀的城市 - 楊照部落格 - Yahoo!奇摩部落格</a>:</p><blockquote><p>“長期以來,台灣太過於重視別人的眼光,觀看別人時,總想著「 那什麼時候也讓人家看我?」用一種強烈自我中心的態度, 將所有事情都投射成和自己有關,結果就弄得事事關己, 沒有事不關己的一種餘裕閒適; 同時倒過來也就對實在和自己扯不上關係的事, 發生不了真正的興趣。”</p></blockquote><p>我還蠻喜歡這個 POV 的。昨天晚上林爸爸林媽媽邀我參加他們的晚餐會,在寶來那的餐廳裡面,一邊跟一個長輩聊著我對於台灣前途的一些想法。我認為台灣的年輕一輩的人,有很多的人都在努力尋找自己的方向,把精神放在自己的目標上,其實並沒有那麼悲觀。並不是別人有什麼我們沒有我們就比較差,而是我們到底未來想到些什麼地方?對於這些,我是樂觀的,並不擔心。</p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-65851446380809432182010-06-13T22:12:00.001+08:002010-06-13T22:22:55.467+08:00Extension for Safari<p>Safari 出了新版,終於出現 Extension 功能了</p><p><img style="display: block; margin-left: auto; margin-right: auto;" title="螢幕快照 2010-06-13 下午9.41.21.png" src="http://lh4.ggpht.com/_Z1_8RBb8Qhk/TBTpqdl-UQI/AAAAAAAACMU/xgSeeLVUDsM/%3F%3F%3F%3F%202010-06-13%20%3F%3F9.41.21.png?imgmax=800" border="0" alt="螢幕快照 2010-06-13 下午9.41.21.png" width="500" height="389" /></p><p>雖然說中文翻譯相當怪異,不過只要用 Safari 內建的工具,加上 HTML, CSS 或是 JavaScript 檔案,就可以用內建的工具把延伸功能組裝起來。</p><p><img style="display: block; margin-left: auto; margin-right: auto;" title="螢幕快照 2010-06-13 下午10.17.53.png" src="http://lh6.ggpht.com/_Z1_8RBb8Qhk/TBTptu-LJsI/AAAAAAAACMc/EY23TGs3bgU/%3F%3F%3F%3F%202010-06-13%20%3F%3F10.17.53.png?imgmax=800" border="0" alt="螢幕快照 2010-06-13 下午10.17.53.png" width="500" height="385" /></p><p>自己最常用的幾個小功能都是一些 Bookmarklet,比如 Share on Facebook 或是 Post to Echofon (這個是從 Post to Tweetie 改的),就順手把他們變成按鈕式的 extension。</p><p><img style="display: block; margin-left: auto; margin-right: auto;" title="螢幕快照 2010-06-13 下午2.21.50.png" src="http://lh4.ggpht.com/_Z1_8RBb8Qhk/TBTpu91oaTI/AAAAAAAACMg/iXrAh81JlTo/%3F%3F%3F%3F%202010-06-13%20%3F%3F2.21.50.png?imgmax=800" border="0" alt="螢幕快照 2010-06-13 下午2.21.50.png" width="111" height="54" /></p><p>不過 Plurk 的部份用的是 URL 的 status?= 的方法做上去的,所以還沒有那些 custom 動詞,接下來要把 JSON API 的部份放進來,或許 UI 上還要提供更好用一點的 form submission 畫面,這樣就可以更有彈性了。</p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com0tag:blogger.com,1999:blog-4916935694506137080.post-53878318676589799682010-05-16T16:56:00.001+08:002010-05-16T16:56:37.820+08:00很久沒寫 blog 了<p>距離上一次寫 blog 已經超過兩個月了。四月的時候回了趟台灣,跟冠吟把一些事情大致上敲定了,順便也去日月潭玩了一趟。在台北待了一個月,有種把整個人「轉」了回去一圈的感覺;回台北,行動自由(有機車、有捷運,還借得到車可以開)的感覺真的很好,台北也在這五年之間,變成了一個很讓人舒服的地方。到誠品去買書、去漫畫王看漫畫、在 216 巷看著各種吃食的店,然後挑一間看得順眼的去吃。</p><p>五月初一回到上海,完全不適應。一回到上海就面對公司巨大的變化,未來到底會如何並不知道,現在看起來是又期待又怕受傷害。還是說,我對中國的胃口已經結束了嘛?</p>leafy7382http://www.blogger.com/profile/00491955626781050351noreply@blogger.com2