2014年6月16日 星期一

Week 16 -- Arduino uno 開發體驗


這次的主題是 Arduino uno 開發板



         Arduino是個 open-source electronics prototyping platform,含有容易使用、擴充性強的硬體與軟體。所謂open-source開放源碼,意思是說 Arduino 的硬體電路設計圖是開放的,軟體原始碼也都是開放的;electronics代表說創作物是要吃電的;prototyping platform表示運用這套平台可以快速地建構出原型,打造產品。(以上介紹參考自這裡)
 
         Arduino 這塊版子最讓我印象深刻的是它的易用性。與其他版子不同,Arduino 非常適合初學者使用,做為開發版子的入門。而今天我們所使用的是 Arduino uno 系列。一開始講者先教我們怎麼安裝驅動程式和開發 Arduino 用的 IDE。Arduino 本身是用 C語言做為開發語言,但是強大的 IDE 卻可以讓開發者直接使用拉介面的方式去撰寫程式,個人認為這是 Arduino 之所以容易上手的關鍵。所謂"拉介面"的方式,可以參考下圖:


   
       可以看到左手邊有專人寫好的 module 擺在那邊,今天假設我想要讓程式重複執行某個動作 ( for loop ),那麼我只要將 "重複執行" 這個元件用拉的方式直接拉到右邊的開發介面即可,不需要自己設定 for 迴圈的變數之類的,而且重複執行的動作,就直接包在"重複執行"裡面即可,整個開發介面的設計相當圖形化及人性化,也難怪很多連程式都不會寫的初學者都選 Arduino 做為學習開發版子的入門。

         Arduino 另外一項優點就是它強大的擴充性。只要善加利用這點,Arduino可以變得很強大,像講者就展示了他用 Arduino 開發板去控制機器人行走。而我和另一位組員,也在強大的 IDE 加持下,開始體驗 Arduino 的強大。一開始先是發給了我們一根 LED 燈,可以亮紅綠藍三種顏色。我們利用控制 Timer 的方式,成功讓 LED 燈進行簡單的閃爍。

 


       接下來是讓我印象最深刻的。講者給了我們一組擴充裝置, 為一個 analog sensor, 讓我們可以透過裝置控制類比訊號。接下來,我們利用範例給的 Pong 遊戲程式,將擴充裝置應用在上面。一開始範例所給的 Pong 程式,是用滑鼠控制畫面中的棒子,去對球球進行碰撞的動作。而講者則是要我們透過擴充裝置,將控制類比訊號,並做一些數值的轉換,達到用擴充裝置的滾輪去控制遊戲中的棒子來遊玩 Pong (就跟 Pong 一開始發明的時候一樣!! )。我們最後不僅成功利用滾輪來遊玩遊戲,還惡搞性的將畫面中的棒子改成了糟糕物,玩起來格外有趣 XDD

小球在兩顆大球之前瘋狂抖動的畫面沒拍下來實在可惜(?

        不過這也讓我終於了解到電視遊樂器遊玩的原理,原來就是透過類似這樣的方式,截取類比或是數位的訊號,轉換數值,最後根據結果控制畫面裡各元素的移動,頗為有趣。

        接下來又發給了我們伺服機,一個有齒輪結構的東西,感覺可以用來控制機器人的行走? 總之也是蠻好玩的,我們最後結合前面的擴充裝置,達到利用滾輪控制伺服機的效果

         

     
       之後還有給我們按鈕的裝置,讓我們用按鈕實作一些不同的功能,總之讓我們玩得不亦樂乎,相當充實。

       經過這次的體驗之後深深覺得 Arduino 真的是好物,連我這種對開發版子毫無興趣的人都覺得好玩,有趣,可見其威力有多強大。個人深刻的體會到,要帶人入門一個領域,"容易上手"這點真的是不容忽視,因為容易上手,開發起來才方便,才會覺得簡單,有趣,之後才會有興趣進行更深入的研究,開發。 要是早一點接觸這種東西,搞不好現在的我就不會那麼排斥硬體了啊 ˊ_>ˋ



2014年6月6日 星期五

[社群] C4Lab -- OWASP (kuku)

5/21  C4 Lab的聚會請到的是資安界相當有名的 kuku 來跟我們介紹 OWASP 的東西, 對於資安具相當濃厚興趣的我是當然要去的。

畫面中舉手的是小畢學長 (Crboy)


       OWASP (Open Web Application Security Project) 是一個開放社群的非營利組織,致力於改善網站應用程式的安全性。而他們所提出的 OWASP Top 10 揭露常見的網站應用程式弱點,以供軟體開發安全參考。

       不過一開始kuku並沒有跟我們介紹 OWASP Top 10, 而是透過一些實際的例子, 先跟我們介紹一些在開發網站時, 有可能會遭受到的攻擊和弱點。

       一開始提到在撰寫原始碼時, 有時候編輯器會貼心的幫我們存取暫存檔(ex. Vim有時會幫你存取index.php.swp), 這時候如果利用 url 去存取這些原始碼的暫存檔, 就有可能看到網站的原始碼。其他像是開發網站時所作的備份壓縮檔, 或是當你利用 git 或是 svn 做版本控制時, git的隱藏資料夾 (.git) 有時候也會成為攻擊者入侵的途徑。其他方面, 像是 url 的網址解析和檔案名稱解析有時也會成為攻擊者的攻擊點 (像是在網址後面多加一個點, 就有辦法看到原始碼之類的), 使用 php , jsp 或是 asp 開發時都要注意這些問題。另外使用 python 開發時, 有時 .pyc檔 (byte-compiled, 中間程式碼檔) 也會成為偷看原始碼的攻擊途徑, 諸如此類的例子不勝枚舉。

       此外, kuku 也舉了一些業界的例子, 一個讓我印象比較深刻的是他們有一次發現一個網站有 PHP LFI 的漏洞, 又發現說這個網站在開發時所用的 editor 是 FCKEditor, 於是他們就利用 FCKEditor上傳的功能, 在一張圖片裡面塞進了 php 的語法, 再利用 LFI 的漏洞, 成功的執行了此語法。kuku 提到像這類的例子就是那種你用電腦絕對無法測出來的漏洞。你可能有辦法用電腦去偵測說對方是使用 FCKEditor 開發, 但是電腦無法將這個資訊跟 PHP LFI 漏洞結合在一起 (想一想還蠻恐怖的, 連 editor都有可能成為漏洞導致網站被攻擊...)

      介紹到這裡, kuku 總算開始介紹 OWASP Top 10 的東西。OWASP Top 10 就是在開發網站應用程式時, 最具風險, 最常發生的資安問題。

      A1 : Injection

      Injection不只是 SQL Injection, 像是OS shell也有可能會被 injection (command injection)。kuku 提到 Injection 已經存在了很久, 超過了15年, 但是至今仍然很常發生。kuku有提到建議是 "越早做字串的Filter, 越晚做字串escape "。

kuku針對Injection的解決辦法


     A2 : XSS (Cross-site scripting)

       XSS最常用的是用來偷 cookie, 也會被用來竊取 session, 或是對webpage進行rewrite,甚至是讓使用者在不知情的情況下發送request出去。說到這個不得不提以前曾在一個宗教網站的留言板惡搞,當時就是利用網站的 XSS 漏洞進行攻擊,至於詳細的手法和結果就略過吧 =w= 只知道最後漏洞有被發現並且修補起來了,也算是功德一件(?

    A3 : Broken authentication & session management

     簡單來說就是身分驗證機制沒做好,像是 session 沒清乾淨,或是該網站的密碼沒有做加密,以及回覆密碼機制沒有做完全等等,這些都會增加網站使用者的不便以及帳號被盜的可能性。

   A4 : 不安全的物件對應機制
     
    其實就是 server 上面的檔案路徑太容易被別人猜到,從網址上面下手,像是 download.php 就可以很容易猜到是用來下載檔案,進而推出 upload.php 是上傳檔案得頁面之類的。解決的辦法最好就是利用 hash 的方式去對應檔案名稱。
    
  A5 : CSRF (Cross Site Request Forgery)

   跨站請求偽造,簡單來說就是在發送一個偽造的request(即使 user 沒有意願這麼做)。下圖的說明頗為清楚:

來源 : link


解決的方式可以利用 SOP原則 ,cookie在設定時也可以設定 http only 特性,使得Javascript無法去讀寫cookie....等等

  A6 : Security Misconfiguration (安全設定不完全)

 網站的 server 安全性設定需要設好,不然駭客一攻擊 server 或是 server太好騙就糟糕了。解決方法像是可以設定 .htaccess 來保護主機下的目錄與檔案等等


  A7 : Insecure Cryptographic Storage (重要資料未加密儲存)

  將使用者的重要資料明文儲存在 server 上面可是相當危險的,要是洩漏出去可不是鬧著玩的。不過最近崛起(不如說捲土重來)的雲端硬碟服務 MEGA 採取了"將資料使用用戶密碼加密,並且不將用戶密碼存在server上面" 的全新管理機制,可說是幾近完美的解決了這個問題,唯一的缺點就是當用戶忘記或是遺失密碼時,MEGA 無法幫你找回密碼,也無法幫你解密檔案,等同於檔案全失(因為server上面沒有你的密碼)。


  A8 : Failure to Restrict URL Access (URL路徑限制不足)

   像是打個 ../../../../etc/passwd 就有辦法獲取密碼檔案之類的,server 上有很多目錄不是一般人可以進入的,如果這時候沒有做身分驗證的機制或是權限管理不慎,目錄很有可能就會被有心人士入侵。


  A9 : Insufficient Transport Layer Protection

   傳送資料時得保護不足,最有名的莫過於最近鬧得很大的 OpenSSL Heartbleed 漏洞。解決之道 ? 自己寫一個加密套件啊(誤


  A10 : Unvalidated Redirect and Forward (不安全的轉址)

  的確,從一些短網址的 url 來看確實看不出導到的網址是否式安全的網址,加上防毒軟體無法偵測短網址的安全性,造成很多人被廣告或是詐騙訊息所騙,一點短網址就中標了。


      OWASP Top 10 主要是針對 "網路"的應用程式安全做研究,今天並沒有聽到一些像是 Mobile 或是其他的資訊安全問題,感覺頗為可惜。

      還有一個我覺得很重要的一點,就是今天的演講沒有實作的部分。我覺得這也是很多探討資安議題的講者會忽略的一點,我甚至認為這也是在台灣資安領域人才過少的原因之一。像今天介紹的OWASP Top 10,都只有著重在"講"的部分,並沒有實作,讓在場的人親身經歷,體會這些資安問題的嚴重性,我真的覺得這是非常可惜的一點。如果往後的資安講習著重在時做的話,我想應該會激起更多人對於資安的興趣。當然 kuku 今天講得也很精彩,讓我學到了許多東西,只是因為一直講的關係導致後面體力不濟有點想睡覺 ~"~

     資訊安全一直是(至少對我們系所來說)時常會被忽略的對象之一,綜觀我們系所,只有一位教授有在做資訊安全,還是理論的密碼學派,有關於真正有在實作的駭客學派,就我所知是沒有的,這真的是很可惜的地方,因為其實資安也是可以很好玩的,自己本身因為興趣的關係,接觸了不少 Wargame 的網站 --- 一個駭客之間的遊戲網站,玩過之後所享受的樂趣是無法用言語來形容的,且還因此增加了不少資安的知識,可為一舉數得。只可惜系上基本上很少人在研究這個,之前想找人比金盾獎還得費一番心力去尋找隊友,讓我不禁感概,系上有ACM團隊,為什麼就沒有金盾軍團呢?
   
      然,這都是後話了。畢業後即將加入交大 DSNS Lab 的我,也只能寄望 C4 Lab 今後能夠在系上多多推廣這塊領域了.......

2014年5月20日 星期二

Week 13 -- FireFox OS

這次請到了成大資工100級的學長 EragonJ 來跟我們分享 Mozilla 工程師的生活,以及跟我們介紹Firefox OS和分享他自己的一些經歷。




        首先是 Firefox OS,學長一開始跟我們介紹了一下它的架構,包括OS其實就是瀏覽器本身,還有一些OS上的架構,像是 Gaia, Gecko, Gonk等等。之後就是跟我們介紹說如何開發一個 firefox web app。首先要裝好 simulator 之後, 進到這個網頁 開始打造自己的app
        開發的方式頗為新奇,尤其是訊息流的部分讓我感到很新鮮,以下是簡單的示範

       

        綠色的 click me式按鈕,按了之後會從藍色的訊息流發送一個類似訊號的東西,而其他的元件也可以將藍色的訊息流當作是 input stream, 做為觸發自己的條件,上面是以按按鈕就放煙火為例子。當天花了幾分鐘做了一個跟上圖類似的 app, 還蠻好玩的。

        之後學長開始介紹 Mozilla 工程師的生活。學長自己犇紳是負責開發 Gaia 的部分,所以他就開始介紹一些開發上的經歷,像是使用 Github 來做為版本控制工具,開放原始碼,有人有問題都可以利用 Github上的留言區討論等,然後 Bug 的回報則是利用 Bugzilla 來做。審核code的時候頗為嚴格,一次會有好幾個人做 review, 只有當全部的人都說 ok 的時候才可以正式的將 code整合進 Project 裡面。聽到這裡深深覺得許多優秀的產品果然不是隨隨便便就可以開發完畢的,都是必須經過嚴格的審核才可以發佈。

        最後學長分享了他自己在大學的故事,像是第一次參加社群,怎樣因為參加了哪些活動,做過了哪些事,而影響到了他後面的一生。聽到這裡深深感到認同,因為我也一樣,很多的契機和機會都存在我們身邊,主要是看你能不能夠把握機會去爭取,有時候因為一個決定就有可能影響到往後幾年的人生,實在是很化學。

        還是那句話,好好把握當下,做自己喜歡的事,追求自己喜歡的事物,人生才會有意義。不要虛度光陰啊~

2014年5月9日 星期五

Week 12 -- Mozilla

這次請到了同樣是成大的學長 Irvin 來跟我們介紹Mozilla這個組織。



         Mozilla是一個自由軟體社群,  Mozilla使用、開發、推廣和支援Mozilla專案產品,從而促進和推動自由軟體和開放標準發展。除了Firefox網頁瀏覽器,相關產品還有Mozilla Thunderbird、Firefox OS 等專案。
      
          Irvin 透過播放影片的方式,來帶我們去認識 Mozilla 這個組織, 在影片中我們看到了來自世界各地,各式各樣的人。每個人都懷抱者同樣的理想,就是為了讓這個世界的網路服務更加美好,  進而成為了 Mozillian, 貢獻自己的心力。Mozilla 一開始是因為 Netscape 在瀏覽器大戰中輸給微軟的 IE 之後成立的。到了今天也超過了15年, 到現在連在南極都有 Mozilla 的社群 (在南極 Firefox的市占率高達99%, 頗為有趣)。

          之後 Irvin 又放了幾個短片給大家看, 除了有 Mozilla 在設計瀏覽器時有注意到什麼樣的問題和使用者需求, 到最近幾年頗夯的網路隱私問題。令我印象比較深刻的是 collusion 那段。主要的內容還是網路隱私, 影片中當時 Mozilla 的 CEO 利用一個叫做 collusion 的套件去調查哪些網站正在追蹤他的網路活動,結果短短一天就有超過100個網站正在追蹤他的網路行為,許多網站他甚至根本沒有造訪過。他認為這是一個相當嚴重的問題。而到了去年,Edward Snowden 又披露了稜鏡計畫, 接露美國政府透過向特定的網站服務收取網路行動報告,監控人民的網路行動,讓網路隱私又再度成為焦點。而這其中, Mozilla 因為相當注重使用者隱私的問題,也因此是少數完全沒有受到影響的組織。

         Irvin 最後提到 Mozilla 身為一個發展繁榮的自由軟體社群組織, 時常有許多活動在舉辦, Irvin它最樂在其中的是可以到處交一些志同道合的朋友。重點還是去多認識人, 多多貢獻, 讓這個世界的網路變得更美好。這是 Mozilla 這個組織的精神,也是宗旨。



2014年5月2日 星期五

Week 11 -- OSM ( Open Street Map )

這學期請到了對 Open Street Map 有研究的劉先生來跟我們介紹Open  Street Map (OSM)


         OSM 是一個能夠透過網路協作的方式來製作地圖的服務。劉先生說傳統製作地圖的方是很麻煩,要動用許多的人力,而OSM則是開創出了一種新的思維,可以讓人透過網路協作的方式來製作地圖。
       
         劉先生還介紹了OSM的社群(mailing list, wiki....),以及一些協作的方式,像是Yahoo和微軟(就是一些企業)都會提供一些空照圖,然後世界各地的人化身為"圖客"(mapper),利用一些特定的工具來製作地圖。另外劉先生也提到授權的重要性,像是地圖的資料是採取ODbL的方式進行授權,可自由複製,散佈,傳輸及修改(須標明作者),另外圖片的話則是採 CC-BY-SA。
       
        之後就開始介紹使用OSM的益處,以及OSM幫助人們的例子,印象較深刻的是海地地震那段。當時因為海地政府不夠力,導致當地地圖老舊,資訊不完全,造成救災上的困難。於是就有一群善心人士,發起繪製OSM,以幫助其他人進行救災的工作。
       
        另外就是OSM是採open source的方式運作,所以在散步或是其他的地方都很方便(因為幾乎不用錢)。
         
         最後劉先生還帶了我們學習如何做OSM,感覺頗新鮮,做完之後覺得可以介紹一些學地理的人認識這套好用的東西。


2014年4月23日 星期三

[社群] C4Lab -- 你聽過PHP嗎?

今天算是我第一次參加這種社群吧, 上課的時候小畢學長 CrBoy 就有來宣傳了,所以這次就抱著嘗試的心情去聽一下 , 沒想到收穫還挺多的。


        首先學長當然就是先簡述一下PHP的歷史,其中也有提到因為 PHP 是根據 C 和 Perl 這兩種語言演化而來的,所以在語法上都可以看到這兩種語言的影子。不過也因為如此,學長認為這使得 PHP 的語法頗為醜陋 = =

        接下來學長開始介紹 PHP 版本的演進,也順便婊了一堆 PHP 有的毛病,像是內建 Web server 的功能 (太晚加入這個功能了) ,或是一些物件導向的功能 (後面的版本在支援物件導向方面才有較高的完整性),還有一些落後的內建函式 (像是 magic_quote , 下一版要砍掉了) ...等等,很多東西很久以前就要改進了,但是 PHP 硬是拖了一段很長的時間才改進,學長說現在來講的話 PHP 5.4 才是比較穩定且進步的版本,但是聽說 Ubuntu 目前內建的還是 PHP 5.3 的版本(學長一直很討厭5.3版的樣子 XD 因為問題實在很多....)

        不過這段令我印象深刻的是內建 web server 那段。其實不只 PHP, 其他像是 Python, Ruby等等,都有內建 web server 的功能。所謂的內建 web server, 就是你不必再安裝像是 Apache server 之類的 web server 軟體,你就直接下個簡單的指令,就可以開啟一個簡單的 web server 了。像是 PHP 的話你只要下個 php -S localhost:8080 指令,就可以在本機端開啟一個 web server , 使用者只要從 port 8080 連進來就可以了,路徑的話,則是 server 端下指令時所在的那個路徑。所以假設我想分享一個檔案給我的朋友,我就先建一個資料夾,然後把檔案丟進去(可以的話順便在那個資料夾裡面建立一個 index.php ),之後我只要先 cd 進那個資料夾,再下 php -S 的指令,我的朋友就可以透過瀏覽器直接電腦去下載那個檔案,相當的方便。python 也有相關的指令,語法為 python -m SimpleHTTPServer。下完指令後會告訴你是使用哪個 port, 之後也是直接連進來即可。不過學長也說這個功能直到 PHP 5.4 才有,讓他覺得很不爽XDDD。

        不過婊得這麼兇,學長提到其實 PHP 還是有很多優點的,像是 traits ( 一種混合class的功能,不過似乎是抄Ruby的0.0 ) ,還有一些好用的 Functional Programming, 像是 map, reduce, join, filter...等等,都相當的方便,雖然 API 的格式不一致整體而言都算是相當好用的東西。

        最後學長介紹了兩種 PHP 的 Web framework, Codelgniter 和 Laravel,說我們如果要用 PHP 寫可以用用看這兩個框架,聽說都還蠻火紅的。其實以前一直不是很懂 Web framework 是什麼東西,經過學長解釋之後,回去也查了一下資料,總算比較清楚一點了。簡單來說,web framework 就是一個特定的模型,框架,讓你比較方便去開發一個網站。而像是 Codelgniter 這種 web framework,就是一個工具包,裡面很多東西都已經定義好了,像是怎麼跟進行溝通等等,都已經有人幫你好了你只要拿來用就好,這麼一來使用 PHP 開發網站就快速許多。這我想到我做專題的時候跟組員們都是老老實實的用LAMP架構去開發,所有的東西幾乎都自己刻,現在想想當時要是有好好熟悉 web framework 的話就不會這麼辛苦了 = =

        參與這次的聚會真的讓我學到了許多東西。我自己本身也是有開發過 PHP 的經驗,但是聽了這次的 talk 之後發現原來還有這麼多有趣的事是我沒聽過的。看來以後要多參加這種類型的聚會,搞不好之後能夠學到更多意想不到的東西。


參考資料:Ruby on Rails 簡介 (內有 web framework 的說明 )



2014年4月18日 星期五

[作業] 資訊、社群與這次的太陽花學運

         2014/03/18 ~ 2014/04/10,全台灣發生了一件大事,就是反服貿的太陽花學運。這是 1990 年野百合學運之後最大的學運,也在台灣的民主史上留下了無可抹滅的一頁。不過跟野百合學運事隔20多年,學運所使用的工具早已大不相同。這次我們就看到各式數位工具和資訊社群扮演著重大角色。而這些資訊社群中,最重要的就是g0v--零時政府團體了。   
   

         身為一個志在寫程式改造社會的資訊社群,g0v團隊在這次的學運扮演了極為關鍵的角色。最重要的就是他們建造了一個開放式的網路即時轉播平台,讓大家都可以透過網路來關心這次的學運,而不再是透過公信力早已蕩然無存的電視媒體。
         
         g0v使用了 Hackfoldr  來架構整個網路轉播平台。Hackfoldr是由 g0v 自製的建立目錄/入口服務,將許多共筆服務(ex. Google doc, Hackpad....) 給整合起來,並且加入了媒體影音播放區,即時轉播現場畫面。

Hackfoldr的介面



         文字轉播的部分,是由網友透過共筆服務 Hackpad 來進行。透過雲端共同編輯的方式,來告訴全台灣人民最新的現場狀況。這期間 Hackpad 還數度因為流量太大的關係,造成伺服器連線不穩,但身為國外廠商的 Hackpad 依然超有義氣的提升伺服器的承載量,繼續提供服務,一整個感動!!

網友透過 Hackpad 現場文字轉播


 Hackpad 的意氣相挺。截自本人的twitter帳號
       
         另外這次 g0v 也利用了不少Google的相關服務,例如使用 Google doc 來分享人力物資需求,將眾多資源整合在一起。至於現場轉播的部分,則是透過 Google Hangout 結合 YouTube Live 的服務,嵌入在網頁之中(之後也有使用過 Ustream )。透過現場實況主 iPad ,將現場情形發送到全國各個角落。此外, g0v 還提供了Google map 的地圖服務,來提供想要過去幫忙的人一些地理上的資訊。

現場直播的背後,其實除了靠 iPad + 室內拖鞋之外,先進的網路服務也是一項很重要的推手
           
          除了 g0v 之外,現代的網路社群媒體服務也是扮演了相當重要的角色。這次的太陽花學運,台灣使用率最高的社群網站 Facebook 成為了重要的消息來源,期間關於學運的動態不計其數,許多人的塗鴉牆被瘋狂洗版,說明了社群網站在消息來源上正逐漸取代平面媒體(尤其是在台灣這種媒體多為腦殘的環境下著為明顯)。至於國外方面,則是利用外國人較常使用的 Twitter 作為消息的發送平台,期間許多在海外的學生都常常利用 Twitter 發送有關於學運的消息,"Taiwan" 這個關鍵字甚至成為全球熱門的搜尋關鍵字第一名 (沒有截到圖真是可惜,但是在流行趨勢一欄 ,"#Taiwan" 真的是位居第一位 )。此外也有人在 Tumblr 上進行資訊彙整,將反服貿事件相關資訊公開在網誌上。也有人將現場拍的照片上傳到 Flickr ,然後分享到 Facebook 和 Twitter上面,這些都再再顯示出社群網站在現代的社會中,扮演著多麼重要的角色,因為它們讓資訊傳播變得極為方便,也讓資訊傳播變得如此迅速。

     
Twitter上有關太陽花學運的資訊

有人用Tumblr整裡反服貿資訊

有人上傳照片到flickr並分享到其他社群網站


        這次的學運,讓我深深的體會到現在資訊科技的重要性。不管是 g0v 利用各種技術,來建造即時網路傳播平台,或是網友利用各種網路服務,來關心這次的學運,都顯示出如果沒有這些東西。恐怕我們都還在被媒體所操控吧,唯有親眼看見,才有辦法知道事情的真相。另外社群網站也扮演了關鍵的角色,自從網路發展以來,經歷各式網站、部落格大幅發展,逐漸邁向 Twitter、Facebook 等各式社交網路興起,再加上智慧型手機和平板電腦的普及,造就了現在更為多元的訊息管道,大家也都有能力發佈消息。綜觀近年來各種大小國際事件,幾乎都是立即在社群網站擴散開來,已成為新媒體的姿態。

        誰說我們是草莓,即便每個人的能力都有所不同,我們還是有辦法靠著自己的專長,為這個社會做出一點貢獻。哪怕只是一點點,累積起來的量也會是很可觀的。
     
        最後

        天佑台灣

        不解釋

2014年4月17日 星期四

Week 9 -- 3D印表機

3D Printer是一種可以把3D檔案給「輸出」的機器,只要運用市面上通用的AutoCAD、ProE、Sketch up等軟體建立三維模型,經開源程式(如Slic3r)轉檔,3D印表機就能幫你印出來設計的成品。這次的講師是蔡富吉先生(3D印表機自造全書(3D Printer DIY):初學就可以動手裝的作者。)

聽完之後覺得3D印表機真的很方便,以前製作模型還需要透過許多繁瑣的製程,有了3D印表機之後就不一樣了,只要透過一些軟體在電腦上製作模型,之後只要交給3D印表機進行印出,一個完整的模型就製作好了,而且完整度可能還會比自己用手做還要好。

不過令我感當意外的是原來3D印表機還可以自己DIY做一個,以往我都認為這種產品都需要交給特定的廠商去做,沒想到利用一些open source的東西,靜也能夠自己製造出一台3D印表機,這又證明了open source真的是個造福世界的好物。

印象深刻的還有一句"之後戰場上只要帶材料跟印表機,去前線的時候再把槍彈印出來就好了",這個到是有點扯,不過如果有一天科技真的有辦法發展到這一步的話,我想到時候戰場上肯定會有更多的變化,搞不好甚至有製造出無限彈匣的可能性。



2014年4月15日 星期二

Week 8 -- 胖卡


今天來講的AJ是義守資管系畢業的人,他和一群人組成了所謂的胖卡團隊

        所謂的胖卡團隊,是指一群資訊阿宅,利用自己所擁有的資源,去幫助一些比較沒接觸過現代電腦科技的人們,例如一些深山村莊的居民(多為年紀比較大的人)。

載著電腦與阿宅的戰鬥卡車


       至於幫助的方法有很多,不過大都是教他們如何是用一些現代電腦科技產品,像是youtube(不過如果網速悲劇的話這個也會悲劇,我還真想不到到現在還有人在用撥接上網),或是一些社群網站(ex.Facebook),或是一些攝影的東西(ex. Picasa)....等等。每到一個地方,他們就會去試著了解當地的居民需要一些什麼東西,他們就會就手上現有的資源進行教學,協助。印象比較深刻的就是視訊,當他們教導當地的人利用視訊和家人聯絡的時候,就我們看來沒什麼的東西,在他們眼中卻是相當的驚奇,之後還為了答謝他們寫了一首歌唱給他們聽。有時候還是會感到震撼,在我們眼中平白無奇的東西,技術,有時在別人的眼裡卻是一項不可思議的玩物。

        這就是所謂的數位落差,尤其式在台灣貧富差距甚大的社會裡,並不是人人都有一台智慧型手機,人人都有一台個人電腦。除了錢財的問題之外,有時觀念的不同也是造成數位落差的原因。像是有一些老人不願意學習新的事物等等,或是年紀大的人在學習上有些困難之類的,不勝枚舉。所以像胖卡這樣的團隊其實很偉大,願意不遺餘力,犧牲自己的時間去幫助這些人,真的是很有心。

       不過有的時候還是得尊重別人學習的意願,AJ也有提到強加在別人身上的善其實是很不好的,雖然在心理上會有所不認同,但畢竟一粒米飼百樣人,有些人就是喜歡用落後的東西,有些人就是喜歡追求最新的事物,真是無可避免的,也沒有誰對誰錯的問題,畢竟之後如果遇到什麼樣的困難都必須自己承擔,自己選擇的後果自己負責,你就走你的陽關大道,我走我的獨木橋。

      只可惜現在這個社會上還是很少人能夠體會這個道理。















2014年4月7日 星期一

[作業]Week 6 -- ezgo 11

這次又請到了Week4有來演講過的Eric來跟我們介紹ezgo這個作業系統

         ezgo是為了推動校園自由軟體而開發出來的一個作業系統,這個作業系統是基於Kubuntu來開發的(ubuntu搭配KDE的桌面),裡面有相當多的教學用自由軟體,用起來也相當的順手,方便。不過在體驗ezgo之前,Eric也有提到一些新手在安裝Linux時所會遇到的問題,像是進入bios調開機順序,或是進行磁區分割等等,Win 8的使用者還有UEFI的問題,這些都是相當麻煩的。也因此,Eric首先要我們用瀏覽器,先雲端體驗一下ezgo這個作業系統。首先進入ezgo的網頁後,點選雲端體驗,便會看到有許多的"位子"讓你挑選進入ezgo的世界


         隨便點一台電腦進去就可以直接進行雲端體驗了,不過因為網路的關係以及一些技術上的不成熟,使用的時候是一定會lag的(而且頗嚴重)
       
     
        不過即使如此我覺得這樣子用已經很不簡單了,可以讓使用者直接利用瀏覽器去無痛體驗一個作業系統,不需要安裝也不需要擔心電腦會被自己搞壞,真的是很方便,如果能夠解決lag的問題我想未來一定大有可為。
        不過畢竟是資工人,所以Eric之後還是讓我們使用Live CD直接進行ezgo的體驗。一開始我的光碟機還打不開,要用摳的才有辦法摳出來,真是淫蕩(?

        有興趣想學學看如何灌雙系統的可以參考我個人網誌的文章,基本上跟安裝ezgo時大同小異:
        [知識+紀錄] Win7 + Linux Mint 14.1 雙系統安裝實錄

       調完bios之後開機,一進入ezgo的作業系統就有一股熟悉的感覺,這個作業系統基本上跟一般的Linux差不多,已經有許多教學用的自由軟體都已經先裝好了,不過仍有一些軟體系統沒有幫我們安裝,要我們自己上網下載後自行安裝。為什麼會這樣呢?Eric解釋到這是因為有些軟體是免費軟體,但是它們不是自由軟體。既然不是自由軟體,就沒有散佈的自由,這也是為什麼一開始系統沒有幫我們裝那些軟體的原因。
        不過撇開這點不談,ezgo仍然是個相當不錯的作業系統,除了許多軟體都幫我們先裝好了之外,全面的繁體中文化也是一大特點之一,讓我們台灣人可以馬上就可以上手使用。比較讓我印象深刻的是他的terminal, 用起來相當順手,程式開發員會用到的一些工具都已經先幫我們裝好了,像是vim, gcc, g++, jdk & jre, python....等等,要什麼有什麼,真的是很方便。除此之外還有小遊戲可以玩,娛樂性完全不輸市售的Windows和Ubuntu自己內建的小遊戲。
        此外,ezgo的Live CD還可以直接進行磁碟分割+安裝ezgo,不用先在Windows上進行磁碟分割,還有可以自行設置桌面,連檔案系統都有人開發套件,供使用者自行安裝,打造客製化的作業系統,這些都是相當好的功能。
        總而言之,ezgo是一個相當適合教學,學習用的作業系統。很多學校的電腦教室裡面的電腦硬體設備都不足,如果這個時候又硬要灌Win7, 通常就會跑不動,既不好用又花錢。如果這個時候可以善加利用ezgo這套輕便又強大的作業系統,不但可以跑得流暢,又免錢,裡面又有許多好用教學軟體可以用來學習,真的是一舉數得。
        最後附上ezgo的連結及教學講義,有興趣的可以試試看,體驗一下自由軟體的強大。ezgo真的是一個很不錯的作業系統,誠心推薦給大家!

         link: http://ezgo.westart.tw/ezgo11/
         tutorial: http://ppt.cc/LGpH





Week 5 -- 社群經驗&工作經驗的連結

這次的演講請到了2個人 , 一位是 Study Area的創辦人Netman, 另外一位是Richard(本名林旅強)

        第一位的Netman為Study Area的創辦人 , 他首先跟我分享了一下他自己本身的經歷 ,  包括如何從Windows(實際上為NT) 跳槽到 Linux 的過程等等。聽完之後真的覺得他很不簡單,因為他自己是快30歲的時候才開始接觸電腦 , 他在學習電腦的同時還得工作 , 但是他靠著自己規劃時間努力學習,竟也學得了一身的本領。他也提到 , Linux比起NT能夠學到更多電腦的知識 , 因為你在解決問題的過程中可以做比較深入的學習 , 了解到程式是怎麼解決問題的 , 而不是一直無腦得按下一步。
        當然在學習的過程中也不是完全靠自學,這時候他開始接觸到了台灣的社群。之後他也開始聯合一群人 , 成立了Study Area。一開始還經費的不足,導致台南的第一次社群聚會是在億載金城舉辦的,頗為有趣。之後他又分享了一些自己在經營社群時所遇到的困難 , 像是人多口雜的問題(溝通的重要性) , 以及一些金錢上或是演講上(過濾分享內容)的問題等等 , 可以看到要經營管理一個社群 , 是需要耗費相當的心力的。不過在這也學到了很多東西,建立了人脈,從而讓自己有更多的機會發展,也算是一種收穫。



        第二位則是強哥Richard(林旅強 ,  legist)。他首先也是先介紹了一下自己的經歷。 Richard也是在自由軟體界相當的活躍。他分享的東西算是比較雜的。
        首先他先介紹了一下免費軟體的一些問題。像是他舉了一個我童年時常玩(靠我超弱一直得不了分)的小遊戲 -- 皮卡丘打排球。他說現在皮卡丘打排球他找不到沒有毒的版本 , 就是因為皮卡丘排球免費軟體導致大家下載完之後就開始亂改,加木馬啥的,導致現在沒有一個正常的版本。之後他又拿自由軟體跟免費軟體做比較,他提到因為自由軟體是open source所以不容易發生此類的問題(因為大家都在看)。之後他開始介紹自由軟體的起源 , 說到這個就不得不提起Richard Stallman這個人。因為他認為程式碼也要有自由,所以創立了GNU, 制定了GPL,規範了自由軟體及程式接收人所具有的權利,確保了程式碼的自由,間接帶動了世界的進步。值得注意的是自由軟體和public domain並不相同,所謂的自由軟體是作者授給其他人用,作者仍對該作品擁有著作權,而public domain則是直接放棄該的著作權。
       之後Richard又介紹了一些資訊人常用的工具,像是溝通方式有所謂的mailing list, IRC, Line(不過Line到現在都還沒有Linux版本,網頁版又被撤掉,個人覺得相當的不方便)。code repository則有著名的github, 我自己本身則還有在用pastebin。協作文件的話則有google document, 另外還有hackpad。此外,他還向我們介紹了許多的社群集會,像是MOSUT, Py.tainan, MOPCON, hackathon, TOSSUG, COSCUP,MOPCON.....等等,不勝枚舉。
       最後他還向我們解釋多參加社群活定的重要性,因為這是向人介紹自己的最好機會,多認識一些人,就有更多機會拓展自己未來的出路。



2014年3月14日 星期五

Week 4 -- 從挪威行看自由軟體的應用

         這次的演講請到了教育部自由軟體應用諮詢中心的Eric來跟我們介紹自由軟體在教育上的應用。一開始他從大約四年前的一場去挪威參訪的旅途說起。挪威物價高(一瓶可樂要12X台幣是哪招XDD),但是人類發展指數卻是全球第一名,就讓我們來看一下全世界最先進國家的教學方法。
         Eric透過一張張的照片來跟我們講解他去參訪挪威中學數學課的經歷。跟台灣不同,挪威的數學課是在電腦教室上的。老師們利用電腦軟體來教導學生,數學課時所使用的軟體是Geogebra ,一個相當好用的自由軟體。老師利用動畫的方式,教導學生三角形外心的概念。一看Eric模擬當時的教學方式時,除了讚嘆這種簡單易懂又先進的教學方法之外,也不禁為了我以前沒有體驗過這種教學方式而感到可惜。要是以前用這種方式來學習,學習效率肯定很高,數學也不會像現在這麼爛了~"~。
        另外Eric也提到挪威那邊電腦教室裡的電腦,裝了一百多種教學軟體,而且都是以前沒聽過的那種。最主要的原因是因為很多軟體都沒有中文化的版本,所以Eric也提到中文化這件事情是很重要的,只有這樣才可以降低與國際之間的數位落差。另外也有看到Geogebra有眾多的版本,像是Linux, MAC OSX等等,不像許多只有Windows版本的軟體。因此Eric也說打破印象的限制也是很重要的一點,明明有很多自由軟體既方便又好用,又不用錢,但是在台灣因為太多人只接觸Windows,導致很多好用的軟體都沒聽過,只會花大筆大筆的錢去裝一些Windows only的軟體,實在是很可惜。
         之後Eric還介紹了許多教學用的自由軟體,像是學習天文用的Stellarium,或是數位學習網站PhET 等等,都對教學上有著很大的幫助。最後還介紹了ezgo11的作業系統,裡面就有內建了大量的教學用自由軟體,完全免費,要是台灣的教師們能夠善用這套作業系統,對台灣的教育真的會是一大福音啊(當然願不願意學習&改變又是另外一回事啦呵呵)
         其實不只是教育方面,其他許多好用的工具也是自由軟體,像是著名的Mozilla Firefox瀏覽器 ,螢幕錄製軟體SimpleScreenRecorder (<--印象最深刻,Windows的螢幕錄製軟體一堆都要錢而且又爛,這個不但免費而且超級好用),LibreOffice系列,影音播放軟體VLC,即時通訊軟體Pidgin,郵件軟體Thunderbird等等......太多太多了,不勝枚舉,這些軟體都相當好用,而且完全免費。
         自由軟體的世界是很廣的,裡面不乏許多好物,就等著我們去發掘而已。
         功能強大又免費,好軟體不用嗎?




     

2014年3月10日 星期一

Week 3 -- Open Source from Legend, Business, to Ecosystem (jserv)



投影片 : http://www.slideshare.net/jserv/opensource-ecosystem

         這次請到了強者學長jserv來跟我們分享一些 open source 的東西。
首先他先介紹了open source一些優點,像是你可以利用open source開放原始碼的特性,對project按照自己喜歡的樣子進行修改之類的,非常方便。最近在FB看到了jserv分享了一部影片,內容就是在講這個。




不僅如此, jserv還提到了一個例子。全台灣哪個縣市的小學,使用Linux的比率是最高的呢?
答案是花蓮縣。東台灣的資源比較不足,使用的電腦也比較老舊,根本跑不動像是win7這種比較需要高階硬體資源的作業系統。不過有了jserv和PCMAN大大2人就一起開發的LXDE桌面環境,再搭配Linux的作業系統(完全不用錢!),就這樣讓這些舊電腦成為了有用的教學工具。

之後jserv講到了一個重點: open source到底要如何賺錢呢?

"與其探討 open source 的獲利模式,不如先檢視整體環境的變化"

電子資訊科技產業變化的速度太快,以致於每一間公司都得想辦法不斷的進化,才不會被時代給淘汰掉。jserv提到像是Google, Facebook, Amazon等軟體公司,無不是卯足了勁在搞硬體,原因無他,無非就是要適應演化。以前的年代,可能有辦法寫個遊戲,或是寫個什麼軟體就能夠發一筆橫財,但是那個時代畢竟已經過去了,唯有軟硬兼施,才能夠在這個時代生存。

1+1等於多少呢?
普通人會回答2
數學家會證明1+1=2
物理學家會先詢問單位
而會計師,則會問你"你想等於多少?"

這個笑話只是jserv舉的例子,卻可以對應到普通軟體與開源軟體(open source software)的差異性。

普通的軟體,就只是可以讓你"用",你要是會用的話,可能就會使你在生活上或是工作上更為便利。但是開源軟體,卻擁有著"你想等於多少"的價值,只要你會修改,會開發,並拿來跟硬體結合,就可以變成你所想要的"值"。

使用open source來開發,除了成本大為降低,且可以提供一個高度可見的協作框架之外,最重要的就是能夠刺激軟體的進步與發展,大家一起看,一起改,效果當然比關起門來自己研究還要好。這也是為什麼我們可以看到有公司互為競爭對手,卻在open source的開發上面有著緊密合作的原因。


"預測未來的最佳方式就是去創造它"
                                                         電腦科學家Alan Kay

"船停在港灣裡是最安全的,但是那不是船存在的目的"
                                                        – Grace Hopper

參與open source除了可以磨練自己,最重要的是有機會去改變這個世界,像是android,你在它的作業系統裡面寫個一行程式碼,就等於是有9億多個使用者在享受你的服務,或是Mozilla Firefox和Google Chrome,或是各個Linux作業系統........


"我並不認識你,但是我謝謝你"


看來open source比我想像中的還要強大









2014年3月3日 星期一

Week 2 -- 航向大海的旅程

        這週的演講請到了在自由軟體社群界中相當活躍的Max來我們分享一下他參與國際社群的經驗談。Max他自己本身是有參加一些GNOME和OpenSUSE的自由軟體社群組織,也經常往國外跑,去參加一些社群的相關活動,看到他那些參加活動的照片之後覺得他過得真的是蠻充實的XD不過也很好奇他那些出去玩的錢和時間都是從哪裡擠出來的@@?

        之後Max還跟我們介紹了一些好用的工具,像是Google論壇,IRC,IFTTT等等,Google論壇和IRC基本上就是跟人聊天和討論東西時使用(社群),  IFTTT則是一個網站,裡面有許多好用的工具,讓我們在接收資訊時可以更方便(當然還有其他工具)

        最後就是g0v零時政府的介紹了,之前一直有在網路上聽到g0v這個名稱,可是一直不知道他們到底是在做些什麼東西。聽完介紹之後才知道原來他們是一群人想要寫程式來改變世界,他們開發許多工具來解決政府無法幫他們解決,或是他們覺得自己比政府更有辦法解決的問題(因為不爽才做)。不得不感嘆政府的無能,高手在民間的卻總是乏人問津,用人都用在錯的地方,台灣會落後一堆國家不是沒有道理的。最近看到了科技部架設的網站,我想這一群不爽的程式設計師應該又要開始手癢了吧。

        另外還提到了駭客松(Hackathon)。一群來自不同背景的人群聚在一起,集思廣益開發出一個好用的資訊產品。個人覺得這個活動還蠻有意義的,不僅可以測試自己的程式能力,還可以認識許多不同領域的人,不管是對自身的程式能力還是對未來的出路都很有幫助。改天如果有機會去看看好了,應該會蠻有趣的。

        聽完以後讓我深深覺得,身處在資訊產業裡真的無法單打獨鬥 ,多認識一些朋友,搞不好幾年之後他會成為你重要的夥伴也說不定。
 
講者Max: