自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FinixLei的专栏 (https://github.com/FinixLei)

技术分享亦为快乐之源

  • 博客(351)
  • 资源 (10)
  • 收藏
  • 关注

原创 如何手动释放Python的内存

在上篇博客中,提到了对一个脚本进行的多次优化。当时以为已经优化得差不多了,但是当测试人员测试时,我才发现,踩到了Python的一个大坑。在上文的优化中,对每500个用户,会进行一些计算并记录结果在磁盘文件中。原本以为这么做,这些结果就在磁盘文件中了,而不会再继续占用内存;但实际上,Python的大坑就是Python不会自动清理这些内存。这是由其本身实现决定的。具体原因网上多有文章介绍,这里就不co...

2015-03-18 22:24:10 98564 10

原创 在C++中将一个char转换成一个string的10种方法

在C++中将一个char转换成一个string的10种方法

2020-12-27 20:26:39 33893 3

原创 解决错误:Couldn‘t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

在使用yum install的时候,偶尔会碰见这样的错误:Couldn’t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7这是因为在你的 /etc/yum.repos.d 目录下有关于yum repository的配置文件中列有如下的GPG key:gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7...

2018-02-11 20:18:18 27880 2

翻译 C++11多线程之std::lock_guard

翻译了cppreference上的std::lock_guard一文。

2016-03-14 22:22:51 19626

原创 用QT创建一个Windows Service以及踩到的若干坑

因为项目需要,做一个Tech Spike,看看用QT如何创建一个Windows Service,并实现触摸某硬件而弹出某应用程序的功能。一、自然的思路为实现“触摸某硬件而弹出某应用程序”,首先想到的是,这个触摸动作触发了一个特定的signal,而QObject的connect()函数就将这个signal与加载应用程序的动作连接起来,这样就实现了此功能。

2016-04-19 23:11:13 19254 20

原创 如何将Visual Studio的工程转成QT的工程

本文主要介绍了如何将一个Visual Studio的工程转换成一个QT的工程。同时也介绍了qmake,.pro文件,nmake和jom的知识。

2016-01-21 23:30:33 18982 3

原创 如何自己做Zabbix数据导出功能(上)

Zabbix是一款开源的监控工具,使用广泛。然而,它竟然不支持将监控数据导出。为此,本文尝试分析一下,应该如何去做Zabbix的数据导出功能。

2017-03-16 20:08:28 17806

原创 Python3中用什么替换commands模块的getstatusoutput()

 先翻译一段文章:https://stackoverflow.com/questions/11344557/replacement-for-getstatusoutput-in-python-3在最后的“注意”一节中,给出笔者自己的看法。 在Python 2中,经常使用commands模块来执行shell的命令,尤其是常用getstatusoutput()函数。但是在Python ...

2017-09-29 22:16:11 17199 4

原创 iSCSI协议简介

本文综合了几篇参考文献的内容,做了删减与重组,但严格来说,不算原创。笔者笔记如下:iSCSI initiator和target的核心功能都在内核中,无须人工干预;而要人工干预的大约是这么几件事: 1. 建立iSCSI Initiator到iSCSI target的session(虽也可自动发现,但还是要有些配置)2. 建立LUN,以便位于Initiator端的系统进行块设备的挂载...

2018-10-02 23:09:58 16361

原创 PXE启动原理以及与普通Linux启动的对比

关于PXE部署的详细配置的文章已经有不少了,这篇文章主要讲一下PXE启动的原理以及PXE启动和普通Linux启动的对比。

2017-07-24 11:28:36 15323

原创 COW快照(copy-on-write)和ROW快照(redirect-on-write)的区别

概述所有快照类型的共同点是,它们都是虚拟的拷贝而不是物理的拷贝。一旦被保护对象(protected entity,一般指volume,而在对象存储的场景下指的可能是container或NAS share)遭遇损坏,所有快照都将宣告无效。做快照,通常有2个目的:一是为了将来对于删除或损坏的文件能够进行恢复;二是作为副本或备份的源端(注:比如,备份快照,而不是备份原volume)。为了防止

2018-01-25 23:31:25 14042

原创 做一个微信欢乐斗地主之残局解答器!

今年过年的时候,在玩微信小程序之欢乐斗地主。发现里面还含有一个小游戏叫做“残局闯关”,如下图。这里面的题,如果不熟悉其中的套路,有个别几道还真的不好做(下文有例子)。于是,我便萌发了设计并实现一个残局解答器的想法。从过年期间就开始利用业余时间进行coding,到今天晚上,用了大约3周左右的业余时间,终于实现出了一个基本的残局解答器。目前UI也已经全部完成。可以轻松解题了!那么,如...

2018-03-13 23:57:26 13749 11

原创 C++11多线程之std::unique_lock

翻译了cppreference上关于unique_lock 的一些文章。

2020-03-18 21:54:23 13159 4

转载 ELF文件介绍

ELF文件,大名叫Executable and Linkable Format。作为一种文件,那么肯定就需要遵守一定的格式。从宏观上看,可以分成四个部分:图中的这几个概念,如果不明白的话也没关系,下面我会逐个说明的。在 Linux 系统中,一个 ELF 文件主要用来表示3 种类型的文件:1. 可执行文件2. 目标文件3. 共享文件既然可以用来表示 3 种类型的文件,那么在文件中,肯定有一个地方用来区分这 3 种情况。在我的头部内容中,就存在一个字段,用来表示...

2022-03-31 21:48:23 13057 9

原创 关闭浏览器再打开,网站是否应该自动登录以及如何实现呢?

关闭浏览器再打开,或者说重启浏览器后,网站是否应该自动登录以及如何实现呢?要回答这个问题,首先要了解session和cookie的概念。基本概念先不说了,直接说重点。Session是一种服务器端的对象,保存在服务器端。 每个session 有一个唯一的session id。 session的超时也是由服务器来控制。比如,在Django的配置中就有一项叫做SESSION_TIMEOUT的用来控制se...

2017-12-26 00:50:36 13055 3

原创 用C++11的多线程读文件

曾经写了一篇博客做一些大数据的处理,但是其中在读取一个大文件的时候,并没有采取并行处理的方式。那么,一个大文件,为了能够批量处理,现在由多个线程来同时读它,各自读取一块(所读内容互不相同)。这么做会有问题吗?答:如果只有读线程,那么没有问题。因为,不同的线程可以创建自己的文件描述符表项,再分别指向不同的文件表项,而每个文件表项里面可以有不同的当前文件偏移量,所以没有问题。而且这种情况也根本不需要...

2019-03-03 23:27:54 12275 2

原创 为Ubuntu安装Realtek的无线网卡驱动

采用rufus制作的UbuntuU盘启动盘安装好Ubuntu 18.04之后,发现没有无线网络,不过有线可以连接。这就需要安装无线网卡的驱动了。首先,要搞清楚无线网卡的型号,否则怎会知道安装什么驱动呢。网上有人建议这么干:lspci -vv | grep Network -A 10其实这样是不行的,不会有特别准确的型号信息,至少对笔者的网卡是这样。还有人建议这么干:lshw...

2019-08-10 11:04:23 11240 1

翻译 C++11多线程之条件变量

原文: http://en.cppreference.com/w/cpp/thread/condition_variablestd::condition_variable定义在头文件<condition_variable>class condition_variable; (since C++11)condition_variable类是一个同步原语,可以被用来阻...

2016-06-04 22:12:07 11239 4

原创 Python - 实现数组相减

问题描述: 有2个数组如下a = [3,3,3,4,4,4,5,6,7]b = [3,3,4,4]第1题:从数组a中删除所有在数组b中出现过的元素。对于上例来说,a删除结束应该等于 [5, 6, 7]. 第2题:实现 c = a - b , c应该等于[3, 4, 5, 6, 7]. 先看第1题: 常规的思维大致会这么写代码:for i in a: if i i...

2018-03-04 13:23:56 11118

翻译 修改Cloud image的密码的简单方法

介绍了一种修改centos的cloud image的简单方法

2017-07-31 17:15:18 10935 5

原创 让OpenCV枚举所有摄像头-附如何建立Windows下的OpenCV工程

因公司项目需要,开始学一点OpenCV的东西。本篇博客要介绍的是,如何在Windows平台上建立一个OpenCV的项目,以及如何让OpenCV枚举本机上的所有的摄像头。

2015-12-29 20:52:01 10789 2

原创 使用strip, eu-strip, objcopy等剥离与导回符号表及调试信息

1.符号表信息和调试信息符号表信息(symbols)和调试信息(debug info)是由不同段区分的。使用 readelf -S binfile 可以查看ELF文件的所有段。调试信息相关的段:# readelf -S a.out | grep debug [27] .debug_aranges PROGBITS 0000000000000000 000016d...

2020-01-29 16:11:41 10349

转载 什么是IOMMU

IOMMU简介

2017-07-14 20:58:42 10106

翻译 std的terminate函数

原文: http://en.cppreference.com/w/cpp/error/terminate本文翻译比较晦涩,可以只是大致了解下,也可以参考原文。

2016-05-29 22:55:21 9425

原创 比较Python和Perl的效率

本文通过一个Perl程序和一个Python程序对于多达212MB,170多万行的文本文件的分析,比较了Perl和Python程序在执行以及开发上的效率。

2016-01-09 21:53:40 9396 1

原创 解决git错误一则(unable to update local ref)

自Windows上更新了git版本之后,git pull 出错,关键字: “cannot lock ref”, “unable to resolve reference”, “reference broken”, “unable to update local ref”.$ git pullerror: cannot lock ref 'refs/remotes/origin/xxx/yyy/zzz': unable to resolve reference 'refs/remotes/origin/x

2020-12-17 22:43:34 8826 2

转载 Override注解的作用

如果想重写父类的方法,比如toString()方法的话,在方法前面加上@Override, 系统可以帮你检查方法的正确性: @Overridepublic String toString(){...} //这是正确的 一旦错写成这样: @Overridepublic String tostring(){...}编译器可以检测出这种写法是错误的 这样能保证你的确重写的方法正确. java

2015-09-20 20:39:13 8705

原创 如何自己做Zabbix数据导出功能(下)

Zabbix是一款开源的监控工具,使用广泛。然而,它竟然不支持将监控数据导出。为此,本文尝试分析一下,应该如何去做Zabbix的数据导出功能。

2017-03-17 00:18:30 8576

原创 git clone与git pull的时候不拉大文件

很多时候,人们需要在git仓库里存储一些巨大的动辄数百MB甚至数GB的二进制文件以帮助编译或部署用。git 通过 lfs 支持大文件存储。而这些大文件呢,往往也经常被更新。这就带来一个问题 - 开发人员并不需要这些巨大的二进制文件,而只是需要一些源代码文件即可。频繁的更新大文件,会浪费许多pull的时间。另外,开发人员有的时候只想在Windows机器上用IDE看看代码,而开发机上编译部署。开发...

2020-03-18 21:40:45 8550

原创 Python打包与发布的概念总结

总结了一下Python打包与发布几种方法以及打包文件的格式

2017-04-26 00:31:36 8496

原创 利用QProcess::finished信号(signal)来保持目标程序始终运行

QProcess有一个signal叫做finished,具体定义如下:void QProcess::finished(int exitCode, QProcess::ExitStatus exitStatus)当进程结束的时候,该signal会被发射出去。exitCode就是进程的退出码,而exitStatus就是退出状态。若在一个系统服务中,想保持另一个进程始终处于运行状态(比如某ser

2016-08-05 23:56:01 8307

原创 获得token并执行OpenStack的API

介绍如何在OpenStack上执行指定的API

2017-02-11 00:54:50 8265

原创 git如何更新fork的repository

Fork一个别人的repository,做了一些改动,想提交pull request的时候,发现原先别人的repository已经又有了一些更新了,这个时候想使得自己fork出的repository也得到这些更新,即和原repository同步,该怎么做呢?这个问题应该被问烂了,stackoverflow上也有解答,基本上是指向的GitHub上的官方文档。最主要的是这2篇:https://he

2016-05-20 20:24:22 8085 2

原创 单链表的快速排序与归并排序

本文经过2次更新,共介绍了单链表快速排序的2种方法以及单链表的归并排序

2018-07-27 22:30:44 8048 2

原创 CRUSH算法介绍

CRUSH数据分布算法的全称是:Controlled, Scalable, Decentralized Placement of Replicated Data.开源的分布式存储Ceph采用CRUSH数据分布算法以达到以下几个要求:1. 数据分布均衡2. 负载均衡3. 灵活应对集群扩容和缩容:无论是添加或删除设备,都能最小化数据迁移4. 支持大规模集群,消除因几种存储元数据而可能的...

2018-12-24 23:27:21 7712 5

原创 用gdb脚本进行自动化调试

本文首先介绍用于自动化调试的gdb脚本的基本语法和基本用法,然后给出程序实例和调试实例。在使用gdb调试程序的时候,如果想让调试自动化,该怎么办呢?比如,想关闭 confirm,关闭 pagination,打开 print pretty, 设置 system root 为当前目录,等等。如果是每次运行gdb都希望自动实现这些简单的设置,那么可以写在 ~/.gdbinit 文件中。如下:#~...

2020-05-03 23:30:37 7678 2

原创 Python获取多进程执行的返回值

Python获取多进程执行的返回值

2023-03-03 18:36:58 7424 1

原创 自我黑客马拉松 -- 从零开始创建一个基于Go语言的web service

20个小时的时间能干什么?也许浑浑噩噩就过去了,也许能看一些书、做一些工作、读几篇博客、再写个一两篇博客,等等。而黑客马拉松(HackAthon),其实是一种自我挑战--看看自己在有限的短时间内究竟能做出些什么。比如:让一个毫无某种语言经验的人用该种语言去实现4个如下的Restful API(假设此种语言为Go)。

2016-03-26 22:17:41 7235

原创 QT的signal和slot的几种常见使用场景

本文介绍了QT中的Signal和Slot使用的几种场景。

2016-03-03 23:34:17 7190 2

翻译 QSignalMapper简介

翻译 http://doc.qt.io/qt-5/qsignalmapper.html#details

2016-06-07 22:28:45 7149

Lua编程语言详细介绍与实例(PPT)

包含3个PPT: 1. How Lua works with C/C++ (36 pages + 4个示例程序) 2. Important concepts in Lua (46 pages: module and package, function and closure, metatable and metamethod, OO) 3. Basic in Lua (37 pages: 介绍Lua的基础语法)

2012-10-06

Lua5.1全三套:Lua Programming(中英文版)+中文手册

本文件包括Lua5.1的《Lua Programming》第二版的中文版、英文版以及Lua5.1的中文手册。

2012-07-15

source navigator NG-4.4 windows版

可以用来替代sourceinsight的一种代码阅读工具

2012-01-31

Lua 5.1 manual 笔记

Lua 5.1 manual 笔记,由FinixLei整理,中文版。

2011-12-27

UML教程的读书笔记

自己的UML读书笔记,以实例见长,理论上总结比较简单。

2011-02-13

精版Effective STL读书笔记

Finix的精版Effective STL读书笔记

2008-11-24

Perl24学时 详细笔记

Finix呕心沥血整理

2008-01-31

深入浅出MFC文档视图架构教程(天极网)

一个来自天极网的教程,由Finix整理

2008-01-26

设计模式笔记(精版)

Finix原创的设计模式笔记。

2008-01-24

MFC简明教程

一本简明介绍MFC的书籍。

2008-01-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除