在"3.fastcgi.fastcgi++"中,我们了解了cgi,也尝试了fastcgi++,这里,再记录一种对fastcgi的封装. 1.cgi接口层    request_t 请求,提供get.set.get_path.get_remote_ip    response_t 应答,提供set_content_type.write    cgi_handler_t int handle(request_t & req, response_t & resp)    fr…
在"21.一个cgi的c++封装"中,我们封装了cgi,在这之上,我们可以再来封装一个webapi的framework.当然,前文的Casablanca是个不错的选择,但是它比较庞大,而且缺少一些业务上需要的功能. Web API应用架构设计分析(1) - 伍华聪 - 博客园http://www.cnblogs.com/wuhuacong/p/4614875.html 面向对象的WebAPI框架XXL-HEX - 许雪里 - 博客园http://www.cnblogs.com/xuxu…
提到http server,一般用到的都是Apache和nginx这样的成熟软件,但是,有的情况下,我们也许也会用一些非常轻量级的http server.http server的c++轻量级实现里,Mongoose和tinyhttpd这两个比较有名,而且很有参考价值. Mongoose只有一个.h一个.c,而且能够很好的跨平台.在工作中,有过Mongoose运用在PC软件和android app的实践,效果也还可以. cesanta/mongoose: Mongoose Embedded Web…
实际工作的Protocol Buffer使用经验 # 写proto文件- 协议版本 项目用的是protobuf2,所以要指定 syntax = "proto2";- 包名 package xxx_yyy;- 优化选项 option optimize_for=LITE_RUNTIME;- 导入其它依赖的proto import "typea.proto";- message定义    - required定义必选    - repeated定义重复项,底层实现一般是l…
gosuri/uiprogress: A go library to render progress bars in terminal applicationshttps://github.com/gosuri/uiprogress 依赖go-isatty,用于判断程序是在什么终端运行https://github.com/mattn/go-isatty 依赖uilive,提供一个定时刷新的命令行输出https://github.com/gosuri/uilive uiprogress.Start…
Redis数据类型之LIST类型 - Web程序猿 - 博客频道 - CSDN.NEThttp://blog.csdn.net/thinkercode/article/details/46565051 Redis的list是一个双向链表,应用场景很多,比如微博的关注列表,粉丝列表等都可以用Redis的list结构来实现:博客实现中,可为每篇日志设置一个list,在该list中推入进博客评论:也可以使用Redis list实现消息队列. # list命令- LPUSH/RPUSH    - LPU…
理解RESTful架构 - 阮一峰的网络日志http://www.ruanyifeng.com/blog/2011/09/restful.html RESTful API 设计指南 - 阮一峰的网络日志http://www.ruanyifeng.com/blog/2014/05/restful_api.html RESTful API 设计最佳实践-CSDN.NEThttp://www.csdn.net/article/2013-06-13/2815744-RESTful-API Microso…
Zookeeper是hadoop的一个子项目,提供分布式应用程序协调服务. Apache ZooKeeper - Homehttps://zookeeper.apache.org/ zookeeper原理(转) - 翻过这座山,就到菩提洞了 - ITeye技术网站http://cailin.iteye.com/blog/2014486/ zookeeper场景 - 翻过这座山,就到菩提洞了 - ITeye技术网站(ZooKeeper典型应用场景一览)http://cailin.iteye.com…
go自带json处理库,位于encoding/json,里面的test很具参考意义,特别是example_test.go json - The Go Programming Languagehttps://golang.org/pkg/encoding/json/ GO语言练习:构建json 和 解析JSON 实例 - fengbohello - 博客园http://www.cnblogs.com/fengbohello/p/4665883.html - Marshal    - 字符串将以UT…
一个朋友写的日志库 https://github.com/vizee/echo go get -u -v github.com/vizee/echo package main import (     "errors"     "os"     "github.com/vizee/echo" ) func main() {     echo.SetOutput(os.Stdout)     echo.SetLevel(echo.DebugLeve…
正如Redis似乎是为替换memcached一样,SSSB是一个国人开发的旨在替换Redis的kv数据库. SSDB - 高性能的支持丰富数据结构的 NoSQL 数据库, 替代 Redishttp://ssdb.io/zh_cn/ idea's blog - SSDBhttp://www.ideawu.net/blog/category/ssdb Redis 的竞争对手 SSDB是否真的能替代Redis呢? - SDK.CN - 中国领先的开发者服务平台https://sdk.cn/news/2…
memcached - a distributed memory object caching systemhttp://memcached.org/ Memcached 教程 | 菜鸟教程http://www.runoob.com/Memcached/Memcached-tutorial.html memcached完全剖析–1. memcached的基础_知识库_博客园http://kb.cnblogs.com/page/42731/ 缓存技术PK:选择Memcached还是Redis?-I…
Hadoop的核心是HDFS和MapReduce,而两者只是理论基础,不是具体可使用的高级应用,Hadoop旗下有很多经典子项目,比如HBase.Hive等,这些都是基于HDFS和MapReduce发展出来的.Hadoop Distributed File System,简称HDFS,是一个分布式文件系统.MapReduce是一套从海量源数据提取分析元素最后返回结果集的编程模型.Hadoop典型应用有:搜索.日志处理.推荐系统.数据分析.视频图像分析.数据保存等. 什么是HDFS及HDFS架构设…
Sentinel - Redis 命令参考http://doc.redisfans.com/topic/sentinel.html#sentinel-api Guidelines for Redis clients with support for Redis Sentinel – Redishttps://redis.io/topics/sentinel-clients Redis的哨兵模式可以监控多个Redis实例,当一个master不能正常工作时, Sentinel 会开始一次自动故障迁移…
在提供api给其它应用使用时,有时我们会要限制它的跨域使用,而有时,我们又要用CORS来打破AJAX只能同源使用的限制 跨域资源共享 CORS 详解 - 阮一峰的网络日志http://www.ruanyifeng.com/blog/2016/04/cors.html 总结:1.浏览器发出CORS请求,即在访问时http头里增加一个Origin字段2.服务端判断Origin,然后在返回的http头里增加Access-Control-Allow-Origin.Access-Control-Allow…
Akkahttp://akka.io/ Akka 是一个用 Scala 编写的库,用于简化编写容错的.高可伸缩性的 Java 和 Scala 的 Actor 模型应用,是一个广泛运用的分布式应用框架. Hello,Akka - 梦想风暴 - 博客大巴http://www.blogbus.com/dreamhead-logs/235916459.html 分布式应用框架Akka快速入门 - jmppok的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/jmppok…
Apache Kafkahttp://kafka.apache.org/ Kafka,很容易就联想到<海边的卡夫卡>,文艺程度和Casablanca有得一拼.Kafka是一个分布式消息系统, Apache Kafka:下一代分布式消息系统http://www.infoq.com/cn/articles/apache-kafka 基本概念:    - Topic 主题,表示消息的分类    - Producer 消息的生存者    - Consumer 消息的消费者    - Broker 消息…
google/protobuf: Protocol Buffers - Google's data interchange formathttps://github.com/google/protobuf Protocol Buffer,简称protobuf,是谷歌出品的一个序列化库,用于在不同系统.模块.语言间交换数据. Google Protocol Buffer 的使用和原理http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.…
有了webapi,对应的,也就要有各种语言的sdk,有时候,还要有一个好用的api测试工具.sdk和api测试工具在功能上有一些异同,有时候测试工具会直接基于sdk来制作. 它们通常包含: 1.http通信底层功能封装有些语言或系统,本身http的库不够好,所以会用一些第三方库.c++一般用curl,java(android)可能用Volley.在这之上,通常再封装出一个HttpClient,提供同步异步的GET和POST功能. 2.OAuth功能有些帐号关联的sdk,会提供OAuth的封装.…
Apache Thrift是Facebook实现的一个高效的.支持多种编程语言的远程服务调用(RPC)框架. Apache Thrift - Homehttp://thrift.apache.org/ centos上安装thrift - 辰羽的视界http://www.1207.me/archives/301.html Apache Thrift - C++http://thrift.apache.org/tutorial/cpp Apache Thrift - 可伸缩的跨语言服务开发框架htt…
访谈与书评:<LogStash,使日志管理更简单>http://www.infoq.com/cn/articles/review-the-logstash-book/ [Logstash]使用详解 - xingoo - 博客园http://www.cnblogs.com/xing901022/p/4802822.html 分布式日志收集之Logstash 笔记(一) - 三劫散仙 - 博客频道 - CSDN.NEThttp://blog.csdn.net/u010454030/article/…
信息论的熵 - guisu,程序人生. 逆水行舟,不进则退. - 博客频道 - CSDN.NEThttp://blog.csdn.net/hguisu/article/details/27305435 熵(entropy)的计算公式如下:H_x=-\sum_{i=1}^{n}p(x_i)\log_{2}{p(x_i)} <机器学习实战>基于信息论的三种决策树算法(ID3,C4.5,CART) - Thinkgamer博客 - 博客频道 - CSDN.NEThttp://blog.csdn.ne…
NumPy - NumPyhttp://www.numpy.org/ NumPy-快速处理数据 - 用Python做科学计算http://old.sebug.net/paper/books/scipydoc/numpy_intro.html NumPy弥补了python的list性能不足.array不支持多维而且没有运算函数这两个缺点. ndarray(N-dimensional array object)1.支持多维2.通过shape和reshape来获取和修改数组的每个轴的大小3.有aran…
尝试一些用KNN来做数字识别,测试数据来自:MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burgeshttp://yann.lecun.com/exdb/mnist/ 1.数据将位图转为向量(数组),k尝试取值3-15,距离计算采用欧式距离.d(x,y)=\sqrt{\sum_{i=1}^{n}(x_i-y_i)^2} 2.测试调整k的取值和基础样本数量,测试得出k取值对识别正确率的影响,以及分类识…
直接写shell固然也很好,但是用python来写脚本,也是美滋滋.fabric是一个封装部署.多机操作等功能的python库. Welcome to Fabric! - Fabric documentationhttp://www.fabfile.org/index.html sudo yum -y install epel-releasesudo yum -y install python-pippip install --upgrade pippip install fabric Pyth…
record_t包含_sum._count._time_stamp._max._min最基础的一条记录,可以用来记录最大值.最小值.计数.总和metric_t含有RECORD_NUM(6)份record_t,当metric_t::add调用时更新record_t的内容 metric_t包含_name._records[6]._sample_vals[500]._threshold_rate._cursor._operation._cur_time_stampmonitor_data_t含有MET…
CGI与FastCGI - wanghetao - 博客园http://www.cnblogs.com/wanghetao/p/3934350.html eddic/fastcgipp: A C++ FastCGI and Web development platform:https://github.com/eddic/fastcgipp fastcgi++: Main Pagehttp://isatec.ca/fastcgipp/ 分布式(1):nginx+spawn-fcgi+fchi +…
daviddengcn/go-colortext: Change the color of console text.https://github.com/daviddengcn/go-colortext dixonwille/wlog: A simple logging interface that supports cross-platform color and concurrency.https://github.com/dixonwille/wlog package main impo…
package分包.import导入包import . "package1"  省略前缀包名import p1 "package1" 起别名import _ "package1" 执行包里的init函数 golang之package - Go语言中文网 - Golang中文社区http://studygolang.com/articles/5831 Go:如何组织代码 - 幸福框架 - 博客园http://www.cnblogs.com/happ…
redigo有点像hiredis,只提供了最基本的连接和执行命令接口. 找到个不错的redis库: https://github.com/go-redis/redis func ExampleNewClient() {     client := redis.NewClient(&redis.Options{         Addr:     "localhost:6379",         Password: "", // no password se…