做完作业,看看新技术

昨天做完了作业,所以今天是一个相对自由的日子。
GF说她喜欢看Friends,我就把十季都给她下来了,结果带动我也一块儿看,主要是想联系一下听力。很幽默,而且经常围绕Sex,呵呵,看起来挺新鲜的……
而今天的最重要的工作其实是研究一下MyEclipse等一堆新技术。
先看了一下MyEclipse 4.0 M2的一些新的支持,然后以此为起点开始学习它支持的一些新的框架。Hibernate、Struts、JSTL这些用过,只是修改了版本,所以没有更着重于发现。

不过发现对Hibernate3的支持中,MyEclipse可以自动生成SessionFactory,挺好,如果没有写服务的话用这个统一的Session管理也是很好的。
从简单到复杂吧:
1、首先看了JSF:这个东西经常听说,是Sun主推的,把界面完全面向对象化,组件化,是Web里面比较有潜力的一个框架。但是这个东西似乎发展的很慢。我发现Sun推的东西总是

比较难以迅速普及,真可怜。大家都在抱怨这个框架没有好的例子,用的人似乎不多,总是处于开发阶段,什么都不太成熟。但是看程序员介绍Java Web Creator可以直接集成开

发JSF应用,看起来不错,因为好的IDE是效率的保证。研究了一下发展趋势我就没有进一步的研究技术细节,不过了解到JSF偏向程序员的观点,面向对象特性非常好,不过我本人

倒是对这个无所谓,因为界面本来就不应该是程序员写的,界面也根本不必要面向对象。我这么说肯定很多人不同意,也许都是程序员吧:D
2、看了看Tapestry:说实话,这个东西真的是让我非常兴奋。Apache jakarta项目下面的一个框架,东西比较轻量,是一个简单清晰的MVC实现。它的Controler层比较多的依赖后

面的商业逻辑,这样的设计个人感觉会提高效率,并且队分层的清晰没有影响。如果前面用个Struts那样的重一些的框架,分层的时候经常会过度设计,后果嘛,嘿嘿,就是运行

慢维护繁琐。
我最欣赏Tapestry的地方在于它很好的解决了分工问题,它明确的将显示叫给html,而将业务代码巧妙的隐藏在html tag的属性里面,对页面代码的侵入非常的小,所以它的模版

页面都可以用Dreamweaver这样的WYSIWYG设计工具来开发。考!这可是绝对的好消息,这样美工就是美工,程序员就是程序员,不会让程序员拿着美工的页面胡乱修改造成显示效

果差强人意了(呵呵,有点偏袒美工)。程序员的逻辑方在于html绑定的配置里面,Tapestry有两种常用组件,一个是Page一个是Component,一个渲染页面一个是抽象的页面组件

,反正都是面对显示的界面,非常适合做Web方式的J2EE表现层。
另一个令人感觉舒服的地方是分散的配置,看一看典型的Tapestry配置都很简单,一个.application里面只需要配置一些程序级别的设置。而所有的页面和动作都可以分散部

署,.html和.page或者.jwc关联确定一个动作或者页面设置,同时可以调用后面的Java Bean,相互比较独立,不用集中描述部署符,可能比较适合我的思维方式吧。同时Tapestry

也支持多语言,每个页面或者组件都可以对应多种语言,可以通过.html的命名方式或者关联的properties命名来支持多语言,分开的描述还是很舒服。
还有个地方,发现Tapestry的所有后面的Action都是Abstract的,看了说明,它服务的时候会动态派生具体类运行,这样的并发多线程挺好玩,具体优略就不得而知了,但是估计

不错,要不为什么特别亮出来Show。
然后,事实上,我跑了一个Tepestry的HellowWorld,然后修改了些动态的东西,体验了一把新技术就放弃了,放弃的原因主要如下:
因为正在开发的项目用Struts,用了titles来管理布局。以前用惯了JSP:include,而Tepestry里面没有直接的布局类,现在的东西移植不过去,找了一下真的没有特别好的实现。

用了一个特别的html兼容模版结构就没法用jsp里面那些第三方插件库了,这个是个损失,有得必有失。发现Tepestry的程序做简单的项目的比较多,大一点的估计就Appfuse有了

,没有经历仔细研究,放弃了。不过看到Sitemesh这种开放的布局框架可以与Tepestry结合,弥补这方面的缺陷,Appfuse就是这么实现的。
Tepestry对我的另一个打击是刚刚出了Tepestry 4.0Beta2,而且似乎很快就可以正式版了。而现在的仅有的书Tepestry in action是对应3.0的,其他的文章和例子也都是3.0的。

去官方网站发现Tepestry 3.0和4.0的区别是很大的,开源框架从来都是这样,整数版本号一变化就别想平滑升级了,头疼头疼。我仔细看着Tepestry的官方的上手指南开发,不过

我的Myeclipse是只支持3.0的,麻烦,搞了半天,到后来的复杂的例子总是调试不好,发现都是版本冲突造成,变化太大,我又不熟悉,所以干脆就放弃了。干脆等版本稳定一些

再仔细学习吧。同时提一下Tepestry现在年轻气盛,本身很优秀,但是文档很少,中文文档更少,官方网站也提出目前Document还不完善,所以还是要等社区建立好一点,我再入

手吧。
顺便抱怨一下,Struts 1.1 to 1.2,Hibernate 2 to 3,Spring 1.1 to 1.2变化都特别大,学习资料互相冲突,原来的代码都需要比较多的修改才能部署,让新入手的人碰壁再

碰壁,没办法呀……,开源的进化就是跳跃性的。
4、看了看Appfuse。不想多说了,造就下载了,当时没有搞定。但是当初为了这个才装了Ant,才有了后来的学习……这次再挑战,我又是走了无数的弯路,一直ant install-xxx

、ant new、ant这样的运行修改,怎么都搞不定。其中引出修改Tomcat配置符,修改Mysql密码等一系列问题,不多说了。我把Tomcat自动部署从Build.xml中注释掉了,最后发现

用ant setup就可以安装了,靠,他们说明文档怎么不写清楚,我编译的是Struts+Spring+Hibernate的版本,准备对比不同版本研究一下这个程序。说实话能把它部署上真的是太

好了,本来很简单我却走了那么多弯路,可惜,不过有了这样的Demo,估计对以后的开发有帮助。其实在这之前我还花了大量时间调试Spring+Struts+Hibernate组合,在

Myeclipse里面,不过没有搞定,主要是嫌麻烦,写了一半又删掉了,然后又想写……反正耽误了不少时间,以后应该减少这样的事。
5、下载了马达加斯加、史密斯夫妇、马拉松、世界大战这几个电影,都是比价期待的,发现品质还都可以接受,呵呵,周末和她一块儿看。
6、前两天把和平之月一个系列的Mp3全部下载了,真的是很棒的世界音乐。可以去Verycd搜索和平之月,我下了2x张专辑,这是一个唱片公司的厂牌,所以专辑众多,都是亚洲风

情的。
7、升级了下我的ant,忘记说了,否则无法运行appfuse,它需要1.6.2以上的ant,最新好像是1.6.5。我发现ant.apache.org访问不了,很久以前就不行,下载真的挺麻烦的。奥

,对了,还有andromdaMDA,这个东西是个开源的MDA,对于Hibernate开发可以把数据库设计->映射->Pojo这样的过程反过来,建模->生成POJO和映射->数据库设计,也就是模型驱

动开发,有时间研究一下。
Ant可以去这里:http://mirrors.isc.org/pub/apache/ant/binaries/apache-ant-1.6.5-bin.zip
或者这里:http://www.javaresearch.org/members/jross/ant/apache-ant-1.6.2-bin.zip
8、张楚推荐了这个Video:
http://www.nytimes.com/video/src/2005/06/29/technology/highbandwidth/windowsmedia/20050629_GUEST_VIDEO_HI.asx
号称iPod flea,iPod跳蚤,很搞笑的讽刺了Apple:D
9、周日看了Jobs在斯坦福的毕业典礼上的讲话,很受感动,推荐大家Google一下看看。Jobs是Apple的传奇CEO。

解读Wave文件头结构

解读Wave,文件头解释,可以用16位编辑器UltraEdit打开,然后可以观察文件的结构。
我发现对应C语言里面的字WORD(32位),16进制文件对应2个字节(Byte),而DWORD(64位),对应4个字节。
然后顺便普及一下16进制文件的存储规律,对于WORD,先存储低位字节,然后存储高位字节,而DWORD,则先存储低两位的低位,然后是低两位的高位,然后是高两位的低位,然后是高两位的高位。
介绍一下WAVE文件的结构:
标志符(RIFF)
数据大小
格式类型("WAVE")
"fmt"
Sizeof(PCMWAVEFORMAT)
PCMWAVEFORMAT
"data"
声音数据大小
声音数据
查到C语言中对应的WAV的文件头结构如下:
Typedef struct
{
WAVEFORMAT wf;//波形格式;
WORD wBitsPerSample;//WAVE文件的采样大小;
}PCMWAVEFORMAT;
WAVEFORMAT结构定义如下:
typedef struct
{
WORD wFormatag;//编码格式,包括WAVE_FORMAT_PCM,WAVEFORMAT_ADPCM等
WORD nChannls;//声道数,单声道为1,双声道为2;
DWORD nSamplesPerSec;//采样频率;
DWORD nAvgBytesperSec;//每秒的数据量;
WORD nBlockAlign;//块对齐;
}WAVEFORMAT;
然后我们根据实际的一个文件的文件头进行对比分析,然后大家就应该明白了:
首先是一串“52 49 46 46”这个是Ascii字符“RIFF”,这部分是固定格式,表明这是一个WAVE文件头。
然后是“E4 3C 00 00”,这个是我这个WAV文件的数据大小,记住这个大小是包括头文件的一部分的,包括除了前面8个字节的所有字节,也就等于文件总字节数减去8。这是一个DWORD,我这个文件对应是15588。
然后是“57 41 56 45 66 6D 74 20”,也是Ascii字符“WAVEfmt”,这部分是固定格式。
然后是PCMWAVEFORMAT部分,可以对照一下上面的struct定义,首先就是一个WAVEFORMAT的struct。
随后是“10 00 00 00”,这是一个DWORD,对应数字16,这个对应定义中的Sizeof(PCMWAVEFORMAT),后面我们可以看到这个段内容正好是16个字节。
随后的字节是“01 00”,这是一个WORD,对应定义为编码格式“WAVE_FORMAT_PCM”,我们一般用的是这个。
随后的是“01 00”,这是一个WORD,对应数字1,表示声道数为1,这是个单声道Wav。
随后的是“22 56 00 00”,这是一个DWORD,对应数字22050,代表的是采样频率22050。
随后的是“44 AC 00 00”,这是一个DWORD,对应数字44100,代表的是每秒的数据量。
然后是“02 00”,这是一个WORD,对应数字是2,表示块对齐的内容,含义不太清楚。
然后是“10 00”,这是一个WORD,对应WAVE文件的采样大小,数值为16,采样大小为16Bits。
然后是一串“64 61 74 61”,这个是Ascii字符“data”,标示头结束,开始数据区域。
而后是数据区的开头,有一个DWORD,我这里的字符是“C0 3C 00 00”,对应的十进制数为15552,看一下前面正好可以看到,文件大小是15596,其中到“data”标志出现为止的头是40个字节,再减去这个标志的4个字节正好是15552,再往后面就是真正的Wave文件的数据体了,头文件的解析就到这里。
下面从别人的文章转述文件体的数据格式:
16位单声道:
采样一(低字节、高字节),采样二(低字节、高字节),……
16位双声道:
采样一[左声道(低字节、高字节)、右声道(低字节、高字节)],……
这样,我就明白了WAVE的文件结构了,希望大家能够从中得到帮助。

Eclipse3.1和Myeclipse 4.0M2

今天听说这两个都更新了,我就去马上下载下来试验了一下。(Eclipse是一个很好的IDE,特有超强的插件结构……,Eclipse的直接发行版本进行Java开发很好。Myeclipse是一个Eclipse插件,支持J2EE开发,整合了Struts、Hibernate支持等等,开发J2EE的非常好用的平台。)
地址如下,Eclipse Release Build: 3.1:
http://download.eclipse.org/eclipse/downloads/drops/R-3.1-200506271435/index.php
MyEclipse Enterprise Workbench 4.0 M2 for Windows 98/2000/XP (6/28/2005):
http://www.myeclipseide.com/Downloads%2Bindex-req-viewsdownload-sid-10.html刚才试验了一下,EC的界面相应速度明显变快了。Myec运行也很正常,部分图标改变了,能够正常代开以前的工程,也不许要额外的设置,一会儿看看注册是否正常,估计问题不大。
大家有时间可以来试验一下。

Lost in UML

为什么我们小组这周都没有动静呢?
原因是高级系统分析与设计的倒霉作业,哎,痛苦奋战了3天有余……
哎,不认真学习和听课还有看书就是不行,什么概念都不清楚……
我对UML的认识就是几张图,别B4我。
不过花了些时间研究UML Modeling工具:
1、Rose这个不说,ZH说体积达到2G,靠我可不愿意和这种巨无霸为伍,想起来就晕。而且听我一些Buddy说这东西比较容易死机的

2、以前用过Visio,我觉得很好用。不过一些朋友说不标准等等,而且仅限于画图,我就准备学个新的。
3、然后就学习了停很多人说的非常伟大的Borland公司的Together,而且学习了其中和时髦的Eclipse结合的Together for
Eclipse的版本……
4、然后,下载了最新的版本Together fo EC 7.0,然后找了破解,因为这个东西不注册连界面都看不到。结果伟大的Shock(一个
0Day,破解了很多Java应用)的破解居然不能Work,搜寻多方结果大家说Together for VS.NET的ROR(我们国内的骄傲,世界范围
内都受到尊敬,推荐ZH加入)的注册机可以用过来,然后破解“成功”。
5、Together for EC 7.0居然没有画图的图例……我就特别天真的用树模型建模,企图表示用力关联,结果怎么也搞不定,大约花
了我5、6小时研究,都不可能,下载了很多资料也找不到帮助,我气馁了……
6、柳暗花明,我又装了Together for EC 6.3,带破解,可以运行。一进去发现明显有图例工具的!这时候我才发现也许我用的
7.0的破解有问题,真是后悔……
7、研究Togther 6.3,先画了用例图,同时写作业前面的内容,画好了,要导出到Word,结果傻眼了,倒霉的Together居然只支持
输出.svg……
8、说起SVG,那是当初ADOBE为了和Micromedia的Flash对抗推出的一种适量图像标准,文件基于XML,架构优良……不过哪里架得
住Flash的牛势……后来基本上比较惨,境地和VRML差不多……其实最大问题还在于支持太少,连Adobe的Photoshop都不支持它…
…而我就栽在这里了,输出的.svg如何能够转成其它格式?
9、话说我也倒霉,我就妥协了。我干脆去截图……花了很久时间截图,就为了赶在上课前交作业……
10、结果很简单,这种效率下,没有按时完成作业,硬着头皮去上课了……
11、结果很幸运,宋同学和郑同学还有王庆华同学都没有完成作业,心里窃喜,嘿嘿,法不敌众呀,哈哈哈哈:D……
12、又受刺激,听了ZH同学说,原来作业里不只需要用力图,还要用例规约、类图、顺序图、写作图……我考,我当场眼冒金星险
些晕过去……
13、回家我发誓我要搞定它!这里的它指Together for EC生成的.svg文件。首先解决默认.svg中文乱码的问题(考,这么到处都
有这种问题!)。去下载了一个中文的SVG Viewer解决问题了,同时还找到另一种解决方法,就是把原来文件里的font=&oaps宋体
&oaps修改为font="SimSun",这两种法方都可以。
14、然后继续努力,发现原来ADOBE的illustrator(就是我画美事同盟LOGO那个软件)可以打开.svg的,有了它就可以转换格式了
,结果发现illustrator只能存放矢量格式……不过我们有Photoshop呢,从illustrator分离图形,然后粘贴到Photoshop,另存为
……格式转化成功了。
15、先把这些用力图搞定,然后画了顺序图、类图什么的把作业搞定了。
16、然后我觉得Together不过如此,可能比较偏向于Team的过程的解决或者说MDA的解决,它并不是最关注建模本身还有画图这个
重要功能。所以决定抛弃它。我认为下一次完全可以考虑Visio了。
17、宋同学给我推荐了一个获得Jolt大奖的建模工具,说它很有可能很牛。回去查了一下,它就是这个东西:“Smart
Development Environment最终在设计工具类总共8个提名中胜出。其竞争对手包括BM Rational Software Architect, Borland
Together Designer 2005, MagicDraw UML 9.0 和SmartDraw 2.0。”
18、关于Smart Development Environment
Smart Development Environment ( SDE ),是赢得该荣誉的UML建模工具,它是可以应用于各种IDE如Visual Studio .Net,
Eclipse/IBM WebSphere, Borland JBuilder, NetBeans/Sun One Studio, IntelliJ IDEA, Oracle JDeveloper and BEA
WebLogic Workshop上的方便易用的插件,可视化地提供统一的建模和开发环境……
http://www.umlchina.com/News/Content/200.htm
19、恩,要试验一下,搜索到这个东西是visual-paradigm开发的,官方网站在这里,我给一下下载的页面:
http://www.visual-paradigm.com/download/
20、我下载了Visual Paradigm Suite 2.0,里面包括所有需要的东西,包括一个主程序和各个IDE的插件。我下载并安装了,看起
来画画绿绿,且支持输出多种格式的图形,这个看起来不错,而且很多朋友都说很好用。
到这里这个Lost in UML就写完了,我真的是迷茫了,看了高级系统分析与设计的课件、谭火彬的UML课间、下载了基本Java UML的
书不过还没看……其实一个好的工具太重要了,在这里发一下感慨。
BTW:写这个时我键盘旁边的杯子又倒了,真是和前几天的经历一样倒霉,这次键盘没有遭殃,我的床彻底湿了……这里善意的劝
和电脑天天打交道的朋友们一定不要在键盘旁边放水杯、牛奶杯、咖啡杯、可乐杯(他们的破坏力依次增强),否则后果很严重…
…我这次是第多少次了呢?我也记不清楚了,但是真的太多次了……

Eclipse和UTF-8及Unicode的研究

说研究就研究,尽量一丝不苟。
仔细研究了一下我们那个Properties的过程,发现原理是这个样子的。
首先对比了一下文件的Hex的编码情况:
使用记事本存储“我是人”三个字,发现如下:
首先可以发现Unicode、Unicode-Bigendin前面都有辨别码,分别是FF EF、EF FF,以此区别编码序列,也同时声明了这是一个Unicode的文件。每一个汉字使用两个字节。也就是说用的是UCS-4。
而UTF-8也使用了辨别码,但所有UTF-8字符都是3个字节的,辩证码是EF BB BF,和Unicode的辩证码其实是一个字符。每个汉字用3个字节表示。学习相关知识可知Unicode和UTF-8是可以直接映射的,两者影射其实是兼容的。
而Ansi模式其实应该使用的是GB2312编码,没有辨别码,所以需要默认的编码,中文Windows就默认GB2312。编码每个中文用2个字节,编码以后的内容和Unicode不同。
继续分析我们开发所用的环境的过程:
首先,分析Eclipse写出来的文件,此时我设置的工作空间编码为UTF-8,发现文件没有辨别码,也就是说这个文件被其他编辑器打开不可能知道这是什么编码。而文件里面其实根本就没有使用UTF-8编码,因为所有的中文都是2个字节的编码。我怀疑是UCS-4,所以分析一下,在刚才用记事本写的文件里面写入“美食同盟网”察看Hex状态的编码。
在Eclipse的文件里面“美”编码0xC3C0。Unicode里面是0x8E7F。Ansi里面是0xC3C0。Unicode-big里面肯定是0X7F8E,和Unicode那个反过来没的说。
所以,呵呵,我想一切旋疑都解开了。我们敬爱的Eclipse不管如何设置,其实他还是使用了你的操作系统的默认编码,而我们这里就是GB2312了,即使我们设置了UTF-8。其实问题是这样的,本来Eclipse默认latin-1编码,如果用那个方式,写了中文的双字节字符以后再打开就会造成乱码,而设置了UTF-8以后能解决以多字节(2个、3个)的方式打开文件的问题,不过其实还是用GB2312打开,这个可能是Eclipse对Properties文件未知格式的原因,因为用Eclipse打开存储UTF-8的XML文件是没有问题的,这个大家都有经验。由于Eclipse的多字节文件没有存储识别码,所以XML文件还有JSP文件的Charset一定要声明UTF-8,否则还是有可能出问题。
然后到这里已经真相大白了,这样再解释一下前几天出现的那些问题:
1、由于单字节多字节的问题和Eclipse不存储识别码的问题,我们最好把工作环境强行换到一个多字节环境,比如UTF-8。防止互相出现乱码,大家最好都用中文的Windows,否则估计还有可能出现问题。
2、解释上次native2ascii -encoding gb2312 ApplicationResources.properties ApplicationResources_zh.properties这个命令,网上那位老兄还说为什么Encoding改成UTF-8不行呢,因为你的Windows默认的就是gb2312,设UTF-8当然乱码。
3、解释native2ascii。其实这个过程和UTF-8没有任何关系,而且编码出来的文件的确是Unicode的转义字符。其实编出来的文件根本本就是最普通的单字节Ascii文件,只不过它把双字节的Hex方式直接用明文存储为单字节Ascii文件了,转换明文使用Big endian方式,也就是高位在后。为什么这样呢,因为Java多字节只支持Unicode,或者说是遗留,反正Java没有直接支持UTF-8,内部传输都使用Unicode。这不是问题,因为映射相同输出的时候Java很容易把Unicode转为UTF-8。而我们转那个文件只不过为了让Java可以轻松的把你的文件从转义字符转化为Unicode,过成就比如把“/uC3C0”这样的自符串转化为“美”的编码0xC3C0了。这么说有点乱,过程其实如下:
“美”在Eclipse存,然后在文件中如果用Hex察看是[C3 C0]。
然后用Native2ascii转,你看不到“美”只能看到\u7f8e,而这时候如果用Hex察看是[5C 75 37 66 38 65]这么大一长串Ascii了。
这次明白了吧。
4、关于UTF-8和Unicode还有UCS的东西大家看看资料吧,一搜一大把。
UTF-8 and Unicode FAQ(中文,这个很官方,很有价值)
http://www.linuxfans.org/nuke/modules.php?name=News&file=article&op=view&sid=1749
谈谈Unicode编码 简要解释UCS/UTF/BMP/BOM(说的很通俗,而且涉及到的细节多,帮助大)
http://news.onlinedown.net/info/13164-1.htm

我的计算机的升级历程

由Q3ACN的一个帖子所起,想起了会议一下,非常粗糙时间也可能不太准确,而且很多升级的内容也没我忽略了……

1997年6月:去电脑爱好者城买了创新的带遥控8X光驱,和一个冲击波1000S音箱,还有一个逻技的2健机械鼠标。
1997年7月:我和我爸爸骑着自行车顶着太阳去中关村一个配件一个配件的选。买了另类的AMD K6 200Mhz,主板用的技嘉的,内存EDO 32MB X2,火球硬盘2.1G,Acer 7156i 15寸显示器,台湾产某品牌服务器机箱电源,Acer工作站用大键盘,创新SB 16声卡,显卡是联讯3235 S3 Virge 4MB,配了两个机箱风扇都是Sannon的。
1997年11月:升级内存为SDRAM 32MB X2,主板支持两种插槽。显卡内存扩充到6MB。
1998年1月:卖掉了技嘉的主板,理由是觉得这个牌子没名气。然后顶着雪骑车去中关村买了ASUS TX97-X。买了一个全向外置56K Modem,从这个时候开始上网了。
1998年2月:换掉创新SB 16,变成SB 16 Wave effects。其实只是软件的区别,却花钱换……
1999年某月:换显卡,跑遍了中关村就为了找到PCI接口的ASUS 3DP V3000,用的是Nvidia Riva128,4MB SGram。而后又换了Pine的一块Areal 8820B2芯片的一块声卡。
1999年某月:换了K6-2 300Mhz,超到350……
1999年某月:换了Diamond S70声卡,又换了M80,不过因为负债都用了不到一个月就出手了……可惜呀。
1999年某月:买了创新SB Live! Value,那感觉真爽。
2000年某月:换了.25工艺的K6-2 350Mhz,超到500Mhz。当时还是使用TX96-X,这块主板年老超频依然牛。
2000年某月:先升级为Maxtor 2.8G硬盘,然后转手换了火球6带6.4G硬盘,然后又转手换了Maxtor 10G硬盘。
2000年7月:换了AMD Duron 600,同时换了磐英的一块KT133主板,超800……
2000年11月:上Abit KT7A主板。
2001年:上磐英8KTA3 KT133的主板,带了Raid。同时显卡换成了七彩虹的GeForce 2MX吧,记不清了。而后好像是硬盘从IBM 20G 40GV->35G 75GXP->40G 60GXP,反正三天两头的数据问题……而后上了LG的刻录机,从8X换了24X换了32X又换了40X。这些东西换的很勤,因为总给人家装机器,我的装给人家,然后再买新的,所以所有东西基本上都是新的。
2002年:上Abit KG7-Raid,和红线一样,因为当时促销。CPU变成了雷鸟1.4G。硬盘加了酷鱼4 60G和酷鱼5 80G。那年开始用DVD驱动器了。显卡换成了旌宇Geforce4 MX440,用了不到一个月,换成了七彩虹的Geforce 2 GTS,因为这个县卡显存有散热片。这个时候内存应该已经是Kingmax 256MB DDR333了,已经升级很多次了。这一年开始上Q3ACN,从狸猫那里买了IE3,换掉手里的IO。这一年号像还换了爱国者788FD显示器。
2003年:换了旌宇Geforce3 Ti200,内存换成了Kingmax DDR400。买了WD 120BB硬盘。CPU变成Athlon XP 1700+。年底CPU换成了1800+,新核心,没锁频。这一年好像是玻璃鼠标垫之年,天天忙活着跟Slidemat相关的破事。
2004年:装了Lite-ON 812S DVD+-R,刻录机也上了Lite-ON 52327S,DVD从Pioneer托盘变成了吸盘。终于花钱换了一个世纪之星的比较好看的机箱,从大眼仔那里买了MPT-400电源。而后上了Abit NF7 2.0+TT 10A+Promise Ultra100卡+NEC USB2.0卡那堆东西。年中还买了Dell版的Audigy 2。用了一段时间MX310,年底从丸子处购入IE 4.0。
2005年:上了Dell 1704FPT液晶,顺便买了个8135键盘。

好像一开始很豪华,后来就好一些,越来就越理智了。99年到04年靠帮别人装电脑其间换了无数的东西,有些都忘记了……我和狸猫那类奸商不同,装机都是义务的,不过后来免费售后做怕了,就不那么玩了,因为算了半天总是往里面贴钱,对不起老爸呀……

Life is Random!生活是随机的!

从iTunes一开始移植到Windows平台我就开始尝鲜享受这个Apple的彩蛋。可是当初感觉这个Apple的玩意和它的Quicktime播放其德界面一样,金属拉丝的表面,清淡的图标,没有那么多颜色,只是让你感觉冰冷。所以,很快放弃了。其实iTunes可是Apple的亲生女儿,是它手下最重量级的几个软件之一。后来是因为Apple的老乔把他的iPod扩张到Windows平台的需要,他才忍痛把这个女儿嫁到了MS平台。还好,这桩姻缘赚大了,iPod已经成为了Apple的支柱,而iTunes的移植功不可没。
每次一说到Apple总是觉得很牛,不过这个倾向性太大,我先不扯远了。
说到,后来也装过很多次iTunes,不过似乎这个看起来清淡的的东西其实还是个资源大户,运行起来并不快,所以每次我都会留下Foobar,而放弃iTunes。但是当时就已经听说过iTunes+iPod可以实现随机下载的功能,每次可以让iTunes自动充满iPod,而不需要你费尽苦心的来考虑这次要拷贝什么歌,的确省心。要知道每次往我的Mp3里面考歌都要费好久时间考虑,而且后来还发现每次考的歌总有很多重复的,因为人总是怀念那些老听的歌,这样真的没什么意思。可当时只是想,我没有iPod也就没法享受这个功能了。
在后来,去年来了iPod Shuffle,这个东西当时我也有点动心,虽然有点贵,但还是蹦蹦高可以买到。但是,后来的经济危机和评测让我对这个小东西也不那么YY了。不过,对Shuffle的那个口号Life is Random!我非常的认同,是非常!硬盘里50多G的Mp3,听一遍要多久?经常听得就是那么几张专辑,很多好歌被埋没了。使用Foobar的Random功能只能在一个目录里面Random,我觉得解决不了什么问题。
后来,发现iTunes居然可以在你硬盘的所有Mp3里面进行Random,我靠!这简直就相当于在你的计算机里面放个DJ。而且,我发现iTunes的Random功能非常强大,很少让你听到重复的,而且跳跃也非常的大,简直太适合有大量Mp3收藏的人使用了。

使用:
1、下载iTunes并且安装(可以看到Apple网站上iPod+iTunes是一个频道,没有iPod也可以享受这种便捷太爽了)。http://www.apple.com/itunes/download/
2、打开iTunes,会提示你是否需要让iTunes管理你的Mp3 Tag,我推荐让他管理,因为iTunes的管理功能真的非常强大!也很方便。
3、选择File,选择Add Folder to Library…,然后把你放Mp3的目录添加进去,然后等待iTunes搜索目录,一个个全部添加。你可以看到iTunes的界面下面会显示出你的Mp3的统计,比如我的7760 songs,22.5Days,38.63GB。不常听的目录可以不添加,省得放出来心烦。
4、点击上iTunes左下角那个交叉的图标(也就是Shuffle),然后点击左上角的那个三角播放键。
5、最小化,然后开始享受你的随机的生活!

从Google-X剥离出导航条的一个Mod

从icebin的Blog上看到的源代码。据称是google用了一天的一个界面,酷似Mac OS X上面的Dock,非常好玩。完全是javascript,没有flash。可能是Google的固执吧,这个东西用Flash会很简单,但是用javascript可就非常难了。仔细看了代码,写的很简单,充满了google风格的简写,非常注意减少文件体积,绝对经典。我现在的导航条就是从这里个剥离的,把Title条给去除掉了,只留下Aqua风格的图标和Dock的隐藏展现的特效。

由于Google的代码很变态,他们有点抠门的使用变两名(尽量只用一个字母),还有不用引号,这些虽说节省带宽,不过确实不规范的。不符合xhtml1.0标准。把他们短短几行代码剥离以后放到我的网站,进行xhtml验证,发现居然出现一百多个errors,靠,改了半天。所以,标准与不标准看来不是谁都注意的,不如google,他们有自己的方法论。

实现清参考我的主页http://tiny.51.net,首页的导航条就是用这个做的,网站速度慢(可恶的虎翼,越来越慢!)所以需要耐心等待一下就能看到效果,很酷的

Communication failure during handshake. Is there a server running on localhost:3306?

今天重新部署我的工作环境,是一个Apache+PHP+Tomcat+Mysql的集成环境。

我有个追新的毛病,看到Mysql的新的stable版本释放出来我就下了一个,安装上了。其它的几个服务都调试通过了,但是Tomcat和 Mysql却连结不上,提示错误Communication failure during handshake. Is there a server running on localhost:3306?,当时以为是mm.mysql的驱动的问题,去网上察看了一下,这个2.0.4的驱动居然是2001年的,新的版本叫做作Connector/J 3.x了,作者是Mark Matthews。以为是这个驱动的问题,但询问了朋友,说他们那个工作正常。

Google一下吧。

先是国内有个地方说是因为root将默认的空密码设置了密码造成这个问题,我重新建立了一个用户,但是还是抱这个错误。

继续,结果在Mysql.com的官方网站上看到这个解释,是因为新的Mysql的认证机制发生了一些变化造成的,解决方法如下:

I’d to change the authentication method at the mysql server:
set password for <username>@<servername> = old_password(‘<password>’);

将红色那部分敲进去就解决了,呵呵,特此记录一下。

顺便,新的Mysql的向导程序作的不错,看来以后真的有潜力占到一线和大厂商拼一拼。

Logitech USB Headset声卡和Audigy 2 Dell SB0350声音对比

1、客观对比
使用软件RightMark Audio Analyzer 5.4
测试声卡的理化指标,使用Loopback方式进行测试。录音通道全部使用Audigy 2的线性输入通道,这是为了方便对比,因为如果各自用自己的输入作为评测没有对比性。Audigy 2的线性输入的整体水平不算很高,但在平常用的声卡里面算不错的,X-sound以前都用6fire DMX,我也用不起,呵呵。Loopback用的线是Monster Cable,线的质量还是非常不错的,以前用过的一块M80里面送的,可惜这块M80已经不知何处去了,现在真想收藏回来。
关于测试成绩,非常遗憾,可能是我的设置的问题,测试成绩比较差,或者说也许是我的RMAA的使用上有点问题,反正成绩很差。但是我就是想对比一下,对于两块声卡,现在的声卡用来对比还是没有问题的。
关于使用的驱动,Audigy 2我使用的是安装了Dell光盘里面的驱动然后到Web进行更新的,版本是5.12.2.244的WDM驱动,我看游飘的驱动现在好象也是基于这个内核的。虽然Audigy 2没有使用号称效果更好的vxd驱动或者kx或者其他修改版驱动就是图个省事。而Logitech USB Headset的驱动是微软提供的5.1.2535.0驱动,这是个通用驱动,不过USB声卡一般都是用通用驱动的。
下面是两者在RMAA中的成绩的对比表格:
点击查看原图
其中每块声卡分别在44.1Khz和48Khz测试两次成绩,这是因为按照AC’ 97标准44.1Khz需要SRC(采样率转换),而以往创新声卡在48Khz下面的成绩会好一点。

点击查看原图
Audigy 2的IMD和频响两个测试成绩显然问题大了去了,大家就当没看见好了,那个是我测试的问题。
从指标上来看,两者还的确不是一个水平的(废话)。不过从Logi USB声卡上来看它的表现和主板上的AC’ 97还是有一拼的,大家可以参考2005年6期的《微型计算机》,上面有个般载声卡的测试,可以看到Logi USB声卡比他们差不了哪里去。参考微计的成绩,Logi USB比ALC 655效果好,比AD1888略差,比VT1617A基本持平(比它分力度好),比CMI9739A好不少,当然比起后边两个HD Audio的差一些。所以,我的结论是它的效果应该是略微好于主流的AC’ 97声卡的,我觉得可能它的Codec素质还是不错的,并且外置的声卡在抗干扰方面会比机箱里面的AC’ 97好一些。
2、游戏性能
这部分主要是想看看,这个东西的CPU占有率,毕竟是USB东西,怕占资源呀。
测试的方法很简单,到&not;Windows的控制面板中把声音的首选设备修改一下。我的方法是测试一下Q3A的桢数,用我自己的Cfg,所以只能对比,不能与其他人的结果比较。
测试时先测试一次four,从第二次到第四次纪录四次成绩,然后平均。
运行的时候我的机器开着Bitcomet、PPT、CyberArticle、Maxthon,可能影响一些成绩。
其中Audigy 2三次平均是246.7 fps,而Logitech USB Headset是243.1 fps,差距不大,说明我的CPU还凑合,不,应该说现在这种USB声卡的CPU占有率基本上可以接受。但是的确还是主板上的硬声卡比较节省资源。
游戏中的定位效果嘛,我不瞎说,因为没用它玩过几次Q3,能用,因为在Q3里面辨别方位还是靠耳朵,耳际也比价重要,但是声卡似乎听不出太多差距,可能因为玩游戏的时候精神比较集中,没有顾及声音吧。
3、最后主观听音
说实话,写这部分没什么信心。记得去年写过一个声卡对比,当时测试的是A2、黑2V、大力神FII,写出来本来是很有信心的,结果放到POP就被批评个狗血喷头,人家都歧视我的“金耳朵”是枪。我没有发烧的耳朵,当时只是把细小的区别描述了一下,结果变成了夸大的效果,就被批评了。这里费了半天话,就是想解释下面的描述是不权威的仅仅是一种个人感受 ^__^
听音使用Foobar,输出使用DirectSound 2.0(我试验了Logitech USB Headset选择KernelStreaming和DirectSound 2.5没有声音)。耳机用的Labtec E840。驱动还是前面所说的。
OK,Let’s Rock!
先来个梦喃的Dream To Dream,格式是Mp3,162K的VBR。这是一个女声,前奏有钢琴,声音比较有磁性,听起来很性感,而且音乐低频比较丰富,这两天觉得这个专辑很不错。所以用第一首Ain’t No Sunshine来测试,看看声卡表现这种磁性女声的效果如何,也看看低频解析和声音质感。先听得LUH(简写吧,Logitech USB Headset),效果吗,不容乐观,因为已经习惯了A2的效果了,听到这个感觉有一点失望,比较干巴巴的。LUH的效果还算不错,低吟的效果是不错的,能听出一点磁性来,不过低音的解析不够好,钢琴缺乏了颤音,人声缺乏了唇齿音和呼吸音(我是说不清楚,但不是听不到),音场方面可能是泛音缺乏吧,感觉有一点点窄。换回A2,恩,感觉好一点,不过是一点,也许是由于记忆中的声音总是比较动听吧。唇齿音和呼吸都清晰了,这个是很容易听出来的,磁性也能体现出来了,说明小的泛音效果好了些,总体就是松了一点,听起来真的能够比较舒服的体会到那种暗处的性感。呵呵,在表现这种音乐的时候感觉声卡的数码味道都被音乐冲淡了。说句总结的,对于这首歌,LUH声音紧,有点干,解析度不及A2,不过这也是废话,如果打个分,以A2为标准1,那么LUH可以打0.8吧。
下面来点口味不同的,是The Prodigy的Fat of Land的第一首Smack My Bitch Up,这是一首House风格的舞曲,低音绝对丰富。先上A2,恩,效果不错,这种音乐对方音的效果要求不算太高的,低音够劲就有味。A2在表现这种基于C&P的电子合成的东西上感觉比较得心应手,压迫感很好,细节也很清楚。换上LUH,前面的那段Lo-Fi的前奏听起来没什么两样的,不过往后一拖动,嗯,这下好了,区别真的好大,比起前面的那首磁性的,这种冲击性的低音在这个USB声卡上表现的非常柔弱,呵呵,压迫感估计只及A2的60%,可能低音不是很好吧,声音也就干掉了,比较没有声色了。所以,就不打击这块小弟弟声卡了,它不适合这种重口味的东西。后面顺便听了LUH表现Fatboy slim和Moloko还有Chemical Brothers的Big Beat风格,也不怎么样的,我最喜欢的它都表现的比较窄,没法让人热血沸腾。
因为觉得重的有点失望,就来点轻松的。听The Daydream的Dreaming,也就是白钢琴,这个是NewAge风格的钢琴曲,来体会一下表现这种让人放松的东西的效果,格式是Ape。比较安危的是,这个听起来差不多的。先听得LUH,后听A2,感觉还是在低频有点欠缺,因为钢琴的低频是感动人的。从听起来的感觉上,两者都有数码味,有点过于干净了。不过A2的低频弥补了一点苍白,厚重一点。如果打个分的话,以A2作为标准1,那么LUH可以打0.85吧。
下面,来一首流行的F.I.R.的Lydia,呵呵,前几天KD还给过我一个他弹的Lydia,很喜欢,向你致敬。测试用的是192的CBR的Mp3。呵呵,也许是听觉疲劳吧,听不大出两者的区别,真的,感觉都不错的。表现这种中音部比较丰富,声音元素比较丰富的音乐的时候注意力可能比较集中在旋律上吧,细节的表现上的区别我的耳朵就注意不到了。总体感觉都是比较清晰的,听起来都很不