存档

‘我的作品’ 分类的存档

liboi 0.0.3 – 增加Windows平台支持

2009年12月28日 2 条评论

liboi发布0.0.3版。该版本主要做到Windows的移植工作。目前liboi同时支持Windows和Linux。

下载: http://code.google.com/p/liboi/downloads/list

Windows用户请注意下载 liboi-0.0.3.zip文件。*.tar.gz和bz2文件都只打包了Linux编译需要的文件。

接下来0.0.4主要是Windows平台上的一些重整工作,例如把第三方依赖拿出来,tar.gz和bz2也打包Windows平台需要的文件。

liboi 0.0.2 – 为OpenInkpot提供客户端支持

2009年12月27日 没有评论

完成了liboi 0.0.2版本,发布在了google code上。

0.0.2版本增加了文件移动的操作,可以将文件拷贝到设备上,或者从设备上拷贝出来。

下载:http://code.google.com/p/liboi/downloads/list

接下来开始做到Windows的移植工作。

liboi – 管理基于OpenInkpot的电子书设备的支持库

2009年12月23日 没有评论

自从用了OpenInkpot,并且推荐了几个用v3的朋友换成OpenInkpot之后,越发觉得,对于普通用户来说,管理阅读器相当的麻烦,三天两头就需要提供技术支持,从安装字体到拷贝书籍再到配置系统,不一而足。

因为OpenInkpot在V3上使用USB RNDIS驱动连接阅读器和PC,并且通过SSH的方式连接设备,但是SSH的设置步骤复杂,而且在Vista x64和Win7这种比较新的操作系统上面总有些问题,对用户要求比较高。

其实V3的这种连接模式比较像Windows Mobile手机的方式,这种方式在具有一个客户端的时候有很大的灵活性,例如WM手机的Active Sync。另外就是等待OI支持USB Mass Storage,即模拟一个U盘出来的方式,但是看起来一时半会儿也没有做的计划。

但是OI有它的好处,就是很多可以自定义的东西,例如阅读器的键绑定——我一直想把翰林V3左侧的翻页键互换——但是修改的方式需要用户ssh到阅读器修改。这对于普通用户来说简直就是噩梦。

同时,OI还有一些问题,例如在0.2 rc5当中添加的libextract,即在书架模式下显示书籍的元信息,而不是文件名,在很多时候其实是有问题的。官方的绕过方式是重命名一个文件,但是同样需要ssh到阅读器修改。

由于这些问题,最好有一个可以用来管理电子书设备的客户端软件。这个软件也许可以做下面的事情:

  1. 自动配置电子书的USB RNDIS连接
  2. 书籍搜索、下载和同步
  3. 数据的同步,例如书签
  4. 状态备份和恢复,例如当前阅读的图书的页码,书籍版式(横屏,切白边等)。
  5. 安装字体
  6. 设备软件更新
  7. 设备配置修改,例如修改键绑定
  8. 其他工具性的功能,例如拷屏

等等。

但是前提是要有一个客户端软件。因此最近先整了一个基础库,取名 liboi,即lib-openinkpot之意,host在Google Code上面: http://code.google.com/p/liboi/。经过几个星期的晚上+周末的工作,现在把0.1版本放出来,这个版本支持最简单的功能:

  1. 根据默认的SSH配置连接阅读器。
  2. 获取阅读器信息,类似OpenInkpot版本号
  3. 在阅读器当中执行命令(有了这个功能剩下的就是想象力了)

目前只支持Linux平台,请在项目主页上下载源码包自行编译。源码包当中有oish.c文件,会生成一个oish(OpenInkpot Shell)的程序,可以作为例子程序使用。

后面的事情,主要包括:

  1. 拷贝文件,包括拷进来和拷出来。
  2. Windows Porting
  3. SSH自动配置

另外招募擅长客户端界面的同仁开发客户端GUI,我要做的话估计界面会很丑。当然了,没报酬,代码开源,纯自愿参与。

标签: , ,

OpenInkpot 0.2 中文化进度

2009年10月4日 没有评论

最近OpenInkpot已经发布了官方0.2预发布版本20091001(算是给国庆献礼么?:P),这个版本第一次把中文本地化的内容包含在内,也就是说将来大家使用OpenInkpot的时候就可以看到中文的界面了。大家可以在首次刷机之后选择语言为“简体中文”,或者到设置/Setup里面更改。注意选择语言界面里面9,0两个键不能用来翻页的,小心选中了希腊语。:P

目前中文化的部分仍然在进行当中,已经完成的部分包括:

1. 新的中文字体,使用文泉驿中文字体替换掉了以前的老字体,中文显示漂亮了很多。
2. Wiki页面的中文化,包括用户手册(http://openinkpot.org/wiki/0.2/UsersGuide/zh)和安装指南(http://openinkpot.org/wiki/0.2/InstallationGuide/zh)。
3. 大部分程序界面的中文化。包括书架、非PDF阅读器的大部分。PDF阅读器(LocoPDF)当中的字符串现在还没有抽出来,因此暂时还只有英文界面。中文化进度可以到http://l10n.openinkpot.org查看,有兴趣的也可以注册上去参与翻译和查看翻译进度。

正在进行的工作包括:
1. 随机帮助文档的翻译。这个功能在最近才刚刚加入到OI当中,翻译工作也刚刚开始进行。有兴趣的可以参见http://groups.google.com/group/openinkpot-l10n/browse_thread/thread/ac83e60784869903
2. 应用程序名的翻译。现在还没有好的名字想出来,因此暂时没有提交。征求大家的意见,下面这些应用程序名怎么翻译比较合适:

* FBReader: 默认的非PDF阅读器
* CoolReader: 可选的非PDF阅读器
* LocoPDF: 默认的PDF阅读器
* MadEye: 默认的图片查看器
* 小游戏们:Bridges Puzzle, Fifteen Puzzle, Flip Puzzle, Pegs Puzzle, Solo (Suduko like) Puzzle, Twiddle Puzzle。都是一些益智小游戏,介绍可以参见http://www.chiark.greenend.org.uk/~sgtatham/puzzles/

3. 一些杂七杂八的东西,例如存储器名字,“Internal Storage”和”SD Card”这种,还没翻译。

如果有什么本地化相关的建议,可以直接联系我 (ftofficer@ftofficer.com)

标签:

TabIMSwitch 成为Mozilla Addons网站上的正式插件!

2008年9月27日 1 条评论

昨天收到了Mozilla Addons发来的邮件,经过漫长的等待,TabIMSwitch已经成为了Mozilla Addons大家庭的正式一员。
现在你可以登录Mozilla Addons上的页面来下载最新版本了。

https://addons.mozilla.org/addon/5413


5413将是你的终生代号 :b

修正VeryCD在启用AdBlock Plus的情况下的版面混乱问题的脚本

2008年3月2日 2 条评论

VeryCD是个不错的网站,除了在每个页面上面出现的flash广告(见下图)。当然我也知道VeryCD维持生存基本上要靠广告,但是经常搞死我浏览器的flash广告,我是不得已把它过滤掉的。

Firefox对于广告的解决方案当然是AdBlock Plus。这个插件可以按照通配符或者正则表达式来封锁广告。如果你不懂通配符或者正则表达式,直接用鼠标点点基本上也是可以解决问题的。通过在其中添加一条规则封锁 http://222.37.134.*/*.htm*,顺利达到了封锁VeryCD上面的flash广告的目的。

但是随之而来的问题是,因为过滤掉了一个iframe,整个页面布局就有了一些问题,资源详细信息因为布局的缘故无法显示(见下图)。

为了能够让它显示出来,只好另外再打一层补丁。这次用Greasemonkey,让它在加载VeryCD页面的时候在原本显示广告的地方显示另外一个东西来占个位置,自然就能够让详细信息部分显示了。

在这里显示什么呢?看了几个VeryCD页面之后,发现大多数的页面上面在简介部分都有至少一幅图片。按理说把第一副图片按比例缩小放在其中应该可以吧。最后结果见下图:

最后贴Greasemonkey脚本的代码。请将其拷贝到记事本保存为“所有文件”,文件名选择.user.js结束。保存后拖动到Firefox(事先需要安装了Greasemonkey),确定即可安装。

== 代码开始,请不要拷贝这一行 ==
// ==UserScript==
// @name           Re-format VeryCD item detail
// @namespace      http://ftofficer.spaces.live.com
// @description    Re-format VeryCD item detail
// @include        http://www.verycd.com/topics/*
// ==/UserScript==

function findFirstImg() {
  var paras = document.getElementsByTagName(‘p’);
  for (var i=0; i<paras.length; ++i) {
    var p = paras[i];
    if ( p.getAttribute(‘class’) == ‘inner_content’) {
      var imgs = p.getElementsByTagName(‘img’);
      if ( imgs && imgs.length > 0 )
        return imgs[0];
    }
  }
 
  return null;
}

function getScale(imgWidth, imgHeight, divWidth, divHeight) {
  var wScale = divWidth * 1. / imgWidth;
  var hScale = divHeight * 1. / imgHeight;
 
  if ( wScale > 1. && hScale > 1. ) {
    return 1.;
  }
 
  return wScale < hScale ? wScale : hScale;
}

function fixupVeryCDDetailPage() {
  var moreInfo = document.getElementById(‘moreInfo’);
  if ( moreInfo ) {
    var frame = document.createElement(‘div’);
    frame.setAttribute(‘class’, ‘Banner1’);
    frame.width = 300;
    frame.height = 250;

    firstImg = findFirstImg();
    if ( firstImg ) {
      var img = document.createElement(‘img’);
      img.src = firstImg.src;
      var imgScale = getScale(img.width, img.height, frame.width, frame.height);
      img.width = Math.floor(img.width * imgScale);
      img.height = Math.floor(img.height * imgScale);
      frame.appendChild(img);
    }
   
    if ( moreInfo.parentNode ) {
      moreInfo.parentNode.insertBefore(frame, moreInfo);
    }
  }
}

fixupVeryCDDetailPage();

== 代码结束,请不要拷贝这一行 ==

Live Space的“发布日志”恢复正常了

2008年1月27日 1 条评论

今天打开Space准备写blog,却发现“发布日志”按钮仍然是灰掉的,看看Greasemonkey的脚本状态已经启用了,难道M$会ws到连我这个第三方开发者都不放过?接下来就是分析一下看看有什么变动,然后更新一下脚本。但是看来看去文档的结构都没有变化,Greasemonkey脚本的运行也很正常。

无意之中在标题当中填了几个字符,竟然发现“发布日志”按钮启用了!然后把Greasemonkey的用户脚本设置成禁用,刷新页面,输入标题,“发布日志”和“保存为草稿”立即启用了。

原来我误解了M$,其实是M$做了点工作恢复了Space的bug,看来我的Greasemonkey脚本可以退休了。

不过暂时还是保留在那里吧,不知道哪天会再次出现问题。

TabIMSwitch 开始支持 Firefox 3.0 Beta – 请手动下载更新

2007年12月23日 1 条评论

今天收到Mozilla发过来的邮件,希望我们可以把自己的扩展升级到支持Firefox 3.0。本来在Beta 1出来的时候就打算做的,一直没动手,今天既然收到了信,就花了一天的时间调整了一下TabIMSwitch,小小的改动了一下,目前已经兼容于Firefox 3.0 Beta了。

新版本号码 1.1.0.41。

下载TabIMSwitch 1.1.0.41
SHA1校验码:0f0acbdd7df6ddd712541d5e766fb0ce9f07a56d
MD5 校验码:fe421b0905dbae7e59bbb3d028ad311f

但是因为现在最广泛使用的1.1.0.37版本的一个bug,自动更新到1.1.0.41基本上是不可能的,因为1.1.0.37版本当中根本就不包含自动更新URL。造成这个问题的原因是在编译的时候把放在Mozilla addons上面的版本公开在Google Code上面的版本弄混了,而Mozilla的版本是不能有自动更新URL的——Mozilla会给你加上一个。

所以,麻烦大家自己手动下载下来升级吧。

为了防止以后出现类似的问题,这次把编译脚本修改了,把Mozilla addon上面的版本和Google Code上面的版本完全分开,将来应该不会出现类似的问题了。

— 更新@2007-12-23 3:08 —
发完blog之后两分钟,发现1.1.0.40的包有问题,版本号忘了改了,还是1.1.0.39,忙中出乱啊,晕啊晕。
下载了1.1.0.40的,等自动更新到1.1.0.41吧。

解决在Firefox下面Live Space“发布日志”按钮被禁用的问题

2007年11月7日 18 条评论

也许你发现了上面的帖子。
这个帖子是我在进行测试,看看能不能启用Live Space的“发布日志”按钮。
事实上是成功了,特将其分享给大家。

首先,你需要安装Firefox扩展 greasemonkey。这个扩展可以使你在加载一个页面的时候执行一段你自己的Javascript程序。

安装之后,将下面的程序拷贝到一个文本文件,并把扩展名改成 .user.js。(务必是.user.js,否则greasemonkey无法自动安装之)。

===脚本开始,拷贝时请不要包含这一行===
// ==UserScript==
// @name           Enable Live Space Post Button
// @namespace      http://ftofficer.spaces.live.com
// @description    Enable Live Space Post Button
// @include        http://*.spaces.live.com/*
// ==/UserScript==

function LiveSpace_enableButton(id) {
  var button = document.getElementById(id);
  if ( button ) {
    var cls = button.getAttribute("class");
    var clsNameEnd = cls.indexOf("spDisabled");
    if ( clsNameEnd != -1 ) {
      clsNameEnd–;   // skip " " before spDisabled
      var newCls = cls.substring(0, clsNameEnd);
     
      button.setAttribute("class", newCls);
      button.setAttribute("mi:state", "enabled");

      var aNode = document.createElement("a");
      aNode.id = id;
      aNode.href = "#";
    }
  }
}

LiveSpace_enableButton("actionToolbarBlogPost");
LiveSpace_enableButton("actionToolbarSave");

===脚本结束,拷贝时请不要包含这一行===

然后将这个js文件拖放到Firefox窗口中,greasemonkey会弹出对话框询问是否安装,选择是,即可完成安装。

然后,去Live Space的“添加日志”当中看看吧。

如果看到“发布日志”和“保存为草稿”仍然没有启用的话,请看看greasemonkey当中配置的网直通配符是不是和你的网址一致,自己改改看看。在不行可以在这里回复。

测试

2007年11月7日 没有评论

测试看看是不是“发布日志”已经启用了。