思考着Blog搬家
最近手头有点闲钱,想去注册一个域名和买个空间,放上自己的Blog,Wiki。等完成后就会结束自己的Blog搬家历史,从msn space,到csdn blog,到blogjava,再到ruby-lang.org.cn,现在到这里的blog.ubuntu.org.cn,如果自己没有资源,或者还会再搬。因为随着对Blog的使用时间增加,慢慢会清楚自己的对Blog的需求有什么。如果自己有资源,那很多需求就可以自己实现。
Blog可能会用typo,因为比较好折腾,如果用WP,自己想去改也会很麻烦。wiki,不知道会不会自己开发个,或者用instiki,再写些JavaScript,放在greasemonkey,然后就可以像Google Note那样,一选一点就可以把选中的资料加到wiki中。
不知道有什么比较好的Rails主机介绍。。。
最近真的很忙,每天大量的开发,还有学习着很多新的东西(从同事从网络从书本)。有两篇Blog想写,但是没有时间写,一篇是只写了一个开头的《Ruby GUI开发思考》还有一篇关于开发中的测试的心得和思考。本来还想着7月份,Weblog能过百篇,现在看来。。。
我太懒了:P
a bug in attachment_fu
attachment_fu ,一个Rails插件,帮助你轻松处理文件上传。
最近使用它时遇到一个bug,其中用到了它的s3存储管理,发现如果没有指定缩略的参数时更新会出错,看了一下原来是默认参数nil出的错,当在File#join路径时,会调用每个参数的to_s方法,这样nil.to_s当然就出错了。或许,大家使用s3存储,并使用了attachment_fu时都存的是缩略图,所以没有遇到这个bug吧。这个错误只出现在update时,报的错是type error。
- # line 196
- def full_filename(thumbnail = nil)
- File.join(base_path, thumbnail_name_for(thumbnail))
- end
我已经fix了这个bug,并ci到attachment_fu在github的repo。
fix s3 no thumbnail update error bug
mark一篇文章,关于如何在github上ci path:
http://railsontherun.com/2008/3/3/how-to-use-github-and-submit-a-patch
这是我第一次向开源项目提交代码^_^
about clound computing
Clound computing is so fun. Lots of times it‘s used in web 2.0 servces, as i know, like Yahoo, Google app, Amazon S3 + EC2, etc.
MapReduce,Hadoop,Hbase,Bigtable,Skynet,Solr,…
I need learn more about nutch-solr-hadoop-hbase-weka recently.
I had a kind of holiday in the summer but I couldn’t really relax. I’ve been on the go all this month. -_- But I have learnt much^_^
第6个学期结束
今天考完试拉。大学就剩下一年了,唉呀呀。
下面开始发牢骚。
每次考试完了之后总会觉得考试很假,都是学期初看完了书和相关的东西,比较有兴趣的东西才会去深入研究。但身边大多数人不是这样,一般都是到了最后一周左右时间才开始背书,一般这类同学都会得到比较高的分数。这与老师的出题方向也有关,出题基本都是作业题,就算什么也不会,考试前去背背作业就能拿很高分。记得中央台还报道过学校这里考试前打印店就非常热闹,其实最后一两天打印都是字特别小的“资料”。
中午发现了这个东西挺搞笑:http://www.cnbeta.com/articles/59918.htm
原来做游戏的是比魔鬼还魔鬼,应该去枪毙。其实我一直就认为现在社会上很多奇诡的问题和国人的经济水平,文化水平不高有关。想想小时候家里的电器还不多,就电冰箱电视机,想买本十万个为什么还要和爸妈讲几天。然后忽然到了小学到了中学,再到大学,一时间生活完全变了,物质水平面目全非,精神水平也不敢恭维。这种变化速度国人无法适应。他们说游戏是毒品,他们就是为了赚钱让你玩更长时间,他们还在高楼大厦里,这个逻辑如果放到其它行业其实也是成立的。
还想到一个事情,如果中国不存在盗版软件或者盗版没那么猖獗,计算机会不会不那么流行。在国外来说,现在正常人使用的计算机,应该是软件贵过硬件。
目前国人的所谓家长群体,认为上网就是玩游戏,用电脑就是玩游戏。特别是目前大学生这个群体,很多人买计算机就是买了一部多功能游戏机,目的主要是娱乐。这是个性价比超低的买卖,花五千块去买部计算机打游戏看A片还不如花一千买部psp爽。但大部分人还是买了,用的是家长的血汗钱,就算是家庭经济水平不高的同学也为了面子也会购入计算机,理由是查资料。然后大学宿舍楼就会出现这样的喊声:“XX,建图阿”,“XX,我在X场X桌”,学生会为了娱乐(不单游戏,还有其他),逃课,通宵等等。大学生玩游戏时一般也会有比较多噪音出来,比如我常听见的“你会不会的阿?”,“你们这群傻13/垃圾”,“那么厉害不去打第一名”,“我踢,我踢,看你们还敢打我”……祖国未来的花朵就是这么成长的。
最近sourceforge还给封了。
这个世界太假拉。
发完牢骚,该干嘛干嘛去,END
FxRuby初体验Part4
之前的:FxRuby初体验Part1,Part2,Part3。
到了PictureBook的V0.4了。这个版本算是基本的功能都做足了,包括了加上了相册选择,相册持久化等等。
#album_list_view.rb
require 'fox16'
include Fox
class AlbumListView < FXList
attr_reader :album_list
def initialize(p, opts)
super(p, :opts => opts)
end
def switcher=(sw)
@switcher = sw
end
def add_album(album)
appendItem(album.title)
AlbumView.new(@switcher, album)
end
def album_list=(albums)
@album_list = albums
@album_list.each_album do |album|
add_album(album)
end
end
end
#picture_book.rb
$KCODE = "U"
require 'fox16'
require 'yaml'
include Fox
require 'album'
require 'album_list'
require 'photo'
require 'photo_view'
require 'album_view'
require 'album_list_view'
class PictureBook < FXMainWindow
def initialize(app)
super(app, "Picture Book" , :width => 600, :height => 400)
add_menu_bar
begin
@album_list = YAML.load_file("picturebook.yml" )
rescue
@album_list = AlbumList.new
@album_list.add_album(Album.new("My Photos" ))
end
splitter = FXSplitter.new(self,
:opts => SPLITTER_HORIZONTAL|LAYOUT_FILL)
@album_list_view = AlbumListView.new(splitter, LAYOUT_FILL)
@switcher = FXSwitcher.new(splitter, :opts => LAYOUT_FILL)
@switcher.connect(SEL_UPDATE) do
@switcher.current = @album_list_view.currentItem
end
@album_list_view.switcher = @switcher
@album_list_view.album_list = @album_list
end
def create
super
show(PLACEMENT_SCREEN)
end
def add_menu_bar
# 创建一个菜单栏的实例
menu_bar = FXMenuBar.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
# 创建一个菜单栏项
file_menu = FXMenuPane.new(self)
FXMenuTitle.new(menu_bar, "文件" , :popupMenu => file_menu)
# 下面是一个创建菜单栏项和所关联动作的绑定
import_cmd = FXMenuCommand.new(file_menu, "导入..." )
import_cmd.connect(SEL_COMMAND) do
dialog = FXFileDialog.new(self, "导入图片" )
dialog.selectMode = SELECTFILE_MULTIPLE
dialog.patternList = ["JPEG Images (*.jpg, *.jpeg)" ]
if dialog.execute != 0
import_photos(dialog.filenames)
end
end
new_album_command = FXMenuCommand.new(file_menu, “New Album…” )
new_album_command.connect(SEL_COMMAND) do
album_title = FXInputDialog.getString(”My Album” , self, “New Album” , “Name:” )
if album_title
album = Album.new(album_title)
@album_list.add_album(album)
@album_list_view.add_album(album)
AlbumView.new(@switcher, album)
end
end
exit_cmd = FXMenuCommand.new(file_menu, “退出” )# 一个简单的退出项
exit_cmd.connect(SEL_COMMAND) do
store_album_list
exit
end
end
def import_photos(filenames)
filenames.each do |filename|
photo = Photo.new(filename)
current_album.add_photo(photo)
current_album_view.add_photo(photo)
end
current_album_view.create
end
def current_album_view
@switcher.childAtIndex(@switcher.current)
end
def current_album
current_album_view.album
end
def store_album_list
File.open(”picturebook.yml” , “w” ) do |io|
io.write(YAML.dump(@album_list))
end
end
end
if __FILE__ == $0
FXApp.new do |app|
PictureBook.new(app)
app.create
app.run
end
end
剩下的晚上再写。。。











