诡异

细细的说,诡异的事情有很多。

初一时候别人给配的那个电脑,对它只能说是爱恨交加。Savage 4的显卡一玩3D游戏就死机,我去珠江路上搜罗了几乎所有盗版碟小铺——买驱动盘!还在电脑课上下了10多张软盘的驱动。可惜,无一见效。

解决问题的办法,后来还是被我找出来了:Win 98 OEM2 不行,得原版的,没补丁的。

还是那个电脑,经常性开不了机,开了机也进不了98——注册表错误,Restore,再错误。重新装系统,可能会好。曾经过了一段只要开机就得重装系统的日子,帅不?后来,无法开机的问题已经无法用简单的Reset键解决了,你猜我怎么解决的?

解决的办法也不难,开机箱,内存拔掉,橡皮擦干净,插上去,用力按紧。后来也没辙了,换了主板和内存才搞定,但是,那已经是升级了吧。

升级电脑的那天贼兴奋,在珠江路癫狂的话都说不大清楚。回来一顿拆装,还把老主板给搞烧了,是真的烧了,看到明火,还好手快,没酿成惨剧。新东西上上去98却怎么都装不上,进安装GUI的时候就是不弹窗,折腾了好几个小时。

解决问题的办法很无厘头,主板电源插头拔下来,重新插一下,好了。

冥冥中,我知道,这个电脑依然会一直折腾我,果然不错。新症状又出现,我的电脑打开没问题,但是对着它按右键,电脑死机。地址栏敲C,D,E,F就死机(我电脑盘符到J,后面的就没问题)。

解决办法?没有办法,升级XP,问题解决。

玩过博德之门一,非常之想玩二,虽然我玩一代的时候就已经有二代了,可惜初一那个时候英语水平欠奉。就等啊等啊,真的等了好久,估计有初二还是初三了吧,第三波出了中文版,那时候网络还不发达,依旧去买盗版碟。依旧跑遍整个珠江路的碟商,永远都是第四张碟出错,玩不了。以至于经过大约一个月的挣扎,我去买了本朗文字典,一本记事本,然后,把英文版博德之门二玩穿了。(其实很多词朗文里查不到)等到后来,又说博德之门二的中文版出了,好象是游侠上看来的吧,那时候还是小猫上网,依旧买碟去,装到第三张盘就报错,结果我把原来买的盘的第三张塞进去,不行,英文版的第三张塞进去,居然OK。我就这么样玩上了中文版的博德之门二。

初一要参加兴趣小组,我选的计算机。英语组,足球组,篮球组都给人挤爆了天,计算机组只有那么5,6个人。老师让买Pascal的书,我不记得我买的是啥书了,反正是P开头的和物理或者电路有关的书,不对,退回换了一本黄皮子Pascal书。老师看了我换回来的书,很惋惜的和我说,书是不错,可是你光买个习题答案是没有用的,我们这个课不交作业。晕!还好,Pascal不难,那个时候找了个网站,对着看看再听老师说说,基本也会敲代码了。布置的活干完就在那上JapaneseGirl等等网站。想想初一那时候,99或者2000年,有网上真是挺开心一事情。

初三玩石器时代,大家都很菜,也不知道怎么买付费的外挂。加了个公会叫开心部落,真的是非常开心,有人带有东西拿:入会的头一天会长发了一堆好装备,还带着我去打暴龙。帮助打暴龙挺复杂,必须组队开战我逃,然后他打的差不多Help以后我再加进去。开了战,我按照意思逃开,就在那看着他,真的挺无聊的。那时候天使外挂有穿墙功能,我就从堵门的红暴龙那穿过去了,然后切图,进了监狱…监狱里Message也发不出去,我还没会长老大的QQ,迷宫样的监狱走到头看到个出口,知道要一个仙人钓竿,后来怎么出去的已经忘记了,很糗的是后来我还又进去过一次。

高一在九班,大家每天玩的都挺开心,同样的都看八班不大顺眼,就商量去爆八班的西祠版,貌似是国庆还是五一的,爆的那个开心。等高三毕业的时候回去看那个版,看自己说过的那个话,真想把电脑屏幕撕掉。

相关日志

Thread of Day

相关日志

获取当前执行的Controller, Action, Parameters

中,有时需要做一些审计或者日志记录的工作,记录的对象自然是当前执行的Action。抽取信息的方法如下:

获得当前执行的Controller:

string controllerName = filterContext.Controller.GetType().Name;

获得当前执行的Action(两种方法):

string actionMethodName = filterContext.RouteData.Values["action"].ToString();

string actionMethodName = filterContext.ActionDescriptor.ActionName;

获得当前执行Action的参数,稍微复杂一些,因为参数是存在一个字典表里的:

if (filterContext.ActionParameters != null)

{

    foreach (KeyValuePair<string, object> parameter in filterContext.ActionParameters)

    {

        string parameterInfo = string.Format(“Parameter name: {0} – Parameter value:         {1}”, parameter.Key, parameter.Value == null ? “null” : parameter.Value);

    }

}

最后,附送一个AuditAttribute:

public class AuditAttribute : ActionFilterAttribute

{

    public override void OnActionExecuting(ActionExecutingContext filterContext)

    {

        string controllerName = filterContext.Controller.GetType().Name;

        string actionName = filterContext.ActionDescriptor.ActionName;

        string userName = filterContext.HttpContext.User.Identity.Name;

 

        if (filterContext.ActionParameters != null)

        {

            foreach (KeyValuePair<string, object> parameter in             filterContext.ActionParameters)

            {

                string parameterInfo = string.Format(“Parameter name: {0} – Parameter                 value: {1}”, parameter.Key, parameter.Value == null ? “null” :                 parameter.Value);

            }

        }

 

        /// Save information to the database

    }

}

参考:ASP.NET MVC custom action filters

相关日志

Thread of Day

  • NextIM
    • 新东西?,可以和DZ整合(我关心这个),值得try一下。
  • ASP.NET MVC Controller Best Practices – Skinny Controllers
    • Controller总应该是瘦的,分页,Mapper,甚至Repository都不应该放置在Controller内。开始重构吧!
  • AdminSkins
    • 从StackOverflow网站的广告里看到的一个皮肤站,专门有个Category叫做Admin Skins。当然,皮肤都是要钱的,不过呢,ScreenShot是不要钱的。有了创意,主题本身的意义就不那么大了。值得借鉴
  • Integrating xVal validation with LINQ to SQL
    • 下很好的一个数据验证框架。但是,如果Model的代码来自于代码生成工具(比如我使用的),那么想把验证用的Attribute指定到Model上,还是要动点小脑筋的。本文针对LINQ to SQL,当然一样适用于的场景
  • ASP.NET MVC custom action filters
    • 正在给手头的一个MVC项目加入审计(Audit)功能,似乎没有比使用更合适,更简单的方法了。

相关日志

新的Visual Studio主题

被ReSharper的快捷键问题搞的有点恼火。现在的主题用了小半年了吧,来自于Rob Conery的TextMate Like主题,也有点倦了。正好,在琢磨MSpec和ReSharper整合的问题是,看到MSpec的作者使用的主题,非常的赞:

2008-10-19_1449

来自VIM的一个叫做Wombat的,下载地址在此:点击

字体是Envy Code R Preview #7,下载地址在此:点击

相关日志

调程序的小女孩[ZT]

实验室里冷极了,没有窗户,不知道是白天还是黑夜。这是一周的最後一天——周末。在这又冷又黑的晚上,一个蓬头散发的小女孩在工位上坐着。她从家里出来的时候还穿着一件外套,但是有什麽用呢?那是一件很大的外套──那麽大,不知是哪一年买的。她工作的时候的,就把它脱掉了,实验室的师弟嘲笑说,可以拿它当抹布。

小女孩只好一个人做实验,一双小脚冻得红一块青一块的。她的破显示器屏幕上有一大段程序,手里草稿纸上还有一大段。这一整天,程序还是没调过,谁也没帮过她。

可怜的小女孩!她又冷又饿,哆哆嗦嗦地调程序。显示器的光落在她的干枯的长头发上,那头发卷曲着披在肩上,看上去很久没梳,不过她没注意这些。每个桌上都堆满了论文,实验室飘着一股油墨的香味,因为这是论文deadline的时间——她可忘不了这个。

她在一行代码上停了下来,蜷着趴在桌子上。她觉得更冷了。她不敢跟老板说,因为她程序没调过,没拿到一个数据,老板一定会骂她的。再说,换做别的题目跟这个一样难。她们头上只有paper,虽然网上可以下到一些现成的代码,还是仍然没法用。

她的头脑几乎绝望了。啊,哪怕一次小小的成功,对她也是有好处的!她敢把上万行的代码修改一遍。编译运行一下,来找找问题麽?她终于按下回车键开始运行。哧!程序开始输出信息了!一行一行的log开始出来了!她把小手拢在显示器上。多麽温暖多麽明亮的字符啊,简直像一支小小的蜡烛。这是一道奇异的火光!小女孩觉得自己好像坐在一个19寸液晶大显示器前面,显示器还是全新呈亮的,颜色鲜艳,字迹清晰,上边显示着程序输出的正确结果,多麽舒服啊!哎,这是怎麽回事呢?她刚把头伸出去,想看的仔细一些,程序crash了,大显示器不见了。她坐在那儿,眼前的破显示器上一行刺眼的segment fault。

她又编译了一遍运行。程序又开始输出信息了,给出log了。显示器的光落在桌子上,那儿忽然变得像打印出来的paper那样洁白工整,她可以一直看到 paper上的字迹。IEEE的logo,会议名称和日期,Abstract和Introduction。更妙的是这篇paper的一作,赫然署着自己的名字!看上去那麽诱惑,一直向这个穷苦的小女孩走来。这时候,程序又crash了,她面前只剩一张又硬又旧的桌子。

她又运行了一遍。这一回,她感觉自己坐在布置整齐的会议室里。条幅上写着“博士毕业答辩”,比她去年师姐毕业时用的条幅还要大,还要美。红色的条幅上贴着那几个白色的黑体字,投影仪屏幕上许多幅美丽的彩色画片,跟顶级会议里的presentation一个样,在向她眨眼睛。小女孩向画片伸出手去。这时候,程序又crash 了。只见ppt上图片越升越高,最後成了在天空中闪烁的星星。有一颗星星落下来了,在天空中划出了一道细长的红光。

“有一个什麽人快要死了。”小女孩说。唯一疼她的师姐毕业前的时候告诉过她:一颗星星落下来,就有一个灵魂要到图灵那儿去了。

她又编译了一遍。这一回,她把所有的数组size都设大了。师姐出现在亮光里,是那麽温和,那麽慈爱。

“师姐!”小女孩叫起来,“啊!请把我带走吧!我知道,程序一crash,您就会不见的,像那漂亮的显示器,发表的paper,布置好的答辩会议室一个样,就会不见的!”

她赶紧按了回车键,要把师姐留住。一大堆输出信息发出强烈的光,把实验室照得跟白天一样明亮。师姐从来没有像现在这样高大,这样美丽。师姐把小女孩抱起来,搂在怀里。她们俩在光明和快乐中飞走了,越飞越高,飞到那没有代码,没有论文,也没有毕业的地方去了。

第二天清晨,这个小女孩坐在工位上,两腮通红,嘴上带着微笑。她死了,在周末的实验室累死了。新一周的太阳升起来了,照在她小小的尸体上。小女孩坐在那儿,手还按着在不知用过多少年的键盘上。

“她想自己把程序调一下……”人们说。谁也不知道她曾经看到过多麽美丽的东西,她曾经多麽幸福,跟着她师姐一起走向新世界的幸福中去。

相关日志

Thread of Day

  • KindEditor
    • 国人做的编辑器,参考了很多主流编辑器的设计。个人感觉还不错,定制性比较强。内含了文件上传功能。
  • 问题集
    • Handling Recursive Relates with SubSonic and LINQ 需要翻落在我阳台盆栽的榕树叶上,叶子颤动,枝丫摇晃,但还是支撑不住这重量。风从东面吹来,雨水砸在窗口上的铁罩,紧凑又
      • 的Query似乎并没有对SELECT的Distinct有什么自定义的选项。所以真搞起来还是蛮麻烦的,尤其是搭配Dynamic Query。这篇文章提到了几个解决方法,不见得漂亮,但是实用。
    • Subsonic Query (ConditionA OR ConditionB) AND ConditionC 需要翻落在我阳台盆栽的榕树叶上,叶子颤动,枝丫摇晃,但还是支撑不住这重量。风从东面吹来,雨水砸在窗口上的铁罩,紧凑又
      • 的Dynamic Query怎么搞?SO有答案。
    • How to use custom audit fields with SubSonic 需要翻落在我阳台盆栽的榕树叶上,叶子颤动,枝丫摇晃,但还是支撑不住这重量。风从东面吹来,雨水砸在窗口上的铁罩,紧凑又
      • 的 Sefl-Audit,博文提供了一些自定义的思路,值得一看

相关日志

ASP.NET-MVC: new SelectList

 sl = new ( new[]{

  new SelectListItem{ Text="one", Value="1", Selected=true},

  new SelectListItem{ Text="two", Value="2"},

  new SelectListItem{ Text="three", Value="3"}

}, "Text", "Value", "2" );

绕绕弯,搞不清怎么用集合初始化器来搞个数组(or集合)丢到的构造函数里面去,还好,有StackOverFlow和Google。

原文:How can i get this ASP.NET MVC SelectList to work?

相关日志

Thread of Day

  • S#arp Architecture
    • Wiki, Best Practises
    • 说白了就是 + NHibernate + 单元测试。不知道有没有融合进去最新的fluent NHibernate。准备好好研究一下,实在有点不堪大用——支持信息太少,用的人也不多,虽然它很聪明,很简单。
  • EtherPad
    • 合作编辑器,真的是编辑器哦,不是Flash~并且可以记录编写/修改的历史。
  • Transaction Error in SubSonic
    • 事务实在很诡异,无意反倒一篇问答,原来是TransactionScope和SharedDbConnectionScope的放置方式有问题。
  • xVal 1.0 Available
    • 上最优秀的验证框架(起码目前如此)发布了1.0版本,这里给出了Steve Sanderson(Pro Framework的作者)的博客的链接,just hook it up!

相关日志

SCM Shock

无聊么?

想找看看,G到Codeplex的页面,进入看到首页提示,“为了对SVN更好的兼容性,我们将代码托管服务迁移到了Google Code”,点开Google Code的直链,红色的大字,“NOTICE!我们搬到GITHUB去啦”

确实很敏捷。

一直很想试试看,不过总是不得要领,等手上的项目搞完,试试看吧,即便还没有非常好的IDE integration。

相关日志