今天心情不错

2017-08-01
大学三大数学关系

高中数学参考

http://www.sohu.com/a/142139848_228459?loc=2&cate_id=16

大学数学三大分支

微积分:

我们在初中高中的时候, 学到的是一些简单的图形的面积, 周长.比如三角,圆.
但如果要求更复杂的图形. 比如正态分布, 椭圆, 贝塞尔曲线,我们就需要借助微积分.
这只是一个数学的进化过程,从简单的线性到复杂的线性.

线性代数

目的是用来求解行列式(方程组). 或者空间向量转换.

概率统计

这应该是最有用的一门课. 不论是金融、人工智能、都逃不开它。
个人理解:其实微积分几乎完全为它服务。

阅读此文

2017-05-05
开源深度学习库

开源深度学习库汇总:

  • mxnet 亚马逊主推
  • caffe FACEBOOK主推
  • tensorflow GOOGLE
  • CNTK 微软
  • Theano
  • Torch

低层库

调用库 mxnet caffe tf cntk theano torch
blas y y y
opencv y y
cuda y y
opencl y
LAPACK y
FFTW y y

caffe
math_functions.cu gpu blas
otherwise using blas.
opencl –> greentea –>greentea_math_functions.cpp

2017-04-17
HDEVELOP函数算法解析

threshold(Image : Region : MinGray, MaxGray : )

图像的GRAY THRESHOLD. 从MIN 到MAX的像素点留下来 O(A)

* image 输入图像
* region 输出图像
* mingray GRAY 最小值
* maxgray GRAY 最大值

difference(Region, Sub : RegionDifference : : )

减法运算

* REGION 原图
* sub SUB图
* RegionDifference 输出图
阅读此文

2017-04-13
嵌入式LINUX_RPI3

编译过程

用默认配置编译.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
git clone --depth=1 https://github.com/raspberrypi/linux
KERNEL=kernel
make ARCH=arm CROSS_COMPILE=../tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- bcm2709_defconfig
make ARCH=arm CROSS_COMPILE=../tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -j4 zImage modules dtbs
sudo make ARCH=arm CROSS_COMPILE=../tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=mnt/ext4 modules_install
sudo cp arch/arm/boot/zImage mnt/fat32/$KERNEL.img
sudo cp arch/arm/boot/dts/*.dtb mnt/fat32/
sudo cp arch/arm/boot/dts/overlays/*.dtb* mnt/fat32/overlays/
sudo cp arch/arm/boot/dts/overlays/README mnt/fat32/overlays/

阅读此文

2017-04-11
linux内核文件编译分析

MAKEFILE

内核配置完成后,在顶层目录中执行“#make uImage”便开始编译内核。但是,uImage却不是在顶层Makefile中定义,而是在arch/$(ARCH)/Makefile中定义。

顶层Makefile Line 452:
include $(srctree)/arch/$(SRCARCH)/Makefile
其中srctree为源码绝对路径,

即该变量等于架构名称,我们以arm为例进行说明。

arch/arm/Makefile Line 230:
zImage Image xipImage bootpImage uImage: vmlinux
可见uImage依赖于vmlinux,要先生成vmlinux,然后执行下边这条指令完成编译。
arch/arm/Makefile Line 231:
$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@

Q的定义:选择静态编译与否(是否打印编译信息)
MAKE: 系统环境变量,值为make
build: 值为“-f scripts/Makefile.build obj=”实际上就是调用子Makefile–scripts/Makefile.build,然后传递参数目标文件夹。
Kbuild.include被顶层Makefile所包含

源代码定位

配置

/arch/arm/Kconfig 定义了自编译内核配置文件
/arch/arm/configs 和上面的一起.定义不同的CHIP的配置(其实就是定义上面哪些配置要打开. 所以重点还是在Kconfig)

在Kconfig的1080行开始,定义了 source “arch/arm/mach-at91/Kconfig” 也就是不同的芯片会调用各自目录下的Kconfig

通过配置找代码

在MAKEFILE里找到对应配置的代码
plat-$(CONFIG_PLAT_SUNXI) := sunxi
对应的就是plat-sunxi
有的时候对应的源代码很难找. 只能用GREP来了.
比如CONFIG_CSI_OV7670 ,处理它的MAKEFILE在 drivers\media\video\sun4icsi\device\MAKEFILE

2017-04-11
FREEBSD内核文件编译分析

本文不是叫大家怎么做FreeBSD内核,做内核太简单了,不管是Linux和Unix。
在网上找了好久,一点可用的文章都没有找到,FreeBSD的官网的文章也没有给出说法,只能自己在/usr/src和/usr/src/sys和/usr/src/sys/conf下面疯狂的grep,找文件,找引用,才有了自己的一些理解。
先说说Linux的内核文件的编译关联吧,Linux的每个文件的编译和是 kconfig配置关联在一起的,kconfig在经过make menuconfig之后,得到一个.config文件,然后每个文件夹下面的Makefile,会check这个全局的.config文件,来决定哪些 文件该编译,哪些不用编译。多说无益,参考代码即可。
FreeBSD的做法有些不一样了,Linux把哪些文件要编译分散到了每个文件夹,然后check Makefile。FreeBSD是做两个总的文件,决定哪些文件该编译哪些不该,这两个文件分别是这个路径下:
ztz0223@BTazuo:/usr/src/sys/conf % pwd
/usr/src/sys/conf
的两个文件:files,files.i386

阅读此文

2017-04-09
海龟法则

什么是TR(True Range)

TR = max(H-L, H-PDC, PDC-L);
H high
L low
PDC last close. REF(c,1)

ATR (average True Range)

ATR = ((T-1)*PDN +TR)/T
T=average days
PDN = last ATR ==> REF(ATR,1)

风险承受率

比如1% 设为R
总资金 100000 设为M
承受亏损量为: N=M*R

头寸为: M*R/ATRV 做为一个UNIT

ATRV为资金波动: 比如股市. 1手100股,假设股票价格为15. 一天的震浮为10% 也就是0.1, ATRV=0.1 100 15 = 150

头寸为: 100000*0.01/150 = 6.7手

如果亏损:
也就是6.7手 .总资金为 10050 元
回撤震动10%: 150.1 = 1.5元 /手
亏损量为: 1.5
6.7 * 100 = 1005元

如果盈利:
以0.5个UNIT增加

进场

10日线上穿20日线. 以1个UNIT进场.

加仓

如果上涨了0.5ATR 增加1个UNIT 不建议加仓超过4次. 其实就是每盈利500, 增加 6.7手

止损

如果亏损超过2UNIT 止损. 止损随着加减仓, 动态修正的. 亏损2000 止损.

止盈

10日下穿20日

期货

假设价格为3000 ATR为1500 也就是150个点. 这样的话. 一天浮动为0.5 ATRV = 0.53000 = 1500
资金6W 容忍亏损0.05 也就是3000
头寸为: 60000
0.05/1500 = 2手
加仓为: 每上涨75个点, 加一次. 2手.
如果全加完: 4*2 = 8手. 占资金为 24000以上.

2017-04-09
Ubuntu代码分析

代码位置

执行 sudo apt-get install linux-source 才会获取到源代码. 否则只有HEADER文件.
执行完安装后. 代码依然会在/usr/src下 位置和BSD是一样的.

也可以从GITHUB下载. 比如要编译特定的系统的话.

阅读此文

2017-03-29
3D打印开源库--CuraEngine

CuraEngine

这是一个3D打印切片和路经规划库.

The slicing process follows the following global steps:

  • Load 3D model
  • Analize and fix 3D model
  • Slice 3D model into 2D layers
  • Build LayerParts from sliced layers
  • Generate Insets
  • Generate up/down skins areas
  • Generate sparse infill areas
  • Generate GCode for each layer
阅读此文

2017-03-29
蓝牙协议说明

重点要关注GAP, GATT。
主要针对什么是Characteristics
以下信息都可以由MASTER CONTROL PANEL googleplay读出来

GAP和GATT的差别

GAP: 通用访问协议(Generic Attribute Profile).

官方说明
用于广播(advertising)的协议.
包含信息:

  • RSSI
  • Address
  • Address Type (short or long)
  • Advertising Data:
    • ShortenedLocalName
    • Flags (discoverable? can connent?)
    • UUID
    • ManufacturerSpecificData
阅读此文