- 浏览: 708089 次
- 性别:
- 来自: 北京
最新评论
-
葫芦瓢:
葫芦瓢 写道专注IT 写道请问楼主demo中为什么是Custo ...
Android Scroller简单用法 -
葫芦瓢:
专注IT 写道请问楼主demo中为什么是CustomView中 ...
Android Scroller简单用法 -
u011493452:
注册账号给楼主点赞!
Android Scroller简单用法 -
jiduoduo:
整理的不错!
Android文件存储 -
xiaofeng0817166:
http://deerchao.net/tutorials/r ...
Java正则表达式应用
文章列表
线程私有数据的使用场景是:某个函数在第一次被调用的时候,分配内存block,在以后每次调用的时候,都是用第一次所分配的内存block,无需再次分配。可以用线程私有数据来存储这个内存block。
在多线程环境下,如果不使用线程私有数据,由于函数只分配了一个block,所以各个线程在block上必然会有竞争。如果每个线程对这个block的使用是相互独立的,比如对errno的设置,就可以使用线程私有变量来避免竞争。
可以把线程私有变量看成是一种<key, value>类型的数据结构,对于同一个key,不同的线程可以有不同的value。Lin ...
Tornado是一个异步Python框架,最初由FriendFeed发起并开源,目前由Facebook维护,非常适合实时做Web应用。
Redis是一个NoSQL数据库,常用于做缓存系统,这里主要用到了它的Pub/Sub功能。即当一个用户发送一条消息时,所有的用户都会收到消息。
关于什么是Ajax长轮询(Comet)不再介绍
我是参照the5fire的一篇博客来组织项目源码的:http://www.the5fire.com/tornado-mvc-helloworld-2.html
当Tornado收到浏览器的消息时,将这条消息publish到Redi ...
默认的Solr没有中文分词功能,而Paoding则是能兼容Lucene的中文分词工具,但是目前Paoding的版本只能兼容lucene3。还好有大神已经给出了解决方法,参考:http://www.oschina.net/code/snippet_259382_14635,此方法兼容到Solr4.2.1。
但是直接使用的时候,会报NullPointer异常,需要修改一下文件,去掉toString(),src/net/paoding/analysis/ext/PaodingAnalyzerSolrFactory.java:
public void init(Map<S ...
先来看一下在Jetty里,什么是Context。在Jetty里Context是包含了在某一特定URL或Virtual Host下的一组Handler的Handler。可以这样理解,Context本身也是一种Handler,它里面包含了许多的Handler,这些Handler都只能处理某个特定URL下的请求。Jetty里的Context有ContextHandler,ServletContext和WebAppContext。这里主要学习一下WebAppContext。
先回忆一下war里面web.xml里面可能有什么东西,有Security,Session,Servle ...
一个Jetty Server可以看成由一下几部分组成,其中Connector负责接收客户端的HTTP请求,请求的处理是由Handler来完成的。在上一个例子中HelloHandler的作用就是处理用户请求,并输出结果。
Handler在Jetty中是一个非常重要的东西,Jetty内部实现了一些Handler,可以分为一下几类:
1.协调Handler:负责将request路由到其他Handler的Handler(如:HandlerConnection, ContextHandlerConnection)
2.过滤Handler:负 ...
Jetty的口号是:“不要把你的程序放到Jetty里,而是把Jetty部署到你的程序里”,也就是说可以把war包放到Jetty里(就像tomcat一样),也可以把Jetty当成程序的一个HTTP模块。
嵌入Jetty的使用方法是这样的,可以在maven中添加depency,然后就可以在Java程序中使用Jetty创建Web Server了,目前最新的Jetty版本是Jetty 9。
<!-- jetty dependecies -->
<dependency>
<groupId>org ...
由于Hadoop版本混乱多变,因此,Hadoop的版本选择问题一直令很多初级用户苦恼。本文总结了Apache Hadoop和Cloudera Hadoop的版本衍化过程,并给出了选择Hadoop版本的一些建议。
1. Apache Hadoop
1.1 Apache版本衍化
截至目前(2012年12月23日),Apache Hadoop版本分为两代,我们将第一代Hadoop称为Hadoop 1.0,第二代Hadoop称为Hadoop 2.0。第一代Hadoop包含三个大版本,分别是0.20.x,0.21.x和0.22.x,其中,0.20.x最后演化成1.0.x,变成了稳定版,而0.2 ...
转载过来,自己加工了一点点,留着参考吧:)
使用automake主要会用到aclocal、autoscan、autoconf、autoheader和automake这几个命令。首先简略的说一下用automake生成makefile的步骤:(1)创建源代码文件,使用”autoscan”生成configure.scan文件,将其重命名为configure.ac,并做适当修改,然后使用”aclocal”命令生成aclocal.m4文件,使用”autoconf”命令由configure.ac和aclocal.m4文件生成configure文件。(2)手工编辑Makefile.am文件,使用”a ...
Makefile中一个项由以下结构所组成:
target: dependency_files
command
比如,有两个文件hello.c,hello.h,创建的目标体为hello.o,执行命令是gcc -c hello.c,Makefile就可以这样写:
hello.o: hello.c hello.h
gcc -c hello.c
一个稍微复杂 ...
通过gcc编译时必须使用-g选项才能使用gdb调试
gcc -g hello.c -o hello
gdb的选项是非常多的,在gdb里,把命令按类划分,可以通过help xxx来查看相应的帮助
gdb>help #显示全部帮助的类
gdb>help running #显示运行的帮助
gdb>help breakpoints #查看断点相关的命令
使用示例:
$gdb hello #启动GDB
gdb >list #显示源代码
gdb >break 7 #在第7行设置断点
gdb >run #程序开始运行
gdb >displ ...
GCC 编译流程:
GCC在编译C/C++程序时,会经过一下4步
1.预处理
gcc -E hello.c -o hello.i
2.编译
gcc -S hello.i -o hello.s
3.汇编
gcc -c hello.s -o hello.o
4.链接
Android 4.1 (Jelly Bean) 增强了通知功能,在AndroidManifest.xml中可以为Activity添加属性android:parentActivityName="MainActivity",实现点击通知打开ResultActivity时,再按返回键,回到MainActivity,而不是回到之前的Task。只在4.1的机器上有效,在2.x的机器上和以前没有任何区别。
核心代码如下:
public void showNotification() {
NotificationCompat.Buil ...
这个资料分享主要分享的都是非学术的Paper,都来自商业公司,Google, YouTube, Amazon, LinkedIn等等。
我个人非常喜欢这些文章,基本上,这些文章描述的都是在系统中的实际能工作的东西。
这个是Google的一篇论文http://t.cn/zl0zxPZ这个里面有很多有意思的想法。
推荐的结果是三个算法的融合,即MinHash, PLSI, covisitation.
1. Python输出 http://www.pythonclub.org/python-basic/print
2.Python 输入 http://www.pythonclub.org/python-basic/raw-input ,http://www.pythonclub.org/python-basic/input
3.Python 动态类型 & 强类型 http://stackoverflow.com/questions/11328920/is-python-strongly-typed ,http://wiki.python.org/moin/Why%20i ...
这一篇,我们来试着安装Thrift,并运行Thrift自带的例子,以对Thrift有个感性的认识。
一、下载
从官网下载最新版:http://thrift.apache.org/,在写这篇博客的时候,最新版稳定版是0.8.0。官网给的有安装教程以及系统要求,可参照http://thrift.apache.org/docs/install/,上面有各种系统下的编译安装方法。由于我的系统是ubuntu,所以就把ubuntu下thrift的编译安装教程放到这里。
首先,在ubuntu上,系统需要需要有如下组件:
sudo apt-get install libboost ...