發表文章

目前顯示的是 11月, 2008的文章

TIOBE Programming Community Index

圖片
TIOBE Programming Community index 是TIOBE公司利用搜尋引擎對程式語言統計而產生的數值 可以將它視為 程式語言受歡迎程度的指標 每個月這個指標都會更新一次 連結: TIOBE Programming Community index 定義: TIOBE Programming Community Index Definition 下面是2008年11月的資料: 依據網站上的說明近5年的前十名程式語言排名幾乎沒有變化 盤據十名榜的常勝軍包括Java、C、C++、PHP、Visual Basic、JavaScript、C# (但最近似乎有不少新進的語言大幅成長而使十名榜產生變化了) 若是看趨勢圖會發現2004年中趨勢有了劇烈的起伏 原因不是因為有什麼程式語言迅速崛起或沒落 而是因為google調整了他的搜尋策略使搜尋結果有很大的變動 因而影響到這個依據搜尋引擎統計的指標 TIOBE index雖然是個程式語言受歡迎程度的指標 但TIOBE一開始就在網頁上提到: TIOBE index並不是要指出哪個語言才是最好的程式語言 也不是在比較程式設計師使用哪個語言寫了最多行的程式碼 它的目的是用來檢視我們的程式開發技能是不是能跟上潮流處於最新的狀態 也提供我們在開發建置新的專案或系統時選擇程式語言的參考 關鍵字:程式語言, 比較, 排名, 趨勢 參考資料: 1. TIOBE Programming Community index 2. 程式語言 -- 專案各有所需、人人各有所好

自製小玩具:期中考成績分析

圖片
首先希望看到這個頁面的大家都可以試玩看看 命運的期中考成績分析 整個結果頁面的預覽圖: ## 注意 ## 這個並不會是永久放置的小玩具 也許過一陣子連結就會失效了 這篇文章的目的並不是為了要宣傳或讓大家試玩 而是要稍微紀錄解說一下整個頁面的運作 首先要讓大家了解到的是這雖然名為分析 但運作模式卻不折不扣是個完全依據亂數決定的程式 程式一開始由檔案中取得我事先輸入的40多個項目 接著亂數選出一個項目 再亂數產生一個介於0到bound的數字 (bound目前設定是20 功用是避免某個項目佔的比重太大) 產生數字後就把數字加入該次亂數選到的項目 (若多次亂數選到同一個項目則數字會疊加上去 所以若看到某一項目比例超過bound那麼就是這個項目被選中兩次以上) 將數字加到項目以後會計算剩餘的比例 當剩餘的比例低於bound時就把剩下的加到最後一次亂數選中的項目 (這是避免產生太多比例非常低的項目) 產生了所有項目和比例之後透過 Google Chart API 產生統計資料的圓餅圖 (細節可參考 Google Chart API:繪製中文圓餅圖 ) 最後在動態網頁上把資料和圖片一起顯示出來 基本上功能到這邊就已經完全 但在這種模式下每個人每次的計算結果都會不一樣 於是又另外寫了紀錄的功能 (紀錄在檔案而不是資料庫,不是沒能力存到資料庫,而是有點麻煩XD) 完成這個功能以後每個人計算時會先看是否已經玩過存有資料 如果沒有的話就照平常的方法產生結果 已經玩過的話就從檔案裡讀取資料 以上便是這整個小玩具的運作模式 一開始是因為 成份分析產生器 產生興趣 在不知道他的做法的狀況下以自己的想法模擬做了一個 結果就是發現這樣的分析其實都只是亂數罷了 :p 關鍵字:成份分析 參考資料: 1. 成份分析產生器

用Java替中文網址轉碼:URLEncoder

圖片
在程式或者網頁的應用中我們常常需要把中文轉換為其他編碼 例如在上一篇 Google Chart API:繪製中文圓餅圖(Pie Chart) 就需要把中文網址轉換為 UTF-8 的編碼 當然下面介紹這些也不僅僅限於轉換網址而已 圖片來源:http://www.stringfunction.com/blog/url-encoding-decoding/ 在我目前的應用中只用過了JAVA 使用的函數是 URLEncoder.encode(String 字串, String 編碼) (編碼為:UTF-8, UTF-16等等) 以下是節錄自 用javascript轉UTF-8編碼 的編碼解碼介紹 #Java# 會處理#字元為%23,空白字元轉換為+,中文字拆開每BYTE處理為ASCII 第二個String 為Locale java.net.URLEncoder.encode(String args,String args) java.net.URLDecoder.decode(String args,String args) #JavaScript# 會處理#字元為%23,空白字元轉換為+,中文字處理為UniCode escape(String args) unescape(String args) 不會處理#字元,空白字元轉換為%20,中文字拆開每BYTE處理為ASCII encodeURI(String args) decodeURI(String args) 會處理#字元為%23,空白字元轉換為%20,中文字拆開每BYTE處理為ASCII encodeURIComponent(String args) decodeURIComponent(String args) #PHP# 會處理#字元為%23,空白字元轉換為+,中文字拆開每BYTE處理為ASCII urlencode urldecode 會處理#字元為%23,空白字元轉換為%20,中文字拆開每BYTE處理為ASCII (RFC 1738 ) rawurlencode rawurldecode 這篇只介紹了使用java來做轉碼 使用javascript編碼轉換的介紹可以查看 用Javascript替中文轉碼:escape, enc

Google Chart API:繪製中文圓餅圖(Pie Chart)

圖片
目前在網路上看到的文章都還說 Google Chart API 無法使用中文 但其實是可以的 所以特地寫一篇介紹如何達成我們的目標 Google Chart API 是google提供的服務 我們只要透過網址傳遞相關的參數和資料 就可以獲得對應的資料圖表 今天要介紹的就是利用google來繪製圓餅圖 上圖就是google官方所提供的範例,網址是: http://chart.apis.google.com/chart?cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World 其中 http://chart.apis.google.com/chart? 是Chart API的網址後面要接參數 重要的參數說明如下: cht=p3 :選擇圖片類型,如現在是立體圓餅圖 chd=t:60,40 :各項資料的比例,注意順序要與 chl 對應,以 , 分隔 chs=250x100 :圖片大小,Google提供支援到300000畫素,可以自訂為1000*300,750*400,600*500等等,注意若文字過長被圖片切掉可以透過把圖調扁來讓他顯示 chl=Hello|World :各項資料的名稱,以 | 分隔 另外還有 chtt 是圖表的名稱,其餘的參數可以參考 Google Chart API 上面的一段在google已經可以找到很多說明了 本篇的重點其實是在如何為圖表加入中文 因為google目前還不支援直接把中文放在網址中產生圖片 所以很多人都以為這個API是無法使用中文的 但是讓我們來看看下面這個例子 其中的網址和剛剛都很類似 http://chart.apis.google.com/chart?cht=p3&chd=t:60,40&chs=250x100&chl=%E4%B8%AD%E6%96%87|%E5%87%BA%E7%8F%BE%E4%BA%86 只有 chl 的地方改變了 %E4%B8%AD%E6%96%87 對應到的是 中文 的UTF-8編碼 %E5%87%BA%E7%8F%BE%E4%BA%86 則是 出現了 的UTF-8編碼 關於中文網址的編碼轉換請參考 用Java替中文轉碼:URLEncoder 用Javascript替中文轉碼:escape, encodeURI, enc

HashMap的應用及資料排序

在資料處理時我們常常需要 (key, value) 的對應 先前在 將List做排序的方法 也是為了類似的目的 當初利用List是因為我們不需要由key去取得value的功能 只需要把所有資料依某個欄位排序全部印出即可 在這種情況底下自己建立所需資料型態的物件List會比較方便 然而有時候我們需要的是針對某個鍵值提出對應的資料 以成績單舉例好了 當我們的目的只是要列印成績單 那麼用List去做會是一個不錯的選擇 可是在List的結構底下若是我們只想得到某一學生的成績 那我們就得在List裡頭搜尋這個學生的名字然後才能得到成績 面對這種狀況另一個方法就是利用HashMap 把資料的 (key, value) 放入HashMap以後要針對特定的key取得value是非常簡單的 可以參考最下面程式碼裡面單純取得成績那段 如果HashMap裡頭有儲存資料則會傳回對應該key的value HashMap裡沒有資料的話則會傳回 null 在HashMap裡資料的排列與key、value、加入順序都無關 HashMap有自己獨特的排列方式,像程式碼第二段的輸出結果 若是想讓資料以key值排序可以選擇用TreeMap 但效能是HashMap較佳 利用HashMap我們已經達到可以利用key值迅速取得value 但是如果我們想要印出所有資料卻又不知道姓名怎麼辦呢? 這時候只好利用HashMap的entrySet()方法取得所有資料 然後把這些資料匯入List中做處理 只要資料匯入List後就可以依照key或value排序印出了 如程式碼第三四段 在看程式碼和結果前先下個簡短的結論 如果是單純的想列印全部資料或者欄位不只兩個 那麼就建立一個自訂class的List來處理會比較方便 如同 將List做排序的方法 所介紹的 但如果資料只是兩欄 (key, value) 的配對 則用HashMap可以迅速取得單一key對應的資料 HashMap的作法只要稍加轉換仍舊可以排序列印出所有資料 以上供大家在選擇時做參考,下面是程式碼和輸出結果 import java . util .*; public class HashMapDemo { private HashMap < String , Integer > transcript ; public sta

用 Blog 賺小錢 - 博客來AP策略聯盟

圖片
(2011.12.19更新) 本系列介紹文章已有新版本,請見: 部落格廣告賺錢術(一):Google Adsense、BloggerAds、BlogAD 收益比較 。 部落格廣告賺錢術(二):博客來AP策略聯盟、Yahoo!奇摩購物中心大聯盟計畫平台、PChome商店街分紅網 。 更多外掛如相關文章推薦輪播、部落格廣告賺錢、社群網站外掛等,請見總整理文章: Blog Plugins:部落格外掛大全整理,什麼都有、什麼都不奇怪 。 這篇要介紹的是 博客來AP策略聯盟 。 博客來AP策略聯盟 和前面介紹的廣告收益方式完全不同, 前者是以廣告出現頻率和使用者點擊廣告的次數來計算收益, 而博客來則利用使用者由個人推薦連結進入購買的金額來計算分紅。 也就是說今天有人點了屬於我的推薦連結購物, 那麼我就可以在這筆消費中取得固定比例的分紅。 和前面的廣告最不同的是,這個類型的廣告一定要有消費產生才有錢, 光點擊連結是無法產生收益的,這也是為什麼這類廣告被稱為 CPA (Cost-per-Action) 的原因, 而 Google Adsense、BloggerAds 等則被歸類於 PPC(Pay-per-Click) 每次點擊收益, 或 CPM(Cost per Thousand Impressions) 千次曝光收益。 在加入博客來AP策略濕盟前我們可以先到 註冊頁面 看看回饋比率, 然後選擇自己想要的合作方式: 回饋金計算比率表 商品類別 獨家AP 非獨家AP 無回饋金AP 書籍 4 % 2 % 0 % 雜誌 2 % 2 % 0 % 影音 2% 1 % 0 % 美妝 2% 0 % 0 % 親子 2 % 0 % 0 % 衣飾 2 % 0 % 0 % 創意生活 2 % 0 % 0 % 玩藝 2 % 0 % 0 % 美食 2 % 0 % 0 % 其中合作方案的規則是: 獨家AP 合作期間貴網站除了博客來之外,不放置其他電子商務網站相關的銷售連結 非獨家AP 合作期間貴網站放置包含博客來,以及其他電子商務網站相關的銷售連結 無回饋金AP 適用於學術單位或政府機關,或者決定不要回饋金者,博客來不提供回

用 Blog 賺小錢 - BlogAD、BloggerAds

(2011.12.19更新) 本系列介紹文章已有新版本,請見: 部落格廣告賺錢術(一):Google Adsense、BloggerAds、BlogAD 收益比較 。 部落格廣告賺錢術(二):博客來AP策略聯盟、Yahoo!奇摩購物中心大聯盟計畫平台、PChome商店街分紅網 。 這系列大概只會有三篇介紹文章 之前已經在第一篇 用 Blog 賺小錢 - Google Adsense 介紹了 Google Adsense 這篇則要介紹與Adsense有相同收益模式的BlogAD和BloggerAds 首先BlogAD的網址在 http://www.blogad.com.tw/BlogAD/ 也可以透過我的 BlogAD招募網址 連結過去 BlogAD和BloggerAds都是台灣的部落格廣告公司 收益方式基本上都和Adsense差不多 唯一的小差別是BlogAD的獎金計算可以選擇曝光式或點閱式 詳細計算方式可以參考 BlogAD的說明 點閱式是只要有點擊就有獎金 適合流量小的blog 如果是每天廣告播放數會超越5000次則建議使用曝光式 常常被拿來和BlogAD比較的是BloggerAds 印象中BloggerAds是比BlogAD還早出現的 BloggerAds的網址在 http://www.bloggerads.net/ 同樣也可以透過我的 BloggerAds招募網址 來連結喔 BloggerAds和BlogAD主要的差異在於BloggerAds直接整合了曝光與點閱 也就是說無論是廣告曝光或者有人擊點廣告都能獲得收益 這對一般的blog使用者是比較方便的 BloggerAds的廣告放置幅數有限制所以版面會比較乾淨 但這不影響收益喔 多數網友的使用心得都是BloggerAds的獎金較高 除了廣告曝光和點擊的收益外 這兩個網站都有拉下線的機制 其中BlogAD的回饋是終身有效而BloggerAds則不是 所以如果有人想要加入的話歡迎透過我的招募連結加入 BlogAD招募網址 、 BloggerAds招募網址 不過網路上的心得好像是不用太期待從這兒賺錢就是了 以上是這系列的第二篇 一樣提供給大家參考喔 相關文章: 用 Blog 賺小錢 - Google Adsense 用 Blog 賺

121 - Pipe Fitters

圖片
UVa網站題目連結 My Solved Problems Performance Background Filters, or programs that pass ``processed'' data through in some changed form, are an important class of programs in the UNIX operating system. A pipe is an operating system concept that permits data to ``flow'' between processes (and allows filters to be chained together easily.) This problem involves maximizing the number of pipes that can be fit into a storage container (but it's a pipe fitting problem, not a bin packing problem). The Problem A company manufactures pipes of uniform diameter. All pipes are stored in rectangular storage containers, but the containers come in several different sizes. Pipes are stored in rows within a container so that there is no space between pipes in any row (there may be some space at the end of a row), i.e., all pipes in a row are tangent, or touch. Within a rectangular cross-section, pipes are stored in either a grid pattern or a skew pattern as shown below: the t

用 Blog 賺小錢 - Google Adsense

圖片
(2011.12.19更新) 本系列介紹文章已有新版本,請見: 部落格廣告賺錢術(一):Google Adsense、BloggerAds、BlogAD 收益比較 。 部落格廣告賺錢術(二):博客來AP策略聯盟、Yahoo!奇摩購物中心大聯盟計畫平台、PChome商店街分紅網 。 自從部落格風行之後 利用在部落格擺放廣告的收益方式也越來越多 這系列就是要介紹幾個比較常見的 首先先介紹的Google Adsense和BlogAD、BloggerAds算是同一類 他們得到收益的方式都是靠網友擊點廣告 當然我們想的到的作弊方式他們也都想的到 所以自己點或者叫朋友幫忙點都是違反規則的 Google Adsense 是由Google推出 申請後可以依據自己的喜好設定不同的廣告 譬如說長的像下圖這樣的廣告組: 另外也有連結組的廣告橫幅可以選擇 這些是最單純也最直覺的廣告 使用者看見了點擊然後blog放置廣告的人獲得收益 Google還有另一種廣告方式是透過像左上角Google的搜尋工具 這個工具十分好用可以設定搜尋自己部落格裡的所有資料 對於要在部落格裡找從前文章是很方便的工具 這個小工具的收益方法是Google會在搜尋結果頁面放和搜尋詞相關的廣告 一樣也是要使用者擊點那些廣告後才會產生收益 Adsense產生的收益要累積到100美元才能領取 在網路上有其他介紹相關細節的文章所以在這邊就不贅述了 透過Adsense的網頁我們可以看到廣告出現和點擊的次數 當然還有產生的收益 據說每千次廣告的出現大概只會有1~3次點擊 所以如果出現了奇怪的現象說不定會被Google盯上喔 簡單介紹 :p 大家可以試試看喔 相關文章: 用 Blog 賺小錢 - BlogAD、BloggerAds 用 Blog 賺小錢 - 博客來AP策略聯盟

Money Assistant 記帳軟體圖解教學

圖片
出門在外有時候總不知道錢花到哪去了 沒有良好規劃統計的話就只能當個月光族 甚至更慘的到月底就只能吃泡麵維生 如果能養成記帳的習慣的話上面的問題都解決囉 所以在這推薦一個很棒的記帳軟體 Money Assistant 本軟體需要先安裝 .NET framework 1.1 這個軟體的官方連結已經消失了 但是仍可以在  http://freakshare.com/files/r12clw7g/MoneyAssistant_227_Full.exe.html  下載 最終的版本是2.27版 之後似乎就沒有繼續更新了 不過使用上都很正常沒有問題 在安裝完軟體之後首先要新增帳號 帳號的功能就是讓這個軟體可以全家人使用 帳號有搭配密碼所以也不怕內容被看見 第一次使用時要先設定帳戶 在這邊可以新增常用的資產、收入支出 譬如說資產可能有郵局帳戶、現金、I-cash等等 設定完帳戶後得先幫個別的帳戶設好初始值 這樣幾個簡單的設定之後就可以開始使用囉 這個軟體最方便的地方是它可以自由轉換資產 譬如說儲值I-cash就可以把錢從現金轉到I-cash帳戶 當然也可以轉換到其他用途囉 當然記帳軟體最重要是要能紀錄花費 方法很簡單 就只要新增一筆紀錄從資產到支出就可以了 新增後離開就可以看到全部的紀錄了 也要記得對照目前的資產金額是不是都正確喔 才不會忘記哪一筆消費讓帳對不上 也可以看到累積的花費收入是多少呢 另外在左下方也可以選擇只看到當月的收入支出喔 最後最後 如果想知道自己消費的趨勢 這個軟體也提供了一些統計的功能 玩起來還蠻有趣的呢 其實這個軟體還有很多很多強大的功能 不過在這邊沒辦法一一詳述 就讓大家自己慢慢摸吧 希望大家看了這篇以後都能多省點錢喔 關鍵字:Money Assistant, assistance, 記帳, 軟體, 下載, 教學, 圖示, 好用, 方便 參考資料: 國人自製免費記帳軟體 MoneyAssistant

[發佈] NTU-Library-Search

圖片
其實這是在werdna-feeds發佈前就寫的東西 大部分的功能並不是我完成的 只是讓我當作踏入這塊領域的入門練習 之前測試了許久開發了一些新東西 也把原始的程式碼更改做出中英文的版本 現在已經正式發佈在 圖書館新服務實驗室 囉 想找書或者搜尋資料時總是覺得還要連上特定網頁太麻煩嗎 NTU-Library-Search小工具提供了一個解決之道 只要在iGoogle上面就能簡單的查詢資料喔 而且這個小工具還貼心地提供了 中文版 和 英文版 兩個版本喔 小工具預覽圖: 英文版: 中文版: 使用步驟如下: 1. 這是個iGoogle小工具 要使用iGoogle服務得先擁有google帳號 如果沒有帳號可以按 這裡 申請 2. 有了帳號之後選擇點下下面的按鈕將小工具加入iGoogle 英文版: 中文版: 接著可視自己需求選擇是否將iGoogle設為首頁 加入後的小工具會出現在 http://www.google.com/ig 3. 加入小工具後可以點右上角的倒三角形變更設定 取消勾選後選項就不會出現在小工具的頁籤 選項的網站如下: 台大圖書館 : http://www.lib.ntu.edu.tw/ 台大整合查詢系統 : http://metacat.ntu.edu.tw/ 台大學術資源網 : http://sg.lib.ntu.edu.tw/ 台大機構典藏 : http://ntur.lib.ntu.edu.tw/ 台大圖書館網站典藏庫 : http://webarchive.lib.ntu.edu.tw/ 4. 完成上面三個簡單步驟後就可以開始使用這個小工具了 只要先選取想搜尋的網站 接著將關鍵字輸入按下enter 預設的瀏覽器就會將搜尋結果顯示出來 這個小工具也可以內嵌在blog或個人網頁喔 嵌入英文版 嵌入中文版 先設定長寬顏色邊框 再按下取得程式碼 最後再將程式碼貼上自己的網頁即可 做出來的效果會像下面一樣