2010-12-23

解决 Google APP Engine JS更新元素内容时乱码问题

这些天在GAE上做个小东西,前端触发事件请求后,通过Ajax到处理页面处理请求,处理程序处理成功后返回成功标识到前端页面,此时前端页面用JS更新页面内容提示操作成功。这时如果使用中文会出现乱码。那么我们可以给中文内容套上一个元素。

把如下:
$("#success_info").html("嘿!是不是忘了填写哪一项啦呀!").css("color","#D9242B");
改成如下:
$("#success_info").html("<span>嘿!是不是忘了填写哪一项啦呀!</span>").css("color","#D9242B");
即可解决中文显示乱码的问题。

2010-09-19

IE6下Javascript页面跳转和表单提交Bug

IE6是石器时代的浏览器,由于那个时代人类还处于幼小时期,生产力低下,IE6成为他们的最爱,事到如今,在天朝ie6用户还是占大头,当然他们也比较大头,这类人中有两类,一类是小白,他们根本不知道他们每天用来看网页的东西叫浏览器,还有一类是陈旧发霉的顽固分子,他们想回到原始社会,他们怀旧,这类人在IE6用户群里占两到三成,也是最不可救药的一群。

如果你是名弄web这玩意的主,我想你已经看过无数次IE6的低劣表演,它从头到脚透露着石器时代的低效和愚蠢。好了!好了!其实你已经知道我有多么喜爱ie6啦吧,我爱死她了!

那么,如何解决IE6下Javascript页面跳转和表单提交Bug,需要使用setTimeout()函数延迟实现。

1,兼容各浏览器的Javascript页面跳转

  1. setTimeout(function(){
  2.     window.location.href = url;
  3. },0);

2,兼容各浏览器的Javascript表单提交

  1. setTimeout(function(){
  2.        form.submit();
  3. },0);

2010-09-14

解析: 警惕 WebQQ2.0 的 Gmail 钓鱼

WebQQ 2.0 上线腾讯又多了款重量级的应用,但是用过程中发现其 Gmail 模块存在钓鱼的嫌疑。当使用 Chrome 访问其 Gmail 模块时提示为诱骗网站。
展开这个页面的 iframe 地址,发现是在 qq.com 域下https://web2.qq.com/cgi/gmail/gmail.html
但页面的形式与 Google 的风格一致,非常能让用户混淆这就是 Google 自家的页面。

http://img.cnbeta.com/newsimg/100914/13332701854491571.jpg

http://img.cnbeta.com/newsimg/100914/1333281328522806.jpg

查看其源代码,发现并没有提交到 Google 的痕迹。

然后我们查看其相关的 gmail.js(https://web2.qq.com/cgi/gmail/gmail.js),发现其中有段代码为

var option = {retype:3,callback:"parent.qqweb.app.gmail.getListMail"}; if (u != null && p != null) { option.u = u; // Google 帐户用户名 option.p = p; // Google 帐户密码 } formSend( GMAIL_SERVER_DOMAIN + "cgi/qqweb/gmail.do",{method : "POST", data : option} ); 

这段应该就是往 GMAIL_SERVER_DOMAIN POST 用户名和密码登录了,那么 GMAIL_SERVER_DOMAIN 的值是什么呢?就在本文件的第 14 行

var GMAIL_SERVER_DOMAIN = 'https://web2.qq.com/';

也就是说,你的 Gmail 用户名和密码实际上是提交到了

https://web2.qq.com/cgi/qqweb/gmail.do

这个地址。

那么,作为个技术人,我不禁想问:"腾讯,你想干什么?!" 同时建议已经使用过该模块的用户尽快更改您的 Google 帐号密码,并检查 Gmail 过滤器中有无可疑的项目。

PS,这次的 WebQQ2.0 放弃了 YUI,使用了名为 Jet 的 JavaScript 框架,对其感兴趣的可以关注。

UPDATE

关于Web-based IM通信模式的思考

摘要:

本文从Instant Messaging 出发,讨论了Web_based IM信息通信的特殊性,并在此基础上详细分析了现有的实现方案及其各自优缺点。

引言:

Instant Messaging(读成I-M),是一种使人们能在网上识别在线用户并与他们实时交换消息的技术,现主要用于网络即时聊天软件和特殊设备的网络实时监控。该技术普遍采用C/S架构,基于TCP/UDP协议,通过服务器协作,利用防火墙穿透(代理)或基于UDPNAT穿透技术,保持客户端之间的持续长连接,实现客户端之间信息的实时交互。但是,该类模式下的软件系统要求下载安装专用的客户端程序,导致系统部署成本高昂,系统维护困难。同时,为保证即时通信的顺利完成,一般还要求客户端防火墙开放特定端口,引起系统安全问题。因此,这种模式的IM技术在网络环境下的广泛使用还存在一些局限性。

Web-based IM,是基于HTTP协议,系统采用B/S模式,客户端通过访问特定的网页而实现的及时通信技术。这种即时通信技术以网页为载体,避免下载安装庞大的客户端程序,系统功能在服务器端统一维护,既减少了系统部署费用,也降低了维护难度。因此,Web-based IM技术将在基于Web的远程监控、网站客服等方面有重大的意义。

然而,Web-based IM在技术实现上存在难以逾越的困难:首先,Web-based IM采用HTTP作为主要的通信协议,因此,HTTP的非连接、无状态特性将导致通信状态管理非常困难;其次,HTTP访问的单向性只允许客户端(Web浏览器)主动去联系服务器,而服务端却无法主动联系特定的客户端,更不用谈多个客户端之间的互访。所以,要实现Web环境下的实时通信,必须首先要解决这个问题,即充分利用HTTP的特性,在技术实现上做出适当的调整,以适应即时通信的需要。本文将在前人的基础上,从客户端"拉"和服务器"推"的角度,总结归纳基于Web的即时通信方案,并进一步分析比较各自的优劣点。

Web IM通信实现方式

1.     客户端"拉"(Client_pull)模式

传统的HTTP请求模式为:客户端主动向服务器发送信息更新请求,服务器响应请求,客户端接收完响应之后显示更新信息,这也称为客户端"拉"。为实现客户端信息(准)实时更新,一般采用客户端轮询的方案,即实时信息通过网络发送到服务器,保存到服务器内存甚至服务器实时数据库中,客户端根据实际情况,每隔一定时间就自动向服务器重新请求页面数据,以保证客户端内容的实时性。然而,传统的做法是客户端页面整体刷新,导致大量无用信息的重复下载,不但浪费客户端、服务器以及网络资源,而且这种同步的请求方式还将致使客户端页面长时间处于等待响应阶段,而无法继续操作,严重影响客户端体验效果。因此,随着 AJAX技术的成熟,人们常使用XMLHttpRequest对象,采用异步方式访问服务器定时获取更新信息。

2.       服务器"推"(Server-push)模式

服务器"推"模式,即服务器在信息变化之后主动发送新的信息到客户端,客户端接收之后自动进行更新。但是,由于HTTP无状态的特性,服务器响应完毕客户端请求之后,二者之间的通信在默认情况下会自动断开,加上NAT、客户端防火墙等因素的影响,服务器随时向客户端发送更新信息的条件还很不成熟,除非二者之间保持实时的连接。要实现客户端与服务器的实时连接,目前存在以下两种方案值得考虑。

1)基于客户端套接字的服务器推技术

要实现客户端与服务器的实时连接,传统的方式是采用在客户端页面中嵌入ActiveXFlashApplet之类的插件,插件基于TCP/UDP协议,通过套接字方式,实现客户端与服务器的持久连接,保证二者信道的持续通畅,以达到服务器在获取新信息之后可以主动发送到客户端,进行更新。一般而言,在不考虑通信信息的完整性的情况下,为减轻服务器的负载,服务器可以基于UDP协议向客户端发送更新信息。由于UDP是一种不可靠的协议,所以如果需要考虑通信信息的一致性等,则必须使用具有信息完整性验证的TCP协议进行通信。

2)Comet技术

近年来,由于Ajax技术的发展和推广,一种基于HTTP长连接、无需在浏览器端下载安装插件服务器"推"技术,即Comet技术,成为新宠。其实现模型有以下两种:基于 AJAX 的长轮询(long-polling)方式和基于 Iframe  htmlfile 的流(streaming)方式。

长轮询的基本思想就是服务器不立即响应客户端请求,直到服务器接收到针对该客户端的新的信息的时候才响应客户端的请求。客户端一收到服务器的响应就马上发送下一个请求,这样就保证了客户端总是处于请求等待响应的状态,从而使得服务器处于"主动"的地位,当其有数据要发送时可以准确无误地找到客户端,这就类似于一个持久的TCP连接,如图所示

 

 

如果在双方规定的时间内,在两个方向上都没有反应(如客户端没有需要更新的信息,而连接即将超时的情况),则服务器可以用一个没有数据的空响应来进行响应。这个响应将立即触发一个新的客户端请求,这样就可以保证在网络连接不正常的情况下双方都可以在一个合理的时间内知道。为了避免传统HTTP请求导致页面整体刷新的情况,客户端请求一般采用AJAX技术,利用XMLHttpRequest对象向服务器发送异步请求以更新数据。

流(streaming)方式的基本思想是: HTML 页面里嵌入一个隐蔵帧,然后将这个隐藏帧的 SRC 属性设为对一个长连接的请求,服务器端就能源源不断地往客户端输入数据。然而,iframe服务器端并不返回直接显示在页面的数据,而是返回对客户端 Javascript 函数的调用,如"<script type="text/javascript">js_func("data from server ")</script>"。服务器端将返回的数据作为客户端 JavaScript 函数的参数传递;客户端浏览器的 Javascript 引擎在收到服务器返回的 JavaScript 调用时就会去执行代码。

 

从上图可以看到,每次数据传送不会关闭连接,连接只会在通信出现错误时,或是连接重建时关闭(一些防火墙常被设置为丢弃过长的连接,服务器端可以设置一个超时时间,超时后通知客户端重新建立连接,并关闭原来的连接)。

实现方式比较

采用纯粹的HTTP+AJAX技术实现网页的实时通信,技术简单,成本低,但是存在一些不足:第一,所有客户端的更新消息通过服务器进行"被动"地中转,客户端通过对服务器进行轮询,实现客户与客户之间的消息交互,因此客户端获取的信息是"伪实时"的。第二,轮询的时间间隔的设定异常困难:如果时间间隔过短,就会产生大量的无用请求,加重网络的负担;如果时间间隔过长,又不能保证客户端及时获取更新信息。由此可见,该方案的成功实现必须解决低响应等待时间和低网络带宽之间的矛盾问题。倘若服务器仅在数据发生变化之后,才向客户端发送更新信息,那么这一切问题都能得到妥善处理。

Comet技术可以解决低响应等待时间和低网络带宽之间的矛盾问题,并且在信息实时性方面有所改善,但是仍然存在一些问题需要注意:首先,该模式会仍然导致部分无用信息的下载;其次,对于某些对信息实时性要求很高的应用,它也表现出心有余而力不足;再者,基于HTTP1.1规范,同一客户端不能同时使用超过2个的HTTP长连接;最后,由于Web 服务器会为每个连接创建一个线程,如果在大型的商业应用中使用 Comet,服务器端需要维护大量并发的长连接,因此在这种应用背景下,服务器端需要考虑负载均衡和集群技术,或是在服务器端为长连接作一些改进。

基于插件的解决方案利用Socket连接服务器的确可以保证客户端信息的实时更新,但一些因素值得考虑:首先,部分页面插件需要客户端下载安装(如ActiveX),因此在特定客户端环境下可能因为插件安装失败而导致实时通信无法使用;其次,页面插件使用套接字接口,需要服务器开放一个通信端口,在实现过程中甚至可能需要程序员解决防火墙穿透问题;再次,页面插件在接收到服务器返回的信息之后,可能无法通过脚本语言(如JavaScript)去更新HTML页面(如Applet);最后,客户端连接数量增多会加重网络负担和服务器负载,直接影响客户端并发访问数量。

展望:

以上几种解决方案虽然都存在一定的不足,但在特定的情况下却具有一定的优势。因此,在实际的工作中,可以针对特定网络状况、服务器性能、信息有效期限等现实情况从有效信息率(单位时间系统内产生的有效信息的数量)、客户端并发数量、数据一致性、信息实时性、服务器负载等方面考察各种方案。

 

参考文献:

1.       Comet:基于 HTTP 长连接的"服务器推"技术

2.       B_S模式下基于JabberIM系统的构建方法

3.       IM:聊天进化谱

4.       基于Ajax的即时消息系统的设计与实现

5.       基于P2P技术实现即时通信系统的研究

6.       基于Web的远程实时监控系统研究及应用

7.       即时通信研究综述

8.       即时消息

9.       网页即时通信的研究及应用

10.   Ajax技术在基于Web的实时监控系统中的应用研究

11.   Ajax技术在实时WEB监测中的应用研究

12.   Flash在基于Web的远程实时监控系统中的应用研究

13.   动态Web技术在实时监测系统中的实现

14.   基于B_S的海洋平台远程监控系统设计

15.   基于Web的告警实时显示系统的设计与实现

16.   基于Web的工业信息实时监控系统研究

17.   基于WEB的工业远程监控系统研究与实现

18.   基于Web的实时控制系统的研究与设计

19.   基于服务器推送和事件流处理技术的实时Web系统研究

20.   Anil Bhatt 张凯峰(译)Ajax推送与拉取方式的比较

21.   JerryQu WebIM开发之通讯模式介绍

22.   赵宏华  基于WEBIM实现考虑

23.   及时通讯原理

24.   WebIM开发之多页面数据同步

2010-04-30

免费版Chilkat FTP 使用例子

Chilkat FTP 分免费版和商业版(Chilkat FTP2),免费版Chilkat Soft 不给技术支持,没有用例,这给广大网友带来很大的烦恼。下面是一个简单的FTP用例,也许能帮助你。

Sample Chilkat FTP script
The following is a Sample script for the Chilkat FTP component.

<%
'## Create object
Set objConnect = Server.CreateObject("Chilkatftp.ChilkatFTP")
'## Get hostname
objConnect.HostName = ("Host address")
'## Get FTP username
objConnect.Username = ("user")
'## Get FTP password
objConnect.Password = ("pass")
'## Connect to server
objConnect.Connect()
'## Get connect status
If objConnect.IsConnected = 1 Then
'## Change dir
objConnect.ChangeRemoteDir("Directory")
If objConnect.CreateRemoteDir ("Directory") = 1 Then
Response.Write "It Worked!"
Else
Response.Write objConnect.ErrorLogHtml
End If
Else
Response.Write "Failed to connect to the server!"
End If
'## Disconnect
objConnect.Disconnect()
%>

2010-03-24

欢迎您来到谷歌搜索在中国的新家

欢迎您来到谷歌搜索在中国的新家

主旨:

"欢迎您来到谷歌搜索在中国的新家"
- Google查看 Google 边栏评注

2010-03-12

您可能还不知道的 46 项功能

http://www.cnbeta.com/articles/106058.htm

- 使用 Google 工具栏发送

自 Firefox 3 发布以来,我们一直在努力为 web 开发者提供新的功能。我们认为有必要写一篇博文,来确切列出那些我们知道的但大家可能还不知道的所有特性。这篇博文包含了我们在之前约三个发布版本的研发 过程中完成的所有工作,更集中整理了 3.6 版本中的新特性(由于译言编辑器不支持 CSS3,原文中的 3.6 标记加粗代替)。 尽情享受吧!

自 Firefox 3 发布以来,我们一直在努力为 web 开发者提供新的功能。我们认为有必要写一篇博文,来确切列出那些我们知道的但大家可能还不知道的所有特性。这篇博文包含了我们在之前约三个发布版本的研发 过程中完成的所有工作,更集中整理了 3.6 版本中的新特性(由 于译言编辑器不支持 CSS3,原文中的 3.6 标记加粗代替)。

尽情享受吧!

CSS

@font-face
使用网络上的字体显示文字(3.6: 支持 WOFF 与 TTF 字体)
pointer-events
点穿元素 3.6(允许点击某元素底层的指定元素——译者注)
:-moz-locale-dir(ltr/rtl) 3.6
确定内容从左向右排列(ltr)还是从右向左排列(rtl)
:indeterminate 伪类 3.6
将样式应用到"不确定的"单选或多选框
阅读媒体查 阅(Media Queries)
根据阅读媒体(的字号、宽高 比、颜色、设备趋向、分辨率)选择 CSS。3.6 新增了可判断是否使用了掌上设备的类。
组合 伪类
:nth-child, :nth-last-child, :nth-of-type, :nth-last-of-type, …
-moz-border-radius
圆角边框
CSS 变换
缩放、翻译、倾斜或旋转元素
CSS 渐变 3.6
将线性渐变或辐射状渐变用于背景
多重背景 3.6
同时使用图片、渐变以及其他对象作为同一个背景
背景 尺寸 3.6
定义背景图片的尺寸
CSS 分列
将内容分列显示
文本阴影
文本周围的阴影
框型阴影
元素周围的阴影
边框图片
将图片用作元素边框
rem 长度单位 3.6
根据根文本元素缩放元素
图像渲染算法 3.6
优化了缩放图像的速度与质量

XMLHttpRequest

跨 域的 XMLHttpRequest
允许指向其他域的 XMLHttpRequest 请求
请 求进度监控
计算上传/下载的百分比
发 送二进制数据 3.6
发送非 ASCII 内容
从 请求读取二进制数据
从 XMLHttpRequest 请求中读取服务端发送的二进制数据

脱 机功能

脱机与联机事 件
当浏览器进入联机或脱机模式 时通知
localStorage 本地存储
永久储存数据
HTML5 应用程序缓存
为 Firefox 的脱机工作创建应用程序

内容处理

Video 标签 (poster 属性 3.6)
在网页中直接嵌入视频
Audio 标签
在网页中嵌入音频文件
Canvas 元素
通过 JavaScript 绘制位图数据
PNG 动画
动态的透明 PNG 图像
SVG 支持
绘制、操控矢量图像,从中捕获事件
ForeignObject 外部对象
在 SVG 元素中添加 HTML 内容
将 SVG 特效与变换应用到纯古老的 HTML 内容中
CSS 遮罩、SVG 的裁剪路径(clip-path)或滤镜

交互

页内拖放
完全支持 web 应用内部的拖放操作
从 桌面拖放文件 3.6
直接从操作系统中将文件拖入您的网页
DNS 预载
通过 DNS 预载技术加速网页载入
定位
检索 GPS 坐标或 3.6 街道地址
鼠标手势事件
在鼠标板上点击、放大与旋转
侦测设 备趋向
侦测机器趋向的事件
基于 Web 的协议处理
创建支持类似 "mailto:" 或 "phone:" 协议的 web 应用
侦 测文档宽高变更 3.6
当文档(即网页)的尺寸有所变更时能够发现
窗口和帧之间的通信
安全地从一个文档向另一个文档发送信息

JavaScript 与 API

原 生 JSON 支持
安全快速地编解码 JavaScript 对象
Web Workers
在单独的线程中执行 JavaScript 代码
文 件 API 3.6
从拖放、文件上传控件所提供的文件读入二进制内容
QuerySelector 查阅选择器
通过 CSS 选择器查找网页中的元素
classList 类 列表 3.6
轻松操控特定元素的类
脚本元素的延迟与异步 3.6 属性
通过新的脚本属 性提升页面载入时的性能

2010-01-15

Re: 以开放的名义挽留谷歌

"林则徐"禁网之后,好期待第三次"鸦片战争"的到来!

以开放的名义挽留谷歌

中国外交部发言人14日首次对谷歌退出中国作出回应时称:中国的互联网是开放的,中国政府鼓励互联网的发展,中国欢迎国际互联网企业在中国依法开展业务。

我很关心谷歌宣布可能退出中国这件事,此事一发生就期待着中国官方的反应。谷歌表示意向是在12日,时隔一天,在美国国务卿、美国总统对此有所反应后,中国政府的回应应该说是及时的。至于内容,我认为"开放"和"依法"两个要点均得体、正确,纸面和字眼上均无懈可击。

开 放为互联网主要特性之一,不开放的网络就不是互联网了,那是区域网等别的东西。"开放的互联网"当然对,这就是说,中国互联网不是被封闭、被屏蔽的网,不 是"闭关锁网"的网,它连接世界,没有国界,没有人为的封锁墙,通畅而便捷地与世界沟通交流,中国和外国国民待遇相同,获取资讯或进行各种交往时均无需在 网上翻墙越卡。

并非巧合,改变中国历史进程的那两个不可分割的基本点,就有"开放"这一点。的确,改革初期拨乱反正之壮举,几十年经济、 科技发展之功绩,无论如何都不能在闭关锁国的状态下达成。开放改变了中国,开放更新和再造了执政基础,这一事实无可质疑。没有开放,不仅没有中国互联网, 现今所有的已经普及了的"软件"和"硬件",大部分都不可能获得。

一件平时拥有、运用的工作手段或工具,在无丢失之虞时往往因"天然具 备"而低估它的价值,而当突然有了失去危险的时候,才重新评估它,才体会到它的珍贵。网语有句"不要迷恋哥,哥只是个传说",但谷歌却不是传说。据实说出 自己的感受,"迷恋"谷歌的情绪已经将我笼罩。它对我的事业和生活非常重要,我因暂且迷恋事业与生活而迷恋谷歌。

学术一点的说法,谷歌即 我们享受的人类文明成果的重要组成部分。俗气一点的说法,不花钱的人工产品中,再也找不出比谷歌更好的东西;许多花了大钱的商品和服务,也比不上谷歌好。 对这个为我免费提供服务的谷歌,我心存感激理所当然。几小时前,见葛红兵教授留言"没有谷歌,互联网就没价值了",这让我又想到,失去谷歌相当于失去无数 师友,失去最强悍的秘书班子。假如能够用钱把谷歌留住,我想愿意为之大掏腰包的客户可聚成人山人海。

在智识群体,为谷歌一事而遗憾或揪 心、认为谷歌无可替代的人最为集中。中国智识群为全球最强大搜索引擎的直接受益者,包括文盲在内的不上网的人则是间接受益者。融入全球化进程越深,资讯需 求越是讲究质量与广度,思维与心态越是开放和开阔,对谷歌的作用和价值体会则会更深。其实,处在中国对外开放前沿与科技、文化前沿的群体,乃至一线的内政 外交决策集体及其智囊班子,依赖谷歌与国际互联网的程度,都比我这个"知名网友"更强。

"谷歌退出中国",这样说只是部分正确。全面准确 的说法应该是:谷歌退出中国,中国也退出了(部分)世界;或,部分世界因素退出了中国。世界看中国,因少了谷歌收录的中国信息而不好看;中国看世界,因大 量减少了外部信息而看不清。况且,"谷歌退出"若成为现实还仅是个不良连锁反应的起点,我们还无法估价它究竟开启了什么,也无法估价在后续的事态发展过程 中还将有什么世界元素退出中国,也不好预测哪些原本要进入中国的计划将被改变。

网民以"我需要"的名义吁请"共存磋商",而国家对此不屑 一顾也算"正常",然而,以国家战略、科学发展战略、国际地位与形象需求为出发点,国家也有积极与谷歌进行"体面共存"磋商的责任。因为,谷歌退出对草根 网民来说损失有限而可估,而对"国家"的精英群体、利益集团而言,情况就不那么简单了。对什么软实力、硬实力、综合实力乃至决策力等等与草根存在相当距离 的东西,都将发生负面的影响,长期以来引以为豪的开放姿态与开放业绩,或许就此不可持续发展。

国家不可以站在谷歌商业对手的角度幸灾乐祸 或袖手旁观。国内有同业企业对谷歌退出做兴奋状,这不义又不智。没有对谷歌技术模式的借鉴,就没有国内强势的同业,再则,同循平等规则进行市场竞争,谁也 未必能成为谷歌的对手。这不,一旦谷歌对浏览内容突然撒手"解禁",在"民族品牌"那里,原来不得一见的内容也立马水落石出。此现象说明,国内企业若非紧 跟谷歌"违法",那就是原本依靠盗链谷歌搜索结果,二者必居其一。

外交部发言人说了,中国法律禁止任何形式的黑客攻击行为,中国像其他国 家一样依法管理互联网,有关管理措施符合国际通行做法。实情若此,谷歌没有理由从开放的中国互联网领域退出。我觉得,问题可能在于对"依法"和"违法"的 认识不同,但这是可以磋商达成一定共识的。中方的好办法自然是明确对谷歌指出:贵公司违反了中国宪法、法律某某条款,某种做法不符合国际通行做法。

管 理外企和管理国内网站应该是一样的,都该依法管理。我们国内的许多网站管理人员,对谷歌的怨言和理由也能理解,因为管理机构不依法管理的现象的确存在,以 至于国内网站的生存危机感并非来自外部攻击,而是均由不规范管理而发生。只不过,我们网站忍耐的理由比较充分,而谷歌的忍耐理由不够充分而已。所以说,依 法管理这条要求,本是外企和"内企"、外网和内网共同的要求,本是对国内同胞开明、开放,对世界开明、开放之必须——这一诉求应被权力机构所重视。

2010-01-12

猫眼不能评论的帖子是否可以在这里评论呢?

呵呵!希望在猫眼能推广Google sidewiki

主旨: 帖子列表-猫眼看人-凯迪社区查看 Google 边栏评注

猫眼看人

好久没到猫眼看人了!

有用Sidewiki的猫友吗?

in reference to: 帖子列表-猫眼看人-凯迪社区 (view on Google Sidewiki)

这个什么意思啊!

ارتش سایبری ایران در اعتراض به دخالت های سايتهاي بيگانه و صهیونیستی در امور داخلی کشورمان و پخش اخبار دروغ و تفرقه برانگیز راه اندازي شده است

in reference to:

"ارتش سایبری ایران در اعتراض به دخالت های سايتهاي بيگانه و  صهیونیستی در امور داخلی کشورمان و پخش اخبار دروغ و تفرقه برانگیز راه اندازي شده است"
- ..:: Iranian Cyber Army ::.. (view on Google Sidewiki)

来到这个页面可真高兴啊!