21 Aug 2009

python的对象驻留

在C#中为了提高性能使用了字符串驻留技术,而在Python中不光是字符串,连整数都有使用类似的驻留技术哦,看下面的测试:

C:\Documents and Settings\Marble Wu>python
Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a=1
>>> b=1
>>> id(1)
10446048
>>> id(a)
10446048
>>> import sys
>>> sys.getrefcount(a)
245
>>> sys.getrefcount(b)
245
>>>

其实也很容易理解,因为在Python一切皆对象

19 Aug 2009

调整netbeans6.5设置使之默认使用utf-8存储文件

netbeans默认使用ANSI存储的,我们一般希望它采用utf-8来存储,按照如下方法可以实现这个要求

1)  找到你的Netbeans安装目录下的etc文件夹,如D:\Program Files\NetBeans 6.5\etc
2)  用文本编辑器打开netbeans.conf
3)  找到netbeans_default_options这一句(注意#号开头的行的是注释)
4)  在最后面加上一个空格,再加入-J-Dfile.encoding=UTF-8

如我现在的设置:

# ${HOME} will be replaced by JVM user.home system property
netbeans_default_userdir=“${HOME}/.netbeans/6.5”

# Options used by NetBeans launcher by default, can be overridden by explicit # command line switches: netbeans_default_options=“-J-client -J-Xverify:none -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true -J-Dfile.encoding=UTF-8” # Note that a default -Xmx is selected for you automatically. # You can find this value in var/log/messages.log file in your userdir. # The automatically selected value can be overridden by specifying -J-Xmx here # or on the command line.

# If you specify the heap size (-Xmx) explicitely, you may also want to enable # Concurrent Mark & Sweep garbage collector. In such case add the following # options to the netbeans_default_options: # -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled # (see http://wiki.netbeans.org/wiki/view/FaqGCPauses)

# Default location of JDK, can be overridden by using –jdkhome <dir>: netbeans_jdkhome=“C:\Program Files\Java\jre6”

# Additional module clusters, using ${path.separator} (‘;‘ on Windows or ’:‘ on Unix): #netbeans_extraclusters=“/absolute/path/to/cluster1:/absolute/path/to/cluster2”

# If you have some problems with detect of proxy settings, you may want to enable # detect the proxy settings provided by JDK5 or higher. # In such case add -J-Djava.net.useSystemProxies=true to the netbeans_default_options.

11 Aug 2009

如何在windows xp下安装python2.6的setuptools

最近开始学python,要安装很多egg文件,但发现http://pypi.python.org/pypi/setuptools#downloads没有python2.6的MS Windows installer版本,google了一把,用如下方法解决:

1. 下载 setuptools-0.6c9.tar.gz
2. 下载 setuptools-0.6c9-py2.6.egg (放在同一个目录)
3. 用7-zip或者其他解压工具打开 setuptools-0.6c9.tar.gz ,并且把里面的 ez_setup.py 文件解压到同一个目录里。
4. 打开cmd窗口,并进入你刚才下载和解压文件的目录里。(例如: d:\downloads\)
5. 输入 python ez_setup.py setuptools-0.6c9-py2.6.egg

提示如下:

E:\temp>python ez_setup.py setuptools-0.6c9-py2.6.egg
Processing setuptools-0.6c9-py2.6.egg
Copying setuptools-0.6c9-py2.6.egg to c:\python26\lib\site-packages
Adding setuptools 0.6c9 to easy-install.pth file
Installing easy_install-script.py script to C:\Python26\Scripts
Installing easy_install.exe script to C:\Python26\Scripts
Installing easy_install-2.6-script.py script to C:\Python26\Scripts
Installing easy_install-2.6.exe script to C:\Python26\Scripts

Installed c:\python26\lib\site-packages\setuptools-0.6c9-py2.6.egg Processing dependencies for setuptools==0.6c9 Finished processing dependencies for setuptools==0.6c9 Processing setuptools-0.6c9-py2.6.egg Removing c:\python26\lib\site-packages\setuptools-0.6c9-py2.6.egg Copying setuptools-0.6c9-py2.6.egg to c:\python26\lib\site-packages setuptools 0.6c9 is already the active version in easy-install.pth Installing easy_install-script.py script to C:\Python26\Scripts Installing easy_install.exe script to C:\Python26\Scripts Installing easy_install-2.6-script.py script to C:\Python26\Scripts Installing easy_install-2.6.exe script to C:\Python26\Scripts

Installed c:\python26\lib\site-packages\setuptools-0.6c9-py2.6.egg Processing dependencies for setuptools==0.6c9 Finished processing dependencies for setuptools==0.6c9

E:\temp>

06 Aug 2009

不改程序, 创建同一个程序不同服务名的方法

以往写windows service都需要个ProjectInstaller和serviceInstaller并配置serviceName,这样build出来的exe在install成windows service时我们会:

@echo 安装WindowService
@Set Path=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;
@Set svn_dir=%cd%
installutil %svn_dir%\MyServiceDemo.exe
pause
@echo 成功!

但服务名被我们编译在程序里了,如果这个exe想被装很多次服务怎么办呢?
今天从同事Martin Jia那里学来一个好方法,可以不用ProjectInstaller、serviceInstaller这种东西,直接安装exe为windows service并在安装时指定服务名称

安装服务:

sc create 服务名 binpath= ”路径” displayname= ”显示名”

卸载服务

sc delete 服务名

02 Aug 2009

Wordpress从windows上迁移到linux上要注意路径设置

今天在localhost上用xampp装了个wordpress 2.8.2,本地导入原来blogengine.net的数据调整好,没有任何问题,就用帝国备份王打包数据在远程linunx上恢复,ftp上传本地站点内的文件到服务器对应目录,修改wp-config.php,兴冲冲的去访问首页,发现打不开,任何跟wp有关的页面都打不开,html可以打开和wp无关的页面比如探针是可以打开的,郁闷啊,检查了好久配置文件没有任何问题,思前想后想不通啊。本地和远程只是web服务器不同,本地是apache远程是nginx,不会是因为这个吧,其他几个站点都是这么弄的啊,是在想不到什么原因,

就打开phpmyadmin随便翻,翻到wp-options表,发现里面有几个站点域名啊的字段,倒上去的数据是本地的,玉米对应不上,修改之,还是没好,仍然打不开,再翻最后发现upload_path这个字段的设置时E:\xxx\yyy\zzz\这样的尝试修改成linux内的/home/usr/local/vhost/xxx/yyy/zzz,再访问首页,OK啦,估计wp在页面打开时要校验这些选项,而他不认识E:\XX\YY\ZZ这样的路径,就报错了。

02 Aug 2009

商务中国的DNS解析,主机名不许有下划线

就在刚才,就在刚才哦,本博客突然突然的就不能访问了,玉米是上午中国注册的,使用的是商务中国的dns服务,使用同样dns服务器的域名都可以访问,就这个突然离奇的不能访问了,去商务中国提了个ticket,过了不一会儿收到邮件说是已经回复了这个问题,赶紧登陆一看


问题序号:   298804 处理状态: 问题已回复
您的问题: dns挂了
相关域名:   aspxboy.com 相关IP:  
问题关键字:  
问题时间: 2009-08-02 15:42:26.0
问题内容: 其他玉米ok,就这个无法解析。
答复时间: 2009-08-02 16:06:47.0
答复问题: 您好!经查看您其中一条解析记录错误导致,mail_boy 61.139.70.3 域名解析不能有下划线的,请删除该条解析记录可恢复,谢谢!
 



则登陆商务的domainportal删除该条,嘿嘿,还真的好了,不过….不过 以前可是好好的呀,猜测就在刚才商务中国的DNS系统可能升级了。

30 Jul 2009

如何判断一个类型是nullable类型,并得知它的原始类型

有些时候我们需要判断某个类型是否是Nullable类型,并且可能需要知道它的原始类型,
比如在做些ORM相关工作时,就需要这方面的应用,如下代码使用可以实现这个要求

class Program
    {
        static void Main( string[] args )
        {
            RL( );

        Type type =  typeof( DateTime? );
        Type originalType;

        if ( IsNullable( type , out originalType ) )
        {
            WL( originalType.ToString( ) );
        }
        else
        {
            WL( "NOT Nullable" );
        }

        type =  typeof( DateTime );

        if ( IsNullable( type , out originalType ) )
        {
            WL( originalType.ToString( ) );
        }
        else
        {
            WL( "NOT Nullable" );
        }

        RL( );
    }

    private static bool IsNullable( Type p , out Type originalType )
    {
        bool result = false;

        if ( p.IsGenericType &amp;&amp; p.GetGenericTypeDefinition( ) == typeof( Nullable&lt;&gt; ) )
        {
            result = true;
            originalType = p.GetGenericArguments( )[0];
        }
        else
        {
            originalType = null;
        }

        return result;
    }

    #region Helper methods

    private static void WL( object text , params object[] args )
    {
        Console.WriteLine( text.ToString( ) , args );
    }

    private static void RL( )
    {
        Console.ReadLine( );
    }

    private static void Break( )
    {
        System.Diagnostics.Debugger.Break( );
    }

    #endregion
}

26 Jul 2009

拆箱记

大洋彼岸寄来了一个纸箱

哇,里面装了一个老外宅男

MVP奖杯

MVP证书

21 Jul 2009

Asp.Net发邮件,如何发送附件

使用如下代码可以发送附件

MailMessage mail = new MailMessage();
mail.To = ”me@mycompany.com”;
mail.From = ”you@yourcompany.com”;
mail.Subject = ”this is a test email.“;
mail.Body = ”this is my test email body.“;
MailAttachment attachment = new MailAttachment( Server.MapPath( ”mailTest.txt” ) ); //create the attachment
mail.Attachments.Add( attachment );
SmtpMail.SmtpServer = ”localhost”; 
SmtpMail.Send( mail );

使用如下代码可以在用户上传附件后发生邮件:

if  (FileUpload1.HasFile)
{
    string  toAddress  =  ”you@yourprovider.com”;
    string  fromAddress  =  you@yourprovider.com  (2);
    string  mailServer  =  ”smtp.yourprovider.com”;

    MailMessage  myMailMessage  =  new  MailMessage();

    myMailMessage.To.Add(toAddress);     myMailMessage.From  =  new  MailAddress(fromAddress);     myMailMessage.Subject  =  ”Test  Message”;

    string  fileName  =  Path.GetFileName(FileUpload1.PostedFile.FileName);     Attachment  myAttachment  =                                     new  Attachment(FileUpload1.FileContent,  fileName);     myMailMessage.Attachments.Add(myAttachment);

    SmtpClient  mySmtpClient  =  new  SmtpClient(mailServer);

    mySmtpClient.Send(myMailMessage); }

18 Jul 2009

如何判断一个网站是不是php做的?

可以当作简易判断站点是否用PHP架设。

PHP_LOGO_GUID
http://www.php.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42

PHP_EGG_LOGO_GUID
http://www.php.net/?=PHPE9568F36-D428-11d2-A769-00AA001ACF42

ZEND_LOGO_GUID
http://www.php.net/?=PHPE9568F35-D428-11d2-A769-00AA001ACF42

PHP_CREDITS_GUID
http://www.php.net/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000

喜欢看愚人节的那个Logo就是第二个链接罗
http://www.php.net/ 这个网址只是范例,只要是任一PHP的站点即可。

来源:http://www.google.cn/search?client=aff-os-worldbrowser&forid=1&ie=utf-8&oe=UTF-8&hl=zh-CN&q=%E4%B8%80%E4%BA%9B%E5%86%85%E5%AE%9A%E7%9A%84PHP%E7%89%B9%E6%AE%8AGUID