Python小工具之简单FTP服务器

代码见GitHub。 UI使用基于tk的PySimpleGUI,FTP服务器使用pyftpdlib,使用pyinstaller进行打包。 Win10运行参考界面

C++简单log

平常写一些简单验证程序时,需要频繁输出日志信息便于调试。为了后续验证程序中输出日志信息方便,将平时使用的日志信息抽象成了INFO和FUNC。 INFO输出单行日志信息,可以输出当前的时间(格式:%Y-%m-%d %H:%M:%S)、进程号和线程号。 FUNC利用RAII可以在生命周期(比如函数)的开始和结束分别打印日志信息,并统计执行耗时(单位微妙)

VS2019 CMake编译gtest

从GitHub下载gtest源码。 从VS2019选择和创建CMake项目。

Windows Terminal集成第三方Bash

将Git Bash和Cygwin集成到Windows Terminal中。 各参数说明参见Windows 终端中的配置文件设置。 我的配置如下。其中guid自定义,确保其唯一性和格式正确行即可;commandline修改为实际安装路径,其中我的Cygwin64配置是以zsh启动。 Git...

const in C++

C++中const可用于变量, 指针, 函数和类. 修饰变量const修饰的变量的值不能再修改, 编译器也可以对其进行数据静态类型检查. 所以用const声明的变量可以保证类型安全, 用以取代C中的宏定义. const定义的常量在C中是全局的, 在C++中则视声明位置而定.

C++类型转换

当运算符的操作数具有不同的数据类型时, C++会自动将它们按照一定的规则转换为相同的数据类型. 理解这些规则将有助于程序员防止一些细微的错误蔓延到自己的程序中. 基本数据类型隐式转换简言之, 基本数据类型的隐式转换遵循的规则是基本数据类型的等级.

C++11智能指针

智能指针是使用RAII方法对普通指针进行的封装, 所以智能指针实质是对象, 行为表现是指针. RAII, Resource Acquisition Is Initialization, 资源获取就是初始化. RAII是一种管理资源、避免泄漏的惯用法. 通常的做法是对于一个对象而言, 我们在构造函数的时候申请空间, 而在析构函数(在离开作用域时调用)的时候释放空间. 使用智能指针可以方便的管理堆内存,...

Hexo博客添加图片

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页 对于在 Hexo 博客中添加图片, 按照 Hexo文档 推荐的方法, 操作大致如下: 设置站点配置_config.yml: 将post_asset_folder:...

BASE原则

BASE:Basically Available, Soft-state, Eventually Consistent。 由 Eric Brewer 定义。 CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。 BASE是NoSQL数据库通常对可用性及一致性的弱要求原则: Basically Availble: 基本可用 Soft-state: 软状态/柔性事务。 “Soft state” 可以理解为”无连接”的, 而 “Hard...

apt-get清理软件包

apt-get autoclean 如果你的硬盘空间不大的话,可以定期运行这个程序,将已经删除了的软件包的.deb安装文件从硬盘中删除掉。如果你仍然需要硬盘空间的话,可以试试apt-get clean,这会把你已安装的软件包的安装包也删除掉,当然多数情况下这些包没什么用了,因此这是个为硬盘腾地方的好办法。 apt-get clean ...