普通技术 关注各种技术
Node.js 和 Socket.io 入门教程
安装Nodejs:
nodejs有自己的包管理工具,叫npm,通过npm管理依赖包,相当的方便。安装nodejs也是比较方便,Ubuntu上直接用:
apt-get install nodejs
Debian系统:
Node.js在官方的Debian Sid(unstable).中已经有了,可以直接通过apt-get安装,首先检查apt-get的source文件/etc/apt/source.list中是不是已经包含
deb http://ftp.us.debian.org/debian/ sid main
可以通过如下方式安装:
root@host: ~ # echo deb http://ftp.us.debian.org/debian/ sid main > /etc/apt/sources.list.d/sid.list
root@host: ~ # apt-get update
root@host: ~ # apt-get install nodejs
详细的安装信息这里有: https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
安装Socket.io:
开发Node.js程序当然离不开Socket.io,安装Socket.io也是比较的简单: Ubuntu系统,先安装npm包:
apt-get install npm
安装npm包后,就可以通过npm包安装Socket.io了:
npm install socket.io
开发入门:
socket.io主页上有不少的例子,这里是自己整理的一个例子,服务器每隔2秒向客户端发送一条消息的例子:
Server: server.js
var app = require('http').createServer(handler),
io = require('socket.io').listen(app),
fs = require('fs');
app.listen(8080);
function handler (req, res) {
fs.readFile(__dirname + '/index.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}
io.sockets.on('connection', function (socket) {
io.sockets.emit('news', 'welcome to nodejs');
var tweets = setInterval(function () {
socket.emit('news', 'bieber tweet ok');
}, 2000);
socket.on('disconnect', function () {
clearInterval(tweets);
io.sockets.emit('user disconnected');
});
});
Client: index.html
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost/');
socket.on('news', function (data) {
console.log(data);
$("#alarm").append(data).append('<br/>');
socket.emit('my other event', { my: 'data' });
});
</script>
</head>
<body>
<div id="alarm"></div>
</body>
</html>
server.js和index.html放到同一个目录下,然后启动:
> node server.js
在浏览器上访问: http://127.0.0.1:8080/ 即可看到客户端不断的有数据更新。
本文链接[Link]
为何云思考?
曾经,一直在寻找类似HackerNews、Reddit的中文技术互动社区,分享,创造,和探讨一些新鲜的观点、想法,寻找具有共同话题的人群,沉淀自己的思绪,见证自己的成长历程。有一些圈子氛围不是我喜欢的,微博和知乎是很好的地方,但不是技术交流的地方,传统的都是在BBS里讨论,但免不了一些废话和顶贴。我没有PG老大的领导力和影响力,也正因为此,我希望“云思考”建立成一个平等、自由的技术/科技交流社区,每个人可以平等的交流,分享自己的思想,没有废话、吵架和谩骂,每个人拥有独立思考的能力,尊重每个人的想法和言论自由,但也不给别人添乱。这里没有明星一呼百应,前簇后拥,大牛可以获得众人的好评、追捧,新人们也同样可以,精彩的想法会得到正面的鼓励、赞扬、认可。这里鼓励发表有意义有深度的想法、主题、Idea,不鼓励无意义的闲言废语。这里的主题只有向上的投票,没有向下的投票,对于不喜欢或者反对的人/事,最好的反对方式就是漠视它,它也会因为其他好的人/事慢慢销声匿迹。这里不鼓励没有意义的顶贴沙发,但允许自己的、哪怕别人看起来很弱智的想法,因为经过思考的想法,不管是好的坏的,正确的错误的,才是有意义的,才值得保留下来,对别人或许一文不值,对自己却可能是一生的财富。每个人都有自己独特的世界观和价值观,每个人有自己独特的价值体现,或许你自己没有发现,或许你功力修练还不够深厚。云思考是个帮助程序员和设计师们体现自己能力和价值的地方,你的一言一行体现了你的价值存在。云思考鼓励独立思考,找到自己喜爱的事情,并乐此不疲的为之奋斗。云思考不是人云亦云,无数个独立思考的人,才能形成一片智慧的云,满足众人的求知欲。
云思考是什么?
云思考是一个类似Hacker News、Reddit的中文社区,这里是程序员、设计师、和互联网创业者交流、分享、创造的社区,关注有价值的讨论、有意思的思考、实实在在的创造。
云思考搭建历程:
第一版是用HN的代码搭建的,HN由Arc编写并且开源,在经过学习Arc、安装环境、测试代码后,一次不巧的偶然,系统挂掉了,并且再也起不来。HN的代码不需要安装数据库,所有数据基于文件系统,正因为此,在周期执行TopStory的时候文件没有写完,数据格式不完整,系统加载失败。在联系作者后,Bug是修改了,但心有余悸,因为自己只能看懂Arc代码,却没有能力修改HN的代码。
继续寻找HN的开源实现,找到了newsmeme(Python),lamernews(Ruby)这2个比较出名的实现。由于对flask不熟悉,在搭建过程中newsmeme遇到几个Bug,一直未能解决,也便不了了之。于是花了几个晚上,用Python/Tornado Clone了一个HN,就是目前的云思考。http://www.yunsikao.com
提交手册:
受欢迎的话题:
任何能够激发想象力、创造力,满足众人的求知欲的、有趣的话题,主要关注IT技术、互联网方面的话题。可以是自己的一段精彩的代码,一个非常实用的小工具,也可以是一段经过思考的总结,或一段即使看起来有点天马行空的想法。
不受欢迎的话题:
关于政治、军事、体育等,以及其他与本站核心背离的话题。如果在互联网上经常能看到的文章,或已经被众多网站转载过的文章,就不必再转载到云思考了,因为你不在云思考,也都能获得此信息,云思考不希望为互联网制造太多的重复信息。
发帖指导:
发帖是个耽误时间的事,不仅耽误自己的时间,还会耽误别人的时间,请确信自己的时间值得耽误。即使5毛钱也算不少的钱,但还请慎重消耗你的karma值。
不要做标题党,一句美妙的文字好过一段无意义的文章。否则管理员可能会修改你的文章标题。
不要在标题里携带奇怪的字符,来突出标题。如果标题里面带有网站名字,请除去掉网站的名字。因为在文章的链接后面,已经携带有网站的链接。
不要转载内容工厂的文章。如果转载的文章是转载的别人的,请转载最原始的文章,如果找不到原始的文章,请放弃转载。
如果想问技术问题,先去CSDN、iteye问问,或许能有收获。如果还没有答案,再来这里询问。如果想找人做毕业设计,请最好不要再这里提及。
如果你想展示自己的创业内容,至少你要确信是想获得别人的建议或意见,而不是为了获得一些点击量,那么请发表自己的一些很酷的创造。
不要吵架。这里的人都是真实存在的人,如果你和某人在线下也经常吵,天气这么好,何不找个小河边好好切磋一下?如果不是,那就闭嘴吧。善用Block功能,但有时火花需要激情才能碰撞出来。
不要冰天雪地裸体跪求,不要求求好心人帮你,但可以适当求求别人表扬你。
精简你的语言,可以改变你的不好习惯。多年以后再来回顾,这些言语片段会是你积累下的财富。
本文链接[Link]
New job, new start, new dream
总结过去没有做好的几点: 1、没有自己的技术博客,没有对自己的技术做一些总结 2、在技术圈的知名度不高 3、对未来的规划不够清晰。
用了一点时间搭建了jekyll+github环境,用来写博客,看不少人极力推荐。搭建完后的感觉, markdown格式写blog还是不错的,比较方便将来移植排版,github可以免费使用,访问速度非常的快,还可以绑定域名。
第一步、使用Git Pages
参考这里http://www.noreal.pro/2011/12/26/use-Jekyll-build-Blog-on-Github/
第二步、使用Jekyll
jekyll安装的教程很多,不一一列举, 可见上面的参考链接。
自己在Mac下安装没有成功, 但其实不需要搭建jekyll环境,只有想修改Blog的Theme时才需要安装jekyll环境了。
只需要将Jekyll-Bootstrap的文件下载下来,放到自己的USERNAME.github.com里面并上传到github中,以后写博客只需要在_posts目录里面添加YYYY-MM-DD-[blog-title].md格式的文件即可。
如何安装jekyllbootstrap请看这里jekyllbootstrap.com。
从今天开始,开始整理总计自己过去用过的技术,一些心得体会。
本文链接[Link]
最近发布的文章
- 22 Mar 2012 » Node.js 和 Socket.io 入门教程
- 06 Mar 2012 » 为何云思考?
- 12 Feb 2012 » New job, new start, new dream