2013年8月15日 星期四

[Android] Broadcastreceiver and Service

Only One Broadcast Receiver

參考這個

所以真的沒辦法了嗎?


2013年4月2日 星期二

[C++] 最近碰到的問題

最近在寫論文的模擬實驗
用的是OMNet++ 使用的語言是C++
結果碰到了一些C++的問題
總覺得寫太久JAVA對C++掌握度變好低阿

之後再把問題補上來

  • external const

            參考
一個global的const variable 另一個檔案不能直接extern來用
因為在C++ 只要宣告const就是internal linkage 也就是只能在同一個編譯單元(檔案)來使用
所以即使加extern了也沒辦法使用 只能寫到.h檔 在include來使用囉

  • constructor call constructor

大概是受JAVA影響 
總覺得應該是很直覺的
沒想到在C++不能在constructor裡面call 另一個constructor!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
所以如果有共同的建構子部分 只好取出來另寫一個fucntion呼叫
但事實上你可以call 另一個constructor
但會發現他會蓋掉另一個constructor的初始化結果
不同的constructor 可能會產生一個自己的物件吧(我猜測)

參考

    • new (this) ClassName()

參考 或是 這篇更好 new 的 (cpp reference)在查上面的stackoverflow看到的 new的另一種用法
大一時 介紹到了new和operator new
差別主要在new會呼叫建構子 operator new只會分配記憶體 不會呼叫建構子
但沒想到(或是忘了?) 還有上面那種用法 只會呼叫建構子
看第二個參考資料的範例就會很明白了
new =   operator new + new (this) ClassName() 
應該可以這樣說吧

2013年3月27日 星期三

OMNet++


記得要灌32bit的OS 以及32BIT的JAVA版本 比較不會有問題
我現在是64bit的win7 32bit的JAVA
IDE會怪怪的 因為路徑的問題
不過看他在哪裡缺什麼硬塞進去 就這樣硬解掉了 XD

OMNet++是一個discrete-time event simulator 可以做discrete-time event simulation
所以不只可以模擬網路系統 還可以模擬其他類似的系統(EX 電腦系統等)
使用C++撰寫還有Eclipse的GUI介面
我們要用程式去寫出要模擬的model
整個程式(Model)的單位由simple module組成 
simple module可以組合成compound module
中間藉由gate 以及channel來傳遞message做溝通
然後可以藉由NED描述語言來描述整個network
還要有omnetpp.init來描述要模擬哪個網路、指定亂數種子、指定
用scheduleAt()來送訊息給自己=>做timer  
(if (msg==event) or if (msg->isSelfMessage()) 判斷是自己送的還是別人傳的)
simple module: 由C++撰寫 記得overwirte initial() (開始模擬的時候呼叫)  handleMessage() (收到訊息的時候呼叫) 和finish()(結束時呼叫) Function
message 寫成,msg檔
message TicTocMsg13 {
    fields:
        int source;
        int destination;
        int hopCount = 0;
}
.vec檔每次模擬都會更新
.sca會持續記錄

2013年3月6日 星期三

2013年2月25日 星期一

2013年2月8日 星期五

[Android] startActivityForResult

啟動新的Activity有兩個方式
一個是startActivity 另一個是startActivityForResult
顧名思義 第二個會得到新的activity回傳結果
但是注意 自己就會回傳了
不用再Start一次喔
剛剛耍笨了> <

2013年2月7日 星期四

[Android] Relative Layout

其實滿好用的呢!
http://hi.baidu.com/hemisp/item/ce1fcaf496ae4dcc521c26cc
大概就是這些參數
配合上MarginLayoutParams
可以做滿多的了

[Android] Service startService/bindService

Service是android API當中 用來作背景執行的元件
可以再Activity中 用startService或是bindService來執行
差別在bindService的生命週期會隨著呼叫者而改變
但是startService必須尤其他人呼叫結束(stopService)或是自己結束(stopSelf)

2013年1月18日 星期五

能上課是一種福氣啊


如果能上一堂好教授的好課真的是一種福氣阿
聽教授的分享 再加上自己的心得

體悟到一些道理的感覺是很棒的

能了解一整套完整的系統的感覺更棒!!!!!

像之前修過的計算機網路 無線多媒體網路 無線網路 網路程式設計 Java程式設計 Compiler
正規語言 機率 統計學  隨機程序 等等 
有時候那種融會貫通的感覺很棒呢(雖然往往是自己認為的啦)
我自認為只要修過的課都至少會要把他的大綱給描述出來
至少我以後再想事情的時候 可以有個index
告訴自己
這該往哪個方向去找資料
我想我應該可以問心無愧的在我這六年來的修課上面

我好想多修點課阿
雖說自學的能力很重要 都念到這地步了 ....
所以能上課是一種福氣啊

可惜阿 

現在是要努力拚畢業的時候了
加油吧

2013年1月8日 星期二

Decision Theory

決策理論算在作業研究和管理科學中會用到的東西吧
論文應該會用到
不過 我現在才發現 以前在修AI的時候其實也提過了......
一個代理人要如何做決策之類的...........
當時真的沒好好學Orz
不過都很淺就是了
AI這領域真的博大精深

這次找了好多資料來看

整理一下幾點:


  1. Decision Theory = Probability Theory (描述不確定性)+ Utility Theory(描述偏好性)定義問題
  2. 機率理論不多說
  3. Utility Theory: Utility可以是一個使用者的偏好的數值,若我們按照效用理論公理定義好偏好關係,則會存在一個實數函數U,若且唯若偏好A勝餘B,則U(A)>U(B)
  4. Multi-attribute Utility Theory 可以把單一attribute的Utility結合,整合起來各個不同的目標,U(X,Y,Z)=f(U(X),U(Y),U(Z))
  5. 根據最大期望效用原則,理性代理人的選擇會選產生最大效用的決策
  6. 可以使用Decision Tree或是Inference Diagram(Decision Network)來做工具                  這兩個工具都要判斷
    1. 決策變數(要做的決策)
    2. 狀態變數(會產生什麼結果)
    3. 效用變數(對結果的偏好
  7. 若決策的結果無機率性,則Utility又稱作value,反之則稱Utility,Utility反應了決策者對風險的態度