busybox iptunnel 噴出錯誤訊息

最近在弄新案子,用的是 Atheros solution (被高通買下),發現 SDK 裡面已經有更新到 Busybox 1.15,由於在建 ipv6 tunnel 時候必須用到 ip 這指令,當然必須支援 iptunnel,當我把 busybox 選項打開就噴出底下錯誤訊息:

busybox-1.01/networking/libiproute/libiproute.a(iptunnel.o):iptunnel.c:(.text+0x574): more undefined references to `__cpu_to_be16’ follow 在 Google 大神指示下找到一篇答案 修改 networking/libiproute/iptunnel.c

#include  
# 後面加上 
#include 

加速開發 CSS 工具: Sass

從來沒想過在開發 Web 網站過程,CSS Style 還可以程式化,設定變數來控制 CSS,今天來介紹一套用 command line 來轉換 CSS 的 Web Framework Plugin: SASS (Sassy CSS),可以參考 SASS 的 Change log 版本差異,目前最新版本 3.0 以後開始支援 CSS3 做開發,底下先來介紹如何安裝: 作者是在 Ubuntu 10.10 的環境下安裝,利用 apt 方式先將環境需要的軟體安裝好 # 安裝 Ruby 環境 $ sudo apt-get install ruby $ sudo apt-get install rake $ sudo apt-get install rubygems Ruby 的安裝只需要一行指令 gem install sass 另外也可以透過 git 方式來安裝 git clone git://github.com/nex3/sass.git cd sass rake install 安裝好就會 bin 目錄多出了 sass sass-convert scss 3個指令,如何轉換呢?也相當容易 mv style. [Read More]

版本控制 version control git clean 使用時機

在做公司的每一個案子,我都會使用 git 來做版本控制,雖然公司只有用 svn 控管,但是只要網路掛掉,就不能做任何事情了,更不用說 svn Server 掛點,因為 git 開 branch 免錢,因此每當我拿到新案子就按照 Git 版本控制 branch model 分支模組基本介紹 開了固定幾個 branch,由於剛開始 git init 沒有把 .gitignore 寫好,所以 commit 了一堆 *.o 或者是 *.ko 類似的檔案,我用了 git rm –cached 方式砍了,結果在切換 branch 的時候出現底下錯誤訊息: error: Untracked working tree file ‘XXXXXXXX’ would be overwritten by merge. 這是因為當你 git rm –cached 檔案之後,切換 branch 時候會遇到衝突,本來的 master 分支還是存在這些檔案阿,因此這時候就要靠 git clean 來清掉移除檔案,可以利用 git help clean 來查看使用手冊。 Ref: Force git to overwrite local files on pull. [Read More]
git  svn 

Plurk API 2.0 beta 出來了 (OAuth Core 1.0a)

之前 Plurk 剛推出 API 讓大家可以使用,當時蠻多使用者相繼推出各式語言的支援,像是 php-plurk-api: PHP implementation,而我也將此程式改寫到 CodeIgniter-Plurk-API,然而現在官方又推出了 Plurk API 2.0 beta,不同的是 2.0 用了 OAuth 保護個人隱私,它提供了標準讓開發者可以利用 OAuth 實做任何 application,噗浪官網也希望各位開發者可以儘快將 API 轉成 2.0,當然也是要額外註冊 Plurk App。 底下幾點是 API 2.0 跟原來 API 的差異處:

  • Plurk API 2.0 不需要登入作認證,然而原來的 API 是基於 session base 做開發
  • 網址改變,用 http://www.plurk.com/APP/ 取代原來的 http://www.plurk.com/API/
  • 現在每個 Plurk API 2.0 請求都會按照 OAuth Core 1.0a 標準
  • 所有 input/output 參數跟原來都是一樣,只是現在不需要 api_key 在參數里面 大家註冊之後,可以拿到一組 App Key,就可以開始使用了 ^^

快速安裝 Amazon EC2 LAMP 環境 (EC2 Console)

已經紅了一陣子的 Amazon 雲端服務,本篇來介紹如何使用 Amazon EC2 Linux 安裝 LAMP (Linux Apache MySQL PHP) 環境,衝著 Amazon 推出的新玩家註冊開始為期**一年的免費**,當然也是有一些限制條件,可以參考 EC 2 收費標準及介紹,底下這圖片就是一年內免費的方案,其實對於剛學習 Linux 的玩家而言相當足夠。 如何設定及註冊 Amazon EC2 可以參考底下連結教學: 什麼是雲端服務?阿正老師教你免費玩Amazon EC2雲端主機!(上篇) 阿正老師教你免費玩Amazon EC2雲端主機(下篇):主機實戰篇 看完這兩篇大概對於 Amazon 有一定程度的瞭解,接下來就是如何進入玩家們所安裝好的 Amazon Linux 主機,由於 EC 2 的服務主機會常常自動更新 IP,剛開始可以到 Console 看到底下 public DNS: 不過這 DNS IP 都會常常更新,所以剛開始都要常常來這邊看,玩家們可以用剛剛註冊此機器的 mykey.pem 透過 ssh 的方式登入機器,底下是在 Ubuntu 的操作 1. 先設定檔案權限,請將檔案權限改成 400 chmod 400 mykey.pem 2. 透過 ssh 軟體 pietty (上面阿正老師連結有教學)或 Linux ssh 指令 ssh -i mykey.pem ec2-user@ec2-XXXXXX. [Read More]

PHP curl error: SSL certificate problem, verify that the CA cert is OK

之前在 CodeIgniter 寫了 CodeIgniter-Google-URL-Shortener-API 縮短網址的 goo.gl API Library,也在國外 CodeIgniter 論壇發表了一篇,不過在論壇有人回覆安裝好之後不能使用,會直接噴出底下錯誤訊息:

Severity: Notice Message: Trying to get property of non-object Filename: controllers/google_url.php Line Number: 24 之後我在 Windows 利用 Appserv 架設好這環境,發現是同樣問題,但是在 FreeBSDUbuntu 上面都不會出現這錯誤訊息,接著在程式馬上面看看 curl 吐出什麼資料:

Curl error: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 把這錯誤訊息拿去 Google 發現到這篇解法 Curl: SSL certificate problem, verify that the CA cert is OK,只要跳過驗證憑證就可以了

curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
可以參考

PHP 官方 curl_setopt 的設定說明。

在 Ubuntu 底下快速安裝 CakePHP Framework 環境

最近因為別的專案用到 CakePHP 這套 PHP Framwork,剛好有這機會來學習 CakePHP,目前已經 Release 到 1.3.8 & 1.2.10 Stable,本篇紀錄如何在 Ubuntu 10.10 安裝 1.3.8 版本,本人不推薦用 2.0, 因為踩到很多雷阿,大家可以到 CakePHP GitHub 找尋自己想要的版本,安裝環境如下: Ubunut 10.10 32 Desktop 版本 Apache/2.2.16 (Ubuntu) PHP 5.3.3-1ubuntu9.5 with Suhosin-Patch (cli) MySQL 5.1.49 1. 先下載 1.3.8 版本 2. 解壓縮到 /var/www 底下 3. 設定 apache virtual host 複製 virtual host 設定檔 cp /etc/apache2/sites-available/default /etc/apache2/sites-available/cakephp 修改設定檔 ServerName cakephp.localhost DocumentRoot /var/www/cakephp/app/webroot Options All AllowOverride All Order allow,deny allow from all 4. [Read More]

svn 恢復略過衝突檔案 (conflict file)

當我們利用 svn up 更新程式碼,如果遇到修改相同檔案的相同地方,就會發生衝突 (conflict) 此時就必須修改或者是略過,當選擇略過此檔案就會出現底下訊息

Skipped ’lib/logs/logDB.txt’ Skipped ’lib/confs/Conf.php’ At revision 912. Summary of conflicts: Skipped paths: 2 之後怎麼用 svn up 更新檔案,都會因此被略過,那該怎麼恢復被略過檔案的狀態,讓它們可以繼續被更新呢?網路上找到一篇 svn local obstruction, incoming add upon merge 解法,用 svn resolve 來解決問題,只要針對該檔案打入底下指令即可

svn resolve --accept working lib/confs/Conf.php
svn resolve --accept working lib/logs/logDB.txt

在 Ubuntu 安裝或升級 Git 版本控制的3種方法

Git 是目前還蠻 popular 的一套版本控制軟體,很多公司及大小型專案都用 g是it 來控管流程,或者是搭配 redmine 專案管理,然而 git 大家都會想到 github 這個儲存空間,免費註冊就有 300MB 的空間讓大家使用,如果對於 git 的使用方式,我推薦一個非常好的網站,就 git wiki,這網站不只是教你 git 指令應用,還收集了很多不錯的網站,底下介紹三種 git 的安裝方式: 1. Ubuntu 底下就用 apt-get 指令 # git core apt-get -y install git-core git-doc git-gui gitk 如果你有用 Ubuntu 介面,就可以安裝 git-gui 跟 gitk 還不錯 2. 下載 Git Source 打包檔,並且編譯 apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev wget http://kernel.org/pub/software/scm/git/git-1.7.5.tar.gz tar -zxvf git-1.7.5.tar.gz cd git-1.7.5 make prefix=/usr/local all sudo make prefix=/usr/local install 3. [Read More]