`
文章列表
上周末颇花了些心思写出来的, 首发blog链接 http://blog.hickwu.com/posts/336/ 作者 Hick 如有更新, 我会在首发链接修改.   时不时有人冒出来说有 Emacs 教徒因为小拇指按 ctrl 太多导致 XXX 病, 不要用 Emacs! 有 XXX 病的人估计跟得出这个结论的人类似, 有这样的特质: 不懂得思考或者懒得主动改变. Emacs 教里不但有 evil/spacemacs 这样的 vi/vim 一族, 也有把 capslock 改成 ctrl 的键盘党, 还有改变按键习惯的行动派. 这才彰显自由的魅力, 是
p126 操作文件的时候我们需要使用相关的系统调用(system call),不过一般我们不直接使用他们,而是通过一些 io 库函数来操作,他们可以对文件操作进行 buffer 等处理。 p127 从系统调用的级别来说,linux 把一切都当文件来,都可以进行基本的 open, close, read, write, ioctl 操作。 文件的创建时间等属于值保存在文件系统中所谓的文件信息节点 inode 中,而目录就是一个保存节点数以及文件名的文件。删除一个文件的时候,往往只是从”目录文件”中删除这个文件的相关信息,并减少目录中的节点数;同时,每个文件都有一个 link 数,一般 link ...
p76 列表(list) AND 列表和 OR 列表跟 C 语言里的逻辑运算类似。AND 列表类似 “statement1 && statement2 && statement3″, OR 列表形式 “statement1 || statement2 || statement3″ 。为了实现更复杂的语句列表,有时候可以使用 {} 包含的语句块(还没有实践): get_confirm && {  grep -v “$cdcatnum” $tracks_file > $temp_file  cat $temp_file > $tracks ...
比计划来得晚一些,不过终究还是出来了 Python 3.0 (a.k.a. “Python 3000″ or “Py3k”) is a new version of the language that is incompatible with the 2.x line of releases. The language is mostly the same, but many details, especially how built-in objects like dictionaries and strings work, have changed considerably, and a ...
p54 文件描述符(fd,又称为文件句柄) 0 为标准输入文件,1 为标准输出文件,2 为错误信息输出文件。命令行下可以对他们进行重定向,比如下面的命令会把错误信息输出到文件 err.log : kill -HUP 1234 >killout.txt 2>err.log 。 第一个重定向 >killout.txt 实际上是省略了 1 ,完整的写法为 1>killout.txt 。注意错误被重定向以后就不会在终端输出了,需要到重定向文件/设备中去查看。如果需要把错误和标准输出都重定向到一个文件,可以这样:kill -HUP 1234 >killouterr.txt 2 ...
回头来看 Beginning Linux Programming 的 shell 部分还是有不少收获,其中一个 dialog 的工具,就激发了我写个简单的选择 ip 的小脚本的想法: 把 ip 分类保存成文件,每个文件中的一行(unix 风格换行符)为一个 ip,然后把下面的脚本的 host_path 值修改成这些 ip 文件所在目录—该目录下不要有其他文件即可。 # list all the host files host_path=/home/hick/hosts/ # compose the menu tag menu_tag='' for file in $(ls $host_ ...
前面大多数是看过了很多遍的一些 Unix/Linux 渊源和背景。 p38 Linux 应用程序可以分为可执行程序(二进制)和脚本(文本)两种。 p39 linux shell 下输入命令以后,shell 都会在 PATH 环境变量中设置的路径中查找可执行文件。常见路径: . /bin 用于系统启动的程序 . /usr/bin 非系统的用户可执行程序,一般都是一些标准的 linux 程序 . /usr/local/bin 同样是用户级的可执行程序,一般是系统安装完成以后另外再安装的程序 作为超级用户,一般 PATH 中还包括 /sbin/ /usr/sbin 。 p42 头文件,l ...
一开始是搬起 APUE (Advanced Programming of Unix Enviroment) 就啃,尽管是中文版,发现还是基础知识薄弱,C 语言和 linux 系统知识都还欠缺,高估了自己了,这 Advanced 还真不是盖的 :) Beginning Linux Programming(第四版) 作为 linux 编程入门确实还不错—尽管是全英文版。整的来说,以读写 CD 为例子贯穿全书的手法不错,不过对 CD 读写实在提不起兴趣来,个人感觉如果作者一写一个 server/web server 作为导向,涉及的面应该比较广,也更容易提起读者兴趣来。 看第一遍的笔记全在 pdf ...
看了两天 Emacs Muse ,感觉 Muse 跟 Emacs 结合紧密;用于写文档的话,跟我一直用的 Asciidoc 相比,各有所长。对我来说,更合适的道路是学习下 elisp ,把 Muse 文档在 Emacs 上的一些优秀表现应用到 Asciidoc 的 emacs mode: doc-mode 中去。 Muse 语法比 AsciiDoc 还要简单,简单到有些遗憾,不支持 NOTE 等。在 Emacs 上的表现能力(以可视化效果显示特殊标记、链接回车访问等)占优,另外能够让多个文档结合更紧密。转换格式差不多,只不过一个用 python 一个用 elisp 。但是对我来说,熟悉 Pyth ...
以前一直在 windows 下用 NTEmacs 22, http://ntemacs.sourceforge.net ,有一年多不见更新了。找了个最近更新比较勤快 http://www.ourcomments.org/cgi-bin/emacsw32-dl-latest.pl 开始切换到 Emacs 23 。 另外,cybergene@水木社区编译了一个比较新的 Emacs23 版,据说还支持 xpm/jpg/png/gif 等图片的显示。介绍参见 http://www.newsmth.net/bbscon.php?bid=573&id=70514&ftype=1&am ...
gnuplot 能够按照指定的数据生成二维图或三维图,提供丰富的可选图表样式。当然对复杂的三维图,建议使用专业 3D 绘图软件。这是一款非一般意义上的开源的”公开源代码”的免费软件—copyright reserved。有 windows 版,官方网站 http://www.gnuplot.info 。生成的图片参见上文 利用 vmstat+gnuplot+python脚本生成CPU和内存使用率图表 安装好以后运行 gnuplot 即可进入交互模式。然后用下面的简单命令可以在当前目录创建一个 sin(x) 的图表文件 sin.gif(注意:下面的输出代码中的某些英文引号可能被替换成了中文引号 ...
这个 blog 被注入一段莫名其妙的字符串有几个月了,一直比较忙,没时间照顾。主机上操作不便, tar 包的时候报错: tar: Error exit delayed from previous errors 。 看起来有些不知所云,由于多层错误程序退出? 搜索了下没有找到可用信息。发现有个子文件夹竟然没有读权限,chmod 以后,再次 tar 时 ok 了。 几个月不来这里照镜子,都有点不认识 hick 了 … 嘿嘿,可贵的是,激情一直在燃烧。
尽量避免使用 CSS 表达式 使用外部 js 和 css 样式 DNS 解析 压缩 Javascript 避免重定向 移除重复脚本 配置 Etag 使得 Ajax 请求可 Cache 续 http://www.hickwu.com/?p=228 尽量避免使用 CSS 表达式 CSS 表达式可以根据条件来动态的设置 css 的属性,IE 5 以及以后版本都支持 css 表达式。表达式部分就是 js 代码。 background-color: expression( (new Date()).getHours( )%2 ? "#B8D4FF" : & ...
续 http://www.hickwu.com/?p=223 使用 CDN 指定页面过期时间 gzip 压缩 把样式表放在最上面 把脚本放在最下面 使用 CDN CDN: Content Delivery Network ,内容分发网络。由于网络的差异性,尤其是我国南北电信网通的差异,网络速度容易成为用户访问慢的因素。而 CDN 提供商则会通过在不通的网络环境做镜像来解决网络的差异性,尽量使各种网络环境下的用户能够流畅的拉取页面。需要注意的是,CDN 基本上只用来分发静态内容。 文章中只大概列举了使用 CDN 的大网站的情况以及美国提供 CDN 的服务商,没有太多 ...
一般来说,windows 下操作系统和浏览器把某域名解析为 ip 地址以后,都会把解析结果做 cache ,也就是在一定时间内,该域名会一直被解析为该 ip ,而不管该域名对应的 ip 是否变化或者还绑定了其他 ip 。而浏览器通常都会忽略操作系统的 dns cache 。操作系统的 cache 可以通过 ipconfig /flushdns 命令来清除,而浏览器的 dns cache ,则一般需要启动一个新的浏览器进程(ie 的浏览器 dns cache 是以进程为基本单元的)。 在 ping 一个域名的时候,得到的 TTL 表示 Time To Live ,表示的就是建议操作系统对 dn ...
Global site tag (gtag.js) - Google Analytics