同样的程序,这五种语言速度对比。java速度最快,其次golang,nodejs,python,php。在这里php,python已经与前面的语言不在同一个级别了。据说python可以在速度上优化一下,但我现在还处于对python了解阶段。并没有过多的深入研究。 继续阅读
月度归档:2013 年七月
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();
ubuntu tail 命令详解
tail命令会显示文件的末尾部分的内容。默认情况下,它显示文件的末尾10行数据。可以通过参数指定显示的行数。 继续阅读
nodejs os包一些函数介绍
golang的小总结
ubuntu下的uml工具
windows下有Visio,
Ubuntu下有强大的跨平台的DIA。
很给力的一款软件,很好用。各位可以用一下。
安装方法:
sudo apt-get install dia
ssh登陆服务器
ssh -l username -p port hostname
-l 指定用户名
-p指定登陆主机的端口号
hostname指主机地址,可以是ip或者域名
回车后会要求输入密码
nodejs上传图片
方法一:
exports.upload = function(req, res){ //引入必要的包 var fs = require('fs'); var path = require('path'); //获取上传的文件名称,路径 var fileName = req.files.image.filename; var tmp_path = req.files.image.path; var target_path = __dirname + "/upload/" + fileName; //判断文件是否存在 path.exists(tmp_path, function(isExist){ if (isExist){ //在这部执行将tmp下的图片重名到指定的目录下 fs.rename(tmp_path, target_path, function(err){ if (err){ console.dir(err); //如果这里打印出错误,请查看target_path路径 }; }); } else { console.log("No"); } }); console.dir(req.files); //Redirec index. res.redirect("/"); }
方法二:
exports.upload = function(req, res){ var fs = require('fs'); var path = require('path'); var util = require('util'); var fileName = req.files.image.filename; var tmp_path = req.files.image.path; var target_path = __dirname + "/upload/" + fileName; path.exists(tmp_path, function(isExist){ if (isExist){ ins = fs.createReadStream(tmp_path); ous = fs.createWriteStream(__dirname + "/upload/" + fileName); util.pump(ins, ous, function(err){ console.dir(err); }); } else { console.log("No"); } }); console.dir(req.files); //Redirec index. res.redirect("/"); }
注意:方法一可以在使用完后,不用删除tmp下的图片,它会自动删除tmp下的文件。但是方法二,要手动删除tmp下的图片。