Dec 28, 2010

blogspot出问题了?

blogspot.com 出问题了??

随便点开一篇文章都会出现下面的错误。

 

Page not found

Sorry, the page you were looking for in the blog ox0spy's blog does not exist.

这收获,太大了

首先感谢今天点击我广告的同学, 我快有 1$ 了, 哈哈

大学3年, 一直在"推销" Linux (ubuntu, debian ...), Google, Firefox , 现在好像也没几个人用他们。

今天项目组就有2人开始尝试blogspot.com 了, 而,Ubuntu、Firefox是我们的指定工作平台和浏览器, 哈哈

Dec 25, 2010

setup subversion on Debian/Ubuntu

清理目录时,发现很久前为我妹演示svn的工作机制时,写的怎么搭建subversion服务.

1. install software
$ sudo apt-get install subversion libapache2-svn

2.
$ sudo svnadmin create /home/svn
$ sudo chown -R www-data:www-data /home/svn

3. configure
$ sudo vim /etc/apache2/mods-enabled/dav_svn.conf
uncomment

DAV svn
SVNPath /home/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd


4. create password file
$ sudo htpasswd2 -cm /etc/apache2/dav_svn.passwd
$ sudo htpasswd2 -m /etc/apache2/dav_svn.passwd

5. reload apache2
$ sudo /etc/init.d/apache2 reload

deploy GAppProxy 2.0 on GAE

老板本的GAppProxy 都用了 219 days, 21:46:26 , 很久前就看到2.0支持ssl了,今天部署下.

现在只是每天使用,早就忘了,当年是这么把它传到 appspot.com的了。下面记下

0. Install Google App Engine SDK for Python
    http://code.google.com/appengine/downloads.html#Google_App_Engine_SDK_for_Python
    http://googleappengine.googlecode.com/files/google_appengine_1.4.0.zip

    download and extract uncompress google_appengine_1.4.0.zip.

    modify PATH variable in ~/.bashrc for GAE.

1. checkout GAppProxy
    $ svn checkout http://gappproxy.googlecode.com/svn/trunk/ gappproxy

2.deploy GAppProxy 
   modify fetchserver/app.yaml, application:


   $ cd gappproxy && appcfg.py update fetchserver


   login appspot.com, My Applications-> -> Versions, choose the lastest and make default.


3. edit localproxy/proxy.conf
   listen_port, fetch_server


4. testing
   $ localproxy/proxy.py

authenticate Debian/Ubuntu repositories: install public key

 W: GPG error: http://ftp.us.debian.org testing Release: The following signatures
couldn't be verified because the public key is not available: NO_PUBKEY xxxxxxxxxxxx

$ gpg --keyserver subkeys.pgp.net --recv-keys 55BE302B
$ gpg -a --export 55BE302B | sudo apt-key add -

or

sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 55BE302B

Dec 23, 2010

搭建项目组内部wiki

  看到txt2tags有一段时间了,在Ubuntu下工作一个多月了吧,以后也会一直在Linux下工作,必须抓紧放弃讨厌的二进制文件格式,选个处理纯文本的工具完成文档。

  上周笔试题是边学边用txt2tags完成的,最近,项目组要写很多文档,为扩大做准备。首先想到的就是wiki了,其实,之前一直用trac做wiki的,但,trac有些不好的地方。

  trac的不爽之处:
  1. 啥都做, 喜欢 do one thing, and do it well.
  2. 貌似用的自己的数据库,想只把wiki分离出来不太方便
  3. 想把wiki页面转换成其他格式,不是很方便

  自己用过一段时间的vimwiki, 总觉得太简单了,而且,那天项目组来个用emacs的就不好整了。

  考虑到txt2tags one source multi target. 纯文本,语法也比较简单,容易上手,txt2tags.org 几乎所有页面都可以查看源文件。

  最终,决定用txt2tags,用git管理 *.t2t,大家都可以随便修改wiki页面,当然,修改稍微麻烦了些,必须先通过git checkout下来,必须学习txt2tags markup语法,然后,一个字一个字的写,写好再push上去,我已经写好git hooks/post-update 根据修改文件在/var/www/wiki下生成相应的 .html。

  虽然难了些,但,我们是开发组,大家应该多学习点知识,不管是编码还是写文档,争取都做得专业点,争取做公司技术实力最强的项目组。

  一切都刚刚开始,好的愿望,希望坚持会有好的结果。

Nov 29, 2010

working in Ubuntu

终于可以直接在pure Linux 上工作,可以不在使用Windows了, 目前公司要求安装Ubuntu

明天过去继续安装、配置, 安装乱七八糟的软件,修改配置 总是很麻烦,但,能不用windows 这点麻烦算什么 :-)

chinaunix php code jam

去年 CU 的C编程, 拿了个小奖, 结果看到晚了,我要的书都被其他人拿走了,只好拿了1000分。

今年十一快结束了,发现CU的PHP编程大赛,做了10几道题,又一个2等小奖。

今年CU mm 显然更加友好,我以为只有一件T恤,今天CU mm 打电话说还有本书呢, 赞

广告时间, 迎接ChinaUnix九周年庆技术实践之二----C/C++编程大赛!

Nov 25, 2010

fcitx en_US local

$ sudo apt-get install fcitx im-switch

英文locale, 所以要修改下配置文件, /etc/gtk-2.0/gtk.immodules 或者 /usr/lib/gtk-2.0/2.10.0/immodule-files.d/libgtk2.0-0.immodules

找到 xim , 在适当的地方加上 en,如下:
"xim" "X Input Method" "gtk20" "/usr/share/locale" "en:ko:ja:th:zh"

$ im-switch -s fcitx

note: 也许需要 dpkg-reconfigure locales

重启下 X即可

Nov 4, 2010

first oss contribution

  很久之前发现 alsa 有个shell script (alsa-compile.sh)不支持 Debian/Ubuntu, 刚好我公司用的是Debian testing, 所以发现了, 并且加了几行代码就可以支持了。
  最近我的任务就是给开源社区fix bug,所以,用我的巨烂英语, 很不好意思的和国外developer交流着
  patch 如下,下次争取fix c code
diff --git a/utils/alsa-compile.sh b/utils/alsa-compile.sh
index 4f72d10..1ae0c49 100755
--- a/utils/alsa-compile.sh
+++ b/utils/alsa-compile.sh
@@ -329,6 +329,16 @@ is_rpm_installed() {
     fi
 }

+# Echo "true" if deb installed, else "false"
+is_deb_installed() {
+    dpkg -l $1 2>&1 | grep -Eq '^ii'
+       if test "$?" = "0"; then
+               echo "true"
+       else
+               echo "false"
+       fi
+}
+
 # Install package
 # $1 is package name
 install_package() {
@@ -340,6 +350,14 @@ install_package() {
     Fedora|RHEL)
         test "$pkg" == "lsb" && pkg="redhat-lsb"
         ;;
+    Debian|Ubuntu)
+        test "$pkg" == "lsb" && pkg="lsb-release"
+        test "$pkg" == "git" && pkg="git-core"
+        test "$pkg" == "alsa-lib-devel" && pkg="libasound2-dev"
+        test "$pkg" == "gettext-tools" && pkg="gettext-base"
+        test "$pkg" == "gettext-devel" && pkg="gettext"
+        test "$pkg" == "ncurses-devel" && pkg="ncurses-bin"
+        ;;
     *)
         echo >&2 "Cannot install $1 for unsupported distribution $distrib."
         exit 1
@@ -352,6 +370,9 @@ install_package() {
     Fedora|RHEL)
         yum install -y $pkg
         ;;
+    Debian|Ubuntu)
+        apt-get install -y $pkg
+        ;;
     *)
         echo >&2 "Cannot install $pkg for unsupported distribution $distrib."
         exit 1
@@ -400,6 +421,12 @@ check_kernel_source() {
             install_package $kernel_devel
         fi
         ;;
+    Debian|Ubuntu)
+        local kernel_devel="linux-source-$(uname --kernel-release | sed 's/-.*$//')"
+        if test $(is_deb_installed $kernel_devel) = "false" ; then
+            install_package $kernel_devel
+        fi
+        ;;
     *)
         echo >&2 "Cannot install kernel sources for unsupported distribution $distrib."
         exit 1

Oct 25, 2010

Eclips/Android-sdk: Unable to connect to repository

在Debian/Ubuntu上安装 Eclipse, 不管是apt-get 还是直接下载的, 当Help -> Install New Software 时,都会报相同的错误,Unable to connect to repository

使用android-sdk 的 $ android update sdk 时, 也有类似错误.

但是在Windows安装却没有问题,而且Linux下 curl 查看,可以连接到服务器的。

后来网上看到,应该是所有的Java app都会出现 “Unable to connect to”。

解决方法:
将/etc/sysctl.d/bindv6only.conf 中的 net.ipv6.bindv6only = 1 改为 net.ipv6.bindv6only = 0
$ sudo invoke-rc.d procps restart

Oct 23, 2010

Setup Android Develop Environment

0. install Eclipse
Download Eclipse from http://www.eclipse.org/downloads/, Eclipse IDE for Java Developers.
tar xvf eclipse-java-galileo-linux-gtk.tar.gz

1. Install ADT
Error message: org.eclipse.wst.sse.core 0.0.0' but it could not be found

# install ADT for developing Android
Start Eclipse, Help -> Install New Software,
Add site:
Google Android Tools - https://dl-ssl.google.com/android/eclipse/
Eclipse GEF      - http://download.eclipse.org/tools/gef/updates/releases/
Eclipse EMF      - http://download.eclipse.org/modeling/emf/updates/releases/
Eclipse GMF      - http://download.eclipse.org/modeling/gmf/updates/releases
Eclipse Webtools - http://download.eclipse.org/webtools/updates/
Google eclipse Plugin - http://dl.google.com/eclipse/plugin/3.5

Choose "Google Android Tools", then select "Developer Tools" and install it.

2. Install Android SDK
download android-sdk_r07-linux_x86.tgz

$ tar xvf android-sdk_r07-linux_x86.tgz
$ cd android-sdk-linux_x86
$ tools/android update sdk
modify ~/.bashrc, add android-sdk-linux_x86/tools to PATH environ variable.

3. Create Android target
$ tools/android create avd --target "android-8" --name "android-8"
$ tools/android create avd --target "android-7" --name "android-7"

4. Setup Eclipse
Eclipse, Window -> Preferences -> Android, SDK Location, locate to your android sdk directory.

Android通过JNI调用native code

0.  用Eclipse 创建 Android Project
1. 创建Java类,这个类的作用是描述native code中的函数, 比如DemoLib
2. 生成native code头文件, javah -jni ...
3. 实现native code
4. 编写jni/Android.mk
5. 编译native code, 生成动态库
6. 在Java程序中调用native code
7. 测试

0. 先通过 Eclipse 创建一个Android Project
Project name: LibDemoTest
Build Target: Android 2.2
Package name: org.ox0spy.libdemotest
Create Activity: LibDemoTest

1. 在src中添加一个新类 - DemoLib
Package: org.ox0spy.libdemotest
Name: DemoLib

DemoLib.java 内容如下:
package org.ox0spy.libdemotest;

public class DemoLib {
    static {
        System.loadLibrary("demo");
    }  
   
    public native int multiply(int a, int b);
   
    public native String greet();
}

注意: 编辑完了一定保存下.

2. 生成native code的头文件
$ cd ~/workspace/LibDemoTest/bin
$ javah -jni org.ox0spy.libdemotest.DemoLib

$ mkdir ../jni
$ mv org_ox0spy_libdemotest_DemoLib.h ../jni/

3. 实现native code, demo.c 内容如下:
#include "org_ox0spy_libdemotest_DemoLib.h"


JNIEXPORT jint JNICALL Java_org_ox0spy_libdemotest_DemoLib_multiply
  (JNIEnv * env, jobject obj, jint a, jint b)
{
    return a*b;
}

JNIEXPORT jstring JNICALL Java_org_ox0spy_libdemotest_DemoLib_greet
  (JNIEnv * env, jobject obj)
{
    return (*env)->NewStringUTF(env, "Hello Android!");
}

4. 编写jni/Android.mk
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_SRC_FILES := demo.c
LOCAL_MODULE    := demo

include $(BUILD_SHARED_LIBRARY)

5. 编译native code
$ cd ~/workspace/LibDemoTest
$ ndk-build   # 先将android-ndk-r4b加入你的PATH中

6. Java程序中调用native code, 我在LibDemoTest.java中用到了native code
LibDemoTest内容如下:
package org.ox0spy.libdemotest;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class LibDemoTest extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        DemoLib demoLib = new DemoLib();

        int result = demoLib.multiply(100, 100);
        String str = demoLib.greet();

        TextView tv = new TextView(this);
        tv.setText(str + "\n" + Integer.toString(result));

        setContentView(tv);
    }
}

7. 测试, Eclipse, Run -> Run

我碰到的错误:
No implementation found for native

碰到这个错误时,我是用System.load("demo")加载动态库的,而且从logcat的输出发现libdemo.so已经成功加载了。
我是因为一开始没有用javah -jni 生成头文件,自己写的native code函数声明是:
jint multiply(jint a, jint b);

所以, 只要用javah -jni 生成头文件应该就不会碰到这个问题了.

Oct 16, 2010

Ubuntu 升级到 10.10, 解决Firefox无法播放flash

昨天看了Tsung的Ubuntu 10.04 升級到10.10 Maverick Meerkat 與 問題排除 晚上回去就把我的ubuntu 10.04 desktop升级了,升级很简单, 一路也很顺利。

想想,这是我用Linux这么多年来,第一次升级系统, 每次我都觉得升级太麻烦, 要等好长时间,所以,直接下载iso,重新安装;昨天睡觉前开始升级,早上起来就好了,整体感觉很好。

10.04 desktop 升级到 10.10
Alt + F2, 输入 update-manager -d , 下面根据提示操作就对了。

目前唯一的问题是 Firefox 看不了 flash, 从 Firefox -> Tools -> Add-ons 看到播放flash用的是 gnash 而不是 adobe-flash,虽然 dpkg -l | grep adobe-flash , 可以看到 adobe-flashplugin已经安装了,但 firefox add-ons 上看不到, 我认为是这两个冲突导致的。
卸载 gnash
$ sudo apt-get purge gnash
$ sudo apt-get purge gnash-common
重新安装 adobe-flash,问题解决.
$ sudo apt-get install --reinstall adobe-flashplugin

Oct 14, 2010

public access git on ubuntu/debian

前面介绍了
gitosis搭建: setting up gitosis on ubuntudebian
gitweb搭建: setting up gitweb on ubuntudebian
gitosis权限: gitosis权限

现在,有个项目,自己项目组的人肯定要有commit权限,但其他人也要有readonly权限,虽然,可以在gitosis-admin 中添加readonly组,但,我们不可能找每个人要ssh public key吧

这时候, 可以用 git-daemon
$ sudo apt-get install git-daemon-run
修改 /etc/sv/git-daemon/run , 把git repo的路径设置正确就行
$ cat /etc/sv/git-daemon/run
#!/bin/sh
exec 2>&1
echo 'git-daemon starting.'
exec chpst -ugitdaemon \
  /usr/lib/git-core/git-daemon --verbose --base-path=/srv/gitosis/repositories

把要让匿名访问的git repository目录下放一个名为 git-daemon-export-ok 的空文件.

$ sudo sv restart git-daemon

$ git clone git://mypc/Your-test.git

Oct 10, 2010

gitosis权限设置

通过gitosis搭建git服务器可以参考 http://ox0spy.blogspot.com/2010/10/setting-up-gitosis-on-ubuntudebian.html.

下面看下gitosis权限设置
gitosis有组(group)和成员(members), 权限就是对repository的访问限制.
有两个关键字修饰 repository ,一个是 writable, 一个是 readonly.
writable 意思是,对这个repository 有写权限
readonly 是, 对这个repository 只有读权限

最常见的例子:
[group gitosis-admin]
writable = gitosis-admin   # 注意,后面不要加 .git
members = ox0spy@lucid

这三句话是啥意思呢?
第1句,定义一个组, 名字为 gitosis-admin
第2句,  writable = 后面跟的是仓库名, 只是这个仓库名是去掉.git的,所以, 我们在 git clone 时,要自己加上 .git,如下:
$ git clone gitosis@localhost:gitosis-admin.git  # 注意最后的 .git
writable 后面可以跟很多个仓库名, 他们以whitespace分开, 一般以空格分隔,如下:
writable = gitosis-admin android mytest
第3句, members 说明这个组的成员, 成员名是 username@hostname , @hostname 不能去,否则会报错.
成员之间也通过 whitespace 分隔,通常用空格分隔.

可以发现,成员属于某个组, 而对repository的访问权限是通过组控制的.
这样的话,如果同一个repository,想让某些用户只能读,不能写,就必须新建一个组, 下面就看下怎么实现这个功能.
[group test]  # 该组用户可写
members = ox0spy@lucid lfs@debian
writable = mytest

[group test_ro] # 该组用户只读
members = toor@ubuntu
readonly = mytest              # 只读,这里是readonly 而不是 readable

这样,toor@ubuntu 就只能对 gitosis@Your-server:mytest.git 进行读

members 可以包含其他组的所有成员
[group member_test]
writable = memberTest
readonly = mytest
members = ox0spy@lucid @test
# 这里的 @test 就是上面 test组的所有成员 (ox0spy@lucid lfs@debian)

最后,要说的是, 一个组可以只有 members, 没有 writable 和 readonly,如下:
[group another_group]
members = monkey@abc cow@gentoo

这个组只是为了被其他组包含而定义.

setting up gitweb on ubuntu/debian

1. 安装
$ sudo apt-get install gitweb

2. 设置
修改 /etc/gitweb.conf
# projectroot 设置成你自己的仓库路径, 这是gitosis默认路径
$projectroot = "/srv/gitosis/repositories/"; 

view /etc/apache2/conf.d/gitweb  # 一般不用修改

$ cp -r /usr/share/gitweb /var/www

3. 测试
$ curl localhost/gitweb/

Oct 8, 2010

setting up gitosis on ubuntu/debian

1. install
# run on server
$ sudo apt-get install git-core gitosis

2. generate ssh key
# run on your pc
$ ssh-keygen -t rsa

3. upload the ssh public key
# run on your pc
$ scp ~/.ssh/id_rsa.pub USER@YOUR_SERVER:/tmp

4. create admin repository
# run on server
$ sudo -H -u gitosis gitosis-init < /tmp/id_rsa.pub # monkey's ssh public key
$ sudo chmod 755 /srv/gitosis/repositories/gitosis-admin.git/hooks/post-update

5. checkout gitosis-admin
# run on your pc
$ git clone gitosis@YOUR_SERvER:gitosis-admin.git

6. grante right for members
# run on your pc, add new group - android
[group android] # team name
writable = 0xdroid-0x5 0xdroid-0x4  # project name
members  = monkey@debian cow@ubuntu  # members

# add cow's ssh public key
$ git add keydir/cow@ubuntu.pub gitosis.conf

# grante cow commit right to android
$ git commit -m "Granted cow commit right to android"
$ git push  # now, cow has the commit right.

7. create new repositories
There are two ways to commit your code:
a. checkin your codes from zero
# create new repositories - 0xdroid-0x5.git
$ cd YOUR-CODE-DIR
$ mkdir 0xdroid-0x5.git && cd 0xdroid-0x5.git
$ git init

# modify .gitignore

$ git remote add origin gitosis@YOUR_SERVER:0xdroid-0x5.git
$ git add .
$ git commit -m "initial import"
$ git push origin master:refs/heads/master

b. checkin your codes from old git repo
$ cd YOUR-OlD-GiT-REPO
$ git remote -v
$ git pull  # update
$ git remote rm origin
$ git remote add origin gitosis@YOUR_SERVER:0xdroid-0x5.git
$ git push origin master:refs/heads/master

8. checkout codes
$ git clone gitosis@YOUR_SERVER:0xdroid-0x5.git

Oct 7, 2010

2010 国庆

国庆马上就过去了,7天假,似乎也没做什么事情。

去南湖梦幻岛转悠了大半天

一本应该看完的perl电子书,也没看完,主要是今天的失误, 导致一些小损失 ... ,今天的确是悲剧的一天

本应该做的其他两件事情根本没去做

唯一开心的是,做了十几道Chinaunix的php大赛题, 翻着php manual 做的 ... ,用C的风格来做php array遍历 ... , 不过,应该能有件Chinaunix的长袖 T恤 吧

明天开始工作, 最近不太喜欢工作,唉

Sep 29, 2010

vim 中文乱码

   好久没碰到 vim 中文乱码问题了,最近gedit也中文(gbk)乱码很容易解决了( gconf-editor ),但是vim我怎么也想不明白,一样的系统(ubuntu 10.04),一样的.vimrc,表现咋就这么大呢, 把 vim reinstall 了几遍,问题依旧....

   想了好久最后想到,以前隐约自己编译安装过一次vim,当时没有网络,apt-get purge vim-*,然后, locate vim, rm 所以vim相关的文件,然后 apt-get install vim 就可以正常显示中文了.

Jul 24, 2010

整理下博客

添加 Recent comments, 换个style ..
删除几个没用的小工具...
要继续写博客 ...

Jul 23, 2010

据说我有做山寨机牛人的潜力

激动坏了,,

中午项目组同事吃饭, 一原moto老兄又开始给大家科普下山寨手机,后来讲到,他一朋友,专做山寨手机,Linux很厉害的,年薪 40w$,深圳一山寨厂的技术头。

后来讲到,我有这种潜力,多谢这么看好我 :-)

记录下,看看n年后我在干嘛

Jul 16, 2010

在这边快2个月了

  自从到TT公司后,工作充实多了,充实的中午都没空看 Google Reader, planet 了。

  从来没有这么认真的学习、工作过,每天早早起床上班, 中午吃饭都在讨论技术问题,下午自愿加班继续没完成的工作...

  项目的管理模式也发生了很大的变化,不像以前的传统项目管理模式,总是PM分工大家做。现在,大家讨论要完成那些feather, 然后,每个人自己选择喜欢的task。当然,这种Alige的管理模式要想run的好,项目组必须有一个好的氛围,大家都很自觉才行。一旦scrum运行的好, 工作的确是件快乐的事情

  这种模式也可以让每个人最大限度的发挥出自己的水平/潜力,任务是自己选择的,加班也是自愿的,哈哈

  在这边工作快2个月了,收获还是蛮大的,上次也被manager沟通了下,竟然说我support做的不够积极,应该更加主动些, 汗 ...

  然后,把环境搭建、wiki管理、版本控制、自动编译、自动测试都让我做, 还要更加积极的support其他人, 更要命的是要完成的任务还不能比别人少

  我还有最头疼的英语要补,每次写email、文档都要浪费很多时间(必须英文), 还好 communicator上可以写中文,不然真的疯了。
  ps: 昨天门禁卡出问题了,没法输密码,今天老外问我咋回事,费了好大的劲,写了句很烂的英语,才让他明白,不知有没有被鄙视

  努力 ... 

Jul 3, 2010

1年4个月

时间飞逝,来成都1年4个月了,在双楠也待了1年了,明天去重新找房子。

x + 3 + 11 + y + 1.z

在新公司也一个多月了,努力。。。

May 5, 2010

惆怅

最近一直挺迷茫,也挺郁闷 (被zx无视,被sl鄙视 ...)
放假第一天晚上,成了多余的,只能在马路上溜达,还好ys陪聊,聊得后来也开始
不爽了,然后坐着末班车回去 ...
第二天, 去同事那边吃饭,感觉男方男人好累,做饭、扫地 (北方现在也这样?
)。天气超热, 回来时拿了2箱雪糕、火炬、冰淇淋
第三天, 高中同学小聚下,1对 + 1对 + 我 :-( ,幻想下Yang的美好五一 :-D

然后,昨天一个电话、今天一个电话,让我又开始幻想新的工作了,只是一个口头
offer;
但,我还是很厚道的告诉了项目经理及老总我的想法,老总给我讲了很多,sign

现在只好再等待几天看吧,也许开始新的工作,也许继续现在的工作,也许开始疯
狂找工作 ....

kao, 做个厚道的人容易嘛

Mar 18, 2010

先忽悠住。。

新同事方面的,先忽悠住再说,最好不要让他们之间找老大。
然后,立刻去和上一层沟通,把问题处理了。
嗯,多做实事,少讲*话。
log ....

Mar 16, 2010

一年了

明天就在这个行业混了整整一年了,去年没做啥大的项目,都是些小修小补的。
去年6月份才知道tuxedo,明天就要给新同事做tuxedo的培训。写了一下午+一晚上
ppt,明天早上还得再准备下。
其实,他们用到的很少,如果不写tuxedo服务的话,他们只需要知道tmboot,
tmshutdown这两个命令就可以了,
而我在.profile中已经加了一条alias, alias tmreboot='tmshutdown -w 2 -y;
tmboot -y',所以,他们只需要tmreboot就搞定了。
但是,要讲上45分钟呢,就不得不找些其他东西讲,但这么点时间有不可能讲太
多,太深的我也不会啊 :-P
嗯,马上要做的项目应该挺锻炼人的,我们做C的人不多,主要分实时交易+批量交
易,打算让我负责实时交易线[目前一共3个人 :-)],
批量现在也是3个人,再加个项目经理,我们项目组就7个人 ....

Mar 10, 2010

被win7折腾了两天

在thinkpad r400 上装系统,预装的win7 home,很多功能没有(比如:组策略),
而且装了很多联想的东西,机器简直比牛慢太多,无奈之下,优化,把一个大分区变成
n个小分区,就在感觉用起来可以忍受时,系统提醒我要重启下,结果噩梦就开始了
重启后就出现了windows最经典的画面---蓝屏,然后联想的修复工具主动提出
可以用它
修复,结果失败了。。
面对陌生的win7,我使劲找boot.ini 等系统文件,后来才知道win7的启动方式
和以前不一样了

少有的下班拿着电脑回来折腾,学习了下win7不同版本的差别,找win7旗舰
版,下载ubuntu 9.10,
就在昨天凌晨2点多,看着win7还得下载好久,就先删除所有分区,重新分区,安
装了ubuntu。然后,
拷资料,刻win7盘,实在累的不行了,就把ubuntu装起来,然ubuntu继续工作,我
睡觉了
早上7点多起来继续折腾,白天又装了大半天win7及驱动、常用软件、做ghost
备份,装系统真是重体力活。

win7旗舰版还是挺好用、挺漂亮的,速度也可以,就是一些安全提示很烦
联想自动识别笔记本型号,然后给你安装相应驱动,这个挺好的,不用一个一个找
驱动了

装好系统、驱动、常用软件后,一定做ghost备份,省得下次再麻烦

睡觉去 .

Mar 7, 2010

一副对子 [zz]

from: http://pengzhang444.blog.163.com/blog/static/1345276201012492258476/

鸟在笼中,恨关羽不能张飞

人处世上,要八戒更需悟空

Mar 6, 2010

中国人的方式

http://music.sina.com.cn/yueku/m.php?id=848890

中国人的方式
夜叉
上传:sun.y.q

最近我才知道很多人,对我不爽对我有很多成见.
因为他们说我太刁,没有拍着他们,没有给足他们面子.
这就是他们对人的方式,
拉帮结派保护自己的方式.
我觉得着真他妈的可悲,
我觉得着真他妈的可笑.
你们总是在标榜自己,
以为思想已升华已无可挑剔,
装模做样甚至人模狗样,
站着茅坑不拉屎
还怕有人来攻击你.
我觉得你真他妈够缺的,
看着牛B烘烘其实根本不自信.
我觉得你真他妈的老了,
借用痛仰说的话老棒子们该下课了.

* 我没拍着你,没有给足你面子.
* 你就对我不爽,这是中国人的方式.

人无完人,金无足赤,这个道理,我和大家一样,
也会觉得没有疑义, 但着不是理由,
因为通过这件事,我已不知从哪儿,
有了太多的怀疑.
因为这点小的陋习,都没有解决,
我怎么相信你,
你们这些艺上层建筑的建设者,
有伟大的人格,有伟大的人格.

* 我不会拍着你,不会给足你面子,
* 但愿我没伤害你,这是我的方式.
站长统计

Mar 1, 2010

大家早点睡吧,别放了

靠,难道那些卖不完的炮一定要在今天放完么。。。
适量的放挺喜庆,多了就噪音了

不知道啥时候能睡着了,

Feb 28, 2010

招行网银真烂

网银密码忘了好久了,昨天想买点东西,没办法去银行后,说文件证书已经不
能再申请了,只有U Key,号陈免驱动
先是考虑到底装windows xp 还是 2k3 or win7,反正手上都没盘,更没 .iso
win7的m2.win死活没下下来,好不容易找到一个貌似靠谱的xp,然后下载
vmware 7 for linux
早上起来开始安装,直到吃完午饭1点多回来发现才装完,然后更新系统补丁,
装下载工具、firefox(及插件)、输入法、im工具,
每个工具都要去官方下载然后狂点下一步,装完后还被装了一堆根本没给你选择是
否安装的垃圾插件,,再一个一个卸载,md,
想想apt-get install xxx 一步搞定。。,没办法,一切都是为了能用下网银
网银的客户端也是很难用的。。。

一个周末折腾这po东西了,只是下记录下,看看多少年后招行的网银使用起来
能真的方便
ps: 我觉得工行的网银还可以

Jan 16, 2010

听了场讲座

xx看到的,我以为真的很科幻,,,结果,,唉,失望。。。

用了我三个小时,感觉不如 Google 30分钟,看 2 个小时,然后休息半个小时效果好

据说
1. 30年左右还会发生一个 0x200
2. 曾经西北自然环境很好 (3000年前吧),
3. 印度板块向亚洲板块俯冲,所以现在珠穆朗玛峰还在继续增高,如果能打通珠
穆朗玛峰会对大西北有好处的(环境会变好),如果能削平珠穆朗玛峰,哈哈,那简
直太有利了。。
第一条也是由于这个版块漂移造成的,而且印度板块还在向这边漂。。。
4. 大约1万年前,第四纪最后一次冰期(Wurm冰期)结束以来的全新期,总之马上又
2500 年了,所以又该发生点什么了。。。

debian lenny 安装显卡驱动

1. 查看显卡硬件信息
ox0spy@debian:/code$ sudo lshw
*-display UNCLAIMED
description: VGA compatible controller
product: Quadro NVS 140M
vendor: nVidia Corporation
physical id: 0
bus info: pci@0000:01:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller
bus_master cap_list
configuration: latency=0
看到 product: Quadro NVS 140M ; vendor: nVidia Corporation

2. 下载显卡驱动
http://www.nvidia.com/object/unix.html 找最新的显卡驱动,然后看看
REDEME 中是否支持自己的显卡
发现: 190.53 支持 Quadro NVS 140M
ox0spy@debian:/code$ wget
http://us.download.nvidia.com/XFree86/Linux-x86/190.53/NVIDIA-Linux-x86-190.53-pkg1.run

3. 安装需要的包 (由于系统已经安装过,所以确定下就行)
ox0spy@debian:/code$ dpkg -l linux-headers-$(uname -r) build-essential gcc
ii build-essential 11.4 Informational list of
build-essential packages
ii gcc 4:4.3.2-2 The GNU C compiler
ii linux-headers-2.6.26-2 2.6.26-21 Header files for Linux
2.6.26-2-686
都已经安装好了

4. 安装驱动
ox0spy@debian:/code$ sudo sh ./NVIDIA-Linux-x86-190.53-pkg1.run
提示必须到字符界面安装,并且要关闭所有X程序
ox0spy@debian:/code$ sudo /etc/init.d/gmd stop

进入字符界面,重新开始安装
ox0spy@debian:/code$ sudo sh ./NVIDIA-Linux-x86-190.53-pkg1.run
提示需要 gcc-4.1 而我的是 gcc-4.1,忽略继续安装就行,最后会提示xorg.conf
已经更新并且安装成功

5. 确定驱动安装成功 (lspci 会显示硬件及其驱动信息)
ox0spy@debian:/code$ lspci | grep -i vga
01:00.0 VGA compatible controller: nVidia Corporation Quadro NVS 140M
(rev a1)

哈哈,看MTV爽多了。。。

Jan 10, 2010

linux 彩蛋

funny Gnome easter egg
Alt-F2 输入 free the fish
Alt-F2 输入 gegls from outspace

哈哈,挺好玩的..

更多的彩蛋: http://www.eeggs.com

Jan 4, 2010

回顾 && 展望

每年的这个时候都应该回顾 && 展望下
从2008 年开始做计划, 什么计划也全不记得了,应该完成的也不太好,2008本
来就是想玩玩的.
2009年的计划,完成的还可以,除了一个0%, 一个20%,其他完成的都还可以,
最大的问题是计划安排的不好。
2009大事记:
2.14 到bj, 待了2周
3.3 来到 xx
3.17 开始在 nt 工作,给sc省xx做项目.
6.19 从 nt 离职
6.22 开始在git工作,在cd市xx待了一个月,然后从7.28一直在xx
9.22 转正
12.31 用了3年的E2离我而去 ...

之前写过一篇,http://ox0spy.blogspot.com/2009/11/blog-post_25.html
现在看来重点还是没把握住,故,现在再简单的列下今年应该做的事情:
1. 学习英语 (搞定那本词汇书,再至少看一本专门讲英语的书籍) 12个月(每
天看点)
2. pro*c, oracle 管理、开发 (熟练掌握pro*c的开发、调试; 掌握基本
oracle管理) 2个月
3. dbx, gdb (看debug a programming with dbx并掌握dbx的使用; 至少看一
本gdb的书籍) 1个月
4. c, linux system programming, unix system programming (看完手头
c的书籍, the c programming 应该再看一遍; lsp, apue, upe, aup, alp看一遍)
3个月
5. 安全编程 (如何安全编程、如何exploit有bug的程序) (Secure
Programming、shellcode handbook) 1个月
6. c socket programming (tcp/ip 3卷, unp 2卷) 3个月
7. tuxedo 服务开发 (如果有这方面的项目就好好学习下) 2周
8. 把手头的算法书看完 1个月
9. debian、 aix系统管理 (看官方doc就可以了) 平时没事时看看
10. python 能把自己常用的掌握就行 (CLI下够用就可以了) 2周
11. 把blog从blogspot迁到appspot上
12. 丰富下个人生活
把以前计划中的web扔掉。没办法暂时只能这样,先把工作内容搞精,提高下收
入再说...

看起来时间很紧啊,争取都能做好,让这个10年能有个好的开端!