Search


Meta

Creative


Support


Leesoft

Feed™

Recent Comments

Photos

May
31

Transfer My Project From Ruby To Python

Posted by » developerly
113 hits

appengine-silver-120x30.gif

Since Google has provided a great app engine for me. And I don’t have enough money to host a standalone server. I decided to tranfer my currently project from Ruby to Python so that I can use the google app engine. This is not a goodbye to ruby, I really love ruby and rails. But I love you more, all the future users of my web app.  I want to provide my product to you asap, that’s the reason why I am using python.

May
29

为什么我不爱用windows

Posted by » developerly
80 hits

昨天小开了一下很久没用的windows,结果一上来,QQ也要安装更新、Skype也要安装更新,关机的时候还不能好好关,windows还要安装更新,我说这些软件厂商就不能负责点,做点质量高的产品,少来的更新不成。接下来转载一篇,其中Apple的软件我没用过,Flash吧勉强还可以,其他的真的很让人讨厌:

ZDNet UK的一篇文章列举了10种常见的,但常惹你生气的软件.互联网送给你很多玩具,它重写了商业和娱乐的规则.
但是你并非不会产生烦恼,实际上它 们常常会弄巧成拙,令你痛苦不堪,甚至幻想没有互联网,它从来没有出现过.

Adobe Reader:我们只是用它看电子书,但它却像官僚机构一样臃肿,不间断的更新(还要求重启,这是什么道理?).

Apple:它让微软看起来是个好人.

Windows Update:“立即重启”,“不要关闭电源,直至5项更新完成”,“你需要安装Microsoft Genuine Advantage”,“请在安装前关闭所有应用程序”.

RealPlayer:犯下的罪行罄竹难书,它嵌入的广告比报纸首页还多(其实和国内的许多软件相比,它已算是圣人了).

Java:它是一种程序语言,但是不甘寂寞,总是想提醒你Sun有多好,并推销OpenOffice,还在你的浏览器上安装Yahoo Toolbar,天底下有这种语言吗?

Yahoo:它设法控制你的邮件、搜索引擎、主页,更别提该死的工具栏了.

Norton Antivirus:就像是你的桌面出现了撒旦.

预先捆绑的软件:一些公司总是想夹带私货,索尼就是其中的王者:悄悄的安装程序,并加入到系统启动项中,或者消耗巨大的资源.

Outlook/Exchange:当免费的web email飞速发展时,它还是不紧不慢,过好多年才更新一次.

Flash:自我感觉良好的播放器.

我再加两个

卡巴斯基:我Unbuntu虚拟机上的XP没有装任何杀毒软件,才发现其实XP运行还是挺快的,可怜我的Accer双核笔电,装了卡巴斯基后,启动跟牛似的,慢!
Google工具栏:google品牌确实不错,但是到处让人安装你们的工具栏就是不对的了。我喜欢清清爽爽的浏览器界面,拜托,能不能把更多精力放在Linux相关产品的开发上,现在linux的desktop居然连widget都没有!

May
28

NET安全编程无责任指南:DoNotIndirectlyExposeMethodsWithLinkDemands

Posted by » developerly
47 hits

今天利用FxCop对工作中代码进行分析,代码片段如下:

private static FileStream CreateFileStream(string fName, string stream, FileAccess access)
{
SafeFileHandle handleValue = NativeMethods.CreateFile(string.Format(”{0}:{1}”, fName, stream),
Convert(desiredAccess),
access== FileAccess.Read ? NativeMethods.FILE_SHARE_READ : 0,
IntPtr.Zero,
NativeMethods.OPEN_ALWAYS,
0,
IntPtr.Zero);

if (handleValue.IsInvalid)
{

return null;
}

return new FileStream(handleValue, desiredAccess);
}

分析结果是[Warning]Do not indirectly expose methods with link demands。具体来看因为使用了Microsoft.Win32.SafeHandles.SafeFileHandle的IsInvalid方法。这个方法使用了LinkDemand签名因为它是一个非托管的方法。对于调用使用了LinkDemand声明的方法。对于此类方法只有完全受新人的调用方才能使用他们,除非程序集通过应用AllowPartiallyTruestedCaller属性显式的决定参与使用。这样避免了非受信任的代码通过反射等方式来调用此类方法。

因此要解决上述问题,需要对函数CreateFileStream进行声明

我使用 [System.Security.Permissions.PermissionSetAttribute
(System.Security.Permissions.SecurityAction.Demand, Name=”FullTrust”)]
来表明函数是安全的。具体的描述可以参考如下链接:

http://www.host01.com/article/Net/c/056609494910420_3.htm

May
23

The Heavy Metal Music Show

Posted by » developerly
71 hits

Here is the flyer of heavy metal music show. Promise it to be cool.

flyer

May
22

Erlang:exit函数

Posted by » developerly
59 hits

又到了洗脑的时候了。今天介绍一下exit函数。在erlang进程中,exit函数可以让当前的进程退出,包括正常退出和异常退出,两种情况。

exit(normal)可以让当前进程正常退出

exit(Reason)可以让当前进程以Reason为理由异常退出,当然,如果调用的时候Reason=normal,则会让进程正常退出

May
20

Erlang:orelse/or/andalso/and

Posted by » developerly
68 hits

明显有点打补丁的感觉。不妨在这里说说

or 和 and是bool操作符,操作符两边的表达式都要被求值,而orelse和andalso则不一定。比如:

true or Expr  … Expr会被求值
true  orelse Expr … Expr不会被求值

所以 true oresle 1/0 是合法的

andalso的情况类似

May
16

用wix打包的时候需要注意的问题

Posted by » developerly
90 hits

wix是微软某个高人写的基于命令行的MSI打包工具。通过编写基于XML的wxs文件,可以对安装过程进行精确控制。同时可以通过编写CustomAction并加入到InstallExecuteSequence节点下完成一些打包过程中所需要的外部操作,比如读写注册表,写eventlog,创建新文件夹等。

对于如下的CustomAction

<CustomAction Id=’InstallXXXService’
Directory=’INSTALLDIR’
ExeCommand=”[\”][SystemFolder]cmd.exe[\”] /d /c [\”][INSTALLDIR]XXXX.exe[\”] -install > demuxerinstall.log 2>&1″
Execute=’deferred’
TerminalServerAware=’yes’
/>

并加入到如下的 InstallExecuteSequence
<InstallExecuteSequence>
<Custom Action=’InstallXXXService’ After=’InstallFinalize’><![CDATA[Not Installed]]></Custom>
</InstallExecuteSequence>

安装时会提示:
DEBUG: Error 2613: InstallXXXService action sequenced incorrectly.
The installer has encountered an unexpected error installing this package. This
may indicate a problem with this package. The error code is 2613. The arguments
are: , ,

解决方案: 如果需要在InstallFinalize之后执行的CustomAction操作,需要把 Execute属性改成immediate

May
15

全民大讨论:由于SxsUninstallCA导致卸载包含VC++代码的.NET程序异常缓慢

Posted by » developerly
149 hits

这是一个在开发中遇到的问题。然后在网上搜到很多的讨论,翻译汇编如下。

我的VS 2005安装程序的安装和卸载在windows vista下面都没有问题,但是不能在windows XP下面正常卸载。基本上来说,如果我在windows xp下面卸载,在卸载的最后(程序文件都已经删除的时候),卸载对话框却不能关闭。而且也没有任何出错信息。没有办法,我只好在任务管理器里面杀掉这个进程。大家有什么好的主意吗?谢谢
– Mario M.


跳转后阅读全民大讨论:由于SxsUninstallCA导致卸载包含VC++代码的.NET程序异常缓慢的完整内容

May
13

ubuntu 下面安装Erlang使用

Posted by » developerly
72 hits

学习Erlang有几天了,今天终于在家里的Ubuntu上面安装好Erlang的环境了,我是懒人,没有下载源代码编译,直接使用

sudo apt-get install erlang

很简单就安装好环境了

May
13

命令行粉丝团:cacls补充

Posted by » developerly
70 hits

上一篇文章中我们介绍了cacls的使用,但是使用cacls总会出现如下提示:

Are you sure [Y/N]?

必须确认输入Y才能继续完成这个命令。在批处理中我们有时候不想使用这样的交互模式,而想一切都自动化。可以使用如下方法:

Echo y| Cacls “C:\ACA” /t /g leesoft\developerly:F

就可以了。