Monday, February 8, 2010

truecrypt mount and dismount sample batch file

rem 下面是mount.bat的内容, 使用该命令行将自动mount文件D:\vol\test为x盘
echo off
truecrypt /a /v D:\vol\test /lx /q
rem 下面是dismount.bat内容, 使用该batch文件, jia
echo off
truecrypt /a /d /lx /q

Saturday, January 23, 2010

www.cisait.com , Good articles on DWBI

发现了一家北京钢冶联信息科技有限公司, 网站上都是DWBI的好文章, 收藏之,

http://www.cisait.com/

develop SSIS SSH/SFTP/SCP task

最近我在维护公司的DWH,  DWH数据库用的Oracle, 服务器用的是Linux, ETL用的是DataStage 7.5.3,  DataStage的Job Sequence功能实在不怎么样(和SSIS的control flow实在没法比). 公司也仅仅是是使用了DataStage的Parallel Job来进行数据的ETL, 根本就没有一个Sequence类型Job. 流程控制不得不用Linux Shell来控制. 但Shell 毕竟不像一般的编程语言,  一来不直观, 而来维护成本也高.

因此我有个想法, 开发一套SSIS  Task, 包括SSH, SFTP/SCP, SSH Connection.  如果有了这些Task组件, 那么SSIS Package就能实现了Linux/Unix命令发送/文件获取, 解决了大部分的跨OS交互问题. 也许有点市场, 能挣点小钱.

下面是收集的一些SSIS Sample, 另外意外地发现, 已经有厂家提供类似的组件.

Hello World Task Sample
http://www.codeplex.com/SQLSrvIntegrationSrv/Release/ProjectReleases.aspx?ReleaseId=17648

Enhanced SSIS Execute Package Task

http://ssisexec.codeplex.com/sourcecontrol/changeset/view/46583?projectName=SSISExec

Excel2 Connection Manager
http://ssisctc.codeplex.com/wikipage?title=Excel2%20Connection%20Manager&referringTitle=Home

SQL Server Integration Services Product Samples
http://www.codeplex.com/MSFTISProdSamples

SSIS Community Tasks and Components
http://ssisctc.codeplex.com/

两个提供类似产品的商业厂家
http://www.cozyroc.com/products
http://www.cozyroc.com/ssis/ssh-connection
http://www.cozyroc.com/ssis/ftps-connection
http://www.cozyroc.com/ssis/ssh-execute-task
http://www.cozyroc.com/ssis/scp-task
http://www.cozyroc.com/purchase

http://www.nsoftware.com/ssis/
http://www.nsoftware.com/order/options.aspx?part=EAS3-A

Saturday, January 16, 2010

craagle (crack google)

Craagle

这东西是干啥的? 搜索序列号或者软件破解工具的。我不是鼓励你用盗版,但如果是学习或者研究的目的.....要问哪里可下载,Google 一下就知道。

FairUse4WM

下载了视频文件发现需要 DRM ? FairUse4WM 就是用来破解 DRM 问题的。偶而一用,还真的不错。这工具的名字也挺有意思的,Fair -- 认为 DRM 不公平才开发的。

fastcopy
ipmessenger(国内叫飞鸽)作者的另一个作品,利用磁盘cache很出色,复制大文件时速度奇快。

Saturday, January 9, 2010

Tips of FastReport for .Net

在用Delphi开发报表时代, FastReport是我不二的选择. 现在用C#, 一直没有找到合适的报表工具, 微软的RDLC, 我是怎么都不习惯.  最近我下载了FastReport For .Net, 又让我找回了开发报表的快感. 官网上下载的demo版本, 只有唯一的一个限制, 就是最终报表预览会有一个Demo Version的水印,  FR官方够慷慨啊.

一般设计时, 只需在Form上放两个FastReport的组件EnvironmentSettings, Report. 其中EnvironmentSettings可以用来设定FastReport的UI风格/Email设置/Preview设置等等, 我们可以在Report组件中设计报表, 在报表中, 可以添加DataSource和Parameter.  一般的中国式报表, 我们都需要加个Data Band在Page页面上. 需要为Data Band指定一个data Source, 这样Data Band上的TextBox才会在循环取出Data Source中每个记录, 否则DataBand只能显示DataSource的第一条记录.


下面的代码是, 怎样在Form中显示FastReport的预览界面.

        private void ShowRptWithFastReport()
        {
            int categoryID = ((FeeCategory)(comboBoxFeeCategory.SelectedItem)).CategoryID;

            //往report中传递两个参数值
            report1.SetParameterValue("ParamMagicNumber", m_MagicNumber);
            report1.SetParameterValue("ParaFeeCategory", categoryID);

            //动态设置Report中数据源(该数据源名为Connection)的ConnectionString
            var frConn = (MsSqlDataConnection)report1.FindObject("Connection");
            frConn.ConnectionString = Settings.Default.AccSetDbConnectionString;

            ////显示报表预览界面
            report1.Show(true);
        }



我们的软件有正式版和试用版之分, 对于试用版, 我们只允许用户打印前5页. 那么, 该如何控制呢? 用FastReport非常简单. 
步骤1: 设置Report的DoublePass属性为True,  这样FastReport引擎会对报表扫描2次, 第一次取数据, 第二次显示数据.
步骤2: 在Data1(它是个DataBand)上增加下面的事件.

    private void Data1_BeforePrint(object sender, EventArgs e)
    {
      if (Engine.FinalPass)
      {
        if (Engine.CurPage>=Convert.ToInt32(Report.GetParameterValue("ParamMagicNumber")) )
        {
          if (Engine.CurPage<=Engine.TotalPages-1)
            MessageBox.Show("本报表总页数为"+Engine.TotalPages.ToString()+", 但此试用版的软件不允许打印全部的页数! ") ;

          Report.Abort();
        }
      }
    }

Monday, December 21, 2009

Script component tips on SSIS data flow task

Control flow的Script task 是一个十分好用的task, 可以用VB.Net script进行编程, 该task 可以很好地和SSIS package的variable进行联系, 你不必处理package的variable的lock/unlock.

但在data flow task中的Script component, 如果用作transform, 它位于source 和destination之前,  在处理每行记录时, script component都会被调用起来, 可能正是由于这种频繁的调用, 当script component读取/写入Package variables会很可能会发生hangup的情况.  我在实践中发现, 最好在script component不用使用package variables,  如果需要script component需要向外界传递信息时, 可以在script component上增加一些output column, 通过这些output column, 可以将script component的结果传递出去.

Saturday, November 14, 2009

Virtualbox folder sharing and network setting

环境和背景:
我的Host OS 为Vista Home Basic, 要装一个Win XP的 Guest OS. 因为是Vista Home版本, 所以不能使用微软的VPC 2007. VMWare workstation 5.5之后的版本用着不习惯, 所以决定使用VirtualBox.

设置步骤
1. 关闭Host OS的微软的Windows Firewall

2. 安装VirtualBox之后, 接着安装Win XP

3. 在启动XP系统之后, VirtualBox软件的菜单Devices/Mount CD-Rom image, 加载VboxGuestAddins.iso.

4. 完成步骤3之后, 在XP中就会出现一个光盘, 安装VboxGuestAddins, 这样鼠标就可以在Host OS和Guest OS之前自动滑动, 更重要的是, Host OS和Guest OS之间就可以实现文件共享

5. 文件共享的设置: 在启动XP系统之后, VirtualBox软件的菜单Devices/Shared Folders, 可以设置要共享哪些Host OS的文件夹. 比如我们要共享Vista的C:\VistaFolder, 加了这个文件夹, 需要为它设置了一个folder name, 比如vistashared. 在XP中, 在文件夹那里输入:\\vboxsvr\vistashared, 就可以访问到Host OS的这个目录.

6.1 网络设置--方案1
如果想要Host OS和Guest OS能够网络互通, 可以将这个VM的网络设置为Host only模式, 同时要将Host OS的那个Virtual box的虚拟网卡和Guest OS的网卡设置为同一个网段. 这个方案的缺点是Guest OS将无法访问互联网.

6.2 网络设置--方案2
NAT(网络地址转换),你可以认为你的虚拟机是在你的主机后方,所有的联网请求都先通过主机(其实是通过主机的NAT服务器,这是VirtualBox内置的)。
*优点:配置简单,可以说只要你的主机可以上网那么配置就没有什么难的。
*缺点:虚拟OS的网络地址外网不可见,外网无法访问虚拟机,主机也无法访问虚拟机,无法与你的主机进行通信,所以如果你要利用主机和你的虚拟OS调试网络应用程序,恐怕不能使用这种联网方式。
方法: 启动虚拟操作系统,将网卡设置为使用DHCP方式, 自动获得网络地址,VirtualBox会使用10.0.0.0这样的地址进行联网。这样你的虚拟OS上网,收发邮件都没有问题。但是无法和主机网络中的其他PC通信哦。
如果你的Guest OS无法获得IP地址, 可以手动设置该IP 10.0.2.15, mask 255.255.255.0, gw 10.0.2.2, dns 10.0.2.3

详细教程:http://www.sudu.cn/info/html/edu/20070102/296806.html