丝瓜番茄炒蛋盖浇面。
再一次不知道吃啥,于是心血来潮地做了个“盖浇面”~
丝瓜炒蛋,注意多放水,把丝瓜闷烂,放少许糖;番茄炒蛋,多放水,留汤汁;两个菜好了之后,下面,熟了之后捞出,盖上丝瓜炒蛋和番茄炒蛋。
好吃得不得了哎~欧耶!

再一次不知道吃啥,于是心血来潮地做了个“盖浇面”~
丝瓜炒蛋,注意多放水,把丝瓜闷烂,放少许糖;番茄炒蛋,多放水,留汤汁;两个菜好了之后,下面,熟了之后捞出,盖上丝瓜炒蛋和番茄炒蛋。
好吃得不得了哎~欧耶!


早就在别的论坛上看到说“紫雪糕”重出江湖了,而且是光明——此光明非牛奶的光明——产的。
真是由衷地小兴奋了一下。
如果你生于80年代,而且小时候家境还可以,能在夏天吃到冰棍儿的话,你一定对当时的几个大热门还记忆犹新:赤豆、紫雪糕、花脸。
但是随着经济渐好,伊利、蒙牛不断推出新的冰棍种类,再加上和路雪可爱多的洋产品的夹击,这几个老牌冰棍儿很快就淡出了我们的视野。
虽早听说紫雪糕又上市的事儿,可是直到今天才在迪亚天天看到它的魅影;只不过是没有棍的那种,就像光明“奶油冰砖”那样。突然,在它旁边我又看到了“花脸”,包装跟以前大不一样了,名字也不一样了,不再叫花脸了。我于是买了根,想寻找童年的记忆。
吃起来觉得没有以前的那种甜、那种奶味儿了,我知道不是用料的问题,而是日子不一样了。
p.s.记得小时候很珍惜吃冰棍的机会,所以特喜欢“刷”着吃,吃完了还含着棍儿很久,直到棍儿都被咬成木渣才肯吐出口。

这大概是我近几年读的最快的一本小说。五百多页,一个多星期。
不知是谁说过一句话,大概是这么讲的:在南美洲的一个人打了个喷嚏,于是造成了东南亚的一场台风。我想是对的。
由于我最近上早班,所以习惯在公司大撇;我喜欢大撇时看点东西,于是我在人民广场拿了地铁时代报;一天我大撇时正好在时代报上看到了一篇书评,当时被书里面的诗感动,于是来豆瓣搜这本书——《职场屠龙记》……
老实说,说作者一天只写1000字,我是不信的。说这本书的文字语言写的如何如何好,我也是不认同的。
我想,如果作者真的是一天只写1000字,那应该是花了时间去找那些典故和卦算的资料了。
说起卦算,此乃本书的一大亮点。可见作者的功底,反正我是被忽悠得云里雾里,以至于分不清到底是迷信还是科学。
本书的另一大亮点,是时空转换,虽然每次转换都有楔子,比如时空装换机,或者主人公的情绪。但是通篇看下来,我觉得自己已经完全融入了这种转换,最终导致我也相信确实有来世,确实有时光倒转,而且分不清哪个是过去哪个是现世,抑或二者本无区别。
在时代报的书评里提到了作者的完美主义,这个我是认同的。与主人公有染的三位女性,都是貌若天仙,而且在各自的职位上都属于佼佼者。这个确实过分完美了。连我在读的时候,都会嫉妒主人公甚至嫉恨,为什么他一个如此平凡的男子,会有这么优质的女性?太不公平了。现在想来,姑且认为是上海男子在家长久写作养成的喜欢YY的通病罢。
总之,本书的特色就在于读的时候,读者会情不自禁地陷进书的情节进去,而且作者在卦算和文字造诣的功夫上还是可圈可点的。另外,既然是职场屠龙记,暂且抛开“屠龙”不谈,书里面也确实谈到了职场上的一些注意点,确实也是有所收益的。
ps.送的书签上有首诗真是不错,其中两句如下:
“今生无悔今生惜,来世有缘来世迁”
谷歌音乐推出来的时候着实火了一把,“气泡点歌”、“正版音乐”,这两个被炒的厉害。
很多谷粉也狂热了很久。
狂热之余,还有多少人去谷歌听音乐?
至少我试了几次,就不想去了。
对于我个人来讲,我不关心:
1·怎么去点歌,管他是气泡点歌还是心情
2·歌曲本身是不是正版
我更关心:
1·歌是否全,歌手是否全
2·歌更新是否快
显然谷歌受了正版的约束,歌曲更新很慢,而且不全。
比如一个新近人气狂飙的歌手新出了一张专辑,我要去试听,别的网站都争相发布了,谷歌还在跟某某唱片公司谈合同,这就只能偶买嘎了。
我有几次去谷歌音乐找歌,都以失败告终。很沮丧,于是决定放弃谷歌音乐,还是回到了国内的几个比较出彩的在线音乐点播网站,相比谷歌音乐,他们的歌曲更新非常及时,歌手歌曲很全,基本上都能找到。
而且说实在的,播放器做成flash,我也不看好哦~懂得自然懂,不懂的怎么讲也不明白-_-||


杀毒手的升级模块最近有个bug,导致小内存用户在关闭杀毒手的时候会报错。
debug之后,发现原因是,升级模块的析构函数里销毁了一个野指针。
由于升级模块的对象创建使用的是单例模式,之所以这么做是因为,该模块里有多个线程,所以会有成员函数和静态函数,而静态函数中也用到了该模块的对象,为了控制该对象的创建,所以才采用单例模式。
而单例模式需要生成和销毁都被统一管理。调用者无需介入。
而这个bug就是因为在析构函数里销毁了这个对象。而这个对象已经被单例给销毁了。
但是,指针并没指向NULL,仍指向原先的区域。
如果这个区域过一段时间又被存放了新的数据,delete的时候就会报错。
所以这个问题会发生在小内存的机器上,因为小内存的机器上,一块内存被重复利用的几率非常高。
因此,为了防止内存泄漏,及时销毁对象是必须的,但是别忘了,销毁之后要将指针赋NULL,以提高程序的健壮性。
PE_DOWNEXEC.O是上周刚发现的新的感染型样本,该病毒会感染exe文件,并新加一个节,节名为hhqg,然后病毒会修改exe文件的eip,指向这个新节,执行完毕后重新跳回原来的eip。

下面我们将手工修复被病毒感染的文件。
OD载入,我们在text段加上内存访问断点:

然后按F9,执行到以下位置:

因此断定004012A0这个位置为eip。
下面我们来看看这个新节做了什么事情。
OD重新载入,单步到以下位置,发现一个函数:

F7进入,继续单步,发现函数:

F7进入,单步:

F7进入,单步:

F7进入,单步:


好,到这里我们发现了关键代码,新节里调用了Loadlibrary和GetProcAddress,先后获得了WinExeC和URLDownloadToCacheFileA函数,我们查看栈里面有什么内容:


好,这里就真相大白了,新节的目的就是从网上下载一个exe文件,然后调用winexe执行。
下面我们来手动修复。
使用LoadPE载入这个被感染的文件,选中这个新节,删除掉:

然后修复原来的EIP:

点击保存、确定。
到这里还没有完成,这样的exe是不能运行的,我们必须对EXE重建:

好了,这样简单的手工修复就完成了,点击运行,ok没问题,而且因为没了新节的代码,执行速度也快了很多:

Apologize是首很好听的歌,当初去年我是从QQ音乐的英国播放榜单上听到的,听得真是直通肺腑啊。现在好像已经成为一首很经典的歌了,其中jabbawockeez把它当作舞曲也帮了不少大忙。
今天没事做又去看jabbawockeez的舞蹈,又听到Apologize,于是下首下来做手机铃声,这一搜不要紧,居然搜到个女生版的……还很好听。。于是不敢独享,贡献出来~
男版-Timbaland
http://cd04.static.jango.com//music//00/69/15/0069152319.mp3
女版-Natalie Gauci
http://vfile.home.news.cn/…lic/vd2/200901/08/22/MUfs02200901080829425222e565.mp3
如果你不知道jabbawockeez,不妨点击下面的链接看看,绝对值得一看,这个舞蹈团队极大地证明了街舞不只在于难度,更在乎故事和从日常生活中取材。
http://so.youku.com/search_video/q_jabbawockeez_source_dfv
由于夜班的需要,我们要经常看siebel上是否有新案件。
上一个工具(http://www.colordancer.net/blog/article.asp?id=206)采用的是根据email和病毒样本数来判断的,但是这样难免有疏漏,所以我决定从siebel这个“祸源”上解决问题。
通常判断一个网页有没有变化,做法是直接拿到html,然后做dom分析。
但是siebel采用的是全站js和applet,无法拿到html,所以,这里的做法是判断某个范围内坐标的像素的RGB值。
做法概括起来说如下:
1·新建MFC对话框程序,插入ActiveX控件:Microsoft Web浏览器
2·是浏览器默认打开我们指定的页面,然后定时刷新、通过GetPixel获取某个位置的像素RGB值
需要注意的事项如下:
1·对ActiveX控件直接获得DC是有问题的,返回像素的RGB总是-1,所以我先把它放到个对话框里,再把这个对话框B放到主程序的对话框A上,然后对B取DC来GetPixel
2·GetPixel必须要让当前窗口可见,不然返回值不正确或者获得失败(-1)
3·如果要判断的网页含有post数据,则不能用刷新,不然会弹出一个对话框,问你是不是要重新发送数据,所以我这里没有使用Refresh函数,而是重新Navgate相同的URL
截图如下:

这中做法其实也有通用性,只要把判断的坐标和像素RGB做成可变,那就能适用到不少场合了。
前一阵子就看到附近在新装修一家饭馆,名字叫杨记排骨,听起来像是江浙沪的菜系,门面挺小,所以并没有多在意。
今天中午再一次不知道吃什么,便想去这家店去试试。店门口的玻璃墙上显著地贴了张“告示”:本店使用纯净水。坐下来之后发现每张桌子上都有同样的提醒。心想还蛮逗的,估计是噱头而已。
既然是排骨店嘛,就要了份椒盐排骨套餐。等候的时候,进来4个中年男子,坐下间,居然和老板用一口听上去像台语的话语交谈。细细往下去听,果然是台语。呀,原来是台湾人开的店。
这下有点意思了,台湾人开个叫杨记排骨的小吃店,而且在我们这块不怎么张扬的地段开。
不一会儿菜上来了,着实有点小吃一惊。正如“告示”所说的那样,看上去是十分地干净,一个方盘分成5个小格,盛着少量的5个小菜,蔬菜肉类俱全,一个盘盛着排骨,看上去是用了心的。吃了几口,清淡为主,不腻但入口,营养均衡,价位合适,便觉得会是顿美好的午餐。
我一边吃一边随意地打量着店里的伙计和老板。都是微胖的人,做事看上去很认真,礼貌,戴着口罩,一如既往的卫生风格。厨具都是一体化的不锈钢。
说实在的,我还是有点为之震惊的。这样的配置出现在这样的门面确实不多见,而且人均价位在8到15元。
于是我想到4月去大连时遇到的豆的台湾亲戚。
我结识的台湾人并不多,但是见到的几位给我的印象都很相仿。认真,礼貌,很讲卫生。40多岁的男人仍然喜欢穿牛仔和球鞋。说话的语调听起来不强势,容易接近。人们都仿佛没有压力,看上去很单纯,认真地做自己的工作。就像《海角七号》的几位主角,不是说,之所以《海》在台湾那么火,就是因为《海》真实地反映了台湾的各个阶层的人的生活。
想着想着,饭就很块吃完了,饭量一直不小的我居然没有再盛一碗,大概是因为饭菜清淡的缘故吧。
我抽出一张纸,擦一擦嘴,轻飘飘地走了出去。
这个月开始要上夜班,由于做事是on email的,所以部门以前的做法是,隔一段时间起床刷一下邮件。我受不了,所以做了个工具,用来监听outlook的新邮件,并做声音提示。
其实关键代码没有几行,难度在于这些函数在MSDN里基本找不到。术语上叫做基于Office的Add-in的开发。
但是这里我并没有实现成插件,只是截获了Outlook的NewMailEx事件,然后通过回调函数做判断。
核心代码如下:
[code]
public void _tMonitorOutLook()
{
ApplicationClass outLookApp = new ApplicationClass();
outLookApp.NewMailEx += new ApplicationEvents_11_NewMailExEventHandler(outLookApp_NewMailEx);
MessageBox.Show("开始监听Outlook邮件!");
while (true)
{
Thread.Sleep(10);
}
}
private static void outLookApp_NewMailEx(string EntryIDCollection)
{
ApplicationClass outLookApp = new ApplicationClass();
NameSpace outLookNS = outLookApp.GetNamespace("MAPI");
MAPIFolder outLookFolder = outLookNS.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
string storeID = outLookFolder.StoreID;
MailItem mail = (MailItem)outLookNS.GetItemFromID(EntryIDCollection, storeID);
//判断标题
Regex rx = new Regex(s_strRegex);
if (rx.IsMatch(mail.Subject))
NewPspCaseArrived("有新邮件到达:" + mail.Subject);
}
[/code]
原理如下:
1·修改NewMailEx的回调函数,指向我们自己的函数
2·NewMailEx会传递一个EntryID过来,作为参数1,我们再获得收件箱的StoreID,作为参数2,然后调用GetItemFromID,就可以获得新邮件的实例
3·接下来就可以做自己想做的事情了
我的工具截图如下:

如果你感兴趣,可以从以下链接下载:
点我下载
当然,如果你使用的是Outlook,而且你还会写一点正则表达式,那么你也可以使用这个工具监听你的邮件了。只要你把监听文件夹改成一个不想关的文件夹就可以了。不过别忘了,需要.Net Framework 2.0(+)。