- 博客(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;gt;&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
原创 串行总线 —— 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
原创 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
matlab字幕拼接用视频截图
2016-01-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人