Levon's Blog

微信: L6241425

近期准备用微信机器人实现往微信群里发消息. 需要用到微信机器人.

目前的微信机器人大部分都是基于web微信协议, 因此仅能覆盖 Web 微信本身所具备的功能。例如收发消息, 加好友, 转发消息, 自动回复, 陪人聊天,消息防撤回等等.

但是web微信目前不支持抢红包和朋友圈等相关功能, 并且使用机器人存在一定概率被限制登录的可能性, 主要表现为无法登陆 Web 微信 (但不影响手机等其他平台)。

阅读全文 »

近期准备用qq机器人实现往qq群里发消息. 需要用到qq机器人.

据说在2019年前, 用qq机器人是非常之方便. 但是自从Smart QQ 协议在 2019 年 1 月 1 日停止服务后, 网上好多qq机器人项目都失效了.

目前找到了一款酷Q机器人 https://cqp.cc/, 使用并且测试成功. 最重要的一点是酷Q的Air版还是免费的.

阅读全文 »

安装opencv

1
2
pip3 install numpy
pip3 install opencv-python

在安装opencv-python出现了以下错误信息:

1
Could not fetch URL https://pypi.org/simple/opencv-python/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/opencv-python/ (Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726)'),)) - skipping

解决方案:

1
pip3 install --trusted-host pypi.org --trusted-host files.pythonhosted.org opencv-python
阅读全文 »

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;
阅读全文 »
0%