自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(22)
  • 收藏
  • 关注

原创 开源 MYSQL 水平分库 代理

本项目尝试解决单台mysql服务器的性能瓶颈。作为客户端和后端mysql数据库集群间的一个中间层,负责对后端库表做水平sharding处理,以及对客户端请求及后端返回结果集做拦截处理。这个过程对客户端完全透明。本项目已开源:http://github.com/oun111/myproxy

2017-12-07 09:57:22 220

原创 开源 SQL 语法转换 中间件

开源了一个中间件项目,用于 ORACLE -> MYSQL 的SQL 语法转换,以及数据库访问。就是说你可以拿一种你熟悉的SQL去访问另一种你不熟悉的数据库,目前支持 ORACLE -> MYSQL 。 http://github.com/oun111/zas/

2017-12-07 09:53:47 1576

原创 windows下硬盘安装ubuntu7.10

从硬盘安装ubuntu7.10有几个地方很容易被忽略,分列如下:1、ubuntu 7.10 有几种安装方式:光驱直接安装:这个比较简单,光盘塞进去按提示进行;用硬盘安装映像:从 http://releases.ubuntu.com/releases/.pool/ubuntu-7.10-alternate-i386.iso 获取安装映像(注意这个是专用于硬盘安装的那种iso),然后从网上下载专用的内

2007-12-31 16:17:00 1535

原创 编译研究7——数据类型、边界对齐和可变长运行时堆栈

1、 当前编译器支持若干种数据类型,分别是:      名称                     长度(字节)        位长  short_int                         1                           8       int                               2                  

2007-11-18 23:23:00 387

原创 编译研究6——参数传递

当前编译器支持函数调用的参数传递。传值方式是实参列表从左至右,具体是从左至右扫描实参列表并按照相同顺序压入运行时堆栈,由于堆栈的后进先出原则,因此在目标过程开始时出栈顺序是相反的,即从实参列表的右边往左获得实参序列。这也是C的调用顺序。当然也可以按照pascal的顺序,即从源码扫描参数序列的顺序可以不变,也是从左往右扫描并读入内存容器中,但在压栈实参时,应该从该容器末尾开始压栈,即从实参列

2007-08-26 18:19:00 342

原创 编译研究5——与或运算

当前编译器支持与或运算,为减少代码量,加快运算速度,必须选择简单有效途径判断左右操作数:1、与运算:通过相乘左右操作数并判断结果是否为0,得知操作数中是否含有0。只有都不为0,与运算结果才为1,其他情况都为0。2、或运算:左右操作数相乘并判断是否为0,非0表明一定不含0,结果为1;为0再比较左右操作数是否相等,不相等表示有一个非0,则结果也为1;若左右相同,表明都为0,则运

2007-08-26 18:09:00 356

转载 [转]Ubuntu快速设置指南

原文出处:ubuntu.org.cn原文作者:Oneleaf fideas授权许可: 创作共享协议 前言 最新修改部份: 增加"fcitx使用细节",用于收集fcitx使用小技巧2007-06-12。 因为中间部分包没有相应的AMD64和PPC的对应包,因此会出现找不到该包的情况。如果你是属于这样的系统,请到

2007-07-19 12:56:00 1703

原创 编译研究(4)——变量定义再讨论

1、当前编译器支持任何分支内定义同名变量,例如:  if(1)       int n=10 ;  endi  if(2)        int n=1 ;  endi  if(2)     if(n1>3)     int n=11 ;     endi     else     if(n1)      n=1 ;      int n=90 ;     endi     ende  e

2007-07-11 22:23:00 382

原创 编译研究(3)——同名变量定义

今天在处理变量时发现了一个问题:对于不同函数中定义的同名变量,在源代码中,我原来只是简单根据变量名称进行区分,由于作用范围不同,所在符号表不同,因为虽然同名但互不影响;但这样的方法用在中间代码中就会出问题。例如中间代码使用同一个列表处理所有变量,并只是简单根据变量名称来在这个列表中索引变量的值,因此同名变量会重叠,并相互影响。为此参考了vc生成的汇编代码,发现它对变量的引用都是把变量名称和基址

2007-07-01 22:51:00 452

原创 编译研究(2)——关于函数重定义的处理

关于函数重定义的处理。今天由于解决了“没有调用的函数不生成代码”和“函数前向定义”bug,又重新引入了过去已经解决的“函数重定义”bug。关于函数重定义,我下的定义是,只要所定义的1个以上的函数的名称相同,都认为是重定义(暂不考虑以形参区分)。由于在检查函数是否重定义时,会先扫描一个全局函数列表,例如,函数test1重定义,扫描第一个定义时,编译器并不知道存在重定义,于是把函数信息写入全局列表

2007-07-01 14:46:00 666

原创 编译研究(1)——函数前向定义

    一年前写了个小型编译器,很久没碰,觉得蛮可惜的,于是从上个月开始又搬出来,利用业余时间改改bug,增加一些新功能 ,倒也比过去强壮实用了不少。今天想把过程调用放到表达式中去,让其返回值也参加运算。想着没什么难度,就开始了。谁知忽略了很重要的一样内容,因为在表达式中要对所有操作数做类型检查,对过程返回值,由于有的过程可能在调用函数(caller)后面定义,就是说被调用函数(callee)子树

2007-06-24 18:04:00 421

转载 [转] GDB的详细用法

文章转自: http://blog.csdn.net/liwei_cmg/archive/2006/07/24/967657.aspx 感谢草木瓜前辈找来这篇如此有技术含量的文章!GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个

2007-06-13 14:12:00 490

原创 C++模板应用——在类模板实现中引用其内部定义的复合数据类型

       假设有以下类模板定义:// Test.htemplateclass T>class Test...{   public:       struct TS       ...{           int j ;       } ;   public:       TS* test1() ;} ;        注意,模板Test内还包含了类TS的定义。

2007-06-09 00:50:00 660

原创 C++模板应用——让模板定义和实现分离的方法

关于c++中类的模板 ,惯常的用法都是把实现和定义放在头文件里了事。这样的问题是,加大了头文件的长度,减低了模板代码的可读性,还有就是破坏了面向对象的隐藏实现的规则。下面就是这种问题的两个解决方案的总结(取自codeproject http://www.codeproject.com/cpp/templatesourceorg.asp):假设模板代码如下:// 模板定义 a.h#inc

2007-06-06 17:03:00 1414 1

翻译 揭示win32 api拦截细节

  原文出处:http://www.codeproject.com/system/hooksys.asp    拦截win32 API 调用对于多数windows开发人员来说都一直是很有挑战性的课题,我承认,这也是我感兴趣的一个课题。钩子机制就是用一种底层技术控制特定代码段的执行,它同时提供了一种直观的方法,很容易就能改变操作系统的行为,而并不需要涉及到代码。这跟一些第三方产品类似。   

2007-02-11 19:20:00 1168

原创 关于同网段数据传输的一些粗浅想法

    前年开发过一个局域网内的数据传输软件,觉得问题不少,在此随便罗列某些改进的想法:1。封装多线程api,尽量减少主类体积。为了能够跨平台,应该设计一个架构,使得关于sdk的部分能够在不同平台做到很容易切换。2。为了提高文件传输的效率,最好使用文件智能分块传输,这个智能部分提供一个决策算法,决定如何切割这个文件,应该封装起来。3。作为试验的目的,可以把多线程传输机制换成多人共享数据

2006-02-12 01:02:00 740

原创 一个小型编译器

        最近心血来潮写了一个小型编译器,同时设计了一种小型的高级语言,支持字符型和整型两种变量类型,支持函数,支持条件语句,循环语句等某些高级语言共有的特性;并设计了一种简单的汇编语言,编译器通过扫描源文件,产生这种相应的汇编代码。最后虚拟机执行这种中间代码,显示程序运行结果。 因为自己的底子本来就不好,加之是第一次写没什么经验,编译器和虚拟机的缺陷很多,代码也写得不好。例如,支持的语言特

2005-11-25 23:57:00 1630

原创 好书一本——链接器和装载器

现在绝大部分编译原理著作中都缺少的编译器工作流程的重要一环——链接器和装载器。粗略翻看了目录,发现这本书讲解的内容的确非常详细独到,本人才疏学浅,只能用一句话描述:在连接器和装载器这一块,只有我们想不到的,没有他讲解不到的。我想,能够理解书中大部分内容,多加实践,并坚持一段时间,写一个linker 或 loader是很有可能的。还有,听说vc, gcc 等编译器的linker 和 loader

2005-10-01 16:51:00 916

原创 初识国产DBMS

今天抱着支持民族软件产业的心态下载了几个国产的数据库管理系统来试用。感觉只有一个:not so bad。。。 今天才知道,国产DBMS厂家主要有这几个:华工达梦,人大金仓,神州OSCAR,东软OPENBASE,北京国信贝斯iBASE。民族力量要壮大了,呵呵。 装了达梦和金仓。先装金仓。感觉进度很快,跟我装超星阅读器差不多,有点简陋的感觉。完成后开了服务器,然后准备用客户端连接,谁知总是报密

2005-08-19 19:49:00 1795 2

原创 vc6内联汇编 VS win32汇编——把我弄糊涂了

    一段简单的汇编代码如下:     push MB_OK     lea eax, scCaption     push eax     lea eax, scText     push eax     push 0     call dword ptr [MessageBox]     ;在win32汇编中为了结束程序,还要加上 invoke ExitProcess, 0      lea

2005-05-20 11:17:00 1065

原创 win32汇编中 ExitProcess() 的作用

最近学win32汇编,写了一个很简单的程序,作用是程序运行的时候弹出一个对话框,代码大致如下:.const    scText db messagebox, 0    scCaption db caption, 0    .code    start:  push MB_OK  mov  ecx, offset scCaption  push ecx  mov  ecx, offs

2005-05-16 20:06:00 1563

原创 [转]写给所有的IT民工们

oun:前几天看了这篇文章,给我不小的震撼,也给我这个准备加入民工团体的初生牛犊上了一堂深刻的课。从来没有想过自己会加入这一行,从开始自己喜欢的专业通讯,到后来喜欢的管理,想过是专业高手,幻想过管理专家,却从来没有想过进入这一行,但真的在我刚刚离开校园的时候发生了,短短几天,对这个行业有了一个感性认识,其实最让自己伤感的不是自己没有干这一行的经验

2005-04-17 20:35:00 470

空空如也

空空如也

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

TA关注的人

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