2013年10月28日星期一

天安门爆炸报道综合与对比

天安门有汽车着火爆炸,先不下定论是“交通事故”还是“汽车炸弹”,主角是汽车应该没错,“着火”也是准确的描述。先来看官方媒体“环球时报”和“北京新闻广播”这两个社交媒体帐号的“统一”口径:

@环球时报
【天安门前一车辆着火冒出浓烟 消防已到现场处置】据人民网,今天上午12时左右,天安门前一车辆起火冒烟,据现场的一位目击者称,车辆从南池子右转到长安街,西行至在天安门前着火并冒出浓烟,目前现场已经被封锁,消防人员等已到现场处理事故。


2013年10月24日星期四

36kr给新闻来源加 ref="nofollow"链接的作法不可取

let me try to explain in English if someone from US and try to understand this post,  the 36kr.com , former self named "Chinese Version of TechCrunch", still translate English source pick up content but add ref="nofollow" to source link, stop search engine follow source link. that's not fair.

在twitter上看到明月星光的一条谴责36kr的推文:
我在转推之前去核实了一下:
我打开 http://www.36kr.com/p/207159.html 看到一篇36kr翻译自verge的文章《
三星Galaxy S4 mini下月美国开售,将与四大运营商合作 》,文章的右下角果然是一个小小的英文注明的来源:
SOURCE: theverge.com

2013年10月14日星期一

求救,用SimpleXML读不出namespace里的值

我在尝试用simpleXML来解析atom1.0格式里的数据,结果遇到了读不出数据的问题。

下面是atom的源代码:
<atom:id gr:original-id="http://huijia.org/?p=30">tag:google.com,2005:reader/item/524195038eba942c</atom:id>

上面的代码里有两个名称空间(namespace),一个是gr

'gr' => 'http://www.google.com/schemas/reader/atom/',
另一个是atom
'atom' => 'http://www.w3.org/2005/Atom'


我想把original-id的值读出来,也就是要读到 http://huijia.org/?p=30 的值,这个值实际上是blog的永久链接,但我尝试多个办法都失败了,不过我能用print_r()打印出来

2013年10月11日星期五

自动替换中文的全角逗号为英文的逗号的javascript脚本


今天又完成几个功能,其中一个功能是:报料者填写tag时不会注意中文逗号和英文逗号的区别,有人习惯了用空格来隔开标签,所以我弄了个javascript把空格转换为逗号,把中文逗号改为英文逗号,把两个相邻的逗号替换成一个,这样就有很大的兼容性了。

代码如下:

<script type="text/javascript">
//将中文逗号转换为英文逗号 str:待替换的字符
function ReplaceDot(str)
{
var Obj=document.getElementById(str);
var oldValue=Obj.value;
while(oldValue.indexOf(",")!=-1)//寻找每一个中文逗号,并替换为逗号
{
Obj.value=oldValue.replace(",",",");
oldValue=Obj.value;
}
while(oldValue.indexOf(" ")!=-1)//问号中间是一个空格,看不到但存在。寻找每一个中文空格,并替换为逗号
{
Obj.value=oldValue.replace(" ",",");
oldValue=Obj.value;
}
while(oldValue.indexOf(",,")!=-1)//寻找每两个中文逗号,并替换成一个逗号
{
Obj.value=oldValue.replace(",,",",");
oldValue=Obj.value;
}
}
</script>


用法:
在tag的输入框里加上onBlur事件,这样就在用户输入完成后离开输入框就开始替换中文逗号和空格:

<input name="tag" type="text" id="tag" value=""size="30"   onBlur="ReplaceDot('tag')" />

这篇文章同步到twitter上后,@ixever 建议我减少代码量可以用正则表达式
刚才尝试改了一下,发现replace即使加正则也只在一行内搜索替换一次,如果人有输入了空格加逗号就会有两个相邻的逗号出现,所以还是得用 while 来再查一次。

<script type="text/javascript">
//将中文逗号转换为英文逗号 str:待替换的字符
function ReplaceDot(str)
{
    var Obj=document.getElementById(str);
        Obj.value=Obj.value.replace(/,| /gi,",");//找到中文空格和中文逗号,替换为英文逗号

   while(Obj.value.indexOf(",,")!=-1)//把两个相邻的逗号替换成一个逗号
    {
        Obj.value=Obj.value.replace(",,",",");
    }
}
</script>

2013年10月10日星期四

对我来说的两个利好消息

中国(上海)自由贸易试验区出台了《外商投资准入特别管理措施(负面清单)》,其中I641条中“禁止投资新闻网站“。

另一个消息是《国家互联网信息办通报查处一批违规移动新闻客户端

2013年10月8日星期二

如何合并po文件


我下载了一个bbPress,结果找到的中文语言包是一年前的,最新版的2.4的语言包没有中文的。虽然一年前的版本也能让界面变成中文的,但还是有一些地方没有显示为中文。

我对比了一下po文件,发现2.4的版本的有1014行需要翻译,而1年前的2.0只有704行,我想找出哪些没有翻译过的,结果这是一个非常巨大的工作量,我决定找找看是否有办法合并po文件,这样我就只需要翻译300多条了。

还真的是一个常见的需求,找到这个页面:
http://code.google.com/p/i18n-zh/wiki/Merge
升级原来已经翻译过的文件
这是最常见的情况了。由于程序升级,导致相应的 po 文件发生改变。作者将最新的 po 上传给了 TP。默认情况下,如果该软件以前曾经分派给你翻译的话,那你将会是新 po 文件的指定翻译者,不必再去申请了。 方法也简单。只要将新版本的 pot 文件跟原来翻译好的 po 文件放在同一个目录下。然后运行
msgmerge -U old.po new.pot
就行了。合并过的文件将以 old.po 命名,原有的 old.po 将被改为 old.po~。然后你要做的就是,在生成的的 po 上进行修订,最后用 svn ci 直接上传就 OK 了。old.po~ 会被 svn 自动忽略。如果你要觉得它不爽的话,直接用 rm old.po~ 删除就行了,因为这个文件是不受 svn 版本控制的。

2013年10月1日星期二

搜索GMAIL邮箱中未回复的邮件

GMAIL的邮件支持搜索,有时拖欠了很多邮件未回复,如何搜索未回复的邮件成了难题,GMAIL的高级搜索里只有in:unread但没有in:unreply,不知道GMAIL会不会在将来加上unreply属性

所以简单办法可能是搜索收件箱,并用减号排除回复过的邮件:


in:inbox to:me -{label:RE} -{"re:"} -{"回复:"}

如果搜索近两天没回复的邮件,就用

in:inbox to:me -{label:RE} -{"re:"} -{"回复:"} newer_than:2d


如果搜索一个月前没回复过的邮件,用

in:inbox to:me -{label:RE} -{"re:"} -{"回复:"} older_than:1m

当然,人要多懒或多忙才能用得上以上功能啊