Skip to content →

Catbaron's Palace Posts

还活着

[0]

算了算,从寒假开始到现在,我花在路上的前大概有3k了。一个PAD被我扔在了路上。

年后,老姐膝盖中箭,拉去上海医院手术。作为陪护,我玩的倒是挺high。在医院,住在她同事的房子里面,平时和她同事接触多了,有时候会忽然感觉到自己的“日常”原来和别人的“日常”差了这么多。

也许 程序员 和 动漫宅 这两种异类属性杂交之后,产生的根本就是不正常的生活习惯和生活态度。而活在其中的自己根本就忽视了自己身外的世界。尤其是浪漫主义后遗症,让我更倾向于尽力独立生存。尽量减少和周围人的交互,尽量不接受别人的援助。这种态度,也许已经是一种病态了也说不定。

所以,在看到老姐和同事们如此融洽地交往,我忽然有一种回归社会的冲动,忽然有一种“正常化”的冲动。每天按照固定的周期上班,聚餐,休假,卡上按照固定的周期多出够用的存款,一点一点建立起自己的人际关系网络,一点一点构造自己的世界。看起来最后也能有一个HAPPY END。

真有点心动了。

Leave a Comment

《冰菓》轻推理小说推荐

所谓轻小说,我觉得百科里面下面这段定义还挺有意思的。一般而言以下几种情况只要符合一条就可以认定为轻小说:

  • 作者说这是轻小说。
  • 这本小说是在一个只出版轻小说的文库出版的。
  • 编辑广告宣传这本是轻小说,以及包括第一条在内各种官方说法定义它是轻小说。
  • 虽然是废话,不过还有被这本轻小说真厉害认可是轻小说的作品。
  • 主流舆论认为这本书可以称之为轻小说。

轻小说这种题材,没有明确的定义,从我个人的阅读感受,就是故事发生在日常背景,没有激烈的矛盾冲突,或者虽然矛盾很激烈但描述语言很轻松,读起来平缓清淡。

很多赫赫有名的小说都因为人气火爆被改编为动漫,比如《凉宫春日》系列,《灼眼的夏娜》系列,《无头骑士异闻录》系列等等。

这些小说往往是在一个日常的环境下设定异常的情节,有科幻/魔幻的性质在里面。不过今天某猫推荐的,是一部推理小说,米泽穗信的《冰果》。

Leave a Comment

一句话

今天一要出国的哥们跟我说,看上一姑娘
我开玩笑说,你一个要出国的高材生……
他说,两年,人家等得起么
 
心里忽然十分伤感
 

Leave a Comment

一个基于Jquery的打字效果插件TypingCat

前段时间,要写一个页面,需要用到打字效果。在网上找到几个基于jQery的插件,但是有些太复杂,有些不太可控。于是干脆就自己写了一个。
用法和效果都比较简单,直接把html的代码写出来,看注释应该就知道怎么用了首先需要在 <head></head> 中加载必要的插件

<head>
…
<script type=”text/javascript” src=”js/jquery.js”></script>
<script type=”text/javascript” src=”js/TypingCat.js”></script>
</head>

而html的body中有如下标签内容(用来承载打印效果的位置):

<body>
<div><a href=’#’>back</a></div>
<div id=’pra1′>
<div id=’word1′></div>
<div id=’word2′></div>
<div id=’word3′></div>
</div>
<div id=’pra2′>
<div class=’word1′></div>
<div class=’word2′></div>
</div>
</body>

然后需要做的是,在任意位置加入下面的代码(开始使用插件,示例是放在了head标签里面):

<head>
<script type=”text/javascript” src=”js/jquery.js”></script>
<script type=”text/javascript” src=”js/type.js”></script>
<script>
$(function(){
l_blink_speed = 300;    //’‘闪烁速度 speed ” blinking
l_blink = 14;           //‘’闪烁次数 times ” blink
l_blink_s = 8;          //‘’闪烁次数(少)times ” blink (fewer)
l_start = 2;            //how long to wait before a new line starts
l_start_q = 1;          //how long to wait before a new line starts (quick)
w_blink = 80;           //汉字打印时间间隔 speed of tying
hide_time = 2000;      //字体层隐藏速度 speed of hiding
wait = 1000;            //weit 3 second before start
typeWriter(“this is Pra1’s 1st words”,”#pra1″,”#word1″,l_start,l_blink_s);
typeWriter(“this is Pra1’s 2nd words”,”#pra1″,”#word2″,l_blink_s,l_blink);
typeWriter(“this is Pra1’s 3nd words”,”#pra1″,”#word3″,l_blink,l_blink_s);
typeWriter(“this is Pra1’s 4nd words”,”#pra1″,”#word3″,l_blink_s,-1);   //retype in the same div. -1 means this pragraph  will disappear after finishing typing
typeWriter(“this is Pra1’s 1st words”,”#pra2″,”.word1″,l_start,l_blink_s);
typeWriter(“this is Pra1’s 2nd words”,”#pra2″,”.word2″,l_blink_s,-2);   //-2 means this pragraph will not disappear and ” will blink without stop
})
</script>
</head>

真正产生效果的是typeWriter(str,pra_id,div_id,wait_before,cur_wait)
参数的意义分别是:
str:需要打印的文字,注意最好不要打印‘’这个符号,因为它作为光标使用了
pra_id:段落的id或者类名,从例子中可以看出,如果是传入id则用”#id”的形式,如果传入样式的类名则用“.class”的形式。文字的消失是以段落为单位的。
div_id:每一行用div层引起来,这里是段落中各个div的id或者样式类名。用法同上。
wait_before:上一行的光标闪烁次数,也就是说上一行打印结束后多久才开始打印本行。
cur_wait:本行结束是,光标的闪烁次数。
上面的一些变量有说明,可以自己修改调整各种效果的时间和速度。
效果可以看这里
下载在这里

Leave a Comment

圣诞文字素材

大概在一个月前,
我打算做一些准备,来迎接圣诞节
以做纪念
百度的某位前辈已经有生命证明
动漫宅如果不及时纪念自己的人生
就可能只剩下被人纪念的机会了

于是我怀着某种特定的心态
写下了这样一页PAGE

在无数次尝试和修改这些效果的时候

我一直希望最后她能够在一个雪夜降生

并被人注视

与其说我是在期盼一个Christmas

不如说对White的态度更殷切一些

 

在毕业在即的今天

我想用这样的方式来怀念那些在这几年曾出现在我视野里的人

尽管有很大一坨都很惹人厌

但正是因为有人群

才有了真正的基友

 

当然,重点是,我要用她来感谢那些在我眼前闪过的姑娘们

人生短促而多磨难

只要还有你们在

就值得来此尘世走一遭

 

不管你发没发我卡片

不管我修没修你电脑

不管我解不解你衣衫

不过你解不解我风情

 

此时此刻

我是如此

想念你

没有们

Leave a Comment

《鸿门宴》观影记录

今天中午拿到票,结果3点多的时候中心忽然有事,弄完都5:40了,电影是5:45开始,赶到影院的时间是6:00。

一进去就看到刘亦菲被欺负。根据国际惯例,欺负女人的,一定会便当。欺负女主的,肯定会马上便当。果不其然,在刘亦菲脱到一半的时候,霸王出现了。坏人就便当了。

Leave a Comment

关于时间旅行的一些讨论

前言

穿越是近年来大家喜闻乐见的娱乐活动。大众开始关注穿越,我想“电视剧”这种大众媒体形式应该做出了不小的贡献。从很久之前大名鼎鼎的《寻秦记》,到现在各种“清穿”剧,还有在微博上被炒起来的《李献计历险记》,都在某种程度上代表了穿越的一种类型。作为一个伪资深理论科幻读者,某猫将在本文对“穿越”这一行为做一个全面的分析和总结,希望能够带领大家穿越迷雾,一睹芳容。
接下来,我们分别来看一下和时间旅行所相关的有趣原理和其可行性分析。

Leave a Comment

日志统计脚本

今天同学说让我写个脚本统计日志。日志是一些ip的捕捉记录,根据协议的类型定义了一些ID和子ID。统计的需求是统计出各个类型的客户IP和服务IP。
这些日志是自动写入的,每天会根据日期生成一个文件夹,文件夹中每个小时生成一个日志文档。脚本要做的就是便利24个文档,读取内容进行分析。
由于需要把24个文档在一起分析,所以同学一开始的思路是:

对每一个类型进行统计,每次统计都遍历所有文件

明显效率不怎么样,但是实际上也够用了因为只要在服务器上让脚本跑起来,过几分钟回去看结果就行了
但是因为脚本要给别人看 = = ,所以不能太难看,因此要重新写一下。
开始的脚本是shell脚本,我不太熟悉,所以用python重写了
思路就是定义一堆 list 变量用来记录 IP,每读入一个 IP 就在 list 里面查找 not in,如果找不到就插进去。
最后统计list的长度
这样只需遍历一边文件就行了,但是……………………………………
不知道为啥,貌似python写完之后比原来还慢
后来同学一句话点破,not in 查找的时候需要对字符串进行匹配,而原来的 shell 脚本是用 sort 排序之后用 unique 进行去重统计,难怪这么慢。
于是考虑将 IP 字符串转换成long型再存储在 list 里面,这样匹配的时候是不是能快点?
但是结果好象还是不理想。在少量数据(两个日志文件)的时候,大概能比shell(8s)脚本慢几秒种(16s,是两倍左右),但是在大数据量的情况下就不容乐观了(多出1/3左右的时间)。
大量数据的情况下会慢几分钟 = =
不过貌似数据量越大差距越小,足够大的话有可能超过shell,但是差距还是太差了啊.
后来在网上查找了一下,发现原来字典的查找速度更快,因为字典在查找的时候使用 hash。于是尝试把所有 list 换成字典。
果然效果神速。在两个文件的时候,2.9秒左右。既然 hash 了,那么将 IP 转化位long型也没有意义了反而做了无用工。去掉之后大概是2.7秒。
然后调整了匹配的顺序,将数量较多的类型先匹配,这样又快了一点点。
如此做一个总结:

Leave a Comment

读取文件奇数行

今天处理“如何读取文件偶/奇数行”这个问题的时候,本来是打算用python来解决
python本身是很简单的,偶数代码如下:

f = open('./test.file','r')
while f.readline():
    print f.readline()

奇数行代码如下:

f = open('./test.file','r')
print f.readline()
while f.readline():
    print f.readline()

在网上想看看别人怎么做的,结果发现大部分是shell中的实现,尤其是用sed命令实现。以前没用过这个工具,居然这么简单:
读取奇数行:

sed -n 'p;n' ./test.file

读取偶数行:

sed -n 'n;p' ./test.file

-n:quite,就是不会将读取的文件行默认显示出来
n;p:这是两个命令,读取一行之后,对这一行进行两个操作
n就是直接读取下一行
p就是打印该行
于是效果就是,读两行打印一行
n;pp;n的区别就是先读还是先打印了,也就达到奇偶切换

Leave a Comment

海量数据处理总结

备战百度,在海量数据处理的主题上做一个总结。
详情来自http://www.cnblogs.com/pkuoliver/archive/2010/10/02/mass-data-topic-1.html

1.Bloom Filter

将数据通过hash函数映射到位数组,比如hash(str)=3则将位数组第三位置为1
对每一条数据都用k个hash函数进行映射,也就是一条数据会将位数组的最多k位的值置1
在查找数据是否存在的时候,则对其进行k次hash,如果位数组中对应的各位都被置1了,则说明该数据已经存在(明显是有一定错误率的)
Bloom Filter可以用来实现数据字典,进行数据的判重,或者集合求交集.
同时,对其进行改进,即位数组每一位不再是0/1,而是数据出现的次数counter,那么出现数据则+1,删除数据则-1,这样可以实现删除操作。

实例:

Leave a Comment