一个Go语言接口和多操作系统实现的简单例子
尽管不是纯的OO语言,Go仍然提供了interface接口的功能,能够非常轻松地实现抽象与具体实现的分离。另外,按照文件名格式匹配的模式,Go程序可以自动帮你加载符合当前操作系统的对应接口实现(分析了编译时的.a包,发现编译时候自动匹配,并只把符合当前操作系统的实现打包),不需要程序员在程序里面使用if-else或者switch去实现,还算比较省心。[@more@]下面的例子,首先定义一个接口 I。接口I只有两个public的方法:Get() 和 Put()。注意方法名首字母必须大写。具体代码如下://myservice.gopackage myinterfacetype I interface { Get()
Go语言调用dll动态链接库的简单例子
今天研究了AllenDang(博客:http://www.cnblogs.com/AllenDang) 写的gform(一个go语言的windows图形库),也顺便学习了如何调用window的dll库。这里用C写了一个简单的功能函数gcd,然后编译打包成dll库。最后,写了一个go的调用例子hello.go。hello.go里面加载dll库,并调用gcd函数获取返回结果。 注意:为了运行例子,需要已经安装好MinGW和go. [@more@]1、 C写的简单例子。/* File : example2.c */ /* Compute the greatest common divisor of positive integers */int gcd(int x, int y) { int g; g = y; while (x > 0) {
使用swig工具为go语言生成调用C、C++代码例子
swig开源项目(http://www.swig.org)为多种编程语言提供了相互访问的接口生成工具,这里面也包含了为go语言生成调用C、C++代码的功能。Go语言自带的cgo工具已经支持对C代码的调用,但对C++代码的支持确实不行,所以Go1已经把swig的C++这部分功能作为附带功能加入(参见Go源代码gomiscswig)。这样,C++这块的资源也可以被Go语言使用了。[@more@]1、为Go语言生成调用C语言的接口:根据swig的相关文档指导( http://www.swig.org/Doc2.0/Go.html#Go ),用swig自带的例子做测试。以下的例子都是在ubuntu12.04下测试完成的。例子来源swigwin
Go调用Java的一个简单例子
由于Java世界里有非常丰富的开源应用模型和轮子,而这些正是Go世界里面最缺乏的东西,所以我首先考虑的就是如何在Go里面调用现有的Java代码。早上写了个简单的Go调用Java的例子,在winxp环境下能够正常运行。这段代码比较简单,就是在Go代码里面去call一个叫Hello的java对象。而这个Hello .java功能也非常简单,就是接收一个参数,然后输出一行结果。调用的初始感觉还行,当然还需要后面做更复杂的案例测试。具体的代码如下:[@more@]// run_javapackage main import ( "fmt" "os/exec") /*** 调用一个Hello.class,并
模仿Go语言的Benchmark测试框架写了JAVA版的简化测试工具
为了更方便的进行JAVA和Go的性能对比,于是有了搞个和Go类似的Benchmark测试框架的念头。看了两天Go的Benchmark.go源代码,写了个JAVA版的简化Benchmark测试工具。目前仅仅支持测试指定的单个文件、指定的包和当前目录下的所有文件等3个功能。功能非常的简单,够我自己用了。这里下载性能测试框架的源代码:BenchmarkRunner.java[@more@]在阅读Go的源代码过程中,感觉Go的接口太灵活了,很多简化的写法,让不熟悉这种风格的人头大。一会是面向对象,一会又转成函数式编程,对从JAVA世界转过来的人来说,很不适应。在实现Benchmark工具的过
Go语言单元和性能测试的相关文档
为了帮助开发者对代码进行测试,Go语言也提供了相关的单元测试的基础框架。除此之外,Go语言还提供了简单的性能测试框架,给开发者提供了对比和改善算法的便利手段。Go语言的性能测试框架据说是参考了2002年JavaOne的《How NOT To Write A Microbenchmark》,它的基本测试机理是在一定时间内循环运行测试程序,并最终得出测试程序每次运行的平均时间。不仅如此,性能测试框架还支持输出用于性能调优用的了cpu和内存相关数据。从这方面看,我觉得要比Java、Scala好。[@more@]单元测试单元测试很重要,Go语言提供了相关的单元测试框架。允许
Go语言的开发环境配置的经验总结
在OSCHINA新搞了一个博客,但那里上传内容不方便,还是搬回来吧。传说go语言的最佳开发环境是苹果的XCODE,我测试的结果确实如此。需要用CGO编译带C代码的go程序的朋友,建议首选苹果的XCODE环境。Windows环境下配置CGO编译非常麻烦,因为Go的文档例子大多以UNIX为例子,所以有些C代码在windows下无法编译,需要修改代码。我用到的go语言版本是最新的发布版本go 1.0.2。下载地址:http://code.google.com/p/go/downloads/list[@more@]国人翻译的go官方安装文档的链接:http://code.google.com/p/golang-china/wiki/Install 。这个官方安装
回来了
在离开了技术领域 3年多后,重新回到技术领域,很多感触。3年多的时间,我跑去搞股票投资,总体收益还行。之所以重新回到技术领域,是因为感觉到中国经济正在从顶峰往下走,各类资产价格都面临着大幅下降的风险。因此,不打算继续搞投资了,还是回到自己喜欢的技术领域做点事情吧。 3年多的时光,技术领域冒出了不少新东西,够我折腾的了。感谢上帝,能做自己喜欢的事情就是一种幸福。[@more@]
Pentaho1.7GA不太兼容1.6GA
今天在开发Open Flash Chart的Pentaho插件时候,突然发现IPentahoResultSet 这个对象在1.7GA和1.6GA这两个版本里面的包名是不一样的。晕倒。为了同时支持两个版本,那就需要保留两套代码或者是在同一套代码里面添加更复杂的逻辑处理。希望Pentaho的核心代码早点稳定下来。[@more@]
Pentaho1.7GA版本发布了
昨天下了1.7GA的demo,发现加了几个小功能。感兴趣的朋友可以去下个看看。下载地址:http://sourceforge.net/project/showfiles.php?group_id=140317[@more@]
BIRT For Pentaho
最近和美国的一家公司合作,帮助他们开发一些插件和组件,以便能在Pentaho平台更好的使用BIRT。最近都在忙这个事情。据老美说,这些代码将来可能会开源。[@more@]
使用Birt2.2制作报表并部署到Pentaho1.7平台(二)
接着上一篇《使用Birt2.2制作报表并部署到Pentaho1.7平台(一)》,开始对sampleMysql.xaction进行具体配置。[@more@]在“Define Process”里面,如上图点击“BIRT”,给“Process Actions”添加一个BIRT功能。在BIRT功能界面上,我们需要指定相关的报表文件。点击“Browse”打开文件选择菜单。如下图在文件选择窗口里,选择我们的报表文件sample.rptdesign。然后点击“打开”。选择完报表文件后,我们把Output Format(输出格式)设置成html。与之对应的,我们还要设置一下report-definition中的Mime Type类型为text/xml,如下图好了,保存一
使用Birt2.2制作报表并部署到Pentaho1.7平台(一)
前言:Pentaho的报表设计工具JFreeReport Designer老实说真的不成熟,没法和BIRT以及JasperReport相比。最近碰到一个和BIRT相关的项目,于是试用了BIRT2.2,并顺便测试它与Pentaho1.7平台的兼容性。测试的结果暂时还令我满意。编写报表很简单,中文显示也没有问题。[@more@]必要的软件:Pentaho1.7Demo; Pentaho Design Studio 1.7(建议下载100多M的那个); Birt2.2; MySQL数据库和jdbc驱动;1 1.使用Birt制作报表制作一个带数据绑定的报表,数据来源于mysql数据库。如下图,报表名称为sample.rptdesign。这里就不花篇幅去描述怎么
在搞一个wiki相关的项目
这几天都在为一个客户定做一个wiki项目。因为时间比较紧,所以最近没有继续写Pentaho相关的文章。抱歉。等忙完之后,再继续。此外,我会把这次wiki项目的一些收获写出来,和感兴趣的朋友一起分享。[@more@]
最近更新了Pentaho的中文FAQ内容
主要内容包括:Pentaho是什么? Pentaho产品架构 如何下载Pentaho的源码和文档 Pentaho的SOLUTION 需要下载哪些插件,该怎么集成? 如何从配置库获取Pentaho源码 Pentaho安装与配置 如何使用其它数据库的方法? 在Pentaho BI平台配置JNDI 数据源? [@more@]更多的内容请访问:http://www.bipub.org/pentahoFAQ/index.html
令人失望的中国男足
在自己号称高原之地的主场,居然是澳大利亚队在控制球。上半场澳大利亚控球比例差不多70%,中国队只有可怜的30%。可悲呀。看着牛高马大的澳大利亚人熟练的短传控球,而中国队连球都很难抢到。我真的无语。中国足球跟不上世界潮流了。老实说,看了这场比赛,我觉得澳大利亚更有资格代表亚洲参加世界杯。[@more@]
今天开始继续Kettle的汉化和支持工作
因为公司和个人的事情,有几个月没有做kettle的汉化和支持工作了。从今天开始,继续做kettle的汉化和支持工作。欢迎对kettle感兴趣的朋友和我联系。说明:kettle源码的下载:svn://source.pentaho.org/svnkettleroot/Kettle/trunk。需要自己装一个svn的客户端。提交建议或bug修改。请给我来信或者加入kettle-developers@googlegroups.com讨论组。[@more@]
MySQL的Archive表类型在DW事实表的使用
今天看Nicholas的blog,看到了一篇使用Mysql做数据仓库事实表的文章,深受鼓舞。Mysql已经足以用来构建大型数据仓库了。 在这篇文章里,Nicholas举了他的一个客户的例子。该客户使用Mysql作为数据仓库,每天有2亿条新增数据,可以说是海量数据。由于客户预算有限,所以希望Nicholas帮助解决数据存储空间占用过大的问题。Nicholas通过一个比较案例,提出了使用MySQL的Archive表类型的解决方案。Nicholas的原文blog链接:http://www.nicholasgoodman.com/bt/blog/2007/04/18/mysql-archive-tablespace-for-facts/案例相关的Kettle转换文件和
Pentaho1.52版本发布
新增的主要功能包括:1)Web based adhoc reporting;基于web的即席查询报表2)ACEGI Security;基于开源安全组件ACEGI的安全管理机制3)RDBMS solution repository;基于数据库的资源库管理4)Subscriptions订阅服务有了这几个功能,pentaho平台的易用性和可管理性大大增强了。[@more@]与pentaho1.52一起发布的工具还包括:pentaho-design-studio_1.5.2.399-0.zip 和Report Design Wizard1.52版本下载链接:http://sourceforge.net/project/showfiles.php?group_id=140317
数据库分区的文章收集
最近在研究如何解决海量数据仓库的性能问题。数据分区是一个可行的手段之一。于是通过google搜索到了一些常用数据库分区的资料。[@more@]1. Partition -Sql Server 2005 vs Oracle Database 10g; 2.通过分区(Partition)提升MySQL性能;3.在 Microsoft SQL Server 2000 数据仓库中使用分区;4.Oracle数据库中分区表的操作方法;5.DB2 分区特性;6.PostgreSQL ;