自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (10)
  • 收藏
  • 关注

原创 由erlang的递归理解数组的全排列问题

数组或字符串的全排列是一个比较常见的面试题。例如“abc”=>abc, acb, bac, bca, cab, cba六种。上面我的写法是将首字符在【a,b,c】中循环使用,固定了首字符,次字符在【a,b,c】 - 【{首字符}】中循环,第三位依次推到。看下erlang的递归实现module(lib_misc).-export([perms/1]).per

2013-07-25 10:31:57 2946

原创 erlang 的快排递归

看了erlang编程快两遍了,最近工作交接任务完成了,顺便再看下erlang,虽然以后不知道能不能用到这门语言,我却被他的设计哲学所折服。看下erlang递归实现快排的代码,十分精简。-module(lib_misc).-export([qsort/1]).qsort([]) -> [];qsort([Pivot|T]) -> qsort([X|| X <

2013-07-25 10:15:33 2376

原创 hbase权威指南阅读随手笔记二之过滤器

base过滤器的比较操作符:LESS  LESS_OR_EQUAL EQUAL =NOT_EQUAL GREATER_OR_EQUAL >=GREATER >NO_OP no operation比较器:BinaryComparator  按字节索引顺序比较指定字节数组,采用Bytes.compareTo(byte[])

2012-12-04 23:19:11 10707 3

原创 hbase权威指南阅读随手笔记<1>

1、关于delete marker的问题。(p24)hbase的delete命令,并不是真的删除了文件,而是设置一个标记(delete marker)。用户在检索数据的时候,会过滤掉这些标示的数据。HBase的删除标记有三种:1. version delete marker 删除指定version的某个qualifier对应的value2. column del

2012-11-30 17:57:27 3924 1

转载 maven导入本地jar包

mvn install:install-file -DgroupId=com.googlecode.javapns -DartifactId=javaPNS -Dversion=2.2 -Dfile=/home/saint/mycode/javapns2-2/JavaPNS_2.2.jar -Dpackaging=jar -DgeneratePom=true

2012-03-14 17:17:19 3204

原创 Ruby 解析rss源

针对一些是gb2312编码的文章。require 'rubygems'require "mysql2"require 'logger'require 'json'__DIR__ = File.dirname(__FILE__)$LOAD_PATH.unshift __DIR__ unless $LOAD_PATH.include?(__DIR__) || $L

2012-02-20 22:25:44 2480

转载 mysql binlog event类型

http://forge.mysql.com/wiki/MySQL_Internals_Binary_Log#Event_Data_for_Specific_Event_TypesThe following descriptions briefly summarize the meaning of each event type:UNKNOWN_EVENTThis

2011-10-26 12:31:36 3071

原创 apt-get的文件地址

/var/lib/dpkg/status

2011-10-19 19:06:58 1774

原创 redis的pre-sharding(预分布式)

<br />       最近的项目进度比较紧,同步了几个项目,很少做总结,特别喜欢在github上review代码,字体很好,也很清晰。这个项目是实现redis的分布式设计的,之前的一个版本是按照http://www.ooso.net/archives/549的light cloud的原理实现的,并对get,set做了hset,hget的改进,使得占内存2.4g的key降低到了700M。不过经过每次查询都要经过两次IO,实在是浪费,实测简单的set,get只能达到4000k/s左右,实在是低下。<br

2011-04-12 01:24:00 8188 1

原创 lighttpd + fastdfs + imagemagick实现的图片缩放图的分布式存储

        主要解决动态的实现订制缩略图的大小服务,同时提供正常的图片获取服务,采用fastdfs分布式存储,同时采用lightttpd作为应用服务器,前端的web服务器可以用nginx或者apache做web服务器,我写了mod_fastdfs作为lighttpd的fastdfs的模块,模块内集成了imagemagick,可以通过文件名加上高度,和宽度的组合来获取不能尺寸的图片。例如:http://124.126.42.12:8000/group1/M00/00/0D/2-vktU2i8waqcckq

2011-04-12 01:01:00 9558 2

原创 我的开源项目地址-memagent

https://github.com/wangmh/memagentmemagent是基于http://code.google.com/p/memagent/来实现的。根据自己的应用做了如下的改动:1、修正了内存泄露的bug2、修正了ketama一致性hash算法的bug3、实现了不停掉memagent,平滑修改配置文件,修改后端的memcached4、修正了当代理的后端服务器down掉的时候,前端阻塞的问题。-------------------------------------------------

2011-03-23 19:57:00 2858 2

转载 C语言中如何使用宏 包括单双井号 可变参数

C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关 于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏 变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP) /do{ if (EXP) /fprintf(stderr, "Warning: " #EXP "/n");

2011-03-02 19:07:00 1998

原创 fedora13 的安装指导

<br />http://www.mjmwired.net/resources/mjm-fedora-f13.html<br /> 

2011-03-02 15:41:00 1783

原创 关于memagent的一个bug

<br />    前几天介绍的mqagent是为memcaheq服务的,写完第二版的蜡笔连接业务后,通过检测memcacheq的队列,发现后端的两台memcacheq的比例严重失调,其中一个都达到了20166355/20166355,而另一个却只有40697/40697。比例500:1.<br />    虽然memagent中使用了ketama的一致性hash算法,比例却如此失调,看来ketama算法的实现上出现了问题。通过研究一致性hash算法,分别针对libketama库,和memagent自身实现

2011-02-28 02:25:00 2818

原创 redis的数据库设计

<br />http://labs.alcacoop.it/doku.php?id=articles:redis_land

2011-02-23 23:51:00 2272

原创 Mqagent-1.0说明文档

1       Mqagent的用途Mqagent是为了适应分布式memcachq的需求,在magent基础上进行二次开发形成,因为其时专门为memcacheq服务的,因此我命名为mqagent。其作为代理层,隔离了开发者和后端的多个memcachq server,使得后端对开发者透明,开发人员只需要和代理层,依据memcache的协议进行消息队列的get/set操作即可。2       Mqagent使用流程1、开发者申请一个消息队列名称,例如msg_deliver_email, 该消息队列主要用

2011-02-09 15:32:00 2779

原创 glib的升级

<br />在写蜡笔链接业务的时候和mecacheq的分布式的时候都用到了glib库的hashtable数据结构, 使用了遍历其中所有的键值g_hash_table_get_keys()函数,该函数是glib2.12以后才支持, 服务器上的是glib2.6,版本比较低了,所以打算升级下, wget http://ftp.gnome.org/pub/GNOME/sources/glib/2.26/glib-2.26.1.tar.gztar xvzf glib-2.26.1.tar.gz cd glib

2011-01-17 16:06:00 4782

原创 strtok_r需要注意的地方

年底了,需要交个demo了,上个星期4天完成了2400+行c代码,包括周五到测试,感觉很有成就感,不过还是觉得c太过于研发性了,数据结构都要自己去实现。在项目中,分割字符串,使用了strtok_r函数,该函数主要是分割字符串使用的。例如我想切分 字符串“hello world/wangmh” 根据里面到空格和/分割字符串,分割出到结果应该为 hello worldwangmh上

2011-01-11 13:02:00 9163 3

原创 Linux 多线程应用中如何编写安全的信号处理函数

<br />http://www.ibm.com/developerworks/cn/linux/l-cn-signalsec/

2011-01-10 20:33:00 2113

转载 说说技术型创业团队的技术选型

<br /><br />看到微博上《程序员杂志》在征集"一分钟先生"的话题:如何做好公司/团队的技术选型?其实大公司或者大一点的团队选型几乎不需要太多讨论的 -- 最后会不可避免的绕到技术官僚的话题上去。这里我想简单说说技术型创业团队技术上的选型问题。<br />拥抱开源技术<br />如果只能选择微软的技术路线,比如团队几个人只会用微软的技术做开发,甚至也不想学别的,那么似乎没有别的办法,将就一下吧。如果还有的选择,尽量选择使用开源技术。这样的好处是你不但可以有效的降低软硬件成本,还有更多的部署方案供选择

2011-01-06 11:25:00 2127

原创 蜡笔连接设计之 预处理器及分布式redis

<br /><br /> <br />    分布式消息队列采用memcacheq + magent来实现,预处理器主要实现获取消息队列的任务(消息),并做预处理分析,然后存储到redis中去,其中主线程负责读取队列,子线程负责处理队列,每个工作线程维持了自己的一个工作队列,主线程负责将消息hash后插入到对应的工作队列中去,redis的分布式是借鉴了lightcloud的实现,因为lightcloud是python语言的,不得不重写一个c语言的。<br /> <br /> <br /> 

2010-12-22 19:28:00 1221

转载 GNU C 扩展之__attribute__ 机制简介

<br />摘要:<br />    在学习linux内核代码及一些开源软件的源码(如:DirectFB),经常可以看到有关__attribute__的相关使用。本文结合自己的学习经历,较为详细的介绍了__attribute__相关语法及其使用。<br /><br />----------------------------------------------------------------<br />声明:<br />    此文为原创,欢迎转载,转载请保留如下信息<br />   

2010-12-20 15:02:00 587

原创 libmemcached初探

     最近要使用memcacheq作为消息队列,想找下memcacheq的c的客户端库,后来一想,既然memcacheq本身是支持memcache协议的,使用memcached的客户端的库应该就可以了。     惭愧的是,真没用编写过c对memcached的操作,以前只是简简单单的使用下ruby程序对客户端操作而已,不过ruby下的memcache客户端实在是简介,昨天很快就用ruby实现了我的应用的初级模型,可惜后台开发,效率还是很重要的。接下来昨天到今天上午一直再看libmemcached的库写了几

2010-12-16 15:06:00 4035 1

原创 rails应用在passenger + nginx服务器下使用proxy_cache及proxy_cache_purge模块的方法

    最近一直在研究mysql_proxy和spockproxy的源码,该写了spockproxy的代码,主要是为数据库的水平分布而开发的,第一阶段的任务已经完成了。今天下午完成了测试,顺便学习了c++。正好有时间看下nginx下如何使用proxy_cache及proxy_cache_purge模块。1、passenger的安装 gem install passenger。2、下载nginx,passenger目前集成的是nginx-0.8.53.     cd /opt/wget http://ng

2010-12-11 01:51:00 8261

转载 How to write a good build system ?

<br />原文地址:http://jan.kneschke.de/2007/12/22/how-to-write-a-good-build-system/<br />December 22nd, 2007<br />This is not a HOWTO, but more a RFC. I'm in the need for a portable, fast build-system. For lighttpd, for MySQL Proxy, ... <br />I need what au

2010-12-08 15:43:00 830

原创 hash_map的使用方法

#include#include#include#includeusing namespace std;using namespace __gnu_cxx;int main(){ typedef hash_map Mymap; Mymap mymap; mymap.insert(std::make_pair(1,"12121")); mymap.insert(std::make_pair(2,"wangmh"

2010-11-17 16:02:00 1281 1

原创 lua5.1 + c + linux

<br /> <br />      近段时间来看mysql proxy的源码,正好看了下libevent的源码,网上好像有了对libevent库的分析了,想在c中调用lua函数使用,在linux环境下使用,发现网上给的例子不是lua5.0的就是window下的。<br />#include <stdio.h>#include <string.h>#include "lua.h"#include "lauxlib.h"#include "lualib.h"int main(void)

2010-11-03 18:23:00 1173

原创 GIT和SVN之间的五个基本区别

<br />如果你在读这篇文章,说明你跟大多数开发者一样对GIT感兴趣,如果你还没有机会来试一试GIT,我想现在你就要了解它了。<br />GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。所以,这篇文章的主要目的就是通过介绍GIT能做什么、它和SVN在深层次上究竟有什么不同来帮助你认识它。<br />那好,这就开始吧…<br /> GIT是分布式的,SVN不是:<br />

2010-10-20 10:05:00 16525

转载 glib库,Linux平台下最常用的C语言函数

<br />glib库是Linux平台下最常用的C语言函数库,它具有很好的可移植性和实用性。<br />glib是Gtk +库和Gnome的基础。glib可以在多个平台下使用,比如Linux、Unix、Windows等。glib为许多标准的、常用的C语言结构提供了相应的替代物。<br />使用glib库的程序都应该包含glib的头文件glib.h。<br />########################### glib基本类型定义: ##############################<br /

2010-10-19 16:04:00 2595

原创 rails服务器处理并发调优

<br />背景:第五场展会开始后,并发量比较大,多次出现502错误。<br /><br />日志中出现了大量的如下错误:<br />1722317 connect() to unix:/tmp/passenger.19461/master/helper_server.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 192.168.10.107, server: www.fw

2010-09-17 20:00:00 3085 1

转载 黑客攻防之 SYN攻击基本原理与防范技术

<br />在所有黑客攻击事件中,SYN攻击是最常见又最容易被利用的一种攻击手法。相信很多人还记得2000年YAHOO网站遭受的攻击事例,当时黑客利用的就是简单而有效的SYN攻击,有些网络蠕虫病毒配合SYN攻击造成更大的破坏。本文介绍SYN攻击的基本原理、工具及检测方法,并全面探讨SYN攻击防范技术。<br />    一、TCP握手协议<br />    在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。<br />    第一次握手:建立连接时,客户端发送syn包

2010-09-16 16:14:00 752

原创 Ubuntu10.04中 安装配置JDK

<br />首先从SUN网站下载JDK<br />然后在shell中执行:<br />代码:<br />sudo chmod +x jdk-6u17-linux-i586.bin<br />修 改bin文件权限,使其可执行。<br />然后执行<br />代码:<br />jdk-6u17-linux-i586.bin<br />将 会出现字幕,持续按回车键,直到屏幕出现需要输入yes/no,此时输入yes/y 回车,将会把JDK解压到文件夹,得到jdk1.6.0_17.此时JDK安装完毕

2010-09-01 19:46:00 473

原创 web对mediaplayer的处理

<br />http://msdn.microsoft.com/en-us/library/dd562656(v=VS.85).aspx

2010-09-01 10:54:00 472

原创 ubuntu下 如何解决rubyEE安装后 ./script/console不能使用的问题

<br />sudo apt-get install libreadline-ruby1.8

2010-08-30 23:40:00 358

原创 hash转为查询的conditions

<br />class Hash def to_array_conditions [self.keys.map{|k| "#{k} = ?" }.join(" AND "), self.values].flatten endendtest "convert hash conditions to array conditions" do assert_equal ['city = ? AND country_code = ? AND state = ?', "Ad

2010-08-25 09:01:00 481

原创 Window下Rails环境搭建

<br />有兴趣的话,可以看下面的文章<br />http://wiki.github.com/rails-sqlserver/2000-2005-adapter/platform-installation-windows<br /> 不过,我不是按照这个进行搭架的。Windows + rails + odbc +mongrel + sqlserverRuby + Rails的安装。<br />1.        建议安装http://rubyforge.org/frs/download.php/71

2010-08-25 08:47:00 1807

原创 js 计时器 (timer)和钟表

记录一下,以防以后用到,搜罗自网络,兼容IE和Firefox。js 计时器 (timer)------------------------------------------------------------------------------------------------- Nonove js timer 计时器

2010-08-09 10:57:00 5313 1

原创 网上展会的项目

要离开了,有些东西是要总结的。

2010-07-21 21:13:00 1080

原创 rails代码自动部署之webistrano

webistrano 是 Capistrano的web版.webistrano的相关资料: http://github.com/peritor/webistranoCapistrano相关文档见  http://www.capify.org/index.php/Capistrano在centos上使用该工程遇到的问题, 当使用该工具部署的时候,一旦代码里有中文的文件名的时候,总是提示svn: Can't convert string from 'UTF-8' to native encoding:

2010-07-18 20:03:00 2982

原创 Linux操作系统下/etc/hosts文件配置方法

摘要:Linux 的/etc/hosts是配置ip地址和其对应主机名的文件,这里可以记录本机的或其他主机的ip及其对应主机名。不同的linux版本,这个配置文件也可能不同...标签:hosts文件 静态路由表 Linux 配置1、关于/etc/host,主机名和IP配置文件Hosts - The static table lookup for host name(主机名查询静态表)hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,以ASCII格式保

2010-07-15 19:34:00 866

netsuite工作流对比

1、Suiteflow简介 2、工作流管理器界面 3、工作流程元素 4、如何创建工作流程 5、Suiteflow 与 EBS Workflow 对比

2019-02-15

netsuite工作流向导

netsuite的工作流用户手册,中文版。 使用SuiteFs low在NetSuite中创建和执行工作流。在NetSuite中,工作流的定义是一个标准或自定义记录的自定义业务流程。业务流程可以包含事务处理审批、销售线索培养和记录管理。工作流定义业务流程并使其自动化。

2019-02-15

Birt报表内部培训资料

2016-07-13

BDD开发之rspec和cucumber

这是介绍BDD开发推荐的图书,今年3月份出的,作者基本已经完成了全部的内容了.

2010-06-25

ruby重构中文+英文

中文的前三章,ruby重构版,挺不错的.

2010-06-25

ruby重构中文+英文

英文的,中文的不要资源分,在后面有相应的.这里仅仅是英文的

2010-06-25

深入delphi6 网络编程

自己下了delphi6网络编程,看到csdn上的人老要分,本身来自网络,就分享下吧,本着自我开发的程序索要积分,网络上的,免费

2009-11-24

支持pascal Script编辑,运行,断点调试的IDE

持续更新,只是先做了个小的demo,后续继续更新,对于提示,联想代码的功能还没实现

2009-11-20

delphi 开发 代码行统计工具

本着开源共享的心态,前几天公司让练习编写一个代码行统计工具,要求识别delphi单元文件的代码行统计,空行不计,统计注释行,代码行,注释了,这里的代码行是指非纯注释行的行,有打开,追加,保存txt,关闭操作,支持鼠标右键,快捷键,单独打开工程文件的时候,可以自动寻找其包含的单元文件,识别绝对路径和相对路径。并且将工程文件和相关的单元文件在树形目录中采用父子节点直观显示

2009-07-31

delphi开发的access通信录

自己学习delphi的时候,公司培训开发的一个小作业,用到了数据库ado连接,TTreeview控件等。希望delphi入门学习的朋友们有所帮助,数据库我在程序中设置的是绝对路径,可以通过设置adoconnect,改成相对路径

2009-07-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除