亲爱的,我还没死。

i am still alive

由于投资女仆沏茶屋失败,穷得连明信片都买不起;8月最后一天,我还是在客栈露个脸吧。对,我还直立着,不在老家,而且未婚。仍没时间回来做报告,但客栈的其他成员似乎在捏它营(据说是正式版)混得不错,也许你会有兴趣逛逛。

旅行期间没发现什么新大陆,只碰上了lag到吐血的素材置き場吐槽Open Source的男人;说起来,Mixi的手机限制似乎让无数喜欢偷窥的国人注册不能,当然,也包括我,有解决办法/公共帐号的请留言。

日本宅与德国宅的关系?

好吧我标题党了。最近听过说日本宅放无损的主流格式都变成TAK了才去发掘有关它的信息,然后发现是某德国宅开发的新无损格式,目前算法是闭源的,所以只有Windows平台才有得用。也因为日本完全沦陷在微软之下,TAK的流行程度才得以不受限制。

至于TAK的好处无需我多说,无论是压缩率还是压/解速度都属于“优秀”的级别,且均已有Winamp/Foobar插件,对于客栈广大的(91%)Windows用户来说应该没什么障碍吧?

Pixiv懒人套装

本人外出工干,请不要期待每周更新,更不要期待每日更新,反正你知道我会在哪里出没。

Pixiv在世界各地真是越来越红,在看完日本人制造的Pixiv好人套装(提供Pixiv功能增强,与正常用途相似,对服务器很文明),以及中国人制造的Pixiv恶人套装(提供关键词批量下载,类似Tortinita的作品,甚至支持例如Danbooru等小众服务,不使用API,就算他们存在),我决定把自己的懒人套装贡献出来。

Pixiv懒人套装一号

评级:安装难度低,适用范围广,懒惰程度低。

适合用户:喜欢上Pixiv闲逛的旅客。

以下简明教程。

浏览器:Firefox (2.0以上测试)

Demo Pic

Step 1:安装Greasemonkey,重启;

Step 2:找到店长写的User Script – "Pixiv Lazy",安装;

Step 3:杀到Pixiv,等页面读取完毕后,会见到所有图片链接出现[b]和[s]字样,b代表mode=big,s代表原图片链接;

Step 4:爽。

浏览器:Opera(9.0以上测试)

Demo Pic

Step 1:工具->首选项->高级->内容,点Javascript选项,在“用户Javascript文件”下选择一个不会变动的空文件夹,Opera今后会在该文件夹读取所有用户Javascript;

Step 2:找到店长写的User Script – "Pixiv Lazy",保存为abc.js文件,放入上述文件夹;

Step 3:杀到Pixiv,等页面读取完毕后,会见到所有图片链接出现[b]和[s]字样,b代表mode=big,s代表原图片链接;

Step 4:爽。

浏览器:Safari on Mac

Step 1:下载GreaseKit,安装。

Step 2:找到店长写的User Script – "Pixiv Lazy",安装(因为你用Mac,所以你很强,所以我假设我不需要教你怎么安装;如果你只是纯粹有钱,请与我联系帮助);

Step 3:杀到Pixiv,等页面读取完毕后,会见到所有图片链接出现[b]和[s]字样,b代表mode=big,s代表原图片链接;

Step 4:爽。

浏览器:Safari on Windows

Step 1:告诉你自己Safari on Windows还不实用;

Step 2:安装Firefox/Opera;

Step 3:参见Firefox/Opera教程。

浏览器:IE7

Demo Pic

Step 1:下载IE7Pro,安装(讨厌IE7Pro太多功能的见IE6的教程);

Step 2:找到店长写的User Script – "Pixiv Lazy",保存为abc.ieuser.js文件,放入\IEPro\userscripts文件夹;

Step 3:启动IE7,在右下角双击图片进入设置,激活脚本&插件模块,在左侧选择用户脚本,回到右侧点击重新加载所有脚本,启用Pixiv Lazy;

Step 4:杀到Pixiv,等页面读取完毕后,会见到所有图片链接出现[b]和[s]字样,b代表mode=big,s代表原图片链接;

Step 5:爽。

浏览器:IE6

Step 1:安装Trixie(理论上IE7Pro也能在IE6工作,见IE7教程);

Step 2:找到店长写的User Script – "Pixiv Lazy",保存为abc.ieuser.js文件,放入\Bhelpuri\Trixie\Scripts文件夹;

Step 3:启动IE6,菜单“工具”下选择Trixie Options,点击reload按钮,启用Pixiv Lazy;

Step 4:杀到Pixiv,等页面读取完毕后,会见到所有图片链接出现[b]和[s]字样,b代表mode=big,s代表原图片链接(如果IE6突然死亡,请责备自己用2001年生产的浏览器);

Step 5:爽。

浏览器:Maxthon(IE Shell,坚决用MyIE的我帮不了你)

Step 1:一代安装这个,二代安装这个

Step 2:找到店长写的User Script – "Pixiv Lazy";本人没有Maxthon,如何安装见作者介绍;记得更改代码中的include项目,JS-Plugin用In-URL参数。

Step 4:杀到Pixiv,等页面读取完毕后,会见到所有图片链接出现[b]和[s]字样,b代表mode=big,s代表原图片链接(如果IE6突然死亡,请责备自己用2001年生产的浏览器);

Step 5:爽。

其他浏览器请自行解决,反正代码很简单。

Pixiv懒人套装二号

评级:安装难度中,适用范围窄,懒惰程度高。

适合用户:不喜欢上Pixiv闲逛但又想看好图的旅客。

Demo Pic

以下简明教程。

自备Firefox浏览器一只,安装好GreasemonkeyRefControl;顺便找一个订阅器,我的代码专用于Google Reader,高人可自行修改。

Step 1:安装本人的另一个User Script – "Pixiv Reader",安装;

Step 2:在右下角的RefControl输入以下内容:添加站点pixiv.net,自定义为http://www.pixiv.net/ranking.php?mode=day

Step 3:订阅我已经做好的各种Feed。如果Feed停止更新了,请浏览该页找替换品。

Step 4:尝试点击图片链接,你会发现Firefox连登录都不用就能看Pixiv的全图了。

运作道理是什么稍微有点HTTP header/Apache常识的人都会明白,也解释了为什么目前只有Firefox才行。至于如何利用是你的选择,我只是想懒而已。

捏它营 BETA 发布!(附加本周阅读)

算盘打得特别响的时候,恰恰也是算珠最容易飞脱的时候。

——店长, 2008-06-02

万事俱备,只欠东风,要不是店长临危受命去修正一个项目的漏洞,今天我本不该跳票。不该发生的都发生了,拖到现在才能发布本来用于教唆纯洁旅客的作品,唉,还有哪位萝莉没在安眠

netainn

收拾心情,让我大致为“捏它营”做个解释。

Continue reading “捏它营 BETA 发布!(附加本周阅读)”

自我提醒

在限制内存占用为100M的情况下,PHP默认GD库能处理的图片大小很有限。所谓图片大小不是size,是dimension,例如imagecreate读取png图片的比率是1像素对应8.2比特,将无法为点阵超过12960000的图片生成资源指针(也就是3600×3600的图片),另外部分函数的内存占用和色彩通道有关。jpg相对节省,100M内存至少可以读取5000×5000的图片,没有专门测试上限。

解决办法:调高memory_limit,未知其他解法。

客栈挑战:CSS里font-size与em的暗喻。

trythis

让现有如下HTML+CSS代码。它能生成上图的左图,现在要将它改成右图的样子(黄色方框正好填满黑框的剩余空间),应该怎么设计CSS代码?提示,最短的解法需要修改.four(黄色框的class),不用改动现有代码,只需加入新的属性即可。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>test</title>
    <style>
      .main{
        font-size:2em;
        width:100px;
        height:7.5em;
        position:absolute;
        top:10pt;
        left:10%;
        border:2px solid #000000;
      }
      .one,.two,.three,.four{
        padding-top:0.5em;
        height:2em;
        background-color:blue;
      }
      .two{
        padding-top:1em;
        background-color:green;
      }
      .three{
        padding-top:1em;
        font-size:0.5em;
        background-color:red;
      }
      .four{
        background-color:yellow;
      }
    </style>
  </head>
  <body>
    <div class="main">
      <div class="one"></div>
      <div class="two"></div>
      <div class="three">
        <div class="four"></div>
      </div>
    </div>
  </body>
</html>

解题思路:

对网页设计有兴趣的同学尽管来尝试吧,虽然道理非常简单,但亲身尝试对今后你使用em元素非常有帮助,尤其是在font-size使用相对单位时的“特质”,有时候你的浏览器并没有出错(这段代码在IE6与7,FF和Opera上的渲染都完全相同),出错的只是你的大脑。

答案周末公布。

Opera 9.x 网页简体中文显示错误临时解决之道

(首先要说的是本文只针对网页设计者和Opera使用者而写,无关者请无视,不要主动弹出来喊“用什么浏览器的飘”,我会让你的留言一起飘到数据库地狱去。)

before

接下来谈谈店长这个小发现,自从Opera 9发布以来店长就一直被它奇怪的中文渲染所困扰,字体大小不一,比重也变化多端(见上图),无论使用页面CSS进行怎样的定义,始终没办法改变它的渲染行为。无奈之下只得放弃Opera,换用Firefox。如今FF早已经成为我的首选,但Opera的问题依旧困扰着我。

直到我发现了这个页面

症状描述:Opera 9.x在使用简体中文的系统上(Windows和Linux)渲染中文字体时字符集选择错误,准确的说,是将简体中文用繁体字符集渲染。

影响范围:部分简体中文系统,平台不限;出现问题的页面编码为utf-8;Opera 9.2系列(当前稳定版本)均有可能出现此问题,9.5开发版我没有测试。

解决办法

这里分为两个部分谈,首先说网页设计者怎样绕过这个问题

之前提供的链接也解释了,Opera之所以会选择和CSS内设定font-family不同的字符集是因为国际化(i18n)的需求,浏览器在页面没有设定特定语言(lang属性,几乎可用在任何html元素上)的会自行决定字符集,这个决定无法通过CSS更改。

要让Opera分辨简体字和繁体字也简单,在html元素上添加lang属性即可,用"zh-hans"作为值,按照W3C说法这比zh_CN的更受认可;如果是XML文档可以顺便加入xml:lang="zh-hans",以免Opera的检查过于严格,两者都符合(X)HTML标准,可并存。

如果你只想页面上部分元素使用简体字渲染,也请参考之前的链接,里面有详细的HTML+CSS范例。

解决了设计者的困挠,用户又该如何让Opera正确渲染没有加入lang属性的页面呢?

User Javascript,Opera很早就支持类似Firefox上Greasemonkey的自定义JS功能,它的设定在工具->首选项->高级->内容的栏目下,设定一个文件夹,Opera会读取里面所有的.js文件。我们只要写一个简单的JS来实现为没有lang属性的页面增加正确属性即可,以下实际代码。

// ==UserScript==
// @include http://www.google.cn/*
// ==/UserScript==
document.addEventListener(
'load',
function () {
var lang = document.getElementsByTagName("html")[0].getAttribute("lang");
if(!lang) {
document.getElementsByTagName("html")[0].setAttribute("lang","zh-hans");
}
},
false
);

用过Greasemonkey的同学应该很熟悉这个设计了,我稍微解释一下,顶部注释部分负责限制代码运行的域名,在这里我限制了代码在google.com的域名下才运行(白名单)。

Opera提供了自设的几个强大的Event Listener,但这里我们只要用Javascript DOM的即可,默认设定是在页面读取完毕之后添加lang属性,也就是字体会在页面读取完毕后修正。肯定有更好的做法,但本人JS水平有限,想不到更快更准Fire的方式,有熟练者请赐教。另外input元素的中文字体无论使用哪种方式还是不变,不知道是不是bug,对与我这类开发者来说这已经不是问题了。

最后顺便一提,如果你要在HTTPS这种加密页面内用User Javascript(例如Google Reader),opera:config内User JavaScript on HTTPS的选项必须打开,默认是关闭的。

after

这样一来Opera 9.x在简体Windows上老难题也解决(大半)了,浏览器公国的再度恢复平静。其实Linux上也可用同样的伎俩,只不过它们有更快捷的办法——env lang=zh_CN。

更新:Opera:Config里Force Encoding也是非常重要的值,设置成AUTODETECT-ZH应该可以;店长的设置不知道为什么变成AUTODETECT-JP了,至此input元素的显示问题也解决。我建议有同样问题的旅客先检查你的Force Encoding和首选项里的字体设定(菜单中文显示可以通过设置字体为宋体解决),然后看查看栏目里的用户自定义风格是否无意中启动了(Opera可以覆盖页面CSS),最后再考虑用上诉的解决办法;网页开发者则可在页面里加入lang属性,方便浏览器更好的语言支持。

34条网站优化建议

雅虎开发者网络更新了他们的网页优化加速建议,从14条增加至34条。大部分优化指南针对于超高流量网站,类似论坛/门户/下载站等等,对客栈这种小站来说并非全部适用。Firebug的增强工具YSlow也有新版,帮助开发者优化网页,IBM最近写了一篇相关的使用说明。至于这种极端的优化是否有必要,Jeff Atwood有个简单的解释