網頁

2012年12月19日 星期三

[C/C++] Check character is printable

程式人人會寫,各有巧妙不同,也因為是這樣,所以常常會有讓人意想不到的發展...

第一次看到下面的程式碼,整個人僵化了...
下列的程式碼用來判斷一個字元是否可視、可列印
int is_visual_char(unsigned char ch) { switch(ch) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': case '~': case '!': case '@': case '#': case '$': case '%': case '^': case '&': case '*': case '(': case ')': case '_': case '+': case '`': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '0': case '-': case '=': case '{': case '}': case '[': case ']': case ':': case '"': case '|': case ';': case '\'': case '\\': case '<': case ',': case '>': case '.': case '?': case '/': { return 1; } default: break; } return 0; }
再看到下列有人回覆ASCII裏1-31為控制字元,32是空格,33以上都是可視的,只需要判斷其ASCII大於32就行了。
int is_visual_char(unsigned char ch) { return ch > 32; }
心理面直吶喊那127(DEL控制字元)是鬼嗎?
說真的,現在網路那麼方便,不是都 Google to coding,多小心驗證,應該可以得到對的答案。
附上維基百科 ASCII 說明網址( 前往 )
而且這簡單的功能,C/C++早就提供了函式可以用,根本無需重新製作新輪子。

原型:extern int isprint(char c);
用法:#include <ctype.h>
功能:判斷字元c是否為可列印字元(0x20-0x7e,含空格)
說明:當c為可列印字元時,返回非零值,否則返回零。

....Orz....

閱讀全文...

2012年12月6日 星期四

IE6 真的是做網頁的痛啊

常常一個完整的網頁,在 IE6 就顯得破碎不堪,完全和原本設計的差太多了,這個已經要被世界淘汰的網頁瀏覽器,所有最新的網頁技術與規範都不支援 IE6,但還是有許多企業和個人還在使用,這到底為什麼為什麼??

就因為那 Windows XP 實在太好用了,這應該是微軟最成功的 OS 版本,它預設的瀏覽器就是 IE6.......
閱讀全文...

2012年11月16日 星期五

Free Icons download

又一個海量的icons 下載


前往下載
閱讀全文...

現有四組icons可以下載

這網站現在只有四組icon組合可以下載,特別要注意的是個人用途都隨意,商業用途請購買或指名出處。


光那組恐龍就很值得下載
前往下載
閱讀全文...

Free icons download



Download Over 31,876 free icons or Browse 1112 Free Icons sets & 66 Stock Icons Set 前往下載
閱讀全文...

Free Icons Download


免費 ICON 下載
閱讀全文...

2012年11月15日 星期四

如何查詢SQL Server目前連線數

有朋友問說,要如何查詢 SQL Server 目前的連線數,當下直覺這應該是屬於master DB內會提供的資訊,於是上網找找資料,將試出來的語法記錄備忘一下。

查詢目前連線數:
USE master SELECT cntr_value AS User_Connections FROM sys.sysperfinfo AS sp WHERE sp.object_name='SQLServer:General Statistics' AND sp.counter_name='User Connections'

查詢目前連線明細:
USE master SELECT c.session_id, c.connect_time, s.login_time, c.client_net_address, s.login_name, s.status FROM sys.dm_exec_connections c left join sys.dm_exec_sessions s on c.session_id = s.session_id

Reference
sys.sysperfinfo
sys.dm_exec_connections
sys.dm_exec_sessions
閱讀全文...

2012年11月13日 星期二

解決 ERROR C2440: 'initializing' : cannot convert from 'char *' to 'ATL::CStringT'

會發生 ERROR C2440: 'initializing' : cannot convert from 'char *' to 'ATL::CStringT' 的問題,是因為專案中的字元集設定為 UNICODE ,在編譯時,Preprocessor 在處理字串時,會自動用寬字元相關函式來處理,當窄寬互相混合處理時就會發生此錯誤。
解決方法:
專案 | 專案屬性 | 組態屬性 | 一般 | 字元集 此改選用 使用多位元組字元集
閱讀全文...

2012年11月9日 星期五

解決 ERROR C2065: 'AI_ADDRCONFIG' : undeclared identifier

1. 下載最新的 Microsoft SDK
2. include 'Ws2tcpip.h'
閱讀全文...

解決 ERROR C2011: 'sockaddr' : 'struct' type redefinition

C/C++ 常讓人困擾的問題,header file先後順序,有時會讓人抓狂.....
要解決 error C2011: 'sockaddr' : 'struct' type redefinition 這問題,記得

the solution which always works is to include winsock2.h before windows.h
閱讀全文...

2012年11月8日 星期四

Final version - Free Windows 8 programming ebook

微軟免費提供的 windows 8 開發電子書,要下手腳要快
前往下載
閱讀全文...

一套有678個 windows 8 metro icon


前往下載
閱讀全文...

一套簡單手繪風格的 Metro icon

一套簡單手繪風格的 Metro icon

前往下載
閱讀全文...

一組 Windows 7 Metro Icon

windows phone 7 Icon,非常適合 Metro UI 使用。

前往下載
閱讀全文...

2012年11月6日 星期二

網路演進

現今的網路世界是由網頁和網路應用程式交織而成,充滿了豐富的影片、相片和互動式內容;但是一般的使用者可能不知道,這一切都是由網頁技術和瀏覽器交互運作而產生的結果。
這些年來,網路技術已經大幅提升,如今網頁開發人員已經可以建立新世代網路內容,賦予使用者實用而身歷其境的網路體驗。這一切都要歸功於開放網路社群的持續努力,由於他們協助開發了 HTML5、CSS3 和 WebGL 等眾多網頁技術,並且將這些技術應用在所有網路瀏覽器上,網路世界才有今日的榮景。

這網站真的太酷啦,來去 探索
閱讀全文...

2012年11月5日 星期一

限時8天 註冊Windows Phone開發賬號只需8美元

根據 微軟官方部落格 宣布
Windows Phone 8開發者平台正式上線,包括一個SDK軟件開發工具包、一個全新的Dev Center開發人員中心,開發人員現在就可以向Dev Center提交WindowsPhone 8應用程序。
Windows Phone 8正式發佈,Windows Phone手機也即將到來。為了鼓勵更多的開發人員參與Windows Phone 8應用程序的開發,Windows Phone團隊表示,在接下來的8天裡,個人開發人員僅需8美元就可以註冊一個Dev Center賬戶(節省92%的費用)。
提醒開發人員的是,此次優惠僅有8天(到11/7),註冊時系統仍會收取99美元費用,不過微軟會在30天至45天內退還91美元。

前往 Windows Phone Dev Center
閱讀全文...

2012年11月4日 星期日

紙模:fox


簡單的造型,很容易完成。
製作過程:









完成:




閱讀全文...

全家便利商店-KRE-O變形金剛:斯偉伯


斯偉伯(Sideswipe),博派的戰鬥指導
是變形金剛中相當活躍的角色之一。在戰鬥的技巧上,和雙胞胎兄弟太陽紋不相上下。
在個性上跟雙胞胎兄弟太陽紋有著截然不同的個性,他不像太陽紋那樣的冷酷無情。不過在逼不得已的時候會使出一些卑劣的手段來。
其他翻譯名稱:側掃、橫砲




閱讀全文...

2012年11月1日 星期四

OLE DB Provider for SQL Server

備份一下,不然每次要設定都要找半天
For Standard security:
connectStr = _T("Provider=sqloledb;Data Source=MyServerName;" "Initial Catalog=MyDatabaseName;" "User Id=MyUsername;Password=MyPassword;");
For Trusted Connection security (Microsoft Windows NT integrated security):
connectStr = _T("Provider=sqloledb;Data Source=MyServerName;" "Initial Catalog=MyDatabaseName;" "Integrated Security=SSPI;");
If you want to connect to a "Named Instance" (SQL Server 2000), you must to specify Data Source=Servere Name\Instance Name like in the following example:
connectStr = _T("Provider=sqloledb;Data Source=MyServerName\MyInstanceName;" "Initial Catalog=MyDatabaseName;User Id=MyUsername;Password=MyPassword;");
If you want to connect with a SQL Server running on the same computer, you must specify the keyword (local) in the Data Source like in the following example:
connectStr = _T("Provider=sqloledb;Data Source=(local);" "Initial Catalog=myDatabaseName;" "User ID=myUsername;Password=myPassword;");
To connect to SQL Server running on a remote computer (via an IP address):
connectStr = _T("Provider=sqloledb;Network Library=DBMSSOCN;" "Data Source=10.200.3.18,1433;" "Initial Catalog=MyDatabaseName;User ID=MyUsername;" "Password=MyPassword;");
閱讀全文...

Make you own iphone 5(papercraft)

貴33的iphone,自己做一支吧
下載
閱讀全文...

Make your own Lumia 920(papercraft)

最新的 Nokia Lumia 920,買不起就自己做一支吧
下載
閱讀全文...

2012年10月29日 星期一

解決 ERROR LNK2019: 無法解析的外部符號 問題

錯誤:
ERROR LNK2019: 無法解析的外部符號 __imp__XXX@16 ,該符號在函數 "void __cdecl MyTest(unsigned int)" (?MySend@@YAXI@Z) 中被引用

解決方法:
專案 | 專案屬性 | 組態屬性 | 連結器 | 輸入 | 其他相依性 此輸入使用到的 Libray
閱讀全文...

解決 ERROR C1083: msado15.dll No such file or directory 問題

錯誤:
ERROR C1083: msado15.dll No such file or directory 問題

解決方法:
1. 找到電腦中 msado15.dll 存放位置,例 Windows 7, which is located at C:\Program Files\Common Files\System\ado
2. 工具 | 選項 | 專案與方案 | VC++ 目錄 加入上列目錄
閱讀全文...

解決 ERROR C2812: 不支援將 #import 配合 /clr:pure 或 /clr:safe 使用

錯誤:
ERROR C2812: 不支援將 #import 配合 /clr:pure 或 /clr:safe 使用

解決方法:
專案 | 專案屬性 | 一般 | Common Language Runtime 支援 改選擇 Common Language Runtime 支援(/clr)
閱讀全文...

解決 ERROR D8016: '/MTd' 和 '/clr:pure' 的命令列選項不相容 問題

錯誤:
ERROR D8016: '/MTd' 和 '/clr:pure' 的命令列選項不相容

解決方式:
專案 | 專案屬性 | C/C++ | 程式碼產生 | 執行階段程式碼 改選擇 "多執行緒偵錯 DLL (/MDd)"
閱讀全文...

2012年10月26日 星期五

NTT 以鈴木一朗的作文[我的夢想]拍的廣告

創下單季262支安打,被稱為天才,完美打擊機器的鈴木一朗,當看到這廣告和那篇作文,更讓我打從心底佩服的五體投地。

在那小小的年紀,就能清楚明白自己的夢想在哪,要如何才能達到目標,一直持續努力到現在,不管是WBC經典賽10局的那突破一擊,或最近季後賽維持高檔演出,真讓我讚嘆不已。


閱讀全文...

2012年10月24日 星期三

[資料庫] SQL Server Expres(SQL Server免費版本)

最近需要用到,查了一下資料才發現 SQL Server 2012 Express 居然還分三個版本:
1. SQL Server Express
以 Microsoft SQL Server 為基礎的資料庫平台。SQL Server Express 可讓您輕鬆地開發功能豐富、提供強化儲存安全性而且部署快速的資料導向應用程式。

2. SQL Server Express with Tools
除了 Express 的功能,還多了圖形化管理工具(SQL Server Management Studio)。

3. SQL Server Express with Advanced Services
除了 Express 的功能,還多了圖形化管理工具(SQL Server Management Studio)、Reporting Services、BI Development Studio(提供整合式報表建立與設計環境來建立報表)、全文檢索搜尋,用於搜尋大量文字資料的強大搜尋引擎。

建議:
1. 若是用在開發資料庫程式,可以選用SQL Server Express with Tools版本。
2. 除了開發資料庫程式,還包含開發Reporting Services 報表時,請選用SQL Server Express with Advanced Services版本。
3. 若是要佈署資料庫程式到客戶電腦上,無需使用Reporting Services 報表,可以使用SQL Server Express版本,但建議使用SQL Server Express with Tools版本,畢竟有管理工具比較方便。

Express 版本的硬體限制
1. CPU:最多支援 1 顆實體 CPU。
2. 記憶體:最多支援到 1 GB。
3. 每個資料庫的最大大小為:10 GB(先前版本:SQL Server 2005 與 2008 的 Express 版本支援到 4 GB),應該夠一堆資料量不大的軟體或網站使用了,真是佛來心的。


詳細資料請參考 SQL Server 2012 版本支援的功能
閱讀全文...

[資料庫]MySQL 授權協議

MySQL 是套開放原始碼的軟體,開放原始碼並不代表免費,雖然很多企業並不在意,總是抱著不會被抓的心態,但是工程師還是要懂得保護自己,不然工作久了,回首時,會發現背後的鍋子還真多....

MySQL 採用雙授權機制:商業授權和 GNU 通用公共許可證(GPL,GNU General Public License)。就因為這樣,常常讓我納悶,那到底什麼情況下才可以免費使用??

根據MySQL官方的商業許可的相關說明,在下列情況下,可以免費使用MySQL:
1. 應用程式是在GPL許可下發佈的;(開放你的軟體原始碼??)
2. 應用程式不用於分發。(關起門來自己用,不可以拿出去賣錢)
3. 非營利組織可以申請免費商業許可,但 MySQL 會carefully considered

也就是說,使用 MySQL 一定要有授權後才可以合法使用,不然就只能關起門在自家用。
閱讀全文...

[資料庫]PostgreSQL 授權協議

PostgreSQL 採用 BSD 版權協議發佈,允許您在商業或非商業應用的兩種環境下均享有自由取得且不受版權限制的自主使用權甚至延伸功能。

BSD授權協議是所有開源程式碼授權協議中最自由不受任何限制用途的版權宣告, 您永遠都不必擔心 PostgreSQL 被特定的公司所控制, 您不需要購買權權, 就如同當今的 GNU/Linux 一樣, 在您擁有開放源始碼的同時, 其高可用性的品質只有不斷提升而沒有下降過, 甚至您可以將 PostgreSQL 包在您的產品並出售, 更可以任意的加諸和修改功能

資料來源:PostgreSQL 中文
閱讀全文...

2012年10月23日 星期二

考選部102年度(102年1月至12月)舉辦各種考試期日計畫表

有關明(102)年度各項考試期日計畫表已登載於考選部全球資訊網,有意加入公職行列或取得專業證照之民眾可逕至上開網頁查詢,及早規劃、準備考試事宜。
計畫表也可由此處下載(下載),但任何最新消息及異動,請以考選部全球資訊網為主

閱讀全文...

全家便利商店-KRE-O變形金剛:天王星


天王星(英語:Starscream:又譯為紅魔鬼、紅蜘蛛、星星叫、吼星、星際軍刀西),是動畫片變形金剛中的狂派角色之一。天王星在狂派中的職位為航空指揮官,在變形金剛中是個活躍的角色。
自認能力不輸密卡登,且比密卡登更心狠手辣,一心想取代密卡登統治狂派。



閱讀全文...

2012年10月17日 星期三

全家便利商店-KRE-O變形金剛:科博文

之前專程去全家換,都說缺貨,本來想放棄了,沒想到這次路過,想說問問看,結果換到了,還開到科博文,真的是想不到啊....

柯博文(Optimus Prime),《變形金剛》系列作品的虛構角色,為博派的最高指揮官,也是一位至尊級領導者。在賽博坦內戰期間,博派的領導者警戒至尊(Sentinel Prime)戰死,他在臨死前將母體交給了柯博文,並由他來接任新的領導者。因此柯博文成為了首位軍人出身的博派領導者。
科博文的翻譯名稱也是一堆:鐵牛、至尊、康寶、擎天柱。



閱讀全文...

2012年10月12日 星期五

全家便利商店-KRE-O變形金剛:大黃蜂

兒子想要科博文,只好再抽獎一次看看,結果還是沒有,這次是大黃蜂,家裡已經一堆飲料了,下一隻就隨緣了...

大黃蜂報到
大黃蜂(Bumblebee)是變形金剛中一個十分活躍的角色,其受歡迎程度不亞於一眾首領級人物。
大黃蜂在博派中擔任偵察兵,經常進行偵察任務,他經常陪伴在人類角色史派克左右,並成為其好友及拍檔,動畫中他們兩人總是一同行動,支援博派。
在真人版電影中,大黃蜂用盡一切手段強迫男主角山姆買下他變形後的雪佛蘭Camaro,然後便通知博派變形金剛前來地球,與動畫版的表現不多相比,真人電影版的大黃蜂相當活躍,甚至可說是變形金剛的男主角。




大黃蜂對決密卡登

閱讀全文...

全家便利商店-KRE-O變形金剛:密卡登

自從公司樓下的全家便利商店搬走後,要找全家便利商店還真不方便,這次的集點活動真的千辛萬苦,好不容易集到可以加購一隻時,卻到處缺貨啦......

密卡登入手
天王密卡登
日文原名為マスターメガトロン,美版依然是寫成Megatron。
在變形金剛:銀河原力中登場,中文通譯成天王密卡登,身為狂派的領袖,不斷的阻撓銀河柯博文取得惑星元素。
他能領導狂派,完全是因為他殘酷的力量、狡猾的詭計、殘忍和恐怖。在地球,它主要的目標是奪取能量塊。最後在與柯博文的決戰中受到重創,撤退時被天王星拋棄,後被尤尼克隆改造成格威龍。
早期因為翻譯不固定,導致變形金剛角色有許多譯名。下為密卡登曾擁有過得譯名:
美加王、巨無霸、麥卡隆、威震天、霸天虎、梅卡称、百萬舛

閱讀全文...

2012年10月3日 星期三

Eclipse 啟動時,尋找 jre 的順序機制

雖然在 Eclipse 中指定各專案使用哪個 JDK 來編譯,方法非常簡單,但這 JDK 的版本並非啟動 Eclipse jre 版本,兩者完全不相關。

那到底要怎麼指定 Eclipse 啟動的 JRE 版本??
參考Eclipse FAQ 得知:
1. 如果 JRE 裝在 eclipse/jre 這個目錄下, Eclipse 就會使用它來啟動。
2. Eclipse DOES NOT consult the JAVA_HOME environment variable
3. 直接使用 -vm 指令來指定
eclipse -vm c:\jre\bin\javaw.exe ''start Java by executing the specified java executable eclipse -vm c:\jre\bin\client\jvm.dll ''start Java by loading the jvm in the eclipse process 4. 在 eclipse.ini 設定 -vm -vm c:/jre/bin/client/jvm.dll NOTE: -vm 要擺在 -vmargs 上面,才不會啟動時報錯

至於要怎麼看 Eclipse 使用哪個 JVM 啟動??
Help > About Eclipse > Installation Details > Configuration 就可以看到詳細的資訊了

閱讀全文...

如何移除 Eclipse 的 plugin

啟動 Eclipse 後,選擇 Help > About Eclipse

在跳出的視窗中選擇 Installation Details

在跳出的 Eclipse Installation Details 視窗中,選擇要移除的 plugin ,底下的 Uninstall..按鈕就會 Enable

點擊 Uninstall.. , Eclipse 會先開始統計確認所要移除 plugin 的數目和相依性

統計完畢後,會顯示要移除詳細資訊

確認沒問題,點擊 Finish ,就會開始移除 plugin

閱讀全文...

“Android” missing in “Eclipse Juno 4.2” preferences(Eclipse中消失的Android)

又是一次辛酸的過程,以前用Eclipse 3.5安裝ADT和SDK過程簡單又順得不得了,沒想到這次居然會是這麼慘。

Eclipse 3.5是現工作上Java主要開發環境,還在用java 1.5, java 1.4, java 1.3....,為了不破壞原本使用上沒問題的環境,於是想改新建一個專門開發 Android app 的環境,沒想到是一連串離奇事件的開始....
首先去到Eclipse 官網下載最新版本的ide回來用,就照著以前的步驟:
1. Start Eclipse
2. then select Help > Install New Software.... Click Add, in the top-right corner.
3. In the Add Repository dialog that appears, enter "ADT" for the Name and the following URL for the Location: https://dl-ssl.google.com/android/eclipse/site.xml

安裝完成後,沒想到選擇 Window > Preferences ,裡面完全沒看到 Android 這標籤,只好上網 Google 了,沒想到果然災情連連,參照網路一堆解決方式,新增了一堆 ADT 所需要的 plugin ,一樣沒用, Android 標籤還是和神隱少女不見蹤影。

又試了一堆建議方式,一樣沒用,因為安裝 Eclipse plugin 時,會先去判斷需要的其他元件和相依性,完完全全沒任何錯誤,所以沒有log可以看,到底為什麼就是不出現,實在沒頭緒,難道真的又應驗了開放源碼的軟件,最好離新版遠點,沒問題就算了,有問題包準玩死你,真的有夠 Orz....

閱讀全文...

2012年10月1日 星期一

Mr.children 終わりなき旅



Mr. Children 終わりなき旅
息を切らしてさ 駆け抜けた道を 振り返りはしないのさ
ただ未来だけを見据えながら 放つ願い
カンナみたいにね 命を削ってさ 情熱を灯しては
また光と影を連れて 進むんだ

大きな声で 声をからして
愛されたいと歌っているんだよ
「ガキじゃあるまいし」自分に言い聞かすけど
また答え探してしまう

閉ざされたドアの向こうに 新しい何かが待っていて
きっと きっとって 僕を動かしてる
いいことばかりでは無いさ でも次の扉をノックしたい
もっと大きなはずの自分を探す 終わりなき旅

誰と話しても 誰かと過ごしても 寂しさは募るけど
どこかに自分を必要としてる人がいる

憂鬱な恋に 胸が痛んで 愛されたいと泣いていたんだろう
心配ないぜ 時は無情な程に 全てを洗い流してくれる

難しく考え出すと 結局全てが嫌になって
そっと そっと 逃げ出したくなるけど
高ければ高い壁の方が 登った時気持ちいいもんな
まだ限界だなんて認めちゃいないさ

時代は混乱し続け その代償を探す
人はつじつまを合わす様に 型にはまってく
誰の真似もすんな 君は君でいい
生きる為のレシピなんてない ないさ

息を切らしてさ 駆け抜けた道を
振り返りはしないのさ
ただ未来へと夢を乗せて

閉ざされたドアの向こうに 新しい何かが待っていて
きっと きっとって 君を動かしてる
いいことばかりでは無いさ でも次の扉をノックしよう
もっと素晴らしいはずの自分を探して

胸に抱え込んだ迷いが プラスの力に変わるように
いつも今日だって僕らは動いてる
嫌な事ばかりではないさ さあ次の扉をノックしよう
もっと大きなはずの自分を探す 終わりなき旅


Mr. Children 無盡的旅程

摒住呼吸吧 別回望那追越過的道路
只把握住未來 去實現夢想吧
像是刨子般地 刨削著生命
點燃起熱情 再隨著光和影向前吧

用最大的吶喊到啞了為止
唱出想要被愛的感受吧
對自己說已不再是小孩子了
再去尋找那答案吧

在緊閉的門扉的另一頭
一定會有嶄新的什麼在等待著
而讓自己給動起來的
雖然不全盡如人意
可是也還想去敲開下一道門扉
去找尋潛在更大的自己吧
在這無盡的旅程

即使和誰說說話 即使和誰一起生活
都會讓人越來越寂寞
可是在某個地方還是有需要自己的人的

因憂鬱的愛而疼痛的一顆心
也曾為了想要被愛而留下過淚水吧
別擔心 時間總是無常般地
會把一切如流水般帶走的

若是懷著難解的一顆心
到最後便會厭惡這一切
而慢慢地想要逃脫的

越是爬上越高的阻礙 感覺就越好啊
可是別認為這就是極限啊

去尋找讓這時代無盡混亂的代價吧
人類總是為了合於常規而活著
不要去學別人 你就是你自己
為了生存的秘訣是不會有的

摒住呼吸吧 別回望那追越過的道路
就乘著夢想向前吧
在緊閉的門扉的另一頭
一定會有嶄新的什麼在等待著
把你給動起來的
雖然不全然盡如人意
可是也還想去敲開另一道門扉
去找尋可以更美好的自己吧
為了把在心中緊抱的迷惑化作為自己的力量
無論何時今日的我們也不停努力著
不全是令人厭惡的事啊 去敲開另一道門吧
去找尋潛在更大的自己吧
在這無盡的旅程
在這無盡的旅程
閱讀全文...

2012年9月26日 星期三

[Java] String.format method

之前寫了一篇有關String + vs String.format vs StringBuffer vs StringBuilder,發現了 String.format 耗費的時間都比較久,所以花了時間看一下原本 java source 中到底是怎麼實作的。

public static String format(String format, Object ... args) { return new Formatter().format(format, args).toString(); }

format method 是 JDK 1.5 才開始提供的,從上面可看出 method 內部 new 了一個 Formatter 來處理格式化字串,感覺很像 C 的 printf,看來時間都花在解析複雜的輸出格式,但不可否認得這 method 實在非常實用,簡化了格式化輸出,程式花的時間感覺很值得。
閱讀全文...

2012年9月21日 星期五

為什麼 iOS 6 放棄 Google Map

iOS6 一推出,馬上一堆人說地圖難用死了,還我 Google Map 之類,更有人發表了一篇 將自己的利益置於客戶之上? 蘋果移除Google地圖 ,蘋果真的這麼想不開,要挑戰使用者的習慣??

根據 http://techcrunch.com/2012/03/09/google-maps-api-vs-openstreetmap/ Google 更改了Google Maps API 的商業用途合約條款。從免費改成每加載一千次就收取四元美金。如果一支手機一年加載一千次,蘋果 iPhone 只算銷售一千萬支的量,一年就要向 Google 繳交四千萬美元,或許這才是主要原因,迫使 apple 需要推出自己的地圖服務,因為收費實在太貴了,每年繳這筆錢,不如開發屬於自己的map服務。不只 apple 這樣想,Wikipedia 也只好放棄 Google Maps 改用 OpenStreetMaps 。
閱讀全文...

2012年9月18日 星期二

[Java] String + vs String.format vs StringBuffer vs StringBuilder

說真的,現在ram要多大有多大,CPU也飛快,CPU和記憶體對一堆系統已經不在是個問題,所以字串這麼多不同的處理方式,其效率和佔記憶體大小,也越來越多人不在意了。

但我寫程式還是習慣參考 Effective Java 或 Effective C++ 的建議,畢竟那是一堆神人的經驗,應該蠻值得參考的,而且多動手實際試試看,不會有損失。
import java.io.*; import java.util.Date; public class StringTest { public static void main( String[] args ){ int i = 0; long prev_time; long time; Runtime runtime = Runtime.getRuntime(); long memory; String s; int max = 100000; System.out.println("Approach\tTime(ms)\tMemory allocated (long)"); prev_time = System.currentTimeMillis(); memory = runtime.freeMemory(); for (i=0; i<max; i++){ s = "XXX" + i + "YYY"; } time = System.currentTimeMillis() - prev_time; memory = memory-runtime.freeMemory(); System.out.println("+ operator\t" + time + "\t\t" + memory); prev_time = System.currentTimeMillis(); memory = runtime.freeMemory(); for (i=0; i<max; i++){ s = String.format("XXX %d YYY", i); } time = System.currentTimeMillis() - prev_time; memory = memory-runtime.freeMemory(); System.out.println("String.format\t" + time + "\t\t" + memory); prev_time = System.currentTimeMillis(); memory = runtime.freeMemory(); StringBuffer sb = new StringBuffer(); for (i=0; i<max; i++){ sb.delete(0, sb.length()); sb.append("XXX").append(i).append("YYY"); s = sb.toString(); } time = System.currentTimeMillis() - prev_time; memory = memory-runtime.freeMemory(); System.out.println("StringBuffer\t" + time + "\t\t" + memory); prev_time = System.currentTimeMillis(); memory = runtime.freeMemory(); StringBuilder sb1 = new StringBuilder(); for (i=0; i<max; i++){ sb1.delete(0, sb1.length()); sb1.append("XXX").append(i).append("YYY"); s = sb1.toString(); } time = System.currentTimeMillis() - prev_time; memory = memory-runtime.freeMemory(); System.out.println("StringBuilder\t" + time + "\t\t" + memory); } }
跑了好多次,去掉差異太大,取得平均值結果,果然和認知的差不多,一路+到尾的速度蠻不錯的,但記憶體佔的也最多;StringBuffer 和 StringBuilder 多做了 delete 和 toString 動作,但表現實在是非常的好;String.format 說真的非常好用,沒想到卻是最耗時間的,等有空時再來看原本的 java Source,看看它裡面到底賣什麼藥。 Approach Time(ms) Memory allocated (long) + operator 30 319616 String.format 588 76032 StringBuffer 40 43312 StringBuilder 17 43848

閱讀全文...

開放原始碼的東西真好用,但請尊重和遵守其放出的協議

開放原始碼的東西很好用,但是記得遵守協議,不要以為都不會被查到,一次就夠你受的,這次宏碁付出的代價世新手機完全無法發表了。
閱讀全文...

2012年9月12日 星期三

iOS 5.1.1 JB爆笑過程

只能說人有時需要瘋狂一下,不知道哪根筋不對,忽然想把iPhone JB了。這件事一樣發生在星期一,沒想到除了去驗車,展開爆笑的七堵俊德橋尋找之旅,回家後一股腦就在弄iphone越獄這件事。

網路說很簡單,同事和朋友也說很簡單,按一個鈕就行了。這樣應該很容易吧,沒想到過程會這麼艱辛....Orz

將iphone備份到iTunes後,馬上下載了absinthe-win-2.0.4執行,連接上iphone,按下Jailbreak按鈕開始,結果兩分鐘後,迎接第一次失敗,因為自動鎖定時間到了,螢幕一黑,JB終止.....

將自動鎖定設定成永不,再來一次,這次看起來比較順了,撐得比較久,absinthe 當掉了,不死心,換台電腦試試看,absinthe一樣當爽爽。

用iTunes把iphone回復到原廠最新版本狀態,結果一個動作按錯,資料備份開始回復,598個app需要安裝,就這樣一兩個小時過去了,好不容易回復完成,不死心又JB一次,absinthe還是當了,看來資料太多,它吃不消,只好再將iphone回復到原廠最新版本狀態,這次有特別注意,沒把備份資料回復回來,設定成一隻新iphone,再來JB一次,這次就一次到位,一下子就完成了。最後又是一個痛苦的等待,將備份資料回復到iphone。

JB完後有個要注意的地方,因iOS原本是BSD System,用終端機連進去,果然root及mobile每隻手機都是一樣的預設密碼,這兩個使用者的密碼不改掉,有可能被駭,到時白蘋果吃不完,馬上改掉密碼,避免這個問題。

JB完後,怎麼一點感覺都沒有.....
閱讀全文...

2012年9月11日 星期二

七堵俊德橋

前兩天生病還沒好,星期一只好請假一天,本來只是想說驗車的期限快到了,趁機把這事處理了,一路上老婆又提起,近期小孩要參加寫生,地點她查了就在往監理所這條路附近,等會驗完車,可以順便找找,探路一下。

沒想到這次驗車的速度真是有夠快,又不知道是不是頭昏,順便在旁邊把eTag也辦了,還好有拒絕自動補金額扣款的辦理,說實在對遠通超沒信心的....Orz

回家的路上,開得慢慢的,經過許多座橋,就是沒有俊德橋,只好回家換歐多麥再來找一次。遵循老婆所說的路去試,得到的是距離五堵2公理的標示,果然還是照傳統又是錯誤的路,XD。只好先去高速公路底下那吃豆花(上次為了躲雨無意間發現的),沒想到還不錯吃,大中午的消暑一下,順便用常連不上的中華電信3G網路查一下大概資料抓一下大略的方向。

由於查不到有路,只知道在七賢橋上游200公尺,因此先殺到七賢橋去,到時在視情況決定下一步,沒想到一到七賢橋就看到新的俊德吊橋,之前胡亂找,沒想到原來這麼近...... 俊德吊橋 歷史解說
基隆河上俊德吊橋,舊稱為金森橋,是在日治時期(民國二十年)建起的一座運送煤礦的吊橋,早期專門給運煤車通行使用。

後來基隆七堵、暖暖礦產逐漸式微,民國五十年間故基隆市長林番王任內把中間煤車軌道拆除,改建為人行專用吊橋,配上河岸迤邐風光,當年是七堵人的後花園,後來受到象神和納莉颱風摧殘,整條橋全毀,基隆河整治時,位在行水區裡的兩座舊橋墩倖存保留,屹立河岸。

舊橋墩

看一下基隆河

地圖

從俊德吊橋看七賢橋(看得到陽明大樓)
七賢橋已經列為危橋並限重十噸以下才可以通行,但是一堆貨櫃車超重行駛,真讓人擔憂哪時會垮掉也不知道,所以能不經過,就不要拿命去拼吧

閱讀全文...