在Word中画精确图形

众所周知Word的绘图功能是出了名的弱,很奇怪微软有钱去弄什么 信息检索 也不愿意下功夫把绘图功能改得好用些。这不,我只想要这样一个简简单单的圆角, 用Word的曲线功能画了一个小时也没能画得完美无缺。

curve-in-word-01.png

好在Word还不是无药可救,它支持把wmf文件转换成绘图对象, 这样只要用其他软件画好图之后存成wmf,再导入Word就可以了。 那么做wmf用什么软件呢?手边有Illustrator和AutoCAD, 试了试AutoCAD的导出为wmf格式挺好用,就是它了。

2008-8-18更新; :今天发现这个名为Dia的自由软件 也能方便地绘制wmf格式的图片。如果不需要特别精确的定位,又无法使用AutoCAD的话, Dia也是个非常不错的选择。

(Read More)

[CGI]检测是否为https连接

在写CGI时,有时需要检测当前的连接是否是https的,比如设置cookie时。 可以通过HTTPS环境变量来检测,在http下该环境变量不存在,https下该环境变量值为 on。

my $https = (defined $ENV{HTTPS}) ? lc($ENV{HTTPS}) : 'off';

然后在设置cookie时即可这样做:

my $cookie = new CGI::Cookie( -name   => 'foo',
                              -value  => 'bar',
                              -secure => ($https eq 'on') ? 1 : 0
                             );

(Read More)

禁用Office 2003的“信息检索”功能

Office 2003的这个“信息检索”功能非常烦人,本来我们做程序员的就没什么需求要“研究”什么东西,而且这个功能一旦启动就要花掉几秒钟的时间去搜索辞典、搜索网络,何况公司的局域网内它根本就搜不到任何内容,更要命的是它的快捷键居然是Alt+单击这个极其容易误操作的组合……所以它不仅仅是鸡肋,而且是生产力发展的巨大障碍了。

不过搜索了一下,发现虽然不论在中文圈、日文圈还是英文圈中这个功能都是臭名昭著,人人都想禁用之而后快,但无一例外的答案都是“不可能”。不过好在虽然不能禁用Alt+Click的快捷键,但可以让信息检索窗口不去搜索网络和词典。这样尽管仍然会误操作,但可以省去那几秒钟的假死,也算可以接受了。

方法如下:

  1. 打开 HKLM\SOFTWARE\Microsoft\Office\11.0\Common\Research\Options,建立两个键值:NoAdd:DWORD=1,NoDiscovery:DWORD=1。据说可以禁止信息检索功能访问网络。
  2. 删掉 HKCU\Software\Microsoft\Office\11.0\Common\Research 下的所有东西。貌似删掉 Sources 主键之后就不会再搜索辞典了。

然后重新启动Office就可以了。

微软开发了这样一个阻碍生产力的功能,反过来还要我们为这个功能付钱,……

(Read More)

memcached全面剖析--5. memcached的应用和兼容程序

  • 发表日:2008/7/30
  • 作者:长野雅广(Masahiro Nagano)
  • 原文链接:http://gihyo.jp/dev/feature/01/memcached/0005

前几次的文章在这里:

我是Mixi的长野。memcached的连载终于要结束了。到上次为止,我们介绍了与memcached直接相关的话题,本次介绍一些mixi的案例和实际应用上的话题,并介绍一些与memcached兼容的程序。

(Read More)

再谈BlackBerry 7230的激活

这年头BlackBerry 7230的激活已经是老掉牙的话题了。其实原理相当简单, 无非是让BB做个到MDS服务器的连接,连上MDS之后BB就认为自己激活了, 然后就能使用cnwap正常上网了。maxpda上也有高人贴出了 自建MDS服务器进行激活的办法。

简单来说,BlackBerry 7230激活的过程如下:

  1. 导入ServiceBook,其中IPPP的IP地址需要指向MDS服务器。
  2. 在Options->Service Book中恢复删除所有内容。
  3. 设置Options->TCP的APN为空。
  4. 以上的设置是保证BlackBerry 7230能使用ServiceBook中设置的MDS服务器进行连接。
  5. 然后启动任意一款能不通过WAP建立网络连接的程序。QQ3可以,自带的浏览器似乎不行。
  6. 使用该程序建立直接的网络连接(不能走WAP)。
  7. 待BlackBerry 7230连接到MDS服务器之后,激活成功。
  8. 此时在Service Book中删除IPPP,并设置TCP的APN为cmwap,就可以用WAP上网了。

(Read More)

MediaWiki文件上传的设置

新版的MediaWiki(1.11.1)默认情况下文件上传是关闭的,不过打开它非常容易。

编辑LocalSettings.php,修改下面这一行为true即可。

$wgEnableUploads       = true;

之后页面左侧的“工具箱”中会多出一项“上传文件”,单击它即可上传文件。

但如果你要上传png格式的图片,就会发现,系统禁止了png类型的文件。调查includes/DefaultSettings.php的 $wgFileExtensions 变量, 可以看到png格式是允许的。但为什么无法上传呢?JPG和GIF都可以正常上传啊。

原因是MediaWiki会判断上传文件的MIME Type,并禁止某些类型的MIME Type上传。 而文件的MIME Type获取是通过php的mime_magic模块进行的, 默认情况下这个模块无法正确识别png格式,所以png图像就无法得到正确的MIME Type,于是上传失败。

在phpinfo()中可以看到这样几行文字:

mime_magic support enabled
Directive Local Value Master Value
mime_magic.debug Off Off
mime_magic.magicfile /etc/httpd/conf/magic /etc/httpd/conf/magic

得知mime_magic的配置文件是 /etc/httpd/conf/magic。打开此文件就可以发现其中并没有PNG格式。

在GIF和JPG文件的附近添加这样一行:

# PNG
1       string          PNG             image/png

然后重新启动httpd。这样PNG文件就可以正常上传了。

(Read More)

memcached全面剖析--4. memcached的分布式算法

  • 发表日:2008/7/23
  • 作者:长野雅广(Masahiro Nagano)
  • 原文链接:http://gihyo.jp/dev/feature/01/memcached/0004

前几次的文章在这里:

我是Mixi的长野。 第2次第3次由前坂介绍了memcached的内部情况。本次不再介绍memcached的内部结构,开始介绍memcached的分布式。

(Read More)

PHP+MySQL八大动态Web应用实战

PHP+MySQL八大动态Web应用实战

豆瓣上的介绍, 购买此书: 当当, 卓越, ChinaPub, 蔚蓝

这本书是今年二月份翻译的,两个人合作,用了一个半月的时间翻译+校对,虽然进度安排比较紧,但总算是按时交了稿,翻译的质量也还说得过去。

上周接到博文视点的消息,说这本书已经出版了,样书已经寄出来了。不过我还没收到,估计下周就能收到样书了吧。到网上查了查,发现各大书店已经开始卖了。

这本书的内容主要是面向PHP初学者的,但正如作者在前言中所述,这本书不会教你PHP和MySQL的基础知识,而是通过实际的项目进行讲解,在项目进展的过程中逐步地讲授需要的知识。个人认为这种方法要比教科书的好得多。我们在实际工作中学习也与之类似,不会有人去一步步手把手地教你怎样学习,都是直接将新人投入到项目中,在项目中磨砺。

书中介绍了八个实际可用的项目,除了基本的PHP和MySQL之外,还有较为新颖的Ajax、较高深的PEAR等内容。初学者通过这些项目可以切实地体会到PHP的方便性,而稍有基础的人则可以将书中的例子直接拿来,简单修改后即可直接放在网站上使用。当然,如果你已经是PHP高手,那么能从此书中学到的内容就有限了。

当然,本书自身也有一些不足之处,或许是因为作者精于技术但不善表达的缘故,书中一些概念的解释不太容易理解。加之我们英文水平有限,许多原文中的俗语都无法精确翻译出来,也影响了原文意思的表达。还望读者在阅读的过程中,借助Google、百度等搜索引擎,主动去查找那些难以理解的概念。另外,我们尽最大的努力保持翻译结果符合原意,但难免有疏漏之处,希望读者能够指出。

(Read More)

memcached全面剖析--3.memcached的删除机制和发展方向

下面是《memcached全面剖析》的第三部分。

前几次的文章在这里:

(Read More)

memcached全面剖析--2.理解memcached的内存存储

下面是《memcached全面剖析》的第二部分。

(Read More)