Browse > Home /

| 订阅RSS

ubuntu 上安装atheros无线驱动

四月 3rd, 2009 | No Comments | Posted in Linux

现在使用的是Thinkpad的T400,里面内置的无线网卡是Atheros的(win下面显示好像是:thinkpad a/b),但是默认安装ubuntu 8.04并不支持这个程序,具体安装如下:

More »

Tags: , , ,

[命令集3.8]通过Samba和Windows进行数据共享

四月 2nd, 2009 | No Comments | Posted in Linux

现在windows大行天下,难免要和windows的机器进行共享数据,通过linux中的samba协议能够获得windows的共享数据。
假设我们要访问计算机 smbserver 上的名叫 myshare 的 SMB 共享,在 window PC 上键入的地址是
\\smbserver\myshare\。我挂载到 /mnt/smbshare 上。注意 cifs 必须是 IP 或 DNS 名,不是 Windows 名
字。

More »

Tags: , , , ,

[命令集3.7] 立刻创建swap分区

三月 24th, 2009 | No Comments | Posted in Linux

假设你需要很多的 swap 空间 (即刻),如一个 2GB 文件 /swap2gb (只限 Linux)。

# dd if=/dev/zero of=/swap2gb bs=1024k count=2000
# mkswap /swap2gb                    # 创建交换区
# swapon /swap2gb                    # 激活这个 swap。现在可以使用了
# swapoff /swap2gb                   # 当使用完毕,释放这个 swap
# rm /swap2gb
Tags: , ,

[命令集3.2]Linux下和磁盘相关的命令

三月 19th, 2009 | No Comments | Posted in Linux
# diskinfo -v /dev/ad2 # 显示磁盘信息(扇区/大小) (FreeBSD)
# hdparm -I /dev/sda   # 显示 IDE/ATA 磁盘信息 (Linux)
# fdisk /dev/ad2       # 显示和修改磁盘分区表
# smartctl -a /dev/ad2 # 显示磁盘检测信息
Tags: , ,

Linux秘笈23.Sort命令

三月 5th, 2009 | No Comments | Posted in Linux

Sort命令能够对一个文本文件的行进行排序,下面的几个实用的样例展示怎么去对样例文本进行排序。样例文本的格式为:employee_name:employee_id:department_name.

$ cat names.txt
Emma Thomas:100:Marketing
Alex Jason:200:Sales
Madison Randy:300:Product Development
Sanjay Gupta:400:Support
Nisha Singh:500:Sales

以一个升序排列文本文件

$ sort names.txt
Alex Jason:200:Sales
Emma Thomas:100:Marketing
Madison Randy:300:Product Development
Nisha Singh:500:Sales
Sanjay Gupta:400:Support

以倒序排列文本文件

$ sort -r names.txt
Sanjay Gupta:400:Support
Nisha Singh:500:Sales
Madison Randy:300:Product Development
Emma Thomas:100:Marketing
Alex Jason:200:Sales

用第二字段排列一个以冒号分隔的文本文件

$ sort -t: -k 2 names.txt
Emma Thomas:100:Marketing
Alex Jason:200:Sales
Madison Randy:300:Product Development
Sanjay Gupta:400:Support
Nisha Singh:500:Sales

以第三个字段排列一个以tab分隔的文本文件,并且禁止重复

$ sort -t: -u -k 3 names.txt
Emma Thomas:100:Marketing
adison Randy:300:Product Development
Alex Jason:200:Sales
Sanjay Gupta:400:Support

通过ip地址来排序/etc/hosts文件

$ sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.100.101 dev-db.thegeekstuff.com dev-db
192.168.100.102 prod-db.thegeekstuff.com prod-db
192.168.101.20 dev-web.thegeekstuff.com dev-web
192.168.101.21 prod-web.thegeekstuff.com prod-web

合并sort和其他命令

ps –ef | sort : Sort the output of process list
ls -al | sort +4n : List the files in the ascending order of the file-size. i.e sorted by 5th filed and displaying smallest files first.
ls -al | sort +4nr : List the files in the descending order of the file-size. i.e sorted by 5th filed and displaying largest files first.
Tags: , , ,

[架构师]04.沟通是金;伴随透明度和领导能力

二月 25th, 2009 | 1 Comment | Posted in 软件架构

往往软件架构师坐在自己的象牙塔上,对下面的开发者进行发号施令,制定规范、技术决策,技术的开发方向。这些往往导致了一些问题的出现,和一些不满的群体,最终导致软件产品一点都不接近原始的需求。每个软件架构师应该知道如何去沟通软件项目的宗旨和目标。关键是明确有效的沟通应该是透明的和有领导的。

要明确说明怎样沟通。在你的团队中没人愿意去读一份100页的架构决策文档,使用明确和简洁的方式传达你的想法,是任何软件项目成功的关键。 在项目启动阶段,尽可能的保持简单,并用一切手段不要去写长篇累牍的Word文档。使用一些类似Visio的工具去画一些简单的图标,用来表达你的想法。对那些经常发生变化的人,要保持简单,另一种有效的沟通手段,是非正式的白板会议。没有任何东西比得上,带领一群开发者(或其他架构师)在一个会议室使用白板表达你的想法,此外,请务必在任何时候,你随身携带一台数码相机。没有比你被赶出会议室而所有的想法依然停留在白板上更郁闷的事了,拍照,下载,通过wiki分享给团队的其他成员。所以扔掉冗长的Word文档,更专注于让你的想法更全面,然后关注你的架构决策是否有详细记录。

一个软件架构师也是一个领导者,有些软件架构师没有意识到这点,作为一个领导者,你必须赢得你同事的尊重才能在一个健康和高效的环境里面进行高效的工作,让开发者对于一些架构决策一无所知,显然将导致灾难发生。有开发者和你一起创建一个协作环境,能验证你做出的架构决策是否正确。反过来,你也让开发者也参与到架构的进程中来,和他们一起工作,而不是排斥他们,请记住,所有团队成员(如质量控制小组,系统分析师,和项目管理人员以及开发者)需要清晰的沟通和领导。采用透明和高效的领导将改善沟通和建立一个强大且健康的工作环境。

如果“沟通是金” ,那么透明度和领导能力是其谦卑的仆人。

选自Communication is King; Clarity and Leadership its humble servants

Tags: , ,

七个处理日志(Logging)的好技巧

二月 24th, 2009 | No Comments | Posted in 软件架构

在web应用程序中,日志是很重要的,能够知道正在发生什么,以及进行性能(performance)分析和意外事情的分析,那么怎样做,才能让你的日志有用途呢?

1. 产品状态下不应该有debug消息。

我看到了一次又一次的在产品中启动调试日志,这可能是一些开发者无意中检查调试日志记录时候的配置,启用调试能够显著降低你应用程序的运行速度,并且使得在去分析日志变得很困难, 请确保在部署的时候,最好是一些脚本,能够在产品阶段禁止debug信息。

2. 关注您的日志

有些公司在其产品系统中有着良好的日志记录,但不关注他们的日志。关注您的日志,能够发现应用程序中的问题(错误,性能,内存), 并解决这些问题 ,那么基本上你应该没有记录什么已知的错误。

3.使用正确的日志级别

写日志代码的开发者经常不知道那种日志级别在产品阶段使用,有一个文件应该能够解释开发者应该使用那一个日志级别。例如SEVERE应该只用于技术问题,需要立即采取行动。 ERROR应当用于错误,需要有人研究和解决 ,如:没有得到数据库连接、低资源或不集成的点。 这些对你的公司和应用是个规范。

4. 不要仅仅在本机记录日志

如果您的服务器有重大问题,如资源问题,它往往无法登录,你就不能找到您的日志,也不能找到问题,日志应该记录在一个网路驱动上,并复制到另外一台主机或者网络驱动,比如SysLog。一个好的解决方法是使用传播工具写入到一个网络多播组中,这也方便监测(见“可扩展的互联网体系结构” ) 。

5. 监控您的日志

类似“关注你的日志”,你应该安装一个监测解决方案,能够在你的日志中查看SERVRE条目、ERROR条目,异常和其他东西,通过传播,能够很容易监控,一个好的方法是能够分类和计数异常,然后去做一些关于严重的和最常见的处理。

6. 使用易读的格式

开发者往往不太考虑在产品阶段的日志输出,:这将导致难以阅读的日志文件。 看看下面有一个易读的输出:

[8/14/06 8:22:14:653 CDT] 0000a SSLComponent I CWPKI00001I: SSL service not available [ 8/14/06 8:22:14:653的CDT ] 0000a SSLComponentCWPKI00001I :
[8/14/06 8:22:14:813 CDT] 0000a WSKeyStore W CWPKI0041W: One or more key [ 8/14/06 8:22:14:813的CDT ] 0000a WSKeyStore W CWPKI0041W :

这样的格式更容易快速扫描日志,对比一下你的日志输出。

7. 在你的日志中使用错误代码

每个导致日志输出的原因应该有一个独特的错误代码。如果没有一个独特的错误代码是很难在您的源代码中找到原因。错误代码也更容易计数和分类, 使日志报表更容易展示。

想了解更多信息吗? 在web站点上也有一些很好的关于日志的书,象: Michael T. Nygard 写的《Release It!》(真的是非常好的一本书)和Theo Schlossnagle著作的《Scalable Internet Architectures》。

Tags: ,