
2010年6月4日
前两天闲着无聊,翻看了一下我电脑中的源代码目录,东西比较多,惊喜的发现VS2003的项目目录中存放大学时学数据结构的一个专门的文件夹,从第一次上机实验到最后期末的课程设计的程序都通通放在里面:

那些0-\d开头文件夹中的程序都不记得是实现什么功能的了(看了代码才记起好像是当时老师为了让我们更好学习数据结构,特地花了一个月的时间复习C中的指针等内容做的一些小练习),其他的倒是一目了然。看到这样一个文件夹,当时我一下就想起大二那段时间疯狂学习C++与数据结构的情景,感觉那段日子是即郁闷又开心又充实,没想到,现在本僧从了.NET,却从来没有一位师太愿意做我的下一行代码,,想哭啊。。。还是先不回忆了(发现写博客写得少的人最开始就喜欢写回忆录,真SB的毛病!!),言归正传。
刚刚在Google上搜索了一下《马踏棋盘》,刚好博客园上有一篇文章【这里】,没有仔细看代码,不过一个惊人的发现是,都用到了一对常量数组:
int nx[8]={-1,-1,1,1,-2,-2,2,2};
int ny[8]={-2,2,-2,2,-1,1,-1,1};
呵呵,,方便寻找走下一步格子用的。。。解决思路都基本上一样,优化算法也是一样,很高兴当时优化算法是自己想出来的,TMD,让我痛苦了一个星期,当时辅导老师为了让我独立完成这个东西,每次问他的时候都在旁边装傻。。
方案定了后,当时花了一两天的时间完成程序的编写,后来想想觉得原来那种教学试的Dos窗口程序演示这个问题太过于枯燥,于是又花了一天的时间,用我仅学的几个GDI函数,写了一个MFC的居然是基于多文档类型的程序,放个图上来:

虽然界面不怎么好看(说明一下,红色椭圆是已经过的,黄灰色是下一步可以走的,紫色是优化算法选择下步走的,黑色是当前位置,紫红色是当前位置的上一步),特别是那两个别致的按钮,^_^。。。不过比这个还是直观多了:

那串坐标。。。。
程序都不想说了,,上图的第4项,,当时为了响应辅导老师的要求,用我那赛扬4的电脑执行了一个晚上也没算出来究竟有多少条路径,,我想这里面是不是有更优的算法,,辅导老师到最后都没告诉我怎么做,,,郁闷。。。
不说了,吃饭去了,想玩的可以下载编译后的程序玩一玩,,,源码打包,还比较大,懒得清理了,,想要源代码的,给我留言发邮箱了。。。
点击这里下载
posted @ 2010-06-04 17:08 Think... 阅读(475) 评论(5)
编辑

2009年12月28日
最近几天在看Community Server 2008.5的代码,CS中使用的FLV默认播放器是swfbject1.5的版本,此版本在Chrome浏览器中无法使用(不知道是很原因),于是在官方网站上下载了2.2的版本,拿下来一看尽是些JS(没有找到播放器文件,可能是连播放器文件都需要运行时从网上下载下来,太没意思了),没心思了,于是干脆将CS中默认的FLV播放器修改为Google的flvplayer(可以从这里下载,建议下载Maxi版本),使用起来方便多了,下面将介绍如何集成到Community Server中。
1、添加播放器到CS中
先将下载下来的播放器文件拷贝到CommunityServer.Components项目下的UI\Resources目录下,然后在Visual Studio中,将该播放器文件包含到项目中,以及打开VS中该文件的属性,将生成选项修改为"嵌入的资源",如下图:

注意,我这里将播放器的文件名修改了一下,将后面的版本信息部分去掉了(player_flv_maxi_1.6.0.swf)。
2、修改代码
打开CommunityServer.Components项目下的UI目录下的VideoFileViewer.cs文件,在类的声明部分将播放器文件声明为Web资源,注意第3行是添加上去的:

代码
1
2 [assembly: WebResource("CommunityServer.Components.UI.Resources.mediaplayer.swf", "application/x-shockwave-flash")]
3 [assembly: WebResource("CommunityServer.Components.UI.Resources.player_flv.swf", "application/x-shockwave-flash")]
4 [assembly: WebResource("CommunityServer.Components.UI.Resources.swfobject.js", "text/javascript")]
5 [assembly: WebResource("CommunityServer.Components.UI.Resources.silverlight.js", "text/javascript")]
6 [assembly: WebResource("CommunityServer.Components.UI.Resources.wmvplayer.js", "text/javascript")]
7 [assembly: WebResource("CommunityServer.Components.UI.Resources.wmvplayer.xaml", "application/xaml+xml")]
8 [assembly: WebResource("CommunityServer.Components.UI.Resources.insertmarkup.js", "text/javascript")]
9 namespace CommunityServer.Components
10 {
11 public class VideoFileViewer : IFileViewer
12
然后在此代码文件中找到如下方法:
public string RenderView(string url, int width, int height)
定位到switch块中的case "FLV":部分,将原来的代码注释,修改成如下:

代码
1 case "FLV":
2 requiresWrapper = false;
3
4 ui.Append("<object ");
5 AddProperty(ui, "type", "application/x-shockwave-flash");
6 AddProperty(ui, "data", Globals.FullPath(page.ClientScript.GetWebResourceUrl(typeof(VideoFileViewer), "CommunityServer.Components.UI.Resources.player_flv.swf")));
7 AddProperty(ui, "width", width.ToString());
8 AddProperty(ui, "height", height.ToString());
9 ui.Append(">");
10
11 AddParameter(ui, "movie", Globals.FullPath(page.ClientScript.GetWebResourceUrl(typeof(VideoFileViewer), "CommunityServer.Components.UI.Resources.player_flv.swf")));
12 AddParameter(ui, "allowFullScreen", "true");
13 string strFLV = string.Format("flv={0}&title={1}&width={2}&height={3}&showstop=1&showvolume=1&showtime=1&showfullscreen=1&srt=1",
14 url, "点击播放按钮开始播放", width.ToString(), height.ToString());
15 AddParameter(ui, "FlashVars", strFLV);
16 ui.Append("</object>");
3、然后重新编译Web工程,就可以使用了。
MP4视频类型是比较常用的类型,下面将介绍如何将使Community Server支持MP4的播放:
1、首先让CS将MP4文件的处理放到VideoFileViewer.cs代码中处理,要做如下修改:
打开communityserver.config文件,找到<FileViewers></FileViewers>中的类容:

代码
1 <FileViewers>
2 <add type="CommunityServer.Components.ImageFileViewer, CommunityServer.Components" extensions="gif;jpg;jpeg;bmp;png" urlPattern="^[^\?]*?\.(?:gif|jpg|jpeg|bmp|png)(?:\?.*)?extensionsquot; />
3 <add type="CommunityServer.Components.VideoFileViewer, CommunityServer.Components" extensions="avi;mov;swf;ra;ram;rpm;rv;mpg;mpeg;wmv;asf;asx;wm;wvx;wmx;flv;mp4;rm;rmvb" urlPattern="^[^\?]*?\.(?:avi|mov|swf|ra|ram|rpm|rv|mpg|mpeg|wmv|asf|asx|wm|wvx|wmx|flv|mp4|rm|rmvb)(?:\?.*)?extensionquot; />
4 <add type="CommunityServer.Components.AudioFileViewer, CommunityServer.Components" extensions="mp3;wav;wma" urlPattern="^[^\?]*?\.(?:mp3|wav|wma)(?:\?.*)?extensionsquot; />
5 <add type="CommunityServer.Components.YouTubeFileViewer, CommunityServer.Components" urlPattern="http://(?:[^.]+\.)?youtube\.com" />
6 <add type="CommunityServer.Components.SoapBoxFileViewer, CommunityServer.Components" urlPattern="http://video\.msn\.com" />
7 <add type="CommunityServer.Components.GoogleVideoFileViewer, CommunityServer.Components" urlPattern="http://video\.google\.com" />
8 <add type="CommunityServer.Components.MySpaceTVFileViewer, CommunityServer.Components" urlPattern="http://(?:vids\.myspace|myspacetv)\.com" />
9 <add type="CommunityServer.Components.YahooVideoFileViewer, CommunityServer.Components" urlPattern="http://video\.yahoo\.com" />
10 <add type="CommunityServer.Components.RevverFileViewer, CommunityServer.Components" urlPattern="http://(?:www\.)?revver\.com" />
11 <add type="CommunityServer.Components.VimeoFileViewer, CommunityServer.Components" urlPattern="http://(?:www\.)?vimeo\.com" />
12 <add type="CommunityServer.Components.VeohFileViewer, CommunityServer.Components" urlPattern="http://(?:www\.)?veoh\.com" />
13 <add type="CommunityServer.Components.DailyMotionFileViewer, CommunityServer.Components" urlPattern="http://(?:www\.)dailymotion\.com" />
14 <add type="CommunityServer.Components.ClipShackFileViewer, CommunityServer.Components" urlPattern="http://(?:www\.)?clipshack\.com" />
15 <add type="CommunityServer.Components.BlipTvFileViewer, CommunityServer.Components" urlPattern="http://[^/]*?blip.tv" />
16 <add type="CommunityServer.Components.GoFishFileViewer, CommunityServer.Components" urlPattern="http://(?:www\.)?gofish.com" />
17 <add type="CommunityServer.Components.ScreencastFileViewer, CommunityServer.Components" urlPattern="http://(?:www\.)?screencast.com" />
18 <add type="CommunityServer.Components.DefaultFileViewer, CommunityServer.Components" extensions="*" urlPattern=".*" />
19 </FileViewers>
20
注意第3行,在extensions属性的字符串中加入";mp4"(我这里在;flv后面),然后在urlPattern属性的字符串"^[^\?]*?\.(?:avi|mov|swf|ra|ram|rpm|rv|mpg|mpeg|wmv|asf|asx|wm|wvx|wmx|flv"后面加入"|mp4"字符串,这样,mp4文件的处理就交给CommunityServer.Components.VideoFileViewer这个类来处理了。
2、选择播放器来播放MP4视频
上面Google的FLV播放器就可以播放MP4视频,所以很好办,在case "FLV":后面加入case "MP4":就可以了。接下来重新编译Web工程就可以了。
posted @ 2009-12-28 18:23 Think... 阅读(448) 评论(1)
编辑

2008年12月10日
安装了PCBeta制作的Windows7 6956,最开始希望看到是有没有解决之前我在6801中那个中文显示不正常的问题【这里】,果然,这个版本的中文显示很正常,用了一阵之后却发现,任务管理器中的CPU资源显示不同,看截图:

可以看到,这显示了一个CPU的资源图,开始怀疑我的笔记本是假双核(由于本人穷,买的是水货TP),但是看了一下系统的信息(下图),却发现CPU的信息没有问题,难道是Windows7的Bug,或许是这个制作的版本有问题!

与6801的评分也不同了:

(6801)
posted @ 2008-12-10 11:02 Think... 阅读(309) 评论(2)
编辑

2008年11月28日
终于装上了Windows7,但是发现Windows7打开AREO效果后对中文的支持不好,给个图片:

这个是装了PCBeta中文包后系统右键菜单的截图(在没有装中文包之前,中文的显示也不正常,排除中文包的干扰),可以看到图片中,
中文菜单项的显示都不正常,但是不用AREO效果后,所有的中文都显示正常。不知道装了Win7的朋友是否有相同的问题。
再加一个Win7的评测图:

这个图令我不解的是显卡的3D游戏分居然那么高,我这个是集成的X3100啊,是不是评测有问题?!
posted @ 2008-11-28 17:05 Think... 阅读(1570) 评论(3)
编辑

2008年6月13日
要实现的功能显而易见,我想很多人都有过这样的需求,不多说,给代码:
<input type="text" ID="txtNotAllowEdit" onkeypress="return false;" ondrop = "return false;" ondrag="return false;" onbeforepaste="clipboardData.clearData('Text');" oncontextmenu="return false;"/>
首先
ondrop = "return false;" 与 ondrag = "return false;" 就是在拖进与拖出文本时的事件.这样就不能用拖放来改变内容了.
然后
onbeforepaste = "clipboardData.clearData('Text');" 就是在粘帖的时候的事件.在这里,我将剪贴板中的Text的数据清空,这样用户就不能粘帖了, 这种粘贴包括右键菜单与快捷方式的粘贴.我们可以看到粘贴菜单项是灰色的(先把后面的oncontextmenu事件去掉).
最后
oncontextmenu="return false;" 是在文本框中点击右键的时候触发该事件,虽然不能粘贴了,但是别忘了右键菜单还有一个删除或剪切文本的功能.
posted @ 2008-06-13 16:21 Think... 阅读(212) 评论(3)
编辑

2008年5月17日
摘要: .NET的源码早就放出来了,但是由于一直没有时间去下载,最近终于尝试用NetMassDownloader进行批量下载,但是发现很多源码都没法下载,只有重新下载,郁闷的是,那些远下载过的代码还得重新下载。于是把代码重新修改了一下,放弃已经下载的文件,加了一个日志记录,记录那些没有下载的代码文件,格式如下:FileName:代码文件名称URL:代码文件下载链接地址LocalPath:代码保存根目录+自...
阅读全文
posted @ 2008-05-17 11:45 Think... 阅读(503) 评论(2)
编辑