顯示具有 筆記 標籤的文章。 顯示所有文章

在 Ubuntu 下透過 RVM 安裝 Ruby on Rails

做個筆記,每次要裝都跑去別人那邊看(掩面)

Ruby on Rails 是一個好用的網路應用程式開發框架,透過 Ruby 程式語言的直覺性,讓網路應用程式的開發相對於傳統的程式語言,如 php 、Java ...等, 能夠有較好的開發效率,使用 MVC 架構 為概念,讓開發者在開發網路應用程式上更能專注在邏輯的撰寫上, 不會有太過複雜的界面與邏輯的交織。

廢話一大堆,下面我們開始說明怎麼在 Ubuntu 上透過 RVM 安裝 Ruby on Rails 吧。

第一步驟 - 使用 RVM 安裝 Ruby


先將我們的軟體來源列表更新,確保我們待會下載的程式都是最新版的,也把可以更新的程式都先更新一下吧。

sudo apt-get update
sudo apt-get upgrade

更新完成以後,我們就能開始安裝 RVM ( Ruby Version Manager ),這個程式可以很方便的讓我們在不同的 Ruby 版本間作切換, 以下我們只會安裝最新的版本,如果想要安裝其他的版本,可以參考這個文章
我們會需要用到 curl 這個工具來幫助我們安裝 RVM ,所以還沒安裝過curl 的朋友請先安裝curl

sudo apt-get install curl

安裝 RVM,請輸入:
\curl -L https://get.rvm.io | bash -s stable

當安裝完成以後,載入 RVM。或許你需要將目前所處於的 shell 關閉,並重開一個新的 shell。
source ~/.rvm/scripts/rvm

RVM 還有一些需要的依賴程式需要安裝,輸入下面這個指令可以自動安裝 RVM 所需的相關程式
rvm requirements

你或許需要在安裝這些相依程式的時候需要輸入密碼。
在某些偶然的情況下,有可能 zlib 會回報 miss。RVM 的官方網站提供了此問題的解法 ,如果出現類似的問題的話,請詳閱。

第二步驟 - 安裝 Ruby


已經安裝好 RVM 的話,那麼安裝 Ruby 就變得很簡單了。
rvm install ruby

我們已經安裝好最新版的 Ruby 了,但是因為我們是透過一個管理不同版本的程式來使用 Ruby 的, 我們需要告訴系統我們現在想要使用哪一個版本的 Ruby 當作預設值。
rvm use ruby --default

第三步驟 - 安裝 RubyGems


這個步驟是為了確保我們有正確安裝 Ruby on Rails 所需的所有 Gems ,如此一來 Rails 才能正確執行。我們可以透過 RVM 來繼續安裝 RubyGems 。
rvm rubygems current

第四步驟 - 安裝 Rails


當上面步驟都完成以後,現在我們可以安裝 Rails 了。
gem install rails

Rails 的安裝會需要一段時間,當完成以後,你的電腦上就有完整的 Ruby on Rails 摟。

參考資料

2013年11月8日 星期五
Posted by Unknown

【Ubuntu / Linux】 使用 Chrome 時 Flash 字體出錯問體解決

嘛,這篇文章很久以前就想寫了,但是想說或許會有更好的解法,所以就一直放著,但是看到現在好像 Google 官方沒有給答案, 那麼就只好把原本的解法寫出來給大家參考吧。
http://ppt.cc/TMrj

相信在用 Linux 的朋友們一定會感到困惑,為什麼明明用 Firefox 的時候 Flash 所顯示的 UTF-8 字體就很正常,但是在 chrome 下卻會 有問題,而在 chromium 下卻奇蹟似的又沒有問題,這到底是有什麼玄機呢?其實跟有沒有這個字型沒什麼關係,相信各位使用中文 Linux 的大家,電腦裏面應該都已經裝了文泉譯...之類的中文字型,而程式在使用這些字型的相關設定一般都存放在系統的 /etc/fonts/config.d,一般是不會去這邊設定的,網路上真有人跑去設定這個orz,不要設定的比較好,萬一出事了,麻煩可就大了。

嘛,解決方式其實很簡單,在 chrome 的網址列輸入 chrome://plugins

可以進入插入元件的設定頁面,頁面開啟以後,將右上角的[+] 詳細資訊開啟

找到 Flash Player 的部份,我們可以找到有兩個不同的 Flash Player,分別的路徑為:/opt/google/chrome/PepperFlash/libpepflashplayer.so /usr/lib/flashplugin-installer/libflashplayer.so,其中,PepperFlash 為 chrome 內建的 Flash Player 和我們自己所安裝的 Flash Player 有所不同,這個 Flash Player 在指定字型的時候路徑方面出了點問題,而且透過 Google 搜尋,我們可以發現,這個 Flash Player 對字型的處理比原生的 Flash Player 還要來的差了一點,在字體寬度、介面處理上,渲染的有些偏差,所以透過停用這個插件,我們就可以使用我們所安裝的原生 Flash Player 了。
結果:
2013年10月6日 星期日
Posted by Unknown

啟動 Gnome Shell 3.8 應用程式分類

最近因為對UbuntuUnity 感到有點厭倦了,太多的 bug 、需要大量的資源...種種的問題導致了我產生了想要轉其他的桌面環境的念頭,因為以前的使用習慣的關係,所以目前暫時 轉移到 Gnome 桌面環境,Gnome 相對於 unity 更為輕巧,動畫方面也很優雅,不像是 Unity 有些動畫給人的感覺有點多餘,整體上給我的感覺是很正向的, 有關於 Gnome Shell 的 preview 我會在不久的未來寫一篇新的文章,還請大家多多捧場。


用了 Gnome 以後,各項方面感受相對於 Unity 都很有蠻正向的回饋,但是一直以來,有個問題困擾著我,那就是在 Gnome Shell 3.8 的簡介裏面,他們新增 資料夾的功能,讓使用者可以把應用程式做分類,但是真的很悲劇,我怎麼試都試不出來 Orz
或許是因為可以自訂資料夾的原因,Gnome 3.8 也預設把應用程式分類關閉,所以在這樣前提下,使用上要找應用程式都要透過搜尋來找,說真的, 也不是不方便啦,就是有點麻煩就是了。

下面將說明怎麼將預設關閉的應用程式分類開啟 終於要進入正題了


Step1:在搜尋框輸入 「dconf」,啟動 dconf editor 來編輯一些相關的設定


Step2:在 dconf 中沿著 org > gnome > shell 的順序可以得到如下的畫面

Step3:在右手邊的地方,我們需要修改的欄位是 app-folder-categories,而預設的內容是:['Utilities', 'Sundry'] ,我們將其修改為 ['Utilities', 'Games', 'Sundry', 'Office', 'Network', 'Internet', 'Graphics', 'Multimedia', 'System', 'Development', 'Accessories', 'System Settings', 'Other'],如此一來,幾乎所有的程式都會被分類到這裏面了,以下是分類過後的 Gnome Shell 樣子, 產生許多的資料夾,讓我恍然大悟的了解到,原來介紹上所提到的資料夾是這麼一回事。


以下為 Gnome 3.8 的宣傳影片
2013年8月27日 星期二
Posted by Unknown

網頁程式學習筆記 - 前情提要

因為最近剛好同學間對於網頁的撰寫有學習的興趣,又剛好在專題要挑戰寫一個多功能的平台,剛好利用這段時間來整理一下之前所學習的網頁程式技巧,希望可以給同學一些啟發,可以更快的上手。

 




大家都知道前一段時間興起的 HTML 5 熱潮,為了趕上這個熱潮,許多人開始學習網際網路的程式設計,以期望可以在現在這股網路大熱潮中可以有更多的生存空間,在學習 HTML 5 之前,我們先想想為什麼 HTML 5 會紅起來,除了和以前比起來方便多了的標籤和使用 JavaScriptAPI 多了更多之外,到底主要的動機是什麼呢?了解了其中的動機,對於我們以後學習寫程式會很有幫助。

2012年12月6日 星期四
Posted by Unknown

解決 CrossOver 在 Ubuntu 12.04 下安裝 IE 無法啟動

因為昨日(10/31) 萬聖節 CrossOver 大放送的關係,所以也去弄了一套來玩玩看,順便來把比較會需要的 Windows 程式裝起來,發現支援列表蠻完整的,對於在非 Windows 平台的使用者來說,這樣的程式量其實是蠻足夠的。

話說,小弟我現在用的系統是 Ubuntu 12.04 ,想說裝了 CrossOver 以後,一定要裝個 IE 來用,這樣才不會因為一個瀏覽器的原因就需要重新開一個虛擬機器或是重新開機成 Windows 來使用,所以就高興的裝了下去,而在 CrossOver 上則表示,目前他們所支援的版本,穩定版為 IE 7 ,可以透過他們的網站下載安裝包,不需自己手動下載,所以我就很高興的點了下去,讓他自己安裝了。


經過了一段時間的安裝之後,程式很成功的被安裝起來了,但是第一次開啟的時候,讓感到很挫折,IE 會自動下載一個不知道是什麼的檔案,然後就自動關閉了,本來我想,可能是安裝失敗的問題,結果不然,經過多次的反覆安裝之後,仍然還是遇到這個問題。


經過搜尋,發現,原來是 Ubuntu 12.04 的系統設定問題,只要透過一個簡單的指令,就可以使安裝好的 IE 正常運作了。


打開終端機,輸入:

echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope

這可以把 0 這個參數暫時寫入到後面這個檔案裏面,但是在重新開機以後,這樣的設定就需要重新設定,而要確保重新開機以後此設定還可以正確執行,要修改 /etc/sysctl.d/10-ptrace.conf 這個檔案。

在終端機輸入:

sudo vim /etc/sysctl.d/10-ptrace.conf



找到 kernel.yama.ptrace_scope = 1 ,將值改成 0 ,儲存後關閉檔案。

如此一來 IE 就可以正常的運作摟!


2012年11月1日 星期四
Posted by Unknown

C 語言學習筆記 -- 內建排序函式

一直以來想到排序,我大部份都是使用 Bubble sort 來做排序,並不是最好的,也不是最快的,但是很直觀。 其實在 ANSI C 的標準函式庫裡面就自帶了一個更快、更高接的內建排序函式:Quick Sort 這裡簡介一下 Quick Sort 演算法:

Quick Sort 示意圖 <維基百科>
快速排序使用(Divide and conquer)策略來把一個(list)分為兩個(sub-lists)。
步驟為:
  1. 從數列中挑出一個元素,稱為 "基準"(pivot),
  2. 重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面(相同的數可以到任一邊)。在這個分割結束之後,該基準就處於數列的中間位置。這個稱為分割(partition)操作。
  3. 遞迴地(recursive)把小於基准值元素的子數列和大於基准值元素的子數列排序。

運用Quick Sort 的演算法,時間複雜度在最差狀況,有O(n^2) ,但是這樣的狀況並不常見,平均狀況則有O(n log n)的效率。
 以上資料出自<<維基百科>>


ANSI C 的標準函式庫裡有一個直接好用的函數,可以直接做快速排序,我們可以使用以下的作法來達成:

qsort( 需要排序的陣列 , 陣列的大小, sizeof(排序的物件), 比較的方法 );

這個函數需要傳入我們需要排序的陣列,陣列裡面的東西不論是什麼,只要能夠排序都可以傳給這個函數,不論是英文字、整數、浮點數、甚至中文字,都可以送進去給他排序蠻神奇的東西。

比較需要注意的是,我們要在函數的最後傳入一個如何比較的方法給 qsort ,畢竟什麼都可以排序的原因是,如何比較大小的規則是由我們程式設計師自行定義,例如我最近寫到的排大小的程式,程式碼如下:

qsort(student, counter, sizeof(int), cmp);


int cmp( const void *a, const void *b) {
    return *((int*) a) - *((int*) b) ;
}

上面這個排序方法是為了將一組學生的陣列進行排序,比較大小的方法用自訂函式 cmp 來定義,而 cmp 裡面我們可以看到傳入的參數是用 void * 這個無型別指標來進行指向,因為就像上面所說,qsort 這個函數可以對任何類型的函數來進行排序,所以他必須要能對任何東西進行指向才可以,但是 return 的時候,我們必須能進行大小的比較,所以我們必須把 void * 轉換成我們原來資料的類型,像是上面我就是轉換成 int * 但是為了要進行大小的操控,所以又必須把指標轉換回原資料,所以在最外層要再包上另外一個 * ,最後用相減的方式,可以知道 ab 之間的大小差別,從而可以進行大小的排序。

結論
這個方法在程式語言比賽的時候是一個很實用的功能,但是對於新手來說可能不是那麼適合使用,畢竟多了解各種不同的排序演算法的建立方式,以及應用方式,更能增加對於寫作程式的經驗和想法。
2012年10月26日 星期五
Posted by Unknown

各家雲端硬碟比較與簡易分析

最近各家雲端硬碟業者百家爭鳴,都用大容量的免費空間來吸引使用者使用他們的平台,想說來整理一下這些雲端硬碟的比較和分析一下這些產品的特性吧:


         
  • 微軟的 Skydrive,提供了免費7GB的線上儲存空間,而且對於Microsoft Office 的相容性相當良好,成為一些學生族群喜愛的作業集散地,並有著Windows 、Mac 和網路都能存取的多平台優勢。

                                                     
  • 最有發展雲端空間基礎的 Google 也不落人後的,相繼推出了 Google Drive ,提供了5GB的線上空間,因為 Google Drive 是從以往Google 令人稱讚的Google 文件發展而來,在許多有線上會議需求的族群,如工程師、學生...間有著很高的支持度,可惜的是,雖然有許多工程師使用者, Google 仍舊沒有打算推出 Linux 版本的 Google Drive ,但是在其他的平台,如Windows 、Mac 、iOS、Android 都有蠻好的支援。


  • 蘋果在推出 OSX 10.7 Lion 的同時,也推出了 icloud 雲端硬碟,提供了5GB的空間可以儲存資料,但是這5GB卻是受限的存取,譬如只能存取相片,而想要存取iwork 所產生的檔案,必須先購買 iwork 應用程式,並且 icloud 只支援 Mac 和 iOS 的裝置,算是一個族群明顯的產品。


  • Dropbox 是最早,也是最有名的一個雲端平台,他們所創的在檔案管理員裡面新增專屬同步資料夾的作法,也在後來為各家產品學習的對象,可惜的是,相對於其他公司只能算是一間小公司的Dropbox 只能提供 2GB的免費空間提供給使用者,但是他優秀的跨平台性,除了Windows 、Mac 之外Linux 也有提供原生的程式,讓使用者可以無縫的同步自己的資料,是一個方便的雲端硬碟選擇。如果你是學生的話,可以透過 Dropbox 的這個方案,驗證你自己的.edu信箱,可以馬上獲得 5.5GB 的雲端空間,而推廣這個方案的話,可以快速累積到 25GB 的空間,使得 Dropbox 成為目前免費空間裡最大容量選擇。


  • 最近一個剛崛起的新雲端空間 Minus ,一開始他是集中注意力在分享圖片上,是一個標準的圖庫區,簡單的使用方式,快速的蒐集到許多的使用者,並且讓他開始放寬上下傳的限制,並提供免登入 200MB檔案上傳,而註冊帳號的話,可以得到 10GB 的免費空間,而且也有提供上傳管理工具,在各平台上,如 Windows、Mac、Linux 及行動平台上都有提供支援,是一個新崛起的強勁新秀。
2012年10月15日 星期一
Posted by Unknown

Labels

技術提供:Blogger.

- Copyright © 迪蘭帝的聊天室 -Metrominimalist- Powered by Blogger - Designed by Johanes Djogan -