九天雁翎的博客
如果你想在软件业获得成功,就使用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。 -- Paul Graham

迅雷非善类,搜狐需谨慎,浅析迅雷发家史

write by 九天雁翎(JTianLing) -- www.jtianling.com

讨论新闻组及文件

近日按习惯在迅雷看看上看看电影,很多电影,包括首页推荐的电影,已经是如下图所示,被迅雷处理掉了

xunleikankan 这点严重的影响了我正常的看片!

一时间觉得很郁闷,突然想起来最近的搜狐告迅雷侵犯版权的事情了,也明白了为啥这么多页面会不存在了,唉。。。。。真不知道是该支持搜狐还是咒骂搜狐。。。。。。

看看迅雷的历史。

最开始下载类软件是netant的天下(不知道今天还有多少人记得当年那一个一个辛勤的小蚂蚁啊),当时netant靠的是多线程的分割下载方式,在网络非常差的时代,为我们提供了非常优秀的下载速度,市场趋于稳定后,也没有见有太大的改变了。但是flashget横空出世,因为提供了一样优秀的下载速度,并且引入了下载分类管理等创新功能(就我的记忆,在中国当时的下载软件里面的确是新的),慢慢将netant挤出了市场,不过慢慢flashget也趋于平静了,没有什么大的改动。下载类软件虽然装机使用率非常高,但是当时的厂商都没有找到太强大的盈利模式,使得靠一两个创新占领市场后,慢慢也没有什么大动作了。

迅雷,就是在这样一片原本稳定的没有清晰盈利模式的市场杀出了一条血路。这一点是我非常佩服迅雷公司的地方,此事情,也算是中国互联网的大事,从此下载软件变新颜。

一开始迅雷就非善类,利用了中国的法律漏洞,网民的维权意识不足和计算机知识的不足,最初靠的是雷区这个下载资源区和其P2SP这样类似BT的下载方式,要知道,在当时,你甚至没有办法去控制自己的上传,基本上,你一旦开着迅雷,你就开始为其他网民的下载提供了上传服务。

当然,贡献上传,互相帮助,人人为我,我为人人,这些本身就是P2P软件下载方式所提倡的,也是BT,Emule存在的根本,但是,那些都是可知的,可控的,我是知道自己在上传的,迅雷就压根不告诉你这些!就这一点,划为流氓软件也毫不过份!那是我还在读大学,与室友共享一个网络,只要一个室友开着迅雷,毫不下载,网络照样卡的要死!

过了很久很久以后,迅雷市场稳定了才承认了其下载的技术(的确此技术是让下载速度快了很多),对迅雷公司这样的发家方式非常不齿!虽然,我承认,迅雷在技术上是比原来的不思进取的flashget,netant之辈更加好的,但是,很明显在中国的大环境下,基本上漠视了大家的基本权益。至于雷区那种靠着号称网友上传,然后置软件版权于不顾的方式,中国大环境使然,也不责怪迅雷了。

不过,迅雷的创新意识和市场把握能力非常之好,这点我非常佩服,也值得学习,随后开始兼容BT和Emule的下载方式,但是此时的流氓作风又尽显,当时我习惯使用的BitComet,怎么也没有办法调回默认方式了,只要迅雷在,基本上,其永远默认,唉。。。。。。。。再以后,BitComet也提供了普通下载方式。。。。但是已经难免颓势。

随后,迅雷又侵入了PPLive,PPStream等软件已经开拓完善并且已经牢牢把握住的在线视频市场,提供了迅雷看看的服务,此服务说来雏形是BitComet提供的边下边看,但是因为技术上不是太完善,下载速度不是太理想,后来并没有太完善和宣传(风行当年似乎以此为宣传)。因为迅雷的下载速度保证,迅雷看看提供的服务的确相当优秀!!视频的清晰度,流畅程度远非当时的PPLive,PPStream可比,比起土豆,优酷那样模糊不堪的视频效果那就更是一个天上,一个地下了,事实上,我发现我的软件使用习惯,在迅雷看看出来后就变了,卸载了PPLive,PPStream,BitComet,Emule等软件,仅仅保留了迅雷及迅雷看看,后来,xunlei的网页也已经改为了迅雷看看了,足见迅雷看看的成功。

但是,此时迅雷为了保证其迅雷看看的下载速度,流氓行径未改,事实上,只要你上迅雷看看的网页上看过一部电影,后台运行的迅雷看看就一直开始默默的运行,并上传,哪怕你退出了网页后,其叶不自动关闭,无数次,我发现上网速度奇慢,原来是刚才看过电影,忘了关闭迅雷看看了。这种做法,人神共愤!

再然后,最近迅雷推出了迅雷看看播放器,开始抢夺暴风影音的市场(当然,我只用kmplayer),不仅可以播放本地的视频,在线的视频播放也得到了很好的支持,同时兼有迅雷看看在其后作为在线的影库,本人甚为欣赏这样的创新,但是,流氓行径仍然不改,关联里面竟然默认选择总是保持文件关联的选项。

xunleikankan2导致安装后,人们会不明就里的让迅雷看看永远霸占自己的所有视频播放权。。。。。当然,看片后,你点击关闭后,迅雷看看只会最小化,不小心,你就让其在后台默默的运行,然后上网速度奇慢了。。。。。

上述,就是迅雷的发家流程。。。。。

我表达一下自己的看法:

迅雷在下载领域的创新我觉得是非常值得鼓励,netant,flashget等软件,在稳握当时市场的情况下还会被后来的迅雷所击倒,的确也因为他们的不思进取。不仅是思想上的创新,技术上的创新,比如P2SP的引入,我觉得也是很了不起,因为实实在在的在中国这种破网络环境下给我们提供了很快速的下载速度,向迅雷致敬!

其后提供的雷区服务,再然后提供的狗狗搜索服务,为我们搜索资源提供了很大的帮助,生僻的资源不需要再去Google或者baidu上去摸瞎了,想起当年,最开始缺少啥的时候肯定是Emule上搜索,但是那个下载速度实在太慢了点,Bt没源又是常事,迅雷这时候帮了我很大的忙。

迅雷看看别具一格,让在线视频不再模糊。。。。。。。改变了我原本的观影习惯,原来看电影,习惯上都是下载到硬盘后然后再看,根本无法接受Youku,Todou和PPLive,PPStream(只用来看电视)之流的模糊视频,这点的贡献怎么说都不为过!

基本上,迅雷围绕着自己的核心技术(下载)提供的周边服务,将其核心技术的价值发挥到了极致,非常值得现在的互联网公司学习,(其模式与汉王很像,汉王的核心技术也就是汉字识别技术,然后其后推出的手写电脑,扫描笔,PDA,电子书等,无不围绕此技术发展),随着迅雷的发展壮大,迅雷慢慢成长为平台提供的公司,比如现在不断的运营网络游戏。

迅雷的发家流程,可看做互联网公司发家致富的经典教材。。。。。。。。。

但是,其中很多做法实在是流氓软件行径,不断的打法律的擦边球,漠视网民的权益,为了尽量让网民提供上传不择手段,我为其不齿!唉。。。其实,也不能全怪迅雷一家公司,大环境使然,想起某人的一句很经典的话,假如犯罪的收益能远远大于被逮住的风险和被逮住后的惩罚,那么人人都会犯罪!迅雷不过也就是衡量了收益和风险后,这样做的另一家公司罢了。。。事实上,上述流氓行为的确也在迅雷发家致富的路上起了很大的作用……假如制度还是不完善,假如相关的法律无法真正实施,网民还是无法形成维权意识,迅雷也是下一家准备利用流氓手段发家的互联网公司的经典蓝本。可叹。。。。。

最近搜狐告迅雷侵权。。。。。。。。。算是中国特色了。。。因为迅雷侵犯的主要是电影公司的权益吧。。。。。但是电影公司没有去告,而是搜狐出来。。。。

迅雷公司回击。。。我们来比一下谁的版权产品多。。。。。。又是典型的中国式回答。。。那么,某一天,杀人犯也会出来说,我们比一下谁没有杀的人多吧!

唉。。。。。。。。最后,还是支持搜狐吧,要知道迅雷一贯并非善类,中国的版权法我都不知道是用来干啥的了。。。。。。只希望,迅雷公司这样的互联网公司,多多保持创新,多多研究用户的使用习惯和行为模式,而不是一门的挖空心思去欺骗用户和弄一些混淆用户的东西。。。。

原创文章作者保留版权 转载请注明原作者 并给出链接

write by 九天雁翎(JTianLing) -- www.jtianling.com

阅读全文....

中国的软件流氓行为何时了?搜狐输入法竟然自动下载并要求我安装浏览器!!

write by 九天雁翎(JTianLing) -- www.jtianling.com

讨论新闻组及文件

在没有经过本人允许的情况下,自动的下载搜狗的浏览器,并开始提示我安装了!!!!郁闷啊。。。。。。。。中国的软件流氓行为实在是无止尽啊。。。如下图。。。。

image 在搜狐输入法被qq黑了的时候,我还以为搜狐是善类,结果为了推广自己的浏览器也是不择手段啊。。。。。。唉。。。。大环境啊。。。。

原创文章作者保留版权 转载请注明原作者 并给出链接

write by 九天雁翎(JTianLing) -- www.jtianling.com

阅读全文....

新浪惊现通用云计算平台 Sina App Engine横空出世 支持PHP

write by 九天雁翎(JTianLing) -- www.jtianling.com

讨论新闻组及文件

当做电子商务的亚马逊在全球率先推出通用云计算平台时,让大家震惊了很久,随后Google也推出了App Engine,原来仅仅支持Python,现在已经支持了JAVA。2009年9月,阿里巴巴集团在十周年庆典上宣布成立子公司“阿里云”,叫嚣要提供比亚马逊更多服务的时候,我才开始看到国内游企业开始进军云计算平台的领域,但是,事实上,此事上新浪已经先行一步了,今天很惊讶的发现Sina App Engine已经开始内测了。。。。。

http://sae.sina.com.cn/,虽然sina还没有大肆的宣传,但是,从其命名上sae(Sina App Engine),加上其简单的定位“Sina App Engine - 简单高效的分布式Web应用开发与运行平台”,很明显能看出这是与Google App Engine类似的通用云计算平台,有意思的是,Sina不知道是有意的避免与Google进行直接的竞争,还是考虑到国内的网络开发国情,提供的是PHP+MySQL的服务:)

其服务列表上说明的是:

支持的服务:

  • PHP 5.3.0
  • Mysql 5.0.86
  • Memcache
  • Fetch URL

相当的类似本地开发,呵呵,广大的PHP开发者有福了。。。。。。想当年我为了尝试Google的App Engine还特意去学习了Python。。。狂汗-_-!当然,我还是没有福,因为我不实用PHP。

假如没有意外的话,Sina将是国内第一家推出通用云计算平台的企业,Sina作为国内三大门户,很不幸的没有像163,Sohu一样在新兴的网络游戏市场上分到大馅饼,(现在163,Sohu从营收来看更像是一家网络游戏公司,特别是163,Sohu的网络游戏分拆上市还好点)但是Sina估计痛定思痛,反而能沉下心来研究一些传统互联网公司应该研究的东西,这一次,Sina的赌注绝对没有下错地方,当然,首先还得SAE的确好用才行,我看了演示,应该还好,并且就我了解,国内的网页开发PHP也的确是主流,预祝SAE成功:)

另外,由于目前还在内测阶段,好像需要邀请码,并且现在已经不让注册了,导致我没有办法实际的去尝试一下了。。。虽然其实我不懂PHP。但是这里有个演示视频,大家可以先体验一下。再不过瘾,看看文档先?

以下是Sina在文档中对SAE的简介:

SAE简介

Sina App Engine(SAE),是由新浪公司开发和运营的开放云计算平台的核心组成部分。

SAE的目标是实现互联网应用在开发运维上的无缝整合,为App开发者提供稳定、快捷、透明、可控的服务化的平台,并且减少开发者的开发和维护成本。

同时通过对消耗资源的量化,反向作用于开发过程,促进新浪公司互联网应用服务的质量提升。

SAE具有以下特点:

  • 自动负载均衡 - - - - 根据应用压力自动调整服务规模,自动负载均衡

  • 自动分布式代码部署 - - - - 原子的将开发者代码部署到所有web前端

  • 自动健康检查 - - - - 所有设备自动健康检查

  • 故障系统自恢复 - - - - 发现故障服务自动内部无缝切换,故障报警和有限度自行恢复

  • 多平台简单SDK操作 - - - - 主流OS平台SDK支持,任何一台PC即可享受SDK

  • 快速分布式web应用开发 - - - - 提供多种分布式服务,接口友好封装,减少开发者学习使用成本

  • 团队开发协作 - - - - 开发者可以进行项目团队管理,代码管理、在线沟通方便有效

  • 资源自动分配 - - - - 符合云计算理念,所有资源在配额内,自动分配

  • 所付即所用 - - - - 符合云计算理念,最大粒度量化开发者成本,所付即所用,所付仅所用

  • 服务高可靠SLA保证 - - - - 全架构高冗余实现高可靠性

SAE为开发者提供以下服务:

  • PHP5 Runtime运行环境 - - - - 基于PHP 5.3.0内核

  • 支持读写分离的分布式数据库服务 - - - - 基于Mysql数据库

  • 分布式文件存储服务 - - - - 基于分布式文件系统

  • 基于Memcache协议的分布式缓存服务 - - - - 基于集群memcache系统

  • URLFetch远程数据抓取服务 - - - - 基于分布式proxy服务

  • Cronjob定时任务 - - - - 基于分布式定时器服务

  • SPP图片处理服务 - - - - 基于分布式高CPU计算服务

 

值得期待啊。。。。。。。。。。。

 

原创文章作者保留版权 转载请注明原作者 并给出链接

write by 九天雁翎(JTianLing) -- www.jtianling.com

阅读全文....

可怜的Sun公司,因为收购了MySQL,想卖自己都卖不了了

write by 九天雁翎(JTianLing) -- www.jtianling.com

讨论新闻组及文件

今天看到CSDN上的一则新闻《欧盟正式否决甲骨文收购Sun 甲骨文据理力争》后真是感叹啊。。。。

Sun也算是盛极一时的大公司了,因为JAVA语言而闻名于世,后来股票代码都改成JAVA了,虽然JAVA实际上没有为其带来太多的利润,但是Sun也算是能够自己提供硬件+软件全套的企业级解决方案的少数公司之一了,当年收购MySQL的时候还是风风火火啊,完善了自己产品链中最后的弱环,成就了开源世界最大的一笔收购案,Sun也从此有了从SPARC处理器 ,存储设备等硬件,到JAVA语言,Solaris操作系统,MySQL数据库等软件的完备产品链,一时间似乎成为了除IBM以外,服务器,工作站,企业级解决方案中最牛的公司,可惜啊可惜。。。。。

当年经济情况好的时候,大企业很Happy的烧钱,滋润了Sun这样的公司,但是,经济危机一到,大家收缩了银根,Sun就不好过了,开源的JAVA和MySQL都不可能拯救Sun。

最最可怜的是,今天Sun想把自己卖给Oracle,但是却因为MySQL的原因,导致在欧盟这里通不过,真是让人感叹啊。。。。。。

基本上,这也可以看做是IT历史上另一起因为盈利模式太单一导致的脆弱吧,哪怕是Sun这样的公司,犯了此错,也逃不了可悲的命运。

当年,谁又能想到,那是Sun对MySQL的收购案会导致现在这样的后果呢?只谈历史的戏剧性啊。

 

 

原创文章作者保留版权 转载请注明原作者 并给出链接

write by 九天雁翎(JTianLing) -- www.jtianling.com

阅读全文....

从C++到JAVA(1) 在CSDN博客中部署及运行JAVA Applet

write by 九天雁翎(JTianLing) -- www.jtianling.com

讨论新闻组及文件

 

前言

曾经,我有一个梦想,那就是我的程序能让人不需要下载就能通过浏览器运行,可惜学习的C,C++等都不具备此能力,学习完Python后,发现其也仅仅是以服务器端的开发为主,JS这种语言是慕名已久,买了著名的犀牛书,但是却一直未得时间细看,但是,JAVA会给我这个机会的。事实上,JAVA在最开始的时候就是因为JAVA Applet而流行起来。(参考二前言所言)因为以上原因,我学习JAVA也决定从JAVA Applet开始。

因为以后的工作会使用到JAVA,我不得不开始真正耐心的学习JAVA了,以前因为对Android的兴趣,浏览了《Thinking In JAVA》一书,但是一直没有真正的掌握和使用,工作压过来了,我算是彻底对JAVA缴枪投降了(事实上,作为C++程序员,很长时间我对JAVA有抵触情绪-_-!),这里,我以一个C++程序员的身份,提供一份从我C++到JAVA的学习记录,尽量将其做成从C++到JAVA的指南。首先说明一点的是,本人从来没有打算放弃C++,也不推荐任何人如此,从C++到JAVA仅仅指的是学习的流程而已,《JAVA Programming Language》与《Thinking In JAVA》两本书都非常不错,但是由于其目的的大而全,所以事实上对于C++程序员来说(比如我),篇幅过于巨大,熟悉了C++和OO的话也会碰到太多重复的内容,本人尽量将不同抽出来,忽略重复,提高学习效率。。。。要看完那两部大部头,实在得花太过不必要的时间。切记,本人假设读者非常熟悉C++及OO相关概念,重复内容一律不提,编程的基本知识更加是一律不提。

 

JAVA编程环境

毫无疑问,推荐先到http://www.java.com上去下载一个最新的JRE安装,而后,我出于方便,使用Eclipse作为IDE编辑和编译JAVA程序,运行嘛,由于我准备将左右的程序都做成JAVA Applet,所以,事实上,所有的程序都可以再浏览器中运行。JDK的话,可以使用Eclipse带的,也可以到JAVA的网页上去下载,这个随便,我是下载了一个。

 

JAVA Applet程序入门

为了使概念的演示更为直观,也减少大家对源代码运行的负担,首先学习的是JAVA Applet的编写,这样,以后的例子全部通过浏览器就能运行,大家可以在博客中直接查看运行效果,呵呵,这样也算利用JAVA的一点优势。。。。。将来我要是准备学习HTML,JS的时候都可以使用此方式,但是学习C++的时候。。。。。呵呵,就没有办法了。呵呵,在此离开老是依赖截图的日子吧。。。。。。。

首先看一个最简单的JAVA Applet程序:

import java.applet.Applet;
import java.awt.*;

public class AppletHelloWorld extends Applet
{
public void paint(Graphics g)
{
g.drawString("Hello Wolrd",10,50);
}
}
 
JAVA程序有个让C++程序员别扭的特点,完全以对象为基础,没有任何全局函数,在普通的JAVA程序中即使是使用Main函数都是弄成一个类的静态成员变量,扭曲的无以复加。。。。(个人观点)当然,习惯的人也许觉得没有什么,个人感觉有点太强制了。。。。也许用惯了C/C++的人都太习惯自由吧。。。。呵呵,也不仅仅是这样说,Python不也是一切皆对象吗?还是可以方便的定义全局函数和变量,不仅仅是C/C++程序员才拿自由说事儿。
 
当然,这种强制性的思想是想将大家都往面向对象的正路上拽(James Gosling认为这是正路吧),与C++这种兼容C存在的半吊子面向对象编程语言决裂,以防落入C++开发者常常使用的C思维,可惜的是,事实上需要全局函数和变量的时候大家还是变着法子的用,单件,资源类则如是。。。。
 
说多了题外话,看这个例子吧,因为目前主要是将JAVA Applet程序的编写和部署,为以后的演示提供方便,暂时不准备详细讲解JAVA,所以关于语法的东西一切从简了,但是基本上希望大家能理解此例子。
 
import类似于C++中的include,但是不仅仅是那样,因为import不是文件,而是包,应该来说,更像是Python中的import,当然,编程时这样做会更加的便捷一些,特别是当这些语言不再拘泥于C++形式的声明实现分离时。java.applet.Applet的引入是此JAVA applet例子必须的,因为后面的主要类就是继承自Applet。java.awt是java的界面库,以*的形式表示引入此分类下所有类。
 
唯一的类AppletHelloWorld继承自Applet,继承时以extends关键字表示继承。所有的applet程序都必须含有一个直接或者间接继承自Applet类的类。public class中的class不用我多解释了吧,呵呵,public用于修饰类,表示此为公用类,可被此文件外的类所引用,不然,仅仅能被此文件中的类使用,JAVA的这种以文件分割类的方式(还以目录分割包)本人比较欣赏,虽然又多了份限制,但是能强制性的更好的管理大型项目的目录结构。后一个public用于修饰paint函数,此处与C++中的作用类似。paint函数是Applet类从java.awt.Container继承过来的,用于绘制图形(类似于MFC中的OnDraw和Qt中的paintEvent)。
 
paint函数的参数是个Graphics类的对象,java.awt.Graphics属于Java中显示的基本类,地位基本相当于Qt中的QPainater。此处用Graphic的drawString方法显示了"Hello World”字符串。
 
以上基本上就是这个简单的JAVA Applet程序的解释了。

 

JAVA Applet程序部署及运行

关于JAVA Applet的部署其实JAVA的官方主页上有一大节讲这个的,关于用Applet Tag部署的内容见《Deploying With the Applet Tag》。

首先,假如使用命令行操作的话,将上述代码保存成一个名为AppletHelloWorld.java的文件,并用javac编译,生成AppletHelloWorld.class文件。假如使用Eclipse的话就简单了,生成一个工程,文件名不要错了,然后build projects就好了(或者是自动编译的),然后(默认情况下)可以在工程的bin目录下找到AppletHelloWorld.class。

生成的class文件就是我们需要运行的文件,部署JAVA Applet时,需要建立一个如下简单内容的HTML文件:

<html>
<head><title>我的第一个JavaApplet程序</title></head>
</body>
<p>
<applet code=AppletHelloWorld.class
width=300
height=200>
</applet>
</body>
</html>

 
保存为html文件,并放在与class文件同一目录下,用浏览器打开此html文件即可看到运行效果,显示hello World字样,此文字并不是写死在HTML中的,而是由JAVA Applet动态运行生成并显示的。。。。。虽然在此例中还看不出区别-_-!但是,现在仅仅是个Hello World程序嘛,不用急。在官网上讲的所有applet tag部署内容都是假设jar或者class是在当前目录下的,这在自己做网站的时候或者本地实验没有什么,可以自己确定各个文件的位置,可是在CSDN博客上这一套就行不通了,还好我找到了HTML的applet tag的specification,其中有个官网没有讲到的确定文件位置的codebase tag。

此时,我将上述class文件上传到我在google code上托管的地方,(事实上,大家愿意上传到哪里都可以,只要提供了直接的链接地址就行)然后直接用codebase指定位置,然后直接将相关的html嵌入此博文,那么,大家就能直接看到运行效果了:)

代码如下:
<p>
<applet codebase="http://jtianling.googlecode.com/files/"
code="AppletHelloWorld.class"
width=300
height=200>

下面是一个java applet程序的运行效果:

并且发现,文档中明确说明:

“APPLET is deprecated (with all its attributes) in favor of OBJECT.”

让我大为郁闷。。。。。。。deprecated的东西了。。。。但是本人目前不准备深入的去研究HTML,仅仅是学习JAVA,甚至JAVA Applet的学习都是为了JAVA的学习时演示方便,所以,怎么将上述applet tag的例子转化为用OBJECT tag,我就不研究了,应该不难。

说明:本人学习JAVA时间较短,虽然尽量保证所写下的是有依据的东西,但是并没有讲C++程序时那么有把握,所以碰到不对的地方还请各位JAVA高手指正。

 

参考资料

1.《Thinking In JAVA》,英文版,第4版,Bruce Eckel著,机械工业出版社

2.《JAVA Programming Language》,英文版,第4版,Ken Arnold,James Gosling,David Holmes著,人民邮电出版社

3.《JDK 6 Documentation》,JAVA在线文档集合

4.《The Java Language Specification, Third Edition

5.《Java™ Platform, Standard Edition 6 API Specification

6.《HTML 4.01 Specification

 

 

完整源代码获取说明

由于篇幅限制,本文一般仅贴出代码的主要关心的部分,代码带工程(或者makefile)完整版(如果有的话)都能用Mercurial在Google Code中下载。文章以博文发表的日期分目录存放,请直接使用Mercurial克隆下库:

https://blog-sample-code.jtianling.googlecode.com/hg/

Mercurial使用方法见《分布式的,新一代版本控制系统Mercurial的介绍及简要入门

要是仅仅想浏览全部代码也可以直接到google code上去看,在下面的地址:

http://code.google.com/p/jtianling/source/browse?repo=blog-sample-code

 

原创文章作者保留版权 转载请注明原作者 并给出链接

write by 九天雁翎(JTianLing) -- www.jtianling.com

阅读全文....

Windows下多鼠标/双鼠标技术专题

首先要说的是,此文的主要内容都来自本人 在 湖南大学  郑善贤 老师指导下写的 毕业论文

可以在此http://groups.google.com/group/Single-Display-Groupware找到我参考的英文资料,也可以在此讨论相关问题。

建议先阅读此前言:

Windows中多指针输入技术的实现与应用(说在前面的话(1))

后面是正文:

Windows中多指针输入技术的实现与应用(2摘要及参考论文)

Windows中多指针输入技术的实现与应用(3 绪论)

Windows中多指针输入技术的实现与应用(4多鼠标输入的底层实现)

Windows中多指针输入技术的实现与应用(5 利用多鼠标输入框架软件实现)

Windows中多指针输入技术的实现与应用(6 Single Display Groupware Toolkit的应用)

Windows中多指针输入技术的实现与应用(7 分时多鼠标控制系统鼠标的问题)

Windows中多指针输入技术的实现与应用(8 总结及继续MFC的讨论

Windows中多指针输入技术的实现与应用(9 我设想用来实现MFC多鼠标的透明窗口源代码。。。)

Windows中多指针输入技术的实现与应用(10 双鼠标五子棋源代码 全系列完)

 

一篇很有价值的译文:

在微软Windows中支持多指针设备(Supporting Multiple Pointing Devices in Microsoft Windows)

 

后记:全系列构成了本人的本科毕业论文,个人感觉基本上对得起中国的本科教育了,不说多么优秀,技术多么高,我本人还是下了功夫去学习和写的,虽然现在看起来原来那学生时代的水平,包括代码编写的风格都还是比较稚嫩的,而且现在回过头来看,其实真正核心的内容也就RawInput一点。-_-!呵呵,但是考虑到那是在几乎没有国内资料的情况下完成的,还是有一定的成就感,并且在微软举办博客征文比赛的时候曾经想以此文去蹭一个键鼠套件,结果仅仅获得优秀奖拿了件破衣服,汗颜-_-!有选择的话,我还不如混本《程序员》杂志强呢。。。。立此存照,以为纪念,相关资料还是有很多人问起的,本人懂得此文及其链接基本包括了。总结一下,以后发链接回答问题也快点。。。。。。别怪我偷懒。

devWOW博客获奖

最后,今天在查看此文链接时,竟然发现有人的论文在参考文献中引用了我的论文-_-!也算没有白写。。。。。。想起中国大学的某项制度,核心刊物发表论文+被引用计数。。。。我也算被引用计数一次了………

FireShot capture #006 - '多鼠标交互型PPT对中国课堂教学的启示' - www_zxqikan_cn_wz_200908_108851_2_html

阅读全文....

Win32 OpenGL系列专题

因为转来后格式混乱,所以在本博客不保留原文了,直接去CSDN看吧.

 

这个系列是当时边学OpenGL边写的,那个时候对OpenGL的理解非常肤浅,就是对着红宝书及一些网上的例子学习,现在回头来看,很多地方还是有不对的地方,绝对不推荐初学者不辨别对错的阅读,以免被我误导,可以作为学习之余添加的例子观看,因为我总是想着弄些好玩的东西,例子可以试试,也许可以增加你的兴趣。

阅读全文....

一切都"云"了,包括输入法,有感搜狐推出了云输入法

write by 九天雁翎(JTianLing) -- www.jtianling.com

讨论新闻组及文件

   
    IT行业最大的特点是喜新厌旧,伴随着这一特点衍生出来的就是商家喜欢炒作概念,这不,“云”一时间成为了最热门的词汇,于是一切都“云”了,Amazon最先有了通用云计算平台为这个推波助澜,Google这个本身就处于云端的公司也推出了App engine,一时间大家都“云”了,阿里也“云”了,Ubuntu9.10有了企业云,现在输入法都”云“了。何处不云阿。。。。。。。。。让人头晕。

    ”云“自然是好的,所以大家才集体“云”,类似Google Doc的应用改变了很多人的生活,包括我,所以今天能够脱离Windows也能够在Linux下很顺利和愉快的发布这篇博客,听说搜狐要发布云输入法了,还能跨平台,用于Linux,Mac,我是异常的兴奋啊,Linux下实在没有与搜狐输入法匹敌的输入法(Fcitx是我Linux下最喜欢的输入,但是虽然优秀,却还是只能算是上一代的产品了),我是引颈期盼,以为能在Linux下脱离低下的输入效率了,假如能够共享Windows下的个人词频记录那就更加完美了。
    怀着美好的憧憬,见识了一下云输入法,不得不说有些失望,搜狐的云输入法实在还不够成熟,虽然号称跨平台,有浏览器就能使用,事实上,我在Linux下(kubuntu9.10)+Firefox 3.5下测试,在Google Doc和Gmail中都只能看到一个输入法的标志,却不能正常使用,最后发现在Google首页的搜索框中可以正常使用-_-!难道因为Google Doc和Gmail也用了JS?(因为搜狐的云输入法前端明显是段JS)然后在Windows XP+FireFox3.5使用,与Linux一致,我最后再尝试用IE8,结果在Gmail中连搜狐云输入法都无法显示了,能够正常使用的就是Google的搜索框了,不知道搜狐自身有没有试过Google Doc,Gmail这样的AJAX产品-_-!但是Google Doc,Gmail这种按道理与"云"输入法搭配天衣无缝的绝佳“云”应用都无法使用。。。。不是让人有一点失望,那是非常让人失望,离搜狐宣称的有浏览器就能使用实在不是有一定的差距,那是有非常大的差距,最后,本文还是在可爱的fcitx工作下完成。

    作为概念输入法,搜狐并没有打算大规模推广和使用,仅仅作为创新的一个尝试平台,事实上,的确也还没有到那个成熟度,另外,在云计算没有完全普及之前,在真实的世界还不仅仅是浏览器时,仅仅只能在浏览器中使用输入法,还是有点让人接受不了,就算作为尝试创新的平台,起码也应该能够大体正常的使用才对。
    当然,搜狐的概念“云”输入法的一些概念还是不错的,也不能算作是普通商家的概念炒作了,毕竟这是真的“云”,计算是放在服务器端的,是通过网络调用的,也用了流行的B/S结构,让浏览器作为平台,意图达到有浏览器就能使用的目的(虽然还没有达到),因为计算在服务器,所以也能进行一些大胆的尝试,进行一些巨量(在客户端不能想像)的计算,提供超大的词库(据说4G),使用三元模型来匹配词组,客户端显示的词组都有服务器计算匹配返回,这些新鲜的东西,作为一个网络游戏服务器端的开发人员,我听起来还是感觉很新鲜的,天哪,一个输入法的开发都用了什么技术了啊,事实上,因为使用了“云”的概念,客户端的输入法也变成了一个单纯的显示平台。。。。。详细情况可以参考搜狐的网页,我看齐展示的技术的确有吸引人的地方,输入法最重要的是什么?自然是匹配率罗,首次匹配成功的几率越高,越能节省我们的时间,作为提高我工作效率的软件,我一概欢迎,我连Vim,AutoHotkey这样需要学习代价的软件都欢迎,更别说是像搜狗输入法这样不用学习就能提高效率的产品了。上面的那些新技术的出现自然不是为了彰显技术,而是以提高匹配率为目的的,事实上,虽然知道是搜狗首先有了将搜索引擎的数据与输入法挂钩的思想,但是今天才知道搜狗输入法的技术含量其实还是挺高的,不像想像的那么简单,我只希望,“云”输入法这样的产品要事实上能够实用起来,改善Linux下输入法的效率,而不是像现在这样,不能在浏览器以外的地方使用就算了,甚至连Google Doc,Gmail都无法使用。-_-!具体匹配率有怎么样的提高,说的玄乎又玄没有用,匹配率再高我首先也要能用吧。。。。。目前我能用到的地方就只在Google的搜索框-_-!
    呵呵,不得不承认,我很关注这样的“云”的产品,因为“云”产品在Linux下使用与在Windows下使用效果是一样的(我在Windows下也是用Firefox),加上数据存在服务器,我可以随时随地的获取到我要的东西,也不担心由于自己机器丢失,硬盘损坏,病毒,操作系统重装导致的数据丢失,Google Doc,Evernote就是其中最好用,最优秀的典型产品,“云”嘛,填平了操作系统间的鸿沟,浏览器就是操作系统,搜狐能有此先知先觉(不知道算不算),希望能够真的将产品做起来,而不是停留在概念输入法的阶段。毕竟,广大的Linux/Mac用户尚翘首以盼。。。。。。。。。
    不过说回来,搜狐在输入法这点上还真是下了本了,但是这个本钱花的即使不真得有有效的商业模式,同样还是划算,用这些钱开发一个普通大众几乎人人使用的软件比用大成本去做广告强,一个天天使用的好用软件本身就能在用户心中潜移默化的留下好的印象,何况这年头,互联网企业的杀手锏就是用免费培养用户习惯,然后收费。。。。虽然有的是以增值服务的方式提供的(那么多网络游戏其实都算),这笔生意在事后看起来是这么的清楚和划算,但是竟然一开始都没有人发现,(虽然现在很多公司发现了)任由MS的默认输入法在江湖上混了那么久。。。。。唉。。。。。。。。坐地分析一个东西容易,坐地发现一个这样的机会却难之又难,不知道第一个提出“云”概念的人/公司有没有想到会有这么一天,整个IT世界都往“云”上搬,甚至是输入法,甚至是操作系统呢?
    此文为本人博客第300篇文章,以为纪念。

write by 九天雁翎(JTianLing) -- www.jtianling.com

阅读全文....

Ubuntu 9.10升级完毕,两个我关注的功能(软件中心,Ubuntu One)体验

write by 九天雁翎(JTianLing) -- www.jtianling.com

讨论新闻组及文件

无论哪一个新版本的操作系统发布,都会是“空前的,划时代的”产品,别的不说,我感觉广告倒是每次都是“空前的,划时代的”。我不知道每次的操作系统升级到底有多少创新的东西,也不知道Ubuntu9.10与Ubuntu9.04与Ubuntu8.10之间到底差别有多大,也不清楚Windows 7到Windows Vista到Windows XP之间的跨度有多么大,我只在想,要是老是划时代,我们现在已经在哪个时代了?唉,也要理解理解,做个操作系统不容易啊。。。。。最近Windows 7出来了,我没有升级,等它普及,软件跟上再做吧,Ubuntu9.10恰好也出来了,我升级了,毕竟,点几下鼠标就升级了,因为很显然不会普及,所以,我也没有必要等它普及了-_-!

我用的其实是KDE,这里说的也应该是Kubuntu的才对。图形界面那就很简单多了,有自动弹出的提示,傻瓜式操作,我家还有台台式机只有命令行怎么办?网上也搜到了办法,安装update-manager-core包,

sudo apt-get install update-manager-core

然后运行之:

sudo do-release-upgrade -d

Ubuntu9.10与Ubuntu9.04的变化:

官方的介绍《Ubunt9.10新特性

中文参考此文:

Ubuntu9.10将会成为游戏规则改变者的十大原因

比较吸引我的有几点:

1:软件中心

新立得我感觉是真正属于划时代的产品了,只要不是想要最新的版本尝鲜,不然Ubuntu下的软件安装将比Windows下的还要简单,Windows下是 找地方下载-》下载-》安装,Ubuntu是选择-》应用。因为开源/免费的性质,使得Ubuntu能够有所突破,Windows下的迅雷,360想学,但是都学不来(别说还没有解决需要手动下一步安装的问题),这点我以前提过,也是我感觉Ubuntu最人性化的一点,在命令行下,我只能用apt,但是仅仅是使用apt,软件的安装也是无比的惬意,加上Ubuntu的公司建立的ppa(Personal Package Archives : Ubuntu),更加是让Ubuntu下的deb包源更加丰富,基本上想要的我还没有碰到过没有的。既然软件中心要替代原有的添加/删除软件工具,那么新立得和KPackageKit(远没有新立得好用)都要统一了吗?真好,那样会解决我不喜欢安装GTK+导致的新立得没有办法用的问题。(事实上,不用新立得的唯一好处就是我不会常常因为其软件太过丰富而导致头晕,花很多时间下载一大堆看上去很有意思但是实际我根本不会用到的软件),据说软件中心中还会添加进商业软件-_-!那更加是让人兴奋罗,赶快看看。作为KDE使用者接受的代价是装上一堆Gnome的东西-_-!我没有为新立得屈服,为软件中心屈服了……………

kubuntu9.11SoftWareCenter 下面是我选择安装KDBG是的情形。

kubuntu9.12SoftWareCenterKDBG 使用感觉是,软件界面重新设计了,软件的分类更加面向普通的用户(非程序员),现在是安装软件的应用来分类,见上面的截图就能看出来,基本与菜单启动分类一致,而以前是按照软件的实现来分类,比如Gnome,KDE,Python什么的。这样普通用户的使用应该是更加上手了,但是,我要是找一些东西还真不知道实在哪个分类里面的。。。。呵呵,我估计有的时候还是得用新立得才行。另外,因为两个软件都是以apt为基础的,所以不能同时运行。

另外,在other分类中,我也没有看到真正的商业软件,仅仅看到一些如flash pugin,ATI驱动等东西(也许就是上文所谓的商业软件),当然,他们不开源,但是免费,我还以为会提供oracle的Linux版本提供下载了-_-!(想远了)或者商业软件是指MP3解码器等东西?(的确不为真正的GNU开源卫士所接受)

kubuntu9.13SoftWareCenterrestricted 基本上,软件中心没有让我特别惊喜的地方,可能对普通用户更加方便吧,对于我来说反而感觉包难查到,并且批量安装,删除没有原来那样方便了。

 

 

2.Ubuntu One

同步文件,2G空间,天哪,真不错,虽然我已经有网易的网络U盘了,但是使用上别提多麻烦了,那是引导顾客多上其网页操作的设计,也没有提供其他访问方式,而且空间总是不嫌少嘛,何况是内置在操作系统内部的工具,带同步功能。这个很吸引我,现在不要再和我讨论东西放在网上和放在自己电脑上哪个更好的问题了,可以的话,我希望将操作系统都放到网上去(好像以前有个类似的东西)。

kubuntu9.14one

kubuntu9.15oneplan

很显然,要注册了,并且提供了两个版本,这也算是Canonical的创收之路之一吧^^我以前已经在launchpad.net注册过了,现在可以直接使用其账户,而且不仅仅有文件共享的功能,还有note,联系人等功能,最郁闷的是。。。。。继TortoiseHG以后,这个功能又是与Nautilus绑定的,我再次吐血和感叹我这样使用KDE被抛弃的孩子-_-!但是,使用Ubuntu One后,会在主文件夹下增加一个名为Ubuntu One的目录,此时只需要将文件复制进去,就会自动进行同步:),呵呵,还算是比较好用,这样的话,我将来就将此文件夹作为工作目录了,无论在哪,都不怕文件丢失,呵呵,就像有个备份硬盘一样,2G的空间也能使用够久了,还可以方便的在我的服务器上同步,(还需要研究命令行下的使用方法)

网页使用页面:kubuntu9.15one2

 

最遗憾的功能是Quickly,本来多好的一个功能啊,(听起来)结果是针对gtk的-_-!我是无福消受了。被抛弃的孩子。。唉。。。。还有rhythmbox……我们不是不能用,要用的话代价是在KDE中再装个Gnome-_-!(虽然为了软件中心我已经装了。。。。)呵呵,但是Qt的很多工具已经够用了,我也不想太多了。

 

新浪也有新闻《Ubuntu 9.10正式发布》,竟然还提供了下载,才发现,原来新浪已经提供一些流行Linux发行版的下载了,呵呵,加上以前网易提供了一些Linux发行版的源(我没有用过,仅仅听说),现在Linux发展还不错嘛。

 

本来想写点完整的东西,最后光是找软件下载体验去了。。。。。。。遗憾,遗憾

 

 

 

原创文章作者保留版权 转载请注明原作者 并给出链接

write by 九天雁翎(JTianLing) -- www.jtianling.com

阅读全文....

Ubuntu 9.10总算出来了

这一次Ubuntu的更新可能是因为我正好在家呆着没有工作的原因,感觉等得特别久,平时忙起来更新反而没有怎么注意,呵呵。高兴更新中。

因为免费,开源,才能出现这样询问是否升级整个系统的对话框,什么时候,XP,Vista用户能看到MS提供的是否升级整个系统到Windows7的对话框呢?也就是因为免费,开源才能出现像apt-get和新立得这样将软件安装全部一键化的产品,Windows下的迅雷,360等想学但是要完全学会那就不仅仅是技术上的可行性问题了,呵呵,服务器开发人员的一点感慨,纯Windows开发人员请无视。

阅读全文....