自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (11)
  • 收藏
  • 关注

原创 Ruby学习笔记(7) - Module和Mixin

Module提供了和C++里面的namespace相同的功能,不过module还可以用来作mixin,一个multiple inheritance的替代品。 在Module里面可以定义方法和变量,其中方法在其他地方调用的使用是module.method的方式调用,而变量是用module::variable的方式引用。module Trig<br /> PI = 3.141592654<br /> def Trig.sin(x)<br /> # ..<br /> end<br />

2010-09-30 19:38:00 898

原创 Ruby学习笔记(6) - 表达式

在Ruby里面一切都是表达式,就算是if, when这些都是会返回值的表达式。If, while, case这些语句会返回最后执行的表达式的值。songType = if song.mp3Type == MP3::Jazz<br /> if song.written < Date.new(1935, 1, 1)<br /> Song::TradJazz<br /> else<br />

2010-09-30 19:37:00 514

原创 Ruby学习笔记(5) - 方法(Method)

方法的名字后缀?表示这个方法是用来返回一个询问的结果的。后缀!(感叹号)是说明这个方法是会修改接受者的。 在方法里面可以写一般的表达式。但是不可以定义instance method,class和module。 方的参数可以有默认参数,就和C++里面一样。如果需要使用vararg这样的功能的话,就在最后的参数名前面加一个*,这样所以这个参数后面的参数都会转化成Array然后存放在这个参数里面。def varargs(arg1, *rest)<br /> "Got #{arg1} and #{rest.

2010-09-30 19:36:00 574

原创 Ruby学习笔记(4) - 基本的类型

整形是可以任意长度的,只要内存足够,没有任何限制。这一点并不像C++和JAVA那样。在输入的时候,数字之间的下划线(_)是会被忽略的。123_456 >>> 123456 # 下划线被忽略了<br /> 如果整形数的范围在int和long里面的话,那么他的类型是Fixnum;如果超出这个范围,类型就是Bignum。(在Ruby里面,一切都是类,包括所谓的基本类型) 在字母或者一些控制字符前面加问号(?),就是取该字符编码对应的数值。?a # c

2010-09-30 19:35:00 523

原创 Ruby学习笔记(3) - 容器和迭代器

Array可以用literal和new的方式创建:anArray = [] # 用literal的方式anArray2 = Array.new # 使用new的方式 Array可以用[]来索引,内容是动态的增长的。如果[]里面是负数的话,那么就是从尾部开始索引。实际上[]是一个函数调用。 [n1, n2]表示从n1开始的n2个元素。[n1..n2](注意中间是2个点)表示区间[n1, n2],而[n1...n2](中间3个点)表示区间[n1, n2)。 []=这个函数(或者说操作符)可以给Ar

2010-09-30 19:34:00 472

原创 Ruby学习笔记(2) - 类和变量

类的定义: class Song<br /> def initialize(name, artist, duration)<br /> @name = name<br /> @artist = artist<br /> @duration = duration<br /> end<br /> end<br /> 类里面的initialize函数和C++里面的constructor的作用是一样的,当一个对象在new之后,就会调用initia

2010-09-30 18:35:00 551

原创 Ruby学习笔记(1)

Ruby的启动方式有两种: interative和program,其中interactive可以用ruby或者irb来启动,irb是一个类似于shell那种的工具,有历史记录的功能。 Ruby和JAVA/C的一点OO区别 # In JAVA num = Math.abs(-123); # in C num = abs(-123); # in Ruby num = -123.abs; #这也是为什么很多人说Ruby才是正宗的OO语言。  Rub

2010-09-30 18:30:00 559

原创 OpenSuSE 11.2下启动不了stardict的解决方法

<br />在OpenSuSE 11.2下安装stardict会连带着安装espeak,一个从文本到语音的库。<br />而如果没有安装PulseAudio的话,这个epeak会不起作用,而OpenSuSE 11.2默认没有安装PulseAudio。<br />解决的方法是将stardict启动时候的epeak链接库去掉。如下:<br />mv /usr/lib/stardict/plugins/stardict-espeak.so /usr/lib/stardict/plugins/stardict-es

2010-09-30 18:17:00 671

原创 用wget避开robots.txt的下载限制

在网站的目录下放置一个robots.txt,并在里面禁止wget的行为,那么默认情况下wget是不会下载整个网站的内容的。比如wget -r http://www.example.com的时候,如果www.example.com上面放了一个robots.txt并在里面注明wget disallow的话。那么wget就默认不会下载这个网站。如果想要让wget忽略robots.txt的规则的话,那么就加上-e robots=off,同时,注意网站管理员加上robots.txt经常是因为负载的考虑,所以记得我们加

2010-09-25 17:20:00 6061

原创 gcc/g++学习笔记(1)

在链接的时候,要注意链接库里面的函数使用情况。gcc在搜索外部函数的时候是给gcc的参数里面从左到右的顺序来搜索的。<br />举个例子:<br />gcc -o test test.cpp -lA<br />在这个例子里面,A库里面定义了foo函数,而test.cpp里面调用了foo函数,那么-lA就必须放在test.cpp的后(右)面。如果将test.cpp和-lA的位置对调,那么就会出现undefined reference的错误。<br />同时这样的关系会出现在库也库之间,这样的时

2010-09-25 16:51:00 507

原创 C++学习笔记(5)

在开发工程的时候如果是分模块开发,那么在include别的模块的东西的时候,一定要以模块的根目录为路径。<br />比如有如下目录结构:<br />src<br />   |---mod1<br />   '---mod2<br />           ‘---submod1<br />                     ‘--- file1.h<br />其中在mod1里面的源代码包含了mod2的submod1里面文件,那么不要直接#include "file1.h",

2010-09-21 11:44:00 440

原创 破解所谓的ISP封路由的方法大集合

联通电信,垄断了宽带市场,收费是人家发达国家几百倍,网速是人家发达国家几百分之一,你也好意思来封天朝人们的路由器??以下是一些找到的资料,以后好好研究下MAC和IP之间的联系和转化。第一篇,目前大多数ISP用来监测路由的方法(注意这里讲得解决方法其实不科学,也就是没有从根本上解决问题,大家主要是看网络尖兵的原理)网络尖兵原理:网络尖兵的技术实现主要依赖于“被动扫描原理(Passive Network Scan)”、 “网络指纹技术( Network TCP Finger Printing )”

2010-09-05 12:32:00 2557

Programming Ruby

Programming Ruby - HTML version

2010-09-30

How to Design Programs

How to Design Programs

2010-07-14

The Scheme Programming Language

The Scheme Programming Language

2010-07-14

Structure and Interpretation of Computer Programs

Structure and Interpretation of Computer Programs

2010-07-14

Win32汇编的扫雷(不完全版本)

用Win32汇编写的扫雷,功能还不完善,不能调难度,没有笑脸、计雷器和计时器。 里面包含了Asm,rs文件,还有一个Makefile。 汇编之前请确保已经安装了masm32包,并且要把环境变量设好。 下面是环境变量的批处理文件(默认masm32安装在D:\masm32): @echo off set include=d:\masm32\Include;D:\Microsoft Visual Studio 8\VC\include set lib=d:\masm32\lib echo on

2009-10-05

16位MASM汇编的压缩程序(字典和霍夫曼两种算法)

用汇编写的压缩程序,只支持单文件压缩。 使用了LZ77和Huffman两种算法。 文件的压缩格式写的比较乱,想了解的人就仔细看看代码了…… 压缩的主要算法我是先用C写好,然后再手工翻译成汇编的 文件说明: LZ77.c:C写成的LZ77压缩算法,里面包含了很多调试用的输出,我就懒得删了,觉得麻烦可以删掉printf的输出。 huffman.c:C写成的Huffman压缩算法,也是有很多调试输出。 header.asm:汇编的主要头文件,包含了一些通用的宏和变量声明,其中有调试用的宏DEBUG_INFO,这个需要有Irvine16.inc,此文件包含在Intel汇编语言程序设计里。要用调试的话,在汇编的时候加上DEBUG的宏定义就可以。 compress_v14.asm:程序的框架,里面包含了整个程序的流程和一些非压缩算法的函数。 file_pr.asm:文件操作函数,主要是做了一些封装。 lz77.asm:LZ77算法的16位汇编实现,实际上是对应着lzalong.c的。 huffman.asm:Huffman算法的16位汇编实现,对应着huffman.c。 汇编命令: masm compress_v14.asm, comp.obj masm file_pr.asm masm lz77.asm masm huffman.asm 链接命令: link comp.obj file_pr.obj lz77.obj huffman.obj 程序的具体使用方法可以在汇编出来的程序加-h参数查看使用说明。

2009-10-05

Linux下NASM的通用函数库Along32库V1.0(已过时)

Linux的NASM函数库,改编自《Intel汇编语言程序设计(第五版)》里Kip R.Irvine写的Irvine32库。里面的注释大多数都还没有改过来。 这个库的2.0版已经上传,新增详细的注释和使用说明,请下V2.0版,此1.0版就可以不用下了。

2009-05-23

CC2005

Computer curricula 2005的PDF

2008-05-31

计算机程序的构造和解释

MIT的计算机系入门课程的教材~~<br>经典书之一。

2008-05-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除