今天看到和菜头的两篇博客,看起来挺有意思的。
大致讲的是菜头同学话4k多买了htc
hero也就是传说中的G3,却遇到各种问题,经常电话打不通,短信发不出。。。然后在论坛中发帖求助,却被一些android手机玩家鄙视的事儿。
其实,菜头挺无辜的,买四千多块买了个智能手机,却最基本的功能都不能很好的使用,也难怪会写出 HTC HERO 苦难史
这样的文章来了。其实,一个android平台还很出成熟,有很多不尽人意的地方,何况htc
hero里跑的还是1.6的系统,里边的问题也是一堆一堆。如果你不是一个玩家(player),不喜欢折腾来折腾去android系统,不停的刷机来解决各种问题,还挺不容易玩转那个手机的。于是便爆发了
菜头和那些所谓的手机玩家之间的口水战。但是我认为完全没必要,因为他们根本就是两个群体,一般的用户和发烧的玩家。
作为一般用户来讲,他们只想使用这个手机,使用它里边的强大的功能,至于这个手机能刷什么系统,刷那个刷机包能解决什么问题,不是他所关心的问题。Users
are just users.
玩家就不一样了,他们喜欢对自己的手机刷来刷去,似乎买了个智能手机不刷机就对不起那几千块钱。这也无可厚非,他们买手机的目的是玩,而不是用。
所以两个群体之间的口水战完全没有必要,不过对于同一事物站在不同立场产生不同的想法而已。让我想起楼上和楼下的人对骂的事儿,有意思吗?
但是我要说的是HTC作为手机生产商,应该将自己手机做的尽善尽美,而不是让手机用户在买到手机知道还要通过刷机之类的方法来解决你在出货前没有解决的问题。这样是不负责任的。
这次失眠哥都找不到一个合理的理由,躺在床上却怎么也睡不着。
本打算明天一大清早去和平影都IMAX厅看阿凡达的,结果晚上一回来就收到一道短信,让明天过去加班。一个美好的计划就这么泡汤了。
看来明天还得去加班,去为以色列的客户加希伯来语,传说中的Hebrew。
既然未来是否离开这个公司还不确定,所以就该干啥就干啥吧,总不能成天表现出一种想跑路的样子吧。
BTW,那个姑娘其实还蛮不错的,就是脸有点大。
渐渐的渐渐的人们开始变得贱贱的。
哎,发现自己又开始煽情了。。。
突然发现自己思维跳跃性太大了,该控制下自己野马般的思维了。
在系统安装中文字体后,进入isqlplus会发现所有的按钮都变成了豆腐块,也就是乱码.解决办法
首先切到路径#ORACLE_HOME/jdk/jre/lib,首先备份font.propoties
sudo cp font.propertied font.properties_backup
然后修改使用该文件夹下的font.properties.zh_CN.Redhat
中的内容替换font.properties中的内容,
修改最后一行
filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/zh_CN/TrueType/zysong.ttf
为自己系统中已经安装的一种中文字体,我替换的是文泉驿的字体,如下
filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf.
然后进入/home/derek/oracle/product/10.2.0/db_2/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/cabo/images/cache/en,将其中所有的gif文档删除,这些图片就是显示的按钮.
重启isqlplus
sudo isqlplusctl stop
sudo isqlplusctl start
然后进入/home/derek/oracle/product/10.2.0/db_2/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/cabo/images/cache/en,发现其中的所有的gif档重新生成了,而且是中文的.
(2009-06-08 22:07)
安装了ubuntu8.10之后,无线网卡一直不能使用,其原因是ubuntu8.10的自带的无线网卡驱动不适于atheros网卡,需要另外手动安装其驱动.
打开System->Administratoins->Hardware
Drivers,在里边可以看到无线网卡的驱动已经安装并激活,这是系统自带的驱动,不能使用.将其禁掉.点一下Deactive.为了使禁止生效,需要重启系统.
- 手动安装驱动直接使用命令 sudo apt-get install madwifi-tools,安装完成
或者下载madwifi的安装包,手动编译安装.打开浏览器进入网址http://snapshots.madwifi-project.org/,可以看到

点击madwifi-hal-0.10.5.6-current.tar.gz
下载并解压缩,然后切入解压缩的文件夹,输入sudo make
sudo make install进行编译和安装.这个安装包在系统中添加了ath_pci模块.这时驱动已经安装完毕,打开network
tools在Devices选项卡里可以看到Network Device的下拉菜单里可以看到Unkown interface
(ath0),证明无线网卡的驱动已经安装完毕.
这时输入sudo modprobe
ath_pci来加载无线网卡模块,然后在任务栏的网络链接里可以看到当前搜索到的无线网络,选择自己的无线网络,然后输入密钥,就可以进行连接了.
此时还一个问题,就是每次重启后,我们都要手动加载ath_pci模块,太过麻烦,只要修改/etc/modules,在最最后一行添加ath_pci保存并推出,每次开始时会自动加载ath_pci模块并自动连接无线网络.
(2009-06-07 18:43)
oracle的所有界面程序都是用java写的
,大家在安装过程中或者使用过程中所遇到的中文乱码问题是当前的JVM还不支持中文,想要让你linux系统下的java程序支持中文其实很简单,只要讲系统的中字体文件链接或者拷贝到JVM中的fonts中然后安装字体就可以了.
我们系统的中字体存贮在/usr/share/fonts中,该文件夹下存储了系统中存储的各种字体,比如/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf.我们需要的做的就是将系统中的某个字体文件拷贝或者链接到JVM中的font中.
我的JVM安装路径为/usr/lib/jvm/java-6-sun,java中使用的字体文件存储于/usr/lib/jvm/java-6-sun/jre/lib/fonts
在该文件夹下创建文件夹sudo mkdir fallback
然后建立链接sudo ln -s /usr/share/fonts/truetype/wqy/wqy-zenhei.ttf
/usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback/
这步完成之后你会在fallback文件夹下看到一个指向WQY字体的链接.
切入fallback文件夹 执行操作:
sudo mkfontdir
sudo mkfontscale
这样你的JVM就支持中文字体了.
如果在dbca中显示乱码,修改dbca文件,修改JRE_DIR为你的JVM路径,
JRE_DIR=/usr/lib/jvm/java-6-sun/jre
这样重新执行dbca会就显示优美的文泉驿字体了,看看是不是很漂亮呢
oracle server
- oracle database
-
- tablespace
-
- data
files->segments->extents->data
blocks->OS blocks
- control files
- redo files
- oracle instance
-
- System Global Area(SGA)
-
- Streaming pool
- java pool
- shared pool
- large pool
- Database cache buffer
- Redo log buffer
- server process
- background process
-
- system monitor(SMON)
- process monitor(PMON)
- database writer(DBWn)
- log writer(LGWR)
- check point(CKPT)
- Archiver(ARCn)
database是数据库服务器中实际存储数据的地方
instance是对数据库进行操作的实体.外部程序通过background
process和数据库进行交互,在数据交互的过程中会将数据首先存储在SGA中,,也就是pool或者Database cache
buffer之中,操作的相关信息也就是操作信息存储在Redo log buffer之中..Database cache
buffer通过各种pool和process进行交互.
存储在Database cache buffer之中的数据通过Database
Writer(DBW0)写入到database中
存贮在Redo log buffer之中的操作信息通过Log Writer(LGWR)写到Log files中.
SGA(system global area)通过server process和程序的PGA(program global
area)进行交互,从而实现数据库和程序的交互.
PGA(program global area) is a
memory region which contains data and control
information for each server process. A server
process is a process that services a client’s
requests.
PGA包括
- Private SQL Area
- Session memory
(2009-06-06 16:11)
昨天晚上搞到凌晨三点半,,实在扛不住了只好去睡觉了.早上又早早的醒了,昨天晚上还梦到may在催我交任务,我的神阿,放过我吧.
早上起来终于 把oracle装完了,中间遇到不少问题,在这里记录一下.
- 修改内核参数,sudo gedit /etc/sysctl.conf,添加如下内容:
kernel.shmmax = 3147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100
128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024
65000
注:shmmax(最大共享内存)是一个很重要参数,根据您的机器的内存来设定。如果您设置不合适的话,在创建数据库到约86%的时候就会挂掉。
- 修改limits.conf
添加下面的行到/etc/security/limits.conf以修改你的资源限制:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
- 让修改生效
修改了以上文件后,必须让其生效,重启系统,或者切换到root用户下用以下的方式改变内核运行参数:
#sysctl -p
- 添加下列行到~/.bashrc:
# oracle 10g
export ORACLE_BASE=/home/derek/oracle
export ORACLE_HOME=$ORACLE/product/10.2.0/db_1
export
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=derek
export ORACLE_TERM=xterm
- 如果你的操作系统是中文的,运行安装的时候会出现乱码,解决办法:进入java的安装路径
$ cd /usr/lib/j2se/1.4/lib
$ sudo cp font.properties.zh_CN_UTF8.Sun font.properties
将最下面的一行改为如下:
filename.-misc-fzsongti-medium-r-normal--*-%d-*-*-p-*-iso10646-
1=/usr/share/fonts/VeraSansYuanTi/VeraSansYuanTi-Regular.ttf
appendedfontpath=/usr/share/fonts/VeraSansYuanTi
java就支持中文显示了。
- 运行安行是使用系统jre:方法如下:./runInstaller -jreLoc
/usr/lib/j2se/1.4/jre
- 接着一直安默认选项装下去就可以了.在安装过程中记得要将创建的数据库的isqlplus和em的url保存在某个文件中,以后登录数据库进行数据库的管理是通过浏览器使用那个url来进行登录的,oracle
10g采用B/S架构.
-
iSQL*Plus
URL:
http://ubuntu.ubuntu-domain:5560/isqlplus
iSQL*Plus DBA URL:
http://ubuntu.ubuntu-domain:5560/isqlplus/dba
Enterprise Manager 10g Database Control URL:
http://ubuntu.ubuntu-domain:1158/em
- 实际上url中的ubuntu.ubuntu-domain是本机的ip地址,也就是127.0.0.1,后边的是该数据库的端口号.在同一个服务器中创建多个数据库的话,每个数据库对应不同的端口,这个是我们需要记忆或者保存的.
- 安装完成之后,在浏览器中输入网址http://ubuntu.ubuntu-domain:1158/em会进入数据库的管理界面(enterprise
manager)

-
在这个就是oracle的em截图,当前状态下的数据库还未启动,点击startup,然后输入ubuntu操作系统的用户名密码以及创建该数据库的时候设置的密码和用户名.然后然后数据库就启动了.
-
中途中出现了监听端口的错误,使用oracle提供的netmgr来配置监听端口,需要注意的是,SID一定要填写正确,在前面的截图中有该数据库的SID,大小写也要正确.然后修改$ORACLE_HOME/networl/admin/tnsnames.ora,
将其中的SID修改和之前配置的时候保持一致,大小写相同.
- oracle安装完成之后,默认状态下oracle的服务不会在系统启动的时候自动启动,我们可以在终端输入命令isqlplus
start/emctl start/dbstart
来启动oracle的服务,,但是更简单的方式是设置这些服务在系统启动时自动启动,,需要创建一个脚本.
/etc/init.d/./oracledb,脚本的内容如下:
- #!/bin/bash
#
# /etc/init.d/oracledb
#
# Run-level Startup script for the Oracle Instance, Listener,
and
# Web Interface
export ORACLE_HOME=/home/derek/oracle/product/10.2.0/db_2
export ORACLE_SID=orcl
export
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
ORA_OWNR="derek"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
su $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart"
touch /var/lock/oracle
su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
su $ORA_OWNR -c "$ORACLE_HOME/bin/dbshut"
rm -f /var/lock/oracle
su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac
exit 0
- 脚本创建完成之后,为该脚本添加执行的权限sudo chmod +x /etc/init.d/./oracledb
- 这样我们在系统启动的时候只要输入命令sudo /etc/init.d/./oracledb
start/stop/reload来对数据库对oracle的服务进行操作
- 登录数据库成功之后,进入em的界面,很简介的一个界面

今天终于在vbox总安装了一个新的Ubuntu8.10 虚拟硬盘设置的大小为20G
估计够用了吧,上次用8G的明显不够,而且vbox不能更改虚拟硬盘的大小,害的我还得建立一个虚拟硬盘,重新安装Ubuntu。
Ubuntu安装的还算顺利,早上花20多分钟安装完Ubuntu操作系统,然后update upgrade
,就开着电脑去上班了。开着电脑下载了Oracle 10g。
晚上回来开始安装Oracle。
首先选用OFA(optimal flexible
architecture),虽然不是必须的,但是这样做会让后期的维护和升级更加简便(文档是这么写的,我现在也不知道为什么)
创建系统变量,linux系统变量存储在/etc/bash.bashrc中,打开这个文件并编辑 添加两个系统变量
ORACLE_BASE=/u01/app/oracle
export
ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0
export
ORACLE_HOME
记得编辑该文件之前进行备份,养成备份文件的好习惯。
安装Oracle
10g的时候,会报一个检查系统错误的问题,默认情况下Oracle不支持Ubuntu系统(10.2.0)是这样的,需要将Ubuntu操作系统伪装成redhat系统,做法如下:
创建
/etc/redhat-release 文件,编辑文件添加内容Red Hat Linux release 4.1
,这样就将我们的Ubuntu操作系统伪装成了redhat系统,然后运行安装文件就可以继续进行了。
采用OFA的时候需要手动创建一些文件夹,/u01/app/oracle/oraInventory
记得为每一级路径添加写的权限,否则会报错 ,弹出错误对话框“'S_OWNER_SYSTEM_EPERM”
derek@derek-desktop:/$ sudo chmod -R 777 /u01/app/
derek@derek-desktop:/$ sudo chmod -R 777 /u01/app/oracle
derek@derek-desktop:/$ sudo chmod -R 777
/u01/app/oracle/oraInventory/
暂且先写到这里,太晚了,明天继续,不知道后边的安装过程是否顺利。
GCC:GNU C compiler
1.Create two files named fred.c and bill.c.
2.gcc -c bill.c fred.c
ls *.o
bill.o fred.o
两个.o文件被创建
-c 选项 :只进行编译和汇编,而不进行连接
3.创建头文件,头文件中声明这两个函数
void bill(char *);
void fred(int);
4.创建一个prog.c包含了这个头文件
5.编译gcc -c prog.c
6.编译并连接 ,并声明要链接的两个.o文件
gcc -o prog bill.o fred.o
7.运行
./prog(.说明运行当前目录下的可执行档)
8.创建library,使用ar命令
ar crv libfoo.a bill.o fred.o
(ar 命令用于将多个文档归档到一个档中,用法很多,功能强大,可以通过 ar --help获得其用法)
libfoo.a已被创建
9.使用library
gcc -o prog prog.o libfoo.a
10.运行
./prog
早在Google推出她的浏览器的第二天,我就从网络上down了chrome
,当时很想看看传说中谷歌推出的浏览器究竟怎么样。
像Google的其他所有产品一样,chrome保持了其简介的风格,没有工具栏,标签页都在整个浏览器的最顶端,所有的工具都在一旁的一个简单的按钮中,看着是如此的清爽。
速度很快,的确,虽然没有精确的进行测试,但是明显给我感觉比IE快的多了,而且每个标签页都是单独的进程,在一个标签崩溃时,并不影响其他的标签页的浏览,的确是浏览器中的一个创新。
让人感觉最不爽的是chrome在解析某些网页时经常出现错位的现象,或者网页的某些功能无法正常使用,而且大多数的网上银行在chrome中是无法使用的,就像其他非IE浏览器一样,因为银行在开发网上银行的时候都是面对IE进行开发的,毕竟银行不可能为每一个浏览器开发一套网上银行,就现在而言,IE仍是浏览器中的老大,占有70%左右的市场份额。
虽然在chrome推出的第二天,就拿到是了浏览器市场1%的份额,但是在后来的几个月中,并没有明显的增长的过程和趋势,IE在浏览器中的老大位置依然难以撼动,chrome抢占的更多的是opera和firefox的市场份额。
虽然chrome来势凶猛,似乎势不可挡,但是在浏览器领域,对于刚进入这一领域的Google,他还很嫩,需要她学习的东西还太多太多,短期内打败IE,是不可能也是不现实的,微软虽然看起来似乎开始走下坡路了,但是正如古话所说,百足之虫死而不僵,更何况微软现在依然很强大,正在极力投入到win7的开发,扭转自己在vista上的失误,让自己的产品更加符合用户的需求,更加满足硬件厂商的需求,虽然window依然是个人电脑上操作系统的霸主,这个地位现在是无法撼动的,但是微软也不能太得意忘形,不然会再次出现类似vista那样失败的产品,让用户再次对微软感到失望。
Google和Microsoft之间的战争早已开始,让我们拭目以待,这场IT行业两个霸主之间精彩的大战吧,好戏还在后头。