聚會時間公告: 因應COSCUP 2011, Kalug 8月份休會一次

十二月 24, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» GitLab 快速安裝

gitlab_logo

最近想安裝新版的 GitLab,竟然發現 GitLab 推出快速懶人包,終於可以不用打很多指令來安裝了,大幅降低了安裝困難度,目前支援 CentOS, Ubutnu, Debian 等安裝包,GitLab 各版本也可以從這邊列表找到,另外安裝前請確保你的硬體環境是符合 GitLab 所要求,來看看有沒有這麼簡單安裝。

安裝方式

底下是 Debian 7 安裝方式

wget https://downloads-packages.s3.amazonaws.com/debian-7.7/gitlab_7.6.1-omnibus.5.3.0.ci-1_amd64.deb
sudo apt-get install openssh-server
sudo apt-get install postfix # Select 'Internet Site', using sendmail instead also works, exim has problems
sudo dpkg -i gitlab_7.6.1-omnibus.5.3.0.ci-1_amd64.deb

完成後,你會看到畫面要求您執行 gitlab-ctl reconfigure 來啟動所有服務,檢查服務是否都正常啟動可以透過 gitlab-ctl status 看到底下就代表啟動成功

run: logrotate: (pid 29315) 2180s; run: log: (pid 25339) 2699s
run: nginx: (pid 29886) 2148s; run: log: (pid 25324) 2701s
run: postgresql: (pid 29334) 2179s; run: log: (pid 16414) 3353s
run: redis: (pid 29342) 2179s; run: log: (pid 16313) 3360s
run: sidekiq: (pid 2542) 1282s; run: log: (pid 25303) 2703s
run: unicorn: (pid 2598) 1279s; run: log: (pid 25278) 2704s

如果系統本身有安裝 Nginx,請將 GitLab 預設 80 port 改掉,請修改 /etc/gitlab/gitlab.rb 設定檔,找到底下

nginx['redirect_http_to_https_port'] = 80

修改成

nginx['redirect_http_to_https_port'] = 8088

儲存設定檔後,請重新跑 gitlab-ctl reconfigure 即可,另外對外網址也請設定正確 external_url。另外官方也有寫出 Digital Ocean 也直接推出 One-click install and deploy GitLab,一個月才 10 美金,真是太超過了。

十二月 12, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» Parse 支援台灣繁體中文文件

parse-logo

Parse 月初宣佈將支援簡體、繁體、日文、韓文等語系的文件,為什麼宣佈此消息呢?其實原因最大就是在 Parse 內部統計,全世界亞洲區的流量成長率高達 90 %,加上全球 15 個最大用戶內,亞洲區就佔了六個 India, Japan, Australia, China, Taiwan, Korea。沒看錯,台灣也是榜上有名。雖然不知道台灣有哪些網站用到了 Parse,我自己最主要用 Parse 的原因就是 Push Notification,公司就不用架設兩套伺服器 AppleGoogle GCM。Parse 提供了 JavaScript, PHP SDK, .NET SDK 等。台灣開發者可以直接線上看繁體中文文件了。

十二月 10, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» 解決在 Ubuntu 系統下 Chrome 瀏覽器亂碼

Screenshot from 2014-12-10 22:15:27

UbuntuChrome 瀏覽器一陣子後,突然發現全部的中文介面都變成亂碼,就像上面這張截圖一樣,除了網頁可以正常顯示外,其他像是 Tab 或書籤都變成亂碼,在百度找到這篇解答,解決方式很容易,但是就是不知道原因為什麼這樣改就可以,底下紀錄如何解決此問題。

打開 /etc/fonts/conf.d/49-sansserif.conf 可以看到底下內容

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!--
  If the font still has no generic name, add sans-serif
 -->
        <match target="pattern">
                <test qual="all" name="family" compare="not_eq">
                        <string>sans-serif</string>
                </test>
                <test qual="all" name="family" compare="not_eq">
                        <string>serif</string>
                </test>
                <test qual="all" name="family" compare="not_eq">
                        <string>monospace</string>
                </test>
                <edit name="family" mode="append_last">
                        <string>sans-serif</string>
                </edit>
        </match>
</fontconfig>

找到倒數第四行的 sans-serif 換成 ubuntu 字串,關閉瀏覽器重新開啟即可。

十二月 3, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» 加速 PHP Composer 執行效率

logo-composer-transparent

早上剛起床就看到 DK 發表一篇增加一行程式碼讓 PHP Composer 效率爆增Composer 是 PHP 套件管理工具,現在各大 Framework 都用 Composer 管理套件相依性,但是最讓人擔憂的是,每次執行 composer install 或 update 的時候,機器就會開始哀號,然後等了很久指令才執行完成。今天看到 Github 上 Composer 為了改善執行效率及時間就把 gc disabled。這 commit 引發了很多人迴響,超多搞笑留言圖片。底下有兩種方式可以加速 Composer 執行效率

更新 Composer 到最新版

請透過 composer self-update 將 composer 更新到最新版,因為今天已經將 gc_disable 納入官方程式碼內了。

/**
* Run installation (or update)
*
* @return int 0 on success or a positive error code on failure
*
* @throws \Exception
*/
public function run()
{
    gc_disable();

測試數據如下,原本

$ composer update --dry-run --profile
# Memory usage: 164.29MB (peak: 393.37MB), time: 82.9s

關閉 gc 後

# Memory usage: 163.99MB (peak: 318.46MB), time: 47.14s

如果尚未更新 composer 到最新版,可以透過底下指令:

$ php -d zend.enable_gc=0 composer update --dry-run --profile

其實真正原因是出在 GC,可以參考此留言

This might indeed be a GC issue. If there are many objects created – all of which cannot be cleaned-up. PHP’s GC will kick in frequently trying to clean-up, only to discover that it cannot clean-up anything, and just wastes time/CPU cycles. This might be the reason why you see the effect for big projects (= many objects), but not so much for small projects (= GC is not kicking in frequently). In these cases, disabling GC entirely is a lot faster (at the cost of some more memory consumption ofc). If no-one has checked yet, it might be worth to add gc_disable() to the update/install command.

保留 composer.lock

在還沒有關閉 GC (Garbage Collection) 之前,可以透過 cache 來減少 composer 執行時間,Laravel 本來將 composer.lock 放入 .gitignore 內,現在我們將此行拿掉,也就是不要任意升級版本,避免讓程式 crash 掉。並且透過底下指令來初始化專案,保留 composer.lock 有兩個好處

  • 不會因為 composer update 讓整個專案爛掉
  • Deploy 時 composer install 會直接從本地端抓取相依程式碼

底下為 Deploy 上 Production 時所執行的指令

$ composer install --prefer-dist --no-dev --no-scripts

第一次由於沒有 cache,會比較慢,等到第二次安裝時,就可以減少一大半時間。

十二月 1, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» CodeIgniter 搭配 Homestead 開發環境

CodeIgniter

HomesteadLaravel Framework 所提供出來的懶人安裝環境,大幅降低學習 Laravel 的門檻,大家都知道初學一套 Framework 最重要的是快速寫出 Hello world,如果初學者卡在環境都架設不來,那就更加不用接著學習 MVC 架構了,所以 Laravel 提供了 Homestead,不管你是用 Linux 或 Windows 都可以快速的把開發環境架設起來。相信很多人也從 CodeIgniter 跳往 Laravel 框架了,但是舊的網站還是要維護阿,所以這次透過 Laravel Homestead 一起來把 CodeIgniter 開發環境無痛架設起來,省去新人安裝 Nginx + PHP + MySQL 的時間。

這次直接用之前在成功大學電算中心講課的專案來搭配 Homestead,專案為 CodeIgniter-App,如果尚未安裝 Homestead 指令,可以直接參考我上一篇教學 Laravel Homestead 2.0 介紹,接下來我們一步一步安裝,架設環境為 Debian 7.4。

設定 Homestead.yaml

先將 CodeIgniter-App 程式碼下載到 /home/git 目錄,此目錄可以任意指定

$ git clone https://github.com/appleboy/CodeIgniter-App.git /home/git/CodeIgniter-App

打開 ~/.homestead/Homestead.yaml,原版您的 Laravel 專案設定如下

---
ip: "192.168.10.10"
memory: 2048
cpus: 1

authorize: ~/.ssh/id_rsa.pub

keys:
  - ~/.ssh/id_rsa

folders:
  - map: /home/appleboy/newProject
    to: /home/vagrant/Code

sites:
  - map: homestead.app
    to: /home/vagrant/Code/public

databases:
  - homestead

variables:
  - key: APP_ENV
    value: local

這次增加 CodeIgniter 專案如下

folders:
  - map: /home/appleboy/newProject
    to: /home/vagrant/Code
  - map: /home/git/CodeIgniter-App
    to: /home/vagrant/codeigniter-app

sites:
  - map: homestead.app
    to: /home/vagrant/Code/public
  - map: codeigniter.app
    to: /home/vagrant/codeigniter-app/public

databases:
  - homestead
  - app

這裡可以發現增加了一組 folders、sites 和 databases,這樣就設定完成了

啟動 Homestead

完成後直接透過底下指令來產生相對應設定

$ homestead up --provision

注意的是,如果之前的 Laravel 專案資料庫存在的話,執行 --provision 則會砍掉 homestead 資料庫,然後重新建立新的,所以這邊建議執行 --provision 之前,先把舊的 database 拿掉會比較好。或者是要把初始化資料寫到 after.sh 內也是可以的。

#!/bin/sh

# If you would like to do some extra provisioning you may
# add any commands you wish to this file and they will
# be run after the Homestead machine is provisioned.

mysql -uhomestead -psecret app < /home/vagrant/codeigniter-app/sql/app.sql

增加 host

打開 /etc/hosts 增加新的 domain

172.21.117.2 homestead.app
172.21.117.2 codeigniter.app

最後打開瀏覽器 http://codeigniter.app:8000 就可以看到結果了喔

上述的 CodeIgniter-App 專案可以參考 https://github.com/appleboy/CodeIgniter-App

十一月 28, 2014
» Raspberry PI IR Receiver With Lirc


sudo apt-get install lirc liblircclient-dev
sudo vim /etc/modules

lirc_dev
lirc_rpi gpio_in_pin=18

vim /etc/lirc/hardware.conf
sudo vim /etc/lirc/hardware.conf
sudo /etc/init.d/lirc stop
mode2 -d /dev/lirc0

irrecord -d /dev/lirc0 ~/lircd.conf
irrecord --list-namespace
sudo cp lircd.conf /etc/lirc/lircd.conf
sudo /etc/init.d/lirc restart

~/.lircrc

begin
prog = irexec
button = KEY_0
config = echo "You pressed one"
repeat = 0
end

begin
prog = cc
button = KEY_0
config = 0
repeat = 0
end

cc.py

import RPi.GPIO as GPIO
import lirc


sockid = lirc.init("cc",blocking = False)
#"myprogram", "mylircrc")
#a="/etc/lirc/lircd.conf"
#lirc.load_config_file(a)

GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(7, GPIO.OUT)
while (1):
	try:
		c=lirc.nextcode()
		if '0' in c:
			print(c,GPIO.input(7))
			GPIO.output(7, not GPIO.input(7))
	except:
		break

"""
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
#GPIO.output(7, False)
#GPIO.output(7, True)

GPIO.output(7, not GPIO.input(7))
GPIO.output(7, True)
"""
GPIO.cleanup()

The post Raspberry PI IR Receiver With Lirc appeared first on Kevinwatt's Blog.

十一月 24, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» Laravel Homestead 2.0 介紹

Laravel PHP Framework

在九月寫了 Laravel Homestead 的基礎介紹,最近 Laravel 推出 Laravel Homestead 2.0,在 1.0 套件是沒有支援 homestead 指令,現在 2.0 可以直接使用 homestead 指令,前置安裝 Vagrant + Virtualbox 就不在此介紹了。

安裝 Homestead

如同上面所說,以前是直接 clone homestead 專案下來就包含了全部 config 檔案,2.0 則是直接支援 homestead 指令,可以直接透過 composer 來安裝

$ composer global require "laravel/homestead=~2.0"

完成後可以在使用者目錄發現 ~/.composer/vendor/bin 目錄,此目錄內會含有 homestead 指令,所以只要把 ~/.composer/vendor/bin 寫入到 PATH 變數即可,直接寫到使用者 .bashrc.zhsrc 設定黨內即可,接著如何產生 Homestead 設定檔,請執行底下指令

$ homestead init

到使用者目錄可以看到 ~/.homestead 裡面就含有 Homestead.yaml 設定檔,將此檔案打開

---
ip: "192.168.10.10"
memory: 2048
cpus: 1

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/Code
      to: /home/vagrant/Code

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public

databases:
    - homestead

variables:
    - key: APP_ENV
      value: local

可以發現跟 1.0 不一樣的地方在於,現在 2.0 可以直接指定 Databases,以及區域變數。另外在 ~/.homestead 下可以發現多了 after.sh,詳細說明如下

If you would like to do some extra provisioning you may add any commands you wish to this file and they will be run after the Homestead machine is provisioned.

意思是說,中途要增加任何 command 可以將指令寫到 after.sh 後,直接執行 vagrant provision 即可,而不用登入 vagrant ssh。2.0 變化大致如下

  • 支援 homestead 指令
  • 增加 database 及 variables 設定
  • 增加 after.sh

詳細介紹可以參考 Introducing Laravel Homestead 2.0,更多介紹可以參考 Laravel Homestead 官方文件,或者直接看 Laracasts 教學影片

十一月 2, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» 自動修復 JavaScript Linting-errors 好工具 Fixmyjs

前端工程師撰寫 JavaScript 程式碼後一定會透過 JSHint 驗證程式碼品質,但是 JSHint 只會提醒各位開發者哪些代碼需要修正,工程師還是需要手動去修復這些錯誤,這有點麻煩,所以今天來介紹一套自動修正 JSHint 錯誤的好工具 Fixmyjs,如果大家有寫過 PHP,一定有聽過 PHP-FIG 制定了 PSR-0, PSR-1, PSR-2 等標準,希望 PHP 工程師可以遵守這些規則,而 PHP-CS-Fixer 就是根據 PHP-FIG 來自動修復 PHP 程式碼,讓程式碼可以遵守這些共同制定的標準。

Fixmyjs 的出現解決了 JSHint 的問題,但是大家會問 FixMyJS 幫我們解決了哪些問題,請看底下

  • 自動幫忙補上分號 semicolons
  • 強制轉換 camelCase
  • 幫忙移除 debugger 程式碼
  • 執行雙引號或單引號
  • 自動補上空白
  • Mixed spaces/tabs
  • 去除行尾空白
  • 自動轉換 array literal 和 object literal

更多支援請參考這裡,給個範例大家比較有感覺,可以看一下底下程式碼

var a = Array();
var b = Object();
var c = [];
var d
debugger;
delete c;
a == null;
var e = undefined;
var foo = new Foo;
foo([1, 2, 3,]);
a = 1;
a++;
var x = 1;;
a == NaN;
a != NaN
var q = .25;

透過 fixmyjs 指令轉換,可以得到底下結果

var a = [];
var b = {};
var c = [];
var d;
c = undefined;
a == null;
var e;
var foo = new Foo();
foo([
  1,
  2,
  3
]);
a = 1;
a++;
var x = 1;
isNaN(a);
!isNaN(a);
var q = 0.25;

透過命令列可以直接轉換 JavaScript 檔案

$ npm install fixmyjs -g
$ fixmyjs app.js

另外如果有使用 Sublime Text 編輯器可以直接找 sublime-fixmyjs,當然也可以透過 gulp-fixmyjs 來導入自動修復流程。gulp 可以參考底下

gulp.task 'jshint', ->
  gulp.src 'app/assets/js/**/*.js'
    .pipe $.fixmyjs
      legacy: true
    .pipe gulp.dest 'app/assets/js/'
    .pipe $.jshint()
    .pipe $.jshint.reporter 'jshint-stylish'
    .pipe $.if !browserSync.active, $.jshint.reporter 'fail'

如果你將 legacy 設定為 false,你會發現 JavaScript 的空白 Line 會被移除,這已經回報到官方 Issue,所以現在建議大家還是將 legacy 設定為 true 會比較好,否則程式碼會擠成一團 XD

更多介紹可以直接參考 Explorations In Automatically Fixing JavaScript Linting-errors

十月 7, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» CodeIgniter 終於找到新東家 British Columbia Institute of Technology 英屬哥倫比亞理工學院

CodeIgniter

自從去年 CodeIgniter 宣佈要開始找尋新東家,我就很期待下一個新東家會是誰,終於在今天公佈了新東家 British Columbia Institute of Technology 英屬哥倫比亞理工學院 (BCIT),官方也正式公佈一篇 Your Favorite PHP Framework, CodeIgniter, Has a New Home,去年到現在 EllisLab 就收到大量的候選人信件,但是困難的就是要從一堆候選人中選出一位最適合 CodeIgniter 新雇主,最後決定人選就是 BCIT,BCIT 是一間理工學院學校,裡面有超過 4 萬 8 千名學生,最重要的是,每年學校都會培養 150 名 CodeIgniter 學生,導入這套 PHP Framework 到業界。

最後會由該學校的 James Parry 擔任 CodeIgniter Project Leader,並且由每年訓練優秀的學生加入此 Project 並且持續貢獻原始碼。看到這裡應該很興奮,因為對於 CodeIgniter 3.0 看起來應該不久之後就可以問世了。新的 Repo 網址也變成

https://github.com/bcit-ci/CodeIgniter

九月 29, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» 實戰 CodeIgniter in 成功大學計算機與網路中心

CodeIgniter

第一次在校園內推廣 CodeIgniter 這套輕量級 PHP Framework,很高興受到成功大學計算機與網路中心邀請,這次講的是進階 CodeIgniter 操作與實做,所以我把一些常用到的 CodeIgniter Library 包成一包,當成這次訓練課程,其實一天講下來,有認真實做,其實可以學到蠻大量的。但是作業還是要回家完成才可以。底下是我給的投影片

You must know about CodeIgniter Popular Library from Bo-Yi Wu

投影片內的作業可以直接參考 CodeIgniter-App 此 Repo 包含了底下常用 Library。

九月 12, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» 簡報 GNU Make, Autotools, CMake 簡介

SlideShare 看到一份專門介紹 Makefile 的簡報,寫得非常詳細,在這裡紀錄並分享給大家,有在寫 C/C++ 的朋友們必看阿。搞系統(Linux / FreeBSD)管理的工程師,也是必學工具之一。

GNU Make, Autotools, CMake 簡介 from Wen Liao

九月 11, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» Laravel Homestead 開始支援 HHVM

Laravel PHP Framework

Laravel News 看到這篇 Laravel Homestead – Now with HHVM,也就是官方 Homestead 開始支援 HHVM,現在可以直接透過底下指令升級 Box:

$ vagrant box update

版本會從 0.1.8 升級到 0.1.9,升級過程需要一段時間,最後要啟用 HHVM 服務,請在 Homestead.yaml 加入底下設定

sites:
  - map: homestead.app
    to: /home/vagrant/Code/Laravel/public
    hhvm: true

不用煩惱架設 HHVM 環境了,對開發者真是一大幅音。

九月 10, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» 在 Windows 上安裝 Sublime Text 2 搭配 PHP-CS-Fixer 套件

Sublime_Text_Logo

由於近幾年來 PHP-Fig 發佈 PSR-0 ~ PSR-4 標準,所以在撰寫 PHP 程式碼時,請依照標準,而為了符合這標準,@fabpot 寫了一個轉換工具叫 PHP-CS-Fixer (PHP Coding Standards Fixer) 最主要目的是按照 PSR-1 and PSR-2 的 Coding Style,只要透過 command 就可以將程式碼轉成標準格式。此篇要紀錄在 Windows 搭配 Sublime Text 安裝 PHP-CS-Fixer。

在 Sublime 編輯器可以使 ctrl + shift + p 後選 Install package 找到 PHPCs 點下安裝即可。打開 Preferences -> Package settings -> PHP Code Sniffer -> Settings,裡面把相關路徑補上去即可。底下是參考設定

{
    // Plugin settings

    // Turn the debug output on/off
    "show_debug": true,

    // Which file types (file extensions), do you want the plugin to
    // execute for
    "extensions_to_execute": ["php"],

    // Do we need to blacklist any sub extensions from extensions_to_execute
    // An example would be ["twig.php"]
    "extensions_to_blacklist": [],

    // Execute the sniffer on file save
    "phpcs_execute_on_save": true,

    // Show the error list after save.
    "phpcs_show_errors_on_save": true,

    // Show the errors in the gutter
    "phpcs_show_gutter_marks": true,

    // Show outline for errors
    "phpcs_outline_for_errors": true,

    // Show the errors in the status bar
    "phpcs_show_errors_in_status": true,

    // Show the errors in the quick panel so you can then goto line
    "phpcs_show_quick_panel": true,

    // The path to the php executable.
    // Needed for windows, or anyone who doesn't/can't make phars
    // executable. Avoid setting this if at all possible
    "phpcs_php_prefix_path": "C:\\xampp\\php\\php.exe",

    // Options include:
    // - Sniffer
    // - Fixer
    // - Mess Detector
    //
    // This will prepend the application with the path to php
    // Needed for windows, or anyone who doesn't/can't make phars
    // executable. Avoid setting this if at all possible
    "phpcs_commands_to_php_prefix": ["Fixer"],

    // What color to stylise the icon
    // https://www.sublimetext.com/docs/3/api_reference.html#sublime.View
    // add_regsions
    "phpcs_icon_scope_color": "comment",


    // PHP_CodeSniffer settings

    // Do you want to run the phpcs checker?
    "phpcs_sniffer_run": true,

    // Execute the sniffer on file save
    "phpcs_command_on_save": false,

    // It seems python/sublime cannot always find the phpcs application
    // If empty, then use PATH version of phpcs, else use the set value
    "phpcs_executable_path": "C:\\xampp\\php\\phpcs.bat",

    // Additional arguments you can specify into the application
    //
    // Example:
    // {
    //     "--standard": "PEAR",
    //     "-n"
    // }
    "phpcs_additional_args": {
        "--standard": "PSR2",
        "-n": ""
    },



    // PHP-CS-Fixer settings

    // Fix the issues on save
    "php_cs_fixer_on_save": true,

    // Show the quick panel
    "php_cs_fixer_show_quick_panel": true,

    // Path to where you have the php-cs-fixer installed
    "php_cs_fixer_executable_path": "C:\\xampp\\php\\php-cs-fixer.phar",

    // Additional arguments you can specify into the application
    //
    // Example:
    // {
    //     "--level": "all"
    // }
    "php_cs_fixer_additional_args": {
        "--level": "all"
    },



    // PHP Linter settings

    // Are we going to run php -l over the file?
    "phpcs_linter_run": true,

    // Execute the linter on file save
    "phpcs_linter_command_on_save": true,

    // It seems python/sublime cannot always find the php application
    // If empty, then use PATH version of php, else use the set value
    "phpcs_php_path": "",

    // What is the regex for the linter? Has to provide a named match for 'message' and 'line'
    "phpcs_linter_regex": "(?P<message>.*) on line (?P<line>\\d+)",



    // PHP Mess Detector settings

    // Execute phpmd
    "phpmd_run": false,

    // Execute the phpmd on file save
    "phpmd_command_on_save": true,

    // It seems python/sublime cannot always find the phpmd application
    // If empty, then use PATH version of phpmd, else use the set value
    "phpmd_executable_path": "",

    // Additional arguments you can specify into the application
    //
    // Example:
    // {
    //     "codesize,unusedcode"
    // }
    "phpmd_additional_args": {
        "codesize,unusedcode,naming": ""
    },


    // PHP Scheck settings

    // Execute scheck
    "scheck_run": false,

    // Execute the scheck on file save
    "scheck_command_on_save": false,

    // It seems python/sublime cannot always find the scheck application
    // If empty, then use PATH version of scheck, else use the set value
    "scheck_executable_path": "",

    // Additional arguments you can specify into the application
    //
    //Example:
    //{
    //  "-php_stdlib" : "/path/to/pfff",
    //  "-strict" : ""
    //}
    "scheck_additional_args": {
        "-strict" : ""
    }
}

這裡面需要注意的是底下參數

"phpcs_php_prefix_path": "C:\\xampp\\php\\php.exe",
"phpcs_commands_to_php_prefix": ["Fixer"],
"phpcs_executable_path": "C:\\xampp\\php\\phpcs.bat",
"php_cs_fixer_executable_path": "C:\\xampp\\php\\php-cs-fixer.phar",
"php_cs_fixer_on_save": true,

如果發現沒作用,請打開 sublime console 介面,請直接按快速鍵 ctrl + ~ 就可以看到哪邊設定錯誤。

九月 5, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» 快速安裝 Laravel Homestead 環境

Laravel PHP Framework

在看本篇安裝教學前可以參考翻譯完成的 Laravel Homestead,此篇會紀錄如何在 Ubuntu 底下快速架設 Laravel 環境,對於一般新手而言,剛開始安裝 Laravel 開發環境一定會遇到許多問題,為了解決開發環境,Laravel 推出 Homestead 搭配 Vagrant Box,讓初學者不用為環境問題而煩惱,減少浪費時間在架設 Laravel。簡單來說 Laravel Homestead = Vagrant + VirtualBox + Laravel 安裝包。底下簡單幾個步驟就可以完成 Laravel 開發環境。

步驟一:事前準備

由於 Laravel Homestead 是由 Vagrant + VirtualBox 組成,所以環境請先安裝好這兩個套件

假如您是 Windows 開發環境,請多安裝 Bash Tool,完成後你需要透過 Vagrant 下載封裝好的安裝包

$ vagrant box add laravel/homestead

由於檔案還蠻大的,需要一段時間,請耐心等候

步驟二: 安裝 Homestead 程式碼

此部份為 Vagrant 的設定檔,請直接抓取官方 Homestead 程式碼

$ git clone https://github.com/laravel/homestead.git Homestead

步驟三: 設定虛擬目錄

此步驟為設定開發虛擬目錄及相對應主機名稱,請先打開 Homestead.yaml

---
ip: "192.168.10.10"
memory: 2048
cpus: 1

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/Code
      to: /home/vagrant/Code

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public

variables:
    - key: APP_ENV
      value: local

這邊需要注意的就是 folderssites 兩項設定,假設今天你有兩個 Laravel 網站需要設定,環境相關路徑如下

# 網站一
主目錄: /home/git/laravel_1
public 目錄: /home/git/laravel_1/public
網域名稱: a.tw
# 網站二
主目錄: /home/git/laravel_2
public 目錄: /home/git/laravel_2/public
網域名稱: b.tw

則我們在 Homestead.yaml 內則設定如下

folders:
    - map: /home/git/laravel_1
      to: /home/vagrant/laravel_1
    - map: /home/git/laravel_2
      to: /home/vagrant/laravel_2

sites:
    - map: a.tw
      to: /home/vagrant/laravel.tw/public
    - map: b.tw
      to: /home/vagrant/laravel.tw/public

步驟四: 設定主機名稱

設定連接虛擬目錄的網域名稱,請打開 /etc/hosts 加入兩行設定

127.0.0.1 a.tw
127.0.0.1 b.tw

之後就可以透過這兩個虛擬網域來開發了

步驟五: 啟動 Vagrant up

最後請在 Homestead 目錄下執行 vagrant up 啟動訊息可以發現底下 port mapping

default: 80 => 8088 (adapter 1)
default: 3306 => 33060 (adapter 1)
default: 5432 => 54320 (adapter 1)
default: 22 => 2222 (adapter 1)

如果 port 已經被佔用,請修改 scripts/homestead.rb

# Configure Port Forwarding To The Box
config.vm.network "forwarded_port", guest: 80, host: 8088
config.vm.network "forwarded_port", guest: 3306, host: 33060
config.vm.network "forwarded_port", guest: 5432, host: 54320

如果你要啟動時更新系統套件及 composer 話請加入底下程式碼

# Copy The Bash Aliases
config.vm.provision "shell" do |s|
  s.inline = "cp /vagrant/aliases /home/vagrant/.bash_aliases"
end

改成

# Copy The Bash Aliases
config.vm.provision "shell" do |s|
  s.inline = "cp /vagrant/aliases /home/vagrant/.bash_aliases"
  s.inline = "sudo apt-get update"
  s.inline = "sudo composer self-update"
end

透過 vagrant ssh 可以登入系統,目前系統預設環境已經升級到 PHP 5.6.0 了,感謝 Laravel 作者更新 Box。

PHP 5.6.0-1+deb.sury.org~trusty+1 (cli) (built: Aug 28 2014 14:55:42) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
    with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans

如果你的 Hoststead 並非是 5.6.0 環境,請直接透過 vagrant box update 更新 Box。最後補上啟動截圖

快速安裝 Laravel Homestead 環境

九月 1, 2014

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» Laravel 4.2 繁體中文文件完整上線

Laravel PHP Framework

Laravel 是目前最火紅的 PHP Framework,但是對於第一次接觸 Framework 的使用者,安裝或學習方面一定會遇到重重困難,而為了降低學習門檻,網路上集結很多好朋友一起加入翻譯,經過了半年時間,快速的完成 4.2 版本的翻譯文件,雖然 4.3 版本在年底即將推出。這次要好好感謝 Facebook Laravel Taiwan 群組,透過台北的小聚會來定期 review 及分配翻譯項目,才可以在這麼短的時間完成翻譯內容,果然團結力量大。目前線上內容已經翻譯完成,但是還需要網路上各位大大來潤稿,Laravel TW 的 Github 在這裡,若要參與翻譯,請直接看 Docs Repo,有人常常問我,不會 Git 可以幫忙嗎?答案是當然可以阿,可以直接將介面切換到瀏覽模式,找到底下符號,按下編輯,修改完成,拉到底下按下送出就可以了喔

laravel_github

最後附上 Laravel 台灣官網,還沒嘗試過 Laravel 可以直接先看中文文件。

八月 18, 2014
» export unsigned apk

去年 Android SDK export unsigned apk package 方法改了, 改成
jarsigner -verbose -keystore ~/.android/debug.keystore CV.webview.apk androiddebugkey

Keystore password: android

The post export unsigned apk appeared first on Kevinwatt's Blog.

八月 12, 2014