2008 年 11 月

浏览模式: 标准 | 列表 | 图文

Ubuntu Tweak

经过一个多月的开发,最新版本的Ubuntu Tweak正式发布了。 Ubuntu Tweak 0.4.2修正并改善了许多方面,并引入了“源编辑器”这个新特性。 —- 为了方便用户更方法的编辑和设定源,Ubuntu Tweak 0.4.2版加入了“源编辑器”。 什么是“源编辑器”呢?我来通过下面几张图片来展示它的相关功能。

基本功能:方便编辑源
首先,“源编辑器”提供一个巨大的文本框来让用户方便地编辑源。

只要点击“应用程序”->“源编辑器”,并解锁后,就可以马上可以开始自由地编辑源了。这个编辑区域支持语法高亮,使源更容易辨认。

通过这个,用户不再需要打开终端,执行:sudo gedit /etc/apt/sources.list等命令。

编辑完毕,保存后,可以点击“刷新”立即更新系统。



更新为预设的源

首次安装,或重装了Ubuntu后第一件事情就是要更改源。

现在通过Ubuntu Tweak来简单地完成这些吧!点击“更新源”,Ubuntu Tweak将会从网上更新下来一些常用、好用的源,根据自己的网络环境,确定并保存以后,就可以完成源的更改并马上更新系统了。

没有打开浏览器查询,没有打开终端的过程,没有复制和粘贴,一切用Ubuntu Tweak为你搞定!



上传新鲜的源

如果有更好的源了,但是服务器上没有收录,你就可以尝试将其上传。首先保证你使用了该用,然后点击“提交源”,简单地填上标题和相关注释,就可以上传了。

当然上传后的结果将经过审核才会开放出给他人使用,如果你有什么好的源而且默认的列表没有收录的话,赶快提交并与大家一块分享吧!



增加第三方源

这个版本继续完善了第三方源,加入了OpenOffice 3.0、Amarok等第三方源。其中还为特别为中文用户加入了Ubuntu中文源。

中文用户只要启用这个源,就可以立马享受到免费的永中Office2009,Ubuntu Tweak和好用的iBus输入法等好东西!



确保启用了中文源,你就可以在“添加/删除”中方便地安装“永中Office 2009 个人版”和iBus输入了!



除了以上新鲜玩意,Ubuntu Tweak 0.4.2还改善并修正了一些Bug,并重新制定了压缩包依赖,这样使用8.04以前的Ubuntu用户也能再次使用Ubuntu Tweak了。

还等什么,下载或从源里更新吧!

源代码:

ubuntu-tweak_0.4.2.orig.tar.gz

Deb包:

ubuntu-tweak_0.4.2-1~intrepid1_all.deb

消息来源:Linux桌面中文网

深入理解Javascript闭包(closure)

深入理解Javascript闭包(closure)

經過指點,獲悉原文為:http://www.felixwoo.com/archives/247

我轉貼的文章來源:http://www.knowsky.com/442121.html

PS:虽然我是从上面拷来的,但我并不建议打开这个网页看,因为,上面全是广告。个人猜测,代码也是他拷来的,但没有亲自验证,我也没法打包票。不过东西有点用,所以我也就COPY过来了。

内容如下:

最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业。对于初学者来说别说理解闭包了,就连文字叙述都很难看懂。撰写此文的目的就是用最通俗的文字揭开Javascript闭包的真实面目。

一、什么是闭包?
“官方”的解释是:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。
相信很少有人能直接看懂这句话,因为他描述的太学术。我想用如何在Javascript中创建一个闭包来告诉你什么是闭包,因为跳过闭包的创建过程直接理解闭包的定义是非常困难的。看下面这段代码:

function a(){
var i=0;
function b(){
alert(++i);
}
return b;
}
var c = a();
c();

这段代码有两个特点:
1、函数b嵌套在函数a内部;
2、函数a返回函数b。
这样在执行完var c=a()后,变量c实际上是指向了函数b,再执行c()后就会弹出一个窗口显示i的值(第一次为1)。这段代码其实就创建了一个闭包,为什么?因为函数a外的变量c引用了函数a内的函数b,就是说:

当函数a的内部函数b被函数a外的一个变量引用的时候,就创建了一个闭包。

我猜想你一定还是不理解闭包,因为你不知道闭包有什么作用,下面让我们继续探索。

二、闭包有什么作用?
简而言之,闭包的作用就是在a执行完并返回后,闭包使得Javascript的垃圾回收机制GC不会收回a所占用的资源,因为a的内部函数b的执行需要依赖a中的变量。这是对闭包作用的非常直白的描述,不专业也不严谨,但大概意思就是这样,理解闭包需要循序渐进的过程。
在上面的例子中,由于闭包的存在使得函数a返回后,a中的i始终存在,这样每次执行c(),i都是自加1后alert出i的值。

那 么我们来想象另一种情况,如果a返回的不是函数b,情况就完全不同了。因为a执行完后,b没有被返回给a的外界,只是被a所引用,而此时a也只会被b引 用,因此函数a和b互相引用但又不被外界打扰(被外界引用),函数a和b就会被GC回收。(关于Javascript的垃圾回收机制将在后面详细介绍)

三、闭包内的微观世界
如 果要更加深入的了解闭包以及函数a和嵌套函数b的关系,我们需要引入另外几个概念:函数的执行环境(excution context)、活动对象(call object)、作用域(scope)、作用域链(scope chain)。以函数a从定义到执行的过程为例阐述这几个概念。

1、当定义函数a的时候,js解释器会将函数a的作用域链(scope chain)设置为定义a时a所在的“环境”,如果a是一个全局函数,则scope chain中只有window对象。
2、当函数a执行的时候,a会进入相应的执行环境(excution context)。
3、在创建执行环境的过程中,首先会为a添加一个scope属性,即a的作用域,其值就为第1步中的scope chain。即a.scope=a的作用域链。
4、 然后执行环境会创建一个活动对象(call object)。活动对象也是一个拥有属性的对象,但它不具有原型而且不能通过JavaScript代码直接访问。创建完活动对象后,把活动对象添加到a 的作用域链的最顶端。此时a的作用域链包含了两个对象:a的活动对象和window对象。
5、下一步是在活动对象上添加一个arguments属性,它保存着调用函数a时所传递的参数。
6、最后把所有函数a的形参和内部的函数b的引用也添加到a的活动对象上。在这一步中,完成了函数b的的定义,因此如同第3步,函数b的作用域链被设置为b所被定义的环境,即a的作用域。

到此,整个函数a从定义到执行的步骤就完成了。此时a返回函数b的引用给c,又函数b的作用域链包含了对函数a的活动对象的引用,也就是说b可以访问到a中定义的所有变量和函数。函数b被c引用,函数b又依赖函数a,因此函数a在返回后不会被GC回收。

当函数b执行的时候亦会像以上步骤一样。因此,执行时b的作用域链包含了3个对象:b的活动对象、a的活动对象和window对象,如下图所示:(这里看了一下,确实没有图,看来果然是拷贝过来的,稍稍验证了我的说法,呵呵。。。。唉。可惜我确实不知道原文在哪里,不过,我是从他的网站拷来的,还是给他一个链接,毕竟我的资料来源是该网站)

df7707316cbb8ad23bba49a527e949e7

(附上原文圖片)

如图所示,当在函数b中访问一个变量的时候,搜索顺序是先搜索自身的活动对象,如果存在则返回,如果不存在将继续搜索函数a的活动对象,依 次查找,直到找到为止。如果整个作用域链上都无法找到,则返回undefined。如果函数b存在prototype原型对象,则在查找完自身的活动对象 后先查找自身的原型对象,再继续查找。这就是Javascript中的变量查找机制。

四、闭包的应用场景
1、保护函数内的变量安全。以最开始的例子为例,函数a中i只有函数b才能访问,而无法通过其他途径访问到,因此保护了i的安全性。
2、在内存中维持一个变量。依然如前例,由于闭包,函数a中i的一直存在于内存中,因此每次执行c(),都会给i自加1。
以上两点是闭包最基本的应用场景,很多经典案例都源于此。

五、Javascript的垃圾回收机制
在Javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收。如果两个对象互相引用,而不再被第3者所引用,那么这两个互相引用的对象也会被回收。因为函数a被b引用,b又被a外的c引用,这就是为什么函数a执行后不会被回收的原因。

对于n个条件中有大于等于或小于m个条件成立时符合要求的sql 条件语句的写法

对于n个条件中有大于等于或小于m个条件成立时符合要求的sql 条件语句的写法

假设的应用场景

我假定博客园要在首页为群组开辟一块空间,推广小组,小组能在首页显示的条件有四个:

1. 页面点击量大于10w

2. 小组人数大于1000

3. 小组帖子数大于10000

4. 小组在2007年之前创建

现在假定4个条件都满足的小组只有两个,太少了,推广位可以推广10个小组;这时候运营人员要求这4个条件中满足3个但是第4个条件不满足的小组算符合条件的小组,如果4个条件都满足就认为这个小组太火了,不需要在首页推广它了。业务逻辑想清楚了,下一步就该写代码了,数据逻辑层的代码的任务假定交给我了,我要考虑满足4个条件中3个成立的sql怎么写。

为了叙事方便,我们假如小组表的名字为Group,相关的条件字段是Pv,UserCount,PostCount,CreateTime:分别表示小组的点击量,人数,帖子数,创建时间.

我来写sql语句,上面的四个条件满足至少3个,有多少种情况呢?这是一个组合问题,一共有多少种的公式我已经忘记了,我要根据感觉写写看:

SELECT * FROM Group
WHERE (Pv>100000 AND UserCount>1000 AND PostCount>10000 AND CreateTime > 20070101)
OR (Pv>100000 AND UserCount>1000 AND PostCount<10000 AND CreateTime < 20070101)
OR (Pv>100000 AND UserCount<1000 AND PostCount>10000 AND CreateTime < 20070101)

这个Sql语句条件还行,但是我们的题目是n个条件m个条件成立,如果多了还这么写,恐怕就很累了,能不能改进呢?答案是肯定的,要不我就不写这篇随笔了,呵呵

SELECT * FROM Group
WHERE
(
CASE Pv WHEN Pv>100000 THEN 1 ELSE 0 END) --这是PV的条件成立则为1,否则为0
+(CASE UserCount WHEN UserCount > 1000 THEN 1 ELSE 0 END) --用户数条件
+(CASE PostCount WHEN PostCount > 10000 THEN 1 ELSE 0 END) --帖子数条件
+(CASE CreateTime WHEN CreateTime < 20070101 THEN 1 ELSE 0 END) --时间条件
= 3

如果上面的三个表达式加起来值是3就说明恰好满足三个条件,如果是两个条件就是等于2,如果扩展为n个条件m个条件成立也很容易写,很容易维护、修改。

这是一个sql条件语句的技巧,希望对你有用。

本文假设的场景纯属虚设,请勿遐想。J

原文地址:http://www.cnblogs.com/yukaizhao/archive/2008/11/14/sql_condition_m_n.html

PS:

顺便说明一下,在mysql中也支持这样的用法(4我没有试过,但是5是支持这样的用法的。)虽然这样的用法比较容易写和维护及修改,但看上去还是有点妖。而且,效率不一定能保证。

jQuery Plugins -- JQzoom

jQuery Plugins -- JQzoom

demo地址:http://www.51toria.cn/demo/JQplus/jqzoom/

使用的JS:

//**************************************************************
// jQZoom allows you to realize a small magnifier window,close
// to the image or images on your web page easily.
//
// jqZoom version 1.0
// Author Doc. Ing. Renzi Marco(www.mind-projects.it)
// Released on Dec 05 2007
// i'm searching for a job,pick me up!!!
// mail: renzi.mrc@gmail.com
//**************************************************************

(function($){

$.fn.jqueryzoom = function(options){

var settings = {
xzoom: 200, //zoomed width default width
yzoom: 200, //zoomed div default width
offset: 10, //zoomed div default offset
position: "right" //zoomed div default position,offset position is to the right of the image
};

if(options) {
$.extend(settings, options);
}

$(this).hover(function(){


var imageLeft = $(this).get(0).offsetLeft;
var imageRight = $(this).get(0).offsetRight;
var imageTop = $(this).get(0).offsetTop;
var imageWidth = $(this).get(0).offsetWidth;
var imageHeight = $(this).get(0).offsetHeight;

var bigimage = $(this).attr("alt");

if($("div.zoomdiv").get().length == 0){

$(this).after("<div class='zoomdiv'><img class='bigimg' src='"+bigimage+"'/></div>");

}

if(settings.position == "right"){

leftpos = imageLeft + imageWidth + settings.offset;

}else{

leftpos = imageLeft - settings.xzoom - settings.offset;

}

$("div.zoomdiv").css({ top: imageTop,left: leftpos });

$("div.zoomdiv").width(settings.xzoom);

$("div.zoomdiv").height(settings.yzoom);

$("div.zoomdiv").show();


$(document.body).mousemove(function(e){

var bigwidth = $(".bigimg").get(0).offsetWidth;

var bigheight = $(".bigimg").get(0).offsetHeight;

var scaley ='x';

var scalex= 'y';


if(isNaN(scalex)|isNaN(scaley)){

var scalex = Math.round(bigwidth/imageWidth) ;

var scaley = Math.round(bigheight/imageHeight);

}

mouse = new MouseEvent(e);



scrolly = mouse.y - imageTop - ($("div.zoomdiv").height()*1/scaley)/2 ;

$("div.zoomdiv").get(0).scrollTop = scrolly * scaley ;

scrollx = mouse.x - imageLeft - ($("div.zoomdiv").width()*1/scalex)/2 ;

$("div.zoomdiv").get(0).scrollLeft = (scrollx) * scalex ;


});
},function(){
$("div.zoomdiv").hide();
$(document.body).unbind("mousemove");
$(".lenszoom").remove();
$("div.zoomdiv").remove();
});

}

})(jQuery);

function MouseEvent(e) {
this.x = e.pageX
this.y = e.pageY
}

页面调用方法:

jQuery.noConflict();
jQuery(document).ready(function(){
$("img.jqzoom").jqueryzoom();
});
不要轻信 PHP_SELF

不要轻信 PHP_SELF

原文地址:http://www.phpv.net/html/1639.html,作者:手气不错

未删节版本

开门见山,考虑下面的代码(原文连接有详细的解释)

<html>
<body>
<?php
if (isset($_REQUEST['submitted']) && $_REQUEST['submitted'] == '1') {
echo "Form submitted!";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="submitted" value="1" />
<input type="submit" value="Submit!" />
</form>
</body>
</html>

看似准确无误的代码,但是暗藏着危险。让我们将其保存为 foo.php ,然后放到 PHP 环境中使用

foo.php/%22%3E%3Cscript%3Ealert('xss')%3C/script%3E%3Cfoo

访问,会发现弹出个 Javascript 的 alert -- 这很明显又是个 XSS 的注入漏洞。究其原因,发现是在

echo $_SERVER['PHP_SELF'];

这条语句上直接输出了未过滤的值。追根数源,我们看下 PHP 手册的描述

'PHP_SELF'

The filename of the currently executing script, relative to the document root.
For instance, $_SERVER['PHP_SELF'] in a script at the address
http://example.com/test.php/foo.bar would be /test.php/foo.bar. The __FILE__
constant contains the full path and filename of the current (i.e. included) file.
If PHP is running as a command-line processor this variable contains the script
name since PHP 4.3.0. Previously it was not available.

原因很明确了,原来是 $_SERVER['PHP_SELF'] 虽然“看起来”是服务器提供的环境变量,但这的确和 $_POST 与 $_GET 一样,是可以被用户更改的。

其它类似的变量有很多,比如 $_COOKIE 等(如果用户想“把玩”他们的 cookie,那我们也是没有办法)。解决方案很简单,使用 strip_tags、htmlentities 等此类函数过滤或者转义。

echo htmlentities($_SERVER['PHP_SELF']);

-- Split --

上述的例子让我们需要时刻保持谨慎 coding 的心态。Chris Shiflett 在他的 Blog 总结的相当直白,防止 XSS 的两个基本的安全思想就是

Filter input
Escape output

我将上面翻译成 “过滤输入,转义输出”。详细的内容,可以参考他 Blog 的这篇文章,此处略。

MySQL主从服务器的一些技巧

MySQL主从服务器的一些技巧

问题:主从服务器表类型的选择

一般的共识是主服务器使用innodb,从服务器使用myisam,以便各尽其能。

问题:主从服务器字段类型的选择

字段类型对于分页等操作有很大影响。主服务器一般是innodb,因为不涉及查询,所以可以使用varchar等来存储字符串来节省空间,从服务器一般是 myisam,因为涉及查询,所以必须在char和varchar之间仔细权衡,没有varchar, text, blob字段的表是静态表,反之是动态表,静态表的检索效率要比动态表好若干倍,一般来说,所有涉及大结果集的查询都应该尽可能保证在静态表上完成,这里 说一个例子:比如说常见的articles表有title(varchar), body(text)等字段,在做文章列表的时候,因为不是静态表,所以查询不会很快,下面开始重构解决方案:把原来的articles表拆分成 subjects表和contents表,title字段设置为一个足够的char类型放在subjects表里,body字段还保持是text类型放到 contents表里,subjects和contents表之间的关系是一对多,这样,顺带着也方便的实现了多页文章的功能,而且更重要的是在查询文章 列表的时候,操作都是在subjects静态表里完成,效率肯定会比前一种方案提升很多。

问题:主从服务器NOW()函数造成数据不一致

假设在主服务器上执行一条INSERT .... VALUES ( ..., NOW()),那么在从服务器上也会同样执行一条的SQL语句,但是一来主从服务器各自的时间设置可能就不一致,二来主从服务器间的SQL同步也可能存在 时间上的的延迟,这样,NOW()在两台服务器上的结果就可能不一致。解决方法是显而易见的,就是不要使用NOW(),时间的计算在应用程序里完成。这里 介绍一个额外的小技巧:在PHP里如果想获得当前时间的时间戳,不要用time(),而应该使用$_SERVER[‘REQUEST_TIME’] (PHP版本大于5.1有效),这样少做了一次系统调用,更有效率。

问题:主从服务器读写分离时读操作失败

先重现一下问题:比如说添加一条新数据,添加成功后根据last_insert_id跳转到新添加数据的浏览页面。在此过程中添加新数据的操作是在主服务 器上完成的,浏览新数据的操作实在从服务器上完成的,不过由于主从服务器间SQL同步存在延迟,所以当使用last_insert_id在从服务器上查询 的时候,从服务器很可能还没有还没来得及同步到此记录,所以读操作失败。解决思路也不复杂,在代码里加入一个缓存层(可以使用memcached),新添 加的数据都顺手放到缓存层里一份,新数据的读操作也先查询缓存层,这样就不会再有读操作失败的问题了,当然删除或者更新数据的时候也要顺带着处理好缓存数 据,可以使用观察者模式来搞定。不过这样缓存方案只限于读取单一的记录,对于读取列表的记录的情况,则是无效的。

问题:主从服务器索引是否有必要保持一致

一般都是利用主从服务器完成读写分离,从服务器上进行读操作,主服务器进行写操作,这样的话,主服务器上仅保留主键,外键,唯一索引等必要的索引即可,以 便保持数据合法性,而对于那些原本用于优化SELECT操作的索引,可以全部删除,如此的话主服务器的写操作效率会提升很多。

作者:老王
原文:http://hi.baidu.com/thinkinginlamp/blog/item/5d72dd5469b1885fd0090633.html

小家伙生病了

小家伙生病了

周六,小家伙病倒了,脸红红的。
因为平常也有时候会脸红,所以也没当一回事,第二天,才发现发烧了,听老婆说好象到40度了。在医院挂了水。
周一,结果发现烧退了,去医院检查了一下,发现白血球增多了。于是又挂了一瓶水先。
周二,去儿童医院检查一下。如果不行,可能准备住院了。

小家伙,希望你健康。
顺便提醒一下爸爸妈妈们,现在这个季节确实容易感冒,如果有人咳嗽啥的,尽量离远点。我们小家伙就是病毒性感冒。
尽量不要让别人走上来亲亲脸啥的。注意卫生啊。

再次希望小家伙身体健康

使用CyberArticle收藏文章

使用CyberArticle收藏文章

对于国产软件,我还是一向抱着支持的态度的。对Maxthon支持过,购买过正版杀毒软件,使用着个人版的WPS、fOXMAIL等。

凡是力所能及的,我一般还是会选择支持一下。

这次我介绍的软件是CyberArticle,如果我没有记错的话,以前它还有个中文名叫网文快捕,很早就用它了,惭愧的是那时候用的好象是破解版的。(软件这东西,是越来越不值钱了,现在要想从软件上赚用户的钱,除了软件本身外,服务才是大头。)

5月的天空是黑白的,很多人都选择了将自己的一部分薪酬对四川同胞们进行了帮助。CyberArticle也不例外,对于原本25元的软件,降价为20元,同时承诺所有的钱全部捐给灾区。

然后,同事mpeg凭着一个善良、博爱的心购买了这款软件,同时又博爱的将注册码告诉了我,让我又体验了了一下正版软件的乐趣。(后来我将此软件又推荐了给某某糖同学,他也兴高采烈的告诉我,购买了正版软件,我为我感到“自豪”)

我说的当然不完全是介绍这款软件,只是本软件在5.1测试版后,正式开始支持mysql了,这才是让我很心动的地方。

作为一个搞PHP开发的WEB开发人员,我的电脑里没有access软件和sql server express等,但mysql是从3.x开始就一直睡在我的机器里了。

启动这个功能后,快捕同学在我的数据库里建立了n个表,然后我发现我所存储的数据全部是用bLOB字段进行存储的(本来还想自己导出来使用呢,现在看来,还是有点复杂度的。)

但至少还是方便了我,如果我以后(我是说如果)心情好的话,还可以把这个网文快捕的数据采用WEB方式提供在网上呀。

我第天摘呀摘,网站的内容也就会随之增加,多幸福的事情啊。(随便说说。还没有研究完CybleArticle的数据结构呢,而且,即使我建表的时候选择了utf8,它建出来的表,还是采用了latin1_swedish_ci,有点让人失望,呵呵。希望以后会有改进吧,同时希望数据结构能够再优化一点。能够把blob字段等单出提到外部去,而不是和一些其他相关信息存储在一条记录里。)

官方提示:

需要注意的地方:
1:MySQL安装。安装MySQL的时候,尽量选择utf-8作为默认的编码。

2:MySQL端口。如果MySQL采用了默认端口,您不需要做任何配置。
否则,请找到CyberArticle安装目录下面的文件Plugins\Books\WizMySqlOleDB.ini,例如:
C:\Program files\Wizissoft\CyberArticle\Plugins\Books\WizMySqlOleDB.ini
用记事本打开这个文件,将[Server]下面的port的值修改成MySQL端口,例如:
[Server]
port=4444
然后保存该文件。

3:修改MySQL设置。
找到MySQL安装目录,例如:D:\MySQL\my.ini
用记事本打开my.ini 找到[mysqld]这一行,添加下面的内容:
#扩大缓冲区
max_allowed_packet=16M

修改完设置之后,请重新启动MySQL服务。

完成设置之后,您就可以新建MySQL类型的书籍了。

静看瑞星公关

瑞x最近是新闻不断,这不,360上也弹出了提示框,点击进去之后,发现是最新的一些事情汇总吧。(回复里有最近发生的一些事)

瑞星是2000年左右用的软件,01年之后,一直用诺顿直到05年,然后就开始啥杀毒软件也不装了。到06年只装一个360安全卫士。

当然,并不是说我是360的粉丝还是啥的,360对我来说,我只用了其中的几个功能

1、查杀木马和恶意软件 (这也是大多数人用它的原因吧)
2、启动项的修改,不需要我改msconfig了。还有注册表也不需要我动了
3、补丁下载,这个才是最方便的。因为不喜欢开自动更新,怎么知道最近需要更新哪些补丁,它会提示我
4、屏蔽一些恶意网站和控件啥的。
5、几个实时的保护(u盘、ARP、插件,漏洞等)

除此之外,其他没有什么可以值得我使用的了。一些服务的停止往往都是我安装好系统后就直接手工停掉的,用了这么多年的瘟多死,该用哪些服务,不用哪些服务,基本上还是知道的。

附上360的公告内容:

11月7日,瑞星向用户发布公告称,部分用户因瑞星卡卡上网安全助手BUG导致Outlook Express邮件目录被删除、Cookie丢失,给部分用户造成很大的麻烦和损失,并就此向用户表示歉意。

另据据新华社11月7日电,7日上午,一些使用瑞星卡卡助手和Outlook Express的用户发现,邮件莫名其妙丢失。据业内人士估计,大概有上千万网民受到影响。瑞星发言人称,不能保证用户所丢失的数据能够完全恢复。

从11月7日上午开始,很多用户纷纷到360百科上发布求助信息,这些用户因大量工作或私人邮件丢失而万分焦急,迫切希望得到360安全中心的帮助。为了帮助用户减少损失,360安全中心的专家网友向您推荐了两套目前比较可行的解决方案,详情请点这里:方案1 & 方案2

据360安全专家表示,使用以上修复工具,可以修复大部分用户的大多数邮件数据。但如果有些用户的邮件Cookie已经丢失,邮件数据将无法得到恢复。在此,360安全中心建议用户,慎重选择安全软件。

如果您在恢复工具的使用中遇到任何问题,请到360求助中心发帖求助:http://baike.360.cn/help.html,360安全专家将为用户在线提供帮助。同时,也希望广大360网友献计献策,给受害用户推荐或提供更完美的解决方案。

几个我喜欢的游戏图片(PNG格式)

从91年开始玩街机游戏,然后就开始被父母不停的教育教育再教育。不停被打被骂,但一直到现在,仍然是比较喜欢游戏,但现在对于游戏却没有以前有兴趣了。不过对行SF还是有兴趣的(虽然现在kOF比较流行)。

今年2、3月份的时候,流出了很多SF IV的视频,好激动啊,不过现在国内的街机厅大多充斥着麻将、斗地主等游戏,而对于格斗类的,好象都不太支持。

以前住虹口的时候,还经常去一家游戏厅玩玩SF和kOF,现在找不到地方玩了。

也曾和朋友去过卢工,当年电子游戏软件上还对卢工专门介绍过的。确实是一个很大的游戏机房,好象据说是和世嘉合作过的。不知道现在怎么样了,是否依然健在。。。人气是否依然旺

传统游戏在网络游戏的排斥下,市场空間已经是越来越少,不知道等我们下一代的小孩成长的时候,他们是否还能见到街机。

附上今天看到的几张图片,顺便也算是为自己收藏一下