博客侧栏显示文章目录

有些博客文章很长,像我又不喜欢给文章分页,这样一篇博客读下来鼠标要拖很久,读者比较难定位到关心的内容。解决这个问题有很多措施,一种是在文章拖到底部的时候显示一个返回顶部的按钮(做法参考博客添加回到顶部按钮),另外一种是做一个文章目录,这样就比较直观了。

TOC+插件

我之前用Table of Contents Plus插件来实现这个功能,这个插件设置还很多,我之所以选择它,是因为这个插件提供一个文章目录小工具,可以放到侧栏。其它同类的插件或者实现,都是把目录显示在文章内部,比如开头或者结尾,但是在阅读过程中,这其实还是跟没有一样。

查看全文

CPU Topology

如果你也是对/proc/cpuinfo文件里面的内容不甚了解,请跟我一起来学习下CPU的拓扑结构 (CPU Topology)。我们先从一些简单的概念开始。

NUNA与SMP

NUMA(Non-Uniform Memory Access,非一致性内存访问)和SMP(Symmetric Multi-Processor,对称多处理器系统)是两种不同的CPU硬件体系架构。

SMP的主要特征是共享,所有的CPU共享使用全部资源,例如内存、总线和I/O,多个CPU对称工作,彼此之间没有主次之分,平等地访问共享的资源,这样势必引入资源的竞争问题,从而导致它的扩展内力非常有限。

NUMA技术将CPU划分成不同的组(Node),每个Node由多个CPU组成,并且有独立的本地内存、I/O等资源。Node之间通过互联模块连接和沟通,因此除了本地内存外,每个CPU仍可以访问远端Node的内存,只不过效率会比访问本地内存差一些,我们用Node之间的距离(Distance,抽象的概念)来定义各个Node之间互访资源的开销。

查看全文

学习 Linux 命令(三)

本文是学习Linux命令 (Learn linux command)系列文章的第三篇,在这里会介绍一些让大家平时都会经常用到的命令。注意,命令出现的顺序与重要程度无关。

1. ls - list directory contents

ls命令是用得比较多的一个命令,它用于列出某个目录下面的文件或者子目录及它们的属性(大小、创建时间、所属用户等信息)。

ls命令的参数比较多,这里只介绍一些实用的。

a. 通过-a选项列出目录下面的隐藏文件(即以.号开头的文件),例如:

# ls -a ~
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc .tcshrc  .viminfo

其中.和..表示当前目录与上一级目录,如果不想显示可以使用-A选项。

# ls -A ~
.bash_history  .bash_logout  .bash_profile  .bashrc .cshrc .tcshrc  .viminfo

查看全文

WordPress 使用 WP-Emmet 插件

WordPress自带的文章编辑框实在是弱爆了,曾经想换成MarkDown编辑器,但是换上它之后担心以后迁移比较麻烦,毕竟保存在数据库中的内容都是markdown文本,而不是渲染后的HTML文本。

前两天在网上无意间看到一篇讲ZenCoding的新闻,突然想起这个几年前折腾过的神器,想都不想就开始在Wordpress主页上搜索有没有相关的插件了。

ZenCoding现在貌似改成Emmet了,主页为这Emmet — the essential toolkit for web-developers。WP上搜索到一款插件,叫做WP-Emment,这款插件貌似下载的人不多。

查看全文

Shell 编码风格

Scripting with style 是少见的一篇介绍 Shell 编码风格 的文章,相信对大多数运维人员有用,现在将译文献上。

缩进准则

我一般使用2个空格来缩进(尽管大多人使用4个空格),原因是:

  • 输入简单快速;
  • 没有输入一个Tab键,避免不同环境下显示的差异问题;
  • 缩进的效果已经足够,并且没有浪费太多的空间;

译者注:本人也是使用4个空格,如果你也与本文作者的风格不一样,下面说到2个空格的地方请自觉替换成你实际使用的空格数。个人认为,缩进只是一个个人的风格,只要不影响可读性即可。

顺便说一句,尽量不要使用Tab键,它们容易带来麻烦,我只能想到一种情况下它是有用的:here document中的缩进。
查看全文

Chrome 扩展打包工具 buildcrx.sh

Chrome.exe本身就可以用来打包crx文件,但是用起来不是很方便,比如我将代码托管在Github上,在源代码目录下面会有许多目录不需要打包到crx文件中,例如.git目录,这个功能目前来说chrome.exe无法做到。幸运地是,网上有很多人写了各种版本的打包工具,有人还在一个网站上专门收集了这些打包脚本,传送门

从中我选择了crxmake.sh作为打包的基础脚本,然后再此基本上做了些定制改进,除了最基本的打包功能外,它能够做到:

  • 使用grep命令的扩展正则表达式ERE语法来排除文件;
  • 查找manifest.json文件中的update和version信息,自动生成更新后的updates.xml

下载地址:dangoakachan/buildcrx · GitHub

查看全文

CopyBetter: 增强复制扩展

CopyBetter 是我自己写的第一个Chrome扩展,可能有许多不足的地方,如果用到该扩展的同学遇到问题可以在此留言。

对Chrome的扩展开发一直比较感兴趣,春节前给自己定制了一个扩展开发的计划,扩展的主题是增强复制的功能,参考了Copy FixerAutocopy两个扩展。我把这个计划记录在为知笔记上,有段时间还一直在思考这个扩展怎么写。我觉得这个方法挺好的,写的过程中有目标

Google Chrome Web Store下载地址 | 源代码浏览

CopyBetter 描述

本扩展的目标是增强原生的扩展功能,目前有以下功能点:
查看全文

走起,2013

博客原域名kodango.me到2月底即将过期,由于.me域名续费比较不划算,昨天已经申请了新的kodango.com域名,原域名在过期前会301转向到新域名,感谢戈戈主机的胡戈戈提供帮助。

2012年的回顾

2012年,对于我来说是一个比较特别的一年,这一年我从学校毕业,开始从事运维工作,一切都是全新的开始。
查看全文