11
Ubuntu8.10下面的rails开发
没钱搞苹果,就只能搞VIM了。升级到U810后,新的主题确实很漂亮,不过问题是Netbeans的界面在U下面表现的很差。我说Sun啊,Sun,什么时候才能把JavaUI搞好啊。所以现在准备慢慢习惯在vim下面搞开发,希望能够尽早适应。
没钱搞苹果,就只能搞VIM了。升级到U810后,新的主题确实很漂亮,不过问题是Netbeans的界面在U下面表现的很差。我说Sun啊,Sun,什么时候才能把JavaUI搞好啊。所以现在准备慢慢习惯在vim下面搞开发,希望能够尽早适应。
经过漫长的努力,终于在我的这台老dell机器上成功的把Ubuntu升级到8.10了。新的Ubuntu主题确实不错,我已经不再使用苹果的主题了,Ubuntu就是Ubuntu,起码安装了Ubuntu的机器是一台人人都买的起的机器:-)
firefox也没有以前好用了,所以决定开始尝试使用Opera。
终于等到了ubuntu8.10正式发布了。这次的升级希望能够解决我的笔记本休眠的问题,以及双屏显示器的问题。不过我也不抱有太大期望的说。现在的问题是,发现从7.10升级到8.04我的本本已经很慢了。难道是时候换新机器了?呵呵,希望8.10在运行速度上能够稍微有所提升。
不过目前好像各个服务器速度都很慢呢,看来只能回家用BT来下载光盘了,减轻服务器的负担,人人有责,嘿嘿。
Ubuntu8.10带来了许多好的特性,看来是时候准备升级了。下面记录的是通过iso文件升级ubuntu的方法,留作备用(因为我网络升级就从来没有成功过)
sudo umount /cdrom
sudo mount /home/Ubuntu-8.04-desktop-i386.iso /cdrom -t iso9660 -o loop
sudo apt-cdrom add
sudo apt-get update
sudo apt-get dist-upgrade
sudo update-manager -d
from URL: http://www.rsa.idv.tw/?p=151
Ruby modules有兩種方式mixed into a class,讓class可以簡易新增行為
通常用來新增Instance of mehtod
module CMath def add(n) self + n end end Fixnum.class_eval do include CMath end puts 3.add 10
通常用來新增class method
module ExtendMe def v_object_id “my object id is #{self.object_id}” end end class Person extend ExtendMe end puts Person.v_object_id
提供統一介面處理
module ExtendThroughIncludePattern def self.included(klass) klass.extend ClassMethods end def instance_method “this is an instance of #{self.class}” end module ClassMethods def class_method “this is a method of the #{self} class” end end end class Person include ExtendThroughIncludePattern end puts Person.new.instance_method puts Person.class_method
self.included
Callback invoked whenever the receiver is included in another module or class. This should be used in preference to Module.append_features if your code wants to perform some action when a module is included in another.
一个简单的问题,却半天没有找到答案。关于Ubuntu添加新用户的操作。
通过使用
sudo adduser newuser admin
可以为admin用户组添加一个叫做newuser的用户 。然后执行
sudo passwd newuser
可以为newuser设置密码
但是从ssh或者终端上并不能使用这个用户登录,因为没有为用户指定登录的shell。可以使用如下命令指定登录的shell
sudo chsh -s SHELL_PATH newuser
其中可用的SHELL_PATH可以使用cat /etc/shells 查看。比如使用bash,可以用
sudu chsh -s /bin/bash newuser
Ubiquity发布已经有一段时间了,使用Ubiquity也有一段时间了,甚至于为Ubiquity编写脚本都有一段时间了(想要了解的朋友可以点击这里和这里查看)。一直觉得Ubiquity应该是一个很让人激动的技术,却一直没有想到具体的细节。今天现在这里写点想法,希望能有朋友和我讨论。
Ubiquity最有意思的在于可以在一个页面通过命令行的形式去调用其他网站的服务。有人说,Ubiquity是建立在其他网站提供OpenAPI的大环境下。可是,事实上并没有太多网站提供OpenAPI,毕竟虽然这是一个趋势,却是网站开发人员的安全噩梦。况且,如果Ubiquity是建立在其他网站API基础上的,那么还不如做成一个类似于ENSO的应用程序,岂不是更方便。其实Ubiquity真正厉害的地方反而在于它是建立在浏览器基础上的,也就是可以与其他网站共享session,cookie。从而让不提供OpenAPI的网站也具有了API的功能。大家都知道,所谓session或者cookie主要是为了模拟网络长连接,记录状态的一个技术。对于firefox来说,即使当前tab页面关闭了,session和cookie也不会随着被删除,所以对于登录来说,只要firefox没有关闭,重新打开需要认证的页面,一般情况下并不需要重新登录。 Ubiquity正是利用了这个道理,在调用其他网站内容的时候,利用firefox的基础构架,完美绕过了认证登录。这样说可能有点抽象,我拿我开发的开心网状态更新脚本来举一个例子:
execute: function( status ) {
jQuery.ajax({
//更新用户状态不需要了解用户名或者密码
type: “POST”,
url: “http://www.kaixin001.com/friend/status_submit.php”,
data: {’state’:status.text},
success: function(fb) {displayMessage(’Kaixin status updated’);
},
error: function() {displayMessage(”Error updating Kaixin status.”)
}
});
},
这个脚本的使用前提是浏览器必须要登录过开心网或者设置自动登录。这样在使用脚本的时候,可以充分利用浏览器的信息实现自动更新相应用户的状态。这就让本来没有API接口的开心网有了API的功能。
更多思考,未来的firefxo不知道有没有可能做成一个运行于后台的服务,在后台提供类似登录信息,session,cookie等功能,而Ubiquity成为一个集成在操作系统中的软件,这样就可以随时随地的使用互联网。甚至还会有人在Ubiquity的基础上开发新的GUI工具,这样就真的实现了网络于电脑的无缝集成。
Ubiquity确实是一个很有意思的东东,让我可以5分钟就写出一个可用的脚本来,嘿嘿。新写了一个专门用来更新开心网上面状态的脚本。
代码如下:
CmdUtils.CreateCommand({
name: “kaixin-status”,
homepage: “http://www.leesoft.com.cn”,
author: { name: “Stephen Lee”, email: “stephen.liy@gmail.com”},
contributors: [”Stephen Lee”],
license: “MIT”,
description: “Updates your Kaixin status.”,
help: “Update your kaxinwang status! (Don’t forget to include ‘is’!)”,
takes: {”your status”: noun_arb_text},
preview:function(pblock,msg){
pblock.innerHTML=”<h1>I am “+msg.text+”<h1>”;
},
execute: function( status ) {
jQuery.ajax({
type: “POST”,
url: “http://www.kaixin001.com/friend/status_submit.php”,
data: {’state’:status.text},
success: function(fb) {
displayMessage(’Kaixin status updated’);
},
error: function() {
displayMessage(”Error updating Kaixin status.”)
}
});
},
});
点击进去可以订阅这个脚本,如果你已经安装Ubiquity的话