0%

2021快结束了,看的年初定的14条大大小小的目标,完成的只有三四条,惨不忍睹。这里总结一下这一年的大大小小的事情,留一个纪念。

阅读全文 »

概述

这里以显示一个红色的窗口为例,展示Mac下运行OpenGL代码的一些配置项。这里采用c++ 和cmake来编译代码的方式,比用xcode更直观。

阅读全文 »

在重构Python代码的时候,需要统计有哪些函数和变量没有用到,搜索后发现一个简单的工具vulture,可以完成这个功能。

操作也很简单, pip 安装包:

1
pip install vulture

检测代码:

1
vulture tester.py

输出大概是这样:

1
2
3
4
tester.py:19: unused import 'time' (90% confidence)
tester.py:181: unused variable 'raw_img' (100% confidence)
tester.py:300: unused method 'run_on_video' (60% confidence)
tester.py:403: unused method 'render_results' (60% confidence)

可以看到,每一行是一个检测结果,包含文件名称,行数,检测结果以及检测的置信度,可以根据这个输出来重构代码。

参考:

  1. https://stackoverflow.com/questions/693070/how-can-you-find-unused-functions-in-python-code

问题描述

jedi-vim是vim/neovim的Python代码自动补全插件,很好用,不过最近遇到这样一个问题,用neovim 打开python文件时,会有这样的提示:

1
Error: jedi-vim failed to initialize Python: jedi#setup_python_imports: ImportError: bad magic number in 'jedi.common':

这里记录一下解决办法.

阅读全文 »

问题描述

在Mac上使用Pyrender时,出现了OpenGL无法加载的错误,具体复现情况如下:
打开Python的REPL, 输入下面的命令(前提是安装pyrender):

1
import pyrender

报下面的错:

1
2
raise ImportError("Unable to load OpenGL library", *err.args)
ImportError: ('Unable to load OpenGL library', "dlopen(OpenGL, 0x000A): tried: 'OpenGL' (no such file), '/usr/local/lib/OpenGL' (no such file), '/usr/lib/OpenGL' (no such file), '/usr/local/lib/OpenGL' (no such file), '/usr/lib/OpenGL' (no such file)", 'OpenGL', None)

这里记录一下解决的办法。

阅读全文 »

概述

2019年的时候,写了一篇博客来记录博客历史的迁移记录,这两年又经过工作变化、硬盘损坏,博客也是几经变迁。

尝试了基于Go的hugo框架,总体美观度和Hexo还是没法比,因此还是切换回了Hexo,换用了默认的landscape主题,重心放到有效的内容的记录上。评论系统还是采用valine,而在landscape下,设置valine还比Next复杂一些,我从这里 看到除了配置landscape项目,还需要在ejs文件里面设置,这里记录下。

阅读全文 »

C++ 耗时统计代码片段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <chrono>

typedef std::chrono::milliseconds ms;
using clk = std::chrono::system_clock;

void do_my_work() {
// work code here

}

int main() {
auto begin_time = clk::now();
do_my_work();
auto end_time = clk::now();

auto duration_nn = std::chrono::duration_cast<ms>(end_time - begin_time);
std::cout << "timecost: " << (double)duration_nn.count() << " ms" << std::endl;
return 0;
}

命令
shift-v: 选择一整行

*:向下搜索光标所在的词
#:向上搜索光标所在的词

w: 移动到下一个单词
b: 移动到上一个单词
F: 搜索当前行光标前的字母
<n>G: 移动到第n行行首
ctrl-e: 屏幕向下移动,效果同j

dgg: 删除文档开头到当前行的内容
dG: 删除当前行到文档末尾的内容
ggdG: 删除文档所有内容

dip: 删除当前行所在段落(到下一个空行)