分类归档: 学习收获

修改theme迎接奥运

恩。08年奥运年,眼见下周就是奥运开幕了。8月是激情的奥运之月,咱草根站长也接着东风奥运一把,呵呵。
从8月1日起,正式更换theme为菠菜兄提供的奥运theme。该theme的最新修正版可以在 这里 下载。实际上,该文也是一个统计的页面,博主会统计哪些用户使用该theme一直到奥运结束。呵呵。
非常不错的theme,不过右上角的倒计时还需要修改fla才能显示正常。目前手里没有flash软件,暂时先这样,尽快修改到完美。呵呵。感谢菠菜兄提供这么好的theme。恩。
以上。
PS:明天才是8月1号。。明天再启用新theme好了。。。
UPDATE:8月1号了,正式启用。呵呵。做了一些小修正,将默认字体改为 微软雅黑 ,没有微软雅黑时使用宋体。顶部blog名部分本也想用微软雅黑,不过背景图片内的“见证奥运”几个字是宋体,手里的PS绿色版又莫名其妙的不能用了,于是保留了顶部的宋体。不过将margin的top由6px调到5px,貌似更整齐一点。然后调整了侧边栏,将原来的150 215的布局改为180 185,尽管不好看,但是起码能满足Gallery插件的宽度要求。嗯。微调后自己感觉更舒服了。呵呵。
8月奥运月,就用这个theme奥运吧。

WP升级加小改动

汗。小窝的空间商昨天莫名其妙的被攻击了,真是RP爆发。而其时我正在与我的本本斗智斗勇,等到半夜才知道这个消息。于是申请了转服。今天总算恢复了正常。但是这两天的忙碌让我有点闲不下来,于是自己给自己找事情做。
首先升级了WP。一直很想做的事情了,之前也有从2.2升2.3的经验,这次2.3.3升级2.5.1,也算没什么难度,步骤很简单,网上也很多教程,比如我参考的这篇。在这里俺也不厌其烦的再说一次:
Step 1:备份数据库。一定要做的事情,妈妈说不管做什么都要留好后路
Step 2:禁用全部插件,这一点据说是为了保证稳定性。不过上次升级时我就没有禁用。这一次为了安全,还是禁用掉了。
Step 3:到官方地址下载WP2.5.1简体中文版,解压后上传覆盖现有文件。
Step 4:运行 http://博客地址/wp-admin/upgrade.php,完成数据库升级。
然后就OK了。登陆,到后台开插件。稍微设置下就PASS了。
2.5.1的变化还是很大的,后台变了风格,倒是比较清爽,不过有的时候真有点不习惯。这个要慢慢来了。呵呵。
最大的好处是在插件那里,当系统检测到现有插件有更新版本时,可以点“自动升级”让WP自己来升级插件,省去了手动一个一个下载后一个一个上传的麻烦。非常实用的小功能啊。呵呵。对于我等菜鸟真是一大福音。
然后,继续无聊,对WP做了点小改动,最明显的就是在评论留言框内加上了个性LOGO,非常感谢花果山寨的这篇文章,不过我这个THEME里面貌似要稍微改动一下。我用的SANDBOX的THEME,直接改textarea.text项,将导致所有的文本输入框和其后的SUBMIT按钮,全部都带有背景图片,于是参考其附近的代码,将原有textarea.text区域的代码不变,并在下方添加如下代码:
#commentform #comment {background:url(textbg.png) center no-repeat;}
这样就解决了问题。不过不知道不同的theme,这个框的ID是不是也不一样。呵呵。我只能说在我这里,这样做就解决了问题。演示效果可以看本文下面的评论框。
UPDATE:为了保证不同时段的配色一致性,又研究了一下sandbox的这套css,原来sandbox会把不同时段的body命名为body.hxx,xx范围为00-23。对应着不同小时的body,在CSS参数前加上这个,就可以指定某个或者某几个小时,某个地方的样式应该是如何的了。比如我修改的一段代码为:
body.h05 #commentform #comment, body.h06 #commentform #comment, body.h07 #commentform #comment, body.h08 #commentform #comment{background:url(sunrise.png) center no-repeat;}
这段代码就实现了在早上5点到8点59分间,评论框背景是sunrise.png。从而实现了不同时段的配色一致性。当然,这个仅对sandbox有效。其他theme可能会没有类似的定义。
另外,将侧边栏的Archives插件由系统自带的Widgets更换为Flexo Archives Widget,该插件可以在侧边栏以AJAX的形式显示一个折叠的存档列表,从而大大缩短了这个模块的长度,呵呵。找这种插件很久了,终于被我找到了。赞。
找这个插件时,还在网上发现了一套叫做Ajaxed Wordpress的一个插件打包,看了看介绍,貌似功能很强大,可以完成若干Ajax功能。装了一个,还没有仔细研究。待研究好了再继续写报告。
再其他的,就是增加了一个Audio Player的小插件,很多WP站点都有用到的一个小Flash播放器,简约而不简单,呵呵。不过现在还没有哪篇日志里面有用到。演示的话,可以看看下载页面或者这个很详细中文说明页面。
最后,添加了偶爱偶家的ShowSlug插件,来显示WP2.5里面的缩略名,同时,加上了WP-Slug,实现自动翻译缩略名。呵呵。越来越正规化的感觉呢。不过之前的若干文章,要一个一个手动改缩略名了。恩。工程啊。
以上,小窝折腾完毕。继续老老实实的使用了。o(∩_∩)o

系统被虐待

额。真是郁闷的一塌糊涂。本来结束了SC,所以决定将系统格掉重做,不过,之前刻录的VISTA安装盘无论如何也装不上了,复制了一张也不行。我机器的光驱还不能读CD——折腾良久,最后实在不行,从某男机器上卸了一台光驱过来,装了个XP。汗。
于是在VISTA一年之后,再度重回XP的怀抱。
额,要说XP的适应性是要比VISTA好。从XP入VISTA,要摸索好久,这从VISTA回XP,熟门熟路。而且,XP了,若干问题都可以解决,比如一直不发声的KX驱动,终于正常发声了。恩。是很清澈,而且推力很强。额。过强了。。。
还有就是理论上能用官方版的MOBILITY RADEON驱动。不过我下了一个最新版的,却装不上。赞。郁闷。
但是,不得不说,这个界面差距还是很大的。XP的美观度远远比不上VISTA。尤其是其核心——微软雅黑的使用,VISTA遍地的雅黑比XP要舒服很多,更重要的是,VISTA貌似为了大显示界面做了优化,因此看起来东西比较大。现在XP的1280×800,看起来一切都那么小。开了一个控制面板,寥寥两行就没了,图标却小的要命。开大图标吧,美观度也不够。唉。
于是乎,我有个想法。我要继续做VISTA!……
我要反复尝试,我哪怕我哪怕。也要把VISTA再装上。XP看着着实……太简陋了……

M30固件解包原理

囧 又发原理贴。我很恶俗啊。嗯嗯
这个原理很简单。UE打开固件,转到偏移0×728D0,就可以看见固件的索引区,即INDEX区了。里面有很多明文显示的路径名和文件名。没错。这些就是固件内包括的全部文件及其路径了。
那么解释一下,文件名很好理解。就是文件名。文件名之前的4字节,是该文件的大小,高字节在下。在这之前的4个字节,是该文件的相对偏移量,也是高字节在下。该偏移量的基准量是INDEX区的起始位置,即0×728D0。
举例来说,0×72990这个地方,是固件内第一个文件的名字,叫做APPDATA\PYTABLE.bin。在其前面的4个字节是4A A3 00 00,也就是说,这个文件的大小是0×0000A34A。再前面的4个字节是00 28 00 00,也就是说,这个文件的相对偏移量是0×00002800,也就是说,这个文件在固件内的绝对偏移量是0×00002800+0×728D0。
除了这8个字节和文件名以外,其他数据对解包无用。于是无视掉了。
就像同志们看见的,INDEX区也记录了目录。比如一上来就是APPDATA。其实也是一样的,前面的4字节是表示大小,目录的大小固定都是0。再前面的4字节记录的是偏移量,该值和该文件夹下第一个有效文件(不包括子文件夹内文件)的偏移量相同。对于APPDATA,其文件夹下第一个有效文件的偏移就是上面说的PYTABLE.BIN的偏移,因此其这4个字节也是00 28 00 00。
那么解包时,读取这些数据,记录文件夹、文件名、文件大小和文件偏移。建立相应的文件夹,从相应偏移量读取相应大小的数据,并将这些数据保存在相应的文件夹内,命名为相应名字,就完成了解包了。
解包出来的固件,其实没啥用。。。呃。。。本意是解包后美化固件可能更为简单,但是现在发现,要组包貌似很困难。。。期待高手帮助。。。
以上。再度原理完毕……

M30固件字库替换原理

呃,这个,思路很混乱。最近比较疲劳,又有点喝多了……(台下西红柿飞来:酒鬼去死……)
(擦去脸上西红柿)咳咳。嗯。言规正传。说一下M30的字库替换原理。
M30和其他嵌入式设备一样,字体是以点阵的形式存储在机器里面的。所谓的点阵字库就是,以0、1记录点是如何显示的,并将这些点组合起来……这句话我自己都看不懂了……举例来说:菜单中的第二项上面的字是一个24×24的字,那么在固件里面,该字的存储就是一个24×24bit的一串数据,这一串里面,每一个bit是0则该点为黑,是1则该点为白色。最后,将这些点排练成一个24×24的方形,那么那些点就会组合出一个字来……貌似还是很难理解……
呃,算了,点阵字库的话,大家百度一下好了。
实际反映出来,就是用ISE打开固件,以2.0修正版为例,将图片格式定为1位象素 2色模式,并将图片大小变为24×24,然后,跳转到0×02461054偏移量,就可以看见一只“一”字,再往下翻就是“丁七万丈”等等。这就是一套点阵字库。
想要修改字体,就把相应字的点阵改掉就可以了。比如“一”字,我不想让他显示为一个横杠,那就改掉这24×24的图片,把它变成随便什么样的形状,那么,刷机后,凡是24×24的“一”字,都会变成你改的那个样子。
这就是单独修改一个字或者几个字的修改法。
但是,一般大家修改都是想要批量修改,就是将整个字库的字都改掉。那么一个一个修改就太累了。于是再来讲一下字库的存储格式,
M30里面,字库的存储是以几个名字为OUFTxx.bin的文件形式存在的,具体可参看未打包固件的\RESOURCE\LANGUAGE\CHINESE下。xx是字体的大小,有24、16、12三种。以下说明都以24的为例,其他大小的基本一样。
每个bin文件内,最开始是文件头,28 0A 00 00 之类 ,然后是整个字库内字的UNICODE代码,以高位在下的方式记录,就是接下来的20 00 21 00,到00 4E 01 4E,一直到84 9F 99 9F 9F 9F。这些编码取出后,查询UNICODE码表就可以得出其中用到的所有的字,就是我以前发出来的那个貌似是水帖的东西。那个就是全字库。包括英文和符号,一共2600个字符。
接下来,就是点阵字库区。一个24×24的字,应该是24×24/8=72BYTE。但是实际查看可以发现,每个字是76BYTE,中间有4BYTE的附加数据。该数据的格式貌似是00 0x 00 18。猜想其中18应该是代表24的字库,0x这个数据不定,用处也不定。但是经过某兵兄的测试,该4字节数据,只要不动他,就是正常的。所以这4BYTE数据只要照搬到我们自己修改出来的字库里面就好了。
另外,现有的字库替换并没有动到英文字符和符号。用ISE可以看出,英文字符和符号的编码和中文字稍微有点不同。为了避免麻烦就没有去动。不过严格按照他的样子作出来的话,应该也都是通用的。
所以替换字库的流程如下:首先用一些专业字模生成工具生成标准汉字字模,我用的是 字模III。当然是破解版……呃……支持正版啊!……。软件的用法就不多说。软件生成的字库是标准的一个接一个的24×24字库。所以需要写个软件处理一下,将BIN文件的头、开头的编码数据和未修改的英文字符编码数据加上,然后,从原BIN文件读取一个4BYTE的附加数据,再从生成的字库中读取72BYTE的字模数据,一个一个的组起来,由此生成一个符合标准的OUFTxx.bin。
然后,在固件中找到相应的OUFTxx.bin的位置,将现有的数据替换为我们自己做好的OUFTxx.bin。然后刷机。就可以完成字库替换了。
嗯嗯。很混乱哪。我自己都快看不懂了。不过大致就是这个样子了。
另:在固件中替换OUFT这个活,其实很烦。要是能把固件解包再重打包就好了。。。。。。
再另:求高人写个通用的生成OUFT的程序。。。呃。。我们自己写的都是简易型,拿不出手的东西。。。
再再另:有啥问题跟帖提问或者PM吧。。尽量给你解释。但是,本身不是语言能说清楚的,自己试试就好了。
再再再另:不要乱搞!这个东西很核心的。字库替换如果出错,轻则显示不正常,重可能无法开机。本人就因为漏了一字节的数据,导致机器开机不能,也不能正常方法修复,最后是拆机短接清空flash修复的……嗯。以上。