Nelson's profile钻进瓶子的生活(技术版)PhotosBlogListsMore Tools Help

Blog


    5/29/2009

    Meizu M8平台基于Webkit、Gecko核心云计算WebOS项目试验

    项目进展:
    四大浏览器核心目前已齐聚M8,oyeah~~
    【Webkit】http://bbs.meizu.com/thread-914027-1-1.html
    【Gecko】http://bbs.meizu.com/thread-972883-1-1.html

    背景说明:
      说四大浏览器核心大家可能不熟悉,但主流的浏览器应该会上网的多少还都是有所了解的,主要包括IE、Firefox、Opera、Safari,其它的各种名字的浏览器则只是使用它们四个中的一个或多个内核的再次封装,作为嵌入式WinCE平台,M8自带IE移动版(Trident)内核(虽然由于授权没有集成IE浏览器,但内核还是在的,所以直接在资源管理器中就能打开网页,但对HTML新标准的支持就太落后了),另一个就是大家都知道的Opera M8(Presto)版(一直在改进,但一直没达到满意的效果,同样,对HTML新标准支持也未为M8同步更新),而Webkit核心为人熟悉和喜爱,则是从iPhone的Safari移动版的出现开始,随后的Google Chrome则更一步推广了Webkit,现在Webkit几乎被所有除WM的主流的厂家使用,如Apple,Google,Palm,Nokia……,应用领域覆盖桌面PC,笔记本,手机,移动终端等各种环境,因为它不仅仅是一个浏览器内核,更推动了HTML5标准,可能是未来云计算(WebOS)的软件UI接口的实现标准,同样的,Adobe、微软也在按它们的思路实现类似的目标,所谓掌握标准就掌握了市场;
      放在最后,我们要提的就是Mozilla,前身Netscape作为WWW的启蒙开创者,虽然现在已经消失在历史进程中,但其留下的Mozilla基金会,在开源社区支持下推广的Gecko内核的Firefox相信已经为广大PC浏览器用户所熟悉了(不要拿国内个人网站恶意推广Firefox赚小钱来说事,这只能反映出国内IT领域发展现状的悲哀而不能反映Firefox的技术优势),虽然Gecko内核是最后一个宣布进入移动平台的浏览器内核,虽然Webkit发展势头非常迅猛,但Gecko也有它的优势,从Mozilla创建初期,它们的目标就不只是浏览器,而是软件开发的一套标准,Firefox也只是一个专为浏览网页而生的一个精简了的子集,Mozilla提出的XUL框架,相信有一些用户已经有所接触了——比如某软件要求你安装Firefox才能运行,其实它就是用的Firefox的内核来生成软件界面的,包括Firefox自己,它也是由XUL通过解析XML文本来生成的一个用户界面,Gecko作为Webkit的一个有力的竞争者,促进了双方的共同的技术进步,最近的Intel的上网本操作系统Moblin好象就是基于Gecko内核的,而Android基于Webkit也在向上网本操作系统发力;
      说到这相信懂行的已经清楚了,四大浏览器内核中,除了IE,全都是跨平台的,全可以作为软件开发的基础框架来使用,其中特别突出的就是Webkit,随后是Gecko,Opera则采用了另一种Widget的思路但它是商业化闭源的,而这些也符合了软件发展的趋势,数据云端化、终端硬件及操作系统无关性、随时随地可操作性,可能在未来,Webkit或Gecko会合并,Google、Apple、微软三个巨头也会为了推广自己的平台而提出各种新的技术名词和框架,但技术的发展和商业化运作的结果是没人能预测的,我们也只能是尽快跟随标准的发展过程——不说参与标准的制定了,目前国内的技术发展和厂商的前瞻性还没进化到这一步……
      作为一台合格的互联网手机,一个优秀的浏览器内核是必备的,这个内核不是只能浏览下网页就完事了,它要有良好的新标准的支持和二次开发能力,基于这个内核进行Web2.0应用的无缝对接更是必须要提前考虑的,甚至完全用这个内核来构建所有界面(Palm Pre),这将是3G的杀手级应用——否则,3G的数据能力毫无用处,M8的MZFC开发库只能说还停留在象VC6时代类似MFC的“单机”版软件开发框架的阶段;
      现在已经几乎没有不联网的电脑了,3G时代,这句话可以换成——将没有不联网的数字设备,没有Web2.0应用开发框架的M8,注定将只是iPhone的形似的模仿者,iPhone带来的不只是工业设计和操作界面。

    4/13/2009

    MBmail-m8lite SVN代码公开(初步原型版本,详见说明)by 【MBStudio】

      入手M8一周新鲜出炉的第一个试验程序,主要为验证M8开发环境和试验SDK及第三方C程序库接口,此程序为另一个计划中的程序的子功能试验项目,主要包括试验:
    1.M8 SDK UI及消息控制,定时器设置;
    2.M8 COM接口控制声音视频播放及控制;
    3.振动控制;
    4.网络连接状态检测及自动GPRS/EDGE拨号;
    5.SQLite3移植及Demo;
    6.WinCE Socket试验及基于POP3协议的邮件探测(暂不支持SSL);


      当前开发状态为SVN代码库第一次提交,目前已实现1-5全部功能及6的连接试验部分(仅需添加邮件头的下载分析存入数据库备下次检测时检查是否有新邮件即可),已基本满足一个后台定时探测邮箱新邮件所需的全部功能部件;


    **注意**:
      不建议普通用户下载,敬请期待正式版,目前仅供开发人员查看,编译后联接M8真机调试时发布到\disk\temp\目录下,运行时需将SQLite3.dll及mbstudio.db拷贝到程序目录下,另需拷贝一个1.mp3文件到程序根目录下以便验证Mp3播放功能;
      到处拷贝试验代码,目前代码较乱,呵呵 ^_^


    项目代码由Google代码库通过SVN管理,Web地址为
    http://code.google.com/p/mbmail-m8lite/


    SVN:
    svn checkout http://mbmail-m8lite.googlecode.com/svn/trunk/ mbmail-m8lite-read-only
    Windows下使用者建议安装http://tortoisesvn.net/的SVN工具,直接CheckOut代码的SVN地址即可得到最新的代码:


    不方便使用SVN的可至Web页面的Download目录下载VSS2005工程打包,该目录下也有打包的SQLite3 for M8及试验用的sqlite数据库文件及其Windows下数据管理工具;

    4/6/2009

    Meizu M8 SDK 开发之【准备】by【MBStudio】

    开发环境:
      软件 Vistual Studio 2005 SP1以上 + M8SDK0.9.3
    (居然不支持Visual Studio Express版本,没办法,Express不支持嵌入式开发,老比尔靠这个赚企业级用户的米呢,所以别骂Meizu,使用了WinCE的方案,从硬件到软件到开发平台全受限了哈,如果是基于Linux的,肯定能自己定制免费的开发环境,但可能就不是Meizu的软件工程师能应付的了,现在的M8SDK是基于WinCE SDK的厂家定制模板,如果是基于Linux,就更难发布SDK更难移植软件更没开发人员参与更不适合国情了哈——省去N多字~~~)
      硬件 最好是“主流”配置机型,VSS占资源的特点摆那呢,分辨率要至少1280x800的,毕竟M8是720x480的分辨率,再加上模拟器皮肤,占用巨大的屏幕空间,而且占用资源暴大,下面有解决方法;

    知识要求:
      C、C++,最好开发过VC6 MFC或WIN32API应用或其它嵌入式平台——反正不是拖控件写程序的RDE环境^_^,也就是说,MZFC提供的一个类似MFC的开发库,没法让你快速拖控件来快速开发,界面的所有布局显示你都得自己算坐标,所有的控件事件你都得自己重载MZFC基类虚函数去接管处理——至于WINCE的.net库,虽然可用,而且M8的空闲内存也达到100多M之“巨”,但由于无法应用M8的原生界面,除非是写全屏程序,如游戏或全部用图片替代标准UI的程序,否则建议直接用MZFC的UI库,保证效率、稳定及界面的统一性;
      至于另外一点,就是WIN 32的基本API和常用数据结构要了解,比如字符串特别是Unicode字符串的处理(CE不同与WINDOWS,所有字符都是Unicode化了),文件,Socket,XML之类的,COM会调用Meizu提供的COM接口就可以了,不用深究(个人不喜欢Windows的COM实现),MZFC提供的UI库的使用类似MFC并且更简单,而高级接口都是基于COM调用的,知道COM接口的查询、执行和返回值处理流程就差不多了(已经有位M8开发者放出了系列教程里,描述了COM的简单使用方法,说的也比较明白了值得参考);

    开始Hello M8程序:
      安装完成M8SDK后可以看到有一个Samples目录,里面有主要的示例,第一个就是类似HelloM8的程序,直接打开工程文件即可,如能成功编译,则表示环境已经搭建成功,否则就要检查开发环境的安装配置了,正常情况下不会有异常,直接可用;
      浏览代码,可以看到,主要代码是继承MZFC的程序APP基类(负责初始化和销毁应用和窗体的全局管理)和窗体WND基类(负责窗体的显示和事件接收处理),重载窗体的事件处理虚函数,完成控件操作事件的实际处理工作和其它控件窗体的创建、管理和销毁即完成了,相比当年的VC6 MFC开发,MZFC提供的界面UI控件的使用和消息处理还是比较简单的了,关键代码摘要:

    class CSample1MainWnd: public CMzWndEx

        m_btn.SetButtonType(MZC_BUTTON_GREEN);
        m_btn.SetPos(100,250,280,100);
        m_btn.SetID(MZ_IDC_TESTBTN1);
        m_btn.SetText(L"Hello MZFC!");
        m_btn.SetTextColor(RGB(255,255,255));
        AddUiWin(&m_btn);

      virtual void OnMzCommand(WPARAM wParam, LPARAM lParam)
      {
        UINT_PTR id = LOWORD(wParam);
        switch(id)
        {
        case MZ_IDC_TESTBTN1:
          {
            if(1 == MzMessageBoxEx(m_hWnd, L"You have pressed Exit button, Really want exit?", L"Exit", MB_YESNO, false))
              PostQuitMessage(0);
          }
          break;
        }
      }

    class CSample1App: public CMzApp
    {
    public:
      CSample1MainWnd m_MainWnd;

        RECT rcWork = MzGetWorkArea();
        m_MainWnd.Create(rcWork.left,rcWork.top,RECT_WIDTH(rcWork),RECT_HEIGHT(rcWork), 0, 0, 0);
        m_MainWnd.Show();

    运行和调试:
      直接F5编译执行示例工程1,会打开模拟器来执行,如果你能全屏显示模拟器并感觉非常快速,恭喜你,你的电脑很“先进”,呵呵,一般情况下,我们需要进模拟器的配置中,启用视频模式而不是皮肤模式,这样可能能全屏显示全部M8模拟器的操作界面了(但按键没了,不过大多数时候都尽量是触摸控制的,按键倒也不常用除非是一引起系统级的工具软件哈),不然,你可以还要旋转一下界面,才能正常显示,不过接下来你要歪着头调试了^_^~~
      如果你用的是上网本或古老的小分辨率的显示屏,或者模拟器的速度让你抓狂,你最好还是直接用M8真机来调试吧,还是那句,别骂Meizu,这个SDK和模拟器是基于WinCE解决方案的,不是Meizu能控制的:)
      要启用VSS与M8真机的联机调试,需要M8已经与本机建立同步关系(来宾方式不行,一定要是同步成功连接),M8的项目工程的调试目标设备有两种,一个是M8SDK Emulator,一个是M8SDK ARMV4I Device,其中后一个已默认配置好使用ActiveSync连接进行真机进行调试,只需要注意选中这个目标并点击后面的连接到设备按钮即可,提示成功连接后,可以在M8上打开程序管理器看到edm.exe守护进程,这就是WinCE的远程调试连接器,不要关了它,然后选择编译为Release或Debug即可运行调试了(如果连接失败,还是会转用模拟器调试运行)——这里特意试了下在Debug断点模式时打电话进来,还好,没有犯笨错误,Debug不会锁死手机,呵呵,但尽量还是建议在飞行模式或电话不繁忙时调试吧,以免误事;
      实际测试下来,无论是模拟器还是真机,速度都很好(模拟器只是占用内存多启动慢,进入调试时还可以),单步跟踪也流畅,这倒算是WinCE嵌入式平台开发的一惯优势,比嵌入式Linux没有一个统一的远程调试方案要好很多,这种真机调试情况下,普通上网本倒是应该也可以正常开发调试了,不过屏幕还分辨率还是个问题哈,小心保护眼睛~~
      注意:虽然是调试,但在M8上按M键还是会直接终止掉程序的,所以调试时最好解锁设备并不要随便按M键,特别是Debug模式时,以免机子异常哈~~

    学习进阶:
      首先当然是要通读官方的文档(大概了解一下,具体的使用时再详细看),其中:
      Meizu M8 MZFC Documentation (CHS).chm是MZFC描述,主要是界面控件元素的定义和使用方法,包括简单示例的代码,为了保证所有应用的界面一致性,建议开发者尽量使用该库提供的界面元素;
      Meizu M8 COM Documentation (CHS).chm则是COM接口描述,主要是提供第三方应用程序使用现有的Meizu内置功能的接口,比如文件浏览器照片读取显示等,简化开发者工作,当然,你如果认为官方的功能不好用,比如图片读取要支持更复杂的格式文件浏览选取界面要更酷些,你可以自行开发你自己的原生库,跳过官方的COM库哈;
      最后一个Meizu M8 PlatformAPI Documentation (CHS).chm则是平台API,简单的说就是官方封装的主要与系统软硬件资源直接交互的接口,比如马达,重力感应器等,当然,如果你比较牛也可以直接汇编控制硬件哈~~~

      其次就是动手把官方示例都调试一遍并按MZFC文档的描述多试验几个示例里没用到的控件,熟练了即可,以后可以随用随查;
      期间也可以参考M8现有优秀程序的开源代码,这里只公布几个采用SVN管理源码的(具体SVN怎么用Baidu,Google一下吧),分别是desktopM:http://svn.w18.net/svn/desktopm【需要到该源码管理平台注册账号才能检出源码】和飞鸽:http://m8ipmsg.googlecode.com/svn/trunk【Google的源码管理平台,可以匿名检出代码】,这两个应用基本覆盖了常用的界面,文件,网络,注册表等开发知识,非常好的入门参考材料,再次感谢原作者^_^
      
      然后,就是收集分析软件需求,开始你的第一个M8软件开发吧,祝M8开发之旅愉快^_^

    初步列定业余开发计划:
      GoogleReader,GoogleCalendar,GoogleContact,Last.FM Srobber同步程序,Picasa、LiveSpace照片,日志发布等——排名不分先后,择机开工,敬请期待,oyeah~~~

    3/7/2009

    iTunes 8(iPod)三步平移曲库至Creative Centrale(Zen X-Fi)或WMP11(wince、wm核心设备)

      在歌曲较少的时候,文件夹无疑是最简单便捷的歌曲管理方式,但一旦歌曲数量超过一千时,你就必须要找一个曲库管理软件了,作为最流行的播放器iPod,其配套的iTunes软件也无疑是目前功能最强大界面最人性化的了,特别是支持PC端和播放终端的歌曲即时动态的同步,根据各种复杂的歌曲状态数据进行智能播放列表的创建,可以让你快速找到你想要找的歌曲,基本上是无人出其右了,虽然其在Windows下的性能不太好,占用太多系统资源,但能轻松管理大量歌曲,自动同步你的iPod,这点代价也还是能接受的——至少现在的主流电脑都应该能跑的动了吧;

      说了iTunes的好处,它的坏处就是,长时间在iTunes界面下操作,你也许早忘了文件夹里存的歌曲主文件到底怎么样了,因为全交给iTunes打理了,直到有一天,你买了台新的非iPod的播放器,或想拷点歌到你的手机里,这些播放终端它们的曲库管理方式主要是基于文件夹的(例如众多国产mp3),或是直接由WMP进行同步管理,稍注重品牌形象的,则会提供与它们产品配套的曲库管理软件,例如创新公司的Zen系列,则可以直接文件夹拷贝,也可以用WMP同步,同时它也配套了同步软件,在最新的Zen X-Fi和小格格播放器推出后,创新也全新推出了Creative Centrale曲库管理软件,试用下来,基本上这是个基于WMP风格的曲库管理软件,同时也比WMP更兼容iTunes的曲库数据的转移,虽然由于是新软件稳定性还不太好,但已是最适合创新Zen产品的曲库管理软件了,经过了大量试验工作后,目前暂时找到一种最快速和兼容效果最好的曲库平移方法,在此分享,欢迎转载传播,但请标明原作者,Meineson,同时,操作前请备份好你的曲库数据包括歌曲文件,因为这是很多人宝贵的数据,为了安全,养成多花些时间来备份的习惯还是必要的:)

    注:虽然iTunes推荐的是AAC格式,而AAC也的确音质文件比更好些,但为了曲库管理软件和播放器终端的兼容性,还是推荐将iTunes内歌曲都转换为mp3格式——个人就花了6个多小时把曲库里的ALAC转成了320k mp3,痛苦的过程:)

      虽然Creative Centrale提供了ID3标记乱码的处理工具,但似乎也不是万能的,最好的方法就是自己买CD直接由iTunes导入,并自己从网上下载封面照片粘贴上,这种情况下的mp3是能很好地直接被Creative Centrale和WMP支持的,直接能显示正确的ID3标记包括封面图片,但鉴于国内许多人的电脑上的mp3歌曲来源复杂,而分享者压制时使用的ID3标签版本和格式也各不相同,这就导致了如果把iTunes歌曲直接拖到上述两个软件时,要么显示乱码,要么就是显示成未知艺术家未知专辑,把你好好的iTunes曲库显示成大杂烩,相信很多人面对它们会崩溃,如果手工去改,没几天几夜搞不定,呵呵,还好,现在有人经过大量试验之后,找到了最简单效果最好的方法了(对于本人来说,仅供参考^_^),仅仅三步:

    Step1 iTunes内部转换ID3版本解决乱码

      Step 1:播放列表,选中你要转移的全部曲目,如果是全部歌曲,只需要直接在音乐资料库里选中全部就可以了,点右键选“转换ID3,本项工作只是去强制写入ID3标记到指定的版本,推荐v2.3版本,因为iTunes在添加曲目时,它能读取所有可能的位置去获取曲目信息,如ID3v1,v2,Ape等,而且它也能自动识别不同的编码,但其它的软件包括WMP可不这么智能,在这里重新保存一下,可以把全部曲目的ID3用同一个编码写到同一个位置的ID3标记位置中,为下一步工作作准备;

    Step2 使用Mp3Tag重新保存ID3V1,V2兼容WMP

      Step 2:使用Mp3Tag这个免费软件(http://www.mp3tag.de/en/),基本上不需作任何配置就可以使用了,但为了达到更好的效果,可以简单设置一个参数,即“标签->Mpeg->读取“参数,改成只读取ID3v2,其它默认,即,上面iTunes已经重写了所有iTunes里能看到的歌曲信息到ID3v2的位置了,只读取这个位置能防止冲突,而Mp3Tag写入参数设置为ID3v1,ID3v2则是把mp3文件中v1,v2版本位置都写上相同的数据,兼容各种读取不同位置的ID3信息的曲库管理软件和终端,默认是存为UTF-16即unicode编码,这样也能保证曲库移到Mac OS或Linux时也能不会变乱码,慢慢等待吧,你离成功的喜悦最后一步了——这里包括封面,但由于封面数据各种软件和终端处理方式相差更大,所以效果不如ID3标识兼容性好,但也能保证绝大多数你在iTunes中自行添加的封面能在Creative Centrale里正常显示了,iTunes自动连接网络获取的封面可能由于格式限制,不能移到其它软件中显示,而WMP效果则差些,不能显示封面更多些,但曲目基本信息都能得到保留,只需微调;

    Step3 将文件拖入WMP、Centrale内,包括Explorer也能正常显示媒体信息了

      现在尝试进入你的曲目所在的目录吧,你会发现在资源管理器里,原先只能显示图标的文件现在信息丰富了,能直接在资源管理器里显示歌曲的详细信息了,这就是mp3tag的功劳了,它成功填充了能让Windows资源管理器直接读取的媒体信息,该信息同时也能在搜索时被使用;

    原始iTunes
      再次打开你的iTunes,同时也打开Creative Central或WMP,再次在iTunes里选中要转移的曲目,拖动到这两个软件的曲库管理界面,现在它们就开始导入曲目了,同时,你也能看到带封面的歌曲专辑列表出现在曲库里了,休息一下,等一下回来享受你的新曲库吧:)

    Creative Centrale:成果 Creative Centrale

    WMP11:
    成果 WMP11 

    小结:好吧,虽然上述工作已经节省了不少事情了,但由于iPod与iTunes的整合实在太紧密了,许多曲库管理软件与播放器协同工作的功能在这里丢失了,例如在Centrale和WMP曲库中,不能平移来自iTunes的评级信息,不能显示播放计数,播放时间等信息,这些曲库管理软件也不能支持智能创建例如七天前放过的歌曲并自动根据当前日期动态更新的播放列表等等,so,想要更大的对曲库的掌控自由度,必须用iTunes+iPod,不过,还好Zen X-Fi是16g的,基本够把所有歌曲同步到播放器了,Zen的定位还是静静地好好听歌没花哨功能哈,不过还是希望创新公司能把 Creative Centrale软件改进的更好用些:)

    2/2/2009

    简评目前流行的手持及电视“高清”播放器【原】

      得益于网络带宽提升,音视频硬解码芯片和P2P技术的发展,以及国内大量可方便获取的“免费”影音资源的丰富的存在,国内大量厂家在国产芯片的支持下,以类似MTK山寨手机解决方案一样的技术和商业模式,低价迅速推出支持RMVB等视频播放功能的手持和家用视频播放器产品,价格也从千元进入百元级,变得和MP3播放器一样白菜价,去去年(07年底)的时候,以4百左右的价和5百左右的价分别入了一个2.8寸屏的RMVB手持视频播放器(只能流畅支持到VGA级别且色块严重)和最高支持色差720p输出(注意,只是输出,不是播放^_^)的电视视频播放器(标清网络视频大部分能流畅支持,但格式上有些挑),虽然说是第一代产品,在使用时的用户体验感较差,只能说是勉强能用,但确实是开创了一个新的视频播放器时代,光盘播放器在国内的确是越来越卖不动了,D版商的好日子也快到头了^_^;

      短短一年的发展,随着技术发展,高清平板电视的降价日益普及——虽然这里面有许多水份,但1080P,HDMI这些名词还是越来越为大家了解了,而上述的手持和家用视频播放器以及传统的HTPC甚至电脑功能也有了交集:
      许多手持播放器渐渐拓展产品功能,支持电视“高清”播放和输出,换大液晶,替代数码相框等,家用视频播放器则进一步在硬件性能解码能力上与手持设备拉开距离,同时加入更高一级视频和音频的硬解码,而加入网络甚至无限网络功能的产品也有许多,甚至是内置操作系统支持浏览器和BT,FTP下载等功能;

      由此带来的问题就是,各种厂家看到了暴利,大量山寨产品进入市场,而一些正规公司也只能大打夸大宣传打擦边球,非发烧级人员基本搞不清这些产品为什么从几百到几千的价位不等,但都在宣传自己通吃各种格式,大玩高清概念,无奈在国内,想买哪种产品就得把自己变成那方面的专家才不会吃亏,只能花点时间稍微研究下这方面的技术文档,稍有了解,在此分享,对于普通用户作知识普及足已,如有错误,敬请及时指出。

      首先从音视频格式和清晰度上来大概看下,一般网络下载的稍正式的清晰版本,例如DVDrip之类的,大都是480P的,大都以RMVB和AVI,MKV,WMV等格式存在,文件大小为一部影片5百M到1G左右,目前市场上支持RMVB播放的手持mp3播放器大多能流畅播放,这些产品根据屏幕大小不等差价较多,大量的山寨品牌都是这类产品,以最普通的3寸屏左右的产品来看,一般在两三百左右的是第一代产品,五百左右的是第二代产品,区分的方法很简单,如果宣传时说支持720P或“高清”的,是第二代,一般正规厂家都开始转向第二代产品了,这里的720P也就是许多平板电视及其它厂家宣传的高清概念了,看高清电影的用户一般也是从这种分辩率的电影开始下载的,大都以AVI,MKV,WMV,MOV等格式存在了,文件大小为一部电影在2-4G左右,也就是下载宣传的HR-HDTV,HDTVRip,BDrip等,其实这里有些没有达到720p,比如HR-HDTV,这里480p,720p其实就是影片在电脑上播放时的原始分辨率,720p就是1280x720,而1080p则是1920x1080,HR-HDTV顾名思义,是1080p的一半,960x528,知道了这些概念,就明白为什么普通电脑用户只下载720p,或HR-HDTV了,因为显示器特别是笔记本主流宽屏分辩率就是1280x800左右,下1080p也是浪费,说到这,也知道为什么有些平板电视的宣传里有水份了,液晶有一个最佳分辩率,就是原始的物理分辩率,许多32寸液晶电视是1366×768的物理分辨率,但宣传时会写的很小或不写,只说支持1920x1080,也就是仅是“支持”1080,而并不是最佳支持效果,这种分辨率,无论是720p还是1080p都不能做到点对点物理显示,显示效果当然会打折扣,试试把电脑液晶显示器调到一个非标准分辨率(无论是调高还是低)就知道效果了,但大多数普通用户只是在购机时在卖场里大概对比看一下,所以可能不太容易看出明显差别;
      知道了上面的这些东西,就知道目前手持播放器,就算说支持720P,但也只是仅限RMVB,也不保证是不是经特殊解码方式压缩了画面效果,因为显示屏小了,看不出来,而对其它格式的支持,可能会更差些,如果支持接电视机的,输出的效果可能更差了(而且一般只有色差输出,达不到720p的最好效果),这种情况下还是需要专用的家用硬盘播放器,不过这种手持播放器,对于上面说的480p的支持应该已经比较完美了,或者屏幕再大些时,兼用作数码相框还是不错的:)

      说到重头家用媒体播放器了(一般是低端和高端可内置硬盘,中端的都是接USB外置硬盘),其实主要是说高清的——真正的高清,因为其它有些产品虽然宣传高清,但不支持1080p甚至720p支持都不完美的,只能算是虚假和夸大宣传,这些产品一般在5百左右甚至更低,品牌也很多很杂,但播放能力和输出的质量比手持设备还是要好很多的,适合有大量480p视频收集要求不太高的人使用;
      要达到真正高清,至少要完美解码1080p视频,这里暂不说音频,而格式上一般主流的AVI(包括MPEG,H264等编码),MKV,WMV等高清视频格式都要支持,这些文件一般一部影片要几十G,而且只会比这更大,大多有独立字幕文件和音频封装(未深究,较复杂,可参考专业高清文件论坛),单独的DTS音频就几个G文件大小,最普及一档次的这类叫入门级高清播放器,价格在千元左右,带普通色差之类模拟输出和HDMI1.3数字信号接口(有些上述标清播放器也有HDMI,但是早期版本,不支持音频输出,某些平板电视也有类似欺骗问题)音视频两声道输出和光纤数字输出,只支持杜比(一般下载描述为音频AC3或DD5.1之类)输出,如果是DTS音频,需要功放支持硬件解码,这些播放器只支持原始未解码数字信号输出,要由功放音箱去硬件二次解码才能出声,而这类音箱要三四千大洋,比播放器贵多了哈,这点要注意的,而下载720P的视频,还能找到带AC3的音频的,但1080P的几乎全是DTS音频的了,不明白这些,可能买一个高清播放器只能看无声的1080P电影了哈;
      要达到1080P完美播放,至少需要3千左右价位的高清播放器,上面的播放器都是支持USB2.0或网络共享播放的,这里这类播放器一般还有支持内置硬盘的sata接口,毕竟速度比USB更快好多倍,支持字幕的高级定制(如字体,大小,色彩,多字幕等高级功能),支持DTS硬件的解码后,音频直接输出到5.1音箱(不带解码的,便宜好多),或直接由HDMI或普通立体声降级输出,一般还都有网络共享,直接BT下载甚至架设一个FTP服务器,浏览网页和在线视频等功能,反正是电脑能有的音视频功能,能加的都给它加上,高价嘛,呵呵,纯粹的视频上就没有太大差别了,最多还有就是人机界面的友好不同,大的公司的做的更好一些。

      小结一下,如果是经常看流行的RMVB电影,喜欢没事和家人一起或外出时随时接上普通电视看电影的话,一个主流的第二代RMVB手持播放器+几百块的能接移动硬盘(250g足够了)的家用播放器能满足你的需求,投资不超过1千块就齐了;
      如果要小享受下,买个支持HDMI的32寸左右的平板,接个入门的支持720P的高清播放器(注意下载带AC3字样的高清电影),接个好点的电脑音箱,投资不超过5千块,也能小享受下了;
      要达到发烧级的,换个更好更大的平板,接个DTS解码的好音箱,换个大的硬盘(至小要上Tb了哈)接上光纤宽带(或直接去淘宝买大硬盘,让卖家给你拷满几个TB的电影哈)就可以,或直接上新的更高级的高清播放器+平板+音响系统+视听间打造……没底哈,这就是发烧,烧钱是没底的,切记!切记!

    1/27/2009

    WM(windows Mobile)手机GPRS/EDGE共享给电脑上网(USB线缆或蓝牙无线)

      早年条件艰苦,有过狂买电话卡在学校宿舍里拔号上网发求职简历的经历,所以对当年的20块无限流量的移动GPRS套餐是印象深刻,等于是天下掉下来的大大的好处,但受技术发展限制,当年的支持Modem拔号的手机,光和电脑连接的数据线就非常难买,连接后拔号方式也较复杂,再加上不同手机有不同的专用拔号软件,速度也很低,然后好容易连接拔号都成功了,才发现连接上的是移动内部的WAP网络,不能打开普通的WWW网站,SO,想要充分利用上这20块钱无限流量的网络资源,却又受到这一系列条件限制,等于是把你捆结实了放个美女在你面前,急死你——8过好在受利益驱使下的无穷的群众智慧,继把宿舍里的数字计费的热水供应系统给搞定后,最后也成功使用上了这个无限的流量资源,节省下了几天就要花掉一张电话卡的费用(虽然由于学校在新区,手机信号不好,速度还不如电话线接小猫上网,但当时很知足了),不过自毕业后就再没用手机当猫拔号上网过了~~

      感叹下技术的发展速度,继换了几台电脑和手机后,手机上基本上访问网站和使用QQ,MSN等即时通讯软件都无障碍了,甚至是直接语音和视频,GPRS也升级到EDGE,速度那是相当的让人满意了,闲来无事,春节回家无宽带网络,偏偏又是带着小本子没Modem接口,没法电脑拔号上网,插着手机充电的无聊当口,重燃激情想回味下当年的经历,不同的是,现在每个月只有50M流量可免费使用了,好处是CMNET可以直接连接WWW网络不用折腾了,稍微一试,居然发现只是按了一下按钮,电脑就立即连接上Internet网络,登上开心网了-_-!``,好“强大”的技术,速度也是刷刷的,打开网页一点也不卡,好在现在网站和软件都知道节省流量加快速度,用的Chrome浏览器也知道充分利用缓存数据,上了一个多小时网络,看了下开心网,百度新闻,Google阅读器的大量RSS新闻,登了下QQ和MSN,上移动网站查了下话费,也只花掉了5M左右流量(小心门户网站那巨大的广告图片哈,要时刻记住你是在用手机上网,是按流量记费的哈),在此顺道记录下,给有需要的兄弟作参考,以备紧急时刻救命应急,或在车里,草坪上,大山深处有手机信号的地方随时Online下,此处声明下,要知道没有套餐优惠的情况下,手机上网流量是吓死人的,某些网站的数据量是吓死人的,现在的EDGE的速度下花完几M流量的速度也是吓死人的,请随时注意检查当前的流量使用情况

      必备工具,WM手机一部(此处以6.1版本为例,其它版本请自己头脑发散),带USB接口的电脑一台,USB数据线一条,如需使用无线上网(戴个大耳机,端台黑本子,手机放包里,再凭个墨镜黑衣装高科技——注意蓝牙用电那是快快快地,注意装的时间~~~),需手机和电脑均具备蓝牙功能,电脑需安装ActiveSync软件,以手机能正常连接电脑同步为准;

      正常情况下,打开网上邻居的属性,是能看到一个本地连接,此时是手机能使用电脑的网络连接进行上网,这里我给这个连接起名是“手机连接”;

      未连接前

      要想让电脑使用手机的GPRS或EDGE连接进行上网,则需要去你手机上找系统内置的“Internet共享工具”,当然,这里又有一个前提是,你的手机是已经能正常上网了,并且是用的CMNET连接,而且你的套餐包含的是CMNET流量,如果是CMWAP的包月,赶紧趁手机欠费前跑路吧,表往下看了:)

    internet共享 准备连接

      找到这个工具,很简洁,“状态”表示是否已连接网络,现在是断开的,右上角的图标也没有G或E图标,“PC连接”默认是USB表示用USB线与电脑连接,你可以选择蓝牙,无特别之处,不另述了,“网络连接”则是你在系统的配置里连接里设置的GPRS连接名,即CMNET连接配置接入点,你在手机的IE浏览器里的选项里应该已经配置过这类参数了,默认的一般就好,然后,轻轻按一下连接,得,你会听到电脑USB连接断开的声音(假设你已经与电脑同步连接中),然后就会发现新硬件,过一会听到USB再次连接的声音,OK,在网络邻居的属性里你会发现一个新的本地连接,我这里给它起个新名字,并设置它的参数为连接时显示在右下角,就这么简单,你的电脑应该现在就可以上网了:

    已连接 网络已连接

    OK,就这么简单,当然,你的手机上最好装个流量监控软件吧,以备随时查看你上网用了多少流量,当然,如果只是看看百度这类文本占大量版面的网站或使用QQ,MSN文字交流的话,速度和流量都是能让你接受的,千万表想看美女照片和下小电影哈,切记~~

    流量监控

    11/19/2008

    同步你的QQ,MSN配置、聊天记录

    你有多台电脑,老是在查某个资料时,发现它存在另一台电脑的qq或msn聊天记录里,或者,你有强迫症,老喜欢把几百年前的聊天记录都保存起来,但qq要收费,msn没这个功能,手工备份文件太累,那你要看看本文,而且你也可以发散下思维,可以应用到更多的场景实现其它更多的功能,到时别忘了分享一下:)

    首先,热烈欢迎我们的主角,DROPBOX——

    imageimage

    很简单的一个软件,如果你是搞软件开发的,你会对它非常熟悉,因为它象tortoiseSVN的精简版,安装后任务栏右下角有一个图标,设置一个目录给它就oK了,然后连网后它就自动把这个目录内的文件全部同步到网络服务器上,共有2g免费空间,速度嘛由于在国外,SO,如果你是想往上面放小电影还是算了,除非你是用的国际带宽很牛的光纤……

    image

    好吧,正如你看到的,它就是一个网络磁盘的客户端,但它比其它的一般般的要强大的多,首先,它全平台,windows,mac OSx,linux都有对应的全功能的客户端,它的服务器端提供一个web2.0的界面,虽然网速可能比较慢,但这个界面操作你会感觉不到,类似SVN,它也提供一个简单的版本控制——即,放在上面的目录里的文件任何时候更改了,重新上传覆盖之后(它只上传修改的那部分,所以每次可能只有几k,速度非常快,算是增量“备份”),你还是可以在界面的历史里找到这个文件,哪怕是删除了还是能随时恢复,比如,你修改了一张图片,但把原图删了,你可以在这里找到最开始的那张,好吧,这是另一个用处,可以用作简单的多人协同工作的文件简单版本控制使用:)

    进入正文,其实就一句话:插,按,打——喔,错了,是打开设置,选择个人文件夹(qq)目录或消息对话保存目录(msn)到dropbox管理的那个目录下面的(qqdata,msndata之类的文件夹,当然,名字你自己随便起),按确认就oK了(如果要保留之前的会话,还需要退出软件,把原来目录内的文件都拷到新目录重启软件就可以了);
    image image

    PS:记住,由于windows下文件有读写锁定,dropbox无法在qq,msn正在运行时操作这些消息或配置文件,记住在关机或休眠前退出msn,qq,等右下角的dropbox的图标由风火轮变成绿色的对勾就表示已经同步成功了,在另一台做了同样设置的电脑上,打开qq,msn就能使用相同的配置、看到相同的消息历史了(msn的个人设置保存在msn服务器端以及c盘的个人目录里,如果需要,你可以把我的文档通过修改注册表设置到dropbox的目录下,这样你的文档和大部分软件的配置都能共享了,不过可能会混乱,呵呵,有时间的人可以自己试验,最好是一个一个软件试着修改配置文件保存路径更保险),over!

    dropbox需要注册账号,地址:https://www.getdropbox.com/register

    8/1/2008

    Free Sync,信息时代的基础

      电脑、网络发展普及到现阶段,基本上处于需要变革的临界点了,所谓信息时代,也就是这么个意思,当然,目前国内大众主流用户的电脑网络应用思维还停留在上世纪——网页、网游、电影音乐、聊天……这与国内IT企业不敢做出头鸟还是非常非常非常有关系的,而国外作为技术思想创新高地的高校,在国内却也变质为考研机器或者比赛专业户,不敢指望了:)

      想出头,是要有资本的,要创建标准,不过目前国内出的几个强制标准无非是被少数特权企业握在手里向国家索要项目基金和政策保护伞的筹码,离全球化标准甚至是国内的工业级标准还有好长长长长长长长长长……的路要走,等着吃国家政策性救济粮和扶植性采购的标准,一点经不起市场的选择,普通用户只会跟风选择好用的产品,动不动拿民族主义大帽子扣在市场中的产品上,有点过份了~~

      信息时代最值钱的是信息,说白点就是数据,电脑里的、手机里的、PDA里的……而不是硬件和软件,所以现在微软面对Google有困惑Vista推不起来,性能那么差的EeePC卖的那么火,Linux和Firefox接受度越来越高……
      但目前就是有好么些个人,只看到一点皮毛就开始以为自己开窍了,大呼云计算云服务Web 2.0,于是从博客开始,国内一窝蜂的上马博客,播客,视频共享,仿Digg,仿Twitter,仿Facebook,Myspace,仿Ajax做Web2.0,还有就是铺天盖地的软文,今天那个概念明天那个盈利模式……
      结果死字怎么写不知道,这些目前国内推广的热火朝天的Web2.0应用,在国外基本都找的到模板,而且是比较成功的——当然也有一些原创性的,但受观注度和资金问题就比较大头了:)
      当然,目前也有许多在BS这些Web2.0业务的,一般都是从技术角度和发展钱景在讨论,从技术角度来看,这些各种新名词的框架和协议标准,都是建立在N久前的Javascript、Html和XML基础上的再次封装,的确是没什么高深之处,而这些应用的基础就是数据与业务与平台的分离,数据完全独立共享,所以,按之前的观念,用一个网站吸引流量和访问量来赚钱的商业模式被打破了,所以也没钱景了,于是——
      国人的聪明才智开始发挥作用了,打着Web2.0旗号下的各大应用,数据却是封锁不开放了,以把用户锁定在自己网站上为自己创建流量访问量赚取广告费为前提,得,所以我说目前主流应用还停留在上世纪——虽然这些网站肯定不承受,它们肯定都在宣传我是Web2.0 ^_^

      于是,信息时代的到来又因为商业利益被人为推迟了,因为数据的自由传输共享被限制了,你可以看到国内仿国外的一些在线应用,比如在线图片,文件,博客之类的,这些应用中本该独立于业务、厂家、平台,能自由转移的数据,被人为限制只允许本地使用,不能自由转移——比如网易的网盘相册只能登录后使用,腾讯的博客甚至只支持Windows和IE,更不用说转移博客了,而且还天才地发明了空间增值服务收费了,呵呵,老外笨,当然想不到还能这么玩哈 ^_^

      而同阶段老外不赚钱在烧钱干什么呢?Google,Apple,Microsoft三个大佬在干嘛呢?
      M$一直在宣传Live概念,不过目前在国内推出的业务里还看不出个名堂,特别是一些业务只是界面翻译成中文,使用方式还是老美的,国人绝对不适应哈~~
      Google,一系列的在线业务,在拼命做在线应用,宣传云计算搞Andriod开放手机平台~~
      Apple,iPhone之后玩MobileMe云服务,大推AppStore~~

      综合起来看一下,其实在做的都是一件事情——虽然目前从非技术角度可能还看不出头绪——把数据独立出来,在线化,无缝传输同步:
      Apple的Mobile最直观了,宣传里说的很清楚,让你的邮件,联系人,日程,照片,文档文件实时在你的多台电脑手机间共享同步;
      Live在M$在推出这个概念之前就说过了,操作系统网络化,N年前说的了吧,当时SUN在搞硬件平台无关性时M$就说了,搞什么软件跨平台,直接软件数据全部网络化不就得了,呵呵,不过换了领导人,说法也一直在变也没人记得了,.net大家应该知道吧,当时宣传时就那个意思,不过大家现在只知道Windows在搞垄断,其实M$还是在秘密研发,只不过大家不知道,Vista只不过是个半成品没搞成,当然,WM虽然速度慢的让人发疯,不过为了与Windows协同,M$也只能做到那样了~~
      Google现在的Web应用够多了吧,为虾米搞手机开放平台?和Apple一样的想法而已,要做到数据的无缝共享同步~~
      这么说完,可以看出来了吧,三家都准备要有自己的PC(终端)、服务器(远端)、手机(移动终端)操作系统和软件平台(Google一直和开源关系不错,Linux也是它一手扶持着的,可以算是它家的,呵呵),再加上三家一直在推广的各种标准化协议,也就是说,它们任一家如果做大做成,那就是覆盖了五年、十年后你家里车里的电脑、手机、家电等等所有数字终端甚至是你身体上植入的数字芯片的一切,当然,只限于标准,我从来不怀疑国人在国际标准下研发的产品的质量,但人,国人将继传统工业标准、旧的信息技术标准之后,再次丢掉了新的信息技术标准。

      在PC x86架构,网络互连标准等信息技术的基础层面丢掉了话语权,如果在应用层面也丢掉了,那在信息时代,国人只能是照搬别人的标准,跟在别人后面跑了~~
      搞技术的国人同行,如果还抱着我的技术你别用,你用我就不用的观念,成天在那自创“标准”——其实就是把真正的国际标准改一点并且不让别人知道让别人和你互通不了,就开始宣传自主创新了,那永远都只是IT小作坊,成不了气候——当然,这与国内的法律不健全,对自主创新的技术保护不力打击真正的创新积极性也是有着巨大的关系的,但是如果脑子里连一点意识都没有,那就悲哀了~~

    要搞清楚几点:

    • 博客不是个人主页,数据要可移动——随时随地可书写读取推荐
    • 播客不是盗版电影电视集散地,要与各种终端互动——包括制作和使用
    • 网络存储不是就存个文件就完整了——要方便地在多种终端间同步
    • 在线应用不是把桌面应用搬到Web上用Ajax做的好看就完事了——里面的数据要兼容在线和终端  

    原则上就是,当PC机能做到大型机能做的工作时,电脑时代就到来了,当随时随地在不同的PC不同的数字终端上能做在一直蹲在PC上做的事情的时候,信息时候也就真正到来了——
    当然,要方便易用才行,B/S应用早就出来了,但只有Ajax应用人家才叫它Web2.0,Web应用程序,典型的我正在用的例子:

      因为Hotmail和Live Messenger能做到实时Push Mail和所有WM终端上能用而且功能不缺失,我才会去选择Windows Mobile手机和Windows Live服务而不是Sybian手机和网易邮箱或Gmail——虽然WM手机慢的我想砸它,Hotmail慢有时还不能访问;
      因为Picasa能做到客户端与Web应用无缝照片同步,Web浏览与桌面软件浏览、手机浏览操作习惯一致,我才会用它而不是用网易相册或其它的一大堆在线相册网站——虽然它们容量更多更快速更漂亮;
      因为Google日历Live日历能做到任何电脑或手机都能随时维护数据且操作界面比桌面软件还要方便,并且能使用LiveMessenger或邮件进行提示,这里又要提到前面说的Hotmail的PushMail实时邮件接收,所以也能做到了日历事件的实时提醒,这就是我为什么不用Outlook的日历或其它的一大堆桌面日历软件的原因——虽然它们可能还更漂亮;
      因为Google Reader能在Iphone,WM手机上IE上Firefox上不同的电脑上都保持漂亮的RSS阅读界面和一样的数据内容,所以我不用其它的RSS软件或模仿跟风的网易QQ和Yahoo的订阅服务——虽然现在从邮件客户端到各种浏览器以及插件包括一大堆独立的软件,都提供RSS订阅功能;
      ……

      随着技术的进步,你的电脑会越来越多,拥有“电脑”功能的终端也会越来越多,传统的Windows操作系统加本地磁盘使用软件的方式会慢慢被各种灵活的终端上灵活的“软件”替代,所以强劲的电脑配置和Windows操作系统不再是必须的了,定制的Linux包括其它嵌入式操作系统甚至直接就是一个嵌入式软件,共享你的全部数据,在合适的终端上处理合适的数据但随处都可以查看使用是趋势——
      理想的情况会是,你在路上用手机或更先进的终端生成文字、图片、声音的数据,回家后用PC上的软件进行处理,你可以在电视上,路上,朋友家中随时查看分享它们,在游戏机上没玩结束的游戏,在路上能进行简单的任务查看和简单游戏数据的维护和分享,协助正在游戏的朋友,使用身边的便携终端临时处理手机上收到的通知里描述的工作任务,取出几天前在公司时未处理完的一个文件进行处理更新,并找到家里几天前打的一个电话号码进行联系,回家后能对录音进行回顾处理……
      ^_^ 其实上面这些以目前的技术手段完全可以实现了,但需要众多厂家的技术的协同工作以及基础设施的进一步进步,所以,需要象当年的M$一样的领袖:)

    7/8/2008

    目前超值的EeePC 2G surf及Netbook简单分析

      注:仅针对特定用户有参考价值,购物时无主见者、购买后由于应用定位不准或期望过高乱拍砖者、以及某些职业枪手请绕道。

      截止到发文时间,Eee PC 2g surf目前行货价格两千左右(某宝上的华硕旗舰店是2099,其它比它高点低点的店铺都有,不过实体卖场里应该都清货见不着了,只能网购,比4G surf的两千五,带头的两千七八左右的价位还是低了一点的哈,虽然不多,但因为偶本来是考虑入Atom 8.9屏的,但各厂家一直不大量出货,出货的价位一直稳定在四千以上甚至近五千且短期内不会落,SO先入个便宜的,越便宜越好的用着先,看看用着适不适应,以免浪费哈,而且偶也不想改装,所以它适合我,但不一定适合其它人了哈);

      2G surf的型号是700,不是701(4g,4g surf,702是8g的),且只有surf系列有彩色外壳(偶入了个蓝色的,其实绿色的更PP但基本上被抢光了),内存听说是512M焊在主板上的(未验证),CPU是800M的,并且锁在571M上且EeeCtl不能用,SetFSB也不能用,就是说不能超频(已验证),对于某些想买来改装升级的,基本上可以不用考虑它了哈,除非操起电烙铁:)

      自带的Linux不太好用(开机一二十秒,精简版Win则大概是四五十秒),速度有点慢且占了近乎全部的空间,不太符合Linux轻巧快速的传统,花了一百左右入了个4G宇瞻Class6的SDHC(8g的贵一倍半,偶也不用着这么大,多媒体用ipod~~),考虑有时间换成Ubuntu用,先换上深度的精简系统,网上的一些Ghost完整系统不能直接用(一般这些Ghost文件里的分区信息都是4G适用的,且数据描述超过2G,目标磁盘因为只有2G不让恢复),浪费了不少时间下那个五六百M的文件,后来换用那个Ghost的精简系统安装镜象(两百多M,下载比较方便了哈)恢复到磁盘后(几分钟),自动重启开始在磁盘上进行安装(速度当然就慢了,用SDHC大概三四十分钟),装完关掉休眠和交换文件占用900M左右~~

      有人可能怀疑571Mhz的CPU和512M的内存能不能正常用Windows,几天用下来,常用软件基本上没问题的,这CPU毕竟不是当年的赛扬,现在还用CPU频率高低来比较电脑速度已经不合时宜了(想当年用一台40M内存,1.5g硬盘的586学编程,Win98下,VC6和Apache+Php+mysql还不是跑的满骝的哈,SO,大家要有耐心,没耐心的人,酷睿双核都觉着慢^_^),解压输入法及Eeepc专用的一些基础软件(用了雅黑字体,宋体在小屏下累眼的)和驱动就不多说了(只说那个声音管理软件,可以从启动里把它关掉,占资源不说,默认打开的EQ导致播放音乐破音严重,嘿嘿,自带的音箱用来放网络视频还是不错的,应该大多数人还能接受),主要是装了几类软件:

      浏览器(IE6没动,Maxthon,Firefox3,Opera9.51)
      播放器(暴风3,千千)
      杀毒安全(Avast,360)
      网络通讯(MSN8.5,TM2008,迅雷,迷你快车,Bitcomet,eMule)
      日常工具(Xnview,WPS,UltraEdit,SecurCRT) 

      这种硬件条件下,Maxthon使用正常不过不太好用,Firefox3和Opera9.5要快点且更好用(关掉它们的磁盘缓存,全部由内存处理会更快些,不过其它软件就不要开了以免内存不足,不过至少偶还没出现过内存不足现象^_^,常用软件尽量装在磁盘上,SDHC卡速度始终不行的,只适合存文件,),其中 Firefox的自动记忆网页缩放和Foxmarks同步收藏夹比较爽,Opera的速度和自适应网页大小也不错(就是Google和其它的一些网络应用显示会错乱。。。)

      迅雷如果是由浏览器调用,在下载的时候自动关联并运行会很卡,如果要用的话最好是开在那吧,迷你快车还没用,不过启动速度应该会快的多,毕竟界面小没广告,BT和电驴理论上和CPU和内存没什么关系,用来通宵往大的SD卡里下文件应该还是不错的,毕竟功耗低又安静哈,台机和大本子的风扇绝对晚上吵死人~~

      MSN还行,速度能接受,不过QQ就不行了(用精简版应该可以),卡的很,换成TM,能接受,两个一起开再开浏览器,能接受~~

      Avast免费中文口碑还行,特别是它的网页监控有特色,不象其它的杀毒软件拖慢浏览器速度,用着还行,360大家都知道了,不开Win的更新,用它杀杀流氓和装补丁,至于一些常驻的功能全部关掉,嘿嘿~~

      WPS,占不到100M空间,免费功能全速度快,日常文档编辑查看完全够用(不能自动适应屏幕宽度有点不爽)

      千千听歌,要的就是占用资源少,比较开心的是,用暴风,移动硬盘里的所有视频都能正常看,甚至是从emule上下的HR-HD,HDrip都能正常放(虽然系统会卡其它都不能操作了,但视频还是流畅的),至于VGA级别和其它普及分辨率的RMVB,WMV,AVI就更不用说了,比同样要两千多的MP4要好多了哈(创新Mp4的预算可以省了^_^,创新哭吧~~)

      总结:

      日常网页浏览床头机,外出MSN,QQ(TM)以及文档处理,途中视频音乐图片娱乐、相机数码伴侣,适用。

      至于其它用处,各人看着办,能用鼓掌开心,不能用也不用急,就当是买了个带Wifi的Mp4,再说了,功能比那个要强多了吧;

      另外个人意见,目前8.9的性价比太差,至于10寸的,个人感觉太大了,接近12寸标准机了,重量上虽然从1.0kg以下到 1.2甚至1.4从数字上看变化似乎并不大,但要知道,你的手机多少克重的?下面我不说大家应该明白我的意思了,当然,喜欢带一大包数码东西的玩家不会介意的:)

      Atom或Puma甚至VIA的新处理器,功耗低,8.9寸,重量加电池控制在1.2以下,丰富的SSD磁盘大小对应多种型号供选择,价位在3500以下是合适的。

      PS:和iPhone或iPod Touch对比来看,IP(T)的缺点是不支持主流的在线Flv播放,IE专门网页支持问题无法解决,打开类似Taobao首页之类的大页面会自动退出,视频只支持少量格式,文档只能查看不能编辑,且稍大些的文档就慢,另外,8G的IPT的价位也在2500左右,而它们的优点是,随身网络终端,类似 Google的定制的网络应用程序和普通的新闻资讯网页查看流畅方便,PodCast很不错,音视频播放的用户体验感觉很好(某达拼命出新机型MP3旧机子不更新软件,连个不能真正随机播放的Bug都不修正,放Rmvb跳帧且色块严重画质差,图片浏览卡的很,只能说够用,用户体验真的没有——不是差);
      定位是:IP(T)随身多媒体和网络应用终端,EeePC(Netbook)便携数据处理和网络接入终端;

      从这种意义上来说,带普通大容量硬盘和上了10寸的Netbook,定位就错了,比如,我所有资料都在主PC或移动硬盘上,IP(T)可以用 iTunes来同步音视频外出欣赏,自带的浏览器只支持同步收藏夹而不支持文件和图片的保存就是出于它只是个浏览终端的原因,而Netbook,安装的一些浏览器都能支持收藏夹网络同步,用U盘SD卡或移动硬盘或直接用网络传输一些文档或少量音视频欣赏,如果它自己带了大容量硬盘,空着肯定浪费,但如果大量数据存在里面,让它与主PC或移动硬盘同步又是个麻烦,如今大空间一般是用来存储多媒体,作为备用便携机,就算需要,平时也只会存少量多媒体,5G足已,SO,用大容量普通硬盘只是途增重量热量价格以及使用时的不便(用来作特定人群的便携式主PC还是可以的,不过市场规模就小了)。

    5/23/2008

    IE7乱弹IE6空白窗口问题解决方法

      某天莫名其妙Maxthon假死之后,突然发现Live Messenger(MSN)里的共享空间、在线收藏夹、照片等等调用浏览器打开的链接全部异常,都是先弹出一个IE6的空白页面,死在那,然后打开一个IE7或Maxthon、又或者Firefox的页面(取决与设了哪个是默认浏览器),先后试过卸载、重装、修复等等方法,期间又被若干牛皮冲天的所谓IE修复“专业级”的软件把系统差点整死掉(强烈建议系统出问题时千万不要乱找所谓的修复软件来用,有些软件真是太弱智又霸道——比如,某某某IE修改软件,安装完成后先是弹出,你的机子扫描到了病毒,但需要注册后才能杀毒。。。偶的ESET都没报呢,你倒挺有能耐嘛。。。。然后点IE修复,得,没有任何提示,直接把偶的Explorer进程给关了,然后一看,我所有的开机加载项全部被清空!我XXXXXXXX,表不懂装懂,好象你这软件天下无敌超级智能了咧,自作主张的也太过份了点!!!!)
      期间也试过N多目前主流的安全工具的IE修复功能,但无一例外,全部无能!Google、Baidu查询多日全无结果,以本文标题作为关键字的搜索结果无一例外都是问题报告或入门级的解决方案——无非是重装、设置IE为默认浏览器、使用偶试过的一堆IE修复工具去反复修、反复用N多安全工具去查杀病毒和流氓软件之类——当然,也不是说上面做法没用,但上面做法仅限于安装了异常软件或关闭了杀毒软件后系统出现异常时才有用,对于系统好好的用着或者在系统未中任何病毒或流氓软件干扰情况下,上述办法全部无用,因为这个问题是由于微软的Windows操作系统的IE浏览器的内核同时也是操作系统的关键内核组件,出现系统问题时,往往会影响IE的正常使用,这也是为什么偶强烈建议机子上一定要装一个非IE内核的浏览器以便在系统故障不能用IE上网时(同时Maxthon,TT,The World之类所有用IE内核的浏览器也会一同失效)有一个上网查询解决办法的工具,比如Firefox、Opera……
      失败多次后回归原点,手工处理,在文件夹选项的文件类型和协议关联部分试验多次,发现修改了HTTP协议、Internet快捷方式、Html、Htm之类的关联之后,某些情况下IE是正常了,比如打开IE快捷方式时可以直接在设置的关联默认浏览器中打开了,但软件界面的链接仍然出错,还是会打开IE6的空白页面之后再在默认浏览器中打开,这包括MSN、QQ的弹出新闻首页和迅雷之类软件界面中的链接,怀疑是直接调用了rundll32.exe ieframe.dll调用API去打开的浏览器导致的问题,查看进程管理器,果然打开这样的IE6空白页时,进程中并没有iexplorer.exe,而关掉explorer.exe时,这个窗口也消失了,故障应该是由于explorer.exe打开http协议时处理异常超成的,使用这个关键字去查找,果然发现一个有价值的文章,即,为什么系统总是用Explorer.exe去浏览网页而不是iexplorer.exe,这也解释了为什么这是一个IE6的样式,但其版本却是ie7,因为它是Explorer.exe调用了ie7的浏览器内核去打开网页,但XP的资源管理器浏览网页时的样式是IE6的,因为xp发布时只有IE6,如果系统设置了某些情况下不去开IE而是直接自己显示网页(比如Windows帮助系统里显示网页),那么样式就应该是IE6式的,要解决这个问题,就是强制让网页在IE7(或默认浏览器)中打开(当然,微软肯定考虑到这方面问题,但可能某些细节没处理好),照原文作者说明,这个注册表键位是在:
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\
    Explorer\BrowseNewProcess,把这个值从No改为Yes,即强制网页在新的浏览器中打开,保存关闭注册表管理器,一切恢复正常:)

    4/22/2008

    电脑手绘软件推荐

    电脑手绘软件推荐下载(注意:只提供正版及官方授权合法软件!)

    首先声明,本目录内所有软件均为官方正版或官方授权合法版本,其中:
    ----------------------------------------------------------------------------
    ArtRage 2.1为Wacom硬件捆绑官方中文版(http://www.artrage.com/),有Wacom板子软件授权的可以下载使用,为全功能版本,官方最新版本为2.5英文版,需自行购买不能直接升级,但提供免费的2.5 Stater版本供试用,基本功能都有,但部分画笔、新增的蒙板功能等高级功能不能使用;

    Corel Painter Essential 3为Wacom硬件捆绑官方中文版(http://www.corel.com.cn/),有Wacom板子软件授权的可以下载使用,软件及帮助文档均为中文,是最著名的电脑手绘软件Painter在IX版本基础上的精简版,更适合入门和普通用户使用(全功能的Painter可能会让初学者望而却步,所以不必一味追求最新最强大的版本);

    ArtWeaver 0.5为自由软件,可以免费自由分发和使用,有官方中文版本提供(http://www.artweaver.de),其界面为模仿Painter和PhotoShop并实现了其大部分功能,非常专业,作为免费软件非常值得尝试;

    SmoothDraw 2.6为国产软件(http://www.smoothdraw.com),官方免费提供中文的2.6版本(全功能,但界面不是一般的丑,国产软件的通病,呵呵),3.0为中英双语言共享版本(未注册版本绝大部分功能都能使用,但不能保存文件,够狠,呵呵,界面比原来好看了一点,如果你舍不得三百多RMB,用2.6够了,作者主要是想赚美元^_^)。

    Colors 1.0.6h为NDSL(任天堂的掌上游戏机,GBA的后继机种,双屏幕支持触摸笔,售价一千多……好象说太多了,呵呵)上运行的一个免费的自制程序(http://www.collectingsmiles.com/colors/),支持压感笔和绘画过程录象回放功能,功能比较简单没什么画笔的概念,但画出来的水墨风格的画还是不错的,适合外出时画草图或练手,关键是比专业的支持压感笔的笔记本或手持终端要便宜多了哈,还能玩玩游戏,HOHO,好象比较超值^__^

    简单介绍和推荐:
    ----------------------------------------------------------------------------
      前言:你能看到这些文字,说明你是一个对电脑绘画感兴趣,或者是之前有纸上作画经验的人,你到这里是想找到或者下载一个“最好”的电脑绘画软件,事实是,有一个好的工具会让你的电脑绘画经历更有趣,对着Windows的画图板,相信没几个人有想动手画画的激情,但你的绘画成果不会与你的软件有多高级而成正比,相反,你还要背负着使用盗版软件的不爽、面对着复杂的软件界面和吓人的软件使用教程,所以,本着够用的原则这里简单介绍一下上面的这几个电脑绘画的软件——当然,如果你有多的花不完的钱或者用不完的空闲时间,把别人推荐的“最好”的软件各买一份或盗版一份都试用一遍,偶们也没权利干涉:)
      前言二:想在电脑上画画,不管你水平多高,或者你的鼠标多高级定位有多准,还是老老实实去买一个支持压感笔的数位板的好,当然,同上道理,不要以为板子的价钱和档次高低和你的绘画成果是成正比的,还是本着够用就好的原则。

      ArtRage和SmoothDraw都是适合只有一些简单的绘画经验或者是小孩、时尚白领、涂鸦爱好者等不想深入钻研绘画软件的人士使用,它们的特点是所有的功能一目了然,不象某些专业绘画软件需要进到一层层的菜单下面去或配置一堆参数;
      特别是ArtRage,可以说是将软件界面的简约发挥到极致,全屏的软件界面风格让你感觉就是在一个真实的画板上作画而不象是在使用软件,不过简单也代表着不能面面俱到,它似乎更适合于画铅笔素描或者油画之类的粗风格的画作,也适合小孩画蜡笔画之类的,总之如果你想画精细风格的画时,比如日式漫画、时尚插画等,可能有点不太方便掌控;
      而SmoothDraw可以作为补充,这是一款国产软件,能有这样的功能性和易用性还是非常不错的(很多国产软件要么一味追求技术至上,要么整个花里糊哨的软件界面来骗钱),但如果要求要高一点来评价的话,它的界面布局和风格设计怎么也说不上美观,特别是它的目标用户是对界面很在意的年轻人,可能会因为它的界面带来很大的推广阻力,作者可能需要一个美工的协助(艺术软件没有艺术细胞,有点讽刺哈),特别是2.6版本,甚至让人没有提笔的兴趣,呵呵,3.0版本稍好一些,相比于ArtRage而言,它更适合年轻人用来进行生活、时尚风格的涂鸦和画卡通漫画,它的一字排开的画笔和主界面提供的功能,可以说就是国内网络上的大量手绘教程常用的工具的集合——铅笔、钢笔、喷枪、网点、涂抹等等,包括了打底稿、描线、上色、修饰等等功能的全套工具,充分体现了够用就好的原则,虽然软件功能上说不上专业,但对于非专业的涂鸦、手绘绝对够用了,可以说是针对网络涂鸦漫画绘画风格而推出的大众化绘画软件;

      Painter Essential作为Painter的精简版本,功能还是很强大的,先说下它的照片仿制功能,可能和手绘没什么关系,但去看下中文的帮助文档,可能你会觉得那比绘画能更快地带给你乐趣,建议尝试一下;而它的绘画功能,是基于Painter IX版本的,一些常用的铅笔喷枪水彩等都是有的,而且它的画笔的手感和绘画表现效果也不是其它厂商那么容易模仿的,个人除了对它没有钢笔和图层叠加效果表示不满外,其它方面还是比较满意的;
      基本上能熟练使用上面的软件,并经常练习练习的话,你的电脑绘画也算是入门了,有空再补补绘画的基础知识,一些简单的涂鸦和绘画应该难不倒你了,如果你想转专业职业化或准专业去了,有了Painter Essential的经验,大部分公司内部都提供的Painter工具你也应该很快能上手,而如果没机会用到正版 Painter又想更进一步更专业点,ArtWeaver这个免费的软件可能是个很好的过渡产品,虽然它还只是0.5 版本,但功能已经很强大了,Painter、Photoshop手绘相关的以及滤镜处理等功能它都实现了,而且它 支持插件和画笔导入等扩展功能,可以说是挺专业的,唯一用着感觉不爽的是似乎软件速度和画笔效果还 不太好,不过相信你可能现在还用不到它,而它也在不断加强改进,相信会是一个不错的软件。

      补充一下,上面的软件都是在Windows下的,部分也有Mac版本,但如果是在Linux下,因为Linux更偏向于计算机专业领域,一般用来作为软件开发平台或服务器平台,不太适合作为平面图形处理系统,非要用的话,可以用Wine模拟上面的软件,或者,可以试下GIMP这个一般系统里都装好的图形处理软件,作为和Linux操作系统图形系统底层核心关系紧密的软件,加上这么多年的发展,功能上还是很不错的,一般人把它当Linux下的Photoshop使用,不过它也支持基本的绘画功能,聊胜于无吧^_^

      再PS一下:强烈推荐想学水墨或油画风格绘画的,对照着NDSL上的Colors软件的好看的画的录象回放,在上面说到的软件里参考学习临摹一遍,或者也可以在外时乱画画玩,对你的软件手绘能力提高很有帮助~~

    3/24/2008

    浅谈Adobe AIR战略及Web 2.0离线应用思想

      Ajax也火了两年多了,慢慢的热点转到离线Web2.0应用上来了,毕竟有时一些小的应用还要打开浏览器去收藏夹里访问一个网站麻烦了点,Adobe自从收购了Macromedia有了Flash和它的RIA解决方案之后,野心大了不少,它至少是想要和Google,微软的竟争中占一席之地,甚至是想集两家之长取而代之——Web+软件=融合,所以,它最近两年不停地放出一些开源的工具和解决方案,直到推出了AIR1.0版本。
      试用了一下,有点想法,简单分享一下:
      先说下AIR到底是什么东西吧,这么说,Ajax目前从界面上看,已经可以做到和标准的软件没什么差别了,甚至于象ExtJS之类框架的IDE环境出来以后,可以象写标准软件一样去写WEB应用了——拖一个控件,为事件填充一下处理函数,呵呵,这也许是M$培养出来的开发习惯吧,虽然很多资深软件开发人员对此很不屑,不过对于不想深究技术,只想做业务逻辑的软件人员来说,这的确很方便。
      但Ajax目前最大的问题是,受标准限制和浏览器的实现规范,Javascript不能操作本地电脑的资源、有跨站资源调用的限制,这些都限制了Ajax成为真正的“软件”。
      而AIR的基本概念就是,让Flash、HTML、Javascript、CSS等等WEB应用,能以标准软件的形式来运行,比如:本地文件读写、本地软件的界面、菜单,安装卸载过程、开机自动运行等等……
      安装了AIR运行时环境,AIR SDK后,试验了Sample程序查看了一下官方手册,想了一下,发现,这不就是Firefox之前提出过的理念嘛,不象Firefox的插件,只是为WEB浏览服务,Firefox提出过一个理念是,在浏览器里运行WEB软件——无论在线离线,只不过它还是在浏览器里面跑,所以给人印象不是太大——比如偶,连它的名字也没记住,呵呵,而AIR比较聪明,它淡化了浏览器的概念,突出了离线运行(其实就是浏览)跨平台的概念,按道理,AIR应该第一个支持的是Linux或Windows平台,因为开源社区在这方面的工作比较多可以参考,或者在Windows上开发更快一些,因为这两个平台有着Firefox的核心Gecko可以使用,IE的内核Trident比较被开发人员熟悉,但可能出于商业利益,Adobe肯定不会用微软的IE内核,Firefox太自由了,结果Adobe用了苹果的safari浏览器的内核webkit,这个浏览器内核目前只在苹果机子上和Iphone,IpodTouch上有主流应用,Windows平台上刚刚试水,虽然其内核WebKit也是Linux开源社区的(好象基于KHTML内核),但类似于MaxOS是基于Unix内核一样,苹果公司总是喜欢有它自己的一套商业思想,估计Adobe和Apple两个老A有了某些协议,最终它们联手了,这就是为什么AIR1.0先支持了Win和Mac,而许多Web设计人员试用时,一些经过IE和Firefox测试过的网页显示在AIR里又出现CSS样式错乱的原因了。
      熟悉了AIR的框架之后发现,其实AIR的核心就是一个定制版的没有标准浏览器界面的浏览器——虚拟机,该虚拟机通过读取xml配置文件来决定界面显示,通过AIR提供的JS文件来进行该浏览器(AIR虚拟机)的API的调用,而这些API就是标准浏览器和标准Javascript框架下没有提供的一些本地资源的调用方法,同时该浏览器去掉了一些Web访问的权限限制使得它更象是一个Client应用软件,同时Adobe也没忘了将它自家的Flash和Pdf的支持功能加进去^_^

      综合目前的Web2.0大环境,AIR还是有一席之地的,比如在线收藏夹、在线的词事本等需要方便地与服务器同步少量数据的WEB2.0程序,或者象Google地图、邮件等程序功能就是查看服务器上的数据的软件,如果要用C/C++之类去开发,工作量是非常大的,而AIR只需要象写网页一样写界面,在服务器上提供一个Ajax的业务接口,或者直接使用现有的WEB网站稍加整理,只要是在浏览器里能使用的应用,都能用AIR封装成一个软件分发给用户使用。
      但是,如果它目前的推广方式不改变的话,那么将很可能落得和Java的Applet小程序一样的下场,因为用户要使用AIR的应用程序,先要下载安装一个十几M大小的AIR运行时环境,而SDK为了跨平台,需要Java虚拟机支持(某种意义上来说,喜欢Java的不想AIR占了自己的地盘,不喜欢Java的不喜欢需要Java才能开始工作,呵呵),这些问题将很大程度上限制AIR的普及,建议Adobe学下微软推广.net framework的方式——虽然偶不喜欢,在用户安装某些微软的软件时,不知不觉装上了.net运行时环境,推广了微软家的.net,呵呵,Adobe可以发动它的社区追随者,开发类似Yahoo或Vista的边栏小工具,在用户下载安装使用某个喜欢的小工具时,不知不觉安装上了AIR的运行时环境,方便后继的推广——虽然这很不道德,但微软就是这么发家的^_^

      说下题外话,随着Google和IPhone调动起来的将Web2.0离线化的口号,传统软件必定是要退居二线,就象当年的汇编让位于C/C++一样,今后的软件必定是通过类似XML的描述语言来描述界面,网络化的业务接口提供处理能力和数据交互,不管终端是个人PC还是手持设备,只需要提供一个访问操作界面和网络接入,而不再需要不停更新硬件性能,而这必要需要一个类似当年统一WEB的HTML一样的标准来统一Web化的应用软件的标准,AIR先行一步,虽然还有很多限制和问题,Google、Mozilla、Microsoft、Yahoo、IBM等等行业的巨头也没闲着,而国内完全可以使用Firefox的内核开发出一套类似的平台框架,而且先期可以专注与Ajax而不象AIR想要包揽Ajax,Html,Flash,Pdf等等东西,由于跨国公司和利益团体不考虑亚洲国家利益,强制推广的Unicoe、UTF-8之类标准在亚洲本土支持很不好,但AIR却只支持UTF-8让很多国内Web2.0应用采用GB2312或GBK时不能使用AIR(很不友好地直接提示不支持编码GB2312、GBK),至于后期后继开发,可以参考微软当年提出的WEB就是软件的思想,借Web新标准改朝换代的时机,提出Ajax的替代解决方案,也就是Web3.0,网络分布式的无终端限制的软件,那么就领先了不只一点点了,HOHO~~ $_$  

    Add:080325
      Firefox3快出来了,查了下资料,上面说的Mozilla搞的类似AIR的那套的东西叫XUL——精确地说应该叫XULRunner:)

      因为XUL是Mozilla推的一套界面描述语言,XML的,类似AIR的那个软件界面描述XML文件,不过不同于Adobe的使用现有的Web元素来构建应用程序,Mozilla走了另一条路,扩展了一些类似HTML的描述语言来描述标准的软件界面控件——因为现有的Web元素要实现软件界面控件是用Javascript加上CSS样式模拟出来的,效率和兼容性是一个大的问题,而Mozilla则开辟另一片战场,直接在它的Firefox的核心里面扩展了XUL的支持,即,用Firefox打开.xul文件时,能自动读取里面的描述语言标记由操作系统直接生成原生的菜单、工具栏之类的软件界面控件,软件打包方面和AIR的思想差不多,也是把一些Js、css、xul(区别与AIR的HTML)文件之类的打包,然后用浏览器的内核(AIR用的苹果的浏览器内核Firefox用的Mozilla自己家的)来读取显示出来,比如Firefox的一些扩展插件软件,都是用XUL实现的,甚至Firefox自己,也是用Gecko核心读取XUL生成出来的界面哈~~

      说到这里,可能有人会说,AIR是打包后生成独立的Exe程序了啊,XUL是在Firefox里运行的啊?是的,但这只是目前的情况,正在开发中的XULRunner就能做到让XUL以Exe程序的方式来运行,比如,Firefox和Thundbird软件就是最好的XUL程序的示例程序,只不过XULRunner还处于开发阶段,不能方便地将XUL打包成象Firefox这样的应用软件,它目前只能提供命令行工具,你可以通过CMD命令行来启动XUL程序,执行后的效果和AIR的效果是一样的,标准的原生的操作系统软件,标准的Windows或Linux或Mac应用程序运行在对应的操作系统平台上,而效率绝对比AIR高,就象空白的Firefox软件要比打开几个网页的浏览器要更流畅一样效果哈:)

      所以可以说,AIR是简化了开发人员的工作,直接打包整个网站(看起来不错),而XUL相对来说开发人员的工作要多一点,但效率更高也更灵活:
      因为,AIR必须要用户再安装单独的AIR平台运行时环境,AIR程序要使用网页一样的方式来生成界面,对现有的网站的WEB页面的界面来直接打包可能比较方便,但新的界面仍用JS来实现效率太低也较麻烦,传统客户端软件开发人员可能不能接受这种方式;而XUL虽然开发人员要多学一点XUL的标记符和用法,但界面生成非常方便,原生的界面执行效率比JS模拟实现要高的多,既可以在目前已经推广较普及的Firefox浏览器里运行(相对AIR的运行时环境的推广普及度,特别是国外Firefox非常高的使用率),又可以象AIR一样以标准应用程序的方式来运行(XULRunner正式版本最终效果),与AIR相比同样跨平台开发速度快,甚至它可以作为libxul嵌入其它软件中用来生成界面,应用的场景可能较AIR更广泛一些,也更容易被传统客户端软件开发人员接受和学习,AIR在这里输在了它想大包干,把所有细节都包揽了,有好处当然也有坏处了,WEB开发人员会比较喜欢它入门也更快,但传统软件开发人员可能更喜欢XUL灵活的实现方式;

      个人更看好Mozilla的XUL实现方案,但有竞争是好事可以相互促进,AIR适用于将WEB2.0网站的某些容易分离的功能离线和应用程序化,避免重复的界面实现工作,效率很高;而XUL适用于将以前基于Java Applet或传统C/S架构的客户端软件进行B/S或者称之为Web2.0化时全新开发时使用(当然,这里有个问题是IE不支持,但Firefox同样是浏览器,而且可以跨操作系统,并且这类软件一般是企业用户,统一部署加装一个新的浏览器也是容易接受的,比Java小程序在不同机器不同操作系统下执行效率不同,客户端软件在不同机子上非常容易出现安装和运行问题容易受机器上其它软件影响稳定性要更容易解决,至少Firefox在主流甚至低端机器上运行非常快速稳定,而且最重要的是IE和Firefox都是浏览器,B/S或Web应用程序的特点是不会受影响的),现在知道为什么Adobe用的苹果浏览器的核心了,因为Firefox的概念和它的有冲突,呵呵,并且两家实现思路不同,商业模式也不同,但它们的目标都是将应用软件网络化,因为无论PC、手持终端还是智能家电,它们最终的定位是应用软件界面的显示和原始数据、目标数据的存储,而不再是应用软件的执行平台,操作系统也将退回它原有的功能定位——硬件资源的调度管理,到时,不管是Web2.0还是3.0,都将是软件企业的春天,不用再担心盗版软件的问题了,但业务不再是靠卖软件拷贝和授权来赚钱,而是提供软件在线服务。

      杀毒软件?操作系统都固化了,本地全是纯数据无应用程序,哪来的病毒?呵呵

      如此这般,老百姓也就舒坦了,象用家电一样使用电脑和网络,只需要一个接入授权,所有能连网的智能终端均可以使用到适应它的终端软件服务了——空调自动根据天气预报设置开关机、电视自动下载个人的日程表给出提示和电视录象等等智能化的功能,数据可以存储在远程也可以下载到本地,而用户也不再需要学习电脑安装软件维护升级硬件之类的不应该让普通用户参与的工作,电脑到时也会变成一个家电控制中心和存储中心,免维护^_^

    PS:
      上面说的只限于普通电脑用户,不是说所有电脑用户,比如航空航天科学实验机械工程专业图形图象多媒体设计之类的软件,那还是得在本地开发成专用软件来使用哈,但偶的观点就是,电脑不只是用来工作的,也是用来娱乐的,更多时候是要能用来作为智能控制中心的,以后使用电脑更多的是普通大众,没经过培训的普通大众——你看到谁用家电还要上培训班的?用电脑不能用到最后被电脑玩了,而是要电脑主动地智能地服务,所以针对于普通电脑用户,软件设计开发人员不能当老古董,凡是能让用户感到方便的技术都可以去大胆应用,而不能总是一味地跟在别人PP后面张望,软件业的春天不是等来的,套用一句话——你把用户放在心上,用户才能让你坐在钱堆上^_^

    3/7/2008

    Flex(flash)及本地HTML Ajax方式远程调用PHP时的Session问题

      做了个PHP的图片验证码实现,采用一次性Session方式保存在服务器端,客户端提交验证码与其对比来实现验证机制,客户端直接使用<img src=http://xxxxx/xxx.php>格式调用,在普通HTML页面上测试一切正常,但后来将该实现使用到Flex中时,出现Flex的httpservice调用的php获取不到该验证码图片的session设置的验证码,多次测试比对后,发现HTML中如果文件是在本机上也会有此问题,但上传到Web服务器上之后则正常;

      经过跟踪调试发现,出现问题时,验证码图片生成php文件的session和提交处理的php文件使用了不同的session ID,所以不能互相获取 session内容,有了这个发现,解决方法就是让这两个PHP文件使用同一个session id,在PHP的概念里,这就表示使用同一个Session了(其它语言可以参考);

      解决方法一:
      如果Swf文件显示页面是在服务器上动态输出的,可以在输出swf嵌入代码时,用xxx.swf?sid=<?=session_id()?>的方式嵌入,在Flex代码中,以

    var param:Object = root.loaderInfo.parameters;
    if(param["sid"] != null)
    {
        sid = param["sid"];
    }       

    方式取出sid;

      解决方法二:
      如果swf是外链嵌在第三方网站或静态页面中时,可以变通一下,在Flex中增加一个HttpService,例如:

    <mx:HTTPService id="sid_get" url=http://xxxxxx/get_sip.php method="GET">

    sid_get.send之后取出返回值就是sid,因为该PHP内容就是echo session_id(),输出sid;

    然后,在所有调用远程服务的PHP地址后面均加上这个sid,例如前文说到的验证码生成php和数据提交处理php,均增加该字段;

    在验证码生成PHP和提交数据处理页面前,增加:

    session_start();
    if(isset($_GET['sid']))
    {
        session_id($_GET['sid']);
    }

    表示强制使Flex不同组件不同时候提交的HTTP请求均使用由sid指定的同一个session,而这个session就是flex通过上述两种方法获取到的,当然,也可以自己Hash出一个sid,或获取、输出sid时进行必要的加密、解密操作以增加安全性防止session绑架式攻击。

    注:本地HTML Ajax方式遇到类似Session问题时,完全可以通过前述方法二来解决该问题,例如在软件界面中嵌入HTML网页需要获取远程Session数据和提交数据到远程页面这种应用时。

    2/1/2008

    金山词霸类翻译软件的即指即译功能的改进建议

      目前的翻译软件都提供了即指即译功能,但这项功能在诞生了好几年之后,仍没有改进,依然只有鼠标即指即译,按鼠标中键翻译,或加上按Ctrl,Shift之类再鼠标取词等方式,但日常使用下来,无论是哪种方式,都会经常在我们不想翻译的时候翻译框突然弹出来,而一怒之下关掉即指即译功能后,又在某个关键时候想翻译某个词时发现即指即译功能没打开,这都是源于翻译软件不能准确识别用户的翻译请求的原因,来得影响使用者感受,在金山词霸放出2008版本公开征求意见时,提出了下面的建议:
      个人结合日常鼠标使用习惯认为,作为定位设备,一般鼠标是不停在动,或移到某个位置后,要么静止不动,要么点击某个鼠标按键,同时伴随着键盘的操作,这里唯一没有用到的一种用户人机交互输入识别方式就是鼠标在“小范围内”的不停移动一段时间或一定次数。
      故个人建议,可以为词霸的取词方式增加一种——“智能鼠标取词”,即,在这种方式下,只有用户的鼠标持续地在某个中英文字词上移动,例如划圈或左右来回移动一定次数(例如圈两下,来回移两次)或时间(参考原有的鼠标停留一断时间方式),才触发取词事件,这也成功解决了如何去准确识别一个长串的字符的难点问题,即,用户可以在例如This is a test的This上划圈或在T和s字母之间左右范围内来回移动,表示要翻译This的意思,而如果是在整句上划圈或在T和t字母之间左右来回移动表示要翻译整句,这会非常方便并准确地识别用户的真实的翻译意图,而不用由于日常的鼠标移动操作或其它软件的快捷键操作引发错误的操作请求,极大改进用户体验。

    1/31/2008

    OSIP协议栈使用入门(续一:纯协议栈逻辑分析)

      (CopyLeft by Meineson | www.mbstudio.cn,原创文章,欢迎转载,但请保留出处说明!)


      很长时间之前,简单粗略地看了下Osip,eXosip,ortp等并快速“封装”了一个Windows下的基于VC6的MFC的SIP软电话(全部源代码VC6工程文件及Lib库可在本Blog共享文件夹找到),由于时间限制,只能是一知半解地纯“应用”式地分析了一下osip,eXosip等开发库的代码,作为兴趣爱好者参考了解下SIP电话工作原理还可以,但作为商用产品开发参考则还是太浅显了些:)
      最近扩展嵌入式Linux平台上的SIP功能模块(基于OSIP),由于使用的Osip不包括Call Transfer相关字段(Refer,Notify等)的解析和状态机控制(最近的Osip版本是否有扩展未查看)不能支持呼叫转接,需要手工扩展,有机会对Osip的主要事务状态机、解析库等部分稍有了些较深入的了解,结合SIP RFC总结分享如下。

      (注:下文假设阅读者已经大概了解SIP协议的简单呼叫流程,会使用Ethereal等抓包工具分析SIP消息结构,对C语言的指针、链表、内存控制及状态机等概念有足够的认识。)

      要应用Osip到我们的程序中去,首先要看官方文档,文档中对Osip协议栈提供的各个功能部件如何使用都有比较详细的描述,但未进行整体性的分析,某些中文的指导文档也都停留在对其简单的翻译,不能为不熟悉该协议栈使用的用户快速参考使用,本文档不按照Osip的代码进行按功能分块说明,而是根据实际使用时的代码使用顺序来对主要逻辑流程进行分析,并适当对流程中使用到的功能部件进行说明,具体更详细的功能说明或疑问可直接查看官方文档对应部分的解释或直接查看功能函数源代码即可解决。

    • 准备工作
        先认识几个结构体:osip_t,osip_message_t,osip_dialog_t,osip_transaction_t;
        osip_t是一个全局变量,所有要使用Osip协议栈的事务处理能力的程序都要第一步就初始化它(相对应于只使用osipparser库进行SIP消息字段解析的应用来说,如果只使用parser库到自己的程序中,想必对SIP协议栈已经很熟悉了,不需再往下看了^_^),它内部主要是定义了Osip协议栈的四个主要事务链表、消息实际发送函数及状态机各状态事件下的回调函数等;
        osip_message_t是SIP消息的C语言结构体存储空间,收到SIP消息解析后存在该结构中方便程序使用接收到的消息中的指定的字段,发送消息前为方便设置要发送的字段值,将要发送的内容存在该结构中等发送时转为字符串;
        osip_dialog_t则是SIP RFC中的dialog或叫call leg的定义,它标识了uac和uas的一对关系,并一直保持到会话(session)结束,一个完整的dialog主要包括from,to,callid,fromtag,totag,state等(可查看源码),其中fromtag,totag,callid在一个dialog成功建立后才完整,体现在SIP消息中,就是From、To的tag,Call-id字段的值相同时,这些消息是属于它们对应的一个Dialog的,例如将要发起invite时,只有fromtag,callid填充有值,在收到to远端的响应时,收到totag填充到dialog中,建立成功一个dialog,后继的逻辑均是使用这个dialog进行处理(如transaction事务处理),state表示本dialog的状态,与transaction的state有很大的关联,共用由Enum结构state_t定义;
          osip_transaction_t则是RFC中的事务的定义,它表示的是一个会话的某个Dialog之间的某一次消息发送及其完整的响应,例如invite-100-180-200-ack这是一个完整的事务,bye-200这也是一个完整的事务,体现在SIP消息中,就是Via中的branch的值相同表示属于一个事务的消息(当然,事务是在Dialog中的,所以From、To的tag,Call-id值也是相同的),事务对于UAC,UAS的终端类型不同及消息的不同,分为四类,前面说的invite的事务,主叫uac中会关联一个ict事务,被叫uas会关联一个ist事务,而除了invite之外,都归类定义主叫nict,被叫nist,在Osip中,它是靠有限状态机来实现的上述四种事务(osip_fsm_type_t中定义)的,它的主要属性值有callid,transactionid,分别来标识dialog和transaction,其中还有一个时间戳birth_time标识事务创建时间,可由超时处理函数用来判断和决定超时情况下的事务的进行和销毁,而它的state属性是非常重要的,根据上述的事务类型不同,其值也不同,它是前面提到的状态机的“状态”,在实际状态机的逻辑执行中是一个关键值;
    • Osip初始化
        提到osip的初始化,可能大家都看过官方文档里第一页的代码,首先就是osip_init(&osip)初始化了全局的osip_t结构体,然后对它的回调函数进行设置,很多人估计就是一看到这密密麻麻的一页多的call_back设置被吓到了,但结合前面分析的三个结构体的含义,这里的含义就很清晰了:
        osip_t中有一个cb_send_message函数指针,它是Osip最终与外界网络交互的接口,它的参数有( osip_transaction_t * trn,    /*本消息所属的事务*/
              osip_message_t * sipmsg, /*待发送的消息结构体*/
              char *dest_socket_str,     /*目标地址*/
              int32_t dest_port,            /*目标端口*/
              int32_t send_sock)    /*用来发送消息的socket*/
        其中trn传入主要是为了方便获取事务的上下文数据,它有一个void指针your_instance,可以用来传入更多数据方便发送消息时参考,例如将该事务所属的dialog指针传入;
        而sipmsg则是我们要发送的SIP消息的C结构体,使用osip_message_to_str将其按RFC文档格式转换为一个字符串(osip中的parser模块的主要功能),再通过任意你自己的网络数据发送函数使用send_sock发送给dest_socket_str和dest_port指定的目标,当然,要记得使用osip_free释放刚才发送出去的字符串占用的内存,Osip中很多osipparser提供的消息解析处理函数都是动态内存分配的,使用完毕后需要及时释放;
        使用osip_set_cb_send_message成功设置回调函数,我们的SIP消息就有了出口了,下面继续分析(当然,了解到了上面的流程,也可以手工指定了)。

        下面的回调函数分为三类,分别是普通事务消息(osip_message_callback_type_t中定义)的处理回调函数、事务销毁事件(osip_kill_callback_type_t中定义)的清理回调函数以及事务执行过程中的错误事件(osip_transport_error_callback_type_t中定义)处理回调函数:
        先说简单的,事务销毁事件,事务正常结束(成功完成状态机流程)或由超时处理函数强制终结等情况下均调用了这些回调函数,一般就是释放事务结构体,为ICT,NICT,IST,NIST各设置或共用一个回调函数均可,只要正确释放不再使用的内存即可;
        错误处理函数则是在整个状态机执行过程中发生的任何错误的出口,一般用来安插log函数方便调试,也可以直接设为空函数;
        而最关键的就是正常消息的处理回调函数了,其量是非常大的,但仔细分下类,也和上面的回调函数一样,也是分为四类,我们可有根据实际程序的需要来进行设置,例如,SIP电话机就不需要处理OSIP_NIST_REGISTER_RECEIVED这个SIP注册服务器才需要处理的Register消息事件了,精简一下,如果只是要做一个只需要实现主叫功能且不考虑错误情况的UAC的Demo软电话程序,则只需要设置如下几个事件的回调函数:
        OSIP_ICT_INVITE_SENT 发出Invite开始呼叫
        OSIP_ICT_STATUS_1XX_RECEIVED 收到180
        OSIP_ICT_STATUS_2XX_RECEIVED 收到200
        OSIP_ICT_ACK_SENT  发出ack确定呼叫
        OSIP_NICT_BYE_SENT  发出bye结束呼叫
        OSIP_NICT_STATUS_2XX_RECEIVED 收到200确认结束呼叫
        OSIP_NIST_BYE_RECEIVED 收到bye结束呼叫
        OSIP_NIST_STATUS_2XX_SENT 发出 200确定结束呼叫
      而要增加接受呼叫的被叫UAS功能,则只需要增加如下事件:
        OSIP_IST_INVITE_RECEIVED 收到invite开始呼叫
        OSIP_IST_STATUS_1XX_SENT 发出180
        OSIP_IST_STATUS_2XX_SENT 发出200
        OSIP_IST_ACK_RECEIVED  收到ack确认呼叫
      具体的函数定义,则直接参考osip_message_cb_t,osip_kill_transaction_cb_t,osip_transport_error_cb_t即可,回调函数的设置同上可以手工设置,也可以使用Osip提供的对应的osip_set_xxx_callback函数;
    • 发出SIP消息
        
      要发送SIP消息,从上面的分析可知有几个必要的条件,osip_messag_t结构的待发送消息,osip_dialog_t结构体的dialog以及osip_transaction_t的事务;
        首先osip_malloc新分配一个dialog,使用osip_to_init,osip_to_parse,osip_to_free这类parser函数功能函数按RFC设置call-id,from,to,local_cseq等必要字段(原则是:后面生成实际SIP消息结构体要用到的字段就需要设置),使用osip_message_init初始化一个sipmsg,根据dialog来填充该结构体(不同的消息填充的数据是不同的,没有捷径可走,只能看RFC根据需要填充字段),如果要给SIP消息添加Body例如SDP段,需要使用osip_message_set_body,osip_message_set_content_type函数,设置的值是纯文本,如果是SDP,Osip有提供简单的解析和生成便捷函数例如sdp_message_to_str,sdp_message_a_attribute_add,但只是简单的字符操作,要填充合法的字段需要自己参考SDP的RFC文档,同样没捷径可走。
        现在我们有了两个必要条件了,还有最后一个也是最关键的部件,就是事务的创建和触发,
      int osip_transaction_init(
              osip_transaction_t ** transaction,  /*返回的事务结构体指针*/
              osip_fsm_type_t ctx_type, /*事务类型ICT/NICT/IST/NIST*/
              osip_t * osip,  /*前文说的全局变量*/
              osip_message_t * request) /*前面生成的sipmsg*/
        创建了一个新的事务,并自动根据事务类型、dialog和sipmsg进行了初始化,最重要的是它使用了__osip_add_ict等函数,将本事务插入到全局的osip_t结构体的全局FIFO链表中去了,不同的事务类型对应不同的FIFO,由前文可知,本类函数有四个,FIFO也有四个,对应ICT,NICT,IST,NIST,注意这个这里使用osip_transaction_set_out_socket把发送sip消息的socket接口配给该事务,方便自动调用前面设置的发送消息回调函数使用它自动发送消息;
        前文提到了transaction里的state作为状态机的“状态”,要执行状态机,就需要有“事件”来触发,事件结构体osip_event_t需要使用osip_new_outgoing_sipmessage来对sipmsg进行探测生成,设置正确的事件值,省却了我们手工设置的工作,它调用evt_set_type_outgoing_sipmessage来设置“事件”type_t,并将sipmsg挂到事件结构体的sip属性值上,有了根据消息分析出的事件后,使用osip_fifo_add(trn->transactionff, ev)将事件插入到事务的事件FIFO中,即transactionff属性;
        
        有了上面的发送消息的必要条件了,消息是如何实际出发的呢?上面提到了,SIP消息的发送和响应是一个事务,不能隔离开来,即消息的发送需要事务状态机来控制,我们上面设置了状态机的状态和事件,要触发它,就是要执行状态机了:
        osip_ict_execute
        osip_nict_execute
        osip_ist_execute
        osip_nist_execute
        分别用来遍历前面提到的四个事务FIFO,取出事务,再依次取出事务内的事件FIFO上的事件,使用osip_transaction_execute依次执行(有兴趣的可以更深一步去查看,可以看到它最终就是调用了我们前面设置的消息回调函数,至于具体调用哪个,这就是OSIP协议栈内部帮我们做的大量的工作了^_^);
        如果某个事务不能正常终结怎么办呢?例如发出了Invite没有收到任何响应,按RFC定义,不同的事务有不同的超时时间,osip_timers_ict[nict|ist|nist]_execute这些函数就是来根据取出的事务的时间戳与当前时间取差后与规定的超时时间比对,如果超时,就自动设置了超时“事件”并将事务“状态”设为终结,使用前面设定的消息超时事件回调函数处理即可(如果设置了);
        如果网络质量不稳定,经常丢失消息,需要使用osip_retransmissions_execute函数来自动重发消息而不是等待超时;
        为了即时响应SIP消息的处理推动状态机,上述的九个函数需要不停执行,可以将它放入单独线程中。
    • 收到SIP消息
        
      有了前面的发送SIP消息的理解,接收消息的处理就方便理解了,收到SIP消息,使用osip_parse进行解析,得到一个osip_message_t的sipmsg,使用evt_set_type_incoming_sipmessage得到事务的“事件”,并同上将sipmsg挂到事件结构体的sip字段,随后立即使用osip_find_transaction_and_add_event来根据“事件”查找事务(有兴趣可以深入看一下,事务的查找是通过SIP消息Via中的branch来匹配的),否则新建事务,然后推动状态机执行。
    • 状态机内部逻辑
        弄清了上面的状态机的大概逻辑,设置正确完备的回调函数,就可以正确使用Osip来进行工作了,如果要进一步深入Osip,比如要扩展Osip的状态机处理自定义的消息字段和实现新的事务逻辑来生成新业务时,就需要对状态机的内部逻辑有一定的了解;
        前面一再强调,Osip内部的几个重要的数据结构osip_message_t,osip_dialog_t,osip_transaction_t,其中面向用户的主要是前后两个,而中间的dialog则很多时候是在状态机内部使用的,例如:收到消息,解析到sipmsg中,查找transaction并进行驱动,随后找到它关联的dialog(或者新生成)解析填充要发送的消息结构体sipmsg,再次根据dialog和sipmsg查找或生成transaction。
        如果要扩展Osip,要做工作主要有:
        扩展osip_message_t,增加要解析的字段或消息头,并参考原Osip函数生成对应的SIP字符串生成和解析函数;
        扩展osip_dialog_t,增加新的属性,对应osip_message_t的新增内容;
        扩展状态机的事件和状态类型,设置对应的回调函数,并关联新增事件和状态类型到osip_message_t的解析函数或osip_dialog_t的初始化函数中,而osip_transaction_t大多数时候不需要扩展,只要在对应的事务类型(大多数时候是NICT、NIST)处理逻辑中,增加对新增事件和状态类型的判断和调用回调函数的逻辑即可。

    (不定期更新补充中……)

      (CopyLeft by Meineson | www.mbstudio.cn,原创文章,欢迎转载,但请保留出处说明!)

    1/3/2008

    君正JZ4730[40/20]RMVB华飞芯视频MP3机初探(第三方软件或操作系统可行)

      元旦前入了一个能直放RMVB的视频mp3——不应该叫mp4,因为屏幕实在是小,呵呵,2.8QVGA的,昂达VX868+,和它的989+,979+是一个系列一个内核的,从最近的一次同时发布1.21版本固件可以看出来,想要了解一下它的内部到底是虾米东东,这么快把ADI和瑞芯搞的很郁闷,查到了它的官方网站——华飞芯不说了,它只是打包一个解决方案顺便解决版权问题,真正的核心研发还是君正方面处理,偶猜的:)
      上了君正的网站,www.ingenic.cn,可以看的出,最近风头比较劲,相关的开发资源也一股脑打包送上来了,开发论坛估计是刚上,还不能访问,一看就知道了,Mips的针对多媒体优化的处理器,借用Linux强大的开源资源,优化了全能播放器Mplayer,400mhz的处理器加上屏幕比较小,各类音视频全吃当然不在话下了哈,还是要谢谢GNU的力量!
      看了下官方的rootfs——因为下面的MP3厂家包括华飞芯估计在Linux操作系统这块不会去做更改,只是在这个平台上开发应用而已,所以君正提供的资源有可看性哈:)

    #!/bin/sh
    # mount filesystems
    /bin/mount -o loop /proc
    /bin/mount -t devpts /dev/pts
    # turn on swap
    /sbin/swapon -a
    # set the system time from the hardware clock
    /sbin/hwclock -s
    # networking
    /sbin/ifconfig lo 127.0.0.1 up
    # telnet server
    /sbin/telnetd &
    # NFS mounting
    /sbin/portmap
    # mixer volume
    #/usr/bin/mixer vol 100 > /dev/null 2>&1
    # mount SD card
    #/bin/mount -t vfat /dev/mmca1 /mnt/mmc
    # insmod usb gadget
    #/sbin/insmod /lib/modules/jz4740_udc.o
    #/sbin/insmod /lib/modules/g_file_storage.o file=/dev/mtdblock5,/dev/mmca
    # start DPM
    #/usr/local/bin/dpm_init
    #/usr/local/sbin/dpmd &
    # run qtopia
    #/usr/bin/runqpe

      上面都没什么参考价值,只是看倒数第二条,Qtopia,查了下,是一个专门提供手持设备的操作UI的软件包,Qt,看前两个字母,呵呵~~而最后一条runqpe则是一个脚本:

    #!/bin/sh
    QTOPIADIR=/opt/Qtopia
    export HOME=/root
    export QPEDIR=$QTOPIADIR
    export QTDIR=$QTOPIADIR
    export PATH=$QTDIR/bin:$PATH
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    #export QWS_MOUSE_PROTO=USB:/dev/input/mice
    export QWS_MOUSE_PROTO=TPanel:/dev/ts
    export QWS_KEYBOARD=TTY:/dev/tty0
    $QPEDIR/bin/qpe > /dev/null 2>&1

      在上面脚本里提到的/opt/Qtopia的apps目录里,可以看到许多应用程序和游戏,例如地址本时钟计算器……
      而在君正的rootfs里,可以看到在mipsroot/usr/bin下有mplayer30/40,包括网站上放出的优化的Mplayer源代码~~

      展望:
      有了标准Linux的操作系统加上400Mhz的处理器能力,加上能运行Mplayer和顺利播放RMVB可知其内存也不低(君正的Demo包里JDI烧录配置文件里看到写的是用了64M内存,不小了哈),小小的VX868+或989+979+完全可以作为一个掌上操作系统来使用,为其开发应用程序也完全可行,只不过偶不是搞硬件开发的,更没有开发板,这机子壳子也没个螺丝打不开,暂时不知道怎样进入机子的Consle,不过从君正的官方资料搭一个软件开发环境还是没有问题的,希望有硬件研发的兄弟提供方法,能移植点应用程序啥的到上面哈,啥UMPC?咱这个理论上也行 ^_^

    Add:070108 已找到Usbboot模式开关,正在寻找进入引导系统中的方法:)
    image
    image

    ADD:080110,分析Onda和驰为的机子固件升级文件包,发现都华飞芯的标识在里面,应该是统一的,而且在里面发现有完整的中文字库和各种图标字体,综合分析后推翻之前的结论,这些RMVB播放机用的是WIN CE的操作系统(呵呵,大概也跟国内Windows系开发人员较多的原因有关吧)——因为在升级包里面有完整的分驱表之类的描述,文件引导信息以及a:/music a:/picture等Windows风格的连接电脑作为U盘查看时能看到的所有目录结构,包括有fat12,16之类的字眼,进一步推测升级包里的HXF文件其实就是加了层外衣的标准WIN CE5的BIN文件,偶对Win CE不熟,要进一步打听打听:)

    12/31/2007

    浅谈神游的行货WII运作手段及个人意见

      随着08年的到来,神游的行货WII在我们面前也越来越清晰了,个人的猜想:行货WII应该是中文系统,大中华区分区(大陆加台港澳),游戏初期以任天堂系游戏汉化和自主研发小品级家底娱乐游戏为主(大环境影响,其它游戏比较难审批通过,而老任的企业形象和游戏定位相对来说是比较清新健康的),硬件上类似DSL作修改以支持中文(其它区的主机无法直接支持中文可能是故意的,即,中文游戏只能运行在中华区主机上),网络服务提供新闻和天气预报、中文浏览器,在线商城不太合国情(模拟器太普及了呵),可能初期不会花精力运作而是晚一步直接引进WII Ware,与国内(特别是台湾)游戏开发公司合作开发有群众基础的经典游戏。
      下面说说偶为什么这样猜想,而且偶认为这样运作完全可行而且如果运气好可能改写国内的游戏历史,而之前的Gba和Dsl的引进,只能说是老任和神游的尝试以及市场培育。
      从Dsl和Wii这两个老任的新产品在全球的大热,老任应该可以看到,这是它的蓝海策略起作用了,但最大的蓝海在中国,Dsl由于采用卡带,成本降不下来,而且Dump很容易汉化也比较火热,所以老任采用微软的手段,任由神游在中国培育盗版市场基础,神游只需要简单出几个中文游戏做做样子就可以了,反正Dsl和Wii这两个主机硬件就有钱赚哈:)
      由于Wii用了光盘了,成本非常好控制,如果中国WII能跨区,由于货币汇率问题,让中国玩家用国外的价格去买游戏不合适,而国外玩家用中国的价格买游戏那更不合适,所以单独为中国这个特殊市场开一个区,一方面,说实话,真正搞破解主机的中国黑客有几个?而老外专门为中国玩家去破解特殊定制的中国行货主机也一样没几个,有人可能说,那我就去买水货,呵呵,所以,老任和神游这样运作,基本上就是不考虑传统玩家了,这些玩家也更可能会喜欢玩水货的Xbox、PS或者PC,上面也说了,他们是来中国开发蓝海的,行货机器应该是摆在家电区卖的,所以只要能在这个目标市场里卖动了,基本上不用去考虑直读破解这方面的问题了,就算可以破解这些玩家也不会有精力去搞这些事情,对这些玩家来说,WII就是一台DVD播放器一样用,普通玩家会去成天捣鼓研究DVD只是为了让播放器能放刚刻好的网下下的各种转换格式的电影?他们宁可去买碟看。
      反正这些目标玩家在很长时间段里也只是会去玩那一两个游戏(所以猜想初期会有运动类、聚会类、休闲类的两三个游戏),同时在电视机上面看看照片、新闻和天气预报之类,所以神游一定要把这三样东西做的非常本土化,而且这些现在的数字电视机顶盒都能做,有老任的基础在那,完全可以做的很好。
      等市场成熟了做大了,有一部分传统玩家也会加入这个市场,因为他们可能陆续参加工作了,工作压力越来越大了没时间玩游戏了,成天买盗版碟刻碟玩新游戏三分钟把盘放着玩下一个,越玩越没劲的日子时间长了也郁闷了,老任在国外封杀破解也越来越厉害,为了破解这些越来越烦人了,他们可能有几种选择:只玩一些老游戏、不玩游戏了、转其它主机平台或者PC网游砍怪发泄去了,呵呵、或者,买台行货机器享受正版游戏和网络服务,反正旧游戏也玩够了,老是追新游戏的日子太无聊了,不如认真去玩一个好游戏,而且还是亲切的母语。
      游戏的价格方面,我认为完全有可能很低,毕竟是光盘载体,看看现在的PC正版游戏吧,呵呵,而且根据偶上面的看法,这些游戏还是面对的传统玩家呢,它们能卖到现在的69、59的价格体系证明公司能承受而且也比较被消费者接受了,所以行货WII的游戏价格也不会差太多,个人乐观的估计会是99到159的样子,呵呵,简单的游戏低到99,大作到159这样的价格对于上面说的目标客户应该不会有问题,而且可以根据中国特色来个漂亮的豪华包装送点不值钱的赠品填填一大包,让人感觉绝对超值,过时的游戏来个阿拉丁版卖个二三十块,哈哈~~
      最后说下WII Ware,老任对这个应该是寄于厚望的,毕竟盗版的问题不是说说就能消失的,看看中国的杀软厂商吧,自从发明了在线更新按年收服务费后,他们象抓到救命稻草一样,什么软件都加个在线升级功能然后按年收费了,呵呵,虽然比较BS这种做法,但毕竟商业操作上成功了,国内的WII Ware运作可以通过于现在遍地都是的网络游戏开发商合作,反正他们现在都在推免费的网络游戏运营方式,那也可以开发WII Ware游戏以超低价或者就免费卖(老任好象是说给游戏开发商提成的说法),甚至于会出现个人以共享软件模式开发销售WII Ware的情况,只要有新意哈~~
      PS:个人说这么多,是非常希望国内的游戏行业能正规起来,能早日象音像制品一样能尽量于全球同步发行上市,同时也寄希望于相临的软件行业也正规起来,毕竟这是偶从事和热爱的行业,而偶的理想则是用电子软硬件,研发出一系列类似于老任的WII一样,能进入普通家庭,促进家庭成员和谐、给大多数人带来工作生活乐趣的东西,毕竟,电子软硬件技术不应该只用在冷冰冰的商业、科技领域,也不应该只是给少数人享用的高高在上的新、奇、贵的东西,搞商业搞科技的目的规结到最后也是为了能享受更舒适的生活嘛。
      偶个人从高三时开始并一直在现在都始终认为电子计算机是人类历史上最伟大的发明,它不仅仅是一件家用电器那么简单,软件也不仅仅是一堆计算机指令和数据的集合……

    12/14/2007

    Eclipse 小试:Flex开发、PDT 在NAT环境下远程调试PHP程序

      一年多前关注了一下Eclipse,由于对Java没啥好感,对于这个Java领域比较火的东西也一直没什么太大的兴趣,也只是当时要找一个在Linux平台下好用点的C的IDE时,稍微看了下,不过由于一直也没什么大的工程要全部转到Linux下去开发,SSH远程编译加Windows下编辑源代码也凑合着能用,简单试了下Eclipse下的CDT,后来也就放着了。
      眼看着到了07年,这Eclipse风头盛了,没事逛的时候看了下Adobe的Flex解决方案,发现还不错,这样以后的小的要用Ajax实现的程序可以用Flex来做了,毕竟Javascript来开发Ajax应用,调试始终不爽快,而Adobe的Flex 毕竟还有个Flex Builder,基于Eclipse的而且也有直接给Eclipse的插件,还算好用,虽然是商业软件试用一个月,也就先用着了,网上的其它一些Free的方案似乎还是比较麻烦,虽然之前有学过Flash的AS开发,不过那会是Flash5和AS1,现在都是Flash CS3和AS3了,几乎完全看不明白了,还好AS似类C的语法,加上代码自动补全看着手册还能写简单的东西,现在还是先用着官方的开发工具熟悉了之后再去自己搭建一个Free的开发环境哈,代码加亮自动补全工程管理单步调试等等都全的,想想也是,这些是Eclipse的看家本领,做完一个小的Flex的实际工程了,暂时这块先放着了,有空再慢慢学了~~
      这里简单提示一下初学Flex的,装Flex Builder For Eclipse时,要装Eclipse3.2版本,最新的3.3版本的好象不支持Flex Builder还是什么的,反正选中Eclipse目录始终提示该目录不是Eclipse 3.x的目录,请安装Eclipse3.x及以上版本,搞了N长时间郁闷的,最后还是换了3.2版本的,一下子就好了,还有就是Flex的调试,Flex 2.0.1好象有个BUG,不能正确找到当前的系统默认浏览器,同时也就找不到正确的Flash插件来进行运行和Debug,这个郁闷的,查了下资料,要安装一个补丁修正这个BUG,然后安装Flash9的Debug版本才能进行正常的单步Debug,这些文件在本空间的共享文件夹里的Flex相关目录里都有的,从安装到写出第一个应用,快的话应该半天就可以搞定的哈:)(修正说明在底部:)

      然后又去看了下Eclipse的最新的进展,发现今年它的动作是除了大本营Java领域,也开始扩展除了C/C++之外的领域了,CDT是C/C++的开发环境,之前试过,在Linux下应该是比较好的IDE开发环境下,不过在Windows下因为有超大型的源码库结构,Eclipse毕竟没有专业的SourceInsight强悍,暂时也不换了,看了下它的新的PHP的开发环境,之前Delphi也搞了个Delphi For PHP,不过始终有点不爽,就象当年的C++ Builder是用Delphi来构建一样,这个PHP的环境十分的怪异,呵呵,反正说不上来的不舒服,看了下Eclipse的,现在也是和Flex一样有两套方案,Free的PDT和商业的Zend Studio For Eclipse,Zend Studio之前写复杂的PHP函数时单步Debug时用过,毕竟用UltraEdit开发PHP简单程序还好,复杂的函数时没法单步调试程序没法写的,现在Zend也跟着Adobe去搞Eclipse了哈,看来Eclipse的确是风头正劲,去Zend官方看了下,它的ZS for eclipse应该是和ZS做的一样的,因为PHP还是比较熟悉了,对比了一下Free的PDT,发现ZS只是多了一些企业级的增值的功能,偶似乎用不到,于是决定装PDT,一切顺利,Zend Studio下的语法加亮补全等基本编辑器功能全有,试了下调试器,本地Debug只要去下载Zend提供的ZendDebugger解压到任意目录(本空间的共享文件夹的Eclipse相关目录里有),Linux下Win下都有,只试了Win下的,只需要Preferences->PHP->PHP Executables里直接点Search到上面的解压目录就可以了,Debug时选PHP Script类型即可了,和Zend Studio下一样,到这里等于说ZS有的功能PDT Eclipse已经全有了:)
      不过这种本地调试对于调试函数还好,如果是一个页面逻辑,会比较麻烦,需要用到远程调试,首先要在WEB服务器上修改一下 php.ini配置(其中xxx.xxx.xxx.xxx是你的机子的IP):

    zend_extension=/usr/local/lib/php/ZendDebugger.so
    zend_debugger.allow_hosts=127.0.0.1/32,xxx.xxx.xxx.xxx/32
    zend_debugger.expose_remotely=always

      然后把ZendDebuggerServer压缩包里的 dummy.php放到WEB服务器的根目录下去,重启Web服务程序,看下了它的代码,应该是当Debugger启动时,自动向WEB服务器根目录请求dummy.php,这个文件反向连接到开发人员的主机上去来开启调试进程,一切顺利的话,和在本机调试是一样的,但由于有了Web服务器,一些PHP全局变量有值了,可以查看或修改Get,Post数据了。
      上面仅限于Web服务器和你的开发机在同一个局域网内,且你的机子上没有安装防火墙软件时才能正常通过,如果服务器是在公网上,你的机子防火对进入的报文有屏蔽时,要做一些设置,首先你的机子上防火墙要打开进入本机10000端口的数据报文,如果你想换个端口,在Preferences->PHP->Debug里修改Installed Debuggers的Zend的端口即可,默认是10000,看到这你可能知道了,如果你机子在NAT局域网里,要在出口路由器上建一个端口映射,实际测试下来,的确是这样的,不过这还不够,上面说了,dummy.php负责通知Debugger程序反向连接到开发机,它怎么知道要连到哪里去呢,看了下,Eclipse在调试时,打开了一个长长的URL:http://xxxx.xxxx.xxxx.xxxx:8080/sethost/setdns.php?debug_session_id=1010&
    start_debug=1&debug_start_session=1&debug_host=xxxx.xxxx.xxxx.xxxx&
    debug_no_cache=1197614267703&debug_port=10000&send_sess_end=1&
    original_url=...........
    ,里面有很多参数,最主要的就是debug_host=xxxx.xxx.xxxx.xxx和debug_port=xxxxx,Debugger就是直接向这个地址和端口建立反向连接的,而PDT似乎没考虑到局域网情况还是怎么的,可能是国外的公网IP资源充足,不象国内IP紧张大部分是私网地址的原因吧,试了下,下面这个方法可用,但只是临时用用,不排除今后PDT会解决掉这个问题或有更好的方法,修改你用来运行调试的PHP Web Page类型的配置(Run->open run dialog->PHP web page->xxxx),在Server 配置往下拉,在URL这里,把Auto Generate取消,手工加入URL串,这个串就是上面你之前试验时那个URL,复制下来,把里面的debug_host改成你实际的路由器出网的公网地址(NAT端口映射建好的前提下),OK,下面点RUN,注意,是RUN,不是Debug,因为你点了Debug,PDT又会重复加上一大串你刚才复制的URL里的参数会导致出错,远端WEB是根据你发送的URL串中的参数来判断是运行还是Debug的,所以,用了RUN不加附加参数已经是向远端请求Debug了,测试了下,一切OK~~

    pdtDebuger
    PS:Flex调试时的错误的解决方法修正:)

    Flash Player Not Found
    Flex Builder cannot locate the required version of the Flash Player. You may need to install Flash Player 9.0 or reinstall Flex Builder. Do you want to try to run your application with the current version?

    之前以为是装个Flex的补丁就好了,事实上之前的确是一下子就好了,不过后来操作错误,重装了一下Flex开发功夫,结果浏览器始终调不出来了,而是直接弹出了CMD命令行的说,郁闷的,而且之后又重复删啊重装Flash的播放器N多次,还是不行,最后想了,这个东西应该有能配置的地方的吧,因为注册表里配置文件里都没有描述Eclipse要调用浏览器的参数,仔细找了下终于找到了哈:Window->Preferences->Gerneral->Web Browser,不要使用Use internal Web Browser,选external,然后删掉旧的浏览器描述,里面应该会有Internet Explorer和Firefox之类,然后New一个,选择正确的浏览器路径,Apply,OK,下面一切OK了,想用哪个浏览器就用哪个浏览器调试哈,不用再烦调试运行时乱弹上面那个提示框哈:)
    再PS:由于Flex比较笨不能智能识别浏览器和浏览器插件,所以象Maxthon之类,Flash插件不是装在浏览器的Plugins目录下时,Eclipse还是不会识别会弹上面的提示框,不过运行是会正常的:)

    11/30/2007

    雷曼贱兔入手,哈哈~~

    看到就想扁,哈哈,可惜WII雷曼2由于动物保护组织的界入,不允许虐待动物,SO,没法扁了,哈哈~FILE0002

    11/27/2007

    WII浏览器中文入口计划启动

      咋天花了9刀多去WII的在线SHOP买了个浏览器,Opera的,结果打开网页显示一大堆方块,个小日本果然阴险,已经支持UTF-8了但就是不支持非日文字库内的中文的显示,而且没法输入中文~~

      今天闲时脑袋一晃,想搞一个WII的浏览器中文入口计划,计划分两阶段实施:

    1. 显示
      原理很简单,就是由入口页代理打开要访问的实际页面,把不能显示的中文变成小图片显示:)
    2. 输入
      原理也简单,同上,要输入文字时,不弹出系统输入界面,还是弹出一个中文输入法,根据拼音输入对应中文汉字的图片,选中得到要输入的汉字:)

     

      站点功能概要描述:
      RSS聚集、代理中文站点浏览、在线视听及交流……

     

      效果预览:
    1 2

    3 4

     

      待补充:)