分类目录归档:不是技术

测试一下离线文章的草稿功能

其实只是想看看wordpress的这个apps能否进行离线文章撰写,可行的话,就可以完全当成草稿的编辑功能。

由于google的服务持久性实在不能给人什么强信心,因此不大指望google doc完成这样的功能。
而blog对我来说,又是一个应该可以持续多年的公开型个人日记的需求,所以wordpress+apps的组合可以算是与时俱进了。

我现在明白wordpress的生命力所在了,一个同时提供技术和服务的网络服务运营商。所以也不难理解为何微软会将live迁移到wordpress了。

说回这些BSP,我们实在不能指望google,microsoft,apple这些上市的巨头长期免费的提供低附加值的blog服务,更何况blog服务一旦呈现免费开放状态,作者们其实是可以独立盈利而无需为BSP付费。

所以开源wordpress在技术人群以及小型BSP中继续生存,而wordpress.com的服务也并不是那么理想,正好把空间留给自建wordpress。

这也许也是很多开源CMS的未来了。

从博客大巴导出全部文章

其实如果blogbus能提供一个完整的导出工具,我就不需要自己花1个小时去写和测试这个代码。文件头尾需要加一下才是完整的rss文件。然后用wordpress的RSS importer就可以了。

另外,如果正文中带有链接,而链接中又含有非ascii字符,HTML parser也会失败。

export.py内容如下:

#!/usr/bin/env python
# Author:polo@live.cn
# coding=utf-8
import httplib
import re
from HTMLParser import HTMLParser

class MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def get_data(self):
        return '\n\n'.join(self.fed)

#strip html tags
def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

#fetch a blog's meta data, and append to xml file, and return the previous blog's url
def fetch_blog(surl):
    conn = httplib.HTTPConnection('zhengrenchi.blogbus.com')
    conn.request('GET', surl)
    rep = conn.getresponse()
    preurl = ''

    if rep.status == 200 :
        content = rep.read()
        content = content.replace('\n', '')
        content = content.replace('\r', '')
        r = re.compile('postHeader">.*?<h2>(.*?)</h2><h3>(.*?) \| Tag:(.*?)</h3>.*?</div>')
        s_match = r.findall(content)
    
        for k1 in s_match:
            title = k1[0]
            time  = k1[1]
            tags  = k1[2]
            r = re.compile('<a href.*?>(.*?)</a>')
            tagsa = r.findall(tags)
    
        r = re.compile('<div>.*?<p.*?</p>(.*?)<div>')
        r1 = re.compile('<div>.*?<p.*?</p>(.*?)<div>')
        s_match = r.findall(content)
        if s_match:
            for k1 in s_match:
                body = k1
        else:
            s_match = r1.findall(content)
            for k1 in s_match:
                body = k1

        r = re.compile('<span><a href=\'(.*?)\'>')
        s_match = r.findall(content)
        for k1 in s_match:
            preurl = k1

        outfile = open('blog.xml','a+')
        outfile.write('<item>')
        outfile.write('<title>' + title + '</title>')
        outfile.write('<pubdate>' + time + '</pubdate>')
        #print body
        outfile.write('<description><![CDATA[' + strip_tags(body) + ']]></description>')
        for k2 in tagsa:
            outfile.write('<category>' + k2 +'</category>')
        outfile.write('</item>')
        outfile.close()

    conn.close()
    return preurl

#set the original url
xurl = '/logs/228488258.html'

while (xurl != ''):
    print xurl
    xurl = fetch_blog(xurl)

技术自找的麻烦

我丈母娘从内地过来深圳,两个习惯改变不了:一个是打麻将,另一个是买地下六合彩。

然后我才知道原来地下六合彩有这么丰富的玩法,用的是香港赛马会的结果,但中奖规则则被这些底下庄家修改得更容易中奖和吸引人。也衍生了一堆相关的信息产业。

其中有提供各种图文并茂的六合彩经。

于是我的噩梦来了。

这些提供六合彩经的网站,有时候维护不力,连不上;有时候被360屏蔽,有时候又被政府屏蔽。

丈母娘就把这些问题归咎于我给她用的电脑不行……

几天前电脑的显示器坏了,因为用了五六年了,我觉得也很正常,就说,不如改用家里多出来的ipad来看吧。

连上和操作浏览器都没问题,但这个网站居然在非IE的环境下会出exception,然后1秒刷新一次……

那就是没法看。

我把js禁了,发现显示链接内容的部分就是调的js,这招不行。

逼着出大招,就在vps开了个页面,把这个网站的内容都proxy过来,把刷新改成一个小时……然后发现IOS对js跨域有限制,那就再来把js也proxy过来。

终于好了,除了页面显示再慢了一点。

可我丈母娘还是怀疑这数据不对……因为不是她要的网址。

用不用拉倒。

乱象

去年看了《不可预知时代的可预知结果》,主要是以环法自行车赛的过程与结果,告诉读者,阿姆斯特朗团队屡屡能获胜的真正原因。

能力、团队精神、纪律,这些特点的不可缺少,这样才能在变幻莫测的赛道上得到恒定的结果。

不过环法还有一个特点,就是它是一场比赛,有确定的目的地和路线。这样决定团队所做的事情是有的放矢。

商业产品则要复杂很多。

很多产品/项目团队,在完成度80左右的时候就面临产品/项目夭折的问题,而原因并非团队本身,而是来自于不可预知的环境,无论是商业环境还是政治环境。

其实,将牵涉商业环境以及政治环境的人拉入团队中是更合理的做法。所以产品经理必须对此更为负责。

年会

公司年会无非几个主题,各部门节目表演,聚餐,领导讲话,抽奖。

聚餐和领导讲话都大同小异而又没什么好攻讦的,只能就我的认识来评点一下节目和抽奖。

节目方面有些舞蹈还是比较出彩,但综合来说,几个问题:

a.至少有三段的音乐在年会中重复出现过:新闻联播的片头音乐、上海滩前奏、Beat It。这个跟撞衫的性质比较相似。

这从某些角度上可以看出来,文化取向上同质化比较严重。这让我想起以前看计算机系晚会,一个晚上几次Bomber man的配乐一样。

这个问题的来源主要是节目评审时候没有控制和协调好。

而人物照片那环节用的音乐就比较好,菊次郎的夏天,虽然现在感觉有点俗了,但在那个环节上用是非常合适的。

b.单个节目时间长度太短。

我知道这样的时间分配很有分猪肉的意味,组织者不想得罪任何人,于是就限制各个节目都是同样的长度。带来的后果就是,没有一个节目有足够的张力和深度。

当然了,指望年会有什么深度是不可能的。

c.mic太少,而且没有准备胸mic,这一点看起来就是搞笑,这个责任一部分是酒店的责任,但组织方应该提前考虑。

我的建议是应该提前自己准备若干个胸mic,以保证一些表演的时候不需要来回送mic。

另外的问题是抽奖:

连续两年同一个人拿到了特等奖和一等奖,虽然我不否认运气的成分,但如果程序是客观公正的话,那么程序本身可能存在一些硬伤。

建议改善随机数生成算法,并加入洗牌算法。如果仅仅依靠操作系统的多线程来接受 开始、停的指令,必然会产生结果的难以服众。

急刹

今天又经历了一次,这次和几个月前那次一样,前面的前面突然发现自己过了路口,然后慢慢打右灯右拐。前面的车当时和我都是80的速度,它急刹,我发现的时候也开始急刹。

踩得死死的,不过当时真是摸不准会不会追尾,最后在离半米的地方刹住了。这时才看到前面的前面拐到右道。

安全距离应该是留够的,只是我开始的时候对前面的刹车是临时减速还是急刹判断不准,所以反应慢了一点。

这种情况我如果贸然变线也很危险,变到左道还好,变到右道就忒危险了。

电信4M

周日还是周一的晚上,一万号打电话过来,问宽带到期之后要不要使用每个月+2块的4M的套餐,因为当前是2M的,我一想,每个月才加2块,就能用4M,就答应了,不过套餐是需要预存上一年的费用的,1680。

本来以为月底才扣,没想到第二天就扣了,不过有个实在的地方是,第二天开始就是4M的带宽。

本来呢,带宽升级是势在必行,但电信会先让你感觉好像占到便宜一样,每个月多收两块钱。

话说回来,4M带宽,可以好好设计一下家里可以使用的互联网服务了。

Skyworth酷开…

上周老婆在淘宝上买了个42寸的LED10,装上,看起来还不错,我比较喜欢它省电,硬屏,

创维现在推广酷开的策略还是比较清晰的:

希望家庭卡拉OK的质量能得到提升,曲目直接可以从其数据库中供应,而电视本身如果要放流行的电视剧或电影,也可以到服务器上在线播放,这样用专用的内容服务,希望能吸引用户使用其硬件

电视机。

我自己把音响、机顶盒、电视机的线连了一遍,这真是不是那么简单的,起码我觉得文科生做不来。

几个遥控器放在一起也是很麻烦的,不过对于我来说,只看电视和使用简单的酷开服务还是很容易,不过像我老婆那样还想得到好的K歌享受就麻烦了点。