Archives for Computer

Let’s Tex The World

       我是个伪LaTex爱好者,虽然现在的水平很挫,仅仅是利用各位老大在网上共享的宏包来写写文档。我又是个Greasemonkey重度使用者,Greasemonkey给我带来了无比美妙的上网体验。我的上网环境永远都是Greasemonkey+Firefox。哈哈,没有Greasemonkey的Firefox是不完整的。
      所以碰到这种好东西就不能不推荐了:TEX THE WORLD。它的作用是这样的:

      哈哈,以后在就不用在MediaWiki里装支持Tex的插件了,直接写MimeTex代码便可。
      简要描述一下:Tex The World是一个Greasemonkey脚本,基于mimeTex,将网页中的LaTex代码转换成图片并显示。
      效果相当不错,贴个Sample。

Google Chrome OS登场

  Google的官方博客发布了一则消息(Introducing Google Chrome OS),宣告了其新操作系统 – Chrome OS的诞生。因为是Introducing,所以就有点标题党了,到今年的晚些时间才会发布其源码,官方预计使用Chrome OS的上网本会在2010年下半年开始销售。。。
  引用官方定义,Chrome OS是一个轻量级的开源操作系统(貌似是基于Linux内核的),主要面向的是web应用。核心特性是Speed、Simplicity、 Security。Security是一切的核心,这就不用说了,再说了新系统哪有病毒,一般人要达到能在Chrome OS下写病毒的程度估计也得好久。像我这种爱折腾的人,是否Simplicity也无所谓,不过UI简洁一些还是不错的,就像Chrome Browser那样 。Speed才是我最关心的,要是开机速度快那就太爽了,原文中也有写到(People want to get to their email instantly, without wasting time waiting for their computers to boot and browsers to start up)。Chrome OS估计会在启动速度上有较大提升(当然是相对慢的要死的Windows来说的)。忍受XP已经那么久了,我的要求也不高,要是Chrome OS启动速度在10s以内就足够爽了。
  On Yeah,不扯淡了,坐待Chrome OS alpha或是Pre alpha,亦或是Pre Pre alpha的出现…./p

豆瓣MP3播放器

    在豆瓣上乱逛是一件很滋润的事,我特喜欢看那些专辑下面其他人的评论,碰上有意思的就会很自觉地重新从硬盘里翻出这些歌来听(豆瓣的试听太少了),虽然Foobar的搜索功能很好用,不过像我等懒人还是觉得不爽。所以我一直要这样的功能,那就是在豆瓣页面上嵌入一个网页播放器,不过播放的内容是本地硬盘的MP3。
    很早之前我就想过用Python+GAE做个网页版的MP3管理系统,类似于这个:eBook Viewer – 用豆瓣 + Gears 管理本地电子书。不过肯定不能手动添加内容了,原先想的是先将本地的MP3编成索引库,然后利用歌曲的id3 Tag就能完成本地文件和豆瓣上专辑的对应了。
    后来着手做时才发现此法不可行:        一是编索引数据库太不太现实,我硬盘中曲库有160G(硬盘没坏之前是200+),按我这三脚猫的编程水平要做个高效的索引程序出来貌似很困难。        二是这样达不到我的需求,照我这样下去就等于自己再造个轮子了,有点主次不分的感觉。我想要的只是实现豆瓣专辑和本地歌曲的关联,相当于扩展一下豆瓣的试听功能,在浏览豆瓣页面的时候能方便的播放本机的音乐,其主体还是豆瓣。    就这样,此念头就不了了之了。
    前天突然想到其实我可以利用Everything来做做文章。Everything作为一个超快的硬盘搜索工具,完全可以解决我索引的问题。同时它还有强大的HTTP服务器,与everything的交互也很好解决,只要利用http://192.168.110.79:801/?s=检索内容就可以很方便的搜索出文件。
    刚好最近是我折腾的高峰期,就用GreaseMonkey实现了一下。使用方法类似我刚写的MediaWiki浮动目录脚本,在豆瓣页面上按m切换MP3播放器的显示。还提供多种样式的选择:依照UserScript上的那一堆Inline Mp3 Player改的。
    使用方法:下载一个Everything,装上我写的这个脚本(下载请见:userscripts地址),最后打开Everything的Http服务器就OK了。
    注意:代码里用的是Everything的默认端口801,需要更改的请手动修改脚本。默认用的是Google的播放器,要想换成其他样式,也得手动修改脚本。
    还有,我这个插件是根据文件夹名来搜索的。有个要求:音乐分文件夹存放,一个专辑一个文件夹,文件夹名里要包含专辑名称,反正我的是(年份)专辑名。
有图有真相,大图请去我的Picasa相册:

//Google 版播放器

    //WNYC 版播放器
    //WordPress 版播放器
      //Consilium Version
哈哈,满足鸟。

可惜还是有一大版不足:    1.现在的Flash播放器均不支持无损。唉,我硬盘里还有那么多APE、FLAC、WV。。。。    2.MP3播放器无法实现后台播放,一隐藏就停止播放了。    3.无法更新MP3的播放次数。没办法了,依我现在的水平解决不了这些问题。

    扯点题外话,我管理歌曲靠的是foobar强大的tag功能,除了流派/歌手/专辑等常见tag外,我还加了PLAY_COUNTER和RATING。我自定义了几个快捷键,比如Ctrl+5便是为当前播放歌曲打五星,Ctrl+3打三星,Ctrl+1打一星(呵呵,这个就没用了,低于三星的直接我就把整张专辑删除)。再加上foobar的专辑列表又可以自定义按某一标签来排序。。。hoho,太完美了。
PS:有点标题党了,不过不暂时还找不到好名字, 标题党就标题党吧。。。

MediaWiki 浮动目录

    继续折腾MediaWiki,写了个GreaseMonkey脚本实现了MediaWiki目录的浮动效果,基本上满意了。话说GreaseMonkey真TM的好用。。。
脚本链接:已经上传至Userscripts,地址见此。可以点击此处直接安装。
使用方法:按“m”键或者Ctrl+左键显示目录,ESC隐藏
源码见此:链接
注:借鉴了LookItUp2这个脚本的实现方法,强烈推荐此脚本。

MediaWiki的内容隐藏

  MediaWiki + VIM是我最近折腾的两大重心。当初选择wiki程序的时候也曾被dokuwiki和moinmoin勾引过好久,dokuwiki不用数据库,很轻巧,moinmoin有我喜欢的Python。不过到最后还是因为维基百科而选择了MediaWiki。永久了也就越来越放不下了,至于其他的两个,先把 MediaWiki折腾好了再说。
  个人认为在MediaWiki里面写东西的时候内容隐藏的功能绝不可少。特别像我这种喜欢贴代码和流程思想的人,往往一页写下来老长老长。而且我对 MediaWiki最不满的就是目录无法自动滚动,所以再次浏览或编辑这条目的时候只能PageUp/Down的狂摁,相当难受。
  于是乎我今天就在这找到了个好东西—>Toggle。他们自己是这样定义的:This feature allows for toggling the visibility of any part of the page.(能让我们切换页面上一切元素的显示/隐藏状态)哈哈,这下赚大发了。
  Toggle不是基于MediaWiki的插件,而是js代码。要想在MediaWiki用它必须修改MediaWiki:Common.js页面(用MediaWiki的原话来说在此处的JavaScript将加载于所有用户每一个页面)。修改方法也很简单,用管理员登陆,在MediaWiki的搜索框中输入MediaWiki:Common.js。点击进入,不存在的话直接创建页面就行了。直接在浏览器中进入可能会出现403Forbidden的情况(亲测,估计是哪个权限没配好)。最后在这个页面增加以下代码http://www.mediawiki.org/wiki/MediaWiki:Common.js
—————————以下是使用介绍—————————
我们可以给为任意元素来生成一个Toggler(就是隐藏/显示的切换器,以下统一用Toggler)。
最简单的方法是手动增加Toggler。要定义一个基本的toggler,只要增加这样的一个元素就行了。

1: <span class=”_toggler-CLASS”>toggler</span>

其中“_toggler-CLASS”的“CLASS”对应你要切换的页面元素的Class名称因此像下面的代码就能完美地完成我的目标。

1: <div style=”display: none;” class=”test”>隐藏测试</div>
2: <span class=”_toggler-test”>隐藏测试</span>

代码很好理解,首先创建了一个默认为隐藏的DIV,<div></div>填入我们想隐藏的任何东西(代码、图片…)。然后创建了对应这个DIV的切换器。事实上我更喜欢把创建切换器写到创建DIV之前,效果更好。
最方便的方法是使用MediaWiki的模板,首先创建模板Template:Hide,填入以下代码并保存。

1: <includeonly><span class=”_togglegroup [...]

Page 1 of 41234