显示下一条  |  关闭

wisper

She Will Be Loved

 
 
 
 
 
 

四川省 成都市 狮子座

 发消息  写留言

 
wisper
 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 
 
 
心情随笔列表加载中...
 
 
 
 
 
 我要留言
 
 
 
留言列表加载中...
 
 
 
 
 
 
 
 

Linux下轻松批量下载ST音乐盒音乐

2010-7-30 18:26:25 阅读255 评论0 302010/07 July30

首先,我是用Shell脚本写的,因此只支持LINUX

其实ST中的preview音乐质量还是可以的,那么直接下这个preview就行了,下完了批量用MP3标签重命名音乐就OK了(当然不是所有的preview都可以完整下到)

步骤如下:

打开你的音乐盒网页,把此页面存为temp.html

然后运行 cat temp.html | grep http://224. | gawk -F, '{print $6}' | sed -e 's/)//g' | sed -e 's/"//g' | sed -e 's/;//g' > url.lst

接着会生成一个url.lst

用gawk '/preview/   {wget -b $0}'  url.lst可多线程批量下载音乐盒里面的歌曲了(如果有100条就会建100条进行下载,机器不行的请使用 wget -b -i url.lst   进行下载)

当然你也可以用迅雷的导入下载列表进行下载(迅雷要选中 只从源地址下载,只单线程下载两个选项)

作者  | 2010-7-30 18:26:25 | 阅读(255) |评论(0) | 阅读全文>>

中断

2010-7-30 18:20:10 阅读27 评论0 302010/07 July30

站位,留待有空补充

作者  | 2010-7-30 18:20:10 | 阅读(27) |评论(0) | 阅读全文>>

NS2(2.34)数据流实战分析

2010-4-8 22:05:43 阅读723 评论0 82010/04 Apr8

本文分析NS2下代码执行流程(简约而不简单):

NS2中已添加了GDB调试信息,因此我们用一个简单的tcl脚本分析NS2的代码走向,脚本如下:

set ns [new Simulator]

set tf [open out.tr w]

$ns trace-all $tf

set n0 [$ns node]

set n1 [$ns node]

$ns duplex-link $n0 $n1 10mb 1ms RED

set tcp0 [new Agent/TCP]

set sink0 [new Agent/TCPSink]

$ns attach-agent $n0 $tcp0

$ns attach-agent $n1 $sink0

$ns connect $tcp0 $sink0

set ftp0 [new Application/FTP]

$ftp0 attach-agent $tcp0

$ns at 0   "$ftp0 start"

$ns at 10  "$ftp0 stop"

$ns at 11  "finish"

proc finish {} {

    global ns tf

    $ns flush-trace

作者  | 2010-4-8 22:05:43 | 阅读(723) |评论(0) | 阅读全文>>

NS2 分裂机制

2010-3-27 20:13:52 阅读113 评论0 272010/03 Mar27

NS2启动后将生成所有xxxClass类,因为所有xxxClass类都是static的

xxxClass类的构造函数调用bind函数,bind函数调用otcl的register函数创建(不是实例化)otcl类

xxxClass类的构造函数同时为otcl创建create-shadow并挂接到c++的create-shadow函数

NS2接着解释tcl脚本语句

tcl脚本语句中的new将生成otcl对象(实例化一个otcl类),new将调用otcl的creat生成对象并执行对象的init过程函数,此过程函数将调用c++的create-shadow函数,c++的create-shadow成员函数将创建对应的c++类并创建otcl的cmd过程并挂接到c++的dispatchcmd上,这样otcl的过程就可以调用cmd并最终调用dispatch再调用command函数设置c++成员了。

先写这么多,以后在修正补充。

作者  | 2010-3-27 20:13:52 | 阅读(113) |评论(0) | 阅读全文>>

14.318180 MHz 1.19318MHz 55MS

2010-3-3 16:37:31 阅读85 评论0 32010/03 Mar3

这三个数字很奇怪。为什么时钟中断的时间是55ms?

14.318180 MHz 是PC晶振频率,选用这个频率在于能够让PC方便产生适合CGA的视频信号

14.318180 MHz此频率被3分频为4.773MHz以供CPU时钟使用,

4.773MHz再被4分频供时钟使用,即为1.193182MHz

IBM设计者又让65535除以1.193182MHz来产生时钟中断的间隔,即为54.92ms,约为55ms,即每55ms产生一个时钟中断,每秒产生18.2个时钟中断。

为什么55ms数字这么怪,就在于IBM设计者选用的是65535,他要是用59659,那么每秒产生的时钟中断就为20次,是个整数,多方便啊,可是不是。。。。。

作者  | 2010-3-3 16:37:31 | 阅读(85) |评论(0) | 阅读全文>>

BOCHS with GDB

2010-1-31 0:53:49 阅读191 评论0 312010/01 Jan31

下载BOCHS

./configure --enable-gdb-stub

make

make install 请忽略bochsdbg无法复制的错误

若make出错请运行sudo apt-get buil-dep bochs 安装所有依赖项

完成以上命令后即可为bochs添加gdb调试功能

然后为你的工程的makefile文件的gcc编译选项添加 -g 编译选项编入gdb符号

在bochs的配置文件中加入

gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0

可能的话需要注释掉以下两项

#floppy_command_delay: 50000

#ips: 4000000

用 bochs -q -f xxx.bxrc运行bochs脚本,脚本提示等待gdb连入

再开一个终端输入gdb xxx (xxx是你的待调试代码)

再输入target remote 127.0.0.1:1234  (此处的1234由bochs配置文件指定)

有了GDB的加入,调试C级代码就轻松多了

作者  | 2010-1-31 0:53:49 | 阅读(191) |评论(0) | 阅读全文>>

FAT32文件系统

2010-1-14 22:32:20 阅读47 评论0 142010/01 Jan14

点击图片可查看大图

图中小块大小为1个扇区,大块为3个扇区,特殊说明的除外

下面依次分析各个块的结构:

MBR:

BOOT:

文件系统信息:

FAT表:

数据:

EMBR:

洗洗睡了 以后再补

作者  | 2010-1-14 22:32:20 | 阅读(47) |评论(0) | 阅读全文>>

中断

2010-1-12 20:42:19 阅读30 评论0 122010/01 Jan12

站位,留待有空补充

作者  | 2010-1-12 20:42:19 | 阅读(30) |评论(0) | 阅读全文>>

分页机制

2010-1-12 20:41:50 阅读33 评论0 122010/01 Jan12

站位,留待有空补充

作者  | 2010-1-12 20:41:50 | 阅读(33) |评论(0) | 阅读全文>>

保护模式

2010-1-12 20:41:19 阅读31 评论0 122010/01 Jan12

站位留待有空补充

作者  | 2010-1-12 20:41:19 | 阅读(31) |评论(0) | 阅读全文>>

为NS添加自己的变量

2009-11-30 21:51:20 阅读64 评论0 302009/11 Nov30

简洁点,进入正题:

我们在改写完自己的c++代码后通常会加入很多的调试参数以方便直接在tcl下修改c++参数进行模拟

比如要在red队列中加入dA,dB两个double类型的参数,参数的TCL用法为Queue/RED set xred_a  123,其步骤如下:(基于ns2.34  ubuntu9.04)

1:修改RED类的定义,加入我们所需的参数dA,dB:

    double dA;

    double dB;

2:修改RED的构造函数REDQueue::REDQueue(const char * trace) : link_(NULL), de_drop_(NULL), EDTrace(NULL), tchan_(0), idle_(1), idletime_(0.0),进行参数绑定:

    bind("da", &dA);

    bind("db", &dB);(最好在绑定前在构造函数中对此参数进行初始化)

3:收工,下班

作者  | 2009-11-30 21:51:20 | 阅读(64) |评论(0) | 阅读全文>>

开始NS2的深入学习

2009-9-14 22:08:33 阅读342 评论0 142009/09 Sept14

最近写小论文,要用到NS2模拟,无赖以前没学好,先在开始恶补...

先搭建学习环境分析NS2源代码:

未尝试在cygwin下配置,我在ubuntu9.04下配置的:

ns-allinone-2.29.3 ns-allinone2.34均可以:

修改Makefile.in文件:  CCOPT = @V_CCOPT@改为CCOPT = -g @V_CCOPT@

还需要搜索depend:对于2.93,修改

depend: $(SRC)

 $(MKDEP) -- $(CFLAGS) -- -Y $(SRC) >& /dev/null

为:

depend: $(SRC)

 $(MKDEP) -- $(CFLAGS) -- -Y $(SRC) > /dev/null 2>&1

对于2.34要将     depend: $(SRC) 改为depend:

否则会在make depend时出错

在ns-allinone-2.29/ns2.29目录下执行make clean (ns2.34同理)

作者  | 2009-9-14 22:08:33 | 阅读(342) |评论(0) | 阅读全文>>

ECN拥塞避免策略

2009-9-12 16:48:38 阅读220 评论0 122009/09 Sept12

ECN使用了IP首部的TOS位和TCP的标记位传送网络拥塞的额外信息

IP首部的TOS位的低2位被ECN使用,含义如下:

00标识本端不支持ECN

01或10标识本端支持ECN

11表示此IP包的来路发生了拥塞

TCP标记位共12位,ECN占用第7.8位,含义如下:

ECE(第7位):置1则通知发送端有拥塞发生

CWR(第8位):置1则对ECE进行回应

过程如下(假设中间设备的AQM是RED):

发送端发送数据,中间设备根据RED算法选择要丢弃的包,将包TOS中的ECN标记置11并发送(不是丢弃)

接收端查看到被置11的位,将在下一个外发的TCP包中将ECE置1通知发送端

发送端查看ECE被置1,将执行拥塞避免算法减小窗口,并在下一个外发的TCP包中将CWR置1,通知接收端已收到拥塞产生的消息,不用再通知我了

接收端收到CWR被置1的TCP将停止在外发TCP包中将ECE置1的动作

问题:

有延迟,接受端的拥塞消息不是直接被通知的

信息很单一,就一个拥塞产生与否的消息,具体窗口改调到多少没说,完全靠发送端依据算法去调整窗口,实际上更准确的窗口大小值应当有中间发生拥塞的设备决定,毕竟它的信息多些且准确些

也因为信息量太少无法指导发送端调整窗口值,因此催生XCP的出现,读者可自行翻阅XCP相关资料.但信息量的增加必然带来协议头部结构的改变,负面影响也是比较大的

作者  | 2009-9-12 16:48:38 | 阅读(220) |评论(0) | 阅读全文>>

常用必备的SourceInsight宏

2009-8-22 0:58:23 阅读1179 评论0 222009/08 Aug22

已更新,请到这里下载!!!

将代码存为*.em就可以了.我用的是汉化版的SI,所以它的有些菜单命令也被汉化了,而RunCmd就是调用内置的菜单命令,你可能需要根据自己的版本修改这几条语句:RunCmd("删除字符"); RunCmd("Backspace"),RunCmd("光标向右");RunCmd("光标向左");查看自己版本的具体的菜单命令为 选项->菜单关联,然后选择一个菜单命令插入到一个菜单中,然后查看插入后的菜单名就是真实的菜单名了

macro Ctrl_Eenter宏功能扩展性很强,在你按下Ctrl+Enter键(你绑定到此宏的键)时他可以读取你左边1-6个字符,并把这1-6个字符当作命令解析,我只写了一部分,既输入if按Ctrl+Enter就自动补全等等,大家可以自行去添加自己所需的功能,比如添加函数头描述符等等.若需帮助可留言.

下面代码包含了:

快速添加注释

多行注释与反注释

前删键  (要完美解决删除中文字符的缺陷至少我还不能做到,不过这两个宏已经接近perfect了)

后删键

左移键

右移键

多行cpp注释与c注释切换

Ctrl_Enter Shell

/***********************************

作者  | 2009-8-22 0:58:23 | 阅读(1179) |评论(0) | 阅读全文>>

BOOTP服务器

2009-8-19 20:03:58 阅读44 评论0 192009/08 Aug19

由于XINU系统需要一个BOOTP服务器获取IP地址,就自己写了一个BOOTP服务器软件,现将源代码贴出来供大家指正.这里是下载地址

作者  | 2009-8-19 20:03:58 | 阅读(44) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2012

   
创建博客 登录  
 关注