黑蒙蒙一片

深圳的天空是灰色,阴雨乌云寂静仿佛是为哀悼日做准备;深圳的电视是黑色,禁播外海频道,全体CCTV-1仿佛是为哀悼日做准备;深圳的人民是苍色,捏紧拳头,沉默不语仿佛是为哀悼日做准备。

连续三天,2:28防空警号将在全城响起,也许是我们对死者缅怀的释放,也许是我们对受灾同胞的思念。很多也许,我只希望一切的准备,并不是“也许”能让处在困苦中的人民振作起来。

致关东图书队和Production I.G的一封公开信

亲爱的关东图书队全体队员、敬爱的Production I.G全组人员,

librarywar00

身为一位体验过文化大屠杀的受害者,我正在努力的寻找词汇描述我观看《图书馆战争》至今的感想。要描述本新番的画质很简单,“精雕细刻”,“尽善尽美”,“朴素无华”等等等等,要不是我小学成语考试只得了个及格分,我本可以用更多的短语描绘《图》的精美。

小结《图书馆战争》的难度在于剧情和世界设定,我已经追看至第五集了,对于这部只有12集的动画来说是进度近半,然而我直到刚才还拿不定一个准确的形容词。“正义”?不对,玄田队长已经明确表示图书队不是正义组织。“晦暗”?不对,良化队的幼稚和笠原小姐的神经大条无助于这种风格。“无聊”?也不全是,柴崎和笠原之间的互动不是笑点满分就是友情满分,并非毫无看头。

那到底该怎么形容本剧呢?在看完第六集図書隊ハ発砲セズ(图书队不开枪?)后,我总算捏造了个大体的可行的beta测试的单词:

扯淡。”

接下来是我个人对《图书馆战争》内容的分析,好话没有,笑话一堆。为了不让大家白读本信,我在这里就挑明说,《图》是我看过的Production I.G作品表里最糟糕的一款。我不管原作有什么剧情,是否已经售出了72万多本,我只谈动画本身,它让我十分失望。

Continue reading “致关东图书队和Production I.G的一封公开信”

交接

“现在胡锦涛已经抵达了四川灾区,现在飞机刚刚降落,温家宝总理在机场迎接胡锦涛总书记,一会儿温家宝总理将乘飞机返回北京。”

这里店长用最平民的说法解释,按照以前开会胡温两人悄悄话的照片猜测,两人的关系不止于工作;莫非这就是经典热血漫画的“两肋插刀,哥们上”?当然就算只是工作,主席也是时候亲临了。

再见CNET,你好CBS

gamespot-cbs

CBS生吞CNET,用18亿美元收购。说实话CNET的运营这么差,给收购也是正常的事情。本来是全世界最大的照片库Webshots给你们搞残了,本来是最大的游戏评论网站Gamespot又给你谋杀了,手里还拽着tv.com,mp3.com,radio.com,news.com,chat.com,download.com乃至com.com一堆好域名浪费,CBS不买你买谁?他们很明显是冲着CNET的域名和人气去的,赶快把CNET的领导层灭了再说。

话说回来,CBS收购了last.fm,现在又拥有了Gamespot,我的信息不都在他们手里了?不妙啊不妙啊,一个Google还不够么?

重新认识半岛电视台

aljazeera

灾难让人重新认识很多事情,相信各位在本周也有类似的体会。对于店长来说,本周除了对咱温总理有了个更全面的认识以外,半岛电视台也在我心中留下了另一种形象。Al-Jazeera,半岛电视台,一直以来以“恐怖份子新闻发布中心”的形象存在于世界新闻的话题中,至于为什么拉登的爪牙老找他们发布信息,我一直没有特别好的解答。

但在看完半岛电视台(英文频道)中国记者站对四川地震的采访之后,我明白为什么了。半岛就是那种可以用冷漠目光看待一切悲剧的电视台,他们记者的名言Whether it’s Bush or Bin Laden, if it’s newsworthy it gets on air(不管是拉登还是布什,只要是新闻就应该播)的确执行的很好,相信各位在看完报道之后就会明白。

片中并没有对中国政府做任何评论,半岛只将最残酷的事实摆在我们面前,该记者采访的北川某镇,已经到了尸体都没办法及时收集的程度了,整个城内蔓延着腐烂的味道,亲人用自行车运送尸体。这是少数上不了CCTV的内容——无论十万大军怎么努力,72小时已经过了,奇迹毕竟是少数。

另一方面日本的国际紧急援助队来了,虽然已经迟了,但总好过没有,许多乡村我们都来不及搜索,因为都江堰大坝随时都可能倒塌。

事实让我们默哀,事实让我们反思,请记住这一切。

[Via Shanghaiist]

客栈挑战: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属性,方便浏览器更好的语言支持。