简单技术
文章平均质量分 62
historyasamirror
爱机器,爱学习。
三年的NLP经验,期间涉及Machine Learning,Data Mining,骨子里由衷的喜欢;
正在做分布式,感觉自己很幸运,这个领域一定大有可为;
关注User Study,学会从用户的角度看技术;
展开
-
IO - 同步,异步,阻塞,非阻塞
本文在理论上存在重大错误,个人对所有受到此文误导的朋友表示道歉。新做一篇“IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)”,希望能够得到谅解。 同步(synchronous)IO和异步(asynchronous)IO,阻塞(blocking)IO和非阻塞(non-blocking)IO,我相信这几个词困扰过很多人,更痛苦的是,如果你查阅过文献资料,原创 2009-06-15 15:44:00 · 47855 阅读 · 25 评论 -
自制的图片搜索
最近做了一个简单的CBIR系统(content-based image retrieval)。虽然比较粗糙,结果也只是有限的好,不过对于从来没有做过图像处理的我来说还是非常有成就感的。立此存照。另外,搜索用的图片集来自于MSRA的Xie Xing老师提供的公开数据集,表示感谢!原创 2011-07-09 21:37:48 · 5836 阅读 · 5 评论 -
网络编程之nagle算法和TCP_NODELAY
<br />之前写过一篇blog,描述了用mina的时候写socket发现的一个诡异现象,当时将多个小数据写操作合并成一个写操作,问题就没了。Chenshuo同学还建议我设置TCP_NODELAY,只是后来因为事情忙,也就没有再深究下去。<br /><br />现在大概明白,是由于nagle算法在捣乱。<br />TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认。为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据。(一原创 2011-05-15 23:19:00 · 23243 阅读 · 16 评论 -
网络编程之KeepAlive vs. heart-beat
这周在上班的路上看了本书《Effective TCP/IP Programming》,以下是一些读书笔记。顺带推荐一下这本书,写的很棒,适用于像我这样经常要写一些有一定质量的网络编程,但又没时间啃那些讲解TCPIP协议大部头书的人。很多人都知道TCP并不会去主动检测连接的丢失,这意味着,如果双方不产生交互,那么如果网络断了或者有一方机器崩溃,另外一方将永远不知道连接已经不可用了。检测连接是否丢失的方法大致有两种:keepalive和heart-beat。Keepalive是很多的TCP实现提供的一种机制,它原创 2011-05-14 16:23:00 · 11085 阅读 · 4 评论 -
U盘安装UbuntuServer_adm64_10.04
没啥技术含量,可是也折腾得我抓狂。用U盘安装ubuntu,如果是desktop版本,简单。可是安装Ubuntu Server amd64 10.04版就出问题了(貌似这个问题在所有Ubuntu server的安装中都会出现...)。网上找了一堆解决办法,总算试着一个有效的。步骤:1. Windows下格式化好U盘,准备好相应的iso文件(我的是ubuntu-10.04.2-server-amd64.iso)。2. 使用Unetbootin将iso文件安装到U盘上。详细步骤可见http://u原创 2011-03-03 10:13:00 · 5541 阅读 · 1 评论 -
epoll“传说中”的性能
<br />注意,题目不是“传说中”的epoll。epoll我亲自用过,自然不是传说,但下文中的性能分析,皆为道听途说,并不是亲自做的实验。<br /><br />这年头做网络并发模型的,如果说没用过epoll,八成是要遭人鄙视的。那么,epoll的性能到底有多好?<br />先看下面这张图, link:http://www.xmailserver.org/linux-patches/nio-improve.html<br /><br />但凡学过epoll的人都看过这样类似的图。图的纵轴是每秒的h原创 2010-08-23 23:05:00 · 4840 阅读 · 0 评论 -
IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
<br />当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。<br />《 IO - 同步,异步,阻塞,非阻塞》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到有位博友问了一个问题,我重新查阅了一些更权威的资料,才发现原来的文章中有很大的理论错原创 2010-07-31 12:51:00 · 216649 阅读 · 164 评论 -
geohash: 一个实用的geocoding方法
<br /><br />这年头和location相关的应用越来越火。从foursquare的热闹程度就可见一般(什么,没听过foursquare….哥们,你out了)。和location有关的应用一般都包括一些共同的操作,最常见的一个,就是找附近的东东(餐馆,商店….)。<br />所以,这里就抛出了一个问题,怎样才能知道两个物体离得近呢?<br />我之前转过一篇blog,是关于用cellid进行定位的,当然,这种方法是在不得已的情况下才使用,比如得不到gps。这里,我们假设可以拿到两个物体的gps数原创 2010-06-01 00:10:00 · 4788 阅读 · 2 评论 -
网络编程之 keepalive
Normal 0 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4原创 2010-04-25 12:50:00 · 7111 阅读 · 0 评论 -
从U盘上安装ubuntu
找不到可以刻录的盘,所以尝试了一下用U盘安装ubuntu。基本步骤见下文。不过有个问题,我用这个方法可以安装ubuntu desktop,但是安装ubuntu server版本的时候就有问题。 1.fire your pc with the ubuntu live cd .2.When the system comes to its functional state from th原创 2010-03-25 09:32:00 · 1897 阅读 · 0 评论 -
Linux 应用程序32位 到 64位
碰到了一个问题,在32位机器上运转正常的程序在64位机器上会出错。所以找到了这篇关于移植的文章好好看了看。原帖地址: http://queniao.blog.51cto.com/10636/126564其实还有一个问题,就是在虚拟机上运转正常的程序在普通的多核机器上运转会出错,而且还是随机出错。其实原因在于在虚拟机上的多线程并发程序很难做到真正的并发,以后的开发应该注意到这转载 2010-03-25 09:44:00 · 3760 阅读 · 1 评论 -
C++ sstream的一个小bug(也算不上bug)
写了段程序,尝试用mysql的库去访问远程数据库。代码中用到了sstream: #include 结果诡异的错误出现了,对于“#include ”这条语句,编译器一个劲的报错:.....bits/sstream.tcc :112: error: expected unqualified-id before......... 想尽各种办法,就是找不到bug,我都有了改S原创 2010-03-15 18:43:00 · 2929 阅读 · 0 评论 -
从MVC架构到C++的多态实现
学习可以是一件很快乐的事,特别是当你发现以前所学的点点滴滴慢慢地能够串起来或者变成了一个环,这种感觉真好。这篇文章就这么来的。 从MVC架构开始说起吧。这两天系统了解了一下MVC架构的内容,主要参考于文献【1】。MVC在这几年应该被非常多的人所熟悉了,因为相当多的web框架采用的是这套架构,此外,早在MFC横行的年代,MFC所采用的document/view架构也是MVC架构的变种。包原创 2009-12-17 14:18:00 · 13934 阅读 · 4 评论 -
xtraDB
之前只听过InnoDB,是MySQL的标准配置。最近发现了一个叫xtraDB的东东,据说性能比InnoDB还强不少,尤其是在多核和大内存条件下。而且,据说xtraDB本身就是在InnoDB的基础上改的,所以全面兼容InnoDB。看了篇讲解安装的blog,直接就是将xtraDB的代码整个给替换到原来的InnoDB代码目录下。 以后有空可以研究下。主要的一篇文章: http://www.m原创 2010-01-28 09:42:00 · 1705 阅读 · 0 评论 -
libevent的一个小问题
很久没更新了,唉,我实在不算是一个话多的人... 最近在折腾libevent,用它做一些网络层的应用。libevent这个库挺棒的,但它最大的一个缺点就是资料太少,我在网上搜刮了半天也就是简单的几篇blog和它自己的mainpage,很多地方需要自己的摸索。昨天碰到一个问题: 需要调用event_del()函数来处理一批event,这些event中,有些event只是malloc了原创 2009-10-10 12:31:00 · 2008 阅读 · 0 评论 -
RabbitMQ的安装,配置,监控
上一篇提到了用MongoDB的郁闷,这一篇博客则是尝试了另外一个新东西 - RabbitMQ 的结果。所不同的是,RabbitMQ给我的感觉很棒。强力推荐!安装RabbitMQ是基于Erlang的,所以首先必须配置Erlang环境。从Erlang的官网 htt原创 2011-09-27 22:27:08 · 119439 阅读 · 5 评论