一切福田,不離方寸,從心而覓,感無不通。

ASP.NET实现图片防盗链

使用httpHandle来实现,对图片文件的请求做专门的处理 第一步:创建一个类,继承自IHttpHandler,代码如下 C# code using System; using System.Web; namespace CustomHandler{ public class JpgHandler : IHttpHandler{ public void ProcessRequest(HttpContext context){ // 获取文件服务器端物理路径 string FileName = context.Server.MapPath(context.Request.FilePath); // 如果UrlReferrer为空,则显示一张默认的禁止盗链的图片 if (context.Request.UrlReferrer.Host == null){ context.Response.ContentType = "image/JPEG"; context.Response.WriteFile("/error.jpg"); }else{ // 如果 UrlReferrer中不包含自己站点主机域名,则显示一张默认的禁止盗链的图片 if (context.Request.UrlReferrer.Host.IndexOf("yourdomain.com") > 0){ context.Response.ContentType = "image/JPEG"; context.Response.WriteFile(FileName); }else{ context.Response.ContentType = "image/JPEG"; context.Response.WriteFile("/error.jpg"); } } } public bool IsReusable{ get{ return true; } } } } 第二步:编译成DLL csc /t:library CustomHandler.cs 第三步:添加编译好的DLL引用到当前站点的bin文件夹下 第四步:在Web.Config 中注册这个Handler C# code <system.web> <httpHandlers> <add path="*.jpg,*.jpeg,*.gif,*.png,*.bmp" verb="*" type="CustomHandler.JpgHandler,CustomHandler" /> </httpHandlers> </system.web> //verb指的是请求此文件的方式,可以是post或get,用*代表所有访问方式。CustomHandler.JpgHandler表示命名空间和类名,CustomHandler表示程序集名。 from:http://www.cnblogs.com/ghfsusan/archive/2011/02/25/1964579.html

龙生   25 Jul 2014
View Details

Global.asax的Application_BeginRequest实现url重写无后缀的代码

利用Global.asax的Application_BeginRequest 实现url 重写 无后缀 <%@ Application Language="C#" %> <script RunAt="server"> void Application_BeginRequest(object sender, EventArgs e) { string oldUrl = System.Web.HttpContext.Current.Request.RawUrl; //获取初始url //~/123.aspx → ~/Index.aspx?id=123 Regex reg = new Regex(@"^\/\d+\.html"); if (reg.IsMatch(oldUrl)) { string id = reg.Match(oldUrl).ToString().Substring(1, reg.Match(oldUrl).ToString().LastIndexOf(".") – 1); Context.RewritePath("~/Index.aspx?id=" + id); } //~/123 → ~/Index.aspx?id=123 Regex reg1 = new Regex(@"^\/\d+$"); if (reg1.IsMatch(oldUrl)) { string id = reg1.Match(oldUrl).ToString().Substring(1); Context.RewritePath("~/Index.aspx?id=" + id); } //~/index/123 → ~/Index.aspx?id=123 Regex reg3 = new Regex(@"^\/index\/\d+$"); if (reg3.IsMatch(oldUrl)) { string id = reg3.Match(oldUrl).ToString().Substring(7); Context.RewritePath("~/Index.aspx?id=" + id); } } </script> from:http://www.jb51.net/article/40587.htm

龙生   25 Jul 2014
View Details

为开发者准备的 10 个新鲜的框架

一个框架就是一个软件应用,它可以帮助开发者进行快速设计和开发动态站点。每个月都会有那么几个开发者发布一些五花八门的框架,来使得开发工作更加轻松和高效。 本文中,我们收集了10个新的框架, 其中一些比其它的更为复杂,提供了更多的配置选项,组件,和接口选项。不管怎样,他们使得你可以在站点上创建出更棒的东西。希望你可以找到最适合你的需求的那一款,好好享受吧 !! 1. Famo.us Famo.us是个免费并且开源的JavaScript平台,用来构建手机应用和桌面体验。Famo.us与众不同的一点是它的JavaScript渲染引擎和3D物理引擎,赋予开发者力量和工具来创建本地高质量应用和动画,而且只需要用到JavaScript即可。 2. Concise Concise 的构建目标是使你可以拥有很多开箱即用的选项。它被重新构建之后,变的移动友好化,拥有了一个简单的网格系统,漂亮的字体,以及其它一些花边小应用。 不管怎样,它仍然没构建的十分精简,只有刚刚超过2,000行的CSS和几百行的JavaScript代码。Concise被特意构建成可定制化的, 可修补的和高端复杂的框架。 3. Ampersand.js Ampersand.js是一个高度模块化,松耦合,无架构(non-frameworky)的框架,用以构建高端JavaScript应用。它是一个定义良好的过程,把一系列故意设计的很小的模块组合起来。每一个东西都是一个CommonJS组件。没有AMD和UMD,默认情况下也没有捆绑任何类型的插件。CommonJS的清晰、简单和灵活性主导了一切。清楚的依赖关系,没有任何不必要的封装和缩减,没有任何不规矩的东西。只在package.json里清楚的声明了项目依赖。 4. OnSenUI Onsen UI是一个为PhoneGap/Cordova混合App提供的前端开发框架。它致力于创建易用的移动应用。同时,配合Monaca,可以很简单地开发后端特性和添加设备支持。OnSen UI自身使用Angular.js和Topcoat开发,由于其架构特性,可以便捷的使用Angular.js的特性。 5. Archteype Archteype是一个Compass/Sass框架,用于创建可配置的、可组合的UI模式和UI组件。Archteype有良好的文档以及自然的语法。 6. Headstart Headstart非常易用,分分钟就可以进行自动前端设定并运行起来。它使用一个文件夹结构来维护你需要依赖的所有东西,甚至包括对各种东西的优化,比如SVG图像和暗示。 7. Kickoff Kickoff 是一个用来构建可扩展响应式站点的轻量级前端框架。它是用Sass和Grunt构建的,使用MIT许可协议进行发布。 8. Tuktuk Tuktuk 是一个轻量级面向对象CSS框架,用来轻松的构建响应式可扩展站点。它包括十二列布局,还有表单,按钮,表格,字体等等很多。 9. Base Base是用SASS/LESS开发的一个强大的CSS预处理器,它可以帮助你创建简洁的、组织结构良好的CSS,便于长时间的轻松维护。Base支持所有主流的浏览器和注入IE7之类的遗留浏览器。 10. Scribe Scribe是一个富文本编辑器框架,由Guardian创建并开源出来。它对浏览器之间的不一致性进行了打包处理并且包含了合理的默认值。 from:http://www.oschina.net/translate/10-fresh-frameworks-for-developers

龙生   21 Jul 2014
View Details

C# 权重控制随机抽取率

增加、减少随机抽中几率——此算法可用于题库随机抽题、赌博机控制出彩率,甚至俄罗斯方块等游戏,有广泛的用途!也希望能帮得到你! 强调      在随机的基础上增控制抽中几率,注意随机性!! 正文       一、文字解说:            为待随机抽取的集合每个项加一个权值,这个权值就是随机几率,比如正常被抽正的几率为1,那么将希望被抽中几率更大的项的权值设置为3或5,然后随机抽取集合中的项,并将随机数乘以每个项对应的权值,然后排序!!提取前N个项即可!大家可以发现权值更高被乘之后有更高几率排在前面而被抽中,如果将权值设为0将永远也不会被抽中!       二、应用场景:            1.      随机抽题:如果题A去年考过了,那么我希望今年出现的几率更小或者不出现,那么我将题A的权值设置为0,这道题将在以后的考试随机抽题中永远不会被随机抽中;而另外题B是本院今年模拟考试中的一道题目,我将这道题权值增加到5,根据算法,那么这道题目在下次随机抽题抽中率将比普通题目提高数倍!            2.      赌博机:大家知道游戏厅里面的赌博机是可以调的,被人调了之后出彩率明显提高或者降低,我觉得本算法适合解释。假设赌博机有24个赌项可供选择,分别是A-Z各个字母,按正常几率的话每个项的权值都是1,调机师可以通过动态改变权值来达到提高或降低中奖率。假如你投三个币,分别选了A、B、C,赌博机根据调机师的设置动态改变了A、B、C的权值,让灯转3-4圈后更大的几率停留在这三个选择中奖金较少的一个。            3.      俄罗斯方块:大家在打QQ俄罗斯方块对打的时候,有时候明显感觉堆得越高,出的东西反而不顺意,我觉得本算法也可以达到这个效果。计算机能算得出下一个最优方案是出条还是出角最好,所以可以通过调整权值来打破平均出现的几率来达到这个目的!       三、代码实现(C#实现):       RandomController.cs using System; using System.Collections.Generic; using System.Text; /* 为待随机抽取的集合每个项加一个权值,这个权值就是随机几率,比如正常被抽正的几率为1, 那么将希望被抽中几率更大的项的权值设置为3或5,然后随机抽取集合中的项,并将随机数 乘以每个项对应的权值,然后排序!!提取前N个项即可!大家可以发现权值更高被乘之后 有更高几率排在前面而被抽中,如果将权值设为0将永远也不会被抽中! */ namespace 随机抽奖 { public class RandomController { #region Properties private int _Count; /// <summary> /// 随机抽取个数 /// </summary> public int Count { get{return _Count;} set{_Count = value;} }         #endregion         #region Member Variables         /// <summary> /// 待随机抽取数据集合 /// </summary> public List<char> datas = new List<char>( new char[]{ 'A',’B',’C',’D',’E',’F', 'G',’H',’I',’J',’K',’L', 'M',’N',’O',’P',’Q',’R', 'S',’T',’U',’V',’W',’X', 'Y',’Z' […]

龙生   17 Jul 2014
View Details

在程序员的眼里,用户是这样使用他们开发的软件的

我曾经说过,程序员不是一般的人,是具有某种超能力的人。但问题是,程序员往往意识不到自己 的这种特异功能,在他们的眼里,会认为自己很普通,跟常人一样,所以,程序员能做到的事情,其他人——比如他们的客户/软件用户——也应该很容易做到。但 事实上,由于大部分人——绝大部分人(包括软件开发公司的客户/购买软件的用户)——都是电脑小白(对电脑知识/计算机知识/软件知识知之甚少的人)。一 个对于程序员来说很显而易见的软件操作,换成让用户来操作,就会出现各种各样奇怪的事情。这让程序员非常痛苦。 记得有一次,一个客户打电话给我,说他电脑桌面上的大e找不到了,我没听懂,什么大e找不到了?客户解释说:就是那个长的像大个儿的英文字母e的图标找不到了。我倒。终于明白了他指的是桌面上的IE浏览器的图标不见了。 还 有一次,有个客户提出一个需求,要求在页面上增加一个搜索功能,我问它,系统里有搜索功能,为什么还要在这个地方新增一个搜索功能,他说他要的不是那个搜 索,他要的是在这个页面上搜在某个关键词。经过进一步的沟通,我明白了,他要的是浏览器上的快捷键CTRL+F的功能。 因 为用户的这些特征,导致了程序员认为完美的程序,到了客户的手里,却变成极其难用的软件,投诉电话如乡下骂街的泼妇似的响个不停。而事后分析发现,根本原 因都是应为程序员高估了用户对软件的掌控能力,低估了自己对软件的创造能力,于是导致了他们看这些客户使用他们开发的软件时,都是那样一种可笑的行为,如 下图: 在程序员的眼里,用户是这样使用他们开发的软件的 如果是脾气暴躁的程序员,遇到这种情况,难免会对着客户发一顿牢骚,而且,程序员的脾气一般都不是很好,所以,通常跟客户沟通时,项目经理一般都是跟着一起,以免事态激化。 用户虽然给程序员带来很多麻烦,但其实程序员的所有荣耀感都来自客户,因为只有客户用得满意,程序员才会有成就感。比如像下面这几个客户在使用一个新款软件时显露出来的表情,足够让一个处在北京重度雾霾的下午的程序员也能露出笑容: 用户在使用一款新软件时的样子 程 序员虽然脾气不好,但他们都是为工作着想,不带任何个人恩怨。当开发软件有紧急任务时,他们都是任劳任怨的加班加点,当在已经发布的软件中出现了重大 bug时,他们都会深深在自责,会连夜赶制出紧急修复bug,如果不能在第一时间让用户满意,他们会茶不思、饭不想、觉不睡。即使在实在没有短期内完整的 补救措施的情况下,他们也会想出一些歪招,但也是行之有效的方案,让用户暂时度过难关。比如,下面就是一个紧急修复补丁: 紧急修复补丁 用 户应该体谅程序员。程序员的生活实际处在一种十分矛盾的状态中。编程不像其它行业,比如泥瓦匠砌砖,砌一层砖,墙就会高一次。但编程不一样,有时候一个程 序员写了一天的代码,急得满头大汗,但开发进度未必就有所进展,有时候甚至还会倒退。软件编程是一个亦虚亦实的世界,有时候你搞不清一段代码为什么好用, 有时候也会诧异由那样的代码构成的软件也能跑起来,正如下面这张图片中所示: 软件中有鬼 最后,说一下跟程序员打交道的一些注意事项。程序员因为整天和编程逻辑打交道,所以对因果关系特别敏感。如果你的话语的因果关系不是很明确,这会让他们感到疑惑,如果你的话语的因果关系不完整,这会让他们办错事。如果你的话中有if,最好后面用then做结束,或者用else给出选择,主语要明晰。如果不明晰,就会出现下图中出现的事故: 程序员是这样理解这个指示牌上的话的 如果你是一个程序员,你会理解我说的话。 from:http://www.oschina.net/news/53654/how-client-use-their-software

龙生   15 Jul 2014
View Details

阿凡达

从09年底上映到现在一直听一些朋友热论此电影,但一直很抵触,所以一直没有完整的看过。 今天晚上看了一遍,真是震撼。直接颠覆我对科幻类电影的感观;因为一直比较喜欢科幻类的电影,自认为对科幻电影的熟悉,却没想到《阿凡达》带给我的影响,她的理念,她的价值观。生态平衡:一切动、植物应该是一个完美的生态系统,当然也包括人类。人类那点小聪明在大自然面前显得是那么的多余;自然不是为人类服务的,人类只是自然的一部分,不要让人类的傲慢毁了自己。 很遗憾的说我看电影大部分都是在网上看,这些影音软件有没有版权就不好说了;所以,以后多带家人去影院观看,和家人交流一下感情,也为曾经拍出自己喜欢电影的导演尽一份力。 同样让我震撼的是这部影片的投入和票房,投入237000000美元,标记27亿5400万。《阿凡达2》将于今年10月开拍,2016年12月上映,翘首以待吧~

龙生   12 Jul 2014
View Details

纳威语

纳威语是电影《阿凡达》中纳威人的唯一语言体系,拥有非常规范的语法规则和语言结构。2005年8月,时任南加州大学教授的语言学家(Paul R. Frommer)收到一封电子邮件。 语言介绍 信中称希望其为卡梅隆正在摄制的电影中的外星种族创造出一套语言体系。当时卡梅隆为其展示了一个剧本雏形,当中包含有30个左右的纳威语词根,但大多数都是角色名字。保罗在结合了印第安语,非洲,中亚以及高加索等地区的语言后,终于创造出纳威语 创作人:保罗·R·弗洛莫 2语言详情 詹姆斯·卡梅隆(James Cameron)的《阿凡达》(Avatar又译:化身)还有不到一个月的时间就要上映了(国内明年一月初),这部影片讲述了发生在遥远外星球潘多拉(Pandora)上的一个美丽悲壮的“风中奇缘”的故事。为了使影片接近完美,卡梅隆事无巨细的精心打磨每一个细节,他甚至还专门找来语言学家为片中的“纳威人”(Na’vi)创造了一套完整的语言体系。 负责创造“纳威人”语言的是南加州大学教授保罗·R·弗洛莫(Paul R. Frommer),他是一名语言学专家,4年前他接到一封电子邮件,邮件里说他们正在帮詹姆斯·卡梅隆的新电影找一名能够创造外星语言的人,不过那个时候电影还没有名字,用的是代号《Project 880》。弗洛莫知道机会难得,立刻回复了过去,很快便得到了这个任务。 弗洛莫并不是完全凭空创造,卡梅隆给了他一个剧本雏形,里面包含了30多个“纳威语”词汇,虽然大部分都是角色的名字,但这让弗洛莫明白了卡梅隆想要一种什么样的语言(有韵律感、流畅富于感染力)。靠着这一点线索,弗洛莫花了4年时间逐渐摸索创造出了一套有自己语法规则和语言结构的、可以使用的、完整的语言体系。 成型的“纳威语”是一种非常温柔的语言,它吸取了印第安人、非洲、中亚、高加索的语言特点,有的人听了觉得像波利尼西亚语,有的人觉得像非洲的某种语言,还有的人觉得像德语或日语。 “纳威语”不仅将出现在《阿凡达》电影里,还会出现在法国游戏公司为该片制作的同名游戏中。弗洛莫希望《阿凡达》可以拍前传和续集,这样他发明的语言就可以得到更多的展示和使用。另外他也希望将来能有人做一个“潘多拉百科”(Pandora-pedia)详细介绍这种语言,让别人也来学说这种语言,这样他就可以和别人用“纳美语”交谈了,而不是自言自语。 不过学说这种语言并不容易,至少片中饰演3米多高蓝色纳美人“奈特丽”(Neytiri)的佐伊·扎尔达娜(Zoe Saldana)就是这么认为的,她说:“学这个语言太难了,我大部分精力都花在这上面了,我觉得自己根本无法过这一关,我在语言学习方面并不擅长。” 为了帮助演员学说“纳威语”,卡梅隆特意找来了好莱坞著名的语言指导师卡拉·梅耶(Carla Meyer),她参与过《加勒比海盗》(Pirates of the Caribbean)、《天使与魔鬼》(Angels & Demons)、《永不妥协》(Erin Brockovich)等影片,曾帮助过《空军一号》(Air Force One)里的加里·奥德曼(Gary Oldman)学会了东欧口音。有了她之后,语言方面的难关总算被克服了。 目前“纳威语”已经有1000多个词汇,弗洛莫还在不停的扩充“纳威语”的词汇量,并且电影上映后也不会停止,用他的话来说,他要一直做到自己做不了了为止。 创作人:保罗·R·弗洛莫 3基本字母 元音字母 a ā e i ì o u 普通字母 f h k kx l ll m n ng p px r rr s t ts tx v w y z 4基本字音编辑 纳美语字符 国际音标 字面读法 英语范例 a [a] aah "father" &auml; [&aelig;] ahh "cat", "pack" aw [aw] aou "noun" ay [aj] eye "eye", "fly" ts [c] tSS […]

龙生   12 Jul 2014
View Details

不小心把所有的快捷方式lnk文件都设置成了用Word打开,该怎么改回来

龙生   10 Jul 2014
View Details

Mac下Photoshop CS6 简体中文版的安装和离线激活

大师版有注册机,但没中文版;单photoshop中文版,没注册机。我整合了一下,找了个可用的序列号,用大师版注册机离线激活。经过测试,已完美激活,可升级!1、下载photoshop单文件简体中文版官方:http://trials2.stage.adobe.com/A … hotoshop_13_LS3.dmg用迅雷下载就可以了2、断网。    确认/etc/hosts没有下面两行:    127.0.0.1 lmlicenses.wip4.adobe.com    127.0.0.1 lm.licenses.adobe.com    如果以前安装过,请删除下面两个目录:    /Library/Application Support/Adobe/SLStore    /Library/Application Support/Adobe/SLCache3、打开安装文件,选择安装(不是试用!),填入下面的序列号:    1330-1730-0041-7458-1356-16534、装好后打开photoshop,确认链接问题,选择离线激活,生成请求码。5、打开注册机,填入上面的序列号(不能用注册机生成的序列号,那是大师版的)和请求码,生成激活码。6、激活成功。7、在/etc/hosts加入:(或者用管理员运行注册机附带的disable_activation_osx也是一样的)    # Adobe Blocker    127.0.0.1 lmlicenses.wip4.adobe.com    127.0.0.1 lm.licenses.adobe.com8、好吧,现在可以联网、升级。9、Enjoy!附:注册机(就是大师版的注册机,我把windows版的文件去除了,已经下载的略过) Crack-OSX FROM:http://bbs.feng.com/read-htm-tid-5011699.html

龙生   06 Jul 2014
View Details

IIS6中配置FastCGI运行PHP

环境说明: 操作系统:使用windows 2003 server 32位系统,IIS6。 PHP版本:官方下载PHP 5.3.26 VC9 x86 Non Thread SafeZIP版本。 IIS6 FastCGI安装包:FastCGI for IIS x86版本。 PHP路径:C:\php-5.3.26\ FastCGI相关文件和路径 : C:\WINDOWS\system32\inetsrv\fcgiext.dll C:\WINDOWS\system32\inetsrv\fcgiext.ini 配置步骤: 解压PHP文件,修改目录名放到C盘。目录地址为C:\php-5.3.26\ 复制php.ini-production改名为php.ini,先参考PHP.ini参数说明修改。 并修改PHP对FastCGI支持: 安装下载的FastCGI for IIS工具,本文下载的文件名为fcgisetup_1.5_rtw_x86.msi。安装完成后无提示,直接打开文件C:\WINDOWS\system32\inetsrv\fcgiext.ini在最后[Types]后添加以下

检查IIS是否配置正确了FastCGI的调用。如下图: from:http://www.magicwinmail.com/setupiis/iis6fastcgi.html

龙生   04 Jul 2014
View Details