Pandora’s Battery – 磚塊 PSP 的救星
所有因為執行降級程序不當而變磚塊的 PSP 有救了。
Noobz 於 8/22 放出潘朵拉的電池 (由 Prometheus project 成員開發),用於修復因降級不當而造成的無法開機現象 (前提是硬體沒有損壞)。
執行該修復程式必須準備一張 256MB 以上的記憶卡和一顆額外的電池,因執行完修復程式後,該電池 (稱之為 jigkick 電池) 將無法在一般狀況下使用,只能在執行修復程式時使用。
Fanjita (Noobz) 說這支修復程式本來至少要等到 PSP Slim 上市才要釋出,但因不明原因流入黑市,並且被拿來以高價販賣。為了不讓使用者被這些黑市商人剝削,所以提早釋出。
相關使用說明很多大陸網站動作很快的翻好了,搜尋『潘朵拉電池』即可找到。
在 AJAX 載入內容的 div 裡使用 Lightbox
之前在 利用 Ajax 更新 div 的內容 這篇使用 AJAX 來動態更新網頁裡 <div> 的內容,後來發現如果想在該 <div> 裡使用 lightbox 的效果會沒作用。
Lightbox 在載入後會掃過一次頁面裡的 <a>,讓有指定 rel=』lightbox』 的圖片得以 lightbox 方式呈現。然而以 AJAX 載入的 div 並沒有重新產生整個頁面,所以包在該 div 裡用 AJAX 產生的內容即使指定了 rel=』lightbox』 也無法以 lightbox 的效果呈現。
如果想讓 div 裡的圖片也有 lightbox 效果,必須在載入該 div 時做 initLightbox() updateImageList() 的動作。
首先,我有兩個頁面,一個是主頁面 index.php,裡面有一個 <div id=』paper-content』> 用來載入另一個 work.php 頁面。
1) 在有 AJAX 效果的主頁面 index.php 加入一段 script,指定事件觸發時執行 initLightbox() updateImageList()
function pollContent(id){
if(document.getElementById(id)){
myLightbox.updateImageList();
document.getElementById(id).id="";
}
else
setTimeout("pollContent('"+id+"')", 60)
}
2) 在 index.php 中產生 div 內容的連結處加上觸發事件執行上面的 pollContent()
在例子中,onmousedown=』pollContent(‘IDname‘);』,是說當滑鼠按下時,載入 work.php 並執行 pollContent(),參數帶 IDname,IDname 第三步驟會用到。
3) 在 work.php 用到圖片連結的後面新增一個 <div id=』IDname『> 來秀圖。
伍、工作重點
完成,這樣一來在 AJAX 動態載入的 div 中也可以使用 lightbox 的效果了。在網路上找到的一些解法會說載入頁面時先執行 initLightbox(),但試過後發現在 IE 中一切正常,FF 中會出現 layout 跑掉的狀況,所以改執行 myLightbox.updateImageList()。
gallery2 關閉 rewrite 的 link
將 gallery2 從主機 A 搬到主機 B 後,rewrite 的 rules 失效,想進 admin 去關掉 rewrite 再重新打開讓 gallery2 自己重寫 rules,可是 admin 的連結居然也是 rewrite 過的 (默)…
在 official document 裡翻到一篇直接用原始連結關掉 rewrite module 的方法,關掉後重新啟動 module 就好了…
Images don’t show up and the album / photo links don’t work, what can I do?
UTW 的 $baseurl 會和 Flickr Photo Gallery 衝
升級 wordpress 到 2.x 後因為沒用 Flickr Photo Gallery 在寫 blog 時貼圖,所以一直也沒發現 Flickr Photo Gallery 因 wordpress 版本更新導致不相容而無法使用。
六月底將 wordpress 更新到 2.2.1 也順手將 UTW 升級到 final 版。當時因為 Flickr Photo Gallery 不相容 wordpress 2.x,即使啟動了也等於沒有,當然也沒發現這兩個 plugin 的變數會相衝。直到 7/16 更新了 Flickr Photo Gallery,於是 tags 的 link 從那時起就爛掉了,直到今天貼文章時才發現。
症狀是 post 的 tag 秀出來都正常,但 link 的 $baseurl 會被 Flickr Photo Gallery 的 $baseurl 取代。正常的 link 應該是 http://blog.gfchen.org/tags/psp/,而 Flickr Photo Gallery 的 $baseurl 我設定空值,所以 link 就變成 http://blog.gfchen.orgpsp/ (搞什麼東西…)。
為什麼 UTW global $baseurl 會讀到 Flickr Photo Gallery 的 $baseurl 我不知道,也懶得去追,直接把 global $baseurl 拿掉重新抓一次變數值解決。
UltimateTagWarrior\ultimate-tag-warrior-core.php 找到 function FormatTag() 將 global 宣告 $baseurl 刪掉,接著在 if ($prettyurls == 『yes』) 迴圈裡宣告 $baseurl = get_option(‘utw_base_url’);
[PSP] 3.52 M33 Custom Firmware Released
Sony Official PSP firmware 3.52 推出不到一天的時間,M33 也發佈他們的 custom firmware 3.52 M33。
主要修正一些個人不是很在意的 bug,新增可以玩官方下載來的 PSX ISO。
MySQL 編碼老問題解決過程記錄
以前從 4.0 升級到 4.1 或 5.0 時,因為 4.0 沒有 utf-8,所以 dump 出來的東西都是 latin1,大都可以順利轉換成 utf-8 再倒回 4.1 以上。但是這次吃鱉的狀況是:從主機商上面將 4.1 的資料庫搬到自己架的 5.0 上。
吃鱉的原因是,主機商的 MySQL 雖然都會有支援 utf-8,但是通常他們的 MySQL server make 時都是以 latin1 去 make,所以如果程式建立 connection 時沒有特別指定 SET NAMES UTF8,就會用 latin1 去寫 utf8 的資料。好死不死的,如果 database 和 collation 都有設成 utf-8,問題就出來了。
因為 databse 和 collation 有設成 utf-8,所以在 export 時 phpMyAdmin 就會以 utf-8 來輸出 .sql,但是那些資料是用 latin1 寫入的 utf-8,所以出來的東西不管怎麼轉都是錯的。慘!等我意會到手上這份備份根本是錯的東西時,主機商已經把我的帳號關掉了 (付費主機商提供的免費廣告帳號,後來覺得沒賺頭反悔要取消服務),冒冷汗…
死馬也要醫,怎麼出就怎麼進,把錯的 .sql 用 utf-8 的方式倒進自己架的 MySQL,嗯嗯,看起來就是用 latin1 寫的 utf-8,接著進 shell 以 latin1 的方式做 mysqldump (怎麼進就要怎麼出,因為當初是用 latin1 寫的 utf-8,所以這次就要以 latin1 的方式 dump 出來)。dump 出來的東西用 vim 去看,乍看之下中文部份好像是錯的,但是其實是 utf-8 沒錯 (因為 dump 時是以 latin1 dump,所以 vim 用 latin1 的方式去看 utf-8 的資料,畫面上看起來當然就是亂碼)。別急,用 piconv 把 .sql 從 utf-8 轉 big5,然後再從 big5 轉回 utf-8,這時檔案編碼已經是 utf-8 了,用 vim 以 utf-8 編碼去看這個檔時,恭喜,已經是正常的中文字了!
別急著倒回去,.sql 裡面前幾行應該會看到有一行內容是:
/*!40101 SET NAMES latin1 */;
這是指定用 latin1 去 dump 時加上的設定,倒回去之前要把 latin1 改成 utf8,告訴 MySQL 用 utf-8 的方式將資料倒回去。倒回去後用 phpMyAdmin 看,哈,可愛的中文都回來了,從瀏覽器看網頁的部份,也是一切正常,WooHoo~~
後記:因為是自己架的 MySQL,make 時有指定 server 編碼是 utf8,所以不用在程式與 MySQL 建立 connection 時加上 SET NAMES UTF8。
[PSP] 3.51 M33 Custom Firmware Released
自從 Dark_Alex 宣佈不玩 custom firmware 後,另一俄國團隊 M33 發佈了他們開發的 custom firmware。
這支 custom firmware 和 Dark_Alex 所作的 firmware 類似,都是使用新版本的官方韌體加上 1.5 版韌體的漏洞,讓 PSP 可以享有新韌體的功能,同時還能執行一些自製的程式。
無論現在是官方 1.5 版的韌體或是已安裝 Dark_Alex’s custom firmware 的 PSP 都可以直接安裝,方法檔案寫得滿清楚的就不翻了。
相關下載:
Sony Official PSP 3.51 firmware
Sony Official PSP 1.5 firmware
PSP 3.51 M33 Custom Firmware
Update: No-UMD 3.51 M33 patch (新增一個免 UMD 的模式)
擋掉各搜尋引擎的機器人
上個月流量破錶讓人感到非常賭氣,因為有一半的流量是 spider 和 robot 爬出來的,尤以 Y! Slurp 居冠,爬得沒斬沒節,又不想加錢買頻寬 (幹嘛買來讓 spider 爬?),所以從 robots.txt 裡面 disallow 掉。
不過還是留了個洞給 Googlebot 爬,這樣自己在 google 搜東西才找得到。
btw, sogou 和 baidu 這兩傢伙似乎看不太懂 robots.txt,改天再從 .htaccess 裡面把這兩隻 deny 掉。
開機時 /usr/local/etc/rc.d 裡的 script 被執行兩次
Scripts in /usr/local/etc/rc.d run twice at boot time (startup)?
今天在裝一台預計暑假時要做系統移轉的機器,一路啪啦啪啦裝完基本環境 (apache + php + mysql) 後順便將 kernel 改好,重開…就看到很詭異的現象:/usr/local/etc/rc.d 下的 script 統統被執行了兩次…
[PSP] 3.50 Firmware Downgrader (3.50 韌體降級程式)
Noobz 於日前 (6/25) 發佈 PSP 3.50 韌體降級程式。
和之前紅極一時的 GTA 類似,這次是利用 Lumines 存檔的溢位來執行降級程式,所以只要將韌體先升級到官方 3.50 版後,準備一張 Lumines (美版或歐版),就可以作降級。
唯需注意的是,TA082 以後的機板若先前降過級的話,現在無法用這方式升級到 3.50 再降級回去。因為 Sony 自官方韌體 3.30 後會偵測是否曾降過級,是的話就鎖住無法使用官方韌體。
Noobz 計畫要解掉 Sony 官方韌體會檢查是否降過級而不給升級的問題…不過…降過級的 end user 會有人要想再升回官方韌體嗎?

近期迴響