2022年4月24日 星期日
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的不同。
今天同事分享了 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
目前業界比較有名的自動化模擬軟體如下:
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:
以HTML5的Web Game為例,有不少的game engine可以用,例如 impactjs 這個號稱開發一個乒乓球遊戲只要15分鐘. 以目前遊戲開發的工具越來越普及和易用的狀況下,自行開發應該彈性較大
這兒有開放源始碼(Open Source)相關授權的說明,可以參考一下
那些台灣軟體產業所缺少的 – 開放源始碼
ASP 與自由/開放源碼軟體的散布條款
授權條款內容的修改
Open Source霧裡看花懶人包
別怕 GPL
Pros:
- 部分可以使用
- 有較完整的軟體介面及遊戲邏輯可以參考
- 大部分沒有完整的Document和注解, 維護和修改要花不少時間
- sourceforge上大多採取GPL的授權, 找了幾個WEB Game 都是採取AGPL的授權...也就是修改後必須公開原始碼(
包含修改的部分)這方面比較會有爭議 - 不同的Project用了不同的開發環境, 建置開發環境及編譯原始碼要花不少精神
以HTML5的Web Game為例,有不少的game engine可以用,例如 impactjs 這個號稱開發一個乒乓球遊戲只要15分鐘. 以目前遊戲開發的工具越來越普及和易用的狀況下,
這兒有開放源始碼(Open Source)相關授權的說明,可以參考一下
那些台灣軟體產業所缺少的 – 開放源始碼
ASP 與自由/開放源碼軟體的散布條款
授權條款內容的修改
Open Source霧裡看花懶人包
別怕 GPL
一些遊戲開發工具的連結
2011年12月23日 星期五
強迫中止Scan32.exe
這問題困擾了一段時間,主要是公司的電腦在特定的時間會自動運行 scan32.exe.
CPU loading 是不高,不過佔用Disk I/O 非常嚴重~連要回個mail 都不行...
Google 一下後,發現用ntsd 可以Force Kill process.
指令如下:
@ntsd -c q -pn scan32.exe
弄完之後,終於可以回mail 了...
CPU loading 是不高,不過佔用Disk I/O 非常嚴重~連要回個mail 都不行...
Google 一下後,發現用ntsd 可以Force Kill process.
指令如下:
@ntsd -c q -pn scan32.exe
弄完之後,終於可以回mail 了...
2011年11月25日 星期五
Siena 全文檢索的問題
最近使用Play! + Siena + GAE 時發現,作類似SQL Like 的Search 時,會傳回所有的資料...
在Stackoverflow 中的討論發現,Siena 由於GAE的限制,在這方面的實做有限...
http://stackoverflow.com/questions/6307841/how-does-siena-query-search-work
也就是支援文字完全相同的和結尾字串相同的比對...真的很雞肋...
就算使用JDBC也必須先手動建立Full text index...
所以看來還是JPA比較有彈性...
在Stackoverflow 中的討論發現,Siena 由於GAE的限制,在這方面的實做有限...
http://stackoverflow.com/questions/6307841/how-does-siena-query-search-work
也就是支援文字完全相同的和結尾字串相同的比對...真的很雞肋...
就算使用JDBC也必須先手動建立Full text index...
所以看來還是JPA比較有彈性...
2011年7月22日 星期五
轉換程式碼為HTML
備忘一下~線上程式碼語法高亮產生器 - Online syntax highlighting
http://jsgears.com/thread-120-1-1.html
還有另一個網站也有
http://tohtml.com/java/
http://jsgears.com/thread-120-1-1.html
還有另一個網站也有
http://tohtml.com/java/
2011年7月4日 星期一
離線讀取註冊檔內容
之前發生過Windows 作業系統異常,重裝之後發現有些軟體的設定不見了(ex. PUTTY)
主要的原因是因為那些設定存於系統註冊檔裡面。所以找了一些方法將資訊挖出來...
我用的是 MiTeC Windows Registry File Viewer 可以將註冊表資訊由檔案中擷取出來。
Putty 的資訊是放在 HKEY_CURRENT_USER\Software\SimonTatham 下面,所以只要開啟 C:\Documents and Settings\UserName\NTUSER.DAT 就可以讀取設定。
至於註冊表資訊放在哪個實體檔案中,可以參閱下面連結:
資訊來源:介绍两款读注册表文件的软件
主要的原因是因為那些設定存於系統註冊檔裡面。所以找了一些方法將資訊挖出來...
我用的是 MiTeC Windows Registry File Viewer 可以將註冊表資訊由檔案中擷取出來。
Putty 的資訊是放在 HKEY_CURRENT_USER\Software\SimonTatham 下面,所以只要開啟 C:\Documents and Settings\UserName\NTUSER.DAT 就可以讀取設定。
至於註冊表資訊放在哪個實體檔案中,可以參閱下面連結:
資訊來源:介绍两款读注册表文件的软件
2011年5月12日 星期四
網頁版的生氣鳥Angry Birds全關卡解鎖的方法
http://chrome.angrybirds.com/
網頁版的生氣鳥Angry Birds,免安裝,用Google的Chrome開網頁就可以玩囉!(據說FireFox 也可以玩,我沒裝FF,不是很確定)
技術方面是採用HTML 5,所以理論上支援HTML5 的瀏覽器都可以執行。我本來懷疑HTML5的實用性,不過看到這個移植版後,蠻驚訝的。Flash 的優勢真的漸漸消失中...
另外提供小小作弊(全關卡解鎖)的方法,由於存檔是採用HTML5 的localStorage,所以可以直接用Java Script 去修改localStorage的值。
方法如下:
首先打開網頁版的生氣鳥Angry Birds之後,貼下面這行Java Script 到瀏覽器的位置列,就可以將 70個關卡全部打開,並且獲得三星的成績。
javascript: var i = 0; while (i<=69) { localStorage.setItem('level_star_'+i,'3'); i++; } window.location.reload();
還原的方法是貼下面這行Java Script 到瀏覽器的位置列,就可以將 70個關卡全部關閉。回到第一次玩的狀態。
javascript: var i = 0; while (i<=69) { localStorage.setItem('level_star_'+i,'-1'); i++; } window.location.reload();
2011年5月11日 星期三
Android Open Accessory Development Kit
Google發表Android Open Accessory標準與ADK開發工具(基於Arduino)這篇文章提到將第三方週邊和Android裝置連線的標準。硬體的部份將基於Arduino這個平台來發展。
但是Android 只要直接支援USB OTG 其實能做的東西就很多了,像是直接接搖桿,或當監控裝置。這位德國的Sven Killig有做了不少的應用。
另外這個microbridge的專案已經實做了使用Android 控制Arduino的Device,是使用TCP sockets 經USB的方式。
延伸閱讀 http://news.ycombinator.com/item?id=2533135
2010年12月28日 星期二
jQuery EasyUI
這個東西差不多就是我想要的~
功能面都具備了,加上開發也蠻直覺的,可以進一步研究一下可以展現的效果。
不過這種東西還是擔心跨瀏覽器的問題。
能作到像這位大哥Blog的功能就很厲害了吧?
這有一些簡單的說明...
http://www.ityizhan.com/jquery-easyui-document/
2010年4月22日 星期四
Install subversion
http://phorum.study-area.org/index.php?topic=55163.0
http://parus.idv.tw/2010/01/subversion-server.html
http://blog.xuite.net/innate/unixlike/22385135?ref=rel
apt-get install apache2 apache2.2-common apache2-utils libapache2-svn subversion
addgroup subversion
adduser www-data subversion
加入欲存取的帳號(User Account)和www-data(Apache帳號)到群組subversion中
adduser <UserName> subversion
mkdir /mnt/public/svnroot
cd /mnt/public/svnroot
mkdir <ProjectName>
svnadmin create <ProjectName>
chmod -R g+rws <ProjectName>
chown -R www-data:subversion <ProjectName>
#Http設定
vi /etc/apache2/mods-available/dav_svn.conf
<Location /mnt/public/svnroot/<ProjectName>>
DAV svn
SVNPath /mnt/public/svnroot/<ProjectName>
AuthType Basic
AuthName "<ProjectName> Subversion Repository"
AuthUserFile /mnt/public/svnroot/<ProjectName>/conf/passwd
Require valid-user
</Location>
#帳號密碼設定
htpasswd -cm /mnt/public/svnroot/<ProjectName>/conf/passwd <UserName>
/etc/init.d/apache2 restart
#SSL設定
啟用模組
apt-get install ssl-cert
建立SSL Certificate
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
啟用 apache ssl module 設定
a2enmod ssl
啟用一個SSL 用的 Vertual Host
1.先複製一份default site 的設定檔
cp /etc/apache2/sites-availabe/default /etc/apache2/sites-availabe/ssl
3.修改 ssl,加上
vi /etc/apache2/sites-available/ssl
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
</VirtualHost>
4.儲存後,啟動 site
a2ensite ssl
5.修改 /etc/apache2/ports.conf 如果沒有 Listen 443 加入
vi /etc/apache2/ports.conf
Listen 443
6.重新啟動 Apache
/etc/init.d/apache2 restart
2009年3月11日 星期三
Google App Engine
Google App Engine 註冊好久了,不過都沒去玩玩看。剛好最近作業有談到資訊系統的部份,就試看看用GAE把作業實做出來。花了約12個Working Hours 把GAE 和Python 搞懂了一些。發現這東西的確很有潛力。
DSS-購置房屋的決策支援系統
http://homez.appspot.com/
俗話說"老狗變不出新把戲",對已經好久沒學新程式語言的我而言,Python 出乎我意料的易學易用,讓我想到以前玩的GW-BASIC...
DSS-購置房屋的決策支援系統
http://homez.appspot.com/
俗話說"老狗變不出新把戲",對已經好久沒學新程式語言的我而言,Python 出乎我意料的易學易用,讓我想到以前玩的GW-BASIC...
2009年1月5日 星期一
把KuroBox/HG 升級到 Debian etch版本(kernel升級為2.6.25.1)
由於之前的KuroBox/HG是跑在kernel 2.4的kernel,並且有許多package在升級的時候都有一堆奇怪的Error。所以重新安裝KuroBox,並且升級到2008五月由genbako release的kernel 2.6.25.1。沒想到同事Max也遇到一樣的問題,所以整理一下之前的筆記~提供參考。
1. 設定進入 EM 模式,重開機
※debian 2.4 的核心
#echo -n "NGNG" > /dev/fl3
#reboot
※debian 2.6 的核心
# echo -n "NGNG" > /dev/mtdblock2
# reboot
2. 準備相關檔案
請由http://www.genbako.com/ 下載下面這些已經做好給KuroBox用的檔案
debian-sarge-2.6.17.3-kuroHG-20060702.tgz
kernelimage-2.6.25.1-kuroHG.tgz
modules-2.6.25.1-kuroHG.tgz
3. 安裝 Debian sarge
用telnet 進入EM Mode下的KuroBox,用root/kuroadmin登入
如果是全新的HD,要做硬碟分割
# /sbin/mfdisk -e /dev/hda
# sh /sbin/mkfilesystem.sh
已經分割好了之後,將之前的OS所在的分割區清空(在這個分割區的資料會全部不見喔)
# mke2fs -j /dev/hda1
掛載分割區
# mount /dev/hda1 /mnt
# mount /dev/hda3 /mnt2
用FTP指令將下列檔案傳到 /mnt2/source 的目錄下
debian-sarge-2.6.17.3-kuroHG-20060702.tgz
kernelimage-2.6.25.1-kuroHG.tgz
modules-2.6.25.1-kuroHG.tgz
傳完之後解壓
# cd /mnt
# tar zxvf /mnt2/source/debian-sarge-2.6.17.3-kuroHG-20060702.tgz
解壓之後修改相關檔案
/mnt/etc/hostname
/mnt/etc/hosts
/mnt/etc/resolv.conf
/mnt/etc/hosts.allow
/mnt/etc/network/interfaces
改完之後,進入正常模式重新啟動
# /usr/bin/write_ok
argv: /usr/bin/write_ok
# reboot
正常模式telnet登入帳號
先以tmp-kun/tmp-kun登入後在切換為root/root
# su - root
4. 升級kernel and modules
將kernel升級到2.6.25.1之後重開機
# cd /boot
# tar zxvf /mnt/source/kernelimage-2.6.25.1-kuroHG.tgz
# reboot
重開機後,更新modules
# cd /lib/modules
# tar zxvf /mnt/source/modules-2.6.25.1-kuroHG.tgz
# depmod -a
5. 線上更新 Debian sarge
#vi /etc/apt/sources.list
deb http://security.debian.org/ stable/updates main contrib non-free
deb ftp://opensource.nchc.org.tw/debian/ stable main contrib non-free
deb ftp://debian.linux.org.tw/debian/ stable main contrib non-free
deb-src ftp://opensource.nchc.org.tw/debian/ stable main contrib non-free
deb-src ftp://debian.linux.org.tw/debian/ stable main contrib non-free
# apt-get update
# apt-get upgrade
6. 將Debian 由 sarge 升級到 etch
#vi /etc/apt/sources.list
deb http://security.debian.org/ etch/updates main
deb ftp://opensource.nchc.org.tw/debian/ etch main
deb ftp://debian.linux.org.tw/debian/ etch main
deb-src ftp://opensource.nchc.org.tw/debian/ etch main
deb-src ftp://debian.linux.org.tw/debian/ etch main
# apt-get update
# apt-get -u dist-upgrade
#reboot
7. 其他
變更root的密碼
# passwd
新增使用者
# adduser user_name
將內建的tmp-kun使用者移除
# deluser tmp-kun
# rm -R /home/tmp-kun
線上系統升級
# apt-get update
# aptitude update
# aptitude upgrade
8. 參考資料
http://www.dyg.jp/category/kurobox/index.asp
http://blog.goo.ne.jp/g_armani/e/89aba8514fa6ad16bf5272100d3a5c09
2008年12月17日 星期三
用兩張網卡同時連公司內網和Internet
又是備忘時間啦~時常會用到這個功能修改路由(Routing)。主要是對外網路(Internet)能走特定網卡,然後同時用另一張網卡連公司內網。
假設
10.1.1.100 為公司內網的Gateway.
192.168.1.1 對外網路(Internet)的Gateway
我通常將下面這個指令存成.bat,方便以後可以用~
對了,查現有的Routing 請下 route print
Route add指令:
c:\ route add 目的IP mask 目的IP的子網遮罩 閘道器IP if 網卡ID
假設
10.1.1.100 為公司內網的Gateway.
192.168.1.1 對外網路(Internet)的Gateway
我通常將下面這個指令存成.bat,方便以後可以用~
route delete 0.0.0.0 10.1.1.100
route add 10.0.0.0 mask 255.0.0.0 10.1.1.100
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1對了,查現有的Routing 請下 route print
Route add指令:
c:\ route add 目的IP mask 目的IP的子網遮罩 閘道器IP if 網卡ID
終端機授權服務已經到期
關於這個問題,是Server端的設定有問題,可以參考 克勞德 . TW的Blog
Windows 遠端管理桌面應用 ( Terminal Service Server ) 有詳細的說明。
由於Server不是我設的,我也不能強迫別人改設定。所以我遇到這個問題時會清掉本機註冊檔裡的一些資訊。
建立一個文字檔,輸入以下資訊,然後存檔成.reg的檔案,以後要用點這個檔就ok了。
Windows 遠端管理桌面應用 ( Terminal Service Server ) 有詳細的說明。
由於Server不是我設的,我也不能強迫別人改設定。所以我遇到這個問題時會清掉本機註冊檔裡的一些資訊。
建立一個文字檔,輸入以下資訊,然後存檔成.reg的檔案,以後要用點這個檔就ok了。
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing\HardwareID]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing\Store]
遠端桌面連線要如何傳檔
訂閱:
文章 (Atom)


