| yksoft1's profileYKSOFT's HomeBlogLists | Help |
|
August 28 腾讯与腾讯软件的5个问题这只是个想法的集合,并没有什么逻辑性。纯粹无聊而发。 这里的QQ指所有(版本代码)04、05、06系列的QQ、TM,07系列的QQ悍马和TM2008未完全公开,另当别论。 1、[QQ]程序文件充分体现模块化,但整个架构却封闭化。这个是个“历史遗留问题”了。QQ2000以来,QQ的作者为了充分体现程序的“自我包含”,什么DLL都给直接放在QQ的主目录下,从来也不把几个主要的库重写一下,把一些应当集成进基本库里的东西集成进去。结果,随着赚钱的功能越开发越多,文件数如滚雪球,越来越多。另外,还用笨办法把一些微软的可重分发DLL直接装在软件目录下,结果当年GDI+ JPEG漏洞流行的时候,虽然系统已经更新了,但只要QQ收带马图片,一样中马。但是,DLL这么多,却没有让QQ支持任何形式的插件扩展。Word、Excel有文件格式插件系统,支持OLE;Photoshop、Illustrator,插件赋予它们无限的力量;Winamp,没有插件就是个空壳。QQ呢?或许是因为DRM(防止有人盗取通讯协议),或许是因为懒得搞,总之是个全封闭的模块化架构。 2、[QQ]自从QQ能够发送图片以来,发送的(来自剪贴板的)图片永远是不能变压缩比率的JPG格式,而直接能发送的图片也仅仅限制于BMP、GIF和JPG。其实很多人使用QQ发送图片的目的并不是几个简单的表情或者照片,而是发送屏幕截图。JPEG格式具有固有缺陷,在发送纯色比例非常大的图片时会出现严重失真(尤其是纯色背景上的文字,那失真实在是非常恐怖)而且它提高压缩率的能力仅仅表现在照片之类高复杂度的图片上,对于低复杂度图片压缩效率较低。而BMP是非压缩(最多也只是简单的RLE压缩)格式,GIF只支持8位每像素。而PNG不仅具有比GIF更高的压缩率,同时和GIF一样属于无损格式,适合压缩低复杂度的图片(如屏幕截图)。如果QQ能够支持选择将图片编码成JPG或PNG格式,并且提供选择JPEG压缩比的选项,可以节省很多情况下的带宽,提高传送屏幕截图及其他图片的质量。 3、[腾讯]滥用词汇。QQ2007正式版安装器的文件名为QQ2007formal.exe,formal指的是“正式场合”那个正式,不是“正式发行”的正式!用stable(相对于alpha、beta)之类词语都比这个formal好很多。还有什么KBx补丁,腾讯的人貌似完全无视了KB是Knowledge Base的缩写,以为Windows的补丁上总有KB两个字母,KB就是补丁的意思了。貌似腾讯的支持库并没有像微软技术支持那样有十多万篇文章(都有KB打头)。腾讯的人钱多了,也许某些素养就差了。 4、[QQ]对BUG的反应速度。臭名昭著的某来自韩国的键盘加密组件,让无数Win2003用户、USB键盘用户蓝脸,腾讯照样捆绑强制安装;Vista到了Beta、RC阶段,不开管理权限建不了用户目录,开了就是蓝脸,腾讯还是没注意;Vista RTM了,腾讯似乎还有雇gunner把责任推到M$身上,直到Vista Retail之后,腾讯才放出一个QQ2007Beta1,还只是简单地检测一下系统,安装两个不同版本,Vista下装上的“K字版”0661版还不让在XP、2003用,虽然这限制一下就破掉了;后来Beta2才彻底扔掉了这个该死的组件,把键盘加密彻底改成了可选项。可和QQ2007Beta1同时期出现的TM2007Beta1,还是照样的自动试图安装这个组件。一个小小键盘保护,弄了两年才彻底解决,这段时间内,盗号马早就跑到这个键盘加密组件前面去了。 5、QQ的安装(官方版)可自定义性还是比较差。虽然那有些人不喜欢的QQ游戏、画蛇添足形同虚设的QQ医生可以不装,但是,不用Qzone的人没有权利选择不安装Qzone组件,不想QQ插入IE的人不能不装QQIEHelper,还有TM的那个虚拟打印机。。。虽然最后自己都可以想办法干掉,但是这个自定义应该在安装程序上体现。 至于蜂鸟和TM2008,一些历史遗留问题(用户目录写在程序目录下、整个程序不是Unicode的)已经基本解决(注意这个Unicode化的要求是双方都是TM2008),但是,聊天记录变成了明文XML,还不能像MSN那样不保存聊天记录。MSN的通讯本身就不是密文,但是本地的东西可以完全丢掉;TM2008还是不能不记录本地聊天记录。而且最不爽的是,TM2008的皮肤仍然不能关掉,这似曾相识的丑陋皮肤在Aero Glass下实在看着不舒服。 完了,再说又会遭到更多人(不能确定哪些是gunner)的骂了。 少量截图:Windows NT 3.51我在我的老ThinkPad T21上安装了Connectix VPC 5.0,本来打算安装苹果Rhapsody
DR2原型系统,但惨遭失败(安装第二部分卡在“初始化网络”处,无法进入安装画面)。于是找出一套NT3.51Workstation中文版,在此安
装。(我以前只在老486机和Virtual PC4.0上安装成功过,在我的新CoreDuo笔记本的VPC2004、2007上从来都无法成功)。 结 果安装过程异常顺利,NT3.51成功驱动了VPC5.0的显示卡、声卡和硬盘、光驱。虽然我一时不慎把卷转换成了NTFS(这样就无法再使用我VPC 玩古董系统第一助手WinImage,之后尝试挂新硬盘镜像也因为NT3.51 IDE驱动的问题导致不能启动),而且启动后Client、Server总是报网络上有重名(我使用VPC的NAT方式),但是系统运行还算正常,没有出 现大问题。 也许很多人会有些奇怪,NT3.51能用最新的浏览器竟然是2004年的Mozilla 1.7(传说Opera9也可以,但我没有尝试)。当然,Mozilla系浏览器的内存占用,绝对不是1995、96年的绝大多数PC所能承受的。给 VPC 64M内存,刚启动空40多M,一开Mozilla空20M,开几个页面就只空8M了。 下面是截图。 August 24 某国外站长的发明——封住那些用Adblock的人这几天国外有一个宣扬使用Firefox+Adblock的人都是不尊重站长劳动的“盗贼”的站点
http://whyfirefoxisblocked.com/ 在Digg上遭到了强大的恶评
(http://www.digg.com/software/Why_Firefox_is_blocked
,近千条评论!),而这个站长写了一些封锁Firefox、尝试通过使用假广告来检测Adblock的存在的本地和远程代码。国内某些站长可以考虑参考一
下了。 检测Adblock存在的本地Javascript代码: <img src="/fake.adbrite.gif" id="fakeAd" /><!-- 1x1 pixel image --> <script language="javascript"> function checkAdBlock() { var img = document.getElementById('fakeAd'); if (img && (img.style.display == 'none' || img.style.visibility == 'hidden')) { window.location = 'http://myDomain.com/thief.htm'; } } setTimeout('checkAdBlock()', 2000); </script> 这段代码通过使用一个虚假的广告图片,如果发现该图片为不显示和隐藏的,就判定用户使用了封锁广告的软件。 <script> function dieAdBlockPlusDie() { var giframe = document.getElementsByTagName("iframe"); var bod = document.getElementsByTagName("body"); var blocked=1; for (var i = 0; i < giframe.length; i++) { var name = giframe[i].getAttribute("name"); if(name == "google_ads_frame") { var blocked=0; } } if(blocked) { bod[0].innerHTML = '<p align="center"><font face="Century Gothic"><b>This page cannot be displayed because ad blocking software has been detected.</b></font></p>';} } setTimeout('dieAdBlockPlusDie()', 2000); </script> 而这一段则是对于那些尝试屏蔽Google Adsense的用户的。 至于检测Firefox,该站长提供了两种代码: 1、服务器端检测User-Agent <? $userAgent=$_SERVER['HTTP_USER_AGENT']; if(stristr($userAgent, 'firefox')) { header("Location: [place URL of explanation page here]"); exit(); } else {include("[place new name of article.php here.]");} ?> 这段PHP代码简单易懂,对于那些不会修改User-agent的用户很有用。 2、本地检测DOM <script> if(!document.all){window.location='http://whyfirefoxisblocked.com/';} </script> <noscript> <meta http-equiv="refresh" content="1;URL=/nojs.htm"> </noscript> 其中的URL和nojs.htm可以任意修改。这段代码不通过user-agent而通过检测本地浏览器的DOM,但是它将不仅影响Firefox,而影响一切Gecko引擎和WebKit引擎的浏览器(K-Meleon、Camino、Safari等)。 August 11 图解在Windows下使用SheepShaver安装System 7.5.3(之一)网上很多SheepShaver的教程都是说的安装8.6以上支持Open Firmware的OS,其实如果有一个真正属于一台Old World的PCI PowerMac的ROM文件,那么安装系统7.5.3——8.1也绝非不可能,而且运行起来远远比运行8.5-9.0稳定!
下面仅仅简述在Windows下进行此实验的简要步骤。
1.准备。下载Windows build的SheepShaver(http://gwenole.beauchesne.info/projects/sheepshaver/,国内部分地区需要使用代理)、SDL.dll(http://www.libsdl.org/release/SDL-1.2.12-win32.zip)、HFVExplorer(原作者的站点已经关闭,请从此地址下载:http://www.chip.de/downloads/c1_downloads_12995045.html),苹果网站上提供的英文System 7.5.3 Revision 2.2 19个包(http://download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/English-North_American/Macintosh/System/Older_System/System_7.5_Version_7.5.3/)。
现在我们还需要一个能够启动的7.5.3以上磁盘镜像(我提供一个地址:http://www.alkemic.com/music/travis/Mac%20Emulator%20Tutorial/MacStartup.img,30M,内含简化版System 7.5.5)。
至于一台OldWorld PCI PowerMac的ROM,请从一台PowerMac 7500-9600(不能用灰白G3,不支持7系统)中提取,或者我也能给大家一个PowerMac 9500的ROM(http://www.alkemic.com/music/travis/Mac%20Emulator%20Tutorial/ROMs/mac_oldworld_rom4mb.rom.zip)。
2、从各压缩包解压SheepShaver.exe、cdenable.sys、HFVExplorer.exe、SDL.dll、mac_oldworld_rom4mb.rom(或者你的ROM文件)到一个目录。建立一个无扩展名的空文件SheepShaver_prefs,输入以下内容: extfs screen win/800/600 windowmodes 7 screenmodes 63 seriala COM1 serialb COM2 rom mac_oldworld_rom4mb.rom bootdrive 0 bootdriver 0 ramsize 50331648 frameskip 0 gfxaccel true nocdrom false nonet false nosound false nogui false noclipconversion false ignoresegv false jit true jit68k false keyboardtype 5 keycodes false mousewheelmode 1 mousewheellines 3 ignoresegv false idlewait true keycodes false mousewheelmode 1 mousewheellines 3 enableextfs false debugextfs false extdrives CDEFGHIJKLMNOPQRSTUVWXYZ pollmedia true etherpermanentaddress true ethermulticastmode 0 routerenabled false ftp_port_list 21 portfile0 C:\B2TEMP0.OUT portfile1 C:\B2TEMP1.OUT 其中screen是指的模拟器窗口大小,ramsize是指模拟的内存大小(字节)(必须大于8388608才能启动7.5.3系统),jit是指是否打开即时重编译功能(大大影响速度)。其他选项以后会进一步介绍。
rom mac_oldworld_rom4mb.rom中的文件名可以改成你自己的ROM文件文件名。
运行SheepShaver.exe,你应当能看到这样的画面:
![]() 这时找不到系统盘,模拟器死机。此时应当强行结束SheepShaver.exe。
3、打开HFVExplorer。选择File=>Format New Volume。
在对话框中填入下列参数。
磁盘镜像建立完成后,在文件浏览器左侧选中新建立的镜像,右边框右键选择New Folder建立一新目录,并在左侧浏览器中展开出此目录。
![]() 在左侧浏览器中从本地磁盘找到下载苹果提供的19个文件。拖放至左边浏览器中的新镜像中的新目录中。复制方式选择自动并OK to All(其实都是MacBinaryII)。退出HFVExplorer。
修改SheepShaver_prefs,在头部加上两行:
disk MacStartup.img(你的启动盘路径)
disk f:\yk_mac\macos753.hfv(新建的镜像路径)
4、再次启动SheepShaver,这次应该能启动成功。
![]() 找到新建的磁盘镜像,进入新建的目录,
双击System_7.5.3_01of19.smi,点Agree。如果19个文件都正确,桌面上应当会出现一个新磁盘图标。点开它。
![]() 双击Installer。按提示操作直到此处:
点SwitchDisk,直到找到自己新建的磁盘镜像。一般情况下直接Easy Install即可,当然也可以自定义一些组件。
安装完成之后,点Quit,再点Special=>Shutdown,正常退出。
5、再次修改SheepShaver_prefs,去掉
disk MacStartup.img(你的启动盘路径)
这一行。
再启动SheepShaver,你能看到:
进入系统后,忽略能源之星的提示,点苹果=〉About This Macintosh...
你将会看到:
如果一切都正常,那么祝贺你,已经成功地在SheepShaver中安装了MacOS7.5.3。
其实SheepShaver是有GUI设置界面的,更简单,但是需要安装Glade GTK+ for Windows的2.6和2.8版本。下次再详细介绍。
August 08 介绍一个Old World Mac模拟器:SheepShaver for WindowsPowerPC Macintosh的模拟一直是一个艰难的话题。虽然像基于QEMU的PearPC等工程已经能够一定程度上模拟出运行Mac OS
X的PowerPC机器,但是目前唯一做到模拟一台使用旧世界ROM(Old World ROM)的Power
Macintosh的,也就是这个SheepShaver。它最初是运行在BeOS上的程序,后来实现开源化之后被移植到很多平台上。Windows平台
的Build是2005年才出现的,很大程度上得益于另一个模拟68k Mac的模拟器BasiliskII的源代码。 SheepShaver 能够通过使用实机得到的BIOS ROM或者从New World Mac中的“Mac OS ROM”文件得到的ROM模拟一台使用PCI总线的旧世界Mac,它使用PowerPC 604e CPU(不模拟内存管理器PMMU)、2D显示(显示内存不固定)、模拟支持Open Transport的以太网路由器、模拟44100Hz 16位 立体声音频输出。(如果在Linux、MacOSX上,还能直接把打印信号输出至打印机)。它能够根据使用的ROM,运行从MacOS 7.5到9.0的MacOS操作系统。 我在Windows Vista 32位操作系统,使用该模拟器的最新Build,使用Power Macintosh 9500的4MB大小的ROM,测试安装了MacOS 7.5.3、8.1、8.6操作系统。测试发现,8.1系统运行最为稳定,7.5和8.6都有很多不稳定的地方,尤其是8.6自带的很多应用程序(如 Stuffit Expander 5.1)都会导致模拟器死机、出现炸弹错误甚至直接使模拟器关闭。很多68k应用程序都能够运行(包括我没想到的1991年版本After Dark 2.0屏幕保护程序系统!),但是速度较慢。最大的问题是,QuickTime完全无法运行,只要运行和QuickTime视频解码有关的程序就会直接使 模拟器退出(音频解码貌似没有问题,我还在系统8.1下用RealProducer G2把一段AIFF压缩成RM)。据我得知,Office 98在这个模拟器中也完全不能运行而Office2001可以。而且,虽然这个模拟器既可以在我的Core Duo笔记本运行也可以在我的老PIII机运行,但是其速度仍然远远不能令人满意(模拟出的CPU定点运算能力远低于在BasiliskII中的测试结 果)。而且,这个模拟器已经有一年没有出现新版本。希望这么好的一个东西不要就此停止开发了。 图:运行System 7.5.3 图:运行MacOS 8.1 图:运行MacOS 8.6 图:在模拟的MacOS 8.1下运行Mini vMac模拟器(可以运行,但速度很慢。。) 图:System 7中的System 7 SheepShaver主页 http://gwenole.beauchesne.info/projects/sheepshaver/ August 05 MSN Messenger也有个小盾来自http://trac.adiumx.com/wiki/MSNCensorship
哈哈。 这就是MSNMessenger的小型安全盾。 腾讯QQ是会在试图点击链接时提示的。而MSN永远是直接打开。这难道是好心用在坏地方? 另外,M$N的盾是防病毒,国家的盾是为了保护国民的安全。不过盾的方向得好好考虑一下。 August 04 “集成播放器大战”的突袭者和牺牲者:酷热影音几年前,在Windows系统之下,每一种包装格式、每一种编码格式都需要一个单独的分离器、编解码器,甚至是一个完整的播放器。那时候,听MP3和其它
(假设有输入插件支持)的音频格式用Winamp,看VCD、DVD超级解霸速度最快,看MPEG4的AVI要装DivX、XviD,播放其它Codec
的都需要安装其它解码器或者插件,看RealVideo要装Realplayer,看QuickTime
MOV要装QuickTime......而且每一种不同框架的播放器需要的插件、分离器、解码器一类都各不相同。很多人都有什么东西图个简单方便的习
惯,于是就有人把各种各样的编解码器放在一起做成解码包。当一个基于GPL协议的新的、优秀的、基于DirectShow平台、自带部分分离器并在
DirectShow分离器存在的情况下对Quicktime、RealMedia框架提供优化支持的播放器Media Player
Classic出现的时候,很多人对其进行了修改美化,和这些解码器包在一起发布。这样,所谓“集成影音播放器”诞生了。 而其中的佼佼者就是“MyMPC·暴风影音”,后来直接称之为“暴风影音”。这个软件在国内网上经过无数人口耳相传,成为了无数新装系统用户和普通用户的首选、必须的软件。后来,随着03-05年流氓软件捆绑大潮,暴风影音中也捆绑上了此类流氓软件。 2006 年8月左右,一个全新的集成播放器异军突起。自称“下载体积最小,仅1MB,但支持的格式和其它播放器相当”,这个软件以“酷热影音”之名推上了国内的网 络。马上,该“酷热科技”公司及其总裁陈庆明就以一个“格式支持、占用内存、下载大小、是否捆绑流氓软件”的比较表,直接将矛头指向了暴风影音以及已经处 于半僵尸状态的超级解霸。黑马由此形成。 但是却有一些问题就是来自这匹黑马。第一,它下载包确实只有1M多,但是它并没有像自称的那样能够根据需 要自动下载Codec,而是第一次运行不管三七二十一,从自己的服务器上强制把所有Codec一股脑下载下来,无提示地装到系统中,像 Quicktime、Real框架,它不管你系统中本身是否已经安装,也给你直接装上去,使得人家原版的Quicktime Player、iTunes、RealPlayer、Realproducer等程序出现问题。(其实06年左右的暴风影音、超级解霸也把这些应当是可选 的组件变成了不可选强制安装,而且卸载还难卸载干净) 第二,这个软件的可移植性很低。整个软件虽然看似各组件DLL分明,但是这些DLL其实都是需要注册的COM组件,而不是直接导入,导致系统如果重装或者 使用多重系统启动,在新系统和另一个系统下想要立即恢复此播放器的使用,惟有重新安装此播放器一途。而像Media Player Classic、MPlayer、KMPlayer、VLC等源于ffmpeg等开源媒体编解码库的播放器,自身集成度很高,即使放在U盘上,也能随时随 地绿色运行;甚至有些播放器如MPlayer和KMPlayer已经可以不通过DirectShow直接使用Real的那些DLL来播放 RealMedia文件(甚至可能在非Windows平台上!),这更增加了在不牺牲便携性的基础上的全能性。这一点来说,酷热影音落后了。第三点,酷热 影音其实也捆绑了一个IE外壳类型的浏览器,这一点也和它承诺的不捆绑相悖。而且其所谓格式支持的比较中,关于Windows Media Player的支持格式可谓完全是FUD:Windows Media Player是DirectShow的前端,只要DirectShow能支持(前提是有正确的分离器和编解码器)的包装格式和编解码格式,它没有理由(除 非是凌阳SPCA536播放器方案使用的ASF中的IMA ADPCM流、AVI格式中的可变码率流这类微软自己在设计时就没有想过会出现的情况)会不支持。 虽然这三点问题很严重,但是酷热影音还是在半年 时间内形成了一定的用户群。不过,暴风影音和它背后的资本似乎并不很高兴。06年底传出暴风影音多年都无计划的2.x版本将以酷热影音为基础,而2007 年初,酷热科技宣布收购暴风影音;但是,酷热影音却在推出2007年3月Beta之后,寂静地“突然死亡”、停止更新和支持了。其实现在令人想不清的是, 到底是谁收购了谁。如果真的是酷热收购暴风的话,那么酷热官方为什么在任何地方都没有公开宣布酷热影音的停止开发呢?现实是,酷热科技这家公司目前似乎已 经在一切媒体上销声匿迹了,似乎已经变成了暴风影音周胜军为主导的“暴风网际”。虽然酷热影音的网站还开着,已经被广告机灌了大量水的、管理员失踪多时的 论坛也还开着,那些Codec仍然在原来的服务器上,这个狂噪一时的名字,现在在一些人眼里都已经随风逝去。这就是在所谓给大众用的“集成影音播放器”大 战(实质上是竞争背后的VC)的一个牺牲者。超级解霸已经“壮烈牺牲”(被梁肇新亲手卖掉),基于MPC的MyMPC·风雷影音、影音风暴还在不断发展, 超级兔子这个多年做系统优化软件的现在也来往这里面插脚,不知最后结果会怎样呢? 现在非集成播放器(音频的Foobar2000、iTunes, 视频的WMP、Realplayer),并没有因为这些集成播放器而坐不稳位置。而Mplayer系播放器不仅是*nix系统上大部分人的选择,也在 Windows平台上占据了越来越重要的位置。而丢开MPC,吸收酷热影音灵魂的暴风影音还能走多远呢? 图:酷热影音的最终版本 图:酷热影音网站的最后一次更新 图:酷热影音论坛的惨状 我在这方面认识不足,看客们尽管骂、Gunner们把子弹尽量射过来吧。 August 03 Orz.国外免费空间,还是得打一枪换一个地方啊.shield。wall。什么都可以。总之此服务器已经Orz在它的脚下。 August 01 建军80周年献礼?Wiki全线恢复。。今天,zh.wikipedia再次出了黑名单,原来只有那台IP头203的韩国wiki服务器未被封,这次在美国的那几台也解除了。建军80周年献礼?哈哈/ 直连 en.wikipedia.org => 正常 直连 ja.wikipedia.org =>正常 google zh.wikipedia.org=〉正常 直连 zh.wikipedia.org =>正常 上次我们这边网关坏掉修好后,icmp禁了。没法tracert。唉 ![]() PS:Orz,photobucket直连还是超慢超慢。。 update 8月2日 11:15:多台wiki服务器再次被封锁。不过zh.wikipedia.org还没有重新变成关键词。难道为了建军80周年国内御用Wiki写手能够改“中国人民解放军”这样的条目打开方便之门才暂时解封的? |
|
|