Matlab中的Dot运算符

Dot(.)运算符,即我们通常所说的小数点,在Matlab中是有着特殊的意义的。Dot除了作为一般的小数点外,还可以和一般的运算符(*、/)一起使用,如:

1
2
3
4
5
ValueA = 8;
ValueB = 1:1:8;
ValueA .* ValueB
ValueA ./ ValueB
ValueB.^5

如果使用一般的四则运算符,那么会出现如下错误:

1
2
3
4
5
??? Error using ==> mrdivide
Matrix dimensions must agree.
 
??? Error using ==> mpower
Matrix must be square.

实际上,Dot表示对矩阵元(即矩阵中的每个元素)的运算。这是由于对于矩阵及矩阵元(矩阵中的每个元素)来说,除法和求平方都是有意义的,并且代表着不同的运算,将产生不同的结果。对于Matlab来说,无法从上下文中得到确切的信息来决定使用何种运算,此时就需要由用户来指明。

Posted in Matlab | Tagged , , | Leave a comment

Windows平台MoinMoin配置心得

呵呵,不管怎么说,最适合这些开源东西的还是Linux平台啊。前几天已经被Apache+PHP弄得精疲力竭,今天又被MoinMoin折磨了一阵。

一些基本的教程就不说了,说一些网上教程上没提到的。

一、CGI模式下的问题

1.url_prefix_static选项的配置

CGI模式下,一般需要在httpd.conf中配置如下内容:

1
2
3
4
5
6
Alias       /wiki/ "D:/Dev/WAMP/www/htdocs"
 
<Directory "D:/Dev/WAMP/www/htdocs">     
     Order allow,deny
     Allow from all
</Directory>

D:/Dev/WAMP/www/htdocs 是用来存放网站的公共主题模板的地方。这要与webconfig.py中的url_prefix_static选项一起配置。使用Apache搭建MoinMoin时,必须指定url_prefix_static为httpd.conf中Alias属性后的第一项,即”/wiki/”。如下:

1
url_prefix_static = '/wiki'

1.9版本的MoinMoin中,该项默认是不启用的。

2.目录权限问题
Windows平台下必须把MoinMoin中的htdocs目录拷贝的Apache的网站目录中,一般为htdocs(本文中,我设置的是D:/Dev/WAMP/www/),否则将无法访问到。同时,moin.cgi文件必须在apache的cgi-bin目录中,否则cgi程序无法运行。

3.存在的问题
网站可以运行的,但是只能是全英文的,一点击中文的链接就会出现乱码,尚未弄清楚原因。

二、mod_python模式
恩,除了没有配置成功外没有其它问题了。网上的教程(包括官网)没有一个是针对MoinMoin1.9的,最大的问题可能是PythonHandler这一项的设置有问题,但是还是没有找到正确的设置方法。

三、简单模式
直接运行wikiserver.py即可。当然也是我最后的选择。大家也可以参见这里Moin搭建手记

Posted in Web | Tagged , , , | Leave a comment

Win7下本地Apache与PHP环境的搭建

今天本来想搭建一个本地的wordpress测试环境,本着“自己动手,丰衣足食”的精神,决定自己配置Apache和PHP。没想到这是一场噩梦的开始。其中的曲折就不说了,折腾了一天,不仅没有安装成功,而且连错误的原因也没弄得很清楚,相当郁闷。在这里大致列出一下问题,希望不幸遇到的同学能少走点弯路。

操作系统:Windows7简体中文版
Apache版本:2.2.14 & 2.2.4
PHP版本: 5.2.13 & 5.3.1
问题症状:正确安装Apache和PHP后,修改Apache的配置文件httpd.conf。加入

1
LoadModule php5_module "D:/Dev/WAMP/bin/php/php5.3.0/php5apache2_2.dll"

之后重启Apache服务器,发现无法启动。

可选解决方案:使用WAMP(WAMP在windows7下面表现良好)。

当然,如果有同学重现并解决问题,希望能通告一声,万分感谢。

Posted in Web | Tagged , , , | Leave a comment

飞翔

还是没有挡住3D电影的诱惑,去中影天河观看了Avatar。剧情就不说了(实在是一般),3D显示的效果十分震撼。特别是在磁场漩涡中悬浮在空中的山那个镜头,不禁使我想起了仙剑中的蜀山。在仙剑的世界中,蜀山是悬浮在渝州附近的一座仙山。要上蜀山,需要使用御剑之术。当然Avatar中也有自己飞行的方法,人类可以使用飞行器,而潘多拉星球上的人们也可以驾驭鸟类来翱翔于苍穹。其实,借助什么并不重要,重要的问题是人类总有着一颗想飞的心。人类希望自在的飞行,虽然现代的飞行器已经相当发达,但是对于普通人来说还是过于昂贵,专业,也不是那么方便,所以科幻电影中总有着各种对小型载人飞行器的遐想。

Posted in 琐事 | Tagged , , | Leave a comment

Lady in green

Lady in Green 是一款WordPress主题,确切的来说,是我很喜欢的一款主题。不过,我对上面的页首的图片不感兴趣,换成了自己画的草灯立夏小朋友。这是我自己DIY的第一款WordPress主题吧。很可惜的是,自己修改的主题在自己整理资料的时候删掉了,很是惋惜。
有趣的是,前几天在Google上搜索Iceyer的关键字,居然搜到很久以前我练习WordPress使用的一个免费空间,而我的那款主题也正好在上面,于是我又找回了这款主题,呵呵。
那么,先来个预览吧……


Lady in Green(点击查看原始图像)

可惜的是,这款主题不支持WordPress2.9。呜~~用不了。等自己php学好了,就去把那些不兼容的地方改过来:).

Posted in 琐事 | Tagged | Leave a comment

走近WTL--GDI篇

WTL中的GDI类的封装与MFC不同,对于这些类的详细描述,可以参见WTL for MFC Programmers, Part IX – GDI Classes, Common Dialogs, and Utility Classes.
在由MFC的GDI向WTL的GDI转换过程中,有以下几个问题需要注意的:

一、OnPaint函数的处理。
在OnPaint函数的声明中,有以下的两种方法:

1
2
3
4
5
6
BEGIN_MSG_MAP_EX(MyWnd)
....
MESSAGE_HANDLER(WM_PAINT, OnPaint)
...
END_MSG_MAP()
LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);

或者是:

1
2
3
4
5
6
BEGIN_MSG_MAP_EX(MyWnd)
....
MSG_WM_PAINT(OnPaint)
...
END_MSG_MAP()
LRESULT OnPaint(HDC hdc)

实际上,这两种写法在使用中区别不大,第一种传入的四个参数都不会用到,第二种传入的hdc的值是NULL,所以这些参数都是不可以被OnPaint函数使用。那么在OnPaint中如何开始绘图呢?我们可以使用CPaintDC,如下:

1
2
3
4
5
6
LRESULT HexxagonWnd::OnPaint(HDC hdc)
{
    CPaintDC    pDC(m_hWnd);
    CDCHandle  dc(pDC.m_hDC);
...
}

这样,我们就可以方便的使用CDCHandle了。这篇文章也对这个问题做了一定的说明,大家可以参考一下:WTL7.0的一个BUG

二、如何创建双缓冲
在WTL中CDC类被CDCHandle取代,其中对CBitmap的一些操作也有了变化。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CRect lcrcClient;
GetClientRect(&lcrcClient);
CDCHandle MemDC; //首先定义一个显示设备对象
CBitmap MemBitmap;//定义一个位图对象
MemDC.CreateCompatibleDC(NULL);
MemBitmap.CreateCompatibleBitmap(dc,lcrcClient.Width(),lcrcClient.Height());
HBITMAP pOldBit=MemDC.SelectBitmap((HBITMAP)MemBitmap);
 
//使用MemDC绘制一些图像
....
 
dc.BitBlt(lcrcClient.left, lcrcClient.top, 
    lcrcClient.Width(), lcrcClient.Height(), 
    MemDC, lcrcClient.left, lcrcClient.top, SRCCOPY);
 
//绘图完成后的清理
MemBitmap.DeleteObject();
MemDC.DeleteDC();

三、SelectObject函数的变化
WTL的几个select函数都是直接使用对应类型的GDI对象,并且传入参数为HPEN、HBRUSH等类型,如下所示:

1
2
3
HPEN SelectPen(HPEN nPen)
HBRUSH SelectBrush(HBRUSH nBrush)
HFONT SelectFont(HFONT nFont)

一般的CPen等可以通过HPEN操作符直接从CPen转换出HPEN对象,所以保存、恢复GDI对象的代码要做如下改变:

1
2
3
4
5
CPen lcPen;
lcPen.CreatePen(PS_SOLID, 1, gColorGreen);
HPEN lcpOldPen = dc.SelectPen((HPEN)lcPen);
 
dc.SelectPen((HPEN)lcpOldPen);

当然,WTL的GDI与MFC还有一些其他的不同,大家使用时应注意。

Posted in C++ Dev | Tagged , , | Leave a comment

Komm,Susser Tod

Komm,Susser Tod
来吧甜蜜的死亡
歌词:庵野秀明
作曲/曲:Shiro SAGISU
主唱:ARIANNE
录音:铃木恭一


歌词下载


I know, I know I’ve let you down
I’ve been a fool to myself
I thought that I could
live for no one else
But now through all the hurt and pain
It’s time for me to respect
the ones you love
mean more than anything
So with sadness in my heart
I feel the best thing I could do
is end it all
and leave forever
what’s done is done it feels so bad
what once was happy now is sad
I’ll never love again
my world is ending

I wish that I could turn back time
cos now the guilt is all mine
can’t live without
the trust from those you love
I know we can’t forget the past
you can’t forget love and pride
because of that, it’s kill in me inside

It all returns to nothing,
it all comes
tumbling down, tumbling down,
tumbling down

It all returns to nothing,
I just keep
letting me donw, letting me down,
letting me down

in my heart of hearts
I know that I called never love again
I’ve lost everything
everything
everything that matters to me
matters in this world

I wish that I could turn back time
cos now the guilt is all mine
can’t live without
the trust from those you love
I know we can’t forget the past
you can’t forget love and pride
because of that, it’s kill in me inside

It all returns to nothing,
it all comes
tumbling down, tumbling down,
tumbling down
It all returns to nothing,
I just keep
letting me donw, letting me down,
letting me down

It all returns to nothing,
it just keeps
tumbling down, tumbling down,
tumbling down

It all returns to nothing,
I just keep
letting me down, letting me down,
letting me down

Posted in 音之彼岸 | Tagged | Leave a comment

该死的教育网

正如某句话所说,教育网是这个世界上不应该存在的东西,不过既然ChinaNet都日益壮大,来个EduNet又何妨。

无论如何,教育网基本访问不到外国的空间,不管是收费还是免费。无论如何,过年来买个国内空间好了,毕竟还得用上几年的教育网。

PS.教育网这东西果然只适合用来下载。

Posted in Web | Tagged , , | Leave a comment

入手域名

今天忙活了一天,就为了一个新域名。先是下了决心在新网买了iceyer.net的域名。过程还是一番风顺,不过买完查了一下whois信息,持有人是新网公司……不爽。恩等到期了直接转出墙去吧。

之后又开始寻找免费空间练习一下,根据自己以往的经历来看,由于是教育网,基本上国外的空间速度让人难以忍受,电信的童鞋可能会好些吧,教育网的童鞋还是别指望了。最后终于找到一家国内的还可以用的,就是:

白手起家    http://www.168.sh

这个空间比较适合于练手,电信速度不错,教育网同样登不上去。空间大小为168M,支持PHP,MySQL(10M),支持ftp管理;可以通过修改CNAME方式重定向来绑定域名。在上面安装WordPress倒是不错。价格是1.68元/年,相当于免费;另外会弹出广告(一天一个IP一次),但是会被一些浏览器屏蔽掉,相当于没有。

当然,对于仅希望建立Blog的童鞋来说,选一些服务商的WordPress也不错。比如:

www.blog.35.com

Posted in Web | Tagged , , , | Leave a comment

Moin安装手记

这个Moin装的我异常纠结……

首先是安装Python2.6,然后下载Moin1.9(大家放狗搜吧)。

一开始的时候,想用Apache来跑Wiki,可惜老是有500的错误,十分郁闷。后来看《Lovely Python》的PCS时发现Moin自带了一个小型的Web服务端,就在wiki\server目录下,直接把moin文件改名为moin.py就可以了。
其他的就是配置Moin,大家继续放狗。

最后,把moin.py安装成服务,这个比较折磨人了。首先要借助一下instsrv.exe\srvany.exe这两个程序了。

Step1 安装服务
以管理员权限启动一个命令行,输入
instsrv.exe ServiceName srvany.exe
也可以使用sc.exe来注册服务

Step2 编辑注册表,定制自己的服务
实际上,在Step1中注册的服务是一个空的服务,什么都没做,我们需要编辑注册表来定制自己的服务。 打开注册表,定位到
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\ServiceName
在ServiceName下建立一个新的项,名为Parameters; 在Parameters项中新建一个字符串值,名为Application; Application的值为你要启动的脚本的绝对路径或者你要启动的程序路径。
例如我要启动一个moinmoin wiki 服务,那么Application的值可以为
D:\Python26\python.exe E:\Dev\MoinWiKi\server\moin server standalone
如果是一个脚本,可直接写为
D:\StartWiki.bat

Posted in Web | Tagged , , , | Leave a comment