《福布斯》:微软诺基亚力推WP7抗衡谷歌

导语:《福布斯》杂志网络版周一发表分析文章称,尽管谷歌得到了摩托罗拉移动,但是微软可以通过与诺基亚的合作助推Windows Phone 7(以下简称“WP7”)发展,并抗衡谷歌。

以下是文章全文:

去年,微软发布了新的智能机平台WP7,但是该系统并未引起其他手机制造商的兴趣。与此同时,谷歌Android、苹果iOS却呈现出了强劲增长态势,统治了智能机系统市场。

Android系统目前的全球份额达到50%,美国份额40%,iOS美国份额为27%,而现在谷歌又收购了摩托罗拉移动来加强其技术和知识产权储备。

具有讽刺意味的是,微软现在从Android获得的营收超过了自家平台WP7。我们预计微软股价将达到28美元,比当前股价高出15%。

微软智能机策略

尽管起步较慢,但微软去年也在智能机领域取得了一定成就。随着专利授权协议的签订,微软正设法让制造商们远离Android。今年2月,微软又与全球最大手机制造商诺基亚达成了合作协议,诺基亚将把WP7作为其智能机主要系统,旗下首款WP7设备很快就会推出。

微软WP7“芒果”系统更新带来了500项新功能,传闻称,在“芒果”之后,微软还将针对廉价智能机领域推出“Tango”系统。目前廉价机市场由Android统治。

微软还将吸引更多制造商加入其系统平台,三星、HTC和LG已经开发出了旗下首款WP7设备,而诺基亚WP7手机也即将推出。

新营收来源促进微软增长

微软现在的主要营收来源就是Office、Windows和服务器部门,这三大部门几乎贡献了微软所有利润,不过微软辅助业务Xbox和WP7也开始增长。根据微软公布的二季度财报,受到Xbox销量上升的推动,微软娱乐和设备部门营收增长30%。

未来几年,我们预计Windows、Xbox和WP7业务将成为微软增长的主要组成部分。(晓明)

谷歌125亿美元收购摩托罗拉移动

新浪科技北京时间8月15日晚间消息,谷歌今日宣布,已与摩托罗拉移动签署最终协议, 将以每股40美元的现金收购后者,总价约125亿美元,与摩托罗拉移动上周五收盘价相比溢 价63%。该交易已经得到两家公司董事会的批准。

S38071T1313410147458

收购摩托罗拉移动有助于谷歌进一步强化Android生态系统,从而提升在移动计算市场的竞争力。

交易完成后,摩托罗拉移动将作为谷歌的独立业务继续运营,Android仍保持开放。

谷歌CEO拉里·佩奇(Larry Page)称:“摩托罗拉移动全力致力于发展Android平台,因此收购摩托罗拉移动符合两家公司的利益。合并后,我们将为用户提供更出色的用户体验,从而进一步强化整个Android生态系统,这有利于用户、合作伙伴和开发人员。我十分欢迎摩托罗拉员工成为谷歌大家庭中的一员。”

摩托罗拉移动CEO桑杰·贾(Sanjay Jha)称:“这笔交易将为摩托罗拉股东带来巨大价值,为我们的员工、客户和合作伙伴提供更多新机会。此前我们已经与谷歌在Android平台上展开合作,如今合并后,我们将带来更多创新,提供更出众的移动解决方案。”

谷歌移动业务高级副总裁安迪·鲁宾(Andy Rubin)称:“我们希望此次合并能为Android生态系统开辟出一片新天地。与此同时,我们的Android政策保持不变,继续作为一个开放的平台。我们将继续与Android合作伙伴开发并提供创新的Android设备。”

Discuz X2中QQ互联(QQ登录)注册时强制设置输入密码的修改方案

Posted on 2011/07/25 by zcc Discuz X2推出了云平台,也正式开放了令人心动的QQ互联(QQ登录)。但是当你兴奋积极地开启了QQ互联功能时,你是否有意识到你正在一步步走向腾讯和康盛联合设下的陷阱呢?

直接开门见山:

QQ互联与腾讯开放平台的QQ登录是有区别的
QQ互联的注册环节没有密码设定
绝大部分通过QQ互联注册的用户是不会再去设定他的密码的
很大一部分绑定QQ账号的用户(设定了密码的),也可能已经忘记了它的密码
最关键的是作为站长的你,剥离QQ的情况喜爱,无法来保证大部分用户都能正常登录
太恐怖了!
但是这个功能不用,也是怪可惜了。大部分用户是不清楚这些危害的,你公司的老板也可能不清楚。所以只需要稍微改下代码,稍微减弱些用户体验,你就能保证用户资料的独立性——在QQ互联注册环节强制要求用户设定密码。
操作:
1. 打开文件source/plugin/qqconnect/template/module.htm
(1) 查找
$(‘{$_G[‘setting’][‘reginput’][‘password’]}’).parentNode.parentNode.parentNode.parentNode.parentNode.style.display = ‘none’;
$(‘{$_G[‘setting’][‘reginput’][‘password’]}’).outerHTML += ‘$js1’;
$(‘{$_G[‘setting’][‘reginput’][‘password’]}’).required = 0;
$(‘{$_G[‘setting’][‘reginput’][‘password2′]}’).parentNode.parentNode.parentNode.parentNode.parentNode.style.display = ‘none’;
$(‘{$_G[‘setting’][‘reginput’][‘password2′]}’).required = 0;

修改成
//$(‘{$_G[‘setting’][‘reginput’][‘password’]}’).parentNode.parentNode.parentNode.parentNode.parentNode.style.display = ‘none’;
$(‘{$_G[‘setting’][‘reginput’][‘username’]}’).outerHTML += ‘$js1’;
$(‘{$_G[‘setting’][‘reginput’][‘password’]}’).required = 1;
//$(‘{$_G[‘setting’][‘reginput’][‘password2′]}’).parentNode.parentNode.parentNode.parentNode.parentNode.style.display = ‘none’;
$(‘{$_G[‘setting’][‘reginput’][‘password2′]}’).required = 1;

2 打开文件 source/module/member/member_connect.php
查找
$ctl_obj->setting[‘ignorepassword’] = 1;
将它注释掉,或者删除
3 打开文件 source/module/member/member_register.php
查找
DB::query(“INSERT INTO “.DB::table(‘common_member_connect’).” (uid, conuin, conuinsecret, conopenid, conispublishfeed, conispublisht, conisregister, conisqzoneavatar, conisfeed) VALUES (‘$uid’, ‘$conuin’, ‘$conuinsecret’, ‘$conopenid’, ‘$conispublishfeed’, ‘$conispublisht’, ‘1’, ‘$is_qzone_avatar’, ‘$user_auth_fields’)”);

修改成
DB::query(“INSERT INTO “.DB::table(‘common_member_connect’).” (uid, conuin, conuinsecret, conopenid, conispublishfeed, conispublisht, conisregister, conisqzoneavatar, conisfeed) VALUES (‘$uid’, ‘$conuin’, ‘$conuinsecret’, ‘$conopenid’, ‘$conispublishfeed’, ‘$conispublisht’, ‘0’, ‘$is_qzone_avatar’, ‘$user_auth_fields’)”);

百度迎来上市六周年 股价增长52倍续写神话

8月5日消息,今日是百度登陆纳斯达克六周年纪念日。六年前,百度成功登陆纳斯达克,股价从发行价27美元起步,一路飙升。按拆股前价格计算,百度现在股价已经高达1439美元,成长超过52倍。对全球资本市场来说,市值超过500亿美金的百度,已成为名副其实的 “中国名片”。

过去52周,百度股价一度摸高至165.96美元,华尔街著名投行Jefferies将百度目标股价设定为200美元。

百度最新发布的Q2财报显示,百度第二季度总营收为人民币34.15亿元(约合5.284亿美元),同比增长78.4%;第二季度净利润为人民币16.33亿元(约合2.526亿美元),同比增长95.0%;继续保持了平均每年同比翻一番的强劲增长。华尔街著名投行Jefferies在报告中,重申了对百度的“买入”评级,并强调“百度的长期前景具有吸引力,中国中小企业电子商务增长将继续推动搜索市场业务发展。”

事实上,百度从IPO一开始就得到了全球投资者的热烈追捧。上市当天,百度就创造了纳斯达克市场股价当日涨幅最高的纪录。此后,百度由于杰出表现,受邀加入纳斯达克百强成分股,成为全球高科技公司业绩表现的风向标,在去年上市五周年纪念日当天,百度更是受邀成为首个为纳斯达克远程敲响开市钟的中国企业,李彦宏本人也获得纳斯达克副董事长Sandy Frucher亲自授予的“纳斯达克全球杰出企业家”荣誉称号。按目前市值计算,百度已经成为全球股市市值最高的三家互联网公司之一。

在国内互联网行业,目前市值前三的公司分别为百度、腾讯和阿里巴巴。过去6年,中国互联网市值第一的宝座一直在这三家公司之间交替。2007 年,阿里巴巴上市时股价一路高开,市值相当于百度和腾讯的总和。现在这一情况已经发生逆转,按8月5日最新股价计算,百度市值几乎等于腾讯和阿里巴巴总和。(百度市值为502亿美元,腾讯为461亿美元,阿里巴巴为64亿美元)。某种程度上,这种戏剧性变化也显示出以百度为代表的搜索市场正成为中国互联网最具商业价值的领域。

多玩网总裁李学凌

“他和大部分的媒体记者不一样。”雷军说,“他拒收所有车马费和(企业)稿酬。这不表示有什么了不起,但不多见,让我认为他有更大的目标和梦想。他又很固执自己的观点。他批评我们金山的产品不好,你怎么也说服不了。我们关系很好,但他照骂不误。他是一个有自己观点的人,而且不被任何东西所利诱。他还愿意琢磨,是个技术爱好者和发烧友。他批评我们的东西还是讲在了点子上,很有深度。”

WordPress CKEditor smiley表情图标定制化

WordPress默认的编辑器不是很好用,我习惯将它替换成CKEditor,安装CKEditor For WordPress即可。安装后编辑器将被替换,评论框的编辑器默认会被替换成CKEditor,有时候会导致模板样式错乱,可以在CKEditor->Basic Settings中禁用。

CKEditor默认的smiley表情不适合中国,我们可以将表情改造一下换成自己喜欢的表情,方法如下。

1. 下载你想要的表情包,一般是gif格式的图片,假设这些图片所在的文件夹叫mysmiley,将该文件夹拷贝到插件的表情目录中,路径为

wp-content/plugins/ckeditor-for-wordpress/ckeditor/plugins/smiley/images

2. 修改配置文件wp-content/plugins/ckeditor-for-wordpress/ckeditor.config.js

在CKEDITOR.editorConfig = function(config) { … }中添加如下代码

config.smiley_path=CKEDITOR.basePath+’plugins/smiley/images/mysmiley/’;

config.smiley_images=[‘1.gif’,’2.gif’];

第一行代码定义了表情文件所在的文件夹的路径,第二行是表情文件名字的数组。这样点击编辑器的表情按钮,自定义图标就会显示出来。

当你的图标过多时,由于显示不开会导致一部分图标无法显示,而且表情图标对话框没有滚动条,为了避免这种问题,我们可以修改一下css文件。找到wp-content/plugins/ckeditor-for-wordpress/ckeditor/skins/kama/dialog.css(假定你使用了默认的皮肤kama),在最后一行添加如下代码

.cke_dialog_ui_html{height:350px;overflow:auto;}

这个文件是经过压缩的,所以添加代码时注意不要有空格。height定义对话框的高度,可以根据自己的需要写。这样表情多时会出现滚动条,就可以正常使用了。如果你的表情很少,就不要做这个改动,不然显示会出问题。

下面是几个已经做好的表情包和大家分享一下,配置语句写在压缩包的readme.txt中

1. 洋葱头系列表情

下载地址:CKEditor洋葱头表情图标下载

2. qq表情图标

下载地址:CKEditor QQ表情

flash builder 4 序列号及使用方法

flash builder 4 hosts 破解 无限破解 序列号

 

flex 4 破解方法:
用注册机来破解是成功的,但是下一次重启的时候就不可以了,是因为他登陆了官方网站去验证的原因,所以我们来屏蔽它的验证网站,就可以达到破解了。
无论是新安装的,还是试用期过期了的,我们首先在C:\WINDOWS\system32\drivers\etc目录下的hosts文件进行修改,这个是系统文件是只读的,所以我们不进行修改的话是写不了内容进去的,点击这个文件的属性,先把只读这个属性取消掉,然后修改完之后改过来。我们不需要修改很多代码,我们只需增加一句话就可以了,在文件里面增加上127.0.0.1 activate.adobe.com这句话,注意了前面不能有#,这个是会被注释掉的,不起作用的。
如我的文件修改之后的内容:
# copyright (c) 1993-1999 microsoft corp.

127.0.0.1 activate.adobe.com
修改完之后我们就可以进行注册了,如果有注册机的话,就可以很容易获取序列号了,如果没有的话在网上找也可以找到很多,在这里我提供一些吧,不知道能不能用,应该是可以用的,
flex4注册码:
1424-4391-4624-5590-9520-3224
1424-4911-9190-5139-3387-1194
1424-4534-4173-3056-1444-4877
1424-4766-8976-4612-2545-2984
1424-4014-3600-4497-9399-5754

进行注册之后,以后就不会出现那个要求我们注册的框框了,烦人的东西.

(2010/11/12更新):有些朋友反应不能用,可能是序列号的原因,你最好用注册机自己生成新的注册号,

我再提供一些吧,

1424-4189-9907-1699-3951-0021
1424-4508-7679-2258-5890-8124
1424-4508-4533-6951-2570-7461
1424-4182-3201-8658-8407-5505
1424-4817-3306-7207-2955-4090
1424-4018-7091-8151-7090-1535
1424-4260-4080-5539-3256-1886
1424-4830-7950-7284-7868-9432

(2011/04/1更新):好像激活地址变了,如果还是不行的话,把下面这个话写上

127.0.0.1 wwww.adobe.com/cn/activation

innodb引擎Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.

今天在做innodb参数配置的时候,对其默认配置加以修改–结果导致启动后的server竟然不支持innodb引擎。Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
错误日志:
InnoDB: Data file /usr/local/mysql4/data/ibdata2 did not exist: new to be created
InnoDB: Setting file /usr/local/mysql4/data/ibdata2 size to 20 MB
InnoDB: Database physically writes the file full: wait…
InnoDB: No valid checkpoint found.
InnoDB: If this error appears when you are creating an InnoDB database,
InnoDB: the problem may be that during an earlier attempt you managed
InnoDB: to create the InnoDB data files, but log file creation failed.
InnoDB: If that is the case, please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/error-creating-innodb.html
[ERROR] Plugin ‘InnoDB’ init function returned error.
[ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
在遇到这些情况的时候,我起初考虑是没有建立新日志文件的权限。
实则不然
当我在未正常关闭server的情况下对其参数修改,
修改之后没有删除ib_logfile文件,ib_logfile文件中记录些innodb引擎非常有用的信息比如说默认的innodb默认的配置信息,你又是在未正常关闭server情况下操作的,所以导致重启后的server不支持innodb引擎。
rm -rf ib_logfile*
正确配置参数
重启server。

windows下Mysql解决启动1067和Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist

Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist

2011年02月26日 星期六 01:43

关于手动修改mysql目录下的my.ini的数据库保存路径后,在启动的时候出错。

查看错误日志后,发现Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist

原错误日志内容:

110226 1:20:46 [Note] Plugin ‘FEDERATED’ is disabled.

C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld: Table ‘mysql.plugin’ doesn’t exist

110226 1:20:46 [ERROR] Can’t open the mysql.plugin table. Please run mysql_upgrade to create it.

InnoDB: The first specified data file D:\mysite\database\ibdata1 did not exist:

InnoDB: a new database to be created!

110226 1:20:47 InnoDB: Setting file D:\mysite\database\ibdata1 size to 10 MB

InnoDB: Database physically writes the file full: wait…

110226 1:20:47 InnoDB: Log file .\ib_logfile0 did not exist: new to be created

InnoDB: Setting log file .\ib_logfile0 size to 10 MB

InnoDB: Database physically writes the file full: wait…

110226 1:20:47 InnoDB: Log file .\ib_logfile1 did not exist: new to be created

InnoDB: Setting log file .\ib_logfile1 size to 10 MB

InnoDB: Database physically writes the file full: wait…

InnoDB: Doublewrite buffer not found: creating new

InnoDB: Doublewrite buffer created

InnoDB: Creating foreign key constraint system tables

InnoDB: Foreign key constraint system tables created

110226 1:20:48 InnoDB: Started; log sequence number 0 0

110226 1:20:48 [ERROR] Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist

从网上查了半天都是linux下的解决方法,没有windows的。不过仔细看了看linux下的解决方法,发现是因为

windows下Mysql解决启动1067和Fatal error: Can't open and lock

这个文件闹得,从日志上来看是因为不能够打开私有权限的表格。

这个文件闹得,从日志上来看是因为不能够打开私有权限的表格。

解决方法直接把这个文件夹全都复制到你要修改的目录下,重启mysql就ok了。

UCenter中上传头像功能的剥离

UCenter中上传头像功能的剥离

本文的内容仅供技术交流学习之用,相关的代码并未考虑实际应用系统中所必需的用户身份验证等功能,同时由于 UCenter 发行许可的限制,请勿将本文附带的代码直接用于实际的产品或项目中。
Discuz! 和 UCHome 中的头像上传功能很好用,大概有不少人和我一样想弄清楚它是怎么实现的,甚至希望移植到自己的应用系统中。
这个功能其实是在 UCenter 中实现的(这是 Discuz! 和 UCHome 等其它相关产品都依赖的公共模块),通过一个 Flash 文件(camera.swf),跟服务端的 PHP 程序配合完成的。
UCenter/UCHome 本身是开源的,但那个 camera.swf 并没有提供源代码。我们可以通过对 PHP 程序进行分析研究,进而基本摸清这个功能操作的细节,并最终将其剥离出来,独立于 UCenter 而独立运行。本文内容依据的是 UCenter1.5.0/UCHome2.0 。
首先我们来看一下 UCenter/UCHome 中这个功能是怎么工作的。
基本步骤
0. 浏览器访问 UCHome 中的一个 web 页面,其中包含 camera.swf。为保证 camera.swf 能正常工作,在其相同的路径下需要有 locale.xml 文件。
装载 camera.swf 的 HTML 代码可以由下面的程序生成:
home/uc_client/client.php : uc_avatar()
生成的内容大致如下:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="447" height="477" id="mycamera" align="middle">
<param name="allowScriptAccess" value="always" />
<param name="scale" value="exactfit" />
<param name="wmode" value="transparent" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="movie" value="http://localhost/center/images/camera.swf?inajax=1&appid=1&input=6b49vKhr%2FC4VpMIMCAt07Kr2eQk8jjY%2F6vtvDonod47dU7JK%2BxVFJPIVY%2FJGMQoSpzHylapBa8FbsEWFGorPwZDJRM10wGjxvbHKTVmVgrng%2BpoSTTsk%2BE3U&agent=a523e70c80e13e4eaee37c7f4bde4f2c&ucapi=http%3A%2F%2Flocalhost%2Fcenter&avatartype=virtual" />
<param name="menu" value="false" />
<embed src="http://localhost/center/images/camera.swf?inajax=1&appid=1&input=6b49vKhr%2FC4VpMIMCAt07Kr2eQk8jjY%2F6vtvDonod47dU7JK%2BxVFJPIVY%2FJGMQoSpzHylapBa8FbsEWFGorPwZDJRM10wGjxvbHKTVmVgrng%2BpoSTTsk%2BE3U&agent=a523e70c80e13e4eaee37c7f4bde4f2c&ucapi=http%3A%2F%2Flocalhost%2Fcenter&avatartype=virtual"
quality="high"
bgcolor="#ffffff"
width="447"
height="477"
name="mycamera"
align="middle"
allowScriptAccess="always"
allowFullScreen="false"
scale="exactfit"
wmode="transparent"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
参数分解如下:
inajax 1
appid 1
input 6b49vKhr%2FC4VpMIMCAt07Kr2eQk8jjY%2F6vtvDonod47dU7JK%2BxVFJPIVY%2FJGMQoSpzHylapBa8FbsEWFGorPwZDJRM10wGjxvbHKTVmVgrng%2BpoSTTsk%2BE3U
agent a523e70c80e13e4eaee37c7f4bde4f2c
ucapi http://localhost/center
avatartype virtual
其中的关键参数为 ucapi,后面两步 POST 的 URL 为 <ucapi>/index.php
这里的 "/index.php" 似乎是 hardcode 在 camera.swf 里的,不过在最后的程序代码中会看到,如果我们指定的 ucapi 明确给定了一个 php 文件的话,可以绕开 index.php 这个文件名。换句话说,如果服务端不是采用 PHP,而是另外一种编程语言的话(比如 Java/.NET 等),也是可以实现的。
1. 用户在 camera.swf 中"选择图片"后,camera.swf 会立刻把选中的图片上传到服务器。
$_SERVER
REQUEST_URI /center/index.php?m=user&inajax=1&a=uploadavatar&appid=1&input=ca68o1L41a1HkbmhMJVGHu0oFjxYXwadnUT9HnFpnyz5AgiZcsVGecPP38w%2BwM7XtT79zC5WMWlH8T7LvluCSXS3YUsrcJDoD1ySILNO2xo63hmBAvXVX24f&agent=a523e70c80e13e4eaee37c7f4bde4f2c&avatartype=virtual
METHOD POST
$_GET
m user
inajax 1
a uploadavatar
appid 1
input ca68o1L41a1HkbmhMJVGHu0oFjxYXwadnUT9HnFpnyz5AgiZcsVGecPP38w+wM7XtT79zC5WMWlH8T7LvluCSXS3YUsrcJDoD1ySILNO2xo63hmBAvXVX24f
agent a523e70c80e13e4eaee37c7f4bde4f2c
avatartype virtual
$_POST
Filename something.jpg
Upload Submit Query
$_FILES
图片文件内容
处理程序为:
center/control/user.php : onuploadavatar()
程序返回的内容为保存该文件的临时位置,比如:
http://localhost/center/data/tmp/upload5.jpg
camera.swf 会通过上面这个网址来读取图片,显示供操作。还可以有以下返回值作为错误代码:
-1 : Invalid identity!
-2 : Invalid photograph!
-3 : No photograph be upload!
-4 : Can not write to the data/tmp folder!
-5 : Server can not upload!
2. 用户在 camera.swf 中"确定"后,camera.swf 会向服务器上传 3 个图片数据,作为大、中、小尺寸的头像图片。
$_SERVER
REQUEST_URI /center/index.php?m=user&inajax=1&a=rectavatar&appid=1&input=ca68o1L41a1HkbmhMJVGHu0oFjxYXwadnUT9HnFpnyz5AgiZcsVGecPP38w%2BwM7XtT79zC5WMWlH8T7LvluCSXS3YUsrcJDoD1ySILNO2xo63hmBAvXVX24f&agent=a523e70c80e13e4eaee37c7f4bde4f2c&avatartype=virtual&randomnumber=5478
METHOD POST
$_GET
m user
inajax 1
a rectavatar
appid 1
input ca68o1L41a1HkbmhMJVGHu0oFjxYXwadnUT9HnFpnyz5AgiZcsVGecPP38w+wM7XtT79zC5WMWlH8T7LvluCSXS3YUsrcJDoD1ySILNO2xo63hmBAvXVX24f
agent a523e70c80e13e4eaee37c7f4bde4f2c
avatartype virtual
randomnumber 5478
$_POST
avatar1 …<big>
avatar3 …<middle>
avatar2 …<small>
处理程序为:
center/control/user.php : onrectavatar()
程序的返回内容为:
成功时: <?xml version="1.0" ?><root><face success="1"/></root>
失败时: <root><message type="error" value="-1" /></root>
3. 上传完成后,如果 camera.swf 能找到名为 updateavatar() 的 Javascript function,就会调用它。
参数分析
在上面第 0 步生成的 HTML 中,指向 camera.swf 的 URL 携带了一些参数,其中最关键的是 ucapi,它决定了第 1 步和第 2 步的 HTTP Request 发往哪里。
其它几个都是 UCenter 应用系统所需要的参数。camera.swf 是专为 UCenter 设计的,所以它特别支持这几个参数值,也就是说,在访问 camera.swf 的 URL 里包含了什么值,在后续访问 ucapi 的时候就会原样传回来。
camera.swf 没有提供源代码,没办法改造,但并不妨碍我们使用它。比如,我们可以借用 input 这个参数,把自己应用程序所需要的自定义参数(比如 user id)统一编码装在这个值里。
剥离实现
搞清楚了功能操作的细节和参数含义,重新实现这个功能就很容易了。
所谓重新剥离实现,就是在直接借用 camera.swf/locale.xml 这两个文件的前提下,重新编写服务器端的处理程序,实现头像上传功能,脱离 UCenter 独立运行。
理论上任何服务端编程语言都可以,我这里只给出 PHP 的代码。
包含了三个程序文件:
avatar.php — 实现了上面"基本步骤"中提到的全部功能
camera.swf — 提取自 UCenter
locale.xml — 提取自 UCenter
将这三个文件部署到 web server 上,然后访问 http://localhost/avatar.php 即可。还可以在 URL 上指定一个 uid 作为"用户标识",比如 http://u.liyunde.org/avatar.php?uid=1

程序下载地址: http://maquan.download.csdn.net/

alexa排名下降是什么原因?三招帮你解忧

对于大多数网站而言,当出现网站alexa排名下降的现象之后,需要提升网站alexa排名的问题,实际上也就是对处于稳定期的网站如何进行有效推广使之访问量重新进入新一轮增长的问题。

尽管ALEXA网站排名系统存在很多不合理之处,但作为唯一可以为全球网站做流量排名的机构,ALEXA排名数据仍然被看作判断一个网站价值的参考指标之一,因此当网站的排名出现明显下降时,往往会让网站经营者感到很大压力,并想尽一些办法提升网站的ALEXA排名。实际上,ALEXA网站排名的高低的确能说明一定的问题:虽然排名靠前的网站不一定访问量真的巨大(不排除某些网站采用作弊的手段获取高的排名),但排名非常落后的网站必定不会有很大的访问量。所以,实际情况是,大部分网站经营者,对于ALEXA网站排名还是基本认可并且在乎的,尤其作为同类网站的相对比较指标,ALEXA的数据有其自身的价值。

从网站推广的角度来看,一个网站从策划到稳定发展要经历四个基本阶段:网站策划与建设阶段、网站发布初期、网站增长期、网站稳定期。在这四个阶段中,一般来说,前三个阶段网站的访问量都会有明显的上升,相应地网站ALEXA排名也在不断上升。到了网站稳定期,访问量增长缓慢甚至出现一定的下降,ALEXA排名下降也通常出现在这个阶段。所以,对于大多数网站而言,当出现网站ALEXA排名下降的现象之后,需要提升网站ALEXA排名的问题,实际上也就是对处于稳定期的网站如何进行有效推广使之访问量重新进入新一轮增长的问题。

对稳定期网站的推广,显然要比新网站推广的其他阶段有更大的困难,因为常规的网站推广方法已经应用过了,采用新的网站推广策略 无疑需要对现有经营活动做出较大的调整,这对很多网站来说并不是简单的事情,比如增加新的功能和服务、向新的业务领域拓展等。所以,当网站进入稳定期之后,如何制定有效的网站推广策略是网站运营的难题之一。

分析一些网站进入稳定期之后的访问统计数据可以发现,有时甚可以感觉到“可怕的稳定”:尽管每天的用户可能不同,但是不仅总的访问量保持稳定,甚至来自各个渠道的用户比例都保持稳定!在这种情况下,期望网站访问量获得自然的爆发性增长是不可能的,根据对部分网站运营的体会以及为一些网站提供咨询的经验,对于稳定期网站的推广可以从下面几个方面来考虑:

第一,分析自己的网站资源,是否可以通过对现有资源的整合,利用常规的推广方法(例如搜索引擎营销)获得更多的用户,或者用户的平均网页浏览数量。具体的分析方法包括:

(1)通过网站流量统计数据,分析用户来源比例是否合适,比如来自搜索引擎的用户比例是否有进一步提升的可能;

(2)通过网站的搜索引擎优化诊断,分析主要搜索引擎收录网页的数量和在检索结果中的表现,从中可能会发现一些没有被搜索引擎收录的网页,并对某些重要网页进行针对性的优化设计;

(3)通过ALEXA网站统计数据分析,与竞争对手相比,自己的网站在独立用户数量(Reach per million users)和页面平均浏览数(Page Views per user)的差距在什么地方,如果用户平均页面浏览数过低,则可以通过对内容资源的重新组织来增加用户的阅读量。尤其对一些信息资源为主的网站,早期发布的信息尽管仍有价值,但往往会被用户忽略,仅仅相当于一个新闻网站,用户只关注最新的内容,这是对网站资源的浪费,有必要进行资源的重新整合。

一般来说,对现有网站资源的整合应用需要对网站进行全面的优化设计,这往往是网站经营者感到比较困难的事情。不过,实践经验表明,这项工作对稳定期网站访问量的提升很有效。

第二,有针对性的增加新的内容。通过对现有访问者需求特点的分析,提供更有吸引力的新的内容,尤其是当前的热点内容,是快速提升网站访问量的方法之一。

第三,增加网站互动性的功能,为现有用户提供扩展服务。

以上提到的仅仅是在没有多少额外资源投入的情况下的常规网站推广手段而已,如果有充裕的网站推广预算,当然可以加大广告投入的力度了,花钱买流量的事情,没有多少技术含量,谁都可以去操作。另外,如果希望更快获得网站排名的飞跃,利用流氓软件强迫用户访问或者不断弹出网站的内容,这种方式对网站排名可能任何时候都有效,只是这些手段不属于正规的网站运营方法,也不会为正规的网站所采用,作者也没有兴趣去实践体验。

最巧妙的刷Alexa排名方法

alexa排名是衡量一个网站流量的一个数据,关于alexa网站流量排名排名的原理本文略过,相信大部分站长都已经了解。本文重点讲讲一个全国首创刷Alexa排名技巧,和大家分享最巧妙的刷Alexa排名方法。

每个站长都有几个qq群,有的群人气很旺,每天大量的聊天内容。同时在群聊里除了解决一些问题,也有很多时候是在浪费时间。如果把聊天的场景换到自己网站的论坛或者微博是不是很强大?更加重要的是基本上安装alexa工具条的大多是站长。我上面提到的全国首创刷Alexa排名技巧就是把站长qq群聊移到网站的论坛或者微博,这样就可以实现alexa排名的突飞猛进。而且我们站长聊天每天都有不同的话题,都和网站有关,这样的聊天内容又是质量很高的原创文章。

把装alexa工具条的站长群聊移到论坛或者微博,既达到刷alexa的目的,又能为网站增加原创内容。活跃了论坛人气,又自然的刷alexa排名,一举多得。可以抛开qq,又能聊天,又能增加论坛或者微博人气,何乐而不为?

具体的实施方法是这样的:比如我们组织7个人的一个群,规定好从周一到周日哪天分别在哪个人的论坛或者微博聊天,循环了几周,大家就会习惯了,也记住了哪天该上哪个网站聊天,这样就能和qq一样的沟通自由。更重要的是为网站增加了人气增加了原创文章,刷alexa排名在不知不觉中完成了。

组织7个人,每周大家轮到一次,这样,每周都有一条超级长的聊天记录贴子,而且绝对的原创。有7个人在轮换着搞,就足够了,alexa排名,中国排名都没有问题。这样刷alexa排名就不纯粹是刷站了,聊天也不是白白浪费时间,而是每句聊天都是一种创作。

如果能组织这样一个群,那么,网站的更新机制就解决很大一部分。没有论坛讨论区的,我已经给你想好了,安装一个微博,可以不在首页导航出现,在根目录安装一个博客或者微博系统,很小,很强大,不影响网站排版,只增加网站权重。

还为alexa排名不好又担心刷alexa排名对网站不利,就安装我的方法行动起来,你要做的只需给你的论坛设置一个站长聊天版块,或者在网站根目录建一个微博系统,就好像在论坛建立一个alexa俱乐部。接下来就和平时一样轻松聊天,让alexa网站流量排名飞。

Alexa排名查询接口网址(返回XML)

通过alexa查询接口,可以方便快捷地查询网站的alexa排名,目前有四个接口。

alexa查询接口一:
http://data.alexa.com/data/+wQ411en8000lA?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&wid=12206&act=00000000000&ss=1680×1050&bw=964&t=0&ttl=35371&vis=1&rq=4&url=http://liyunde.org

alexa查询接口二:
http://data.alexa.com/data/TCaX/0+qO000fV?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&wid=31472&act=00000000000&ss=1024×768&bw=639&t=0&ttl=4907&vis=1&rq=23&url=http://liyunde.org

alexa查询接口三:
http://data.alexa.com/data/ezdy01DOo100QI?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&wid=16865&act=00000000000&ss=1024×768&bw=775&t=0&ttl=1125&vis=1&rq=2&url=http://liyunde.org

alexa查询接口四:
http://data.alexa.com/data/+wQ411en8000lA?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&wid=12206&act=00000000000&ss=1680×1050&bw=964&t=0&ttl=35371&vis=1&rq=4&url=http://liyunde.org

alexa查询参数说明:

ezdy01DOo100QI是aid

"cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&"这部分是固定值。

wid是个随机数。

act数据包含了Alexa Toobar功能的被使用情况。

ss是屏幕分辨率了。

bw是IE窗口的宽度。

t取值是0或1,和当前IE的window对象还有referrer有关。

ttl是当前页面打开速度,和Site Stats中的Speed有关。

vis表明IE是否显示工具条。

rq是对象计数器。

Live Writer WordPress XMLRPC Error Invalid

The response to the metaWeblog.newPost method received from the weblog server was invalid:
Invalid response document returned from XmlRpc server

前几天用lw发文章突然出现上面错误,在网上找了很多方法都没能解决,最后仔细回想,我最近更改了主题

我查看了最近更改的所有文件,最后发现 functions.php文件是UTF-8 带BOM的,赶紧移除,问题解决。

小结:用windows 平台编辑UTF-8 编码文件,上传之前最后做一下移除BOM的操作,要不出现问题时找起来很费力气,因为程式是没有问题的