lizheming 发布于 03月26, 2016

PMBlog 转火麒麟

别院以前一直用的是我三年前开发的静态博客系统 PMBlog。这款程序(确切的说只能叫脚本)我自己还是比较喜欢的,插件主题什么该有的都有。不过这两年维护的时间越发的少了起来,加上最近参与到另一款基于 Node.js 的博客程序 Firekylin 的开发中,遂起了心想把这个静态博客切过来。

firekylin 有提供 WXR 导入功能,WXR 是 WordPress eXtend Rss 的简称,基本上可以算是博客程序数据转换的通用格式了。所以我只要把 PMBlog 的数据转换成 WXR 文件就好啦,为此特地将其写成了插件 Export2WXR。将插件拷贝到 plugins 目录下后再次编译会提示下载一个 .xml 文件。下载下来之后直接进入到 Firekylin 后台设置-导入数据将文件导入即可。

制作插件的过程主要是将数据转换成 XML 的过程,由于用的别人的 wxr 生成代码以及数据的不对应导致转换过程非常颠婆,具体就不多表了。由于之前就使用了 Disqus 的社交评论,新程序的文章地址和原来的略有不同,需要使用 Disqus 的 URL Mapper 工具对原来的文章网址进行重映射,将文章 URL 列表下下来之后用文本编辑器的正则批量替换基本上就能搞定了,这里给一个示例:

Find: http://blog.imnerd.org/(.+?)$
Replace: http://blog.imnerd.org/$1, http://blog.imnerd.org/post/$1

Disqus 的服务还是比较稳定的,不像之前帮 75team 转多说评论一样,各种导入导出功能失败,批量删除失败,数据太多失败,缓存抽风失败。只能说毕竟在国内,不赚钱的项目是没人管的,以后还是老老实实的用着 Disqus 吧。

博客程序切过来之后希望能像月影大大那样激发热情高产起来!哈哈!

阅读全文 »

发布于 08月11, 2014

好久没更新了

好久没更新了,这两天把Editor在线编辑器重写了一下,之前的bug似乎不复存在了,当然新的bug在所难免。我会继续努力的 —via iPhone

阅读全文 »

发布于 03月08, 2014

你是猴子请来的逗比么

啊,开篇第一句又是不得不吐槽的更新速率。自出年底回光返照之后,一切似乎又回到了从前,程序也懒得更新了,在这里我只能用“呵呵”二字回答你们了。

忽然想起来开学收到过@Jclyn 的明信片,背景是花,给人清新淡雅的感觉。不过某人的字果断是值得吐槽的,虽然某人让我千万不要浪费力气来做这事了,呵呵。

阅读全文 »

发布于 02月20, 2014

论“赞”引发的血案

前天的火车终于在昨天中午回到了学校,带来的小鸡腿没一会儿就被我散光了,似乎我自己没吃到几个,囧!草草的收拾了一下就迎来了晚上的“痛苦时光”。

之前汉堡大大有吐槽说好不容易写出来的答案被埋没了的事,当时随口说了一声汉堡大大的回答必须每个都要赞。今天想起这个事来了就稍微研究了一下赞这个过程的请求头。发现只需要sfsess, id, do, cancle四个参数。sfsess即登陆后的session id,通过cookies可以拿到,id即回答的id,do是动作,有like, hate, delete, update等值,cancle则是表明是点赞还是取消赞。

阅读全文 »

发布于 02月15, 2014

双节棍

首先恭祝一下大家元宵节快乐啦,然后就是今日吐槽了。自从回来之后一直处于断更状态,虽然更新过一篇(还不是在这个博客上更的)了胜于无,但是之前说过的“经常更新”什么的已经完全忘在脑后了,啊哈哈哈哈!节内也一直处于死相状态,没看书,没码字,没码代码,想想没两天(真的是没两天啊!)要回学校了,回去又要被老师各种吐槽了,瞬间感觉我这是在作死啊,说好的动力呢,我们还能不能好好学习了!

今年元宵节和Valentine\'s Day是在一块的诶,感觉好像每次元宵和情人节都差不多。去年的这个时候我好像就在路上,晚上坐地铁回学校的路上看到地铁内核马路上各种女孩子拿着鲜花什么的,瞬间好心疼那些花啊%>\_<%。

前两天县里头举行游街活动(其实是非遗展览啦→_→),好不热闹。所有的队排好方阵绕着街道走,街道两边都围满了人(甚至是两边的房屋上都是人)。看着各种热闹让我觉得这跟国外的游街也没有什么不同嘛。下午他们在某实验中学排练的时候在学校逛了一圈拍了几张照片,可惜没雪,要是有点雪就再好不过了。

阅读全文 »

发布于 01月22, 2014

我肥来了

当里个当当里个当,在学校憋了好久,忍受了好几天难以下咽的饭菜以及无法让人安寝的呼噜之后我终于果断卷起铺盖回家了。之前买票也颇为不易,十点放票的时候我都没抢到票。不过好在没死心再刷了一会儿,突然发现有一张票,果断立马就购入了。正准备出门的时候就碰上了刚回来的木哥,看了一下感觉瘦了好多诶,给我感觉就像是出去浪了一圈精尽人亡了(⊙o⊙)…

进火车站的时候发生了点小插曲。之前老妈叮嘱我让我买个烤鸭回去的,然后我特地就跑前门去买了一只。因为本来北京烤鸭就不怎么好吃(个人觉得),真空包装的更是,只能听蒙哥推荐买了鲜鸭了。买完鸭子一看钱包里头只剩下75不到了,一想到杭州还得买个汽车票大概是80左后的样子就蛋疼了,而且农行卡正好不到100了。没办法只好从余额宝提了100,在前门地铁那块的农行ATM机旁等了30分钟之后实在是不耐烦了,想着北京站应该有农行的ATM机就直接去坐地铁了。结果上地铁没两分钟就提示我钱到了OAQ... 到了北京站在不远处就能看到大大的农行几个字,但是站旁边却以为的没有农行的ATM机,坑爹啊!为了省跨行的手续费,我只能无良的继续把钱打到招行卡里面,然后用招行的卡在一个背景银行的ATM机上取到了救命的100块钱,真心小纠结了一下。然后去取票结果随手就把烤鸭放在取票台上了,去完票也没记得拿回来。等进展要检查包裹了想了半天才发现尼玛烤鸭没有拿啊!蹭蹭蹭的就以最快速度跑过去了。好在人品不错,居然还在那块OAQ。因为这会儿快到上车时间了,又以全速冲进站了...

因为是坑爹的1号铺的原因进去之前特地看了一下开头的铺,结果我的铺在最那边。本以为我这回聪明了一点,结果乘务员直接告诉我那边的门关了!好吧,还是得悲剧的提着箱子老老实实的走过去了OAQ… 到铺上发现一大叔蹭着我的铺,等我收拾好了也没有挪位子的想法,晚上还一直蹭我拖鞋什么的。个人比较反感别人随意蹭我的东西,所以对这大叔也莫名的没好感。虽然他挺健谈的,但是偶尔就透露出“公务员最好”的想法,说是女儿从小学就教育她要考公务员了,而且因为儿子不想考公务员头疼不已。让我不得不有点鄙夷,虽然我也不知道这种想法到底是不是对的,但是就是本能的讨厌。隔壁铺的同学意外的居然是地大的校友,不过人家是本科的啦,也不是我们院的,而且是大四学霸保送到北师减灾的研究生了。另外一个北邮的同届,好像是做网络的,本来想深入交流一下不过那么多人就没具体问了,而且也不好意思当着人家的面直接吐槽他们校长啊… 还有一个大二的快乐小骚年,晚上用他的电脑看了两集爱情公寓四,让我看到了那个被吐槽的“妇女之宝”了,呵呵~!

不得不说汽车坐的是真心难受,上车没一会儿就晕头转向想吐的不行了,模模糊糊睡了一个小时之后就醒了,然后就是各种难受,额头出的汗都是冰凉的。下车的时候老妈过来接的我,呼吸了点新鲜空气之后就好多了。最后的最后,回家吃的第一餐感觉特别特别的棒啊,回味无穷!

阅读全文 »

发布于 01月18, 2014

找啊找啊找工作

这两天依旧是躲在寝室,因为没怎么做脑力劳动,结果就直接导致我赖在电脑前一天只吃一顿饭了(⊙o⊙)... 前天因为M 17号就要回去然后大家一块去吃了自助(然后狠狠的宰了军军这个冤大头,呵呵!)。去的地方好像叫“张老秆”,实惠的地方在于素菜只要9元/人,然后就可以任意吃了。拼命的点了各种素菜之后,我们一致得出结论,军军已经吃的整个人都绿了,哈哈!昨天想了想食堂的难吃程度,毅然决然的准备去之前觉得还不错的一家面馆吃去。结果等到了那之后发现居然换店了,惨惨惨...虽然也还是开面馆,但是品种什么的明显比以前的少多了,不过味道还是以前的味道(可能是换招牌了)。今天因为不恰当的时间(3点多的样子)甘哥让我出去拿了趟快递,顺手去工作室收拾了点东西,导致我一路奔波没有了探求美食的性质,索性就直接牺牲一下自己的胃去食堂吧。今日仔细一看才发现平常我爱吃的几道菜居然都没有了,惨惨惨...于是就随手凑合的点了个盖饭。后来怕晚上饿着想带个千层饼回去,结果发现也没了,惨惨惨...

花了几天的时间终于把《绝园的暴风雨》看完了。感觉实在是佩服作者的脑袋,一路上各种因果的循环打圈圈,不仔细捋一捋的话我都觉得头晕呢。前两天在校网上搜罗下载了一些动漫,这里不得不说校网的动漫资源实在是太少了。今天看了一部叫《小红帽》,引用豆瓣简介上的话就是“罗生门版的小红帽”。分别通过小红帽,奶奶,大灰狼,和伐木人的眼睛讲述他们自己的小红帽的故事。好莱坞电影中一些必要的元素(谎言,武打,警匪等,除了爱情)居然也活灵活现的在电影中粗线了,真的不得不感慨导演的思路奇特。推荐大家去看看,感觉还受益匪浅的样子的说。

对了,记一个比较有趣的事情,昨晚睡的比较晚(确切的说是今早00)。然后大概在5点多的时候吧,依稀记得甘哥起来把王哥拍醒了4-5次的样子,哈哈。可能是甘哥被他的呼噜给吵醒了吧,第一次拍醒了甘哥还没回床上呢就又开始打起来了,后来甘哥拍了两次结果都没把他拍醒(´Д`)然后甘哥就怒了,又拍了两次才见消停下来,哈哈!真心把我笑惨了O(∩∩)O...

阅读全文 »

发布于 01月17, 2014

医生哭晕在厕所

在寝室躲了一天,晚上去食堂吃饭。本来想去三楼风味美食吃的,结果发现一楼和三楼正好今天都关闭了,只有二楼开放,惨惨惨!这也就算了,打了个鸡腿发现这货是以前一楼被我吐槽无数的那家,不仅少给我一个还做的特别难吃,惨惨惨!打了碗排骨汤,急着想喝结果太烫了把舌头烫着了,现在舌头还有点疼,惨惨惨!

阅读全文 »

发布于 01月15, 2014

又是曲终人散时

http://imnerd.org/lab/search/show.html#377666

晚上二哥在打DOTA,电脑无限放着张宇的歌。突然听到这首《曲终人散》,有种无限的伤感从心底飘起。

昨天吃中饭的时候食堂师傅好心的问我怎么还不回家呢,今天算是正式放假啦。不知怎的,瞬间就感觉有点孤独。昨天古哥就回家去了,说是要考驾照。今天中午蒙哥和他女盆友也回家啦。木哥之前去宁夏喝喜酒现在也还没回来。除了一直在聒噪的和各种人打电话的贾少,寝室明显的开始萧条了起来。

今天大哥发了一张和大姐以前大学时在KTV的照片,又将我的思绪拉回到了以前。回忆是痛苦的,拥有回忆却又是快乐的。人就是这样,痛苦并快乐着。

以上。

阅读全文 »

发布于 01月13, 2014

许久之后的回眸

嗯,看了下时间,有将近一个礼拜没写日志了。最近的日子过得颇为堕落,除了偶尔出去吃吃饭剩下的时间基本上就呆在寝室了(其实是呆在电脑和床边了[噘嘴斜眼中])。上上网看看小说,偶尔看看视频,写代码也没什么动力,整个人都负能量爆棚,唯有躲到小说和电影的世界中忘记现实。

前天接受亚琴的邀请去她那里蹭饭去了。自从高中毕业之后除了一些玩的非常好的朋友(其实也就那么两个而已[继续噘嘴斜眼中])外,因为家庭原因基本上都没参加过同学聚会的我都没有见过任何的高中同学了。亚琴算是之前玩的还可以的同学啦,嘿嘿!虽然坐了将近两个小时的地铁以及最后一段路程还迷路了,不过看在吃到美食的份上我就不吐槽什么了,恩哼!自家做的酸菜鱼火锅什么的果然就是爽啊,比食堂什么的好吃爆了,要感动哭了有么有T_T!

晚上又一起组团去通宵KTV了,不得不说亚琴的生活过的够小资的。熬到五点多我实在熬不住了就困了。完事之后蹭蹭蹭的干着早班地铁回的学校。虽然没有平常的地铁拥挤,我也有坐到位置,不过相较于六点多这个点来说还是觉得人好多啊。而且大清早的坐车的基本都是些务工的工人,不得不说工人真是辛苦啊。

回来之后还非常有闲情的去教工食堂吃了个早餐。各色食物都点了一点之后发现,教工食堂的早餐还真是没什么吃的。回寝室之后立马就倒床睡觉了(我会告诉你倒床之前我还玩了两把节奏大师么!)。以至于师姐打电话过来我也完全没反应,见我手机被连环夺命Call了,蒙哥实在是看不下去了就把我摇醒了(蒙哥我要睡觉啊T_T!!!)。这才想起来因为很久之前帮过师姐一点忙所以她答应中午请我吃饭的,上午打电话过来商量着去哪里吃来着。跟师姐愉快的吃了午饭之后又继续回到床上做“扑街”状了,结果一睡就睡到了晚上七点,呜呜呜,我是睡神么!


今天微博上的好友 @孚辰_ 分享了一个用无数个Checkbox做画板的网站: http://www.mrdoob.com/lab/javascript/checkbox_painter 。看到的瞬间我就想是不是可以利用方程式画些乱七八糟的东西出来,比如爱心啊什么的。不过在试验爱心之前我先把普通的三角函数都试了个遍,嘿嘿!

最后是爱心版了。之前想直接用笛卡尔心形线的方程式,不过看样图好像不是很好看。网上传的一些公式用起来也比较费力,最后还是用分段函数解决了。将爱心分为上下两部分,上半部分由两个半圆组成,下半部分由两跟相交直线构成。废话不多说,直接放上效果地址:http://t.cn/8F2SkBp

最后的最后放上我的“画心”代码:

d=document;
var m = {
    e: d.querySelectorAll(\'input\'),
    r: parseInt( d.body.clientWidth / 20 ),
    c: parseInt( d.getElementById(\'container\').clientHeight / 19),
    o: function() {return {x: 0,y: Math.floor(m.c / 2)};},
    g: function(x, y) {return m.e[(m.o().y - y) * m.r + x];}
};
var e = function(x, y) {
    if( y>=0 )  
        return Math.pow(x - 28,2) + Math.pow(y,2) <= 50 || Math.pow(x - 14,2) + Math.pow(y,2)  <= 50 ? true : false;
    else 
        return y >= -x+6 && y >= x-36? true : false;
};
for(x=m.o().x;x<m.r;x++) {
    for(y=m.o().y;y>-m.o().y;y--) {
        m.g(x,y).checked = e(x,y);
    }
}

阅读全文 »