Mar 25
QQmail的分别发送
Posted by fly2never in 未分类 on 03 25th, 2009| | 6 Comments »

今天在cnbeta上看到QQmail有了分别发送功能,第一感觉就是密送功能.而后发现不对,于是和cc,bcc功能做了一番比较.

from:这个是发信人,只能有一个

to:这个是收信人,可以有多个,这里的地址可以查看到to里面的每一个人,也可以查看到cc里面的每一个人

cc:这个是抄送,这里的地址也可以收到邮件,并且能够查看每一个to和cc里面的地址.我个人感觉既然收信人可以有多个,那么cc就没有存在的必要了.

bcc:密送,又叫暗抄送.这里也可以由多个地址.这里的用户可以看见to和cc里面的每一个地址,但是无法看见bcc里面的其他收件人的地址,也就是说,除了发件人知道每一个bcc的地址之外,bcc之间相互并不知道其他人的bcc地址.而to和cc里面的人对于bcc里面的地址全然看不见.

那么qqmail的分别发送时什么意思呢? 每一个收到邮件的人都只能看到他自己的地址出现在to里面,而且是唯一的.让每一个收件人都以为发信人都是1对1的对他们进行发送.

这是一件很了不起的创新(或者至少说tx发扬了),我不禁疑问,在邮件诞生之初,制定to,cc,bcc这些规则的人,他们难道没有想到分别发送这种规则或者需求么?无法得知,我猜测用分别发送可能会产生道德困境.欺骗了收信人.虽然传统上你可以把修改to,把邮件分别发给每一个人,但是这毕竟是用户个人的行为,现在qqmail把这个功能直接做出来了,不免有为虎作伥,助纣为虐的倾向.水木上有用户就已经说了,这样方便了他们客户经理做广告营销,如果在引入变量,参数,正则…. 效果将会很强大.

QQmail这次还内测了视频邮件功能,这是gmail没有的.qqmail的定时发送 gmail也没有.有些人可能又不屑这些功能了,可是多一个功能没什么不好,又没强制用户使用,总会有其他的用户需要这样的功能.qqmail在这个领域也没有唯西方公司马首是瞻,一样的有创新,而不仅仅是做个追随者.

分别发送确实很厉害,你无法确认对方是单独给你发送的还是用的分别发送.就像你无法判断灰色的QQ头像代表的是下线还是隐身,你可以不喜欢,但是如果你使用QQ,你收到QQ邮箱发来的邮件,你就只能接受.

Mar 21
[Delphi]最简单的单实例限制
Posted by fly2never in 未分类 on 03 21st, 2009| | 4 Comments »

使程序只能单实例运行,我目前知道的最简单的方法还是用mutex判断.

procedure TMainForm.FormCreate(Sender: TObject);
var
errno:integer;
hmutex:hwnd;
begin
hmutex:=createmutex(nil,false,pchar(application.Title));
errno:=getlasterror;
if errno=error_already_exists then
begin
Application.Terminate;
end;

……..

end;

另外转一下其他的几种思路:

一、 查找窗口法
这是最为简单的一种方法。在程序运行前用FindWindow函数查找具有相同窗口类名和标题的窗口,如果找到了,就说明已经存在一个实例。在项目源文件的初始化部分添加以下代码:
Program OneApp
Uses
Forms,Windows;(这里介绍的几种方法均需在项目源文件中添加Windows单元,以后不再重复了)
Var Hwnd:Thandle;
Begin
Hwnd:=FindWindow(‘TForm1’,‘SingleApp’);
If Hwnd=0 then
Begin
Application.Initialize;
Application.CreateForm(Tform1, Form1);
Application.Run;
End;
End;
FindWindow()函数带两个参数,FindWindow的第一个参数是类名,第二个参数是窗口标题,其中的一个参数可以忽略,但笔者强烈建议将 两个参数都用上,免得凑巧别的程序也在使用相同的类名,就得不到正确的结果了。另外,如果是在Delphi IDE窗口中运行该程序,将一次都不能运行,因为已经存在相同类名和标题的窗口:设计时的窗体。
二、使用互斥对象
如果觉得查找窗口的方法效率不太高的话,可以使用创建互斥对象的方法。尽管互斥对象通常用于同步连接,但用在这个地方也是非常方便的。仅用了4句代码就轻松搞定。
VAR Mutex:THandle;
begin
Mutex:=CreateMutex(NIL,True,‘SingleApp’);
IF GetLastError<>ERROR_ALREADY_EXISTS THEN//如果不存在另一实例
BEGIN
Application.CreateHandle;
Application.CreateForm (TExpNoteForm, ExpNoteForm);
Application.Run;
END;
ReleaseMutex(Mutex);
end.
三、全局原子法
我们也可以利用向系统添加全局原子的方法,来防止多个程序实例的运行。全局原子由Windows 系统负责维持,它能保证其中的每个原子都是唯一的,管理其引用计数,并且当该全局原子的引用计数为0时,从内存中清除。我们用GlobalAddAtom 函数向全局原子添加一个255个字节以内的字符串,用GlobalFindAtom来检查是否已经存在该全局原子,最后在程序结束时用 GlobalDeleteAtom函数删除添加的全局原子。示例如下:
Uses Windows
const iAtom=‘SingleApp’;
begin
if GlobalFindAtom(iAtom)=0 then
begin
GlobalAddAtom(iAtom);
Application.Initialize;
Application.CreateForm(TForm1,Form1);
Application.Run;
GlobalDeleteAtom(GlobalFindAtom(iAtom));
end
else
MessageBox(0,‘You can not run a second copy of this App’,‘’,mb_OK);
end.
利用全局原子的引用计数规则,我们还可以判断当前共运行了该程序的多少个实例:
var i:Integer;
begin
I:=0;
while GlobalFindAtom(iAtom)<>0 do
begin
GlobalDeleteAtom(GlobalFindAtom(iAtom));
i:=i+1;
end;
ShowMessage(IntToStr(I));
end;

Mar 13
方言版猫和老鼠禁播的真正原因
Posted by fly2never in 未分类 on 03 13th, 2009| | 1 Comment »

新闻背景:

方言版《猫和老鼠》不再上电视

www.xawb.com 2004-10-20

就在方言版《猫和老鼠》《摩登时代》纷纷在电视台热播,或抢占音像市场,观众对这种以方言形式包装国外经典的做法议论纷纷之时,国家广电总局前天发布通 知:为推广和使用普通话,各级广播电视播出机构一律不得播出用地方方言译制的境外广播电视节目。此通知一出台,便引起各方人士的关注。

为推广普通话下达“禁播令”

广电总局在《关于加强译制境外广播电视节目播出管理的通知》中指出,近来一些广播电视播出机构播出用地方方言译制的境外广播电视节目,有违广播电视推广 使用普通话的重要任务和使命。从现在起,各级广播电视机构一律不得播出用方言译制的境外广播电视节目,正在播出的必须立即停播,妥善处理。同时要求各地广 播影视局(厅)立即对当地用方言译制的境外广播电视节目进行一次全面检查和梳理。此通知的下发,将使炙手可热的方言剧面临“降温”。

方言版经典泛滥让人忧

据了解,从去年开始,以各地方言包装国外经典的做法逐渐在全国蔓延开来,《猫和老鼠》出现了北京、陕西、四川、河南、东北等多个方言版本,仅陕西就有“ 二蛋、淘气”和“老皮、碎子儿”两个版本,并分别在陕西电视台和西安电视台热播。此外《米老鼠和唐老鸭》《摩登时代》《马戏团》《旱冰场》等经典也被重新 演绎。方言版经典的热卖、热播使制作者获其利,但由于制作方水平不一,有的对经典随意篡改,方言中的粗话、脏话不绝于耳,不仅令人哭笑不得,更深为担忧,担忧其对青少年产生不良影响。

市民认为禁播及时

昨天,得知方言版译制节目被禁播,许多市民,特别是老师、家长持赞同态度。五味什字小学一位老师告诉记者,前阵子《猫和老鼠》播出时,孩子们一放学就冲 到路边商店看电视,作业也顾不上写,第二天议论的都是剧中角色的对白,孩子接受新事物的能力强,不管好的坏的统统装到脑子里。一位接孩子的女士说,电视上 放这些片子应该有所选择,看了方言版经典后,她的孩子再也不说普通话了,像“弄啥呢”,“给你两脚”,“圪蹴”,“吃个屁”之类的粗话整天说个不停,让人 很担心。

==============================================

才知道是这么个狗P原因,如果说是因为版权问题停播,那无可争议.而对于这种情况,我只想说三个字: 草泥马!

Mar 6
过滤phpwind5.3论坛的adblockplus规则
Posted by fly2never in 未分类 on 03 6th, 2009| | 36 Comments »

今天第一次学写abp的过滤规则.本来我是连基本的html知识都没得.但是一直厌恶学校论坛的签名档,以前我到处留言求助,求人帮忙写一个gm脚本,stylish样式…但是一直没人搭理.所以决定自己写一个

菜鸟怎么办,硬着头皮上呗.先到http://adblockplus.org/en/filters看基本的写法.以前看见英语文档就发怵.这次我打开桌面词典,耐下心来认真看.果然查到了,过滤元素的规则.

Element hiding: basic rules

恩,写的很详细.我又结合了ff提供的查看选中部分源代码.比如以下两份不同人的签名档部分源码

<div class=”signature” style=”overflow: hidden; max-height: 300px;”><table width=”100%”><tbody><tr><td><marquee behavior=”alternate” scrollamount=”3″ width=”90%”><font size=”3″><span style=”color: rgb(102, 51, 204);”>长得比较英俊</span></font></marquee>< /td><td></td></tr></tbody></table></div>

长得比较英俊

还有一份

<div class=”signature” style=”overflow: hidden; max-height: 300px;”><table width=”100%”><tbody><tr><td><marquee behavior=”alternate” scrollamount=”3″ width=”90%”><font size=”3″><span style=”color: rgb(102, 51, 204);”>长得比较英俊</span></font></marquee>< /td><td></td></tr></tbody></table></div>

其中不难发现,共同的部分是<div class=”signature” style=”overflow: hidden; max-height: 300px;”><table width=”100%”>..虽然我不懂div class style这些是什么意思,但是根据例子就可以自己推断出#div(signature)可以过滤所有的签名档.一试,果然如此.

那么,过滤所有头像的呢?继续看头像部分源码

<div style=”padding: 10px 0pt;”><table style=”border: 0pt none ;” width=”98%” cellpadding=”0″ cellspacing=”0″>
<tbody><tr><td class=”tac” style=”border: 0pt none ; overflow: hidden;”><img src=”images/face/2.gif” border=”0″></td>
</tr></tbody></table>

</div><div style=”padding: 10px 0pt;”><table style=”border: 0pt none ;” width=”98%” cellpadding=”0″ cellspacing=”0″>
<tbody><tr><td class=”tac” style=”border: 0pt none ; overflow: hidden;”><img src=”http://bbs.stuhome.net/hack/pig/image/5.gif” width=”100″ border=”0″ height=”160″></td>
</tr></tbody></table></div>

可以发现,虽然看不见div class=***了,但是共同的部分是td class=***.于是应用规则 #td(tac)过滤之.

就这样学会了写第一条abp规则,非常easy,非常菜鸟的问题,而且我也没有理解其中的原理.但是毕竟我做到了,靠自己,自己再也不用在论坛菜鸟般的傻问,求大虾们有空给我写条规则什么的.下次我可以进一步尝试用firebug看看页面源代码,也许更方便.

一步一步来吧,虽然还留着一个网页让k帮我写 - -!

Feb 7
TC中实现vista风格地址栏
Posted by fly2never in TC学习笔记 on 02 7th, 2009| | No Comments »

很喜欢vista风格的地址栏,可以很方便的在路径间跳转。记得gnome里面也是这样的,

在Xp下我用的是folderpilot。另外还有一个qt addressbar ,需要.net 2.0 支持。

在total commander下也有这个功能,默认方式为按住shitf,然后点击路径实现快速跳转。

能不能像vista那样直接鼠标点击跳转呢?

打开tc目录下wincmd.ini,找到InplaceRenamePath,如果没有就自己添加 InplaceRenamePath=2

OK,tc也可以实现地址栏快速跳转了。当然,键盘派元老不要赤果果歧视……

Jan 22
旧诗一首
Posted by fly2never in 未分类 on 01 22nd, 2009| | 4 Comments »

回忆是心里的一个梦

回忆是心底的一道伤

回忆是儿时放飞的风筝

回忆是单车上远去的风铃

到底要经历多少才算长大

到底要怎样你才肯相信

和我一起回到过去

当你伤心时

是谁替你擦干眼泪

当你失落后

是谁将你拥入怀中

从来不是我

等待你的那天

我像孩子一般

左右彷徨

而你开口的一刻

沉默却是你的答案

擦身而过以后

你成了陌生人

抓不住你离开的衣袖

我待在原地泪如泉涌

多少次梦中遇见

你却低头不语

匆匆离去

你带走了一切

只剩下空空的对白

那离别的一刻

竟成了脑海中永远的定格

我那苍白的回忆

再也无法描述你的轮廓

你错过的身影

再也听不见我说爱你

——————————

原来我还年轻过.还是忘不了,for her……

Jan 1
2009
Posted by fly2never in 未分类 on 01 1st, 2009| | 4 Comments »

2008如此颓,以至于没心情总结了.

展望下09,在心里为自己设立目标.

在博客mark一下,立此存照.

Nov 21
Cold&Dull
Posted by fly2never in 未分类 on 11 21st, 2008| | 3 Comments »

生病了,病的不轻.脑袋里嗡嗡炸响,听不见谈话,看不清东西.

我把电话本翻了2遍,不知道该给谁打电话.我不想让他们知道我的软弱.我突然想,我应该打给我妈,生病的时候,只有她会照顾我.相隔千里,只想听到一些关心的话语.

Oct 20
无脑的人
Posted by fly2never in 未分类 on 10 20th, 2008| | 8 Comments »

最近微软黑屏事件闹得沸沸扬扬的.网上先是一大批骂声,都在声讨m$.有趣的是,在可能吧写出一篇反驳的文章以后,网上的民意开始反戈,至少在cnbeta上是这样.开始骂那些”8成的不要脸”,开始攻击那些反对的声音..etc

他们很热衷表达自己的想法,他们很热衷扮演一个爱思考,善怀疑的孩子.他们的思考,他们的表达很大一部分动机都是为了让别人知道他在思考,在质疑,就像一场show.于是他们紧跟主流民意,于是他们快速表达,只要速度,不要内容.世界上每一天都发生那么多事情,哪有时间给他们仔细思考,凭直觉,想当然的说是最便捷的方法.于是他们听从意见领袖的话,领袖们思考的多,思考的深,肯定是对的.”我也是这么想的,就是没说出来” “英雄所见略同”云云.

相比之下,我甚至觉得那些非主流,90后,劲舞团都比他们好,至少别人不会乱吼乱叫,到处喷.         流氓会武术,谁也挡不住

Oct 9
我的电脑该结束裸奔了
Posted by fly2never in 未分类 on 10 9th, 2008| | 8 Comments »

我一直不太喜欢杀毒软件,占用资源是最主要的原因.我的配置很古董,p4 2.4G ,768M DDR333 ,主板845PE ,这样的机子安个杀软简直是受罪,特别是我第一次安装的是kav,简直把我的机子拖到卡死….于是裸了

我为了预防病毒感染C盘,把几乎所有的软件都替换成相应的绿软放在了E盘,ghost也做了,各种系统文件夹也移出到其他盘了.浏览器用世界之窗2+kmeleon,windows防火墙关掉.然后就这样相安无事的用了一学期,很好.

惨剧发生在上个月末,我去下载一个delphi的破解补丁,在一个外国crack网站下的,当时没想那么多,直接打开了….然后我的硬盘所有的exe全部感染病毒… 我忙不迭安上卡巴杀,可惜没用了,卡巴根本无法清除,只会删除exe.经历了N次ghost恢复+全新安装,我投降了,我把自己的资料用飞鸽传给了同学,然后硬盘全格.就这样,我的裸奔史结束了.

其实我认为,裸奔没什么不好,我用浏览器上网基本没有中过毒(建议使用IE外壳或非IE浏览器),主要问题是下载了不明程序,没有查杀就打开了.还有一点就是病从口入,u盘病毒很猖獗,也需要杀软.我现在准备安装一款杀软(或者安全套装),但是并不开机启动,只在我需要的时候手动查杀.现在暂时考虑的是,ess.我配置很低,只有考虑一些低端的东西

« Previous Entries