arch 下编译 android 版 MuPDF

  1. 安装 apache-ant

    pacman -S apache-ant
  2. 安装 Android SDK(android-sdk、android-sdk-platform-tools、android-sdk-build-tools)、android-ndk

    可以通过 AUR 直接安装,安装完成后需要下载 android API 到 android-sdk(这里默认安装到 /opt/android-sdk)目录下的 platforms/ 下,MuPDF 默认最小需要 Android-16(http://dl-ssl.google.com/android/repository/android-16_r04.zip)。

  3. 设置

    添加 android-sdk 下的 tools 跟 platform-tools 目录、android-ndk 目录到 PATH 中。

    export PATH=/opt/android-sdk/tools:/opt/android-sdk/platform-tools:/opt/android-ndk:$PATH
  4. 下载 MuPDF 源代码

    git clone git://git.ghostscript.com/mupdf.git
  5. 准备编译

    cd mupdf
    git submodule update --init
    make generate
    cd platform/android
    cp local.properties.sample local.properties
    vim local.properties # 编辑 local.properties 文件,指定 android-sdk 的路径(这里是 /opt/android-sdk)
            
  6. 开始编译

    ndk-build
    ant debug #ant release
            

参考

FireEye – Firefox Add-on

FireEye

  • 功能:修改 HTTP Header
  • 兼容性:Firefox 20+(按理 Firefox 4 也可以的,因为之前的版本是从 Firefox 4 开始的,不过没测试过,于是把版本号定高点 :),如果在 低版本中使用发现问题,欢迎反馈!)
  • 下载地址:https://bitbucket.org/zbinlin/fireeye

前言

最初 FireEye 扩展的名字是 ModHttpHeader,为了修改 HTTP Header 而编写的。由于某次在查看 Cookie 时,通过搜索关键字“ref”发现大量曾经访问过的链接,而这还是在禁止第三方 Cookie 的情况下发生的。

猜测是在点击这些链接是由 Referer 带过去,并且由服务器写回 Cookie 的,由于不太喜欢被“人”跟综,于是想把这些 Referer 在带出去前全部 block 掉。

在查找 Firefox 的 about:config 里查找 referer 时,发现有一条 preference 是控制 referer 的:network.http.sendRefererHeader,进一步查找它的值的含义时,发现可以通过设置值为 0 来禁止 http 发送 referer。

但由于很多网站在登陆时会检查 referer 来防止 CSRF,如果直接设置该 preference 的值为 0,会导致这些网站无法正常登入。修改 network.http.sendRefererHeader 的方式行不通了,于是想通过扩展来修改这些 referer,如果 referer 的 host 与 http request 的 host 一致就放行,否则 block 掉。

这样一来就可以解决因为 CSRF 而引起网站无法登入的情况了。当然,可能有些网站允许某个不同 host 的链接登陆,这里也会因 block 掉而无常正常登入,还有就是还有些同 host 的其他 referer 会带出去。

由于之前已经编写了 ModHttpHeader 扩展用来修改 HTTP Header,但配置无法进行逻辑判断,因而无法对 http request 的 URI 与 referer 进行判断。于是修改了 ModHttpHeader 代码,使其可以达到这个需求,并重新命名为 FireEye。

Continue reading

pentadactyl 快速显示“证书查看器”对话框

由于使用 pentadactyl 后,把地址栏隐藏掉了,这一来查看网站的安全证书就不是很方便了,于是就把 firefox 里调用“证书查看器”的代码抠出来写进 ~/.pentadactylrc 里作为 command 使用。

把下面的代码添加进 ~/.pentadactylrc 里,然后打开(重启) Firefox,在命令行使用 :showCert 进行调用:

:command -js showCert 
    \ (function () {
    \     var ui = window.gBrowser ? window.gBrowser.securityUI : null;
    \     if (!ui) return dactyl.echomsg("无法显示该站点的安全证书!");
    \     ui.QueryInterface(Ci.nsISSLStatusProvider);
    \     var status = ui.SSLStatus;
    \     if (!status) return dactyl.echomsg("该站点可能没有安全证书!");
    \     status.QueryInterface(Ci.nsISSLStatus);
    \     var sert = status.serverCert;
    \     var cd = Cc["@mozilla.org/nsCertificateDialogs;1"].getService(Ci.nsICertificateDialogs);
    \     cd.viewCert(window, sert);
    \ })()

HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)

今天碰到了 IE8(版本:8.0.6001.18702) 下的一个 bug:报错为:

HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)

大意是“HTML 解析错误:在子元素未关闭前,不能修改父容器元素”。
以下面的代码为例:

Continue reading

Copy More 说明文档

下载:

hg clone https://bitbucket.org/zbinlin/copy-more

概述

copy moreuserChromeJS 脚本,经过 Firefox 20.0 及 Firefox 23.0a1 兼容测试。

功能

  • 可以复制页面链接、标签、书签的链接及标题。
  • 可以自定义复制的格式(如 HTML 标签格式或者 BBCode 格式)。
  • 可以添加多个右键菜单项(以下简称“菜单”),也可以分为为页面链接,标签及书签分别定义不同的菜单。

Continue reading

数字转大写函数

function toChineseNumerals(num) {
    if (!/^(\d+)(?:\.(\d{1,2}))?$/.test(num)) return "";
    var m = RegExp["$1"], n = RegExp["$2"];
    var a = ["", "萬", "億", "兆", "京", "垓", "秭", "穰", "沟", "涧", "正", "载"];
    var b = ["", "十", "百", "千"];
    var c = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
    var d = ["角", "分"];
    return "(大写)" + m.split("").reverse().join("").match(/.{1,4}/g).map(function (item, index, array) {
        return b.reduceRight(function (prev, cur, idx, arr) {
            return prev += c[item[idx] >>> 0] + cur;
        }, "").replace(/(零.)+/g, "零").replace(/零+$/, "") + a[index];
    }).reverse().join("").replace(/^零+/, "") + "元" + (n ? n.split("").map(function (item, index, array) {
        return +item ? (c[+item] + d[index]) : "";
    }).join("") : "整");
}

Arch Linux 网络设置

PPPoE 拨号设置

  1. /etc/ppp/peers/ 下建立拨号配置文件,如 /etc/ppp/peers/adsl,添加以下
    内容:

    plugin rp-pppoe.so
    # rp_pppoe_ac 'your ac name'
    # rp_pppoe_service 'your service name'
    
    
    # network interface
    eth0
    # login name
    # someloginname: ISP 提供的用户名
    name "someloginname"
    usepeerdns
    persist
    # Uncomment this if you want to enable dial on demand
    # 按需拨号
    #demand
    #idle 180
    defaultroute
    hide-password
    noauth
    
    
    # 使用 mppe,如果是小区宽带,可能需要 mppe
    require-mppe
    require-mppe-128
    mppe-stateful
    
  2. 根据 ISP 的验证方式,编辑 /etc/ppp/pap-secrets 或者 /etc/ppp/chap-secrets
    或者同时编辑这两个文件,将 ISP 提供的用户名及密码添加进去:

    someloginname   *   yourpassword
    
  3. 开始拨号连接:

    pppd call adsl
    

    或者

    pon adsl
    

    如果想把 adsl 作为默认的拨号连接,可以把 adsl 链接到 provider

    ln -s /etc/ppp/peers/adsl /etc/ppp/peers/provider
    

    如果是默认的拨号连接,可以直接使用:

    pon
    

    来拨号。
    关闭连接可以使用以下命令:

    poff adsl
    

Continue reading

Arch Linux 软件备忘

  • ristretto – 图片浏览器
  • mupdf – pdf 阅读器
  • zathura – pdf 阅读器(解析 pdf 使用 zathura-pdf-mupdf,一般使用这个,不过有时打开含有图片的 pdf 时图片无法正常显示,就使用 muPDF。zathura-pdf-mupdf 0.2.3 已经可以正常显示了
  • vim – 代码编辑器
  • firefox – Web 浏览器
    • Add-on
      • Adblock Plus – 广告过滤器
      • DOM Inspector – DOM 查找器
      • Element Hiding Helper for Adblock Plus – 配合 Adblock Plus,用于隐藏页面元素
      • Element Inspector – 配合 DOM Inspector,可快速在 DOM 树中定位元素
      • Firebug – 网页开发工具
      • Firepicker – Firebug 插件,颜色选取器
      • Modify HTTP Header – 修改 HTTP 头的工具
      • Pentadactyl – 在 Firefox 中实现类 Vim 的操作
      • Scriptish – User Scripts 管理器
      • Stylish – User Styles 管理器
      • userChromeJS – UC 加载器
      • wmlbrowser – 可解析 WML 的工具
    • User Scripts
      • anti google search redirect
      • blockPopUpWindow
      • disabled beforeunload event
    • User Chrome Scripts
      • autoCopy
      • googleImageSearch
      • middleClickFocusOpen
      • middleMousePaste
      • middleMousePasteAndGo
      • UndoListInTab
    • User Styles
      • about:neterror
      • Bing 美化
      • external link
      • Google 美化
      • IMG broken
      • Pentadactyl Addon Bar 美化
      • 美化输入框
      • 修改选中文本的背景颜色
      • 自定义滚动条样式
  • thunderbird – 邮件阅读器
  • virtualbox – 虚拟机
  • gimp – 图像处理软件
  • libreoffice – 办公软件
  • aria2c – 下载工具(有时还用其他的:curl、wget)
  • mplayer – 播放器