2014年11月21日 星期五

[2014/11/21] 自由軟體課程上課筆記 -- OpenStreetMap

這次的主題是OpenStreetMap
一開始是講師李昕迪來為我們做介紹
她是個自由軟體愛好者
只要能使用自由軟體就盡量使用自由軟體
附上她的ppt網址:
http://mcdlee.github.io/20141121_NCKU/

OpenStreetMap(簡稱OSM)是Wiki-style的map
大家都可以有貢獻都可以修改
但也因此有可能會有人來亂(例如在地圖上標註"我家"或亂塗鴉)
雖然如此
但基本上修改的紀錄都是有跡可循的
而且任何人也都可以將錯誤的資訊修正
且因為將畫地圖的權利下放
更多人可以幫忙完善地圖的資訊
使得資料可以更加完備
除此之外
資料也不用一定要蒐集到十全十美
不足處可以交由後人補齊
Release early, release often.是有益於地理資訊這領域的

OSM應用:
Wheelmap.org
素食地圖

第一堂課小結語:
其實open source 並不是 against 商業軟體的
兩者關係應是良性的互動



後半堂的課程主要是在示範如何編輯OSM
並且由同學來實際操作
講師提到"使用者體驗"是非常重要的一件事
讓使用者覺得易上手的軟體才容易獲得大家的欽賴
Ex:
1.第四個點鄰近第一個點自動黏合
2.四個點 -> 自動轉化成圓





在實作OSM時有遇到一些小問題
記錄如下:

1.要為某地增加一項地理資訊時找不到適合的對應英文詞彙(ex:加水站)
Solution:
參考以下網址:
https://osmtw.hackpad.com/tag-RmL5fQsiMGp

2.地圖沒有馬上更新屬正常現象,因為新增的資訊在出現之前要先經過一些運算,全球跑一次下來,短則3~4個小時,長則1~4天,新的資訊才會出現在地圖上

3.要編輯地圖時,若路線沒有立刻出現,則重新整理(F5)
(有可能是網路的問題,多重新整理幾次就好了)




上圖為我修改地圖成功後的截圖


第二堂課小結語:
找到巨人,然後爬上他的肩膀







2014年11月14日 星期五

[2014/11/14] 自由軟體課程上課筆記 -- ezgo與軟體國際化

今天Frank主要談論兩個主題:
1.軟體國際化
2.ezgo打包

國際化->架構
在地化->根據國際化訂下的架構,填入該地區的資料

自由軟體國際化
用Gettext實現

訊息的獨立
編索引

pot -> po

po檔:
1.檔頭
2.條目
   -flag
   -註解 (important!!!) : 區分相同訊息但不同意義
    ex: 左側的故事(彈珠台的left:3)
  -原始訊息
  -翻譯訊息


自由軟體中文化需要哪些工具?
文字編輯器
簡單的英翻中概念
耐心和恆心

翻譯工具:
Lokalize (個人)
Launchpad, pootle, transifex, tryneeds等線上共筆平台 ()

自由軟體文化:
將修改後的東西貢獻回上游(共享的概念)


ezgo打包技術:

ezgo1~5只是蒐集了各種自由軟體包在一起,到了ezgo7還8的時候因為Eric去了一趟挪威,發現在教育上有很大的著力點

ezgo目標:讓一個從來不曉得自由軟體的人,藉由ezgo開始了解自由軟體這個世界(簡單說就是一個推廣用的產品)

推廣面:
-目標客群
-要有哪些特色
 1."選單"是ezgo中非常重要的特色之一
 2.操作上貼近windows的思維(近似windows,但有區隔)

技術面:
客製化的distribution
past: Dirty hack
用選單編輯器,手動自己改,再把改過的檔存起來(9之前) --很累,而且每年要重做一次@@
drawback of Dirty hack: 沒有組織

目前:(10~)
1.遵循標準機制自動化(不用每年再重做) ex:選單
2.遵循Debian規範,將常用重複的檔案和設定等包裝成deb檔(Debian是Linux套件中的老祖宗)
3.盡可能採用外加設定檔的方式,不覆蓋現有的檔案 ex:桌布
4.打包成套件

ezgo調校重點:
1.選單
2.桌布
3.檔案系統
4.軟體
5.使用者體驗


ezgo12版
因為目標客群的衝突,所以產生很多版
A版: All in one(推廣版)
B版: Basic(只把桌布跟選單換上去,其他自己來)
C版:教師版





[2014/11/14] java安裝教學

資安作業要用java寫
迫使我不得不自學java了> <

名詞介紹:
JVM: Java Virtual Machine
JRE: Java Runtime Environment (包含Java SE API與JVM)
JDK: Java Development Kit  (包含Java程式語言、工具程式與JRE)

java JDK(Java SE Development Kit)載點:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

step1:接受他的條款,點選 Windows x64的Download(我以我的電腦為windows 8 64-bit為例)

step2:執行下載後的.exe檔,Development Tools, Source Code, Public JRE全安裝(建議)
*Note:
Development Tools: 編譯器等工具程式(必安裝)
Source Code:Java SE API實作程式碼(日後可參考)
Public JRE: 方便之後直接在Public JRE上做測試

step3:安裝完後,開啟命令提示字元,輸入SET PATH=C:\Program Files\Java\jdk1.8.0_25\bin;%PATH%
(此步驟可免去日後每次編譯都要輸入javac路徑的麻煩)
*Note: SET PATH=JDK安裝路徑

大功告成!

2014年11月7日 星期五

[2014/11/7] 自由軟體課程上課筆記 -- ezgo

今天來的講師是上次來過的Eric
首先先藉由兩個短片讓我們看看ezgo中有哪些軟體

影片中有提到的軟體:

1.星象軟體: stellarium
官網: http://www.stellarium.org/zh/

2.教學軟體: PhET
有各種物理化學的模擬動畫
可拿去當家教學生的教材> <
官網: http://phet.colorado.edu/

3.音樂軟體: MuseScore
可下載各種樂譜,並在電腦上播放,還可
官網: http://musescore.org/

Eric還提到ezgo中有其他的音樂軟體
ex: Hydrogen
官網: http://www.hydrogen-music.org/hcms/



[2D繪圖]
通常大家熟悉的圖檔格式有jpg, gif, png...等等
今天新學到了一個超好用的圖檔格式 -- svg !!!
<png v.s svg>
png檔為點陣圖格式,放大後變一格一格的看不清楚
svg檔為向量繪圖,放大後依然非常清楚,可以用來做大圖輸出,且藉由解散群組可將圖中一個一個元件分離(可以把長頸鹿的脖子變長哦~)
Note: svg檔可轉為png!(所以可以先用svg檔將圖檔處理好後再輸出成png檔就不會失真了)

svg檔大本營:
openclipart
官網: https://openclipart.org/
Note:所有的圖檔都是 released into the public domain (就是可以自由下載修改又不用註明出處!!)

svg檔下載後要用Inkscape(超讚的軟體,大推!)這個軟體開啟 (Illustrator也可開啟,但Illustrator要錢錢阿QQ)
Inkscape官網: https://inkscape.org/zh-tw/
Inkscape先學會第一步: "解散群組"!!!



[3D繪圖]
Blend Swap
3D圖庫
官網: http://www.blendswap.com/
需要帳號才能下載(分付費與免付費帳號)
免付費帳號一個月最多只能下載200MG
下載後用Blender這個軟體開啟(可旋轉、縮放)
Blender官網: http://www.blender.org/

ezgo中其他軟體功能:
螢幕截取
影片剪輯: OpenShot
OpenShot官網: http://www.openshot.org/



看了這麼多軟體一定很心動吧,但要一個一個下載好麻煩唷~
但其實上述所有軟體ezgo裡面都已經裝好囉!!!
所以上面補充的官網可以通通忘掉啦,直接點下面的連結就可以多個願望一次滿足囉^.<
ezgo官網: http://ezgo.westart.tw/ezgo11/index.php






Frank:

ezgo開發:
從前的重點:
把國外的好東西引進台灣
現在的重點:
把台灣國內一些老師做的好東西推廣出去


短期Task:
1.字音字形學習網離線版
人數:2~5人
deadline: 2014/12/7

2.雄之語文高手
研究裡面的教材,撰寫說明及範例等,因為現在的雄之語文高手只是個框架,要讓老師可以輕鬆地把自己的東西放進去
人數:2~3人
deadline: 2014/12/7

3.PhET翻譯
把PhET上的教材再看一遍,未翻譯的再補上去
預計人數:1~2人
deadline: 2014/12/7


長期Task:
1.字音字形網改寫
用HTML5與Javascript改寫字音字形網,使其可在行動載具上使用

2.雄哥的Flash教材改寫
用HTML5與Javascript改寫,使其可在行動載具上使用

2014年11月5日 星期三

[2014/11/5] argc, argv[] & vi中的取代

今天在寫資結作業的時候學到了一些新技能(有些是以前學過忘記了啦:P)

1. argc, argv[]

在command line輸入

gcc -o myprog myprog.c

則:

argc == 4
argv[0] == gcc
argv[1] == -o
argv[2] == myprog
argv[4] == myprog.c

參考網址: http://crasseux.com/books/ctutorial/argc-and-argv.html


2. vi中的取代

(1)將此行的A用B取代:
:s/A/B

(2)將全部的A用B取代: (s前加一個%即可)
:%s/A/B

♥Note:
(i)上述兩種方法都只會將該行遇到的第一個A取代成B
(i.e: APPLE 將'P'用Y取代後會變成 AYPLE )
(ii)用全部取代的方法時要很注意,不小心就會把不想取代的東西取代掉@@
ex:
#define e 30 將e用a取代後會變成 #dafine e 30

參考網址: http://www.linfo.org/vi/search.html

2014年10月31日 星期五

[2014/10/31] 自由軟體課程上課心得 -- 鳥哥&Max

今天竟然請到了鳥哥來演講,真的是太令人受寵若驚了!!!
向來都是在網路上看 《鳥哥的Linux私房菜》
沒想到今天竟然有機會親眼目睹鳥哥本人> <

在技術方面老實說我不是很有基礎
所以對於鳥哥最近在玩的東西聽得不是很懂@@
因此今天最大的收穫並不在技術知識的獲得
而是鳥哥個人給我的啟發

★Surprising fact about 鳥哥:
1.環工系畢業
2.不會C語言

上述兩點是今天令我感到最驚訝但也給我最多啟發的兩件事實

一個把Linux摸得如此精通的人竟然不是資工系畢業的
他甚至不會C!!!
而我身為一個資工人對C至少也有一點點基礎
對於Linux卻是望之卻步
覺得那是一個我不可能精通的東西
由鳥哥的例子我深深地體會到 Nothing is impossible!
不要因為覺得自己是初學者或是門外漢就畫地自限
一開始就覺得自己做不到當然不可能做得到!

此外鳥哥有提到
之所以會有鳥站的出現
肇因於鳥哥的健忘和雞婆
因為健忘,所以將所學在網站上記下來
因為雞婆,所以紀錄得特別詳細
老實說在今天聽這場演講前
我對於作筆記這件事並不是太熱衷
寫程式常常會用到很多內建的function
通常就是要用的時候google
用完就忘了
但聽完今天鳥哥的演講後
忽然興起了一個之後學到新東西也要用網站將其記錄下來的念頭
因為記錄之前內容勢必要經過自己的整理
整理就是一個將新知識內化的過程
而自己將所學用自己的話再打一遍
不但可以確定自己是不是真的了解了
也可以幫助自己記憶
未來若是又不小心忘記
也有地方可以讓自己找資料
不用再在google出來的資料海中茫茫找尋
而且將所學po上網也可以幫助他人
若有錯誤也有他人可以指正
正所謂教學相長阿!
因此我決定之後我也要效法鳥哥的作法--勤作筆記~~~






有別於鳥哥帶來的啟發
Max帶給我的是很多有用的資訊
Max大推我們參加國際社群
也分享了不少他參加社群的經驗
最重要的是
他分享了很多可以免費出國的機會!!!!!
趁著年輕,誰不想多看看外面的世界
但是也因為年輕,所以沒錢阿QQ
所以更需要好好利用這些機會~
其實有時候不是沒有資源
而是我們不知道有資源可以用
聽完Max的演講覺得出國的機會其實並不少
但總覺得那些標準都好高、好困難
(雖然Max說就是去國外介紹ezgo也行得通,但我真的能搞懂ezgo是什麼嗎0.0)
但又想到了鳥哥給我的啟發
天下無難事,只怕有心人阿!
還沒試怎麼知道自己做不到呢?
一開始就放棄不就等於自己扼殺自己出國的機會嗎!?
因此我想我還是會嘗試看看
當然自己也要多去找尋其他機會
機會不只是給有準備的人,更是給知道機會的人啊!




以上是今日演講的心得♥

2014年9月19日 星期五

[2014/9/19] 影片心得 -- Maker 自造時代

今天看了《Maker自造時代》這部紀錄片
讓我又重新意識到人類本來是maker而不是user這件事

現代人太習慣於接受既有的東西
做為一個user
只需要弄懂別人訂好的規則
使用別人做好的東西
需要什麼,就去商店找,去網路上找
一旦沒有人製造所需的東西
便束手無策了
我們都忘了我們也可以是個maker
商店沒有賣的東西
我們也可以自己做
user的能力太侷限
他使用的是成品
不能自己決定size,color...etc.
要客製化則需花大把大把的鈔票
但有時只要弄到原料
自己就可以用低成本做出自己想要的東西
不只省錢,更能配合自己的需求
還可以獲得成就感
現代有些社區課程會教婆婆媽媽自己做保養品
用一些買得到的簡單化工原料
就可以替自己省下不少購買保養品的錢
而且效果也不差呢!
(會這麼說是因為我媽媽自己有做過~)
還有一些課程是教人自己做肥皂
這些都屬於maker
maker的定義並不侷限於要做出很強很厲害的東西才算數
只要是靠自己的力量做出的成品
即便是簡單的家庭生活用具
都可以歸在maker的一環

人類一開始每個人都是maker
自己製造狩獵用的工具
自給自足
後來漸漸地發現了分工比自己埋頭苦幹有效率
於是現代社會的樣子漸漸成形
但當人類習慣這樣的生活模式後
就忘了初衷
分工是為了效率,為了便利
大家做好份內的事
互相交換結果
比一個人去完成所有的事有效率
但若自己想要的東西沒有人負責去做時
製造能力就該回歸自身
如果因為沒有他人的製造而讓需求懸在那裡
便本末倒置了
分工的結果不再是便利,不再是效率
反而造成了停滯

To sum up,
不要讓自己的能力被既有世界制約了^.<
Every user can be a maker.