2014年2月26日星期三

WordPress免费插件:经典插件包Jetpack - WordPress 非官方中文站

WordPress免费æ'件:经典æ'件包Jetpack - WordPress 非官方中文站

Automattic公司旗下的WordPress,除了ç"¨æˆ·å¯è‡ªç"±ä¸‹è½½ã€å®‰è£…、使ç"¨çš„WordPress.org软件外,还提供有一个免费托管的博客服务版本,WordPress.com 。这个博客托管ç½'站上的许多优秀功能,并未完全包含在WordPress.org软件之内,但通过一个æ'件集å'ˆçŽ°ç»™äº†WordPress软件ç"¨æˆ·ã€‚这个æ'件集就是JetPack。 JetPack 是一个非常è'—名的WordPressæ'件集,在WordPress.org推荐的æ'件æŽ'行榜中,始终占据重要位置。在本人è¯'è'—《深入解析WordPress(第2版) 》(è¯'者序,样章下载)一书中,对此æ'件包有过一番介绍。 目前,这个æ'件集包含有30个功能各异的WordPressæ'件,这个数字æ‰"在不断增加中。这些æ'件可以分别激活,有些æ'件ç"šè‡³å¯ä»¥å•ç‹¬å®‰è£…。 Pic-2013-1109-001 按照名字æŽ'序,JetPackæ'件包中目前包含的æ'件有: Beautiful Math: æ•°å­¦æ'件,让你的博客文章æ"¯æŒLaTeX标记语言,适合与其他天才一起探讨复杂的数学公式。对于ç§'ç "类的博客ç½'站,意义非凡。 Carousel: 相册æ'件,将你的标准相册转为沉浸式的全屏ä½"验模式。 Comments: 评论æ'件,让评论者可以使ç"¨ä»–们的WordPress.com,Twitter,Facebook等账号登录,å'表评论。 Contact Form: è"系表格æ'件,可以在ç½'站任何地方æ'å…¥è"系表格。 Custom CSS: 外观æ'件,让你在无需修æ"¹ä¸»é¢˜çš„情况下,定制ç½'站的外观。 Enhanced Distribution: 分享æ'件,可以将公开的文章å'Œè¯„论分享到搜索引æ"Žå'Œå…¶ä»–实时服务ç½'站。 Featured Content: 内容æ'件,推荐内容模块,在ç½'站主页主要位置显示你想着重推荐给ç"¨æˆ·çš„特定文章,最大程序吸引访问者的注意。该æ'件已删除,åº"该类似于置顶æ'件,已内置入WordPress软件。 Google+ Profile: 社交åª'ä½"æ'件,访问者可以ç"¨Google+账户登录,可以é"¾æŽ¥åˆ°ç"¨æˆ·çš„Google+账户,也可以在Google+中显示你博客文章的é"¾æŽ¥ã€‚ Gravatar Hovercards: 头像æ'件,å½"鼠标移动到评论者的Gravatar头像时,以弹出框形式显示评论者的Gravatar档案(账户信息)。 Infinite Scroll: 外观æ'件,给你的主题增加infinite scroll(即无限滚动)功能。 JSON API: äº'服务,允许授权的åº"ç"¨å®‰å…¨åœ°è®¿é—®ä½ çš„ç½'站内容。 Likes: 社交åª'ä½"æ'件,类似Facebook.com上的Like功能,让ç"¨æˆ·å¯ä»¥è¡¨è¾¾å¯¹ä½ æ‰€å†™å†…容的喜爱。同时,也表达出你ç½'站内容受欢迎程度。 Mobile Push Notifications: 移动åº"ç"¨æ'件,å½"ä½ çš„ç½'ç«™æ"¶åˆ°æ–°çš„评论时,会å'你的你的苹果或安å"设备å'出提示。 Mobile Theme: 移动åº"ç"¨æ'件,为移动设备优化你的ç½'站。 Omnisearch: 全能搜索æ'件,搜索一次,得到所有ç»"果!全能搜索只是一个搜索框,却可以让你搜索许多不同的内容。 Photon: 优化æ'件,通过WordPress.com CDN来加速你的ç½'站。 Post by Email: å'布文章æ'件,提供一个é€"径,让你可以通过ç"µå­é‚®ä»¶åœ¨åšå®¢ä¸Šå'表文章。任何邮件客户端都可以å'博客å'表文章,因此你可以使ç"¨æ‰‹æœºç­‰ç§»åŠ¨è®¾å¤‡è½»æ¾å'布新文章。在苹果、安å"等智能手机普及之前,é»'èŽ"、Palm、WM、塞班流行的时代,这个功能非常实ç"¨ã€‚现在可以作为备ç"¨æ‰‹æ®µï¼Œä½¿ç"¨æœºä¼šå¾ˆå°'了。 Publicize: 分享æ'件,这个æ'件让你在å'表文章的同时,可以轻松将ç½'站文章分享到数个社交åª'ä½"ç½'站。 Social Links: 分享æ'件,这个模块基于上面这个Publicizeæ'件,让你的ç½'站主题æ"¯æŒç"¨æˆ·å°†å–œæ¬¢çš„内容分享到他们常ç"¨çš„社交åª'ä½"ç½'站上。该æ'件已删除,可能是因为功能重复。 Sharing: 分享æ'件,只需要点击几下,即可将你ç½'站内容分享到Facebook,Twitter等社交ç½'站上。 Shortcode Embeds: 分享æ'件,使ç"¨Embed技术嵌入其他ç½'站内容,æ"¯æŒYouTube, Vimeo, SlideShare等视é¢'ç½'站,无需编写代码。 WP.me Shortlinks: 短é"¾æŽ¥æ'件,启ç"¨WP.me的短é"¾æŽ¥æœåŠ¡ï¼Œæ–¹ä¾¿ä½ åˆ†äº«æ–‡ç« å'Œé¡µé¢ã€‚ Spelling and Grammar: 内容æ'件,æ"¹è¿›æ–‡ç« çš„拼写,风格å'Œè¯­æ³•ï¼Œé€‚合英文或其他字母文字,对中文等帮助有限。 WordPress.com Stats: 统计分析æ'件,ç›'视ç½'站状态,提供简单扼要的报å'Šï¼Œå¹¶ä¸"不会增加服务器的负载。虽然WordPress.com服务在国内无法使ç"¨ï¼Œä½†å¦‚果你使ç"¨å›½å¤–主机,可以正常使ç"¨è¯¥æ'件。 Subscriptions: 订阅æ'件,允许ç"¨æˆ·é€šè¿‡é‚®ä»¶è®¢é˜…ä½ ç½'站的文章å'Œè¯„论。 Tiled Galleries: 相册æ'件,以三种新风格显示你的相册:矩形马赛克,方形马赛克,å'Œåœ†å½¢é©¬èµ›å…‹ã€‚ Toolbar Notifications: 工具栏æ'件,通过工具栏了解ç½'站的最新动态。 Extra Sidebar Widgets: 侧边栏æ'件,将图片,Twitter消息,ç½'ç«™RSS等添加到你ç½'站的侧边栏。 VaultPress: 备份æ'件,这是个æ"¶è´¹æ'件,随时备份你的ç½'站。 VideoPress: 视é¢'æ'件,这也是个æ"¶è´¹æ'件,可以上传你的视é¢'文件,然后在自己ç½'站上分享给ç"¨æˆ·ã€‚国内ç"¨æˆ·è¿˜æ˜¯ä½¿ç"¨ä¼˜é…·ç­‰ç½'站的免费服务æ¯"较方便。 Widget Visibility: 挂件æ'件,控制挂件可以出现在å"ªäº›é¡µé¢ä¸­ã€‚这个功能将会出现在WordPress 3.8正式版中。 WordPress.com Connect: 登录æ'件,允许ç"¨ä»¥ä»–们的WordPrss.com账户登录,通过WordPress.com Connect服务。这个服务国内ç"¨æˆ·ä¼°è®¡éš¾ä»¥ç"¨åˆ°ã€‚ WordPress JetPackæ'件包下载地址:WordPress.org官方下载JetPackæ'件包 。 本文标题: WordPress免费æ'件:经典æ'件包Jetpack 本文é"¾æŽ¥: http://wpchina.org/wordpress-plugin-jetpack-by-wordpress-dot-com-1346/ WPChina.org声明:转载本站文章,请务必保留所有版权信息。

架设wordpress 服务器,建一个自己管理的博客服务器

架设wordpress 服务器,建一个自己管理的博客服务器

现在很多人都ç"¨twitter,微博,微信。但是博客还是一个很好的信息å'布平台。æˆ'要做的不是使ç"¨ä¸€ä¸ªçŽ°æˆçš„提供商的服务器。因为那样总å½'是要受到某种限制。不是没有这个功能就是没有那个功能。 试ç"¨è¿‡å¾ˆå¤šä¹‹åŽï¼Œé€‰æ‹©äº†amazon ec2 主机,上面有现成的bitnamiçš„AMI镜像文件,直接安装。ec2主机第一年使ç"¨ä¸€ä¸ªmicro 实例是免费的。一年的时间还是挺长的,如果好的话,接着续费才二三百块é'±ã€‚ 前提你已经有一个自己的域名。æˆ'的域名是wenmangbo.com 步骤: 1.注册一个aws账户,这个其他ç½'站上的教程多的是,英语都很简单。 2.安装一个bitnami wordpress 镜像。去http://bitnami.com/stack/wordpress/cloud上点击é"¾æŽ¥å°±å¯ä»¥è¿›å…¥amzonç½'站安装了。 3.ç»'定固定ip:实例运行之后就可以ç"³è¯·ä¸€ä¸ªelastic ipç»'定到主机上。这就是一个公ç½'ip。 4.去你的域名提供商那修æ"¹ä¸€ä¸ªA记录,增加一个blog.wenmangbo.com 指å'å…¬ç½'ip。 5.在安装实例的过程中你会得到一个私é'¥ï¼Œæˆ'的是wenmangbo.pem 进入 terminal ssh -i wenmangbo.pem bitnami@blog.wenmangbo.com 进入后 $ sudo /opt/bitnami/apps/wordpress/bnconfig --appurl / 这样能去掉域名后的/wordpress 6.这样你进可以在浏览器上è¾"å…¥blog.wenmangbo.com/wp-admin 进入后台 ç"¨æˆ·åuser 密码bitnami 7.进入后新建一个管理å'˜è´¦æˆ·ï¼Œåˆ é™¤æŽ‰user账户。 8.大功å'Šæˆã€‚剩下就是美化å'Œå¢žåŠ å„种æ'件功能。

[]国务院常务会部署加快发展现代职业教育-搜狐新闻

本文自动转发自我的博客: http://www.haofengjing.org/?p=1543

 国务院总理李克强2月26日主持召开国务院常务会议,部署加快发展现代职业教育,审议通过《事业单位人事管理条例(草案)》。

  会议认为,发展职业教育是促进转方式、调结构和民生改善的战略举措。以改革的思路办好职业教育,对提升劳动大军就业创业能力、产业素质和综合国力,意义重大。必须坚持以提高质量、促进就业、服务发展为导向,发挥好政府引导、规范和督导作用,充分调动社会力量,吸引更多资源向职业教育汇聚,加快发展与技术进步和生产方式变革以及社会公共服务相适应、产教深度融合的现代职业教育,培养数以亿计的工程师、高级技工和高素质职业人才,为广大年轻人打开通向成功成才的大门,提高中国制造和中国装备的市场竞争力,促进经济提质增效升级,满足人民群众生产生活多样化的需求。

  会议确定了加快发展现代职业教育的任务措施。一是牢固确立职业教育在国家人才培养体系中的重要位置,促进形成"崇尚一技之长、不唯学历凭能力"的社会氛围,激发年轻人学习职业技能的积极性。二是创新职业教育模式,扩大职业院校在专业设置和调整、人事管理、教师评聘、收入分配等方面的办学自主权。建立学分积累和转换制度,打通从中职、专科、本科到研究生的上升通道。引导一批普通本科高校向应用技术型高校转型。三是提升人才培养质量。大力推动专业设置与产业需求、课程内容与职业标准、教学过程与生产过程"三对接",积极推进学历证书和职业资格证书"双证书"制度,做到学以致用。开展校企联合招生、联合培养的现代学徒制试点,鼓励中外合作。完善企业工程技术人员、高技能人才到职业院校担任专兼职教师的政策。四是引导支持社会力量兴办职业教育。积极支持各类办学主体通过独资、合资、合作等形式举办民办职业教育;探索发展股份制、混合所有制职业院校,允许以资本、知识、技术、管理等要素参与办学并享有相应权利。探索公办和社会力量举办的职业院校相互委托管理和购买服务的机制。社会力量举办的职业院校与公办职业院校具有同等法律地位。推动公办和民办职业教育共同发展。五是强化政策支持和监管保障。各级政府要完善财政投入机制,分类制定和落实职业院校办学标准,加强督导评估。加大对农村和贫困地区职业教育支持力度,完善资助政策,积极推行直补个人的资助办法。健全就业和用人政策。让职业教育为国家和社会源源不断地创造人才红利。

  会议指出,事业单位是提供公共服务的社会组织。规范事业单位人事管理,保障工作人员合法权益,是深化事业单位改革的保障。会议审议通过《事业单位人事管理条例(草案)》。草案对岗位设置、公开招聘和竞聘上岗、聘用合同、奖惩及争议处理等人事管理主要环节作出了明确规定。会议要求,要运用法治手段,进一步推进事业单位人事管理制度改革,规范管理制度,提高事业单位人力资源管理效能,形成能进能出、能上能下的用人机制,促进提升服务质量,让人民群众享受更加优质高效的公共服务。


[]理解RESTful架构 --深入浅出,挺好

本文自动转发自我的博客: http://www.haofengjing.org/?p=1542

越来越多的人开始意识到,网站即软件,而且是一种新型的软件。

这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。

网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件。

b1

RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。

但是,到底什么是RESTful架构,并不是一个容易说清楚的问题。下面,我就谈谈我理解的RESTful架构。

一、起源

REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。

b2

Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。

他这样介绍论文的写作目的:

"本文研究计算机科学两大前沿—-软件和网络—-的交叉点。长期以来,软件研究主要关注软件设计的分类、设计方法的演化,很少客观地评估不同的设计选择对系统行为的影响。而相反地,网络研究主要关注系统之间通信行为的细节、如何改进特定通信机制的表现,常常忽视了一个事实,那就是改变应用程序的互动风格比改变互动协议,对整体表现有更大的影响。我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信的架构。"

(This dissertation explores a junction on the frontiers of two research disciplines in computer science: software and networking. Software research has long been concerned with the categorization of software designs and the development of design methodologies, but has rarely been able to objectively evaluate the impact of various design choices on system behavior. Networking research, in contrast, is focused on the details of generic communication behavior between systems and improving the performance of particular communication techniques, often ignoring the fact that changing the interaction style of an application can have more impact on performance than the communication protocols used for that interaction. My work is motivated by the desire to understand and evaluate the architectural design of network-based application software through principled use of architectural constraints, thereby obtaining the functional, performance, and social properties desired of an architecture. )

二、名称

Fielding将他对互联网软件的架构原则,定名为REST,即Representational State Transfer的缩写。我对这个词组的翻译是"表现层状态转化"。

如果一个架构符合REST原则,就称它为RESTful架构。

要理解RESTful架构,最好的方法就是去理解Representational State Transfer这个词组到底是什么意思,它的每一个词代表了什么涵义。如果你把这个名称搞懂了,也就不难体会REST是一种什么样的设计。

三、资源(Resources)

REST的名称"表现层状态转化"中,省略了主语。"表现层"其实指的是"资源"(Resources)的"表现层"。

所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。

所谓"上网",就是与互联网上一系列的"资源"互动,调用它的URI。

四、表现层(Representation)

"资源"是一种信息实体,它可以有多种外在表现形式。我们把"资源"具体呈现出来的形式,叫做它的"表现层"(Representation)。

比如,文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现,甚至可以采用二进制格式;图片可以用JPG格式表现,也可以用PNG格式表现。

URI只代表资源的实体,不代表它的形式。严格地说,有些网址最后的".html"后缀名是不必要的,因为这个后缀名表示格式,属于"表现层"范畴,而URI应该只代表"资源"的位置。它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对"表现层"的描述。

五、状态转化(State Transfer)

访问一个网站,就代表了客户端和服务器的一个互动过程。在这个过程中,势必涉及到数据和状态的变化。

互联网通信协议HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer)。而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。

客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。

六、综述

综合上面的解释,我们总结一下什么是RESTful架构:

(1)每一个URI代表一种资源;

(2)客户端和服务器之间,传递这种资源的某种表现层;

(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

七、误区

RESTful架构有一些典型的设计误区。

最常见的一种设计错误,就是URI包含动词。因为"资源"表示一种实体,所以应该是名词,URI不应该有动词,动词应该放在HTTP协议中。

举例来说,某个URI是/posts/show/1,其中show是动词,这个URI就设计错了,正确的写法应该是/posts/1,然后用GET方法表示show。

如果某些动作是HTTP动词表示不了的,你就应该把动作做成一种资源。比如网上汇款,从账户1向账户2汇款500元,错误的URI是:

正确的写法是把动词transfer改成名词transaction,资源不能是动词,但是可以是一种服务:

另一个设计误区,就是在URI中加入版本号:

因为不同的版本,可以理解成同一种资源的不同表现形式,所以应该采用同一个URI。版本号可以在HTTP请求头信息的Accept字段中进行区分(参见Versioning REST Services):

(完)


[]网络电话再战语音市场:解禁宜早不宜迟_网易科技

本文自动转发自我的博客: http://www.haofengjing.org/?p=1537

又一拨网络电话袭来。最近,手机QQ、易信,都在新版本的产品里增加了免费的"语音通话"功能,还有一些不出名但诞生已久的网络电话APP也借着这股潮流搞起了推广。

对于我们这些屌丝级的消费者来说,网络电话太实用了——连上WiFi、打开易信或者手机QQ,找到对话框里的语音通话按钮,就可以跟亲朋好友煲电话粥了,一分钱都不用花。即使是其他一些付费的网络电话APP,低至几毛、几分钱的国际长途资费,也比传统的语音电话更有吸引力。

通过网络打电话,其实并不是什么新鲜玩意儿,这类"让语音业务走数据通道"的应用在很早之前就出现过。只不过,当年为了保护运营商"电路型语音业务"不受冲击,网络电话在国内一直是被严格控制的,所以这些应用长期处于政策的灰色地带,其"身份"也一直很尴尬。

现在情况变了,基于移动网络的数据业务已经势不可挡。业内人士普遍认为,在新的市场环境下,与其继续保护传统的语音业务,不如放开政策,既可以为消费者带来实惠,也可以为运营商打开数据业务的新天地。

没有身份证的先进分子

谈及网络电话,大家都会想到Skype——它在国外已经流行了很多年,用户可以通过这个网络电话,以极低的价格与亲朋好友通话。但在中国,Skype是被禁用的。与Skype类似的一些网络电话,比如UU手机网络电话、KC电话等等,也只能踩着政策红线,小心翼翼地暗自赚钱。

这些网络电话在国内名不正言不顺,是因为在过去以语音业务为主的2G时代,国家监管部门需要对运营商的传统语音业务给予行业保护,以避免国有资产贬值。所以,网络电话在国内一直被界定为"非法"业务。

虽然长期没有合法身份,但这些网络电话却一直存在着,原因很简单:市场有需求,人们愿意用更划算的方式来解决通话需求。

比如在中国,尽管三大电信运营商在近几年里不断下调手机话费——这与飞速上涨的物价形成了鲜明对比,但对于大多数人(尤其是那些需要经常打国际长途的人,或者分居两地的家庭)来说,网络电话是一个非常划算的东西,可以节省不少电话费。

这种市场需求,让又一拨网络电话悄然出现。对比一下,如果人们在WiFi网络下使用手机QQ、易信等这些应用的语音通话功能,就可以随意给好友或者家人打电话,不用花一分钱;而如果用手机打国际漫游电话,最低也需要每分钟1块钱,即使购买当地比较便宜的电话卡,恐怕还有不少人要掂量一下电话费的问题。

经过测试发现,如果要使用手机QQ的语音通话功能,需要双方都在线;如果使用易信的免费通话功能,无论对方是否在线,只要他是你的易信好友,就可以向对方发起通话请求。目前,Android版和iOS版的易信用户均已可以无障碍使用免费通话功能了。

数据洪流势不可挡

如果说游走在政策"灰色地带"的网络电话对传统语音市场的挑战还在暗处,那么,从一出生就没有受到政策限制(有对讲功能,但没有纯粹的语音通话)的"微信"这类OTT,对运营商传统业务的冲击已在明处。

来势汹汹的微信们,对传统语音业务的冲击已经表现在了运营商的财报里,尤其明显的是用户基数庞大的中国移动。在刚刚过去的2013年,中国移动出现了前三季度净利润同比下滑1.9%、第三季度净利润同比下滑8.8%的史上最糟糕业绩。

据了解,这是中国移动首次出现净利润同比下滑的状况,而中国移动对此给出的解释,其中之一就是"OTT业务对传统通信业的严重冲击"。

这些新兴的OTT,与过去的那些网络电话命运不同,它们生逢其时——在移动互联网发展的刺激下,数据业务的洪流已经势不可挡,人们对数据业务的需求也有增无减。

来自爱立信的《2014年ICT产业发展趋势展望》显示,到五年后的2019年,全球移动宽带的用户数预计将达到80亿,是2013年的4倍,其中,4G用户数将达到26亿,覆盖全球超过65%的人口。与此相呼应的,是数据流量的迅猛增长:预计到2019年,全球移动数据流量的增长将超过10倍,智能手机的月均流量将从2013年的600MB增长到2019年的2.2GB。

"在数据流量井喷式增长的大环境下,对于网络电话的政策解禁,是大势所趋,只是时间问题。" 一位从事通信业十余年、后来转做网络电话APP的不愿透露姓名的人士认为,虽然网络电话会在一定程度上冲击传统的话音业务,但它对运营商也有好处,因为对数据类业务的拥抱和探索,将会给运营商带来很大的想象空间。

政策解禁宜早不宜迟

与上述人士的看法类似,业内较为普遍的一种观点认为,对网络电话的解禁宜早不宜迟,解禁越早,就能越快地推动电信运营商探索数据业务、流量经营。

"伴随着无处不在宽带网络的全球覆盖,运营商可以尝试在许多传统领域发展数据业务。"爱立信中国区CMO常刚说,比如在韩国,LG通过即时通讯应用Line,正在尝试做智能家居的业务,家电变成了line里面的一个个好友,用户可与家电互动,进行远程控制。

诸如此类的数据业务,在未来会有很大的市场。不少业内人士也认为,无论是网络电话这样看似对运营商有害无利的产品,还是其他的数据业务,运营商都可以从中挖掘更大的市场价值,不应为了保护传统语音业务而裹足不前;监管部门也应该放开政策,顺应市场潮流。

"在网络全面IP化的背景下,VoIP(网络电话)应该是无法避免的趋势。但国内对它的限制主要是由于市场之外的因素,很难说什么时候能真正开放这一业务。"Strategy Analytics无线运营商战略高级分析师杨光说。

杨光补充说,在LTE部署之后,全球运营商正在推动的VoLTE(让语音业务走LTE网络数据通道)实质上也属于VoIP,这应该能够推动国内监管机构进一步考虑对VoIP的政策松绑。

"长期来看,VoLTE以及与其它多媒体业务的整合,应该可以成为运营商对抗OTT威胁的有力手段。"杨光认为,运营商应该加强对VoLTE以及各种富媒体应用的研究和准备;而监管机构也需要思考,如何在促进市场竞争及业务创新,与保障信息安全之间达成多方共赢的平衡。

阻力在哪

"在数据洪流浩荡来袭、运营商迫切需要从语音向流量经营转型的当下,监管部门的沉默恐怕是网络电话解禁的最大阻力。"一位不愿具名的通信行业从业者说。

据这位从业者透露,他曾在不久前向工信部相关部门咨询,但得到的反馈信息是:对于网络电话的政策解禁问题,目前还没有明确的说法。

也就是说,监管部门既没有表态要继续禁止网络电话,也没有表态会放开这一政策。这意味着,至少在最近一段时间里,大多数的网络电话还是没有正式"身份"。

正是因为目前所处位置的尴尬,手机QQ虽然在新版本里增加了语音通话功能,但并没有"底气"高调地对外传播。与手机QQ不同,易信的境遇好一些,它先天有运营商的优势——据上述从业者介绍,由于中国电信在十年前曾经拿到过基于固网的VoIP网络电话牌照,而监管部门默认这一牌照适用于现在的移动网络,所以中国电信旗下的易信产品可以不用避讳其免费通话功能。

"十年前出台的对于网络电话的监管政策,已经不适合现在的发展了。"某运营商内部人士说,"过去的政策是为了给运营商一些行业保护,如今,这种'保护'却成了运营商发展新业务的障碍。"

一个明显的例子是:中国移动国际公司在去年推出了与Skype类似的应用"Jego",但这个产品推出仅一个月就被内部叫停——因为Jego虽然主要面向海外市场,但当时在国内市场也反响如潮,它触及了网络电话的政策红线。后来,这个产品被严格限制在国外使用,才得以重新上线。

"传统语音业务的价值正在降低,运营商需要向流量经营转型;无论是网络电话还是其他数据业务,都将成为运营商转型、通信行业发展、消费者受惠的利器。而在这个新形势下,监管部门的表态和决策至关重要。"上述运营商人士认为,如果网络电话得以解禁,具有先天优势的产品会在开放的市场中寻找更大的发展空间;如果监管部门一直不表态,整个市场可能会错失发展良机。


[]WordPress 主题 iNove - 这个主题很实用

本文自动转发自我的博客: http://www.haofengjing.org/?p=1533
 

WordPress 主题 iNove

相关标签

双栏式, 固定宽度, 支持 Widget, 右侧边栏, 白色, 通过 XHTML, 通过 CSS, 后台管理

适用版本

WordPress 2.5 或以上版本

主题演示和下载

主题下载

测试验证: 测试用 WordPress: 2.3.3, 2.5.1, 2.6.1, 2.7.1, 2.8.3 测试用浏览器: IE 6/7/8, Firefox 2/3/3.5, Opera 9.6, Safari 4 和 Chrome 2.0 通过 XHTML 1.1 和 CSS 3 验证

推荐插件

主题本地化

此版本支持英文和简体中文, 其中英文是默认设置. 若要使用简体中文, 请执行以下步骤:

  1. 打开 WordPress 根目录的文件 wp-config.php.
  2. 查找 define ('WPLANG', ''); 并修改为 define ('WPLANG', 'zh_CN');.

博客图片标题

因为发布主题中的标题必须显示正确的博客名字, 故不能使用图片. 若要使用图片作为标题, 请执行以下步骤:

  1. 使用 title_psd 文件夹中的 PSD 图片和字体文件, 将图片修改为你的博客标题, 并另存为 title.gif.
  2. 在 style.css 文件中查找 #title a 使用去除注释以激活该段样式.

备注信息

该主题灵感来自 MacZone, 但为了通过 WordPress 官方验证, 不能为它加上 backlink, 深表遗憾. 详见如下邮件 (部分) 内容:

http://maczone.sk/ looks like a spam/sponsored/paid/seo link. If this theme was truly inspired by that site the link would be better in the description instead of inside the theme.

2008/11/17: 总下载量突破 10,000. 2008/12/19: 单周下载量突破 10,000. 2008/12/27: 总下载量突破 50,000. 2009/01/07: 支持 20 个国家和地区的语言. 2009/01/31: 总下载量突破 100,000. 2009/05/11: 总下载量突破 200,000.

 

[]Android理解:Activity状态和生命周期 - 叉叉哥的BLOG - 博客频道 - CSDN.NET

本文自动转发自我的博客: http://www.haofengjing.org/?p=1532

要想理解Activity的生命周期,必先理解Activity的状态。

一、Activity状态

Android官方文档中把Activity分为下面三种状态:

1、Resumed(活动状态)

或者叫Running状态,这个Activity正在屏幕上显示,并且有用户焦点。这个很好理解,就是用户正在操作的那个界面。

2、Paused(暂停状态)

这是一个比较不常见的状态。这个Activity在屏幕上是可见的,但是并不是在屏幕最前端的那个Activity。比如有另一个非全屏或者透明的Activity是Resumed状态,没有完全遮盖这个Activity。

比如下面这个情况,SecondActivity是Resumed状态,但是并未完全覆盖MainActivity,此时MainActivity就是Paused状态。

3、Stopped(停止状态)

当Activity完全不可见时,此时Activity还在后台运行,仍然在内存中保留Activity的状态,并不是完全销毁。

这个也很好理解,当跳转的另外一个界面,之前的界面还在后台,按回退按钮还会恢复原来的状态,大部分软件在打开的时候,直接按Home键,并不会关闭它,此时的Activity就是Stopped状态。

二、Activity生命周期

和Activity生命周期相关的方法有下面几个:

onCreate(Bundle savedInstanceState)

onStart()

onRestart()

onResume()

onPause()

onStop()

onDestroy()

相对来说方法数量比较多,初学者理解起来比较困难。

Android官方文档中把Activity生命周期分为三个区间:

1、The entire lifetime(整个生命周期)

是指在onCreate()和onDestroy()之间的周期。

一个人的一生,就是从出生开始,到死亡的这段时间。Activity生命周期也是一样,从Create开始,直到Destroy,二者在整个生命周期都只有一次。当用户新打开一个界面,此时会调用onCreate(),当用户关闭这个界面,例如按返回键,此时Activity就完全销毁,此时会调用onDestroy()。

这个周期之间包含上面所说的全部状态:Resumed、Paused、Stopped。

2、The visible lifetime(可见的生命周期)

是指在onStart()和onStop()之间的周期,包含在The entire lifetime

之中。在整个生命周期中可能会有多次。

这段周期包含Resumed、Paused两种状态,即两种Activity可见的状态。

当Activity会变为Stopped状态,例如在新的Activity覆盖掉原来的Activity时,会调用onStop()方法,重新回到原来的Activity时,又会调用onStart()。

3、The foreground lifetime(活动生命周期)

是指在onResume()和onPause()之间的周期,包含在The visible lifetime之中。在The visible lifetime中可能会有多次。

这段周期只包含Resumed一种状态,即前端获取焦点用户可操作的状态。

当Activity变为Resumed状态,会调用onResume()方法,反之会调用onPause()方法。

说到这里,还漏了一个onRestart(),很简单,Activity第一次onStart()会在onCreate()之后,如果在整个生命周期中再次onStart(),那么调用onStart()之前会调用onRestart()。

下面分别来进行上面三者的实验:

MainActivity界面上有两个按钮,分别是打开SecondActivity和ThirdActivity:

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:layout_width="fill_parent"  
  3.     android:layout_height="fill_parent"  
  4.     android:orientation="vertical" >  
  5.     <Button   
  6.         android:id="@+id/secondActivityButton"  
  7.         android:layout_width="fill_parent"  
  8.         android:layout_height="wrap_content"   
  9.         android:text="打开SecondActivity"/>  
  10.     <Button   
  11.         android:id="@+id/thirdActivityButton"  
  12.         android:layout_width="fill_parent"  
  13.         android:layout_height="wrap_content"   
  14.         android:text="打开ThirdActivity"/>  
  15. </LinearLayout>  

在MainActivity.java中,重写生命周期相关方法,加上日志:

  1. public class MainActivity extends Activity {  
  2.       
  3.     private static final String TAG = "MainActivity";  
  4.   
  5.     @Override  
  6.     protected void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.activity_main);  
  9.         initEvent();  
  10.           
  11.         Log.v(TAG, "onCreate");  
  12.     }  
  13.   
  14.     @Override  
  15.     protected void onStart() {  
  16.         super.onStart();  
  17.         Log.v(TAG, "onStart");  
  18.     }  
  19.       
  20.     @Override  
  21.     protected void onRestart() {  
  22.         super.onRestart();  
  23.         Log.v(TAG, "onRestart");  
  24.     }  
  25.   
  26.     @Override  
  27.     protected void onResume() {  
  28.         super.onResume();  
  29.         Log.v(TAG, "onResume");  
  30.     }  
  31.       
  32.     @Override  
  33.     protected void onPause() {  
  34.         super.onPause();  
  35.         Log.v(TAG, "onPause");  
  36.     }  
  37.       
  38.     @Override  
  39.     protected void onStop() {  
  40.         super.onStop();  
  41.         Log.v(TAG, "onStop");  
  42.     }  
  43.       
  44.     @Override  
  45.     protected void onDestroy() {  
  46.         super.onDestroy();  
  47.         Log.v(TAG, "onDestroy");  
  48.     }  
  49.       
  50.     private void initEvent() {  
  51.         // 点击打开SecondActivity  
  52.         Button secondActivityButton = (Button) findViewById(R.id.secondActivityButton);  
  53.         secondActivityButton.setOnClickListener(new OnClickListener() {  
  54.             @Override  
  55.             public void onClick(View view) {  
  56.                 Intent intent = new Intent(MainActivity.this, SecondActivity.class);  
  57.                 startActivity(intent);  
  58.             }  
  59.         });  
  60.         // 点击打开ThirdActivity  
  61.         Button thirdActivityButton = (Button) findViewById(R.id.thirdActivityButton);  
  62.         thirdActivityButton.setOnClickListener(new OnClickListener() {  
  63.             @Override  
  64.             public void onClick(View view) {  
  65.                 Intent intent = new Intent(MainActivity.this, ThirdActivity.class);  
  66.                 startActivity(intent);  
  67.             }  
  68.         });  
  69.     }  
  70. }  

Second分别是两个测试Activity,代码和xml这里不再贴出来了。

最后AndroidManifest.xml:

  1. <application  
  2.     android:allowBackup="true"  
  3.     android:icon="@drawable/ic_launcher"  
  4.     android:label="@string/app_name" >  
  5.     <activity  
  6.         android:name="com.example.app012.MainActivity"  
  7.         android:label="MainActivity" >  
  8.         <intent-filter>  
  9.             <action android:name="android.intent.action.MAIN" />  
  10.             <category android:name="android.intent.category.LAUNCHER" />  
  11.         </intent-filter>  
  12.     </activity>  
  13.     <activity  
  14.         android:name="com.example.app012.SecondActivity"  
  15.         android:label="SecondActivity" >  
  16.     </activity>  
  17.     <activity  
  18.         android:name="com.example.app012.ThirdActivity"  
  19.         android:label="ThirdActivity"   
  20.         android:theme="@android:style/Theme.Dialog">  
  21.     </activity>  
  22. </application>  
 

这里SecondActivity是一个普通的Activity,ThirdActivity设置android:theme="@android:style/Theme.Dialog",表示它显示为一个对话框,打开ThirdActivity不会完全覆盖MainActivity状态,是用来实验MainActivity的Paused状态的。

实验步骤:

1、

在模拟器中运行程序,此时日志:

onCreate

onStart

onResume

再按返回键退出程序:

onPause

onStop

onDestroy

上面模拟了The entire lifetime整个生命周期,刚打开程序时onCreate到Activity销毁onDestroy。

2、

打开程序后,按"打开SecondActivity"按钮:

onPause

onStop

再按返回键回到MainActivity: onRestart

onStart

onResume

再按Home键回到桌面:

onPause

onStop

再打开程序:

onRestart

onStart

onResume

以上模拟The visible lifetime,当MainActivity转到后台不可见时调用onStop,再次可见时onStart,由于是再次可见,会调用onRestart。

3、

打开程序后,按"打开ThirdActivity"按钮:

onPause

此时MainActivity没有完全被覆盖:

再按返回键:

onResume

上面模拟The foreground lifetime,失去焦点后onPause,重新得到焦点后onResume。

通过上面实验,可以看出:

The foreground lifetime(onResume到onPause)包含在Thevisible lifetime(onStart到onStop)之中,The visible lifetime包含在The entire lifetime(onCreate到onDestroy)之中。

作者:叉叉哥   转载请注明出处:http://blog.csdn.net/xiao__gui/article/details/11464603