<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1910497415002281603</id><updated>2011-12-29T16:52:26.534+08:00</updated><category term='technology'/><category term='software company'/><category term='requirement engineering'/><category term='joomla'/><category term='web engineering'/><category term='search engine'/><category term='software maintenance'/><category term='Noun Explanation'/><category term='reverse engineering'/><category term='competition'/><category term='open source'/><category term='IDE'/><category term='Embedded System'/><category term='article comment'/><category term='paper review'/><category term='software reuse'/><category term='python'/><category term='software measurement'/><category term='SEKE'/><category term='concept analysis'/><category term='e-learning'/><category term='system and software analysis'/><category term='code generation'/><category term='operating system'/><category term='linux'/><category term='software quality'/><category term='software game'/><category term='simulation'/><category term='visualization'/><category term='idea'/><category term='context-aware'/><category term='research'/><category term='java'/><category term='cloud computing'/><category term='mandriva'/><category term='security'/><category term='software gui'/><category term='UML'/><category term='software design'/><category term='model-drivem development'/><category term='data and knowledge engineering'/><category term='Refactoring'/><category term='CBSD'/><category term='Software Tool'/><category term='desktop'/><category term='Eclipse'/><category term='book review'/><category term='OpenOffice.org'/><category term='service oriented computing'/><category term='programming learning'/><category term='project management'/><category term='image processing'/><category term='software testing'/><category term='conferences'/><category term='CMMI'/><title type='text'>Software Cinema</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default?start-index=101&amp;max-results=100'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>209</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-4888503835853459708</id><published>2010-11-16T15:13:00.021+08:00</published><updated>2010-11-16T17:53:45.707+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='service oriented computing'/><title type='text'>Restaurant versus Application, Service, and Cloud</title><content type='html'>An interesting metaphor comes up in my mind during today's Lab. group meeting...&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;(* All pictures bellow are retrieved from Google Image. Please let me know if there is any legal right violated.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;"Dine in"&lt;/b&gt; versus &lt;b&gt;Conventional Application Software&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://gallery.joy.com.tw/tw_joy/main.php?g2_view=core.DownloadItem&amp;amp;g2_itemId=610600&amp;amp;g2_serialNumber=1"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 250px;" src="http://gallery.joy.com.tw/tw_joy/main.php?g2_view=core.DownloadItem&amp;amp;g2_itemId=610600&amp;amp;g2_serialNumber=1" alt="" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://163.26.26.29/xoops/blog/47/attachment/1246256654_0.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 250px;" src="http://163.26.26.29/xoops/blog/47/attachment/1246256654_0.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;"Drive-Thru"&lt;/b&gt; versus &lt;b&gt;Service-based Software&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://link.photo.pchome.com.tw/s08/cckiske/8/124644430831"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 250px;" src="http://link.photo.pchome.com.tw/s08/cckiske/8/124644430831" alt="" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.financialpost.com/personal-finance/3423485.bin?size=620x465"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 250px;" src="http://www.financialpost.com/personal-finance/3423485.bin?size=620x465" alt="" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;"Call &amp;amp; Meal Delivery"&lt;/b&gt; versus &lt;b&gt;Cloud-based Software&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.shanghaiist.com/attachments/shang_dan/mcdonaldsdeliveryshanghai07.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 250px;" src="http://www.shanghaiist.com/attachments/shang_dan/mcdonaldsdeliveryshanghai07.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://t0.gstatic.com/images?q=tbn:po3oIyVR8DeayM:http://photos.travelblog.org/Photos/121395/400674/f/3837604-McDonald-s-Delivery-Guy-0.jpg&amp;amp;t=1"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 250px;" src="http://t0.gstatic.com/images?q=tbn:po3oIyVR8DeayM:http://photos.travelblog.org/Photos/121395/400674/f/3837604-McDonald-s-Delivery-Guy-0.jpg&amp;amp;t=1" alt="" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;There are advantages and disadvantages in each way. Different issues must be considered from the customer's viewpoint, such as the control of restaurant selection, food quality and security, information privacy ...&lt;br /&gt;&lt;br /&gt;I don't know if this is a good metaphor, but I think it shows some aspects of the differences among conventional software applications, service-based software, and cloud-based software.&lt;br /&gt;&lt;br /&gt;BTW, I actually don't like McDonald's, but their pictures are most easily to be found on Google Image, so...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-4888503835853459708?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/4888503835853459708/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=4888503835853459708' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4888503835853459708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4888503835853459708'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/11/restaurant-versus-application-service.html' title='Restaurant versus Application, Service, and Cloud'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-233562700307437939</id><published>2010-11-07T00:26:00.016+08:00</published><updated>2010-11-08T03:07:33.464+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reverse engineering'/><title type='text'>Recovering A Missing Simple Configuration File</title><content type='html'>山不轉路轉, 嘿.&lt;br /&gt;&lt;br /&gt;今天花了許多時間在挖某個 Jave-based Tool 的使用方式. 就不說是哪個 Tool 了, 也不打緊.&lt;br /&gt;&lt;br /&gt;該 Tool 雖然有把 Source 公開 ( in Limited, Private License ), 但是幾乎沒有註解, 也沒有使用方式. 雖然包成了 Jar, 裡面也有 Applet GUI, 但是並沒有讓你直接使用的意思. Manifest.mf 裡面甚麼有意義的東西也沒寫, 也沒有內嵌 Applet 的 .html 檔案在. 換句話說, 該 Tool 作者使用包 Library 的方式在包一個事實上是 HTML Applet 的工具.&lt;br /&gt;&lt;br /&gt;更麻煩的是, 某個必要的 Configuration File 並沒有附在裡面. 沒有該 File, 就算摸清程式運作邏輯, 也不可能讓工具動起來.&lt;br /&gt;&lt;br /&gt;但是由於該工具可用的話將省下我一個禮拜以上的時間, 加上該工具的程式碼實在寫的太好了, 不使用跟探討看看可能是我的損失. 必須得想辦法回復此 Configuration File. ( 寫信跟作者要? 拜託... 這哪是可能的選項... 這樣不就讓作者得逞了嗎... )&lt;br /&gt;&lt;br /&gt;在仔細去看 Loading Configuration 部分的程式碼之後, 發現了令人高興的事情: 該 Configuration File 的結構看起來十分簡單. 先看看他的 Config Loading 設計大概是這樣表示.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/_BkTUsTLwHTo/TNb0BqDUDsI/AAAAAAAAEag/ItoUSkFUCn0/s720/g3867.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 474px; height: 158px;" src="http://lh5.ggpht.com/_BkTUsTLwHTo/TNb0BqDUDsI/AAAAAAAAEag/ItoUSkFUCn0/s720/g3867.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;然後呢, 細節看看讀取跟處理的程式碼, 首先是如何取得單一設定值的要求.&lt;br /&gt;&lt;br /&gt;&lt;textarea class="java" name="code" rows="4" cols="60"&gt;&lt;br /&gt;snippet_dir = new File(raykernel.config.Config.get("snippet_dir"));&lt;br /&gt;scoreFile = new File(raykernel.config.Config.get("score_file"));&lt;br /&gt;&lt;/textarea&gt;&lt;br /&gt;接著看該工具怎樣處理 Configuration File 的 Parsing. ( 另外這裡只用 One-Pass 的方法, 讓程式更容易寫也值得筆記, 有時候不是非得要求 Two-Pass 來滿足任性的使用者 )&lt;br /&gt;&lt;br /&gt;&lt;textarea class="java" name="code" rows="4" cols="60"&gt;&lt;br /&gt;private void process(String line)&lt;br /&gt; {&lt;br /&gt;  line = remComments(line);&lt;br /&gt;&lt;br /&gt;  for (String tag : tagMap.keySet())&lt;br /&gt;  {&lt;br /&gt;   line = line.replace("$" + tag, getValue(tag));&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  String[] values;&lt;br /&gt;&lt;br /&gt;  if (line.contains(":"))&lt;br /&gt;  {&lt;br /&gt;   String before = line.substring(0, line.indexOf(':')).trim();&lt;br /&gt;   String after = line.substring(line.indexOf(':') + 1).trim();&lt;br /&gt;&lt;br /&gt;   currentTag = before;&lt;br /&gt;   values = after.split(",");&lt;br /&gt;  }&lt;br /&gt;  else&lt;br /&gt;  {&lt;br /&gt;   values = line.split(",");&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  if (currentTag != null)&lt;br /&gt;  {&lt;br /&gt;   addValues(currentTag, values);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;/textarea&gt;&lt;br /&gt;如此一來就可以得到結論, 該工具的 Configuration File 大概是長這樣.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;attr1:value1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;attr2:value2,value3&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;,value4&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;attr3:value5, value6&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;問題是, 該填寫哪些 Attributes 呢 ?&lt;br /&gt;&lt;br /&gt;這時候注意到取得單一設定值的要求都是透過同一個 Method Call Interface 處理的.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Config.get("snippet_dir")&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Config.get("score_dir")&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Config.get("benchmarkdir")&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Config.get("classifier")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;因此只要寫個簡單的 Python Script 去掃所有的程式碼, 看看出現同樣 String Pattern "Config.get" 的是哪些部分, 然後把所有的 Attributes 值重建就好了.&lt;br /&gt;&lt;br /&gt;當然, 這流程只對結構簡單的設定檔案會有用, 略為複雜的就不太可能成功, 或是需要更複雜的演算法幫助, 例如 Apache httpd.conf 那種 = =&lt;br /&gt;&lt;br /&gt;不過這個經驗倒是讓我想到一個問題. 假使不考慮這件事情的複雜度跟需要花費的時間, &lt;span style="font-weight: bold;"&gt;是否只要有 Program Logic (Source Code), 就一定可以反推出任何該 Program Logic 所會取用的 External File / Data Source 的最基本 Structure ? ( 最基本 = 使該 Program Logic 可以運作 )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;這問題是否等同於, 只要我們確定兩個 Components 之間能夠進行溝通, 且必會進行持續溝通, 我們就一定能夠破解溝通的內容 ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-233562700307437939?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/233562700307437939/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=233562700307437939' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/233562700307437939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/233562700307437939'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/11/recovering-missing-simple-configuration.html' title='Recovering A Missing Simple Configuration File'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_BkTUsTLwHTo/TNb0BqDUDsI/AAAAAAAAEag/ItoUSkFUCn0/s72-c/g3867.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-1163490996547514594</id><published>2010-10-30T21:10:00.024+08:00</published><updated>2010-10-31T01:35:22.267+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='image processing'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Tool'/><title type='text'>Graph Cut Image Segmentation with A Center ( Star Shape Prior )</title><content type='html'>在找某種 Tool 的過程中發現這個有趣的工具: &lt;a href="http://code.google.com/p/segmentationgraphcut/"&gt;Segmentation Graph Cut&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;它事實上是這篇 Paper 內容的實作:&lt;br /&gt;&lt;br /&gt;Olga Veksler, "&lt;span style="font-weight: bold;"&gt;Star Shape Prior for Graph-Cut Image Segmentation&lt;/span&gt;," European Conference on Computer Vision, pp.454-467, 2008&lt;br /&gt;&lt;br /&gt;雖然 Google Code 頁面上沒有明寫, 不過猜 Project Owner 就是作者本人. 因為 Tool 裡面包含的 Samples 跟 Paper 內容的範例圖都一樣, 同時如果你從 SVN 上 Check-out, 而不是只抓 Binary 的話, 會發現 Repository 裡面還有兩篇相關的 Paper PDF, 如果不是自己有版權, 應該不至於敢直接放到 Repository 裡面吧.&lt;br /&gt;&lt;br /&gt;Anyway, 這篇 Paper 跟這個 Tool 的重點很單純, 就是要把所謂的 Star Shape 加到利用 Graph Cut 作 Image Segmentation 的方法中. 至於所謂的 Star Shape, 採用 Paper 中的定義:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;A &lt;span style="font-style: italic;"&gt;star&lt;/span&gt; shape is defined with respect to a center point &lt;span style="font-style: italic;"&gt;c&lt;/span&gt;. An object has a star shape if for any point &lt;span style="font-style: italic;"&gt;p&lt;/span&gt; inside the object, all points on the straight line between the center &lt;span style="font-style: italic;"&gt;c&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;p&lt;/span&gt; also lie inside the object.&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;如果用圖來舉例解釋的話, 大概是像下面的 (a) 不管怎樣裡面的任一點都可以做為 Center &lt;span style="font-weight: bold; font-style: italic;"&gt;C&lt;/span&gt;, (b) 只有部分的點可以做為 Center &lt;span style="font-weight: bold; font-style: italic;"&gt;C&lt;/span&gt;, 因為有些點無法讓 &lt;span style="font-weight: bold; font-style: italic;"&gt;P&lt;/span&gt; 的條件符合, (c) 不管哪裡都不存在 Center &lt;span style="font-weight: bold; font-style: italic;"&gt;C&lt;/span&gt; 可以讓 &lt;span style="font-weight: bold; font-style: italic;"&gt;P&lt;/span&gt; 的條件符合.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkTUsTLwHTo/TMwqqQAjjRI/AAAAAAAAEYk/YN5B7ZDTOTk/s1600/g4134.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 131px;" src="http://3.bp.blogspot.com/_BkTUsTLwHTo/TMwqqQAjjRI/AAAAAAAAEYk/YN5B7ZDTOTk/s400/g4134.png" alt="" id="BLOGGER_PHOTO_ID_5533844947471666450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;其中 (a) (b) 的情況都符合 Star Shape 的定義.&lt;br /&gt;&lt;br /&gt;工具的 Binary Release 本身需要 Visual Studio 2008 的一些 Libraries, 我在 Windows 7 沒法安裝, 直接從 SVN 抓下來 SRC, 裡面有 C++ Code ( 尚不清楚實際用途 ) 跟作為 GUI 的 Python Code. 直接利用 GUI.py 執行極可.&lt;br /&gt;&lt;br /&gt;請注意會需要 wxPython 跟 Psyco, 沒有的話會要安裝才能繼續執行.&lt;br /&gt;&lt;br /&gt;工具目的單純所以容易操作. 載入圖片後利用滑鼠在圖片上指定 C 跟 P. 左鍵 Click 兩下會出現藍色點是 &lt;span style="font-weight: bold; font-style: italic;"&gt;C&lt;/span&gt;, 一下的話會出現黃色點是 &lt;span style="font-weight: bold; font-style: italic;"&gt;P&lt;/span&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BkTUsTLwHTo/TMw8ydJycVI/AAAAAAAAEYs/Eg6BG3alt7s/s1600/graph-cut-01.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 254px;" src="http://2.bp.blogspot.com/_BkTUsTLwHTo/TMw8ydJycVI/AAAAAAAAEYs/Eg6BG3alt7s/s400/graph-cut-01.png" alt="" id="BLOGGER_PHOTO_ID_5533864879648305490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;我本來以為會以 P 作為切割邊線的決定條件的, 但看來不是這樣, 像上圖那樣標記, 最後還是會抓到整朵花 (右下的紅框是結果, 是我額外貼上去的, 工具本身是會呼叫你的看圖程式去開結果圖). 但是如果舉個極端一點的例子, 像是這樣:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/TMw9q6l2DqI/AAAAAAAAEY0/8wdH_-6w95E/s1600/graph-cut-02.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 254px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/TMw9q6l2DqI/AAAAAAAAEY0/8wdH_-6w95E/s400/graph-cut-02.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5533865849623285410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;基本上還是會割到 Boundary 為止, 我猜跟裡面用到的 Graph Cut 演算法有關. 不過我的 Image Processing 只有到基本的傅立葉程度 = = , 這個就沒法猜了.&lt;br /&gt;&lt;br /&gt;當然 Title 寫 With &lt;span style="font-weight:bold;"&gt;A Cente&lt;/span&gt;r 是有理由的...&lt;br /&gt;&lt;br /&gt;在一般的情況下, 只要標記上 C, 不用 P 也是可以抓到, 像是這樣:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/TMw-_mAstWI/AAAAAAAAEY8/UiHKS5rmrnQ/s1600/graph-cut-03.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 254px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/TMw-_mAstWI/AAAAAAAAEY8/UiHKS5rmrnQ/s400/graph-cut-03.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5533867304387655010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;而且運算時間算是蠻快的, 扣掉開啟看圖程式的時間, 可以直接把結果接到工具畫面輸出的話, 應該是幾乎到無感的程度吧. &lt;br /&gt;&lt;br /&gt;很有趣, 改天有空再來從 Python GUI 研究看看是不是可以直接使用裡面的 Kernel Function, 接到別的程式上.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-1163490996547514594?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/1163490996547514594/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=1163490996547514594' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1163490996547514594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1163490996547514594'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/10/graph-cut-image-segmentation-with.html' title='Graph Cut Image Segmentation with A Center ( Star Shape Prior )'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BkTUsTLwHTo/TMwqqQAjjRI/AAAAAAAAEYk/YN5B7ZDTOTk/s72-c/g4134.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-2388163339161237465</id><published>2010-10-28T16:28:00.030+08:00</published><updated>2010-10-28T19:57:44.518+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data and knowledge engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='system and software analysis'/><title type='text'>That's Not What I Sent</title><content type='html'>其實這是上週的事情了, 只是很忙沒空寫下來.&lt;br /&gt;&lt;br /&gt;上週在忙的事情,  其中一件是要開始電機系網站, 教授資料部分的 Data Migration. 因為目前的網站在教師資料部分, 超過 90% 的資料比例是用 HTML 網頁方式保存的, 不是用 Database 保存資料. 加上新網站是計算機中心統一跟外面的公司購買, 資料庫系統跟格式都大不相同, 對方也沒有 Migration 的服務 ( 就算有計中應該也不會想付這錢 ), 變成要人工去做. 不過這不是重點啦~&lt;br /&gt;&lt;br /&gt;因為資料量太多了, 而且每個教授的資料維護本來就不是我們負責的工作, 所以就乾脆提前開放教師帳號, 給每個教師的工讀學生去處理 Data Migration.&lt;br /&gt;&lt;br /&gt;開放帳號, 當然就是要寄出帳號跟密碼啦~ 這時候就發生了此篇的重點事件, 有位同學 ( 幫某教授更新資料的, 簡單說就是新網頁系統的&lt;b&gt;一般使用者&lt;/b&gt;之一 ) 打了分機電話過來詢問:&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;信件裡面的密碼有一部分變成笑臉男了, 怎麼辦 ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkTUsTLwHTo/TMliA7606DI/AAAAAAAAEYI/fOa_sYNFLq4/s1600/g2948.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 273px; height: 50px;" src="http://3.bp.blogspot.com/_BkTUsTLwHTo/TMliA7606DI/AAAAAAAAEYI/fOa_sYNFLq4/s400/g2948.png" alt="" id="BLOGGER_PHOTO_ID_5533061385425315890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;沒有啦, 怎麼可能真的變成笑臉男, 這樣就變成 Security 的問題了. 其實只是變成一個驚訝臉的表情符號 ( 找不到完全一樣的, 用類似的替代 ).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BkTUsTLwHTo/TMliPrfEg3I/AAAAAAAAEYQ/nxXDLLZC9gg/s1600/g6041.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 273px; height: 47px;" src="http://2.bp.blogspot.com/_BkTUsTLwHTo/TMliPrfEg3I/AAAAAAAAEYQ/nxXDLLZC9gg/s400/g6041.png" alt="" id="BLOGGER_PHOTO_ID_5533061638711968626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;沒記錯的話, 該同學用的 Mail Client 是 Outlook 的樣子. 然後他不知道原來 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;8o 會變成表情符號&lt;/span&gt;, 所以也無法自行 Decode 回去 ( 其實我也不知道 @@ ), 原本的密碼應該是 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;8#fdt8o&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;這問題有趣在於,&lt;br /&gt;&lt;br /&gt;1. 這不是因為 Security Leak 產生的問題&lt;br /&gt;2. Software 沒有錯, 也提供了調整或關閉的方法&lt;br /&gt;3. 收信者不知道其實他有能力讓 Software 呈現正確的訊息&lt;br /&gt;4. 收信者無法自行在腦中作 Decoding&lt;br /&gt;5. 寄信者在收信者沒有 Feedback 前, 完全不會知道這問題的發生. 當然, 也無法預知會有這個問題.&lt;br /&gt;&lt;br /&gt;不知道如果從 Sender 端跟 Receiver 端分別考量這個問題, 是不是可以解決. 這樣的問題應該不只存在於 Mail System 中. 更加極端地說, 這是系統中不同 Components 之間的 Trustworthiness 問題. (下圖大小很難調, 不管了, 請將就)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/TMljXLBBQHI/AAAAAAAAEYc/pVbCffS02LE/s1600/g2954-2-1-06.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 101px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/TMljXLBBQHI/AAAAAAAAEYc/pVbCffS02LE/s400/g2954-2-1-06.png" alt="" id="BLOGGER_PHOTO_ID_5533062866946572402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;在 Receiver 端要提供更加 User Friendly 的 Active Configuration Notification, 而不是倚賴 Receiver 的使用能力. 而在 Sender 端則是提供 Active Warning 的服務, 類似 Automatic Spelling Check. 不過要做到這些, 其實有許多附加的問題要解決, 不知道是否有更簡單的解決方法呢 ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-2388163339161237465?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/2388163339161237465/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=2388163339161237465' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2388163339161237465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2388163339161237465'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/10/thats-not-what-i-sent.html' title='That&apos;s Not What I Sent'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BkTUsTLwHTo/TMliA7606DI/AAAAAAAAEYI/fOa_sYNFLq4/s72-c/g2948.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-5535038883686770077</id><published>2010-10-15T10:53:00.020+08:00</published><updated>2010-10-15T20:41:37.042+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Tool'/><title type='text'>Know both Design Abstraction and Implementation Detail ever Resourceful</title><content type='html'>為了取這個標題, 還特地去查某句成語的英文一般都怎麼說 XD&lt;br /&gt;&lt;br /&gt;昨天在處理實驗室 MoinMoin Wiki 出現的一個奇怪的問題. 某個特定頁面只要進行瀏覽, 就會導致 MoinMoin 整個 Crash, 一點 Process 也不留. 自然, 直覺就是該頁面內容有什麼奇怪的東西, 或是內容在磁碟上有毀損, 導致 MoinMoin 讀到該頁面內容就會出現 Exception 而掛掉.&lt;br /&gt;&lt;br /&gt;但是在想要近一步去檢視該頁內容是, 猛然發現, 其實我不知道 MoinMoin 是怎樣處理 Page Data 的. 我既不知道 Page Data I/O 的部份在哪, 也不知道 Page Data 平常是保存在哪.&lt;br /&gt;&lt;br /&gt;本來, 閉著眼睛也可以大概畫出一般 Wiki System 的 Architectural Design Abstraction, 主要的 Components 有哪些, 各自的責任也清楚. 但是單知道這些對我現在要解決問題幫助卻不是很大.&lt;br /&gt;&lt;br /&gt;作為一個在唸 Ph.D. Program 的 Programmer, 這樣的事情真的是很不應該的, 但是還是發生了, 因此特別寫下這個標題--雖然別人看來可以摸不著頭緒--來警惕一下自己.&lt;br /&gt;&lt;br /&gt;幸好簡單查一下 MoinMoin 的資料, 馬上就看到 MoinMoin 在 Data 的保存上十分簡單, 直接利用現成的 File System 作儲存而已. 這樣一來馬上補足了在 Data Repository 部份的一些細節, 也就一下子找到 Page Data.&lt;br /&gt;&lt;br /&gt;MoinMoin 的 Page Data 存放在 &lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;&lt;b&gt;/data/pages/&lt;/b&gt;&lt;/span&gt; 中 ( 實驗室的資料比較敏感, 以下用電機系網路服務使用手冊 Wiki 作例子  ),&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/TLg4h9lCNaI/AAAAAAAAEWg/WToIfUqlb84/s1600/moin-03.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 500px; height: 309px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/TLg4h9lCNaI/AAAAAAAAEWg/WToIfUqlb84/s400/moin-03.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5528230698714019234" /&gt;&lt;/a&gt;&lt;br /&gt;每個頁面直接用 Relative Page Path 作為 Directory Name, 其中 "/" 以及 "-" 之類的就用特殊符號取代, 像是 (2f) 跟 (2d).&lt;br /&gt;&lt;br /&gt;在每個頁面的 Directory 之下, 有幾個主要的檔案跟資料夾, 名稱一看就很清楚, 不一一加註, 只舉頁面內容來說, &lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;&lt;b&gt;current&lt;/b&gt;&lt;/span&gt; 檔案紀錄目前的版本, 而 &lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;&lt;b&gt;revisions&lt;/b&gt;&lt;/span&gt; 資料夾裡面存有所有的歷史頁面資料. 因此實際的頁面資料是存在 &lt;b&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;revisions&lt;/span&gt;&lt;/b&gt; 資料夾裡的, 把每個頁面 cat 出來就很清楚了.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/TLhDHjxk1TI/AAAAAAAAEWw/3rFcJ0UOkL0/s1600/moin-04.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 500px; height: 225px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/TLhDHjxk1TI/AAAAAAAAEWw/3rFcJ0UOkL0/s400/moin-04.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5528242339738604850" /&gt;&lt;/a&gt;&lt;br /&gt;從這點也可以看出來, 其實大量頻繁的網頁修改, 在 MoinMoin 系統中是很吃硬碟資源的.&lt;br /&gt;&lt;br /&gt;知道 MoinMoin 資料存放的細節後就更有趣了.&lt;br /&gt;&lt;br /&gt;目前手上有些給實驗室用的小東西, 過去不是很清楚要怎樣把其輸出直接送到實驗室的 MoinMoin Wiki, 這樣一來其實可以直接在 File System Level 作手腳. 繞過 MoinMoin 本身, 直接輸出到 Data Repository 中, 只要內容格式符合 MoinMoin 語法, 跟 Revision History 等 Meta-data 有正確的填寫, 就能夠被 MoinMoin 讀取, 出現在 Wiki 頁面系統上了.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/TLhLSE-5ceI/AAAAAAAAEW4/8r1ZURCgNXo/s1600/moin-05.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 500px; height: 138px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/TLhLSE-5ceI/AAAAAAAAEW4/8r1ZURCgNXo/s400/moin-05.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5528251316544565730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Know both Design Abstraction and Implementation Detail ever Resourceful.&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;我要把這句印出來貼在座位旁 :p&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-5535038883686770077?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/5535038883686770077/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=5535038883686770077' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5535038883686770077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5535038883686770077'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/10/know-both-design-abstraction-and.html' title='Know both Design Abstraction and Implementation Detail ever Resourceful'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BkTUsTLwHTo/TLg4h9lCNaI/AAAAAAAAEWg/WToIfUqlb84/s72-c/moin-03.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-688048798910855640</id><published>2010-10-09T23:40:00.017+08:00</published><updated>2010-10-10T01:50:01.144+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='mandriva'/><title type='text'>Play Sound using Virtual MIDI Piano Keyboard</title><content type='html'>其實主要步驟只要照著 Compdigitec Labs 的這篇 &lt;a href="http://www.compdigitec.com/labs/2009/10/04/virtual-midi-keyboard-in-ubuntu/"&gt;Virtual MIDI Keyboard In Ubuntu&lt;/a&gt; 作即可.&lt;br /&gt;&lt;br /&gt;不過實際上在我的系統上有些微的不同. 因為對整個 Sound System 不熟悉, 沒有辦法理解是怎麼回事, 姑且記下來當作 "&lt;b&gt;這樣設定也可以&lt;/b&gt;" 看吧.&lt;br /&gt;&lt;br /&gt;先記一下安裝的部份, 共需要 ( Package Name 以 Mandriva 2010.1 上的為準 ) :&lt;br /&gt;&lt;br /&gt;1. qjackctl ( JACK Audio Connection Kit )&lt;br /&gt;2. zynaddsubfx (&lt;a href="http://zynaddsubfx.sourceforge.net/"&gt; ZynAddSubFx&lt;/a&gt; )&lt;br /&gt;3. vmpk ( Virtual MIDI Piano Keyboard )&lt;br /&gt;&lt;br /&gt;其中 vmpk 是要作為虛擬 MIDI 鍵盤的主介面. 雖然後來發現 ZynAddSubFx 也有虛擬鍵盤介面, 但是變更 Keyboard Map 設定跟其他各種設定上, 感覺 vmpk 比 ZynAddSubFx 來的方便.&lt;br /&gt;&lt;br /&gt;而 qjackctl 是 Connection 控制器,  負責把 vmpk 作為前端介面, 輸出的 MIDI 資料導引到 ZynAddSubFx, 再到實體的音效硬體/音效卡作播出. 因為 vmpk 本身其實就是單純的虛擬鍵盤子系統, 因此到實際播出前需要 Synthesizer 幫忙處理合成. ZynAddSubFx 在這裡就當作 Synthesizer 使用.&lt;br /&gt;&lt;br /&gt;接著作 limits.conf 設定,&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;sudo su -c '&lt;/span&gt;&lt;/b&gt;&lt;b&gt;echo @audio - rtprio 99 &gt;&gt; /etc/security/limits.conf&lt;/b&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;b&gt;'&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;b&gt;sudo su -c '&lt;/b&gt;&lt;/span&gt;&lt;b&gt;echo @audio - memlock 250000 &gt;&gt; /etc/security/limits.conf&lt;/b&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;b&gt;'&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;b&gt;sudo su -c '&lt;/b&gt;&lt;/span&gt;&lt;b&gt;echo @audio - nice -10 &gt;&gt; /etc/security/limits.conf&lt;/b&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;b&gt;'&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;把系統 reboot 後重新開啟 qjackctl, 並利用 "Start" 按鈕開啟 JACK server ( jackd ). 這時候如果遇到開啟失敗的訊息, 請利用 Messages 按鈕看錯誤訊息. 如果是 server 啟動失敗, 請把 ALSA 重新啟動試試看. ( alsa command 的位置可能根據系統有所不同 )&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;sudo su -c '&lt;/span&gt;/etc/init.d/alsa force-reload&lt;/b&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;&lt;b&gt;'&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;啟動沒問題的話, 開啟 ZynaddSubFx 以及 vmpk, 然後利用 Connect 按鈕設定上面說的, 從 vmpk 到 ZynaddSubFx 再到音效裝置的 Connections.&lt;br /&gt;&lt;br /&gt;照 Compdigitec Labs 的文章中之示範, 音效卡代號應該會出現在 ALSA 分頁中, 但是我的沒有 ^^b, 所以先只有把 vmpk 的 Output 接到 ZynaddSubFx. 接上的方法很簡單, 用滑鼠把 vmpk Output 拉到 ZynaddSubFx 上放開即可.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkTUsTLwHTo/TLCneJZcMVI/AAAAAAAAEWI/-LyhkpH4tFg/s1600/vmpk-01.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 275px;" src="http://3.bp.blogspot.com/_BkTUsTLwHTo/TLCneJZcMVI/AAAAAAAAEWI/-LyhkpH4tFg/s400/vmpk-01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5526100879144137042" /&gt;&lt;/a&gt;&lt;br /&gt;而 ZynaddSubFx  到音效裝置間的連結, 則是改在 Audio 頁面中搞定. 其中 playback 1 是左聲道, playback2 是右聲道, 其他的在我系統中無作用.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/TLCoIyGq_vI/AAAAAAAAEWQ/JFiVcHO52Kg/s1600/vmpk-02.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 189px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/TLCoIyGq_vI/AAAAAAAAEWQ/JFiVcHO52Kg/s400/vmpk-02.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5526101611625774834" /&gt;&lt;/a&gt;&lt;br /&gt;這樣設定完就 OK 了~, 把視窗 Focus 移到 vmpk 上面, 對應的鍵盤按下去就可以看到琴鍵變化, 以及發出 MIDI 音效. 在 ZynaddSubFx 視窗中也會有對應的變化.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkTUsTLwHTo/TLCpKVlnHbI/AAAAAAAAEWY/eX0iNUh0-fo/s1600/vmpk-03.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 206px;" src="http://3.bp.blogspot.com/_BkTUsTLwHTo/TLCpKVlnHbI/AAAAAAAAEWY/eX0iNUh0-fo/s400/vmpk-03.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5526102737842281906" /&gt;&lt;/a&gt;&lt;br /&gt;其實當焦點移到 ZynaddSubFx 上也是可以有同樣的反應. 不過如上所述 vmpk 較占優勢的理由, 本篇還是以 vmpk 作為 Front-End 為主.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-688048798910855640?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/688048798910855640/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=688048798910855640' title='5 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/688048798910855640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/688048798910855640'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/10/play-sound-using-virtual-midi-piano.html' title='Play Sound using Virtual MIDI Piano Keyboard'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BkTUsTLwHTo/TLCneJZcMVI/AAAAAAAAEWI/-LyhkpH4tFg/s72-c/vmpk-01.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-3314247592840056890</id><published>2010-10-06T23:52:00.015+08:00</published><updated>2010-10-07T00:34:50.357+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming learning'/><title type='text'>最初學 Programming 時的作業樂趣</title><content type='html'>正在看一篇跟 Code Readability 相關的 Paper, 不知怎忽然想起大一剛進成大電機時, 學 Programming 的作業...&lt;br /&gt;&lt;br /&gt;當然, 當時我學 Programming 與其說是上計概課學的, 不如說是自己學 + 認識的資工學長作榜樣居多, 但是書本上的練習跟上課的練習還是有差, 特別是你不想端出去的作業比別人差, 而且我們的計概課也不是一般呼嚨用的計概課.&lt;br /&gt;&lt;br /&gt;我印象深刻的是一個 Hanoi Tower 的作業. 說到 Hanoi Tower, 其實我國中的時候就用數學的角度解過這個問題了, 但是寫程式是另外一回事. 稍微熟悉的人應該都知道, Hanoi Tower 是練習 Recursion 的基本入門題之一. 但是該作業有趣的是, 附帶了一個額外的加分題: 請用 Non-Recursive 的方式寫出解 Hanoi Tower 的程式 (當然, 要 step-by-step 輸出).&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;* 其實這題目有些書在 Recursive 章節後面也會加. 只是小大一是不會主動去看後面的練習作業題的 XD&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://mth487f08.files.wordpress.com/2008/06/tower_of_hanoi.jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 564px; height: 248px;" src="http://mth487f08.files.wordpress.com/2008/06/tower_of_hanoi.jpeg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;那時候其實還不太會用 Search Engine, 而且 Google 在台灣也還沒有知名度, 很"傻"地就一頭鑽下去想解法, 以及怎樣寫成 Program, 還附帶要寫成 Document.&lt;br /&gt;&lt;br /&gt;最後當然是有寫出來 ( 還上台介紹 = = 我大學生涯中第一次上台  ), 利用某些規律可以知道在三個 Towers 處在特定的 State 時, 就應該怎樣做 Transition 來到達下一個 State, 並且達到 Optimization. 也當然啦, 當時小大一是不會知道其實我在畫 State Transition Diagram 的 XD&lt;br /&gt;&lt;br /&gt;其實在寫成 Program 以前, 我在找規律以及推導的過程, 本身就是 Programming 最重要的邏輯觀念之一. 可以在憑空找以及運算這些邏輯之中得到樂趣, 是後來可以成為一個積極的 Programmer 最重要的條件之一.&lt;br /&gt;&lt;br /&gt;後來的作業印象中就比較偏向 Application 導向, 例如寫簡單的火車訂票系統之類的. 雖然其中也有很重要且複雜的 Scheduling 問題存在, 但是因為整個系統要考慮的 Functions 變多, 反而重要的 Scheduling 問題對於當時只是程式初學者的人來說, 變得不是那麼重要與有趣.&lt;br /&gt;&lt;br /&gt;直到現在, 可能因為我們 Lab. 的大家習慣以系統角度通盤思考事情, 因此也反映到出給學生的作業上. 現在的作業寫滿整整兩頁 A4 的說明是基本 ( 一次作業一題而已歐 ), 前兩年甚至出現了高達六頁的說明 ( 印象中, 一樣是一次作業而已 ). 而看這作業說明的學生, 大多只是剛上大學, 剛要開始認真接觸 Programming 而已...&lt;br /&gt;&lt;br /&gt;我們不禁應該思考, 這樣的作業美其名可以讓學生提早從整個系統角度思考 Programming, 可以更加貼近真實生活中的應用系統, 但是效果真的有比當初的 Hanoi Tower 好嗎 ? 如果我們並不期許計概課裡的所有學生最後都是一個好的 Software Engineer, 或是都要走 Pure CS 路線, 或許多些 Hanoi Tower 的題目能更引起學生自發的思考, 也更加容易傳遞 Programming 課程每次的教學重點.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-3314247592840056890?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/3314247592840056890/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=3314247592840056890' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/3314247592840056890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/3314247592840056890'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/10/programming.html' title='最初學 Programming 時的作業樂趣'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-1311267629554089896</id><published>2010-09-27T10:27:00.051+08:00</published><updated>2010-10-05T17:26:00.595+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='paper review'/><title type='text'>Proceedings Review of the 5th International Conference on Software Engineering Advances (ICSEA 2010)</title><content type='html'>今年雖然有投上 ICSEA 2010, 但是受限於早先已經申請了到 SEKE 2010 的補助了, 不太方便再跟國科會申請, 只好放棄 Nice 之行, 委託也有投上的另位實驗室同仁代為進行 Presentation.&lt;br /&gt;&lt;br /&gt;不過帶回來的 Proceedings 還是應該掃過一次. 雖然 ICSEA 不算是頂好的 SE Conference, 但是我還蠻喜歡逛這種 Proceedings, 有時候會發現一些不成熟但是有趣, 具啟發性的想法 :)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;1. A. Martin, R. Mazalu, and A. Cechich, ''Supporting an Aspect-Oriented Approach for Web Accessibility Design,'' pp.20-25&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Software GUI Design 事實上從 70 年代以來就沒有公認的 Process. 雖然期間曾經有一段時間出現了各種 Methodology, 也有類似於 OO 分析的方法出現, 但是始終對於應該在何時開始考量 GUI, 中間的 A/D/P Process 與 Application 本身的 A/D/P Process 關係, 以及後續的 Maintenance 議題, 沒有一個串起來的發展系統. 而 Web GUI Design 近年來的思考似乎也漸漸向 Conventional Applications 靠齊... 除了看起來 Style 不太一樣, 其實操作模式都跟 Conventional Applications 很類似. 如果我們把 Browser 換成一般的 Client-side Interface, 似乎就也沒什麼兩樣. 我倒是很期待看到 Web GUI Design, 或是討論 Accessibility 議題是, 如果針對 "&lt;b&gt;User 使用同樣的 Client-side Interface (Browser) 來看所有的 Web Applications&lt;/b&gt;'' 這點作討論的話, 會出現什麼樣的 Papers.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;&lt;b&gt;2. H. P. Breivold, D. Sundmark, P. Wallin, and S. Larsson, ''What Does Research Say About Agile and Architecture ?'' pp.32-37&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;我對於這篇的 Summary 不太意外, 因為整篇直接嘗試把 Agile 對於 Architecture 的影響在不限定 Context 的情況下去評估, 本身很可能得不到任何有意義的結論. 對我來說 Agile 其實是不適合直接跟其他的 Paradigms 去比的. 更進一步來說, 大部分的 Paradigms 都有它最適合的使用情境, 硬是要拉在一起比意義不大. 比較重要的是, Managers / Developers 是否可以在適當地時候得到該使用哪種 Paradigms 最有利的建議. 以這篇來說, 如果可以鎖定目前最常使用 Agile Paradigm 的開發情境, 再歸類此情境下最常被採用的 Architecture Design 類型, 再來作討論會比較有意義.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;3. M. Basdavanos and A. Chatzigeorgiou, ''Placement of Entities in Object-Oriented Systems by Means of Single-Objective Genetic Algorithm,'' pp.70-75&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;這篇讓我想到五年前在實驗室的一個沒有完成的計畫. 該計畫的其中一個觀念就是把 Use Cases 當作 Capabilities 的集合來分析, 所有的 Objects 事實上是 Capabilities 的 Distribution. 這樣做的目的很抱歉無法在這裡說明...畢竟這是個不知道什麼時候會活起來的計畫. 不過可以理解在這篇裡面嘗試把所有的東西都打散, 不要依照直覺與經驗式的去找出 Objects 的想法. 但是在此之前的前端分析方法 Papers 中沒有明說...我覺得這對這篇 Paper 的 Justification 還挺重要的. 另外值得注意的是 Second Author 是 &lt;a href="http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/c/Chatzigeorgiou:Alexander.html"&gt;Alexander Chatzigeorgiou&lt;/a&gt;, 他跟 Nikolaos Tsantalis 的幾個 Works 真是令人印象深刻, 也讓我對這篇的下一步充滿期待阿...&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;&lt;b&gt;4. M. Gebhart, M. Baumgartner, and S. Abeck, ''Supporting Service Design Decisions,'' pp.76-81&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;這篇左看右看總覺得, 跟 OO 的某部份分析方法好像阿(笑), 只不過一些關鍵字, 像是 Class, Coupling, Metrics, 沒有被拿出來, 也沒有被 Formalize 就是了. 我想, Service-Oriented Computing 跟 Functional Paradigm 以及 OO Paradigm 之間的關係, 應該在未來的兩年內就會很明朗了, IEEE TSE 上已經開始有 Paper 表明立場了...&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;&lt;b&gt;5. H. Kaindl, J. Falb, S. Melbinger, and T. Bruckmayer, "An Approach to Method-Tool Coupling for Software Development," pp.101-106&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;因為這個方向, 實驗室也有一個延續性的計畫方向在做, 不便評論太多, 但是這個題目很實用也很有趣. 簡單來說, 現在的 Software Process/Paradigms 越來越多, 裡面要做的事情越來越細也越明確, 但是又不是每個細項都要在每一次的 SDLC 中被作到. 另一方面, 不管是 Commercial 或 FLOSS 的"工具"也越來越多, 同時各項工具目的用途有重疊也有相異, 有些共享標準有些沒有. 好的工具很重要, 如何知道根據工作選與使用好的工具更加重要... 大概就是這樣的問題.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;&lt;b&gt;6. M. Y. Santos and R. J. Machado, "On the Derivation of Class Diagrams from Use Cases and Logical Software Architectures,,," pp.107-113&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;從 Use Case Diagram 到 Class Diagram 的自動生成也是一個老問題了, 近幾年來幾乎沒有什麼新的東西出現, 主要還是這技術本身有 Accuracy, Reliability 的問題在, 連帶影響 Efficiency &amp;amp; Effectiveness... 太小的系統用處不大, 太大的系統又沒人敢/有必要用. 不過這篇 Paper 倒是提供了另外一個角度的思考: 如果在 Transformation 過程中, 加入了 Domain-Specific 的 Constraints 進去, 是否會讓這個技術有 "轉換" 之外的價值產生 ?&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;&lt;b&gt;7. K. Popovic, Z. Hocenski, and G. Martinovic, "Do the Software Architects get the Need Support for the Job They Perform ? pp.123-128&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;這篇我只對最後一個整理出的 "What Architects Do and What They Need" 表格有興趣. 要我自己整理可能都要花個幾天想想.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;&lt;b&gt;8. S. Gunther, M. Haupt, and M. Splieth, "Agile Engineering for Internal Domain-Specific Languages with Dynamic Programming Languages," pp.162-168&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;我覺得這篇還不錯, 從務實的的角度把 "大家其實都是這樣作 DSL 的", 以及 "這樣作 DSL 比較會有人用" 給整理出來. 其實 Domain-Specific Language 可以說無時無刻都存在, 只是透過 Formalization / Standardization, 以 Language 的角度作整理, 才能有效地利用/重利用. 而建立於既有的 Programming Languages 之上, 可以省去建立 Compiler 的麻煩, 同時如果跟自家產品用同一種 PL 就有更多 Traceability Management 上的好處. 不過現有的 Dynamic Programming Languages 在被利用來建立 DSL 的侷限性, 例如適用的 Domains 等等, 似乎還是一個未知的問題 ?&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;&lt;b&gt;9. S. C. de B. Sampaio, E. A. Barros, G. S. de A. Junior, M. Jose, C. e Silva, and S. R. de L. Meira, "A Review of Productivity Factors and Strategies on Software Development," pp.196-204&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;就只是關於 Productivity Factors 以及 Productivity Improvement Strategies 的整理. 可參考用.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;&lt;b&gt;10. M. Breu, R. Breu, and S. Low, "Living on the MoVE: Towards an Architecture for a Living Models Infrastructure," pp.290-295&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;我只能說, 有夢最美阿... 基本上有統一的 MetaModel. 以及不斷被建立的 Adapters 當然是很理想. 問題是一個不需要時常被更新的 MetaModel, 勢必造成不同 Models 之間的實質差異性會很大, 這樣的話能夠透過 Adapter 去解析與管理不同 Models 的能力就變低. 退一步來說, 在 Programming Languages 的轉換問題上, 也曾經造成一陣子的風潮, 但是現在幾乎沒有看到人在談了, 取而代之的是從根本建立一個共通的中介碼, 然後不同的 Programming Languages 則是根據用途變成不同 "Interfaces" 的感覺. 但是連在 Programming Languages 階段的改變, 實質效益跟使用度/接受度都還沒有明顯的功效之前, 我覺得一下子拉到 System Modeling 的層級還太早.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;11. N. M. Carod and A. Cechich, "Cognitive Profiles in Understanding and Prioritizing Requirements: A Case Study," pp.341-346&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;雖然我認為如 Paper 內所提到, 此篇的 Study 結果也很難被用來佐證在其他 Context 下, 此方法的有效性, 但是 "感覺應該會有效" 卻是很直覺. 要想看到比較大規模的 Case Studies 也許還要等好一陣子, 畢竟這個想法的相關工具跟實驗應用的商業公司數量感覺都還不算多. 同時如何建立 Cognitive Profiles 在不同的應用情境下似乎又是一個不同的問題. 或許把此想法跟 Visual Software Requirements 結合會有意外的發展...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;12. G. Grambow and R. Oberhauser, "Towards Automated Context-Aware Software Quality Management," pp.347-352&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;這篇 Paper 在 Abstract 以及 Solution Approach 一開始所描述的其實是一個 Too Good to Be True 的理想, 貌似我在碩一快結束時提的碩士論文題目也是類似的想法, 而且還包含更多 SDLC 的東西在 Context-Aware 的概念下, 所以我完全可以理解這篇作者的 "偉大願景" :p 很遺憾理想跟事實總是有相當落差... 從 GQM 出發我不認為是個好選擇, 因為 GQM 相當倚賴經驗法則去建立 Model, 要想全自動化需要先建立相當程度的假定 (Assumptions), 而這又會讓 GQM 變得不好用. 從這篇所引用的 Agent-based GQM Papers 全都是出自不太有名的會議論文也可略窺一二.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#FF6600;"&gt;13. C. L. Reis and J. M. Pacheco, "Minimizing CO2 Emissions in a Computing World," pp.395-399&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;跟內文無關, 只因為最後一頁的那張圖 (話說, 內文也沒直接引用到這張圖阿... = =). 這圖很有意思, 最近有個題目的關係, 正在重新思考 Distributed Computing, Grid Computing, 到 Cloud Computing 之間的關係, 跟演進的理由. 這張圖在某個角度上還蠻符合我目前的想法. 這三個名詞都是指不一樣的東西, 雖然核心技術會感覺很像, 但是本來 CS 很多技術都是舊的, 只是當 User &amp;amp; Context 改變了, 想要達到的 Perception 也改變了, 導致最終提供的 Services 也改變了, 此時 Challenges 也不一樣了. 當然, 達到的效果也完全不同.&lt;br /&gt;&lt;br /&gt;覺得比較有意思的, 扣掉自家實驗室的, 大概是這些篇, 因為按照順序看下來, 基本上頁數也是照順序. 在 page 399 之後的覺得有些跟 SE 關係其實較遠了, 有些非常技術性, 就是穩定地建立一個演算法來加強或解決某個具體的問題之類的, 可衍生的想法較少, 就都不記了.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-1311267629554089896?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/1311267629554089896/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=1311267629554089896' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1311267629554089896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1311267629554089896'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/09/proceedings-review-of-5th-international.html' title='Proceedings Review of the 5th International Conference on Software Engineering Advances (ICSEA 2010)'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-5641751029105105506</id><published>2010-09-25T23:22:00.007+08:00</published><updated>2010-09-25T23:44:20.002+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='research'/><title type='text'>"Implicit" Software Engineering Journals</title><content type='html'>因為一些投稿的問題, 最近這週花時間把成大電通所的期刊點數清單掃過一次, 除卻清單本身錯誤百出之外, 倒是發現一些看起來不是直接跟 Software Engineering 相關, 但是其 Aim &amp;amp; Scope 有提到 Software Engineering 研究其實也可以投稿的期刊.&lt;br /&gt;&lt;br /&gt;一般 Software Engineering 領域比較常見相關的 IEEE TSE, ACM TOSEM, SIGSOFT Soft. Eng. Notes, IEEE Softw., Comm. of ACM, ASE, JSS, IST, SP&amp;amp;E, Journal of Softw. Maintenance and Evolution, Software Quality Journal, Empirical Software Engineering 之外, 間接相關的也有 IEEE ToSC, IEEE TKDE 等等.&lt;br /&gt;&lt;br /&gt;然後再扣除一些需要付費的 Journals (每頁付費或是 Free-of-Charge 的頁數過少), 例如 IJSEKE 以及 Intl. Journal of Computer Applications in Technology 之類的, 目前找到的還有以下幾個:&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://www.palgrave-journals.com/jit/about.html"&gt;Journal of Information Technology (JIT)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;因為此期刊我在成大無法取得所有全文瀏覽, 就 Sample Articles 來看, 此期刊偏向 Management 議題(特別是對於人的), 對於一般 Software Engineering Group 來說, 可能適合的主題包含: (1) Software, Middleware, Framework, Software Visualization Designed for Management (2) The Management of Customers, Stakeholders or Development Groups (3) Social Network Analysis in Software Domain&lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://www.inderscience.com/browse/index.php?journalID=5&amp;amp;year=2004&amp;amp;vol=20&amp;amp;issue=4"&gt;International Journal of Computer Applications in Technology (IJCAT)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;就 Sample Articles 來看, IJCAT 在 Software Engineering 領域似乎沒有特別的偏好. 包含 Software Process, Design Models, Architecture Design, AOP 等等主題都有. 但是比較特別的是, 在內容上比較沒有看到 Tool Screenshot 形式的實物說明圖. 都是以示意圖, 範例圖或是架構圖居多. 另外也較少看到冗長的數據及驗證分析.&lt;br /&gt;&lt;br /&gt;3.&lt;a href="http://comjnl.oxfordjournals.org/"&gt; The Computer Journal&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;此期刊收納的 Computer-related 主題相當廣. 在 Software Engineering 領域的文章在 2001~2007 年不多, 但是 2007 年以後變多, 跟 Software Engineering 相關的文章數量占了 2001 ~ 2010 July 的近 80% 的量. 其中類別如上所述, 較少看見 Empirical Study, Quality Evaluation, Stakeholder Management, Requirement Analysis 等等的主題. 但是也或許是因為目前此期刊在 Software Engineering 領域收納的文章還不夠多所致...&lt;br /&gt;&lt;br /&gt;4. &lt;a href="http://www.elsevier.com/locate/advengsoft"&gt;Advanced in Engineering Software&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;此期刊著重在工程領域的軟體創新, 但是也有些許論文屬於上述的類別, 講述 OO 在協助解決特定領域的軟體開發問題. 通常 Paper 內會含有重要的分析設計等等... 實驗室若有在對外合作的計畫中, 例如醫療, 智慧家庭或其他具有工程特性的領域, 有利用 OO 進行開發, 可以考慮投稿到此&lt;br /&gt;&lt;br /&gt;5. &lt;a href="http://www.acs.org.au/jrpit/"&gt;Journal of Research and Practice in Information Technology (formerly Australian Computer Journal)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;雖然說在 Aim and Scope 裡也明列了 Software Engineering, 但是事實上自 2005 年之後, 嚴格來說只有 4 篇跟 SE 有直接相關, 且分散在不同的主題. 好消息是對於 SE 的主題沒有偏好, 壞消息是 SE 的直接相關論文實在太少, 況且是在澳洲有自己的 SE Conference 情況之下...&lt;br /&gt;&lt;br /&gt;雖然這些 Journals 在一般 Softwar Engineering Community 裡不太會被人提起, 但是從這些期刊原本關注的範圍來看他們各自對 Software Engineering Papers 的偏好以及投稿狀況, 也別有意思. 以上僅限於成大電通所列出點數之部份, 不包含其他學校可能額外列入之 Journals.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-5641751029105105506?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/5641751029105105506/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=5641751029105105506' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5641751029105105506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5641751029105105506'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/09/implicit-software-engineering-journals.html' title='&quot;Implicit&quot; Software Engineering Journals'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-3880194127033184959</id><published>2010-09-21T17:31:00.015+08:00</published><updated>2010-09-21T18:17:21.064+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mandriva'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>To Have More "Replaceable" Distro. is Good</title><content type='html'>剛剛才看到 &lt;a href="http://mageia.org/"&gt;Mageia&lt;/a&gt; 的消息, 忽然驚覺自己的想法也有些轉變.&lt;br /&gt;&lt;br /&gt;在幾年以前, 雖然覺得難度很高, 但是基本上我算是 "統一 Linux 版本" 的隱性支持者. 姑且不論要用什麼方式統一, 例如有單一組織發行標準版, 或是針對 Distro. 架構訂出標準等等. 希望就此解決使用者會感覺混亂, 沒有單一品牌, 不易推廣等等問題.&lt;br /&gt;&lt;br /&gt;但是上個月初, 因為一些誤會, 導致剛安裝好的 Mandriva 2010.1 RC 被我砍掉重裝了. 因為還有工作要完成, 沒有辦法等我慢慢釐清問題, 很不安地先備份資料後選擇重裝 Mandriva 2010.1 Stable. 因為我以前使用的習慣不是很好, 導致每次更新或重新安裝新版本, 在回復過去的工作環境上都需要六個小時或以上的時間.&lt;br /&gt;&lt;br /&gt;但是這次因為距離上次更換為 Mandriva 2010.1 RC 的時間尚短 (不到幾個月), 大部分資料都只存在 /home 裡面, 額外的 Library 也幾乎都是用 Package Manager 安裝的. 因此在重新安裝之後, 再次透過 Package Manager 勾選所有我需要的 Package, 安裝後會動取用 /home 裡面的 Configurations &amp;amp; Profiles, 在一個小時內我就完成了整個安裝 + 幾乎整個環境回復.&lt;br /&gt;&lt;br /&gt;這次的經驗是很好的, 因為我花了很少的時間得到了更新而穩定的系統, 同時我的資料以及各種 Configurations &amp;amp; Profiles 都沒有失去.&lt;br /&gt;&lt;br /&gt;這個完全從使用者角度來看的經驗, 或許反映出是否有統一的版本或架構其實並非重點...&lt;br /&gt;&lt;br /&gt;生物多樣性 -- 版本多樣性很重要, 但是對於使用者來說, 前提是不會因為版本多樣性而造成額外的負擔, 即便是版本多樣性可以帶來任何 Distro. Makers 所宣稱的好處.&lt;br /&gt;&lt;br /&gt;所以什麼 "Domain-Specific", "More Stable", "The Plan of Company"... 一堆理由或許都敵不過 "Replaceable" 的重要性.&lt;br /&gt;&lt;br /&gt;滿足 "Replaceable" 使用者就可以自由地轉換 Distro., 哪怕你的團隊就只發行一個版本的 Distro. , 只要他對於轉換提供&lt;span style="font-weight: bold;"&gt;某種程度以上的保證&lt;/span&gt;, 使用者就可以放心的使用, 不用挑什麼 "穩定長久地發展" 等等...&lt;br /&gt;&lt;br /&gt;人都是不可靠的, Distro. 發展團隊也是. &lt;a href="http://mageia.org/"&gt;Mageia&lt;/a&gt; 也不能保證 Mandriva 的使用者改用他們的 Distro. 就不會在兩三年後被迫改回用 Mandriva 或是其他的 Distro. 以得到比較新版的整合. 相對來說, 如果 &lt;a href="http://mageia.org/"&gt;Mageia&lt;/a&gt; 可以跟我保證, 在某個時間點, 我可以知道轉移其他 Distro. 的 &lt;span style="font-weight: bold;"&gt;"Replaceability"&lt;/span&gt; 有多少, 會是更有意義的保證.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-3880194127033184959?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/3880194127033184959/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=3880194127033184959' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/3880194127033184959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/3880194127033184959'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/09/to-have-more-replaceable-distro-is-good.html' title='To Have More &quot;Replaceable&quot; Distro. is Good'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-589084940720216056</id><published>2010-08-24T13:25:00.003+08:00</published><updated>2010-08-24T13:47:36.096+08:00</updated><title type='text'>神速的 Justin.tv 守門員</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/en/thumb/7/70/Jacobsladderposter.jpg/220px-Jacobsladderposter.jpg"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 171px; height: 251px;" src="http://upload.wikimedia.org/wikipedia/en/thumb/7/70/Jacobsladderposter.jpg/220px-Jacobsladderposter.jpg" alt="" border="0" /&gt;&lt;/a&gt;剛剛在看 Justin.tv 某台播電影, 邊看邊在找電影資訊, 因為 up 主沒放, 然後聊天室也沒人知道. 不過我認得男主角, 很顯然男主角是年輕時的 &lt;a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/Tim_Robbins"&gt;Tim Robbins&lt;/a&gt;, 而且就拍攝手法跟造型來推測, 應該是 &lt;span style="font-weight: bold;"&gt;The Shawshank Redemption&lt;/span&gt; 之前的作品. 這樣一推測其實就很好找了, 沒點幾下就找到是 &lt;a style="font-weight: bold;" href="http://www.imdb.com/title/tt0099871/"&gt;Jacob's Ladder&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;正想把訊息貼到聊天室的時候, BAN !!&lt;br /&gt;&lt;br /&gt;該頻道被 Justin.tv 管理員 ban 掉了...理由應該是因為一分鐘前出現了很短的女性露點畫面 (男主角老婆). Justin.tv 對色情管制還蠻嚴格的.&lt;br /&gt;&lt;br /&gt;不過如此神速, 加上該頻道當時人不多, 而且畫面是電影中的合理出現, 讓我不禁懷疑是因為有人檢舉嗎 ? 還是 Justin.tv 本身會對頻道內容有自動檢測的背景程式在運作 ?&lt;br /&gt;&lt;br /&gt;就我所知的確 Justin.tv 有監測員以及回報的管道, 但是如此多的頻道, 又只是一閃而過的畫面, 在考量由人管理時, 需要聯繫上管理員以及作 double check 的時間, 怎樣也不可能在一分鐘左右就決定 ban 掉頻道, 效率未免太好...&lt;br /&gt;&lt;br /&gt;合理的懷疑是 Justin.tv 有整合截圖跟分析色情畫面的演算法, 作即時的監測. 如果是這樣的話還蠻厲害的...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-589084940720216056?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/589084940720216056/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=589084940720216056' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/589084940720216056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/589084940720216056'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/08/justintv.html' title='神速的 Justin.tv 守門員'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-6235515574051575864</id><published>2010-08-24T12:04:00.008+08:00</published><updated>2010-08-24T12:23:50.096+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software maintenance'/><title type='text'>真是夠了...</title><content type='html'>已經不是第一次了... 今天又作了一個很類似的夢&lt;br /&gt;&lt;br /&gt;什麼時候主管層級會意識到 Process 的重要性, 以及他們的位子在 Process 之中的重要性呢 ? 一個新聘人員的網頁資料新增工作, 照 Process 走是最有效率, 避免出錯, 而且該知道此事件的人都會知道的作法&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkTUsTLwHTo/THNFDkD7VyI/AAAAAAAAERs/hudFb1ooEE4/s1600/g5171.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 253px; height: 174px;" src="http://3.bp.blogspot.com/_BkTUsTLwHTo/THNFDkD7VyI/AAAAAAAAERs/hudFb1ooEE4/s400/g5171.png" alt="" id="BLOGGER_PHOTO_ID_5508822696726320930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;可是偏偏就可以被搞成這樣&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BkTUsTLwHTo/THNF2AFEQXI/AAAAAAAAESM/KCe_nN0cqlg/s1600/g5232.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 272px;" src="http://2.bp.blogspot.com/_BkTUsTLwHTo/THNF2AFEQXI/AAAAAAAAESM/KCe_nN0cqlg/s400/g5232.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5508823563240751474" /&gt;&lt;/a&gt;&lt;br /&gt;其中主管 T 是主導 K 聘任案的幕後推手之一, 但是卻只是草率地轉信丟出去給別人處理. 主管 B 的助理 J 是新找的, 有這麼信任 J 的處理不會丟了自己的顏面 ? 然後主管 D 默默地什麼都還不知道中...&lt;br /&gt;&lt;br /&gt;這就是圖方便責任往外推的做事文化...&lt;br /&gt;&lt;br /&gt;btw, 好像翻個身後還夢到上面六個人裡面有兩個是 IEEE Fellow ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-6235515574051575864?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/6235515574051575864/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=6235515574051575864' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6235515574051575864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6235515574051575864'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/08/blog-post.html' title='真是夠了...'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BkTUsTLwHTo/THNFDkD7VyI/AAAAAAAAERs/hudFb1ooEE4/s72-c/g5171.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-8054654545262251821</id><published>2010-08-14T03:25:00.007+08:00</published><updated>2010-08-14T04:12:48.840+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mandriva'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Picasa 3 Web Connection Failed (Login Failed) on Linux</title><content type='html'>因為重新安裝了新版的 Mandriva, 自然 Picasa 也要重裝 ... 時間過得很快, 沒想到已經有 Picasa 3 beta 了, 鑑於個人對於 Picasa 2 for Linux 的諸多不滿, 自然想試試看 Picasa 3 ...&lt;br /&gt;&lt;br /&gt;結果還是一樣, 到底為什麼 Picasa 要設計成一啟動就不受控制地 Scan 我的所有大大小小資料夾呢 ? 而且介面對於 zh-TW 的支援還是很有問題阿...&lt;br /&gt;&lt;br /&gt;正向上傳去澎湖的一些照片的時候, 又遇到 Web Connection Failed 的問題, 訊息大致是像這樣:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic; font-weight: bold;"&gt;Login failed&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic; font-weight: bold;"&gt;HttpOpenRequest failed (12157) -&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic; font-weight: bold;"&gt;https://www.google.com/accounts/ClientAuth [13]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-weight: bold; font-style: italic;"&gt;.........&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;找了一下 Google, 補上 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;openssl-devel&lt;/span&gt; 的安裝即可解決. 在 Mandriva 2010.1 下的話, 相對就是 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;libopenssl-devel package&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;不過感到奇怪的是, 因為原本 openssl 已經有安裝了, 為什麼 Picasa 還是需要 devel package 呢 ? 如果只是需要 &lt;span style="font-weight: bold;"&gt;libssl.so&lt;/span&gt; 的話, 在 &lt;span style="font-weight: bold;"&gt;openssl/libopenssl package&lt;/span&gt; 裡面應該就已經有了.&lt;br /&gt;&lt;br /&gt;難不成在進行 Web Connection 時, Picasa 會作某些 Compilation 動作 ?&lt;br /&gt;&lt;br /&gt;不過如果仔細去看 /home/user/.google/picasa/3.0/ , 會發現有以下的錯誤訊息:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-weight: bold; font-style: italic;"&gt;fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (10000): STUB&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-weight: bold; font-style: italic;"&gt;fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT 10000&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-weight: bold; font-style: italic;"&gt;fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT 10000&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-weight: bold; font-style: italic;"&gt;err:wininet:NETCON_init trying to use a SSL connection, but couldn't load libssl.so. Expect trouble.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BkTUsTLwHTo/TGWmjmq4c1I/AAAAAAAAEOg/V9NxgqkNEDs/s1600/picasa-openssl-01.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 263px;" src="http://2.bp.blogspot.com/_BkTUsTLwHTo/TGWmjmq4c1I/AAAAAAAAEOg/V9NxgqkNEDs/s400/picasa-openssl-01.png" alt="" id="BLOGGER_PHOTO_ID_5504989250136339282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;從最後一個訊息看起來是因為&lt;span style="font-weight: bold;"&gt;找不到 libssl.so&lt;/span&gt; , 因此再&lt;span style="font-weight: bold;"&gt;回頭去看 Mandriva 2010.1 在 libopenssl 以及 libopenssl-devel 裡面的檔案安裝配置&lt;/span&gt;, 會發現 :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;libopenssl 安裝完只有 /usr/lib/libssl.so.1.0.0&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkTUsTLwHTo/TGWmtWa6iPI/AAAAAAAAEOo/qUfklNmCiTQ/s1600/picasa-openssl-02.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 357px;" src="http://3.bp.blogspot.com/_BkTUsTLwHTo/TGWmtWa6iPI/AAAAAAAAEOo/qUfklNmCiTQ/s400/picasa-openssl-02.png" alt="" id="BLOGGER_PHOTO_ID_5504989417573091570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;而 libopenssl-devel 安裝完會建立 &lt;span style="color: rgb(51, 204, 255);"&gt;/usr/lib/libssl.so&lt;/span&gt; -&gt; &lt;span style="color: rgb(51, 204, 0);"&gt;/usr/lib/libssl.so.1.0.0&lt;/span&gt;&lt;/span&gt;  ( Konsole 配色 XD )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BkTUsTLwHTo/TGWm1mzU2vI/AAAAAAAAEOw/akRHeDiwxb8/s1600/picasa-openssl-03.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 351px;" src="http://2.bp.blogspot.com/_BkTUsTLwHTo/TGWm1mzU2vI/AAAAAAAAEOw/akRHeDiwxb8/s400/picasa-openssl-03.png" alt="" id="BLOGGER_PHOTO_ID_5504989559409400562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;這樣 Picasa 才能夠找到 /usr/lib/libssl.so 而成功進行 Web Connection.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/TGWm8jcrN7I/AAAAAAAAEO4/z03PHA3QsRY/s1600/picasa-openssl-04.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 71px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/TGWm8jcrN7I/AAAAAAAAEO4/z03PHA3QsRY/s400/picasa-openssl-04.png" alt="" id="BLOGGER_PHOTO_ID_5504989678768175026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;所以... &lt;span style="font-weight: bold;"&gt;應該是可以不用安裝 openssl-devel package, 只要自己在 /usr/lib 裡面建立 softlink 到正確的 libssl.so 檔案位置就好&lt;/span&gt;... 不過這只是個人猜測, 懶得移除再嘗試一次了 :p&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-8054654545262251821?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/8054654545262251821/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=8054654545262251821' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/8054654545262251821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/8054654545262251821'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/08/picasa-3-web-connection-failed-login.html' title='Picasa 3 Web Connection Failed (Login Failed) on Linux'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BkTUsTLwHTo/TGWmjmq4c1I/AAAAAAAAEOg/V9NxgqkNEDs/s72-c/picasa-openssl-01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-1104536477167714124</id><published>2010-08-01T13:59:00.025+08:00</published><updated>2010-08-01T17:18:24.796+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mandriva'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Boot and No Screens Found [Solved ... ?]</title><content type='html'>Unfortunately... after a weekend power blackout, my Philips 200WB monitor could not display anymore in X system.&lt;br /&gt;&lt;br /&gt;The booting message on the monitor displays fine, it just got into "SLEEP" mode when the X starts to running, and nothing shows up thereafter.&lt;br /&gt;&lt;br /&gt;Changed the runlevel to 3, and logined in command line to check the log, the &lt;span style="font-weight: bold;"&gt;kdm.log&lt;/span&gt; only says: &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;No Screens Found&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The log message may be correct, but it seems odd to me since I could see all the booting messages before the X starts to run...&lt;br /&gt;&lt;br /&gt;If you google the message "&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;No Screens Found&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt; plus the keywords &lt;span style="font-style: italic; font-weight: bold;"&gt;linux, mandriva, startx&lt;/span&gt;, or whatever, you might found many speculations and possible solutions, such as the corrupted xorg.conf, inconsistent package upgrading, driver problems...&lt;br /&gt;&lt;br /&gt;I had no idea what's going on, but I did make some X system upgrades before the blackout, so I guessed maybe one of the speculations is my problem. Therefore I tried these solutions as people suggested on the web:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;1.&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;depmod -a&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&amp;amp; startx&lt;/span&gt; to see if it works&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;2.&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;XFdrake --experts&lt;/span&gt; to re-configure the xorg.conf ( actually this works the same as &lt;span style="font-weight: bold;"&gt;drakconf&lt;/span&gt; on Display configuration )&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;3.&lt;/span&gt; Remove the original xorg.conf, use &lt;span style="font-weight: bold;"&gt;xorgconfig&lt;/span&gt; to generate new xorg.conf&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;4.&lt;/span&gt; Set the device and the monitor to &lt;span style="font-weight: bold;"&gt;generic options&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;5.&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Re-install the X system&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;6.&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Re-install the Mandriva&lt;/span&gt; ... ( Yes I did that !!! Fortunately I made the system and data partitions a clear cut, so the re-installation is quite easy )&lt;br /&gt;&lt;br /&gt;And all of these solutions did not work, my monitor still SLEEPED ZZZzzzzzzz after the X starts to run.&lt;br /&gt;&lt;br /&gt;Somehow I started to think : &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Will it be the problem of the monitor itself ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So I changed the monitor with another Mozo LCD with D-Sub connection. Hell, my desktop is back ~!!&lt;br /&gt;&lt;br /&gt;After a cross check, I finally figured out that &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;the problem is on the DVI+ connection&lt;/span&gt; of my original Philips monitor. The connection is a DVI-D single link. The end of the link in the monitor side is not locked, and being a little loose.&lt;br /&gt;&lt;br /&gt;I check some DVI information on the web, but I really can not figure out how it works and how this would happen. I guess there might be two causes: (1) because of the loose link, the video adapter can not acquire the correct monitor EDID, or (2) because of the loose link, some video signal (TMDS) can not transmit correctly.&lt;br /&gt;&lt;br /&gt;Anyway, after I re-connected the DVI-D link and locked it well, the monitor functions correctly as usual :)&lt;br /&gt;&lt;br /&gt;So, if anybody has the same problem as me, maybe you can consider check the DVI link before try any complicated solution :p&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-1104536477167714124?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/1104536477167714124/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=1104536477167714124' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1104536477167714124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1104536477167714124'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/08/boot-and-no-screens-found-solved.html' title='Boot and No Screens Found [Solved ... ?]'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-1661438240943343682</id><published>2010-07-26T15:41:00.003+08:00</published><updated>2010-07-26T16:07:59.820+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data and knowledge engineering'/><title type='text'>Supporting SQL in DBMS</title><content type='html'>最近因為研究上的需要, 回頭在翻一些基礎的 Database, 猛然發現很多重要的觀念, 當初唸書時都理所當然地輕帶過去, 沒有去深入思考其在軟體設計上的意義.&lt;br /&gt;&lt;br /&gt;例如昨天忽然就想到 SQL 在不同 DBMS 上的問題. 當然我知道 SQL/ANSI-SQL 已經算是 RDBMS 領域的標準語言, 但是, &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;是否各家 RDBMS 需要自己實做對於 SQL 的所有支援, 或是有某幾種 SQL 處理引擎或元件是可以直接被不同的 RDBMS 採用的 ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;修過 Database 基礎課程以及 Database Tuning 課程, 卻沒有想過這個問題...&lt;br /&gt;&lt;br /&gt;回頭翻了手上的 &lt;span style="font-weight: bold;"&gt;Database System Concept 帆船本第四版&lt;/span&gt;, 在介紹 SQL 時完全是以使用以及對比前一章的 Data Definition Language 角度來寫, 自然沒有提到 Database Architecture 的事情. 其他地方我也沒翻到, 直到最後面的 Case Studies 在 SQL Server 的部份才略為說到一點 Query Processing 的東西. &lt;span style="font-weight: bold;"&gt;D. Shasha et al. 的 Database Tuning&lt;/span&gt; 則是在第四章一開始, 以及第五章一開始有提到, 特別是 ODBC 的部份, 不過顯然我當初這地方是很直覺地帶過去了 = =&lt;br /&gt;&lt;br /&gt;對照網路上找得到的 SQL Server Architecture 參考圖 ( from &lt;a href="http://sqlbaba.wordpress.com/"&gt;http://sqlbaba.wordpress.com/&lt;/a&gt; )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sqlbaba.files.wordpress.com/2009/04/architecture_sql_server.png?w=764&amp;amp;h=599"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 466px; height: 364px;" src="http://sqlbaba.files.wordpress.com/2009/04/architecture_sql_server.png?w=764&amp;amp;h=599" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;再來個 MySQL 5.5 的架構圖&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dev.mysql.com/doc/refman/5.5/en/images/PSEArch.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 520px; height: 354px;" src="http://dev.mysql.com/doc/refman/5.5/en/images/PSEArch.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;答案我想應該就跟很符合邏輯的猜測一樣, 在效能調校及商業機密考量下, 主要的 Vendors 應該都還是自行實做 SQL 處理的部份.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-1661438240943343682?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/1661438240943343682/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=1661438240943343682' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1661438240943343682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1661438240943343682'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/07/supporting-sql-in-dbms.html' title='Supporting SQL in DBMS'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-3103897180585476439</id><published>2010-07-23T15:40:00.007+08:00</published><updated>2010-07-23T16:03:22.244+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='research'/><title type='text'>SE 的研究工作是你想的這樣嗎 ?</title><content type='html'>今天在意外之中看到了 Mr. Jamie 的這篇 &lt;a href="http://mrjamie.cc/2010/07/23/what-startups-are-like/"&gt;創業不是你想的那樣&lt;/a&gt;. &lt;span style="color: rgb(153, 153, 153);"&gt;話說我有好一陣子沒有在 follow 這些創投相關的 Blogs 了...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Anyway, 撇開創業一事不論, 從 SE 研究的角度看他列出的這幾點中, 倒是有幾點相當有感觸.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;最重要的是堅持, 由很多很多小事情組成, 從最簡單的產品開始, 根本不用去想競爭對手&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;幾個月前老師找我去談, 直說了我還欠我的學位最後一項東西, 那就是&lt;span style="font-weight: bold;"&gt;堅持&lt;/span&gt;. 對於自己手上工作直到最後有價值產出的堅持. 我們永遠可以有很多的 Ideas, 但是拿幫你拿下學位的是對於其中一兩個 Ideas 所付出的堅持.&lt;br /&gt;&lt;br /&gt;從 SEKE 2010 回來之後, 也不斷地在思考 VESTA 為什麼推出去評價兩極, 只得到 Short Paper 的結果, 怎樣的包裝才是對的 ? 最終我得到的答案卻是啟發自一個四年前曾經被 Reject 的 Paper. 如果當初有持續把該 Paper 修改完成, 或許我會早一年發現到正確推出 VESTA 的方式.&lt;br /&gt;&lt;br /&gt;眼頭的這個暑假, 是明年初能否有好結果的關鍵期, 不過自七月中回 Lab. 後, 故態復萌地對幾個手上撰寫中的 Journal Papers 三心兩意. 雖然老師早就告誡過我, 先從付出最少 Effort 就可以簡單完成的開始, 似乎我總是沒放在心中...&lt;br /&gt;&lt;br /&gt;四年了快邁入第五年 (加上 Master 就不只啦), 回頭看看, SE 的研究工作真的跟我剛進 Lab. 時想像得不一樣, Funny &amp;amp; Creativity 只是研究工作中的一部分罷了...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-3103897180585476439?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/3103897180585476439/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=3103897180585476439' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/3103897180585476439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/3103897180585476439'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/07/se.html' title='SE 的研究工作是你想的這樣嗎 ?'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-1917823720286251514</id><published>2010-07-15T06:03:00.000+08:00</published><updated>2010-07-16T07:28:12.457+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SEKE'/><title type='text'>Notes on SEKE 2010 (二)</title><content type='html'>&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Sessions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;我三天來其實聽了不少 Sessions, 三天總計參加了 14 個 Sessions, 不過有深刻印象的 Presentations 不多, 或許是因為 SE + KE 其實範圍很大, 但是 Conference 的題目大部分都是比較小而明確的, 除非對兩個領域中的所有主題都很熟, 否則有的很難快速理解, 加以並非每個講者的 Presentation 技巧都很好... 另外 SEKE 的 Presenter 缺席狀況比我預計的要嚴重一些, 也許是因為簽證問題, 幾乎我去聽的每個 Session 都至少有一位 Presenter 缺席.&lt;br /&gt;&lt;br /&gt;不過有少數的 Presentation 還是可以學到不少東西. 例如第一天的 Software Engineering with Computational Intelligence and Machine Learning Session 中, Prof. Taghi Khoshgoftaar 的 Presentation 就很精彩. 雖然因為內容牽涉到我不懂的背景知識, 在短時間內很難判斷論文內容貢獻度, 但是 Prof. Taghi Khoshgoftaar 的演講風格極具 "攻擊性", 對於自己的論文內容以及貢獻有極強的自信, 甚至直說整個會議只有他 Group 的 Papers 是真正結合 SE &amp;amp; KE 在做研究的. 是國內會議以及學者演講少見的報告風格. 之前就聽我的指導教授說過, 好的 Conference 中會出現很多 Presentation 是講者跟聽眾之間的 "戰爭", 這算是第一次見識到了 :p , 有機會遇到應該要去聽聽.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/TD6H88KY5gI/AAAAAAAAEHg/h64SoLM5qHY/s1600/IMG_2586.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 266px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/TD6H88KY5gI/AAAAAAAAEHg/h64SoLM5qHY/s400/IMG_2586.JPG" alt="" id="BLOGGER_PHOTO_ID_5493978076450186754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;我自己第二天是在 Software Maintenance and Evolution Session 進行 Presentation, 內容算是很順利, 在 Session 結束後 Session Chair Dr. Ned Chapin 也給我一些 Presentation 上的建議. 網路上找得到 Dr. Ned Chapin 個人資料不多, 也沒有比較明顯的照片, 本來以為 Dr. Ned Chapin 會是有點頑固的老學究, 但是卻是出乎意料地親切的一位老先生. 我發現 Dr. Ned Chapin 對於像我這種學生進行 Presentation 都會在私下給予建議, 另外他在講者要開始說之前會作簡要介紹, 提醒大家 Paper 在 Proceeding 中的頁面, 最後的提問往往也很切中要處, 是我在這次 SEKE 中遇到主持最好的 Session Chair. 因為 Dr. Ned Chapin 也算是 Software Maintenance 領域 Conference 的常客, 作這方面的國內學者應該有相當機會遇到他.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkTUsTLwHTo/TD6K0LjuTaI/AAAAAAAAEHw/uKepCMyL3KM/s1600/IMG_2529.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 266px;" src="http://3.bp.blogspot.com/_BkTUsTLwHTo/TD6K0LjuTaI/AAAAAAAAEHw/uKepCMyL3KM/s400/IMG_2529.JPG" alt="" id="BLOGGER_PHOTO_ID_5493981224499039650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Dressing&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;在服裝上, 我發現 SEKE 會議大多數參與者其實沒有傾向穿著整齊的西裝或女性套裝, 就我看到有穿整套西裝/套裝或是類西裝的學者人數大約不到 30% 吧. 許多人都只是穿了襯衫, 也不一定有打領帶. 因此若前往參加而不便攜帶西裝或套裝者, 準備整齊適合辦公場所的服飾應該就可以. 我自己是三天都穿了整齊的西裝啦, 不過也沒有遭受什麼異樣的眼光 XD&lt;br /&gt;&lt;br /&gt;第一天的晚宴跟第二天的渡輪晚餐在穿著上大家也是都跟白天差不多, 所以基本上就是放輕鬆穿就好~&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Hotel Sofitel and Around&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sofitel 的一般房間價位加上稅是每夜 200 美元出頭, 不過因為他們給 SEKE 的優惠, 所以我大概每夜花了 3000 NTD 左右, 差不多跟台灣同等級的旅館價位相仿. 不過我在台灣也極少住這種價位的 ( 窮學生 = = ).&lt;br /&gt;&lt;br /&gt;房間我覺得算是很大, 寢具都很軟且舒服, 住起來相當舒適.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkTUsTLwHTo/TD5xgKy-TfI/AAAAAAAAEG4/x7M8SyvkFyE/s1600/P1060874-resize.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_BkTUsTLwHTo/TD5xgKy-TfI/AAAAAAAAEG4/x7M8SyvkFyE/s400/P1060874-resize.JPG" alt="" id="BLOGGER_PHOTO_ID_5493953392906489330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Sofitel 所在的位置比我想的還要偏僻一些, 位在一些軟體公司的附近 (像是 EA, Oracle, Sony Ericsson 等等 ), 可以事先準備 Google Map 列印紙本, 或是跟櫃台要簡易地圖. 基本上我出去玩幾乎都會跟旅館要看看地圖, 有時候旅館自家畫的地圖會很有趣.&lt;br /&gt;&lt;br /&gt;Sofitel 有提供地圖, 但不是複雜街道圖, 因為附近道路其實也很單純. 出了旅館, 除非有開車, 否則步行的話主要只有兩個方向可去.&lt;br /&gt;&lt;br /&gt;第一個是出旅館後往左邊沿著路一直走, 這時候右手邊是 EA, 沿著路走大約 12 ~ 13 分鐘, 會遇到一個較大的十字路口, 直走過去會遇見一個小的 Market 區域, 有超市跟一些賣吃的, 墨西哥捲, Pizza, Starbucks, 中式餐館, 漢堡潛艇堡店等等.&lt;br /&gt;&lt;br /&gt;&lt;span style="text-align: center; display: block;"&gt;&lt;iframe marginheight="0" marginwidth="0" src="http://maps.google.com.tw/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=Shoreline+Dr&amp;amp;daddr=37.523614,-122.251997&amp;amp;hl=zh-TW&amp;amp;geocode=Fb6OPAIdIHS2-A%3B&amp;amp;mra=dme&amp;amp;mrcr=0&amp;amp;mrsp=1&amp;amp;sz=16&amp;amp;dirflg=ht&amp;amp;sll=37.522575,-122.258135&amp;amp;sspn=0.010092,0.017552&amp;amp;brcurrent=3,0x0:0x0,0&amp;amp;ie=UTF8&amp;amp;ll=37.522575,-122.258135&amp;amp;spn=0.010092,0.017552&amp;amp;t=h&amp;amp;output=embed" frameborder="0" height="350" scrolling="no" width="425"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com.tw/maps?f=d&amp;amp;source=embed&amp;amp;saddr=Shoreline+Dr&amp;amp;daddr=37.523614,-122.251997&amp;amp;hl=zh-TW&amp;amp;geocode=Fb6OPAIdIHS2-A%3B&amp;amp;mra=dme&amp;amp;mrcr=0&amp;amp;mrsp=1&amp;amp;sz=16&amp;amp;dirflg=ht&amp;amp;sll=37.522575,-122.258135&amp;amp;sspn=0.010092,0.017552&amp;amp;brcurrent=3,0x0:0x0,0&amp;amp;ie=UTF8&amp;amp;ll=37.522575,-122.258135&amp;amp;spn=0.010092,0.017552&amp;amp;t=h" style="color: rgb(0, 0, 255); text-align: left;"&gt;檢視較大的地圖&lt;/a&gt;&lt;/small&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;最裡面的 Amici's Pizza 店我覺得很好吃, 墨西哥捲那家的 Fish Burrito 也好吃, 中式餐館聽說附近蠻有名的, 不過我沒去嘗試 :p , 價錢都還好, 看你吃什麼, 含軟性飲料大約都在 7 ~ 20 美元一餐. 下面是 Fish Burrito, Pizza 還在等北大的王立杰寄給我, 當時去吃時相機沒電了 :p&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkTUsTLwHTo/TD5z-J_mqkI/AAAAAAAAEHA/0JwuAAxt0U8/s1600/P1060890-resize.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_BkTUsTLwHTo/TD5z-J_mqkI/AAAAAAAAEHA/0JwuAAxt0U8/s400/P1060890-resize.JPG" alt="" id="BLOGGER_PHOTO_ID_5493956107110361666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;第二個方向是出旅館後往右走, 直走到底會遇到 T 字型路口, 過了馬路馬上會看到 Oracle Campus, 相當地漂亮. 之後往左邊走, 有高架橋道路可以遇過 Free Way, 之後再直走會遇到一些吃的店家以及 Cleaners, 包含溫蒂漢堡.&lt;br /&gt;&lt;br /&gt;&lt;span style="text-align: center; display: block;"&gt;&lt;iframe marginheight="0" marginwidth="0" src="http://maps.google.com.tw/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=Shoreline+Dr&amp;amp;daddr=Ralston+Ave&amp;amp;hl=zh-TW&amp;amp;geocode=FWmOPAIdkXO2-A%3BFYiEPAIdsDe2-A&amp;amp;mra=dme&amp;amp;mrcr=0&amp;amp;mrsp=0&amp;amp;sz=15&amp;amp;dirflg=ht&amp;amp;sll=37.524329,-122.263112&amp;amp;sspn=0.020183,0.035105&amp;amp;brcurrent=3,0x0:0x0,0&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;ll=37.524329,-122.263112&amp;amp;spn=0.020183,0.035105&amp;amp;output=embed" frameborder="0" height="350" scrolling="no" width="425"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com.tw/maps?f=d&amp;amp;source=embed&amp;amp;saddr=Shoreline+Dr&amp;amp;daddr=Ralston+Ave&amp;amp;hl=zh-TW&amp;amp;geocode=FWmOPAIdkXO2-A%3BFYiEPAIdsDe2-A&amp;amp;mra=dme&amp;amp;mrcr=0&amp;amp;mrsp=0&amp;amp;sz=15&amp;amp;dirflg=ht&amp;amp;sll=37.524329,-122.263112&amp;amp;sspn=0.020183,0.035105&amp;amp;brcurrent=3,0x0:0x0,0&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;ll=37.524329,-122.263112&amp;amp;spn=0.020183,0.035105" style="color: rgb(0, 0, 255); text-align: left;"&gt;檢視較大的地圖&lt;/a&gt;&lt;/small&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;在溫蒂漢堡路口往右前方看就是 CalTrain 的 Belton Station. 這條路大約 30 ~ 40 分鐘. 另外一個走法是出旅館後直走再右轉, 也是會接到高架道路, 大約可以少走 5 分鐘左右.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/TD585HrX8sI/AAAAAAAAEHI/Cm5qkixwxRc/s1600/P1060917-resize.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/TD585HrX8sI/AAAAAAAAEHI/Cm5qkixwxRc/s400/P1060917-resize.JPG" alt="" id="BLOGGER_PHOTO_ID_5493965916193944258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Sofitel 鄰近 Redwood Shores Lagoon, 因此早上傍晚都可以直接從旅館吧台附近的玻璃門出去到 Lagoon 走走. 推薦早上六點多帶著熱咖啡穿禦寒衣物沿著 Lagoon 走一小段再走回來, 雖然有點冷但是十分舒服.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/TD6ApElbtTI/AAAAAAAAEHQ/ViAVW3ZtTb0/s1600/P1060885-resize.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/TD6ApElbtTI/AAAAAAAAEHQ/ViAVW3ZtTb0/s400/P1060885-resize.JPG" alt="" id="BLOGGER_PHOTO_ID_5493970038532322610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;CalTrain 系統往北可以接上舊金山 BART 到舊金山市區, 往南可以到 Palo Alto / Stanford, San Antonio, San Jose ...等等, 採用分區計價, 月台上有自動售票機, 上車後才會有列車人員檢查車票, 感覺人力相當精簡. 會議期間利用 CalTrain 到了 RedWood City, San Carlos, Palo Alto / Standford, 以及接上 BART 到 Berkley 逛了逛, 雖然車票比起台灣不算便宜, 但是還蠻方便的. 其他部份屬於旅遊參觀性質, Google 上應該可以找到相當多資料, 就不寫了~&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/TD6DU22QlgI/AAAAAAAAEHY/afRNfuLDM3c/s1600/P1060905-resize.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/TD6DU22QlgI/AAAAAAAAEHY/afRNfuLDM3c/s400/P1060905-resize.JPG" alt="" id="BLOGGER_PHOTO_ID_5493972989782300162" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-1917823720286251514?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/1917823720286251514/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=1917823720286251514' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1917823720286251514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1917823720286251514'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/07/notes-on-seke-2010_15.html' title='Notes on SEKE 2010 (二)'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BkTUsTLwHTo/TD6H88KY5gI/AAAAAAAAEHg/h64SoLM5qHY/s72-c/IMG_2586.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-9200549124167300939</id><published>2010-07-14T05:20:00.015+08:00</published><updated>2010-07-15T12:31:26.640+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SEKE'/><title type='text'>Notes on SEKE 2010 (一)</title><content type='html'>六月底到 San Francisco 參加 SEKE 2010, 在各方面都學到不少 :)&lt;br /&gt;&lt;br /&gt;今年在 Redwood City, San Francisco Bay 的 Hotel Sofitel 舉行, 2006 年後 SEKE 都是在 Boston 跟 Hotel Sofitel 輪流舉辦, 不過下一屆 SEKE 2011 據說會在 Miami Beach 舉辦, 因此 2012 是否會再回 Hotel Sofitel 就不知道了.&lt;br /&gt;&lt;br /&gt;把一些會議的東西雜記下來, 順便當作申請國科會補助的報告, 也許往後台灣跟我一樣首次參加的同學們也用得著.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/TDzdDsW07YI/AAAAAAAAEGY/wL9rFKr-iX8/s1600/P1060929-resize.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 360px; height: 270px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/TDzdDsW07YI/AAAAAAAAEGY/wL9rFKr-iX8/s400/P1060929-resize.JPG" alt="" id="BLOGGER_PHOTO_ID_5493508701001411970" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;關於會議內容或 Keynote 等等或有疏漏, 如果同樣今年有參加的朋友歡迎協助更正或補齊.&lt;br /&gt;&lt;br /&gt;在 Keynote 的部份, 前兩天參加的人數都還算挺多的, 應該都在 60 人以上, 第三天稍微掉了, 但應該還是有 40 人左右. 在三個 Keynote 的內容部份, 其實我覺得並沒有聽到太多新的觀念或思考, 但是有機會看看一些重要人物的風采, 以及底下的教授們怎樣針對內容提問也是有趣.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkTUsTLwHTo/TDzmFEKs9YI/AAAAAAAAEGw/KKE6x1Sfbuw/s1600/IMG_2470.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 370px; height: 246px;" src="http://3.bp.blogspot.com/_BkTUsTLwHTo/TDzmFEKs9YI/AAAAAAAAEGw/KKE6x1Sfbuw/s400/IMG_2470.jpg" alt="" id="BLOGGER_PHOTO_ID_5493518620177528194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Keynote I&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;日的 Keynote I 邀請到 Google 的副總裁 (Vice President of Research and Special Initiatives ) &lt;a href="http://research.google.com/people/spector/"&gt;Alfred Spector&lt;/a&gt; 進行演講, 講題為 Prodigious Data, Logic, Processing, and Usage.&lt;br /&gt;&lt;br /&gt;Alfred Spector 副總裁首先由會議主旨的 Software Engineering &amp;amp; Knowledge Engineering 兩個領域的結合切入到 E-Science 這個主題, 而其所指稱的主要是針對極大量資料的處理, 以及從中獲得知識的科學問題, 特別是在社會現象研究的領域. 過去在科學領域缺乏適當的工具及平台來即時獲得足夠大量的資料進行此類的科學活動. 然而 Google 以高市占率的搜尋引擎, 結合使用者與網路, 並在系統後端保存此龐大的社會資料, 使得此方向的研究充滿可能性. Alfred Spector 副總裁並提到, 如果我們能夠得到真正足夠大量的資料, 我們將有可能直接就資料來解釋某些現象發生的原因, 進而即時做出決策判斷. 人們將可以從系統 (搜尋引擎或是 E-Science 系統) 得到知識, 而得到的知識促使人們產生更多的資料給系統, 系統藉此推論出更多的知識 ( People learn from the System, and the System learns from the Data. )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/TDzjdA2NcDI/AAAAAAAAEGg/tVruVcYThmw/s1600/IMG_2505.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 361px; height: 240px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/TDzjdA2NcDI/AAAAAAAAEGg/tVruVcYThmw/s400/IMG_2505.jpg" alt="" id="BLOGGER_PHOTO_ID_5493515733068247090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;在這樣的願景下, 其實還有諸多難題需要直接結合 Software Engineering &amp;amp; Knowledge Engineering 兩個領域進行研究. 例如最受關心的隱私權問題 ( Privacy Issue ), 目前尚缺乏真正具影響力的研究成果. 另外極大的系統規模必然會使得一些關於規模的議題更加重要, 例如目前 iPhone 上有超過 22000 項應用軟體可以選擇, 其中最少也會有一項軟體在實際運作時, 產生對於資料的安全性問題. 而在系統內, 透過各種方法所搜集的大量資料, 又要如何被重新用來預測可行的決策, 回答各種可能的問題等等, 都有待進一步的研究.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Keynote II&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;次日的 keynote Speech 由 IBM 聖荷西 Almaden 研究中心的副總裁 &lt;a href="http://www.almaden.ibm.com/almaden/labdir/"&gt;Josephine Cheng&lt;/a&gt; 針對建立更聰明的世界 ( Smarter World ) 與各大學的合作為主體作演講. Josephine Cheng 副總裁主要透過 IBM 目前在世界各地所進行的各種計畫以及其成效為主題, 以計畫帶動演講內容. 比較令人訝異的是, IBM 的各項計畫並非以電腦系統為主體, 而是以各種社會面向為出發, 從 Socio-Technical System 的角度在經營計畫, 並從中找出可以利用電腦系統來輔助計畫進行的方式. 因此從 Josephine Cheng 副總裁的介紹之中, 其實內容涵蓋了許多看似跟電腦系統無關, 或是跟綠能環境無關的計畫主題. 但若深入細想, 會發現 IBM 在此議題上的主張其實並不是一味地要求節省能源, 而是在進行各項先端的未來研究, 或是大型社會計畫的過程中, 儘量做到節省能源.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/TD6KO_LoI2I/AAAAAAAAEHo/b-9d4EVlXkY/s1600/IMG_2610.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 266px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/TD6KO_LoI2I/AAAAAAAAEHo/b-9d4EVlXkY/s400/IMG_2610.JPG" alt="" id="BLOGGER_PHOTO_ID_5493980585521587042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;在 Josephine Cheng 副總裁的演講中列舉了以下幾項計畫:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;IBM 正與許多國家的政府合作, 在推動以 RFID 系統標記農產品, 藉此掌控所有農產品從生產後到運輸及倉儲系統, 直到銷售為止的過程. IBM 的願景是希望透過這樣的系統可以減少運輸及倉儲階層的剝削, 同時讓農產品的生產過程更加透明化.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;在認知科學運算 ( Cognitive Computing ) 以及腦神經模擬科學的部分. IBM 目前已經在簡單動物的腦模擬上取得相當成果. 問題是當這樣的醫療計畫需要進展到更複雜的動物腦模擬時, 需要極大量的電腦主機以及 CPU 同時進行模擬, 此時會形成相當巨大的腦模擬系統. 這樣的系統在耗能上對於研究人員以及社會資源會是相當大的負擔. 因此在持續此研究的方向同時, 必須要兼顧到怎樣可以製作較為節省能源, 同時又適用於腦模擬科學的 CPU 以及系統, 就是一個重要的問題. 同樣的問題也會發生在未來可能的資料中心 ( Data Center ) 或是雲端系統 ( Cloud System ). &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;在水資源的利用方面, IBM 也意識到許多產業事實上在產品製作過程中消耗大量的水資源. 因此 IBM 也在協助建立更加節省水資源的製作系統, 以及強化在製作過程中的水資源重用 ( Reuse )&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;另外 IBM 也與 Stanford University 合作, 在塑膠保特瓶的回收流程上進行改進. 基本精神是: 改變遊戲規則. 換句話說, 他們所研發的新流程跳脫往常的回收及集體重製思考模式, 而是嘗試把瓶子分解為可直接重新組裝的基本元件, 進而加速重製流程, 降低過程中的化學流程使用, 降低水使用量以及污染量, 同時也可以降低成本.&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Keynote III&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;	&lt;meta equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt; 	&lt;title&gt;&lt;/title&gt; 	&lt;meta name="GENERATOR" content="OpenOffice.org 3.2  (Linux)"&gt; 	&lt;style type="text/css"&gt; 	&lt;!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } 	--&gt;&lt;/style&gt;第三日的 &lt;span style="font-family:AR PL UMing CN,serif;"&gt;Keynote Speech &lt;/span&gt;由 &lt;span style="font-family:AR PL UMing CN,serif;"&gt;Texas Tech University &lt;/span&gt;的 &lt;span style="font-family:AR PL UMing CN,serif;"&gt;&lt;a href="http://www.computer.org/portal/web/awards/cookebio?p_p_id=15&amp;amp;p_p_lifecycle=1&amp;amp;p_p_state=normal"&gt;Daniel E. Cook&lt;/a&gt; &lt;/span&gt;教授針對多處理器 &lt;span style="font-family:AR PL UMing CN,serif;"&gt;( Multi-Core ) &lt;/span&gt;時代&lt;span style="font-family:AR PL UMing CN,serif;"&gt;, &lt;/span&gt;以及隨之而來的平行運算環境&lt;span style="font-family:AR PL UMing CN,serif;"&gt;, &lt;/span&gt;以軟體開發者 &lt;span style="font-family:AR PL UMing CN,serif;"&gt;( Programmer ) &lt;/span&gt;所面臨的程式設計 &lt;span style="font-family:AR PL UMing CN,serif;"&gt;( Programming) &lt;/span&gt;挑戰&lt;span style="font-family:AR PL UMing CN,serif;"&gt;, &lt;/span&gt;以程式語言 &lt;span style="font-family:AR PL UMing CN,serif;"&gt;(Programming Languages ) &lt;/span&gt;的角度進行探討&lt;span style="font-family:AR PL UMing CN,serif;"&gt;. &lt;/span&gt;在 &lt;span style="font-family:AR PL UMing CN,serif;"&gt;keynote Speech &lt;/span&gt;中&lt;span style="font-family:AR PL UMing CN,serif;"&gt;, Daniel E. Cook &lt;/span&gt;教授首先簡要說明了研究者以及軟體開發者所會面對的程式語言之挑戰&lt;span style="font-family:AR PL UMing CN,serif;"&gt;, &lt;/span&gt;接著主要的內容為介紹其領導之研究團隊所開發之 &lt;span style="font-family:AR PL UMing CN,serif;"&gt;&lt;a href="http://portal.acm.org/citation.cfm?id=246014"&gt;SequenceL&lt;/a&gt; &lt;/span&gt;語言&lt;span style="font-family:AR PL UMing CN,serif;"&gt;.&lt;/span&gt;&lt;span style="font-family:AR PL UMing CN,serif;"&gt; 據 &lt;/span&gt;&lt;span style="font-family:AR PL UMing CN,serif;"&gt;Daniel E. Cook &lt;/span&gt;教授的說法, SequenceL 並非最近幾年才發展的語言, 而是起於二十年前, 從平行運算研究時代一路發展過來的成果.&lt;span style="font-family:AR PL UMing CN,serif;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/TDzklOs5iJI/AAAAAAAAEGo/m9BE68FGRNg/s1600/IMG_2758.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 357px; height: 237px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/TDzklOs5iJI/AAAAAAAAEGo/m9BE68FGRNg/s400/IMG_2758.jpg" alt="" id="BLOGGER_PHOTO_ID_5493516973737871506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Daniel E. Cook &lt;/span&gt;教授在演講中主要整理出三個主要的挑戰點&lt;span style="font-family:AR PL UMing CN,serif;"&gt;:&lt;/span&gt;  &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-family:AR PL UMing CN,serif;"&gt;The 	challenges and difficulties in finding emergent behaviors and 	potential faults in parallel computing hardware, such as race 	condition. &lt;/span&gt;程式語言及編寫環境是否可以協助發覺異常行為以及可能因硬體運作因素而產生的潛在威脅&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt;  &lt;ol start="2"&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-family:AR PL UMing CN,serif;"&gt;The 	difficulties of testing design. &lt;/span&gt;第一點同時也導致軟體開發者會面臨如何設計好的軟體測試策略以及測試方案 	&lt;span style="font-family:AR PL UMing CN,serif;"&gt;( Test Cases )&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt;  &lt;ol start="3"&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-family:AR PL UMing CN,serif;"&gt;Code 	understanding problem of the parallel code will restrict programmers 	in writing code parallelly. &lt;/span&gt;針對多核環境所編寫的程式碼可能會相當不利於程式碼理解 	&lt;span style="font-family:AR PL UMing CN,serif;"&gt;( Code Understanding ) &lt;/span&gt;以及檢討 	&lt;span style="font-family:AR PL UMing CN,serif;"&gt;( Code Review ), 	&lt;/span&gt;此點同時也會影響軟體開發者撰寫多核程式的意願&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-9200549124167300939?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/9200549124167300939/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=9200549124167300939' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/9200549124167300939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/9200549124167300939'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/07/notes-on-seke-2010.html' title='Notes on SEKE 2010 (一)'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BkTUsTLwHTo/TDzdDsW07YI/AAAAAAAAEGY/wL9rFKr-iX8/s72-c/P1060929-resize.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-6874159044706947272</id><published>2010-06-15T13:41:00.007+08:00</published><updated>2010-06-15T14:08:59.298+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='article comment'/><title type='text'>Application Issues of QR Train Ticket</title><content type='html'>Technology news in Taiwan today :&lt;a href="http://www.cna.com.tw/postwrite/cvpread.aspx?ID=60969"&gt;一張車票教你逛巿集&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;且先別說 QR Code 本身已經是相當 Well-known 的技術, 將之運用於車票上來推廣或便利觀光基本上只是重新實做的問題 (甚至連重新實做都談不上, 如果直接跟日本買技術或是討用部份 OSS 的資源來改的話...)&lt;br /&gt;&lt;br /&gt;看了新聞內容直覺遠東的這想法在實用上會有很大的障礙.新聞內容提到 :&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-weight: bold; font-style: italic;"&gt;方便旅客迅速找到想要的資訊，出門不必再帶地圖或導覽手冊。比賽時評審特地要我們實際上網試試，同學鄭大為說，3G手機上網很夯，但依流量計價動輒得花數十元、上百元，好玩卻很傷荷包，但QR Code直接連到指定的網頁，一次只花2~3元，省很多！&lt;/blockquote&gt;&lt;br /&gt;這樣問題就來了. 有別於在日本是各店家自己在海報上, 或是宣傳單上印上可以連到自家網頁或是 Coupon 的 QR Code, 印在車票上對於所有店家來說具有單一性以及排他性, 更白話地說, 請問車票上該如何決定要印上那一家的 QR Code ? 或是哪家網站的 QR Code ? 總不能把這問題交給廣告費多寡來決定吧 ?&lt;br /&gt;&lt;br /&gt;如果說要由交通局統一製作一個可信賴的導覽網站, 則又面臨該網站的製作及更新維護費用, 同時瀏覽該往站未必可以達成節省流向以及網路花費的問題, 因為要看的資訊量還是變多了.&lt;br /&gt;&lt;br /&gt;而在車票上同時印出多個 QR Code, 一來車票本身沒有這麼大的空間, 二來這也跟新聞內容提到可以節省瀏覽的時間以及花費又相抵觸了.&lt;br /&gt;&lt;br /&gt;這樣想來, 在應用上似乎有著重重障礙要克服...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-6874159044706947272?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/6874159044706947272/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=6874159044706947272' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6874159044706947272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6874159044706947272'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/06/application-issues-of-qr-train-ticket.html' title='Application Issues of QR Train Ticket'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-3190809442027847429</id><published>2010-06-10T08:46:00.008+08:00</published><updated>2010-06-10T09:10:07.833+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><title type='text'>2010 開放原始碼創新應用開發大賽</title><content type='html'>今天收到&lt;a href="http://www.oss.org.tw/contest_2010/"&gt; 2010 開放原始碼創新應用開發大賽&lt;/a&gt;的訊息通知,今年還蠻想參加看看的.&lt;br /&gt;&lt;br /&gt;不過網頁中對於參賽作品的定位其實有很大的問題, 到底比賽目的是要促進國內自由軟體社群的 "量" 還是 "質" 呢 ?&lt;br /&gt;&lt;br /&gt;常說自由軟體, 但實質上包含了 Free/Libre/Open Source Software (也就是一般說的 FLOSS), 這之間的意涵是不一樣的. 從競賽主軸以及對於作品的規定, 完全看不出來主辦單位對於參賽作品有明確的定位.&lt;br /&gt;&lt;br /&gt;到底是希望可以在台灣 FLOSS 社群激發更多 "Free Applications", 或是創造更多有潛力的 "Open Source Software" 呢 ? 這兩個目標所需要的評量要件應該要有很大的差異性.&lt;br /&gt;&lt;br /&gt;前者應該著重在對於使用市場的分析, 介面設計, 作品穩定度, 甚至是利用 Immature Releases 來評估團隊的市場預估以及經營能力. 要作就應該做出大受歡迎的 Free Applications, 而不是持續讓 &lt;span style="color: rgb(153, 153, 153); font-weight: bold;"&gt;"絕大部分的 Free Software 都很難用也沒什用"&lt;/span&gt; 這樣的印象繼續擴大.&lt;br /&gt;&lt;br /&gt;後者的評量其實應該著重在作品架構設計 (Software Architecture Design) 上, 以及社群角色遷移程序 (Community Role Immigration Process) 的設計上. 完成度跟穩定度反而比重可以降低. 因為後者的重點在於 "讓社群中有興趣的成員可以很容易加入開發", 而不是要求把產品做的很完美.&lt;br /&gt;&lt;br /&gt;從去年的獲獎來看這比賽似乎是很偏向前者.&lt;br /&gt;&lt;br /&gt;而即便是 "應用" 也有小眾與大眾之分, 主辦單位跟評審們會一視同仁嗎 ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-3190809442027847429?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/3190809442027847429/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=3190809442027847429' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/3190809442027847429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/3190809442027847429'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/06/2010.html' title='2010 開放原始碼創新應用開發大賽'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-193053454396474121</id><published>2010-06-02T17:57:00.012+08:00</published><updated>2010-06-02T18:26:46.701+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming learning'/><title type='text'>Learn-By-Study versus Learn-By-Programming</title><content type='html'>剛剛有大一的學生到實驗室問計概助教一個教科書上的問題.該學生對於書上寫了: &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;要注意 Escape Character 的使用... 例如 "\1234" 會被視為 "\123" 與 "4"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; (懶得去抄英文原文, 直接用中文寫) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;感到很奇怪, 不懂是什麼意思, 為什麼不是 &lt;span style="color: rgb(153, 153, 153); font-weight: bold;"&gt;"\1" 與 "234"&lt;/span&gt; ?&lt;br /&gt;&lt;br /&gt;我覺得會注意到這個問題代表該位學生很認真地在看書, 想我自己剛學 Programming 時根本也沒注意過這個問題. 但是我覺得該位學生的提問方式, 其實曝露出了她在唸書時的習慣, 很可能是延續唸一般科目的方式, 只在書本上思考跟學習.&lt;br /&gt;&lt;br /&gt;事實上, 在她已經會基本的 C Programming 情況下, 一個簡單的程式可以為這個問題帶來解答的線索.&lt;br /&gt;&lt;br /&gt;&lt;textarea class="c" name="code" rows="5" cols="70"&gt;&lt;br /&gt;void main(){&lt;br /&gt;    printf("\1234");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/textarea&gt;&lt;br /&gt;這個簡單的程式在一般的系統中應該會給出 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;S4&lt;/span&gt; 的列印結果. 再多試一下改成這樣 :&lt;br /&gt;&lt;br /&gt;&lt;textarea class="c" name="code" rows="5" cols="70"&gt;&lt;br /&gt;void main(){&lt;br /&gt;    printf("\1244");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/textarea&gt;&lt;br /&gt;會給出 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;T4&lt;/span&gt;  的列印結果.&lt;br /&gt;&lt;br /&gt;從這兩個簡單的程式, &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;"\1234" 會被視為 "\123" 與 "4"&lt;/span&gt; 是一個學生自己就可以驗證的事實, 因此真正的好問題應該是,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0); font-style: italic; font-weight: bold;"&gt;"\123" 是什麼 ? 為什麼系統會認得它 ? 為什麼會印出 S ? 為什麼它不在我學過的 "\n", "\t" 等等特殊字元裡面 ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;從而該位學生或許有辦法根據以上修改過的問題, 進一步分辨 Control Characters 以及 Printing Characters, 以及更深入了解 ASCII Code Table, 最終得到 "\123" 會被印出 S 是因為 123 是 S 在 ASCII 中的 Octal Representation 之猜測.&lt;br /&gt;&lt;br /&gt;當然, 不能期待剛接觸 C Programming 幾個月的學生可以獨立得到最後的結論, 但至少在看書之外, 動手去找尋原因, 嘗試, 猜測以修正問題, 對於 Programming Learning 是很重要的.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-193053454396474121?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/193053454396474121/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=193053454396474121' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/193053454396474121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/193053454396474121'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/06/learn-by-study-versus-learn-by.html' title='Learn-By-Study versus Learn-By-Programming'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-1709931641188641156</id><published>2010-06-02T12:16:00.008+08:00</published><updated>2010-06-02T12:28:45.181+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mandriva'/><title type='text'>Knotify4 Crashes Mandriva Sound System</title><content type='html'>又是 &lt;span style="font-weight: bold;"&gt;Mandriva 2010.1 RC&lt;/span&gt; 上的問題. 在我的系統一段時間沒操作之後, &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Knotify4&lt;/span&gt; 會開始不斷地運作, 大約佔據 6% 的 CPU, 每隔兩秒出現提醒音效, 然後完全阻斷整個音效系統, 連帶 Audacious 或是 AmaroK 會當掉. 即便重新開啟 Audacious, 也是會在播放時, 每隔一秒強迫重放該首 (應該是因為 Sound System 被佔據, 更準確地說是使用 ALSA 系統會這樣)&lt;br /&gt;&lt;br /&gt;查了一些討論, 似乎 &lt;span style="font-weight: bold;"&gt;MDV 2009&lt;/span&gt; 版本開始就有類似的問題, 有回報修好, 但是在後續的 KDE 4 版本還是有人遇到同樣的問題.&lt;br /&gt;&lt;br /&gt;找到唯一明顯有效的解法是放棄系統提醒音效...&lt;br /&gt;&lt;br /&gt;作法是 (在繁體中文版) &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;桌面設定 -&gt; 外觀與感覺 -&gt; 通知 -&gt; 系統通知 -&gt; 播放器設定&lt;/span&gt;, 請改為 "&lt;span style="color: rgb(153, 153, 153); font-weight: bold;"&gt;沒有音效輸出&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;不過這樣的解決方案有點討厭就是了, 需要系統通知的使用者就要犧牲了 = =&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-1709931641188641156?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/1709931641188641156/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=1709931641188641156' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1709931641188641156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1709931641188641156'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/06/knotify4-crashes-mandriva-sound-system.html' title='Knotify4 Crashes Mandriva Sound System'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-8900142331729248831</id><published>2010-06-02T11:46:00.004+08:00</published><updated>2010-06-02T11:57:41.314+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mandriva'/><category scheme='http://www.blogger.com/atom/ns#' term='desktop'/><title type='text'>Firefox 3.6 很慢的問題...</title><content type='html'>剛換了 &lt;span style="font-weight: bold;"&gt;Mandriva 2010.1 RC&lt;/span&gt; 不久, &lt;span style="font-weight: bold;"&gt;KDE 4&lt;/span&gt; 雖然很漂亮 (之前是 MDK 2008, KDE 3.5), 但比較討厭的是 Kwin 在我現在的機器上效能表現不佳, 不知道是否與顯示卡有關, 還沒有時間深究. 另外一點是內建的 Firefox 3.6.3 在開啟頁面以及切換頁面時, &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;超 級 慢&lt;/span&gt; ~~&lt;br /&gt;&lt;br /&gt;今天早上終於受不了, Google 了幾個頁面, 沒想到一下子就找到解決方案啦 :)&lt;br /&gt;&lt;br /&gt;問題點在於 Firefox 的 &lt;span style="font-weight: bold; color: rgb(255, 102, 0);" class="pln"&gt;network&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);" class="pun"&gt;.&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);" class="pln"&gt;dns&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);" class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;disableIPv6&lt;/span&gt; 這個設定, 根據 &lt;a href="http://kb.mozillazine.org/Network.dns.disableIPv6"&gt;mozillaZine 上的說明&lt;/a&gt;, 這個設定在 MacOS X 上是 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;default True&lt;/span&gt;, 而在其他的系統上是 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;default False&lt;/span&gt;. 換句話說, 在我的系統上是預設會去作 IPv6 的 DNS Lookup.&lt;br /&gt;&lt;br /&gt;但是這行為在台灣是無意義的, 因為目前台灣的 ISP 大多未更新到 IPv6 的系統 (或是讓 IPv6 與 IPv4 相容), 因此把這個選項&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;設為 False 只會讓效能變慢&lt;/span&gt;而已.&lt;br /&gt;&lt;br /&gt;在 Firefox 的網址列輸入 &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);" class="pln"&gt;about&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);" class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;config&lt;/span&gt; &lt;/span&gt;&lt;span class="pln"&gt;後, 找到 &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);" class="pln"&gt;network&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);" class="pun"&gt;.&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);" class="pln"&gt;dns&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);" class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;disableIPv6 &lt;/span&gt;&lt;/span&gt;&lt;span class="pln"&gt;把它改為 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;True&lt;/span&gt;, &lt;/span&gt;開啟頁面以及切換頁面就正常了 :)&lt;br /&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-8900142331729248831?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/8900142331729248831/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=8900142331729248831' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/8900142331729248831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/8900142331729248831'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/06/firefox-36.html' title='Firefox 3.6 很慢的問題...'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-2340314111880257714</id><published>2010-05-31T10:41:00.005+08:00</published><updated>2010-05-31T11:17:50.735+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='research'/><title type='text'>International Computer Symposium 2010 上線</title><content type='html'>&lt;a style="font-weight: bold;" href="http://ics-2010.csie.ncku.edu.tw/"&gt;International Computer Symposium 2010&lt;/a&gt; 悄悄上線了 (其實是我消息不靈通 XD), 沒想到今年是在成大舉辦, 雖然應該是不會投稿, 不過實驗室學弟有上就不用跑遠了.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ics-2010.csie.ncku.edu.tw"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 461px; height: 69px;" src="http://ics-2010.csie.ncku.edu.tw/images/tree_top.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ics-2010.csie.ncku.edu.tw/"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 464px; height: 42px;" src="http://ics-2010.csie.ncku.edu.tw/images/ics_title.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;雖然 NCS/ICS 很多實驗室都不太願意投, 不過怎麼說 NCS/ICS 也是台灣 CS 領域唯一資源最多的會議, 如果台灣想要擁有至少有點小名氣的自家國際會議, 在不去搶既有會議主辦權的情況下, 個人認為從 ICS 改造是最快的辦法.&lt;br /&gt;&lt;br /&gt;所以基本上我覺得 ICS 好好辦還是挺重要的... 就看主掌的教授們怎麼想了.&lt;br /&gt;&lt;br /&gt;不過目前的 Chairs 名單未免失衡地太嚴重, 感覺區域性太強. 扣掉掛名的教育部名單跟榮譽主席等等, 8 位 Chairs &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;全部都是成大&lt;/span&gt;的, 而 Workshop Chairs/Co-Charis, 共有 21 位左右, 其中成大佔了 5 位, 國外學者 4 位, 其他除了海洋大學 1 位之外, 全部都是南部的學校... 北部台清交中央全部絕緣... 這是怎樣 ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-2340314111880257714?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/2340314111880257714/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=2340314111880257714' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2340314111880257714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2340314111880257714'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/05/international-computer-symposium-2010.html' title='International Computer Symposium 2010 上線'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-2595150281649764184</id><published>2010-05-29T15:14:00.068+08:00</published><updated>2010-10-09T11:04:04.924+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><title type='text'>筆記: AIO 觸控生活應用程式競賽</title><content type='html'>由經濟部工業局主辦, 工研院執行的 &lt;a href="http://www.aiocontest.com/"&gt;AIO 觸控生活應用程式競賽&lt;/a&gt; 告一段落, DBSE 實驗室的 &lt;span style="font-weight: bold;"&gt;SIMPLE Touch&lt;/span&gt; 最終是獲得第三名 (複賽共 &lt;a href="http://www.aiocontest.com/6.html"&gt;19 隊晉級&lt;/a&gt;, 取第一名一隊, 第二名兩隊, 第三名三隊). 雖然頒獎典禮結束後的隔天有不少平面媒體報導, 但是受限於篇幅以及作品賣點問題, 只有 B+ 的蒼蠅王2 得到比較多的說明吧, 網路影片也多集中於各家廠商及經理的說話...&lt;br /&gt;&lt;br /&gt;週末趁整理相關投影片分享給實驗室的機會, 把一些有看到的東西, 以參加者的角度也紀錄一下, 其中也包含一些自己的看法. &lt;span style="color: rgb(102, 102, 102);"&gt;以下的影片是 SIMPLE Touch 的隊員趁四下無人亂動的, 所以很多操作其實不到位, 加減看就好 XD&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;1. 蒼蠅王2 (B+ Studio 作品)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;蒼蠅王2 是 &lt;a style="font-weight: bold;" href="http://www.bplusgame.com/"&gt;B+ Studio&lt;/a&gt; 先前作品 蒼蠅王 Lord of Flies 的二代作. 第一代的作品在先前的&lt;a href="http://w7contest.dotblogs.com.tw/result.aspx"&gt;微軟 Windows7 多點觸控程式設計大賽&lt;/a&gt;就拿下過第一名, 這次再得到首獎, 真是相當厲害.蒼蠅王2 的遊戲概念很簡單, 把自己的手當作蒼蠅拍來拍死蒼蠅 (不過是用手指, 用手掌可能 AIO 電腦會先垮), 以兩人競爭或過關的方式進行遊戲.作品的 Context 設定清楚, 完成度也極高, 美工很漂亮, 以我看到的參賽作品來說, 是兼具高吸引力以及高完成度的作品, 拿下首獎相當合理.&lt;br /&gt;&lt;br /&gt;&lt;span style="text-align: center; display: block;"&gt;&lt;object height="324" width="400"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vwXX4d2a0Z0&amp;amp;hl=zh_TW&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/vwXX4d2a0Z0&amp;amp;hl=zh_TW&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="324" width="400"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://www.bplusgame.com/"&gt;B+ Studio&lt;/a&gt; 目前的主要領導者是陳承佑先生, 也兼任 RD (事實上就我所知目前只有一位 RD), 工作室含美工及經理等等目前共只有 4 位人員. 另外值得一提的是決賽時第一次遇到陳承佑先生, 在準備室相當專心地一次又一次, 不厭其煩地反覆準備面試講稿, 相當認真的人 :) 因為我就沒辦法作到這樣, 特別有感觸~&lt;br /&gt;&lt;br /&gt;另外強力推薦蒼蠅王的開發手冊, 當初決賽之前, 調查競爭對手時就很喜歡他們的手冊, 可以讓別人很容易理解蒼蠅王的創作脈絡, 是很好的展示及宣傳材料.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;2. Digifish Dolphia (琦景科技)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://www.formosoft.com/C_contact.htm"&gt;琦景科技&lt;/a&gt;在決賽時所用的作品名稱是&lt;span style="font-weight: bold;"&gt;琦景科技數位魚&lt;/span&gt;, 很容易讓人聯想到先前流行的數位桌面水族館之類的東西, 不過現場看到其實不是那麼像玩具的東西.&lt;br /&gt;&lt;br /&gt;Digifish Dolphia 是利用高強度的 3DVR 引擎為核心, 繪畫出全 3D 的動物生態 (參賽 Demo 是用海豚以及海底世界為主), 搭配 Multi-Touch 技術讓使用者利用手指動作, 例如轉換視角, 驅趕魚群, 呼叫海豚, 對海豚搔癢等等.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-align: center; display: block;"&gt;&lt;object height="324" width="400"&gt;&lt;param name="movie" value="http://www.youtube.com/v/QWFru3akfY8&amp;amp;hl=zh_TW&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/QWFru3akfY8&amp;amp;hl=zh_TW&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="324" width="400"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;從琦景科技的展出內容來看, 其實我會有點懷疑琦景參賽的主要目的是得到曝光跟商談合作的機會, 特別是前三名可以獲得今年 ComputeX 參展的機會. 所以 Digifish Dolphia 比較像是琦景目前的技術結合 Multi-Touch 之後的一種技術展示, 而不是以一個完整使用情境的方式作包裝.&lt;br /&gt;&lt;br /&gt;不過因為前兩名的展出場地在演講廳內, 跟第三名的場地分開, 加上琦景的參展人員看起來是經理級以上的業界前輩, 整場就我看到時幾乎都是跟商業人仕洽談, 完全沒機會講到話, 只有一開始跟陳恆大哥來看了一下我們的 Demo, 也就無從問起~&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;3. Kidd Touch Fun - 3D Blocks Learning Game (智品科技)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wisdomsales.com.tw/"&gt;智品科技的網站&lt;/a&gt;需要安裝 Silverlight 才能看到, 不過我的 Mandriva 要看到比較麻煩...況且我也不太想裝...&lt;br /&gt;&lt;br /&gt;智品的 3D Blocks Learning Game 主要概念就是虛擬化的積木系統, 把積木的物理特性 (主要是重心的移動與積木的堆疊) 設定在虛擬的積木上, 讓小朋友們利用 Multi-Touch 去移動或丟擲積木, 積木於是會與現實世界中的真實積木有一樣的行為. 我記得 Lego 幾年前好像有類似的計畫,但是後來決定還是先朝實體積木的電子化發展, 相關資料找不太到了.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-align: center; display: block;"&gt;&lt;object height="324" width="400"&gt;&lt;param name="movie" value="http://www.youtube.com/v/-Lz78viWxXc&amp;amp;hl=zh_TW&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/-Lz78viWxXc&amp;amp;hl=zh_TW&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="324" width="400"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;相似的概念在前兩年 IEEE Software 有一篇 paper, 討論把玩具汽車的物理行為嵌入到虛擬玩具汽車中, 例如只要放到斜坡上就會自動下滑, 平地上就不會之類的.&lt;br /&gt;&lt;br /&gt;# 2010-08-31 補充: 示範影片在 Youtube 上面有:&lt;br /&gt;&lt;span style="text-align: center; display: block;"&gt;&lt;br /&gt;&lt;object width="400" height="324"&gt;&lt;param name="movie" value="http://www.youtube.com/v/NZNTgglPbUA?fs=1&amp;amp;hl=zh_TW"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/NZNTgglPbUA?fs=1&amp;amp;hl=zh_TW" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="324"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# 2010-10-09 補充, 另外一個形式的作品&lt;br /&gt;&lt;span style="text-align: center; display: block;"&gt;&lt;br /&gt;&lt;object width="400" height="324"&gt;&lt;param name="movie" value="http://www.youtube.com/v/7Zh79q_xvZw?fs=1&amp;amp;hl=zh_TW"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/7Zh79q_xvZw?fs=1&amp;amp;hl=zh_TW" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="324"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;智品的參展人員我從頭到尾都沒有認到 = = , 因為不是去聽演講就是同樣在展出時間, 完全沒機會講到話. 不過稍微玩了一下覺得積木的動作有點不太自然, 可能是為了迎合小孩子的反應跟操作, 所以刻意把積木的移動跟旋轉速度等等都調整的相當慢.&lt;br /&gt;&lt;br /&gt;以上是前兩名的作品.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;4. All Touch (AHC)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;All Touch 的概念主要是嘗試協助傳統 Keyboard/Mouse 應用程式, 在無須更動或修改 User Interface 的情況下, 直接轉換到 Mutli-Touch 的環境. 可想而知 All Touch 就是一個 Adapter 的概念.&lt;br /&gt;&lt;br /&gt;但是 All Touch 的解決方案事實上需要面對許多問題, 例如為了迎合所宣稱的 "任何應用程式", All Touch 本身就需要應付可能會相當複雜的操控方式, 而為了方便 All Touch 的使用者, All Touch 的使用者介面如何作到操作方便, 甚至提供編輯器. 再者, 傳統 Keyboard/Mouse 應用程式會想要過渡到 Multi-Touch 環境這件事, 可能是一個過於危險的假設. 到目前為止, 我還沒有看到大量的聲音認為 Multi-Touch 會取代 Keyboard/Mouse 的操作模式. 換句話說, 極有可能這兩種操作模式本身就是有著不同的使用市場, 這時其實傳統的應用程式未必會需要支援 Multi-Touch, 而要轉移的應用程式也未必會想省功夫而不重新設計 User Interface -- 畢竟為了省下 UI 成本而讓使用者操作不便絕對不是一個好決策.&lt;br /&gt;&lt;br /&gt;All Touch 沒影片~ 因為拍攝時剛好陳恆大哥不在, 雖然看過一次但是還是沒法複製操作, 只好殘唸只放立牌照片.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/TAEpAlTnQYI/AAAAAAAAEFI/yHwhFYJfkwE/s1600/P1060853.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 248px; height: 330px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/TAEpAlTnQYI/AAAAAAAAEFI/yHwhFYJfkwE/s400/P1060853.JPG" alt="" id="BLOGGER_PHOTO_ID_5476703711850348930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;代表 AHC Technology 參賽的陳恆大哥 (其實是大叔吧 XD) 是個超級活潑的人, 先前待在資策會, 也聽到一點小內幕, 是在會場跟我們講最多話的人之一, 感謝陳大哥讓我們稍微不緊張一點 :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;5. Smart eVision (聯銓資訊)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.lcnet.com.tw/"&gt;&lt;br /&gt;聯銓資訊&lt;/a&gt;長期來都專注在研發企業決策軟體, 據 &lt;span style="font-weight: bold;"&gt;VP&lt;/span&gt; 說, 已經投入 18 年了. 沒錯, 他們家副總有來 XD&lt;br /&gt;&lt;br /&gt;產品本身的資訊在公司網站上就很很清楚了, 沒什麼好多說, 而此次參賽的版本主要是利用 Silverlight 開發介面, 搭配幾種操控的 Multi-Touch 指令, 使得介面的轉換可以在企業主進行 Presentation 時更加方便. 嚴格來說跟 Multi-Touch 的重要相關性不大就是了.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-align: center; display: block;"&gt;&lt;object height="324" width="400"&gt;&lt;param name="movie" value="http://www.youtube.com/v/NOjFhA3o9Ns&amp;amp;hl=zh_TW&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/NOjFhA3o9Ns&amp;amp;hl=zh_TW&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="324" width="400"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;在展出前期跟聯銓的展出人員沒有說到太多話, 只有介紹跟 Demo SIMPLE Touch 給他們看而已. 不過後半的演講時間, 副總似乎跟我們一樣對演講內容沒什麼太大興趣, 在外面溜達, 有機會聊了一下, 特別是聯銓一路來的辛苦, 以及副總對於 Cloud Computing 被台灣企業接受的可能性分析, 收穫良多 :) 沒想到台灣跟美國的情況會差距這麼大&lt;br /&gt;&lt;br /&gt;聯銓近來正式在美國設立據點, 總裁本身在美國督軍中, 預祝拓展順利~&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;其他&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;以上是除了 SIMPLE Touch 以外的前三名. 其他通過第二階段的隊伍中, 因為決賽時間錯開, 沒有太多機會看到. 有看到的是台大電機的 Electrical Automatic Handicraft, 基本上應該是電子陶藝模擬, 搭配 Multu-Touch 去作形塑的作品, 沒記錯的話應該是獲得佳作. 另外朝陽科技大學的阿公阿媽戰起來, 好像需要用到除了 Mutli-Touch AIO 以外的 Wireless AP, 不過很遺憾沒有機會詳細了解內容, 只是決賽時剛好是我們上一組, 感覺評審室裡面很熱鬧, 有演短劇的感覺 XD&lt;br /&gt;&lt;br /&gt;第一次參賽對於很多事情的拿捏都不太有經驗, 包含進度掌控, 比賽進行的重點, 作品展示方法等等, 幸好有老師的指點, 以及先前 Cox 學長幫忙打下 SIMPLE Touch 的基礎, SIMPLE Touch 隊員, DBSE 以及 DCL 同仁的合作, 拿下第三名. 雖然不夠完美, 但總是個開始. 雖然很遺憾因為種種原因要放棄 ComputeX 2010 的展出機會, 但是相對來說其他的機會也正找上門來, SIMPLE Touch 還有很長很需要謹慎的路要走.&lt;br /&gt;&lt;br /&gt;最後還是感謝工研院的執行人員, 退出 ComputeX 的展出勢必給你們帶來不小的麻煩, 希望工研院以及其他隊伍展出順利 :)&lt;br /&gt;&lt;br /&gt;最後補一張頒獎人及得獎隊伍代表的合照, 左一我記得是智品代表 (記錯請見諒), 左二是 SIMPLE Touch 辛苦的首席解說員倩瑋, 左三是陳恆大哥, 左四是聯銓副總, 右四是琦景代表  (記錯請見諒), 身上有大大的 B+ 的自然是首獎代表陳承佑先生啦 ~ 早知道 SIMPLE Touch 也穿實驗室的紫衣去... 不過可能太搶眼就是了 XD 長官與各廠商經理課長等等請恕我忽略 ~&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/TAEqInDrmvI/AAAAAAAAEFQ/AYEhqVyT4PI/s1600/P1060837.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/TAEqInDrmvI/AAAAAAAAEFQ/AYEhqVyT4PI/s400/P1060837.JPG" alt="" id="BLOGGER_PHOTO_ID_5476704949270977266" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-2595150281649764184?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/2595150281649764184/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=2595150281649764184' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2595150281649764184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2595150281649764184'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/05/aio.html' title='筆記: AIO 觸控生活應用程式競賽'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BkTUsTLwHTo/TAEpAlTnQYI/AAAAAAAAEFI/yHwhFYJfkwE/s72-c/P1060853.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-816665313496827782</id><published>2010-04-22T10:55:00.011+08:00</published><updated>2010-04-22T11:15:12.638+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>OpenFoundry Attack (三)  Downloads versus Lifespan</title><content type='html'>延續 &lt;a href="http://selainsoft.blogspot.com/2010/04/openfoundry-attack-project-downloads.html"&gt;OpenFoundry Attack (二)&lt;/a&gt; , 把 Project Downloads 與 Project Lifespan 來比對看看.&lt;br /&gt;&lt;br /&gt;Project Lifespan 指的是一個 Project 自創造出來到目前為止 ( 2010-04-20 ) 的時間, 在此以天數 (Days) 作為計量單位.&lt;br /&gt;&lt;br /&gt;由於在 OpenFoundry 中, Downloads 數量有顯著量級差距, 因此全部一起看反而看不出甚麼. 以下分為幾個不同的 Scales 來看.&lt;br /&gt;&lt;br /&gt;首先是 Downloads 在 0 ~ 100 之間的 Projects. 在此不包含 Downloads 為 0 的 Projects, 在圖上會佔據 Y = 0 的軸線, 意義不大.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/S8-8BpbJj-I/AAAAAAAAEDo/hxDx8Llb4mI/s1600/ossf-downloads100-lifespan.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 320px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/S8-8BpbJj-I/AAAAAAAAEDo/hxDx8Llb4mI/s400/ossf-downloads100-lifespan.png" alt="" id="BLOGGER_PHOTO_ID_5462791609509318626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;較明顯的是 Lifespan 在一年半到兩年之間的 Projects 比較集中一點, 這跟 &lt;a href="http://selainsoft.blogspot.com/2010/04/openfoundry-attack-project-creation.html"&gt;OpenFoundry Attack (一)&lt;/a&gt; 中提到 2008 年 10 月前後的大量註冊 Projects 自然有相關. 但是從 Downloads 的角度來看, 其實並沒有特別的傾向, 算是還蠻平均的. 而從其他 Lifespan 的角度來看, 其實在 Downloads 的表現上也是很平均, 並沒有說 Lifespan 長的 Projects ( 也就是比較老的 Projects ) 就比較容易有高的 Downloads 數量.&lt;br /&gt;&lt;br /&gt;事實上同樣的情況放到其他 Scales 也是類似.&lt;br /&gt;&lt;br /&gt;底下是 Downloads 在 0 ~ 500 之間的 Projects 分佈. 請忽略左下角那團, 那在上圖中已經說明過了. 其他部份也是均勻分佈.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/S8-9gyRbDDI/AAAAAAAAEDw/daxISeP7Txs/s1600/ossf-downloads500-lifespan.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 317px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/S8-9gyRbDDI/AAAAAAAAEDw/daxISeP7Txs/s400/ossf-downloads500-lifespan.png" alt="" id="BLOGGER_PHOTO_ID_5462793243972013106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Downloads 在 0 ~ 1000 之間的 Projects 分佈.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/S8--P0pYsmI/AAAAAAAAED4/UYY4QFtTPEI/s1600/ossf-downloads1000-lifespan.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 319px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/S8--P0pYsmI/AAAAAAAAED4/UYY4QFtTPEI/s400/ossf-downloads1000-lifespan.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5462794052063244898" /&gt;&lt;/a&gt;&lt;br /&gt;Downloads 在 0 ~ 5000 之間的 Projects 分佈.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/S8--WyQDc6I/AAAAAAAAEEA/JZasW-6u1Hk/s1600/ossf-downloads5000-lifespan.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 311px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/S8--WyQDc6I/AAAAAAAAEEA/JZasW-6u1Hk/s400/ossf-downloads5000-lifespan.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5462794171679208354" /&gt;&lt;/a&gt;&lt;br /&gt;Downloads 在 0 ~ 10000 之間的 Projects 分佈.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/S8--dC1-sdI/AAAAAAAAEEI/1v6oBNf4664/s1600/ossf-downloads10000-lifespan.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 314px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/S8--dC1-sdI/AAAAAAAAEEI/1v6oBNf4664/s400/ossf-downloads10000-lifespan.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5462794279212462546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Downloads 在  10000 以上的 Projects 數量相對少很多, 代表性低就不看了. 基本上結論是, 在 OpenFoundry 上, 目前看來 Lifespan 跟 Downloads 的關聯性並不高.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-816665313496827782?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/816665313496827782/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=816665313496827782' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/816665313496827782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/816665313496827782'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/openfoundry-attack-downloads-versus.html' title='OpenFoundry Attack (三)  Downloads versus Lifespan'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BkTUsTLwHTo/S8-8BpbJj-I/AAAAAAAAEDo/hxDx8Llb4mI/s72-c/ossf-downloads100-lifespan.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-5687706107511519479</id><published>2010-04-21T07:26:00.025+08:00</published><updated>2010-04-21T08:59:09.483+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>OpenFoundry Attack (二)  Project Downloads</title><content type='html'>接續前篇 OpenFoundry Attack (一) 的 Data Crawlng 設定, 對於 Project 績效最容易理解的指標 : Downloads 數量作統計, 數據如下表.&lt;br /&gt;&lt;br /&gt;其中 Intervals 為下載數量間隔, 第一個 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;0&lt;/span&gt; 為特殊的間隔, 代表下載數量為 0 的計畫數量, 而 的間隔為&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;下載數量大於等於 1 次, 小於 50 次&lt;/span&gt;的意思, 其餘的間隔依此類推. 最後一個&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt; 50,000,000 ~ &lt;/span&gt;的間隔代表下載數量在&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;五千萬次以上&lt;/span&gt;的計畫數量.&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-left: 150px;"&gt;&lt;table style="width: 300px;"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="font-weight: bold;"&gt;Intervals&lt;/td&gt;&lt;td style="font-weight: bold;"&gt;Downloads&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;695&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1~ 50&lt;/td&gt;&lt;td&gt;133&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;50 ~ 100&lt;/td&gt;&lt;td&gt;60&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;100 ~ 500&lt;/td&gt;&lt;td&gt;132&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;500 ~ 1000&lt;/td&gt;&lt;td&gt;48&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1000 ~ 5000&lt;/td&gt;&lt;td&gt;69&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5000 ~ 10,000&lt;/td&gt;&lt;td&gt;18&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;10,000 ~ 50,000&lt;/td&gt;&lt;td&gt;23&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;50,000 ~ 100,000&lt;/td&gt;&lt;td&gt;6&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;100,000 ~ 500,000&lt;/td&gt;&lt;td&gt;12&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;500,000 ~ 1,000,000&lt;/td&gt;&lt;td&gt;2&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1,000,000 ~ 5,000,000&lt;/td&gt;&lt;td&gt;1&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5,000,000 ~ 10,000,000&lt;/td&gt;&lt;td&gt;1&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;10,000,000 ~ 50,000,000&lt;/td&gt;&lt;td&gt;0&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;50,000,000 ~&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;其中下載次數為 0 的計畫共有 695 個, 佔所有此調查中所查看計畫總數的 57.87 % , 而除此之外, 算是很正常地在 1 ~ 5000 次下載的計畫佔餘下的大多數.&lt;br /&gt;&lt;br /&gt;換成長條圖可以比較容易看出比例差距. ( 圖中的 maximum 就是下載數量大於五千萬次 )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BkTUsTLwHTo/S85Dk_gqvZI/AAAAAAAAEDY/9yMCa1mAHLc/s1600/ossf-project-downloads-count-intervals.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 273px; height: 400px;" src="http://2.bp.blogspot.com/_BkTUsTLwHTo/S85Dk_gqvZI/AAAAAAAAEDY/9yMCa1mAHLc/s400/ossf-project-downloads-count-intervals.png" alt="" id="BLOGGER_PHOTO_ID_5462377700849794450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;當然對於下此數量在五十萬次以上的少數 Projects 難免讓人好奇, 這些 Projects 分別是 &lt;a href="http://of.openfoundry.org/projects/771"&gt;可攜應用程式套件中文化&lt;/a&gt; ( 508,946 次 ),  &lt;a href="http://of.openfoundry.org/projects/906"&gt;Wow! USB VirusKiller 可攜式儲存設備防毒軟體&lt;/a&gt; ( 734,802 次 ), &lt;a href="http://of.openfoundry.org/projects/333"&gt;新同文堂&lt;/a&gt; ( 1,149,864 次 ), &lt;a href="http://of.openfoundry.org/projects/905"&gt;Wow! USB Protector 可攜式儲存設備防毒偵測&lt;/a&gt; ( 8,389,615 次 ), 以及 &lt;a href="http://of.openfoundry.org/projects/744"&gt;PCMan&lt;/a&gt; 驚人的 104,258,467 次, 這數字即便在 Sourceforge.net 都很驚人. 另外兩個名列前茅的 USB 防毒相關計畫都是中研院同一個研發小組的成果, 所以計畫名稱基本上很類似.&lt;br /&gt;&lt;br /&gt;另外隨手附上 &lt;a href="http://sourceforge.net/"&gt;Sourceforge.net&lt;/a&gt; 在 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;2006&lt;/span&gt; 年左右的圖表, 詳細蒐集日期不太確定, 應該是 9 or 10 月左右. 當時共觀察 58794 個 Projects, 其中下載數量為 0 的有 20751 個 Projects, 約佔 35.29 %&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/S85M80apM-I/AAAAAAAAEDg/fZ1UMmsFCvA/s1600/sfnet-project-downloads-count-intervals.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 286px; height: 400px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/S85M80apM-I/AAAAAAAAEDg/fZ1UMmsFCvA/s400/sfnet-project-downloads-count-intervals.png" alt="" id="BLOGGER_PHOTO_ID_5462388005793248226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;這兩個圖表中, 感覺 Downloads 在 500, 5000, 以及 50000 次似乎有形成三個門檻的趨勢. 不過還需要再觀察, 以及設法跟 Project Lifetime 作交叉比對就是.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-5687706107511519479?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/5687706107511519479/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=5687706107511519479' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5687706107511519479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5687706107511519479'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/openfoundry-attack-project-downloads.html' title='OpenFoundry Attack (二)  Project Downloads'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BkTUsTLwHTo/S85Dk_gqvZI/AAAAAAAAEDY/9yMCa1mAHLc/s72-c/ossf-project-downloads-count-intervals.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-7210697897347519919</id><published>2010-04-20T15:11:00.021+08:00</published><updated>2010-04-20T15:59:51.020+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>OpenFoundry Attack (一) : Project Creation Statistics</title><content type='html'>因為現在好像沒用 &lt;a href="http://of.openfoundry.org/"&gt;OpenFoundry&lt;/a&gt; 的話國科會計畫會比較難過了的樣子, 既然這樣就來研究一下.&lt;br /&gt;&lt;br /&gt;不知道系列會寫多長, 也許到終於被禁止 crawling data 為止 ?  系列命名採自 Korea MBC Battle.net Attack -- 其實沒什麼意義, 純粹好玩又想不到要取甚麼.&lt;br /&gt;&lt;br /&gt;資料蒐集日 : 2010-04-20&lt;br /&gt;&lt;br /&gt;至資料蒐集日為止, OpenFoundry 上共有 1219 個專案, 但是專案編號事實上是從 1 ~ 1470, 換句話說其中有些專案已經因為某些原因被移除了 ( Deactivated ), 被移除的專案共有 241 個左右, 例如&lt;a href="http://of.openfoundry.org/projects/14"&gt;編號 14 的專案&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;自然資料蒐集就只有針對活動中的 1219 個專案. 而同時由於未知的原因, 我的 Crawling Tool 只能抓下其中 1201 個專案的資料, 不過數量已經相當接近了, 因此餘下的 18 個就當作沒看到 ( 其實是懶得一個一個去找 XD )&lt;br /&gt;&lt;br /&gt;把這 1201 個專案依照其 Creation Date ( 以 Month 為單位作收納 ) 來整理, 可以得到下面的分佈長條圖.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/S81XQAPNjFI/AAAAAAAAEBo/YpNGD3j3lfI/s1600/ossf-created-projects-by-month.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 272px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/S81XQAPNjFI/AAAAAAAAEBo/YpNGD3j3lfI/s400/ossf-created-projects-by-month.png" alt="" id="BLOGGER_PHOTO_ID_5462117855523605586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;很自然地會注意到幾個特別的分佈. 由於 Blogger 的顯示限制, 點選上圖可以看到比較清楚的 X  軸年月份標籤.&lt;br /&gt;&lt;br /&gt;其中在 2004 ~ 2006, 以 4 ~ 6 月為中心的 Project Creation 數目明顯比周圍的月份來的高, 2007 年整年相對普通, 而 2008 及 2009 年則是變成 9 ~ 10 月份有相對高檔, 特別是 2008 年 10 月份一舉超過單月 70 個新開設計畫.&lt;br /&gt;&lt;br /&gt;基本上一年之中 1 ~ 3 月新計畫的開設量少是可以理解的, 因為剛過完新年, 接近農曆年, 然後馬上又是四月初的春假, 這三個月正好是減溫到加溫中. 不過其他月份在 2008 以及 2009 年的反差實在有點大就是了. 話說&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;這兩年的 10 月究竟有甚麼特別的呢 ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;本來還想做一張 Creation Date 對上 Last File Update 的時間關係, 不過做到一半驚覺 OpenFoundry 有&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;未來檔案&lt;/span&gt;的問題. 例如 &lt;a href="http://of.openfoundry.org/projects/211"&gt;Simple PHP Blog 正體中文與補強計畫&lt;/a&gt; 的最新檔案日期是 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;2019-11-17&lt;/span&gt;, 另外也有 2030 年的, 這樣讓時間可靠性產生很大的問題, 所以還是摸摸鼻子算了.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/S81d3Za0IDI/AAAAAAAAEB4/VSuadumcAlE/s1600/ossf-future-files.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 230px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/S81d3Za0IDI/AAAAAAAAEB4/VSuadumcAlE/s400/ossf-future-files.png" alt="" id="BLOGGER_PHOTO_ID_5462125129367822386" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-7210697897347519919?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/7210697897347519919/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=7210697897347519919' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7210697897347519919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7210697897347519919'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/openfoundry-attack-project-creation.html' title='OpenFoundry Attack (一) : Project Creation Statistics'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BkTUsTLwHTo/S81XQAPNjFI/AAAAAAAAEBo/YpNGD3j3lfI/s72-c/ossf-created-projects-by-month.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-8549177415222944470</id><published>2010-04-14T23:17:00.020+08:00</published><updated>2010-04-15T09:44:55.089+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Tool'/><title type='text'>How Matplotlib and NetworkX Work Together : A Case Study on Figure Instances</title><content type='html'>最初是因為以下的 Code 讓我對這個問題有興趣. 這段簡單的程式碼 Matplotlib 以及 NetworkX 來合作畫圖. 其中  NetworkX 負責 Graph Model 的建立, 而 Matplotlib 則負責 Figure 繪圖的部份.&lt;br /&gt;&lt;br /&gt;&lt;textarea class="python" name="code" rows="50" cols="70"&gt;&lt;br /&gt;import networkx as nx&lt;br /&gt;import matplotlib.pyplot as plt&lt;br /&gt;&lt;br /&gt;def draw_graph():&lt;br /&gt;&lt;br /&gt;    plt.figure(num=1, figsize=(15,15))&lt;br /&gt;    &lt;br /&gt;    # create graph&lt;br /&gt;    graph = nx.Graph()&lt;br /&gt;    # adding nodes&lt;br /&gt;    graph.add_node('A', type='string_node')&lt;br /&gt;    graph.add_node('B', type='string_node')&lt;br /&gt;    graph.add_node('C', type='string_node')&lt;br /&gt;    # specify position&lt;br /&gt;    position = {'A':(3, 3), 'B':(2, 1), 'C':(1, 2)}&lt;br /&gt;    # prepare notes to be drawed&lt;br /&gt;    nodelist = [n for (n, d) in graph.nodes(data=True) if d['type'] == 'string_node']&lt;br /&gt;    nx.draw_networkx_nodes(graph, position, nodelist=nodelist, node_size=500, node_color = 'r', node_shape = 'o', alpha = 0.8)&lt;br /&gt;&lt;br /&gt;    plt.show()&lt;br /&gt;&lt;br /&gt;if __name__ == '__main__':&lt;br /&gt;    draw_graph()&lt;br /&gt;&lt;/textarea&gt;&lt;br /&gt;最後繪出的圖, 如同程式碼所指定的位置, 畫出三個圓點.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkTUsTLwHTo/S8ZWPeKJm8I/AAAAAAAAD_Y/AvGnhpq80GI/s1600/networkx-matplotlib-01.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 270px;" src="http://3.bp.blogspot.com/_BkTUsTLwHTo/S8ZWPeKJm8I/AAAAAAAAD_Y/AvGnhpq80GI/s320/networkx-matplotlib-01.png" alt="" id="BLOGGER_PHOTO_ID_5460146422026968002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;而我覺得程式碼有趣的地方在於, 細看程式碼, &lt;span style="font-weight: bold;"&gt;matplotlib.pyplot&lt;/span&gt; 只有在 line 6, 以及 line 20 被使用, 期間 line 9 到 line 18 都是  &lt;span style="font-weight: bold;"&gt;networkx&lt;/span&gt; 的運作.&lt;br /&gt;&lt;br /&gt;而, 在此 Script 中, &lt;span style="font-weight: bold;"&gt;networkx &lt;/span&gt;跟 &lt;span style="font-weight: bold;"&gt;matplotlib.pyplot&lt;/span&gt; 表面上是沒有任何互動的, 沒有任何 Message Passing 或是 Object Communication 出現. 如果單單依照此 Script 中的 Program Logic 作 Program Slicing, 或許就會被乾脆地切成兩個 Program Slices 了.&lt;br /&gt;&lt;br /&gt;不過想當然爾, 既然最後可以順利地畫出圖來, 這兩部份的程式碼肯定在背後有進行某種 Communication, 否則不可能在 &lt;span style="font-weight: bold;"&gt;networkx &lt;/span&gt;中建好 Graph Model, 在 &lt;span style="font-weight: bold;"&gt;matplotlib.pyplot &lt;/span&gt;中就知道要畫出甚麼樣的 Figure.&lt;br /&gt;&lt;br /&gt;經過漫長的 Code Tracing, 大致上可以把 Dependency Graph 整理如下圖 :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkTUsTLwHTo/S8ZrvC-iLsI/AAAAAAAAD_w/hM2dnVq9KWQ/s1600/matplotlib-neworkx-case1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 379px; height: 400px;" src="http://3.bp.blogspot.com/_BkTUsTLwHTo/S8ZrvC-iLsI/AAAAAAAAD_w/hM2dnVq9KWQ/s400/matplotlib-neworkx-case1.png" alt="" id="BLOGGER_PHOTO_ID_5460170054230486722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;其中比較關鍵的是 Matplotlib 在 Figure Management 上, 允許同時間有數個 Figure Instances 存在, 而目前要畫在哪個 Figure Instance 上, 則視乎目前哪個 Figure 被設定為 &lt;span style="font-weight: bold; font-style: italic;"&gt;Activated&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;在 &lt;span style="font-weight: bold;"&gt;plt.figure() &lt;/span&gt;中 ( 事實上為 &lt;span style="font-weight: bold;"&gt;matplotlib.pyplot.figure()&lt;/span&gt; ), 可以透過參數 num ( 可參考 &lt;a href="http://matplotlib.sourceforge.net/api/pyplot_api.html"&gt;Online Document&lt;/a&gt;, 即 Figure Instance Identity ) 指定要 activate 那一個 Figure Instance, 如果 Instance 不存在, 則會產生一個新的 Instance.&lt;br /&gt;&lt;br /&gt;而在綠色的流程中 ( 即程式碼 line 9 到 line 18 ), networkx 在 nx.draw_networkx_nodes 進行中會透過  &lt;span style="font-weight: bold;"&gt;matplotlib.pylab.gca &lt;/span&gt;取得目前為 &lt;span style="font-weight: bold; font-style: italic;"&gt;Activated&lt;/span&gt; 的 Figure Instance 其 ax object ( 座標軸物件 ), 之後透過 ax 把要畫出來的 nodes 加進去.&lt;br /&gt;&lt;br /&gt;最後 &lt;span style="font-weight: bold;"&gt;plt.show()&lt;/span&gt; 透過 &lt;span style="font-weight: bold;"&gt;matplotlib.backend_gtk &lt;/span&gt;把圖畫出來.&lt;br /&gt;&lt;br /&gt;這 Matplotlib 中的 Figure Instance 取用機制大體上是為什麼原本的 Code Script 中, 在乍看之下  &lt;span style="font-weight: bold;"&gt;networkx &lt;/span&gt;跟 &lt;span style="font-weight: bold;"&gt;matplotlib.pyplot &lt;/span&gt;&lt;span&gt;沒有&lt;/span&gt; Communication, 但是還是可以把圖畫出來的主要原因.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-8549177415222944470?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/8549177415222944470/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=8549177415222944470' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/8549177415222944470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/8549177415222944470'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/how-matplotlib-and-networkx-work.html' title='How Matplotlib and NetworkX Work Together : A Case Study on Figure Instances'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BkTUsTLwHTo/S8ZWPeKJm8I/AAAAAAAAD_Y/AvGnhpq80GI/s72-c/networkx-matplotlib-01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-2146335272198668370</id><published>2010-04-14T08:00:00.000+08:00</published><updated>2010-04-14T08:00:05.055+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software company'/><category scheme='http://www.blogger.com/atom/ns#' term='service oriented computing'/><title type='text'>Consultant Community Service</title><content type='html'>&lt;a href="http://www.readwriteweb.com/start/2010/04/get-quick-impression-latest-product-iteration-concept-feedback.php"&gt;RWW Report : &lt;span style="font-weight: bold;"&gt;Get Quick Impressions of Your Latest Product Iteration with Concept Feedback&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;又是一個從一個極端到另外一個極端的權衡.&lt;br /&gt;&lt;br /&gt;現在的 Web 環境, 讓我們可以很容易地, 無花費地把任何想法, 計畫, 設計, 產品, 介紹給任何人, 然後收取任何的多元意見. 缺點就是過程可能會極度沒有效率, 也沒有保證性的正面結果, ex. Yahoo Knowledge+&lt;br /&gt;&lt;br /&gt;當然, 花錢找顧問公司則是完全相對的作法, 是最有效率, 也可以得到保證性結果的作法. 缺點是顧問費用是一定要給的, 即便結果你不是那麼滿意.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.conceptfeedback.com/"&gt;ConceptFeedback&lt;/a&gt; 取了個中間的位置, 透過 "仲介" 具備一定水準的 Consultant Community, 來給予付費的顧問服務. 這之間自然就會有許多付費模型可以選擇. &lt;a href="http://www.conceptfeedback.com/"&gt;ConceptFeedback&lt;/a&gt; 是允許使用者選取三個 Best Advices 來給予實質的 Money Reward. 不過想來應該會允許使用者提高或增加 Reward 的數量, 畢竟如果是有價值的產品, 利用 &lt;a href="http://www.conceptfeedback.com/"&gt;ConceptFeedback&lt;/a&gt; 作為一個蒐集意見的平台也是值得的. 另外 &lt;a href="http://www.conceptfeedback.com/"&gt;ConceptFeedback&lt;/a&gt; 應該也有一些防止 Cheating 的機制才是.&lt;br /&gt;&lt;br /&gt;其實除了 Consultant 的實質功能之外, &lt;a href="http://www.conceptfeedback.com/"&gt;ConceptFeedback&lt;/a&gt; 整合了相當多過去的概念, 例如網路商業廣告 ( 還記得上一個網路泡沫之前, 滿天飛的 "邊上網看廣告邊賺錢" 嗎 ), 知識分享社群, 網路問卷調查服務, 網路拍賣平台 ( 管理與貨物提供者的責任分離 ) 等等.&lt;br /&gt;&lt;br /&gt;但相對來說, 就跟網路拍賣平台一樣, 可能會面臨容易出現強力競爭者的情形. 不知道 &lt;a href="http://www.conceptfeedback.com/"&gt;ConceptFeedback&lt;/a&gt; 或是其他的競爭者, 要用甚麼樣的策略來勝出 ? 跟有實力的 Consultants 具體簽約 ? 或是在 Profiling 上有過人之處 ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-2146335272198668370?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/2146335272198668370/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=2146335272198668370' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2146335272198668370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2146335272198668370'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/consultant-community-service.html' title='Consultant Community Service'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-6258486148082856675</id><published>2010-04-13T20:17:00.001+08:00</published><updated>2010-04-13T20:37:14.400+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='paper review'/><title type='text'>Online Web Service Monitoring based on Constraints from Requirements</title><content type='html'>The idea behind Wang et al.'s paper "An Online Monitoring Approach for Web Service Requirements" [1] is simple and useful. The challenges their study faced is to ensure the behavior of Web services consistent with their requirements. To achieve that, a monitoring approach is taken. They built a monitoring model including five specific system event types. Further, a monitoring framework is also built to providing probes, agents, and analysis components based on the monitoring model. In short, &lt;span style="font-weight: bold;"&gt;this study contributes an external behavior monitoring approach to ensure the Web service behavior to be consistent with requirements&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Extended Questions and Remarks:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Is the same chanllenge ever discussed in conventional software development, ex. CBSD ?&lt;/li&gt;&lt;li&gt;What's the trade-off applying this approach in practice ? ( required extra human resource, development and maintenance effot, and so on )&lt;/li&gt;&lt;li&gt;Can some constraints mentioned in this study be validated using Web service testing tools in development phases ?&lt;/li&gt;&lt;li&gt;The security issues behind this approach : Who can be the administrator and What services can be monitored ?&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[1]  Q. Wang, J. Shao, F. Deng, Y. Liu, M. Li, J. Han, and H. Mei, "An Online Monitoring Approach for Web Service Requirements," &lt;span style="font-style: italic;"&gt;IEEE Transactions on Service Computing&lt;/span&gt;, vol.2, no.4, pp.338-351, Oct./Dec. 2009&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-6258486148082856675?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/6258486148082856675/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=6258486148082856675' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6258486148082856675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6258486148082856675'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/online-web-service-monitoring-based-on.html' title='Online Web Service Monitoring based on Constraints from Requirements'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-8535856263470434482</id><published>2010-04-12T20:00:00.036+08:00</published><updated>2010-04-12T23:34:17.069+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Tool'/><title type='text'>Operating NS3 with Python</title><content type='html'>最近可能會要很奇怪地使用 NS2 來作一些 Simulation, 雖然還不是很確定需不需要使用, 最近趁空未雨綢繆一下.&lt;br /&gt;&lt;br /&gt;但, 說真的 NS2 雖然大量地被 Network Research 人員使用, 也有很多已高度開發的模組, 但是一來我需要的使用方式其實不是模擬傳統的 Network, 二來不熟悉的大量程式碼真是看不下去. 所以其實我早早就把目標鎖定在 NS3.&lt;br /&gt;&lt;br /&gt;NS3 的基本中文介紹在 &lt;a href="http://www.wretch.cc/blog/morechr/21766841"&gt;morechr 的 blog&lt;/a&gt; 很早就寫了, 不過一年半來中文的資料也沒增加多少, 想來 NS2 就足夠現在的研究人員使用了吧, 況且 NS3 的重點擺在完全地利用 Script 來操控, 許多需要利用到 Pointer 的模組應該短時間內也很難轉移. NS3 架構概圖  ( 取自 NS3 Official Site ) :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BkTUsTLwHTo/S8M5mL7Yx_I/AAAAAAAAD-4/3EHJtuR1Mr0/s1600/ns3-architecture.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 225px;" src="http://2.bp.blogspot.com/_BkTUsTLwHTo/S8M5mL7Yx_I/AAAAAAAAD-4/3EHJtuR1Mr0/s400/ns3-architecture.png" alt="" id="BLOGGER_PHOTO_ID_5459270501502863346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;但是對我來說, NS3 看起來似乎比 NS2 易用多了. 主要的操作介面已經提供 Python Binding, 也有實驗性的 &lt;a href="http://www.nsnam.org/wiki/index.php/PyViz"&gt;PyViz&lt;/a&gt; 模組. 光是安裝時一個 $&gt; python build.py 就感覺很爽快 : p&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/S8MQUAK6GlI/AAAAAAAAD-w/x5cXVvnp2B4/s1600/ns3-install.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 51px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/S8MQUAK6GlI/AAAAAAAAD-w/x5cXVvnp2B4/s400/ns3-install.png" alt="" id="BLOGGER_PHOTO_ID_5459225109132352082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;在 Tutorial 上, 我覺得 NS3 官方的 Tutorials 跟 Overview 投影片都很難讓我這初次接觸的人看懂, 倒是 &lt;a href="http://telecom.inescporto.pt/%7Egjc/NS-3-RTCM.pdf"&gt;G. Carneiro 的這份投影片&lt;/a&gt;(PDF 檔案) 我覺得做的不錯, 搭配 NS3 的 example/tutorial/first.py 程式碼, 一下子就可以了解個大概.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nsnam.org/wiki/index.php/PyViz"&gt;PyViz&lt;/a&gt; 模組最近的 ChangeLog 看的不是很明白, 照 &lt;a href="http://code.nsnam.org/gjc/ns-3.7-pyviz/rev/7d01151ae53b"&gt;changeset 5973&lt;/a&gt; 的訊息, 應該是已經 merge 到 NS 3.7.1 了才是. 但是實際下載 NS 3.7.1 看起來是沒有包含 PyViz 的, 所以或許他的意思是在 &lt;a href="http://code.nsnam.org/gjc/ns-3.7-pyviz/"&gt;http://code.nsnam.org/gjc/ns-3.7-pyviz/&lt;/a&gt; 底下 merge 了 NS 3.7.1 , 一番嘗試最後還是使用  &lt;a href="http://www.selenic.com/mercurial/"&gt;Mercurial&lt;/a&gt; 複製了一份 &lt;a href="http://code.nsnam.org/gjc/ns-3.7-pyviz/"&gt;http://code.nsnam.org/gjc/ns-3.7-pyviz/&lt;/a&gt; 下來. ( 請跟 ns-allinone 分開 )&lt;br /&gt;&lt;br /&gt;在 PyViz 的網站說明中, 提到要再跟最新的 NS3 作 merge 的動作. 不過因為 clone 下來的 ns-3.7-pyviz 已經被開發人員進行過 merge 了, 就不需要再做一次.&lt;br /&gt;&lt;br /&gt;使用 PyViz 還需要額外安裝許多模組, 除了基本的 Graphviz 之外, 還有 PyViz 頁面中提到的 pygraphviz, kiwi ... 等等. Ubuntu 的使用者安裝似乎比較方便, 可憐的 Mandriva 使用者 ( 而且還是 MDV 2008 = = ) 就直接乖乖自己安裝吧.&lt;br /&gt;&lt;br /&gt;其中&lt;br /&gt;&lt;ul&gt;&lt;li&gt;pygraphviz 可以利用 easy_install 從 pypi 安裝,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;python-kiwi 直接從 Package Manager 找出來裝 ( 不要直接找 &lt;a href="http://pypi.python.org/pypi/Kiwi/0.8.3"&gt;Kiwi&lt;/a&gt; 來裝, 不一樣的東西 &lt;= 犯錯的笨蛋 ), &lt;a href="https://launchpad.net/kiwi"&gt;python-kiwi / Kiwi framework&lt;/a&gt; 是連接 GTK+ 的套件&lt;br /&gt;&lt;/li&gt;&lt;li&gt;PyGoocanvas 也沒辦法從 pypi 安裝, 但是手動安裝要補充的套件太多, 相當麻煩, 最後我選擇從 MDV Package Manager 裝比較舊版本 0.9.0 的套件 ( 目前最新為 0.14 ), 反正這是 GTK+ 跟 GooCanvas 的 Binding Package, 從 Package Manager 裝可能還比較安全&lt;/li&gt;&lt;li&gt;python-gnome2 也是從 Package Manager 裝, 但是在 MDV 裡面似乎是叫做 gnome-python 套件&lt;/li&gt;&lt;li&gt;python-gnomedesktop 我猜測是等同於 MDV 裡的 gnome-python-desktop 套件&lt;/li&gt;&lt;li&gt;python-rsvg 在 MDV 底下真的找不到東西裝了, 猜測是裝在 &lt;a href="http://www.cairographics.org/download/"&gt;pycairo&lt;/a&gt; 裡, 這之前透過 Package Manager 裝過了&lt;/li&gt;&lt;li&gt;最後記得到 &lt;a href="http://code.google.com/p/pybindgen/"&gt;pybindgen&lt;/a&gt; 抓取 1.14.0 版本 ( ns-3.7-pyviz 需求 ), 解壓縮到 ns-3.7-pyviz 底下&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;接著在 ns-3.7-pyviz 底下執行 :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$&gt; ./waf configure --with-pybindgen=./pybindgen-1.14.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$&gt; ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;首次執行因為要重新 build 整個 ns-3.7-pyviz 所以要跑一段時間. 最後還是出現幾個小問題,&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;缺少 libgraphviz.so.4 , 因為我的 MDV 2008 裡面只有裝 libgraphviz3 , 所以又更新了 libgraphviz4 .&lt;/li&gt;&lt;li&gt;找不到 gnomedesktop module, 此模組不知道為什麼被藏在 gnome-python-applet 套件裡, 同樣從 Package Manager 裝上&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;再重新跑一次:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$&gt; ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;這樣一番折騰 ( 所謂的 Dependency Hell 阿 ) 終於把 PyViz 跑起來了.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/S8M50XBGOtI/AAAAAAAAD_A/FNiH5ZZLxJg/s1600/ns3-pyviz-01.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 362px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/S8M50XBGOtI/AAAAAAAAD_A/FNiH5ZZLxJg/s400/ns3-pyviz-01.png" alt="" id="BLOGGER_PHOTO_ID_5459270744997771986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;左下角有一個 Advanced 延伸調整選單可以展開, 右下角有 Snapshot, Shell, 以及 Simulate 命令. Snaphot 可以擷取目前截圖存成 PDF 檔案, Shell 可以開啟動態 Manipulation Command Line, 在 PyViz 的說明中有提到. Simulate 就是開始進行 Simulation 的命令.&lt;br /&gt;&lt;br /&gt;以下是進行中的畫面, 懶得錄下來放到 Youtube, 截圖就好 XD&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/S8M5655Uu-I/AAAAAAAAD_I/HWOLt-SVPbo/s1600/ns3-pyviz-02.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 359px; height: 400px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/S8M5655Uu-I/AAAAAAAAD_I/HWOLt-SVPbo/s400/ns3-pyviz-02.png" alt="" id="BLOGGER_PHOTO_ID_5459270857439624162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;可以調整 Zoom 以及速度, 方便檢視 Simulation 可能出錯的地方.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/S8M6BZFZnCI/AAAAAAAAD_Q/eoSS6aK3zE4/s1600/ns3-pyviz-03.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 360px; height: 400px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/S8M6BZFZnCI/AAAAAAAAD_Q/eoSS6aK3zE4/s400/ns3-pyviz-03.png" alt="" id="BLOGGER_PHOTO_ID_5459270968890989602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;初步的嘗試大概到此為止, 花了不少時間跟功夫, 不過至少有成功執行. 通常這樣的嘗試超過一半的機會最後是不了了之的 : p&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-8535856263470434482?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/8535856263470434482/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=8535856263470434482' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/8535856263470434482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/8535856263470434482'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/operating-ns3-with-python.html' title='Operating NS3 with Python'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BkTUsTLwHTo/S8M5mL7Yx_I/AAAAAAAAD-4/3EHJtuR1Mr0/s72-c/ns3-architecture.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-6235018047868961285</id><published>2010-04-11T20:00:00.008+08:00</published><updated>2010-04-11T20:00:02.563+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software game'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='service oriented computing'/><title type='text'>Continuous Game Content Provision</title><content type='html'>今天看到 Nintendo 跟 Google 合作的遊戲&lt;a href="http://www.nintendo.co.jp/wii/rk3j/"&gt;安藤ケンサク&lt;/a&gt;, 雖然看不太懂遊戲的進行方式, 但是從少量 blogs 跟 forums 的簡短說明, 大致上可以知道跟 Search Engine 的 Search Keywords 有關, 利用 Google 在 Search Engine 上所累積的統計資料來產生新型態的 Q/A 遊戲, 最大的特點是問題的答案可能會隨著時間改變 -- 因為 Google Search Engine 所累積的資料也在變動中.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/S8GT38jlm4I/AAAAAAAAD-Y/0S3ZncIw2uQ/s1600/ando-nintendo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 197px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/S8GT38jlm4I/AAAAAAAAD-Y/0S3ZncIw2uQ/s320/ando-nintendo.png" alt="" id="BLOGGER_PHOTO_ID_5458806812707232642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;緊接著又在 JustineTV 看到人家在玩&lt;a href="http://www.heavyrainps3.com/"&gt;暴雨殺機 ( Heavy Rain )&lt;/a&gt;, OMG, 我真的脫離新遊戲太久 這遊戲的畫面真棒, 運鏡跟電影拍攝手法好像. 剛好看到玩家操縱的角色在房間裡探索, 看起來應該是遊戲初期, 中間有一度打開電視, 看到跟案件劇情相關的新聞報導, 然後把電視關掉.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/S8GVXkrTEJI/AAAAAAAAD-g/ACehz8To8Og/s1600/heavy-rain.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 174px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/S8GVXkrTEJI/AAAAAAAAD-g/ACehz8To8Og/s320/heavy-rain.png" alt="" id="BLOGGER_PHOTO_ID_5458808455564562578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;這在一般追線索的解謎遊戲中常常看到類似的橋段, 但是今天我卻忍不住再想, 如果再打開電視一次會怎樣 ?&lt;br /&gt;&lt;br /&gt;遊戲的 NPC 或裝置 ( 包含電視 ), 通常都是有固定集合的對話或是資料, 為了避免太死板, 又會循環或亂數出現這些對話. 但從&lt;a href="http://www.nintendo.co.jp/wii/rk3j/"&gt;安藤ケンサク&lt;/a&gt;的例子, 是否我們可以開始考慮跳脫這樣的限制, 讓遊戲更加跟已經有的 Online Data 作結合 ?&lt;br /&gt;&lt;br /&gt;例如上面的開電視, 如果遊戲本身把該電視跟 Youtube 或其他 Onlive Vedio Service 作結合, 就可能在重開時看到其他的新聞, 這樣似乎也會很有趣 :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-6235018047868961285?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/6235018047868961285/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=6235018047868961285' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6235018047868961285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6235018047868961285'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/continuous-game-content-provision.html' title='Continuous Game Content Provision'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BkTUsTLwHTo/S8GT38jlm4I/AAAAAAAAD-Y/0S3ZncIw2uQ/s72-c/ando-nintendo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-7745371344887694446</id><published>2010-04-11T08:29:00.017+08:00</published><updated>2010-06-03T14:21:54.455+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Cloud Computing Bibliography for Software Engineering</title><content type='html'>All bibliography articles were made available online before 2010-04-10.&lt;br /&gt;&lt;br /&gt;This survey covers only &lt;span style="font-weight: bold;"&gt;representative Conferences and Journals&lt;/span&gt; in software engineering and cloud computing domain. All articles were retrieved by keyword "cloud computing".  Surprisingly, literature &lt;span style="font-weight: bold;"&gt;directly&lt;/span&gt; related to "cloud computing" and "software engineering" is still rare.&lt;br /&gt;&lt;br /&gt;J. Cappos et al. developed a cloud computing education environment &lt;a href="https://seattle.cs.washington.edu/html/"&gt;"Seattle"&lt;/a&gt; [1][14] (Thanks to &lt;a href="http://www.blogger.com/profile/09070674562321387526"&gt;Ivan&lt;/a&gt;). &lt;strike style="color: rgb(153, 153, 153);"&gt;Unfortunately I did not find further information about "Seattle"&lt;/strike&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;.&lt;/span&gt;  On the other hand, Eucalyptus is used in E. Caron et al. work [11]. Maybe Eucalyptus will be a good start for cloud computing practice for those who have no resources accessing Amazon S3/EC2, or limited by Google GAE.&lt;br /&gt;&lt;br /&gt;E. M. Maximilien et al. [2][3] revealed a part of IBM's directions to the cloud computing. The idea to build cloud-agnostic middleware is definitely not new. Is not Hardware-Server-PHP-MySQL-PHPWebsite similar to this solution ? Of course the scale is totally different, but the middleware idea is basically the same.&lt;br /&gt;&lt;br /&gt;Some considerable statement can be found in ACM roundtable series on cloud computing [6]. For example, G. Ramleth, CIO of Bechtel, said : "This is not a technology game but a change-management game."&lt;br /&gt;&lt;br /&gt;L.-J. Zhang et al. tried to pull cloud computing back to connect with service-oriented computing / SOA [7]. Some other related work can be found in &lt;a href="http://thecloudcomputing.org/"&gt;International Conference on Cloud Computing&lt;/a&gt; ( &lt;a href="http://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1002911"&gt;IEEEXplorer link here&lt;/a&gt; ).&lt;br /&gt;&lt;br /&gt;Althoug the data service is one of the ealiest applications in service-oriented computing and cloud computing, there seems still much to do in this field [8][9].  Same as the study of cloud computing in the end user living environment [4][12]. Is that cloud computing the game of IT companies ? Or the users will be forced to involve in the cloud computing ? To this issue, A. Lenk et al. [13] organized the cloud stack and adds an extra layer : Human-as-a-Service (HuaaS) which is not general mentioned in other studies. Unfortunately, no further discussion is made.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Bibliography&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[1]   J. Cappos, I. Beschastnikh, A. Krishnamurthy, and T. Anderson, "Seattle: A Platform for Educational Cloud Computing," &lt;span style="font-style: italic;"&gt;SIGCSE&lt;/span&gt;, pp.111-115, Mar. 2009&lt;br /&gt;&lt;br /&gt;[2]   E. M. Maximilien, A. Ranadahu, R. Engehausen, and L. C. Anderson, "Toward Cloud-Agnostic Middlewares," &lt;span style="font-style: italic;"&gt;OOPSLA&lt;/span&gt;, pp.619-625, 2009&lt;br /&gt;&lt;br /&gt;[3]  E. M. Maximilien, A. Ranadahu, R. Engehausen, and L. C. Anderson, "IBM Altocumulus: Across-Cloud Middleware and Platform," &lt;span style="font-style: italic;"&gt;OOPSLA&lt;/span&gt;, pp.805-806, 2009&lt;br /&gt;&lt;br /&gt;[4]  C. Ragusa, F. Longo, and A. Puliafito, "Experiencing with the Cloud over gLite," &lt;span style="font-style: italic;"&gt;Proceedings of the 2009 ICSE Workshop on Software Engineering Challenges of Cloud Computing&lt;/span&gt;, pp.53-60, 2009&lt;br /&gt;&lt;br /&gt;[5]  J. S. Rellermeyer, M. Duller, and G. Alonso, "Engineering the Cloud from Software Modules," &lt;span style="font-style: italic;"&gt;Proceedings of the 2009 ICSE Workshop on Software Engineering Challenges of Cloud Computing&lt;/span&gt;, pp.32-37, 2009&lt;br /&gt;&lt;br /&gt;[6]  M. Creeger, "CTO Roundtable: Cloud Computing," &lt;span style="font-style: italic;"&gt;CACM&lt;/span&gt;, vol.52, no.8, pp.50-56, Aug. 2009&lt;br /&gt;&lt;br /&gt;[7]  L.-J. Zhang and Q. Zhou, "CCOA: Cloud Computing Open Architecture," &lt;span style="font-style: italic;"&gt;ICWS&lt;/span&gt;, pp.607-616, 2009&lt;br /&gt;&lt;br /&gt;[8]  M. Vrable, S. Savage, and G. M. Voelker, "Cumulus: Filesystem Backup to the Cloud," &lt;span style="font-style: italic;"&gt;ACM Transactions on Storage&lt;/span&gt;, vol.5, no.4, article 14, Dec. 2009&lt;br /&gt;&lt;br /&gt;[9]  R. Agrawal et al. "The Clarement Report on Database Research," CACM, vol.52, no.6, pp.56-65, June 2009&lt;br /&gt;&lt;br /&gt;[11]  E. Caron, F. Desprez, and D. Loureiro, "Cloud Computing Resource Management through a Grid Middleware: A Case Study with DIET and Eucalyptus", International Conference on Cloud Computing, pp.151-154, 2009&lt;br /&gt;&lt;br /&gt;[12]  K. Kumar and Y.-H. Lu, "Cloud Computing for Mobile Users: Can Offloading Computation Save Energy ?"  &lt;span style="font-style: italic;"&gt;IEEE Computer&lt;/span&gt;, preprint, Mar 2010&lt;br /&gt;&lt;br /&gt;[13]  A. Lenk, M. Klems, J. Nimis. S. Tai, and T. Sandholm, "What's Inside the Cloud ? An Architectural Map of the Cloud Landscape," &lt;span style="font-style: italic;"&gt;Proceedings of the 2009 ICSE Workshop on Software Engineering Challenges of Cloud Computing&lt;/span&gt;, pp.23-31, 2009&lt;br /&gt;&lt;br /&gt;[14] Seattle, https://seattle.cs.washington.edu/html/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-7745371344887694446?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/7745371344887694446/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=7745371344887694446' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7745371344887694446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7745371344887694446'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/cloud-computing-bibliography-for.html' title='Cloud Computing Bibliography for Software Engineering'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-9008990000458227312</id><published>2010-04-10T13:37:00.008+08:00</published><updated>2010-04-11T07:33:21.971+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>CCE Posters</title><content type='html'>大約兩個禮拜前我幫成大電通所做的兩張海報終於印好公開展示了 :)&lt;br /&gt;&lt;br /&gt;這海報是要把成果展示給高中生看的 ( 話說為什麼要作這種事阿 = = ) 當初我申請入學的時候怎就沒有這等待遇... 現在既有交通車, 還有午餐點心, 還有教授解說...&lt;br /&gt;&lt;br /&gt;Here's the original design of the two posters :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/S8APw06e0KI/AAAAAAAAD-A/2I2BRQ95iZ0/s1600/cce-poster160dpi.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 461px; height: 319px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/S8APw06e0KI/AAAAAAAAD-A/2I2BRQ95iZ0/s400/cce-poster160dpi.png" alt="" id="BLOGGER_PHOTO_ID_5458380079885111458" border="0" /&gt;&lt;/a&gt;左邊黑色那張是用 &lt;a href="http://colors.ee.ncku.edu.tw:8080/projects/simple.html"&gt;SE4PP/SIMPLE&lt;/a&gt; 為主設計的 ( &lt;a href="http://headfirstlabs.com/"&gt;Head-First&lt;/a&gt; 風格 XD ), 右邊那張是&lt;a href="http://nsda.ee.ncku.edu.tw/index.htm"&gt;林輝堂老師 NSDA 實驗室&lt;/a&gt;的天使之眼, 加上&lt;a href="http://smile.ee.ncku.edu.tw/"&gt;詹寶珠老師 SMILE 實驗室&lt;/a&gt;提供的部份計畫材料完成的. 其他 Lab. 沒提供材料就沒辦法摟~&lt;br /&gt;&lt;br /&gt;本來覺得藍黃底色配色很普通有點擔心, 但是其實出來的效果還不錯.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BkTUsTLwHTo/S8ARxtWU2uI/AAAAAAAAD-I/DKC73p7h0uU/s1600/poster-pressed.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 454px; height: 302px;" src="http://1.bp.blogspot.com/_BkTUsTLwHTo/S8ARxtWU2uI/AAAAAAAAD-I/DKC73p7h0uU/s400/poster-pressed.png" alt="" id="BLOGGER_PHOTO_ID_5458382294057540322" border="0" /&gt;&lt;/a&gt;左邊那張被實驗室的 DC 照醜了, 其實做出來的質感搭配木框很不錯, 右邊的漸層效果也很不錯, 唯一的缺點是 NSDA 的 Logo 可能因為輸出軟體跟 Inkscape 在解讀透明圖層上有點差異, 結果變成了色塊了, 不然那邊應該也是漸層的.&lt;br /&gt;&lt;br /&gt;兩張一起照, 這張看起來好點 :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BkTUsTLwHTo/S8ASztfSQfI/AAAAAAAAD-Q/iC1Pf-W-5LE/s1600/IMG_5178-resize.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_BkTUsTLwHTo/S8ASztfSQfI/AAAAAAAAD-Q/iC1Pf-W-5LE/s400/IMG_5178-resize.jpg" alt="" id="BLOGGER_PHOTO_ID_5458383427966484978" border="0" /&gt;&lt;/a&gt;稍微看了一下其他組的, 覺得還是自己做的這兩張好, 其他很都多都只是貼圖跟文字資料, 還有只有精神標語的, 以及錯別字錯很大的 XD&lt;br /&gt;&lt;br /&gt;海報製作除了 DBSE 實驗室自家材料以及兩個實驗室支援的材料, 純粹使用&lt;span style="font-weight: bold;"&gt; Inkscape, GIMP, cwTeX 字體, OpenClipArt 素材&lt;/span&gt;加以修改, 十分感謝 :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-9008990000458227312?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/9008990000458227312/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=9008990000458227312' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/9008990000458227312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/9008990000458227312'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/cce-posters.html' title='CCE Posters'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BkTUsTLwHTo/S8APw06e0KI/AAAAAAAAD-A/2I2BRQ95iZ0/s72-c/cce-poster160dpi.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-4733049786457933711</id><published>2010-04-10T06:00:00.000+08:00</published><updated>2010-04-10T06:00:04.282+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='conferences'/><title type='text'>A Very Very Short CSCST 2010 Review</title><content type='html'>前幾個禮拜, 3/27, 3/28 到圓山參加 CSCST 2010, 簡短作個紀錄. ( 聽說第一天 Prof. Jane 跟金仲達教授的 Panel 戰很大 -- 當然不是這兩位戰啦, 沒跟到真是可惜 : p )&lt;br /&gt;&lt;br /&gt;因為時間還有我的新西裝修改不及等因素, 第一天只有到最後的 &lt;span style="font-weight: bold;"&gt;Cloud Computing&lt;/span&gt; Panel, 值得記下東西不多. 老師在 Cloud Computing Panel 的總結在 Lab. 會議就已經聽過了, 其他除了台大劉邦峰教授相當 "中肯" 的 "擔憂" 之外, 大多聽起來並無新意, 只是把就有的研究方向拉上 Cloud Computing, 除非有更深切的動機, 這樣作的意義其實不大.&lt;br /&gt;&lt;br /&gt;第二天一早的 &lt;span style="font-weight: bold;"&gt;Software Technology for Green Environment&lt;/span&gt; Panel 也差不多, 主要提到的 Smart Traffic Control System, Algorithm Improvement, Multi-Core Processors, Cloud Computing 是都可以跟 Green Environment 扯上關係啦, 但是我個人覺得 Green Environment 不等於 Energy Saving 以及 Environment Protection, 而且應該跟日常生活更加緊密的結合才對. 舉例來說好了, 垃圾分類之所以難達成, 很大的原因是因為人都很懶, 丟在一起比較方便, 這也是事實. 現在垃圾分類的政策是要求使用者要分類, 也就是要改變原本大家都丟在一起的行為 ( Behavior ).&lt;br /&gt;&lt;br /&gt;Rule 101 : DO NOT TRY TO CHANGE THE USER BAHAVIOR IN THE BEGINNING&lt;br /&gt;&lt;br /&gt;為什麼就沒人想結合控制跟影像辨識, 在合理的花費下研究自動的垃圾分類機制. 或許機制無法完美, 但是清潔人員要花的功夫就更少, 這樣不是也不錯 ?&lt;br /&gt;&lt;br /&gt;另外對岸一位女教授 ( 抱歉因為 Panelists 沒有在 Program 上列出名單, 當場記不得 ) 稍微提到 :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Will the environment protection and weather concern become the       “new” non-functional requirement ( constraint ) ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;其實這兩種 "Forces" 一直都在 Requirement Engineering 中, 只是份量不重, 因此我認為更適切的問題是, 是否這兩種 "Forces" 會被更加嚴格地要求並在 Spec. 中變得更加重要 ? 不過這個話題在這樣的 Panel 自然只是一閃而過沒有被深入討論.&lt;br /&gt;&lt;br /&gt;第二場的 Panel 主題是 Software Tool and Environments. 主持人是對岸的董淵教授.&lt;br /&gt;&lt;br /&gt;董教授一開始的開場很有意思, 提到 Environments 的雙關性 ( 特地加了複數形 "s" ), 不過基本上整場 Panel 都只在討論 Programmer 所認知的 "Environment" 而已, 真是多虧了董教授一開始有意思的開場. 前半段討論的一些事項在我看來非常的瑣碎, 而且不如說更偏向 "Software Running Environment" 的討論, 直到清大的白曉穎教授提到工具的量與質, 還有是否我們需要如此多工具, 有如此多工具但是 Software Development Process 還是充滿了困難等問題時才有趣一些.&lt;br /&gt;&lt;br /&gt;後面我自己的 Regular Presentation, 以及後來額外聽了一場 Presentation, 都覺得沒什麼特別可以提得, 有些甚至只是前幾年已經提過了的東西.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-4733049786457933711?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/4733049786457933711/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=4733049786457933711' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4733049786457933711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4733049786457933711'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/very-very-short-cscst-2010-review.html' title='A Very Very Short CSCST 2010 Review'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-5910383916369714752</id><published>2010-04-09T22:04:00.001+08:00</published><updated>2010-04-09T22:04:00.890+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software company'/><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><category scheme='http://www.blogger.com/atom/ns#' term='programming learning'/><title type='text'>Game-based Competitive Learning</title><content type='html'>News from &lt;a href="http://www.gamepro.com/"&gt;GamePro&lt;/a&gt; : &lt;a href="http://www.gamepro.com/article/news/214467/professor-swaps-grades-for-xp/"&gt;Game design professor beta tests a new grading system&lt;/a&gt; ( &lt;a href="http://www.indiana.edu/%7Etelecom/people/faculty/sheldon.shtml"&gt;Prof. Lee Sheldon&lt;/a&gt;'s project )&lt;br /&gt;&lt;br /&gt;It's not a noval idea, but always an interesting practice.&lt;br /&gt;&lt;br /&gt;我還記得唸大學時, 聽過成大資工的密碼學課程, 期末的 Final Project 是要各組設計一套 Public Key/Private Key 機制, 然後互相嘗試攻擊, 被攻破的組別會被扣除一定分數, 相對來說攻破其他組則會加一定分數, 當時就覺得這樣作很有趣. 類似的概念我最早接觸到應該是國小時看 MacGyver, 其中有一集是大學生各自設計獨特的門鎖, 也是要設法突破對方的設計. 我們 Lab. 也早在幾年前就開始嘗試 &lt;a href="http://colors.ee.ncku.edu.tw:8080/projects/simple.html"&gt;Game-based Programming Learning&lt;/a&gt; 給大一學生.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://colors.ee.ncku.edu.tw:8080/resources/allinstrategy-snapshot.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 360px;" src="http://colors.ee.ncku.edu.tw:8080/resources/allinstrategy-snapshot.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;多元的上課跟訓練方式絕對是好事, 但是難免會受到設計品質跟評量標準一致性的限制. 但是話說回來, 出了學校, 哪裡還有一致的評量標準呢...&lt;br /&gt;&lt;br /&gt;不過換個角度來想, 如果不要把眼光侷限在傳統學校內, 而是放到更加專業的公司訓練課程, 或許很有發展空間. 許多公司的工作其實充滿大量的 routine work, 有遠見的老闆會設法保持員工的活力, 如果有專門的課程訓練公司, 可以為不同種類的公司及團體設計特殊, 有趣的學習課程, 而不是像目前許多應付了事的電腦職訓課程, 或許意外地有商機 ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-5910383916369714752?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/5910383916369714752/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=5910383916369714752' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5910383916369714752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5910383916369714752'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/game-based-competitive-learning.html' title='Game-based Competitive Learning'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-7414320474813393419</id><published>2010-04-09T11:49:00.005+08:00</published><updated>2010-04-09T12:07:31.089+08:00</updated><title type='text'>Johnny Mnemonic Again</title><content type='html'>看到這個 &lt;a href="http://www.readwriteweb.com/archives/do_crew_augmented_reality_cartoons_help_get_kids_o.php"&gt;Do Crew (RWW 連結)&lt;/a&gt; , 一定要再提一次經典的 &lt;a href="http://www.imdb.com/title/tt0113481/"&gt;Johnny Mnemonic&lt;/a&gt;  啊. 當初基諾李維的操控, 過了 15 年之後, 連小孩子用的設備跟效果都比當初好了.&lt;br /&gt;&lt;br /&gt;&lt;span style="text-align: center; display: block;"&gt;&lt;object height="324" width="400"&gt;&lt;param name="movie" value="http://www.youtube.com/v/R-VokLUANAs&amp;amp;hl=zh_TW&amp;amp;fs=1&amp;amp;border=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/R-VokLUANAs&amp;amp;hl=zh_TW&amp;amp;fs=1&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="324" width="400"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;Johnny Mnemonic 跟珊卓布拉克的 &lt;a href="http://www.imdb.com/title/tt0113957/"&gt;The Net&lt;/a&gt; 是個人認為好萊塢早期引入具體的電腦科技想像, 最重要的兩個嘗試, 雖然兩部片評價都很低, 也讓在 Speed 中紅起來的兩人各自迎接第一個低潮期...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-7414320474813393419?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/7414320474813393419/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=7414320474813393419' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7414320474813393419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7414320474813393419'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/johnny-mnemonic-again.html' title='Johnny Mnemonic Again'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-6187270221411944538</id><published>2010-04-09T08:57:00.007+08:00</published><updated>2010-04-11T11:54:31.833+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='system and software analysis'/><title type='text'>Platform Selection in System Analysis - About Apple's Policy</title><content type='html'>&lt;a href="http://mashable.com/"&gt;Mashable&lt;/a&gt; news article : "&lt;a href="http://mashable.com/2010/04/08/apple-adobe-flash-compiler/"&gt;The Apple-Adobe War Escalates: Using Flash to Build iPhone Apps Banned&lt;/a&gt;" brings me an interesting thought.&lt;br /&gt;&lt;br /&gt;在 System Analysis 或決定 Software Features 的時期, Platform 的選擇一直是一個很重要的考量因素 ( Factor ). 不過在一般的系統中, Platform 往往被過份忽略 -- 因為我們主要的選擇就是那些, 同時看起來對後面的 Software Development Phases 很少有極具限制性的影響. 大部分時候, 似乎主要的限制都是還來自於問題本身 ( 例如 Embedded Systems 中的資源限制, 可用背景函數限制 ), 而不是受限於 Platform 的選擇.&lt;br /&gt;&lt;br /&gt;而在 Windows / Linux ... 層級的作業系統 Platform 選擇上, 真正會影響到一般 Apps 開發的因素就又更少了. 於是我們在 Software Development Phases 有很高的自由度去決定其他的事情, 例如可用的 Framework, API, Programming Languages, Compilers 等等.&lt;br /&gt;&lt;br /&gt;但是 Apple 的限制提供了一個反向思考, 是否我們真的一定需要有如此高的自由度 ? 限制越多, 是否 Software Development Process 可以越簡單 ? 以及選擇 Platform 在開發限制上的影響對比更重要的商業利益, 是否的確微不足道 ?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;增加延伸分析連結, 2010-04-11 : &lt;a href="http://daringfireball.net/2010/04/why_apple_changed_section_331"&gt;http://daringfireball.net/2010/04/why_apple_changed_section_331&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-6187270221411944538?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/6187270221411944538/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=6187270221411944538' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6187270221411944538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6187270221411944538'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/platform-selection-in-system-analysis.html' title='Platform Selection in System Analysis - About Apple&apos;s Policy'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-5328831955392748379</id><published>2010-04-08T15:15:00.008+08:00</published><updated>2010-04-08T16:22:55.131+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software game'/><title type='text'>Online Game that Requires Specialists...</title><content type='html'>昨晚在看 &lt;a href="http://www.syfy.com/caprica/"&gt;Caprica&lt;/a&gt; 時, 想到一個很有趣的對比.&lt;br /&gt;&lt;br /&gt;Caprica 是 &lt;a href="http://www.syfy.com/battlestar/"&gt;Battlestar Galactica&lt;/a&gt; 的前傳, 講述複製人 ( Cylon ) 的誕生以及疑似毀滅 12 Colonies 的計畫起源. 不過這劇情在此無關緊要. 在 Caprica 中, 女主角 Zoe 的父親 Daniel 所開設的公司透過 AI 以及全息影像技術, 發明了 "Holo-Bands", 類似眼鏡的裝置, 不過戴上時要閉起眼睛, 透過該裝置給予眼睛的刺激來讓使用者置身虛擬世界 ( VR ). 我覺得這篇 &lt;a href="http://singularityhub.com/2010/02/11/technology-from-caprica-series-on-scyfy-is-already-here/"&gt;Singularity Hub 上的簡介&lt;/a&gt;寫的不錯, 不需要知道劇情, 只要對目前的相關技術略知一二即可對照.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.syfy.com/caprica/images/photos/zoe_graystone/05.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 450px;" src="http://www.syfy.com/caprica/images/photos/zoe_graystone/05.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;有這樣的技術跟裝置, 當然衍生出很複雜的虛擬遊戲世界. 但是不同於目前的 Online Game, 在 Caprica 中的虛擬世界是很嚴峻的, 你在每一個虛擬世界中死亡的話, 將永遠不能再次進入該虛擬世界, 因此真人跟自己的 "Avatar" 是 One-to-One 的對比.&lt;br /&gt;&lt;br /&gt;而在這樣的設定下, 當你必須在該遊戲中達成某項任務或是目的時, 非常有可能是你一個新加入的人作不到的 ( 例如要在充滿黑幫的市區中找尋特定角色, 同時該市區還不斷地被飛空艇轟炸 = = ). 而遊戲本身也不會給予你的 Avatar 任何特殊技能 -- 說穿了你的 Avatar 跟本人在一開始的能力是完全一樣的.&lt;br /&gt;&lt;br /&gt;因此在 Eposide 106/107 的劇情中, 某劇中角色就需要在遊戲中僱用類似傭兵/領路人的角色 ( 也是真實世界中的某人 ), 然後付費給真實世界中的玩家, 來完成找人的任務.&lt;br /&gt;&lt;br /&gt;這樣的模式跟目前 Online Game 會有上班族花錢請人練角色等級看起來很像, 但是這兩種遊戲在設計本質上有極大的差別.  ( 當然, 兩者所預設面對的 "Problems/Requirements" 其實也是不一樣的 )&lt;br /&gt;&lt;br /&gt;在一般的遊戲設計中, &lt;span style="font-weight: bold;"&gt;Challenge Levels&lt;/span&gt; 的規劃是一項很重要的議題, 通常會避免只有單一的 Challenge Level ( 遊戲極簡單或是極難的情況 ). 當然這也是要視情況而定, 例如很多小遊戲本來就只想你花幾分鐘玩完就算了, 達到宣傳或其他效果就好, 這樣的 Challenge Level 就單一且極低. 但是 Caprica 中的遊戲, 其 Challenge Level 在我看來是極高的, 在那樣的世界中, 單獨一個人的生存率極低, 而依靠已經成功在該世界中生存下來的專家 ( Specialists ) 才會有比較高的存活率.&lt;br /&gt;&lt;br /&gt;這樣的 Game 在現在的 Online Game 觀念中應該很難賣, 也不可能被做出來賣吧 ( 想像你在 Diablo II 中的角色, 死亡一次就掰掰要整個從新世界玩起... ), 但對某些人來說卻是刺激度滿點的遊戲, 同時這時候遊戲中的合作嚴謹度也可能會完全不一樣.&lt;br /&gt;&lt;br /&gt;這樣, 才是真的靠玩遊戲當作職業賺錢吧, Specialists 死亡一次就失業了 XD&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-5328831955392748379?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/5328831955392748379/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=5328831955392748379' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5328831955392748379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5328831955392748379'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/online-game-that-requires-specialists.html' title='Online Game that Requires Specialists...'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-4577064256467931990</id><published>2010-04-07T17:57:00.012+08:00</published><updated>2010-04-07T22:26:04.264+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Refactoring'/><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><title type='text'>Paper Bad Smell Detection (2)</title><content type='html'>&lt;div&gt;OMG, 我居然回了自己兩年前的文章 ( &lt;a href="http://selainsoft.blogspot.com/2008/03/paper-bad-smell-detection.html"&gt;Paper Bad Smell Detection, 2008/03/23&lt;/a&gt; ). 話說當初寫的時候以為很快就會做看看了, 結果是最近接連寫投 SEKE 2010 以及 ICSEA 2010 的 Papers 時才驚覺沒這 Tool 不行, 我寫 Paper 很粗心, 邏輯上問題不大但是就是很容易犯一些 Bad Smells.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;事實上如果以 English Grammer Check 之類的關鍵字去找, 可以找到許多 Online Services, 但是一來這些 Services 大多沒有提供 Web API, 二來用這些 Services 檢查 Paper 內容難免會有高度的 Security 問題 ( 不過這個問題很有意思... ), 因此在這些考量下就先被我打槍了, 稍後再試試看.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;另外在 PC 上用的工具目前試過了老牌的 &lt;a href="http://www.gnu.org/software/diction/diction.html"&gt;Diction &amp;amp; Style&lt;/a&gt;, 真是有趣的工具, 更加佩服以前的 Unixers 了, 為什麼以前都沒發現這工具呢 ?&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;不過這類工具基本上還是 Tools for General Purposes, 屬於一般性的檢查, 對於科技論文內容, 或是為領域特定的撰寫風格做調整還是有一定困難. (總之我就是想寫寫看啦~)&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;總而言之, 最後還是利用 Python 寫了一個簡單的 Tool. 這 Tool 的雛形事實上在去年的 First DBSE Hack Day 被我提出來做, 但是大家七手八腳結果是沒做完, 餘下的 Code 可利用性也不高, 所幸 Dynamic Rule Instantiation 的部分可用, 省下我一些功夫. 從這次經驗再次驗證 (1) Documentation 不可少, (2) 不要在 Prototyping 時要求完美.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;完成的 Tool 其實只是很簡單的把 Abstract 跟各個 Sections 的內容抓出來而已, 輔以 Regular Expression 檢查區分正常的文字內容跟圖表, 我連句子中的 Tags 都不額外處理了. 再利用 Regular Expression 來制訂一些 Bad Smells 會出現的情況, 最後簡單的把結果輸出成 HTML Table, It's Done !!&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BkTUsTLwHTo/S7yVBIh1aDI/AAAAAAAAD94/jJop2PHgC0w/s1600/latex-tool-02.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 301px; height: 400px;" src="http://4.bp.blogspot.com/_BkTUsTLwHTo/S7yVBIh1aDI/AAAAAAAAD94/jJop2PHgC0w/s400/latex-tool-02.png" alt="" id="BLOGGER_PHOTO_ID_5457400695168002098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;目前可以檢查 ( All are Customizable ) :&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Long Sentences&lt;/li&gt;&lt;li&gt;Vague Words&lt;/li&gt;&lt;li&gt;Countable/Uncontable Words&lt;/li&gt;&lt;li&gt;Similair Words&lt;/li&gt;&lt;li&gt;Verb Auxiliary + V-ed Violation&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;雖然功能還有待加強啦, 而且準確率也有問題, 不過本來這些 Bad Smells 幾乎都是作者需要自行確認是否屬實的, 況且改 Papers 時是寧可錯看 100 個 False Alarms 也不願意漏掉任何一個 Fault ( 安慰自己 XD )&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;拿來驗證之前被老師批改的 Paper 初稿們, 的確可以抓出不少被老師訂正的地方 :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-4577064256467931990?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/4577064256467931990/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=4577064256467931990' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4577064256467931990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4577064256467931990'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/paper-bad-smell-detection-2.html' title='Paper Bad Smell Detection (2)'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BkTUsTLwHTo/S7yVBIh1aDI/AAAAAAAAD94/jJop2PHgC0w/s72-c/latex-tool-02.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-5532023379707574620</id><published>2010-04-07T11:18:00.001+08:00</published><updated>2010-04-07T22:28:42.314+08:00</updated><title type='text'>Dynamic IEEEXplorer Online Limitation ?</title><content type='html'>當你 24 hours 都有機會使用 IEEEXplorer 時, 就會察覺某些特定的時間, "All Seats were Occupied !!"&lt;br /&gt;&lt;br /&gt;這些時間包含了正常工作日的下午 1 ~ 4 點, 晚上的 10 ~ 凌晨 02 點 (偶爾, 打完電動該查個 paper 了是吧). 以及禮拜天晚上, 禮拜一早上 (要趕 survey 給老闆交代是吧). 遇到這些時段受人數限制連不上當然就很討厭.&lt;br /&gt;&lt;br /&gt;當然 IEEEXplorer 要付費限制上線人數 絕對有道理, 目前成大買的是同時間 15 seats, 但是考量沒有正常 logout 導致的 penalty (很多人習慣不好阿), 真實的 availability 應該是會小於 15 seats 應該有的效果.&lt;br /&gt;&lt;br /&gt;但是如果我們以 IEEEXplorer 的伺服器總負荷量以及總頻寬量, 以及全球服務的角度來看的話, 其實不同國家的研究人員使用 IEEEXplorer 的頻繁時段是不一樣的, 像是台灣的深夜幾乎不可能遇到 all seats occupied 的情況. 不同時區顯然使用曲線不同. 是否 IEEEXplorer 應該在同樣的費用下, 採用動態調整, 讓使用效益最佳化 ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-5532023379707574620?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/5532023379707574620/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=5532023379707574620' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5532023379707574620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5532023379707574620'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/03/dynamic-ieeexplorer-online-limitation.html' title='Dynamic IEEEXplorer Online Limitation ?'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-473371913264345688</id><published>2010-04-03T21:26:00.002+08:00</published><updated>2010-04-07T17:20:33.049+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>After You Re-Install the SCIM...</title><content type='html'>上週去參加 &lt;a href="http://www.cscse.info/CSCSE/Welcome_to_CSCST.html"&gt;CSCST 2010&lt;/a&gt; 前夕, 我那本來就有點不太聽話的 SCIM 正式掛點了. 原因不詳, 總是當初隨 Mandriva 2007 裝的 SCIM 1.0 很容易在快速切換 Apps. 以及輸入法時陷入短暫 Idle 的狀態, 特別是當 Firefox 參與其中時...&lt;br /&gt;&lt;br /&gt;索性移除所有 SCIM 相關 Packages, 整個重裝, 不過結果是只要進 KDE 所有 Apps 都開不起來, 會被 SCIM 或是 SCIM-Bridge 暴衝卡住 CPU, 就算砍掉 SCIM processes 還是會再跑起來. 直到現在我還是搞不懂為什麼 Apps 跑起來的時候都要先跑 SCIM 或 SCIM-Bridge ?&lt;br /&gt;&lt;br /&gt;不過參加會議在即, 就先不管他, 直到回來又花了一天才修好. SCIM 跟 SCIM-Bridge 的選擇姑且不提, 在安裝新酷音 chewing 時, 又遇到裝上了, 卻無法開啟 SCIM-setup 來調整的情況, 當然也就無法使用 chewing. 倒是其他的輸入法就沒這問題.&lt;br /&gt;&lt;br /&gt;總之, 後來發現 SCIM 重裝跟 chewing 重裝都注意&lt;span style="font-weight: bold;"&gt;把 .scim 跟 .chewing 先移除或是清空&lt;/span&gt;, 否則就出現上面奇怪的情況.&lt;br /&gt;&lt;br /&gt;是否利用 Package Manager 移除 Package 時, 應該更 "Smart" 地主動考量 Configurations 一併移除的問題呢 ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-473371913264345688?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/473371913264345688/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=473371913264345688' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/473371913264345688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/473371913264345688'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2010/04/after-you-re-install-scim.html' title='After You Re-Install the SCIM...'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-2007662917726415636</id><published>2009-11-18T18:16:00.002+08:00</published><updated>2009-11-18T18:28:59.029+08:00</updated><title type='text'>The Importance of Vision</title><content type='html'>昨天在掃 CACM Nov. 的文章, 看到 &lt;a href="http://cacm.acm.org/magazines/2009/11/48421-scratch-programming-for-all/fulltext"&gt;Scratch : Programming for All&lt;/a&gt;, 複雜的心理又出現了.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://cacm.acm.org/system/assets/0000/1666/101509_CACMpg61_Scratch.large.jpg?1255634630&amp;amp;1255634627"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 250px; height: 250px;" src="http://cacm.acm.org/system/assets/0000/1666/101509_CACMpg61_Scratch.large.jpg?1255634630&amp;amp;1255634627" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;高興的是, 當初 SIMPLE 跟今年龍騰微笑競賽落敗的 Idea, 我們所努力的方向, 跟 MIT 頂尖人員所想的是如此一致; 失落的是, 我們總是做得如此慢, 表達得如此不清楚.&lt;br /&gt;&lt;br /&gt;看著手上還在跟同仁討論中的兩個 Idea, 驚覺 Vision 竟是比想像中更加重要的東西.&lt;br /&gt;&lt;br /&gt;不是因為 Vision Document 可以為產品的開發帶來清楚的輪廓, 而是我們能夠把自己想法描述得多清楚, 我們的 Vision 有多吸引自己 ?&lt;br /&gt;&lt;br /&gt;沒有共同的 Vision, 討論再多也是在兜圈子, 不然就是在教跟學.&lt;br /&gt;&lt;br /&gt;沒有吸引人吸引自己的 Vision, 做出來要花雙倍的力氣賣出去.&lt;br /&gt;&lt;br /&gt;Discussion your Vision Early, Refine your Vison Often !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-2007662917726415636?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/2007662917726415636/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=2007662917726415636' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2007662917726415636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2007662917726415636'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2009/11/importance-of-vision.html' title='The Importance of Vision'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-2262964674804840874</id><published>2009-11-17T15:18:00.002+08:00</published><updated>2009-11-17T15:47:01.994+08:00</updated><title type='text'>Analysis, Design and Implementation</title><content type='html'>Software Analysis =&gt; 通盤了解情況&lt;br /&gt;Software Design =&gt; 找出選項, 分析選項, 做出選擇&lt;br /&gt;Software Implementation =&gt; 實現選擇&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-2262964674804840874?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/2262964674804840874/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=2262964674804840874' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2262964674804840874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2262964674804840874'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2009/11/analysis-design-and-implementation.html' title='Analysis, Design and Implementation'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-2339938899883516350</id><published>2009-05-02T02:57:00.001+08:00</published><updated>2009-05-02T02:58:43.409+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><title type='text'>USB keyboard light</title><content type='html'>Engadnet : &lt;a href="http://tinyurl.com/c4zeov"&gt;Mr. Brightside USB keyboard light illuminates your keys, taste in music&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;最近兩三年圍繞在 USB 上建立 Notebook / Handheld PC / PC 用的許多小部品忽然熱門起來 XD&lt;br /&gt;&lt;br /&gt;從單純的裝飾用部品, 到實際上沒人會真的去用的煮咖啡裝置, 還有像是這種實用的 USB 小檯燈都有.&lt;br /&gt;&lt;br /&gt;不過這些應用似乎都還是非常低階, 甚至可以說這些部品都是以 USB 當作電源的 &lt;span style="font-weight: bold;"&gt;"機械部品"&lt;/span&gt;, 甚麼時候會出現真正的&lt;span style="font-weight: bold;"&gt; "電腦部品" &lt;/span&gt;呢 ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-2339938899883516350?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/2339938899883516350/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=2339938899883516350' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2339938899883516350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2339938899883516350'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2009/05/usb-keyboard-light.html' title='USB keyboard light'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-2980337276689734379</id><published>2009-05-02T02:28:00.002+08:00</published><updated>2009-05-02T02:36:32.393+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><title type='text'>Ultra Motor A2B electric bike</title><content type='html'>Engadget 的報導 : &lt;a href="http://www.engadget.com/2009/05/01/engadgets-delightful-cruise-on-the-ultra-motor-a2b-electric-bik/"&gt;Engadget's delightful cruise on the Ultra Motor A2B electric bike&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;人力/動力複合車似乎越來越會是一種趨勢, 雖然說馬力不如一般的機車, 但問題是, &lt;span style="font-weight: bold;"&gt;我們還有多需要一般的機車&lt;/span&gt; ?&lt;br /&gt;&lt;br /&gt;時代在改變, 只要附得起運送費用, 待在家裡等待上網採購訂購的東西送上門來的情形逐漸變得平常, 偶爾想出門附近走走才會需要輕量交通工具, 出遠門則是大眾運輸 + 汽車, 似乎一般機車的攻擊範圍逐漸淡出大部分人的實體生活圈, 再加上未來石油資源只會更貴, 但是靠自己的身體是健康又不用多花錢的 :p&lt;br /&gt;&lt;br /&gt;就如同 EeePC 類型的電腦開發及攻下它的市場, 類似上面的 A2B Electric Bike 也許也能詢一樣的模式成功 ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-2980337276689734379?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/2980337276689734379/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=2980337276689734379' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2980337276689734379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2980337276689734379'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2009/05/ultra-motor-a2b-electric-bike.html' title='Ultra Motor A2B electric bike'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-1563553859262031956</id><published>2008-09-21T11:20:00.004+08:00</published><updated>2010-04-07T17:20:52.237+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>在 Compiz 下讓 SMplayer (MPlayer) 能播 RMVB 的簡易方法</title><content type='html'>不知道為什麼我的 Mandriva 2008.0 在 Compiz 啟動模式下, RealPlayer 沒辦法正常地播放 RMVB 檔案, 會出現以下的錯誤, 但是關閉 Compiz 模式就沒有問題.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The program 'realplay.bin' received an X Window System error.&lt;br /&gt;This probably reflects a bug in the program.&lt;br /&gt;The error was 'BadAlloc (insufficient resources for operation)'.&lt;br /&gt;(Details: serial 37 error_code 11 request_code 141 minor_code 19)&lt;br /&gt;(Note to programmers: normally, X errors are reported asynchronously;&lt;br /&gt;that is, you will receive the error a while after causing it.&lt;br /&gt;To debug your program, run it with the --sync command line&lt;br /&gt;option to change this behavior. You can then get a meaningful&lt;br /&gt;backtrace from your debugger if you break on the gdk_x_error() function.)&lt;/blockquote&gt;&lt;br /&gt;之前嘗試換不同版本的 Real Player 也無解, 找額外的 MPlayer Codec 安裝也不太順利, 最終在 &lt;a href="http://blog.roodo.com/candyz/archives/2006-07.html&amp;amp;page=3"&gt;MacBlog3&lt;/a&gt; 發現了一個超級簡易的方法 : 直接把 Real Player 底下的 &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;/codec/* &lt;/span&gt;複製到 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;/usr/lib/win32&lt;/span&gt; (如不存在請自行建立) 底下就可以了.&lt;br /&gt;&lt;br /&gt;不過由於是 share library, 因此不用複製的, 直接利用 link 從 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;/usr/lib/win32&lt;/span&gt; 連結到 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;/codec/*&lt;/span&gt; 應該也可以, 這樣以後更新 Real Player時就可以順便更新 MPlayer 用的 library.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-1563553859262031956?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/1563553859262031956/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=1563553859262031956' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1563553859262031956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1563553859262031956'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/09/compiz-smplayer-mplayer-rmvb_21.html' title='在 Compiz 下讓 SMplayer (MPlayer) 能播 RMVB 的簡易方法'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-7009760884020549150</id><published>2008-09-20T15:29:00.003+08:00</published><updated>2008-09-20T15:44:22.419+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software company'/><title type='text'>Pixnet 高招阿</title><content type='html'>剛剛看到別人在討論 &lt;a href="http://www.pixnet.net/"&gt;Pixnet&lt;/a&gt; 可以打的小狐狸, 覺得這真是高招阿.&lt;br /&gt;&lt;br /&gt;如果點選&lt;span style="font-weight: bold;"&gt;看誠意&lt;/span&gt;...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/WeiChungHu/SNSockCgIxI/AAAAAAAAC60/jO7GxIXlPWc/s512/pxnet-fox-01.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 450px;" src="http://lh3.ggpht.com/WeiChungHu/SNSockCgIxI/AAAAAAAAC60/jO7GxIXlPWc/s512/pxnet-fox-01.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;就可以打小狐狸巴掌...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/WeiChungHu/SNSodKq-xtI/AAAAAAAAC68/ACdAx4MzN8c/s512/pxnet-fox-02.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 450px;" src="http://lh3.ggpht.com/WeiChungHu/SNSodKq-xtI/AAAAAAAAC68/ACdAx4MzN8c/s512/pxnet-fox-02.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;受傷了...不過如果不滿意還是可以繼續打 XD&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/WeiChungHu/SNSoeC4B92I/AAAAAAAAC7E/Ulp0ggDmKGY/s512/pxnet-fox-03.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 450px;" src="http://lh6.ggpht.com/WeiChungHu/SNSoeC4B92I/AAAAAAAAC7E/Ulp0ggDmKGY/s512/pxnet-fox-03.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;前一陣子的新後台造成服務出大問題的事件, 其實直到現在也還沒完全解決, 但是看來大部分的問題似乎都已經解決, 但是很難補回來的是使用者的信心. 這隻小狐狸巧妙的把不滿轉成博君一笑, 在這個重建使用者信心的關鍵時刻, 我覺得真是高招阿 @@ , 記得以前在哪裡也有看過, 要偷學起來 :p&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-7009760884020549150?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/7009760884020549150/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=7009760884020549150' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7009760884020549150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7009760884020549150'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/09/pixnet.html' title='Pixnet 高招阿'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/WeiChungHu/SNSockCgIxI/AAAAAAAAC60/jO7GxIXlPWc/s72-c/pxnet-fox-01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-2102405007912914724</id><published>2008-09-19T14:50:00.016+08:00</published><updated>2008-09-19T22:53:03.704+08:00</updated><title type='text'>大學網路排名 : 不知道是評比的人有問題, 還是解讀的人有問題 ?</title><content type='html'>前幾天老師提到 (其實是批到 XD ) 的西班牙做的大學網路排名被我找到相關報導了 : &lt;a href="http://epaper.heeact.edu.tw/archive/2007/11/01/368.aspx"&gt;大學排名的另類思考─西班牙世界大學網路排名&lt;/a&gt;, 然後這裡有 2008 年版的 : &lt;a href="http://epaper.heeact.edu.tw/archive/2008/03/01/492.aspx"&gt;2008年新版「世界大學網路排名」三項重要變動與創新&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;我本來以為是什麼新的, 原來跟我年初看到的一樣, 當時看到台大的成績我就想糟了, 系上一定會想跟台大比, 這樣我系網頁就累了, 沒想到現在才有反應 :p&lt;br /&gt;&lt;br /&gt;採用的三項指標 : 規模 (Size)、能見度 (Visibility) 及學術論文 ( Rich Files ) 有點值得討論. 在規模上, 稍有邏輯的一般人也會質疑, 量多就是好嗎 ? 能見度我倒沒有甚麼太大的意見, 基本精神就跟 Page Ranking 一樣吧. 而 Rich Files 的部份, 我倒很好奇他怎樣評比 Files 的內容, 特別是有語言的問題存在. 更別說, 只用這三項指標去評比大學網站本身就有很大的問題, 這種 Ranking 只能夠提供部份面向的量測跟解讀而已, 並不適合只看最終的 Ranking 就來比較.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://epaper.heeact.edu.tw/images/epaper_heeact_edu_tw/2008_0301_No12/Form_12/form_58-59_1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 550px;" src="http://epaper.heeact.edu.tw/images/epaper_heeact_edu_tw/2008_0301_No12/Form_12/form_58-59_1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;不過聽說我們的所務會議結論就是, 成大怎麼能輸中山, 以後不管什麼東西, 能作成 Files 的就盡量上傳到網路上, 然後各種活動包含老師跟學生 Meeting 盡量有照片放到網路上, 務求增加網路上的檔案數以及網頁, 照片影片數量. ( 難道最近系辦卯起來發一堆跟電機系師生相關度不大的公告要我登上系網頁也跟這有關 !? )&lt;br /&gt;&lt;br /&gt;老師很無奈, 開完笑地叫我們記得把以前所有的 Group Meeting 時 paper presentation 投影片不要弄丟, 都丟上去好了, 還有無關緊要的計畫資料, 反正也不是沒東西可丟 :p&lt;br /&gt;&lt;br /&gt;不知道是評比的人有問題, 還是解讀的人有問題 ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-2102405007912914724?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/2102405007912914724/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=2102405007912914724' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2102405007912914724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2102405007912914724'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/09/blog-post_1054.html' title='大學網路排名 : 不知道是評比的人有問題, 還是解讀的人有問題 ?'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-1521704296987495604</id><published>2008-09-19T14:50:00.006+08:00</published><updated>2008-09-19T15:00:55.775+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='context-aware'/><title type='text'>惡臭夜襲府城...</title><content type='html'>話說當天我倒是沒有聞到甚麼怪味就是了. 節錄自&lt;a href="http://www.libertytimes.com.tw/2008/new/sep/19/today-south14.htm"&gt;自由電子報的新聞稿 "&lt;span class="insubject1" id="newtitle"&gt;惡臭夜襲府城 瀰漫2/3市區&lt;/span&gt;" &lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;〔記者黃文鍠／台南報導〕惡臭襲府城！台南市區昨天凌晨空氣中瀰漫惡臭，涵蓋安南區、北區、安平區、中西區及南區，影響範圍超過2/3市區，110及119報案台接到不少投訴電話，市警局及消防局動員近百名警消搜尋逾兩小時仍一無所獲。&lt;/blockquote&gt;&lt;br /&gt;這時候如果有部署好的 Smell Sensors, 搭配各種 Weather Sensors, 應該可以利用既定的演算法來推算出最可能的問題發生區域 ( ~ Charlie Eppes 的唬人數學秀上演 ), 可以大幅降低所需要的時間.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SNNLzKmZgfI/AAAAAAAAC58/bQbWoXJu0sQ/context-aware-smell.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 550px;" src="http://lh5.ggpht.com/WeiChungHu/SNNLzKmZgfI/AAAAAAAAC58/bQbWoXJu0sQ/context-aware-smell.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;擴大內需的錢應該拿來建這種系統才對, 幾年前就聽過美國學者相關的 Talk, 系統應該已經成熟了才是, 這才是十分重要的城市及工業區基礎安全設施阿. ( 上面的圖示亂畫的啦, 拿自己家裏開玩笑摟 :p )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-1521704296987495604?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/1521704296987495604/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=1521704296987495604' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1521704296987495604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1521704296987495604'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/09/blog-post_19.html' title='惡臭夜襲府城...'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/WeiChungHu/SNNLzKmZgfI/AAAAAAAAC58/bQbWoXJu0sQ/s72-c/context-aware-smell.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-5844010979424874667</id><published>2008-09-17T08:30:00.003+08:00</published><updated>2008-09-17T08:47:14.517+08:00</updated><title type='text'>意外的發現</title><content type='html'>在回學長信件的時候, 看到不熟悉的字 "Pedagogical Issues", 特意去查了一下, 結果在其中一個&lt;a href="http://staff.ed.uiuc.edu/esecaras/ES/Lecture/pedagogy.htm"&gt;搜尋到的頁面&lt;/a&gt;看到意外的東西.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/WeiChungHu/SNBSCOIS5FI/AAAAAAAAC4k/Pamr3jO-Ob4/s720/pdagogical-issues-01.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 550px;" src="http://lh3.ggpht.com/WeiChungHu/SNBSCOIS5FI/AAAAAAAAC4k/Pamr3jO-Ob4/s720/pdagogical-issues-01.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;這跟圖樣的 design 跟成大圖書館新的網頁設計感覺上好像阿~~&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/WeiChungHu/SNBSDGTq8SI/AAAAAAAAC4s/4K1Eda85keI/s720/pdagogical-issues-02.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 550px;" src="http://lh3.ggpht.com/WeiChungHu/SNBSDGTq8SI/AAAAAAAAC4s/4K1Eda85keI/s720/pdagogical-issues-02.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;成大圖書館新網頁的設計第一次看到覺得很怪, 不過看久了覺得還蠻特別的, 難到這種設計跟圖樣在教育界有特殊的意義 ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-5844010979424874667?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/5844010979424874667/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=5844010979424874667' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5844010979424874667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5844010979424874667'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/09/blog-post.html' title='意外的發現'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/WeiChungHu/SNBSCOIS5FI/AAAAAAAAC4k/Pamr3jO-Ob4/s72-c/pdagogical-issues-01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-1238797124644548499</id><published>2008-09-01T14:16:00.021+08:00</published><updated>2008-09-01T15:10:17.234+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='research'/><title type='text'>There's Plenty of Room at the Bottom</title><content type='html'>在 &lt;a href="http://www.cbs.com/primetime/numb3rs/"&gt;Numb3rs&lt;/a&gt; , Season 3, &lt;a href="http://www.redhawke.org/content/view/398/84/"&gt;Episode 7 : Blackout&lt;/a&gt; (不知道為甚官方網站沒有這一集的 &lt;a href="http://www.cbs.com/primetime/numb3rs/recaps/"&gt;Recap&lt;/a&gt; ) 中後段, Fleinhardt 提到了費曼 ( Richard Feynman ) 的一場演說 : &lt;span style="font-weight: bold;"&gt;There's Plenty of Room at the Bottom&lt;/span&gt; (  &lt;a href="http://www.zyvex.com/nanotech/feynman.html"&gt;原文&lt;/a&gt;, &lt;a href="http://tainano.com/chin/plenty%20room.htm"&gt;中文&lt;/a&gt; ).&lt;br /&gt;&lt;br /&gt;在費曼的原文中其實跟物理學淵源比較深, 但是 Fleinhardt 在劇中的解讀卻很有意思.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Fleinhardt : &lt;/span&gt;Well, what I mean to say is... you see,all along you've been applying&lt;br /&gt;a kind of bottom-up analysis.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fleinhardt :&lt;/span&gt; It all started with the unfortunate gentleman who was electrocuted.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reeves :&lt;/span&gt; Alejandro Munoz.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fleinhardt :&lt;/span&gt; That's right,and then you worked your way up to Donahue&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fleinhardt :&lt;/span&gt; And now you're working up to someone above Donahue.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reeves :&lt;/span&gt;  That's standard procedure. We're always looking for the bigger fish.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fleinhardt :&lt;/span&gt; Yeah,but how you know you're even fishing in the right direction ?&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fleinhardt : &lt;/span&gt;You see, in 1959, Richard Feynman gave a very famous lecture.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fleinhardt :&lt;/span&gt; It was called,"there's plenty of room at the bottom," and it altered the thinking of a whole generation of scientists&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fleinhardt : &lt;/span&gt;Because it changed their focus to &lt;span style="font-weight: bold;"&gt;thinking smaller and smaller instead of larger&lt;/span&gt;.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fleinhardt : &lt;/span&gt;Now,see,you've gone from Munoz to Donahue, and now you're long even farther up the chain.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fleinhardt :&lt;/span&gt; Perhaps you need to go in the opposite direction.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reeves :&lt;/span&gt;   You're suggesting that the plan to blow up the substation just started with Munoz.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fleinhardt :&lt;/span&gt; I think it's worthy of consideration.&lt;/blockquote&gt;&lt;br /&gt;我覺得也很適用於軟體工程中的研究. 很容易地我們在書上, Paper 上會看到貌似很了不起的 Process, Theory, Architecture, 或是 Tool,  System, 但是沒有仔細深入想卻很難回答一些極為基本的問題 : 為什麼 Paper 作者會想到解決這個問題 ? 這個問題會在哪裡出現, Paper 作者怎們知道這是一般性的問題 ? 我會不會遇到這個問題 ?&lt;br /&gt;&lt;br /&gt;我覺得我直到博二才認識到, 一切從小地方做起想起. 很多 Paper 所真正解決的問題, 都起源於作者在實際作 Software Production 的過程中所遇到的小問題 ( 也有可能是大問題啦, 但是通常大問題就是一堆小問題 ), 而小問題總是在不同的 Software Production 中會反複出現.&lt;br /&gt;&lt;br /&gt;好的研究題目其實就在你每天寫 Software 的思考過程中而已.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-1238797124644548499?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/1238797124644548499/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=1238797124644548499' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1238797124644548499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1238797124644548499'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/09/theres-plenty-of-room-at-bottom.html' title='There&apos;s Plenty of Room at the Bottom'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-1554018655889739383</id><published>2008-08-31T07:15:00.000+08:00</published><updated>2008-08-31T07:15:01.072+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data and knowledge engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='article comment'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><title type='text'>音樂情緒研究問卷</title><content type='html'>偶然看到台大電信所的研究生在 PTT 徵求進行音樂情緒問卷, 因為對 &lt;a href="http://mpac.ee.ntu.edu.tw/%7Eyihsuan/"&gt;yihsuan&lt;/a&gt; ( &lt;a href="ttp://mehmu.blogspot.com/"&gt;Perosnal Blog&lt;/a&gt;, 但是很少更新) 這個名字有點印象(後來發現他是 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;[1]&lt;/span&gt; 的首位作者, 之前實驗室有同仁報過這篇 paper, 難怪有點印象), 加上之前實驗室也有同仁在做音樂情緒相關研究, 就特意點進去看看.&lt;br /&gt;&lt;br /&gt;問卷網站有點慢, 同時是 &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;IE Only&lt;/span&gt;, 我還特地開 Virtual Box 來連 = =&lt;br /&gt;&lt;br /&gt;問卷分成幾個大部分, 首先是 Introduction 進行一般音樂情緒說明,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SLlCaRQK1fI/AAAAAAAAC3s/aA1y4O36pro/emotion-questionnaire-01.jpg?imgmax=576"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 550px;" src="http://lh5.ggpht.com/WeiChungHu/SLlCaRQK1fI/AAAAAAAAC3s/aA1y4O36pro/emotion-questionnaire-01.jpg?imgmax=576" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;不太確定分類是如何決定的, 但是根據之前聽過數次同仁的 presentation, 猜想應該跟 R. E. Thayer 的 AV Emotion Plane &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;[2]&lt;/span&gt; 有相關.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;第一階段&lt;/span&gt;是直接用聽的請 Visitor 給分數, 很單純的從悲傷到開心的分數. 至於分數怎樣對應到 AV Emotion Plane 就不知道了.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/WeiChungHu/SLlCZ__vFzI/AAAAAAAAC3k/ScW7pBTikPo/emotion-questionnaire-02.jpg?imgmax=576"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 550px;" src="http://lh4.ggpht.com/WeiChungHu/SLlCZ__vFzI/AAAAAAAAC3k/ScW7pBTikPo/emotion-questionnaire-02.jpg?imgmax=576" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;第二階段&lt;/span&gt;使用了一個 Tournament 來讓使用者從不同音樂的比較中給予相對的情緒關係分數 ( 比對本身可以算是一種分數 ).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/WeiChungHu/SLlCZM8g4KI/AAAAAAAAC3c/7YI1GkTJllU/emotion-questionnaire-03.jpg?imgmax=576"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 550px;" src="http://lh6.ggpht.com/WeiChungHu/SLlCZM8g4KI/AAAAAAAAC3c/7YI1GkTJllU/emotion-questionnaire-03.jpg?imgmax=576" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;這個手法感覺比較有意思, 跟 男女糾察隊 London Hearts 的節目中使用的 臉蛋好壞球 (顔面どストライク) 很像, 之前在看 Paper [1] 時我也有想過把 臉蛋好壞球 搬到 Music 領域來玩玩看 :p&lt;br /&gt;&lt;br /&gt;底下來個上戶彩的作參考 (取用自&lt;a href="http://www.im.tv/vlog/Personal/1999088/4630859"&gt;這裡&lt;/a&gt; -- Orz 有沒有這麼巧, 隨便找一下連到的居然是緯來當家美女主播的 Vlog ) :&lt;br /&gt;&lt;br /&gt;&lt;span style="text-align: center; display: block;"&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="vlog4630859" height="338" width="450"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="movie" value="http://myvlog.im.tv/?id=4630859&amp;amp;mid=1999088&amp;amp;MemberID=&amp;amp;inIMTV=Y&amp;amp;album=0&amp;amp;playnext="&gt;&lt;param name="quality" value="high"&gt;&lt;embed src="http://myvlog.im.tv/?id=4630859&amp;amp;mid=1999088&amp;amp;MemberID=&amp;amp;inIMTV=Y&amp;amp;album=0&amp;amp;playnext=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" name="vlog4630859" allowscriptaccess="always" allowfullscreen="true" type="application/x-shockwave-flash" height="338" width="450"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;最後一個階段&lt;/span&gt;則是對於使用者標示音樂情緒的一般性調查, 不過我覺得裡面出乎我意料地缺少相當多對於使用者 Context 的調查, 換句話說上面的音樂情緒標定是無法根據使用者的個人背景以及目前的情緒, 環境工作等等作進一步解析的. 這對 Data 的 Reliability 我認為是一種傷害, 特別是 Music Emotion 這種在判定時會受到相當多 Factors 影響的東西.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/WeiChungHu/SLlCYmiuvNI/AAAAAAAAC3U/rBwqVAblghk/emotion-questionnaire-04.jpg?imgmax=512"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 550px;" src="http://lh6.ggpht.com/WeiChungHu/SLlCYmiuvNI/AAAAAAAAC3U/rBwqVAblghk/emotion-questionnaire-04.jpg?imgmax=512" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;其實我對於音樂情緒一直不太相信, 最主要的原因即在於 Emotion 這種東西的判定 Variation 太大, 而音樂的創作又跟相當多的 Factors 有關, 有時候創作者是因為環境, 有時候是因為故事, 有時候是因為其他的音樂, 不確定加上不確定實在沒辦法讓我相信會變成一個確定. 而 Emotion 的 Variation 太大也導致多數的 Researches 都停留在諸如 Kate Hevner &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;[4]&lt;/span&gt; 的八個分類, 或是 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;[1]&lt;/span&gt; 使用的 AV Emotion Plane 上, 但是這麼粗的分類感覺實在不實用.&lt;br /&gt;&lt;br /&gt;另外就是音樂情緒的應用, 實驗室的學弟做的  &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;[3]&lt;/span&gt; 是跟 Music Therapy 有關, 在 Therapy 上音樂可能有用這個我就相信, 但是很多 Papers 都會提到利用&lt;span style="font-weight: bold;"&gt;音樂情緒&lt;/span&gt;對於&lt;span style="font-weight: bold;"&gt;大量&lt;/span&gt;的音樂作自動分類判定 -- OK, 我相信可以自動分類, 但是為什麼我們要自動利用&lt;span style="font-weight: bold;"&gt;音樂情緒&lt;/span&gt;分類&lt;span style="font-weight: bold;"&gt;大量&lt;/span&gt;音樂 ? 到底誰會是使用者, 誰需要對於&lt;span style="font-weight: bold;"&gt;大量&lt;/span&gt;音樂進行&lt;span style="font-weight: bold;"&gt;音樂情緒&lt;/span&gt;的自動分類 ? 這個問題我一直想不透阿, 也許這也跟我本身有關, 我會留著的音樂大多是自己聽過喜歡的, 但是卻不會刻意去區分所謂的&lt;span style="font-weight: bold;"&gt;音樂情緒&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;我想, 如果同樣的問卷是詢問使用該音樂的&lt;span style="font-weight: bold;"&gt;情境&lt;/span&gt;, 應該會比較有用吧, 很多時候我們想找音樂是希望配合目前的 Context 來用, 雖然說也可以透過情緒的轉換去作 Matching, 但是為什麼要如此麻煩呢 ?&lt;br /&gt;&lt;br /&gt;P.S. 在閱讀 &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;[1] &lt;/span&gt;時我覺得其實內容很 Tricky, 主要是在 Data Collection 的地方做了大量的 Assumptions, 這讓我很不舒服 (Feel Uncomfortable), 另外歌詞的影響也被計量在內, 作為 Music 的一部分, 雖然說得通, 但是就讓我很不舒服, 對於我個人來說, 當你聽的懂歌詞時, 往往歌詞的影響力跟 Music 本身會不相上下, 這樣一來究竟你是在辨認 Music Emotion 或是 Lyric Emotion 就很難說了.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[1]&lt;/span&gt; Y.-H. Yang, Y.-C. Lin, Y.-F Su, and H.-H. Chen, “&lt;span style="font-weight: bold;"&gt;A Regression Approach to Music Emotion Recognition&lt;/span&gt;,”&lt;span style="font-style: italic;"&gt; IEEE Transactions on Audio, Speech, and Language Processing&lt;/span&gt;, vol. 16, no. 2, pp. 448-457, Feb. 2008.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[2]&lt;/span&gt; R. E. Thayer, &lt;span style="font-style: italic; font-weight: bold;"&gt;The Biopsychology of Mood and Arousal&lt;/span&gt;, New York Oxford University Press, 1989&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[3]&lt;/span&gt; Yin-Kai Wu, &lt;span style="font-weight: bold; font-style: italic;"&gt;Discovering Musical Features for Automatic Emotion Classification in Music Therapy&lt;/span&gt;, Master Dissertation, NCKU, 2008&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[4]&lt;/span&gt; Kate Hevner, &lt;span style="font-weight: bold;"&gt;Experimental Studies of the Elements of Expression in Music&lt;/span&gt;, &lt;i&gt;American Journal of Psychology&lt;/i&gt;, Vol. 48, pp. 246-268.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-1554018655889739383?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/1554018655889739383/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=1554018655889739383' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1554018655889739383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1554018655889739383'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/08/blog-post_31.html' title='音樂情緒研究問卷'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/WeiChungHu/SLlCaRQK1fI/AAAAAAAAC3s/aA1y4O36pro/s72-c/emotion-questionnaire-01.jpg?imgmax=576' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-4074771649144444963</id><published>2008-08-30T10:15:00.015+08:00</published><updated>2008-08-30T11:33:49.883+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data and knowledge engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='web engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='service oriented computing'/><title type='text'>Manage Correlated Data Across Services ?</title><content type='html'>利用不同的 Services 來存放不同的 Data, 然後在一個統一的 Blog 展示是目前 BSP 系統的標準設計模式. 然而 BSP 對於整體 Data 的管理策略可能還有值得討論的地方.&lt;br /&gt;&lt;br /&gt;以&lt;a href="http://www.wretch.cc/"&gt;無名&lt;/a&gt;的例子來說, 進行 Blogging 的使用者可能同時利用他的網路相簿跟網路影音服務, 但基本上該兩項服務的 Data 跟 Blog 本身是分開的, 只是在 Blog 上提供可以存取該 Data 的介面. 有時候使用者如果因為特殊原因要暫時關閉該 Blog, 原則上相關的 Data 應該也無法取得才對.&lt;br /&gt;&lt;br /&gt;例如無名的 &lt;a href="http://www.wretch.cc/blog/tiger%20302"&gt;tiger302&lt;/a&gt; 這個 Blog, 因為&lt;a href="http://db.kh.usc.edu.tw/phpBB-2.0.17/viewtopic.php?t=2055"&gt;某些理由&lt;/a&gt;被使用者關閉, 因此相關的相簿影音等資料也無法取得. 但是如果你從 &lt;a href="http://www.wretch.cc/video/"&gt;無名影音&lt;/a&gt; 進行搜尋的話, 事實上還是找的到&lt;a href="http://tw.info.search.yahoo.com/search/wretch?searchtype=video&amp;amp;q=tiger302&amp;amp;f=&amp;amp;ei=UTF-8&amp;amp;fr=cb-wretch"&gt;相關的 Index&lt;/a&gt;, 只是連結進去後一樣是無法讀取.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SLi6gAIEivI/AAAAAAAAC2c/GEZ8bYRBsfo/correlated-data-manage-01.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 550px;" src="http://lh5.ggpht.com/WeiChungHu/SLi6gAIEivI/AAAAAAAAC2c/GEZ8bYRBsfo/correlated-data-manage-01.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;然而, 雖然無法透過尋常的 Blog 或是搜尋介面看到影片資料, 如果有心人在 Blog 開放時留下影片連結的話, 居然是可以直接看到理應被禁止存取的影片 Data, 例如同樣是 &lt;a href="http://pic.wretch.cc/photos/serv/video/video_player/TransPlayer.swf?file=http://119.160.255.167/703/t/tiger302/40/1751818909.flv"&gt;tiger302 上傳的這隻影片&lt;/a&gt; :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://pic.wretch.cc/photos/serv/video/video_player/TransPlayer.swf?file=http://119.160.255.167/703/t/tiger302/40/1751818909.flv"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://lh5.ggpht.com/WeiChungHu/SLi33ctzxfI/AAAAAAAAC2U/TAaAWayKoSo/correlated-data-manage-03.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;顯然地, 無名是利用禁止某些 Service 被執行, 來達到禁止 Data 被取得, 但是這樣作就會產生上面的這種漏網之魚 -- 也就是某些公開的 Service 還是可以取得該資料.&lt;br /&gt;&lt;br /&gt;同樣的情況在其他的 BSP 上也可能出現, 如果 BSP 沒辦法讓使用者把相關的資料都綁在一起作管理的話, 就可能出現文章被禁止存取了, 圖片跟相關影片卻還是可以被取得的情況. 然而, 以使用者的角度來說, 文章就包含了圖片跟影片, 而非只有文字而已. 因此相關 Data 都應該被禁止存取.&lt;br /&gt;&lt;br /&gt;在無名的例子中對於此問題還算好解決, 只要 BSP 願意多花點心思調整一下 Data Model 或是 Access Model, 提供給使用者在發表文章時作選擇即可. 然而當這個問題是跨服務 (Across Services) 時就會複雜許多.&lt;br /&gt;&lt;br /&gt;在幾年前的台灣 BBS 也存在類似的問題. 當時全台灣大大小小的 BBS 可能有上千個, 透過 Mailing List 原本的機制, 彼此轉信變成一種風潮. 但是轉信的看板之間卻出現一種問題, 當有使用者錯發文章, 或是不恰當的文章要被刪除時, 只有原本的發信站做了刪除, 其他收信站還需要該站或看板的管理者再做一次判斷. 造成垃圾文章需要花費大量的人力管理刪除. 後來的 BBS 發展出 control.cancel 協定, 只要支援該協定, 可以透過轉信機制自動刪除在發信站已被刪除的垃圾文章.&lt;br /&gt;&lt;br /&gt;但這要在不同的 Services 之間, 支援共同的 Protocol 似乎難度大的許多, 況且允許的動作也不是簡單的刪除而已.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-4074771649144444963?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/4074771649144444963/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=4074771649144444963' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4074771649144444963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4074771649144444963'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/08/manage-correlated-data-across-services.html' title='Manage Correlated Data Across Services ?'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/WeiChungHu/SLi6gAIEivI/AAAAAAAAC2c/GEZ8bYRBsfo/s72-c/correlated-data-manage-01.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-3253706919184204535</id><published>2008-08-27T09:14:00.015+08:00</published><updated>2010-10-08T11:26:52.178+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software company'/><category scheme='http://www.blogger.com/atom/ns#' term='web engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Pixnet 出包的第七天</title><content type='html'>從 8/19 晚上 &lt;a href="http://www.pixnet.net/"&gt;Pixnet&lt;/a&gt; 停機更換新架構, 進行資料轉移, 預計 8/20 重新上線, 但因為資料轉移所需時間預估錯誤, 因此僅部份功能可以使用, 直到 8/21 仍舊一片混亂, 管理後台無法正常使用, 文章編輯有問題, 無法進行迴嚮, 部份資料疑似遺失, 使用者的部份草稿文章會被公佈 ( 這點我覺得很嚴重 ), 還有其他一堆問題等等.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ithome.com.tw/"&gt;iThome&lt;/a&gt; 也進行了相關的報導 : &lt;a href="http://www.ithome.com.tw/itadm/article.php?c=50561"&gt;Pixnet 改版出包 恐重演無名用戶出走潮&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;Ptt Blog 版發起的回報活動, 可以看到究竟已被發現了多少 Bugs :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://support.pixnet.tw/index.php?topic=44903.0"&gt;目前已解決/常問的FAQ整理&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.pixnet.tw/index.php?topic=43421.msg114587#msg114587"&gt;痞客邦新後台BUG匯集區 &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.pixnet.tw/index.php?topic=44705.0"&gt;三天內就修好你才爽的 Bug&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;如此多的問題, 讓人懷疑究竟新架構決定上線前, Pixnet 的工程師是怎樣進行必要的 Testing 的.&lt;br /&gt;&lt;br /&gt;雖然說期間每天都有公告說明進度狀況, 但是顯然整個新架構所導致的問題百出.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://admin.pixnet.net/blog/post/21515806"&gt;[公告] 8/20 目前站上狀況報告&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://admin.pixnet.net/blog/post/21525027"&gt;[公告] 8/21 目前網站狀況報告&lt;/a&gt;&lt;/li&gt;&lt;li&gt;                   &lt;a href="http://admin.pixnet.net/blog/post/21535303"&gt;[公告] 8/22 本日重點修正進度&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://admin.pixnet.net/blog/post/21542183"&gt;[公告] 8/23 目前網站狀況報告&lt;/a&gt;&lt;/li&gt;&lt;li&gt;                   &lt;a href="http://admin.pixnet.net/blog/post/21546103"&gt;[公告] 8/24 網站現況說明&lt;/a&gt;&lt;/li&gt;&lt;li&gt;                   &lt;a href="http://admin.pixnet.net/blog/post/21547978"&gt;[公告] 8/25 重點事項說明與修正進度報告&lt;/a&gt;&lt;/li&gt;&lt;li&gt;                   &lt;a href="http://admin.pixnet.net/blog/post/21561389"&gt;[公告] 8/26 網站狀況說明&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;即便中間有無數使用者建議暫時改為舊版 ( 請參考 kunghc 的 &lt;a href="http://support.pixnet.tw/index.php?topic=44471.msg118492#msg118492"&gt;給Pixnet總經理李俊廣的公開信: 這是你展現危機管理最重要的時刻&lt;/a&gt; ), 讓使用者可以正常使用, 等新版完全測試成功再重新上線, 但是 Pixnet 似乎不為所動, 直到今天, 8/27, 算是第七天了,  &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://www.pixnet.net/"&gt;Pixnet&lt;/a&gt; 還是堅持要玩 &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Bug Online&lt;/span&gt; 嗎 ? User Community 不是 Debugging Community 阿 = = ( 話說 Ptt 也開始討論搬家的方法了)&lt;br /&gt;&lt;br /&gt;不是要幸災樂禍, 不過這真是一個好的 Case Study, 真希望有機會可以知道整個內部的來龍去脈. 從這個 Case 可以想到的幾個延伸問題 :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;除了 Testing 的問題以外, 是否 Pixnet 工程師也沒有考慮過會出問題的可能, 新系統沒有任何 Backward Compatibility 考量, 導致現在不是 Pixnet 不想回復舊版, 而是根本回不去 ? Online Software/Service 的 Backward Compatibility 有哪些東西要考量 ?&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;個人資料被 BSP 或 Web Applications 綁架的議題, 在無名及 Pixnet 相繼出問題之後, 是否會浮上檯面呢 ?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;提供服務的 BSP 或 Web Applications 背後的工程師素質顯然也相當重要, 但是一般使用者基本上不會去注意這點--直到出大問題之前, 這種情況是否會有所改變 ? 如何評估 BSP 的安全可信度 ( Security Reliability ) ?&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;我們會有定期的防空演習, 是否提供服務的軟體公司應該進行類似的演習 ? ( 可能是由內部的 QA 小組製造狀況, 或是有專門的外部公司介入, 就跟 CMMI 驗證一樣, 這跟單純的 Software V&amp;amp;V 不同 )&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-3253706919184204535?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/3253706919184204535/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=3253706919184204535' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/3253706919184204535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/3253706919184204535'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/08/pixnet.html' title='Pixnet 出包的第七天'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-6744616525018493882</id><published>2008-08-15T10:26:00.008+08:00</published><updated>2008-08-15T10:53:48.823+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='joomla'/><title type='text'>Joomla 1.5.x 重大密碼漏洞, 需升級至 1.5.6</title><content type='html'>8/12 發佈的 patch (&lt;a href="http://developer.joomla.org/security/news/241-20080801-core-password-remind-functionality.html"&gt;Core - Password Remind Functionality&lt;/a&gt;), &lt;a href="http://www.joomla.org.tw/"&gt;Joomla! 台灣&lt;/a&gt;則是 8/13 刊登此消息, 不過我知道的有點晚了, 剛剛才注意到這個問題, 回頭去檢查系網頁發現密碼已經被改掉了 == , 有沒有這麼快阿 orz&lt;br /&gt;&lt;br /&gt;幸好網頁內容沒有被作大量修改, 不然要回覆備份就有點麻煩.&lt;br /&gt;&lt;br /&gt;補救的方法請到 Joomla 官方網站&lt;a href="http://joomlacode.org/gf/project/joomla/frs/?action=FrsReleaseBrowse&amp;amp;frs_package_id=3883"&gt;下載 upgrade patch&lt;/a&gt; 檔案 (請指明官方網站), 注意相對的升級版本, 然後解壓縮蓋掉原本的程式就好了 (擔心的話就先備份一下再蓋掉). 我從 1.5.1 升級到 1.5.6 在頁面上基本沒有甚麼需要再進行修改的地方.&lt;br /&gt;&lt;br /&gt;至於被改掉的密碼, 如果你的 1.5.x 沒有辦法在登入的地方直接透過寄回信箱的方式, 那可能就要到 database 進行修改. 利用 phpmyadmin 的話很方便, 找到 &lt;span style="font-weight: bold;"&gt;jos_users&lt;/span&gt; 資料表, 點選要修改密碼的使用者資料,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/WeiChungHu/SKTunwuzXYI/AAAAAAAAC1A/4z0w_GU9ZIE/joomla-passwd-change-01.jpg?imgmax=576"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 450px;" src="http://lh3.ggpht.com/WeiChungHu/SKTunwuzXYI/AAAAAAAAC1A/4z0w_GU9ZIE/joomla-passwd-change-01.jpg?imgmax=576" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;在 password 欄位選擇 MD5 編碼, 然後在右側的 password 密碼內容直接改寫為你想要設定的密碼, 然後拉到最下方進行儲存. 雖然填寫的時候是明碼, 但是在儲存過後 phpmyadmin 會自動利用 MD5 進行編碼, 這也是 Joomla 預設的密碼編碼.&lt;br /&gt;&lt;br /&gt;這樣就大致修正完畢啦.資料沒毀損真是不幸中的大幸.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-6744616525018493882?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/6744616525018493882/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=6744616525018493882' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6744616525018493882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6744616525018493882'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/08/joomla-15x-156.html' title='Joomla 1.5.x 重大密碼漏洞, 需升級至 1.5.6'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/WeiChungHu/SKTunwuzXYI/AAAAAAAAC1A/4z0w_GU9ZIE/s72-c/joomla-passwd-change-01.jpg?imgmax=576' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-7522864468484807454</id><published>2008-08-13T15:32:00.004+08:00</published><updated>2008-08-13T15:55:17.981+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='search engine'/><title type='text'>這是誰的問題 ?</title><content type='html'>前幾天重新在找一些 CloudAV 相關的文章資料時, 意外注意到一個讓我想不透的搜尋結果.&lt;br /&gt;&lt;br /&gt;當我之前的文章 &lt;a href="http://selainsoft.blogspot.com/2008/08/will-antivirus-cloud-works.html"&gt;Will the AntiVirus Cloud Works ?&lt;/a&gt; 寫完後不久(8/10), 如果使用 CloudAV 進行查詢, 是可以在 Google 上找到的, 而且如果只鎖定繁體中文網頁, 基本上相關的網頁不多, 只有四個網頁分布於三個網站.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/WeiChungHu/SKKP6bnW4SI/AAAAAAAAC0I/4kKb_wfp5GM/cloudav-search-04.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://lh6.ggpht.com/WeiChungHu/SKKP6bnW4SI/AAAAAAAAC0I/4kKb_wfp5GM/cloudav-search-04.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;但是就在我再度查詢的那天(約兩天之後, 8/12), 當再次查詢時, &lt;a href="http://selainsoft.blogspot.com/2008/08/will-antivirus-cloud-works.html"&gt;Will the AntiVirus Cloud Works ?&lt;/a&gt;的文章卻不會在 Google 上出現了.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SKKP4PwuuwI/AAAAAAAACzw/dxhlmvG24Wg/cloudav-search-01.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://lh5.ggpht.com/WeiChungHu/SKKP4PwuuwI/AAAAAAAACzw/dxhlmvG24Wg/cloudav-search-01.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;為此我特意把原本的文章發表時間做了修改, 改成比較新的時間(8/12)重新發表一次, 大約過了半小時, 於是文章又重新出現了. 結果就跟第一張圖一樣.&lt;br /&gt;&lt;br /&gt;然而在過了一天後的今天(8/13), 文章又從查詢結果裡消失了, 而且這次連另外一個網站也消失了, 只剩下 Only Perception 的網站文章可以被查到.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SKKP8vY89HI/AAAAAAAAC0g/84Ee4SyGGgY/cloudav-search-07.jpg?imgmax=720"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://lh5.ggpht.com/WeiChungHu/SKKP8vY89HI/AAAAAAAAC0g/84Ee4SyGGgY/cloudav-search-07.jpg?imgmax=720" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;如果使用 AntiVirus Cloud 作為關鍵字組也會是一樣的情況.&lt;br /&gt;&lt;br /&gt;如果說是因為搜尋結果量多, 導致被過濾掉或是排到後幾頁去, 我可以理解文章會從搜尋結果中消失, 或是移到後幾頁去, 但是當搜尋結果極少時 ? 而且是才 post 沒幾天的文章, 也出現了這樣的情況 ?&lt;br /&gt;&lt;br /&gt;我真的很好奇為什麼會這樣 @@&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-7522864468484807454?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/7522864468484807454/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=7522864468484807454' title='4 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7522864468484807454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7522864468484807454'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/08/blog-post.html' title='這是誰的問題 ?'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/WeiChungHu/SKKP6bnW4SI/AAAAAAAAC0I/4kKb_wfp5GM/s72-c/cloudav-search-04.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-5532698474200073071</id><published>2008-08-12T06:30:00.001+08:00</published><updated>2010-10-08T11:26:52.180+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Embedded System'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Will CloudAV, the AntiVirus Cloud Works ?</title><content type='html'>( 修改一下發表時間以及Title 進行實驗 )&lt;br /&gt;&lt;br /&gt;根據&lt;a href="http://www.computerworld.com/"&gt; Computer World&lt;/a&gt; 的一篇報導 : &lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=9112058&amp;amp;source=rss_news10"&gt;Researchers look to cloud computing to fight malware&lt;/a&gt;, 密西根大學的幾位學者 ( Jon Oberheide, Evan Cooke, and Farnam Jahanian ) 嘗試利用不同的 AntiVirus Softwares 利用 Cloud Computing 概念結合來防範 malware, 所打著的算盤當然是截長補短, 讓 virus 或是 malware 需要克服更多的難關. 這跟&lt;a href="http://ithelp.ithome.com.tw/question/10005614?tag=rt.rq"&gt;趨勢最近在講的 Cloud Computing 應用&lt;/a&gt; ( 前幾期的財訊在訪問趨勢某人時有提到比較多, 不過內容同樣不甚具體 ), 應該是不同的方向.&lt;br /&gt;&lt;br /&gt;這項計畫稱為 &lt;a href="http://www.eecs.umich.edu/fjgroup/cloudav/"&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;CloudAV&lt;/span&gt;&lt;/a&gt; ( 應該是 Cloud AntiVirus 之意吧 ? ), 相關&lt;a href="http://www.eecs.umich.edu/fjgroup/cloudav/"&gt;網站在這&lt;/a&gt;, 同時有&lt;a href="http://www.eecs.umich.edu/fjgroup/pubs/cloudav-usenix08.pdf"&gt;電子論文&lt;/a&gt;可以抓取. ( 以下圖片均取用自&lt;span style="color: rgb(255, 102, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;[1]&lt;/span&gt; ) 基本上可疑的 File 會傳送到 ClondAV 所提供的 Network Service 作檢驗, 這跟早期的網路掃毒類似.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/WeiChungHu/SJ0cnbfNinI/AAAAAAAACyw/FrIqS4Hg3_0/cloundav-01.jpg?imgmax=800"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 420px;" src="http://lh4.ggpht.com/WeiChungHu/SJ0cnbfNinI/AAAAAAAACyw/FrIqS4Hg3_0/cloundav-01.jpg?imgmax=800" alt="" border="0" /&gt;&lt;/a&gt;看起來最終的決定是採用類似 Voting 的機制, 透過許多 AntiVirus 的結果, 決定是否該 File 是有問題的.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/WeiChungHu/SJ0coMlZTlI/AAAAAAAACy4/Xdt-rm9qIi0/cloundav-02.jpg?imgmax=800"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 420px;" src="http://lh3.ggpht.com/WeiChungHu/SJ0coMlZTlI/AAAAAAAACy4/Xdt-rm9qIi0/cloundav-02.jpg?imgmax=800" alt="" border="0" /&gt;&lt;/a&gt;我在去年修 Embedded Middleware 作 Final Project 時有提過類似但不相同的想法 ( 我要集合的不是 AntiVirus Softwares ), 最終是卡在系統本身的 Security 問題, 以及 Privacy 問題. 針對 Privacy 問題, 在 &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;[1]&lt;/span&gt; 中 Section 3.1 花了一小段說明, 但是也不算正面回答, 只是透過把 CloudAV 的應用環境作限制, 來降低 Privacy 的影響.&lt;br /&gt;&lt;br /&gt;除了 Privacy 之外, 對於 CloudAV 是否能成功, 我還有另一個商業上的疑慮, 雖然 Paper &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;[1]&lt;/span&gt; 內有談論了實驗本身所使用的 Software 的 License 問題, 但是在商業應用上不知道是否防毒軟體大廠會同意這樣的使用方式, 或是願意加入這樣的服務團體. 這裡就牽涉到商業利益的問題, 也可能給防毒效益不好的公司帶來更大的壓力.&lt;br /&gt;&lt;br /&gt;不過, 往好的方面想, CloudAV 可以克服以往我們幾乎無法在一套系統內裝設兩套防毒軟體的效能問題, 以及 Mobile Device 不方便把資源用來跑 AntiVirus Software 的問題, 同時又能帶來更好更可靠的服務, 只要防毒軟體大廠願意進行類似的合作, 那麼就良性競爭以及防毒技術的進步來說應該是正面的. 這樣的 AntiVirus Cloud 似乎也跟我之前認為 &lt;a href="http://selainsoft.blogspot.com/2008/07/something-about-cloud-computing.html"&gt;Cloud Computing 會帶來軟體產業的二次分工&lt;/a&gt;相關.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[1]&lt;/span&gt; Jon Oberheide, Evan Cooke, and Farnam Jahanian, "&lt;span style="font-weight: bold;"&gt;CloudAV: N-Version Antivirus in the Network Cloud&lt;/span&gt;," &lt;span style="font-style: italic;"&gt;Proc. of the 17th USENIX Security Symposium&lt;/span&gt;, July 2008&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-5532698474200073071?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/5532698474200073071/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=5532698474200073071' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5532698474200073071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5532698474200073071'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/08/will-antivirus-cloud-works.html' title='Will CloudAV, the AntiVirus Cloud Works ?'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/WeiChungHu/SJ0cnbfNinI/AAAAAAAACyw/FrIqS4Hg3_0/s72-c/cloundav-01.jpg?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-9101830475236892134</id><published>2008-08-09T07:37:00.016+08:00</published><updated>2008-08-09T11:47:53.739+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data and knowledge engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><category scheme='http://www.blogger.com/atom/ns#' term='web engineering'/><title type='text'>Bookmark Mindmap</title><content type='html'>前幾天在 RWW 上有一篇文章, 介紹了可以幫助 Bookmark Favorite Images 的三個 Sites : &lt;a href="http://www.readwriteweb.com/archives/3_cool_sites_to_bookmark_your_favorite_images_on_the_web.php"&gt;3 Cool Sites to Bookmark Your Favorite Images on the Web&lt;/a&gt;. 昨天在看到一篇與 Cloud Computing &lt;a href="http://www.businessweek.com/technology/content/aug2008/tc2008083_703047.htm?campaign_id=rss_daily"&gt;相關的文章&lt;/a&gt;, 並把他利用回應的方式附加到我&lt;a href="http://selainsoft.blogspot.com/2008/07/something-about-cloud-computing.html"&gt;之前的文章&lt;/a&gt;時, 忽然想到, 往往我們在 Web 上會看到跟之前一些想法相關的資料, 包含文章圖片影像動畫等等 -- 姑且稱為 Web Materials 好了 -- 是否可以有很容易的方法來蒐集組織他們呢 ?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.google.com/notebook/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 86px; height: 31px;" src="https://www.google.com/accounts/notebook/zh-TW/notebook.gif" alt="" border="0" /&gt;&lt;/a&gt;之前用過 &lt;a href="http://www.google.com/notebook/"&gt;Google Notebook&lt;/a&gt;, 在蒐集上是很方便, 但是後端的組織就比較弱. 這種類似的系統由於缺乏比較系統化的組織工具, 因此容易出現蒐集了一堆, 後續處理反而麻煩的情況.&lt;br /&gt;&lt;br /&gt;如果我們把自己的 Blog 視為表達紀錄自己知識的媒介, 那麼其實可以把這種組織的行為以 Blog 文章為中心作連結, 等同於以 "Adding" 的方式連結別人的知識到自己的知識上, 同時這是屬於個人式的知識累積. 很直覺的會想到利用 MindMap 來作整理. 借用 &lt;a href="http://en.wikipedia.org/wiki/FreeMind"&gt;FreeMind&lt;/a&gt; 作個假想圖 :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/WeiChungHu/SJ0OT4MakwI/AAAAAAAACyI/eKFrk4TYsM8/FreeMind-blog-bookmarks.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://lh3.ggpht.com/WeiChungHu/SJ0OT4MakwI/AAAAAAAACyI/eKFrk4TYsM8/FreeMind-blog-bookmarks.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;利用 "Bookmark MindMap" 在 Google 做了一下&lt;a href="http://www.google.com.tw/search?complete=1&amp;amp;hl=zh-TW&amp;amp;q=Bookmark+mindmap&amp;amp;btnG=%E6%90%9C%E5%B0%8B&amp;amp;meta=&amp;amp;aq=f"&gt;搜尋&lt;/a&gt;, 發現有一些類似的 Tools, 例如有人替 Del.icio.us 作了 &lt;a href="http://www.mindmymap.com/"&gt;Delicious Mind Map Maker&lt;/a&gt;, 可以吃進你的 Del.icio.us 資料, 製作出 MindMap 來.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/WeiChungHu/SJ0QpT_ch9I/AAAAAAAACyQ/hK8uMHO9oV0/FreeMind-blog-bookmarks-07.jpg?imgmax=512"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px;" src="http://lh3.ggpht.com/WeiChungHu/SJ0QpT_ch9I/AAAAAAAACyQ/hK8uMHO9oV0/FreeMind-blog-bookmarks-07.jpg?imgmax=512" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;另外 &lt;a href="http://www.blainekendall.com/deliciousmind/"&gt;DeliciousMind&lt;/a&gt; 也同樣是幫助把 Del.icio.us 上的資料以 MindMap 形式作整理與呈現的工具, 他利用了 FeeeMind. ( &lt;a href="http://www.nothickmanuals.info/doku.php/articles:deliciousmind"&gt;這裡&lt;/a&gt;有額外的介紹跟 Examples )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.blainekendall.com/deliciousmind/mindmap-example.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 350px;" src="http://www.blainekendall.com/deliciousmind/mindmap-example.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;不過這些都跟我想要的還是有一段距離. 我認為一張 MindMap 應該是以一篇 Post 為中心, 而往外擴展關係, 然而整個網站未必要是多張獨立的 MindMap, 這樣會讓 Blogger 整理到死. 相對的, 一個 Blog 本身是 Personal Knowledge Web, 而以單一 Post 為中心可以得到一個以上的 MindMaps.  這也跟之前 &lt;a href="http://selainsoft.blogspot.com/2008/07/something-about-library-20-1-digital.html"&gt;Library 2.0 的討論&lt;/a&gt;有相關之處.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-9101830475236892134?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/9101830475236892134/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=9101830475236892134' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/9101830475236892134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/9101830475236892134'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/08/bookmark-mindmap.html' title='Bookmark Mindmap'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/WeiChungHu/SJ0OT4MakwI/AAAAAAAACyI/eKFrk4TYsM8/s72-c/FreeMind-blog-bookmarks.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-7728569939002442222</id><published>2008-08-09T06:38:00.003+08:00</published><updated>2008-08-09T07:22:44.343+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='operating system'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>The Connected OS and Midori from Microsoft</title><content type='html'>Microsoft 在 Windows 7 之後的繼任者已浮現雛型 ?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/presspass/exec/ozzie/"&gt;Ray Ozzie&lt;/a&gt;, CTO of MS, 在最近 MS 的年度 Financial Analyst Meeting 會議中提到 (原始內容在 &lt;a href="http://www.microsoft.com/msft/speech/FY08/OzzieFAM2008.mspx"&gt;MS.com 上面有刊載&lt;/a&gt;) :&lt;br /&gt;&lt;blockquote&gt;We believe in a future, again, in many ways analogous to Xbox LIVE, in which Windows Live acts as a strategic extension to both Windows on the PC and Windows Mobile on the phone. &lt;span style="font-weight: bold;"&gt;You can think of this as the connected OS, Windows beyond the level of a single device or PC&lt;/span&gt;. How &lt;span style="font-weight: bold;"&gt;the OS connects to services and how it synchronizes with other devices&lt;/span&gt; are key. Your PC's config settings, your apps and their settings, your files and folders, are transparently synchronized across a mesh of PCs and other devices by Windows.&lt;/blockquote&gt;再加上最近查詢度很高的 &lt;a href="http://en.wikipedia.org/wiki/Midori_%28operating_system%29"&gt;Midori OS&lt;/a&gt;, 讓人不把這兩者想在一起都難 :p&lt;br /&gt;&lt;br /&gt;但我相信 Ray Ozzie 真正要說的 Key 應該還是對於 Resources 的管理與需求, 而不是單純的 Service Connection 以及 Device Synchronization. &lt;a href="ttp://codex.cs.yale.edu/avi/os-book/"&gt;恐龍本&lt;/a&gt;一開始就把 OS 的目的跟主要工作寫得很清楚了, 只是在未來 -- 也許是 Cloud Computing 的未來 -- Resource 的型態也許會跟現行的 Computer Resource 會有很大的差異, 例如 Memory Service Resource, Computing Service Resource 之類的, 同時可能會再異化出更多的 Resource 種類出來, 與單純在硬體上的 CPU/Memory Resource 搶奪大不相同.&lt;br /&gt;&lt;br /&gt;但對於 Operating System 的需要以及定義, 我想基本上還是相同的.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-7728569939002442222?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/7728569939002442222/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=7728569939002442222' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7728569939002442222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7728569939002442222'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/08/connected-os-and-midori-from-microsoft.html' title='The Connected OS and Midori from Microsoft'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-2599254168062637229</id><published>2008-07-31T07:34:00.000+08:00</published><updated>2008-07-31T07:34:00.416+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming learning'/><title type='text'>Two Final Projects Inspired by Audi for Beginners</title><content type='html'>前幾天寫了關於 &lt;a href="http://selainsoft.blogspot.com/2008/07/audis-travolution-towards-future.html"&gt;Audi 的 Travolution&lt;/a&gt;,進而想到了兩個相關的題目, 蠻適合給大一學生作 Final Project 的. ( 話說為什麼我會在颱風風雨中騎機車時想到這個呢 = = )&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. 真人版 Travolution &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;第一個是利用 Wireless Device 直接模擬 Audi Travolution 的運作. 可以在電機系館一樓的空間劃定線格代表街道跟路線, 架設假的紅綠燈, 用不同的 Wireless Device 放置在紅綠燈定點, 就跟 Audi 在真實的紅綠燈上作的一樣.&lt;br /&gt;&lt;br /&gt;學生手上拿的是 Notebook 或是 UMPC, 同時學生寫的作業就是要模擬 Audi 在汽車上的 Client Software, 必須時時提醒駕駛員目前的時速應該控制到多少. 整個距離可以用等比例作規劃, 學生就拿著 NB 把自己當作汽車在跑, 感覺有點像大富翁 :p&lt;br /&gt;&lt;br /&gt;中間可以加上一些特殊事件, 道路速限, 道路維修, 臨檢等等, 就更像大富翁了. 同時學生之間是需要彼此競爭的. 不過由於這是給大一學生的 Project, 因此基本的環境架設就要由 TA 負責.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Travolution 模擬遊戲&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;跟真人版的一樣, 只是在模擬遊戲中, 學生必須寫出 Strategy 來控制所有的車輛, 從一個既定範圍的四周會不斷的有新的車輛湧入, 要到達特定的出口 ( 一張圖有許多出入口 ), 同樣道路有許多的特性, 中間當然也會有紅綠燈的出現, 而最終目的是要讓所有車輛所使用的平均時間最少.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SI3SyzmI2MI/AAAAAAAACw4/pNFgNbFkWX0/travolution-simulation-01.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 440px;" src="http://lh5.ggpht.com/WeiChungHu/SI3SyzmI2MI/AAAAAAAACw4/pNFgNbFkWX0/travolution-simulation-01.jpg" alt="" border="0" /&gt;&lt;/a&gt;這樣的模擬遊戲當然也可以讓不同的學生彼此競爭, 只要讓新湧入的車輛分別受不同的 Strategy 控制即可. 同樣的, Strategy 可以執行的 Environment 也需要由 TA 去建構.&lt;br /&gt;&lt;br /&gt;這兩個遊戲的目的都是希望透過進行跟業界真實產品類似的作業, 讓學生可以比較容易想像自己的 Programming 可以用在甚麼樣的地方, 發揮甚麼樣的價值.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-2599254168062637229?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/2599254168062637229/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=2599254168062637229' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2599254168062637229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2599254168062637229'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/two-final-projects-inspired-by-audi-for.html' title='Two Final Projects Inspired by Audi for Beginners'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/WeiChungHu/SI3SyzmI2MI/AAAAAAAACw4/pNFgNbFkWX0/s72-c/travolution-simulation-01.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-4274367987279464687</id><published>2008-07-30T07:51:00.000+08:00</published><updated>2008-07-30T07:51:00.256+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data and knowledge engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='web engineering'/><title type='text'>Something about Library 2.0 (1) : Digital Library</title><content type='html'>Library 2.0 的議題在國內外已經有數年的討論了. 關於命名當然跟 &lt;a href="http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html"&gt;Web 2.0&lt;/a&gt; 有關, 但是整體概念的演進早在 &lt;a href="http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html"&gt;Web 2.0&lt;/a&gt; 被 &lt;a href="http://www.oreillynet.com/pub/au/27"&gt;Tim O'Reilly&lt;/a&gt; 拋出之前.&lt;br /&gt;&lt;br /&gt;我現在有在訂閱的幾個 Bloggers 也持續的關注此議題, 不過大多是以圖書館員, 或是圖書館界人士的角度. 正巧我之前跟老師的討論中整理了一些關於 Library 的想法, 是從 Architecture Evolution 的角度整理的, 順手搬到 Blog 上, 從不同的角度看 Library 2.0&lt;br /&gt;&lt;br /&gt;跟其他的 XXX 2.0 一樣, Library 2.0 絕對不是獨立的技術跟概念, 而是同一個趨勢在不同領域的展現, 透過搬移其他領域的成功經驗, 以及解決其他領域一樣遇到的問題, 才有可能讓 Library 2.0 的理想獲得成功. ( 當然, 還要主事者不腦殘 = = )&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. The Definition&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;引用 &lt;a href="http://en.wikipedia.org/wiki/Library"&gt;Wikipedia 上對於 Library &lt;/a&gt;的部分敘述 :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;A library is a collection of information, sources, resources and services, organized for use, and maintained by a public body, an institution, or a private individual&lt;/span&gt;. In the more traditional sense, it means a collection of books. This collection and services are used by people who choose not to — or cannot afford to — purchase an extensive collection themselves, who need material no individual can reasonably be expected to have, or who require professional assistance with their research.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;從這段敘述中可以推想出幾個關於 Library 的特性, 我認為也適用於 Library 2.0 :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Library 內的東西可以有很多種, 而非只有 book 而已&lt;/li&gt;&lt;li&gt;Library 內的東西必須經過特定的整理以方便使用&lt;/li&gt;&lt;li&gt;Library 的 maintainer 可以是單一個人, 一小團體, 一個機構, 甚至是大眾, 並沒有特別限制&lt;/li&gt;&lt;li&gt;Library 的大小並沒有特別的限制&lt;/li&gt;&lt;li&gt;Library 的使用者數量也沒有特別的限制&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. The Conventional Solution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;目前常見的 Library 所採取的做法是, 由 Maintainer Role 負責為 Library 內的各種 contents, 例如 books, 事先以特定的分類方式作分類, 然後 User Role 必需去學習這樣的分類方式, 以便有效率地進行搜尋以取得想要的 contents.&lt;br /&gt;&lt;br /&gt;在此做法下, Maintainer Role, Library, 以及 User Role 之間的關係像是這樣的 :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/WeiChungHu/SGstJxY5t_I/AAAAAAAACno/vM-YqdoAocM/library20-04.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 361px;" src="http://lh4.ggpht.com/WeiChungHu/SGstJxY5t_I/AAAAAAAACno/vM-YqdoAocM/library20-04.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Maintainer Role 除了要負責維持 Library 的 functionality 運作之外, 同時也負責設計及實施 classification scheme, 而 User Role 是在 Maintainer Role 所決定的 Classification Scheme 下所使用 Library.&lt;br /&gt;這樣的 solution 基本上是可以運作並實現 Library 的功能, 但是這樣的 solution 並不夠好 :&lt;br /&gt;&lt;br /&gt;在此 solution 底下, User Role 被迫必須接受並使用 Maintainer Role 的觀點, 而難以較有效率且符合自身需要的方式來重新分類 Library 內的 contents&lt;br /&gt;對 Maintainer Role 來說, 也因為此 solution 而限制了他們可以嘗試的 classification scheme. 因為大多數 Users 會希望到各個不同 Library 可以以自己習慣的方式作 contents 找尋的動作, 而不是每到不同的 Library 就需要面對不同的 classification scheme. 因此 Maintainer Role 其實只能被限制在數種主流的 classification scheme 中&lt;br /&gt;&lt;br /&gt;我認為之所以會產生這些 imperfect 問題的原因, 其實跟過去基於人力所能負擔的 effort 有限, 以及 Library 是實體的 ( Physical ) 有關, 例如圖書館.&lt;br /&gt;&lt;br /&gt;由於過去主要以人力進行管理與維護, 因此如果 classification scheme 不由 Maintainer Role 所掌控, 並強迫 User Role 依照統一的 scheme 使用, 則為了應付不同 Users 的需求, Library Maintainer 必須花費相當巨量的 efforts 來提供服務, 但如此一來 cost 也相對大量增加, 這將與 Library 概念的初衷之一, 減少整體社會接觸知識所需要的 cost, 產生相違背的情況.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. The Digital Solution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;在 Computer 被發明並普及化後, 其實我們應該回頭去思考, 是否可以利用 computer 的 computation power,  重新去改進過去限於人力考量, 所無法圓滿解決的 Library 問題.&lt;br /&gt;&lt;br /&gt;利用 computer 的特點在於, (1) computer 具有較為低廉的 computation power, (2) 基於 computer, 許多 Library contents 得以數位化 ( digital ) 的形式存在, 以及被取用. 底下稱呼利用 computer 來解決的做法為 digital solution.&lt;br /&gt;&lt;br /&gt;鑑於 application context 的不同, 我認為 digital solution 可以分為下面兩者, 兩者的差別在於 Library 內所管理的 contents 是否具有實體而定.&lt;br /&gt;&lt;br /&gt;Semi-Digital Library : 其內的 contents 仍然具有實體, 因此我們不可能使用不固定的 classification scheme 來管理這些 contents, 在實體世界中必然要選擇一種 scheme 來管理這些實體 contents. 但是對於 User Role 在進行搜尋來說, 由於可以把這些實體 contents 以虛擬的物件 ( Virtual Object ) 來表示, 因此在 User Role 端可以保有自己的classification scheme, 透過 computer 進行管理, 不需要花費 Maintainer Role 的 effort. 因此在此 solution 下, Maintainer Role 的責任略小, 只負責實體 contents 的管理, 以及 Semi-Digital Library functionality 的正常運作.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/WeiChungHu/SGstur-JKlI/AAAAAAAACog/dV6Y6nIn_d8/library20-05.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 407px;" src="http://lh3.ggpht.com/WeiChungHu/SGstur-JKlI/AAAAAAAACog/dV6Y6nIn_d8/library20-05.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Digital Library : 其內的 contents 完全是 digital contents, 因此完全可以使用 computer 進行儲存以及其他管理. 因此在 classification 部分, Maintainer Role 完全不需要介入, Maintainer Role 將只需要負擔維持 Digital Library 的 functionality 正常運作的責任即可. 而 classification scheme 將完全基於 User Role 運作.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/WeiChungHu/SGstKc87t_I/AAAAAAAACnw/55fPwA_LGq8/library20-06.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 368px;" src="http://lh4.ggpht.com/WeiChungHu/SGstKc87t_I/AAAAAAAACnw/55fPwA_LGq8/library20-06.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;上述的 Semi-Digital Library 以及 Digital Library 兩個 solutions 之共同特點在於, 利用 computer, 將 classification scheme 的調整以及決定, 曝露 ( expose ) 給 User Role. 進而 classification scheme 有機會具備 personalization 的特性. 而回頭去看 conventional solution 中的 imperfect 部分, 將可以藉由此種方式被滿足.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Personal Small Library&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;另外在此想特別針對較小的 Library 討論其應用 digital solution 之後的改變.&lt;br /&gt;&lt;br /&gt;在 1999 年日本偶像劇場有一部戲劇叫做 &lt;a href="http://over-time.idv.tw/drama-115.html"&gt;Lipstick&lt;/a&gt;, 其內有一句台詞大概是這樣說 :&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;如果有一個夠小的公共圖書館, 是由一個人單獨維護管理 ( 包含選書以及整理 ), 則透過仔細觀察這個圖書館裡的書, 你將能夠窺視管理者的個人思維.&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;許多小型的 Libraries 事實上具有特殊的用途, 可能是學者或是作家私人的參考資料庫, 或是一個實驗室共用的圖書研究資料蒐藏, 一個機構的歷史文件彙整等等. 因此裡面所放置的 contents相當程度反映了 Maintainer Role 或是  User Role groups 的相關訊息, 極有可能這些 contents 本身就具有一定的相關度, 而此相關度反映在使用該 Library 的 users 身上. 同時這樣的小型圖書館有一個極大的特點, 在於 User Role 的使用方式以及用途有極高的相似度, 使得嘗試統整所有使用者的 classification scheme, 以及 logic, 來為彼此的搜尋提供幫助, 具有很高的可行性以及實用性.&lt;br /&gt;&lt;br /&gt;然而這在 conventional solution 中較難以實現, 理由是各 Users 的使用觀點事實上會隨著時間而有所變動, 進而牽動整個 group 的整體共通觀點改變, 換句話說這樣的改變是動態地, 隨時發生的, 且是藉由許多 Users 的意見交錯協調條而達到一個穩定的狀態 ( Stable Status). 在 conventional solution 中, 這樣的改變較難以達到, 因為這需要所有 Users 定期舉行會議, 討論大家都可以接受的 classification scheme, 相當地耗費時間.&lt;br /&gt;&lt;br /&gt;相對來說, 在 digital solution 中顯然就較為容易做到, 藉由 computer 以及 network 的幫助, Users 的使用模式以及使用邏輯 ( Logic ) 可以被紀錄與分析, 進而彼此影響, 達到一個 group 內共享的觀點. 而且此共享的觀點可以隨著 Users 端的改變而動態地調整. 而在此同時, 各 Users 保持有自己的觀點仍舊是可能的.&lt;br /&gt;&lt;br /&gt;而由此觀點而言, Semi-Digital Library 以及 Digital Library 使得 Library 不再只是靜態的 content data 的分類存放以及取用場所, 而是轉變為 group 內 users 的意見彙整平台之一, 透過在 Digital Library 內分享觀點, Digital Library 轉變成為引導 group 前進方向的動態角色之一.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;5. Public Large Library&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Large Public Library 的情況就與 Small Library 的情況不盡相同. 差異在於 Large Public Library 的使用者通常較多且雜, 使用目的也差異較大, 因此利用 digital solution 可以達到的好處應該會比較偏向 personalization 部分. 然而在統計數據的支持下, 或許可以考慮把 Large Public Library 切割成數個 clusters, 然後將每個 cluster 視為 Small Library 來處理. 在此情況下, 需要每個 cluster 有固定的 Users 才可行.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/WeiChungHu/SGstKqDhGAI/AAAAAAAACn4/OjZ1FqeUmiU/library20-07.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 378px;" src="http://lh3.ggpht.com/WeiChungHu/SGstKqDhGAI/AAAAAAAACn4/OjZ1FqeUmiU/library20-07.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;目前在 Web Recommendation System 上已經出現了類似的概念被實現, 例如 &lt;a href="http://www.readwriteweb.com/archives/reddit_open_source.php"&gt;Reddit&lt;/a&gt;,&lt;a href="http://www.readwriteweb.com/archives/mixx_wants_you_to_built_a_comm.php"&gt; Mixx&lt;/a&gt; 都有讓使用者建立自己的 Community 的能力, 而 &lt;a href="http://www.readwriteweb.com/archives/roll_your_own_digg_soon.php"&gt;Digg&lt;/a&gt;&lt;a href="http://www.readwriteweb.com/archives/roll_your_own_digg_soon.php"&gt; 也準備跟進&lt;/a&gt;. 當然這只是在 Web 的部份而已.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-4274367987279464687?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/4274367987279464687/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=4274367987279464687' title='6 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4274367987279464687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4274367987279464687'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/something-about-library-20-1-digital.html' title='Something about Library 2.0 (1) : Digital Library'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/WeiChungHu/SGstJxY5t_I/AAAAAAAACno/vM-YqdoAocM/s72-c/library20-04.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-4797151303467577702</id><published>2008-07-29T07:30:00.000+08:00</published><updated>2008-07-29T07:30:00.950+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='article comment'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded System'/><title type='text'>恐怖的 Adeona</title><content type='html'>過去兩三個禮拜 Adeona 忽然變成了一個熱門關鍵字 :p&lt;br /&gt;&lt;br /&gt;原因是 &lt;a href="http://http://adeona.cs.washington.edu/index.html"&gt;Adeona&lt;/a&gt; 這個 Open Source Project, 號稱是第一個可以對於你的 Laptop Notebook 進行 Tracking 的 Open Source Software, 對於追回失竊的 Notebook 來說特別有用.&lt;br /&gt;&lt;br /&gt;其基本的概念是在 Notebook 上安裝一個 Client Software, 每當 Notebook 連接上網路時, 會自動將該 Notebook 的位置 ( IP 以及相對存取周遭網路設備的位置 ) 進行 AES 加密後, 利用 &lt;a href="http://www.opendht.org/"&gt;OpenDHT&lt;/a&gt; 技術存到特定的 Server 上, 該加密過後的位置資料只有原始擁有者可以開啟, 如此一來 Notebook 的擁有者就可以對於 Notebook 的位置進行追蹤, 並確保自己的隱私.&lt;br /&gt;&lt;br /&gt;關於 Privacy 部份, 事實上 Adeona 作的考量更多, 包含無法簡單透過 Location Update 去鎖定特定的 Device 等等, 務求達成 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Anonymous, Unlinkable Updates&lt;/span&gt;, 詳細內容請見 &lt;a href="http://adeona.cs.washington.edu/adeona-usenixsecurity08.pdf"&gt;Adeona 的發表 Paper&lt;/a&gt; , 在講述 System Goal 的部份有列舉說明.&lt;br /&gt;&lt;br /&gt;我之所以覺得 Adeona 很恐怖是因為, 同樣的概念幾乎可以用在任何可以運作 Software 的地方(或東西). 甚至我可以說, 一般 Notebook 並非 Adeona 最好的利用環境. 理由是一般 Notebook 或是 Laptop 的系統都很容易被重新安裝或是修改. 重新安裝會使得 Adeona 失去作用, 而修改則可能使得竊賊進一步利用 Adeona 對於追蹤進行&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;欺騙&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;反倒是其他的高價物品, 利用 Adeona 的可能性以及有效性極高. 例如在無線環境下的汽機車, 高單價的 Mobile Device, 重要的文件盒保險箱等等 ( 不用再害怕忘在公車或是計程車上摟 ). 可以簡單把 Adeona 作成一個具無線網路功能的訊息送出嵌入式設備, 讓使用者自行安裝在要追蹤的物品上. 這種嵌入式系統就可以避免掉上述的問題, 只要不被從保護物品上拆除就好. ( 使用者可以裝在很隱密, 或是無法拆除的地方 ). 從這個角度來看, 其實跟 RFID 又有點像, 但是安全性以及範圍又比 RFID 大很多.&lt;br /&gt;&lt;br /&gt;而除了這些可能之外, 最恐怖的是, Adeona 也可能被裝在 Software 或是 Data 身上, 讓我們可以對於 Software 或是 Data 的 Distribution 作追蹤, 例如公司內重要的電子文件管理, 怎樣確保每一份被複製的重要文件, 沒有在允許以外的地方被開啟.&lt;br /&gt;&lt;br /&gt;這樣一想, Adeona 的概念幾乎可以用在任何地方, 這能不恐怖嗎, 光用想的我雞皮疙瘩就起來了 = =&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-4797151303467577702?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/4797151303467577702/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=4797151303467577702' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4797151303467577702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4797151303467577702'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/adeona.html' title='恐怖的 Adeona'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-1474490628336600190</id><published>2008-07-28T16:38:00.029+08:00</published><updated>2008-07-28T21:28:11.102+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>James Gosling's Q&amp;A Podcast at Java One 2008</title><content type='html'>James Gosling 在 Java One 2008 的一個 Q&amp;amp;A Session 內容現在可以&lt;a href="http://today.java.net/pub/a/today/2008/07/25/j1-2k8-mtW10.html"&gt;利用 MP3 下載聽&lt;/a&gt;了. 不過我覺得大多問題其實沒有很深入地回答, 本來看到網頁上寫到 java.net 的未來還蠻有興趣的, 以為會跟 SOA 有很強的關聯, 不過就我聽到的內容, 似乎也是輕輕帶過而已.&lt;br /&gt;&lt;br /&gt;大概有以下重點 ( 邊聽邊隨便打打, 內容文法可能...ㄜ, 語句應該也不是很連貫, 重點節錄, 跟 Java 關係不大的議題我就自動跳過了 ) :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;有人問道 : If you develop Java all over again, what will be done differently. 於是 Gosling 就說啦, Properly wont develop AWT (觀眾笑), and left over calender class &lt;span style="color: rgb(153, 153, 153);"&gt;( 這點不是很確定, 因為 calender 不是被大修過, 為什麼是 left over ? )&lt;/span&gt;, won't done closure at the first time.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;有人關心 Balance between continuous adapting, evolving, changing of Java and the the mature of Java, 可能是想問究竟 Java 算不算成熟, 持續的有改變是否是好事之類的. Gosling 回答道, Java 5 is really a change &lt;span style="color: rgb(153, 153, 153);"&gt;( 事實上直到 Java 5 才真正做了比較大的改變 ) &lt;/span&gt;. There are still many Java 7 proposals on debate. The way people use it is changing. Java works out better then expected. Many proposals, such as bound property proposal, are more complicated than just writing the code. Must consider some issues, such as explosion and chaos of APIs. &lt;span style="color: rgb(153, 153, 153);"&gt;( 我覺得這跟一般的 Software 增加新的 Features 是差不多的 )&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Something about Generic, seems similar with last question.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Favorite IT/IS topics of James Gosling. Depend on who he talks. &lt;span style="color: rgb(153, 153, 153);"&gt;( No very related with Java. )&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Future of "small Java"&lt;span style="color: rgb(153, 153, 153);"&gt; ( Nothing new actually )&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Favorite Language despite Java ? James Gosling : It's an easy quesiton, &lt;a href="http://www.scala-lang.org/"&gt;&lt;span style="font-weight: bold;"&gt;Scala&lt;/span&gt;&lt;/a&gt;. &lt;span style="color: rgb(153, 153, 153);"&gt;( 一點都不熟阿 = = 要檢討 )&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;有人問道 Java is similar to an OS&lt;span style="color: rgb(153, 153, 153);"&gt; ( 指在很多表現上很像一個 OS )&lt;/span&gt;, platform, not simply a Programming Language environment. James Gosling 順著接手說, bycode is general for many languages. 雖然 JVM 將可以支援很多不同的語言 ( More and more services can built upon JVM in next 10 years. ), 但是某些語言是難以被完整支援的, 特別是跟 pointer 有關的語言. 即便如此, Give up C/C++, that was no-brainer. 中間還有說道 James Gosling 其實很 appreciate Microsoft 對於 C/C++ 的付出貢獻 &lt;span style="color: rgb(153, 153, 153);"&gt;( 我應該沒聽錯 XD )&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;有人問道 Java 7 的時間表. Time frame for Java 7 or new features, or progress. James Gosling 說 It not technical question, but policy, JCP, something related ( 就是說沒辦法單單從 Technology 角度給答案啦, James Gosling 目前是 Sun 的 Client Software Group CTO ). There is no schedule, hope yesterday :p&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;給大家的話. Last word for developers : &lt;span style="font-weight: bold;"&gt;Drink more Beer&lt;/span&gt; ^^ &lt;span style="color: rgb(153, 153, 153);"&gt;(這應該是給 Java One 參加者的話)&lt;/span&gt; , &lt;span style="font-weight: bold;"&gt;Make sure you working on projects for fun&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;整個錄音中其實我最有興趣的是 James Gosling 反覆提到的那個 Slide Program, 但是只有發音 ( 類似 Hextor 的發音 ) 不知道怎樣查, 嘗試幾個都找不到 @@&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-1474490628336600190?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/1474490628336600190/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=1474490628336600190' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1474490628336600190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1474490628336600190'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/james-goslings-q-podcast-at-java-one.html' title='James Gosling&apos;s Q&amp;A Podcast at Java One 2008'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-4896855273572388202</id><published>2008-07-28T07:00:00.011+08:00</published><updated>2008-07-28T07:00:01.340+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='web engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='context-aware'/><title type='text'>中央氣象局什時會整合 Google Earth ?</title><content type='html'>颱風夜寫這篇真是應景阿 ^^&lt;br /&gt;&lt;br /&gt;長久以來&lt;a href="http://www.cwb.gov.tw/"&gt;中央氣象局&lt;/a&gt;都只有提供俯瞰的&lt;span style="font-weight: bold;"&gt;衛星雲圖&lt;/span&gt;, 但是 Abstraction Level 太高, 也沒辦法任意變更 Granularity, 說穿了只是往往在颱風來時, 只是看到台灣整個被淹沒而已, 沒辦法調整 Granularity 來看自己居住地區的最近幾小時情況. 雖然也有提供&lt;span style="font-weight: bold;"&gt;即時影像&lt;/span&gt;, 但是一來都是定點, 同時一下子又把視野調到太小, 參考度其實也不高.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SIy022F1ABI/AAAAAAAACwY/BOt0CUYUDss/central-weather-bureau-01.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://lh5.ggpht.com/WeiChungHu/SIy022F1ABI/AAAAAAAACwY/BOt0CUYUDss/central-weather-bureau-01.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;我相信中央氣象局手上握有的資料一定比利用衛星雲圖給一般民眾看到的更多, 只是受限於經費以及技術限制, 沒辦法在網頁上提供更先進, 更詳細且好用的 Visualization 介面給訪客.&lt;br /&gt;&lt;br /&gt;既然如此, 是否中央氣象局應該考慮採用整合既有的技術, 例如 Google Earth, 作為平台, 附加屬於中央氣象局的有用資訊呢 ?&lt;br /&gt;&lt;br /&gt;目前 Google Earth 已經可以讓使用者&lt;a href="http://www.ubuntu-tw.net/modules/newbb/viewtopic.php?post_id=25029"&gt;即時觀察颱風以及颶風等天氣狀&lt;/a&gt;態, 並且上面可以看到許多有用的天氣資訊, 如果中央氣象局可以讓資訊部門成立一個小組負責把中文化的資訊整合上去, 我相信只有初期會花比較多心力, 之後就會很輕鬆.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img187.imageshack.us/img187/4305/typhoonso6.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://img187.imageshack.us/img187/4305/typhoonso6.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;甚至當 &lt;a href="http://earth.google.com/intl/zh-TW/tour.html"&gt;Google Earth 的 3D 化&lt;/a&gt;成熟之後, 將可以進一步把颱風的面貌用 3D 的圖像顯示, 這樣應該有助於一般民眾對於颱風強度以及危害的認識與警覺性, 而不是僅透過一些聽不懂的數據去了解颱風. ( 以下圖片引用自 &lt;a href="http://bbs.keyhole.com/ubb/showflat.php/Cat/0/Number/1103561/an/0/page/0"&gt;Google Earth Community&lt;/a&gt; )&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://disc.gsfc.nasa.gov/googleearth/kml/post02_trmm1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 290px;" src="http://disc.gsfc.nasa.gov/googleearth/kml/post02_trmm1.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://disc.gsfc.nasa.gov/googleearth/kml/post03_amsr-e.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 290px;" src="http://disc.gsfc.nasa.gov/googleearth/kml/post03_amsr-e.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;稍微查了一下, 颱風與氣象相關資料的 3D Visualization 也是&lt;a href="http://mscweb.cwb.gov.tw/V2/"&gt;有在作&lt;/a&gt;呢, 希望可以早日成熟, 一定會很有用的 :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-4896855273572388202?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/4896855273572388202/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=4896855273572388202' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4896855273572388202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4896855273572388202'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/google-earth.html' title='中央氣象局什時會整合 Google Earth ?'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/WeiChungHu/SIy022F1ABI/AAAAAAAACwY/BOt0CUYUDss/s72-c/central-weather-bureau-01.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-1560702457691890133</id><published>2008-07-27T15:00:00.001+08:00</published><updated>2008-07-27T15:00:01.349+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='context-aware'/><title type='text'>Audi's Travolution, Towards Future Traffic Control : Act After Negotiation</title><content type='html'>德國汽車大廠 &lt;a href="http://www.audi.com.tw/"&gt;Audi&lt;/a&gt; 開始在試驗名為 Vehicle-to-Infrastructure (V2I) 的交通控制概念, 名為 Travolution -- 顯然地是 Travel + Evolution 的併詞.&lt;br /&gt;&lt;br /&gt;最近釋出的初期產品是透過在 Traffic Light 上安裝可以透過無線網路回報目前 Traffic Light 狀態的裝置, 使得安裝在汽車上的提醒裝置可以進行計算, 並告知駕駛員應該減速或加速到多少, 以便能夠一路上不會遇到紅燈, 以最有效率的方式駕車.&lt;br /&gt;&lt;br /&gt;不過從新聞稿中看不出此裝置是否會考量現實的交通狀況, 畢竟在車量多時要駕駛到指定的速度有可能是辦不到的事. 相關的新聞可以參考 &lt;a href="http://www.autoblog.com/2008/07/22/audi-system-detects-stop-lights-tells-drivers-to-floor-it/"&gt;AutoBlog&lt;/a&gt; 以及 &lt;a href="http://www.traffictechnologytoday.com/news.php?NewsID=7000"&gt;Traffic Technology Today&lt;/a&gt;. ( 以下圖片取用自 &lt;a href="http://www.autoblog.com/2008/07/22/audi-system-detects-stop-lights-tells-drivers-to-floor-it/"&gt;AutoBlog&lt;/a&gt; )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.blogsmithmedia.com/www.autoblog.com/media/2008/07/audilights2_450op.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://www.blogsmithmedia.com/www.autoblog.com/media/2008/07/audilights2_450op.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;我覺得從 Audi 的這項產品可以看到, 相對於期待電影裡出現的車輛交通自動控制, 採取的是比較務實的作法. 基本上車輛的控制還是由人來執行, 但是車子本身則是設法提供有用的交通資訊以及建議給駕駛員, 協助整個旅程的順暢, 並消極地達成對於整體的交通控制.&lt;br /&gt;&lt;br /&gt;透過這類的裝置, 原本不同的車子是在&lt;span style="font-weight: bold;"&gt;表現出行為之後才彼此影響&lt;/span&gt;, 而未來將可能是&lt;span style="font-weight: bold;"&gt;經過協調 (Negotiation)&lt;/span&gt; 之後, 才表現出行為, 然後&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;造成可預期的影響&lt;/span&gt;. 換句話說, 也許在車子上, 此類裝置最後會給出一個 "&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Traffic Preview&lt;/span&gt;" , 告訴你這樣開的話, 五分鐘後會是怎樣的情況. 不過這需要除了 Traffic Light 與車子之外, 車子與車子之間的 Communication 才能達成.&lt;br /&gt;&lt;br /&gt;不過這在台灣應該用處不大就是了 :p&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-1560702457691890133?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/1560702457691890133/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=1560702457691890133' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1560702457691890133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1560702457691890133'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/audis-travolution-towards-future.html' title='Audi&apos;s Travolution, Towards Future Traffic Control : Act After Negotiation'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-7979654196942118833</id><published>2008-07-27T10:00:00.001+08:00</published><updated>2008-07-27T10:00:00.880+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><category scheme='http://www.blogger.com/atom/ns#' term='web engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='service oriented computing'/><title type='text'>Travel Plan Digg + SOA Travel Planning</title><content type='html'>最近要到蘭嶼去玩幾天 (8/1-8/4), 發現行程規劃實在是件有點複雜的事情.&lt;br /&gt;&lt;br /&gt;從台灣本島到蘭嶼有搭飛機以及搭船兩種方式. 飛機的話目前只有台東機場有德安航空到蘭嶼的航班, 其他地方沒有.搭船的選擇就比較多了, 台東富岡有, 也可以從屏東後壁.&lt;br /&gt;&lt;br /&gt;如果說旅程規劃沒有任何彈性, 事情就簡單許多, 但是選擇也相對變少. 比如說就是要從台北到蘭嶼, 然後日期就是 8/1 到 8/4, 那麼大約只剩下台北搭火車夜車到台東, 一早坐飛機到蘭嶼, 不過這樣的旅程很累 ; 或是 8/1 早上搭火車, 但是這樣到蘭嶼的時間就變成下午了.&lt;br /&gt;&lt;br /&gt;而如果旅程規劃有很多彈性, 像是我們的規劃, 可以接受先到台東住一兩天, 然後從容地搭飛機到蘭嶼 ; 甚至可以接受先到台南待一天, 然後從台南搭火車到台東 (大約只要三個半小時), 這樣比台北到台東快上不少, 旅程也比較不會累. 其他像是先到花蓮, 再到台東等等, 都在可以接受的範圍. 這時候再考量旅館, 交通, 食物等等相關事項, 整個規劃作業瞬間就變的很複雜.&lt;br /&gt;&lt;br /&gt;在 Web Service 與 SOA 的研究中常見以 Traveling 作為 Service &amp;amp; Workflow 的 Example. 常見以 Time 為根據作行程的銜接, 以及基本的條件設定, 然後加上一些進階條件的選擇, 像是不搭船, 以及 Quality 的要求等等. 這樣 SOA 的 Solution 事實上存在很多複雜度, 除了上面說的以外, 像是 Service 的狀態要能由 Service Provider 更新, 確保 Service Abailability 以及 Quality 等等.&lt;br /&gt;&lt;br /&gt;但是若單純以 Bottom-Up 的方式去產生可能的 Workflow, 固然可以得到最多的可能性, 但是畢竟使用者要的通常只有一兩個, 因此中間就需要透過使用者的參與來降低可能的選擇數目, 這又變成了 User Interaction 的問題.&lt;br /&gt;&lt;br /&gt;也許因為這樣的複雜度, 許多國內的旅遊服務都只停留在 Information Portal  或是 Service Portal 的階段而已, 而不是真正的 Service Provision Forge.&lt;br /&gt;&lt;br /&gt;我認為類似的應用應該考慮利用 Top-Down 以及 User Community 來夾出可能的選擇, 進而大幅降低一般使用者的負擔, 同時確保規劃結果的品質與可行性.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SIvDR85yW1I/AAAAAAAACv4/b9TTh-46kEs/travel-digg-soa-integration-01.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 550px;" src="http://lh5.ggpht.com/WeiChungHu/SIvDR85yW1I/AAAAAAAACv4/b9TTh-46kEs/travel-digg-soa-integration-01.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;方法就是利用現成的 Travel Plan 作為 Incomplete Workflow 去套可得的 Services. 可以想像一個類似 Digg 的 Travel Plan 推薦子系統, 由一個 Community 維護. Community 成員可以貢獻自己的 Travel Plan, 作為基本的 Template, 而其他成員是以一個 Travel Plan 為單位進行推薦以及參考. 而反過來, Community 也能夠提供 Single Service 的資訊, 有利於一般 Service 資訊的更新與正確性.&lt;br /&gt;&lt;br /&gt;當然, 免不了地 User Interface 依舊會是關鍵, 必須要能夠盡量降低使用者輸入以及推薦 Travel Plan 的 Effort, 才能夠在使用者可以得到的幫助與付出之間取得平衡. 另外必須有 Formal Travel Model, 而不是向許多旅遊網站只是讓使用者以 Natural Language + Free Style 分享旅遊心得. 既然要從使用者端取得資訊來再利用, 就應該有系統地蒐集以及使用.&lt;br /&gt;&lt;br /&gt;不用把資訊的取得想的太複雜, 也不要期望旅途中相關的商家旅館會時時更新訊息, 單純依靠 Community 的力量來建構這樣的環境, 有效地在資訊進來之前就先篩選, 同時也讓回給使用者的規劃有最高的有效性.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-7979654196942118833?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/7979654196942118833/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=7979654196942118833' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7979654196942118833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7979654196942118833'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/travel-plan-digg-soa-travel-planning.html' title='Travel Plan Digg + SOA Travel Planning'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/WeiChungHu/SIvDR85yW1I/AAAAAAAACv4/b9TTh-46kEs/s72-c/travel-digg-soa-integration-01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-7183401382084080312</id><published>2008-07-26T12:36:00.028+08:00</published><updated>2008-07-26T20:57:05.036+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software quality'/><category scheme='http://www.blogger.com/atom/ns#' term='web engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='Noun Explanation'/><title type='text'>Defining Operational Scalability</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Wayne Fenton&lt;/span&gt;, Director of Architecture at eBay Inc., 在 &lt;a href="http://jaoo.dk/"&gt;JAOO&lt;/a&gt; 2007 上給了一個 Talk : &lt;a href="http://www.infoq.com/presentations/Operational-Scalability-Wayne-Fenton"&gt;Operational Scalability in the Next Generation Web World&lt;/a&gt; (連結內有側錄影片 + Slides), 雖然影片長達 48 分鐘, 不過內容其實很簡短, 雖然提到很多次 eBay, 但是其實內容是獨立的, 有認真上 Fault Tolerance 的人應該都很容易聽懂內容, 因為都是基本的概念.&lt;br /&gt;&lt;br /&gt;事實上我沒有真的找到對於 Operational Scalability 較為嚴格的定義, 看看幾個從不同網頁 Copy 下來的 :&lt;br /&gt;&lt;br /&gt;From &lt;a href="http://www.soamag.com/"&gt;SOA Magazine&lt;/a&gt; &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;[1]&lt;/span&gt; :&lt;br /&gt;&lt;blockquote&gt;Operational scalability is the ability of a service-oriented solution architecture to &lt;span style="font-weight: bold;"&gt;establish and maintain highly efficient and adaptive, cost effective day-to-day operations&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;as the solution grows and scales with time&lt;/span&gt;. It is also represents the &lt;span style="font-weight: bold;"&gt;ability of the architecture itself to be efficiently re-factored to accommodate change and dynamic business requirements&lt;/span&gt;.&lt;/blockquote&gt;&lt;br /&gt;From &lt;a href="http://rajith.2rlabs.com/2007/11/16/scaling-your-system-what-i-learnt-from-dan-pritchetts-ebay-talk/"&gt;Rajith’s Column&lt;/a&gt; &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;[2]&lt;/span&gt; :&lt;br /&gt;&lt;blockquote&gt;Operational scalability is a software problem and you need to think about operational concerns right from the beginning. Pay attention to,&lt;br /&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Logging metrics, Monitoring.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Controlling/updating/tuning live apps without disrupting traffic.&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;與 Rajith 類似的說法在&lt;a href="http://xml.coverpages.org/"&gt; CoverPages&lt;/a&gt; 的一篇 &lt;a href="http://xml.coverpages.org/SybaseASE1251.html"&gt;Sybase 新聞&lt;/a&gt;中也可以看到, 不過搞不太清楚算是甚麼, 比較像是文宣, 就不納入參考.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cs.ucl.ac.uk/staff/l.duboc/"&gt;Leticia Duboc&lt;/a&gt; 的 PhD Work &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;[3][4]&lt;/span&gt; 認為 Scalability 基本上不容易也不適合有一個通用的定義, 需要視乎不同的系統以及面對不同的 Stakeholder 而異. 因此他們也建立了一個 Scalability Framework, 在不同的情況下去 Initiate 此 Framework, 定義不同的 Scaling Dimensions, Independent Variable, Dependent Variable, 以及 Evaluation Standard ( Scalability Claim ).&lt;blockquote&gt;We define scalability as a quality of software systems &lt;span style="font-weight: bold;"&gt;characterized by the causal impact&lt;/span&gt; that scaling aspects of the system environment and design have on certain measured system qualities as these aspects are varied over expected &lt;span style="font-weight: bold;"&gt;operational ranges&lt;/span&gt;.&lt;/blockquote&gt;(以下圖片引用自 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;[4]&lt;/span&gt;)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/WeiChungHu/SIsXHBmX0sI/AAAAAAAACvY/272-RxoOC8Q/leticia-duboc-scability-framework-01.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 483px;" src="http://lh3.ggpht.com/WeiChungHu/SIsXHBmX0sI/AAAAAAAACvY/272-RxoOC8Q/leticia-duboc-scability-framework-01.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;這樣我差不多可以稍稍做出結論. 基本上可以說有 Operational Scalability 這東西, 也可以說沒有. 在 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;[1][2]&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;中基本上是在特定的觀點下, 面對特定的 Stakeholder 去定義 Operational Scalability, 而其中 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;[1]&lt;/span&gt; 又更偏向一般性的 Scalability 敘述. 而在 Wayne Fenton 的 Talk 中事實上提到了許多不同的 Stakeholders, 不僅僅是一般的 Customers 而已. 因此他的 Operational Scalability 與其說是以 Stakeholders 作區分, 不如說是以 &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Operational Reliable Service&lt;/span&gt; 為中心思想, 並且放在Community 多變的 Web Service Context 下作說明.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Operational&lt;/span&gt; 指的是 Service 本身是&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;必須&lt;/span&gt;持續運作的, 你幾乎不能考慮停止這項 Service, 必須隨時 Ready for Use, 概念同於古老的 Non-Stop System 概念. 而 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Reliable&lt;/span&gt; 指的是 Service 可能會更新 Features, 但是不能夠因為新的 Features 而造成不可逆的改變. 這兩項在新時代的 Web Service 上更顯關鍵.  我們很容易有了想法, 很快的成立網站提供服務, 但是隨之而來的使用者人潮跟對於新功能的需求非常難以預料, 這跟過去 Software 面對的情況有顯著不同, Community 的形成之快是超乎預料的, 但是 Community 的衰落之快也同樣難以預期.&lt;br /&gt;&lt;br /&gt;而 Operational Scalability 在此情況下, 我認為其實就是&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;針對 Community Change 的 System Scalability&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[1]&lt;/span&gt;  Ted Barbusinski, "&lt;a href="http://www.soamag.com/I19/0608-3.asp"&gt;&lt;span style="font-weight: bold;"&gt;SOA Engineering Focal Points&lt;/span&gt;&lt;/a&gt;," &lt;span style="font-style: italic;"&gt;The SOA Magazine&lt;/span&gt;, Issue XIX, June 2008&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[2]&lt;/span&gt; Rajith Attapattu, "&lt;a style="font-weight: bold;" href="http://rajith.2rlabs.com/2007/11/16/scaling-your-system-what-i-learnt-from-dan-pritchetts-ebay-talk/"&gt;Scaling your system - What I learnt from Dan Pritchett’s (eBay) talk&lt;/a&gt;"&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[3]&lt;/span&gt; Leticia Duboc, David S. Rosenblum, and Tony Wicks, "&lt;span style="font-weight: bold;"&gt;A Framework for Modelling and Analysis of Software Systems Scalability&lt;/span&gt;," &lt;span style="font-style: italic;"&gt;Proceedings of the 28th international conference on Software engineering&lt;/span&gt;, pp. 949 - 952, 2006 ( Syposium Presentation )&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[4]&lt;/span&gt; Leticia Duboc, David S. Rosenblum, and Tony Wicks, "&lt;span style="font-weight: bold;"&gt;A Framework for Characterization and Analysis of Software Systems Scalability&lt;/span&gt;," in &lt;span style="font-style: italic;"&gt;Proceeding of the The 6th joint meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering&lt;/span&gt;, ESEC/FSE '07&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-7183401382084080312?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/7183401382084080312/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=7183401382084080312' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7183401382084080312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7183401382084080312'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/defining-operational-scalability.html' title='Defining Operational Scalability'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/WeiChungHu/SIsXHBmX0sI/AAAAAAAACvY/272-RxoOC8Q/s72-c/leticia-duboc-scability-framework-01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-2720337835052427001</id><published>2008-07-25T17:00:00.033+08:00</published><updated>2008-07-25T19:43:40.858+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data and knowledge engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><category scheme='http://www.blogger.com/atom/ns#' term='web engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><title type='text'>Beyond Single-Page Web Search Results, and ... What's The Next ? Community Page Ranking ?</title><content type='html'>本週實驗室會議由學長報告了 &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;[1]&lt;/span&gt; 這篇 Paper. 其實之前我旁聽實驗室另外一個 Project 的進度會議時就已經大略看過這篇了, 不過本週趁機重新看一次, 反而有些新的想法 -- 可見得有些 Paper 時不時要多看幾次.&lt;br /&gt;&lt;br /&gt;這篇 Paper 的基本概念很簡單, 解決的問題很小 ( 或者該說精準 ) 但很實在.&lt;br /&gt;&lt;br /&gt;目前的 Web Search Engine 基本上是以 Single Web Page 作為單位進行關鍵字比對, 然後把符合或部份符合的 Pages 傳回, 通常會依照符合的程度進行排序 (Ranking). 不同的 Search Engine 可能會有額外的 Ranking Factors, 像是 Google 有自己著名的 Page Ranking 演算法, 另外考量商業廣告因素, 關鍵字出現頻率等等, 可以對於排序演算法再做調整.&lt;br /&gt;&lt;br /&gt;但不管怎樣作排序跟 Page Ranking, 以 Single Web Page 為單位就會出現, 用了多重關鍵字進行搜尋, 但是沒有任何一個 Page 完全符合關鍵字組的情況. 使用者必須由列出的 Pages 之中, 瀏覽排前面數名的 Pages, 才&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;有可能&lt;/span&gt;得到真正想要的資訊. 這大致符合我們的使用經驗.&lt;br /&gt;&lt;br /&gt;Paper&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt; [1]&lt;/span&gt; 的想法則是, 把原本 Single Web Page 的情況, &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;進步&lt;/span&gt;到 Multiple Web Pages -- 既然我們本來就會需要瀏覽多個 Pages 來得到我們想要的東西, 為什麼不在 Search 時就直接給我 Multiple Pages 的比對結果呢 ?&lt;br /&gt;&lt;br /&gt;( 下圖修改組合自 &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;[1]&lt;/span&gt; 內容的截圖 )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SIm38dhyveI/AAAAAAAACu4/HXfOGRC5ggA/beyond-single-webpage-07.jpg?imgmax=512"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://lh5.ggpht.com/WeiChungHu/SIm38dhyveI/AAAAAAAACu4/HXfOGRC5ggA/beyond-single-webpage-07.jpg?imgmax=512" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;因此 Paper &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;[1]&lt;/span&gt; 把 Multiple Pages 結合起來成為一個 Composed Page 作為搜尋結果. 但是 Multiple Pages 也不能亂選, 否則可能造成內容事實上差距很大, 不相干的東西被包裝在一起, 因此考量了 Pages 之間應該會有 Hyperlink 的關係. 同時 Composed Page 內也要避免因為 Pages 太多不好快速瀏覽, 因此針對一個 Page, 也提供了 Query-Specific Summarize 的演算法, 藉由把一個 Page 的文字內容作切段, 以 Query 用的關鍵字組為依據, 利用 Text Information Retrieval 的方法, 以及 LSI 技術, 建立一個 Page Graph, 然後計算出具代表性的部份作為 Summary. 而多個 Pages 在 Summarize 過後進一步把 Summary 結合成為 Composed Page. 詳細的演算法在&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;[1]&lt;/span&gt; 中有說明.&lt;br /&gt;&lt;br /&gt;從 User Query 的觀點來說, Paper &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;[1]&lt;/span&gt; 注意到越來越多使用者傾向使用關鍵字組作為 Search Context 的 Abstraction, 並期望找到的資訊可以填到 Search Context 中. 而過去 Single Web Page 的作法使得使用者要自己負責彙整 Single Web Pages, 透過 Hyperlink 去找尋 ( Explore ) 更廣的資料, 然後歸納出一個有用的 Page Set 出來. 而此篇 Paper 稍微前進了一步, 在可以幫忙進行事前整理的範圍內, 先把相關的 Pages ( 可能橫跨 Websites ) 做了整理, 同時以 Summarize 過後的內容結合成一個 Composed Page, 來逼近 User 的 Search Context.&lt;br /&gt;&lt;br /&gt;從 Single Web Page Ranking 到 Multiple Web Page Ranking ( Summarized, Composed Page ), 下一個階段會是甚麼呢 ?&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;Community Page Ranking&lt;/span&gt; 或許有機會. 不管是 Single Web Page Ranking 或是 Multiple Web Page Ranking, 基本上如果你輸入的是一樣的關鍵字組, 結果應該是一樣的, 換句話說對於所有使用者來說是一視同仁的. 這也是因為我們無法事先預測可能的使用情況 ( Search Context ), 因此只好這樣作. 但是如果可以鎖定一個 Community, 透過 Community Member 就可能定義出屬於該 Community 的可預測 Search Contexts, 這時候要更進一步對於 Pages 作事前組織就是有可能的事情. 同樣的 Pages Set 在 &lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;Travel Community&lt;/span&gt; 與 &lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;Local City Community&lt;/span&gt;, 使用&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;同樣的關鍵字組&lt;/span&gt;,  可能會是得到&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;不一樣的 Composed Page&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;感覺 Google 已經開始透過 &lt;a href="http://knol.google.com/"&gt;Knol&lt;/a&gt; 希望逐漸建立可信賴的 Knowledge Group 了, 或許將來與 Community 在 Knowledge Search 方面會有更加深入的互動.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[1]&lt;/span&gt; R. Varadarajan, V.  Hristidis, and Tao Li, "&lt;span style="font-weight: bold;"&gt;Beyond Single-Page Web Search Results&lt;/span&gt;,"&lt;span style="font-style: italic;"&gt;  IEEE Transactions on Knowledge and Data Engineering&lt;/span&gt;, vol.20, no.3, pp.411 - 424, March 2008&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-2720337835052427001?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/2720337835052427001/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=2720337835052427001' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2720337835052427001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2720337835052427001'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/beyond-single-page-web-search-results.html' title='Beyond Single-Page Web Search Results, and ... What&apos;s The Next ? Community Page Ranking ?'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/WeiChungHu/SIm38dhyveI/AAAAAAAACu4/HXfOGRC5ggA/s72-c/beyond-single-webpage-07.jpg?imgmax=512' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-2733385756338872930</id><published>2008-07-23T15:00:00.001+08:00</published><updated>2008-07-23T15:14:06.478+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data and knowledge engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='service oriented computing'/><category scheme='http://www.blogger.com/atom/ns#' term='context-aware'/><title type='text'>Twitter + Google Maps Should Go Beyond TwitterVision</title><content type='html'>Google Maps 現在也&lt;a href="http://google-latlong.blogspot.com/2008/07/pound-pavement.html"&gt;加上 Walking Direction 的資訊&lt;/a&gt;了( RWW 也有&lt;a href="http://www.readwriteweb.com/archives/take_a_walk_with_google_maps.php"&gt;相關文章&lt;/a&gt; ), 這基本上是一個必然的動作, 能夠讓地圖提供更有效率的幫助. 即便是在有了各種電子地圖後, 查閱地理資訊變得更加容易, 自動規劃路程也變得可能, 然而缺乏更加詳細的資訊卻讓許多理想的服務無法完成.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_zJrVQFqitUA/SIYRSZenQOI/AAAAAAAADuA/jsPmMKaqNXI/s400/WalkingRoute.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 420px;" src="http://bp0.blogger.com/_zJrVQFqitUA/SIYRSZenQOI/AAAAAAAADuA/jsPmMKaqNXI/s400/WalkingRoute.png" alt="" border="0" /&gt;&lt;/a&gt;像是 &lt;a href="http://www.urmap.com/"&gt;UrMap&lt;/a&gt; 也遲遲未能提供台北縣市以外的大眾交通工具資訊, 以及路線規劃只能提供汽車, 沒辦法照顧到機車族群. 我認為問題不在於 Algorithm 的設計以及 Computation Power 的限制, 而在於 Valid Data 的取得.&lt;br /&gt;&lt;br /&gt;透過 Sensor 或是 GPS Devices 固然是一種方式, 也常用於自然災害偵測與防治以及疾病控管等大範圍監控系統上, 但是幾乎都是透過衛星傳輸資料, 要在城市中使用, 為了降低成本需要仰賴於城市無線網路基礎設施, 同時即便如此, 大量的 Sensor 裝設費用仍然很嚇人.&lt;br /&gt;&lt;br /&gt;在這些困難下, 其實過去的&lt;a href="http://www.prs.gov.tw/index.aspx"&gt;警廣交通網&lt;/a&gt;作法, 反而是可以讓人考慮的一條路. 台灣主要道路的路況是由熱心的駕駛回報到警廣, 然後由警廣彙整略加查核後由廣播通知鄰近其他駕駛人&lt;br /&gt;&lt;br /&gt;同樣地, 我們可以期待類似 Twitter 與 Google Maps 的結合. 透過 Twitter, 使用者可以時不時地簡短報告自己周圍的地理狀況, 然後以 Google Maps 作為具體呈現的平台, 廣播給大家知道. 已經有類似的服務在 &lt;a href="http://twittervision.com/"&gt;TwitterVision&lt;/a&gt; 被實現. 相關的主題也可以在 Google 上利用 "&lt;a href="http://www.google.com.tw/search?hl=zh-TW&amp;amp;q=Twitter+Google+Maps+Mashup&amp;amp;btnG=Google+%E6%90%9C%E5%B0%8B&amp;amp;meta=&amp;amp;aq=f"&gt;Twitter Google Maps Mashup&lt;/a&gt;" 作為關鍵字找尋, 有相當多的討論.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/WeiChungHu/SIafv6OuWaI/AAAAAAAACtg/nHCQ-XYjaAQ/twitter-vision-01.jpg?imgmax=800"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 550px;" src="http://lh4.ggpht.com/WeiChungHu/SIafv6OuWaI/AAAAAAAACtg/nHCQ-XYjaAQ/twitter-vision-01.jpg?imgmax=800" alt="" border="0" /&gt;&lt;/a&gt;然而 TwitterVision 也只是讓 Twitter + Google Maps 發揮 &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;1 + 1 = 2&lt;/span&gt; 的效果而已, 我們需要讓 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;1 + 1 &gt; 2 &lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;透過 Twitter 而來的 Message 或是 Media (Photo, Vedio Clip, etc) 應該可以在使用者輸入時先作簡單的分類或是 Tagging, 然後在後端利用 Semantic Analysis &amp;amp; Semantic Web 以及 Image Recognition, Image Classification 對於這些資料根據 Google Maps 的基本地理條件 (Constraints) 作彙整, 針對不同使用者的使用需求, 提供即時的相關資料整理.&lt;br /&gt;&lt;br /&gt;交通以及路況就是一個很容易處理的應用. 只要在輸入者提供一些簡單的 Template, 很容易就能得到使用者身邊有用的 Data, 然後就能夠整理成該地區有用的交通及路況資訊. 當然, 這依舊仰賴於無線網路基礎設施的鋪設, 以及手持式電子裝置的普及 -- 不過話說回來, 這時代有哪項網路服務不是建立在這樣的預想 (Assumption) 之下 ?&lt;br /&gt;&lt;br /&gt;期待很快能看到這樣的 Product 出現 :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-2733385756338872930?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/2733385756338872930/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=2733385756338872930' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2733385756338872930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2733385756338872930'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/twitter-google-maps-should-beyond.html' title='Twitter + Google Maps Should Go Beyond TwitterVision'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_zJrVQFqitUA/SIYRSZenQOI/AAAAAAAADuA/jsPmMKaqNXI/s72-c/WalkingRoute.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-5705229691812188141</id><published>2008-07-23T09:30:00.000+08:00</published><updated>2008-07-23T11:33:43.408+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='service oriented computing'/><title type='text'>Something about Cloud Computing : 軟體產業的二次分工 ?</title><content type='html'>&lt;a href="http://www.readwriteweb.com/"&gt;RWW&lt;/a&gt; 上的一篇文章 : &lt;a href="http://www.readwriteweb.com/archives/reaching_for_the_sky_through_compute_clouds.php"&gt;Reaching for the Sky Through The Compute Clouds&lt;/a&gt;, 我覺得寫的不錯, 算是從一個容易理解的角度說明 Cloud Computing. 同時他提出 Google Data Cloud 的例子來輔助他畫出的 Clouds 概念圖增加不少說服力. ( 不過 You vs Them 段落之後感覺有點混亂, 不是很能同意 )&lt;br /&gt;&lt;br /&gt;其中請注意到底下回應中, &lt;a href="http://www.grid.org.il/?CategoryID=497"&gt;Avner Algom&lt;/a&gt; 的回應 ( No.15 ). 為了紀錄方便, 完整轉錄 (稍加編排) 如下 :&lt;blockquote&gt;It is to remember that &lt;span style="font-weight: bold;"&gt;without the convergence of grid, virtualization and SOA concepts, the cloud implementation cannot be done&lt;/span&gt;. In fact, the Cloud Computing concept is a Grid based business model that provides utility Computing services and/or SaaS services&lt;br /&gt;&lt;br /&gt;Terminology Synch:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Grid&lt;/span&gt; provides the Service-Oriented Infrastructure Virtualization (SOIV) that enables IT scalability and flexibility&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Service Orientation&lt;/span&gt; - Service-orientation is a design paradigm that specifies the creation of automation logic in the form of services. It is applied as a strategic goal in developing a service-oriented architecture (SOA).&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Virtualization&lt;/span&gt; - a technique for hiding the physical characteristics of computing resources from the way in which other systems, applications, or end users interact with those resources.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Utility Computing&lt;/span&gt; – Pay-per-Use for network based Compute and Storage services&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Software as a Service (SaaS)&lt;/span&gt; - Pay-per-Use for network based software applications’ services&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;目前來說, 我傾向認同這樣的歷史觀點, Cloud Computing 並非技術面上的突破, 而是技術面上的成熟代表. 然而, 僅僅是相關技術的成熟, 有必要 Google 大張旗鼓的推廣此概念嗎 ? 僅僅是為了&lt;a href="http://www.ithome.com.tw/itadm/article.php?c=49410&amp;amp;s=2"&gt;對於顧客的商業包裝, 推廣相關技術到一般人面前&lt;/a&gt;嗎 ?&lt;br /&gt;&lt;br /&gt;我覺得除了&lt;a href="http://en.wikipedia.org/wiki/Cloud_computing"&gt;把 Cloud 跟過往 Network 上的雲狀圖示作聯結&lt;/a&gt;之外, 是否應該想想取用 "&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Cloud&lt;/span&gt;" 這個字所隱含的意義呢 ?&lt;br /&gt;&lt;br /&gt;在 Webster's Dictionary 上可以查到下面的解釋 ( 只取較為相關的部份 )&lt;blockquote&gt;&lt;br /&gt;1. Any &lt;span style="font-weight: bold;"&gt;collection of&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;particles&lt;/span&gt; (e.g., smoke or dust) or gases that is &lt;span style="font-weight: bold;"&gt;visible&lt;/span&gt;.&lt;br /&gt;2. A visible mass of water or ice &lt;span style="font-weight: bold;"&gt;particles&lt;/span&gt; suspended at a considerable &lt;span style="font-weight: bold;"&gt;altitude&lt;/span&gt;.&lt;br /&gt;3. &lt;span style="font-weight: bold;"&gt;Out of touch&lt;/span&gt; with reality; "his head was in the clouds".&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;然後我們又知道, Cloud 的形狀, 大小, 高度, 都會因為各種氣候條件而有所不同, 如果再結合 &lt;a href="http://www.readwriteweb.com/archives/reaching_for_the_sky_through_compute_clouds.php"&gt;RWW 文章&lt;/a&gt;中的這張圖, ( 引用自&lt;a href="http://www.readwriteweb.com/archives/reaching_for_the_sky_through_compute_clouds.php"&gt; RWW&lt;/a&gt;, 由 &lt;a href="http://www.readwriteweb.com/about_alex.php"&gt;Alex Iskold&lt;/a&gt; 繪製 )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.readwriteweb.com/images/basic-compute-cloud.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 420px;" src="http://www.readwriteweb.com/images/basic-compute-cloud.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;霎時卻讓我想到了, Cloud Computing 從軟體工業的角度來說, 或許代表的是&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;軟體產業的二次分工&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;第一次分工是著重於&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;軟體製造業的分工&lt;/span&gt;, 從 System Design, Software Analysis &amp;amp; Design, 到 Implementation, Testing 的分工. 這在目前世界軟體產業已經是普遍的模式, Global Software Engineering 也早已被討論多時.&lt;br /&gt;&lt;br /&gt;而我所指的&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;軟體產業的二次分工&lt;/span&gt;, 則是&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;軟體服務業&lt;/span&gt;的分工.&lt;br /&gt;&lt;br /&gt;上圖中的各種 Cloud 都可以被視為是一群提供相關服務的業者 ( 服務提供者, 未必是真實人類 ) 所組成, 但是與單純的 Service Group 不同的是, 在此 Cloud 內的 Particles ( 服務提供者 ), 必須遵守同樣的 Protocol 規範, 包含 Interface, Quality 等等, 因此對於採用該 Cloud 服務的顧客而言, 面對的是整個 Cloud, 而非單一個服務提供者.&lt;br /&gt;&lt;br /&gt;這個觀點相信也與 &lt;a href="http://www.readwriteweb.com/archives/reaching_for_the_sky_through_compute_clouds.php"&gt;RWW 的該篇文章(特別是 You vs Them 段落)&lt;/a&gt;, 以及網路上的許多文章應該是相容, 只是從產業改變的觀點來說.&lt;br /&gt;&lt;br /&gt;不過必須再加說明的是, 我不認為此分工模式會導致軟體服務創意被壓縮. 事實上, 這種分工模式是一個&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;把餅做大的分工模式&lt;/span&gt;, 而不是為了要做出很多不同口味的餅. 在此情況下, 最大的得利者會是開發出新口味大餅的業者, 其次則是某種口味大餅做的最好賣得最好的業者, 最後則是勉強作一種口味的大餅可以餬口的業者. 而 Google 跟其他在推 Cloud Computing 的業者這當然是前兩者 :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-5705229691812188141?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/5705229691812188141/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=5705229691812188141' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5705229691812188141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5705229691812188141'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/something-about-cloud-computing.html' title='Something about Cloud Computing : 軟體產業的二次分工 ?'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-7046880860691884962</id><published>2008-07-22T11:14:00.029+08:00</published><updated>2008-07-22T16:00:59.710+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software company'/><category scheme='http://www.blogger.com/atom/ns#' term='article comment'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux 市佔率提昇的影響 ?</title><content type='html'>前陣子 Acer 自打嘴巴地推出了 &lt;a href="http://www.acer.com/aspireone/"&gt;Aspire One&lt;/a&gt;, 加上今天看到了 &lt;a href="http://blogs.computerworld.com/"&gt;ComputerWorld Blog&lt;/a&gt; 上的這篇文章 : &lt;a href="http://blogs.computerworld.com/pc_vendors_want_to_sell_you_desktop_linux"&gt;PC Vendors Want to Sell You Desktop Linux&lt;/a&gt;, 其實很顯然的, 在 EeePC 的成功之後, 不僅是在 Desktop PC 上, 各種 NB, 小 NB, Mobile Device 上, 廠商業者考量採用 Linux 的傾向得到了更為強烈的市場反應支持, 加上 Desktop Linux 系統的成熟, 產品廠商在付出額外的 Desktop Linux 修改成本與降低銷售成本以提高顧客購買率與競爭力之間, 只要能取得有利的平衡, 就是對於他們可行的方案.&lt;br /&gt;&lt;br /&gt;反正, 改用搭配 Desktop Linux 是一個進可攻退可守的方案, 君不見 EeePC 還是會推出附有 Windows 的版本嗎 ? 甚至更奸詐的把改裝 Windows 的選項留下來, 任由顧客自己去找盜版的 Windows 進行重新安裝. 或許有很多人是會改裝回 Windows, 不過不管如何, Desktop Linux 的市佔率提高是一定的事情, 只是速度快慢而已.&lt;br /&gt;&lt;br /&gt;乘著這個趨勢, 可預見的, 產品廠商還是會持續的考慮採用 Linux, 除非 Microsoft 釋出更有利的方案. 而這會形成一個有趣的現象, 這些本來是整合硬體跟軔體, 然後採用 Microsoft 軟體的產品廠商, 會不會開始做起軟體 ( OS, Desktop, Apps ) 的部份呢 ?&lt;br /&gt;&lt;br /&gt;ASUS 的 EeePC 在軟體操作介面上並不是只套用常見的 Linux Desktop, 而是再進提供了 Easy Mode, 以 Task-Oriented 為主. 雖然不是創新的設計, 但是怎麼說也是自家要做的東西, 變成了整個自家產品開發的一部分. 過去我們買 NB 時在 OS 方面沒辦法比, 因為都是一樣的系統跟介面, 所以幾乎都是比同樣價格下硬體的規格, 穩定度, 主要用途適用性, 售後服務等等. 但說穿了, 除了售後服務, 其他大概都差不多, 一般使用者也鮮有機會感受到差異.&lt;br /&gt;&lt;br /&gt;但是 Software 就不一樣了. 光是 Desktop 使用介面的設計的差異就會造成使用者極大的不同感受, 更別說對於使用者安裝新軟體的便利性以及常用軟體的穩定性. 這些都會比其他方面對於使用者造成更直接更巨大的影響. 也許在這方面沒有一家公司可以取得獨特的領先地位, 但是誰也不敢落後太多吧 :p&lt;br /&gt;&lt;br /&gt;在此考量下, 不知道這些產品公司會不會開始成立自己的軟體部門--有別於過去只有處理軔體跟驅動程式, 以及 MIS 的部門, 而是會負責建立或是修改 Open Source OS, Desktop, 以及 Apps 的部門. 或是採取外包的方式, 有專門的軟體公司來與這些產品公司合作進行 Customization, 就跟過去 Microsoft 的角色一樣.&lt;br /&gt;&lt;br /&gt;Either way, Software Rules. ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-7046880860691884962?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/7046880860691884962/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=7046880860691884962' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7046880860691884962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7046880860691884962'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/linux.html' title='Linux 市佔率提昇的影響 ?'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-1990939802458088169</id><published>2008-07-20T07:00:00.012+08:00</published><updated>2008-07-20T07:00:01.503+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming learning'/><title type='text'>從LED七段顯示器 到 用宿舍燈光玩貪食蛇</title><content type='html'>昨天經過別人的推薦在 YouTube 上看到&lt;a href="http://tw.youtube.com/watch?v=VCvH3Tz_1iw"&gt;芬蘭學生利用宿舍大樓玩貪食蛇的影片&lt;/a&gt;. 在 YouTube 上利用PIOW 或是 P.I.O.W. 作搜尋可以找到應該是同樣的一群人玩的其他花樣.&lt;br /&gt;&lt;br /&gt;這其實不算是甚麼新的東西了, 也常看到夜晚利用商業大樓作同樣的事情, 像是求婚, 假日煙火節慶等等.&lt;br /&gt;&lt;br /&gt;&lt;span style="text-align: center; display: block;"&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/VCvH3Tz_1iw&amp;amp;hl=zh_TW&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/VCvH3Tz_1iw&amp;amp;hl=zh_TW&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;雖然不是很清楚背後的工作原理, 不過對於電機資工學生來說應該也不難想像. 比較笨一點的就是在電燈開關上裝設可程式控制的電機裝置, 但是這很麻煩, 也可能會破壞原本的電燈開關設施. 或者我們可以製作簡單的嵌入式設備, 結合電燈以及可程式化的 IC 版作控制. 但是這會有同步的問題, 很可能無法做到影片中那麼完美.&lt;br /&gt;&lt;br /&gt;不過呢, 加上個簡單的 Wireless 裝置, 利用一台 PC 作 Server 來發出命令給所有房間內的嵌入式電燈裝置, 應該就差不多可以做到類似的事情. 如果需要不同的顏色, 可以在一個房間內準備多個電燈設備, 或是複雜點利用多顏色的電燈, 一樣透過程式控制.&lt;br /&gt;&lt;br /&gt;想起來很複雜, 不過其實只是中間加上了不同的 Components 接起來而已, 基本的控制概念與想法, 其實跟所有電機資工學生大概都會碰過的&lt;a href="http://www.google.com.tw/search?hl=zh-TW&amp;amp;q=+LED+%E4%B8%83%E6%AE%B5%E9%A1%AF%E7%A4%BA%E5%99%A8&amp;amp;btnG=Google+%E6%90%9C%E5%B0%8B&amp;amp;meta=&amp;amp;aq=f"&gt;七段顯示器控制&lt;/a&gt;, 其實沒什麼兩樣. ( 圖片取用自&lt;a href="http://class.ee.tnit.edu.tw/%7Es891041/no6.html"&gt;這裡&lt;/a&gt; )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://class.ee.tnit.edu.tw/%7Es891041/no6.files/image002.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://class.ee.tnit.edu.tw/%7Es891041/no6.files/image002.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;不過有多少電機資工大學部學生, 會聯想到七段顯示器呢 ?&lt;br /&gt;&lt;br /&gt;不過反過來說, 這也未嘗不是一個好的教材. 可以把簡單的七段顯示器控制, 加上 Wireless 網路概念, 馬上就可以讓學生玩一樣的事情. 去建議系上的微算機實驗課程, 把簡單的七段顯示器控制換成這個好了, 然後期末要利用電機大樓玩一樣的事情 :p&lt;br /&gt;&lt;br /&gt;搞不好幾年後會出現學生用這招在學校裡玩告白 XD&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-1990939802458088169?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/1990939802458088169/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=1990939802458088169' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1990939802458088169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1990939802458088169'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/led.html' title='從LED七段顯示器 到 用宿舍燈光玩貪食蛇'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-5724054526033472377</id><published>2008-07-19T10:17:00.008+08:00</published><updated>2008-07-19T10:41:34.387+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><title type='text'>也是一種 Biosignal Decvice</title><content type='html'>或許該說是 Behavioral Biosignal Device 比較貼切 ?&lt;br /&gt;&lt;br /&gt;根據 &lt;a href="http://www.engadget.com/"&gt;Engadget&lt;/a&gt; 的&lt;a href="http://www.engadget.com/2008/07/15/airun-plus-shoes-include-speed-and-weight-sensors-for-your-mega/"&gt;報導&lt;/a&gt;, 一家名為 Airun Plus 的公司準備發佈一款特殊的運動鞋, 針對一般運動員設計了 BMI 計量以及卡路里熱量消耗計量, 同時還具有走路時的重力 ( 應該是指施加於鞋子的壓力吧 ) 與速度感應器. 可以協助運動員或是一般人的運動計畫成效, 同時避免腳部因為過大的壓力而受傷. ( 圖片引用自 &lt;a href="http://www.engadget.com/"&gt;Engadget&lt;/a&gt; )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.blogsmithmedia.com/www.engadget.com/media/2008/07/airunplus.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.blogsmithmedia.com/www.engadget.com/media/2008/07/airunplus.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;我在想這個運動鞋除了自身的功能之外, 如果他的偵測資料可以從外部下載, 或是由他主動上傳到外部的裝置, 這也可已是一個十分有價值的 Biosignal Device.&lt;br /&gt;&lt;br /&gt;除了熱量消耗資料外, 像是走路運動時的速度以及腳步承受的壓力, 其實一般人進行一般的運動行為時, 固然有可能因為瞬間的壓力過大而受傷, 因為長時間姿勢不正確或是習慣不好, 導致&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;慢性傷害&lt;/span&gt;的也不在少數. 同時慢性傷害往往更加難以復原,&lt;br /&gt;&lt;br /&gt;對於可能進行中的慢性傷害, 將可以透過分析一般的運動行為, 像是日常走路, 來作可能的偵測與預防. 不過針對於一雙鞋子來說有點負擔太大了, 再說常走路的話, 其實一雙運動鞋大概一年多就要換一次, 還有人是每天刻意要換不同的鞋子. 透過外部的生理訊號分析, 可以整合到同一份資料中, 還可以跟其他相關的生理訊號作結合, 應該還是比較正確的作法.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-5724054526033472377?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/5724054526033472377/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=5724054526033472377' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5724054526033472377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5724054526033472377'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/biosignal-decvice.html' title='也是一種 Biosignal Decvice'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-6084190179451381602</id><published>2008-07-18T19:48:00.011+08:00</published><updated>2008-07-18T20:54:50.359+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenOffice.org'/><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><title type='text'>Document Built-In Formation Test</title><content type='html'>昨天幫一個學弟進行碩士口試的 Dry Run, 投影片裡面要改正的小缺點相當多, 雖然說我當初在準備碩士口試時也是有不少地方需要修改, 不過倒沒有像學弟一樣出現很多有點離譜的錯誤 -- 以我們實驗室兩年的 Training 來說.&lt;br /&gt;&lt;br /&gt;這種同 Hierarchy 字體大小不一, 條列式內容的標示混雜地以數字跟符號組成, 同時並沒有特殊意義. 還有同一頁的文字表格太多太雜等等問題, 表格文字超過虛擬邊框 (Soft Boundary) 等等.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SICSJtguQdI/AAAAAAAACso/MyK26lDyERo/odt-format-check-01.jpg?imgmax=512"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://lh5.ggpht.com/WeiChungHu/SICSJtguQdI/AAAAAAAACso/MyK26lDyERo/odt-format-check-01.jpg?imgmax=512" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;現在的編輯軟體大多有提供 Spell Checking 功能, 可能是自身內建的, 也可能是利用外部的 Spelling Checking Component, 像是 &lt;a href="http://aspell.net/"&gt;GNU Aspell&lt;/a&gt; 等等.&lt;br /&gt;&lt;br /&gt;雖然說可以利用建立 Template 來軟性規範一些可能出現的 Inconsistency, 但是手殘的時候還是有可能像是上面的 Format Inconsistency.&lt;br /&gt;&lt;br /&gt;不知道是否在編輯軟體上, 可以支援對於特定 Document Template 加上 Built-in Formation Test, 來確保 Document 中不會有不經意的 Inconsistency 出現. 像是同一個 Hierarchy 的文字大小, 粗細設定以及字體應該一致, 同一頁的文字數量以及行數應該小於某個數值, 甚至可以根據整頁的字數跟圖的複雜度所含的資訊量作檢查, 避免同一頁的內容太多且雜.&lt;br /&gt;&lt;br /&gt;其他一些投影片製作的 Rule of Thumb 或許也可以變成一些 Tests 來協助製作在 Formation 上具一定水準的投影片.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-6084190179451381602?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/6084190179451381602/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=6084190179451381602' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6084190179451381602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6084190179451381602'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/document-built-in-formation-test.html' title='Document Built-In Formation Test'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/WeiChungHu/SICSJtguQdI/AAAAAAAACso/MyK26lDyERo/s72-c/odt-format-check-01.jpg?imgmax=512' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-7120893859634406755</id><published>2008-07-18T11:54:00.015+08:00</published><updated>2008-07-18T12:36:26.715+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Tool'/><title type='text'>利用 Twiddla 遠距討論 Design Diagram</title><content type='html'>&lt;a href="http://www.twiddla.com/"&gt;Twiddla&lt;/a&gt;  是一個免費的電子白板服務, 之前為了跟在美國的學長討論 Paper 上的 Architecture 圖, 其實在 Survey 時有注意到, 但是當時以為只是普通的畫圖用電子白板, 鑑於畫起 Design Diagram 實在太累, 加上動作過快會讓網頁上的 JavaScript 陷入暴走狀態, 把整個 Browser 鎖死, 因此後來沒考慮使用 &lt;a href="http://www.twiddla.com/"&gt;Twiddla&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;今天看到 &lt;a href="http://libraryviews.blogsome.com/2008/07/16/714/"&gt;Library Views 圖書館觀點&lt;/a&gt; 的一篇&lt;a href="http://libraryviews.blogsome.com/2008/07/16/714/"&gt;介紹文章&lt;/a&gt;, 才發現原來 Twiddla 可以開啟特定的網頁網址, 在上面進行文字或畫圖註解討論. 這樣一來問題就好處理多了, 可以先把要討論的 Design Diagram 放到一個可以取用的 Web Server 下, 然後再利用 Twiddla 去開該檔案的網址, 就可以當作底圖進行討論, 畫註解等等.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SIAcPNok_yI/AAAAAAAACsI/RFMZdl-65aI/twiddla-01.jpg?imgmax=720"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 550px;" src="http://lh5.ggpht.com/WeiChungHu/SIAcPNok_yI/AAAAAAAACsI/RFMZdl-65aI/twiddla-01.jpg?imgmax=720" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;在技術面上, Twiddla 有利用 &lt;a href="http://www.scribd.com/ipaper"&gt;Scribd 的 iPaper&lt;/a&gt; 的服務, 把許多不同的檔案格式轉成 Flash, 因此可能可以直接開啟, 然後在上面討論. 嘗試了幾個不同的常用  File Format, 像是 Python Source Code 會被當作普通的純文字檔轉成 Flash, Block 會亂掉, 沒辦法好好看 Code. 而 PDF File 可以開, 但是非常 lag, 相對來說 OpenOffice 檔案倒是還好.&lt;br /&gt;&lt;br /&gt;這樣 Twiddla 加上 SkyPe 以及各種 IM Software, 基本上就可以是窮人版的 Web Meeting Solution 摟 :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-7120893859634406755?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/7120893859634406755/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=7120893859634406755' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7120893859634406755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7120893859634406755'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/twiddla-design-diagram.html' title='利用 Twiddla 遠距討論 Design Diagram'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/WeiChungHu/SIAcPNok_yI/AAAAAAAACsI/RFMZdl-65aI/s72-c/twiddla-01.jpg?imgmax=720' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-3440824473523767287</id><published>2008-07-16T17:35:00.022+08:00</published><updated>2010-04-07T17:32:03.422+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='software design'/><title type='text'>Multi-Languages Adapter</title><content type='html'>不是正式的 Pattern Documentation, 只是隨手記記, 這種情況其實還蠻常遇到的. 但需要進一步討論的是, 如果我們說 Programming Languages 的選擇決定通常是在 Design Phase 末期或是 Implementation Phase 初期, 那麼這個情況是否 &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;應該出現&lt;/span&gt; 呢 ? 而如果出現了, 是否下面的 &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;能夠使用&lt;/span&gt; 呢 ?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Context&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Used when components developed in different programming languages, which with low interoperability between each other, have to communicate and collaborate together.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Use a common infrastructure as a language-independent third party media, and develop a common protocol as communication standard.&lt;br /&gt;&lt;br /&gt;The ProtocolAdapter is responsible for maintaining the Protocol, translating language-specific message into message under Protocol, and vice versa.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SH3rNaWWJvI/AAAAAAAACrI/fGWL15Hr-sU/multi-language-adapter-01.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 538px;" src="http://lh5.ggpht.com/WeiChungHu/SH3rNaWWJvI/AAAAAAAACrI/fGWL15Hr-sU/multi-language-adapter-01.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;An example using socket and TCP/IP network is illustrated bellow.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/WeiChungHu/SH3rN3_HuAI/AAAAAAAACrQ/rkex4vzBIkQ/multi-language-adapter-02.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 538px;" src="http://lh4.ggpht.com/WeiChungHu/SH3rN3_HuAI/AAAAAAAACrQ/rkex4vzBIkQ/multi-language-adapter-02.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Consequences&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Increase the reuse of components implemented in different programming languages.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The language-independent third party media usually contributes to constraints on usage of the applied application. Usability may be somewhat sacrificed.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;There will definitely be performance issues.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Associated Patterns&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mediator Pattern&lt;/li&gt;&lt;li&gt;Adapter Pattern&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-3440824473523767287?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/3440824473523767287/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=3440824473523767287' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/3440824473523767287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/3440824473523767287'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/multi-languages-adapter.html' title='Multi-Languages Adapter'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/WeiChungHu/SH3rNaWWJvI/AAAAAAAACrI/fGWL15Hr-sU/s72-c/multi-language-adapter-01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-6833794919876247441</id><published>2008-07-15T18:45:00.015+08:00</published><updated>2008-07-15T19:14:11.778+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='service oriented computing'/><title type='text'>街頭垃圾壓縮機 與 Service-Oriented Computing</title><content type='html'>在&lt;a href="http://chinese.engadget.com/"&gt;癮科技&lt;/a&gt;看到的這篇新聞 : &lt;a href="http://chinese.engadget.com/2008/07/15/philly-attempts-to-reduce-trash-pickup-with-street-trash-compact/"&gt;費城將在街上設置垃圾壓縮機&lt;/a&gt; 很有趣, 等同於是把小型的垃圾車放置在城市中固定的地點, 透過科技的進步來增加垃圾收納量, 以及降低環境污染度, 克服過去公設垃圾桶會有的許多缺點.(以下圖片引用自 &lt;a href="http://www.kyw1060.com/pages/2574103.php?contentType=4&amp;amp;contentId=2397962"&gt;KYW Newsradio&lt;/a&gt;)&lt;table align="center"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://imgsrv.kyw1060.com/image/DbGraphic/200807/1003425.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 240px;" src="http://imgsrv.kyw1060.com/image/DbGraphic/200807/1003425.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://imgsrv.kyw1060.com/image/kyw/UserFiles/Image/big-belly_trash_can.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 180px;" src="http://imgsrv.kyw1060.com/image/kyw/UserFiles/Image/big-belly_trash_can.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;不過之所以會特別想在這記上一筆, 並非僅是因為這事有趣.&lt;br /&gt;&lt;br /&gt;過去在談論 Service-Oriented Computing 時, 我們似乎都會很自然的想到各種商業應用, Shopping Services, Business Services, Travel / Hotel / Transportation Services 等等, 然而回歸到現實面, 其實還有很多非常小, 但是很實用的 Services 經常就被忽略.&lt;br /&gt;&lt;br /&gt;像是很常遇到的, 走在街上, 可能是因為剛剛買了小吃, 飲料, 或是打噴嚏的衛生紙, 很容易的手上就會有想丟掉的垃圾. 如果是在不熟, 非生活圈的地方, 一時之間要找垃圾桶就不是如此容易的事情. 如果費城的垃圾壓縮機可以在 Service-Oriented Computing 基礎設施上搭配提供這種 &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;垃圾 Service&lt;/span&gt;, 應該會讓計畫的效果更好吧.&lt;br /&gt;&lt;br /&gt;這種 垃圾 Service 看起來很小很無聊, 可是需要的時候功用卻是很大的.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-6833794919876247441?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/6833794919876247441/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=6833794919876247441' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6833794919876247441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6833794919876247441'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/service-oriented-computing.html' title='街頭垃圾壓縮機 與 Service-Oriented Computing'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-4639040289766774832</id><published>2008-07-15T16:04:00.013+08:00</published><updated>2008-07-15T17:14:12.586+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software quality'/><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>Keep Watching : Software Quality Observatory for Open Source Software (SQO-OSS)</title><content type='html'>記得大約是兩年前作 OSS Quality Measurement Project 時看到 &lt;a href="http://www.sqo-oss.eu/"&gt;SQO-OSS&lt;/a&gt; 這個計畫網站的, 當時裡面還甚麼都沒有, 但是畫了很多 Vision 的大餅. 同時間注意到的還有 &lt;a href="http://www.ohloh.net/"&gt;Ohloh.net&lt;/a&gt; ( 之前文章 &lt;a href="http://selainsoft.blogspot.com/2007/10/assessing-open-source-ohlohnet.html"&gt;Assessing Open Source : Ohloh.net&lt;/a&gt;  ). 後來 Ohloh.net 陸續公佈了許多新的功能以及介面調整, 而 SQO-OSS 不愧是學術計畫, 一直停留在只聞樓梯響的階段.&lt;br /&gt;&lt;br /&gt;而現在, Finally, SQO-OSS 也進入 alpha-testing 的階段了, 公佈了一個 Quality Checking Tool, 名為 &lt;a href="http://www.sqo-oss.org/xwiki/bin/view/Main/AlitheiaCore081Released"&gt;Alitheis Core&lt;/a&gt;.  不過 &lt;a href="http://demo.sqo-oss.org/"&gt;Demo 網站&lt;/a&gt;好像掛點了, 真是不太捧場阿 :p&lt;br /&gt;&lt;br /&gt;雖然 Demo 掛點, 不過需要的話可以下載 0.8 或是 0.8.1 的版本, 在&lt;a href="http://www.sqo-oss.org/builds/"&gt;這裡&lt;/a&gt;可以找到. ( 主要開發語言是 &lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;Java&lt;/span&gt;, 大心 ^_^ )&lt;br /&gt;&lt;br /&gt;Alitheia  Core 的 Architectural Overview 可見下圖 (引用自 &lt;a href="http://www.sqo-oss.org/xwiki/bin/view/About/What+Is+SQO-OSS"&gt;SQO-OSS 網站&lt;/a&gt; ). 其實並沒有甚麼特別的地方. 值得注意的是此頁的 Title 是寫 &lt;span style="color: rgb(153, 153, 153); font-weight: bold;"&gt;Alitheia Core and Metrics&lt;/span&gt;, 但是圖中沒有出現 Metrics, 因此也不確定是用在 Information Extraction 或是 Data Mining 的部份. 不管怎樣, 整個系統的運作其實不難理解.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.sqo-oss.org/xwiki/bin/download/About/What+Is+SQO-OSS/overview.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 450px;" src="http://www.sqo-oss.org/xwiki/bin/download/About/What+Is+SQO-OSS/overview.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;在 Source 裡面的 Metrics Package 含有很多 Sub Packages, 甚至包含 Productivity Metrics. 不過細看很多內容都是&lt;span style="color: rgb(153, 153, 153); font-weight: bold;"&gt;空的&lt;/span&gt; ( 這是怎樣 = = ), 也許正在實做中吧.&lt;br /&gt;&lt;br /&gt;既然玩不到 Demo, 改來看看公開的 &lt;a href="http://www.sqo-oss.org/xwiki/bin/view/About/Screenshots"&gt;ScreenShots&lt;/a&gt; ( Alitheia  Core 0.8.x ) 也好. 但其實從 ScreenShot 看來也蠻讓人失望的.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.sqo-oss.org/xwiki/bin/download/About/Screenshots/metrics.png?height=500"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 450px;" src="http://www.sqo-oss.org/xwiki/bin/download/About/Screenshots/metrics.png?height=500" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;是的, 看起來有很多 Metrics 可以安裝來用, 但是從 Source Code 以外的 Project Artifacts 進行分析的部份看起來還是缺乏. 而即便是已經有的 Metrics, 在能夠連結到更 High Level 的意義之前, 我想對於 OSS Community 的吸引力也不是很大.&lt;br /&gt;&lt;br /&gt;不過不管怎麼說, 人家也是有 Product 了, 我們實驗室的還在難產中. 加油吧~~&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-4639040289766774832?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/4639040289766774832/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=4639040289766774832' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4639040289766774832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/4639040289766774832'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/keep-watching-software-quality.html' title='Keep Watching : Software Quality Observatory for Open Source Software (SQO-OSS)'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-1944305502823886573</id><published>2008-07-14T19:57:00.016+08:00</published><updated>2010-04-07T17:32:03.424+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software quality'/><category scheme='http://www.blogger.com/atom/ns#' term='software company'/><category scheme='http://www.blogger.com/atom/ns#' term='software testing'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Tool'/><title type='text'>Borland's New Tools : TeamDemand, TeamFocus, and TeamAnalytics, to Make SDP More Transparent</title><content type='html'>Borland 今天正式公佈了三個預計於秋季釋出( release ? 販售吧 :p )的新工具. 詳細情況可以參考 &lt;a href="http://www.computerworld.com/"&gt;Computer World&lt;/a&gt; 的這篇新聞 : &lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=9109638&amp;amp;source=rss_news10"&gt;Borland adds tools aimed at making application development more transparent&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;三個 Tools 分別為 :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;TeamDemand&lt;/span&gt; : 這個是三個 Tools 裡我覺得最沒想到的. 企圖把 User Requirements 連結到 Development Tasks 以及 Development Process, 想要提供 Business Users ( Customers ) 一個可以即時 ( Real-time ) 獲知目前進度的溝通管道. 我認為這要做得到其實不難, 但要做的好不容易. 簡單的來說, 能夠讓 User 根據 Requirement 隨時輸入 Test Cases 其實就成功一半了, 接下來只要自動找到相對的進度作 Testing 就是另一半, 不過這之間都還隱藏許多問題.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;TeamFocus&lt;/span&gt; : 看來應該是用來連結 Developers 使用的 Tools, 彙整相關的 Information, 產生開發過程中的相關 Reports. 預計可以大幅降低 Developers 需要花時間在整理 Intermediate Report 的時間.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;TeamAnalytics&lt;/span&gt; : 根據 Project 內部可以獲得的各種 Information, 結合在特定 Domain 下適用的不同 Metrics 組合, 量測出 Project 目前的狀態, 對於不佳的情況可以事先給予 Warning. 尚不知內部怎樣管理 Metrics,不過如果是用類似 GQM 方法的話, 應該可以想像 Goal 沒有達到預期就是一種 Warning 了.&lt;/li&gt;&lt;/ul&gt;現在我在做的其中一個 Project 其實就是 Team Focus + TeamAnalytics, 另外其實再結合另外一個小 Project 也可以朝 TeamDemand 去作, 只是之前沒想到. 不知道該向 Borland 投以敵視的眼神還是感激的眼神 XD&lt;br /&gt;&lt;br /&gt;Borland 真是 IDE 界的巨人阿~~&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-1944305502823886573?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/1944305502823886573/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=1944305502823886573' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1944305502823886573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/1944305502823886573'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/borlands-new-tools-teamdemand-teamfocus.html' title='Borland&apos;s New Tools : TeamDemand, TeamFocus, and TeamAnalytics, to Make SDP More Transparent'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-7733596659782759947</id><published>2008-07-14T19:13:00.009+08:00</published><updated>2008-07-14T19:49:07.517+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software gui'/><title type='text'>Will Dual-Touchscreen Brings More Issues to the GUI Design ?</title><content type='html'>今天看到 &lt;a href="http://blog.laptopmag.com/"&gt;Laptop&lt;/a&gt; 的這篇文章 : &lt;a href="http://blog.laptopmag.com/v12-designs-dual-touchscreen-notebook-coming-within-two-years"&gt;V12 Designs’ Dual-Touchscreen Notebook Coming within Two Years&lt;/a&gt;, 裡面提到 &lt;a href="http://www.v12design.com/"&gt;V12 Design&lt;/a&gt; 的 Dual-Touchscreen Notebook.&lt;br /&gt;&lt;br /&gt;這怎麼說呢, 雖然乍看之下就是兩片 LCD 螢幕合在一起, 然後其中一片可以用作鍵盤顯示以及使用, 理想的話還會有 V12 Design 宣稱的感應回饋 ( Haptic Feedback ) 能力, 但是把 Notebook 上鍵盤那側變成 LCD 所帶來的 User Interface 改變還是很巨大的. ( 以下圖片引用修改自 &lt;a href="http://blog.laptopmag.com/v12-designs-dual-touchscreen-notebook-coming-within-two-years/v12desig5"&gt;Laptop&lt;/a&gt; )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SHs8Gcho-_I/AAAAAAAACrA/8KV3RC0Wc1A/v12-dual-screen-01.jpg?imgmax=576"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 460px;" src="http://lh5.ggpht.com/WeiChungHu/SHs8Gcho-_I/AAAAAAAACrA/8KV3RC0Wc1A/v12-dual-screen-01.jpg?imgmax=576" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;把目前的 Notebook 具有固定式鍵盤, 到&lt;a href="http://www.artlebedev.com/everything/optimus/"&gt; Optimus Maximus 萬鍵之王&lt;/a&gt;的想法, ( 以下圖片取用自 &lt;a href="http://www.artlebedev.com/everything/optimus/"&gt; Optimus Maximus&lt;/a&gt; 網站 )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.artlebedev.com/everything/optimus/optimus_maximus_01w.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 550px;" src="http://www.artlebedev.com/everything/optimus/optimus_maximus_01w.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;再到 V12 Dual-Touchscreen, 硬體輸入裝置給了 Software 越來越多的自由. 在萬鍵之王上, Software 可以更加容易的改變按鍵的定義跟配置, 這在之前需要具備一定電腦知識的使用者才能辦得到. 而在  Dual-Touchscreen 上, Software 將甚至可以自行定義輸入用的 "鍵盤" 長甚麼樣 ( 如果他還長得像鍵盤的話 ), 而且不像過去會佔用到 Software 用來呈現 Data 的空間.&lt;br /&gt;&lt;br /&gt;Software Usability 與 System Usability 的定義之間或許會更加的模糊,  真難想像這是會帶來無限的可能還是混亂 :p ( 更別提 &lt;a href="http://gizmodo.com/gadgets/laptops/multi+touch-tablet-screen-154532.php"&gt;Multi-Touch Screen&lt;/a&gt; 摟 ~~ )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-7733596659782759947?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/7733596659782759947/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=7733596659782759947' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7733596659782759947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7733596659782759947'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/will-dual-touchscreen-brings-more.html' title='Will Dual-Touchscreen Brings More Issues to the GUI Design ?'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/WeiChungHu/SHs8Gcho-_I/AAAAAAAACrA/8KV3RC0Wc1A/s72-c/v12-dual-screen-01.jpg?imgmax=576' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-566034623107509894</id><published>2008-07-09T10:23:00.020+08:00</published><updated>2008-07-09T15:40:17.207+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software company'/><category scheme='http://www.blogger.com/atom/ns#' term='data and knowledge engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded System'/><category scheme='http://www.blogger.com/atom/ns#' term='service oriented computing'/><title type='text'>Realtime Mining Applied</title><content type='html'>上學期修課跟學弟合作的一個期末計畫是建立一個巴士系統的 Embedded Middleware. 目前這東西也慢慢延伸變成學弟的 Master Research. 在整個 Vision 中, 有一部分就是關連到即時地蒐集巴士系統中 Customer 相關的資訊, 以及整理分析這些資訊, 產生出足以作為決策支援的資訊 ( Structured Information ).&lt;br /&gt;&lt;br /&gt;類似的東西已經開始有人用 GPS 得到的資料做出 Prototype 來摟.&lt;br /&gt;&lt;br /&gt;6/22 的 &lt;a href="http://www.nytimes.com/"&gt;NY Times&lt;/a&gt; 報導了此一 Prototype : &lt;a href="http://www.nytimes.com/2008/06/22/technology/22proto.html?_r=2&amp;amp;ref=business&amp;amp;oref=slogin&amp;amp;oref=slogin"&gt;Predicting Where You’ll Go and What You’ll Like&lt;/a&gt; , 由 &lt;a href="http://www.sensenetworks.com/"&gt;Sense Networks&lt;/a&gt; 這家公司開發 ( 我覺得他們名字取得不錯 ) . 基本概念是利用 GPS 得到 Location Data 以及 Movement Data, 然後透過適當的 Mining Algorithm 分析, 就可能得到關於行為模式的猜測結論. 在文章中期時也提到, 可以用來被追蹤 (Track) 的東西很多, 不見得只有 Location 可以用來追蹤猜測人們的行為. ( 以下圖片引用自 &lt;a href="http://www.sensenetworks.com/media_center.php"&gt;Sense Network Media Center&lt;/a&gt; 公開資料, 上面還有 Vedio 可以下載 )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SHRmOX9z-8I/AAAAAAAACqI/mYxpK-vADbs/sense-network-gps-mining.jpg?imgmax=576"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://lh5.ggpht.com/WeiChungHu/SHRmOX9z-8I/AAAAAAAACqI/mYxpK-vADbs/sense-network-gps-mining.jpg?imgmax=576" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Realtime Data Mining 技術本身其實不是困難點, 困難的是怎樣讓整個 Process 可以真正應用到商業行為中使用. 期間需要考量的, 整合各種軟硬體設施, 同時城市無線網路的基礎也不可或缺. 另外就是使用者願意曝露自身資料的意願.&lt;br /&gt;&lt;br /&gt;不過從過去的成功經驗來看, 其實這個世界的人們對於自身的資料隱私其實不是真的那麼在意 -- 只要有利可圖的話.&lt;br /&gt;&lt;br /&gt;Sense Network 做出了很合理且聰明的決定, 他們不是一廂情願的向使用者買 Data 或是期望使用者會自動主動提供資料. 而是利用提供給使用者相關服務來換取資料 ( 原文為 : &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Sense decided to trade services for data&lt;/span&gt;. ) 而 Sense Network 自然可以從操作廣告以及服務之間得到適當的利益. 從 Google 以來, 這似乎已經是 Web 2.0 唯一具有足夠商業成功案例的模式了.&lt;br /&gt;&lt;br /&gt;但是 Sense Network 是否能夠獲得足夠久的成功卻還很難說, 相當仰賴於他們的商業操作手段. 使用者的 Location 資料並非是會有長久價值的資料, 其 Lifecycle 可能只有短短的數個小時, 因此 Sense Network 不可能像是某些 Blog Supplier 一樣透過累積大量的懶惰使用者讓自己不倒, 而就算是在 &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;使用者 &lt;-&gt; 手持裝置 &lt;-&gt; 位置及其他資料 &lt;-&gt; 可得服務&lt;/span&gt; 的 Cycle 中, Sense Network 也不是居在任何不可取代的位置. 因此一切都還很難說.&lt;br /&gt;&lt;br /&gt;唯一能肯定的是 Realtime Mining 相關應用的這個趨勢應該確實會發生.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-566034623107509894?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/566034623107509894/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=566034623107509894' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/566034623107509894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/566034623107509894'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/realtime-mining-applied.html' title='Realtime Mining Applied'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/WeiChungHu/SHRmOX9z-8I/AAAAAAAACqI/mYxpK-vADbs/s72-c/sense-network-gps-mining.jpg?imgmax=576' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-7784248718333603650</id><published>2008-07-08T08:25:00.030+08:00</published><updated>2008-07-08T10:38:15.279+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data and knowledge engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='article comment'/><title type='text'>BASE : An ACID Alternative</title><content type='html'>上個月的 ACM Queue 趕在最後幾天刊出了 &lt;a href="http://www.addsimplicity.com/"&gt;Dan Pritchett&lt;/a&gt;, Technical Fellow at eBay, 的一篇文章 : &lt;a href="http://acmqueue.com/modules.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=540&amp;amp;page=1"&gt;&lt;span style="font-weight: bold;"&gt;BASE: An ACID Alternative&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;BASE ( Basically Available, Soft State, and Eventually Consistent )&lt;/span&gt; 相對於傳統的 ACID 以強調 Consistency 為主, 改為採用犧牲 Consistency 來換取 Availability 的概念.&lt;br /&gt;&lt;br /&gt;基本上 Consistency 跟 Availability 常常是唱反調的, 因為要確保 Consistency 免不了需要在每個動作之前進行妥協 ( Negotiation ) 或是動作之後的檢查, 例如經典的 Two Phase Commit ( 2PC ), 而這就會傷害到 Availability. 在 BASE 的方法中, 把 Consistency 的檢查做了延遲, 先允許部份動作的進行與 Commit, 等所有的動作完成之後再設法確認無誤.&lt;br /&gt;&lt;br /&gt;在文章中舉了一個例子 : 在 eBay 上有兩個角色, Seller 以及 Buyer. 當 Seller 把商品賣給 Buyer 之後, 首先要更新交易紀錄表, 再來兩邊的 Account 資訊都要進行更新 ( Schema Design 請參考&lt;a href="http://acmqueue.com/modules.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=540&amp;amp;page=2"&gt;文章&lt;/a&gt; ). 在傳統 ACID 的角度上來說, 通常這些動作會收集在同一個 Transaction 內部, 只進行一次 Commit, 確保兩邊 (交易紀錄表以及使用者紀錄表) 的 Consistency. (以下範例及圖片引用自 &lt;span style="font-weight: bold;"&gt;[1]&lt;/span&gt; )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://acmqueue.org/figures/issue049/pritchett3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 458px;" src="http://acmqueue.org/figures/issue049/pritchett3.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;而 BASE 的作法則是, 把交易紀錄表的更新與使用者紀錄表的更新分開, 變成數個 Transactions. 首先進行交易紀錄表的更新 Master Transaction, 然後再執行兩個更新使用者紀錄表的 Sub Transactions ( Seller 以及 Buyer ). 在 Master Transaction 中除了更新交易紀錄表之外, 事實上還發出了進行接下來數個 Sub Transactions 的要求到一個 Message Queue 中, 然後進行 Commit. 而在 Message Queue 中的 SQL Statement 則會在之後個別以 Transactions 作包裝進行 Commit.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://acmqueue.org/figures/issue049/pritchett5.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 480px;" src="http://acmqueue.org/figures/issue049/pritchett5.jpg" alt="" border="0" /&gt;&lt;/a&gt;基本概念大略是這樣, &lt;a href="http://acmqueue.com/modules.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=540&amp;amp;page=2"&gt;文章&lt;/a&gt;後半段還有討論到 Peek Queue Message 以及 Remove Message 的細節, 以及使用 SQL Statement 作整個敘述上的簡化.&lt;br /&gt;&lt;br /&gt;BASE 的作法當然可能在 Sub Transaction Fail 時引起 Inconsistency 的問題, 但是透過適當的 Traceback 機制, 我想應該可以快速的作 Error Recovery, 例如在 Master Transaction 送出的 Messages 上標記特殊的 Tag, 一旦出問題就可以追蹤到所有相關的 Transactions. 但是文章內容沒有對 Error Recovery 的處理部份著墨太多.&lt;br /&gt;&lt;br /&gt;BASE 的應用關鍵我認為是在 Transaction 的結果事實上是應對到不同的使用者上, 包含 eBay 系統本身, Seller 以及 Buyer. 由於並非同一個角色, 因此在這些 Transactions 進行時所實際短暫產生的 Inconsistency 不會被三者察覺到 ( 除非 Seller 跟 Buyer 即時溝通確認 Consistency ). 而&lt;span style="font-weight: bold; color: rgb(102, 102, 102);"&gt;技術上來說&lt;/span&gt;, BASE 也沒有刻意隱藏 Temporal Inconsistency 的事實, 只是當 Seller 與 Buyer 角色分開時, 他們各自無法透過 Partial Information 去推知 Inconsistency 的發生罷了 :p -- 當然, 這也暗示了 BASE 的應用領域相較於 ACID 來說是會比較受侷限的.&lt;br /&gt;&lt;br /&gt;從這點回頭來看這篇文章被放在這期的 ACM Queue 是很有趣的事情. &lt;a href="http://acmqueue.com/modules.php?name=Content&amp;amp;pa=list_pages_issues&amp;amp;issue_id=49"&gt;May /June 這期的 ACM Queue&lt;/a&gt; 主題是 &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Object-Relation Mappers&lt;/span&gt;. 其他三篇文章都在講 ORM, 唯獨這篇殺出 ACID 與 Consistency/Availability 的問題. 是意外嗎 ? 或是 BASE 的方法事實上是把 eBay System 中的 Objects 與其 Behaviors, 給 Mapping 到了 Relational Database 中了 ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[1]&lt;/span&gt;  Dan Pritchett, "&lt;span style="font-weight: bold;"&gt;BASE: An ACID Alternative&lt;/span&gt;," &lt;span style="font-style: italic;"&gt;ACM Queue&lt;/span&gt;, vol.6, no.3, May/June 2008, &lt;a href="http://acmqueue.com/modules.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=540&amp;amp;page=1"&gt;visit online version&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-7784248718333603650?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/7784248718333603650/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=7784248718333603650' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7784248718333603650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7784248718333603650'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/base-acid-alternative.html' title='BASE : An ACID Alternative'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-5563473395461531233</id><published>2008-07-07T21:30:00.021+08:00</published><updated>2010-04-07T17:32:03.426+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='paper review'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='software design'/><title type='text'>Tool Support for the Navigation in Graphical Models</title><content type='html'>這篇 Short Paper&lt;span style="font-weight: bold;"&gt; [1]&lt;/span&gt; 以及所建立的 Tool &lt;a href="http://www.ifi.uzh.ch/rerg/research/projects/adora/"&gt;ADORA&lt;/a&gt;, 包含重點大致可以歸納為兩點.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;首先&lt;/span&gt;是使用 Fisheye View 的概念改進目前大部分 Tools 在協助使用者瀏覽整張 Software Design Diagram 時的問題. 既有的 Tool 在面對相當複雜且巨大的 Diagram 時大多無能為力, 往往需要使用者自行將 Design Diagram 從 Object Analysis ( 如果是在 OO Paradigm 中 ) 以後, 分為 Class Level 0, Class Level 1, ...... 等詳細程度不同的數張 Design Diagrams, 方便在不同的 Abstraction Level 間切換. 少部份 Tools 可以自動隱藏 Details, 但是當進行 Zoom In / Zoom Out 時卻是會對於整張圖作變化, 無法自由地只 Zoom In 想要進一步觀察的部份. Fisheye View 則讓此操作方式成為可能. ( 以下 ADORA 圖片皆取用自 &lt;span style="font-weight: bold;"&gt;[1]&lt;/span&gt; 並稍加編輯, 且無修改圖片本身內容 )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SHIljtcYmUI/AAAAAAAACpg/d8y23EPfMjw/adora-01.jpg?imgmax=720"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 570px;" src="http://lh5.ggpht.com/WeiChungHu/SHIljtcYmUI/AAAAAAAACpg/d8y23EPfMjw/adora-01.jpg?imgmax=720" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;關於第一點在去年底我們實驗室有一位同仁在進行實驗室會議報告 Paper 時也有提到類似的概念, 當時他是用 &lt;a href="http://www.blizzard.com/us/starcraft/"&gt;StarCraft&lt;/a&gt; 當作例子, 在 &lt;a href="http://www.blizzard.com/us/starcraft/"&gt;StarCraft&lt;/a&gt; 中同時有主操作畫面 ( Local ), 以及左下方的微縮地圖全圖 ( Global ), 來說明如果 Design Tool 有類似的支援好像不錯. 當時大家討論都集中在使用方式上, 看了 [1] 的實做, 好像在 Layout 計算位置上也不是那麼容易實現, 畢竟要兼顧到整張圖的 Re-arrangement, 不能因為 Fisheye 使得整張圖亂掉. 我想這也是 &lt;span style="font-weight: bold;"&gt;[1]&lt;/span&gt; 裡面要強調&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;可恢復性 (Stability)&lt;/span&gt; 的原因. ( 以下 StarCraft 插圖引用自 &lt;a href="http://spyhunter007.com/game_over.htm"&gt;http://spyhunter007.com/game_over.htm&lt;/a&gt; )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://spyhunter007.com/Images/starcraft_video_game.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 420px;" src="http://spyhunter007.com/Images/starcraft_video_game.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;第二&lt;/span&gt;是對於 Single Integrated Model 的理想. 在 Paper 尾段嘗試性的把不同時間點的一些 Diagrams 疊合在一起, 包含 User &amp;amp; Context, Use Case Diagram, 以及 Class Diagram. 可以想見的, 這樣一來就可以透過 &lt;a href="http://www.ifi.uzh.ch/rerg/research/projects/adora/"&gt;ADORA&lt;/a&gt;, 在 Software Development Phases 之間快速自由的移動, 瀏覽相關的 Analysis Diagrams, Design Diagrams.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/WeiChungHu/SHIllLZRb8I/AAAAAAAACpo/zeNXgimSiQA/adora-02.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 570px;" src="http://lh4.ggpht.com/WeiChungHu/SHIllLZRb8I/AAAAAAAACpo/zeNXgimSiQA/adora-02.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;不過我認為 Single Integrated Model 的需求, 使用時機及模式, 以及呈現方式都還有很多探討的空間, 在本篇 Paper 中也沒有再著墨太多. 像是上圖左, Use  Cases 跟 Classes / Components 混在一起的感覺就很奇怪, 也沒有因此曝露更多 Information. 如果改用 &lt;a href="http://jucmnav.softwareengineering.ca/twiki/bin/view/UCM/WebHome"&gt;Use Case Map&lt;/a&gt; &lt;span style="font-weight: bold;"&gt;[2]&lt;/span&gt; 來作整理可能會好點. ( 話說 Use Case Map 是怎樣, 不紅到原本的介紹網頁都消失了, 現在只依附在 &lt;a href="http://jucmnav.softwareengineering.ca/twiki/bin/view/ProjetSEG/WebHome"&gt;jUCMNav&lt;/a&gt; 底下了 XD )&lt;br /&gt;&lt;br /&gt;或許之後在 Software Design Tools 中會出現更多這種 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Visualization Information Mash-Up&lt;/span&gt; 的應用.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[1]&lt;/span&gt;  T. Reinhard, S. Meier, R. Stoiber, C. Cramer, and M. Glinz, "&lt;span style="font-weight: bold;"&gt;Tool Support for the Navigation in Graphical Models&lt;/span&gt;," &lt;span style="font-style: italic;"&gt;Proceedings of the International Conference on Software Engineering&lt;/span&gt;, pp.823-826, 2008&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[2]&lt;/span&gt;  R. J. A. Buhr and R. S. Casselman, &lt;span style="font-style: italic; font-weight: bold;"&gt;Use Case Maps for Object-Oriented Systems&lt;/span&gt;, Prentice-Hall, 1995&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-5563473395461531233?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/5563473395461531233/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=5563473395461531233' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5563473395461531233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5563473395461531233'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/tool-support-for-navigation-in.html' title='Tool Support for the Navigation in Graphical Models'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/WeiChungHu/SHIljtcYmUI/AAAAAAAACpg/d8y23EPfMjw/s72-c/adora-01.jpg?imgmax=720' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-5877365962562671074</id><published>2008-07-04T21:22:00.020+08:00</published><updated>2008-07-04T22:58:17.271+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data and knowledge engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='web engineering'/><title type='text'>My Activity, My Life Calendar, My Swurl: Operating the Lifestream</title><content type='html'>跟隨著 &lt;a href="http://www.readwriteweb.com/"&gt;RWW&lt;/a&gt; 文章 &lt;a href="http://www.readwriteweb.com/archives/swurl_your_lifestream_made_bea.php"&gt;Swurl: Your Lifestream, Made Beautiful&lt;/a&gt; 的腳步去試用了&lt;a href="http://swurl.com/"&gt;Swurl&lt;/a&gt; -- another Lifestreaming Service.&lt;br /&gt;&lt;br /&gt;基本功能上其實沒有甚麼好說的, 跟 &lt;a href="http://friendfeed.com/"&gt;FriendFeed&lt;/a&gt;-like 的 Services 雷同, 甚至可以說現階段功能上不如 FriendFeed 來的好. 但是我喜歡他的 Visualization, 雖然概念簡單, 但是很強大.&lt;br /&gt;&lt;br /&gt;Swurl 並非像 FriendFeed 一樣只是把蒐集來的資訊依新舊排列, 而是再多提供了一個類似 Calendar 的整理方式, 以時間軸, 只紀錄有活動天數, 形成一個 Life Calendar Matrix. ( 以下借用 &lt;a href="http://www.readwriteweb.com/archives/swurl_your_lifestream_made_bea.php"&gt;RWW 文章的圖&lt;/a&gt;, 我的只有文字不太好看 :p )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.readwriteweb.com/images/Picture%20349.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.readwriteweb.com/images/Picture%20349.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Visualization 的目的一般是為了把 Invisible Information 變成 Visible.&lt;br /&gt;&lt;br /&gt;在 Swurl 的 Life Calendar 上, 提供了一個介於統計式每日每週文章照片數量, 到 Blog 式落落長文章串之間, 折衷的摘要總覽介面. 輔以 Calendar 的 Metaphor, 我們會很自然地把相近日期的事件連結起來, 於是過去一天, 一週, 一月, 一年, 很快地就可以在你的腦海中流逝而過. 在每天每天每週每週 Blog 文章跟照片, 多媒體資料之間, 其實我們都遺漏 / 篩選掉了很多細節, 心情的轉換......  這些東西我們沒辦法, 也不可能一一記錄下來, 但是透過 Life Calendar, 就像整理舊相簿一樣, 時間可以在手上流過, 本來一點一點的文章照片, 就可以銜接變成一整串記憶之流.&lt;br /&gt;&lt;br /&gt;我想 Swurl, 以及他的相似 / 後繼者,會逐漸揭露一個方向 : 把Lifestream 的焦點從&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;紀錄&lt;/span&gt;, 開始轉移到&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;操作&lt;/span&gt;上. 就像編輯家庭錄影帶, 透過不同的操作, 我們可以再次提供不同的觀點, 不同的交集, 不同的思考, 以及不同的懷念 -- 為什麼我又會想到&lt;a href="http://www.imdb.com/name/nm0000245/"&gt;羅賓威廉斯&lt;/a&gt;的&lt;a href="http://www.imdb.com/title/tt0364343/"&gt;迴光報告 ( The Final Cut, 2004 )&lt;/a&gt; 呢 ?&lt;br /&gt;&lt;br /&gt;btw, My Swurl : &lt;a href="http://selain.swurl.com/"&gt;http://selain.swurl.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-5877365962562671074?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/5877365962562671074/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=5877365962562671074' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5877365962562671074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5877365962562671074'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/my-activity-my-life-calendar-my-swurl.html' title='My Activity, My Life Calendar, My Swurl: Operating the Lifestream'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-7109195645943223443</id><published>2008-07-03T16:15:00.005+08:00</published><updated>2008-07-03T16:31:33.546+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>FireFox 3 Download Day Certificate</title><content type='html'>六月中的時候跑去 FireFox 3 Download Day 湊了一下熱鬧, 今天收到來自 FireFox 的通知信, 除了說明登上金氏世界紀錄之外, 還有提供個人 Certificate, 紀念一下摟 :p&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/WeiChungHu/SGyMT40GjdI/AAAAAAAACpA/dRcndf7T8x8/ff-certificate.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 533px;" src="http://lh6.ggpht.com/WeiChungHu/SGyMT40GjdI/AAAAAAAACpA/dRcndf7T8x8/ff-certificate.jpg" alt="" border="2" /&gt;&lt;/a&gt;&lt;br /&gt;話說不知道是不是我看錯, 我記得在 Download Day 之前台灣的 Promise 人數好像遠低於後來的 Download 人數 ? 另外最令我驚訝的是德國, 不管是當時的 Promise 人數跟後來的 Download 人數都高的嚇人 ( 當然是比不過美國啦... ).&lt;br /&gt;&lt;br /&gt;StarCraft II 如果 Open for Download, 應該可以打破這個紀錄吧 XD&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-7109195645943223443?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/7109195645943223443/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=7109195645943223443' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7109195645943223443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/7109195645943223443'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/firefox-3-download-day-certificate.html' title='FireFox 3 Download Day Certificate'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/WeiChungHu/SGyMT40GjdI/AAAAAAAACpA/dRcndf7T8x8/s72-c/ff-certificate.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-6093413996899110949</id><published>2008-07-02T20:47:00.014+08:00</published><updated>2010-04-07T17:32:03.427+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='requirement engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><title type='text'>When to Reject the Customers/Users from Participating Your SDP ?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;在 Software Development Project ( SDP ) 中, 理論上在哪個時間點之後, 絕對不能再有 Users ( Customers ) 的參與 ?&lt;/span&gt; 這是約莫一年半以前, 我的 Advisor 問所有 Lab. 同仁的問題, 但是直到現在, 我也依舊沒有肯定的答案 ^^b&lt;br /&gt;&lt;br /&gt;先來看看手邊幾本的說法.  當然, 這是依我的解讀做的時間點判斷及說明, 同時內容以及最後我自己的想法都侷限在 Conventional Object-Orientation Paradigm. 同時只考量 General Customer, General Software ( to-be-built ), 以及 No Changing Requirements ( during development process ).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;[1] Dean Leffingwell and Don Widrig, &lt;span style="font-style: italic;"&gt;Managing Software Requirements: A Use Case Approach&lt;/span&gt;, second edition, Addison Wesley, 2003&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;我的理解 :&lt;/span&gt;&lt;ul&gt;&lt;li&gt;書中分為六個階段的 Team Skill, 我認為在 Team Skill 2 結束時也同時代表 customer 的參與告一段落.&lt;/li&gt;&lt;li&gt;在 software GUI 部份, 書中傾向於使用 Use Case 以及 Storyboarding 解決. 鑒於內容是以 Storyboarding 方式, graphically 呈現 Use Case, 因此我還是認定為 Storyboarding 的應用, 屬於 Team Skill 2 的範圍內.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;判定的時間點 :&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;After Requirement Elicitation, Feature Listing, Interviewing, Brainstorming, and Storyboarding&lt;/li&gt;&lt;li&gt;Before Use Case Diagram&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;[2] Steve R. Schach, &lt;span style="font-style: italic;"&gt;Object-Oriented and Classical Software Engineering&lt;/span&gt;, fifth edition, McGraw-Hill, 2002&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;我的理解 :&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;書中於 Requirement Phase 到 Object-Oriented Analysis Phase 之間, 特別分出了一個 Specification Phase. 在 Specification Phase 中提到 :&lt;/li&gt;&lt;/ul&gt;  &lt;blockquote&gt;...this document must be clear and intelligible to the client, who probably is not a computer specialist. After all, the client is paying for the product, and unless the client believes that he or she really understands what the new product will be like...&lt;br /&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;因此我認為以書中的觀點, customer  至少會參與到 specification 的制定.&lt;/li&gt;&lt;li&gt;書中所指的 Specification Phase 事實上等同於一般說的 Analysis Phase[2], 而 Object-Oriented Analysis Phase 是作為 counterpart 存在. &lt;/li&gt;&lt;li&gt;同時書中也提到, 在 specification 訂立之後才能進行較準確的 project time and cost estimation, 而 customer 會根據評估結果決定是否繼續委託開發. 從 project 角度來說, customer 在此時仍影響 project 的進行, 但是從 software development 的角度來說, 並未影響 software development 的各種 decisions.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;判定的時間點 :&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;End of Specification Phase&lt;/li&gt;&lt;li&gt;Right after Project Time and Cost Estimation and Evaluation&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;3] Eric J. Braude, &lt;span style="font-style: italic;"&gt;Software Engineering: An Object-Oriented Perspective&lt;/span&gt;, Wiley, 2001&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;我的理解 :&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;書中把 Requirement 分為 &lt;span style="color: rgb(102, 102, 102); font-weight: bold;"&gt;C-Requirement  ( Customer Requirement )&lt;/span&gt;, 以及 &lt;span style="color: rgb(102, 102, 102); font-weight: bold;"&gt;D-Requirement ( Detailed Requirement )&lt;/span&gt; 兩部份. 其中 C-Requirement 包含了 Use Case 的建立與撰寫, 以及 Draft User Interface Design. 此階段仍有 customer 參與.&lt;/li&gt;&lt;li&gt;D-Requirement 的撰寫雖然主要是提供 software developers 一個之後進行 design 以及 implementation 的共同基礎,但是書中也提到 D-Requirement 需要 customer 參與 validation 的工作. 但是由於書中對於 D-Requirement 的內容敘述, 甚至包含了 Classes / Objects 的辨認, 因此 customer 協助確認的應該不是全部的 D-Requirement 內容.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;判定的時間點 :&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Right after D-Requirement ( Detailed Requirement ) is released&lt;/li&gt;&lt;li&gt;Very close to the end of Object-Oriented Analysis Phase&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;[4] Roger S. Pressman, &lt;span style="font-style: italic;"&gt;Software Engineering : A Practitioner's Approach&lt;/span&gt;, fifth edition,  McGraw-Hill, 2001&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;我的理解 :&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;書中提到 :&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;A review of the Software Requirement  Specification ( and / or prototype ) is conducted by both the software developer and customer.&lt;br /&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;而依據書中所述, Software Requirement Specification 是 Requirement Analysis 的產物, 因此在此 customer 的參與應該是到 Requirement Analysis 結束之後, 或是 Software Requirement Specification 的 review&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;判定的時間點 :&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;End of Requirement Analysis&lt;/li&gt;&lt;li&gt;Review of Software Requirement Specification&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;[5] 我的想法&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;由於我對於 OO Paradigm 底下的 Software Development， 主要的認識來自於 &lt;span style="font-weight: bold; color: rgb(51, 51, 51);"&gt;[1][2][3]&lt;/span&gt; ， 因此以這些書中所提的觀點以及方法 ( Techniques ) 來回答此時間點。&lt;br /&gt;&lt;br /&gt;我所 prefer 的時間點為， &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Use Case Diagram 的建立&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;但此時間點僅包含 Use Case Diagram 的建立， 不包含 Use Case 的 Pre-Condition， Post-Condition， 以及中間的 Event Flow， Alternative Flow 的撰寫。&lt;br /&gt;&lt;br /&gt;我所持的理由為， Use Cases 能夠將 Scenarios 化為數個合理大小的 User Action Sets。 雖然 Use Cases 本身仍然用 nature language 描述居多， 但是比起一般的 Scenarios 描述， Use Cases 提供一個更適切的 granularity， 讓 customer 認識自己與 software 之間的互動。 而適切的 granularity 也是此時間點僅止於 Use Case Diagram 的理由。 我認為 Use Case 的內容又過於仔細， 對於一般的 Customer 來說反而可能造成困擾， 如果要求 Customer 參與 Use Case 內容的撰寫， 對 Developer 來說也會是一種困擾。&lt;br /&gt;&lt;br /&gt;但是在 Customer 參與 Use Case Diagram 的制定時， 所提出的一些意外的要求或是 Concerns， 有可能會影響到 Developer 對於 Use Cases 內容的撰寫。&lt;br /&gt;&lt;br /&gt;另外我認為要特別考量的一個問題是 &lt;span style="font-weight: bold; color: rgb(102, 102, 102);"&gt;Software GUI&lt;/span&gt;。 鑒於我所知道的， 在 OO Software Development， 並沒有公認的時間點來決定 customer 所 prefer 的 GUI 樣式， 但是 software GUI 又是影響 software usability 甚鉅的部份， 因此大部份情況下， 與 customer 針對 GUI 作溝通是免不了的。 因此在 software 有 GUI 的設計考量下， customer 能參與的 software development 的時間點我認為就會受到 software GUI 要在何時與 customer 取得共識的影響。 不過此時間點僅與 GUI 設計有關， 與其他部份無關。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-6093413996899110949?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/6093413996899110949/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=6093413996899110949' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6093413996899110949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/6093413996899110949'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/when-to-reject-customersusers-from.html' title='When to Reject the Customers/Users from Participating Your SDP ?'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-5993501595009431852</id><published>2008-07-01T21:34:00.011+08:00</published><updated>2008-07-02T10:44:14.520+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><category scheme='http://www.blogger.com/atom/ns#' term='web engineering'/><title type='text'>Zero-Day Copy ?</title><content type='html'>剛剛又看到一個複製網站 &lt;a href="http://www.showurjob.com/index.php"&gt;說你這行 (ShowUrJob)&lt;/a&gt; , 很顯然想法是來自於 &lt;a href="http://www.glassdoor.com/index.htm"&gt;Glassdoor.com&lt;/a&gt; . 透過 Community Member 的群體力量, 讓許多公司的薪資跟待遇透明化.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/WeiChungHu/SGo0VVVY47I/AAAAAAAACmw/oSO3MfvS_AU/showurjog-01.jpg?imgmax=640"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 580px;" src="http://lh4.ggpht.com/WeiChungHu/SGo0VVVY47I/AAAAAAAACmw/oSO3MfvS_AU/showurjog-01.jpg?imgmax=640" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;在 Software Security 領域有&lt;a href="http://en.wikipedia.org/wiki/Zero-Day_Attack"&gt; Zero-Day Attack&lt;/a&gt;, 在 Internet Venue 領域也要有 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Zero-Day Copy&lt;/span&gt; 了嗎 :p&lt;br /&gt;&lt;br /&gt;不過我並不是想嘲笑 Zero-Day Copy 的行為, 相反地, 這類網站能獲得成功也相當不錯, 沒有人會嫌可以用的服務太少, 不是嗎 ?&lt;br /&gt;&lt;br /&gt;Zero-Day Copy 的可行性我認為與 Localization 關係極大, Glassdoor.com 對於非英語系的國家還沒有那麼大的 Community, 而缺乏 Community 就缺乏資訊. 如果有相似的網站可以快速複製實現類似的功能以及制度, 藉著語言以及文化優勢搶在開拓者 ( 如 Glassdoor.com ) 之前嘗試建立夠大的 Community, 成功的可能性並不低.&lt;br /&gt;&lt;br /&gt;在 Zero-Day Copy 中, 最難得到的 Idea 來自於別人, 要搶佔的 Resource 本來就在 Community 中, 而中間快速複製才會是重點. 因此在 Zero-Day Copy Company 中, 最重要的角色可能會是兩種人 : &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Reverse Engineer&lt;/span&gt; 以及 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Project Manager&lt;/span&gt;. ( 為什麼我會想到 &lt;a href="http://www.imdb.com/title/tt0338337/"&gt;Pay Check&lt;/a&gt; 這部電影 :p )&lt;br /&gt;&lt;br /&gt;這裡的 Reverse Engineer 包含不只軟體技術上的 Reverse Engineer, 還包含可以從 Social 角度進行 Reverse Engineering, 分析開拓者成功因素跟行為模式的 Reverse Engineer. 換句話說, 需要的是一個 &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Socio-Technical System Reverse Engineering Team&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Project Manager 就不用說了, 能夠在合理的時間跟成本下領報開發團隊完成 Software Development 的 Manager 是每家軟體公司都想要的人.&lt;br /&gt;&lt;br /&gt;也許將來 ( 或是現在就有 ? ) 會出現專門支持 Zero-Day Copy 的創投公司也說不定. 平常就養一堆技術高超的資訊人食客, 在 DEMO 展之類看到有價值的外國網站就馬上進行 Zero-Day Copy 工程, 反正現在軟體服務專利幾乎是沒有辦法申請的狀態. 有這種公司也是蠻有趣的, 跟我有點合得來 :p&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-5993501595009431852?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/5993501595009431852/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=5993501595009431852' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5993501595009431852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/5993501595009431852'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/zero-day-copy.html' title='Zero-Day Copy ?'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/WeiChungHu/SGo0VVVY47I/AAAAAAAACmw/oSO3MfvS_AU/s72-c/showurjog-01.jpg?imgmax=640' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-2590571875053760874</id><published>2008-07-01T20:07:00.023+08:00</published><updated>2008-07-01T21:31:29.368+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='software reuse'/><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><title type='text'>Functionality versus Capability ? A Case in Java OpenCV</title><content type='html'>這兩天跟學妹一起在對 &lt;a href="http://sourceforge.net/projects/jmatchtemplate/"&gt;Java OpenCV Match Template&lt;/a&gt; (以下簡稱 Java OpenCV ) 這個 Tool 作一點修改.&lt;br /&gt;&lt;br /&gt;Java OpenCV 其實是一個 Adapter, 把 &lt;a href="http://sourceforge.net/projects/opencvlibrary/"&gt;OpenCV&lt;/a&gt; ( 著名的 Computer Vision Library ) 內的 &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;cvMatchTemplate&lt;/span&gt; Function ( 用 C++ 寫的 ) 包上 Java 的外衣. 而 &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;cvMatchTemplate &lt;/span&gt;的主要能力就是比對基底影像 ( Source Image ) 與模板影像 ( Template Image ), 找出在基底影像中哪些地方存在著與模板影像相似的影像, 以及該處的位置 ( 在圖片或影像截圖上的 ).&lt;br /&gt;&lt;br /&gt;為簡化敘述, 先不論 Java OpenCV 其實是 Adapter 而已, 假設把 Java OpenCV 跟 cvMatchTemplate 包在一起看成一個單一的 Component, 而這個 Component 提供一個 Interface 可以輸入基底影像以及模板影像, 而會回傳&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;一個&lt;/span&gt;最佳的比對結果影像物件 ( Java Image Object ), 以及位置. 由於這是此 Component 唯一能夠提供的 Service, 因此就說這是 Java OpenCV 的 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Functionality&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;但是我們需要的是能夠提供&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;多個&lt;/span&gt;比對結果的 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Functionality&lt;/span&gt;. 例如下面的 Java OpenCV 測試圖, 在四個角落都有幾乎同樣的圓點, 但是 Java OpenCV 只會傳回最相似的&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;一個&lt;/span&gt;結果而已. 而我們希望&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;四個&lt;/span&gt;結果都可以傳回給我們作選擇.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/WeiChungHu/SGomBhiZPUI/AAAAAAAACmQ/-lZn2zQg5kE/java-opencv-03.jpg?imgmax=576"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 250px;" src="http://lh6.ggpht.com/WeiChungHu/SGomBhiZPUI/AAAAAAAACmQ/-lZn2zQg5kE/java-opencv-03.jpg?imgmax=576" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;由於短時間內沒有找到其他的 Tool 如此符合我們的需求, 加上 Java OpenCV 的程式碼其實不長, 因此我們去查看了一下原始碼.  在 Java OpenCV 與 &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;cvMatchTemplate&lt;/span&gt;之間是使用 JNI 作連結, 而主要的 Image Matching 都是 &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;cvMatchTemplate&lt;/span&gt; 進行的沒錯.  &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;cvMatchTemplate &lt;/span&gt;是以逐一影像區塊進行比對的方式, 比完整張圖, 因此用了一個很大的 array 來存所有的比對結果.&lt;br /&gt;&lt;br /&gt;&lt;textarea class="cpp" name="code" rows="50" cols="70"&gt;&lt;br /&gt;/* ...... 前面省略 */&lt;br /&gt;float* match_result = (float*)malloc(RESULT_WIDTH*RESULT_HEIGHT*sizeof(float));&lt;br /&gt;/* ...... 中間省略 */&lt;br /&gt;jfloatArray return_result;&lt;br /&gt;return_result = env-&gt;NewFloatArray(RESULT_WIDTH*RESULT_HEIGHT);&lt;br /&gt;env-&gt;SetFloatArrayRegion(return_result, 0, RESULT_WIDTH*RESULT_HEIGHT, (jfloat*)match_result);&lt;br /&gt;free(match_result);&lt;br /&gt;&lt;br /&gt;return return_result;&lt;br /&gt;&lt;/textarea&gt;&lt;br /&gt;&lt;br /&gt;而 &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;cvMatchTemplate &lt;/span&gt;回傳給 Java OpenCV 的內容其實包含了所有的比對結果, 而不是只有最佳的比對結果. 換句話說, 是在 Java OpenCV 內被做了過濾. 更嚴格來說是在 &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;matchTemplate&lt;/span&gt; method 回傳之前, 在 findMaxPoint 裡面被過濾掉了, 只留下最佳的比對結果位置.&lt;br /&gt;&lt;br /&gt;&lt;textarea class="java" name="code" rows="50" cols="70"&gt;&lt;br /&gt;public Point matchTemplate(int x, int y, int w, int h, int method )&lt;br /&gt; {&lt;br /&gt;  float[] sourceImgData = getFloatPixels(sourceImgBI, x, y, w, h);&lt;br /&gt;  &lt;br /&gt;  //Print sourceImgData&lt;br /&gt;  //displayBufferedImage(getImageGrayFromFloat(sourceImgData, w, h), "sourceImgData");&lt;br /&gt;  &lt;br /&gt;  this.cvMatchTemplateFloat = cvMatchTemplate(sourceImgData, w, h, this.templateImgData, this.TEMPLATE_W, this.TEMPLATE_H, method);&lt;br /&gt;  RESULT_W = w-this.TEMPLATE_W+1;&lt;br /&gt;  RESULT_H = h-this.TEMPLATE_H+1;&lt;br /&gt;  //System.out.println("result: &lt;"+RESULT_W+","+RESULT_H+"&gt;");&lt;br /&gt;  //System.out.println("result.length =" + this.cvMatchTemplateFloat.length);&lt;br /&gt;  &lt;br /&gt;  Point resultPoint = null;&lt;br /&gt;  if ((method==MatchTemplate.CV_TM_SQDIFF) || (method==MatchTemplate.CV_TM_SQDIFF_NORMED))&lt;br /&gt;  {&lt;br /&gt;   resultPoint = findMinPoint(x, y);&lt;br /&gt;  }&lt;br /&gt;  else&lt;br /&gt;  {&lt;br /&gt;   resultPoint = findMaxPoint(x, y);&lt;br /&gt;  }&lt;br /&gt;  //getMatchImage();&lt;br /&gt;  //displayImages(x, y);&lt;br /&gt;  &lt;br /&gt;  return resultPoint;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; private Point findMaxPoint(int x, int y)&lt;br /&gt; {&lt;br /&gt;  int maxIndex = 0;&lt;br /&gt;  float maxValue= Float.MIN_VALUE;&lt;br /&gt;  for(int i = 0 ; i&lt; this.cvMatchTemplateFloat.length; i++)&lt;br /&gt;  {&lt;br /&gt;   if (this.cvMatchTemplateFloat[i]&gt;=maxValue)&lt;br /&gt;   {&lt;br /&gt;    maxValue = this.cvMatchTemplateFloat[i];&lt;br /&gt;    maxIndex = i;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  int max_h = maxIndex / RESULT_W;&lt;br /&gt;  int max_w = maxIndex - max_h*RESULT_W;&lt;br /&gt;  //System.out.println("max point: &lt;"+(max_w+x)+","+(max_h+y)+"&gt;");&lt;br /&gt;  return new Point(max_w+x, max_h+y);    &lt;br /&gt; }&lt;br /&gt;&lt;/textarea&gt;&lt;br /&gt;&lt;br /&gt;這樣一來事情就很簡單了, 我們另外加上了一個 &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;matchTemplateMultiple&lt;/span&gt; method, 使用動態決定 Threshold  的方式來過濾出最好的幾個比對結果, 因此可以獲得&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;多個&lt;/span&gt;比對結果.&lt;br /&gt;&lt;br /&gt;但我覺得有趣的是, 很顯然地 Java OpenCV Component 本身就具有偵測到所有可能比對結果的 &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Capability&lt;/span&gt;, 只是由於他只提供了 &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;matchTemplate&lt;/span&gt; 的 Interface, 因此形成了 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Functionality&lt;/span&gt; 與 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Capability&lt;/span&gt; 不相稱的情況. 基於 Encapsulation 的原則, 我們不可能從 Interface 就得知 Java OpenCV Component 的真實 &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Capability&lt;/span&gt;, 但是透過知道 Java OpenCV 原本的 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Capability&lt;/span&gt;, 卻使得我可以評估花較少的 Effort 去增加 Java OpenCV 的 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Functionality&lt;/span&gt;, 變相地增加了 Java OpenCV 的 &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Re-usability&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;之前會說希望把 Java OpenCV 看成單一 Component 而不要管 Adapter 身份是因為此 Case 有點特殊, Adapter 本身本來就可能對於原本的 Component Functionality 有遮蔽的作用. 但我認為對於一般 Component 來說也可能會有此現象發生, 如果可以有辦法偵測或是表達 Component 本身的 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Capability&lt;/span&gt; 與 &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Functionality&lt;/span&gt; 之間的差異, 或許會是一件很有用的資訊.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910497415002281603-2590571875053760874?l=selainsoft.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://selainsoft.blogspot.com/feeds/2590571875053760874/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1910497415002281603&amp;postID=2590571875053760874' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2590571875053760874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910497415002281603/posts/default/2590571875053760874'/><link rel='alternate' type='text/html' href='http://selainsoft.blogspot.com/2008/07/functionality-versus-capability-case-in.html' title='Functionality versus Capability ? A Case in Java OpenCV'/><author><name>seLain</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/WeiChungHu/SGomBhiZPUI/AAAAAAAACmQ/-lZn2zQg5kE/s72-c/java-opencv-03.jpg?imgmax=576' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910497415002281603.post-405941463552315458</id><published>2008-06-30T16:25:00.034+08:00</published><updated>2010-04-07T17:32:03.429+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software design'/><title type='text'>The Middle Observer Pattern</title><content type='html'>在 Design Pattern &lt;span style="font-weight: bold;"&gt;[2]&lt;/span&gt; 書中對於 Observer Pattern 舉了一個 Graphical User Interface 上的例子作說明. 底層的 Application Data 可能會不斷地更新, 而 Presentation Objects 需要不斷地獲得最新的資料以便進行畫面的更新. 透過 Observer Pattern 設計, 可以處理在此問題下的 Data Object 與 Presentation Object 之間的 Coupling 問題, 同時能夠應付未來可能新增的 Observer Classes.&lt;br /&gt;&lt;br /&gt;而 Pablo Iaría 以及 Ulises Chesini 整理的 Middle Observer Pattern &lt;span style="font-weight: bold;"&gt;[1]&lt;/span&gt; 則進一步考量了一個問題 : " &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;如果我想在這些 Presentation Objects 之間, 保持各個 Data Objects 被呈現時的 Colors 各自是一致的, 同時易於進行調整, 該如何設計 ?&lt;/span&gt; "&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/WeiChungHu/SGjMyPCek9I/AAAAAAAACk8/lsOYRCwHrro/middleobserver-pattern-01.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 420px;" src="http://lh3.ggpht.com/WeiChungHu/SGjMyPCek9I/AAAAAAAACk8/lsOYRCwHrro/middleobserver-pattern-01.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;關於 Colors 的資訊, 與時常會被更新的 Data Objects 內容並不相同, 因此不適合放在 Observer 身上, 當 Observer Classes 數量多時會造成額外的 Data Redundancy 問題 ( 對於 Subject 來說也是會有同樣的問題 ), 同時不利於重新進行 Colors 調整. 如果由 Subject 透過特殊的 Interface 告知 Observers ( 或是提供 Observer 查詢 ), 則會造成兩者之間額外的 Coupling, 這也不是原本的 Observer Pattern 想要的. 利用兩個 Observer Pattern 的作法就更加不可能了.&lt;br /&gt;&lt;br /&gt;這個問題可進一步延伸成為,  " &lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;如果 Data Objects 除了更新的資料需要被通知 Presentation Objects 之外, 還需要伴隨著其他的 Metadata, 那麼這些 Metadata 應該如何被管理 ?&lt;/span&gt; "&lt;br /&gt;&lt;br /&gt;作者採用的解法是加上一個額外的 Object :&lt;span style="font-weight: bold;"&gt; Middle Observer&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/WeiChungHu/SGjMy1jrXGI/AAAAAAAAClE/uGlaMGZhsuw/middleobserver-pattern-02.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 580px;" src="http://lh3.ggpht.com/WeiChungHu/SGjMy1jrXGI/AAAAAAAAClE/uGlaMGZhsuw/middleobserver-pattern-02.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Middle Observer 負責對於 Metadata  的管理以及提供 Concrete Observers 查詢 Metadata 的能力. 對於 Subject 來說, Middle Observer 的行為跟一般 Observer 相同, 而對於 Concrete Observer 來說, Middle Observer 提供了跟 Subject 一模一樣的介面. 唯一不同的是可以透過 &lt;span style="font-weight: bold;"&gt;setExtraState/getExtraState&lt;/span&gt; interface 去得到 Metadata 的資訊, 以及用來維持所有 Observers 之間的 Metadata Consistency.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/WeiChungHu/SGjMzXbfEcI/AAAAAAAAClM/1Zo_5xteYOQ/middleobserver-pattern-03.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://lh5.ggpht.com/WeiChungHu/SGjMzXbfEcI/AAAAAAAAClM/1Zo_5xteYOQ/middleobserver-pattern-03.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;在 &lt;span style="font-weight: bold;"&gt;[1] &lt;/span&gt;中也說明了與此 Pattern 概念相關的其他 Design Patterns, 包含 Decorator, Proxy, Mediator, Singleton, 以及 Chain of Responsibility Patterns. 不過我覺得最關鍵的還是讓 Middle Observer 扮演雙面人的想法.&lt;br /&gt;&lt;br /&gt;從上圖中其實看得出來 Middle Observer 也是做了他份外的事 : 幫忙 Delegate 來自於 Concrete Subjects 與 Concrete Objects 之間的溝通. 如果把 Middle Observer 獨立開來, 只做 Concrete Observers 之間的 Metadata Coordination 動作, 也是足以完成同樣的事情. 但是效果就會類似於使用兩個 Observer Patterns 作組合, 對於 Concrete Observers 來說要同時參與兩個 Observer Patterns 感覺是累了點 :p , 況且 Metadata 的更動其實並不頻繁. 因此讓 Middle Observer 扮演了雙面人, 則 Concrete Observers 就只需要參與一個 Observer Pattern 的運作即可.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[1] &lt;/span&gt;Pablo Iaría and Ulises Chesini, "&lt;span style="font-weight: bold;"&gt;Refining the Observer Pattern: The Middle Observer Pattern&lt;/span&gt;," &lt;span style="font-style: italic;"&gt;Proceedings of Pattern Languages of Programs&lt;/span&gt; (PLoP), 1998, &lt;a href="http://st-www.cs.uiuc.edu/%7Eplop/plop98/final_submissions/P48.pdf"&gt;PDF file on PLoP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[2]&lt;/span&gt; Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, &lt;span style="font-style: italic; font-weight: bold;"&gt;D&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;sp
