發表文章

入門第一課:Raspberry Pi 初體驗 (閃爍LED)

圖片
約 2 年前買了一台 Raspberry Pi   ,但是一直放著沒有時間玩,最近終於想到它的存在。 個人在20年前專科時代就有玩過 8051 的微處理機,那時候寫程式相對的麻煩。 接線路也很麻煩,需要剪線、測長度,現在都有杜邦線這種現成做好的。 電子電路元件的觀念都還有印像,但是年久失修需要一段時間回憶。 底下這兩篇很適合入門的第一課: Raspberry Pi 教學 http://www.raspberrypi.com.tw/category/%E6%95%99%E5%AD%B8/ 基本電路元件解說 http://www.codedata.com.tw/java/java-embedded-6-raspberry-pi-gpio/ 線路接線:(請參考上面兩篇) LED_PIN 的輸出電位用的針腳是 12 port ,記得接對線路。 再 pi 內用編輯寫下面的程式碼:(RPi,GPIO 也請參考上面兩篇的說明安裝 pyhton lib) pi@raspberrypi ~/code $ cat led_blink.py import RPi.GPIO as GPIO import time # define pin 12, RPi P1. 2011.12 version. LED_PIN = 12   GPIO.setmode(GPIO.BOARD) GPIO.setup(LED_PIN, GPIO.OUT) try:     while True:         print("LED is on")         GPIO.output(LED_PIN, GPIO.HIGH)         time.sleep(1)         print("LED is off")         GPIO.output(LED_PIN, GPIO.LOW)         time.sleep(1) exc...

Raspberry Pi 影像檔安裝及使用

圖片
(1) 到 Raspberry Pi 官方網站抓取最新的影像檔案 https://www.raspberrypi.org/downloads/ 我是抓  RASPBIAN 這個版本,他相當於 debian 的 wheezy 版本 Download:  http://downloads.raspberrypi.org/raspbian_latest  抓好後解壓縮會得到一個 image 檔,可以使用 windows 的 image 工具寫入到 SD 卡內。 官方建議 windows 使用: http://sourceforge.net/projects/win32diskimager/ 來寫入, (2) 完成後 把線路接好, SD 卡插入機器後準備登入。 如果你和我一樣,沒有螢幕可以找台 AP 透過 AP 界面知道 PI 自動取得的 IP ,再使用 SSH 登入就可以了。 PI 預設帳密: 帳號:pi 密碼:raspberry 可以用 sudo 轉換為 root (3) 使用 ssh 登入系統: mtchang@debian:~$ ssh pi@192.168.1.191 pi@192.168.1.191's password: Linux raspberrypi 3.18.11+ #781 PREEMPT Tue Apr 21 18:02:18 BST 2015 armv6l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. NOTICE: the software on this Raspberry Pi has not been fully configure...

Oracle Java install in Linux ubuntu/mint/debian

參考:http://www.webupd8.org/2015/02/install-oracle-java-9-in-ubuntu-linux.html 安裝 Oracle 的 java 在 linux 上頭。 安裝: echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886 apt-get update apt-get install oracle-java9-installer 需要很久,請慢慢等。先寫一個 Hello.java 來看看巴。 mtchang@mt ~/SCM_code/tmp $ cat Hello.java public class Hello {     public static int gvar;     public static void say(String s) {         int x = 10;         System.out.print(s+x);     }     public static void main(String[] argv) {         float y = 0;         say("Hello, world\n");     } } mtchang@mt ~/SCM_code/tmp ...

內部研習-災害防救--筆記紀錄

圖片
這是之前內控研習的筆記,紀錄得很零碎但看起來還有點價值,當時把一些關鍵字句記錄下來,裡面有些關鍵字可以搜尋當成學習的目標。差點遺忘在資料夾內了。 有些內容在 TED 的演講內有提過,可以參考一下底下的內容。 by mtchang ---- 103.10.7  xx內部研習-災害防救 講者:李鴻源 全球化的影響,全球化的挑戰。 地球預計人口會在增加 20 億人口,糧食必須要增加百分之40。 能源的問題? 瑞典的替代能源已經達到 50% ,目標 2020 年不用壹滴石油。 台灣必須面對的問題:台灣山高水急,多雨缺水國。 台灣有熱島效應,每兩年會發生壹次嚴重的水災,每兩年會有壹次旱災。 山林的平衡,再 921 後約需要 20 年才可以發生平衡。 台灣水庫已經淤積 ⅓ 到 2030 年水庫預計 ½ 淤積,清迂成本太高,約要花費一千億。水的回收再利用,是需要再討論的。 海岸線的的堤防成本,比養殖產業的成本高很多。超抽地下水很嚴重。 地盤下陷問題,高鐵能在噌多久。預計十年內會斷掉。 台灣的每一個問題,都和政府的很多部會有關係。需要解決問題,要跨部會的整合。 縣管河川,台灣需要多少縣市?大部分的縣市政府,無法解決問題。如何讓地方的政府可以解決自己的問題?? 谷關的台八縣,台灣一直在做一些沒必要的基礎建設。 為何讓所有的人到台北? 偏鄉沒有人,台北縣的雲林人,比再雲林縣的雲林人。 台北花費2000億,解決台北淹水問題。台北防洪的觀念不一定正確? 石門水庫有三億的庫容,垮掉後台北就毀了。 國土規劃:能源、產業、風險、空間、機會 我們的能源政策是啥麼? 我們是一個小國,但是搞的和大國的政策。 國土監測的基本資料不夠? 台灣地區災害風險圖 -- 營建署 根據災害的淺視圖,做國土規劃。考量人口分布因子 現在比較棘手的是,很多人住在危險地區,該如何處理? 內政部地理資訊系統,做情境分析、資料探勘、決策、政策的分析,政治需要很強的專業分析。 國土規劃的理論和實踐,需要多種專業的參與。 林口臺地以前是限建,滯洪池 30 個。 低密度開發的都市,用都市設計的手段解決都市淹水的問題。 用法令來規劃,公共建設的設計。把水排入地下。 流域整體治理之重要問題:再行政院層級流域管理組織,成立流域管理委員會。 ...

使用現成的 docker images ,以 mtchang/lamp 為例

就練習 docker 的過程,我用很笨的方式做了一個 docker images 以 LAMP 服務為例,底下為這個的說明: docker hub 的連結   https://registry.hub.docker.com/u/mtchang/lamp/   1. 使用這個 docker images # 從 docker hub 抓取這個版本的 lamp $  sudo docker pull mtchang/lamp # 看看本地端的 images 是否抓好了 $  sudo docker images REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE mtchang/lamp        latest              59480b898c91        7 minutes ago       578.1 MB ...(skip)... # 以 mtchang/lamp 的 images 啟動一個 container ,動作是本地端的 tcp 8080:對應到 container 中的 tcp 80 port # 將本地端指定的目錄 對應到 伺服器端目錄 ,並且啟動 /usr/bin/supervisord 讓 container 可以停在系統內 # sudo docker run -d -p 8080:80 -v 本地端目錄:伺服器端目錄 mtchang/lamp /usr/bin/supervisord # example: $  sudo docker run ...

透過用 dockerfile 配置可以快速生成 docker image 並實現 container 部署

圖片
透過用 dockerfile 配置可以快速生成 docker image 並實現 container 部署 ref:  http://dockerone.com/article/101   範例: https://registry.hub.docker.com/u/tutum/lamp/dockerfile/   官方說明文件: https://docs.docker.com/articles/dockerfile_best-practices/   (1) 本機 dockerfile 建立 # 在本地端的目錄下,建立一個檔案名稱為 Dockerfile # # FROM:你的 base image 為基底 # MAINTAINER:維護 images 的人 # RUN:在 images 建立過程執行的指令 # ADD:將本機的檔案或遠端的檔案加入到 image 內的目錄 # 語法請參考: https://docs.docker.com/reference/builder/ # 底下 Dockerfile 參考  https://registry.hub.docker.com/u/tutum/lamp/dockerfile/   mtchang@mt ~/SCM_code/docker/apdemo $  vim Dockerfile FROM ubuntu:latest MAINTAINER mtchang # Install packages ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \   apt-get -y install supervisor git apache2 libapache2-mod-php5 mysql-server php5-mysql pwgen php-apc php5-mcrypt && \   echo "ServerName localhost" >> /etc/apache2/apache2.conf ...

docker 應用情境案例(2):把這個 container 提交並且上傳到 docker hub

# 把系統中最後狀態的 container commit ,並且上傳 docker hub 提供分享。 # 先使用 docker ps -a 觀看 container ID mtchang@mt ~ $  sudo docker ps -a CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES …(skip) ... b29f95d30b68        ubuntu:14.04        "/bin/bash"         20 hours ago        Exited (0) 17 minutes ago   # 使用 docker commit  提交 -m 為提交的說明 -a 為作者資訊 #  b29f95d30b68 為提交的 container ID #  mtchang/lamp 為 REPOSITORY[:TAG]  ,在本機提交後顯示成為 docker images 的 REPOSITORY 及 TAG ,並且產生一個新的 hash code mtchang@mt ~ $  sudo docker commit -m="jangmt/lamp v1" -a="mtchang" b29f95d30b68 mtchang/lamp cfa9495f5d8f...