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.....等等,不勝枚舉。
       最後他還向我們解釋多參加社群活定的重要性,因為這是向人介紹自己的最好機會,多認識一些人,就有更多機會拓展自己未來的出路。