<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Farseerfc的小窩 - software</title><link href="//farseerfc.me/" rel="alternate"></link><link href="//farseerfc.me/feeds/tag-software.atom.xml" rel="self"></link><id>//farseerfc.me/</id><updated>2012-06-06T10:42:00+09:00</updated><entry><title>ICSE 2012</title><link href="//farseerfc.me/icse2012.html" rel="alternate"></link><published>2012-06-06T10:42:00+09:00</published><updated>2012-06-06T10:42:00+09:00</updated><author><name>farseerfc</name></author><id>tag:farseerfc.me,2012-06-06:/icse2012.html</id><summary type="html">
&lt;div class="section" id="june-6"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id1"&gt;June 6&lt;/a&gt;&lt;/h2&gt;
&lt;!-- PELICAN_BEGIN_SUMMARY --&gt;
&lt;div class="section" id="keynote-1"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id2"&gt;Keynote 1&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;沒怎麼聽懂，只記得講到了finance is not money但是沒聽懂這個和軟件有什麼關係。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="cost-estimation-for-distributed-software-project"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id3"&gt;Cost Estimation for Distributed Software Project&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;講到他們試圖改善現有的模型去更精確地評估軟件開發的開銷。&lt;/p&gt;
&lt;p&gt;他們會給PM建議之前的項目的歷史數據，然後對於新項目，他們建議歷史上已有
的項目的數據，從而幫助PM得到更精確的評估。他們試圖儘量減少項目評估對PM
的經驗的需求，從而幫助即使經驗很少的PM也能準確評估項目的開銷。&lt;/p&gt;
&lt;!-- PELICAN_END_SUMMARY --&gt;
&lt;p&gt;他們的觀點：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Context-specfic solutions needed!&lt;/p&gt;
&lt;p&gt;我們需要更上下文相關的解決方案！&lt;/p&gt;
&lt;p&gt;Early user paticipation is key!&lt;/p&gt;
&lt;p&gt;早期用戶的參與是關鍵&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div class="section" id="characterizing-logging-practices-in-open-source-software"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id4"&gt;Characterizing Logging Practices in Open-Source Software&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common mistakes in logging messages&lt;/p&gt;
&lt;p&gt;在日誌記錄中容易犯的錯誤&lt;/p&gt;
&lt;p&gt;他們學習了歷史上的log記錄，然後試圖找到重複修改的輸出log的語句，確定log …&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</summary><content type="html">
&lt;div class="section" id="june-6"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id1"&gt;June 6&lt;/a&gt;&lt;/h2&gt;
&lt;!-- PELICAN_BEGIN_SUMMARY --&gt;
&lt;div class="section" id="keynote-1"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id2"&gt;Keynote 1&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;沒怎麼聽懂，只記得講到了finance is not money但是沒聽懂這個和軟件有什麼關係。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="cost-estimation-for-distributed-software-project"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id3"&gt;Cost Estimation for Distributed Software Project&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;講到他們試圖改善現有的模型去更精確地評估軟件開發的開銷。&lt;/p&gt;
&lt;p&gt;他們會給PM建議之前的項目的歷史數據，然後對於新項目，他們建議歷史上已有
的項目的數據，從而幫助PM得到更精確的評估。他們試圖儘量減少項目評估對PM
的經驗的需求，從而幫助即使經驗很少的PM也能準確評估項目的開銷。&lt;/p&gt;
&lt;!-- PELICAN_END_SUMMARY --&gt;
&lt;p&gt;他們的觀點：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Context-specfic solutions needed!&lt;/p&gt;
&lt;p&gt;我們需要更上下文相關的解決方案！&lt;/p&gt;
&lt;p&gt;Early user paticipation is key!&lt;/p&gt;
&lt;p&gt;早期用戶的參與是關鍵&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div class="section" id="characterizing-logging-practices-in-open-source-software"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id4"&gt;Characterizing Logging Practices in Open-Source Software&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Common mistakes in logging messages&lt;/p&gt;
&lt;p&gt;在日誌記錄中容易犯的錯誤&lt;/p&gt;
&lt;p&gt;他們學習了歷史上的log記錄，然後試圖找到重複修改的輸出log的語句，確定log
中存在的問題。他們首先確定修改是事後修改。&lt;/p&gt;
&lt;p&gt;通常的修改的比例（9027個修改）&lt;/p&gt;
&lt;table border="0" class="table docutils borderless"&gt;
&lt;colgroup&gt;
&lt;col width="10%"/&gt;
&lt;col width="90%"/&gt;
&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td&gt;45%&lt;/td&gt;
&lt;td&gt;靜態文本&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;27%&lt;/td&gt;
&lt;td&gt;打印出的變量&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;26%&lt;/td&gt;
&lt;td&gt;調試等級verbosity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2%&lt;/td&gt;
&lt;td&gt;日誌輸出的位置&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;他們發現有調試等級的變化，是因爲安全漏洞之類的原因，或者在開銷和數據
之間的權衡。&lt;/p&gt;
&lt;p&gt;大多數對log的變量的修改都是爲了增加一個參數。他們之前的LogEnhancer是爲了
解決這個問題而提出的，通過靜態檢查，提醒程序員是否忘記了某個參數&lt;/p&gt;
&lt;p&gt;對text的修改是因爲要改掉過時的代碼信息，避免誤導用戶。&lt;/p&gt;
&lt;p&gt;他們的實驗是採用了基於code clone 的技術，找到所有log語句，然後找不一致
的clone，然後自動提出建議。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="combine-functional-and-imperative-pgrm-for-multicore-sw-scala-java"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id5"&gt;Combine Functional and Imperative Pgrm for Multicore Sw: Scala &amp;amp; Java&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;趨勢：到處都是多核，但是併發程序呢？&lt;/p&gt;
&lt;p&gt;他們研究的對象是Scala和Java，因爲可以編譯後確認JVM字節碼的語義。&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Java:&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;共享內存&lt;/li&gt;
&lt;li&gt;顯示創建的線程&lt;/li&gt;
&lt;li&gt;手動同步&lt;/li&gt;
&lt;li&gt;Wait/Notify機制&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Scala:&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;高階函數&lt;/li&gt;
&lt;li&gt;Actors, 消息傳遞&lt;/li&gt;
&lt;li&gt;lists, filters, iterators&lt;/li&gt;
&lt;li&gt;while&lt;/li&gt;
&lt;li&gt;共享狀態, OO&lt;/li&gt;
&lt;li&gt;import java.* 能從java導入任何庫&lt;/li&gt;
&lt;li&gt;auto type inferance 自動類型推導&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;實驗的參與者都經過4周的訓練，實驗項目是工業等級的開發項目&lt;/p&gt;
&lt;p&gt;結果：&lt;/p&gt;
&lt;p&gt;scala 的項目平均比java多花38%的時間，主要都是花在Test和debug上的時間。&lt;/p&gt;
&lt;p&gt;程序員的經驗和總體時間相關，但是對test和debug沒有顯著影響。&lt;/p&gt;
&lt;p&gt;scala的爲了讓編程更有效率的設計，導致debug更困難。比如類型推導，debug
的時候需要手動推導，來理解正在發生什麼。&lt;/p&gt;
&lt;p&gt;scala的程序比java小，中位數2.6%，平均15.2%&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;性能比較：&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;單核：scala的線性程序的性能比java好&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;4核：&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;scala 7s @ 4 threads&lt;/li&gt;
&lt;li&gt;java 4si @ 8 threads&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;median&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;83s scala&lt;/li&gt;
&lt;li&gt;98s java&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;32core: best scala 34s @ 64 threads&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;結論&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;java有更好的scalability&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;scala類型推導&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;45%說對攜帶碼有幫助&lt;/li&gt;
&lt;li&gt;85%說導致程序錯誤&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;調試&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;23%認爲scala簡單&lt;/li&gt;
&lt;li&gt;77%認爲java簡單&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;multi-paradigram are better&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sound-empirical-evidence-in-software-testing"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id6"&gt;Sound Empirical Evidence in Software Testing&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Test data generation 測試數據自動生成&lt;/p&gt;
&lt;p&gt;Large Empirical Studies - not always possible&lt;/p&gt;
&lt;p&gt;For open source software - big enough&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="identifing-linux-bug-fixing-patch"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id7"&gt;Identifing Linux Bug Fixing Patch&lt;/a&gt;&lt;/h3&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;current practice:&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;manual&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Current research:&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;keywords in commits&lt;/li&gt;
&lt;li&gt;link bug reports in bugzilla&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Try to solve classification problem&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;issue&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;pre-identified&lt;/li&gt;
&lt;li&gt;post-identified&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;data&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;from commit log&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;feature extraction&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;text pre-process stemmed non-stop words&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;model learning&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;research questions&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="active-refinement-of-clone-anomaly-reports"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id8"&gt;Active Refinement of Clone Anomaly Reports&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;motivating&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;code clones, clone groups&lt;/li&gt;
&lt;li&gt;clone used to detect bugs&lt;/li&gt;
&lt;li&gt;anomaly : inconsistent clone group
many anomaly clone are note bug, high false positive&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class="docutils"&gt;
&lt;dt&gt;approach&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last simple"&gt;
&lt;li&gt;reorder by sorted bug reports&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr class="docutils"/&gt;
&lt;div class="section" id="june7"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id9"&gt;June7&lt;/a&gt;&lt;/h2&gt;
&lt;div class="section" id="keynotes-2-sustainability-with-software-an-industrial-perspective"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id10"&gt;Keynotes 2: Sustainability with Software - An Industrial Perspective&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Sustainability&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Classic View: Idenpendent view with overlap&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;Social&lt;/li&gt;
&lt;li&gt;Environment&lt;/li&gt;
&lt;li&gt;Economic&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Nested viw&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Environment&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Social&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;Economic&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class="docutils"&gt;
&lt;dt&gt;Triple bottom line&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;economic&lt;/dt&gt;
&lt;dd&gt;-global business, networks , global econ&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;env&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;natural res, climate change, population grow&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;social&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;awareness, connectivity, accountability&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;div class="section" id="green-it"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id11"&gt;Green IT&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;reduce IT energy&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;more than 50% cooling - doing nothing&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;mini e-waste: not properly recycled&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;80% in EU&lt;/li&gt;
&lt;li&gt;75% in US&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;foster dematerialization&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In-Memory Technology: Expected Sustainable Benefits&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="what-can-we-do"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id12"&gt;What can we do?&lt;/a&gt;&lt;/h4&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;consider all software lifecycle phases in your design&lt;/li&gt;
&lt;li&gt;avoid energy expensive behavior in your codes&lt;/li&gt;
&lt;li&gt;design lean architectures&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div class="section" id="green-by-it"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id13"&gt;Green by IT&lt;/a&gt;&lt;/h4&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;2% green IT&lt;/li&gt;
&lt;li&gt;98% green IT&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="on-how-often-code-is-cloned-across-repositories"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id14"&gt;On How Often code is cloned across repositories&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Line based hashing code clone detection&lt;/p&gt;
&lt;p&gt;never do anything harder than sorting&lt;/p&gt;
&lt;p&gt;hashing a window of 5 lines of normalized (tokenized) code, dropping
3/4 of the hashing&lt;/p&gt;
&lt;p&gt;把ccfinder一個月的工作縮短到了3, 4天。沒有比較presion和recall。&lt;/p&gt;
&lt;table border="0" class="table docutils borderless"&gt;
&lt;colgroup&gt;
&lt;col width="11%"/&gt;
&lt;col width="89%"/&gt;
&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td&gt;14%&lt;/td&gt;
&lt;td&gt;type1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;16%&lt;/td&gt;
&lt;td&gt;type2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;17%&lt;/td&gt;
&lt;td&gt;type3 (not really type2)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="section" id="graph-based-analysis-and-prediction-for-sw-evolution"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id15"&gt;Graph-based analysis and prediction for sw evolution&lt;/a&gt;&lt;/h3&gt;
&lt;div class="section" id="graph-are-everywhere"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id16"&gt;graph are everywhere&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;internet topology&lt;/li&gt;
&lt;li&gt;social net&lt;/li&gt;
&lt;li&gt;chemistry&lt;/li&gt;
&lt;li&gt;biology&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;in sw
- func call graph
- module dependency graph&lt;/p&gt;
&lt;p&gt;developer interaction graph
- commit logs
- bug reports&lt;/p&gt;
&lt;p&gt;experiment 11 oss, 27~171 release, &amp;gt; 9 years&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="predictors"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id17"&gt;predictors&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;NodeRank&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;similar to pagerank of google&lt;/li&gt;
&lt;li&gt;measure relative importance of each node&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;func call graph with noderank&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;compare rank with severity scale on bugzilla&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;correlation between noderank and BugSeverity&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;func level 0.48 ~ 0.86 varies among projects.&lt;/li&gt;
&lt;li&gt;model level &amp;gt; func level&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;ModularityRatio&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;cohesion/coupling ratio:  IntraDep(M)/InterDep(M)&lt;/li&gt;
&lt;li&gt;forecast mantencance effort&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;use for&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;identify modules that need redesign or refactoring&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;EditDistance&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;bug-based developer collaboration graphs&lt;/li&gt;
&lt;li&gt;ED(G1,G2)=|V1|+|V2|-2|V1交V2|+|E1|+|E2|-2|E1交E2|&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;use for&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;release planning&lt;/li&gt;
&lt;li&gt;resource allocation&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;graph metrics&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;graph diameter&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;average node degree indicates reuse&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;clustering coefficient&lt;/li&gt;
&lt;li&gt;assortativity&lt;/li&gt;
&lt;li&gt;num of cycles&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="conclusion"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id18"&gt;Conclusion&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;"Actionable intelligence" from graph evolution&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;studie 11 large long-live projs&lt;/li&gt;
&lt;li&gt;predictors&lt;/li&gt;
&lt;li&gt;identify pivotal moments in evolution&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="what-make-long-term-contributors-willingness-and-opportunity-in-oss"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id19"&gt;What make long term contributors: willingness and opportunity in OSS&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;OSS don't work without contributors form community&lt;/p&gt;
&lt;p&gt;mozilla (2000-2008)&lt;/p&gt;
&lt;p&gt;10^2.2 LTC &amp;lt;- 2 order -&amp;gt; 10^4.2 new contributors &amp;lt;- 3.5 order -&amp;gt; 10^7.7 users&lt;/p&gt;
&lt;p&gt;gnome (1999-2007)&lt;/p&gt;
&lt;p&gt;10^2.5 LTC &amp;lt;- 1.5 order -&amp;gt; 10^4.0 new contributors &amp;lt;- 3.5 order -&amp;gt; 10^6.5 users&lt;/p&gt;
&lt;div class="section" id="approach"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id20"&gt;approach&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;read issues of 20 LTC and 20 non-LTC&lt;/li&gt;
&lt;li&gt;suvery 56 (36 non-LTC and 20 LTC)&lt;/li&gt;
&lt;li&gt;extract practices published on project web sites&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="summeray"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id21"&gt;summeray&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Ability/Willingness distinguishes LTCs&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;Environment&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;macro-climate&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;popularity&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;micro-climate&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;attention&lt;/li&gt;
&lt;li&gt;bumber of peers&lt;/li&gt;
&lt;li&gt;performance of peers&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;regression model&lt;/p&gt;
&lt;p&gt;newcomers to LTC conversion drops&lt;/p&gt;
&lt;dl class="docutils"&gt;
&lt;dt&gt;actions in first month predicts LTCs&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last simple"&gt;
&lt;li&gt;24% recall&lt;/li&gt;
&lt;li&gt;37% precision&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="develop-of-auxiliary-functions-should-you-be-agile"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id22"&gt;develop of auxiliary functions: should you be agile?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;a empirial assessment of pair programming and test-first programming&lt;/p&gt;
&lt;p&gt;can agile help auxiliary functions?&lt;/p&gt;
&lt;div class="section" id="experiment"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id23"&gt;experiment&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;pair vs solo&lt;/li&gt;
&lt;li&gt;test-first vs test-last&lt;/li&gt;
&lt;li&gt;students vs professors&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="research-questions"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id24"&gt;research questions&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;r1: can pair help obtain more correct impl&lt;/li&gt;
&lt;li&gt;r2: can test-first&lt;/li&gt;
&lt;li&gt;r3: dst test1 encourage the impl or more test cases?&lt;/li&gt;
&lt;li&gt;r4: does test1 course more coverage&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="result"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id25"&gt;result&lt;/a&gt;&lt;/h4&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;test-first&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;higher coverage&lt;/li&gt;
&lt;li&gt;non change with correctness&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;&lt;dl class="first docutils"&gt;
&lt;dt&gt;pair&lt;/dt&gt;
&lt;dd&gt;&lt;ul class="first last"&gt;
&lt;li&gt;improve on correctness&lt;/li&gt;
&lt;li&gt;longer total programming time&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="static-detection-of-resource-contention-problems-in-server-side-script"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id26"&gt;Static Detection of Resource Contention Problems in Server-side script&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Addressed the race condition of accessing database or filesystem of PHP&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="amplifying-tests-to-validate-exception-handling-code"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id27"&gt;Amplifying Tests to Validate Exception Handling Code&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;異常處理的代碼不但難寫，而且難以驗證。各種組合情況難以估計，尤其是手機
系統上。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="a-tactic-centric-approach-automating-traceability-of-quality-concerns"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id28"&gt;A tactic-centric approach automating traceability of quality concerns&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;tactic traceability information models&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><category term="life"></category><category term="icse"></category><category term="software"></category></entry><entry><title>MSR 2012 @ ICSE</title><link href="//farseerfc.me/msr2012.html" rel="alternate"></link><published>2012-06-02T10:42:00+09:00</published><updated>2012-06-02T10:42:00+09:00</updated><author><name>farseerfc</name></author><id>tag:farseerfc.me,2012-06-02:/msr2012.html</id><summary type="html">
&lt;div class="section" id="mining-software-repository-2012-icse"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id3"&gt;Mining Software Repository 2012 @ ICSE&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;參加了今年的MSR，會場在University of Zurich。一大早來到大學，註冊有點
小插曲，顯然瑞士人搞不清楚中國人的名字，3個楊（Yang）姓的中國人的名牌
被搞錯了。然後堀田學長的所屬被寫作了“Japan, Japan”，成爲了全日本的代表。&lt;/p&gt;
&lt;div class="section" id="msr-microsoft-research-talk-msr-mining-software-repositories"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id4"&gt;MSR(MicroSoft Research) talk @ MSR(Mining Software Repositories)&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;首先是來自微軟亞洲研究院（MicroSoft Research @ Asia, MSR Asia）的Keynots，
於是就變成了MSR在MSR的演講。MSR的張冬梅（Dongmei Zhang）女士的演講
分爲關於Software Analysis和XIAO的兩部分。XIAO是MSRA開發的Code Clone
Detector，似乎我要給井上研做的就是這個。想更多瞭解Xiao的細節，不過張女士
演講結束的時候的鼓掌導致了話筒的小故障 …&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</summary><content type="html">
&lt;div class="section" id="mining-software-repository-2012-icse"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id3"&gt;Mining Software Repository 2012 @ ICSE&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;參加了今年的MSR，會場在University of Zurich。一大早來到大學，註冊有點
小插曲，顯然瑞士人搞不清楚中國人的名字，3個楊（Yang）姓的中國人的名牌
被搞錯了。然後堀田學長的所屬被寫作了“Japan, Japan”，成爲了全日本的代表。&lt;/p&gt;
&lt;div class="section" id="msr-microsoft-research-talk-msr-mining-software-repositories"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id4"&gt;MSR(MicroSoft Research) talk @ MSR(Mining Software Repositories)&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;首先是來自微軟亞洲研究院（MicroSoft Research @ Asia, MSR Asia）的Keynots，
於是就變成了MSR在MSR的演講。MSR的張冬梅（Dongmei Zhang）女士的演講
分爲關於Software Analysis和XIAO的兩部分。XIAO是MSRA開發的Code Clone
Detector，似乎我要給井上研做的就是這個。想更多瞭解Xiao的細節，不過張女士
演講結束的時候的鼓掌導致了話筒的小故障。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="towards-improving-bts-with-game-mechanisms"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id5"&gt;Towards Improving BTS with Game Mechanisms&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;感覺這篇的內容基本上就是關於&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.joelonsoftware.com/items/2008/09/15.html"&gt;http://www.joelonsoftware.com/items/2008/09/15.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;這裏寫到的東西，然後說同樣的理論是否可以用於Issue Tracking之類的事情上。
個人感覺這個意義不大，stackoverflow之所以成功是因爲它把開源社區本身就
具有的名譽體系具現化了，本着大家都喜歡被別人奉爲大牛的心態，就如同
wikipedia一樣。同樣的理論如果用於公司內部的Issue Tracking系統上，會得到
完全不同的東西吧。就像MSDN的組織方式雖然和wikipedia是一樣的，但是在MSDN
裏找信息的感覺和在wikipedia完全不一樣。個人不太看好這個方向。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="ghtorrent"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id6"&gt;GHTorrent&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;這篇的slide在這裏可以看到：&lt;a class="reference external" href="http://www.slideshare.net/gousiosg/ghtorrent-githubs-data-from-a-firehose-13184524"&gt;http://www.slideshare.net/gousiosg/ghtorrent-githubs-data-from-a-firehose-13184524&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Data exporter for github. Github的主要數據，代碼，已經可以通過git接口
獲得了，wiki是git的形式保存的。所以這個項目的目的就是暴露別的數據，主要
是issue tracking，code comments，這種。代碼訪問github api，然後用分佈式
實現以克服api的限制，然後提供torrents形式的history下載。github api獲得
的json數據以bson的形式保存在MongoDB裏，解析過的有了Schema之後的數據保存
在MySQL裏並可以導出SQL。&lt;/p&gt;
&lt;p&gt;個人的想法，覺得數據如果能夠更統一，全部存在Git裏或許更好，像Wiki一樣。
同樣是要暴露全部歷史記錄的目的，用Torrent自己實現的歷史遠不如用Git的
接口實現的歷史記錄方便吧，git blame之類的也更方便追蹤code comment之類的
作者信息。當然對git的raw date直接讀寫，需要對git的內部原理有足夠的理解，
或許只有github的人有這種能力了。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="topic-mining"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id7"&gt;Topic Mining&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;用得兩個參數， DE 和 AIC，完全不能理解，過後研究。實驗針對了Firefox,
Mylyn, Eclipse三個軟件。試圖從Repo中分析源代碼的identifier和comments，
找到topic和bug之間的關係，比如怎樣的topic更容易導致bug。得出的結論似乎
也很曖昧，只是說核心功能被報告的bug更多，但是不知道原因。這只能表示核心
功能受到更多關注和更多測試吧，並不能說明核心功能就容易產生bug。&lt;/p&gt;
&lt;p&gt;不過這個的Slide做得很漂亮，很容易理解。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="secold"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id8"&gt;SeCold&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;A linked data platform for mining software repositories&lt;/p&gt;
&lt;p&gt;沒聽懂這個項目的目的。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="the-evolution-of-software"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id9"&gt;The evolution of software&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;第二天的Keynotes，關於將Social Media和Software Development相結合的想法。
或許就是Github賴以成功的基礎。講到代碼中的comment, Tags, uBlog, blog之類
的social的特性和IDE的融合的趨勢。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="do-faster-releases-imporve-software-quality"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id10"&gt;Do Faster Releases Imporve Software Quality?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;使用Firefox作爲例子。&lt;/p&gt;
&lt;p&gt;結論是快速發佈導致bug更多，更容易crash，但是bug更快得到修復，並且用戶
更快轉向新的發佈。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="security-vs-performance-bugs-in-firefox"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id11"&gt;Security vs Performance Bugs in Firefox&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Performance bugs are regression, blocks release.&lt;/p&gt;
&lt;/div&gt;
&lt;hr class="docutils"/&gt;
&lt;div class="section" id="id1"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id12"&gt;一些感想&lt;/a&gt;&lt;/h3&gt;
&lt;div class="section" id="commit"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id13"&gt;基於自然語義分析的commit分割&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;經常工具（比如git）的使用者並沒有按照工具設計者的意圖使用工具，這給MSR
帶來很多困難。舉個例子，git有非常完美的branch系統，通常期望git的使用者
能夠在一次commit裏commit一個功能，比如一個bug的修復，或者一個feature的
添加，但是事實上經常有很多邏輯上的commit被合併在一個裏面了。&lt;/p&gt;
&lt;p&gt;或許這不是使用者的錯，而是工具仍然不夠人性的表現。或許我們可以自動把
一次的commit按照語義分割成多個。&lt;/p&gt;
&lt;p&gt;分割之後，可以更容易地把issue和commit關聯，也更容易組織更多的研究。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="slides"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id14"&gt;關於這次發表中大家用的slides系統&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;題目爲``Incorporating Version Histories in Information Retrieval Based
Bug Localization''的人用的slide是beamer的。公式很多，overlay很多，列表
很多，圖片很少，典型的beamer做出的slide。思維導圖用得很不錯。今天一天
有至少3個slide是用beamer做的。&lt;/p&gt;
&lt;p&gt;題目爲``Towards Improving Bug Tracking Systems with Game Mechanisms''
的人用了prezi，圖片很多，過度很多。但是比如沒有頁號沒有頁眉頁腳，正式
會議的場合不太方便。&lt;/p&gt;
&lt;p&gt;至少有六個以上用了Apple Keynotes，Keynotes做出來的東西真的和Powerpoint
做出來的很難區別，其中兩個人用了初始的主題所以才看出來。&lt;/p&gt;
&lt;p&gt;剩下的自然是PPT。MSRA的張女士做的雖然是PPT，倒是有很多beamer的感覺，
比如頁眉頁腳和overlay的用法。這些如果都是PPT做出來的，會多很多額外的
人力吧。&lt;/p&gt;
&lt;p&gt;值得一提的是有一個題目爲``Green Mining: A Methodology of Relating
Software Change to Power Consumption''的人的slide全是``劣質''的手繪漫畫，
效果意外地好，很低碳很環保很綠色很可愛。具體效果可以參考下面的動畫，雖然
現場看到的不是一個版本：&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://softwareprocess.es/a/greenmining-presentatation-at-queens-20120522.ogv"&gt;http://softwareprocess.es/a/greenmining-presentatation-at-queens-20120522.ogv&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="id2"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id15"&gt;微軟是個腹黑娘！&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;嘛雖然這也不是什麼新聞了。MSR2012的Mining Challenge的贊助商是微軟，管理
組織者來自微軟研究院，獎品是Xbox和Kinect。然後今年的題目是：&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Mining Android Bug
&lt;/pre&gt;
&lt;p&gt;我看到了微軟滿滿的怨氣……&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><category term="life"></category><category term="msr"></category><category term="icse"></category><category term="mining"></category><category term="software"></category><category term="repository"></category></entry></feed>