程序耕耘者

     
 

Server/Client的檔案對傳程式_上


最近幫學長寫一支簡單的Server/Client的檔案對傳程式
執行的環境一個要在PC上
而另一個是在嵌入式系統上
心想這支程式應該會花我一天的時間
去將功能實現、程式重構和人機介面
於是就想說先行在模擬器和本地端電腦作模擬
等學長將嵌入式系統帶來再發佈到實際的環境上
開發的工具為eVC4和VC6
其實這二個工具還蠻多毛病的
到微軟下載Service Pack(eVC4-SP4和VC6-sp5、6)和模擬器SDK
開始撰寫Winsocket和File System Process
但由於自己的網際網路的觀念和eVC4的使用有一點薄弱
花很多時間去看書了解這之間的溝通/協定與eVC4的一些error Message
好險當初在跟學長說時
需要一個星期的時間作開發
人想的都比作的快 :p
今天是第三天已可以Server和Client作檔案對傳
算是功能已寫好了
終於可以鬆一口氣
但由於嵌入式系統的socket和PC的socket的實作上有些不同
且甚至有一些函數是沒有的
等這支程式寫好
再詳細敘述開發的情形

ps
1.會選用VC6是不想有.Net Framework
如果採用Java的話怕學長不會修改程式
也有考慮環境和效率的問題
2.依據這個需求
有人還有其他更快的開發方式嗎?
歡迎一起討論

 
 
 
 

Java_Book


近幾個月以來,
國內Java書藉陸續由許多作者推出他們的作品,
多半寫撰寫的主題在 基礎入門和程式設計、資料庫程式設計、網路程式設計、多媒體程式設計及認證考試 這幾大方面。

記得之前個人準備考 SCJP 時,
由於考試的範圍很廣,
加上英文能力不是很好,
藉由市面上的書藉和網路上的資料來讓自己的觀念更清楚。

當時覺得書藉很多,
有的作者針對某一些主題講的很多,
但有一些主題都是簡單帶過,
讓我十分的痛苦不已,
於是就花錢去買幾本自己缺少觀念的書來補,
且也狠下心開始念英文書,
這裡也特別感謝Javaworld@TW所提供的資源。

看現在出版的Java書藉,
就覺得現在的初學者很幸福,
比起之前來說,
可以說是可以完全克服掉要買很多書來讓自己弄懂的情形。

其實有怎麼多的感觸,
主要是因為這本書TIN_Java_4Edtion_Chinses
讓我勾起這個回憶的。
之前有很多書對於inner class這個主題不提或是提的很少,
但考試列入考試的主題之一,
所以就買下來這本書的第二版中譯本,
努力的K一Kinner class這一個部份。
(其實也是有一個成份在於侯捷大大的名氣)

這時間點己出版到第四版中譯本,
也祝這位高手/前輩新書大賣。

P.S.另一個懷念的是moli老師所寫的Java深入歷險,可說是有別於剛所說的幾個主題,且又是完全以個人的經驗編著的一本書。

 
 
 
 

學術怪異現象


之前有人提出少子化社會,
預估其中之一現象是學校所需要的學生數大於就讀的學生數。

去年大學入取率九十六,
並爆發十八分進大學事件,
一些私立學校報到率都有二、三成。
(如果每年都是這樣子,難保不會倒閉)

因為去年的十八分進大學,
多了假考部隊,
宣稱要讓不好的學校倒閉。
然而今年大學入取率九十七,
預估七分能上大學,
很多學校都設了門檻,
應該報到率會更少。

許多學校對教育部申請增設新科系,
未來還要招收更多學生。

入取率高但有學生沒有學校唸,
增設怎麼新科系那沒有學生怎麼辦,
(會不會成為謊報有人唸,賣學歷的可能,純屬個人猜想)

對於我來說,
比較能身刻體驗到這些事情,
(之前是唸評鑑後段學校的學生orz)
有時侯不能因為分數的事而抹殺一個人求學的精神,
當然也不能說每一個人都能念了書之後而變的更好,
只是這種事很難去決定,
(個人就是個例子後來也考上國立的學校\0/)
再來是這些報導都是針對於後段的私立學校,
但對於私立前段和國立的學校來說,
比較不可能發生這一種事。
但其實還是有一些學校是招不滿學生的,
(藉口還是學生素質不好,不想招滿=.=)
只不過對於現在就讀任何一間學校的學生對於前人來看都是感覺素質越來越不好,
且聽說有的教授也開始拒絕指導學生。

學術的怪異現象真的是越來越多了

為何要欺騙讀者


對於國內從事控制研究的人來說,
都應該對於遺傳演算法並不陌生,
其他科系的人也可以從學科機器學習、人工智慧、資料探勘...等等看到這個內容。

國內寫這類型書的人很少,
(應該是十個指頭算的出來)
其中有一本是全x所出版周x程所寫的遺傳演算法,
書的外皮換成綠色印著第三修訂版,
但內容卻是原本第二修訂版的內容。
(網路上和實體店面的書內容都有比較過了)

如果書的內容真的沒有改,
但要以第三修訂版的封面出來,
好歹也將內容有關第二修訂版的字眼改成第三修訂版,
不然會讓人感覺是書賣的不好,
把外皮拆掉,
換上一個新的外皮,
感覺有欺騙讀者的感覺。

雖然近年來經濟不景氣,
書局一家一家的倒,
作者也無法像從前一樣寫書賺錢,
這些讀者都是看在眼裡,
只不過作出這一種事,
怎麼對的起我們這些忠實讀者和消費者呢?

寫這一篇只是為了要對於我們這些讀者和消費者尊重一下,好嗎?

 
 
 
 

台中專業書局逐漸消失 = =


有好幾次曾撰寫與版上網友討論電腦書藉和書店的事
或許這對某些人來說有什麼好去值得思考的

但在這些事件以後
讓我個人覺得為何會這樣子呢?
書局變剩下沒有幾間
之前瓏軒庭院書局倒閉(早期它的書藉幾乎和台北天瓏一樣的規模和3C商品販售)
逢甲揚業倒閉改成牛排館(完善的國內外的電腦、理工和商業書藉)
再來是逢甲金石堂倒閉(國內連鎖書局,和其他不同是它供應理工、商業、補習教材的販售)
後來是逢甲唯軟的遷館(國內的電腦書供應,打折數高)
現在是瓏軒書局的清倉(現在台中擁有電腦書藉最完整和打折數高)(心想應該是倒閉)
而台中可以供民眾能找到供應最完整的書、新書藉即時上架與書的價格有優惠的地方剩:
台中火車站諾貝爾和五南、公益路諾貝爾、漢口路諾貝爾和一中金石堂而己

叫商業和理工的專業人如何能在書局看到這本書是不是喜歡和能有完整的書藉供應民眾找尋呢?

或許上面的事
有些事情要作到是不太可能的
例如:新書每三個月賣不到一定數量下架和庫存的壓力...等等

基於這個情況
個人分析可能的原因是
1)網路購物的優惠及方便(超商取貨和送到府上)
2)出版商主打文學書藉(哈利波特、M型社會、郭台銘語錄、海與群、尋找藤井樹及彼得克拉的筆記...等等)
3)影印書藉比買書便宜
4)二手書攤和拍賣網站變多
5)經濟不好無預算花在購買書藉,甘脆站在書局裡看
6)請圖書館購置,請親朋好友續借到永遠
7)對於自我能力再提升沒有願意
8)網路資料可以解決問題和免費電子書下載

這些環境和經濟的改變
使得這樣子的事情發生
書局逐漸從專業消失走向連鎖書局什麼都賣

其實這些不足以造成什麼大的傷害
但對於未來和國家的知識水準有關係

最重要的一點是
其實社會上有許多東西也逐漸從專業走向通才 :p


ps.
1)打折數高是比台北天瓏低、網路購物低的價格
2)專業書藉沒有討論到書藉的深度和市場的問題,但這也是令人擔心的一環

 
 
 
 

Windows Server 2008 & Visual Studio 2008 上市


今天4/22日
感覺是個天大的好日子
因為昇陽和微軟都辦了中型的研討會
由於昇陽的開發者技術日辦在台北市
加上好幾個星期前已先報名微軟的產品上市活動
就只好選擇在台中市的微軟產品上市活動

由於上午要上課
所以只好趕下午的專講Visual Studio 2008的三場研講
到會場報到
第一次使用RFID的名牌
感覺還蠻新鮮的
不過幸好是被動式的
且當Reader在讀RFID時是近距離接觸式的
不然還真不太敢掛在身上
下午的研講依順是:
1)建立開發團隊的核心價值
2)Next Web進化論
3)新一代資料連結技術

第一場是由趙翊川先生和胡德民先生來解說
基本上的內容是在講團隊開發的角色與Visual Studio 2008的搭配
依團隊角色展示會使用到的一些功能:文件與程式碼、專案進度與程式測試等等
主講人胡德民先生從上次2005上市發表會
就覺得這個人很賣力的解說(像古時侯在賣藥)
講到後面臉還會變成關公0rz

第二場是由周旺暾先生來解說
內容在講的是Visual Studio 2008對於網頁開發上所作的前一代工具的改進和新加入的功能
例如nest master page、支援 css 和 javascipt 開發、ajax的工具集及Sliverlight等等
感覺微軟在網頁程式開發很用心
針對需求最大的地方作下手
且吸引程式設計與美工設計師來使用它的工具
主講人周旺暾先生感覺是程式設計師出身的
好像開發程式有很長的一段時間
因為連很早的程式語言他都有研究過
感覺像是個戰場上的老兵

第三場是由王森先生來解說
內容是在講Linq這個新一代針對資料作操作和查詢的工具
Linq可以作的事感覺上都是將任何的來源當成資料來使用
來源所能處理的有XML、object...等等
在Linq語法展示時
不是因為感覺又要學新的語法
而是compiler sugar讓人覺得好像被編輯器玩假的
最不喜歡這種感覺了
當然它可能後面附加更強大的功能
也對資料庫轉成物件(or-mapping)的這個功能作介紹
感覺可以等到ADO.Net EE發佈時再來學習還來的及
主講人王森先生是之前教授程式語言的老師
對於他己算是認識
今日的轉變和昔日在不同技術上所讓人的感覺不太一樣
通常他的講課方式是受大家好評的
可是今天可能太緊張
感覺在講解和Demo時卡卡的
不怎麼的輪轉

以上是下午的研講的概述
整體下來讓人覺得很趕
且跟上一次作比較的話
這次的內容也比較少

最後自已所拿到的戰利品只有開發工具和開發資源盒
還是小小的收獲

 
 
 
 

社群的力量



今天去參加聖哥的網聚
由於很少網聚是辦在台中
所以一定要排除萬難
前去參加聚會

這算是一個微軟社群的聚會
除了認識新的朋友之外
聚會的Topic是windows 2008
也算是學習到新技術知識
所以沒有兩手空空而回

微軟在產品上的開發上
相當的恐怖
以前都只有聽別人說
現在自己實際去了解
才發覺真的如別人所講的
且也是花費相當多的人力和金錢
只為了要維持它的市場和吃下別人所占有的市場

以上所說的是針對微軟整個
而非台灣微軟
其實大家都想
微軟怎麼的大
所以對台灣微軟的資源應該不少
且總公司微軟和台灣微軟之間是相通的
基本上這些觀念是錯的

由於台灣在產品的使用和軟體的開發上
並沒有像其他國家市場和人口怎麼的多
對於台灣這塊土地上的IT人員的照顧並沒有很好
國外有的國家有的資源在台灣不一定是有的
要積力的爭取和一些條件符合才會有些東西
且總公司的微軟和台灣微軟之間
如果詢問技術也是要花費用的

台灣微軟對產品的售後服務被認為不好的
且也是需要付費的
對於免付費這一塊而言
台灣微軟又一個人都要當幾個時人使用
所以並沒有辦法達到很完美的境界
在台灣微軟論壇上的產品問題回答
也靠著台灣MVP和一些顧問講師先去作一道防線的回答
當問題無法回答時再回給台灣微軟的該項目負責人

總看以上的事
可見的一件很重要的事
不管是台灣微軟
或者是台灣其他技術
都漸漸地失去原本應該有的東西
拿個例子來說
利用google搜尋Java的資訊時
會發現有一些solution的提供在大陸那邊
其實在台灣這邊的solution真的很少
社群的力量真的很重要
很需要台灣的熱血和有理想的工程師
一個人的力量很小的
共同去作分享和努力才會達到最大的效果

 
 
 
 

幾何


因為以前是讀商科的
由於轉換跑道讀工科
發覺讀工科非常的踏實
不會像讀商科時這樣子的空虛
或許有的人認為讀商科很踏實
應該是每個人的個性不一吧

最近選修高等線性代數
因為從高職到研究所未學過線性代數
更正確的說向量和矩有在高職數學課本和管理數學有學過
但和現在所學相比較似乎深很多

這堂課的老師很特別
他敘述一個觀念
讓我有頓悟了一下
他說數學有分為兩個部份
一個是算術另一個是幾何
小學背九九乘法加強了算術
中學、高中學了三角不式、向量、矩陣等等之類的
越到高年級重要的是幾何
要算術的成份越來越少
而幾何的觀念可以讓你把數學應用到各領域

長久以來
原來我一直沒有讀通的數學
只知道一直算
了解題意在說啥去解題
忘了這個題目的題意再抽象可以去延伸到其他地方
在這個時間似乎看到了一些不同的想法
或許有的人早就知道
不過我想對我來說
現在明白這一點還不算晚

最更要的是
以前是讀私立後段班的學校
考上國立前段的學校
現在漸漸打開自己的眼界
能選修的課變多了
其實之前遇到的問題在這些算是簡單的
甚至要在短時間內完成它
現在做的東西能與世界和業界接軌
不在是做別人做過的東西
慢慢的能體會一些事

 
 
 
 

初見 JavaFX


JavaFX己出來有一段時間了
但無法像M$的Sliverlight或Flash的RIA
怎麼快的有新的資訊
甚至於出書的形式
不過小弟還是借google大神的力量
收蒐一些JavaFX的相關訊息
http://www.javaworld.com.tw/jute/user/download/218053/JavaFx.pdf

http://www.javaworld.com.tw/jute/user/download/218088/JavaFx_2.pdf
是個人的學習筆記
寫的不是非常的好
但希望能引起有共同興趣的人一起學習
當然學習JavaFX時
就會發現其實它也有著迷人之處
未來還會繼續增加內容

 
 
 
 

programming的感觸


每一個人第一個接觸的語言都不一樣
然而我所接觸的第一個語言是c++
剛開始就會覺得沒有學c就直接跳c++會不會學不好
經幾番思索也找不到任何的理由
就跟隨著授課老師的腳步學習了c++
後來才知道c++是c的延伸
前面也是會教授c的功能
所以就繼續往更深的章節學習
到了class老師總是會拿出結構化程式設計和物件導向程式設計來作開頭
後面就跟著多型、繼承及虛擬
再後面就是執行緒、泛型、例外和程式庫
進階的c++就會再教授MFC、ATL及COM
這個流程可是個人認為學習曲線超長的
而且還要搭配學習計算機組織、資料結構、演算法和離散數學等等才能應用到各各地方

最近在和一個寫bcb的學弟聊
他說學長寫程式有必要像你這樣子嗎?
使用"正統的方法"去撰寫程式
像我都是功能作出來就好(自己被嗆了orz)

像時的我也不知道怎麼回答他
說真的開發相同目的程式時侯
他開發時間真的比我短了許多
這是bcb採用vcl架構所帶來的效益
然而我用mfc就會想對來的慢
且有時侯程式寫太多還必須思考重構
不經思所我真的在作笨蛋之事嗎?
這個問題還是在我的頭中思考著而苦無答案
也有可能是會的ATL控制項還太少
無法快速完成所要的功能

如果拿出Java或VS.Net這二個工具來與bcb比開發時間
好像確實會比他快許多
但又在執行程式的速度上慢了許多
不經想到底Java或VS.Net每年在更新版本是為了解決大架構的事
卻好像連基本的東西都沒有變的比以前更好

bcb和delphi好像有存在的理由
而不去update到.Net平台或其他語言
(或許這就是業界還有許多程式設計師不學習其他語言的原因之一吧!)
以前有人常在說visaulfox更新顯示資料庫元件的速度還比現在.Net還要快許多
好與不好 結構化程式設計與物件導向式程式設計 物件導向式程式設計與方言程式設計
就留給日後慢慢去體會和了解

 
 
 
 

c++ primer 4/e



記得大學剛學C++時,
這本第三版是我們上課的參考書藉,
而上課課本是How to Prgramming C++(螞蟻),
那時侯光How to Programming K 完就很吃力了,
第三版書買下來都沒有去翻它,
後來到某些程式設計版很多人推見這一本書,
於是就把它拿起來翻一翻,
發現每裡有很多地方都能充份地譯出原作者所要表達的,
從那時侯開始我算是第一次認識到侯捷大大這個人物,
後來再去圖書館和書局把他的著作和譯作翻出來看,
(當然也沒有說全部)
不過算是我看過國內所有寫C++的作者算是數一數二的,
能把語言研究的怎麼透徹和有條理的整理下來,
事隔怎麼久,
現在又出版了第四版,
我想這又會造成另一個的高潮,
聽說C++ primer 3/e的銷售數字創下了單本書藉的最高記錄,
如果您是個C++新手不妨去買回來k一k,
保證您的C++又會大增。
目前侯捷大大在大陸教書,
可對於台灣C++讀書來說是一大損失。

PS.
1、
有去書局翻了一下書藉
發現一個好玩的東西就是前面的印刷的次數寫著三版一刷
讓我不經想是不是直接拿第三版來刷
而四版其實和三版是差不多的

2、
C++的經典書藉還蠻多的
除了我剛說的那二本
其實還有Javaworld裡的William葉秉哲大大所譯的C++
還有Thinking In C++這本書
最後還有良格葛的線上c++電子書。
至於蔡明志所翻譯的書藉反映不一定,
有人說好有人說壞。

一些想法


一、
最近好像學AJAX蠻紅的
記得是在前年的Java大會朱仲傑大大有demo過這項技術
正確的時間點也不太清楚
良格葛大大剛出Java學習筆記(藍色皮)
那時的王森大大也還在昇陽服務
好像有一點離題
想說的是
是不是現在紅什麼就要學什麼呢?
在資訊這一行技術的更新很快
每個人都會去追求新的技術
但想一想
好像沒有這個必要去追求這些新的技術
記得也是前年Java大會李日貴大大推EJB3
如果那時侯跟著去學這項新技術的人
現在可能又會被是否要學現在很紅的Hibernet這項技術所困擾
一個公司的軟體架構是否可以因新的技術而換來換去
應該是要把一些技術的根本和原理學好才是
(離散數學、軟體工程....等等)
進一步把某項技術專精

二、
最近台中的書局一家一家的倒了
這是否也代表了一些訊息
說是景氣不好
真的是這樣子嗎?
現在的書局和以前的書局
所主張的走向完全變了
現在的書局紅的是外國翻譯的小說
(店內會放一些3c產品或其他產品)
但很少聽說台灣的小說是紅的
對於資訊的書藉這一塊
有些書局的作法是不賣電腦書
因為電腦書難賣且又範圍太大
那對於我們這些小數的人來說
想買一本電腦書必須要透濄網路向台北的書局訂購
偏偏有一些人買書的習慣是會先翻內容好不好
再者書藉的內容太深
好像也是賣不出去的
快快樂樂系列總是賣的特別好
而出版社會因為我們是少數的需求者為理由
去迎合市場的走向
觀看大陸所出版的書藉
就感覺比台灣本土所出版的書籍來說
還更具有多樣性
是否也是在走回頭路呢?
 
 
 
 

無聊。亂逛。


好久沒有作Java的Research
開打Netbean編輯器的感覺都快消失了
Java的技術不斷的更新
而我卻沒有跟上它的腳步>"<

今天上網無聊看了一下蔡學鏞大大的文章:
http://city.udn.com/v1/blog/article/article.jsp?uid=JerryTsai&f_ART_ID=654310
這一則是在說Adobe Apollo這個技術

當然有的人對他的文章很感冒
不過對於我而言
就看看無妨
反正自己能分判筆者對與錯就好

文章的裡面有提到Java F3
想說就找google大神這一下它是什麼
原來F3是Form Fllows Function的簡稱
F3是一個直譯式的Java scripting language
對於Swing、Java 2D支援度良好
適合來開發UI
詳細介紹可以看8月份的RUN!PC(http://www.runpc.com.tw/pdf/163/R163E09.pdf)
當然它正式的名稱叫作JavaFX

但光看文章就讓人覺得"吃麵再說燒"
於是再次找google大神
就跟我說可以到這裡 https://openjfx.dev.java.net/
果然大神就是大神
讓我對這項新的技術有了初步的體驗
我是使用Netbean 5.5.1+J2SE 6.0建置基本開發環境
安裝與設定 https://openjfx.dev.java.net/javafx-nb55-plugin-install.html
開始第一個範例(hello world!) https://openjfx.dev.java.net/Getting_Started_With_JavaFX.html
更多物件的使用 https://openjfx.dev.java.net/Learning_More_About_JavaFX.html
和 Chris Oliver的一些應用 http://blogs.sun.com/chrisoliver/category/F3

對於JavaFX有基本的了解
其實對於這項新技術還有更多的Session可以去了解和討論
不妨大家可以先玩看看與到Javaworld@tw一起討論

呼~時間不早了...大家晚安
 
 
 
 

感謝..


去年12月8日在此寫了一段名為『惡耗』的留言
當時的心情真的盪到了谷裡
就好像覺得世界沒有了希望
因為長久以來的努力
感覺是化為鳥有的

但經過半年的思考與改進
與看到anthonychen兄與Yoshi兄的打氣
感覺要繼續加油
就算再試一次會失敗
也要去嘗試博士班考試

於是自己就報名了三間學校(其中二間是國立的)
今天是考試的榜單公怖
說真的會怕再受一次傷害
因為面試時教授嚴格詢問簡報的內容
問的我是招架不太住

呼~回到看榜單這邊
抱持著失敗了大不了就工作
明年再拚一次看看的心情

人生就怎麼幾次機會能作自己喜歡的研究
且努力不一定會成功
但不努力一定不會成功

這次的結果讓我感覺是高興的
雖然還有一間沒有公佈
不過我己中了二間
讓我掃除之前沒有考上的陰霾

真正的挑戰才剛開始
因為板上有許多前輩都是博士班侯選人>+++++<

最後要說的是這個不是炫耀文
而主要感謝anthonychen兄、Yoshi兄或其他人的鼓勵
讓我能從谷底再從上來

 
 
 
 

JNI....1


首先在類別裡撰寫方法,此方法不實作(implement),且在存取修飾詞(access modifier)後加上native字眼。 接下來,利用JDK工具(javah)產生C++程式所需的標頭檔(head file)。 native方法的實作是在C++的.cpp檔中敘述。 為了存取native方法實作內容,必須在使用前先載入Visual C++ 6.0編輯後的.dll檔案。 利用兩個數字的加法為例子,來說明撰寫JNI程式的流程。 1.撰寫Java程式碼 public class JNIMath{ public native int addTwoNumber(int one, int two); static { System.loadLibrary(“JNIMath”); } public static void main(String [] args){ JNIMath math = new JNIMath(); int num1, num2, sum; num1=1; num2=2; sum =math.addTwoNumber(num1, num2); System.out.println(num1+”+”+num2+”=”+sum); } } 2.編譯(Compiler)Java程式碼,且執行JDK工具(javah)來產生檔頭檔 >javac JNIMath.java >javah JNIMath 3.利用Visual C++ 6.0來產生Java執行時所需要的JNIMath.dll 3.1先開啟win32 Dynamic-Library Library類型的專案 選An empty DLL project,按Finish,再按Ok。 3.2加入JNIMath.h 3.3新增JNIMath.cpp檔案,並在JNIMath.cpp中實作addTwoNumber的內容 #include "JNIMath.h" JNIEXPORT jint JNICALL Java_JNIMath_addTwoNumber (JNIEnv * ,jobject, jint one, jint two) { return (one+two); } 3.4編譯C++程式 4.將編譯成功後的JNIMath.dll與JNIMath.class放置同一個檔案夾內, 執行Java程式。 >java JNIMath 完成兩個數字加法。 P.S 1.用Visual C++ 2005 Express 也可以完成此範例。 2.將C:\Java\jdk1.5.0_08\include下的檔案拷貝一份到C:\Program Files\Microsoft Visual Studio\VC98\Include

 
 
 
 
 

« 十一月 2008
星期日星期一星期二星期三星期四星期五星期六
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
      
今日

Valid XHTML or CSS?

[This is a Roller site]
Theme by Rowell Sotto.
 
© fish1217