2018年10月26日 星期五

Docker安裝教學

簡單的講 Docker 是輕量化的虛擬系統,

不在需要像舊有的虛擬系統那樣,

在每個虛擬系統的image都安裝一份作業系統,

這會導致虛擬機器佔用的資源較多,

而且映像檔檔案也比較大,

用了Docker就能輕鬆在每個提供Docker服務的機器上快速部屬,

不囉唆,

直接開始今天的主題:

Docker安裝教學


以Ubuntu為範例,

Ubuntu安裝Docker必須執行:


$ sudo apt-get install apt-transport-https
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
$ sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update
$ sudo apt-get install -y lxc-docker
安裝完畢之後,

執行:

sudo service docker start

啟動Docker服務.


啟動服務時,

有時會遇到失敗狀況如下:


Failed to start docker.service: Unit docker.service is masked.


這時,

只要執行:

systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service

這三行指令後再啟用即可




安裝完並啟用Docker服務之後,

與舊有的虛擬機器一樣,

Docker也需要映像檔執行.

可以從公有庫中下載映像檔:

sudo docker pull ubuntu:16.04


此命令等同於:

$ sudo docker pull registry.hub.docker.com/ubuntu:16.04

意思是從registry.hub.docker.com的倉庫ubuntu中下載Tag為12.04的映像檔




利用

sudo docker images 

列出目前現有的映像檔




執行

sudo docker run -t -i ubuntu:16.04 /bin/bash

就能在此映像檔中進行自訂操作.


若有修改內容想加到該映像檔中,

可透過

sudo docker commit -m "說明" -a "使用者訊息"  映像檔容器ID  新名稱:新TAG

將修改的內容加入並存為         新名稱:新TAG

例如:


sudo docker commit -m "test1" -a "xyaw" 2342df5eb54e ubuntu:test_version

執行完畢用sudo docker images觀看差異:


可以看到多出一個TAG為test_version的映像檔



Docker的應用範圍很廣,

端看使用者如何使用





安裝完確定能動之後,

嘗試把主機重開機在重新啟動Docker,

這裡有個詭異的情形是,

重開機之後要啟動Docker service會出現錯誤

解決方法如下:

rm /etc/docker/key.json
rm -rf /var/lib/docker/

(不過原有的映像檔全都會消失不見)


PHP Laravel 安裝教學


Laravel是一個熱門的PHP框架,

為了加速程式開發速度,

讓開發者能迅速使用常用工具與功能,

今天就來教大家:

PHP Laravel 安裝教學


首先,

必須先安裝XAMPP套件,

這套件包含了Apache, MariaDB , PHP , Perl,

前往官網下載安裝包,

XAMPP安裝過程也很簡單,

按照出現的視窗選擇要安裝的套件並持續按下一步即可,


Ubuntu   安裝過程:








Windows10安裝過程:









安裝完畢,

執行畫面如上圖所示,

Ubuntu:

點選 Manager Servers 將MySQL與Apache打開

若關閉此應用程式後下次要在打開可以執行:

sudo /opt/lampp/lampp start




Windows:

直接將Apache與MySQL打開,

顯示綠燈即可




在安裝Laravel前

必須先檢查系統有沒有滿足需求:


  • PHP >= 7.1.3
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension
  • Ctype PHP Extension
  • JSON PHP Extension
除了上述套件以外,

還需要PHP 相依性管理工具  Composer


或者Ubuntu 執行底下命令進行安裝:

sudo apt install composer


以Windows安裝為範例:







 接著將PHP資料夾加入環境變數的Path中


找到xampp/htdocs資料夾

執行

xampp\htdocs> composer create-project laravel/laravel blog --prefer-dist

新增Laravel專案



完成後,

再到xampp/htdocs/blog資料夾,

執行

 php artisan serve

系統會提示到該位址即可執行程式

Laravel development server started:


打開瀏覽器輸入網址

看到下圖即表示成功安裝









2018年10月15日 星期一

Monero hardfork與XMR礦池推薦


Monero hardfork


Monero門羅幣,

將於區塊1685555進行分叉,

PoW算法將改為CryptoNightV8 (亦稱為 cryptonight variant 2),

時間約在2018/10/18,

在挖XMR的請更新挖礦工具,




目前已知針對此次分叉有做更新的軟體有:


XMR Stack 2.5.0 ,

Cast XMR 1.5.0 ,

XMRig 2.8.1 ,


此次更新除了改變些許算法為了對抗ASIC礦機以外,

Bulletproofs 在此次更新也會上線,

因為隱匿性造成XMR傳輸的高昂手續費可望獲得緩解,



虛擬貨幣當初設計的初衷,

其中有一項就是隱密性,

而隨著密碼學的發展,

Bulletproofs 就是為了讓虛擬貨幣更有效率的執行加密交易,

除了no trusted之外,

文件縮小至1-2k,

佔用空間減少,

在帳本與傳輸上面,

本就佔有優勢.

故此次更新對手續費降低與傳輸效率,

Bulletproofs有很大功勞



XMR礦池推薦



XMR礦池不少,

目前試用過的礦池列表如下,

部份礦池已經準備好更新,

並且公告於網站首頁,



1.  OMINE - Monero 台灣礦池


  • 礦池網址: xmr.omine.org:3000/5000/7000/9000(Nicehash)/6000(TLS/SSL)
  • 礦池費: 0%
  • 分潤模式: RBPPS 加權 
  • 最小起付額: 0.1 XMR
  • 使用 Payment ID 額外費用: 0.01 XMR
  • 自訂支付門檻: 可用




2.  SupportXMR.com


  • 礦池網址: pool.supportxmr.com:3333/5555/7777/9000(TLS/SSL)
  • 礦池費: 0.6%
  • 分潤模式: PPLNS
  • 最小起付額: 0.1 XMR (預設為0.3 XMR)
  • 自訂支付門檻: 可用




3.  GPUMINE XMR Pool 

  • 礦池網址: xmr.gpumine.org:12000(GPU)/11000(CPU)
  • 礦池費: 1%
  • 分潤模式: PPS
  • 最小起付額: 1 XMR (每月28日達到 0.1 XMR亦可出金)


























2018年10月13日 星期六

SEO基礎-網站結構優化

網站優化主要有兩大課題:

1.   網站結構優化
2.   關鍵字優化

今天主要來介紹:

SEO基礎-網站結構優化


之前提到過

SEO就是搜尋引擎優化(Search Engine Optimization)

為何要做SEO?


不外乎就是為了讓搜尋網站收錄網站,

藉以增加網站的能見度,

如同做生意一樣,

人潮多的地方,

所能聚集的商機也越好,

網站亦同,

不管是賣東西也好,

傳播訊息也好,

假設每一百個人有十個會進入瀏覽網站,

這10%固定的瀏覽量,

如果套用在成千上萬的網路人潮來看,

SEO做得好的網站,

勢必擁有較高的曝光量,

而這也同時是SEO的主要目的



如何讓搜尋引擎收錄網站內容呢?

姑且不論網站內容為何,

要讓搜尋引擎收錄內容,

就必須遵守   Spider   的運作原理,

簡單的講就是討好Spider,

所以有些妨礙Spider抓取,索引,排名網站的行為能免則免:

(這些行為不是不能做, 而是能少做就不要多做)



1.   Flash   /    Java script   連結

網站在追求美觀的時候,

使用一些Flash這沒有什麼問題,

但如果網站頁面只有大型的Flash檔而其他文字內容極少,

就會妨礙Spider索引文字資訊及其相關性,

這代表Spider在抓取該頁面時候,

必須另外費事從Flash中擷取裡面的文字內容和連結,


而Java script連結亦同,

雖說Spider能夠解析Java   script連結,

但在權重較低的網站,

Spider或許就不願意另外花時間執行腳本去追蹤連結,


能簡單扼要就不要讓Spider增加工作負擔


2.   Session   ID

當網站使用Session   ID追蹤使用者時,

會產生唯一的Session ID並加到URL,

這會導致每次Spider抓取同一頁面網站內容時,

會得到不同的URL,

若搜尋引擎能成功認出Session   ID,

當然這就不會是問題,

若否,

則會產生數個相同內容的不同URL,

而這會形成之前所提到的重複內容,

不利於網站排名

3.動態URL

資料庫驅動的網站所產生的,帶有等號問號及參數的網址,

這些URL本身就不利於Spider抓取,

能避免就避免


4.要求登入

Spider不會登入網站,

若網站內容放在一定要會員登入才能看到的區域,

這些內容將不會被搜尋引擎收錄,

原因是因為Spider不會註冊登入網站,

更不用說要帳號密碼登入才能看到的內容了






網站結構優化其實不只這些,

本文只有針對一些會妨礙Spider工作的行為做描述,

這些行為不是不能做,

而是能少做就盡量避免,


若有更好的替代方案的話,

就盡量採取對Spider有利的行為,

例如:

用cookies代替Session ID ,

利用301轉向取代Flash跳轉或Java   script跳轉,

利用CSS取代Java script來做視覺美化,




















2018年10月9日 星期二

英文每日一字 - Plastic

除了中文以外

現在的學生也好上班族也好,

都需要學習第二語言,

甚至也有人精通多國語言,

語言是人與人之間溝通的工具,

今天就生活上的用法,

來介紹今天的主題:

英文每日一字 - Plastic  


Plastic,

單就這個字在翻譯軟體上面可以查到

是塑膠  ,    塑料的意思,




但在國外買東西結帳的時候,

如果店員問

Cash or   Plastic ?


或者:

Do you    want    to   pay   with   cash   or   plastic?


可不是在問是否需要塑膠袋,

店員是在詢問要用現金結帳或者刷卡付費,

這時候如果是刷卡付費的話

可以回答:

I  will   put   it   on   plastic.   (刷卡)


或者現金付費的話:

I   will   pay   in   cash.(付現金)






如果店員沒問自己想知道能否刷卡付費的話,

可以用:

Do you   take   plastic?





身上只有信用卡沒有現金的話,

要如何表達?

I   don't   carry   any   cash   ,    just   plastic.



近來常在網路上面看到,

某某國家大力推行無現金社會,

沒帶現金怎麼買東西呢?

用的就是電子支付或者信用卡.


最後再特別提醒:

Plastic 在消費結帳時就是指信用卡





2018年10月7日 星期日

彰化溪湖糖廠五分車

是的,

來到周末假日,

就是要來下旅遊推薦,

今天的主題就是:


彰化溪湖糖廠五分車



最初五分車的用途在於運送台灣巧克力(黑糖)原料  -   甘蔗

2002年結束製糖之後,

目前轉型以觀光小火車載遊客重遊運送甘蔗的路線


來回全長約七公里的路程,

解說員非常辛苦的全程介紹,



途中除了可看到天鵝湖以外,

還有餓魚池,

長屋頂上面的冬瓜,

體驗鄉土味的同時,

還能聞到傳說中的糞多精,

法國有艾菲爾鐵塔,

溪湖糖廠五分車也能帶您參觀台灣的艾菲爾電塔,

來到溪湖一定要來體驗一下這五分車的獨特魅力


營業時間為早上七點到下午五點三十分,

大人搭乘五分車票價為一百元,







售票亭只在開車前的半個小時才開始售票,

每個小時都有一班車,

由於採自由座方式,

要搭火車的話,

提早十分鐘前往乘車處排隊,



展示的蒸汽火車,

如果要搭乘此類車款,

可挑有此班次的時間前往



若非蒸汽火車的班次,

就是由底下這台車載您瀏覽溪湖風光


傳說中的餓魚池,

池邊有魚飼料販賣機可以投



五分車的由來


由於五分車的軌距為國際標準軌距的一半,

故台灣稱為五分仔,

這五分車的名字便是由此而來




至於艾菲爾電塔與天鵝湖,

就由客官自行前往觀看.



2018年10月6日 星期六

SEO基礎-duplicate content

何謂duplicate content ?

字面上的翻譯為重複內容,

而這重複內容就是指不同網址(URL)的相同內容,

在何時會發生此種情形呢?

例如:

網站能夠在 http/https 中瀏覽,

或者能在 www/非www中瀏覽,

網站可能會使用過多動態網址參數,

這會混淆搜尋引擎,

甚至會讓AMP頁面也被算做重複內容,

這就是今天的主題:


SEO基礎-duplicate content 




Google對重複內容有底下定義:

“Duplicate content generally refers to substantive blocks of content within or across domains that either completely match other content or are appreciably similar. Mostly, this is not deceptive in origin.”

這是說,

重複內容通常指域內或跨域的實質內容,

而這些內容完全一致或者明顯相似,

大多數狀況下,

它們並不是來自於欺騙,



為何上面部分描述標記紅色呢?


這是因為當 抓取,複製,或者引用現有內容時,

Google會視為複製內容,

而部份情況下,

複製內容是為了欺騙搜尋引擎以獲得更高的排名

所以為了不使網站上面的重複內容,

讓搜尋引擎誤解為企圖欺騙或操縱搜尋結果,

可以做以下處理:


1. 避免重複內容


文章建立時,

盡量避免抓取,  複製,引用其他內容,

以避免新文章被判定為複製內容


2.   利用rel = canonical 標記將重複內容導向選定的網址

利用此標記直接告知搜尋引擎,

原創內容正確的網址,

避免搜尋引擎將原創內容判定為複製內容


3. 透過Google提供的URL參數處理工具定義如何處理

直接在Google網站管理員中,

管理URL參數


4. 透過301重新定向網址到選定的URL

透過301重新定向網址到原創內容的URL





詳細的解決方式介紹就請期待下回分解.

這邊就不多做介紹.



針對重複內容最根本的解決方式在於:

忠於原創

搜尋引擎很聰明,

能夠分辨出重複內容,

只有當文章內容為原創,

而非抓取,複製,引用的內容,

才是獲取更高的排名的最高原則.

當然,

重複內容在網路世界無處不在,

為提高網路內容的質量,

忠於原創就從本身做起