星期日, 2月 08, 2015

【OSX】osx10.10 sb x-fi surround 5.1 pro 解決音量控制

sb x-fi surround 5.1 pro  在OSX 是不支援 硬體音量旋轉鈕控制,
而且連 電腦內部的 音量控制也無法設定大小聲。
不過可以透過 soundflower 和 au lab 來進行橋接的方式,
電腦內部音量控制啓用。


  1. 下載 https://code.google.com/p/soundflower/
  2. 下載 https://developer.apple.com/downloads/index.action#
  3. Audio Tools for Xcode - Xcode 6.1
  4. 安裝 重開
  5. 開啓 au lab 選項 Stereo in/stereo out
    1. Audio input device: Soundflower
    2. Audio output device: SB X-FI
    3. Create Document
  6. 聲音輸出 選擇 Soundflower



星期六, 1月 03, 2015

「Linux」架設 RSS 伺服器

自從 google reader 掛了後,
用了 其他 rss 服務(feedly...) 就再也找不到 以前那種使用習慣的感覺了。

前往官方網站 tt-rss 下載他的專案, 系統需要 php 5.3以上 
解壓縮在 你的 web 伺服器 設好自己的目錄,
前往 <www.xxx.xxx>/<project>/install 即可進入安裝畫面,
需要事先建立好 要給他運作的 資料表,按照安裝畫面填寫,
很容易就可以安裝成功。

之後 需要在手機APP 看自己伺服器的RSS ,
丟到 plugins 的資料夾 plugins/fever  之後 開啓 fever


設定個人密碼:


開啓第三方 API:


server 路徑 要設定 <www.xxx.xxx.xx>/<project_name>/plugins/fever/









星期二, 12月 30, 2014

「JAVAFX」簡單JAVAFX使用心得

記得在4年前曾經爲朋友需求用 javafx 寫過簡易的 WEB APP,
如今過了4年 重新再去接觸,感覺當時寫的不曉得是後來改變很多 還是記憶淡忘,
至此大部分都看不懂了。

首先javafx 有個簡易可以拖拉點選編輯LAYOUT的工具 Scene Builder,
這個工具就類似ANDROID 的LAYOUT編輯界面,但是感覺比較好用。

雖然說 javafx 似乎不怎麼被看好,不過對於快速開發簡易的工具,是很容易的,

使用 NetBeans 建立一個 fxml 的專案後,會自動建立 FXMLDocumentController
裏面抓取 fxml 的元件 fx:id="vText_filePath"
只要寫
@FXML
 private Text vText_filePath;
感覺蠻方便的,而BUTTON 的ACTION事件 也可以使用onAction= 來設定,

拖拉檔案至元件裏面 可以使用setOnDragOver setOnDragDropped
這可以參考: http://docs.oracle.com/javafx/2/drag_drop/HelloDragAndDrop.java.html

而在使用 TableView 裏面的 TableColumn欄位參數設定的時候,
不曉得我哪裏有設錯 他一直無法映射到我的函數
最後使用手動的方式取出 我自定的函數 getDataPath(),
而函數回傳格式 StringProperty  
變數設定 private StringProperty datapath =new SimpleStringProperty(); 
        vTableCol_path.setCellValueFactory(
                new Callback<CellDataFeatures<pathList, String>, ObservableValue<String>>() {
                    @Override
                    public ObservableValue<String> call(CellDataFeatures<pathList, String> param) {
change body of generated methods, choose Tools | Templates.
                        return param.getValue().getDataPath();
                    }
                });
而我在 tableView中 最右邊 有多一個刪除的按鈕
ButtonCell 是自定 extends TableCell<Record, Boolean>的物件
        vTableCol_btn_deletePath.setCellFactory(
                new Callback<TableColumn<Record, Boolean>, TableCell<Record, Boolean>>() {
                    @Override
                    public TableCell<Record, Boolean> call(TableColumn<Record, Boolean> p) {
                        return new ButtonCell(vTable_selectFilePathList, mlist);
                    }
                });
在 ButtonCell 中如果使用刪除的功能,會發現 資料有刪除但按鈕卻還是停留在畫面上
這時需要在 updateltem 中做修改
    @Override
    protected void updateItem(Boolean t, boolean empty) {
        super.updateItem(t, empty);
        if (!empty) {
            setGraphic(cellButton);
        } else {
            setGraphic(null);
        }
    }
最後不得不說 小的APP 編譯的速度不快10~30多秒

要開發小工具都可以輕易的完成,而且還是跨平臺。





星期一, 12月 29, 2014

「2014」END


  1.  第一次離職 
  2.  第一次獲得名片
  3.  2014年初 對於 html5 配上 jquery 做動態繪圖以及播放聲音的熟悉。
  4.  跑了人生第一次的馬拉松在高美。
  5.  人生第一臺 apple macbook pro
  6.  熟悉 win2008 架設環境
  7.  php 配上 java 做excel word pdf 輸出
  8.  第一把 cherry g80-1865 紅軸 鍵盤
  9.  爲前公司開發的php 框架滿2年
  10.  使用 剛推出不久 swift 開發爬蟲
  11.  臺中大坑景點幾乎跑片了
  12.  晚上8點上合歡山北鋒拍銀河
  13.  第一次日本東京行
  14.  使用 laravel 開發 個人履歷
  15.  使用 nodeJS 作爲伺服器 開發 android 個人平臺
  16.  建立公司內部專案 git server
  17.  瞭解 angularJS web 用法
  18.  ionic 用法
  19. 第一臺 iphone 
  20. 第2個個人網站



星期二, 7月 22, 2014

「PHP」Laravel osx 設定 .htaccess

「PHP」Laravel osx 設定 .htaccess


apache config

  1. 設定 vim httpd.conf 的 AllowOverride All
  2. sudo apachectl restart
<VirtualHost *:80>

    DocumentRoot /Library/WebServer/Documents
    <Directory /Library/WebServer/Documents>
        AllowOverride All
        Allow from all
    </Directory>

    RailsEnv development

    Alias /noteBox /Users/cake/Web_www/noteBox/public
    <Directory  /Users/cake/Web_www/noteBox/public>
        #PassengerAppRoot  /home/User/web_ror/home/public
        PassengerAppRoot  /Users/User/Web_www/noteBox
        Allow from all
        Options -MultiViews
        #RailsBaseURI /rails
    </Directory>

</VirtualHost>

Laravel 中 public/.htaccess

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
%23%23%23%20%u300CPHP%u300DLaravel%20osx%20%u8A2D%u5B9A%20.htaccess%0A---%0A%0A%23%23%23%23%20apache%20config%0A1.%20%u8A2D%u5B9A%20vim%20httpd.conf%20%u7684%20AllowOverride%20All%0A2.%20sudo%20apachectl%20restart%0A%0A%60%60%60%20conf%0A%3CVirtualHost%20*%3A80%3E%0A%0A%20%20%20%20DocumentRoot%20/Library/WebServer/Documents%0A%20%20%20%20%3CDirectory%20/Library/WebServer/Documents%3E%0A%20%20%20%20%20%20%20%20AllowOverride%20All%0A%20%20%20%20%20%20%20%20Allow%20from%20all%0A%20%20%20%20%3C/Directory%3E%0A%0A%20%20%20%20RailsEnv%20development%0A%0A%20%20%20%20Alias%20/noteBox%20/Users/cake/Web_www/noteBox/public%0A%20%20%20%20%3CDirectory%20%20/Users/cake/Web_www/noteBox/public%3E%0A%20%20%20%20%20%20%20%20%23PassengerAppRoot%20%20/home/User/web_ror/home/public%0A%20%20%20%20%20%20%20%20PassengerAppRoot%20%20/Users/User/Web_www/noteBox%0A%20%20%20%20%20%20%20%20Allow%20from%20all%0A%20%20%20%20%20%20%20%20Options%20-MultiViews%0A%20%20%20%20%20%20%20%20%23RailsBaseURI%20/rails%0A%20%20%20%20%3C/Directory%3E%0A%0A%3C/VirtualHost%3E%0A%60%60%60%0A%0A%23%23%23%23%20Laravel%20%u4E2D%20public/.htaccess%0A%0A%60%60%60%0A%3CIfModule%20mod_rewrite.c%3E%0A%20%20%20%20%3CIfModule%20mod_negotiation.c%3E%0A%20%20%20%20%20%20%20%20Options%20-MultiViews%0A%20%20%20%20%3C/IfModule%3E%0A%0A%20%20%20%20RewriteEngine%20On%0A%0A%20%20%20%20%23%20Redirect%20Trailing%20Slashes...%0A%20%20%20%20RewriteRule%20%5E%28.*%29/%24%20/%241%20%5BL%2CR%3D301%5D%0A%0A%20%20%20%20%23%20Handle%20Front%20Controller...%0A%20%20%20%20RewriteCond%20%25%7BREQUEST_FILENAME%7D%20%21-d%0A%20%20%20%20RewriteCond%20%25%7BREQUEST_FILENAME%7D%20%21-f%0A%20%20%20%20RewriteRule%20%5E%20index.php%20%5BL%5D%0A%3C/IfModule%3E%0A%60%60%60%0A%0A%0A%0A

星期一, 10月 14, 2013

【Mac】編譯Lua

Mac 編譯 lua

  1. 首先下載原始碼 http://www.lua.org/ftp/這裡使用 lua-5.1.4
  2. 因為這台MAC是64位元的,則 libgdx 的 java端 和 andorid 端用的LUA 編譯出來的一個是64 一個則是32.
  3. 解壓縮修改 src/Makefile
  4. 編譯 make macosx
  5. 取出 luac 就可以做預編譯,之後在放到專案中。

Makefile

macosx:
    $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-lreadline"
# 32: $(MAKE) all MYCFLAGS="-arch i386 -DLUA_USE_LINUX" MYLIBS="-arch i386 -lreadline"
# 64: $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-lreadline"

星期三, 9月 25, 2013

Arch linux Linode Web Server(Apache ,MariaDB ,PHP ,ROR)

Arch linux Linode Web Server(Apache ,MariaDB ,PHP ,ROR)

 最近租了個VPS,把EC2停掉了,也順便體驗一下什麼是開發速度極快的ROR,

在設定上還蠻麻煩的,也參考了些網路一些大大的資料。

最後可以跑 PHP 和 ROR 在同一個伺服器。

Set local

  1. vim /etc/locale.gen
  2. locale-gen

Add user(CAKE)

  1. useradd CAKE -m -s /bin/bash
  2. passwd CAKE

Pacman Update

  1. pacman -Syu
  2. pacman-db-upgrade
    • [發生無法更新時]
    • pacman-key --init
    • pacman-key --populate archlinux

Install

  1. pacman -S base base-devel
  2. pacman -S sudo
  3. pacman -S bash-completion
  4. pacman -S git
  5. pacman -S nodejs
  6. pacman -S ruby

Set Sudo User

  1. visudo
  2. [ADD username(CAKE) ]
    • CAKE ALL=ALL (ALL)
  3. [SAVE & EXIT ]
  4. 鎖住 root : passwd root -l
  5. logout

防火牆

  1. pacman -S ufw
  2. sudo ufw enable
  3. port
    • sudo ufw limit 22/tcp
    • ufw allow 80/tcp
  4. [開機啟動]
    • systemctl enable ufw.service

Mysql

  1. install MariaDB
  2. sudo systemctl start mysqld
  3. sudo systemctl enable mysqld
  4. sudo mysql_secure_installation

ROR

  1. gem install rails
    • gem install rails --no-ri --no-rdoc
    • gem update
    • [Apache]
      • [$] gem install passenger
      • [$] passenger-install-apache2-module
      • set config [apache config]
  2. gem install mysql2
  3. in your porject Gemfile file 設定套件檔案
    • 增加 gem 'mysql2' #增加mysql套件
  4. bundl e update raiils

apache config

##### IN LoadModule(load passenger_module(ror) )
LoadModule passenger_module /home/cake/.gem/ruby/2.0.0/gems/passenger-4.0.18/buildout/apache2/mod_passenger.so
PassengerRoot /home/cake/.gem/ruby/2.0.0/gems/passenger-4.0.18
PassengerDefaultRuby /usr/bin/ruby

…

##### VirtualHost and Alias(set php alias and ror alias)
<VirtualHost *:80>

DocumentRoot /srv/http
<Directory /srv/http>
    Allow from all
</Directory>

Alias /_test2013/ /home/cake/web/
<Directory "/home/cake/web/">
    Options Indexes
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

RailsEnv development

Alias /home /home/cake/web_ror/home/public
<Directory  /home/cake/web_ror/home/public>
    #PassengerAppRoot  /home/cake/web_ror/home/public
    PassengerAppRoot  /home/cake/web_ror/home
    Allow from all
    Options -MultiViews
    #RailsBaseURI /rails
</Directory>

</VirtualHost>

ROR create DB

  1. rails g model YOUR_MODEL_NAME name:string phone:integer birthday:date
  2. db/migrate/20130923065726_create_pbooks.rb
    • 為模組設定檔
  3. app/models/pbook.rb
    • 模組端
  4. rake db:migrate # (建立)模組設定檔

---- 2014 01/10 UPDATE ----

Mac ROR 設定 以及 別名設定

Apache config

<VirtualHost *:80>

DocumentRoot "/Library/WebServer/Documents"
<Directory /Library/WebServer/Documents>
    Allow from all
</Directory>

Alias /_test2014/ /Users/cake/www_web/php_web/
<Directory "/Users/cake/www_web/php_web/">
    Options Indexes
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

RailsEnv development

Alias /ruby_blog /Users/cake/www_web/ror_web/blog/public
<Directory  /Users/cake/www_web/ror_web/blog/public>
    PassengerAppRoot  /Users/cake/www_web/ror_web/blog
    SetEnv RAILS_RELATIVE_URL_ROOT /ruby_blog
    Allow from all
    Options -MultiViews
    #RailsBaseURI /rails
</Directory>

</VirtualHost>


ROR routes your Application add

  scope ENV['RAILS_RELATIVE_URL_ROOT'] || '/' do    # get "home/index" => "home#index"    resources :home     # resources :another_controller  end



Myapp::Application.routes.draw do
  scope ENV['RAILS_RELATIVE_URL_ROOT'] || '/' do
    resources :controller
   resources :another_controller
   match 'welcome/', :to => "welcome#index"
   root :to => "welcome#index"
end end


### 2014 01 22 update
如果使用 ubuntu 設定時
1. 將 passenger 設定資料 建立檔案 放入 /etc/apache2/modes-available/ 並且建立連結到 mods-enabled
     # ln -s /etc/apache2/modes-avaliable/ror.load /etc/apache2/modes-enabled/ror.load
2. 虛擬目錄設定 放入 sites-available 同樣建立捷徑至 sites-enabled
3. 也可以使用 sudo a2ensite XXXXX 建立捷徑
4. sudo apache2ctl configrtest  測試是否有誤
5. sudo apache2ctl restart

PS  如果發生 403 錯誤,則/etc/apache2/apache.conf 註解掉
<Directory />
...
</Directory>







星期日, 6月 23, 2013

【MAC】 GIT + DropBox + SourceTree 專案版本管理

網路有很多教學了,今天剛好加班,帶着筆電實做以一次。

當主機 和 筆電 有專案要同步的問題 一直困擾我很久,

當初在ARCH LINUX的時候 是使用HG + DROPBOX 來進行同步,

光是設定就超級麻煩的了。

如今 主機 和筆電 都裝成黑蘋果了,剛好之前的專案使用GIT,

一用就上癮了。

1. 下載GIT 找個適合自己MAC
http://code.google.com/p/git-osx-installer/

2.下載 SourceTree ,這真的是超級強大的工具
http://www.sourcetreeapp.com/

3.下載 Dropbox ,這個鬼東西 和 pathfinder 衝到的樣子CPU都給我跑100%以上。

4.在DROPBOX 建立一個放專案的目錄 並且 git --bare init 你的專案

5. #git add .   常見的GIT ADD your files

6.#git commit -m 'project init'  常見的GIT commit

7. 之後 開啟 SourceTree 使用 Clone Repository

8. 之後就出現超級好用的GIT管理畫面了,連ADD COMMIT PUSH 一堆有的沒得都是 按鈕。


9.若在PUSH 發生master -> master (branch is currently checked out) 什麼鬼的

修改增加 .git/config
[receive]   
denyCurrentBranch = ignore

星期六, 4月 13, 2013

【MAC】【Android】編譯 LUA 以及 LUAJAVA 並且導入 libgdx 專案

這一連串的動作在LINUX已經夠麻煩了,在MAC也是OOXX的,而且做完一次就不會想在弄第二次。

(一) 編譯 32BIT的 LUA ,也可以不需要做這個動作,純粹是做筆記。




1.編輯 src/Makefile

macos:          $(MAKE) all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-lreadline"  
修改為 
macos: $(MAKE) all MYCFLAGS="-DLUA_USE_LINUX -arch i386" MYLIBS="-lreadline -arch i386" 


2.之後就編譯 以及 安裝
make macossudo make install 
3.留意 IANSTALL 路徑

cd src && mkdir -p /usr/local/bin /usr/local/include /usr/local/lib /usr/local/man/man1 /usr/local/share/lua/5.1 /usr/local/lib/lua/5.1
cd src && install -p -m 0755 lua luac /usr/local/bin
cd src && install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp /usr/local/include
cd src && install -p -m 0644 liblua.a /usr/local/lib
cd doc && install -p -m 0644 lua.1 luac.1 /usr/local/man/man1


(二)編譯 luajava

參考:http://retrovirus.com/incr/2005/08/building-luajava/

1.下載編譯好的版本或者用你自己編譯的,小弟這裡下載:
http://luabinaries.sourceforge.net/download.html
lua5_1_4_MacOS106_lib.tar.gz ,也可以連 bin 也抓,在本機可以用。

2.解壓縮 之後 找出 include 路徑 ,作為CONFIG檔的Lua 路徑

3.設定JAVA HOME include 路徑,這個鬼東西,害我一直沒編譯過,原來java home 路徑的根本不叫做INCLUDE 也不再 /Library/Java/Home 裡面,這個標頭檔資料夾在:/System/Library/Frameworks/JavaVM.framework/Headers 。
先進入 /Library/Java/Home 之後做捷徑:
 sudo ln -s /System/Library/Frameworks/JavaVM.framework/Headers include

4.下載 LUAJAVA :https://github.com/jasonsantos/luajava

5.解壓縮編輯 config 檔,紅色的地方就是已經增加或加註解或者修改的地方。

#############################################################
#Linux/BSD/Mac
LUA_DIR=
/Volumes/MacSpace/Library/lua5_1_4_MacOS106_lib
LUA_LIBDIR= /Volumes/MacSpace/Library/lua5_1_4_MacOS106_lib
LUA_INCLUDES= /Volumes/MacSpace/Library/lua5_1_4_MacOS106_lib/include
#JDK= $(JAVA_HOME)
# For Mac OS, comment the above line and uncomment this one
JDK=/Library/Java/Home
# Full path to Lua static library
LIB_LUA=/Volumes/MacSpace/Library/lua5_1_4_MacOS106_lib/liblua5.1.a


#Linux/BSD
#LIB_EXT= .so
#Mac OS
LIB_EXT= .jnilib
LIB_PREFIX= lib

#Linux/BSD
#LIB_OPTION= -shared
#Mac OS
#LIB_OPTION= -dynamiclib -all_load
LIB_OPTION= -dynamiclib -all_load
## On FreeBSD and Mac OS systems, the following line should be commented
DLLIB= -ldl
WARN= -O2 -Wall -fPIC -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings
INCS= -I$(JDK)/include -I$(JDK)/include/linux -I$(LUA_INCLUDES)
CFLAGS= $(WARN) $(INCS)
CC= gcc

#########################################################
VERSION= 1.1
PKG= luajava-$(VERSION)
TAR_FILE= $(PKG).tar.gz
ZIP_FILE= $(PKG).zip
JAR_FILE= $(PKG).jar
SO_FILE= $(LIB_PREFIX)$(PKG)$(LIB_EXT)
DIST_DIR= $(PKG)
# $Id: config,v 1.12 2006/12/22 14:06:40 thiago Exp $
6.之後進行編譯
make
7.資料夾裡面有一個 附檔名jnilinb 的檔案: libluajava-1.1.jnilib


(三)使用ndk編譯 luajava
編譯方法就和 LINUX 一樣了

1.先抓NDK http://developer.android.com/tools/sdk/ndk/index.html

2.在抓高手調整好的androLua: https://github.com/mkottman/AndroLua

3.解壓縮後 裡面的 jni 直接 複製到 ndk 的目錄下

4. 之後 就 ./ndk-build

5.在LIBS/ARMEABI 中 就有 libluajava.so

(四)導入 libgdx 專案

這樣子 桌面版 和 手機版就都可以動了,就可以寫遊戲了,超棒。。


2013 10/11 更新

專案必須增加 native library location的路徑, 否則會抓不到 luajava

Eclipse Lua Tool
1. http://www.eclipse.org/koneki/ldt/#installation



星期四, 4月 11, 2013

「veryLittlePHP」 CREATE DB MODLE

「 My Framework API 」

糟糕,自己寫的鬼框架都記不住了  。 :(

關於自動判別 insert or update DB 函數

特色:
1.提供自動判別 INSERT AND UPDATE
2.DATALIST儲存值 KEY 自動過濾

1.繼承 cx_db
2.在 __construct() 設定 Drives ( mysql or mssql)
3. $this->autoSave( $TableName , $Pk , $DataList  );

$TableName  :  表名稱
$Pk : pk主鍵
$DataList :  儲存資料陣列
      + 結構: $DataList[  {欄位名稱}  ]  =  {儲存的值} ;


範例:
<?php
class mod_file extends cx_db{
    var $mTableName = 'sign_up_file';
    public function __construct( ) {
        $this->setDrives('mysql');
        parent::__construct( );
    }

    public function getFileDataByXno($_year , $_sid){
        $this->mConn->setCxTitle( "mod_file::getFileDataByXno 取得教師服務資料" );
        $_sql = "SELECT * FROM sign_up_file where year=? and sid=? ;";
        return $this->sqlExec( $_sql, array($_year, $_sid )  )->getArray(0);
    }

    public function saveFile($_arr){
        $this->mConn->setCxTitle( "mod_file::saveFile 寫入資料" );
        //檢查 是否有資料
        $_uFData = $this->getFileDataByXno($_arr['year'] , $_arr['sid']);

        if($_uFData == null or $_uFData == false or $_uFData == ''){
            // "insert";
        }else{
            // "update";
            $_arr['id'] = $_uFData['id'];
        }

        return $this->autoSave( 'sign_up_file', 'id', $_arr );
    }

}
?>

星期五, 4月 05, 2013

「Arch」ERROR: Unable to find root device

最近 更新完就掛掉了,
開機寫着 ERROR: Unable to find root device 有的沒得。

一 重新設定
參考: http://www.erufenix.net/blog/solucinar-unable-to-find-root-device-en-archlinux/

 1.準備新版的 ARCH LIVE CD

2.進入後掛載自己的硬碟

mount /dev/sda4 /mnt
mount /dev/sda5 /mnt/boot

mount -t proc none /mnt/proc
mount -t sysfs none /mnt/sys
mount --bind /dev /mnt/dev

3.ROOT AS /MNT

chroot /mnt

4.更新 以及重新安裝 mkinitcpio

pacman -Syyu
pacman -S udev
pacman -S mkinitcpio

5.重新設定 mkinitcpio


mkinitcpio -p linux

6.重開機 OK


二 關於套件全部重新安裝

 腳本:
#! /bin/sh

for pkg in $(pacman -Q | cut -d' ' -f1); do
    pacman -S --noconfirm $pkg
done
 

星期日, 10月 07, 2012

「ARCH LINUX」 Ram Disk

前些日子,
聽了朋友述說RamDisk 的好處,
害我手癢也想弄弄看,而又剛好買了SSD,想說來個大重灌。
抓了2012 9月 最新的arch linux 發現,安裝方法似乎改變了。
以往的簡單選擇畫面消失了,取而代之的是終端機。

安裝變得更簡單了,比起以前的藍色可怕的畫面好多了。

裝好後發現,其實archlinux 預設就有開ramdisk 了,
所以就不需要去煩惱裝的問題了。


的文章後,小弟也把 復原和備份的功能加入。

小弟只備份 /tmp/cake_ramDisk 自己的資料夾而已。

在/etc/rc.local.shutdown 加入
#!/bin/bash
#
# /etc/rc.local.shutdown: Local shutdown script.
#
PATH=/lib/init:/bin:/sbin
## bank radisk
rm /RAMDISK_bak.tar
tar -C /tmp/cake_ramDisk -cf /RAMDISK_bak.tar .
chmod 777 /RAMDISK_bak.tar
echo "OK."
##---------bank radisk
在/etc/rc.local 加入
#!/bin/bash
#
# /etc/rc.local: Local multi-user start-up script.
#
PATH=/lib/init:/bin:/sbin
mkdir /tmp/cake_ramDisk
chmod 777 /tmp/cake_ramDisk
if [ -f /RAMDISK_bak.tar ]
then
echo -n "Restore tmpfs(/tmp) from /RAMDISK_bak.tar..."
tar -C /tmp/cake_ramDisk -xf /RAMDISK_bak.tar
echo "OK."
fi

之後馬上把eclipse 放入,就可以快快樂樂的打android 了。


假日到台中情人橋去看看,
剛好遇到夕陽黃昏,
雖然橋在整修,
不過還是很多人來此地。



星期日, 8月 12, 2012

「Arch」 關於更新 glibc 問題

官方:http://www.archlinux.org/news/the-lib-directory-becomes-a-symlink/

最近更新 的GLIBC問題,由於它把/lib 都轉移到 /usr/lib 目錄下,
導致更新出現無法更新的現象,小弟太急着更新,結果忘記 第二條的 pacman -Su
之後重開機,系統就缺東缺西,圖形界面也進不去,網路卡也抓不到,天阿。


  1. 放入 LIVE CD,掛載 硬碟至 /mnt 目錄
  2. 鏈接網路後 #pacman -Syur /mnt --ignore glibc  更新。
  3. 之後在進行  #pacman -Sur /mnt不過這時出現  glibc  /lib exists in filesystem  的錯誤。
  4.  查看/lib目錄下的檔案是否都屬於glibc  ,# find /lib -exec pacman -QO -- {} +
    1. 把除了 glibc 的套件移除或者都更新。
    2. 讓/lib 裡面只剩下 glibc
  5. 離開 live CD
  6. 進入系統後大概還是一樣,把 /lib/modules 資料夾直接刪除。
  7. 這次更新glibc 應該就沒問題了 #pacman -S glibc
  8. 再重新裝一次linux 核心  #pacman -S linux
  9.  這後reboot 後 ,皆大歡喜。

8月的草屯 還是依然美麗。

星期三, 7月 04, 2012

「PHP CI」Form Validation

關於CI的單表驗證
網站介紹的很詳細:http://codeigniter.com/user_guide/libraries/form_validation.html


1.建立規則


$config=array(  //設定驗證規則
         array(
         'field'=>'name',  //input的name
         'label'=>'帳號',     //設定名稱,在輸出錯誤訊息時出現的名稱
         'rules'=>'trim|required|min_length[4]|max_length[23]|xss_clean'  //驗證使用的規則
           ),
         array(
          'field'=>'passwd',
          'label'=>'密碼',
          'rules'=>'required|min_length[4]|max_length[25]|md5'
           ),  


2.設定規則
$this->CI->form_validation->set_rules($config);  
3.頁面POST回傳是否正確
$this->CI->form_validation->run()

他提供相當多的驗證規則,相當方便,可以少寫很多CODE。



星期六, 4月 07, 2012

「電影」讓子彈飛

[讓子彈飛 ]一部好看的電影。
即使在巧妙的詭辯,精心的布局,最後贏得了勝利 卻贏不回當初的簡單。

星期五, 3月 02, 2012

「archLinux」 Postfix 使用 Gmail smtp

最近需要用到 MailServer ,以前也沒有這個經驗,
純粹是PHP smpt 寄信速度的問題,最後選擇了 postfix。
文章參考
  1. http://sherlock.heroku.com/blog/2012/02/03/setting-up-postfix-to-use-gmail-as-an-smtp-relay-host-in-archlinux/ 
  2. archLinux WIki Postfix
「安裝 postfix」

    #pacman -S postfix

「設定」在 /etc/postfix/main.cf   加入

    # 設定 gmail
    relayhost = [smtp.gmail.com]:587

    # 啟用 tls 認證
    smtp_use_tls=yes

    # use sasl when authenticating to foreign SMTP servers
    smtp_sasl_auth_enable = yes

    # 設定密碼路徑
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

    # list of CAs to trust when verifying server certificate
    smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

    # eliminates default security options which are incompatible with gmail
    smtp_sasl_security_options =

 「建立」在 /etc/postfix/sasl_passwd  (即密碼檔案路徑)

     [smtp.gmail.com]:587  username:password

 「執行」建立資料庫檔案

    # postmap /etc/postfix/sasl_passwd

 「啟動服務」

    # rc.d start postfix

 「CodeIgniter」 使用 Email 類別

    $this->load->library('email');

    $config['protocol'] = 'sendmail';

    $config['mailpath'] = '/usr/sbin/sendmail';

    $config['charset'] = 'UTF-8';

    $this->email->initialize($config);

星期一, 9月 12, 2011

「arch linux」安裝 APACHE + Mercurial

沒記錄起來,下次就忘記了,記憶力越來越不可靠了。
「arch linux」安裝 APACHE + Mercurial

「Apache 」

「 Mercurial」
  • 安裝 Mercuial 
    • pacman -S mercurial
  • 查詢安裝位置,可以發現他的lib都放在 /usr/lib/python2.7/site-packages/mercurial/
    • pacman -Ql mercurial
  • 建立hgwebdir.cgi ,arch 沒有像ubuntu 有附 hgwebdir.cgi範例,最後找了老半天
    • python2.7 是對應 剛剛查的lib路徑裡面的python版本
#!/usr/bin/env python2.7
from mercurial import demandimport; demandimport.enable()
import cgitb
cgitb.enable()
import os
os.environ["HGENCODING"] = "UTF-8"
from mercurial.hgweb.hgwebdir_mod import hgwebdir
import mercurial.hgweb.wsgicgi as wsgicgi
application = hgwebdir('hgweb.config')
wsgicgi.launch(application)

  • 之後建立 hgweb.config 
    • colletions 是你WEB的HG專案的位置,小弟是直接同步到Dropbox作備份了。
[collections] 
/home/cake/Dropbox/jeff/Project/ = /home/cake/Dropbox/jeff/Project/
[web]
style = gitweb
allow_push = *
push_ssl = false
#allow_read = cake
[trusted]
users = *
#groups = *
[hooks]
#changegroup = hg update

  • 建立好的2個檔案  hgwebdir.cgi  和 hgweb.config  需要在同個目錄,
    • 檔案位置 看喜歡放在哪裡都行,不過不要弄丟了,權限也要設好。
    • 小弟放在 /srv/hg/cgi-bin/

  •  建立虛擬目錄 編輯/etc/httpd/conf/httpd.conf 或者 你的設定檔
    • 目錄要按照CGI自己的放的位置
    • ^/hg(.*)  則是網址
    • AuthUserFile 使用者檔案
ScriptAliasMatch        ^/hg(.*)       /srv/hg/cgi-bin/hgwebdir.cgi$1
<Directory /home/cake/public_html/hg/cgi-bin/>
Options ExecCGI FollowSymLinks
AllowOverride None
AddHandler cgi-script .cgi
</Directory>
<Location /hg/>
 AuthType Digest
  AuthName "mercurial"
  #AuthDigestProvider file
  AuthUserFile /srv/hg/hgusers
</Location>


詳細參考:http://kevinjalbert.blogspot.com/2010/05/mercurial-setup-guide.html



2013 - 03/10 - 更新

關於APACHE CONFIG 設定 ,多那黃色的三行 就行跑。


<VirtualHost *>
ErrorLog "/srv/apache_error_git.log"
#cx   hgwebdir.cgi   /srv/hg/cgi-bin
#ScriptAlias /hg "/srv/hg/cgi-bin/hg.cgi"

ScriptAliasMatch ^/hg(.*) /srv/hg/cgi-bin/hg.cgi$1
<Directory  /srv/hg/cgi-bin/>
Options ExecCGI FollowSymLinks
AllowOverride None
AddHandler cgi-script .cgi
    Order allow,deny
    Allow from all
    Satisfy all

</Directory>

<Location       /hg/>
 AuthType Digest
  AuthName "mercurial"
  #AuthDigestProvider file
  AuthUserFile /srv/hg/hgusers
</Location>

</VirtualHost>





星期五, 9月 09, 2011

「Arch Linux」安裝記錄

從去年 的Ubuntu 10.04  -> 10.10 -> 11.04 -> 11.10 beta1
用了一年,最後還是掛掉了,以及那個 隨時都會跑出 “回報錯誤”的該死小框框,
而且回報錯誤還要打密碼....
最後只好殺掉來 嘗試看看 arch linux。

[網路]
一開始安裝好後,是沒有pppoe 的功能,看了論壇之後得到了解答。
0.載入arch 的LIVE CD
1.掛載硬碟
mount /dev/sdaX /mnt/disk
2.ADSL上網 pppoe-setup pppoe-start
3.安裝pppoe ppp net-tool ,
pacman -r /mnt/disk -S rp-pppoe ppp

[配置]
1.安裝顯示卡(NVIDIA)

  • nvidia
    • pacman -S nvidia
  • 設定檔
    • nvidia-xconfig
2.安裝 滑鼠鍵盤
  • pacman -S xf86-input-keyboard
  • pacman -S xf86-input-mouse
3.安裝 dbus
  • pacman -S dbus
4.安裝音效卡
  • pacman -S alsa-utils
  • pacman -S alsa-oss
[設定檔]
1.編輯 /etc/rc.conf 修改DAEMONS,加入啟動
DAEMONS=(syslog-ng network dbus crond alsa)
[增加使用者]
adduser -m -s /usr/bin [YourUserNAME]
[群組] audio, lp,storage,vidieo,wheel,games,power,scanner

[安裝Gnome]

  • pacman -Syu gnome
  • pacman -S gnome-extra
  • pacman -S gdm

[IBUS]

  • pacman -S ibus
  • pacman -Ss ibus ,用搜尋 來看想裝的輸入法
  • 若安裝ibus-googlepingyin ,需要安裝 opencc 才可以轉繁體

[iBus 設定]
1.家目錄的 .bashrc
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

2.家目錄的 .profile
export XMODIFIERS=@im=ibus
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim
ibus-daemon -d -x -r

[網路 改用 networkmanager]
參考
https://wiki.archlinux.org/index.php/NetworkManager_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#Gnome.E7.8E.AF.E5.A2.83

  •  pacman -S network-manager-applet
  • pacman -S gnome-keyring
  • 在 rc.conf DAEMONS 取消network 增加 networkmanager
  •  修改 /etc/NetworkManager/NetworkManager.conf 
[main]
plugins=keyfile
[keyfile]
hostname=localhost

[載入硬碟]


[android SDK]

  • 啟動 adb 會說缺少一個 lib ,那個lib 需要安裝 32位元的lib,pacman 找的到。

[END]
感覺很好用,可以只裝用的到的軟體。

星期一, 8月 29, 2011

[LUA] 編譯 luajava

在 java 中使用 lua:
1.在http://www.keplerproject.org/luajava/ 抓luajava
2.在http://luabinaries.sourceforge.net/download.html 中 抓2進位版本。
小弟抓的是 lua5_1_4_Linux26g4_64_lib.tar.gz  ,
由于32位元編出來的 luajava.so 會在那該死的 jvm 出現 class: ELFCLASS32  錯誤。
3.解壓縮 lua 和 luajava,之後 進入 luajava 的資料夾開啟 config 設定檔
4.設定

  • 在這裏 lua資料夾叫做 lua64
  • JDK 路徑,記得要設好。
  • liblua.a 記得名字 要和 lua64 裏面那個一樣。
LUA_DIR= /home/cake/lua64
LUA_LIBDIR= /home/cake/lua64
LUA_INCLUDES= /home/cake/lua64/include 
JDK= /usr/lib/jvm/java-6-sun-1.6.0.26
LIB_LUA=$(LUA_LIBDIR)/liblua.a 

5.編譯 打入 make   ,編譯好後 在luajava 會發現一個 .so檔,之後再發.so檔放入你的專案中

6.在eclipse中,設定好 你的 native library 的路徑

7.載入 luajava.jar 或 把luajava 的 java 原始碼 直接放進去。

這樣大概就可以用了。。。。
弄了老半天,感覺比 android載lua 還麻煩。

星期四, 7月 21, 2011

[Ubuntu] 11.10 Alpha 2

為了讓VIM 中可以用IBUS 拼音輸入法 ,
以及 gedit 中 使用 fcitx 拼音輸入法,
這2個 輸入有問題 似乎是GTK3的BUG,
需要更新或者打補丁,只是小弟找不到FOR UBUNTU的補丁
最後只好更新到ALPHA2了,
它支援了gnome shell 和 unity 共存的環境了,
我很高興,不用再去裝一堆有的沒的,
登入的畫面 變成了 LightDM ,
不過登入了2次之後,就換回 GDM了,
在雙熒幕下  它的登入置中位置變得蠻奇怪的。
最後還是不太習慣 Unity 的選單,
點了老半天,分類的字 小又密集,眼睛看了就好痛。
至少 gnome shell 選單的裏面的圖示夠大,看的很舒服。

關于鼠標 :
gnome-tweak-tool  來設定 鼠標,
sudo apt-get install dconf-tools  可以開 dconf-editor
org -> gnome -> desktop -> interface => cursor-theme


在組態編輯器中 也要設定,不會發生2種鼠標
desktop->gnome->peripherals->mouse  => cursor_theme


裏面設定你自己的鼠標名字