2015年3月3日 星期二

在 gitbook 使用 GA(Google Analytics)跟 Disqus 留言板

沒有留言:
需要環境
node.js
npm

安裝 Gitbook 本地端服務

安裝 gitbook 到全域套件中

$ npm install gitbook -g 
到你自己的 Gitbook 書籍中,打入下列指令,你就可以在 http://localhost:5566 看到這本書籍在 Gitbook 上面的樣子了
$ gitbook serve -p 5566

2015年2月22日 星期日

孩子教育的未來

沒有留言:
要教會孩子「投籃理論」出手投籃嘗試,投籃命中再怎麼準也只有 30~40%,所以投不進碰壁的機會時常發生,但你不出手,可以確定的是,命中率一定是 0%,所以要多學會勇敢出手,就有機會命中找到自己的興趣,不出手什麼機會也沒有。

要教孩子學會「口渴理論」,口渴了,就自己會去找水來喝,發現有夢想舞台了,他就會自己去找梯子來搭建更好的舞台。


 

2015年2月10日 星期二

KeJyun 書籍著作

沒有留言:
這些是 KeJyun 在做網站開發學習過程中,遇到的問題或解決的方法,我都會陸續的紀錄到 Gitbook 中,如果有什麼問題或錯誤的地方,也歡迎大家多多指教。

Laravel 4 學習筆記

High Scaling Websites Structure Learning Notes 大型網站架構學習筆記

SEO 學習筆記

http://kejyuntw.gitbooks.io/seo-learning-notes/

Web Developer Learning Resource 網頁開發學習資源

http://kejyuntw.gitbooks.io/web-developer-learning-resource/

Mac OSX 新手入門

Ruby on Rails 學習筆記

http://kejyuntw.gitbooks.io/ruby-on-rails-learning-note/


2015年2月1日 星期日

錢,夠用就好;心,安了就好

沒有留言:
蘇打綠「小時候」歌詞獨白:

「不知道你們是不是跟我一樣,覺得爸爸總是好嚴肅,好難跟他說心事
小時候,每個週末,爸爸都會騎著車,帶我到一個從沒去過的公園玩
但是不知道為什麼,長大後,我們幾乎不講話了
爸爸從來沒有稱讚過我,我也從來沒有說過我愛他
但是幸好我們都在爸爸走之前,說出心裡話
我永遠忘不了,某一天,當我要從醫院病房離開前
爸爸突然叫住我,沉默了幾秒,對我說:『你...要加油喔...』
我點點頭,轉身後眼淚再也停不了」


在跑步時,聽了這首歌的獨白
想到如果某一天,70幾歲,自己年紀大了
回頭來看看自己的人生,到底留下了什麼,有沒有不虛此行

現在我的期望,是希望能夠做個幫助大家都能彼此溝通對話的平台
讓這個世界會能夠更公開透明,減少黑暗,讓台灣因為有我而變得更好
而不是只是為了賺錢,在那爭個你死我活而去工作
人走了,賺再多的錢也帶不走

我對人生目標做的決定是否是正確,我也說不準
但就想到柯P說的:「要判斷事情怎麼做才對,想想50年後回頭看事情做對了沒有」
想想自己 50 年後,再來看看今天的決定,會不會讓以後的我後悔,就覺得心裡踏實許多

「錢,夠用就好;心,安了就好」


2015年1月26日 星期一

在 Laravel 4 使用資源庫 (Repositories) 及服務 (Services) 去降低程式的耦合性

沒有留言:
文章來源:Decoupling your code in Laravel using Repositiories and Services

當開始使用 Laravel 的時候,你可以找到有好幾個地方可以建立你自己的目錄結構,而模型(Models)則是最大的一個結構,Laravel 則是建議模型最好是使用 Eloquent 物件去設計,並告知 Laravel 這個模型指的是哪一個資料表 - 而程式的商業邏輯比較不適合放在模型這個地方。

這邊文章重點在於將不同用途的模型放在不同的地方,藉此去降低程式碼的耦合性,更重要的是特別在你的應用正在成長中且要發展較快的時候,你可以有可重複使用性的程式碼。

我們在這裡會實作資源庫 (Repository) 設計模式結合服務 (Service) 導向的架構,這個是我喜歡在乾淨的 Laravel 安裝時,分離程式邏輯的方法,可能值得注意的是,我過去開發很多 Symfony 且這樣的實做是有很大的參考基礎的。

不同類型的模型

在實作這些元素時,我們最終會留下 3 個不同類型的模型

實體 (Entities):

標準的 Laravel 模型,裡面只有包含設定的變數、被 Eloquent 使用的方法、關聯關係、訪問器及存取器。

資源庫 (Repositories):

使用實體 (Entities) 去取得你的資料,裡面的函式去收集應用程式需要的特定資料集,雖然在裡面的邏輯可能會異動,但是回傳的資料格式應該都是相同的。

服務 (Services):

全域資料邏輯的家,包含被你應用程式的使用的函式,他可以稱為是你的資源庫 (Repositories) ,也是你的資料驗證器 (validates)、建立 session 且包含你的邏輯,這些可以幫助你的控制器 (controller) 變得更為輕盈!

2014年12月30日 星期二

Composer中require與require-dev的差別

沒有留言:
在使用composer安裝套件時常會有些套件使用「require」,有些套件使用「require-dev」的方式去安裝套件,差了一下他們之間使用時機的差異。

使用時機

require:專案必須要使用的套件
require-dev:開發專案時使用的套件(像是測試的套件),在正式環境不需要的套件

在下composer指令時如果沒有指定要安裝require-dev的套件,則require跟require-dev的套件都會被安裝

require跟require-dev的套件都會被安裝

$ composer update

會安裝dev的套件

$ composer update --dev

不會安裝require-dev的套件

$ composer update --no-dev


參考資料



2014年12月29日 星期一

在 Ubuntu 14.04 使用 Homestead 建置 Laravel 4 開發環境

沒有留言:
常常我我們需要開發Web Application時候,都需要花很長的時間把環境建置起來,而Homestead以讓我們透過簡單的設定檔,輕鬆的建置好整個執行環境,讓我們能夠更專注於在開發上
Ubuntu 14.04 64 bit
Homestead 2.0
Laravel 4.2
Vagrant 1.7.1
Virtualbox 4.3 

安裝 VirtualBox

VirtualBox官方網站下載並安裝VirtualBox
$ wget http://download.virtualbox.org/virtualbox/4.3.20/virtualbox-4.3_4.3.20-96996~Ubuntu~raring_amd64.deb
$ sudo dpkg -i  virtualbox-4.3_4.3.20-96996~Ubuntu~raring_amd64.deb 
64位元請下載amd64版本,32位元請下載i386版本



2014年10月27日 星期一

Vagrant 常用指令

沒有留言:
啟用虛擬機器
$ vagrant up
關閉虛擬機器
$ vagrant halt
重新讀取yaml設定檔並重新啟動
$ vagrant provision
使用ssh連線到虛擬主機
$ vagrant ssh 

參考資料

2014年10月26日 星期日

在 Ubuntu 14.04 安裝Consolas字形

沒有留言:
在寫程式的時候需要比較適合程式的字形 Consolas,但是在Ubuntu內沒有此字形,所以我們必須要另行安裝

下載安裝程式碼

$ wget http://webupd8.googlecode.com/files/install-google-fonts

將安裝程式碼設為可執行

$ chmod +x install-google-fonts

建立安裝字形目錄 .fonts

$ mkdir .fonts

執行安裝

$ ~/install-google-fonts

執行完畢即可開始使用 Consolas字形摟~


參考資料


Ubuntu 14.04 桌面空白解決辦法

沒有留言:
在安裝完 Ubuntu 14.04 桌面版後重新開機,輸入密碼進去後發現整個桌面是空白的,應該是桌面顯示套件掛掉的關係



使用快捷鍵 Ctrl+alt+F1 進到Terminal
重新啟動並測試桌面套件是否可以正常運作
try sudo service lightdm restart

方法一


若無法正常運作時,則重新安裝桌面套件
sudo apt-get install --reinstall ubuntu-desktop
安裝完重新開機即可

方法二

安裝 unity 及 compizconfig-settings-manager
sudo apt-get install unity
sudo apt-get install compizconfig-settings-manager
設定顯示設定視窗的位置
export DISPLAY=:0
ccsm
使用按鍵 Ctrl+Alt+F7 (或Ctrl+Alt+F8) 切換到視窗畫面,會看到Compiz設定視窗,找尋 Unity plugin並啟動它,設定完後重新開機即可

參考資訊

2014年6月25日 星期三

使用 git 佈署 Laravel 4 程式

沒有留言:

安裝 Laravel 4 (環境可以是 Ubuntu或是Windows)

$ composer create-project laravel/laravel custom_laravel_folder --prefer-dist
composer create-project [PACKAGE] [DESTINATION PATH] [--FLAGS] 

將安裝完後的 Laravel 4 加入git版本控制

$ cd custom_laravel_folder
$ git init
$ git add .
$ git commit -m "Initial commit"

安裝git server

$ mkdir /home/kejyun/laravel.git
$ cd  /home/kejyun/laravel.git
~/laravel.git$ git init --bare

在Ubuntu 12.04 使用 Nginx 做為 Laravel 4 伺服器

沒有留言:
更新套件
apt-get update && apt-get upgrade
安裝nginx、php5-fpm(解析php)、php5-mcrypt(Laravel 4需求套件)、php5-cli & git(composer需求套件)
apt-get install nginx php5-fpm php5-cli php5-mcrypt git
設定 nginx的VirtualHost
 /etc/nginx/sites-available/default
 server {
        listen   80 default_server;
        root /home/kejyun/laravel/public/;
        index index.php index.html index.htm;
        location / {
             try_files $uri $uri/ /index.php$is_args$args;
        }
        # pass the PHP scripts to FastCGI server listening on /var/run/php5-fpm.sock
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}
修改fpm設定檔
sudo vim /etc/php5/fpm/pool.d/www.conf

listen = /var/run/php5-fpm.sock
修改為
listen = 127.0.0.1:9000
重新啟動php-fpm及nginx
service php5-fpm restart
service nginx restart
修正Laravel 4資料夾群組及寫入權限問題
sudo chgrp -R www-data /home/kejyun/laravel
sudo chmod -R 775 /home/kejyun/laravel/app/storage

Let's play Laravel 4 with nginx!!

參考資料

解決 nginx 使用 php-fpm 時 502 Bad Gateway 問題

沒有留言:
檢查 php-fpm 是否有正常的執行
ps aux | grep php
若沒有正常的執行 php-fpm,移除並重新安裝
sudo apt-get remove php5 php5-cgi php5-fpm
sudo apt-get install php5 php5-cgi php5-fpm
修改fpm設定檔
sudo vim /etc/php5/fpm/pool.d/www.conf

listen = /var/run/php5-fpm.sock
修改為
listen = 127.0.0.1:9000
之後重新啟動 php-fpm的服務即可
sudo service php5-fpm restart

參考資料

2014年6月24日 星期二

在 Ubuntu 14.04 安裝 Laravel 4.2

沒有留言:
使用 composer 指令安裝 laravel 4.2
$ composer create-project laravel/laravel custom_laravel_folder --prefer-dist
composer create-project [PACKAGE] [DESTINATION PATH] [--FLAGS] 
若出現以下訊息表示你沒有安裝 Mcrypt PHP extension
Mcrypt PHP extension required.
Script php artisan clear-compiled handling the post-install-cmd event returith an error


在 Ubuntu14.04 安裝 composer

沒有留言:
若沒有安裝 curl 可以先行安裝
sudo apt-get install curl
要使用composer必須要安裝php套件
sudo apt-get install php5
使用curl下載composer,並把 composer.phar 檔名重新命名為 composer
curl -sS https://getcomposer.org/installer | php -- --filename=composer

調整安裝在 VirtualBox 中 Ubuntu 14.04 的螢幕解析度

沒有留言:
在 VirtuaBox 中安裝好 Ubuntu 14.04 後,螢幕的解析度相當的小,幾乎很難在桌面進行任何操作,可以試著在 Ubuntu 中安裝 VirtualBox 的 Guest Additions 擴充套件即可

安裝時會需要輸入管理者的密碼,安裝好重新開機就可以

2014年2月6日 星期四

讓git使用ssh不須輸入密碼做Clone/Push/Pull Request (Ubuntu12.04)

沒有留言:

在Git Client產生要用來連線的 ssh key

在Ubuntu使用ssh-keygen -t rsa指令產生ssh key,Enter passphrase的時候不要輸入任何東西
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kejyun/.ssh/id_rsa): id_rsa_kejyun
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_kejyun.
Your public key has been saved in id_rsa_kejyun.pub.
The key fingerprint is:
49:6c:bf:01:a0:74:c7:e4:fd:14:85:75:f6:18:f1:63 kejyun@kejyun-VirtualBox

在Git Server加入允許連線的ssh key


Client產生的public key資訊(id_rsa_kejyun.pub)加入到Server~/.ssh/authorized_keys中,因為我在產生key時指定的檔名為id_rsa_kejyun,所以public key則為id_rsa_kejyun.pub

方法1:

將Client產生的id_rsa_kejyun.pub上傳到Server,再使用cat ~/id_rsa_kejyun.pub >> ~/.ssh/authorized_keys指令將public key存入

方法2:

在Server使用編輯器編輯~/.ssh/authorized_keys,直接將id_rsa_kejyun.pub的資料貼到檔案中

設定Client中使用ssh連線的方式

告訴Client的ssh,在連線到指定的主機時使用預設的key做連線

$vim ~/.ssh/config
Host 192.168.11.10
  HostName 192.168.11.10
  User kejyun
  IdentityFile /home/kejyun/.ssh/id_rsa_kejyun

開始使用免密碼做 Clone/Push/Pull Request

git clone ssh://kejyun@192.168.11.10/home/kejyun/test.git
git push origin master
git pull origin master

參考資料

2013年12月13日 星期五

Node.js的MySQL連線管理

沒有留言:
在PHP的環境中,對伺服器發出Request時,PHP才去對MySQL建立連線並撈取或異動資料,而當PHP處理完成的時候會釋放原本的MySQL連線,或是連線斷線時自動重連。

但在使用Node.js去做連線時如果要在請求結束時,並不會自己釋放與MySQL的連線,或者連線斷線時也不會自己重新連線,所以要自己去控制所有的資料庫連線狀況。


我使用的Node.js的MySQL套件是node-mysql

npm install mysql@2.0.0-rc1
npm install felixge/node-mysql

2013年12月11日 星期三

在Ubuntu12.04安裝Node.js

沒有留言:

使用apt-get安裝

在僅使用原始的apt-get安裝,可以安裝舊版的(0.6.x)  Node.js
sudo apt-get install nodejs
若要使用apt-get安裝最新版的node.js,則需要更新套件庫在進行安裝,若原本已經使用apt-get安裝了舊版的node.js,也可以透過此步驟對node.js進行更新
sudo apt-get update
sudo apt-get install -y python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs  

使用nvm(Node Version Manager)安裝

複製套件庫到家目錄中的.nvm資料夾

git clone git://github.com/creationix/nvm.git ~/.nvm

將nvm指令寫到.bashrc裡

echo ". ~/.nvm/nvm.sh" >> ~/.bashrc

重新載入.bashrc檔案(或者重新連線登入亦可)

source ~/.bashrc

安裝Node.js 0.10.22版

nvm install 0.10.22 

指定nvm使用的 Node.js版本

nvm use 0.10.22

預設使用 0.10.22 版本,否則每次重新連線登入,還需要重新 nvm use 一次

nvm alias default 0.10.22

列出所有安裝的版本

nvm ls

列出總共有哪些版本可以安裝

nvm ls-remote 


相關網站

2013年12月8日 星期日

node.js與php共用memcached資料

沒有留言:
我們希望存放在Memcache的資料能夠在php與node.js共存,我們可以在node.js使用php-memcached套件,他們用法與memcached套件相同。

Sample code

php設定快取資料


在node.js讀取php設定的快取資料



備註

在php中可以將整個陣列的資料存放Memcached,不需要經過任何的轉換就可讀取到原陣列的資料,但是若是將要與node.js共用的陣列資料存到Memcached中,node.js會讀取不到php設定的陣列資料(node.js會讀到NaN)

反之若node.js將物件陣列資料存放到Memcached,則php直接讀取node.js設定的物件快取資料,也是讀取不到(php會讀到false)

所以php要與Node.js共用的陣列資料,則必須將物件或陣列轉換成JSON字串資料,再去解析存取

ADS