2013 年 01 月

浏览模式: 标准 | 列表 | 图文
Typecho Slug 拼音插件

Typecho Slug 拼音插件

用法很方便,功能也很简单,如果你的typecho不是以slug的方式显示的,那就没有意义了
如果以slug的方式显示,一般是自己主动写成英文的话,那也没有意义,我这个只是好玩罢了。

自动将标题转成拼音。
在编辑和保存的时候,会自动将它转成slug。如果slug为空,或者为数字(可能是文章ID)的情况下,自动转成拼音

因为,该插件不需要你改程序,也没有配置文件 ,所以就不多介绍了。

下载地址:d81105d9b2c2c8d968902b1b2422cc7e

---update: 2020-04-14

怎么不解析attach信息了?

ThinkPHP 7周年了


一转眼,thinkphp已经走过了7个年头,这在开源软件里也算是一个很长的年头了。
7年,结婚是7年之痒,thinkphp从最初的fcs走到现在,中间经历的坎坷自是不必说了。
创业是一件很艰辛的事情,流年坚持将公司办在上海,就是为了能够使得用户产生很大的信任感。如今,这份信任也确实得到了回报。
看看ThinkPHP七周年页面所说的:

七年来,ThinkPHP专注于WEB应用快速开发。
七年来,ThinkPHP超过了300W次下载。
七年来,ThinkPHP经历了7个里程碑版本。
七年来,ThinkPHP为50W个网站提供了底层框架。

先不管有没有水份,至少现在有不少公司的招聘里,已经有公司将熟悉ThinkPHP框架当成了条件之一。这也能够证明上面的内容的真实性和可靠性了。

所以我还是坚持那句话:时间能够证明一切。

svn: E220001: Unreadable path encountered; access denied

svn: E220001: Unreadable path encountered; access denied

发现svn的代码有更新,却忘了与上次对比。于是svn与上一版本对比的时候就出现了标题的错误:
svn: E220001: Unreadable path encountered; access denied

其实解决方法很简单,在conf/svnserve.conf中。找到anonaccess = read这一行,(默认是注释掉的)
加入一行 anonaccess = none

再试一下,就会发现正常了。

这应该算是svn的BUG了。拜托,就算你不支持anon这样的匿名用户,你好歹默认为NONE这种值你总要存在吧。不存在 就直接造成无法访问,没权限了。

震精:RSS规范作者之一、Reddit创始人之一Aaron Swartz自杀身亡

震精:RSS规范作者之一、Reddit创始人之一Aaron Swartz自杀身亡

让人震精的新闻。一个比我小的人,自杀了。。。
国外不是不流行自杀的吗?

本文来自infoQ:http://www.infoq.com/cn/news/2013/01/aaron-swartz-suicide

2013年1月11日,美国程序员、作家、政治活动组织者、互联网活动家Aaron H. Swartz在纽约自杀身亡,享年26岁。

Swartz出生于1986年,在14岁时,就已经加入W3C RDF核心工作组。在麻省理工学院,他与Web发明人Tim Berners-Lee一起工作,并协助开发并传播了Web上数据共享的标准,他与其他人联合写就了目前广泛使用的RSS 1.0规范。他是markdown的联合创始人,还是知名社会化新闻站点Reddit的三个拥有者之一,他还创造了python web应用框架web.py。

Swartz曾在Stanford读过一年,然后主动退学,创立公司Infogami,该公司受到Y Combinator首次Summer Founders Program资助。

2007年,他领导非盈利组织Open Library的创立,该组织意将世界上所有曾经出版过的书的信息都收集起来。

此后,Swartz在哈佛道德中心实验室(Harvard's Ethics Center Lab)完成了一个研究生奖学金,研究制度腐败(Instutional Corruption)。在2010年,他创建了DemandProgress.org,发起运动“反抗互联网审查法案SOPA/PIPA”。

2011年7月,美国联邦大陪审团起诉Swartz,罪名是他从JSTOR在线杂志档案系统上下载了海量学术性文档,并大量散发。此后,他为Avaaz基金会工作,这是一家非盈利性组织,致力于“全球web运动,将人民群众的力量带入到政府决策过程中”。

他对Wikipedia曾做过里程碑式的分析,并写就文章《谁撰写Wikipedia?》。

Swartz曾写过一篇非常有名的文章:《如何提高效率》,在文章结尾 ,他这样写道:

效率的真正秘密在于“聆听自己”,在你饿的时候吃饭,在你疲惫的时候睡觉,当你厌烦的时候休息一下,做那些有趣好玩的项目。

这看起来很容易,但是社会上的一些观念正在把我们向相反的方向引导。要想变得更加有效率,我们需要做的就是转过头来“聆听自己”。

如今,斯人已逝,回看这两句话,怎能不令人唏嘘!

郑柯 郑柯,实用的理想主义者,相信:每天改变一点点,这个世界会更好。

---------
实在让人不敢想象。。

感慨人生

感慨人生

最近有很多事情

1、突然在周五的时候有人说一位前同事走了:http://weibo.com/1407364173/zdY7ZuFTe,

一个朋友,昨晚,骑摩托,离我们而去了。大家祝愿他在另外一头活的开心点,同时自己要当心。

(2)| 转发(12)| 收藏| 评论(16) 1月11日 14:39来自新浪微博

大家都很震精,太意外了。这么年轻就走了

2、项目,为了测试API接口,写了一个简单的测试框架(因为项目是基于YII的),准备过段时间略微稳定后开源出来,其实项目没几行代码只是方便开发人员测试罢了(嗯,不是单元测试,黑黑)

3、技术,最近又在看go了。上一次看,是一年前,为什么要看它,是因为我发现当我的C语言太差的时候,go就是弥补我的语言能力的一个工具。而且网络库比较强大。只是我对于一些原理不熟,搞起来确实有点累。慢慢折腾,总会好的

4、安装了GearMan,其实说是说调度器。如果不是分布式的话。与那些MQ的软件的功能其实就真的差不多了。试了一下。其实效率并没有想象中的那么好。。什么不堵塞,几乎是不可能的啦。只是堵塞的时间少一点罢了。而且,说白了,有时候命令行下执行的代码可以忽略一些安全模式下不能解决的问题。好吧,原来我有部分代码是用soap来实现的。现在用gearman效率确实是提高了一点。

5、说了不写代码了。但还是在不停的写。坚持,今年就是我最后一年把它当成职业来做,明年不再将它当成主业,不拦别人的路。

ubuntu下安装gearman及扩展

ubuntu下安装gearman及扩展

Ubuntu下面安装gearman以及php的gearman扩展是需要注意一下的。
不是默认的安装就直接OK
apt-get install gearman
安装完gearman后。使用pecl install gearman安装。这时候会提示你安装新版 的libgearman
如果你直接搜索apt-cache search libgearman,会发现有很多,但其实一个都不是。。不用上当了

OK,怎么办?有人也问过这个问题:http://stackoverflow.com/questions/13312207/installing-gearman-php-extension-on-debian-6
有人这么回复 :

The reason that this doesn't work is that as the error message says, the most recent version of the PHP extension requires libgearman-1.0 (which is why the directory is named 1.0). You'll need to be at least on wheezy (which is the version after debian 6 / squeeze) to get libgearman-1.0.

It might also be a solution to compile libgearman from source, and then use checkinstall to create a debian package that you install afterwards, or use the gearman developer ppa available at https://launchpad.net/~gearman-developers/+archive/ppa. We've built libgearman, gearmand and the PHP extension on a wide variety of distributions (including Debian, Ubuntu, RHEL4 and SL6) and used checkinstall to get a proper package available.

嗯,打开这个网址。
在最上面有提醒你怎么将PPA将入源里:

Adding this PPA to your system

You can update your system with unsupported packages from this untrusted PPA by adding ppa:gearman-developers/ppa to your system's Software Sources. (Read about installing)

OK,那我们开始吧:

apt-add-repository ppa:gearman-developers/ppa

然后,你根据你的版本,将源加到你的source.list文件里:
vim /etc/apt/source.list
加入:

deb http://ppa.launchpad.net/gearman-developers/ppa/ubuntu precise main  deb-src http://ppa.launchpad.net/gearman-developers/ppa/ubuntu precise main 

然后:apt-get update
apt-get upgrade
会提醒你需要升级gearman到最新版 本
这时候再:
pecl install gearman
然后就直接安装成功,会提示你怎么操作:
Build process completed successfully
Installing '/usr/lib/php5/20090626+lfs/gearman.so'
install ok: channel://pecl.php.net/gearman-1.1.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=gearman.so" to php.ini
按照提示操作完后,重启apache。
在命令行下执行:
# php -i |grep gearman
gearman
gearman support => enabled
libgearman version => 0.40
wow...安装成功。
就是这么简单
liteIDE更新了

liteIDE更新了

其实,这篇博客应该发在昨天的。
昨天据说是liteide2周年,所以作者发布了一个新的版本。
再加上,昨天又是高伯伯的生日,两日 并一日。新版本就这样出来了
网址在:http://code.google.com/p/golangide/downloads/list
话说回来,liteide已经换过N多的LOGO了。一个是“易”的中文,一次是地球 ,这回换上了太极图了。据说太极图是用QT画出来的。。。

蛋疼的人总是很多。嗯其实是我很羡慕罢了。
这次好象没有什么太大的更新,好象基本上就是为了2周年,改了LOGO发布的。
当然也开始支持了tip版的go(http://code.google.com/p/golangide/wiki/changes)

  • GolangDoc:
    • support go tip version
    • show error output

不过还是要介绍一下这个软件:
如果你需要很好的使用markdown,以及预览,建议你下载内嵌webkit核心的那份。还能支持导出成PDF哦。

Introduction

LiteIDE is a simple, open source, cross-platform Go IDE.

Base Features

  • Mime type basis system
  • System environment manage
  • Build system manage
  • Debug system simple and open
  • Kate syntax and style scheme
  • WordApi complete helper

Golang Support

  • Package browser
  • Class view and outline
  • Document browser
  • Gocode(https://github.com/nsf/gocode) support
  • GOPATH api index
  • Jump to declaration
  • Code expression info
  • Go playground

Markdown suppor

  • Live preview and sync scroll
  • Custom css , css files from Mou(http://mouapp.com)
  • Export html and pdf
  • Markdown batch
    • separate to html or pdf
    • merge to html or pdf

System

  • Windows
  • Linux
  • MacOSX

Website

Log

  • 2013-1-10 Version X15.2
Golang官网被墙解决办法

Golang官网被墙解决办法

GoLang的官网经常 会抽风,至于为什么,我想大家都明白的,所以有人还在code.google.com上维护了一份hosts列表,但是。。恐怕也就因为这些项目,导致了code.google.com也会偶尔抽抽风。

好吧。golang只是一个语言类的网站,何必呢?就象当年的python....

golang的官网在:golang.org,如果打不开但你又想看里面的内容,有几种办法
1、添加hosts记录:
173.194.75.141 golang.org
怎么添加我就不说了,没意思。如果你连这个也不会,那就不用看了

2、看chm,
astaxie维护了一份chm的手册,如果你只是看手册,那当然没问题:https://github.com/astaxie/godoc/downloads

3、godoc
如果你安装了go,那么你是不是忽略了godoc呢?OK在命令行下执行
godoc -http:=8080 ,这个8080就是你自己设置的端口,OK现在你在浏览器里打开http://localhost:8080,是不是看到了与golang.org一样的界面了?

4、还有没有其他办法?
http://go.neatcn.com
我自己也做了个反向代理 ,只是速度可能会较慢一点。

----

后续,刚才看到了这篇:http://zhan.renren.com/golanguage?gid=3602888498033773463&from=post&checked=true

居然很多想法都和我一样,只是他还提出了一个使用liteIDE这个软件,虽然我在用这个软件,但居然没有想过用它来看手册。。。真是的

liteIDE在这里有的下载:http://code.google.com/p/liteide,看页面的左侧,他有提示下载golang ide(或者你直接打开:http://code.google.com/p/golangide/),功能强大,虽然是一个新的软件,但是,它支持了:

  1. go
  2. lua
  3. markdown,markdown可以导出成pdf哦

还有什么不可能的?

Mou生成PDF时颜色偏淡的解决方法

Mou生成PDF时颜色偏淡的解决方法

Mou是一款很优秀的Markdown编辑软件,在MAC下面的展现比较趋向于完美,但一直以来生成PDF时,颜色都非常淡:
e986f470c668c8732b7d7c519a5eb60d
眼睛都快看花了,而LiteIDE里,作者说他是用的Mou授权的CSS文件,却生成出来是这样的效果:
d9a883526439d4ec2c8f18cb38f4ad4d
这相差也太大了。所以就发了封邮件给作者,作者回复的很快,然后发现我也被鄙视了。。。

你好!我猜你一定是 Mou 的老用户了(从 0.7.2 之前就开始用了),因为这个 CSS 早在 Mou 0.7.3(去年8月19号) 就已经更新过了(PDF颜色加深)。

但是为了保证用户之前自定义 CSS 的安全,Mou 不会主动覆盖旧的 CSS,如果想使用新的 CSS,需手动删除
~/Library/Application Support/Mou/CSS/
目录下旧的 CSS,重启 Mou,Mou 会创建新的 CSS。

这点已在 Release Notes 中多次提及:
http://mouapp.com/releasenotes/

看了一下mouapp的releasenotes,那一行果然是其他颜色的。。。天啊。更新这么多次了,都没有看过别人的releasenotes。。。郁闷
120fc120ecdae99829257bf53973fad0
于是进入目录,删除了CSS,重打开Mou,Export 一份PDF,果然正常了。Oh Yeah。。

作者还提供了修改CSS的方法:

另外如果需要自定义 CSS,不能直接修改 .app 包里的,如果真的那样设定,岂不是每一次更新,用户的自定义 CSS 都会丢掉?

正确的目录是
~/Library/Application Support/Mou/CSS/
如果你在 Preferences>CSS 里点击 Edit… 按钮,引导过去的也是这个目录而不是 .app 包里的。

关于自定义 CSS,可以直接修改现有的,也可以把新的 CSS 文件(文件名随意)拖到这个目录下,重启 Mou 后它会自动刷新 CSS 列表,当再次进入 Preferences>CSS 里时,就可以在列表中选用你新加入的这个 CSS 了。

还有一篇关于只应用于 PDF 的自定义 CSS 技巧的 Blog:
http://chenluois.com/blog/mou-pdf-export-page-break/

享受Mou吧

Go语言的fmt包中文教程

Go语言的fmt包中文教程

因为go的fmt.Printf支持的参数与c的printf(sprintf)不太一样,所以复制一下做个备份。
查起来快一点:

mport "fmt"
简介
Package fmt包含有格式化I/O函数,类似于C语言的printf和scanf。格式字符串的规则来源于C但更简单一些。
输出
格式:
一般:
%v 基本格式的值。当输出结构体时,扩展标志(%+v)添加成员的名字。the value in a default format.
when printing structs, the plus flag (%+v) adds field names
%#v 值的Go语法表示。
%T 值的类型的Go语法表示。
%% 百分号。
布尔型:
%t 值的true或false
整型:
%b 二进制表示
%c 数值对应的Unicode编码字符
%d 十进制表示
%o 八进制表示
%q 单引号
%x 十六进制表示,使用a-f
%X 十六进制表示,使用A-F
%U Unicode格式: U+1234,等价于"U+%04X"
浮点数:
%b 无小数部分、两位指数的科学计数法,和strconv.FormatFloat的'b'转换格式一致。举例:-123456p-78
%e 科学计数法,举例:-1234.456e+78
%E 科学计数法,举例:-1234.456E+78
%f 有小数部分,但无指数部分,举例:123.456
%g 根据实际情况采用%e或%f格式(以获得更简洁的输出)
%G 根据实际情况采用%E或%f格式(以获得更简洁的输出)
字符串和byte切片类型:
%s 直接输出字符串或者[]byte
%q 双引号括起来的字符串
%x 每个字节用两字符十六进制数表示(使用小写a-f)
%X 每个字节用两字符十六进制数表示(使用大写A-F)
指针:
%p 0x开头的十六进制数表示
木有'u'标志。如果是无类型整数,自然会打印无类型格式。类似的,没有必要去区分操作数的大小(int8, int64)。
宽度和精度格式化控制是指的Unicode编码字符的数量(不同于C的printf,它的这两个因子指的是字节的数量。)两者均可以使用'*'号取代(任一个或两个都),此时它们的值将被紧接着的参数控制,这个操作数必须是整型。
对于数字,宽度设置总长度,精度设置小数部分长度。例如,格式%6.2f 输出123.45。
对于字符串,宽度是输出字符数目的最低数量,如果不足会用空格填充。精度是输出字符数目的最大数量,超过则会截断。
其它符号:
+ 总是输出数值的正负号;对%q(%+q)将保证纯ASCII码输出
- 用空格在右侧填充空缺而不是默认的左侧。
# 切换格式:在八进制前加0(%#o),十六进制前加0x(%#x)或0X(%#X);废除指针的0x(%#p);
对%q (%#q)如果可能的话输出一个无修饰的字符串;
对%U(%#U)如果对应数值是可打印字符输出该字符。
' ' 对数字(% d)空格会留一个空格在数字前并忽略数字的正负号;
对切片和字符串(% x, % X)会以16进制输出。
0 用前置0代替空格填补空缺。
每一个类似Printf的函数,都会有一个同样的Print函数,此函数不需要format字符串,等价于对每一个参数设置为%v。另一个变体Println会在参数之间加上空格并在输出结束后换行。
如果参数是一个接口值,将使用内在的具体实现的值,而不是接口本身,%v参数不会被使用。如下:
var i interface{} = 23
fmt.Printf("%v\n", i)
将输出23。
如果参数实现了Formatter接口,该接口可用来更好的控制格式化。
如果格式(标志对Println等是隐含的%v)是专用于字符串的(%s %q %v %x %X),还提供了如下两个规则:
1. 如果一个参数实现了error接口,Error方法会用来将目标转化为字符串,随后将被按给出的要求格式化。
2. 如果参数提供了String方法,这个方法将被用来将目标转换为字符串,然后将按给出的格式标志格式化。
为了避免有可能的递归循环,例如:
type X string
func (x X) String() string { return Sprintf("<%s>", x) }
会在递归循环前转换值:
func (x X) String() string { return Sprintf("<%s>", string(x)) }
错误的格式:
如果提供了一个错误的格式标志,例如给一个字符串提供了%d标志,生成的字符串将包含对该问题的描述,如下面的例子:
错误或未知的格式标志: %!verb(type=value)
Printf("%d", hi): %!d(string=hi)
太多参数: %!(EXTRA type=value)
Printf("hi", "guys"): hi%!(EXTRA string=guys)
缺少参数: %!verb(MISSING)
Printf("hi%d"): hi %!d(MISSING)
使用非整数提供宽度和精度: %!(BADWIDTH) or %!(BADPREC)
Printf("%*s", 4.5, "hi"): %!(BADWIDTH)hi
Printf("%.*s", 4.5, "hi"): %!(BADPREC)hi
所有的错误都使用"%!"起始,(紧随单字符的格式标志)以括号包围的错误描述结束。
输入
一系列类似的函数读取格式化的文本,生成值。Scan,Scanf和Scanln从os.Stdin读取;Fscan,Fscanf和Fscanln 从特定的io.Reader读取;Sscan,Sscanf和Sscanln 从字符串读取;Scanln,Fscanln和Sscanln在换行时结束读取,并要求数据连续出现;Scanf,Fscanf和Sscanf会读取一整行以匹配格式字符串;其他的函数将换行看着空格。
Scanf, Fscanf, and Sscanf根据格式字符串解析数据,类似于Printf。例如,%x将读取一个十六进制数,%v将读取值的默认表示。
格式行为类似于Printf,但有如下例外:
%p没有提供
%T没有提供
%e %E %f %F %g %G是等价的,都可以读取任何浮点数或者复合数(非复数,指科学计数法表示的带指数的数)
%s 和 %v字符串使用这两个格式读取时会因为空格而结束
不设格式或者使用%v读取整数时,如果前缀为0(八进制)或0x(十六进制),将按对应进制读取。
宽度在输入中被解释(%5s意思是最多从输入读取5个字符赋值给一个字符串),但输入系列函数没有解释精度的语法(木有%5.2f,只有%5f)。
输入系列函数中的格式字符串,所有非空的空白字符(除了换行符之外),无论在输入里还是格式字符串里,都等价于1个空白字符。格式字符串必须匹配输入的文本,如果不匹配将停止读取数据并返回函数已经赋值的参数的数量。
所有的scan系列函数,如果参数包含Scan方法(或者说实现了Scanner接口),该参数将使用该方法读取文本。另外,如果被填写的参数的数量少于提供的参数的数量,将返回一个错误。
所有要被输入的参数都应该是基础类型或者实现了Scanner接口的数据类型的指针。
注意:Fscan等函数可以从输入略过一些字符读取需要的字符并返回,这就意味着一个循环的读取程序可能会跳过输入的部分数据。当数据间没有空白时就会导致出现问题。如果读取这提供给Fscan系列函数ReadRune 方法,这个方法可以用来读取字符。如果读取者还提供了UnreadRune 方法,该方法将被用来保存字符以使成功的调用不会丢失数据。为了给一个没有这些功能的读取者添加这俩方法,使用bufio.NewReader。

这样就看起来方便多了,而且。速度也快。。。。

几个GO的资源站:

  1. http://www.cnblogs.com/ztiandan/category/436475.html
  2. http://www.dotcoo.com/?tag=golang
  3. http://www.diandian.com/tag/golang
  4. http://code.google.com/p/golang-china/
  5. http://www.zhaokunyao.com/archives/category/go-lang

还有一些知名的和不知名的就不贴了。比如astaxie的GITHUB上的教程。大家都知道。。