J’ai demandé à la lune

最近爱上了法语歌,
这是最近很喜欢的一首歌的名字,
虽然听不懂,但是总有一种莫名的悲伤漫上心头。
如果为几首歌而去学一门语言,是不是冲动了呢?
又有好久一段时间没有随便说点什么了,
生活中充斥着,代码、需求、代码、需求,
难得闲下来的时候,约莫是被我睡过去了。
就像是一个死循环,
找不到一个事件触发,
让我从中离开。

家里时常弥漫着火药,
更年期的老妈和工作烦躁的老爹和冷眼的我。
一句不合,就是翻天覆地。
我是一个如此逻辑如此理智的人,
也是一个如此冷静缺失语言的人。
我能想清这其中的一切一切,
却在冲动的前一秒无法停止。

最近的生活其实也没什么多说的,
偷闲的时候,我在重写原来写过的一个网关程序。
说起来为什么要重写呢?
虽然这一段一直没在做跟python相关的东西,在弄一些qml啊js啊的东西,
语言终归是相通的,看着那些代码,有一些原来在python上的东西,有了更深刻的理解,
然后我就再一次意识到,原来写的好幼稚,一点都不优雅。
(づ ̄ ³ ̄)づ 最近越来越在意语言的优雅啊、简洁啊、高效啊啥的,
每每发现不能优雅的去实现的时候,就会莫名的沮丧和不开心。

嗯,语言贫乏君发现又没啥可说的了,
想想工作一年多了,
想旅行了,想去拉萨、想去大理,
想去见那些曾为谋面的世界,
呆在ABC的世界太久了……


半醉半醒半浮生。

早上离去的风儿,打着漩的再次回来,带来的是日落的气息。
窗边晚霞的余辉,与跳动的灰尘,嘀嗒嗒的洒落在键盘上。
你不必说,我也不必问,就这样相对无言。
时光流转,你在与不在,时光依然流转。
谢掉的离去的消失的,明年亦会再来又或再也不来。
为了下一次可能的相聚,说声再见……
2014-autumn.png

banner 20140922


走!走!走!

很久没有来了。
不是懒了遗忘了丢弃了。
只是累了。

加班到今天已经1个月了。
每天6.30出门,22点到家。
时而周日也不休。

上班、睡觉、上班、睡觉。
生活被无限压缩,只剩下工作。
如此,我又能说什么?
唯有,继续走走走...

//maybe qml
Item {
----Column {
--------spacing:2 hours
--------working {
------------keep:12 hours
--------}
--------sleeping {
------------keep:8 hours
--------}
----}
}


夏乏

最近极其爱打盹,任何时候都能在床上、沙发上,5秒入睡。
究其原因,约莫是...坐着的时候,腿弯曲的角度太不舒服了吧。
然后就想在平坦的地方打个盹什么的(^__^)

最近转了QML,尼玛各种提不起劲儿啊。
不是QT做的不好,是那个文档写的太烂的。
每次硬着头皮看,总是觉得满满的恶意。
不过QT本身还是蛮有趣的。
之前python的时候,也用过pyqt包。
不过Qt Quick倒是很是新鲜,没接触过~
不过,用了闹木久的python了,还是舍不得她哇,默默的抱起python的书来。

有时候,闲的没事,会去看看招聘网站。
想看看,如果就以现在的自己,能适合什么样的工作。
然后就蛋疼了,像我这种奇葩的,还真是好生打击人哇~
那天中午休息的时候,同事间闲聊,说起了志向。
我说,“我的志向是能(参与)做出一个软件啥的,改变世界”
想想,这果然是YY啊,却不知未来某天,是否有幸有能力参与。
像我这种奇葩、思维跳跃、代码洁癖、小完美主义、在意细节、逻辑思维主导的人,到底适合做啥啊。

最近鄙人的倒霉小博客莫名的被垃圾评论攻击了。
虽然被第一次评论审核拦下了,但是每次进入后台,看到十几二十的待审批的垃圾评论,顿感难受。
万分无奈之下,加入了评论验证码,先试试看效果,真是诸多无奈啊。
0.0说起验证码,其实我特别喜欢+崇拜皮皮书屋的注册那个验证码,
什么时候研究下,也弄个啥的,顿时就高大上了呢。

瞄了眼表,哦,突然想起来,明天就是父亲节了。
犹记得小时候,貌似没有这么多节的,是什么时候流行起来的呢。
记得打电话,哎...

谷歌~ world cup & fathers day
world cup & fathers day


一代补丁一代神

WWDC2014
好久懒得吐槽了,却是变懒了。
最近忙着夏乏,再加上帮午饭君装修网路小店思密达,虽然我说我还没怎么动工~
表拍我...

这次终于下笔的契机是,2014苹果开发者大会。
噗,Swift出来了,伤了多少Objective-C孩纸的心。
焚书一发...
想起个段子,
“急招Swift资深工程师,要求5年以上Swift语言开发经验,尊敬领导,服从指示,有狼性,待遇从优。”

中午跟同事扯淡说,
“你看嘛,
很快就会有神马21天Swift从入门到精通的书了。”
“不如我们入一本然后开培训班好了...”
“然后就火了...”
“然后就没有然后了...”

没有乔布斯的苹果总觉得是少了点什么。
虽然这仍阻挡不了我想入一个mac book pro的心。
我还在试图说服我...

好像没啥好说的了,午饭君你安心啦,我尽快开工...
println("Hello, world")


happy mothers day

有那么一个人,也许很唠叨,总嫌弃你笨手笨脚,送她礼物反而埋怨你乱花钱……可她总会在你起床时就备好了早餐,等你走后又帮你收拾房间——母亲节快乐!

今年的母亲节,周五的时候忙着各种事,忘了买束花回家。
帝都的天,一天都是小雨淅淅沥沥,本想白天出去的心也淡了下来。
晚上,浇了一天的小雨终于消停,跟老妈一起逛了圈超市,披头的样子总觉得特别美。
其实,时间过的挺不经意的,一天过去了,一月,一年...
珍惜在一起的时光,母亲节快乐~
google banner ↓
母亲节

p.s.这两天渣了一个脑补经营游戏小黑屋,灰常厉害~有兴趣的一起来试试O(∩_∩)O!


空谷幽兰

潮湿的空气透出草的腥香,下过雨的天空格外的蓝。
云开了云散了,风儿赶着云快跑。
细小的尘埃沿着透过树荫洒下的光柱跳舞。
工人们手中浇灌绿化的水柱在阳光下开出七彩的光辉。
情侣们拉着手亲昵着逛着街,留下鞋跟响起的踢踢踏踏。
打着旋的茶叶漂浮在碗中,
我猫在角落里关注这一切,不近不远...
曰:一花一世界,一木一浮生。

空谷幽兰
banner1 ↑ 5.3.2014
空谷幽兰2
banner2 ↑ 5.25.2014


Daily Growing

最近公司里天天就像是桑拿房,一个个脾气都不好。
忽然的,就萌生了退意。
天天早上跟我说,之前告诉我的需求又有了新的变化。
然后就是查程序,加方法。
day after day
各种内心不淡定啊,敢一次说完了么~
然后就不淡定的在豆瓣上刷FM,突然的就喜欢上了Alten的歌。
改程序的时候,听着daily growing突然就哭了。
其实歌词倒是没太大听懂,就是觉得悠扬的曲子有种莫名的悲伤。
恩,就是很莫名。
就像是我站在9楼的窗前,总是有种想跳下去的冲动,
倒不是想不开,就是突然变得很想飞,很想要自由~


与编辑距离有关

最近几天在整理以前收集的和用过有点忘记的编程、算法等相关信息。
当初毕设做的字符串测试数据自动生成算法中就是应用了编辑距离,那会捯饬这个浪费了不少时间。
所谓编辑距离,是指两个任意字符串s, t。由s经过编辑操作编程t所需的操作次数,这里的编辑操作包括插入、替换、删除三种操作。
由此,两个字符串之间的编辑距离可以定义为:

ED(s:a,t:b)=min(ED(s:a,t)+1,ED(s,t:b)+1,ED(s,t)+ED(a,b))

在这里,s, t是两个可能为空的字符串;s:a,t:b是字符串s,t的子串;a,b为字符。如果两个字符串均为空,则它们的编辑距离是0;一个非空字符串和空字符串的编辑距离是非空字符串的长度。
0.0 介个是编辑距离相关的信息,恩,如果用程序实现计算编辑距离肿么做呢。
可以用动态规划来实现编辑距离~

首先定义这样一个函数——edit(i, j),它表示第一个字符串的长度为i的子串到第二个字符串的长度为j的子串的编辑距离。
显然可以有如下动态规划公式:

  • if i == 0 且 j == 0,edit(i, j) = 0
  • if i == 0 且 j > 0,edit(i, j) = j
  • if i > 0 且j == 0,edit(i, j) = i
  • if i ≥ 1 且 j ≥ 1 ,edit(i, j) == min{ edit(i-1, j) + 1, edit(i, j-1) + 1, edit(i-1, j-1) + f(i, j) },当第一个字符串的第i个字符不等于第二个字符串的第j个字符时,f(i, j) = 1;否则,f(i, j) = 0。

那算法就是这样,譬如可以有如下一个示例。串A:GUMBO,串B:GAMBOL,计算它们之间的编辑距离。

Steps 1 and 2
= = G U M B O
= 0 1 2 3 4 5
G 1
A 2
M 3
B 4
O 5
L 6

Steps 3 to 6 When i = 1
= = G U M B O
= 0 1 2 3 4 5
G 1 0
A 2 1
M 3 2
B 4 3
O 5 4
L 6 5

Steps 3 to 6 When i = 2
= = G U M B O
= 0 1 2 3 4 5
G 1 0 1
A 2 1 1
M 3 2 2
B 4 3 3
O 5 4 4
L 6 5 5

Steps 3 to 6 When i = 3
= = G U M B O
= 0 1 2 3 4 5
G 1 0 1 2
A 2 1 1 2
M 3 2 2 1
B 4 3 3 2
O 5 4 4 3
L 6 5 5 4

Steps 3 to 6 When i = 4
= = G U M B O
= 0 1 2 3 4 5
G 1 0 1 2 3
A 2 1 1 2 3
M 3 2 2 1 2
B 4 3 3 2 1
O 5 4 4 3 2
L 6 5 5 4 3

Steps 3 to 6 When i = 5
= = G U M B O
= 0 1 2 3 4 5
G 1 0 1 2 3 4
A 2 1 1 2 3 4
M 3 2 2 1 2 3
B 4 3 3 2 1 2
O 5 4 4 3 2 1
L 6 5 5 4 3 2

Step 7
所以,A、B之间的编辑距离最右下角的数字,即edit(A,B)=2。

算法说完了,最后说一下python中的具体实现。其实,实现的代码真的是灰常简单,(⊙v⊙)嗯,闲言碎语不要讲,直接附代码~

#! /usr/bin/env python
# -*- coding: utf-8 -*

def edit_dis(m,n):
    """
    动态规划算法,计算编辑距离,操作包括插入、删除、替换
    simple input:
    >>> print edit_dis("abc","abec")
    1
    >>> print edit_dis("ababec","abc")
    3
    """
    len_1=lambda x:len(x)+1

    c=[[i] for i in range(0,len_1(m)) ]
    c[0]=[j for j in range(0,len_1(n))]

    for i in range(0,len(m)):
        for j in range(0,len(n)):
            c[i+1].append(
                min(
                    c[i][j+1]+1, # 插入操作
                    c[i+1][j]+1, # 删除操作
                    c[i][j] + (0 if m[i]==n[j] else 1 ) # 替换操作
                )
            )
    return c[-1][-1]

if __name__ == '__main__':
    print edit_dis("abc","abedfsfc")

恩,就酱~


给明年的自己。

今年的生日过的平平淡淡。
没有电话、没有蛋糕、没有祝贺。
其实这样无声无息也好。
这样特别的日子,也不想随便吐槽啥。
感觉时间过得蛮快的,这又马上老了一岁。
感觉满脑子回想的还是去年的故事。
公司里最近感觉人心惶惶的,貌似很多人都有了走的想法。
不知道为什么,感觉现在的项目就像是一个烂泥潭一样,越看问题越多。
→_→好吧,我一直告诉自己说要咬牙要坚持,程序员嘛,要写的出代码、耐的住寂寞。
不过啊,如果现在比较熟的人都走了,真不知道自己还能如此耐得住性子么?
吐槽到这,就想起来了,近2年最大的愿望有俩,1是在github中创建出自己的项目、最好是跟自动化测试相关的。2呢是,QAQ我目前最深切的怨念,我要努力好好学习,当下一次找工作的时候,我要再次投豆瓣,然后要去鄙视回去那次虐杀我的面试官,吐槽死他~(不过基友一直说,这个愿望不太现实哈)
嘛,好吧,这种事还是望望天算上一卦吧。
最后,happy brithday to myself....