Loveyuki's BLOG

.NET 2.0 中慎用 RegexOptions.Compiled
Loveyuki | 学习笔记 | 2008-03-13 22:59 | 609 点击 | 22 评论

Bitrac 一直以来都有一个很头疼的问题,就是执行时间竟然有 300 多毫秒,虽然感官上速度并不是很明显的慢,但是看到 300 毫秒的时间还是让我这个开发者头疼,以前写 L-BLOG 执行时间也才是 100 毫秒左右而已,.NET 不会比 ASP 速度更慢的,因为以前写 Geekera 的时候执行时间只有 30 毫秒而已。用 JetBrains dotTrace 跟踪了一下程序的执行发现 URLRewrite 和 模板引擎的正则速度超级慢,一直以来也没想出哪里出了问题。今天试着把正则的 RegexOptions.Compiled 选项去掉以后,发现正则的速度提高了好多好多,上 MSDN 看了下 RegexOptions.Compiled 的选项意思,写的也很明白:指定将正则表达式编译为程序集。这会产生更快的执行速度,但会增加启动时间。但是具体啥意思还真没弄明白,后来用 Google 搜索了一下,看到一篇文章:http://blog.livid.cn/zackzhu/200711/thinking/17_395.html 终于弄明白了这个选项的具体意思。

Bitrac 现在最头疼的问题已经解决了,心情那个舒服啊。另外还有一个小问题就是有时候第一次启动会报错误,看错误日志是个数据库文件 IO 方面的错误,估计跟数据库文件的锁定有关系,有机会查查资料,看到底是什么问题。这个问题出现后,一般刷新一下就可以了……真奇怪。

如果你遇到同样的问题,希望这篇文章能带给你些许帮助,如果你有更好的方法或者解释,希望留言告诉我。

UBB 编辑器和 HTML 可视化编辑器的利弊
Loveyuki | 学习笔记 | 2008-02-22 18:00 | 536 点击 | 11 评论

两年前,基本所有的论坛和博客程序都是使用 UBB 编辑器的,但是 UBB 编辑器的缺点很明显,无法马上看到自己写的日志的样子,要调整起来也不是那么容易,而且各种程序的 UBB 解析器不同所实现的功能也不全一样。不过 UBB 的好处也很明显,程序对内容的控制力十分强大,开发起来也很容易。

鉴于 UBB 的缺点很明显,所以近两年都在努力发展 HTML 可视化编辑器(也叫所见即所得编辑器),可视化编辑器的缺点和优点也同样明显,HTML 可视化编辑器的优点就如他的名字一样,所见即所得,可视化,使用者可以在编辑内容的同时就看到内容所呈现的样式,不过 HTML 可视化编辑器的缺点也非常明显,程序对内容的控制力远不如 UBB 编辑器。由于 XSS 攻击以及 HTML 标签必须闭合的特性,如果要使用 HTML 可视化编辑器必须要有一个强大的后台过滤功能,否则 HTML 编辑器带来的只能是噩梦,而不是便利。

特希望 Internet Explorer,Mozilla Firefox,Apple Safari 还有 Opera 等浏览器可以内置一个可视化编辑器。FCKeditor 就不错,兼容性很强,不过体积嘛就有点巨大了。

前几天小写了一个可视化编辑器,就是现在的评论编辑器,感觉 Internet Explorer 的优势还是很明显的,光光标定位和分段问题 Firefox 就让人很头疼。

[收集]自定义 Firefox 的磁盘缓存目录
Loveyuki | 学习笔记 | 2008-01-18 15:46 | 645 点击 | 4 评论

在 Firefox 地址栏输入 about:cache 以后可以看到 Firefox 的默认磁盘缓存目录是在 Windows 用户配置文件夹里面,我们可以通过很简单的设置把磁盘缓存目录放入其他目录:

  1. 地址栏输入 about:config
  2. 右键新建一个字符串,名为 browser.cache.disk.parent_directory
    然后输入新的临时文件的路径即可。比如  D:\Temporary Internet Files
  3. 检查 browser.cache.disk.enable,这个必须要设定为 true
  4. 地址栏输入 about:cache,可以看到缓存目录已经改变了。

个人还是建议使用 Portable Firefox。

[转载]去除SATA硬盘的删除可移动硬件标志方法
Loveyuki | 学习笔记 | 2008-01-18 11:18 | 745 点击 | 11 评论

如果您的电脑使用的是 nForce 芯片组的主板和串口硬盘。在系统中安装好所有的硬件驱动程序后,发现在任务栏右下角始终会显示一个“安全删除硬件”的图标。这是 nForce 芯片组在安装了 IDE-SW 主板驱动以后,系统会把 SATA 硬盘识别为可移动设备,每次开机后都会显示“安全删除硬件”图标。

  1. 点开始-->运行--> regedit
  2. 找到键值 (电脑应该只有下面的其中一个)
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvata

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvatabus
  3. 新增一个 DWORD 值,名称取名叫 DisableRemovable,值设为1
  4. 重启以后 SATA 硬碟就不会变成可以移除设备了。

使用后没有后遗症,打印机、鼠标、U盘、移动硬盘等都可正常使用。

在 Arch Linux 下配置 ASP.NET 运行环境
Loveyuki | 学习笔记 | 2008-01-13 13:33 | 600 点击 | 11 评论

昨天我们成功配置了 Lighttpd + FastCGI + PHP,今天我们需要让 Lighttpd 支持 ASP.NET,Linux 下要部署一个 ASP.NET 服务器,Mono 这个 .NET 在 Linux 下的实现是必不可少的。我们首先直接用 Pacman 安装 Mono,至于 Mono 的 FastCGI 支持需要从 SVN 下载回来编译安装,所以我们同时也安装一些必需的工具。pacman -S mono svn automake autoconf libtool然后我们随便建立一个目录,进入后运行 svn co http://mono-soc-2007.googlecode.com/svn/trunk/brian/FastCgi/ fastcgi-mono-server源代码下载回来后进入 fastcgi-mono-server 目录打开 configure 文件,把第2387行注释掉,然后运行./autogen.sh --prefix=/usr && make && make install到这里,Mono 的 FastCGI 功能已经安装完成,剩下的就是继续配置 Lighttpd 了,打开 /etc/lighttpd/lighttpd.conf 文件,把昨天修改过的地方稍微修改一下就可以了fastcgi.server = (
    ".php" => ("localhost" => ("socket" => "/tmp/php-fastcgi.socket","bin-path" => "/usr/bin/php-cgi")),
    ".aspx" => ("localhost" => ("socket" => "/tmp/fastcgi-mono-server", "bin-path" => "/usr/bin/fastcgi-mono-server2", "bin-environment" => ("MONO_SHARED_DIR" => "/tmp/")))
)
fastcgi.map-extensions = (".asmx" => ".aspx", ".ashx" => ".aspx", ".asax" => ".aspx", ".ascx" => ".aspx", ".soap" => ".aspx", ".rem" => ".aspx", ".axd" => ".aspx", ".cs" => ".aspx", ".config" => ".aspx", ".dll" => ".aspx")

配置好以后到 http://code.google.com/p/aspnetsysinfo/ 下载探针测试一下吧,呵呵。

111/3