這裡介紹一些可以在網頁上產生圓形圖表的 JavaScript 工具,透過這樣的設計可以讓網頁在呈現數值資料時更生動活潑。
Linux 標準串流(Standard Streams)的緩衝區(Buffer)問題
這裡討論在 Linux 系統上標準串流(standard streams)的緩衝區(buffering)時常容易會產生的一些問題。
首先請看下面這個使用 pipeline 的指令:
其中的 kernel buffer 會由 shell 所呼叫的 pipe system call 來建立,這個 buffer 的大小我們並沒有辦法直接控制,但基本上也不用擔心,因為 kernel 會在接到資料之後,立刻將資料送出去,通常效率都不是問題。(參考資料:circular pipes)
首先請看下面這個使用 pipeline 的指令:
command1 | command2在這裡 shell 會 fork 兩個 processes,然後利用 pipe 連起來,整個架構中包含了三個緩衝區(buffer),就像這樣:
其中的 kernel buffer 會由 shell 所呼叫的 pipe system call 來建立,這個 buffer 的大小我們並沒有辦法直接控制,但基本上也不用擔心,因為 kernel 會在接到資料之後,立刻將資料送出去,通常效率都不是問題。(參考資料:circular pipes)
Code School:網頁技術線上學習網站,提供 JavaScript、HTML、CSS 等教學
Code School 是一個提供各種網頁技術教學的線上學習網站,基本的課程可以免費觀看,進階課程則是需要付費。
Code School 中將教學的課程分為四大類,分別為 JavaScript、HTML/CSS、Ruby 與 iOS,另外也有一些其他領域的課程,例如 Git、R 等。
Code School 中將教學的課程分為四大類,分別為 JavaScript、HTML/CSS、Ruby 與 iOS,另外也有一些其他領域的課程,例如 Git、R 等。
各種免費與付費的 CDN 服務整理
這裡整理了網路上常用的免費與付費的 CDN 服務,透過這樣的服務可加速網頁載入速度,適用於各種網站與部落格。
內容傳遞網路(content delivery network,簡稱 CDN)是指一種藉由分散在世界各地的伺服器,減低封包傳遞的路程與時間的一種架構(其觀念可參考網路延遲與頻寬的說明文章)。
一般的 CDN 都會用來放置一些靜態的檔案,例如圖檔、影片檔、聲音檔、CSS 檔或 JavaScript 檔,一些常見的 JavaScript 函式庫、HTML5 shims、CSS resets、網頁字型等通常都可以在一些公用的 CDN 中找到。
內容傳遞網路(content delivery network,簡稱 CDN)是指一種藉由分散在世界各地的伺服器,減低封包傳遞的路程與時間的一種架構(其觀念可參考網路延遲與頻寬的說明文章)。
一般的 CDN 都會用來放置一些靜態的檔案,例如圖檔、影片檔、聲音檔、CSS 檔或 JavaScript 檔,一些常見的 JavaScript 函式庫、HTML5 shims、CSS resets、網頁字型等通常都可以在一些公用的 CDN 中找到。
WebSocket 通訊協定簡介:比較 Polling、Long-Polling 與 Streaming 的運作原理
這裡介紹 HTML5 的 WebSocket 概念,並且跟傳統的即時性網頁技術 Polling、Long-Polling 與 Streaming 做比較。
HTML5 的 WebSocket 是一種建立在單一 TCP 連線上的全雙工(full-duplex)通訊管道,可以讓網頁應用程式與伺服器之間做即時性、雙向的資料傳遞。
WebSocket 跟以往實作全雙工的技術比起來,改進了非常多,不但減低網路頻寬的使用,有降低了網路延遲的時間。(關於網路的頻寬與延遲可參考這裡)
HTML5 的 WebSocket 是一種建立在單一 TCP 連線上的全雙工(full-duplex)通訊管道,可以讓網頁應用程式與伺服器之間做即時性、雙向的資料傳遞。
WebSocket 跟以往實作全雙工的技術比起來,改進了非常多,不但減低網路頻寬的使用,有降低了網路延遲的時間。(關於網路的頻寬與延遲可參考這裡)
紙本書籍至今依然屹立不搖,未來也是如此!
隨著各種資訊的數位化,電子書也跟著越來越普及,雖然紙本書籍的市場受到擠壓,但是依然屹立不搖。
我個人非常喜愛看資訊類的書籍,在大學時代花在買資訊圖書上的錢就超過三萬塊,不過後來因為書實在太多了,就改用電子書的方式,一來省錢,二來不佔空間,攜帶方便,許多資訊類的圖書出版商都有推出電子書(像歐萊禮就很多),還特別買了一台 Kindle Paper White 來看。
我個人非常喜愛看資訊類的書籍,在大學時代花在買資訊圖書上的錢就超過三萬塊,不過後來因為書實在太多了,就改用電子書的方式,一來省錢,二來不佔空間,攜帶方便,許多資訊類的圖書出版商都有推出電子書(像歐萊禮就很多),還特別買了一台 Kindle Paper White 來看。
在 Ubuntu Linux 中安裝與使用 RabbitMQ 訊息佇列
這裡介紹如何在 Ubuntu Linux 中安裝 RabbitMQ 這個訊息佇列,並且以範例程式說明如何使用 RabbitMQ。
RabbitMQ 是一個訊息仲介(message broker),它所做的事情就是接收訊息,然後再把訊息發送出去,就好像郵局一樣,發信者將信件交給郵差,透過郵局的郵務系統將信件送給收信人,而 RabbitMQ 跟郵局的不同點只在於它不處理實體的信件,而是處理數位化的資料。
RabbitMQ 是一個訊息仲介(message broker),它所做的事情就是接收訊息,然後再把訊息發送出去,就好像郵局一樣,發信者將信件交給郵差,透過郵局的郵務系統將信件送給收信人,而 RabbitMQ 跟郵局的不同點只在於它不處理實體的信件,而是處理數位化的資料。
Autoprefixer:最佳的 CSS 供應商前綴(Vender Prefixes)後處理器
Autoprefixer 是一個 CSS 供應商前綴(Vender Prefixes)的後處理器,這裡告訴你這個工具如何使用以及它的優點在哪裡。
既有問題
在之前的文章中我們介紹過好幾種處理 CSS 供應商前綴的問題,但是各種工具都有其優缺點,像 Prefixr 這類的工具在處理比較大量的程式碼時,老是要將程式碼複製與貼上,就會很累。在任何的牆壁上玩貪食蛇!
這裡的貪食蛇遊戲可以讓你可以在任何的牆壁上玩,而且根據不同的場地產生各種不同的關卡。
MPU 利用攝影機與投影機加上一些影像處理技術,將傳統手機上的貪食蛇遊戲改造成一個可以依照不同的牆面,產生不同關卡的遊戲。
MPU 利用攝影機與投影機加上一些影像處理技術,將傳統手機上的貪食蛇遊戲改造成一個可以依照不同的牆面,產生不同關卡的遊戲。
萊特幣(Litecoin)採礦(Mining)賺錢!?
這裡分享我個在練習開挖萊特幣(Litecoin)時所搜集到的資料,給大家參考一下。
什麼是萊特幣(Litecoin)?
萊特幣(Litecoin,符號為 Ł,縮寫為 LTC)是一種以點對點(peer-to-peer)技術為基礎的網路虛擬貨幣,它是將原有的比特幣(Bitcoin)加入了一些改良後,所產生的新的電子貨幣,其與比特幣相比,有三項特點:- 萊特幣網路每 2.5 分鐘(而不是 10 分鐘)就可以處理一個 block,因此可以提供更快的交易確認。
- 萊特幣網路預期產出 8400 萬個萊特幣,是比特幣網路發行貨幣量的四倍之多。
- 萊特幣在其工作量證明演算法中使用了由 Colin Percival 首次提出的 scrypt 加密演算法,這使得相比於比特幣,在普通計算機上進行萊特幣挖掘更為容易。每一個萊特幣被分成 100,000,000 個更小的單位,通過八位小數來界定。
使用 speedtest-cli 指令在終端機中測試 Linux 網路連線速度
這裡介紹如何使用 speedtest-cli 指令在終端機中測試 Linux 網路連線速度,主要適用於各種 Linux 伺服器。
一般會影響網路速度的原因有很多(例如網路的延遲與頻寬),而在網路很慢的時候,大家通常都會使用 Speedtest.net 或 Hinet 連線速率測試工具來檢測自己的 ISP 網路速度是否有問題。
一般會影響網路速度的原因有很多(例如網路的延遲與頻寬),而在網路很慢的時候,大家通常都會使用 Speedtest.net 或 Hinet 連線速率測試工具來檢測自己的 ISP 網路速度是否有問題。
Share Button:jQuery 社群分享按鈕 Plugin
Share Button 是一個 jQuery 的社群分享按鈕 plugin,並且可以依照自己的網站風格自訂分享按鈕的樣式。
目前許多社群網站都有提供分享按鈕的功能,但是這類的分享功能有一些缺點:
目前許多社群網站都有提供分享按鈕的功能,但是這類的分享功能有一些缺點:
- 通常會附帶載入一些不必要的 JavaScript 程式碼,讓網頁載入的速度變慢。
- 預設的按鈕可能會部符合網站的整體設計風格,造成畫面產生突兀的感覺,而使用者也無法任意更改樣式。
- 每次需要在網頁中加上按鈕時,都要使用 Google 查詢像「facebook like button」這樣的關鍵字,找到官方網站的程式碼產生工具,產生程式碼後再複製回自己的網頁中,不僅讓整個網頁程式碼顯得很雜亂(尤其是在加入好幾種社群的分享按鈕的時候),而且也不方便。
- 分享按鈕本身會佔去過多的網頁版面,不是很好看。
- 不需要使用任何的 iframe 或是載入多餘的 JavaScript,可讓網頁的載入速度變快。
- 預設的版面很清爽,使用者也可以自行更改樣式。
- 使用上很簡單,只要引入它的 JavaScript 檔,再呼叫 .share() 函數就可以了,程式碼只需要兩行。
- 按鈕很簡潔,當使用者按下時,才會顯示所有的分享按鈕。
CodeCombat:透過玩遊戲學習 JavaScript 程式設計
CodeCombat 是一個開放原始碼的線上戰略遊戲,可以讓你一邊玩遊戲一邊學習 JavaScript 的程式設計。
一般初學者在學習程式語言的時候,通常都要經過一段漫長的時間去習慣程式設計的思維與邏輯,尤其是完全沒有寫過程式的人,會需要更長的時間,而這段時期通常都很枯燥乏味。
CodeCombat 是一個專門設計給初學者(或是小朋友)學習程式語言的戰略遊戲(strategy game),讓學習程式語言的過程可以更輕鬆、更有趣,而且整個學習的過程是真的在玩遊戲。
一般初學者在學習程式語言的時候,通常都要經過一段漫長的時間去習慣程式設計的思維與邏輯,尤其是完全沒有寫過程式的人,會需要更長的時間,而這段時期通常都很枯燥乏味。
CodeCombat 是一個專門設計給初學者(或是小朋友)學習程式語言的戰略遊戲(strategy game),讓學習程式語言的過程可以更輕鬆、更有趣,而且整個學習的過程是真的在玩遊戲。
自製中文網頁字形(Web Font)並內崁至網頁中(使用 CSS @font-face)
這裡教大家如何自己製作中文的字形檔,並轉為網頁用的字型格式,藉由 CSS 的 @font-face 功能在網頁中使用。
現在大部份的瀏覽器都可以支援 @font-face 這樣的自定網頁字型功能,但是到目前為止這項技術大部份都是應用於英文的字型上,而中文的字型檔由於大小通常都很大,如果讓使用者在看網頁文字時還要再下載好幾 MB 的字型檔,通常都會讓整個網頁效率大幅下降,所以大部份的網頁中的中文字都比較少使用自定的字型。
現在大部份的瀏覽器都可以支援 @font-face 這樣的自定網頁字型功能,但是到目前為止這項技術大部份都是應用於英文的字型上,而中文的字型檔由於大小通常都很大,如果讓使用者在看網頁文字時還要再下載好幾 MB 的字型檔,通常都會讓整個網頁效率大幅下降,所以大部份的網頁中的中文字都比較少使用自定的字型。
訂閱:
文章 (Atom)