在使用Nginx时,经常会碰到502 Bad Gateway和504 Gateway Time-out错误,下面以Nginx+PHP-FPM来分析下这两种常见错误的原因和解决方案。 继续阅读
大狗被偷了
今天下午感觉右眼总跳,感觉非常不爽。等晚上下班还是像往常一样给媳妇打电话,媳妇告诉我大狗丢了。我很吃惊。真的不想相信是真的。后来老妈告诉我狗链子都被剪断了。估计偷狗的从墙上扔了东西给狗吃,随后偷走了。。我真的感到不明白,这么一条老狗你偷走有什么用意?唉,他妈的人渣啊!真他妈的多。 继续阅读
一分钱还能买什么?
今天早晨无意间从口袋中掉下一枚硬币,捡起来一下,是一分钱。可能是上次去超市找回来的。2013的硬币。我就想,这是不是该叫做纪念币了。这一分钱还能干什么?我是不能想到它还能购买什么产品。它还有什么价值?不说这一分钱,就是一毛钱,也买不到什么了。小时候吃的糖是一毛两块。两毛的冰棒。现在似乎变成了两毛一块糖,五毛的冰棒了。不知你是否还有记忆。不过那时候,吃糖是种奢侈,冰棒也是很少吃到。父亲那时候,一个月才30多元工资。记得2011年来北京的时候,煎饼果子,3元一个。现在5元。早晨吃的面包,记得年初还是5.5,现在变成了7元。老婆饼10元每盒,现在12元。真心的感到伤不起。工资你咋就长的这么慢呢?
mongodb $or sort 无法使用索引
最近做项目,发现mongodb的$or与sort一起使用的时候速度很慢。经过分析发现这个根本没有使用索引。每次都是全表扫描。经过度娘和大神的查询,大家都说这是一个bug。已经有人在mongodb上提交过,但是还没有解决。 继续阅读
resize a mongodb capped collection 重新设置mongo固定表的大小
最近公司需要将一个旧的capped collection重新调整大小最后在google大神的指导下成功找到解决方案。记录一下。
道理很简单,相信略懂mongo的程序猿都能看懂。
db.createCollection("new", {capped:true, size:1073741824}); db.old.find().forEach(function (d) {db.new.insert(d)}); db.old.renameCollection("bak", true); db.new.renameCollection("old", true);
golang goroutine
golang中有一个功能,我非常喜欢,就是goroutine。这个是go里面起子线程的一个功能。这个据说一个goroutine才几KB,这个真的很小,看起来真的很不错。不过我发现在使用的过程中,如果一个子线程崩溃了,直接导致了主线程的崩溃。看来在每一个子线程中,都需要进行recover的错误捕捉。要不然编译器完了,老板会疯掉的。。
golang 删除slice中重复的值
func UniqueSlice(slice *[]string) { found := make(map[string]bool) total := 0 for i, val := range *slice { if _, ok := found[val]; !ok { found[val] = true (*slice)[total] = (*slice)[i] total++ } } *slice = (*slice)[:total] }
golang,java,python,nodejs,php计算斐波那契数列速度对比
同样的程序,这五种语言速度对比。java速度最快,其次golang,nodejs,python,php。在这里php,python已经与前面的语言不在同一个级别了。据说python可以在速度上优化一下,但我现在还处于对python了解阶段。并没有过多的深入研究。 继续阅读
ubuntu安装golang1.1
最近公司开始做手机APP的开发,需要网站API提供数据接口。原本公司的网站都是用PHP开发的。大家对php也比较熟悉。但是经理觉得php做api开发不太合适,速度会慢。不过我觉得考虑的有点多。毕竟项目不大,用php完全能撑得住。 继续阅读
优酷网架构学习笔记(转载)
Twitter网站架构学习笔记(转载)
作为140个字的缔造者,twitter太简单了,又太复杂了,简单是因为仅仅用140个字居然使有几次世界性事件的传播速度超过任何媒体,复杂是因为要为2亿用户提供这看似简单的140个字的服务,这真的是因为简单,所以复杂。可是比较遗憾的是目前在中国大陆twitter是无法访问的,但作为一个爱好架构的程序猿,这道墙是必须得翻的,墙外的世界更精彩。今天就结合网络上的一些资料,来浅谈一下我对twitter网站架构的学习体会,希望给路过的朋友一点启示……. 继续阅读
mongodb 将一个字段的值赋给另外一个字段
今天由于公司项目需要,需要将原来数据库中的一个集合数据做一下更改。需要把一个字段的值赋给另外的一个字段。百度一会没有找到。只好翻过gfw去求助谷歌大神了。很快就找到答案了。 继续阅读
京东购买到一部二手手机
不知道是倒霉还是幸运。居然在京东购买到一部二手手机。之前一直都很信任京东的。很多电子产品都在京东上购买。比如相机,手机,书等等。
说一下事情的经过。去年一月份在京东购买一部联想(Lenovo)乐phone A668t 3G手机(黑色)TD-SCDMA/GSM 手机。本人并不是什么手机发烧友,也不是果粉。所以买一个能简单上网,照个图片也就满足了本人的需求。对这部手机挺满意的(手机电池用的时间有点短,似乎智能机的通病)。后来还介绍一哥们也买了一部。 继续阅读
php socket实例
之前一直听说socket,也没有研究过。最近在研究golang。简单的研究了一下golang的socket。今天也顺便在网上看看php的socket。总结一个简单的例子。 继续阅读
php static self小区别
一下结果会输出 B class
class A { public static function className(){ echo "A Class"; } public static function test(){ static::className(); } } class B extends A{ public static function className(){ echo "B Class"; } } B::test();