2010年7月15日 星期四

Ruby on Rails - 安裝

Ruby 1.8.7 + Rails 2.0.2 安裝

安裝 Ruby One Click Installer 1.8.7

執行 gem install -v=2.0.2 -r rails

2010年7月8日 星期四

msvcrt-ruby18.dll missing!!!

http://www.ruby-forum.com/topic/205457

這篇說 安裝ruby 1.9可是卻顯示需要msvcrt-ruby18.dll

這個很奇怪的事情 明明就是1.9卻出現1.8


回應說 執行

gem install wxruby-ruby19

ERROR: While executing gem … (Gem::GemNotFoundException)

安裝了 One-Click Ruby Installer for Windows

接著要來安裝rails > gem install rails

結果出現了......

ERROR: While executing gem … (Gem::GemNotFoundException)
Could not find rails (> 0) in any repository

需要先升级gem

gem update --system

2010年2月2日 星期二

Shell Sort

終於弄懂這個了阿 哈哈
人家的說明我真的都看不懂 Orz
Shell Sort是利用insertion sort的一個特性
白話的說insertion sort是將未排序集合中拿一個出來,並且"插入"至以排序集合中自己應至的位置
將步驟標上順序
排序陣列E 且 n = |E|
1. FOR pos = n TO 1 STEP -1
2. 取出pos位置的元素
3. 將pos位置元素插入至pos+1n這個以排序的部分
步驟3 假如不要用單純的陣列,改使用Linked List的話
插入的動作可以很省時間,而且不需要不斷地交換位置,只需要二元搜尋然後插入
說起來如果陣列本來就排的差不多的話 insertion sort是很快的
http://www.sorting-algorithms.com/insertion-sort

Shell Sort則是利用這個特性並衍生出下面的概念
利用Insertion Sort大致排好一些 > 再排一些 > 再排一些 > ... > 完成。
至於證明!! 在查一下吧!!
演算法如下

// 找出最大的間隔
h = 1
while h < n, h = 3*h + 1

// 當間隔大於0的時候,用insertion sort排序
while h > 0,
h = h / 3
for k = 1:h, insertion sort a[k:h:n]
→ invariant: each h-sub-array is sorted
end

2010年1月26日 星期二

Java Compile

在compile java的時候
有兩個參數 -cp(-classpath) 和 -sourcepath
這個在compile的時候是很重要的。



今天在學校上SCJP的課程,老師是傳說中的良葛格!!
雖然我上課偷偷打網誌,不過我心裡還是很尊敬他的。

Java Compile Recusively on Windows

下面的語法是windows 的cmd語法,可以用來 Compile Java的程式碼。
1. 搜尋全部的路徑 放進檔案中
2. 將檔案的內容compile
3. 然後把他刪掉!!

dir src\*.java /B/S > _files.src
javac -d classes @_files.src
delete _files.src

P.S. 預設原始碼路徑放在src下面,編譯出來的class檔案放在classes中。

相對應還有linux版本
還有用java就會知道的ant版本的語法
可是......沒有簡單一點的嗎?? _Orz

2010年1月12日 星期二

Data

String
   str1 = "abc"
   str2 = String.new
Array
   a = Array.new
   a = [1,3,4,5,6,7]
Hash
   h = Hash.new
   h = { a => b, c => d }

Variable






基本變數類型

說明

範例

Local Variable

不用於類別時,以英文或是底線開頭的非關鍵字單字。

用於類別,則可以表示成類別常數。

in normal
   abc = 1
   _abc = 2
in class
   class Math
       PI = 3.14159
   end
Global Variable同上但是加上$符號
$abc = 123
$_abc = 456
Instance Variable用於類別的實體,當類別被建立成實體時才能使用。

class Person
   @name
end

Class Variable用於類別,屬於類別的變數。

class Person
   @@total_person = 0
end