CCNS 第一次雙周刊雜文

CCNS 成大網愛社 想辦一份雙周刊,聽他們講就是收集一些文章, 加上一點心得,半個月發一次。 周刊的排版、發行已經完成了, 只要推薦文章、寫心得就好了。 雙周刊跳坑

我就隨便推了幾篇, 但陳大立說我寫得太多太亂, 要寫得制式一點,只好重寫。 這些就是太多太亂的。

lambda 表達式創世紀

這篇我沒有讀完,到後面有點難了。 她用 lambda 實現了數學世界。 (是實現圖靈機嗎?不太確定,沒讀過相關理論。) 一開始實現 boolen 運算很神奇, 到有理數就有點看不懂了。

可以理解 lisp 和 scheme 到底強大在哪。 兩者都是上古時代的高階語言, 都有資料與程式用同一方式儲存的特性。

printf "1+2+5! = %d\n" (sum '(1 2 (frac 5))

printf 、 sum 、 frac 是函數, 把之後的變數當參數呼叫, 括號只是用來改變優先順序。

frac 的參數是 5 , (frac 5) 返回 120 。 sum 的參數是一個 list ,也是用括號和空格表示。 但為了避免被當作函數呼叫,所以 quote 起來。 (簡寫成 ' 。) quote a 會返回 a 本身, 不然只寫 a 會被當作函數執行。

TonyQ 講政府資訊系統時,隔避棚的中文排版

我心中的 css 不是要弄那些很炫的特效、動畫, 只是要弄出 正確的排版 。 什麼叫正確的排版? 可以是中文印書時的排版習慣, 或是像論文的格式,報告、企劃書的格式; 但最重要的是 看起來舒服

css 中一些特殊的樣式,也是為了排版習慣而加的, 像偽元素 ::first-line::first-character , 是因為英文一些排版習慣把第一個字加大, 或把第一行突出顯示。

現在 w3c 正在徵求各文字的排版習慣, 才能定出合適的 css 規格, 方能符合各文化排版的需求。

英文中習慣用斜體、粗體強調,但中文沒有斜體。 其實英文的斜體應該是從一般內文的 印刷體 換成 書寫體 , 比較像 行書草書 , 但因為英文直接把字弄斜就和行書很像了, 所以就這樣了。

中文的強調早期有在底下 著重點 的作法, 如果要斜體可以像把楷體換行書之類的作法。 所以 html 的 <em><strong> 不應該是單純把字弄斜、弄粗, 應該思考中文習慣用什麼方式去強調? 加大字?加粗?換字型?換顏色?加底線?

我一直覺得 word 很難用, 我用 css ,可以簡單定好規則, word 好像也可以,但我不知道怎麼調。

/* 段茖 */
p {
    text-indent: 2em;  /* 首行縮排兩個字宽 */
    margin: 0.5em 0;  /* 段距半個字宽 */
}

/* 全部 */
body {
    font-size: 12pt;  /* 一個字 12pt 大 */
    padding: 2em;  /* 邊界二個字宽 */
}

Houdini: 為 CSS 上 patch

你記得在各種瀏覽器上測試 各種 CSS 規則適不適用時的感覺嗎? 你有沒有為少數瀏覽器的 不支援 而棄用過中意的樣式? Houdini 嘗試用 JS 的方式解決問題!

當你的瀏覽器因為過舊而不能用一些新的 dom 函數時, 你會嘗試引用一些 library 來兼容舊瀏覽器, 或自己實現一些函數,像 ES3 中沒有的 Array.prototype.forEach

Array.prototype.forEach = function forEach(callback) {
    for (var i=0, l=this.length; i<l; i++)
        callback(this[i],i,this)
}

那 css 為什麼不能做到呢? 為什麼不能自己手動實現新的功能呢? Houdini 嘗試為瀏覽器的 render engine 打造統一的 API , 讓開發者可以去調用這些 API , 自行實現新潮的功能,就像對 JS patch 那樣。