tinyMap 2.0 jQuery Plugin
自從研究 Plurk API 失敗後,也剛好 Google Map API Javascript v3 已釋出一段時間,索性這次整個改寫 tinyMap。 Demo: tinyMap 2.0 jQuery Plugin 2.0 版的特色: 使用 Google Map API v3 改寫 加入路徑規劃功能 延伸閱讀: tinyMap – 自訂個人Google Map 的jQuery 擴充套件
自從研究 Plurk API 失敗後,也剛好 Google Map API Javascript v3 已釋出一段時間,索性這次整個改寫 tinyMap。 Demo: tinyMap 2.0 jQuery Plugin 2.0 版的特色: 使用 Google Map API v3 改寫 加入路徑規劃功能 延伸閱讀: tinyMap – 自訂個人Google Map 的jQuery 擴充套件
自從 3 碼版本釋出後,就有詢問 3+2 版本的可能性,考慮到當時惰性發作所以一直沒有動工,直到這次狠下心來直接改寫才有雛型產生。 這個版本主要是使用中華郵政所提供的 XML 並以縣市為單位分成數十個 json,用 Ajax 方式以期效能上不會拖累太多。 基本功能如同舊版一樣,也加上了 1.3 之後更新的手動輸入功能,不過 3+2 改為符合的縣市路名單一號碼有多筆記錄對應時,僅列出符合的記錄。 目前僅測試於 IE8/ Firefox 3.6 / Google Chrome 5 jQuery Plugin – 台灣郵遞區號 3+2 版本 — 年底縣市合併後勢必會再改版,所以現在是做心酸的 XD
twzipcode v1.3 加入了輸入郵遞區號取得縣市名稱的功能,以及 zipSel, zipReadonly 兩個選項。 下載位址: twzipcode-1.3.js (14 KB)
因為搞壞了 ATI 驅動程式,裝也裝不上、移除也移除不乾淨,只好重灌 Windows 7。 一切都是那麼美好,直到安裝 Steam 的時候,一直遇到這個問題,不管權限怎麼改、物件擁有者怎麼設,都還是一樣的惡耗,連帶害我把 40GB 的備份都刪了… 沒想到,這一切的萬惡之根卻是「Application Experience」服務,只要開啟執行這個服務再安裝即可。 這就告訴我們,別太白目啊啊啊! 延伸閱讀: elSteam.exe(main exception): ERROR: deted Steam.exe but the file is still there? – Steam Users’ Forums: [交流] Application Experience服务禁用的后果
引用自「捷徑藏毒 微軟緊急修補Windows漏洞 | NOWnews 今日新聞網」 微軟公司(Microsoft)發布重要的安全性更新,以修補Windows處理捷徑檔的安全漏洞。微軟指出,發現有駭客利用這個漏洞,設置捷徑陷阱,快速散布很強大的病毒,達到掌控電腦的目的。 許多使用者會在Windows上設捷徑,執行常用的程式和資料夾,而在7月中旬發現的漏洞,駭客會在捷徑埋指令,使用者如果點下病毒捷徑就會執行,這項漏洞存在檔案名以「.lnk」結尾的捷徑檔處理程式碼,而且每種版本的Windows都有這種漏洞,駭客可利用「.lnk」的捷徑漏洞,散播名為「Sality.AT」的病毒。 起初病毒經由USB隨身碟或網路分享感染,爆發範圍並不大,但Windows的漏洞被發現後,攻擊速度隨之加快,微軟坦承針對這個漏洞的攻擊太多,因此發布漏洞修補方法,電腦自動更新的用戶會收到修補的安全性更新,也可主動到Windows Update網站下載。 微軟惡意軟體防護中心(MMPC)部落格公告指出,Sality是很毒的病毒株,會感染其他檔案,造成中毒後難以完全移除,及自我複製到可抽換的儲存裝置、解除安全防護功能、下載其他惡意軟體等。因為情況太嚴重,微軟無法等到8月10日的例行安全更新發布日(每個月第二個星期二),就提前釋出漏洞的修補程式。 這個漏洞影響了 Windows 98 以後的作業系統,包括 XP, 2003, Vista, 7, 2008 等 32/64 位元版本。 檔案下載(4.3MB): Microsoft – KB2286198:Windows Vista 安全性更新 訊6 免空 – KB2286198:Windows Vista 安全性更新 如果在安裝此更新前已經中獎,微軟有另一套解法: 下載 Microsoft Fix it 50486、Microsoft Fix it 50487並依照指示操作。 或是手動修改: 執行 regedit 登錄編輯器。 尋找機碼「HKEY_CLASSES_ROOT\lnkfile\shellex\IconHandler」並匯出備份。 點選此機碼後,於右邊的視窗點選 (預設值) 項目並將該值刪除(保持空白)。 尋找機碼「HKEY_CLASSES_ROOT\piffile\shellex\IconHandler 」並匯出備份。 同第 3 […]
※ 官方已釋出相容於 WordPress 3.x 的更新了! 這個偏方由 Extended Live Archives and WordPress 3.0 – info.michael-simons.eu 提供。 話說這個 Plugin 在 WordPress 3.0 出現水土不服,所以需要自己抓藥方,步驟如下: 下載 Af Extended Live Archives 的最新版本 解壓縮後開啟 includes/af-extended-live-archive.js.php 和 includes/af-ela.php 這兩個檔案 尋找 require('../../../../wp-blog-header.php'); 取代為: require_once('../../../../wp-config.php'); $wp_did_header = true; $wp->init(); 服用後再開啟 Archives 頁,就知效果!
這陣子在玩 ThinkPHP Framework,算是小而彌堅,也因為不像 Zend 這類大型框架,所以速度上算是蠻快的;在文件支援上也很完整,用它來開發專案的確能省下不少時間。 以下是令我激賞的特色: 查詢語言、連貫操作以及 CURD 模式:這簡直太方便了,更能縮短程式碼的行數! 視圖模型:不需要在資料庫中先設計 View Table,由框架進行中介。 類庫擴展性極佳:可輕鬆將以往製作的函式庫引入使用。 模板引擎:個人覺得比 Smarty 更簡易的模板語言。 快取機制:框架內建三種快取函數,輕易就能存取,更支援多種快取模式,如:memcache…等等。 當然啦,官方宣稱的特色不只如上述所言,好不好用當然見仁見智。 但就我的想法,如果需要能快速開發、並能兼顧速度以及夠用就好的功能性而言,ThinkPHP 的確值得推薦。
用了四年多的 K610i 因為原廠電池不敷使用,所以買了一支便宜的 T700 客製機並打算刷回原廠韌體。 這方面的資訊可以參考: SonyEricsson 刷機教學(去除惱人的電信業者客製化) – @ New World. New Thinking T700徹底去客製化步驟,其他款的手機也可以試看看 (沒有信心的不要自己嘗試) – Mobile01 參考上面兩個連結應該就沒什麼問題,所以詳細過程就不再贅述了。 主要重點在於 Windows Vista/7 x64 的 USB Flash Driver 如果用原 A2 Loader 內的驅動程式會無法安裝。 所以需要額外安裝 x64 版本: USB Flash Driver x64(3.15MB – 訊6) 安裝及使用方法如下: 按住 C 鍵並連接 USB 傳輸線,Windows 7 會自動安裝驅動程式 開啟裝置管理員,在「通用序列匯流排控制器」找到 USB Mass Storage 並點選「更新驅動程式」 驅動程式位置指向下載的 x64 […]
首先,這不是能自動幫你清潔鍵鼠的工具 XD 它只是鎖定鍵盤滑鼠讓你在開機的時候可以清潔而已 支援平台:Windows 7, 2008, XP, 2003 環境需求:.Net FrameWork 3.5 檔案下載:KMClear.exe(11KB) 源碼下載:KMClear.zip(112KB – Visual C# 2008 Express) 這類程式有兩個重點要處理,一個是全螢幕執行,另一個就是鍵盤攔截。 全螢幕執行比較簡單,完全不需要 API: private void Form1_Load(object sender, EventArgs e) { this.SetVisibleCore(false); this.FormBorderStyle = FormBorderStyle.None; this.Left = (Screen.PrimaryScreen.Bounds.Width / 2 - this.Width / 2); this.Top = (Screen.PrimaryScreen.Bounds.Height / 2 - this.Height / 2); this.SetVisibleCore(true); } 另一個則是需要借助 Low-level API […]
因為我把 TripleDES Class 簡化,所以 key 和 iv 都直接寫入 Class 內,有了這個程式就可以很方便替換掉。 反正就是產生密鑰和向量值的產生器而已 XD 原始碼(74KB) 執行檔(14KB)
公司需要一個能隨時監看 8591 行情表和交易情形的工具,所以就寫了這個小程式。 運作上大多數都是利用 HttpWebRequest 擷取 HTML 後再使用 Regex 分析所需要的數據即可,不過在會員登入上另外需要 CookieContainer 的配合才能達成。 至於驗證碼也是一樣用 HttpWebRequest 取得後再輸出 Bitmap 並取得驗證碼的 Session 值即可。 最後再加上擷取台灣銀行牌告匯率的資訊來計算匯率比值就收工了! /// <summary> /// Cookie Container /// </summary> public static CookieCollection mc = new CookieCollection(); public static CookieContainer myContainer = new CookieContainer(); /// <summary> /// Get or Set the cookie header /// </summary> /// <returns>CookieHeader</returns> public […]
台灣郵遞區號外掛 / Taiwan Zip Code Plugin of jQuery 這個版本修正了在 IE6 下,鄉鎮市區清單只會出現一個的問題: 也順便把清單過長的現象給解決了 ※ 感謝 呆呆怡 和 Kenneth 的回報
※ 2010-03-02 補充: Object prototype 改寫會導致 jQuery 出現異常,所以必須將 Object.prototype.isArray 註解或刪掉。 請參考:Prototyping Object in Javascript breaks jQuery? – StackOverflow 整理了一支我常用於網站開發的 js 函式庫,也包含了對字串、日期、陣列物件的 Prototype 增強函數,採 MIT 授權釋出,歡迎任意使用。 源碼:lib.common.js(16 KB) 壓縮:lib.common-min.js(9 KB) Prototype: String var url = 'http://essoduke.org/?s=測試'; var x = 'Test 測試'; var y = 'HTML'; var z = '&;lt;strong&;gt;HTML</strong>'; /* trim: 移除字串前後空白 */ x.trim(); // result: […]
如果在安裝 TeamSpeak 客戶端中文化後發生字體變成「標楷體」以及過小的問題,可以下載這個檔案解決: default.qss(1KB 右鍵另存) 或是將下列文字加入 X:\Teamspeak Client\style\default.qss,若熟悉 CSS 語法也可以自行更改。 QAbstractScrollArea, QCheckBox, QComboBox, QDockWidget, QFrame, QGroupBox, QHeaderView, QLineEdit, QListView, QMainWindow, QMenu, QMenuBar, QProgressBar, QPushButton, QRadioButton, QScrollBar, QSizeGrip, QSlider, QSpinBox, QSplitter, QStatusBar, QTabWidget, QTabBar, QTableView, QToolBar, QToolBox, QToolButton, QToolTip, QTreeView { font:normal 12px PMingLiu; } 說明:這個檔案為預設佈景主題的樣式檔,改寫各個元素所使用的字型及大小為 12px 新細明體。 另外補上目前最完整的正體中文化(戰地秘境版已停止更新): 下載:Teamspeak 3 Client 正體中文語系(ZIP 98KB 右鍵另存)
Tesseract OCR 原本是 HP 實驗室所發展的 OCR 引擎,2006 年釋出為開放原始碼專案,目前由 Google 維護發展。 這兩天因為有某專案需要使用文字辨識功能,原本打算使用 PHP 進行,不過效率不彰,所以投奔到 Tesseract 的懷抱,但是原始檔案中缺少 libtiff 的支援,這時候就需要自己動手編譯了。 所需軟體 Tesseract Source v2.04 Microsoft Visual C++ 2008 Express GNU Tiff for Windows 步驟 下載 Tiff for Windows Complete package, except sources 並安裝。 開啟 tesseract.sln 專案 點選「工具 » 選項 » 專案和方案 » VC++ 目錄」右側的顯示目錄分別新增 Include 及 程式庫檔 並個別指向 […]
這次更新主要是改寫了原有的結構變得更簡潔、效能更好,並修改下列幾項: 可不需先建立 HTML 表單,由程式直接產生並直接指定表單元件名稱。 加入 Css 的支援 參數說明 countyName: 指定縣市下拉清單名稱 (String) /* 若不指定則預設名稱為 zip_county[] */ areaName: 指定鄉鎮市區下拉清單名稱 (String) /* 若不指定則預設名稱為 zip_area[] */ zipName: 指定郵遞區號輸入框名稱 (String) /* 若不指定則預設名稱為 zip_code[] */ countySel: 縣市預設值 (String) areaSel: 鄉鎮市區預設值 (String) css: [‘County ClassName’, ‘Area ClassName’, ‘Zip ClassName’] (Array) 自訂元件名稱範例 // Javascript $('#container').twzipcode({ countyName: 'county', areaName: 'area', zipName: 'zip' }); // […]
更新: 已釋出 1.0 版本使用 Google Code: javascript-i18n-core Live Demo: http://app.essoduke.org/i18n/ 若您的瀏覽器不支援 Object Frame 顯示,請點選上列的展示連結。 以往進行 javascript 多國語言的開發總是比較麻煩,所以就著手進行了這方面的嘗試;因為 Javascript 判別 HTTP_ACCEPT_LANGUAGE 會有失誤的問題,所以偵測語系交由後端程式負責,並將此參數以 inline 方式傳入 js。 安裝 使用 ///以正體中文語系為例 //無參數字串 i18n._('Current Datetime: '); //輸出「目前時間:」 //傳入單一參數 i18n._('I have %1 books', 10); //輸出「我有 10 本書」 //傳入多個參數 i18n._('I have %1 books and %2 pens', 10, 20); //輸出「我有 10 本書和 20 […]
上次封裝的 javascript hash object: MD5, SHA-1, SHA-256 因為沒有優化導致體積過於龐大,所以再更新了一次,體積足足從原本未壓縮的 38KB 銳減 59% 來到 15KB。 這次也將原本的 JSON 格式改寫成更接近類別的寫法(區分 Private, Public),並通過 JSLint 檢測,效能上差異微小,新版本約略只比舊版執行時間快了 1%… XD 源碼:lib.hash.js(14.79KB) 壓縮:lib.hash.min.js(7.16KB) 測試:lib.hash.html 用法部份有兩種作法,一種是宣告新物件: var hash = new Hash; var md5 = hash.md5('YOUR STRING'); 另一種是修改源碼: /* Line 12 of lib.hash.js */ var Hash = function() { ... /* 改為 */ var Hash = […]
入手 PS3 後,對於韌體或軟體更新通常都容易出現網路錯誤,翻遍各大討論區問題大多指向 DNS,若是更換 DNS 後情況卻依舊該怎麼辦? 元兇大概只剩 MTU 的設置了… 多數情況之下,MTU 的預設值大概都是 1500,也可以藉由 SpeedGuide TCP/IP Analyzer 及下載 TCP/IP Optimizer 來取得更詳細的資訊 設定方法如下: XMB » 網路連線設定 » 自訂 手動 MTU 設置 填入正確的數值 測試連線 ※ 未手動設置 MTU 前,連線測試不僅上下傳速率無法正確顯示,底下也會出現「IP Fragment package 碎片封包」的錯誤訊息,正確設置後即可正常。 參考資料: Max MTU 設多少最好 – PCZONE 討論區 【教學】使用PPPoE時,MTU之最佳設定值 – PCZONE 討論區
這一份是從 Frez Systems Limited 整理出來的 ASP 版本,也是封裝成 class 方便使用: 下載:http://app.essoduke.org/blog/class.hash.asp.txt(19KB) Set hash = New class_hash ... hash.md5("STRING") '// MD5 hash.sha256("STRING) '// SHA-256 ※ SHA-1 ASP 沒辦法單獨實做所以不收錄,不過有 JScript 版本
從 Paj’s Home 整理出這三種 hash 並偽封裝成物件以方便使用: 下載:http://app.essoduke.org/blog/hash.js(38KB) Usage: hash.md5('STRING'); // MD5 hash.sha1('STRING'); // SHA-1 hash.sha256('STRING'); // SHA-256
今天稍微研究了一下 PHP Captcha Security,又看到 PHP Captcha 大惡搞,一時手癢也想來惡搞一下… 四則運算版本: 展示網頁:http://app.essoduke.org/captcha/form1.php 驗證之餘,還能考驗你的四則運算能力、加強算術基礎呢,非常適合小學生、小學老師當作家庭作業、題庫使用! 中文成語版本: 展示網頁:http://app.essoduke.org/captcha/form2.php 數學算完之後,國文當然也不能缺席,希望大家藉由這個版本來提昇出口成章的能力(反正那個該死的文言文什麼鬼協會中華語文教育促進協會提議要增加文言文比例…) 另外,為了避免學生死背不能活用,更加入了隨機順序的挑戰功能呢! 延伸閱讀: PHP Captcha 大惡搞 – Zeroplex 生活隨筆 刚写的PHP中文汉字验证码 – Sipo Blog 驗證碼的最高境界 – 睡蓮‧池水間 – waterlily-lsl.com
這兩天我的肛世代光世代很容易出現網路瞬斷但是 BT 卻很正常的情形, 爬文之後決定要將原本的 S2 換成最新的 N3 版韌體當白老鼠試試。 更新步驟如下: 下載 N3 版韌體(檔案來源:Mobile01) 將本機 IP 改成和 VDSL 相同的網段(192.168.1.2 – 192.168.1.254) 有使用分享器者,先將網路線直接連接至 MODEM 再進行下列操作。 開啟瀏覽器執行:http://192.168.1.1/,帳號密碼如下: 北部 帳號 cht 密碼 chtnvdsl 中部 帳號 cht 密碼 chtcvdsl 南部 帳號 cht 密碼chtsvdsl 登入後點選左側選單「Management」->「Update Software」進行更新 過程中會先斷線,完成後會要求重新登入,請使用上述帳密中的「北區」進行登入 檢查 Device Info 看是否更新完成 白老鼠持續觀察中! ※更新後的這半個多月以來,瞬斷情形確實不再,應該是可以穩定使用的版本了! 延伸參考: 你的肛世代光纖會瞬斷嗎?試試看更新韌體吧 – 寬頻上網討論 – 維克斯討論區 HINET 的ZyXEL P-870HA老問題重談!! […]
範例網頁:JSONP 實做:使用 Google Ajax Search ※ 詭異的是,我使用 $.get 都只能收到 400 Bad Request,只能用 $.ajax 才能正常。 $.ajax({ url: 'http://ajax.googleapis.com/ajax/services/search/web', data:{ 'key': gsearch.key, 'v': '1.0', 'q': encodeURIComponent(k), // + '+site:essoduke.org' 搜尋網站, 'rsz': 'large', 'hl': 'zh-TW', 'start': s }, dataType: 'jsonp', success: gsearch.fetch }); 參考資料: 開發人員指南 – Google AJAX 搜尋 API – Google Code 基礎搜尋物件 – Google AJAX Search […]
參考 Mozilla Developer Center 的技術文件實做 Firefox 3.5 的幾項新特色。 @font-face 動態下載網頁字型 透過這項功能,就可以不再使用 sIFR 的技巧來達成顯示訪客沒有安裝的字體,讚! CSS 變形效果 加入了 CSS 3.0 的旋轉、傾斜、放大等變形效果。 還有原生 JSON、多執行緒的支援等眾多特色,這次的 Firefox 3.5 果然厲害 XD 更多實測範例:http://app.essoduke.org/fx35 延伸閱讀: Firefox 3.5 技術文件 – MDC MozTW,Mozilla Taiwan 正體中文
※剛剛發現我的 Firefox 不能正常運作,大概是 Plugin 的關係。 http://app.essoduke.org/mplayer Feature / 特色 相容 IE/Firefox 瀏覽器 使用 JSON 格式媒體列表 可顯示媒體名稱、時間軸、已播放/媒體時間 可音量控制、重複播放、拖曳播放清單 Defect / 缺點 Opera / Safari 無法正常使用 未加入隨機播放功能 Point / 重點摘要 雖然已經有了支援各瀏覽器的播放語法,不過我還是針對了非 IE 瀏覽器建立 embed 標籤。 播放器使用 Javascript 產生,並且將所有事件都寫成物件化,整個播放器就是一個物件。 時間軸採用 setInterval 的方式每秒查詢目前的播放時間,換曲時要用 clearInterval 不然久了 IE 會當掉… XD Firefox 監控 PlayStateChange 事件要使用 OnDSPlayStateChangeEvt function。 播放清單要雙擊左鍵才會換曲! 大概就醬了
通常在設計網頁時如果有包含表單元素,大多會使用 Label 標籤來定義說明,但是每個表單元素和 Label 標籤都要加上 id 和 for 屬性顯得有點麻煩,所以下列函式就是用來替這些元素自動補上 for 和 id 屬性。 範例:http://beboss.idv.tw/autolabel.php 目前只抓取 label 前後的表單元素,若 label 和 表單元素之間有其他標籤則無作用,交給大家去解決吧 XD $(function(){ AutoLabel(); }); var AutoLabel = function(){ $('label').each(function(n){ //get the next object var $obj = $(this).next(); //append id and for attributes into elements switch( $obj.attr('type') ){ case 'text': case 'password': case 'radio': case 'checkbox': […]
範例連結:jQuery FlyDOM 樣板系統範例 這個範例將伺服器端定位為資料提供者,所有的排版、定位等都交給使用者端來運算,也因為如此,所以特地試做了「檢視方式」清單,效果還不錯,只是還有幾個小問題要解決。 除了三種樣式作成樣板物件之外,包括分頁選擇也都獨立成樣板,伺服器端的頁數資料我也是用 JSON: //css 的值就是各頁數的樣式類別 [{'page':'1', 'css':'selected'}, {'page':'2', 'css':''}] 為了讓總筆數和「目前顯示」資料能正確使用並減少伺服器存取的次數,我把這個項目也列入資料產出的 JSON 並放到最後,所以每次查詢資料就會有這項資訊可以使用,不用再額外撈一次: [{'id':'1', 'player':'Paul Konerko'....}, ......, {'records':'18', 'display':'1-9'}] ※ 資料使用 MLB 2009-04-07 白襪對皇家例行賽的打者成績,直接建立成 JSON 所以無法進行刪除,而修改也沒完成,反正只是 FlyDOM 的範例嘛… 這是預設的「詳細資料」樣式。 檢視方式的下拉選擇清單,只需要簡單的定位就能完成。 圖示檢視,這個順便用了 jQuery UI 做了拖曳排序的效果。 清單檢視 參考資料: jQuery Plugin – FlyDOM: Create DOM on the Fly jQuery: The Write Less, Do More, JavaScript Library […]
今天邊玩 Web 棒球的同時,就順手更新了 Google Map 座標工具。 Google Maps 早在 2007 年就已經開放可以搜尋台灣地址,所以 v1.1 主要是加入顯示標記地址的功能,下次預計會加入最基本的搜尋並且可以自訂 JSON 的輸出內容。 這次使用了 Google Maps API Geocoding Service。Geocoding 傳回的是一組包含座標、地址、郵遞區號等資料的 JSON,所以這部份很好處理,比較棘手的是遇到 jQuery selector 抓不到 append 所建立的 li 清單,所以用了 jQuery FlyDOM Plugin 建立 DOM 的方式來解決。 延伸閱讀: Google Map 座標工具 Google地圖 – 維基百科,自由的百科全書
因為這個案子的需要,所以就做了 Google Map 座標工具,靈感來自於 Interactive Polyline Encoder Utility,但是沒有加入劃線功能,只多了輸出 JSON 的選項。 ※支援 Firefox 3/Opera 9.6,IE6/IE7 在拖曳上似乎有問題… Google Map 座標工具 先點選要標記的位置(可連續點選、拖曳)右側的清單上就會出現該點的座標,也可以點選清單內的座標,左側地圖就會顯示出對應的標記;輸出 JSON 的作用是方便後續的應用,包括存入資料庫…等等。 改天再補上 Google Maps API 的使用心得… 延伸閱讀 Google Maps Google Maps API