0%

1. mac 安装 cmake

  • 下载安装 CMake。

    https://cmake.org/download/ Mac OS X 10.7 or later

  • 安装完成之后,使用以下指令创建/usr/local/bin下 CMake 的软链接。

1
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install

2. 源码安装 opencv

目前opencv已经出到4.0+版本了, 网上大部分教程都是2.0,3.0版本的.

不过我们选择最新的版本, 直接从github上拉取

1
2
3
4
5
6
git clone https://github.com/opencv/opencv.git
mkdir build
cd build
cmake ..
make
sudo make install
阅读全文 »

工欲善其事必先利其器, 学习 python 自然选用了 jetbrains 家族的 Pycharm.

1. pycharm formatting on save

  1. PyCharm -> Preferences -> Plugins -> Save Actions -> install and restart ide
  2. PyCharm -> Preferences -> Save Actions -> Reformat file

1

阅读全文 »

1. MySQL存储引擎

1.1 默认存储引擎的变迁

在MySQL 5.1之前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB。

InnoDB 支持事务,MyISAM 不支持事务。这是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一。

InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁。一个更新语句会锁住整张表,导致其他查询和更新都会被阻塞,因此并发访问受限。这也是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一。

阅读全文 »

javascript 的作用域

  • 在 javascript 中, 没有块级的作用域 (反人类), 所以为了避免误解, 最好不要在块作用域内声明变量
1
2
3
4
5
var i = 10;
if i > 1 {
var name = "levon";
}
console.log(name);//levon
  • 除了全局作用域, 只有函数才可以创建作用域
  • 作用域有上下级关系, 最大的目的就是隔离变量, 不同作用域下同名变量也不会冲突
1
2
3
4
5
6
7
8
9
var a = 10; //window.a = 10; 全局作用域

function fn(){
var a = 100; //fn 作用域

function bar(){
var a = 1000; //bar 作用域
}
}
阅读全文 »

全局上下文的准备工作:

全局环境下 javascript真正运行语句之前, 解释器会做一些准备工作:

  • 对变量的声明 (而变量的赋值, 是真正运行到那一行的时候才进行的.)
  • 对全局变量 this 的赋值
  • 对函数声明赋值, 对函数表达式声明

如何理解这三种情况呢?

  1. 对变量的声明:
1
2
console.log(a); // undefined
var a = 10;

准备工作是提前声明了变量 a, 和下面写法意思一样

1
2
3
var a; 
console.log(a); // undefined
a = 10;
阅读全文 »

在学习 javascript 的 this之前, 我们需要先明确一个重要知识:

在函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了。

简单记忆是,谁调用的函数,this就指向谁.

在 javascript 中, this的取值,一般分为下面几种情况。

一. 构造函数

  • new 出的对象:
1
2
3
4
5
6
7
function Foo(){
this.name = "levon";
this.age = 26;
console.log(this); // 当前构造的对象
}

var f1 = new Foo();
  • 直接运行函数(普通函数使用):
1
2
3
4
5
6
7
function Foo(){
this.name = "levon";
this.age = 26;
console.log(this); // 直接调用注意此处是 window
}

Foo();// window.Foo();
阅读全文 »

每次写快速排序,写过一次搞明白了,过一段时间写又忘记了。这次采用牛郎织女的故事,加深记忆。

  • 牛郎织女从两边往中间走见面,牛郎在左边,织女在右边. 他们选取路上最左的一个数字作为交流信号。

  • 织女先向左走,大于等于就走,小于就停。牛郎向右走,小于等于就走,大于就停,然后两人打电话交换脚下的数据。

  • 接着走,接着打电话交换数据,直到两人相遇。相遇后,把两人脚下的数据和心中的数字做交换。

  • 至此,相遇点左边都是比心中数字小,相遇点右边都是比心中数字大。

阅读全文 »

1. 云服务器带宽

1.1 购买的带宽是上行还是下行?

用户花钱购买的带宽是指云服务器上行带宽,注意这里指的上行带宽不是上传,而是从云服务器下载东西。

指云服务器上行带宽,即云服务器出网带宽,流量流出云服务器的方向。

阅读全文 »

Object 和 Function

首先在 javascript 中 我们要明确Object 和 Function两个概念:

  • 万物皆对象

  • 所有对象都是函数创建出来

仔细琢磨这两句话, 其实说的 Object 和 Function 是一个鸡生蛋还是蛋生鸡的问题. 为什么这么讲呢? 因为函数也是一个对象, 但对象又是函数创建出来的.

其实原型链的一切江湖恩怨都是围绕着Function和Object两大家族展开的.

阅读全文 »