YORKXIN×YORKXIN

鴨七的人生,不是夜市人生

Archive for the ‘電腦科學’ Category

RAID 1 寫入速度噩夢 v.s. In-Memory SQLite3 Repository

with 2 comments

[警告:本文之解決方案為一蠢方法,好孩子不要學,請視為錯誤示範]

最近在做的一個案子是這樣的:

  1. 需要透過網際網路下載一個檔案,並把它 parse 成 CSV
  2. 由於檔案的內容會依輸入值而不同,但又會常常有讀取的動作,所以需要在硬碟裡放一個 cache

於是照著系上老師們長期的教誨與訓勉,我透過這種方式實作:

  1. 讀成 CSV 以後,把它匯入到一個 SQLite3 的 Database Image 裡面,存在硬碟
  2. 往後如果要讀取,就讀這個硬碟中的檔案

看起來是很美好,測試起來也很爽快。

但丟到 production env 之後…那個 performance 非常誇張,僅僅是 development env 的 20% 的效能(i.e. 當 development 存一份 SQLite3 Repository File 到硬碟只需要 10 秒的時候,Production 竟然需要 50 秒!?)

今晚為了這件事熬夜,從 sqlite3 library 版本一路測到檔案系統,原以為是 LVM 本來就比較慢,還砍了一個 LVM Physical Volume 直接格式化來用,速度上依然沒有改善。

就在我搜了老半天,我才發現我一直忽略一件事:Production Env 的硬碟是 RAID 1

繼續閱讀文章 »

作者為Chitsaou Yorkxin

2010 年 二月 27 日 星期六 at 06:51:55

張貼於Ruby and Rails, 電腦科學

Tagged with ,

從台大榜單得 (偽) Unicode 技術學問

with 11 comments

八十台大,前進百大 之 偉大的台大連榜單都很偉大啊!!

Picture 2.png

單獨打「周」或「維」都找得到,怎麼把全名打上去就找不到啦?

繼續閱讀文章 »

作者為Chitsaou Yorkxin

2009 年 四月 14 日 星期二 at 04:19:47

張貼於電腦科學

Tagged with

[筆記] SSL 憑證購買記

with 5 comments

由於某些因素,我這次學會了怎麼購買 SSL 憑證。

你沒看錯,不是自己簽發,是購買憑證!購!買!憑!證!

一開始以為憑證申購很麻煩又要花一大筆錢,但後來發現原來有 Turbo SSL Certificate 這種東西。簡單來說就是只要通過 Domain Control Validation (證明你具有控制該網域的權限,指的是向網域代理商購買的根網域,不是子網域),那你就可以拿到一個「不會被瀏覽器叫」的憑證了。

不需要甚麼奇怪的管道,知名的網域名稱代理商去你爸的 Go Daddy 就有賣了,DM 在這裡,左邊的「Standard SSL」就是了。

繼續閱讀文章 »

作者為Chitsaou Yorkxin

2009 年 二月 23 日 星期一 at 20:09:23

[筆記] 在 Ruby on Rails 裡做簡單的 IP 過濾

有一則留言

目的:你應該不希望還在 Development 的時候被人家看光光。

做法如下,加在 app/controllers/application_controller.rb


class ApplicationController < ActionController::Base
  # 指定要在 development 才過濾 IP
  before_filter :filter_development_ip if ENV["RAILS_ENV"] =~ /development/

  # ... 中間可能有其他程式碼

  private
  # 以下的 method 要加在 private 後面
  def filter_development_ip
    if request.remote_ip =~ /^127\.0\.0\.1$/
      true # allow access
    else
      head(403) # send 403 Forbidden header
    end
  end
end

IP 的部份是以 Regular Expression 配對來檢驗的,通過 Regular Expression 的配對,表示合法 IP。以上範例是限定只有 127.0.0.1 這個 IP 可以連線。

這項設定適用於 mod_rails 與 mongrel_rails。

當然你可以設防火牆。

參考:

作者為Chitsaou Yorkxin

2009 年 一月 17 日 星期六 at 14:57:49

[攻略] Ruby on Rails 與 SSL (https)

with 3 comments

問題:該如何在 Ruby on Rails 導入 SSL (https) 的支援呢

以下分成 Mac OS X 與 Ubuntu Linux 的說明。

另外因為 mod_rails (Passenger) 在設定 SSL 方面格外簡單,因此假設你已經安裝了 mod_rails。安裝方式請參考官方網站。

Mac OS X 請額外安裝這支小程式,讓 mod_rails 的設定更為方便。

注意事項:全世界都可以連到你的 Rails Application即使它是 development !! 建議在程式裡使用 IP 過濾

繼續閱讀:步驟說明

作者為Chitsaou Yorkxin

2009 年 一月 17 日 星期六 at 03:23:51

拜託!問題在編碼!──論大學甄選入學的數位化

有一則留言

因為某些因素,我有好一陣子在研究大學甄選入學的制度和電子化 (或說數位化) 內容;這不僅是中正大學的甄選入學委員會,還包括了各大學 (凡 69 校) 公佈榜單的方式。做了兩回合之後只覺得:台灣的數位化還需要加油

民國 97 年大學甄選入學各高中建議事項 (Excel 活頁簿檔案)及官方回應已經發佈在大學甄選入學委員會的網站上了。其中幾項其實頗耐人尋味,例如這項:

「可否請中心加強宣導,各大學電子榜單可否儘量採用HTML網頁格式就好,最好不要使用PDF檔!那個洋鬼子發明的東西對中文接受度差,若是使用新細明體或是標楷體以外的字體,搜尋就會出問題!PDF格式的榜單連第4點中提到的交叉查詢網站的作者也都嫌棄咧!」──花蓮女中

而這則建議的官方回應則是:

「轉知高中意見予自行開發軟體之大學,請其參考配合辦理。」

當然這看在我們這些稍微有接觸過一點電腦科學(其實我不知道怎麼形容)的人,是啼笑皆非的;我在想大學甄選入學委員會看到這則問題可能也很無奈。

繼續閱讀文章 »

作者為Chitsaou Yorkxin

2008 年 九月 28 日 星期日 at 01:49:41

張貼於電腦科學

[筆記] IPv4 的 unsigned int 表記法

沒有留言

  • telnet://2356194315
  • telnet://140.112.172.11
  • telnet://ptt.cc

其實這也不是什麼新梗啦,就只是把 IPv4 換成 Unsigned Integer 的表示法而已。

只是我用 Yahoo! Pipes 做了兩個轉換器(互轉,IPv4 → Unsigned Int 以及 反過來),所以演算法就請在各別的 pipe 編輯原始檔就可以看到囉。(文末有 C Code)

雖然不是什麼新梗,但還是記一下它的原理好了。

如你所知道的,IPv4 是由四組 0 – 255 的數字組成的,表記如 140.112.172.11 這種格式。但這種表記法是為了讓人類易於記憶,真正在電腦裡面是表示成二進位:

IPv4 140 112 172 11
 
二進位 10001100 01110000 10101100 00001011
接成一條 10001100011100001010110000001011
轉成十進 2356194315

 

原理就這樣,所以 IPv4 可以寫成 unsigned int 表記法。至於 Pipes 裡面用到了幾個偷懶的方法,是從 2 進位 ←→ 10 進位中運用的「位權」概念而來的。

沒 code 沒真相,附如下:

按這裡看程式碼

作者為Chitsaou Yorkxin

2008 年 五月 25 日 星期日 at 01:39:48

[亂寫] Windows Live ID Authentication + Ruby on Rails

沒有留言

最近手邊有兩個 Rails 程式在寫,寫好玩的。其中一個用了 Yahoo! BBAuth ,另一個想用 Windows Live ID Auth

前者是因為看到 KeyTalks.com 竟然有 Yahoo! ID 登入的功能,所以才開始研究官方的 API ,想說其實不失為取代 OpenID 的另一種選擇。上個星期寫出來了,不過我是直接拿別人寫好的 Yahoo! BBAuth Wrapper,經修改之後放入 Rails Application,同時 XDite 長輩也替我修正了我自己寫的 sample,做了一份含 Sample Code 的教學(感謝 XDite 前輩的指導)。

不過另一個 Rails Application 因為主要的使用者群是大學生(meaning: 幾乎人人都有 MSN 帳號),又因為 Yahoo! BBAuth 有一個很奇怪的點:每次登入都要問同意或不同意該網站存取;OpenID 只會問第一次,Yahoo! BBAuth 每次問,使用者大概會覺得很煩吧。所以才想試試看 Windows Live ID Auth。

可惜微軟官方提供的 Windows Live ID Auth Sample Code for Ruby 很醜,是用 CGI 硬刻出來的。雖然也提供了其他語言的 Sample Code (Perl, PHP, C#, ASP.net etc.),但最容易拿起來 Run 的大概還是 PHP 版本的吧 =..=

好在官方的 SDK Document 寫得很詳細,又現在也有之前改 Yahoo! BBAuth for Ruby on Rails 的經驗,對這種第三方 Web Authentication 也有了一點概念,所以乾脆自己試試看。

繼續閱讀文章 »

作者為Chitsaou Yorkxin

2008 年 三月 8 日 星期六 at 16:57:37

[心得文] 關於科學實驗

with 2 comments

這幾天的心得。

話說本學期的普物實驗課剛結束,接下來是實驗操作考,下個月。

這兩個多月以來的實驗,包括普物、包括電子學、包括,好吧,程設應該也算一個,給我某些感觸。

繼續閱讀文章 »

作者為Chitsaou Yorkxin

2007 年 十二月 19 日 星期三 at 19:34:04

COSCUP 2007 (後篇)

with 3 comments

上篇ICOS 第三天的議程,我來到了 COSCUP

老實說,打這篇文章時,我雖然不是很睏,但肚子是很餓,又,這天的議程我大抵上是聽不太懂的 XD ,所以這篇寫得很隨便 :p

第一個 Session 是各開放原始碼社群對各自現況的簡介,包括 TOSSUG (台北開放原始碼軟體使用者群)、最初是在台南發跡(得意)StudyArea (酷! 學園)、Wikimedia Taiwan (中華民國維基媒體協會)、Mozilla TaiwanCOSCUP (開源人年會)、OSDC.tw (Open Source Developers’ Conference in Taiwan)。

繼續閱讀文章 »

作者為Chitsaou Yorkxin

2007 年 十一月 11 日 星期日 at 04:50:46