[Web] 連結分享
又 Delay 了…最近太忙,一下子積了太多連結。
不過現在真的發現我的分類能力很差…Orz
所以今年重新調整分類了,網路上的服務或資訊歸類到 Internet 。還是大家能不能給我一些分類的建議?
有空的話 (有嗎?) 要寫一個自己用的書籤整理工具… (還是找寫好的比較快?)
PHP
-
5 Ways to be a Better PHP Developer
五個成為好 PHP 開發者的方式,我個人認為第一個「學會看手冊」是最重要的!
-
這篇談到將 Apache 的 MPM 設定為 work 模式時所帶來的優勢,看來我還得再深入研究一下。
-
PHP 5.3 "NOWDOCS" make SQL escaping easier
和傳統的 HereDoc 不太一樣,在 NowDoc 可以讓 SQL escaping 不用再加一堆反斜線。
-
echo 09 會被轉成 0 ,因為在 PHP 中,數字前放 0 代表八進制。作者是建議用 0c 來代替,就像十六進制的 0x 一樣,不過太晚了。
-
PHP Force Download – Keep Up With What’s Going Down
這個下載的 Header 可以參考看看,不過別學文章裡直接用 $_GET 來抓下載路徑呀!
-
這個很方便,程式碼我記下來:
/** * Generates an UUID * * @author Anis uddin Ahmad <admin@ajaxray.com> * @param string an optional prefix * @return string the formatted uuid */ function uuid($prefix = ”) { $chars = md5(uniqid(rand())); $uuid = substr($chars,0,8) . ‘-’; $uuid .= substr($chars,8,4) . ‘-’; $uuid .= substr($chars,12,4) . ‘-’; $uuid .= substr($chars,16,4) . ‘-’; $uuid .= substr($chars,20,12); return $prefix . $uuid; } -
Why PHP as a templating language sucks
終於有人跳出來說 PHP 不適合直接拿來當 Template 語言了,因為如果使用的人不遵守將視覺呈現邏輯與應用程式邏輯分離的規則,那麼以往 PHP 雜亂的問題將無可避免。當然這裡不是說 Smarty 就是最好的解法,只不過如果要避免程式裡塞滿一堆義大利麵條,適當的樣版語言還是必須的 (當然也可以是簡化版的 PHP 語法) 。不過文章的回應中有個論點:「那你為什麼不好好地訓練你的伙伴,讓他們遵守分離的規則?」我的想法是:「如果訓練真的那麼容易的話,我也不用推 Smarty 了。」
-
Retrieving Information on Several Objects with Destructors in PHP 5
介紹 PHP5 中 Destructor 的一些知識。
-
大概意思是說類別與類別之間如果有相依性的話應該如何處理?不然在做單元測試時,常會被相依性給限制住了。主要的方法是透過抽象工廠,這樣可以動態建立相關的類別。
-
40 Tips for optimizing your php code
宗董幫我們開示了: PHP 程式效能優化的 40 條建議。
-
這篇為 PHP 5.3 的特性做了一個較為完整並附有範例的介紹,看來 5.3 著墨最多的是 namespaces 的部份。
-
這個套件可以幫我們從任意作業平台連線到 Windows 主機上的 ODBC 資料來源,不過不曉得對 UTF-8 的支援程度如何?
-
New Rails for PHP Developers Website
PHP 開發者想瞭解 Rails 的話,可以到 Rails for PHP Developers 看看。
-
有點像是 Wiki 語法,可以用 PHP Markdown 來轉換成 HTML 。
-
Tips : Find a file in subdirectory with FilterIterator in php
看來是好好把 Iterator 學起來的時候了。
-
我只會用 array_map 而已…Orz ,沒想到還有 array_filter 和 array_reduce 這兩個好物,配合 create_function 以後真是簡單好用,看來我對手冊還不夠熟。不過 map 和其他函式的參數順序不同,這點很讓人無言。
Zend Framework
Zend Framework 終於受到台灣 PHP 開發者的重視了,在酷學園有幾篇教學,而 gslin 也開始研究了。
-
之前我就說 <?php echo $this->escape(xxx) ?> 很醜了,你看人家 Rob 想盡辦法要把它趕出 Template 。
-
The Zend Framework, Dependency Injection and Zend_Di
我對裡面的 PHP 密技比較有興趣,問了身邊玩 PHP 的朋友,沒有人知道可以這樣用。有關這個密技,有空我再獨立寫一篇。
-
Zend_Feed: Getting Started With Aggregating RSS/Atom Content
透過 Zend_Feed 來取得外部 RSS/Atom ,並寫入資料庫。我只能說…這就是 Web 2.0 !
-
簡單介紹了 Zend_Form 的應用。
-
這篇在介紹 ZF 1.5 版中 Zend_Form 的一些進階特色。
-
Implement Zend_Cache_Backend_Blackhole
這個類別主要是用來做單元測試用的,只是把它命名為「黑洞」實在是令人噴飯 XD
-
Notes on Choosing a PHP Framework: A Comparison of CakePHP and the Zend Framework
從兩個 Framework 都有的部份來做一個比較,各有善長的部份。整體來說, ZF 是走靈活路線,要拿來當 Library 也是可以。
JavaScript
-
Javascript – Creating a queue system part 1 : procedural way
能夠把 event 動作 queue 起來,等到特定動作時再一次執行。類似的行為 jQuery 新版也內建了,還不錯用。
-
Best of Ajax, Dhtml and Javascript- part1
一些不錯的 AJAX 及 DHTML 的技術文件。
-
Beware of id and name attribute mixups when using getElementById in Internet Explorer
這個問題已經講過很多次了, IE 的 getElementById 會把 name 屬性錯當成 id 屬性。
-
比較各種 String trim 方法的速度,目前看來是 trim12 最快。
function trim12 (str) { var str = str.replace(/^\s\s*/, ''), ws = /\s/, i = str.length; while (ws.test(str.charAt(--i))); return str.slice(0, i + 1); } -
JavaScript Global Namespace Pollution
應該是在說瀏覽器中 JavaScript Global 物件的安全性問題,不過看不太懂…Orz
-
一堆 JavaScript 速查表 (作弊小抄 XD) 。
-
要 Firefox3 才有作用,可是這樣有沒有安全議題呀?
-
JavaScript Library Loading Speed
各家 JS Lib 的載入時間比較。
-
Partial Functions in JavaScript
很酷的用法,可以事先定義好某些 function 的參數並指定成一個新函式實數 (function literal) 。不過我在 IE6 上試的結果是沒辦法運作的,據 John 說可能是因為 IE 的 native functions (像 alert 或 setTimeout 等) 不支援 Function.prototype 的關係。
-
利用 Ttamarin 這個軟體來追蹤 JavaScript 的執行時間。
-
一個 Ajax 線上聊天的開源套件,可以下載回來參考看看別人是怎麼處理大量 Ajax 訊息的。
-
將表格資訊轉換成 Canvas 圓餅圖。
-
Prototype 也有自己的 UI 套件了。
-
Smooth Javascript Image Zooming For Your Web Pages
FancyZoom 可以用很順暢的方式來將小圖放大。
-
Self-currying JavaScript functions
第一次看到這種神奇的寫法,不過要配合 Prototype 才能動。
-
主要是檢查 offsetWidth 是不是為 0 。
-
37 篇 JavaScript 的效能測試文章。
-
Tips for Faster JavaScript Scripts
加速 JavaScript 的技巧。
jQuery
-
jQuery 1.2.3: AIR, Namespacing, and UI Alpha
jQuery 1.2.3 及 jQuery UI 1.5 alpha 推出。
-
Get it while it’s hot: jQuery UI 1.5a and jQuery Enchant 1.0a! / jQuery UI 1.5b: New API, more features, huge performance boost
上一個消息沒發多久,馬上 jQuery UI 1.5 beta 就推出了。這次的版本速度更快,也加很多新功能;另外就是之前提過的 Interface 繼任者: jQuery Enchant (即 jQuery FX) ;這兩個套件都需要配合 jQuery 1.2.3 。
-
主要是能一次定義一組事件處理器並 attach 給元素,而不是一個一個事件定義。
-
新的 API Browser ,還用了 jQuery 本身來做特效,查範例時方便很多。
-
利用 jQuery 預載圖片。
-
主要說明 bind 的用法。
-
Grid edit in place with jQuery and Ajax
做出類似 Excel 的編輯介面 (IE 會有問題) 。
-
印一張擺桌上,再配合上面的 API Browser 就事半功倍囉。
-
真酷!教你如何用 jQuery 做出像 Apple 網站上商品展示的效果!(原來的效果是用 prototype.js 做的。)
CSS
-
CSS Sprite 是什麼就不多說了,有興趣的朋友請自行前往參考。
-
主要概念是做出能夠延展的背景,可是我不喜歡還有一個 img 標籤的解法。
-
Five CSS-Coding Steps from a Professional
專業的 CSS 設計五步驟…不過除了「儘可能在所有瀏覽器上測試」外,其他概念其實都能算是設計通則。
-
CSS3 提出了一個 ::selection 的 pseudo-element ,可以讓我們改變在選取瀏覽器文字的反白效果,但目前只有部份支援 CSS3 的瀏覽器才會有效果。 Hide an image in html 就是應用這個技術來隱藏圖片。
-
以前透過 CSS 來將文字取代成圖片時,多少都會有些麻煩;而 CSS3 提出以 content 這個 CSS 屬性來完成相同的事情。不過這個想法還在提議階段,也可能會有其他想法出現也不一定。
-
Eric 大師的 CSS Reset Reloaded 又修正一些部份了,然後釋出新的版本了。另外這裡有另一種版本的 CSS Reset 。
-
各種清除浮動的技巧及它們對各家瀏覽器支援程度的一覽表。
-
上一則連結中裡有用到的方式,不過 IE 一樣不支援。
-
參考一下吧,我個人是隨心所慾(誤)欲啦…不過這樣的習慣不太好。這篇另一個重點就是列出常用的屬性,這樣就不怕記不住了。
-
這個是大陸用語,意思是如果一行內文字太長的話要如何處理;有些屬性只有 IE 能用。
-
讓你可以線上即時看到 CSS 對文字的影響,確認後就可以把 CSS 碼帶回家了。
-
太厲害了!用純 CSS 可以做出點陣圖小畫家的效果。主要原理是利用連結的 hover 、 visited 等虛擬屬性來達成,可惜對 IE 還是沒用。
-
Powerful CSS-Techniques For Effective Coding
又是一堆高深 CSS 技術的集合。
-
十個很實用的 CSS 技巧,其中幾個之前也介紹過。
Database
-
SQL: If Exists Update Else Insert
概念是先 Update ,如果影響的 RowCount 為 0 表示沒有 Update ,這時再用 Insert 。
MySQL
-
Convert MySQL to MS Sql Server
幫你把 MySQL 的 Schema 轉換成 MS SQL Server 可用的格式。
-
Finding out largest tables on MySQL Server
跨資料庫找出前十個佔用空間最大的資料表。
SELECT concat(table_schema,'.',table_name),concat(round(table_rows/1000000,2),'M') rows,concat(round(data_length/(1024*1024*1024),2),'G') DATA,concat(round(index_length/(1024*1024*1024),2),'G') idx,concat(round((data_length+index_length)/(1024*1024*1024),2),'G') total_size,round(index_length/data_length,2) idxfrac FROM information_schema.TABLES ORDER BY data_length+index_length DESC LIMIT 10;
Web
-
Ajax, ZF and Smarty feed reader: part 1 / part 2 / part 3
教你用 Ajax 配合 Zend Framework 及 Smarty 做出 Feed Reader 。
-
[Apache] mod_rewrite 進階用法,網域 redirect
介紹了一些還滿有用的 mod_rewrite 範例。
Design
-
有自行設定圖示的朋友可以參考看看。
-
11 Ways to Gain Exposure as a Web Designer
想要增加作品曝光率的話可以參考看看。
-
Handy Web 2.0 Icons In Photoshop
用 PhotoShop 製作常見的 Web 2.0 圖示按鈕。
-
Top-10 Application-Design Mistakes
10 大設計應用程式介面時的迷思。
Browser
-
The Internet Explorer 8 User-Agent String
IE8 的 beta 版本在 2008 上半年就會釋出了,這篇在討論它的 User-Agent 字串。
HTML
-
HTML 5 v HTML 4 > The Difference Is Clear
比較 HTML 5 和 HTML 4 的差別。的確第五版比較符合 Web 潮流,可以參考揭開HTML 5工作草稿的神秘面紗裡的介紹。
-
結論就是使用 XHTML 1.0 Transitional ,以瀏覽器的標準模式來呈現頁面。
Service
-
XML-Echo Sitemap Generator 會幫你建立 Google Sitemap ,這樣就不用自己建立了。
-
Pretty Printer for PHP, Java, C++, C, Perl, JavaScript, CSS
幫你格式化程式碼的服務…不過 PHP 好像還是會有一點問題。
-
輸入名字就可以看到你未來的樣子…為什麼我是被烤的小魚呀! (淚奔~)
Programming
-
10 Reasons to Learn and Use Regular Expressions
想要踏入高手的行列,就不能不學 Regular Expressions !
-
Don’t Use Exceptions To Control Application Flow
異常機制不是用來控制流程用的,這個要學起來。
IE 不是把 name 屬性錯當成 id 屬性,而是載入文件時,沒有 id 時會把 name 的值複製為 id 的值,runtime 時 createElement 可不會這麼做。
To 路人:
感謝說明
不過我試的結果好像沒有「複製 id」耶?
我的方式是這樣子的:
1. 畫面上只有一個 name="abc" 的元素。
2. 用 var a = document.getElementById(‘abc’) 來取得這個元素 (當然是在 IE 上) 。
3. alert(a.id); 不會有值。
4. alert(a.name); 出現 abc 。
能否請教你是如何測試的嗎?還是我想錯了?
真的,Regular Expressions太重要了。前陣子,才去買了聖經本回來K。
To jaceju:
很抱歉,是我搞錯了,過去在腦海中的記憶一直以為 IE 把 name 的值複製為 id 的值,剛測了一下確實不是這麼回事,出來擾民真是不好意思,我還是速速散去~~
To 路人:
沒關係啦,技術本來就是要討論才會進步;我也是有很多地方不明白的,還望網路上的各位高人們指點。