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