2010年12月12日 星期日

Homework 9-25-2010

我看的這篇是

Tathagata Das, Prashanth Mohan, Venkata N. Padmanabhan,
Ramachandran Ramjee, Asankhaya Sharma
platform for remote sensing using smartphones


內容摘要:
智慧型手機在市面上越來越普及,而為了增加工具在智慧型手機廣大應用的潛
力,提出了這個平台來讓智慧型手機用戶增加許多可用的功能。

當中有提到PRISM為了平衡廣泛性、私密性所做的研究。而當中也提到這個平
台為了增加廣泛性,讓使用平台的作者,用可執行的二進制文件編寫,這是為
了提供效率性跟彈性去讓作者更方便的反覆使用已經存在的程式模組。

當中也提到PRISM使用了"PUSH"技術,讓平台上的應用程式主動的裝置在適
合的使用者手機上,也是為了讓使用者更方便的更新這個平台上的應用程式

他們主要提出了三個應用程式:
citizen journalist、party thermometer、road bump monitor
來呈現他們的實作內容

關鍵研究方法:
Push-based model has some benefit:
是應用程序可以部屬在手機的其中之一的方法,描述server把東西丟給cl-
ient端的動作跟pull-based是一體兩面的,因為pull-based是主動跟
server要資料,是雙方的動作
Generality:支持廣泛的應用範圍和靈活性,重用現有的代碼。
Security:確保參與電話,屬於個人用戶,保持安全和應用程序不被濫用
敏感的傳感器信息
Scalability:在PRISM上的基礎設施,允許系統擴展到大量的節點(例
如幾十萬),而不將它放到一個不必要的負擔。

PRISM與其他平台的比較

在任何狀況上,PRISM都至少是OK以上的等級,顯示出PRISM在他們
的代表應用程式,是相對於其他平台優異

幾個建制假設
1. 假設PRISM是被使用者信任且願意在他們手機上部署
2. PRISM是被可信任的單位認證
3. 每個參與節點都是被信任的
4. 可以直接與基礎設施聯繫,但用戶間沒有對等通信的能力

這是架構圖

註冊過程
登記過程是讓一個用戶,告知其存在PRISM server的可用性和運行
運行PRISM的應用程序。並且維持這個註冊的狀態,並不斷自動註
冊到有效期滿後。
PS:平衡使用以及隱私洩漏風險,怕時間長到可能洩漏用戶識別,鎖
定的註冊期限是一小時

Citizen Journalistl:這個像是盧育盛先生他的軟體"休息一下"一樣,每

個人都可以發表他自己的位置,以及分享給每個人

對於某間店的評價之類的

Party Thermometer:這個是可以查詢附近是否有PARTY很熱門,而這也

當中也有提到會用聲音來感測是否是真實在PARTY

裡面,(有可能是路過但剛好接收到位置,相對的在

PARTY裡面音樂就會相對大聲很多)

Road Bump Monitor:這是手機配備了GPS何加速度感測器來檢測和定位

路面顛簸的情況


結論:

這個主要焦點是在要更靈活的去使用在手機上的應用程式,技能減輕其

部屬的方式,增加PRISM的靈活性,也在提供更廣泛的安全性,可延伸

性給更多個人用戶


如何在程式碼加上ProgressBar


昨天跟老師討論完之後
老師建議我們把CountDown Timer改成ProgressBar
而其餘需求就跟昨天一樣
(TextView點下會出現ProgressBar並倒數)

以下是我的步驟

[main]
新增ProgressBar並在裡面寫上

android:id="@+id/ProgressBar01"
android:layout_height="wrap_content"
android:layout_width="200px"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20sp"
style="?android:attr/progressBarStyleHorizontal"

並在其餘想要點下的TextView都加上
android:onClick="start"

[主程式]
一開始先宣告
private ProgressBar progressBar;
private int nowProgressStatus=0;
public Thread thread;

接著在OnCreate裡面加上
progressBar = (ProgressBar)findViewById(R.id.ProgressBar01);
progressBar.setVisibility(View.INVISIBLE);(預設隱藏)
final Handler handler = new Handler();
final Runnable callback1 = new Runnable(){

@Override
public void run() {
// TODO Auto-generated method stub
}
};
thread = new Thread(){
public void run(){
while (nowProgressStatus <100){
try{
Thread.sleep(6000);
}catch (InterruptedException e){
e.printStackTrace();
}
nowProgressStatus+=1;
handler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
progressBar.setProgress(nowProgressStatus);
}
});
}
}
};

最後在你想要OnClick的TextView裡面加上
progressBar.setVisibility(View.VISIBLE);(點下後出現)
thread.start();

完成!!

如何在程式碼加上CountDown Timer


前天與學長討論工作提示的介面
他叫我在TextView點下去之後有倒數計時器出來

以下是我大概的程式碼
當中的步驟

[main]
新增一個TextView並在裡面加上

android:id="@+id/timer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="25sp"
android:textColor="@color/red"
(這我有在Color加上紅色的色碼,也可以使用預設的黑色就好)

並在你要點下去的TextView裡面加上這行
android:onClick="start"

[主程式]
一開始先宣告
TextView timeDisplay;
MyCount counter;

再來在OnCreate裡加上
timeDisplay = (TextView) findViewById(R.id.timer);
counter = new MyCount(600000, 1000);
↑這行是指出600個一千毫秒 = 10分鐘

再來敘述MyCount
public class MyCount extends CountDownTimer {
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
public void onFinish() {
timeDisplay.setText("done!");
}
public void onTick(long millisUntilFinished) {
timeDisplay.setText("Left: " + millisUntilFinished / 1000);
}
}

最後就在你要OnClick的那個TextView裡面加上
counter.start();

這樣就大功告成了


15th大專院校資訊服務創新競賽


在宣布第一名的那一刻,一切都是完美的,就算那個過程艱辛
--
還記得在我九月剛加入這個團隊時,大家交頭接耳的討論這個競賽內容時,
我在旁邊根本不知道從何幫起,只能從開頭慢慢去詢問大家的協助部分在哪
裡,彷彿就像一個第三者被硬放到一個已經有組織的系統裡,去逼迫自己一
定要馬上跟上這個團隊的腳步

在那時也發現,我根本沒有用心去了解馬學長在做甚麼,只知道論文名稱叫
做:「走失偵測」,也只記得幾個關鍵字:「常模、協助精障者來往職場路
途...等。」想想之前的我,還真是不用心

看著阿達MSN的狀態倒數著比賽日,也發現實驗室的節奏越來越積極,阿達
反覆的練習、我協助海報的製作、學長思考如何分工....等等。當中,我發現
雖然我的能力還遠不及盧展跟阿達,但我至少有慢慢融入這個團隊的感覺了。

在比賽當天,大家睡眼惺忪的到達了火車站,彷彿昨天以前都在經歷大戰一
樣的疲憊,但我知道,等到我們抵達會場的那一刻,大家一定會振奮起來,
把累積已久的所有實力,毫不保留的爆發出來

鈴聲響起,輪到我們這組要去報告了,看著阿達很生動的把海報上的文字轉
成語言敘述給評審時,看著評審一個接一個的問問題,就算時間到了,站起
來的同時,想要再問幾個問題,可是無奈攤位要迅速換下一組,評審就只好
就此打住,但看到這個景象,我知道我們離得獎不遠了!

離頒獎時段的空閒時間,我、阿達跟學姐就齊去逛逛其他攤位,當中有看到
概念性的、遊樂性的、也有看到實用性的、當然也有看到老人照護方面,而
去詢問也發現,其實實作對象,都非常有限。這時突然想起老師還有學長
說的話:「我們最寶貴的不是我們手上擁有的這些科技能力,而是跟庇護工
場這長久下來的信任,與互相扶持共創精神障礙者未來的這個願景,這才是
我們最該去了解與付出的一塊。」就如同FACEBOOK兩位創辦人捐出半數財
產後,共同誓詞提到:人們直到事業後期才回饋社會,但有這麼多需要做,
何還要等待。

在下午頒獎時,在主持人唸完佳作與第二、三名時,當中就有一種不知道該
不該開心的複雜心情,開心的是我們有爭奪第一名的機會、但這也代表,我們
沒有第一名,就連任何獎都沒得到的意思。而在要宣布第一名的那一刻,口中
一直不斷在覆誦:中原大學、中原大學、中原大學....。而一聽到中原大學四個
字時,我、盧展還有學姊都尖叫了出來,彷彿我們三個人,比別人三十個人都
叫的大聲,而當中阿達並沒有任何表情,彷彿知道我們一定會得第一名,果
517一哥

PS:我想他累到了....

好久好久沒有這麼期待的聽到自己組別的樣子,彷彿回到高中英文話劇競賽的
場景,不斷的覆誦自己的組別,一直覆誦、一直覆誦,而一聽到自己組別,就
不顧形象的開心尖叫了起來,擁抱旁邊的夥伴。

我來到517真的很幸福,謝謝上天讓我研所能跟這麼棒的夥伴一起打拼!!

來到517

不知道從甚麼時候開始,我突然愛上了研究所生活,雖然每天生活就是不斷
的看PAPER、寫程式、跑東跑西,然後再開始無限輪迴,就像上天已經為我
這兩年寫好一個for迴圈一樣,但我卻發現,我已經沉溺其中,愛上這種有了
目標而十分忙碌的生活。

第一關:大四下25學分
大四下還有25學分,這對一個正常的大四生,是很奇特的事情。而且這都是
必須要過的學分相信對一個"普通"用功的學生已經是不容易的事情,尤其對
以前那不愛於探討專業的莊安富來講,這根本就更是一大考驗。
但在我要確定要考研所的那一刻,我已經把自己航道的下一個目標,就是調
整到要讀研究所了。大四下的25學分,在我現在看來,只不過是一個考驗我
是否有堅定要貫徹我去尋找專業的一個必須要達成的里程碑而已。

第二關:議會整治階段→第一屆學生自治週&學生大會
心中處於25學分忐忑不安 + 不知道有沒有考上研究所的階段。不怕死的我,
還是陪著會長跑各處室,寄邀請函給各處室,希望長官可以與會。
這段時間自己也在整理這四年來的目標以及想要達成的理想是否完成。

PS:雖然這場活動有很多的缺陷,但我覺得也為學生會行政中心跟議會開拓出
非常光明的前景了

第三關:暑修三門課
在還不確定自己是否會ALL PASS的時候,我已經在為自己有可能被當的科目
尋找暑修的機會了(總要留點後路嗎)。雖然結果事與願違,但也慶幸我已經找
好學校可以給我最後一次機會去拿畢業證書(這算未雨綢繆嗎?)
在簽外校暑修同意書時,系辦叫我簽下切結書(註),叫我務必通過這三門課,
不然也不用想要繼續讀研所了

PS:切結書:因為三門課都不是在本系修,而系上是為了畢業問題才承認暑修
科目所以假如一科沒過就代表不能畢業,而就算有過其餘兩科皆不承認

當中的激勵:老師的祝福
一直處於壓力圈極大的空間下,真的很害怕有任何閃失,而有一次在實驗室看
到老師(以下是老師跟我的談話)
老師:這三科應該都會過吧??
安:應該會吧....(不確定貌
老師:希望可以教到你

其實我當下非常感動,短短的幾句交談,就似乎是為了讓處於黑暗不清海域的
我,照出一道明亮的光線,一定要拼過這三科暑修!!

第四關:車禍
在8月12號,從苗栗騎回中壢的途中,我因剎車不及,撞到了前方已停紅燈的
汽車尾巴,飛到右線道,導致我左手第四指韌帶斷裂,當中真的有一種世界末
日的感覺。當中擔心的不是我這隻手要甚麼時候好,而是擔心三科的期末考即
將來臨,很擔心是否DELAY到讀書的進度

幸好一切都已經安然度過
突然不知道怎麼結尾....

也不用結尾,因為現在才開始,不是嗎??
Keep Going, ICE!!