编程开发 类目

学会编程我们能够和计算机沟通

学习Perl笔记(一)

Perl闻名已久,这次终于下定决心好好学习一番。前两天从晓攀那里搜刮了一堆Perl的文档,不过仔细一看全是动辄三、四百页的大块头,感觉还真不适合像我这样想最短时间内能够了解这门语言的人看。我比较喜欢简短精炼的教程,比如我是通过A Byte of Python入门学习Python,通过A Byte of Vim入门学习Vim,通过Shell十三问对Shell的熟悉与理解更上一层楼的。

所幸地是,像我这样的人不在少数,我从StackOverflow网站的一个回答上找到一些教程,从中我挑了Learning Perl the Hard Way作为入门读物(从主页上下载了PDF版本,好像更新日期是2003年,不知道是不是过旧了?)。

查看全文

WordPress 使用阿里云 OSS 作为图床

我一般很少在博客中放置图片,主要原因是没有一个合适的图床。昨天浏览阿里云论坛的时候,无意间看到有oss4wordpress的插件,欣喜之下就决定试试,试用下来效果还是不错的。

独乐乐不如众乐乐,我把昨天折腾的过程记录下来给有需要的人。

OSS 收费情况

OSS 对于新开通的用户有半年的试用时间,试用期间的服务套餐为:

查看全文

博客侧栏显示文章目录

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

TOC+插件

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

查看全文

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 描述

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

Shell 脚本避免多次重复 source

source语法的引入,使得shell的脚本也可以像其它语言一样,一份代码能够分成多个模块,基本的模块可以像库文件一样被多个脚本使用。例如/etc/init.d/functions,它被多个服务脚本使用。

source除了导入库代码的作用之外,它还可以用于导入配置文件,这个在Linux系统中使用的非常广泛,因为大多数配置文件都是文本格式的,而shell本身又没有解析过于复杂的配置文件的能力,例如xml、json等。典型的例子有,/etc/default/rcS或者/etc/sysconfig/network等等。

也正因为如此,一旦Shell脚本的代码量到达一定的规模,模块化的趋势是必然的,很多地方都会用到source,所以理解source是很有必要的。source的过程,其实就是将脚本导入到当前的执行环境下,并且依次执行其中的代码。因此对于被source的脚本来说,它的一切环境变量都是与当前环境保持一致的,被source脚本中对环境做的任何改动都会影响到当前的执行环境。

查看全文