發表文章

Ubuntu 18.04 LAMP(Linux+Apache+Mysql+PHP)環境建立

圖片
底下紀錄如何在 Ubuntu 18.04 上建立 LAMP 的環境。 This note demonstrates how to create a LAMP environment on an Ubuntu 18.04 server. 步驟一:安裝 Apache Web Server (Step One: Installing apache web server) Open a console and input the following commands to install apache. sudo   apt-get update sudo   apt-get install  apache2 接著查詢主機IP You can find your server's public IP address by the following command: ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//' 在瀏覽器鍵入 local host ip。 Type the address in your web browser(Google chrome or firefox .etc). http:/ /server_domain_name_or_IP 若在瀏覽器上看到下圖,表示 apache已安裝成功。 If you see the below message, your apache installation is completed. 可看到上圖時,apache便已經可跑靜態網頁了,預設的html檔案存放位置為 /var/www/html 步驟二:安裝MySql(Step Two: Installing mysql Open a console and input the following commands to install mysql. sudo apt-get install mysql-server 安裝完後輸入以下指令進行安全性設定 Type the following command to secure the MySQL i...

Ubuntu 18.04 LEMP(Linux+Nginx+Mysql+PHP)環境建立

圖片
底下紀錄如何在 Ubuntu 18.04 上建立 LEMP 的環境。 This note demonstrates how to create a LEMP environment on an Ubuntu 18.04 server. 步驟一:安裝 Nginx Web Server (Step One: Installing nginx web server) Open a console and input the following commands to install nginx. sudo apt-get update sudo apt-get install nginx 接著查詢主機IP You can find your server's public IP address by the following command: ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//' 在瀏覽器鍵入 local host ip。 Type the address in your web browser(Google chrome or firefox .etc). http:/ /server_domain_name_or_IP 若在瀏覽器上看到下圖,表示 nginx 已安裝成功。 If you see the below message, your nginx installation is completed. 可看到上圖時,nginx便已經可跑靜態網頁了,預設的html檔案存放位置為 /var/www/html 步驟二:安裝MySql(Step Two: Installing mysql Open a console and input the following commands to install mysql. sudo apt-get install mysql-server 安裝完後輸入以下指令進行安全性設定 Type the following command to secure the MySQL installation...

閒聊:「機器翻譯的歷史」

圖片
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 先說明Google Translate Service的發展歷史 [1] ,Google Translate 是在2006年四月開始發展的,一開始所使用的方法為統計機器翻譯( statistical machine translation ),此方法是以聯合國與歐洲議會的稿子來收集語料,接著在這龐大的文件檔案找出最適合的翻譯方式。但這樣子翻譯出來的準確度一直被質疑,所以在2016年時,Google轉用 neural machine translation ,取名為 Google Neural Machine Translation (GNMT),不同以往統計機器翻譯的逐字翻譯,GNMT所採用的是整句翻譯方式,以提高翻譯的準確度。 李開復 也在 人工智慧來了 一書中說明他自己對機器翻譯的經驗從【語法分析】==>【統計方法】==>【類神經網路(深度學習)】。 但很諷刺的是 【 類神經網路 (現稱 深度學習 )很早就有學者提出來了】 註:類神經網路的歷史可參考「 用十分鐘理解 《神經網路發展史》 」 那為什麼會有很多的研究者要投入機器翻譯呢?筆者的看法有兩點: 1. 可以節省成本。 2. 機器翻譯的一些技術可應用到機器人的領域中(請參考 TED的影片: 機器人可以通過大學入學考試嗎? ) 那麼從事翻譯的這些人是不是就會沒工作了?根據「 進擊的 Google 翻譯──透過神經機器翻譯系統,Google 翻譯可望與人類譯者並駕齊驅? 」此篇文章指出Google翻譯無法翻出有詩意的文章,也還比不上那些專業的翻譯人士。還有每種語言都有屬於本身特色的文化在,例如中文裡的合文或合體字,招財進寶就是一例: 圖取自Youtube影片: https://www.youtube.com/watch?v=r3oAbouFFOA 此外中文文學裡還有唐詩、絕句、律詩等詩詞歌賦,筆者不確定用機器翻譯來翻譯這些詩詞歌賦會有什麼作品出現呢? 套用 一字千金 所用的標語:「 淘五千年中華文化,考現代人一字千金、讓我們一起來領略中華文字之美。 」 參考資料: [1]  https://en.wikipedia.org/wiki/Google_Translate ...

HC-SR04 與 NewPing Library的結合

圖片
最近在臉書上看到一篇文章:「 原來超音波只要用echo腳位就好 」。原作是在Microbit上使用,筆者就開始想在Arduino上試試看,底下為筆者搭配 Arduino New Ping 的成功做法。 硬體材料: Arduino UNO R3 板子 x 1 杜邦線母對母 x 7 330歐姆電阻 x 1 Arduino Sensor Shield x 1 HC-SR04 x 1 SSD1306 I2C 0.96 吋 OLED 顯示模組 x 1 麵包版 x 1 硬體電路: 接線方式: 將HC-SR04 接在麵包版上,使用330歐姆的電阻將HC-SR04的 Echo 與 Trig 給接在一起。 HC-SR04  的 Echo 接到 Arduino Sensor Shield  Pin 12 OLED 的 SCL 接到 Arduino Sensor Shield  SCL OLED 的 SDA 接到 Arduino Sensor Shield  SDA 安裝 Arduino New Ping 與 OLED的程式庫: https://bitbucket.org/teckel12/arduino-new-ping/wiki/Home https://github.com/adafruit/Adafruit_SSD1306 https://github.com/adafruit/Adafruit-GFX-Library Arduino IDE 程式碼: 示範影片: 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.

git 的五四三

圖片
用git來做版本控制也有一段時間了,本篇就來聊聊 git 的一些事。 一、git是Local端的版本控制 這一點特別提出來的主要原因是: 因為網路上有很多的 git hosting服務,結果似乎有些人覺得git是遠端版本控制 。這一點看看下圖來說明(圖來源: https://softwareengineering.stackexchange.com/ ): 請不要再將github與git混為一談了,因為github是提供git hosting的線上服務,不是git而已喔! 二、git是方便管理文字檔的版本控制軟體 有很多人會問:「git可不可以做為Word之類的文件版本控制啊?」 「用git做Word文件版本管理的話,會累死人喔!」 原因如下: 1. 預設的Word文件格式不是屬於文字檔案(若存成 xml 檔案等之類的文字格式除外)。 2. Word文件的軟體大多有 追蹤修訂 的功能,可作為簡易的Word文件版本控制。 3. 對一般電腦使用者而言,git 不好入門,因為git最初目的是給軟體開發者用的。 恩,「那有什麼方便使用的版本控制體可以推薦給一般電腦的使用者呢?」 筆者認為,要做版本控制的話,首先要養成寫 文件紀錄 的習慣,不然怎麼可能會記得檔案的: 1. 修改歷程。 2. 為了什麼修改。 3. 是誰修改的。 ..等資訊呢? 版本控制軟體是方便我們來做以上的資訊紀錄,若沒有良好的寫文件紀錄習慣,例如有人只會寫 版本一、版本二、版本三... 。這樣子來使用版本控制軟體,根本就不知道做了那些修改啊! 三、自學資源 要學git的話,底下為筆者覺得不錯的教學網站。 連猴子都能懂的Git入門指南| 貝格樂(Backlog) 30 天精通Git 版本控管 Coursera: Version Control with git GIT基本使用教學 Learn Git Branching Git tutorial Become a git guru 四、git 的開發歷史 git 是 Linus Torvalds 開發出來的,他在2005年時因為要放棄使用 BitKeeper 軟體,但又不想回到沒有BK的日子,於是 花了約10天的時間打出第一個git版本 。git避免許多人所犯的錯誤,而且又是...

Scratch 遊戲:簡易憤怒貓(Building a Fake Angry Birds Game with Scratch Programming)

圖片
在製作簡易憤怒貓之前,先來看一下 Angry Birds 此款遊戲試怎麼玩的。點一下連結  Angry Birds Project on Scratch Website  挑一個自己喜歡的玩玩看,玩的時候 請注意鳥是怎麼移動的 ! 註:此篇文章將會修改Scratcher所分享的專案,來改成簡易版的憤怒鳥。 Angry Birds有用到「萬有引力」的物理觀念,於是我們可以找和這主題有關的專案。但筆者找到「 Scratch砲彈射擊與簡易物理運算 」一文有詳細說明「加速度」、「反作用力」等觀念,讀者可以參考看看。筆者將採用 Scratcher laecych 所分享的 大砲-反彈分身版 範例來製作。 遊戲試玩: 專案網址: https://scratch.mit.edu/projects/263003817/ 可以增加遊戲的功能: 1. 計分方式。 2. 關卡設計。 3. 特殊道具。 4. 自由發揮。 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.

Tinkercad Circuits:NeoPixel Ring 光控燈

圖片
本文使用TinkerCad Circuits來示範NeoPixel Ring的應用:「光控燈」 材料(Materials): Arduino UNO R3 x 1 NeoPixel Ring x 1 Small Breadboard x 1 10K ohm Resistor x 1 Photoresistor x 1 電路(Circuit): 光敏電阻Photoresistor的訊號接在UNO A0,NeoPixel的In接在UNO的D2。 程式碼(The Code): 示範影片(Demo Video): 範例連結(Example Link): https://www.tinkercad.com/things/cqEGU6pHE5s 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.