Author: blchen

  • Perl打印包含哈希的哈希

    在Perl里,有一种很常用的数据结构,哈希里的值是一个新的哈希,比如下面例子 my %hash = (    foo => {        id   => 1,        name => “foo”,    },    bar => {        id   => 2,        name => “bar”,    },); 如果需要在调试过程打印这类的数据,最简单的方法就是在代码开始加入use Data::Dumper来导入Dumper模块,然后所要做的全部事情就是把哈希的引用传给Dumper就行。 print Dumper(%hash); 结果如下 $VAR1 = {          ‘bar’ => {                     ‘name’ => ‘bar’,                     ‘id’ => 2                   },          ‘foo’ => {                     ‘name’ => ‘foo’,                     ‘id’ => 1                   }        }; 或者可以直接2次for循环把哈希展开打印:…

  • Perl里的true和false

    Perl和其他语言有点不一样,它没有原生的布尔(Bool)型变量。不过,这 简单说,下面的情况在Perl里会被解析成fase: 数字0 字符串0 空字符串 值为undef的变量 其余的情况在Perl里都会被解析成true。 这样其实也很有好处,相同的逻辑,代码量上会精简不少,但额外的代价就是你得记住哪些情况等于true,哪些又是false。

  • 在PowerShell里运行SCVMM 2012 Cmdlets

    SCVMM的用户可以通过Cmdlets以命令行的方式来完成所有可以在AdminConsole里能完成的操作。在SCVMM 2008 R2中,我们可以在Powershell里敲以下命令来加载SCVMM SnapIn。 Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager 不过这个命令在SCVMM 2012里失效了。在SCVMM 2012,cmdlet被重新设计成了module,所以在SCVMM 2012,我们需要通过Import-Module来加载SCVMM 2012 Cmdlet Module,具体命令如下。 Import-Module “C:Program FilesMicrosoft System Center 2012Virtual Machine ManagerbinpsModulesvirtualmachinemanagervirtualmachinemanager” 如果你的SCVMM 2012不是默认安装的话,请把C:Program FilesMicrosoft System Center 2012换成SCVMM 的实际安装目录。

  • 那些年,我们一起追的女孩

    今天和老婆一起看了2012年的第一场电影,《那些年,我们一起追的女孩》。时间过的真是快啊,青春的流逝,也就是一部电影的时间。

  • TFS 2010服务器改名

    最近老大发了个邮件,要求把代码管理迁移到TFS 2010上,收到信二话不说就开始建起来了。话说TFS 2010的安装还真是容易,不到一小时安装就全部完毕。不过悲剧的是,发信给大伙后发现服务器的名字取错了,不是信里指定的那个,看来做事情还是要一心一意啊。 在Google同学的帮助下,很顺利的把TFS服务器改成正确的名字了,步骤记录如下

  • Could not load file or assembly TraceWrapper

    最近在做一个基于SCVMM的Portal,搭环境的时候遇到一个挺诡异的事情。在我的Windows Server 2008 R2的开发机器上,如果用正常的方式启动portal,一切正常,但是如果通过VS2010 F5 debug模式起Portal的话,总是得到下面错误。 Could not load file or assembly ‘TraceWrapper, Version=1.0.523.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35′ or one of its dependencies. An attempt was made to load a program with an incorrect format. 咨询了一下Oliver同学,An attempt was made to load a program with an incorrect format的错误一般出现于64位的系统上加载32位文件,或者32位系统加载64位文件。这个问题只出现于Native dll,因为DotNet的managed dll是平台无关的。个么问题来了,我的机器是64位OS,加载的TraceWrapper.dll也是64位的,怎么还报错呢?原来事情是这样的,VS2010是个32位程序,从而由它起来的所有进程都是32位的,有图为证。在这种情况下,所有的进程都运行于32位模式,或者说WOW64模式,在这种模式下去读取64位TraceWrapper.dll就自然出现上述错误了。 所以解决方法是,把引用TraceWrapper.dll的project,根据你运行的环境,用对应的CPU选项编译。

  • SQL Server的版本号们

    为什么要收集一个这样的列表呢?当你需要在代码里判断本地的SQL是否打过某个SP的时候,你就会发现这个列表的用处了。要查询SQL Server的版本号,只要运行一下这个SQL查询 SELECT @@Version 就可以了。

  • 关于An automated WordPress update has failed to complete的错误

    WordPress的自动升级很方便,插件,theme的升级都可以一键完成。但是,wordpress偶尔也会出现抽风的现象,导致的直接后果就是在后台每个页面上方都会出现一段烦人的警告 – “An automated WordPress update has failed to complete”。 放狗搜索了一下,2步问题解决 删除wp-content 下的upgrade文件夹 删除根目录下的 .maintenance文件

  • 提高SCVMM部署虚拟机性能

    默认情况下,SCVMM是使用BITS通过https来把虚拟机(或者说VHD文件)从library服务器部署到host服务器的。然而对于动辄数几十G的VHD文件来说,通过加密的https协议来做文件传输,实在是多此一举。幸好,SCVMM允许用户关闭VHD文件加密传输来减少虚拟机部署的时间。 具体步骤如下,

  • 在VS的Solution Explorer中高亮当前编辑的文件

    当项目的代码变大变臃肿的时候,VS里右边的Solution Explorer里的源代码文件总是长长的一串,和IM上的好友差不多了。如果你同时在多个源代码文件里工作并且经常切换,你也许会像我一样抱怨,这个该死的Solution Explorer总是不会自动高亮当前工作的文件。 今天意外发现,VS2010是支持这个功能的,在Tools->Options->Projects and Solutions->General 下只要把”Track Active Item In Solution Explorer”选上就行。