2016年12月29日

edu2016遠端關學生電腦


1.老師機和學生機安裝openssh-server
sudo apt-get install openssh-server
2.老師和學生電腦産生公鑰和私鑰(不需sudo),老師機和學生機都要做
$ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/teacher/.ssh/id_rsa):(按下Enter)
輸入自設的密碼二次
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/teacher/.ssh/id_rsa.
Your public key has been saved in /home/teacher/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:mRmfkPr13+bVvg7/Tlp+S060+k0vuSTpC+3SrvekaKQ teacher@teacher-desktop
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|         .       |
|        +        |
|       . B .     |
|      . S +    . |
|       . ..o .. o|
|        .o..=.o=*|
|        E o=o*XO*|
|         .o=*+B&#|
+----[SHA256]-----+

3.把老師機的公鑰給學生

$cd ~/.ssh
$scp id_rsa.pub teacher@10.10.10.152:/home/teacher/.ssh/id_rsa.pub

出現
The authenticity of host '10.10.10.152 (10.10.10.152)' can't be established.
ECDSA key fingerprint is SHA256:AWqDWxm3s9YEIi7gdsCYH6PNRW/ALhLkqE8UFOL2UfU.
Are you sure you want to continue connecting (yes/no)?yes
  一定要打yes三個字
輸入密碼
teacher@10.10.10.152's password:
 id_rsa.pub                                    100%  405     0.4KB/s   00:00
公鑰複製好了


這樣會在家目錄下的.ssh資料夾中産生id_rsa 和 id_rsa.pub兩個檔案,id_rsa.pub就是公鑰
注意,這兩個檔案很重要,必要把把它設成維讀
$chmod 444 id_*.*

試著ssh teacher@10.10.10.152,第一次要輸入金鑰密碼(建立金鑰時輸入的密碼)和登入密碼
再做一次就不用再打密碼了

遠端闗機指令
ssh -t teacher@10.10.10.152 'sudo poweroff'

執行時輸入sudo密碼。

如果不想輸入sudo密碼,可以在學生電腦中編輯/etc/sudoers

%sudo   ALL=(ALL:ALL) ALL
改成
%sudo   ALL=(ALL:ALL) NOPASSWD:ALL 

2016年12月20日

transformer-Linux_2.00.1067安裝於edu2016記事

1.edu2016安裝並做更新
sudo apt-get update
 sudo apt-get  dist-upgrade
2.下載壓縮檔transformer-Linux_2.00.1067.rar,奕學老師給的。
解壓縮rar
 unrar x transformer-Linux_2.00.1067.rar
 cd transformer-Linux_2.00.1067_/amd64/

3.安裝
看說明檔:command.txt安裝要執行下列指令
sudo dpkg -i python-serial_3.0.1-1_all.deb
sudo dpkg -i python-pil.imagetk_3.1.2-0ubuntu1_amd64.deb
出問題了

dpkg: 因相依問題,無法設定 python-pil.imagetk:amd64:
 python-pil.imagetk:amd64 相依於 python-tk (>= 2.7.7-2)﹔然而:
  套件 python-tk 未安裝。


於是補做python-tk安裝
sudo apt-get install python-tk
sudo apt-get -f install
再重做

sudo dpkg -i python-pil.imagetk_3.1.2-0ubuntu1_amd64.deb

再往下做
sudo dpkg -i python-pycurl_7.43.0-1ubuntu1_amd64.deb
sudo dpkg -i python-pyglet_1.1.4.dfsg-3_all.deb
sudo dpkg -i transformer-community_2.00.1067-1_amd64.deb
sudo apt-get install browser-plugin-freshplayer-pepperflash
最後安裝完成
執行會閃退
要再執行指令
sudo pip install requests

2016年12月18日

新北市七期電腦記事

有接到反應,七期電腦無法使用drbl或是clonezilla備份,會出現error訊息。
經查詢結果,是因為該台電腦經過內容管理器處理過,開機部分已改變。必需重做分割表(注意不是分割區)。使用gparted來處理即可,如果還要用mbr就選msdos如果要用uefi就選gpt。


處理完成,再重新安裝系統,不管edu作業系統或是商業軟體作業系統都ok。當然,drbl clonezilla在回收與還原就沒有問題了。
徝得一提的是,使用ssd後大幅升了備份和還原是速度了。備份時看到4GB/分以上,ext4比現又比ntfs好。還原時相同,我第一次看到12GB/分。不得不稱讚linux的優秀。



2016年12月2日

arduino與電流急急棒

一.電流急急棒探究
頗為流行的電流急急棒,使用原理是?你可曾探究呢?
想一下家中電鈴的構造:有一個開關,一按下去,電流通過鳥鳴器,電鈴響了,放開開關,鳥鳴器停止響。
 

 那電流急急棒是不是也相同呢?開關是誰?有答案了嗎?

所以我們使用arduino設計電流急急棒時,首先你要會讓蜂鳴器響。

 我們使用D9來驅動蜂鳴器,把它設定成pwm,如果pwm出力是0,蜂鳴器不會響,其他則會有警報聲。

開關如何設計呢?
我們使用D4來做開關,如果D4是通的(值是1),警報器會響,否則警報器不響。


 那如何設計D4是通的呢?使用鉛線?鐵絲?銅線?

如何把D4 的地線G和資料線S設計成電流急急棒?

還能做什麼變化呢?聰明的你想一下,把它做出來


2016年11月10日

站著和躺著有關係

因為做arduino有需要自己畫鏍柱和釘子,一直列印失敗。
填充到70%,還是失敗。
加到100%(47分鐘),發現比70%(71分鐘)還快。

 另外是站著都印失敗(有做底和加柱),把它躺下來就成功了。
原始檔:https://www.tinkercad.com/things/9siZ29jJlTg-

2016年10月27日

雲端硬碟上傳檔案及表單記錄

有個機會,要利用雲端硬碟收檔案,還要把表單記錄下來,找了一些文件,許多只是做到上傳檔案。
參考網址:https://medium.com/@jimmy0816/%E5%A6%82%E4%BD%95%E5%BB%BA%E7%AB%8B%E5%8F%AF%E4%BB%A5%E4%B8%8A%E5%82%B3%E6%AA%94%E6%A1%88%E7%9A%84google%E8%A1%A8%E5%96%AE-how-create-a-file-upload-form-with-google-script-72f019539073#.nrnze43jh

1.首先你要啟用google script

 2.建一個新專案google script,並改名成:上傳檔案表單(請自取名字)
3.gs程式
剛開始是:


清空並,貼上下列程式碼 (程式來源:https://medium.com/@jimmy0816/%E5%A6%82%E4%BD%95%E5%BB%BA%E7%AB%8B%E5%8F%AF%E4%BB%A5%E4%B8%8A%E5%82%B3%E6%AA%94%E6%A1%88%E7%9A%84google%E8%A1%A8%E5%96%AE-how-create-a-file-upload-form-with-google-script-72f019539073#.nrnze43jh)


function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('form.html');
}
function uploadFiles(form) {
  try {
    
    var folderName = "上傳區";   //上傳的資料夾名稱
    var sheetName = "上傳表單";  //上傳的表單名稱
    var folder;
    var folders = DriveApp.getFoldersByName(folderName);
    
    if (folders.hasNext()) {
      folder = folders.next();
    } else {
      //如果資料夾不存在,自動建立
      folder = DriveApp.createFolder(folderName);
    }
    //handling uploading file
    var blob = form.myFile;    
    var file = folder.createFile(blob);    
    file.setDescription("Uploaded by "+ form.myName+" - " + form.myEmail  + "("+ form.myTel +")" );    
    
    var fileUrl = file.getUrl();
    
    //尋找雲端硬碟是否有這個檔案
    var FileIterator = DriveApp.getFilesByName(sheetName);
    var sheetApp = "";
    while (FileIterator.hasNext())
    {
      var sheetFile = FileIterator.next();
      if (sheetFile.getName() == sheetName)
      {
        // 如果有這個資料表就把它打開
        sheetApp = SpreadsheetApp.open(sheetFile);
      }    
    }
//如果沒有就建立一個新的
    if(sheetApp == "")
    {
      sheetApp = SpreadsheetApp.create(sheetName);
    }
    // 讀取第一個sheets找到最後一行
    var sheet = sheetApp.getSheets()[0];
    var lastRow = sheet.getLastRow();
    // 寫入新的資料
    var targetRange = sheet.getRange(lastRow+1, 1, 1, 4).setValues([[form.myName,form.myEmail,form.myTel,fileUrl]]);
    
    return "檔案上傳成功!"
    
  } catch (error) {
    
    return "檔案上傳失敗! 原因:"+error.toString();
  }
  
}

注意你要修改的是:
第二行有一個form.html,這是等一下表單檔名,如果不喜歡,請改名。
var folderName = "上傳區";   //上傳的資料夾名稱
var sheetName = "上傳表單";  //上傳的表單名稱
這一行要特別注意:
var targetRange = sheet.getRange(lastRow+1, 1, 1, 4).setValues([[form.myName,form.myEmail,form.myTel,fileUrl]]); 

sheet.getRange(lastRow+1, 1, 1, 4)是說
method getRange(row, column, optNumRows, optNumColumns) 
如果等一下網頁中的欄位數不同要改4這個數字(看你要記錄幾欄), 改了數字,相對後面的值要跟著改
[[form.myName,form.myEmail,form.myTel,fileUrl]]
它的表示法是在[[]]中加入欄位名以form.欄位名稱,分隔(半形逗號)。
 
4.建一個新的html檔案,檔名要和gs檔中第二行
return HtmlService.createHtmlOutputFromFile('form.html'); 
中的文字相同,這裡是form.html


5.把下列程式碼取代原來的程式碼
原來是這樣:清除全部
貼上程式碼:(程式碼來源:
https://medium.com/@jimmy0816/%E5%A6%82%E4%BD%95%E5%BB%BA%E7%AB%8B%E5%8F%AF%E4%BB%A5%E4%B8%8A%E5%82%B3%E6%AA%94%E6%A1%88%E7%9A%84google%E8%A1%A8%E5%96%AE-how-create-a-file-upload-form-with-google-script-72f019539073#.nrnze43jh

<!DOCTYPE html>
<html>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link rel="stylesheet" href="//cdn.rawgit.com/twbs/bootstrap/v4-dev/dist/css/bootstrap.css">
<script src="//cdn.rawgit.com/twbs/bootstrap/v4-dev/dist/js/bootstrap.js"></script>
<script>
    function fileUploaded(status) {
       $('form').hide();
       $('#output').html(status);
    }
</script>
<body>
<div class='container'>
 <h1>作業上傳表單</h1>
 <form>
  <fieldset class="form-group">
    <label for="myName">姓名</label>
    <input type="text" name="myName" class="form-control" id="myName" placeholder="請輸入姓名">
  </fieldset>
  <fieldset class="form-group">
    <label for="myEmail">Email</label>
    <input type="email" name="myEmail" class="form-control" id="myEmail" placeholder="請輸入Email">
  </fieldset>
  <fieldset class="form-group">
    <label for="myTel">電話</label>
    <input type="tel" name="myTel" class="form-control" id="myTel" placeholder="請輸入電話">
  </fieldset>
  <fieldset class="form-group">
    <label for="exampleInputFile">File input</label>
    <input name="myFile" type="file" class="form-control-file" id="exampleInputFile">
    <small class="text-muted">This is some placeholder block-level help text for the above input. It's a bit lighter and easily wraps to a new line.</small>
  </fieldset><button type="submit" class="btn btn-primary" onclick="$('#output').html('上傳中...');
                    google.script.run.withSuccessHandler(fileUploaded)
                    .uploadFiles(this.parentNode);
                    return false;">確定送出</button>
 </form>
 <div id="output"></div>
</div>
</body>
</html>
 
注意這裡注意紅字的三個name就是gs檔中的form.名字,這幾個欄位你不一定適用,改變時記得html檔和gs檔都要一起改變。
如果要增加欄位,可以複製程式碼
<fieldset class="form-group">
    <label for="myTel">電話</label>
    <input type="tel" name="myTel" class="form-control" id="myTel" placeholder="請輸入電話">
  </fieldset>
 加以修改(藍色的部分都要修改),至於input形態(文字、數字、下拉選單、radio、...)請多看html5相關文件
個人示範改一個radio的範例
 <fieldset class="form-group">
    <input id="identity1" type="radio" name="identity" value="教師" class="form-control"  aria-required="false">教師
    <input  id="identity2" type="radio" name="identity" value="義工" class="form-control"  aria-required="false">義工
 </fieldset> 
 
6.取得程式權限(記得要存檔),點選程式碼.gs,執行/doGet,這時要同意權限。

 
 
7.發佈程式,發佈/佈署為網路應用程式。

 
 
8.這個script專案有版本號,管理在:


 9.使用者填完表單,就會在雲端硬碟中出現。



2016年10月24日

有木國小到校培訓

今天騎上機車,一直給它騎,就到了有木國小。

大維主任很客氣,今天處理了。
1.電腦教室網段改成10.231.xx.xx,請大同把L3處理了一下,這樣學校IP就不會有不足或相衝突了,小校真實IP只有半個C。
2.把一台學生機重新把drbl server處理起來(找不到了),並重新建置教室環境。
3.還原最新的edu2016系統,請大維主任調成學校的環境,並說明將來如何異動、回收、還原到學生端。調校老師機、安裝italc-master....

其中發現,教師機是行政電腦過來的(硬碟不一樣),我還是用drbl還原回去了,使用進階模式/忽略硬碟大小。drbl 強,我們的系統也強。
 4.老師機說要做視訊連線,把webcam接上,免調校,使用vlc cheese均能正常使用。edu2016強。
 一個上午處理完成。中午讓大維老師招待讓他破費了,萬分感謝,地方特色真的美味,閒聊間,才知大維和我都是客家人,和楊梅也都有關係,師專也是同門,真是有緣。





2016年10月17日

我的運算思維與創客


現在的教學讓學生懂得很多,做的卻很少。可能沒時間吧!但他們乎略了知易行難的道理,很多重大的發明並沒有用到艱深的知識。
我個人認為運算思維和創客不是要培養發明家,或是讓學生學程式,應該是習慣和態度的養成,偏偏這個很難教。以前師專老師教我要"做中學",老師教學生要"舉一反三",這和運算思維創客的精神是相通的。

家庭即工廠
這是多久以前的詞了,可見一把年紀了。工作環境的改變,我的工作環境換成家裡。

今天想了一想,把想法變成做法。老婆大人應會該很滿意吧。

老婆大人老是說你很喜歡看購物頻道!我想了一下我本來就是斑馬(台語叫黑白馬), 但我不是購物狂。在購物頻道買了二件物品(撥水劑和清潔劑),因為車子要用,加上他們的一些用法,讓我有了一些點子。

當然買來有發揮一些功用,但那不是我要的。分享一下我的用法:
1.撥水劑拿來用在廁所(廁所是我的實驗室),把馬桶清乾淨,再噴上撥水劑,結果,有比較好用些,污物不易附著,隨著時間長,還是會上去,可以持續約一個月(效果遞減),還是要定期清理廁所。

2. 我是君子,所以禮記:君子遠疱廚。今天廚房變成我的工廠了。把清潔劑拿來清排油煙機,上面的油垢是令人....。老婆每次都買新的油網和盛杯(懶得洗)。我也曾在大掃除中適了不少清潔用品,效果都不好。今天試了一下,新的物品,結果,除污效果有比較好,但是不像電視中的容易,盛杯要用報紙先把大部分油污先移除。
泡了一小時,還是要用力清除。效果沒那麼好。可能買新的會比較好些。
排油煙機頂部就恐怖了
連廠牌都看不到了。使用過後,無法回復原貌,但好多了。我用名片遮掉廠牌。
再來還是要維護才能保持好。又想到用撥水劑來延長維護時間。使用撥水劑時找不到噴嘴(一個已放在車上),於是拿舊的清潔劑噴嘴來解決問題。於是廚房變成這樣了。


去做了才知老婆大人平時的辛苦。去做了才知道問題點在哪裡。
到五金賣場找濾網,結果發現金鐘罩,XDD。



A+B可能會出現不同的組合,答案不一定只有C

運算思維和創客要培養解決問題的能力(這不是之前的能力指標嗎),我想文科的人一定心中怪怪的,為何只有3D印表機、arduino、....得到賞識,花了不少錢在購置,自己努力讓學生學文學,做文學創客,卻.....。我想說的是,這些都是運算思維,都是創客,如果能互相結合,那效果會加倍(這不是以前的融入教學、合科課程嗎?)事實上教育並沒有太大的改變,也是不斷的再發現問題和解決問題。

真的期待107課網別讓學生又是在課堂上學更多知識,我們的學生會"贏在起跑點",輸在成功的終點

2016年10月12日

自製Hologram影片

基本關念:
一個透明或昰伴透明的四角錐
一段Hologram的影片
做法:
一.系統:edu2016
二.程式:kdenlive
三.做法:
1.使用透明片製作一個梯形角錐體。可以下載svg檔,使用inkscape來開、修,印出並裁剪(中間的正方形使用假刀,割一條痕方便折合,邊緣剪裁下來),每個梯形邊緣使用透明膠帶黏貼。
手機使用上底 1 cm ,下底 6 cm ,高 3.5 cm梯形圖
平板使用:上底 1.5 cm ,下底 9 cm ,高 5.25 cm圖
2.影片製作:
2-1準備素材:底圖二張(1920x1080)、動畫4個(可以到cc素材搜尋)、主角圖一張、背景音樂。
youtube素材搜尋請尊重智財權
新北市E學園開放圖庫音樂
底圖可以使用inkscape匯入圖檔後縮放

 


2-2使用影片剪輯軟體kdenlive
(1)開啟一個1902x1080的影片專案(預設)
(2)插入二個影片軌,預設是3個,我們需要5個影片軌。


 (3)修改軌道名稱,方便識別。
(4)把準備好的素材讀入kdenlive中並放入適當軌道中,為也速起見,背景特效使用相同的影片。

(5)使用影片功能旋轉縮放各圖片和影片至適當大小並使用轉場功能讓影片。
(6)輸出影片
(7)影片上傳手機或是yputube

影片製作教學錄影