2009年11月20日 星期五

iPhone 備份時間過久問題

itunes在備份iPhone時,有時候會碰到備份很久的問題

以下是網路上找到的幾個解法

一、取消錯誤回傳
The Idiots Guide to Making your Iphone Backup fast
根據這篇的說法,iPhone備份通常只需要一分鐘。
但是當備份動作有問題時,iPhone會上傳報告到apple,但由於apple伺服器太慢/檔案太大,因此耗費了許多時間,造成了備份很久的假象。

要取消這動作的話,請按照以下步驟進行

1.把iPhone連線電腦,然後在中間上方會出現同步動作,按[x]取消
2.到左邊的裝置->摘要,把選項中的"當此iPhone連接時自動同步"取消
3.把iPhone拔掉重插一次
4.這次插入後,到裝置->iPhone上按右鍵選擇重置警告訊息
5.按下下面的"同步"按鈕,第一次會出現一段警告訊息如下,其中的別再詢問預設是勾選的,不過我已經取消了。由於這設定預設是傳送且別再詢問,因此iPhone每次會傳送報告。你可能也是第一次看到吧?

 2009-11-20 下午 05-43-27
6. 接著可能有點匪夷所思,請取消別再詢問,根據網站所說,如果不出現這個視窗,iTunes在每次備份出問題時都會傳送報告。
也就是說,勾選別再詢問=以後都要傳送給Apple..Apple的語法怪怪的。
根據我的測試,也確實是如此。如果有人有不同的發現歡迎跟我說。
7.接著就簡單了,請選擇不要傳送,然後就可以很快的備份完成,同步的話就要看你更新的資料量了。

8.以後要同步時,記得以下步驟,a. 自己點選同步 b.取消別再詢問 c. 選擇不要傳送,這邊要說明一下,b/c只有在同步出現問題時才會出現,所以你可以檢查一下你的同步有哪邊有問題。以我為例的話,我的機器有兩個問題,a. PodCast中的某些檔案無法在iPhone播放, b. 電腦上的某些檔案無法在iPhone播放。

最後提醒一點,iTunes會先備份愛封上的檔案,然後才更新愛鳳

這表示,如果你用iTunes下載APP,iTunes會先備份愛鳳,然後把APP裝上去。下一次連結時才會把這個APP放到備份檔案中,這時候可能會比較久一點,不過還是比動輒耗時數十分鐘的備份/傳送好太多了。

二、備份檔毀損
根據iPhone backup takes too long – Solution

根據該文,有時候愛鳳的備份檔案會有問題,因此要刪除重建

基本上,iTunes中提供刪除備份檔案的方法。

如果無效的話,你可以到/MobileSync/Backup/中找出備份檔刪除

windows 7 中應該會在C:\Users\xxx\AppData\Roaming\Apple Computer\MobileSync\Backup\xxxxxx\下

愛鳳中的每個APP都會產生兩個檔案,.mdinfo和.mddata,因此一次要砍兩個

不過由於某些APP會有不只一組檔案(因為有cache memory files),所以最好還是先備份一下比較好。

把該目錄下的檔案刪除後,就可以重新備份了。

我沒有用到這招,這應該是最後手段了..

三、我自己的狀況:
我的情況可能比較特殊,不過也可能蠻常見..
由於我沒有辦法從iTunes購買歌曲,所以我的歌都是從電腦拉的
在同一資料夾中,我把MV也一起放進去了
結果在備份的最後會碰到.mpg影像檔案無法同步的問題
因此我把那些檔案從iTunes列表中移除,然後備份就很順了(因為不用傳送錯誤報告)
如果你有相同問題,可以考慮參考看看

2009年11月9日 星期一

NHibernate 常見錯誤

"NHibernate.MappingException : Unknown entity class:xxx.Class":
關聯table的xxx.hbm.XML檔沒有設定為內嵌資源


"NHibernate.InvalidProxyTypeException : The following types may not be used as proxies"
把xxx.hbm.xml檔中加入lazy="false"

"NHibernate.MappingException : persistent class ClassName not found" or "NHibernate.MappingException : associated class not found: ClassName"
NH找不到對應的類別,通常是設定問題。
一個簡單的做法是去assembly中設定

2009年11月2日 星期一

NHibernate

NHibernater是一個用來建立AP和DB橋梁的工具
受益於JAVA要處理的環境太複雜,因此有人研究了Hibernate
在實作上,NH受到了JAVA的影響,需要處理的設定檔很多
使用時,可以明顯感受到NH所使用的語句簡單,可惜背後邏輯複雜
(這也是NH的學習曲線長的原因之一)

如果是複雜的系統應用,使用NHibernate應該可以有效增加PG的產能
不過NHibernate的效能問題是個隱憂

現在回想起來,NHi似乎只是為了讓Java人員快速上手的工具而已

2009年5月2日 星期六

日常生活中,電腦能做到甚麼?

電腦基本上就是一個工具,一個資訊處理工具,他有一個基本流程
資訊輸入->處理(分類、計算、轉換、歸類等)->輸出
以上有三個重點,一、要有資訊的輸入。二、所輸入的資訊要有處理規則。三、能夠有明確的輸出格式。

資訊輸入:資訊是啥?一個比較簡單的說法就是能被記錄下來的訊息。
以上的說法有一點小問題,因為資訊其實可以分為內隱和外顯
內隱資訊是難以被記錄的,例如氣味、氣質等較虛幻的
外顯則是相對容易被記錄的,例如身高、體重
另一個問題是數位/類比格式的問題,如果有規則的話,這部分可以透過轉換器來達成,例如modem就是一例。

大部分情況下,電腦/資訊系統的處理目標是外顯資訊。主要問題倒不是無法處理內隱資訊,而是內隱資訊難比被記錄/編碼。因為沒有資訊的輸入,自然就沒有資訊的產出(電腦無法無中生有)。


而處理內隱資訊的難易度則是另一個問題,由於內隱資訊通常較隱晦,比較像是個人價值觀的體現,因此在不同的情況下會產生不同的效果,難以套用單一處理規則。
在處理內隱資訊時,比較常見的應用是統計這種機率性問題。

輸出這部分通常沒有問題,不過由於電腦是數位系統,所以產生了一個先天限制:電腦的輸出只能是數位格式。如果是類比裝置,就需要進行數位類比的轉換。最常見的是modem和音效裝置。

從資訊系統延伸出來的是自動控制系統,在原先的系統上延伸出了對系統的控制
資訊輸入->處理(分類、計算、轉換、歸類等)->輸出到裝置
裝置產生回饋資訊->處理(調整輸出等)->再次輸出->再次產生回饋資訊

這邊會產生兩個限制
第一是裝置上面必須要有接受系統輸出的輸入裝置
另一個限制是該裝置上要有另一個能產生回饋資訊的(輸入)裝置,不過這一部分倒不是必要的(有些時候是射後不理的)

了解以上資訊後,我們可以開始思考問題了
日常生活中,電腦能做到甚麼?->擴展->有哪些事情是我們想要電腦幫忙且電腦可以幫忙的?->有哪些事情是我們不想要/沒想過讓電腦幫忙,但是電腦可以幫忙的?
這部分可以拆成兩個方向思考,一、有哪些事情需要決定?二、電腦能做到哪些事情
一個簡單的方法是從ask.com之類的問問題網站取得第一題的答案再思考能不能使用電腦處理(以及成本)
再次細分後,問題可以決定成以下兩個
一、日常生活中,有哪些資訊是我們想要處理的
二、有哪些裝置是我們可以應用的?包括做為輸入/輸出/資訊

2009年4月21日 星期二

PHP程式語言入門

寫得很爛的書..
作者的PHP實力可能很強,舉的例子還不錯
不過提供的範例說明之少之爛之前後順序不對也令人印象深刻
其實學程式時,最怕的是一堆眉眉角角的小地方
對初學者來說,這種小地方幾乎可說是一定會造成寫程式的困擾
對剛接觸這領域的老手來說,問題小一點,不過作者也不能因此就把所有的範例扔出來不做解釋阿..

anyway, 施威銘研究室最近出了一本PHP的書,我在朋友的店看過,感覺還不錯
想學的人可以去光華的益大找找看

GWT: google web toolkit在幹嘛?

今天借到了Google web toolkit的書(google web toolkit的實作與活用)
一開始很是興奮(預約了一個月才拿到)
不過翻了幾頁之後,發現越看越不懂
不懂的原因主要來自於書中介紹了安裝環境、開發過程
卻沒有提到GWT應用程式的適用環境
well, 看起來他是預設拿到這本書的人已經了解GWT的意義和使用時機了
可惜我對GWT清清白白(?)..

怎麼辦呢? 只好google一下了
以下是google之後得到的答案

GWT是啥:GWT是使用JAVA開發環境弄出HTML+JavaScript網站的工具,也就是AJAX網站產生工具。

GWT的目的:讓AJAX網站(簡單來說,就是網頁)變得更容易開發,而且降低與系統環境的依賴度(伺服器只要能跑HTML,使用者的瀏覽器能跑JS就可以使用)

GWT的開發方式:使用JAVA語言和GWT套件進行開發,完成後編譯成JS+HTML檔放到server提供服務

GWT優點:JS的麻煩幾乎是所有web programmer的共識。
也因此目前的web技術都盡量整合JS到其中。不過其他的技術/語言多少都有和伺服器上的特定套件綁定。
GWT透過使用跨平台的JAVA和純文本HTML+JS開發環境,理論上而言,可以達到無視環境的開發效果。
而programmer只要處理JAVA語言,前端的JS和HTML就由GWT負責產生。(不過目前很多這類型的競爭對手了)
換句話說,GWT是JAVA programmer的AJAX編譯器? 就像RoR1.1對Ruby, ASP.NET Ajax Extension for ASP.NET programmer.

GWT限制:
外在問題:一、瀏覽器功能的限制。二、HTTP協定的限制(這是因為GWT的目標中不包含桌面程式)
內在問題:GWT適用於功能簡單的環境。不適用於複雜、需和許多不同元件溝通的程式開發。
內在問題是參考各家說法而來,真實性有待驗證。

2009年4月20日 星期一

Firefox addon: 網頁設計篇

Firefox的addon很多,以下是針對網頁設計時有用的一些東西

版面設計
ColorZilla: 偵測顏色
Image Zoom: 可放大縮小圖片
MeasureIt: 可在網頁上拉出像素尺規測量距離
Stylish: 自訂網站與使用介面的外觀

======================================================================



JS開發
ExecuteJS: 提供Javascript Console功能
JavaScript Debugger
JavaScript Deobfuscator: 顯示網頁上所執行的JS
jiffy: 顯示網頁中的Javascript timer
Obtrusive JavaScript Checker: 尋找HTML元素中的JS事件和對應的JS連結

======================================================================


網頁偵錯
Firebug: 功能強大的網頁開發工具
Codeburner for Firebug: 提供使用Firebug時的HTML/CSS參考文件
Firecookie: 提供Firebug檢視Cookie功能
FirePHP: 提供Firebug開發AJAX的功能 (要注意使用,只要啟用就會攔截網站內容,照成無法用預設方式存取的狀態)
Inline Code Finder for Firebug: 找出網頁內元件的JS碼
Web Deveper: 和Firebug類似的工具,比較簡單易用。適合用於檢視整體網頁。

DOM Inspector: 查看網頁DOM
Inspect Context: 搭配DOM Inspector使用可檢視特定node下的內容
InspectThis: 搭配DOM Inspector使用,檢視目前節點下的內容
Hackbar: 測試網站是否有SQL Injection漏洞的手動工具

======================================================================


檢查網頁/站台回應
Live HTTP headers: 另開一個sidebar顯示瀏覽網頁時產生的Header資訊
Modify Headers: 可以添加、修改、過濾http request表頭
CookieWatcher: 將指定的cookie值顯示在狀態列
Extended Cookie Manager: 可用於修改特定網站的Cookie值
HttpFox: 檢查HTTP封包
Poster: 方便自訂URL請求的工具
refspoof: 假造reference資料工具
Tamper Data: 檢視/修改 http表頭,也可以對request進行追蹤和記時

======================================================================


字碼:
base64=>Encoder: 將圖片檔轉成字串,可搭配URI:DATA使用
Charset Switcher: 制定個別網站的預設編碼
Unicode Input Tool/Converter: 轉換輸入字元成UNICODE編碼,不過應該還能幫助轉換成Html-encode。功能完整,不過會另開視窗。
UnicodetoHTML:將Unicode轉換成HTML-encode。功能較弱,不過只佔用sidebar。

======================================================================

加密
xssme
fireE Encrypter


======================================================================


設定Firefox:
Consile2: 錯誤主控台
JavaScript Options: 提供Firefox更強大的JavaScript管理功能

======================================================================


還不確定功用的:
Character Identifier:
InspectorWidget: 在DOMi下添加按鈕和文本選單?
Pixel Perfiect: Firebug套件,似乎可以在網頁上加圖?

======================================================================

其他
regular Expressions Tester: 測試正規表達式作用
backword: 閱讀英文時的翻譯
blocksite: 避免閱讀文章時開啟奇怪的網站
LeechBlock: 可根據時間設定站台是否能夠瀏覽,避免你浪費時間在一些奇怪的站台上 XD
FoxyProfy: 管理Firefox proxy的套件
Tor-Proxy.NET toolbar: 讓你使用TOR-Proxy做為proxy瀏覽網站
Imacros for firefox: 自動化套件
PageDiff: 比對網頁內容的套件
ScrapBook: google筆記套件
Server Switcher: 在開發用伺服器和正式伺服器間轉換的套件

======================================================================

開發Extension時使用
Extension Developer: 提供製作Firefox Extension時的包裝流程
Extension Manager Extended: 提供Firefox Extension的ID和安裝目錄資訊(可移動到該目錄)
Greasemokey: 使用者腳本管理器,要安裝JS後才有功用
Greasefire: 提供可使用於Greasemonkey的JS檔案



附註:
chrome的意思:chrome是黑客的俚语(这里的黑客不是指进行非法勾当的人)。
chrome 是从汽车工业的俚语来的,估计是给车子上光之类(抱歉我不懂机械)
在设计领域 chrome 的意思就是对系统功能没什么大的帮助,但是却能吸引用户的部分。
出自不一样的眼睛,http://www.firefox.net.cn/forum/viewtopic.php?p=195710

2009年4月17日 星期五

於104網站求職感想

這幾天要找新工作,又重新用了104一下
不得不說104的設計還算不錯
不過世界上的職務太多太細
104網站所提供的職務分類雖然不錯
但是依然不夠
舉我為例子的話
我要應徵的是程式設計師,主要使用的語言為ASP.NET
使用104時,我只能選擇internet程式設計或程式設計兩種
而沒有進階的語言選項
我猜企業那邊可以根據個人所填的技能專長資料進行篩選(甚至還有黑名單?)
不過求職者就只能選擇一個類別,然後看著500個職缺慢慢挑

解法
一個簡單的解法是在職缺上提供必須技能/必備技能選項
這做法應該能夠大幅的增加求職者篩選速度

2009年4月6日 星期一

書籍註記: 解密SEO 如何讓網站排名第一

這本書還蠻不錯的
筆者以他自身經驗說了SEO時要注意的事情,包括使用的工具、分析技術和設計重點。
更重要的是後面附上了兩三個實例分析,說明了行銷、SEO之間可能會出現的問題。
硬要說缺點的話,就是技術細節沒有另一本《網站行銷:搜尋引擎網站排名破解教學》說的多了。
基本上,很合適做為概念和網站規劃者觀看,不過,雖然沒有多少技術在其中,要了解的話還是需要一些對網站技術的認識才行。

眼球軌跡的F模式
網站的演化:炫->實用->加入對搜尋引擎的友善設計
要對搜尋引擎友善,要注意的技術問題包括少用框架、注意CSS和JS的配置分離、注意flash/圖片/連結的設計

設計面則要考慮關鍵字的選擇:別挑熱門的,要挑有用的。關鍵字工具有google suggest, google sandbox, yahoo關鍵字工具,基本上都是給想買廣告的人用的工具。
關鍵字競爭資訊工具則有wordtracker, trellian(當然網路上有更多..)

內容面則是要考慮如何將關鍵字安排在網頁內容中,除了主要字眼,也盡量讓有相關聯的字眼出現。但不要太常出現,那會讓SE認為在作弊。大約佔2~8%就夠了。
當然內容不能太平淡讓使用者從此不想再來..
此外,網頁中連結、圖片、標題等也是可以考慮著墨的地方,特別是當使用很多圖片時。
但總體來說,最重要的是網頁標題及網頁描述標籤。關鍵字標籤已經退流行了,可以不用特別考慮。


對外發布
1.去登錄網站,包括SE和index
交換連結
基本上,能有越多網站收錄你的網站越好,不過碰到壞鄰居可能被連坐,所以請自己決定

black hat
在網頁中用各種技巧塞關鍵字,或是建立跳頁
其他包括假連結、假網域、部落格汙染、轉址做法、連結農場等做法

檢查網站排名工具
1.google: site:self.com
2.線上工具: link-populity之類
3.free monitor for google
4.使用網站流量分析工具, 如google analytics
記得和關鍵字搜尋結果做比對才能獲得全面性資訊


開始架站
SEO規劃
一、分析目標客戶和市場
二、確定基本關鍵字
三、選網域
四、分析競爭對手的關鍵字策略和排名
五、確定架構
網站最佳化
一、擴充關鍵字
二、編排內容
三、編排標籤(關鍵字取捨: 太紅的關鍵字可以捨棄以省下空間給其他關鍵字)
四、制定內部連結
網站公開後
一、更新內容
二、建立外部連結
三、監視流量

Blogspot 設定: 繼續閱讀

英文應該是摘要才對..

anyway, 目前使用的是繼續閱讀懶人加強版2.2.0
判斷依據是br標籤,準則為3

雲端世界? 這是啥?

不是很正確的一篇文章
不過對於了解雲的應用範圍以及雲/VPS之間的差別多少有點助益
http://www.infoq.com/cn/articles/questions-about-cloud-computing

IronPython Studio安裝過程

IronPython Studio是一套IronPython的IDE介面,更棒的是他可以安裝到VS2008中
當然,安裝這種東西需要一些其他的基本套件,以下都有說明,請安心觀看

我的安裝環境:
Vista 64 bit
VS2008

IronPython 安裝篇
一、先安裝Cpython:由於我打算用和CPyton 2.5相容的IDE版本,所以安裝了Python 2.6.1(AMD64)版本
路徑:c:\python26

二、安裝IronPython 2.0.1:IronPython.msi版本
路徑C:\Program Files (x86)\IronPython 2.0.1\

三、安裝VS2008 Sehll套件
安裝IronPython Studio前,要先安裝Visual Studio 2008 Shell獨立模式可轉發套件
請自行google下載,下載後執行會解壓縮到c:\VS 2008 Shell Redist\Isolated Mode\,解壓縮完記得進去目錄中執行安裝程序
安裝時,預設安裝到VS2008目錄中
如果是原始碼版本,要有VS2008 pro/TS以上版本和VS2008 SDK 1.0


四、安裝ironPython Studio
IP Studio分成VS integrated和isolated版本
安裝完成後,會發現ironpython studio和VS的ironpython中只有WPF應用程式專案選項

Isolated版:必須把"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\IronPython Studio\1033"下的五個zip複製到C:\Documents and Settings\Administrator\My Documents\IronPython Studio\Templates\ProjectTemplates"才會出現其他範本選項(這應該是個小bug)
studio版:類似的處理方式,不過這次是複製C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\IronPython Studio\ 這個目錄到C:\Users\adison\Documents\Visual Studio 2008\Templates\ProjectTemplates目錄中

五、WPF執行問題
若直接編譯IronPython Studio中的WPF程式時,會出現以下錯誤:
項目 在命名空間 'http://schemas.microsoft.com/developer/msbuild/2003' 的 'PropertyGroup' 含有無效的子項目 在命名空間 'http://schemas.microsoft.com/developer/msbuild/2003' 的 'BuildSystem' 。可能項目清單必須是: 在命名空間 'http://schemas.microsoft.com/developer/msbuild/2003' 的 'Property' 。

關於這問題的詳細解釋,可以看IronPython Integration Sample and the WPF Designer

解決方法是在manchine.config中加入對應的設定碼即可:
* 開啟 %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config
* 加入以下內容到區塊中(建議拉到configuation區塊最下方的system.data之類的區塊周圍加入):





* 儲存
然後就可以使用了(不需要到V3.5的目錄下重複動作)

現在就可以享用你的IronPython Studio了..

附錄:除了Ironpython studio外,還有另一個類似的IronPython IDE: Sharpdevelop. 兩者的主要差別是IPS支援IronPython 1.1, 而SD支援IronPython 2.0.

2009年2月27日 星期五

asp.net中cookie的亂碼解決方法

參考網址:..不見了!?

在asp.net中,中文字(非英文字?)存入cookies,再次取出會有亂碼問題,所以要使用
HttpUtility.UrlEncode和HttpUtility.UrlDecode對cookies內容編碼
PS: 需引用system.text

進階參考
* Encoding.Convert 方法
* 使用Unicode 編碼方式
ASP.Net 的 UTF-8 轉 Big5
VB中則可使用 StringS.strConv <--注意S而不是常用String
PS: imports microsoft.visualbasic


即用範例
Imports System

Imports System.Text
Imports Microsoft.VisualBasic

Namespace Convert_Example
Class MyConvertExampleClass
Shared Sub Main()
Dim unicodeString As String = "This string contains the unicode character Pi(" & ChrW(&H03A0) & ")"

' Create two different encodings. ASCII與 Unicode兩者互轉
Dim ascii As Encoding = Encoding.ASCII
Dim [unicode] As Encoding = Encoding.Unicode

' Convert the string into a byte[].
Dim unicodeBytes As Byte() = [unicode].GetBytes(unicodeString)

' Perform the conversion from one encoding to the other. 這段程式很麻煩,一定要先用Byte型態之後,才能轉碼!
Dim asciiBytes As Byte() = Encoding.Convert([unicode], ascii, unicodeBytes)


' Convert the new byte[] into a char[] and then into a string.
' This is a slightly different approach to converting to illustrate
' the use of GetCharCount/GetChars.
Dim asciiChars(ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)) As Char
ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0)
Dim asciiString As New String(asciiChars)

' Display the strings created before and after the conversion.
Console.WriteLine("Original string: {0}", unicodeString)
Console.WriteLine("Ascii converted string: {0}", asciiString)
End Sub
End Class
End Namespace

2009年1月8日 星期四

ASP.NET 註記

Databind語法
''用於註記是程式語法,一次只能用一個,暫時找不到在linlbutton連接字串的方法
'