February 19th, 2012 | Tags:

http://en.wikipedia.org/wiki/Pale_Blue_Dot

 

 

CARL SAGAN: “Consider again that dot. That’s here. That’s home. That’s us. On it everyone you love, everyone you know, everyone you ever heard of, every human being who ever was, lived out their lives. The aggregate of our joy and suffering, thousands of confident religions, ideologies, and economic doctrines, every hunter and forager, every hero and coward, every creator and destroyer of civilization, every king and peasant, every young couple in love, every mother and father, hopeful child, inventor and explorer, every teacher of morals, every corrupt politician, every “superstar,” every “supreme leader,” every saint and sinner in the history of our species lived there — on a mote of dust suspended in a sunbeam…

 

 

 

Carl Edward Sagan (play /ˈsɡən/; November 9, 1934 – December 20, 1996) was an American astronomer, astrophysicistcosmologist, author, science popularizer and science communicator in astronomy and natural sciences.

0 comments (8 views)
February 12th, 2012 | Tags:

春节过去挺久了,看了一下上一篇blog,那本<A short history of nearly everything>还只看了一个开头,文富送的英文版的乔布斯传虽看了大半,但是估计目前的状态很难看完。家中添了女儿,原本就挺混乱的生活就更乱,有时候我真是宁愿呆在公司,挺逃避的,不过回家看到兜兜又有了新进步,咿呀学语,开心得咯咯咯笑,觉得也值了。

微博耗费了很多零散得时间,总结下来,当我不知道做什么得时候,大多都在看微博,完全是零散时间的killer。要摆脱这种碎片般的信息洪水,真需要很好的自制力。算下来几个比较大的事件,春节期间的“韩寒代笔事件”到现在更火爆的“蜀中都督夜奔美领馆”。“咱们这儿”真是不缺新闻,一个比一个刺激。每每这种事情发生,网上立马就站好了队,我们这个不喜欢排队的国家在这个时候队伍异常的整齐。看着上面整齐的队形我真是不想开口。我觉得比站队更重要的是自己是不是看重真相和正义,其他都是毫无意义的。

明天公司组织交换礼物,每人提供50-100元的礼品提交上去,然后大家抽签看自己抽中同事的什么礼物。原本想拿一双老婆弄回来的ugg童凉鞋提交上去,但被老婆决绝的拒绝,还动了气,我也就不再考虑了。 周六的时候匆忙的从网上定了一个梵高的<starry night>装饰画,希望周一可以上午到货,这样中午就还来得及去交换礼物。
说到梵高,上次从US托人带回来的的<Van Gogh>画册还基本没看,书太重了,我正打算每天下班撕两页路上看,幸运的话也许可以读完。对于梵高这样用生命作画的人,作品冲击力让人没法拒绝,如果有能力可以去欧洲看看原作就好了。

Sam的同学做了CEO,Sam发来聊天记录让大家看看ceo的生活和经历。不知道怎么说,对于国内的成功学的故事我挺有免疫力的。每个人的生活都不一样,每个人都有不同的需求。 但有一点是毋庸置疑的,如果定准了目标,不一步一步努力前进,目标是永远不会自己跑过来的。

算是自勉吧,给依然目标不明确的自己。

0 comments (11 views)
December 6th, 2011 | Tags:

脑袋生锈了,说话也常常不成句子,为了锻炼一下自己的语言能力,另外尝试重拾以前码字的乐趣,我决定开始隔三差五写点东西。有时候喜欢言语讽刺,偶尔还能有几分幽默在里面,虽常常黑色,但是自得其乐,回想起来的时候也沾沾自喜得回味很久。但是不能否认的事实是,我的语言能力越来越弱了,说话是技术活儿,要练,现在平均每天说不上20句话,即便算上脑袋里面想的句子估计也不超过一百句。时间久了,脑袋里面有东西却表达不清楚,挺愁人的。

晚上颇花了一点时间来折腾编辑器。mac 下我用的最多的是vim,平时是iTerm2和macvim 中哪个方便用哪个,但是要写汉字加图片就不太适合了。排版看起来不舒服,图片也不方便加。 于是适用了一下很久以前安装的Bean,这个软件免费,口碑也挺好,但是在我这不知道怎么的,撤销的行为十分不靠谱,cmd+z过去整段都消失了,但这似乎是显示的问题,强制退出再回来发现内容还在。但依旧放弃。
另一个软件是WriteRoom。看介绍,此软件目的是让人专心写作的,软件很小,才2.4M,打开软件默认全屏,黑底绿字,可让人心无旁骛的专心写作,但这东西完全是西方人码abcd用的,写中文不友好,立刻放弃。
下载了一个试用版的Pages,目前没发现问题,我目前就正在Pages里面敲,很舒服。不过这软件贵,我还是要物色个能承受的起的。说起价格,不能不说我最近开始清理身边的盗版软件和盗版书籍的愿景。年龄过了30,又还在IT从业,觉得依然使用盗版是一件很可耻的事情。上个周末刚刚从Amazon买了一本电子书,<A short history of nearly everything>

花去了11$,算是弥补一下我长久用kindle 3G看免费资源的心里遗憾,既然看到了好书,不妨花钱买下。每个月100元买书的钱我还是可以拿出,也由此顺便端正一下看书和使用软件的心态,我认为划算。

家里的iPad2并未越狱,免费的app已经足够使用。唯一还残留一些盗版软件就剩下这个macbook,但是也屈指可数了,因为mac 下很多free的软件就很不错。这里尝试整理一下思路,列举一下平时使用频度比较高的软件,然后在最近做一个了结,要么花钱要么换免费的:

1, iTerm2 这个是超级赞。天天开机第一件事就是开iTerm2,管理目录,登陆远程主机,文件操作,基本都依赖它。关于它的 tips,推荐看这2个链接:
http://www.yangzhiping.com/tech/iterm2.html
http://www.iterm2.com/#/section/documentation

2, 浏览器: Firefox + safari
3, Port 安装一系列open source software
4, MplayerX: 电影
5, iTunes 音乐
6, email: Mail + MS office (公司邮件)
7, evernote 整理日常知识文档
8, vmware fusion 虚拟机
9, Colloquy , For irc聊天室(公司用途)
10, ChickenVnc, VNC client

 

0 comments (99 views)
November 8th, 2011 | Tags:

原文在此:
Top 10 DTrace scripts for Mac OS X

http://dtrace.org/blogs/brendan/2011/10/10/top-10-dtrace-scripts-for-mac-os-x/

原文写的非常细致,连如何打开Terminal都在开篇的时候做了介绍,我这里只是做一下简单摘要,建议大家看原文。

MacOS内已经内置很多Dtrace脚本在/usr/bin下, 用sudo即可直接使用,这篇文章除了它们,也使用了Dtrace Book中的一些实用脚本。 脚本下载地址:DTrace book tarball

希望对Dtrace 入门的看山哥的Dtrace中文教程

 

1, iosnoop ,  察看磁盘io 情况,注意,是“ 磁盘 ” io,不是文件系统IO。 (iosnoop -h for help)

2, hfsslower.d (dtrace book) 察看dfs文件系统 io, 文件系统cache/hint等,所以会比 iosnoop看到的信息多很多。

    sudo ./dtbook_scripts/Chap5/hfsslower.d 1 (Trace 1ms 及更慢的文件系统io)

3, execsnoop , 察看新系统进程的exec  (sudo execsnoop -v)

4, opensnoop , 察看进程打开文件情况 ( sudo opensnoop -ve)

5, dtruss ,类似Linux的Strace, Solaris的truss (dtruss -h for help, dtruss -e ls , dtruss -n firefox-bin)

6, soconnect_mac.d (dtrace book), 察看outbound TCP connection 情况.
还有 soaccept_mac.d 察看 INbound 情况

7, errinfo ,系统调用fail的err信息

8, bitesize.d , 字符方式直观显示app的 I/O workload

9, iotop , (iotop -CP 1)
C: rolling output , P: disk busy percentage.

10, maclife.d (dtrace book) 跟踪删除的/创建的 文件。

更多脚本:

man -k dtrace

0 comments (155 views)
October 30th, 2011 | Tags:

1, 安装squid

aptitude install squid

or

yum install squild

2, 配置:

vim /etc/squid/squid.conf

增加如下:

auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/squid_user.txt

auth_param basic children 5

acl squid_user proxy_auth REQUIRED

acl myip  src 111.222.0.0/16  #你的client ip address network

http_access allow squid_user myip

3, 配置用户名密码:

htpasswd -c /etc/squid/squid_user.txt userid

cat /etc/squid/squid_user.txt

重启squid:

/etc/init.d/squid restart

 

4, 修改Linux文件描述符number:

默认下Linux的文件描述符为1024个,按照以下方式增大

  1. # ulimit -n #查看当前文件描述符数量
  2. # ulimit -HSn 65499 #修改文件描述符数量
  3. #写入配置文件,使配置永久生效:
  4. # echo “* soft nofile 65499″ >> /etc/security/limits.conf
  5. # echo “* hard nofile 65499″ >> /etc/security/limits.conf

 

Reference :

http://linux.vbird.org/linux_server/0420squid.php#adv_auth

http://www.libertyvps.com/thread-46-1-1.html

0 comments (170 views)
October 25th, 2011 | Tags:

今天遇到两例ssh pseudo-tty的使用,都值得记录一下。

一是在使用mindterm的时候,需要借助跳板机, 流程如下:

<laptop(mindterm)> ssh to   <jump box> ssh to <target host>

这种情况下,使用pseudo-tty就是必须的  (-t),否则 <jump box>上的ssh没法进行交互。根据ssh 的manual :

-t      Force pseudo-tty allocation.  This can be used to execute arbitrary screen-based programs on a             remote machine, which can be very useful, e.g. when implementing menu services.  Multiple -t options             force tty allocation, even if ssh has no local tty.

如果需要远程运行基于screen-based的程序,如ssh -t -l root targethost “vim”,则这个 -t 是必不可少的。
第二例是caifeng遇到的诡异问题。他需要远程到target host A执行一些脚本,发现当不使用-t的时候,系统每次都会自动加载.bashrc 中的内容,造成脚本运行异常。如果使用-t参数,ssh 过去的session就是忽略掉.bashrc。 从而脚本正常运行。
首先看bash manual:

–norc     Do not read and execute the personal initialization file ~/.bashrc if  the  shell  is  interactive.

This option is on by default if the shell is invoked as sh.

也就是当bash由sh来调用的,那么默认将不加载.bashrc

而这个问题就取决于bash的调用方式:

  • 1, rshd: remote shell daemon调用bash, ( 不使用pseudo-tty,直接远程执行命令,就是这种方式)
  • 2, sh调用bash。(使用pseudo-tty情况下,将会由sh调用bash)

 

0 comments (251 views)
July 6th, 2011 | Tags:

今天遇到一些 dns client古怪的行为方式,这里做一个记录:

命令如下:

Linux

[root@crp-abc~]# host  -v -t A  -N1 lvsosprovsvc01.lvs 10.10.10.10
Trying “lvsosprovsvc01.lvs”

Host lvsosprovsvc01.lvs not found: 3(NXDOMAIN)
Received 111 bytes from 10.10.10.10#53 in 0 ms

Solaris

crp-xyz# host  -v -t A  -N1 lvsosprovsvc01.lvs 10.10.10.10
Trying “lvsosprovsvc01.lvs”
Received 111 bytes from 10.10.10.10#53 in 0 ms
Trying “lvsosprovsvc01.lvs.corp.abc.com”
Trying “lvsosprovsvc01.lvs.vip.corp.abc.com”
Trying “lvsosprovsvc01.lvs.qa.abc.com”

lvsosprovsvc01.lvs.qa.abc.com. 125 IN  A      10.10.10.11

 

两机器的/etc/resolv.conf相同。

也就是说 同样是在尝试按照Absolute dns name 来解析lvsosprovsvc01.lvs(红字)失败后, Solaris下host命令继续尝试search domain list,直到最终找到结果,但是Linux却放弃了。

 

host命令的Manual page 中对 ndots的描述:

The -N option sets the number of dots that have to be in name for it to be considered absolute. The default value is that defined using the ndots statement in /etc/resolv.conf, or 1 if no ndots statement is present. Names with fewer dots are interpreted as relative names and will be searched for in the domains listed in the search or domain directive in /etc/resolv.conf.

host 命令的Manual page中对ndots的描述:

-N ndots     Set the number of dots that have to be in  name for  it  to be considered absolute. The default value is that defined using the ndots statement in /etc/resolv.conf, or 1 if no ndots statement is present. Names with fewer  dots  are  inter-
preted  as  relative names and will be searched  for in the domains  listed  in  the  search  or domain directive in /etc/resolv.conf.

Manual中并没有明确对这种行为做出解释,是Linux下做的少了?还是Solaris下做的多了呢?

为了在Linux下避免这种行为,最好的解决办法就是将ndots修改为2,那么lvsosprovsvc01.lvs就永远不会被当成 Absolute name来对待,所以直接就会走search domain list进行匹配查询,直到找到结果。

 

关于/etc/resolv.conf中的search 参数也有一个tricky的地方,因为这个list最长只支持6个domain:

The search list is currently limited to six domains with a total of 256 characters.

 

我不知道有什么办法expand这个list,除了修改 host 命令源代码 include/resolv.h 中的这行。

#define MAXDNSRCH       6               /* max # domains in search path */

 

0 comments (447 views)
June 20th, 2011 | Tags:

solaris 11 express 在 2010年就推出了,前几天正好公司空出来一个老台式机,就装上试了试。如果这个“推测”准确的话,正式版本的solaris 11可能在 2011.11.11推出,的确是个好日子 。如果真的放在11时11分11秒发布就更好玩了。

solaris 11 用的是Build 151a

solaris:~$ uname -a
SunOS solaris 5.11 snv_151a i86pc i386 i86pc Solaris

 

在solaris 11中ifconfig 转变到 dladm and ipadm

这个变动很大,/etc/hostname.nic模式就要变掉了。不过对SA来说是福音,因为更直观了,易用了,放弃丑陋的ifconfig吧。

* dladm – administer data links

dladm可以用户 查看/创建 所有数据链路层的信息: phys,aggregation, vlan,link,bridge,wifi,etherstub,ip tunnal..

dladm的help简单明了,基本不用看manual就可以直接 try。

以下是几个demo:

root@solaris:~# dladm show-phys
LINK         MEDIA                STATE      SPEED  DUPLEX    DEVICE
bge0         Ethernet             up         1000   full      bge0
root@solaris:~# dladm show-vnic
LINK         OVER         SPEED  MACADDRESS        MACADDRTYPE         VID
vnic1        etherstub01  0      2:8:20:25:1a:47   random              0
vnic0        bge0         1000   2:8:20:67:cf:15   random              0
root@solaris:~# dladm show-aggr
root@solaris:~# dladm show-link
LINK        CLASS     MTU    STATE    BRIDGE     OVER
bge0        phys      1500   up       –         –
etherstub01 etherstub 9000   unknown  –         –
vnic1       vnic      9000   unknown  –         etherstub01
vnic0       vnic      1500   up       –         bge0

yoqian@solaris:~$ dlstat -i 3
LINK    IPKTS   RBYTES    OPKTS   OBYTES
bge0    5.08M  410.21M  142.41K   13.17M
vnic1        0        0        0        0
vnic0    4.95M  397.73M    3.47K  149.42K

 

* ipadm – configure Internet Protocol network  interfaces  and TCP/IP tunables

ipadm可以用户 查看/创建 所有IP层的信息: interface, IP address. interface 属性,address属性.

root@solaris:~# ipadm show-if
IFNAME     STATE    CURRENT      PERSISTENT
lo0        ok       -m-v——46 —
bge0       ok       bm——–4- —
vnic0      ok       bm——–46 -46
vnic1      disabled ———— -46
root@solaris:~# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
bge0/_a           dhcp     ok           100.249.68.30/22
vnic0/v4          static   ok           192.168.123.101/24
lo0/v6            static   ok           ::1/128

For example, IP forwarding 可以更方便的设置了,修改ip层的属性就可以了,如下:

查看各种协议属性:

root@solaris:~# ipadm show-prop |egrep “forw|PROT”
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
ipv4  forwarding            rw   off          –           off          on,off
ipv6  forwarding            rw   off          –           off          on,off

如何利用dladm和ipadm添加logic ip(类似传统的hostname.bge0:1),只需以下两步,没有配置文件,非常直观易懂。

1, 用dladm查看现有的link,如下,然后我们可以在bge0上新建一个vnic3

root@solaris:~# dladm show-link
LINK        CLASS     MTU    STATE    BRIDGE     OVER
bge0        phys      1500   up       –         –

root@solaris:~# dladm create-vnic -l bge0 vnic3

root@solaris:~# dladm show-link
LINK        CLASS     MTU    STATE    BRIDGE     OVER
bge0        phys      1500   up       –         –
vnic3       vnic      1500   up       –         bge0

root@solaris:~# dladm show-vnic
LINK         OVER         SPEED  MACADDRESS        MACADDRTYPE         VID
vnic3        bge0         1000   2:8:20:8b:5e:fb   random              0

2,  使用ipadm设置 vnic3的ip address

root@solaris:~# ipadm create-addr -T static -a local=192.168.123.201/24 vnic3/v4
root@solaris:~# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
bge0/_a           dhcp     ok           100.249.68.30/22
vnic3/v4          static   ok           192.168.123.201/24
lo0/v6            static   ok           ::1/128

 

CAUTION: 默认情况下solaris 11 express 会启用 nwam来管理nic,而传统的physical:default是disabled。如下:这样会导致我们上面做做的修改在system reboot后处于disable状态。

系统默认的情况:

root@solaris:~# svcs -a |grep physi
disabled        3:13:09 svc:/network/physical:default
online          3:13:14 svc:/network/physical:nwam

所以装好solaris 11第一件事就是把nwam disable,然后enable physical:default ,就可以放心使用ipadm了。

# svcadm disable nwam
# svcadm enable network/physical:default

更多ipadm信息可以看这里或者这个pdf

0 comments (988 views)
May 28th, 2011 | Tags:

当我们入睡时/一只手枕在头下/另一只手伸到星空——兹比格涅夫•赫贝特

 

铅青的月/于一个古老的下午/冰冷的田野上/月多于土地 ——马查多

 

当夜色降临,我站在台阶上倾听;星星蜂拥在花园里,而我站在黑暗中。听,一颗星星落地作响!你别赤脚在这草地上散步,我的花园到处是星星的碎片。 ——伊迪丝·索德格朗《星星》

 

月亮不会发现,它所要照耀的东西。——亨里克·诺德布兰德

 

我以为看见一封信投在门廊/可那只是一片月光。——伊娃·利萨·曼纳

 

我们称之为土地的,是最近的星星。——英格尔·克里斯坦森

 

树枝想去撕裂天空/但却只戳了几个微小的窟窿/它透出了天外的光亮/ 人们把它叫作月亮和星星。——顾城《星月的来由》

 

我们都生活在阴沟里,但仍有人愿仰望星空。——王尔德

 

我的天空里没有太阳,总是黑夜,但并不暗,因为有东西代替了太阳。凭借着这份光,我便能把黑夜当成白天。——东野圭吾《白夜行》

 

为了太阳,我才来到这世界。——巴尔蒙特

0 comments (490 views)
May 22nd, 2011 | Tags:

我是从Linux转到Mac OS的,那个时候正好上一家公司的笔记本要归还了,我还在犹豫要不要买个IBM thinkpad,装Linux然后直接就把老机器的/home目录rsync过去就可以用起来了。恰巧我在水木上逛,看到有人贴新蛋正在清仓甩货MacBook,于是果断买了一个。5700RMB的价格很有诱惑力,不用犹豫了。从那时起到现在大概用mac os大概一年半了,中间也纠结过几次,要不要再用回Linux,但是最终还是没反复,这里有必要总结一下,其实就是一个要问自己的问题:

你为什么用电脑?没有最好的,只有最合适的。

刚上大学的时候开始用电脑是为了学习编程,跟大家打游戏,偶尔编辑网页。windows完美解决了我的需求,后来对Linux感兴趣,于是装了个双系统,偶尔过去玩玩,顺带完成毕业设计。但是主需求没变过,所以windows依然占据我大部分使用电脑时间。

大学毕业开始工作,因为跟Unix相关,渐渐对Unix/Linux感兴趣,外加身边很多同事都在用Linux,于是就转到Linux。虽然当时的Gnome/KDE版本易用行完全没法跟现在相提并论,但是折腾折腾用起来也没啥太大障碍,毕竟不用做太多文档工作,openoffice套件外加thunderbird完全能解决办公需要。剩下的大部分工作都是在gnome-terminal和firefox里面度过的,对OS知识不求甚解,偶尔顺带从Linux中学到一些皮毛常常还像捡到了宝贝。我那个时候很少玩游戏了,这挺主要的。

然后到了 eBay,现今这份工作对于我使用电脑的需求是:office 套间一定要好用,我现在一天收的邮件是以往的10倍,邮件收到后的相应速度很重要,这就要跟公司的MS 邮件服务器有很好的兼容,系统更要足够稳定。至于OS本身已经不再是一个学习的场所,仅仅是一个工具,因为从这个工具出发,iTerm的ssh可以带我去到任何我想要的OS。而为了适应以往的Linux桌面经验,Mac OS 这个时候就成为了最适合的OS:BSD的内核结构,可以方便的是用各种开源工具; 很多以往Linux下的脚本直接拿过来用即可。而我也常常为Mac OS下高质量的应用程序和为用户着想的贴心设计折服。

OS不再是手中的积木,任凭你搭建玩耍,从中寻找乐趣;而是一个靠得住的工具,用起来得心应手。 我要把时间放在更多OS以外的地方,却要保持跟*nix最近的距离,这就是我现在需求,而Mac OS 很好的满足了。

现在Mac OS有烂大街的趋势,安全问题很可能会是未来的威胁,我也要改一改长久以来对Mac OS的盲目信任。用windows又不想装那如同摆设一样的杀毒软件的时候,我总是很警惕的,未来也许对待Mac OS 也会有同样的警惕,不过我真不希望那一天到来。

0 comments (543 views)