2009-03-22

Chrome無法啟動

最近Chrome突然無法啟動,重裝也裝不起來,另我十分困擾,才發現原來我已經依賴Google Chrome這麼深了..

雖然chromium可以用,不過chromium沒內建自動更新而且少了右鍵google選取文字的功能,用起來不太習慣。

後來研究了一下才找到解決方法。
如果你的chrome也無法啟動或安裝的話,雖然不一定跟我問題的原因一樣,但是下面解決的經驗可以參考一下

首先我先去找了chrome把檔案放在哪裡
平常的捷徑是指向"%userprofile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe"
(p.s %userprofile% 通常是在"C:\Documents and Settings\你的帳號\")

到%userprofile%\Local Settings\Application Data\Google\底下找,砍了Update跟Chrome資料夾都沒什麼用。

不過我有注意到,當自動下載完更新的時候,他就會指到"%userprofile%\Local Settings\Temp\chrome_XXXXX\chrome.exe"
我猜chrome的作法是在下在更新檔解開到Local Settings\Temp之後,就把他捷徑指向這裡,這樣下次啟動的時候這個程式才會把更新的程式覆蓋"Local Settings\Application Data\Google\Chrome\Application",然後執行新版的chrome (要這樣做是因為chrome正在執行的時候,執行檔會被鎖住,無法更新覆蓋,但是google又想要默默的更新,不想要每次更新就叫你關掉chrome)

我先把"%userprofile%\Local Settings\Temp\"底下的東西都殺掉,然後執行chrome的安裝一邊觀察他在Temp裡面做了什麼,結果發現底下多了一個chrome_installer.log
裡面的內容是[0322/013951:ERROR:main.cc(363)] Higher version is already installed.

這表示chrome一定有把目前版本的資訊存在一個地方。

接著以"chrome"為關鍵字搜尋登錄檔,就找到了HKEY_CURRENT_USER\Software\Google\Update\Clients\{8A69D345-D564-463c-AFF1-A69D9E530F96}
裡面紀錄著chrome的版本,將他移除之後就可以正常安裝了



問題如何產生的?
我之前就有使用Google Chrome Channel Chooser 把chrome改成DEV的版本,極有可能跟他有關。不過應該有許多人都有改,類似的案例卻不多(google chrome help上有人跟我有相同的問題 )。
比較可能的應該是自動更新下載完後,在下次啟動更新的中間意外的失敗。造成登錄已經更新版本號,但是檔案安裝不完全,無法執行。
另外如果有用了Channel Chooser改版本,然後沒有用內建的刪除,直接砍檔案的話,之後重裝也是會有一樣的問題,因為重裝的時候他預設是用stable的版本。

2009-03-15

[Note] Weekly Summary 2009/03/15

Javascript

Gallerybox
http://www.sam-sys.com/gallerybox.html

一個新的jQuery秀圖plugin 像是相簿一樣的呈現方式

GX - Javascript Animations Framework
http://gx.riccardodegni.net/
配合jQuery的動畫framework,像YUI裡面的動畫功能 那樣

Google App Engine

Reducing Page Load Time on Google App Engine Pages With Multiple JavaScripts
這篇文章主要是在介紹在google app engine中,動態的將網頁中所用到的所有javascript壓縮並合併存在memcache,這樣可以有效的減少request數,降低網站載入的時間。
我自己也有用類似的方法,不過我是在將程式update上去GAE的server之前,先去執行一個python的script把所有的javascript和CSS各合併成單一檔案,再呼叫YUI compressor 來壓縮,直接變成static file上傳。我想這樣還是比從memcache讀取來的有效率,而且當你javascript有變動update上去之後,如果沒有清掉memcache裡的資料,那網頁還是會載入舊的javascript。另外就是用YUI compressor還可以支援CSS瘦身。

JaikuEngine
http://code.google.com/p/jaikuengine/
http://jaikido.blogspot.com/2009/03/jaikuengine-is-now-open-source.html
Google之前宣佈停止Jaiku 的開發,然後把Jaiku移植到google app engine上面,並開放原始碼(就是說現在任何人都可以把他抓下來放到GAE上跑自己的Jaiku),不知道會不會有人接手維護。

John Skidgel 所製作精美又實用的Cheat Sheet, PDF檔一共有兩頁
SoftWare
Animal Shelter Manager
http://sheltermanager.sourceforge.net/home.php
真的是什麼軟體都有XD
這是個管理動物的軟體 可以適用於 動物園 動物收容中心 獸醫等地方 支援Windows, linux, BSD系列, MacOS X..多個作業系統
作者本業是個軟體工程師 因為在RSPCA (英國防止動物虐待協會, 中文網站 )當志工而寫了這套軟體

Proxifier
http://www.proxifier.com
讓不支援設定代理伺服器的程式,透過proxy連線。跟Freecap之流的軟體比起來的好處是不用透過該軟體執行,例如有個程式A執行後會去執行另一個子程式B,用Freecap就只能讓A透過
proxy,Proxifier的好處就是可以讓AB都用代理。


Sample Socks5 Proxy Server Demo
http://www.freevbcode.com/ShowCode.Asp?ID=5057
Socks 5 Server in VB
Pysocks
http://sourceforge.net/projects/pysocks/
Socks server in python







2009-03-01

[Note] Weekly Summary 2009/03/01

好久沒寫,快變成yearly summary了XD

Raphaël
目前看到最重意的javascript繪圖library,大小只有36kb,支援Firefox,Safari,Opera,IE,網站上沒提到但是chrome我測試過也可。

Cross-Browser Inline-Block
http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/
需要動態排列float的div時常遇到的問題,這篇文章提供使用CSS的解法。


Add N Edit Cookies
https://addons.mozilla.org/firefox/addon/573
Firefox修改Cookie內容的外掛


TopStyle Lite
http://www.newsgator.com/individuals/topstyle
http://www.newsgator.com/download/products/ts3lite.exe
免費版的TopStyle,編輯CSS檔十分好用


Firefox的外掛 Tiny Menu
自從使用chrome後,總覺得firefox的瀏覽畫面很小,這個外掛可以把firefox的選單放在一個鍵裡面,然後你可以自己再用自訂工具列的功能把其他按鈕和搜尋列都放到上面,這樣就可以增大一點瀏覽面積。

網路電台架設初學心得 (二)

上一篇是 網路電台架設初學心得 兩年多前寫的,待續到現在都還沒補完= =

現在剛好又有在玩電台就把他補上


附註一下,oddcast這個名稱被別的公司註冊走了,所以現在更名為Edcast,但是因為是最近改的,網路上很多資料還是用Oddcast這個名稱.

電台架構
DJ端
撥放器(foobar2000,winamp..)
擷取音訊&編碼&傳送到伺服器(oddcast/edcast)
伺服器端(shoutcast、icecast..)
需實體IP.

其中播放器跟Edcast(oddcast)必須要在同一台電腦(DJ的電腦)上,而伺服器在哪裡都可以,也可以跟DJ端在同一台,只是要在網路上放送的話,伺服器一定要有個實體IP。

現在開始介紹實際架設的步驟,以下以Foobbar2000+Edcast(Oddcast)+Soutcast為例

Step 1. DJ端的軟體安裝

Foobar2000的安裝就不介紹了,主要說明Edcast(Oddcast),可以從這裡取得http://www.oddsock.org/tools/edcast/
他有三腫版本可以分類成:

  • 播放軟體外掛版
    • Foobar2000 Version
    • Winamp Version
  • 獨立版本
    • Standalone Version

他們的差異在之前的文章就已經說明過了,在使用上兩種版本的選擇:

  • DJ要透過麥克風講話 → 獨立版本
  • 使用Foobar2000 、Winamp以外的軟體播放音樂→ 獨立版本
  • DJ不說話 + 不希望電腦的聲音(例如你正在瀏覽的網頁播放的音樂) 傳到廣播→ 播放軟體外掛版

選擇你需要的版下載後,就直接執行安裝檔,兩種版本的安裝步驟很類似

  1. 選擇要安裝的東西 - Edcast本身以及音訊編碼(select compoments to install)
    跳過第一個同意授權的畫面之後,就會到要你勾選一些編碼的視窗(裡面有),Edcast(Oddcast)負責擷取聲音然後轉成mp3、ogg之類的格式在傳道伺服器,而轉換mp3、ogg等格式的工作Edcast(Oddcast)是依賴別人寫好的一些程式,這裡勾選的東西除了Edcast本身的程式之外就是這些用來轉檔的程式(XXX.dll),其中專MP3編碼這個最常用的程式檔,因為授權的關係沒辦法附在Eddcast裡面,所以預設沒勾選,就算你勾選了,它等一下也只會跳出可以下載的網頁,所以這裡也不用急著勾選MP3。
    不知道上面在說什麼也沒關係,這一頁完全不用動它,按Next就好了
  2. 要裝在哪?
    獨立版的話,就選個你想裝的地方安裝就好了
    Foobar2000外掛版就要選擇你當初裝foobar2000的地方(winamp同理),特別注意的是,如果你的foobar2000正開著,安裝完之後要重開Edcast才會出現。
  3. 安裝MP3編碼
    為了讓你電台能被大部分的人收聽,我想每個DJ都會需要這個步驟,因為一般使用windows的聽眾,如果沒有特別安裝什麼播放軟體或編碼,大概也只能聽mp3格式的廣播。不過edcast裡面沒有附(可能是因為授權的問題),所以我們要自己去下載。我們需要的檔案名稱叫做"lame_enc.dll",你可以直接Google "lame_enc.dll" 找載點,或是到RareWares網站Lame mp3下載頁 選個比較新的下在就可以了,壓縮檔裡面會有個lame_enc.dll,依照你使用的edcast版本放到適當地地方。
    - 如果是使用獨立(standalone)版本,就把他放到安裝edcast的資料夾下面。
    - 播放軟體外掛的版本就放到播放軟體的資料夾下面,例如foobar2000就放到跟foobar2000.exe同個資料夾
這樣就完成DJ端軟體的安裝
Step 2. Server端的軟體安裝與設定

如果是連接別人的伺服器或打算使用免費伺服器(LiveDoor)的可以跳過這步驟。
這裡介紹的廣播伺服器軟體是ShoutCast,(除此之外還有開放原始碼的ICEcast這裡就不多作說明)。
ShoutCast不一定要安裝再跟DJ貒同一台電腦,這裡有個之前提過的重要觀念,就是關於音樂資料的流向。
DJ端跟Server端在不同電腦

DJ端
Server端 聽眾端
edcast將聲音轉成MP3 ShoutCast接收到MP3資料,發送給聽眾


...
聽眾1
聽眾2
聽眾3
...
聽眾N
從這裡可以觀察到,當DJ以16kb/s的頻寬上傳音樂到Server端,而同時有5個聽眾的話,Server端將負擔16x5=80kb/s的上傳流量,但是不管變成多少聽眾DJ端的電腦都只要上傳16kb/s的流量。
DJ端跟Server端在同一台電腦
DJ端 聽眾端
edcast將聲音轉成MP3
ShoutCast接收到MP3資料
發送給聽眾



...
聽眾1
聽眾2
聽眾3
...
聽眾N
所以不管怎樣Server端盡量放在頻寬比較大的電腦,這樣才能增加可收聽的的聽眾,例如DJ的網路只有2M/512,但是他有個朋友A用的是學網,那就可以請他朋友安裝shoutcast,DJ只用edcast連線到A的電腦,聽眾再連到A的電腦收聽,這樣就能容納叫多的聽眾。
另外,Server端"必須"要有實體IP可以連接,虛擬IP的話需要從防火牆設定,不過些再講下去就離題了,看不懂的可以google一下"虛擬IP"。

  1. 下載並安裝軟體
    到ShoutCast網站的server下載頁 依照伺服器的作業系統版本下載並安裝。(windows以外的版本直接解壓縮就可以用了)
  2. 設定ShoutCast (修改sc_serv.ini)
    這裡先只提幾個最重要的設定來修改,將sc_serv.ini打開後,找到以下項目修改
    - MaxUser: 最大聽眾數,預設是32人,這部份請依照自己頻寬調整,如果頻寬負荷不了,聽眾聽起來會很lag。
    - Password: DJ端連接到shoutcast的密碼。
    - PortBase: shoutcast所使用的port,預設是8000,假如你的伺服器IP是123.21.21.21,那聽眾就可以從http://123.21.21.21:8000收聽
設定完成後直接執行就可以了

接下來就是DJ端(edcast)連線到伺服器的設定...待待待續...
(三個"待"表示下篇不知道什麼時候才會寫..