- 博客(43)
- 资源 (1)
- 收藏
- 关注
原创 Dos命令findstr及fc
在分析或编写代码的过程中,经常需要在文件中查找字符串或对两个文件进行比较。Linux下常用的命令是grep和diff。Windows下文件比较有比较好的开源工具,如WinMerge。在文件中寻找字符串不清楚是否有好的开源工具。最近发现windows居然有dos命令可以满足需求。
2014-07-21 11:00:27 1349
原创 Leetcode之Best Time to Buy and Sell Stock
Leetcode之Best Time to Buy and Sell Stock
2014-06-23 17:26:18 1547
原创 LeetCode之Integer to Roman, Roman to Integer
LeetCode之Integer to Roman, Roman to Integer
2014-06-17 14:56:00 1427
原创 LeetCode之Maximum Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
2014-06-06 10:44:39 1756 1
原创 有限状态自动机FSM实现(一)
有限状态自动机是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。使用有限状态自动机可以将复杂的问题简化,比如TCP状态转换。
2014-05-16 22:41:05 4507
原创 LeetCode之Unique Binary Search Trees
Unique Binary Search Trees, Given n, how many structurally unique BST's (binary search trees) that store values 1...n?
2014-05-14 17:17:03 1064
原创 libuv入门(一)
libuv是Node.js中的异步事件处理框架。它来源于libev,然而libev只能运行于Unix-like系统上,libuv则可以同时在windows和unix-like上使用。本文主要介绍在Windows下编译和使用libuv。
2014-05-06 22:33:05 3959
原创 RSA 非对称加密(深入)
RSA加密算法生成公钥和私钥对步骤:1, 随机选择两个素数p, q2, 计算它们的系统模N = p.q和欧拉函数ψ(N)=(p-1)(q-1)3, 随机选择一个加密密钥e,且 1 4, 求解以下公式,找出解密密钥d:e.d = 1 mod ψ(N) 且 0 ≤ d ≤ N5, 发布公钥 KU = {e, N}6, 发布私钥 KR = {d, N}加密消息M,
2014-04-08 23:26:20 959
原创 boost::any类型实现原理
boost::any是一种通用类型,可以存放任意值。问题:通用类型any如何存放任意值?A: 这里的通用类型类似于脚本语言中的类型。方案一, union结构体:但union只能存放固定种类的值,没有扩展性。方案二, void *类型: C++是强类型语言,用void *保存后丢失了类型信息,很难保证类型安全。方案三, 模板: 模板需要参数化,any = 1; any = 1.0
2014-04-03 21:20:47 3482
原创 如何分析源代码?
1, 工具understand (http://www.scitools.com/) 收费 or doxygen 代码格式化 CoolFormat, http://blog.csdn.net/akof1314/article/details/5355948画图工具 starUML 参考文献:
2014-03-16 21:21:36 1244
原创 SIP协议相关知识FAQ
Q: Early Offer, Delay Offer ?A: 一个最基本的SIP会话如下,假设John@xx.com向Dave@yy.com发送Invite消息。在Early Offer中,John在发送Invite时就包含SDP描述,而Dave在发送200 OK时包含SDP描述。在Delay Offer中,Dave在发送200 OK时包含SDP描述,而John在发送AC
2014-03-16 20:26:23 2114
原创 Python Unittest源码分析
Unittest,即Unit testing framework(也可以称为PyUnit),Python自带的单元测试框架,当前版本Version 2.1。PyUnit是Python版的JUnit,但是2.1版的PyUnit太复杂,不利于理解,这里主要分析 Version 1.2。PyUnit类包含TestResult,TestCase, TestSuite,TextTestResult,Te
2014-03-16 20:23:25 4784
原创 Eclipse启动不了一闪需过
问题A导致了问题B的产生,当你Fix了问题A后,往往并不能解决问题B,而是会引出问题C。今天我遇见一个Java Native的问题:Can't load IA 32-bit .dll on a AMD 64-bit platform?有两个解决方案:1,.dll 升级成 64bit2,JDK由64位转成32位根据实际情况,方案1较麻烦。因此,采用方案2。卸载
2014-03-07 17:26:27 1389
原创 Linux与Windows下文件传输
Windows及Linux下文件传输方案一:PuTTY (or SecureCRT) + WinSSHD + scpPuTTYPutty是开源的SSH和telnet客户端,http://www.putty.org/。SecureCRTSecureCRT也是一个SSH客户端,相对于Putty而言,拥有更加友好的界面,及出色的会话管理功能。However,
2014-03-03 16:30:16 1708
原创 计算IP首部检验和
以前在学谢希仁教授主编的《计算机网络》时,一直没弄懂IP首部的校验和是如何计算的。今天在看《TCP/IP详解 卷一》时,看到了一段关于首部校验和的描述。如下:为了计算一份数据报的IP校验和,首先把检验和的字段设置为0。然后,对首部中每个16bit进行二进制反码求和(整个首部看成是由一串16bit的字组成),结果存在校验和字段中。当收到一份IP数据报后,同样对首部中每16bit进行二进制反码求和
2014-02-17 16:02:36 3075
原创 Google test源码阅读(二):参数化测试执行流程
参数化测试or数据驱动可以利用大量的数据跑一个具体的Case,有利于发现问题。至于Google test如何写数据驱动,请参考google的文档。先介绍求Prime素数的类:// The prime table interface.class PrimeTable { public: virtual ~PrimeTable() {} // Returns tru
2014-02-17 16:02:34 1083
原创 Google test源码阅读(一):基本执行流程
我采用的测试代码如下:#include #include "gtest.h"TEST(SimpleTest, Test1){ EXPECT_TRUE(1);}TEST(SimpleTest, Test2){ EXPECT_TRUE(2);}class FooTest : public ::testing::Test {prot
2014-02-17 16:02:32 1318
原创 QUnit源码阅读(3):asyncTest基本执行流程
//asyncTest, QUnit中的异步测试,具体参考QUnit官方文档。//直接上代码//step 1: write a simple asyncTest as the following.asyncTest("asynchronous test: one second later!", function() { expect(1); setTimeout(fun
2014-02-17 16:02:30 1430
原创 QUnit源码阅读(2):test基本执行流程
// 直接上代码//step 1: write a simple test as the following.test("hello test", function() { ok(1 == "1", "Passed!");});//step 2: 调用test函数QUnit = { //... test : function(testName, e
2014-02-17 16:02:28 887
原创 QUnit源码阅读(1):工具函数
QUnit 是 JavaScript单元测试框架。更加具体的介绍ref: http://qunitjs.com/下面是QUnit中的一段代码:(function() { function F() {} F.prototype = QUnit; QUnit = new F(); // Make F QUnit's constructor so th
2014-02-17 16:02:26 852
原创 协议: DTMF相关FAQ
Q. What is DTMF ?A. 双音多频信号(Dual-Tone Multi-Frequency, DTMF),电话系统中电话机与交换机之间的一种用户信令,通常用于发送被叫号码。在使用双音多频信号之前,电话系统中使用一连串的断续脉冲来传送被叫号码,称为脉冲拨号。脉冲拨号需要电信局中的操作员手工完成长途接续。双音多频信号是贝尔实验室发明的,其目的是为了自动完成长途呼叫。 双
2014-02-14 10:40:49 2917
原创 RSA 非对称加密
# -*- coding: utf-8 -*-import rsa# 先生成一对密钥,然后保存.pem格式文件,当然也可以直接使用(pubkey, privkey) = rsa.newkeys(1024)print pubkey, privkeypub = pubkey.save_pkcs1()pubfile = open('public.pem','w+')pubfile.wr
2014-02-12 10:14:48 2427
原创 jthread库分析一:JMutex类和JMutexAutoLock类
The JThread package provides some classes to make use of threads easy on different platforms. The classes are actually rather simple wrappers around existing thread implementations.JThread库提供了一些易于
2014-02-10 15:20:12 2049
原创 Python装饰器及functools模块
functools模块from functools import wrapsdef logpath(func): @wraps(func) def with_logging(*args, **kwargs): print "Entering %s.%s" % (args[0].__class__.__name__, func.__name__)
2014-01-28 17:02:12 973
原创 音频编码基础
语音和视频是模拟的,但数据通信网络是数字的。为了方便传输需要把模拟信号数字化(Analog to Digital Converter, ADC)。ADC需要经过三个过程:采样, 量化, 编码。1 采样采样就是在一个时间上连续的模拟信号上取出若干个有代表性的样本值。假设一个在时间和幅值上都连续的模拟音频信号的函数表示为m(t),采样的过程就是在时间上将函数x(t)离散化的过程。一
2014-01-28 15:38:17 1235
原创 windows bat脚本总结
在cmd.exe中重复输入cmd是一件烦人的事情,如何才能节省时间?批处理脚本是不错的方式。基本上,只要把在cmd.exe中输入的命令一行一行放入*.bat脚本中就可以了。同时,bat脚本功能更加强大。日常工作中经常碰到需要设置环境变量,清理编译残留等,此时可以自己动手写bat脚本。可惜的是,现在网上找不到比较系统的教程。下面是我从网络中搜集过来的,日后会不断的完善。Section 1
2013-11-21 21:45:16 4127
原创 工作环境迁移:Ubuntu 12.04使用笔记(三)
手动安装jdk6首先,在http://java.sun.com下载jdk-6u12-linux-i586.bin.然后,可以把它放置在任何你喜欢的文件夹,下面开始安装jdk:终端下进入你存放jdk-6u12-linux-i586.bin,例如我的位置是:/home/xu$ sudo chmod u+x jdk-6u12-linux
2013-11-12 22:05:53 963
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人