0%

  某天突然感觉用了一阵子的用户名不爽,想换个名字新鲜新鲜,不过最好不要简单的编辑/etc/passwd和/etc/group了事,linux有相应的命令来做这些dirty things。最好不要在当前用户下操作,去recovery模式下做这件事比较妥当。
  1、修改用户名。
  usermod -l new_username -d /home/new_username -m old_username
用usermod命令来修改用户帐户相关信息,-l指定新的登录名称,-d指定新的主目录,如果同时指定-m选项则移动原来用户主目录的内容到新的用户住目录,最后指定原来的登录用户名。
  2、修改组名
  groupmod -n new_username old_username
groupmod命令用来修改组相关信息,-n用来指定新的组名,用原来的组名作为参数。这里修改的是与用户默认同名的组。
  3、更改用户的全称
  chfn -f new_fullname username
chfn命令来修改真实的用户名称和其他相关信息,-f指定新的用户全称,需要修改全称的用户名作为参数
  4、其他修改
更改用户主目录后,有些依赖于绝对路径的程序需要进行相应的修改。firefox profile路径下的extensions.ini里面的有依赖于用户名的绝对路径,修改之,用vim打开,然后:%s/old_username/new_username/g,然后:wq即可,prefs.js里面做同样的处理,firefox就可以正常使用了。其他的东西基本不用动就可以了。

其实只要空间支持python都可以使用birdnest搭建twitter api proxy

曾经尝试用twip来搭建,但是因为主机用的是nginx,尝试N久未成功,遂放弃改用birdnest,原来是如此简单,记叙如下:

1.安装python及支持模块。我的VPS已经自带了python。下载simplejson,解压后进去目录执行python setup.py build和sudo python setup.py install即可

2.下载birdnest。在某个目录下执行

svn checkout http://birdnest.googlecode.com/svn/branches/stable birdnest-read-only

或者如果你用git的话

git-svn clone http://birdnest.googlecode.com/svn/branches/stable birdnest-read-only

3. 进入birnest目录执行

python code.py 空间ip:随便指定的port

测试一下如果正常,则可以在/etc/init.d下面加入脚本birdnest,并在/etc/rc3.d/目录下建立其目录链接,注意你自己的运行级,让其开机自动运行,脚本内容如下

#!/bin/sh

cd /你的birdnest路径

python code.py 空间ip:指定的port > /dev/null 2>&1 &

4.在twitter客户端设置api地址为http://空间ip:指定的port/api即可.birdnest提供了4种api,/api、/optimized、/image、/text,具体介绍请翻墙去官网。我只用了/api,看起来还不错

单位的某一个业务系统用到了DynamiCube组件,很多客户端的IE浏览器都无法正常下载并注册DynamiCube组件,导致页面无法正常显示。手工拷贝DCube3.cab到客户端并解出Dcube3.ocx,然后regsvr32 Dcube3.ocx会有错误提示“LoadLibrary(“DCube3.ocx”) 失败 - 内存分配访问无效”,英文的错误提示是“LoadLibrary(dcube3.ocx”) failed - Invalid Access to Memory Location”。其实这是因为Dcube3.ocx受到DEP(Data Eexcute Protection)阻止造成的。解决办法也很简单,先禁止DEP,然后注册Dcube3.ocx,然后再打开DEP即可。

XP SP3可以这样关闭DEP,打开boot.ini文件,将/noexecute的值改为AlwaysOff或者将/noexecute及等号后的值一起改为/execute,保存重启系统即可。

windows 2003 R2做oracle数据库冷备份恢复时遇到路径依赖问题,原库oracle安装在F分区,而恢复到的oracle安装在E分区。两边数据库的版本是完全一致的,除了安装路径不同,sid实例名都为orcl。停下服务器后,把原库的控制文件、数据文件、联机日志文件(online redo files)、初始化参数文件(spfile)、密码文件拷贝到了新库安装目录。如果数据库运行于归档模式,还应单独备份归档日志文件。实际上为了省事,把oracle的安装目录整个同步了一遍。拷贝完后oracle服务无法启动,无法启动就对了。这些关键文件的路径都变了,库肯定是打不开了。怎么办?

两个方法,一是重新安装oracle使其路径与原库一致,二是修改关键文件的路径。第一种没啥意思,就第二种吧。

因为机器名字不同了,所以要打开\oracle\ora92\network\admin下面的几个文件tnsnames.ora、snmp_ro.ora和listener.ora把里面的机器名改成正确的值,snmp_ro.ora和listener.ora文件里面的文件路径改为正确的值。

参数文件里面记录了控制文件的路径,要把这些路径更改过来。oracle 9i默认是使用spfile的,而spfile是二进制的,最好不要直接修改,导出pfile,修改控制文件路径后再导回去就ok了

Read more »

项目目录结构的问题基本上是个仁者见仁,智者见智的问题,只要自己用着顺手,使用什么样的目录组织结构是没有什么大碍的。当然如果项目很大,参与的人员很多,那么合理的组织一下目录结构还是会有很大的益处的。不同类型的项目也会有不同的目录结构,这里简单的展示一下我所使用的C++项目的基本目录结构。

project —+—build—+—debug
          —release
     —dist
     —doc
     —include—+—module1
           —module2
     —lib
     —module1
     —module2
     —res
     —samples—+—sample1
           —sample2
     —tools
     —copyleft
     —Makefile
     —README
     — …

Read more »

昨晚在Ubuntu 10.04(Lucid Lynx) AMD64上面设置ATI Mobile Readon 3470硬解加速成功,mplayer播放高清视频时CPU占有率大大降低,大约只有原来的1/10。使用Ubuntu 9.10时也曾经试图硬解,但没成功。具体设置/安装方法记叙如下。

首先A卡要支持UVD(Unified Video Decoder),比较新的显卡应该都是支持到UVD2的,另外Lucid自带的ATI驱动在我的机器上不支持UVD功能。
cat /var/log/Xorg.0.log grep UVD
如果输出如下字样
(II) fglrx(0): UVD2 feature is available
则表明支持驱动UVD特性
我的卡子在未安装ATI官方最新驱动ATI Catalyst Display Driver 10.4以前是不支持UVD2的。ATI驱动如何安装请参考ATI官方文档。

Read more »

en_US.UTF-8环境下luna-applet默认用拼音来显示农历,可以把 /usr/share/locale/zh_CN/LC_MESSAGES/liblunar.mo 复制到/usr/share/locale/en/LC_MESSAGES/ 下即可让lunar-applet在英文环境下用汉字来显示农历。

During initialization, the Windows I/O manager starts the disk storage drivers. Storage drivers in Windows follow a class/port/miniport architecture, in which Microsoft supplies a storage class driver that implements functionality common to all storage devices and a storage port driver that implements functionality common to a particular bus—such as a Small Computer System Interface (SCSI) bus or an Integrated Device Electronics (IDE) system—and OEMs supply miniport drivers that plug into the port driver to interface Windows to a particular controller implementation.

系统初始化期间,windows I/O管理器开始装载磁盘存储驱动.windows中的存储驱动遵循类/端口/小端口(class/port/miniport)架构,MS提供一个存储类驱动实现与具体设备无关的、所有存储设备共同的功能特性和一个存储端口驱动实现一类特殊总线共同的功能—比如SCSI(Small Computer System Interface)总线或者IDE(Integrated Device Electronics)总线—然后OEM(Original Equipment Manufacturer)制造商提供挂接到端口驱动的小端口驱动来为windows提供到一个特殊控制器实现的访问接口。

-–译自《windows internals》(5th)

这三个东西都是用来支持主机与外围SCSI或ATAPI接口存储设备通讯的编程接口。ASPI(Advanced SCSI Programming Interface)是由存储领域大名鼎鼎的Adaptec于1990年代初期开发的,最初是为了支持SCSI驱动器,后来加入了ATAPI驱动器的支持。MS获取授权在windows 9x系列使用这个开发接口。后来MS在NT系列开发了自己的接口,这就是SPTI(SCSI Pass Through Interface)用以取代ASPI。NT系统默认是没有安装ASPI驱动的,不过有些存储应用程序还在使用ASPI接口,可以从Adaptec下载此驱动安装。而SPTD则是由Duplex Secure Ltd.开发的同类接口。

此外,Nero也开发了自己的ASPI驱动。其他比较有名的还有ASAPI等。