摘要: 重构TekPub——从ASP.NETMVC框架迁移到Ruby on Railshttp://www.infoq.com/cn/articles/architecting-tekpub Stack Overflow Architecturehttp://highscalability.com/blog/2009/8/5/stack-overflow-architecture.html Scali... 阅读全文
posted @ 2011-08-28 22:10 harrychinese 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 首先先讲一下subversion几个特性.tortoisesvn安装之后, 有个help文档, 非常好, 不仅包含tortoisesvn的帮助, 而且有很多关于subversion服务器端帮助信息. 网络上有一个中文帮助chm文件, 网站为http://svndoc.iusesvn.comSubversion 在版本控制方面做的非常好, 它用一个global revision number来标示r... 阅读全文
posted @ 2011-08-28 22:10 harrychinese 阅读(109) 评论(0) 推荐(0) 编辑
摘要: Keywords: Google Calendar, Mozilla Sunbird, Provider for Google CalendarSunbird have two network calendar built-in providers. One is iCalendar(ICS), another is CalDAV. You can use ICS to subscribe the... 阅读全文
posted @ 2011-08-28 22:10 harrychinese 阅读(207) 评论(0) 推荐(0) 编辑
摘要: Keywords: SVN, TortoiseSVNhow to Use Subversion with TortoiseSVN, visit http://www.codeproject.com/KB/books/Subversion_TortoiseSVN.aspx 阅读全文
posted @ 2011-08-28 22:10 harrychinese 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 图解Linux下如何搭建C#开发环境 http://news.cnblogs.com/n/68188/ 这篇文章中介绍了6中安装Ubuntu的方法, 值得阅读. 阅读全文
posted @ 2011-08-28 22:10 harrychinese 阅读(93) 评论(0) 推荐(0) 编辑
摘要: Keywords: connectionstring, connection db, JDBC driverThere are too many connection technologies for windows application development such as ODBC, OLEDB, .Net Connection. It is hard to remember all ki... 阅读全文
posted @ 2011-08-28 22:10 harrychinese 阅读(127) 评论(0) 推荐(0) 编辑
摘要: Keywords: Java, Design PatternThe following resources are great, because they are from Sun. Pasted from http://java.sun.com/blueprints/patterns/Java BluePrints Patterns CatalogThis section contains th... 阅读全文
posted @ 2011-08-28 22:10 harrychinese 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 接下来, 我们讲一下tortoisesvn的常规操作. update, revert和switch的区别, 这三个命令的图标都是从服务器端到客户端的箭头, 容易搞混.1. update是最常用的操作, 就是用来更新本地的work copy, 当然, 如果某个文档是基于svn server的最新版本做了修改,那么update并不会从svn server上download这个文档. 如果你的文档是基于... 阅读全文
posted @ 2011-08-28 22:10 harrychinese 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 我自己写了一点关于svn的常用功能, 见http://focuswindows.blogspot.com/2008/08/routine-tortoisesvn-operations-1.html以下内容摘自http://blog.csdn.net/iNarcissuss/archive/2007/09/16/1787411.aspxCheck-out(检出) 和 Export(导出)+-----... 阅读全文
posted @ 2011-08-28 22:10 harrychinese 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 怎样组织svn的目录其实非常有学问,比如我们是要将多个项目放在一个svn repository下, 还是为每个项目都建立一个独立的svn repository呢? 实际上, 这两种做法各有优缺点. 使用单一svn repository的优点是:只需要维护一个svn库,工作量自然会少了很多, 这里维护工作包括routinely backup,dump以及升级svn软件. 当然缺点也很明显: 一个项目... 阅读全文
posted @ 2011-08-28 22:10 harrychinese 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 首先可以将TeamCity 看作一个专门Continuous Integration(CI)的Web Portal. TeamCity可以管理多个Build Agent, ,每个Build Agent可以认为是专门用来编译代码的机器. 当然Build Agent可以和TeamCity是同一台计算机. TeamCity为什么采用多个Build Agent这样的架构呢?多个Build Agent的... 阅读全文
posted @ 2011-08-28 22:10 harrychinese 阅读(490) 评论(0) 推荐(0) 编辑
摘要: Keywords: C#Very good articles about thread and synchronizition: http://www.albahari.com/threading/Chinese version: http://knowledge.swanky.wu.googlepages.com/threading_in_c_sharp.html 阅读全文
posted @ 2011-08-28 22:10 harrychinese 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 最近为公司开发了一个 Oracle 卸载数据程序(将Oracle的数据unload成定长文本格式, 然后通过FTP传给Teradata, Teradata etl automation将定长文本加载到数据仓库中). 部署的平台是RHEL 4.5 64bit, 本打算使用Python开发, 但考虑到系统的可维护性, Python直接被否了, 看来像Python这样的语言, 在非IT公司还是没什么市场的. 最后, 选用Java作为开发语言. Java原先不熟, 幸好有google, 碰到的问题都解决了. 下面记载一些开发过程中记录下来的tip. /******Java和C#的语法比较***/参考 阅读全文
posted @ 2011-08-19 16:01 harrychinese 阅读(519) 评论(1) 推荐(0) 编辑
摘要: 如何在Linux上部署Java应用程序==========================设置Linux的.bash_profile==========================在.bash_profile中设置JAVA_HOME和CLASSPATH变量, 并将$JAVA_HOME/bin加到PATH变量中###begin of JAVA CONFIGURATIONJAVA_HOME=/usr/jdk1.6.0_21CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATHexport CLASSPATHPATH 阅读全文
posted @ 2011-08-12 17:21 harrychinese 阅读(2416) 评论(0) 推荐(1) 编辑
摘要: 如何在windows上使用putty来显示远端linux的桌面下面介绍的方式是使用SSH的X11 forward功能, 需要在SSH服务器和SSH客户机两边都启用了X11 forwarding功能时才可行.在SSH server端开启 X11 forword, 确保在文件/etc/ssh/sshd_config里有这么一行 X11forwanding yes安装X Windows软件需要在windows上安装一个X windows桌面系统, 可选用免费的Xming, 下载并安装后, 启动xlaunch应用.配置putty在putty的connection/ssh/X11设置界面上, 选中Ena 阅读全文
posted @ 2011-07-22 08:46 harrychinese 阅读(2076) 评论(0) 推荐(0) 编辑
摘要: 我一直是powerdesigner的fan, 设计的事情它都能处理(ER[CDM/LDM/PDM], UML, Flowchart), 不过它的价格挺贵的. 下面介绍几个免费的软件, 可以代替powerdesigner/visio等商业软件.1. flowchart diagram(yEd是首选) 阅读全文
posted @ 2011-07-13 08:51 harrychinese 阅读(2337) 评论(0) 推荐(0) 编辑
摘要: how to unload oracle data into fixed length text file1. sqluldr2This tool developed by one Chinese Oracle guru. At a glance, this tool is suited for my need exactly.http://www.dbatools.net http://www.dbatools.net/mytools/parallel-inside-sqluldr2.html**tricks and issues: trick 1: choose space(0x20) a 阅读全文
posted @ 2011-06-30 17:50 harrychinese 阅读(1151) 评论(0) 推荐(0) 编辑
摘要: Eclipse的设置用惯了Visual Studio, 切换到Eclipse有很多不习惯的地方. 总结了几点, 以免忘记后重复摸索. 本文是基于Eclipse 3.1.0, 可能不适用于更新的Eclipse版本.强烈推荐下面2个Eclipse教程:http://www.javahotchocolate.com/tutorials/use-eclipse.htmlhttp://www3.ntu.edu.sg/home/ehchua/programming/howto/EclipseJava_HowTo.html如何理解Eclipse的workspace和project呢? Eclipse 的wo 阅读全文
posted @ 2011-06-30 17:48 harrychinese 阅读(883) 评论(5) 推荐(0) 编辑
摘要: 是时候该总结一下这2年的工作了, 这篇是我常用的Oracle知识点汇总, 很多都是从网上收集的. ---====================================--sqlplus 的使用---====================================--当用sqlplus执行大量的insert语句是,如果sqlplus回写的话, 速度会很慢, 关闭回写,速度会快很多set feed offset echo off--当用sqlplus的spool命令, 输出csv格式的报告, 需要配置sqlplus的设置项, 否则格式会很难看的. set pages 0;set 阅读全文
posted @ 2011-06-11 13:07 harrychinese 阅读(875) 评论(0) 推荐(0) 编辑
摘要: Dastage job 设计的几个 tip ================== ds job运行报错 ================== error code 139, 表结构不对 error code 134, 数据源无法访问 运行时如报 Rows not loaded due to data errors: 51, 很可能会ds job字符设置有问题, 需要调整NLS. ================== ds8 job锁定 ================== ds8经常出现某个job被某个session锁住的情况, 该如何处理这个问题呢? the job is locked by 阅读全文
posted @ 2011-06-11 12:58 harrychinese 阅读(1073) 评论(8) 推荐(0) 编辑
摘要: Oracle OLAP的历史 Oracle OLAP的历史可谓悠久. Oracle在1995年从IRI手上买下Express产品时, Express已经是一个很强大的多维数据分析工具包了. Express被收购之后, 被命名为Oracle Express, 刚开始Oracle Express是一个独立的软件包, Oracle 9i开始作为OLAP Option集成在Oracle数据库内, 随着Oracle 10g/11g的发布, OLAP option更加成熟, 尤其是Oracle 11g. 如何创建和维护 Oracle OLAP cube 1. Analytic Workspace Mana 阅读全文
posted @ 2011-05-19 07:14 harrychinese 阅读(4915) 评论(0) 推荐(0) 编辑
摘要: 朋友电话要我推荐一个Windows下的DWBI产品线, 强调要容易上手. 给他写了点东西, 同步放在博客上了. 目前只有4家公司, 能提供端到端的DWBI方案(包括database, ETL, Reporting, Data mining), 分别是Oracle, 微软, IBM和SAP. 如果在Windows环境下, 那自然首推微软了, 特点是: 容易开发, 维护简单, 总体拥有成本比较低. 另外, 微软还有别的公司不具备的武器, 就是Excel, 可以使用Excel来获取SQL Server Analysis Service的分析数据, 这直接拉近了BI和业务人员的距离. 当然, 也可以组 阅读全文
posted @ 2011-05-13 21:35 harrychinese 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 前几天有朋友咨询在数据仓库Stage或ODS层该如何保存历史数据, 他的这个问题其实很普遍, 所以写了点东西放在博客上. 一般数据仓库项目中, Stage或ODS层要保留几天或几个月的源表数据. 保留历史业务数据是很必要的, 有时候需要DWH重跑某一天的数据, 这种情况下, 无法从前端OLTP系统取的当时的数据. 在比如, 需要DWH在一天内要回跑多天batch, 这在项目刚上线时经常碰到. 至于是在Stage层还是ODS层保留历史数据, 我一般推荐是在Stage层保留历史, 让ODS只保留当天的快照数据. 因为Stage保留的是最原始的数据. 那如何保留一个表(比如TA表)的历史数据呢? 我 阅读全文
posted @ 2011-05-11 21:40 harrychinese 阅读(536) 评论(1) 推荐(0) 编辑
摘要: 前面我写了个博客记录如何去重一个oracle表(link), 主要是利用了oracle的rowid伪列和row_number()分析函数. 有读者写邮件问, 如何去重一个SQL Server表, 场景和前面文章一样, 即: 有部分字段有重复值, 表结构中没有一个能唯一定位的ID列, 也不允许修改表结构. 下面我给了个基本的思路. --步骤0, 根据原表table_a, 创建一个临时表table_a_temp, 仅仅增加了一个自增列row_id, 原因是SQL Server没有类似Oracle的rowid伪列, 我们就自己造一个. --假设原表的结果为: create table table_a 阅读全文
posted @ 2011-05-09 21:42 harrychinese 阅读(878) 评论(0) 推荐(0) 编辑
摘要: 前几天, 有人要我列几个DWBI项目成功关键因素? 老实讲, 这个问题以前没有特别想, 因为我觉得很清楚. 现在回头想想, 我当时讲的不是很系统. 一点体会: 有时候认为自己已经对一个东西很懂, 没有必要再花时间在这个上面, 其实所谓很懂, 也就是脑袋里有一些孤立的点. 看来还是需要落实到文字, 写的过程也是一个梳理的过程. 下面列了几个成功关键点, 排列次序不代表重要度, 做DWBI的都应该清楚, 每一点都很重要, 如果有一个没有做好, 项目就可能失败. 1. 项目的目标和范围要清晰, 同时要有严格的Change Request控制, 防止需求膨胀. 2. 项目团队密切协作, PM+架构师+ 阅读全文
posted @ 2011-05-06 21:38 harrychinese 阅读(632) 评论(0) 推荐(0) 编辑
摘要: 如何去重一个oracle表, 这是数据仓库中经常要碰到的问题, 多数ETL工具都提供这样的功能, 如果要求用一条SQL, 该如何写呢? 如果是完全重复的记录,即所有字段均重复的记录, 去重很简单, distinct一下就行了; 如果是有部分字段重复(一个或多个关键字段)的记录, 去重会复杂些. 假设表table_a中, 包含重复的PK值, (正常情况下, PK应该是没有重复的), 同时假设该表又没有合适的唯一的字段 create table table_a (pk int, other_field varchar2(10)); 因为PK有重复, 所以删除多余记录不能仅仅依靠PK来区分, 可依靠 阅读全文
posted @ 2011-04-25 20:43 harrychinese 阅读(1606) 评论(0) 推荐(0) 编辑
摘要: 在OLAP这块, 有Oracle OLAP Option和Hyperion Essbase. 很多专门搞DWBI的人, 也搞不清楚这两者有哪些区别, 各自的特点和定位是什么? 今天找到一个非常全面的presentation, Oracle OLAP Option VS Oracle Essbase Dan Vlamis (Vlamis Software Solutions) http://www.vlamis.com/Papers/collab2008-presentation2.pdf 简单讲, Essbase销售的对象是LoB(Line of business), 而Oracle Olap 阅读全文
posted @ 2011-04-01 23:55 harrychinese 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 整理了一份BI开源软件清单.BI Suit:Pentaho, 介绍见http://baike.baidu.com/view/1545333.htmSpagoBI, 介绍见http://baike.baidu.com/view/1545333.htmJaspersoft, Openi, ETL, OLAP和Report工具可以从上述BI suit中挑出来, 下面仅仅列几个没有包含在上述suit中的数据挖掘组件 数据挖掘:Knime:http://www.knime.org/Orange:http://orange.biolab.si/, 特点: 可使用python来控制, R语言, http:/ 阅读全文
posted @ 2011-03-31 21:02 harrychinese 阅读(1291) 评论(0) 推荐(0) 编辑
摘要: 前面我写了一个文章, 作业调度系统的构思, 链接为http://www.cnblogs.com/harrychinese/archive/2011/02/11/One_Batch_Scheduling_System_Design.html , 这篇讲一下几个关键点的技术选择. 1. 跨OS/跨平台的互操作性, 可以采用ssh方式, 可以借鉴fabric的ssh部分 2. 关于cluster failover, Java有Quartz(.Net有Quartz.Net)可以使用, 但python好像没有很好的框架, 在下面的链接中, http://stackoverflow.com/questio 阅读全文
posted @ 2011-03-31 20:57 harrychinese 阅读(721) 评论(0) 推荐(0) 编辑
摘要: 近来有换工作的想法了, 定位是数据仓库架构师, 因为最近几年一直做相关工作, 同时也看好数据仓库的前景. 在51job.com搜了一下数据仓库架构师, 开放的职位并不多, 放大了搜索范围, 搜索了数据库架构师和BI架构师. 结果是多了不少.下面我谈谈我对数据仓库架构师, 数据库架构师, 以及BI架构师的职责的理解.数据仓库架构师, 往往要做数据建模, 主要是面向数据仓库领域, 另外还要考虑ETL, 调度平台建设, 数据仓库的运维架构, 所以他需要具备4方面的知识和能力: 数据架构、ETL、数据库平台以及infrastructure知识。数据库架构师, 可以分为两类, 一类为开发类, 另一类为维 阅读全文
posted @ 2011-03-26 14:54 harrychinese 阅读(2026) 评论(1) 推荐(0) 编辑
摘要: 曾经构思过一个数据库的版本控制软件, 花了好几天时间, 做出一个prototype, 自个兴奋了好几天. 但考虑到工作量实在太大, 同时red gate公司已经放出了SQL Source Control的early access版本, 所以放弃继续深入研究. 不过我得出了一个结论: 各个主流数据库服务器差异太大, 实现一个能很好管理多种数据库的版本控制工具不大可行, 面向特定数据库的工具应该更靠谱一些. 今天在下面的博客中, 看到有好几款开源的项目, 开源社区真有活雷锋啊. 我还没有来得及评估, 不知道这些工具的可用性到底如何? 也不知道它们能否和主流的版本控制系统兼容, 比如svn, cvs 阅读全文
posted @ 2011-03-20 21:16 harrychinese 阅读(8882) 评论(1) 推荐(0) 编辑
摘要: Firefox的CPU占用真的不管恭维, 经常无响应, 甚至拖累操作系统整体的流畅性, 下面是我用到的一些调优手段, 太累心了, 直接换Chrome吧. 1. 在设置页面中, 做如下设置: 启用:硬件加速 禁用:输入拼写检查 Firefox更新策略: 不要选择自动检查/更新版本. 2. 使用flas 阅读全文
posted @ 2011-03-20 20:51 harrychinese 阅读(752) 评论(1) 推荐(0) 编辑
摘要: Hadoop计算平台和Hadoop数据仓库的区别http://datasearch.ruc.edu.cn/~boliangfeng/blog/?tag=%E6%95%B0%E6%8D%AE%E4%BB%93%E5%BA%93Hive 随谈(三)– Hive 和数据库的异同http://www.tbdata.org/archives/551Hadoop Ecosystem解决方案---数据仓库http://www.cnblogs.com/OnlyXP/archive/2009/10/14/1583450.htmlhadoop+hive 做数据仓库 & 一些测试http://hi.baid 阅读全文
posted @ 2011-03-13 11:50 harrychinese 阅读(4579) 评论(0) 推荐(0) 编辑
摘要: TeraData, 当仁不让的霸主TeraData已经在这个领域纵横好多年了, 你从Tera这个词就能看出这点. 如果是新兵的话, 名字肯定不会是Tera, 这年头还叫Tera, 那也太没有发展的眼光了. 在国内, 多为不差钱的公司采用, 比如银行什么的. 数据仓库流图, OLTP-->ETL-->TeraData-->BI优点: (1)生态环境已经营造的很好了, 无论ETL工具还是BI工具都很好地支持. (2) 开箱即用, 甚至将硬件也打包在一起, 省事. (3)成功案例比较多缺点: (2)巨贵Greenplum, 新锐, 2010年被EMC收购, 算是嫁入豪门了(据传Or 阅读全文
posted @ 2011-03-13 11:47 harrychinese 阅读(1777) 评论(2) 推荐(0) 编辑
摘要: 在我blogspot博客上有一篇更详细的文章, 这里仅仅记录一下如何配置web proxy. 软件下载: 1. microemulator 2.0.4 released, 下载地址有:http://iweb.dl.sourceforge.net/project/microemulator/microemulator/2.0.4/microemulator-2.0.4.ziphttp://microemu.googlecode.com/files/microemulator-2.0.4.zip2. opera mini 国内版下载, google一下. web 代理配置在windows的%use 阅读全文
posted @ 2011-02-24 16:49 harrychinese 阅读(479) 评论(2) 推荐(0) 编辑
摘要: 最近在构思一个作业调度系统(Job scheduling system), 其实作业调度系统也不是什么新东西, 很多大学的超级计算中心和气象中心都有这种系统, 最典型的开源软件架构是Torque加Maui, 这两个软件都是由Cluster Resources Inc维护的开源软件, 在维基百科上列出了一堆软件(http://en.wikipedia.org/wiki/Category:Job_scheduling).我所考虑的是作业调度系统, 不是面向科学计算, 而是针对金融行业日结月结作业或者DW/BI系统的refresh, 这类作业调度系统和气象中心的作业调度系统有很大的不同. 具体不同之 阅读全文
posted @ 2011-02-11 15:51 harrychinese 阅读(1665) 评论(7) 推荐(1) 编辑
摘要: AnyDbTest从最初的一个人的pet project, 发展到今天, 已经有一些公司在使用. 源码最初放在csie.org, 后来csie.org通知要关闭svn服务, 不得不转到sourceforge.net, 由于访问速度很慢, 所以我在春节前做出了一个艰难的决定, 将源码转到微软的codeplex.com上. 现在的主页为 http://anydbtest.codeplex.com. 还没有来的及在这个网站上更新tutorial文档, 不过源码差不多全了. 原来站点www.anydbtest.com算是功成身退了, 以后不打算维护了.原来计划, 在春节期间能继续完善AnyDbTest 阅读全文
posted @ 2011-02-09 15:47 harrychinese 阅读(361) 评论(2) 推荐(0) 编辑
摘要: 科学松鼠会(果壳网)python工程师的招聘 http://www.guokr.com/joinus/#job-9,高级Python开发工程师工作职责:应用twisted框架开发与维护后端数据平台;应用django开发网站前台系统;基于内存数据库开发高性能的数据中间层;为已经在使用的开源项目贡献代码。职位要求:熟练使用Python编程语言,有1年以上的Python全职工作经验;了解twisted框架,并独立编写过Socket服务器;熟练使用Django框架,了解url分派,form验证等功能;对TCP/IP网络有深入的了解。优先条件:掌上Linux爱好者:Maemo、OpenWRT;有网络劫持 阅读全文
posted @ 2011-01-25 13:47 harrychinese 阅读(576) 评论(0) 推荐(0) 编辑
摘要: 1. python class的继承python允许多根继承, 这点像C++, 但不像C++那样变态, 需区分公有继承/私有继承/保护继承, python只有一种继承方式。也许正因为支持多重继承, 因此python没有interface这个关键词.2. 给类起个别名在python中, class也是对象, 所以你可以像操作对象一样, 将class赋值给一个对象, 这样就相当于给class起了一个别名可以在代码中:ShortName = MyReallyBigClassNameWhichIHateToType或者在import时候,from modulename import ReallyLon 阅读全文
posted @ 2011-01-25 10:24 harrychinese 阅读(2926) 评论(3) 推荐(0) 编辑
摘要: 开篇几个链接, 有很多的tips, 值得认真学习Python Tips, Tricks, and Hackshttp://www.siafoo.net/article/52Programming FAQhttp://docs.python.org/faq/programming下面是我整理的Python语言的几个特殊之处(多和c#相比)1. python的多行注释在很多语言中, /* */是多行注释的写法, 但在python中, 没有专门的多行注释写法, 如果要写多行注释, 推荐的写法是, 每行以#开头. 当然, 也可以使用docstrings来做多行注释, 但不推荐这个写法.2. pyth 阅读全文
posted @ 2011-01-21 14:51 harrychinese 阅读(342) 评论(0) 推荐(0) 编辑