2013年11月12日 星期二

JavaSim

前一陣子使用JavaSim做一些Simulation時候發現, 當一次要重複Simulation時, 基於SimulationProcess 的 thread 會無法釋放,進而導致Server資源的浪費.解決方法是在 finalize 函式中對 mutex 做 notify(). 其實用OpenSource 的Project 要有Debug的能力, 因為通常沒有足夠的文件或是註解可以說明, 不過爬code也是很有趣的...
org.javasim.SimulationProcess.finalize ()

另外每次Simulation調用Scheduler之後要呼叫 Scheduler.reset();才能做第二次的Simulation

2013年4月9日 星期二

Good WEB UI Framework - Vaadin

好久沒有看到讓人興奮的新技術了,趁睡不著的時候,趕快紀錄一下~

今天同事分享了 Vaadin 這個Framework,真的讓我有驚為天人的感覺。其實他的概念和之前接觸到的JSF很像,不過看了原廠和同事的Demo後覺得這個真的是不錯的Framework,開發上使用了之前Java上慣用的Swing開發方式,前台網頁和JavaScript 和 AJAX 的互動全部由後台程式產生, 對開發人員而言真的是很方便。想到之前和CSS還有JQuery 奮戰的過程,不禁讓人覺得相見恨晚阿。不過看起來這樣的架構會不會有讓美工人員不易和程式設計師分工的問題還要深入研究一下, 當然對於中小型專案影響不大。

然後重要的來了~他是採Apache V2 授權的開放原始碼專案,可以有效降低期初的投入成本,商業應用上也比較ok。

其他的部份要看完文件和實做才能深入體驗,看起來文件也蠻豐富的,又有新東西可以研究了,也是美事一樁阿~

https://vaadin.com/comparison 這個比較表很適合快速瀏覽一下他和其他framework的不同。



2013年1月25日 星期五

自動化模擬軟體

最近的工作內容接觸到一些生產線的分析,不過目前看起來用靜態分析方式會有蠻大的落差. 使用自動化模擬軟體可能是比較完整的解決方案。

目前業界比較有名的自動化模擬軟體如下:
Enterprise Dynamics,Flexsim,AutoMod,Arena,WITNESS

不過依照本人愛好自由軟體的精神,也找了一套Open Source的相關軟體,目前是德國漢堡大學在維護的.


DESMO-J is an object-oriented framework targeted at programmers developing simulation models. The acronym "DESMO-J" stands for "Discrete-Event Simulation and Modelling in Java". This longer name highlights DESMO-J's two significant properties:

DESMO-J supports the discrete-event simulation paradigm. In models of this type, all system state changes are supposed to happen at discrete points in time. Between such events the system state is assumed to remain constant. Discrete-event simulation is therefore particularly suitable for systems in which relevant changes of state occur suddenly and irregularly, like queueing networks for example.
DESMO-J is implemented in Java. Using this framework to build simulation models ultimately results in writing a Java program.

還有另一套用GPL 授權的 JSL(Java Simulation Library)  https://bitbucket.org/rossetti/jsl/overview
真的要玩再來研究一下....

不過簡單的分析可以透過用程式語言的分散式架構配合多執行緒直接Coding, 目前在想有必要作到這個程度嗎...

https://bitbucket.org/rossetti/jsl/overview

2012年8月3日 星期五

開放源始碼(Open Source) game project 的評估

今天抓了幾個sourceforge上的Game研究一下, 簡略列一下優缺點

Pros:

  1. 部分可以使用
  2. 有較完整的軟體介面及遊戲邏輯可以參考
Cons:
  1. 大部分沒有完整的Document和注解, 維護和修改要花不少時間
  2. sourceforge上大多採取GPL的授權, 找了幾個WEB Game 都是採取AGPL的授權...也就是修改後必須公開原始碼(包含修改的部分)這方面比較會有爭議
  3. 不同的Project用了不同的開發環境, 建置開發環境及編譯原始碼要花不少精神

以HTML5的Web Game為例,有不少的game engine可以用,例如  impactjs 這個號稱開發一個乒乓球遊戲只要15分鐘. 以目前遊戲開發的工具越來越普及和易用的狀況下,自行開發應該彈性較大

這兒有開放源始碼(Open Source)相關授權的說明,可以參考一下

那些台灣軟體產業所缺少的 – 開放源始碼
ASP 與自由/開放源碼軟體的散布條款
授權條款內容的修改
Open Source霧裡看花懶人包
別怕 GPL

一些遊戲開發工具的連結

2012年7月5日 星期四

安裝Hadoop 1.0.2 在Ubuntu 11

安裝Hadoop的部份還蠻簡單的,照著網路上的文章就可以成功了

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/
http://changyy.pixnet.net/blog/post/25245658-%5Blinux%5D-%E5%AE%89%E8%A3%9D%E5%96%AE%E6%A9%9F%E7%89%88-hadoop-0.20.1-single-node-cluster-(p

這部份沒有特別要注意的,接下來要測試Hadoop的功能以及實做多節點的Cluster

2012年4月2日 星期一

Boot into text mode with Ubuntu 11.10

基本上是參考這篇,不過照著作不Work...
又看了這一篇,自己試了一下好像可以了,趕快筆記一下...

編輯 /etc/default/grub

arthur@ubuntu:~$ sudo vi /etc/default/grub
[sudo] password for arthur:

將下面這行
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
改成
GRUB_CMDLINE_LINUX_DEFAULT="text"

然後在把這行前面#拿掉
GRUB_TERMINAL=console  //text base grub menu


存檔後作 update-grub
arthur@ubuntu:~$ sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.0.0-17-generic
Found initrd image: /boot/initrd.img-3.0.0-17-generic
Found linux image: /boot/vmlinuz-3.0.0-16-generic
Found initrd image: /boot/initrd.img-3.0.0-16-generic
Found linux image: /boot/vmlinuz-3.0.0-12-generic
Found initrd image: /boot/initrd.img-3.0.0-12-generic
Found memtest86+ image: /boot/memtest86+.bin
done
arthur@ubuntu:~$

要啟動桌面的話輸入 startx  就可以了,不過不要desktop的話直接裝server版就好了...我好像多此一舉...

2012年3月20日 星期二

跨平台的APP應用程式框架

本來認為使用HTML + CSS 配合jQuery 就可以在前端應用方面打遍天下無敵手了~不過在行動裝置上的使用者體驗還是不夠好,加上無法和行動裝置的硬體(ex.相機)直接互動,總是不夠完美。

目前跨平台的APP應用程式框架有Titanium MobilePhoneGap 兩種,端看應用程式需求來選擇。
偏向遊戲開發有 corona unity 可以選用。

不過目前開發的方向也還沒確定,所以先筆記一下...

參考資料
再談Titanium Mobile與PhoneGap的差異
從使用者角度看 Native app vs Web app