- 博客(33)
- 资源 (7)
- 收藏
- 关注
转载 Flash builder4.5免注册
来源:http://marsvaadin.iteye.com/blog/1235357具体步骤如下:1.到Adobe官网下载FlashBuilder 4.5,有简体中文版;语言:English / French / German / Japanese / Russian / Chinese (Simplified)http://trials2.adobe.com/AdobePr
2015-12-31 11:04:57
837
原创 Devstack使用基础
Devstack可用于快速安装和部署Openstack环境,对于Openstack开发人员来说,是构建开发环境、debug的利器。下面对Devstack的安装和使用进行简单介绍。 Openstack的安装1. 获取devstackgit clone https://github.com/openstack-dev/devstack.git 2. 创建devstack用户
2015-02-08 17:36:43
3596
转载 find命令中的print0和xargs -0
看到命令find . -name '*.h' -print0 | xargs -0 checkout-cache -f --
2014-07-25 13:32:42
6857
1
原创 Link-local Multicast Name Resolution
LLMNR是一种在子网域提供域名解析的方案。利用多播的方式,使得子网内的节点可以将主机名解析成IP地址。使用的多播地址为224.0.0.252。详见RFC4795。
2013-11-02 19:13:05
1861
原创 数据库范式的理解
首先,数据库范式的意义是在设计数据库是尽量去掉数据冗余。然而过分的精简并不一定能够带来更高的效率,所以具体问题还要具体分析,不是一定要达到更高的范式要求的。1NF属性的原子性。即数据库各列中不能含有组合列,如地址属性不能为区和街道的组合。2NF非主属性要完全依赖于码,也就是说码是作为一个整体来决定非主属性的,不能由其中一部分就能做决定。如属性A、B、C、D 其中(A、B
2013-08-19 16:54:11
1210
2
原创 欧几里德算法和stein算法
用于计算最大公约数和最小公倍数的算法。最小公倍数的可由最大公约数计算得到,即已知a和b的最大公约数c,那么a和b的最小公倍数为ab/c。这样就都转化为求最大公约数的问题了。问题描述:已知正整数a,b,求它们的最大公约数gcd(a,b)。欧几里德算法(辗转相除法):1)使a为两数中较大的,b为较小的(a>b),计算a%b=r, 如果r等于0,那么b即为最大公约数,
2013-07-15 11:05:06
1474
原创 Kibana解决使用Custom无法正确选择时间的问题
Kibana的时间选择框太恶心,Custom选项不能用,to date只能选择UTC时间。查了好久源码,终于找到问题所在啦!由于Kibana在时间选择空间上的max date设置为UTC时间,而该死的UTC时间比中国时间少了8个小时,这导致,使用Custom进行选择的时候永远都选不到当前的时间。而且在使用All Time、7day这样的time frame的时候,也会出现to date
2013-03-22 14:07:58
6359
转载 IPC通信之UNIX Domain Socket
UNIX Domain Socket IPC socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维
2012-12-31 17:07:13
717
原创 c++类构造函数理解
记录一下我对C++类构造函数的理解。首先,构造函数分成两种,默认构造函数和非默认构造函数(好吧,就这么叫它)。默认构造函数只能有一个,如果没有自定义构造函数,那么编译器将自动生成一个默认构造函数,当然这个构造函数不会做任何事情。如果程序定义了构造函数(包括默认和非默认),编译器都不再自动提供默认构造函数。如class C, 对应自动生成的默认构造函数为C() { };程序员可以自定
2012-12-01 21:45:28
1684
原创 c++ const常量的实现机制
const关键字的基本思想就是将一个变量变成常量,试图从语言设计者的角度去分析引入该关键字的动机。我猜测原因如下:1)提醒程序员,某些值是常量,如PI。或该值在程序运行期间是不变的,防止程序员误修改。对于多模块开发,头文件引用复杂的系统来说,这是很重要的,如果不能在编译期阻止常量被误修改,那么这些修改将引起运行时调试困难的问题。2)改进c语言中的#define预处理宏,1)中提到的问题
2012-11-30 15:07:20
6275
原创 char* 和char[] 内存分配的区别
char * s1 = "abcd";s1[0] = 'm';//segment fault上面代码在gcc下编译运行将报段错误。然而,char s1[] = "abcd";s1[0] = 'm';这段代码则能够正确运行。其中包含的原理是char* 和 char[],在内存分配上的机制差异。对于char * s = "abcd";来说, 编译器会将字符串字面量
2012-11-29 21:37:12
7364
1
转载 c++ const用法总结
1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value只不可变。例如:const int nV
2012-11-27 14:52:17
789
原创 随机数相关(算法导论5.1.2)
算法导论5.1.2 题目这样描述: 给出RANDOM(a,b)函数的一种实现,它只调用RANDOM(0,1)。 并给出程序的期望运行时间。想法:构造出一个样本集合U,其包含的元素个数为b-a+1,这样可以实现与a~b的一一映射,那么问题转化为,从集合U中等概率的取出一个元素。然而手头只有RANDOM(0,1)函数这一个资源,它能做的事情就是可以等概率的获得0或1,很自然的想到用它来构造
2012-11-06 16:17:25
1223
原创 Ubuntu切换jdk版本的方法
如果在Ubuntu下装了多个版本的JDK,并且需要时常切换的话,那么下面的命令则可以很方便的达到目的。$ sudo update-alternatives --config java$ sudo update-alternatives --config javac在Ubuntu下,java命令根据环境变量搜索一般是这么个路径:/usr/bin/java, 它链接到 /etc
2012-11-03 14:40:52
873
转载 2013--google笔试
1、单项选择题1.1 如果把传输速率定义为单位时间内传送的信息量(以字节计算)多少。关于一下几种典型的数据传输速率:1.使用USB2.0闪存盘,往USB闪存盘上拷贝文件的数据传输速率2.使用100M以太网,在局域网内拷贝大文件时网络上的数据传输速率3.使用一辆卡车拉1000块单块1TB装满数据的硬盘,以100km/h的速度从上海到天津(100km)一趟所等价的数据传
2012-10-28 14:25:33
846
转载 Java版本的有趣代号
Java各个版本的代号。VERSION 版本CODE NAME代号 RELEASE DATE发布时间JDK 1.1.4Sparkler闪光的东西Sept 12, 1997JDK 1.1.5Pumpkin南瓜Dec 3, 1997JDK 1.1.6Abigail人名?
2012-10-23 22:03:17
1660
原创 InputStream.skip方法的思考
在java.io.InputStream类中定义了skip这个方法。在API中的描述如下:skippublic long skip(long n) throws IOExceptionSkips over and discards n bytes of data from this input stream. The skip method may, for a varie
2012-10-23 12:42:38
29695
1
原创 Hamming Weight的算法分析
看代码时遇到一个求32bit二进制数中1的个数的问题,感觉算法很奇妙,特记录学习心得于此,备忘。<!--@page {margin:2cm}pre.western {font-family:"DejaVu Sans Mono",monospace}pre.cjk {font-family:"DejaVu Sans Condensed",monospace}pre
2012-10-21 13:57:32
8470
1
转载 C++内联函数 inline
介绍内联函数之前,有必要介绍一下预处理宏。内联函数的功能和预处理宏的功能相似。相信大家都用过预处理宏,我们会经常定义一些宏,如 #define TABLE_COMP(x) ((x)> 0?(x):0) 就定义了一个宏。 为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行
2012-10-20 18:28:05
1039
原创 算法导论第二章习题的一些思考
2.3-6 题目大意是结合二分查找来改进插入排序,能否使插入排序的最坏运行时间改善至O(nlgn)?在插入排序中,将数据插入已排序的序列中使用的是反向遍历,最坏情况是完全遍历,使用二分查找可以减少搜索应该插入位置的时间。而二分查找的时间为O(lgn),放入外层for(1-n)的遍历中,那么看似时间变为了O(nlgn)。其实不然,这要理解插入排序的时间花费不仅仅是在搜索插入位置上,更多的是在
2012-10-13 15:13:45
1205
1
原创 Placing Global Variables in a Register
GCC allows programmers to place global variables in a specific machine register, where the variables will then reside for the duration of the program's execution. GCC calls such variablesglobal regi
2012-10-12 13:32:00
734
原创 算法导论Ch2.1-4习题
题目: 有两个各存放在数组A和B中的n位二进制整数,考虑它们的相加问题。两个整数的和以二进制形式存放在具有(n+1)个元素的数组C中。请给出这个问题的形式化描述,并写出伪代码。分析:二进制整数的编码,此处考虑原码和补码,原码可以通过转化成补码来运算,这也体现了补码在运算上的优势。实质为模拟计算机二进制补码的加法计算机中采用补码进行加法运算,并约定存储单元和运算寄存器中的数
2012-10-11 14:57:28
1280
转载 explicit构造函数
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”); 但是有
2012-09-19 16:33:38
492
转载 stdcall, cdecl, fastcall, thiscall
在C语言中,假设我们有这样的一个函数:int function(int a,int b)调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎么给这
2012-09-18 13:11:08
454
原创 X86系列处理器中的寄存器
一个80X86 CPU有16个应用寄存器。数据寄存器:EAX、EBX、ECX、EDX,又称通用寄存器。EAX有时也叫累加器,因为它用于存储许多计算的结果。其中字母E表示Extend,原因是相对于早期16位寄存器来说,32位的寄存器是AX、BX、CX、DX16位寄存器的拓展。同时也是向下兼容的一种体现。对于EAX,可以使用AX来直接访问其低16位,即(0~15位),AX又细分为AH(8~
2012-09-02 12:17:50
850
原创 表单form的enctype="multipart/form-data"
给表单设置了enctype="multipart/form-data"后,不能直接使用request.getParameter()方法获取表单提交的内容。
2012-08-14 13:11:00
643
转载 函数堆栈的理解
任何一个程序通常都包括代码段和数据段,这些代码和数据本身都是静态的。程序要想运行,首先要由操作系统负责为其创建进程,并在进程的虚拟地址空间中为其代码段和数据段建立映射。光有代码段和数据段是不够的,进程在运行过程中还要有其动态环境,其中最重要的就是堆栈。图3所示为Linux下进程的地址空间布局:图3 Linux下进程地址空间的布局 首先,execve(2)会负责为进程代码段和数据
2012-07-16 00:33:46
1383
转载 malloc()与 alloc()等内存分配方式
C语言跟内存分配方式(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3)从堆上分配,亦称动态内存分配。程序在运行的时候
2012-07-15 19:16:02
1221
转载 手机屏幕类型分析
时下主流的屏幕都可归结为LCD与OLED两类。LCD的采用已经比较久远了,他就是指普通的液晶显示屏幕。有时LCD也可与TFT的名称通用,这里谈到的TFT属于LCD的一个子分类。通常认为,OLED在技术上比LCD是要更为先进的,不过OLED发展仍不成熟,LCD的采用还相对普遍。IPS、TFT、SLCD都属于LCD的子类,下面在谈到AMOLED屏幕时,还会谈LCD与OLED的区别。当今手机屏幕
2012-07-03 17:35:40
26537
原创 学习《TCP/IP详解》遇到的问题与疑惑
1、第二章中提到在RFC893中描述了以太网帧的尾部封装,这种封装可以使数据直接对应硬件页,从而节省了内存到内存的复制,但是这种封装方式被废止了,它有什么缺点呢?为什么被废止?待续..
2011-11-29 23:01:49
663
转载 浅析Java中CountDownLatch用法
CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定的事件。利用这种特性,可以让主线程等待子线程的结束。下面以一个模拟运动员比赛的例子加以说明。 1 import java.util.concurrent.CountDownLatch; 2 import java.util.concurrent.Executor; 3 import java.util.c
2011-10-29 16:42:28
582
转载 DatagramSocket的学习
使用DatagramSocket发送、接收数据DatagramSocket本身只是码头,不维护状态,不能产生IO流,它的唯一作用就是接收和发送数据报,Java使用DatagramPacket来代表数据报,DatagramSocket接收和发送的数据都是通过DatagramPacket对象完成的。先看一下DatagramSocket的构造器:DatagramSocket():
2011-10-23 14:49:50
827
windows程序设计
2011-11-04
OpenGL的glut库
2011-11-03
jqGrid插件--JQuery表格插件
2011-08-11
jmf-2_1_1e-windows-i586
2009-10-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人