Skip to content →

分类:技

一个基于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

日志统计脚本

今天同学说让我写个脚本统计日志。日志是一些ip的捕捉记录,根据协议的类型定义了一些ID和子ID。统计的需求是统计出各个类型的客户IP和服务IP。

这些日志是自动写入的,每天会根据日期生成一个文件夹,文件夹中每个小时生成一个日志文档。脚本要做的就是便利24个文档,读取内容进行分析。

由于需要把24个文档在一起分析,所以同学一开始的思路是:

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

明显效率不怎么样,但是实际上也够用了因为只要在服务器上让脚本跑起来,过几分钟回去看结果就行了

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

OpenVPN分析

OpenVPN

从架构上来看,OpenVPN在某种程度上和 tinc 或者和VTun 比较相近,它是一个基于用户模式(user-mode)的程序,通过 TUN/TAP 接口与 TCP/IP 栈进行通信。作为用户程序运行的 OpenVPN,带来了移动性和易维护性的优点,正如我们在 VTuntinc 中看到的那样。和 tinc 一样,OpenVPN 在VPN服务中使用两种通道:一个携带用户的IP数据报文的数据通道,一个处理“密钥交互和配置(key negotiation and configuration)这种协议事务的控制通道。

OpenVPN 把两个通道都封装在UDP数据包中。两个通道使用相同的端口,所以一个给定的数据报既可以包含数据通道数据也可以包含控制通道数据。因为OpenVPN使用TLS协议进行认证和密钥交换,而TLS需要一个可靠的传输层,所以OpenVPN在控制通道中添加了一个可靠的层。这样保证了TLS所需要的可靠性,但是在数据通道中没有高可靠性的层( but that there will not be competing reliability layers on the data channel),所以我们在SSL和SSH VPN 中看到的干扰现象不会发生。

Leave a Comment