自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(3626)
  • 资源 (4)
  • 收藏
  • 关注

原创 pandas 学习 —— pivot table

0. DataFrame 的 index、columns、values>> df = pd.DataFrame(np.arange(6).reshape(3, 2), index=['one', 'two', 'three'], columns=['a', 'b'])>> df a bone 0 1two 2 3three 4 5>> df.indexI

2017-12-21 00:23:43 1331

原创 windows 10 安装 spark 环境(spark 2.2.1 + hadoop2.7)

安装步骤基本参考 Spark在Windows下的环境搭建。不过在安装新版本 spark2.2.1(基于 hadoop2.7)的配置时,略略有一些不同。1. sqlContext => spark.sqlContext在启动日志中未出现,SQL context available as sqlContext.也不足为奇,因为在新版本的 spark 中 sqlContext 对象已封装进 Spark s

2017-12-19 23:55:00 7645 2

原创 docker 安装与常用命令与常用容器(containers)环境

1. 常用命令查询版本信息:>> docker --version>> docker-machine --version>> docker-compose --version查看环境信息:>> docker ps # 显示运行中的容器>> docker version>> docker info2. 常用容器hello-world>> docker run hello

2017-12-17 18:07:35 2049

原创 javascript 基础

0. js 与 html 的关系.js是脚本,以文件的形式存在// test.jsfunction sayHello() { document.write("hello javascript");}sayHello();.html是页面.<script language="JavaScript" src="test.js"></script>html 里面可以包含 js 脚本,但

2017-12-17 12:25:59 745

原创 node.js 安装及配置(hello world)及 node 的包管理器(npm)

下载地址:Download | Node.js,无脑下一步安装即可;安装时,会自动将 node 可执行文件路径添加进 Path 内,这样进入 cmd 命令行,以查看 node 的安装版本:&amp;amp;gt;&amp;amp;gt; node -vv8.9.3使用 node.js 的包管理器(npm,node package manager,是随着 node.js 的安装一并安装的)继续安装 express 工具...

2017-12-17 11:53:04 3414

原创 魔数,常见魔数

java 文件编译为 .class 字节码(byte code),字节码文件的前 4 位为魔数(起到标识说明作用),magicNumber = 0xCAFEBABE;1. 可执行文件几乎所有的可执行文件格式最开始的几个字节都是魔数:a.out:最开始的两个字节为 0x01,0x07;PE/COEF 文件最开始的两个字节为:0x4d, 0x5a,即 ASCII 码 MZELF 文

2017-12-16 22:37:04 6434

原创 正则表达式 —— 括号与特殊字符

点(dot,.):匹配除 \n(换行)外的任意一个字符;

2017-12-16 19:07:41 2642

原创 串行总线 —— I2C、UART、SPI

I2C,也叫 IIC,是一种常见的串行总线,它只需要两根线即可在连接于总线上的器件之间传送信息。0. 电气知识开漏输出:Open drain output,不输出电压,低电平时接地,高电平时不接地。上拉电阻:pull-up resistor,1. I2CSDA 与 SCL 是 I2C 的两种双向信号线。SDA:串行数据线;SCL:串行时钟线; ...

2017-12-16 16:48:17 1136

原创 Python GUI 编程

做一些实用小工具。1. tkinterhello worldfrom tkinter import Tk, Labelroot = Tk()label = Label(root, text="hello world")label.pack() # pack() ⇒ 起到 Layout 布局的作用root.mainloop()按钮及其事件:from tkinter impo

2017-12-15 21:50:19 1891

原创 树莓派与 Python —— GPIO

首先来直观地认识树莓派提供的 40 个引脚(GPIO,general purpose i/o,接收外界输入,并向外界提供运算处理后的输出): 1. 安装从远程库(repositories)中下载安装$ sudo apt-get update$ sudo apt-get dist-update$ sudo apt-get install python-rpi.gpio

2017-12-15 21:23:18 6295 2

原创 状态机与马尔科夫模型

就像图由顶点和边构成,状态机(state machine)也由状态和状态间的转移组成。状态是某系统中全部状态的集合; 全部状态构成整个系统的状态空间;状态之间的连接,则刻画着状态之间的转移,流动关系;如下分别为二状态马尔科夫模型: 再来看更频繁出现的操作系统进程状态转移图,它当然是一副标标准准的状态机模型:

2017-12-14 23:14:51 2863

原创 架构设计 —— 子系统与包

老虎吃天,总要找到下口点。0. 分解为子系统(subsystems)或包(packages)常用的子系统(对应于包): 业务规则用户界面数据库访问;对系统的依赖性; 比如开发一个运行于 windows 的程序,可将与 windows 相关的系统调用都隔离起来,放到一个 windows 接口子系统中,如此一来,日后把程序移植到 Mac 或 Linux 系统,只要适配新的接口

2017-12-14 23:02:29 2700

原创 最佳实践 —— 单元测试

针对接口测试是单元测试的最佳实践; 针对接口测试而非接口的实现测试;接口(interface)中定义着其各个实现类所需实现的各种函数接口;

2017-12-10 10:54:47 1211

原创 C/C++ 混合编程

[面试] C/C++ 语法(五) —— extern1. C 调用 C++ 开发的DLL库C和C++混合编程(__cplusplus 与 external “c” 的使用)#ifdef __cplusplusextern "C" {#endif/**** some declaration or so *****/#ifdef __cplusplus }#endif /* end of __cplu

2017-12-09 14:05:30 786

原创 代码可读性、可调式、可维护性

避免魔鬼数字: 将数字通过宏定义或者枚举赋予有意义人类可读的字符串名;1. 代码文件的拆分将所有的源代码都写在一个文件中,最开始还很清楚,及至到后来,功能不断扩展添加,一个程序源代码的文件可以长达数百万行,那么该代码无论是维护,还是功能添加,还是调试和定位,都是一种灾难;

2017-12-09 12:18:49 1002

原创 计算机设计思想 —— 虚拟化

物理地址,虚拟地址; 物理地址:如果你的计算机用的是 Intel 的 Pentium 4 的处理器,它是 32 位机器,即计算机地址线有 32 条,物理空间就有 4GB;如果你的计算机只安装了 512MB,其实物理地址的真正有效部分为 0x00000000 ~ 0x1FFFFFFF虚拟地址空间,是指虚拟的,人们想象出来的地址空间,其实它并不存在,每个进程都有自己独立的地址空间,而且每个进程只能访

2017-12-07 23:22:47 816

原创 计算机设计思想 —— 类比、建模与隐喻(同构)

一切有意义的事物皆有历史,有迹可循。—— 《真探》将知识首先简单划分为已知和未知两个互斥的类别,然而已知和未知之间并非完全地泾渭分明,井水不犯河水。重要的科学发现常常来自 analogy(类比),也即把你不太理解的东西和一些你较为理解,且二者之间存在相似性的东西作比较,由此可对那些你不太理解的东西产生深刻的理解。这种隐喻的方法,也叫“建模”(modeling)。1. 应用实例蛇咬着自己的尾巴,=

2017-12-07 22:55:34 1322

原创 Wireshark 的使用 —— 过滤器(filter)

1. 基本ip 地址: 目的IP:ip.dst==192.168.101.8,源ip:ip.src==1.1.1.1不区分源和目的:ip.addr == 192.168.101.8;端口过滤: tcp.dstport == 80,tcp.srcport == 80tcp.port == 80http 模式: http.request.method == “GET”,过滤 get 包;

2017-11-22 22:51:52 1426

原创 Java 并发 —— Java 标准库对并发的支持及 java.util.concurrent 包

1. 使用 java.util.concurrent.*下的类并非万事大吉ConcurrentHashMap、synchronized与线程安全使用 hashmap 做字符串的次数统计,为保证容器的线程安全,在修改容器内容时,加锁,在java中即是通过 synchronized 的关键字实现加锁。

2017-11-18 23:04:36 832

原创 学习 Shell —— 括号、引号

shell中各种括号的作用()、(())、[]、[[]]、{}shell中的括号(小括号,大括号/花括号) 1. 大括号touch {a,b}.txt ⇒ a.txt b.txttouch {a..d}.txt ⇒ a.txt b.txt c.txt d.txt2. 小括号$(cmd)和符号cmd(注意这不是单引号,在美式键盘上,`是ESC下面的那个键)有相同之处 shell扫描一遍命令行

2017-11-11 17:38:49 884

原创 计算机设计思想 —— 总线

PCI:就是计算机中硬件连接的总线;主板与外设之间:通过I/O总线与主板相连 1. 总线与交通对于计算机这种由多个组成部分构成的复杂系统,想要通过一一相连的方式实现彼此间的通信的话,既不现实也浪费资源。对于全国的交通运输,我们只需先建两条干线,就像“京九线”和“京广线”这样贯穿南北的大动脉,然后其他城市通过支路连接到干线上即可。模拟干路支路的交通设计思路,而非采用一一相连的方式,在计算机或通信上

2017-11-05 18:20:08 1567

原创 GSM —— 商业蜂窝通信系统

用户漫游: HLR:当用户办卡时,当地运营商把用户资料(归属地信息等)输入 HLR;VLR:当用户漫游到别的城市时,漫游地的 VLR 把用户资料从 HLR 复制过来,用户便可以继续享受运营商的通信服务了;

2017-11-05 12:15:55 959

原创 Java IO(输入输出)

1. System.out、System.inSystem 内部:public final static InputStream in = null;public final static PrintStream out = null;二者均是实例化后的对象;2. PrintStream、PrintWriterWriting to console with Syste

2017-11-04 22:00:49 731

原创 整数运算、浮点运算与溢出

1. 一个示例sizeof(int) == 4 的机器上,也即 32 位机器,使用 int 型变量存储 200*300*400*500 会得到 -884901888。这显然违犯了整数运算的特性,计算一组正数的乘积不应该产生一个负数结果。另一方面,整数在计算机中的运算满足数学上对整数运算的许多性质。乘法的结合和交换律,下面的任何一个 C 表达式,都会得到 -884901888 同样的负数,数值溢出结果

2017-11-01 21:47:08 3874

原创 编写高质量代码 —— 异常退出条件的判断

注意,布尔表达式的先后顺序,有时不可以交换if (null == instance || instance.isEmpty())0. 常见异常退出条件参数为空;表示长度,表示索引的整型为负数,或者超出待索引数组或容器的范围;1. String 的 startsWith 函数首先来看 String 类为 startsWith 函数提供的对外接口,有如下形式的俩中函数重载:public bool

2017-10-22 19:52:35 850

原创 Eclipse 插件使用

1. AmaterasUML:UML 类图(class diagram) 注意这里是先编写好代码,通过插件根据代码逻辑关系生成类图;安装AmaterasUML前,需要先安装 GEF,采用 eclipse 在线安装方式安装(即【help】⇒ 【Install new softwares】⇒ 点击弹出窗口的 add 按钮添加如下地址)。 eclipse在线安装GEF的地址:http://downl

2017-10-21 22:36:27 813

原创 Java 并发 —— volatile 关键字

volatile 修饰变量等于向编译器传达如下两层含义: 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。禁止进行指令重排序。volatile 关键字定义了读写发生的次序: 对一个变量(被 volatile 修饰的变量)的写操作先行发生于(happens before)后面对这个变量的读操作1. 修饰标记量//线程1// boo

2017-10-14 22:30:48 786

原创 日志的打印 —— Java 支持

1. java.util.logging.Logger日志级别(logLevel) OFF,Integer.MAX_VALUESEVERE,1000WARNING,900INFO,800CONFIG,700FINE,500;FINER,400;FINEST,300ALL,Integer.MIN_VALUE2. 一个自定义的异常类public class Log...

2017-10-14 22:14:02 1038

原创 编码 —— PCM 编码

PCM:Pulse Code Modulation,脉冲编码调制;1. 无损编码PCM约定俗成了无损编码,因为PCM代表了数字音频中最佳的保真水准,并不意味着PCM就能够确保信号绝对保真,PCM也只能做到最大程度的无限接近。计算一个 PCM 音频流的码率: 采样率值×采样大小值×声道数 bps一个采样率为44.1KHz,采样大小为16bit,双声道的PCM编码的WAV文件 44.1*16

2017-10-14 20:06:17 2145

原创 直流电与交流电

直流电:direct current(DC),交流电:alternating current(AC)交流电:电流方向随时间作周期性变化的; 大小和方向随时间做周期性变化;

2017-10-13 23:13:43 1331

原创 编码 —— 差错检验

1. 差错检测奇偶校验:数数; 奇偶校验是信息完好无损的必要条件,也即通过奇偶校验未必就表示信号无误,但未通过奇偶校验信号传输一定出现差错;CRC:Cycle Redundancy Check,循环冗余校验。以判断接收到的信号是否完好无损;2. CRC(循环冗余校验)循环冗余校验同其他差错检测方式一样,通过在要传输的 k 比特数据 D 后添加 (n-k) 比特冗余位(又称帧检验序列,Fram

2017-10-13 22:10:32 1674

原创 Java 高阶 —— 相等性比较

1. 包装类所有的相同类型的包装类对象之间的值的比较,全部使用 equals 方法;对于 Integer a = ?,在 -128 到 127 范围内的赋值,Integer 对象是在 IntegerCache.cache 产生,便会复用已有对象,该区间内的 Integer 值可以直接使用 == 判断,但该区间外的所有数据,都会在堆上产生,并不会复用已有对象。Integer a = 100;Int

2017-10-11 22:20:04 804 1

原创 常见空指针异常及其避免

出现在任何一个位置上的对象引用都有可能为 null,在进行访问,赋值,取值,类型转换等操作时,首先判断该对象是否为 null,否则极易抛出空指针异常; map.get(key) ⇒ 就有可能 key 不在 map 中; 避免的方法也十分简单,对返回值进行判断;如果一个函数的返回值为对象的引用,该返回值也可能为空指针;强制类型转换;1. 规避手段使用 object.equals(“test”

2017-10-11 22:12:09 3249 1

原创 Linux 命令行 Tricks

区分文件和目录:ls -Fls -F -R:递归显示目录仅改变文件的修改时间,而不修改文件的内容:touch filename;使用 file 命令查看文件类型:ASCII textdirectoryshell script0. 常用 tricks仅显示目录ls -l | grep “^d”:以 d 开头ls -F | grep “/$”:以 / 结尾...

2017-10-11 20:49:42 833

原创 Java 高阶 —— try/catch

// try catch 在 for 循环外try { for(int i = 0; i < max; i++) { String myString = ...; float myNum = Float.parseFloat(myString); myFloats[i] = myNum; }} catch (Numbe

2017-10-11 20:25:30 1024

原创 Java 高阶 —— native 关键字与 JNI

1. JNIJava中JNI的使用详解第一篇:HelloWorld JNI:Java Native Interface,Java 本地接口(或本机接口,更具体地讲叫本地编程接口),其提供了若干 API 以实现 Java 与其他语言的通信(主要是 C/C++)。使用 java 与本地已编译的代码交互,通常会丧失平台可移植性。2. native 关键字 Java中native关键字 native关键字说

2017-10-11 19:48:13 893

原创 编程模式(schema) —— 表驱动法(table-driven)

使用表驱动法,而非繁琐冗长的 if/else, switch case(本身也代表一种代码坏味道),也是替身编程质量的重要手段,表驱动法是一种编程模式(schema)—— 从表里面查找信息而不使用逻辑语句(if/else, switch/case)。事实上,凡是能通过逻辑语句来选择(路由,分发)的事物,都可以通过查表来选择。if (语句A) { 语句B;}else { 语句

2017-10-10 23:38:31 1817

原创 MAC 地址解析

MAC 地址的前三个字节代表厂商; 00:50:56:vmware 公司00:0c:29:vmware 公司

2017-10-09 23:30:36 4186

原创 TCP/IP 协议 —— ARP

通过 ARP 广播获得对方的 MAC 地址;地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。1. 特点ARP 不能跨子网(子网 subnet 通过子网掩码 subnet mask 定义)

2017-10-09 23:10:13 773

原创 局域网 —— VLAN

0. network 简单分类LAN:Local Area Network,局域网; WLAN:Wireless LAN(Local Area Network),VLAN:Virtual LAN(Local Area Network),VPN:Virtual Private Network(本身没有 local area 的含义)

2017-10-09 23:04:53 788

Python-2.7.3.tgz

学习《Python 源码剖析》一书所用的 Python 源码文件。

2016-04-29

文件工具类

解决java 运行 MapReduce 相关代码时报权限错误的问题。

2016-03-15

上网日志数据(hadoop用)

简单格式的数据、

2016-03-10

matlab字幕拼接用视频截图

配套于《用matlab实现视频截图字幕部分的拼接》[http://blog.csdn.net/lanchunhui/article/details/50539019]

2016-01-18

空空如也

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

TA关注的人

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