Search


Meta

Creative


Support


Leesoft

Feed™

Recent Comments

Photos

Oct
31

Ubuntu8.10 升级计划

Posted by » developerly
94 hits

终于等到了ubuntu8.10正式发布了。这次的升级希望能够解决我的笔记本休眠的问题,以及双屏显示器的问题。不过我也不抱有太大期望的说。现在的问题是,发现从7.10升级到8.04我的本本已经很慢了。难道是时候换新机器了?呵呵,希望8.10在运行速度上能够稍微有所提升。

不过目前好像各个服务器速度都很慢呢,看来只能回家用BT来下载光盘了,减轻服务器的负担,人人有责,嘿嘿。

Oct
28

Ubuntu 升级预备

Posted by » developerly
36 hits

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

Oct
27

转载关于Ruby的extend和include

Posted by » developerly
40 hits

Ruby extend and include

from URL: http://www.rsa.idv.tw/?p=151

Ruby modules有兩種方式mixed into a class,讓class可以簡易新增行為

  1. include
  2. 通常用來新增Instance of mehtod

     

     

    module  CMath
    
      def add(n)
    
        self + n
    
      end
    
    end
    
    Fixnum.class_eval do
    
      include CMath
    
    end
    
    puts  3.add 10
  3. extend
  4. 通常用來新增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
  5. extend through include pattern
  6. 提供統一介面處理

     

     

    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.

Oct
21

Racl新鲜出炉:预告

Posted by » developerly
33 hits

今天真的很兴奋,经过这么长时间,终于把Rails程序中权限控制按照我自己的想法实现了。特此留个记号,明天将正式发布我的权限控制插件。欢迎大家交流!

Oct
16

一个简单问题的答案

Posted by » developerly
41 hits

一个简单的问题,却半天没有找到答案。关于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

Oct
15

关于Ubiquity真正厉害之处

Posted by » developerly
73 hits

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工具,这样就真的实现了网络于电脑的无缝集成。

Oct
13

jilu script for ubiquity

Posted by » developerly
47 hits

再次新发布一个可以方便使用开心网记录功能的Ubiquity脚本

这里订阅

Oct
12

自己写了一个开心网用的Ubiquity脚本

Posted by » developerly
130 hits

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的话

Oct
7

Ubiquity

Posted by » developerly
48 hits

终于把dell上面的Ubuntu的firefox升级到3.0了,就是为了体验目前最火的Ubiquity。计算机的人机交互一直是一门很深奥的学问,有人说鼠标和图形界面好,有人说还是命令行好。要我说啊,各有优劣。就像我用vim一样,常用的命令就用命令行好了,稍微高级点的还是要借助菜单点击。所以至今我还不能像高手那样在纯文本环境中使用vim,用的还是gvim。不过命令行确实能很大的提高效率。所以如果说互联网最终要成为一个广义的操作系统的话,还是需要一个终端工具的。所有我们有了Ubiquity。据说作者和另外一个Windows下面Laucher的作者是同一个人。呵呵,如果有人恰巧也用过这个的话,也就不难理解Ubiquity是怎么产生的了。

其实现在网络正向着OpenAPI的方向发展,以前的网站只是一个媒介(媒体界面),而现在的网站更多的变成了服务的载体。而网页,确反而变得越来越不重要了。比如google的相册或者Flickr,我一直在使用这两家的服务,却很少去他们的网站看看,大多数情况下我都是用一个叫做Shozu的软件来快速分享手机中的照片。不过目前要使用各个网站的OpenAPI服务,比如facebook,flickr或者twitt的服务还是需要登陆到各个网站上,或者等待达人开发聚合的工具。

Ubiquity就算是一个达人开发的工具了。简单点说就是一个聚合工具,可以不用离开当前页面,或者利用当前页面的内容,快捷的访问其他的各种互联网的服务。未来甚至可以成为更高级聚合应用的基础。

从网站提供者来说,是时候考虑怎么把网页变成服务,提供多渠道,多方式访问服务的时候了。