<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>程式設計 遇上 小提琴 &#187; 作品</title>
	<atom:link href="http://blog.ez2learn.com/category/%e4%bd%9c%e5%93%81/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ez2learn.com</link>
	<description>Victor&#039;s個人部落格，關於程式設計與小提琴</description>
	<lastBuildDate>Tue, 07 Feb 2012 03:26:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>那些台灣軟體產業所缺少的 &#8211; 開放源始碼</title>
		<link>http://blog.ez2learn.com/2011/11/25/taiwan-software-lacking-of-open-source/</link>
		<comments>http://blog.ez2learn.com/2011/11/25/taiwan-software-lacking-of-open-source/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 15:43:19 +0000</pubDate>
		<dc:creator>victor</dc:creator>
				<category><![CDATA[中文文章]]></category>
		<category><![CDATA[作品]]></category>
		<category><![CDATA[嘴砲]]></category>
		<category><![CDATA[開源]]></category>
		<category><![CDATA[License]]></category>
		<category><![CDATA[Licensing]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[授權]]></category>

		<guid isPermaLink="false">http://blog.ez2learn.com/?p=1644</guid>
		<description><![CDATA[前面幾篇談到了台灣軟體產業界常見的毛病，除了工具以外，還有一項令我感到相當意外的，就是我發現台灣業界對於開放源始碼的認知真的很有問題，例如我曾有和別人討論過，跟他們你們可以使用open source的現成資源來減低成本，但是得到的回應很常是 那不是讓你用但之後就要付錢嗎? 從這類的回應就可以大略知道，其實有很多人對於開放源始碼都有一些錯誤的認知，到底什麼時候該付錢、什麼情況可以使用都搞不清楚，因此這回我大算介紹一下一些常見的開源授權的常識 免責聲明 在讀本文前我得先聲明，我不是律師，這不是提供專業的法律見解，只是試著用較易懂的方式解釋授權，以我自己的經驗來說明，其中多少可能會有錯誤，請自行判斷，也歡迎指出錯誤，如有需要請洽詢專業的法律諮詢，在本文末會提到 認識授權 (License) 首先要從授權(License)的概念開始談起，開放源始碼通常不是只是單純把程式碼公開出來，而是一般都會搭配某種授權，而授權的意思，以白話來說，就是寫了一份聲明，裡面這樣提到 此程式任何人可以免費使用，但是使用前你必需遵守以下條款&#8230;. 有了這樣的聲明，使用開源的人就可以放心使用，當然前提是要遵守授權所提出的條款，基本上因為已經授權出來，所以就算是原作者反悔，也沒辦法控告你什麼，除非你違反他當初訂出來的條款，而一般人看見落落長的條款項目可能就怕了，更何況是用英文寫的，但是別擔心，事實上要注意的要點只有幾樣，都大同小異，同一類條款的性質都很類似 散佈(Redistribute) 在理解授權之前，首先要理解散佈，這是授權裡面一定會提到的重要關鍵動作，那麼什麼是散佈呢？ 簡單的來說，就是將軟體轉交給其它人，不管你是以原始碼的形式，或是編成二進制執行檔後，只要是轉交給其它法人，就算是散佈，舉個例子 把原始碼上傳供人下載 把原始碼拿來販售 把原始碼編成執行檔供人下載 把原始碼編成執行檔販售 以上都算是散佈的行為，所有的授權條款裡面都會提到散佈開源程式時你應盡的義務，當然，也有很多行為是稱不上散佈的，例如 將原始碼交給公司內部某個單位 將原始碼編譯成執行檔自己使用 在伺服器上以開源程式執行提功服務給使用者 像這樣沒有法人的經手，都不算是散佈的行為，對於散佈的行為介定是很重要的，等一下會解釋 授權(License)的種類 授權有(License)非常多種，我們在此大略將其分成三大類，第一類是GPL，第二類為BSD，而第三類為商業授權，是較為特別且少見的，其中GPL最不自由，而BSD最自由 &#160; 在這裡自由與不自由主要是指你在使用這些開源軟體時所要盡的義務的多和少 GPL GNU General Public License主要是由Linux陣營的開源軟體開發者為主在使用的，它有幾個特色 散佈要連修改的部份一起開源 病毒的感染性 排它性 散佈與修改 如同我們前面提到的散佈，最重要的重點是，如果你改了程式，而又要散佈程式，那麼你在散佈的同時也要把你修改的部份也公開出來，例如 修改了原始碼後拿來販售 修改了原始碼後編成執行檔供別人使用 上列行為都扯到了散佈，因此如果你程式有修改，你不能只給別人執行檔，要連改的部份一起開源出來，這條款的目的主要是在於GNU的社群，希望強迫使用者能回饋社群，因為一但你改了程式，想拿來賣錢，就得公開出來，避免有人改進了程式，拿來販售，但沒有公開程式的問題 &#8230; <a href="http://blog.ez2learn.com/2011/11/25/taiwan-software-lacking-of-open-source/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>前面幾篇談到了台灣軟體產業界常見的毛病，除了工具以外，還有一項令我感到相當意外的，就是我發現台灣業界對於開放源始碼的認知真的很有問題，例如我曾有和別人討論過，跟他們你們可以使用open source的現成資源來減低成本，但是得到的回應很常是</p>
<blockquote><p>那不是讓你用但之後就要付錢嗎?</p></blockquote>
<p>從這類的回應就可以大略知道，其實有很多人對於開放源始碼都有一些錯誤的認知，到底什麼時候該付錢、什麼情況可以使用都搞不清楚，因此這回我大算介紹一下一些常見的開源授權的常識</p>
<h2>免責聲明</h2>
<p>在讀本文前我得先聲明，我不是律師，這不是提供專業的法律見解，只是試著用較易懂的方式解釋授權，以我自己的經驗來說明，其中多少可能會有錯誤，請自行判斷，也歡迎指出錯誤，如有需要請洽詢專業的法律諮詢，在本文末會提到</p>
<h2>認識授權 (License)</h2>
<p>首先要從授權(License)的概念開始談起，開放源始碼通常不是只是單純把程式碼公開出來，而是一般都會搭配某種授權，而授權的意思，以白話來說，就是寫了一份聲明，裡面這樣提到</p>
<blockquote><p>此程式任何人可以免費使用，但是使用前你必需遵守以下條款&#8230;.</p></blockquote>
<p>有了這樣的聲明，使用開源的人就可以放心使用，當然前提是要遵守授權所提出的條款，基本上因為已經授權出來，所以就算是原作者反悔，也沒辦法控告你什麼，除非你違反他當初訂出來的條款，而一般人看見落落長的條款項目可能就怕了，更何況是用英文寫的，但是別擔心，事實上要注意的要點只有幾樣，都大同小異，同一類條款的性質都很類似</p>
<h2>散佈(Redistribute)</h2>
<p>在理解授權之前，首先要理解散佈，這是授權裡面一定會提到的重要關鍵動作，那麼什麼是散佈呢？ 簡單的來說，就是將軟體轉交給其它人，不管你是以原始碼的形式，或是編成二進制執行檔後，只要是轉交給其它法人，就算是散佈，舉個例子</p>
<blockquote><p>把原始碼上傳供人下載</p>
<p>把原始碼拿來販售</p>
<p>把原始碼編成執行檔供人下載</p>
<p>把原始碼編成執行檔販售</p></blockquote>
<p>以上都算是散佈的行為，所有的授權條款裡面都會提到散佈開源程式時你應盡的義務，當然，也有很多行為是稱不上散佈的，例如</p>
<blockquote><p>將原始碼交給公司內部某個單位</p>
<p>將原始碼編譯成執行檔自己使用</p>
<p>在伺服器上以開源程式執行提功服務給使用者</p></blockquote>
<p>像這樣沒有法人的經手，都不算是散佈的行為，對於散佈的行為介定是很重要的，等一下會解釋</p>
<h2>授權(License)的種類</h2>
<p>授權有(License)非常多種，我們在此大略將其分成三大類，第一類是GPL，第二類為BSD，而第三類為商業授權，是較為特別且少見的，其中GPL最不自由，而BSD最自由</p>
<p><a href="http://blog.ez2learn.com/wp-content/uploads/2011/11/licensing.png"><img class="aligncenter size-full wp-image-1651" title="licensing" src="http://blog.ez2learn.com/wp-content/uploads/2011/11/licensing.png" alt="" width="466" height="281" /></a></p>
<p>&nbsp;</p>
<p>在這裡自由與不自由主要是指你在使用這些開源軟體時所要盡的義務的多和少</p>
<h2>GPL</h2>
<p>GNU General Public License主要是由Linux陣營的開源軟體開發者為主在使用的，它有幾個特色</p>
<ul>
<li>散佈要連修改的部份一起開源</li>
<li>病毒的感染性</li>
<li>排它性</li>
</ul>
<h3>散佈與修改</h3>
<p>如同我們前面提到的散佈，最重要的重點是，如果你改了程式，而又要散佈程式，那麼你在散佈的同時也要把你修改的部份也公開出來，例如</p>
<blockquote><p>修改了原始碼後拿來販售</p>
<p>修改了原始碼後編成執行檔供別人使用</p></blockquote>
<p>上列行為都扯到了散佈，因此如果你程式有修改，你不能只給別人執行檔，要連改的部份一起開源出來，這條款的目的主要是在於GNU的社群，希望強迫使用者能回饋社群，因為一但你改了程式，想拿來賣錢，就得公開出來，避免有人改進了程式，拿來販售，但沒有公開程式的問題</p>
<p>當然，如果你的程式只是自己使用，或是公司內部使用，那麼你修改了程式但因為沒有散佈的問題，所以修改的部份也不用因此公開，還有一種情況是，你使用GPL授權的程式放在伺服器上提供服務，因為這過程沒有重新散佈，所以也不會有問題</p>
<p>除了修改以外，還有一個特性，就是病毒的感染性，除了修改程式，如果GPL的原始碼是函式庫，而你的程式連結了GPL授權的程式，不管是靜態連結或動態連結，都會因此被GPL感染，一但你要散佈你的程式，因為用了GPL的函式庫，因此你的主程式也被感染，變成你要把你的主程式一起開源出來，就因為這特性替GPL贏得了「病毒授權」的美名，就跟T病毒一樣，被感染了就會變成殭屍</p>
<p>就因為這樣病毒的特性，讓很多人又愛又恨，很多商業軟體想用某些開源的函式庫，但因為那些函式庫如果是GPL授權，會導至他們的產品本身也受到感染，而因此無法使用，變成非GPL和GPL這兩種可能性，除此之外，有些廠商為了避免被GPL感染，會用一些比較特別的手法來避開</p>
<p>因為這樣感染的特性，加上如此不自由的特質，使得很多可以用上GPL的場合卻因為感染性而無法達成，為了能解決感染的問題，它有推出另一種弱化版的GPL，叫LGPL (Less Generic Public Licence)，這個授權大致上和GPL是一樣的，差別就在於上面提到的連結受感染的問題，連結LGPL的函式庫並不會受到感染，如此一來就算是商業軟體也能安心地使用LGPL的函式庫</p>
<p>接著還有它的排它性，因為授權有很多種，GPL規定它的授權條款不能被修改，這表示你修改了程式要散佈被強迫要開源的話，你也只能選擇GPL的授權，除非你是原作者</p>
<p>你覺得GPL很不自由嗎? 事實上他們覺得GPL還不夠嚴格，正因為GPL陣營的人認為像Google之流的廠商，用了GPL的程式提供服務，不用公佈修改的部份，因此覺得心癢癢的，為此甚至增加了AGPL，更加嚴格的GPL，他的重新散佈的定義，擴增為包括提供服務，因此即使你用了AGPL的程式提功服務，沒有轉交程式給他人，就AGPL的定義，這就算是重新散佈，然而使用AGPL授權的程式其實非常少，像是MongoDB就是使用AGPL授權，正因為LGPL/GPL/AGPL強烈的限制特性，反而使它成為商業軟件開源的最愛授權，對手要修改販授的話也得公開，不想公開的話就得買另外的授權，這就是常見的雙授權商業模式，因此我個人喜歡戲稱GPL為 "商業友善授權"</p>
<h2>類BSD</h2>
<p>如果說GPL是邪惡的病毒授權，那麼類BSD就是自由又開放的授權，相較於GPL相當害怕別人用了GPL的程式不回饋，類BSD就大方許多，它最主要的條款就是，當你散佈修改過的類BSD授權下的程式，一樣不管是二進制的執行檔或原始碼，你要盡的義務就只有記得要把類BSD的授權一起轉交給別人就可以了，包含原作的姓名你也得一併加進去，不能自行亂改</p>
<p>舉個例子，你改了一個BSD授權的應用程式，你想編譯好成執行檔放到網路上供人下載，可以，只要連著當初的BSD授權一起散佈即可，不必把你改的部份也公開出來，因此你可以安心的用BSD授權的函式庫來寫商業軟體</p>
<p>下面的例子都是不違反BSD授權的做法</p>
<blockquote><p>修改BSD授權的程式編譯成執行檔來賣，只提供執行檔而非原始碼給使用者，原始的BSD授權條款也得一併給使用者</p>
<p>連結BSD授權的函式庫，主程式只提供執行檔進行販售，原始的BSD授權條款也得交給使用者</p></blockquote>
<p>而下面這些例子可能會違反BSD授權</p>
<blockquote><p>重新散佈BSD授權的程式，竄改並宣稱自己才是原作者</p>
<p>散佈BSD授權的程式，但不附帶BSD授權條款</p></blockquote>
<p>那你可能會問附帶BSD授權條款是怎樣辦到，很簡單，通常都只是一個LICENSE.txt檔案夾在壓縮檔裡之類的即可</p>
<p>而類BSD在此只是通稱，因為有很多授權都有這類主要的特性，大約列出常見的，像是</p>
<ul>
<li>MIT</li>
<li>Apache</li>
<li>zlib</li>
</ul>
<p><span><span class="Apple-style-span" style="line-height: 24px;">其中zlib最為自由，只要求不能亂改作者，不能聲稱修改的版本才是原始版本，以及不能移除授權，也就是散佈時一樣要附帶zlib授權，除此之外還有很多非常多種的授權，這只是常見的幾種，只要你看見他有寫 "BSD-like"，通常就是指它的特色跟上面描述的差不多，有些專案會特別量身訂作他們自己的授權，但精神大多都會跟這些主流授權差不多</span></span></p>
<h2>商業授權和其它授權</h2>
<p>除了類BSD和GPL，其實還有很多授權，是一些基於商業考量定出來的授權，通常較為少見，所以不多做討論</p>
<h2>常見的謎思 &#8211; MySQL要錢嗎?</h2>
<p>前一陣子常見到很多台灣資訊業界的人瘋狂轉貼MySQL要開始收費的消息，如果懂得上面提到的授權條款就會覺得這很好笑，以MySQL的例子來說，它的程式碼已經用GPL的形式開放出來了，就像潑出來的水收不回去了，即使他們想收錢都沒辦法了，MySQL官網上的授權費用，還有授權說明，都說得不清不楚，即使你打過去問他們到底什麼情況要收錢，他們也只會給你閃爍不清的說法，其目的就只是要騙不懂開源授權的笨蛋去買他們的商用授權，如果你的公司真的有過多預算當做贊助他們是不錯，但都已經被Sun之後又被甲骨文買下來事實上他們也不缺錢了</p>
<p>有興趣可以參考<a href="http://antbsd.twbbs.org/~ant/wordpress/?p=2259"> 探討 MySQL 授權</a></p>
<h2>常見的謎思 &#8211; 開源軟體找不到商業支援</h2>
<p>很多人也有個想法就是開源軟體找不到商業支援，但事實上這是錯的，正因為開源軟體免費的特質，它很多的商業模式其實都是在提供商業支援，例如 <a href="http://www.percona.com/">Percona</a>，他們提功的是強化版的MySQL InnoDB引擎，因為MySQL的GPL授權，導致他們修改的部份也得開源，因此他們當然不可能靠賣軟體獲利，而是靠商業諮詢和技術支援、專業訊練等等項目</p>
<p>因此，事實上很多開源軟體的商業資源遠比商業軟體還來得豐富，因為商業軟體的支援就只有他們提供，他們不幫你你就沒折，然而開源軟體因為是開放的，反而很多人可以解決同樣的問題，最糟的情況不過是自己下海解決而已，至少還不是商業軟體的無解</p>
<p>關於開源軟體的商業模式其實是一個很有趣的議題，有空的話可以另外寫一篇來介紹</p>
<h2>免費的開源授權諮詢</h2>
<p>好吧，講了這麼多，如果你問我你們公司有X專案，要用到Y授權的Z套件是否可行? 請別問我，請問中研院的<a href="http://www.openfoundry.org/">自由軟體鑄造場</a>的<a href="http://www.openfoundry.org/legal-consulting-services">免費開源法律問題諮詢</a>吧，有免錢的程式可以用就算了，還有免錢的諮詢可以問，好諮詢，不問嗎?</p>
<p>除此之外還可以參考他們比我更專業一百倍的<a href="http://www.openfoundry.org/tw/law-and-licensing">法律源地</a>部落格</p>
<h2>小結</h2>
<p>常常看見很多單位都在花大錢買商用軟體，但是一看卻發現這些功能遠比不用錢的開源軟體還差，像是以資料庫為例，就有看見某間學校買了某家公司的資料庫，限制連線人數，功能殘缺不齊，連稱得上現代的資料庫都有困難，然而授權都動不動數十萬數百萬，就覺得很好笑，有免錢的不用，要花大錢去買垃圾來用，使用開源的軟體，並不只是省錢而已，用現成的函式庫與軟體兜出需要的系統更是提升競爭力與減少開發成本的關鍵，台灣如果不能掌握開源的相關知識會比現在更加落後世界的腳步</p>
<p>而授權雖然條款很多看起來很嚇人，實際理解了之後其實也不會太難懂，陣營也很清楚，如果要比喻的話，GPL陣營認為人性本惡，把大家都當成是會開發後就不想把東西公開，每人都是自私的，所以條款強制性很重，而BSD則是相反，要不要開放是你自己的決定，而我認為如果要開源就不怕別人用，怕別人用的話就別開源</p>
<p>最後，我們這裡談到的只是從使用層面來看開源授權而已，台灣大多廠商目前的狀況是連使用上的認知都有困難，更別說是貢獻開源，以後有機會再來寫一些相關的文章</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ez2learn.com/2011/11/25/taiwan-software-lacking-of-open-source/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>嘴砲談雲端 &#8211; 介紹用雲端除錯網頁的雲端技術: Browserling</title>
		<link>http://blog.ez2learn.com/2011/01/23/cloud-service-browserling/</link>
		<comments>http://blog.ez2learn.com/2011/01/23/cloud-service-browserling/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 16:57:43 +0000</pubDate>
		<dc:creator>victor</dc:creator>
				<category><![CDATA[中文文章]]></category>
		<category><![CDATA[作品]]></category>
		<category><![CDATA[嘴砲]]></category>
		<category><![CDATA[分享]]></category>
		<category><![CDATA[嘴砲加嘴砲]]></category>
		<category><![CDATA[超嘴砲]]></category>
		<category><![CDATA[雲端]]></category>

		<guid isPermaLink="false">http://blog.ez2learn.com/?p=1187</guid>
		<description><![CDATA[有試著想開發支援所有主流瀏覽器的朋有們肯定都會遇過像我在 How hateful it is to develop a web application which runs correctly with different browsers? 所提到的情況，為了確定網頁在各種版本的瀏覽器，特別是那該死的IE系列都能正常顯示和執行，這樣的畫面出現是很平常的事 在這張圖中我分别用了兩個VirtualBox給IE7和IE6，如果連IE5要加進來右是另一個，只是IE5太古老雖然還是可能有人在用，但我已經懶得測了。 當然，安裝所有的瀏覽器是一個解決方法，包括使用VirtualBox之類的虛擬化技術來安裝萬惡的IE系列，但畢竟還是很麻煩，來自拉脫維亞 (老實說我也不知道這是什麼樣的地方 XD) 的Peteris Krumins，有趣的是Peteris他唸的是物理系，他和來自美國的James Halliday創作了一個基於雲端的解決方案，叫Browserling，裡面用的技術是之前我在 Open the browser, and here comes the computing power 所提到的，他們共同開發的技術，這個技術最有趣的地方是可以透過網頁來遠端操作電腦，雖然這不是什麼很創新的技術，但結合虛擬化的技術，將運算能力變成像流水一樣，網頁一開服務即到的型式，這就是它的潛力。 扯到雲端 在台灣一個很有趣的現像就是，當某種新東西很新奇、在未來會有不錯的應用，總會有一堆門外漢跟著朗朗上口地四處吹噓這些名詞，說穿了不過就只是趕流行，前陣子流行的是奈米，什麼都要冠上奈米，這樣做價格似乎就可以翻幾成，也有Web2.0之類的，甚至台灣還有人搶著推出Web3.0，說是要把網頁變成P2P的型式，當然是以失敗收場，而現在只不過是把流行的口號改成雲端而已，什麼都要冠上雲端，打開電視偶爾也會看見一些名嘴吹噓著雲端巴啦巴啦&#8230;，其實當發現一堆門外漢也在跟著人云亦云時就說明了這已經是在炒作了，哪天在路邊看見"雲端雞排"也請不要意外 XD 何謂雲端 每個人對雲端都有一套解釋，對我來說，雲端不外乎就只是將計算資源、資料儲存等等能力變成像自來水那樣，接上名為網際網路的大水管，打開電腦即可存取，這樣的概念其實早就有了，更早之前甚至有人提出更激進的想法，要將使用者這端完全只剩下客戶端的能力就夠了，剩的東西都由雲端的能力提供，但是也是沒有成功，或許是環境不夠成熟，而我個人認為使用者端的能力也是需要的，網路頻寬再怎麼進展，要即時所有東西都由遠端提供還是有困難的 台灣的現況 &#8230; <a href="http://blog.ez2learn.com/2011/01/23/cloud-service-browserling/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>有試著想開發支援所有主流瀏覽器的朋有們肯定都會遇過像我在 <a href="http://blog.ez2learn.com/2010/07/11/how-hateful-it-is-to-develop-a-web-application-which-runs-correctly-with-different-browsers/">How hateful it is to develop a web application which runs correctly with different browsers?</a> 所提到的情況，為了確定網頁在各種版本的瀏覽器，特別是那該死的IE系列都能正常顯示和執行，這樣的畫面出現是很平常的事</p>
<p><a href="http://blog.ez2learn.com/wp-content/uploads/2010/07/browsers.png"><img class="alignnone size-medium wp-image-1052" title="browsers" src="http://blog.ez2learn.com/wp-content/uploads/2010/07/browsers-300x187.png" alt="" width="300" height="187" /></a></p>
<p>在這張圖中我分别用了兩個VirtualBox給IE7和IE6，如果連IE5要加進來右是另一個，只是IE5太古老雖然還是可能有人在用，但我已經懶得測了。</p>
<p>當然，安裝所有的瀏覽器是一個解決方法，包括使用VirtualBox之類的虛擬化技術來安裝萬惡的IE系列，但畢竟還是很麻煩，來自拉脫維亞 (老實說我也不知道這是什麼樣的地方 XD) 的<a href="http://catonmat.net/">Peteris Krumins</a>，有趣的是Peteris他唸的是物理系，他和來自美國的<a href="http://substack.net/">James Halliday</a>創作了一個基於雲端的解決方案，叫<a href="http://browserling.com">Browserling</a>，裡面用的技術是之前我在 <a href="http://blog.ez2learn.com/2010/07/21/open-the-browser-and-here-comes-the-computing-power/">Open the browser, and here comes the computing power</a> 所提到的，他們共同開發的技術，這個技術最有趣的地方是可以透過網頁來遠端操作電腦，雖然這不是什麼很創新的技術，但結合虛擬化的技術，將運算能力變成像流水一樣，網頁一開服務即到的型式，這就是它的潛力。</p>
<h2>扯到雲端</h2>
<p>在台灣一個很有趣的現像就是，當某種新東西很新奇、在未來會有不錯的應用，總會有一堆門外漢跟著朗朗上口地四處吹噓這些名詞，說穿了不過就只是趕流行，前陣子流行的是奈米，什麼都要冠上奈米，這樣做價格似乎就可以翻幾成，也有Web2.0之類的，甚至台灣還有人搶著推出<a href="http://mr6.cc/?p=646">Web3.0</a>，說是要把網頁變成P2P的型式，當然是以失敗收場，而現在只不過是把流行的口號改成雲端而已，什麼都要冠上雲端，打開電視偶爾也會看見一些名嘴吹噓著雲端巴啦巴啦&#8230;，其實當發現一堆門外漢也在跟著人云亦云時就說明了這已經是在炒作了，哪天在路邊看見"雲端雞排"也請不要意外 XD</p>
<h2>何謂雲端</h2>
<p>每個人對雲端都有一套解釋，對我來說，雲端不外乎就只是將計算資源、資料儲存等等能力變成像自來水那樣，接上名為網際網路的大水管，打開電腦即可存取，這樣的概念其實早就有了，更早之前甚至有人提出更激進的想法，要將使用者這端完全只剩下客戶端的能力就夠了，剩的東西都由雲端的能力提供，但是也是沒有成功，或許是環境不夠成熟，而我個人認為使用者端的能力也是需要的，網路頻寬再怎麼進展，要即時所有東西都由遠端提供還是有困難的</p>
<h2>台灣的現況</h2>
<p>就台灣的環境來看，台灣軟體產業規模不足，人才都被硬體產業吸走，教育也以偏理論導向，實務部份相對很弱，網路頻寬也因為被隴斷更是奇貴無比，又位於地震帶上，不利於建資料中心，我只能說一個<strong><span style="font-size: large;">慘</span></strong>字</p>
<p>但是就高階應用的層面還是有機會，純軟體服務產業最有趣的地方就是，它不需要什麼12吋晶元廠、上千萬上億元的設備，需要的只是人才、電腦、一條網路線，這樣就可以做到任何事情，電腦和網路在現在已經是隨手可得，剩下的就是人才，人才才是這樣產業裡最重要的資產，這說明了競爭是公平的，只要有能力就算只是幾個人躲在車庫裡一樣能在網路上打下一片江山</p>
<p>或許你會問，那像資料中心那類基礎建設怎麼辦? 其實這個問題本身就被雲端給解決了，因為雲端的概念就如我所說的，是透過網路來提供服務，你不需要自己建一個資料中心才能提供服務，你可以使用別人提供的基礎建設在上面提供更高價值的服務，一個好的例子像是<a href="http://www.dropbox.com/">Dropbox</a>，它提供了雲端的儲存服務，只要安裝它的軟體，把檔案拖進料夾，剩的它會自動幫你傳到資料中心並且自動同步，它本身是透過<a href="http://aws.amazon.com/s3/">Amazon S3</a>的儲存服務來存放檔案，談到Dropbox，很有趣的是ASUS的電腦也有贈送類似的加值服務，叫<a href="https://www.asuswebstorage.com">ASUS WebStorage</a>。</p>
<p>近來，像這Amazon S3、EC2等等的基礎建設已經日漸成熟，所以現在要提供網路服務已經不像以前所有東西都得自己建置，自己買硬體、自己建資料中心，這些東西都將由雲端來提供，成本已經降很低，後繼者要做的就是要想出更高價值的高階整合應用服務並且用現有的這些基礎建設實作出來，可惜的這部份是台灣比較缺乏的能力</p>
<h2>Browserling</h2>
<p>久沒有寫文章就會想打一下嘴砲，扯遠了，這一是個標準的高階雲端運用 Browserling (<a href="http://browserling.com/">http://browserling.com</a>)，它所要解決的問題就是上面所提到的，開發網頁時需要安裝各種瀏覽器來測試網頁，而這些都改由他們的雲端來提供，這是他們的介紹影片</p>
<p><iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/nsCWiBMcJlk" frameborder="0" allowFullScreen></iframe></p>
<p>他們提供了有限時間的免費使用，有興趣可以玩看看</p>
<p>雖然像這樣的服務其實還不太成熟，需求其實也有限，反應速度也有點差強人意，但是算是很有趣的應用，我個人覺得台灣的產業如果只是爭幾毛錢的硬體毛利，個人覺得不如多花一點心力在於這類高價值的應用服務，硬體有的摩爾定律，與其說是定律，不如說是詛咒，因為有了這條定律似乎不照著做就表示了硬體的極限到了，硬體再怎麼發展也會有物理上的限制，從近來的CPU設計就可以發現，都是朝多核心發展，連手機都有了雙核心的CPU，但其實多核心不代表效能就會立即提升，如果沒有軟體的配合是很難有顯著的改善，再者，有再強的運算能力硬體沒有軟體的功能事實上也沒有什麼用處</p>
<p>就像我所說的，這類的應用並不需要什麼上百億的投資，需要的就是創意 + 能力 + 執行力，像Browserling這樣的服務就只是兩個人合作之下的產品，台灣的開發者們可以多試著嘗試創造這類的服務，會失敗是必然的，但我想有了失敗的經驗，朝著這個方向走多少還是有機會成功</p>
<h2>站在使用者的角度想</h2>
<p>台灣常見的程式設計師都有個壞毛病，就是只顧著自己想怎樣使用軟體，想著要有強大的功能，但從來都沒有想過使用者到底會怎樣使用，台灣到處隨處可見糟糕到極點的可用性設計，看網頁的表單就知道了，一堆網頁不知道哪裡學來的風氣，總喜歡把一堆五四三的欄位加到會員註冊的表單裡，什麼已婚未婚、年收入多少，從來都沒想過使用者到底是怎樣的感覺，一個實際本身的體驗就是，最近一直收到中華電信的廣告簡訊騷擾，終於受不了想要停掉廣告簡訊，網路上找到的方法寫說要先註冊emome的會員才能取消，你一定想不到裡面有一個必填欄位是什麼，答案是</p>
<p><span style="font-size: x-large;"><strong>血型</strong></span></p>
<p>我的媽呀&#8230; 中華電信你們非知道我的血型不可是要做什麼!? 難道我哪如果天貧血暈倒你們要提供緊急手機定位輸血服務嗎? 這就是台灣的現況，台灣或許有技術可以做到某個功能，但就使用者經驗這方面真的還是很糟糕，常常會聽到某些人說 XXX也可以做到那個，標準的想法就是只在乎可不可以做到，從來都沒想過做到這些所需要付出什麼</p>
<h2>另一個沒有站在使用者角度思考的失敗實例</h2>
<p>還有一個很好的例子就是之前提到跟人家趕流行的Web3.0，可以參考這篇 <a href="http://wp.tenz.net/archives/231">吳昇老師的Web 3.0為何很特別</a> 或 <a href="http://wp.tenz.net/archives/231">吳昇老師的 web3.0</a>，雖然它的概念挺有趣的，大意是說Web2.0大多東西傳到那些網站像是Youtube，結果使用者本身一無所有，內容都被服務提供者綁架，透過他們建置的系統，使用者可以將那些內容放在本地端以P2P的方式分享出去，剛出來時我就有說這東西100%不會成功，為什麼不會成功? 很簡單的從使用者的角度來想就知道了，身為使用者我會很在意這些內容是否在本機端嗎? 完全沒有，使用者最在意的只是好不好用，能不能達到我的需要，說使用者的資料被綁架只是被迫害妄想式的想法而已，將原本的系統換成P2P內容留在本機，使用者到底得到了什麼? 什麼都沒有，這就是標準的只用自己的想法思考事情，而不站在使用者角度想的後果，當時還在網路上跟人爭論過，還有人覺得要愛用國貨之類的，說真的，這樣做只會讓爛東西也能生存下去，就好像為了支持國片去看朱延平導的爛片一樣，只會讓他們更爛而已</p>
<h2>Linux or Windows?</h2>
<p>還有另一種常見的情況是覺得Linux比Windows好之類的想法，我得坦白說我自己也曾有類似的想法，我使用Windows也用Linux跑server，但站在使用者的角度想就會發現，要使用者學那些東西是不可能的事情，說穿了兩種是導向不同的東西，就vim來說它是人去學機器，很難學，但一但學會用起來會很有效率，而另一種可能是Word，這就是以機器來貼近人的例子，撇開要不要錢的問題，一般的使用者肯定是選Word而不是vim + latex之類的鬼東西來寫文件。</p>
<h2>站在使用者的角度多想一分鐘，使用者會更喜歡你一些</h2>
<p>對於使用者經驗的認知，我得說大部份技術出身的人很多都沒這樣的觀念，我自己以前也是這樣，身為開發者，站在使用者的角度多想一分鐘，使用者會更喜歡你或你的軟體一些</p>
<h2>總結</h2>
<p>其實本來一開始只是想簡單地解紹Browserling，不小心就嘴砲了一堆，以上只是個人的小小想法，參考看看就好，不過我真的挺希望可以看見台灣軟體產業有所發展，最近在發展自己網站的過程中學到不少東西，有空的話可能會嘴砲幾篇來分享一下我的心得</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ez2learn.com/2011/01/23/cloud-service-browserling/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>作品集更新 : 幾何圖形繪圖以及手繪辨</title>
		<link>http://blog.ez2learn.com/2009/08/26/pysketch/</link>
		<comments>http://blog.ez2learn.com/2009/08/26/pysketch/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 12:44:18 +0000</pubDate>
		<dc:creator>victor</dc:creator>
				<category><![CDATA[中文文章]]></category>
		<category><![CDATA[作品]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[專案]]></category>
		<category><![CDATA[幾合圖形]]></category>
		<category><![CDATA[繪圖]]></category>
		<category><![CDATA[跨平臺]]></category>
		<category><![CDATA[軟體]]></category>
		<category><![CDATA[辨識]]></category>

		<guid isPermaLink="false">http://blog.ez2learn.com/?p=732</guid>
		<description><![CDATA[最近的一個案子終於算是結束了，簡單地介紹一下這個軟體，跨平臺的幾何圖形繪圖和手繪辨識的功能 可以用各種方式填色 不同的框線 每個物件都可以自由旋轉和變形以及位移 物件可以設定透明度 當然，這軟體是跨平臺的，這是在ubuntu下執行的畫面，原本當我在windows下寫完丟到ubuntu下執行，我猜想可能會遇到一些煩人的跨平台問題要解決，不過很順利地，一切就像在windows下一樣，wxPython看來真的是跨平臺的好選擇 接著是抓圖沒辦法展示的功能，手繪辨識和無限次數復原和重做，請看影片 手繪辨識是裡面最難寫的功能，讓我把我學過的數學都搬了出來，象皮擦的部份也是很複雜的運算，這整個軟體裡用到的幾乎都是線性代數的知識，我很自豪的一點就在於大部份我學過的東西都在實際應用上用得上]]></description>
			<content:encoded><![CDATA[<p>最近的一個案子終於算是結束了，簡單地介紹一下這個軟體，跨平臺的幾何圖形繪圖和手繪辨識的功能</p>
<p><a href="http://blog.ez2learn.com/wp-content/uploads/2009/08/pys_fill.png"><img class="alignnone size-medium wp-image-733" title="pys_fill" src="http://blog.ez2learn.com/wp-content/uploads/2009/08/pys_fill-300x234.png" alt="pys_fill" width="300" height="234" /></a></p>
<p>可以用各種方式填色</p>
<p><a href="http://blog.ez2learn.com/wp-content/uploads/2009/08/pys_frame.png"><img class="alignnone size-medium wp-image-734" title="pys_frame" src="http://blog.ez2learn.com/wp-content/uploads/2009/08/pys_frame-300x234.png" alt="pys_frame" width="300" height="234" /></a></p>
<p>不同的框線</p>
<p><a href="http://blog.ez2learn.com/wp-content/uploads/2009/08/pys_rotate.png"><img class="alignnone size-medium wp-image-735" title="pys_rotate" src="http://blog.ez2learn.com/wp-content/uploads/2009/08/pys_rotate-300x234.png" alt="pys_rotate" width="300" height="234" /></a></p>
<p>每個物件都可以自由旋轉和變形以及位移</p>
<p><a href="http://blog.ez2learn.com/wp-content/uploads/2009/08/pys_alpha.png"><img class="alignnone size-medium wp-image-736" title="pys_alpha" src="http://blog.ez2learn.com/wp-content/uploads/2009/08/pys_alpha-300x234.png" alt="pys_alpha" width="300" height="234" /></a></p>
<p>物件可以設定透明度</p>
<p><a href="http://blog.ez2learn.com/wp-content/uploads/2009/08/pys_linux.png"><img class="alignnone size-medium wp-image-737" title="pys_linux" src="http://blog.ez2learn.com/wp-content/uploads/2009/08/pys_linux-300x235.png" alt="pys_linux" width="300" height="235" /></a></p>
<p>當然，這軟體是跨平臺的，這是在ubuntu下執行的畫面，原本當我在windows下寫完丟到ubuntu下執行，我猜想可能會遇到一些煩人的跨平台問題要解決，不過很順利地，一切就像在windows下一樣，wxPython看來真的是跨平臺的好選擇</p>
<p>接著是抓圖沒辦法展示的功能，手繪辨識和無限次數復原和重做，請看影片<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/N4S0QR3fYs8&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/N4S0QR3fYs8&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>手繪辨識是裡面最難寫的功能，讓我把我學過的數學都搬了出來，象皮擦的部份也是很複雜的運算，這整個軟體裡用到的幾乎都是線性代數的知識，我很自豪的一點就在於大部份我學過的東西都在實際應用上用得上</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ez2learn.com/2009/08/26/pysketch/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

