Python 中的 with 语法经常被用来在管理资源的访问和清理中,常见的场景有文件的使用和关闭,锁的获取和释放等等。
with open("file.txt") as file:
data = file.read()
with 语法特别容易联想起 Java 中的 try-with-resources AutoCloseable,同样实现资源的自动释放。
基本格式
从基本使用开始了解 with,with 的结构如下:
with context_expression [as target(s)]:
content
With 工作原
Read more ...
Substratum 是一款 Android 上的主题工具,能够不用 root 来达到系统级主题修改。并且在该工具下有一群爱好者和社区开发了无数的美观且实用的主题。Substratum 开始于以前非常流行的 CyanogenMod, Cyanogen 内置了该主题引擎,并使得修改主题异常简单。但是不幸的是,Cyanogen 没有继续下去, 但是 Substratum 死灰复燃。最初的时候 Substratum 还需要 Root 来使用,但是 Android Oreo 之后就可以不依赖于 Root 了。
Installation
如果想要正式版从 Pla
Read more ...
Flask babel 是 Flask 的语言扩展,允许非常简单的方式让 Flask 支持多语言。
Installation
pip install flask-babel
安装时会安装依赖
Babel, Python 国际化
pytz 时区
speaklater 辅助工具集
Configuration
在 python 文件中要使用多语言的文字时引入
from flask_babel import gettext
比如
gettext('author')
在 html 模板文件中
<pre>{\%
Read more ...
CPU 调频模块主要分为三块:
CPUFreq 核心模块,核心模块主要是公共的 API 和逻辑
CPUFreq 驱动,处理和平台相关的逻辑,设置 CPU 频率和电压
CPUFreq governor,频率控制器,CPU 调频的策略,CPU 在什么负载,什么场景下使用多少频率
最后第三部分 governor 也是本文重点。传统的 CPU governor 选择,以 Performance 和 Powersave 举例,就是一个让 CPU 跑在最高频率,一个让 CPU 跑在最低频率,所有动作都在初始化时设置。
调频器策略
OnDeman
Read more ...
Vim 下的注释插件有很多个
tpope/vim-commentary
scrooloose/nerdcommenter
tomtom/tcomment_vim
这三个插件各有特色。
Read more ...
首先说重点,代码来自:
https://github.com/Presburger/qmc-decoder
Build
按照项目主页的方式 Build,生成 decoder 二进制可执行文件即可。
这个二进制可以实现 qmc0、qmc3、qmcflac 格式转换,生成普通未加密的 mp3, 或者 flac 文件。
Result
运行
结果
外延
C++ 实现的另外一个版本
如果熟悉 Java 也可以参考这个项目
如果熟悉 C# 那么可以看看这个项目
Read more ...
都知道 Mac 上的触摸板非常好用,简单的手势就能实现十几种操作,从单指,双指,三指,到四指,甚至五指,从轻点,按压,到滑动,到捏合,组合起来能实现非常多的操作。
Mac 下手势
通过不同的组合可以得到非常多的功能。一些比较重要的操作列在了下面。
单指
一个手指轻轻点击,可以选中目标;
双指
两个手指同时点击,鼠标右键功能;
两个手指轻点,Smart zoom,可以快速缩放;
两个手指分开或捏合,可以放大缩小图片、网页等内容;
两个手指上下拖移滑动,即可实现翻页;
两个手指旋转,可以旋转图片等对象;
两个手指从触控板右侧
Read more ...
这篇文章看开始陆陆续续记录一下用过的 Vim Plugin,虽然有些一直也在用但从没有好好整理过,正好这篇开一个计划吧。
Ack.vim 在 vim 中使用 ack 或者 ag 来搜索,通过 Quickfix 来提供所搜结果
首先放上链接
https://github.com/mileszs/ack.vim
我使用 Vundle 管理,安装更新就不展开,这里重点介绍一下该插件。这里需要注意 ack.vim 需要依赖 ack >= 2.0 及以上版本。
Installation
brew install the_silver_se
Read more ...
大概一两年前就听说了 Vivaldi 这样一款浏览器,它使用 Chromium 做内核,创始人是从 Opera 浏览器出来的,不满 Chrome 横扫浏览器市场,没有给 Opera 一点喘息的机会,很多 Opera 的特性在 Chrome 上都被摘掉了。所以他们就开始搞了这一个 Vivaldi 浏览器,我记得当时听到的第一个宣传语是,快。想来 Chrome 最初打开市场时的宣传语也是快,但是多少年过去了 Chrome 虽然自身保持非常干净,但是加上自定义的扩展,也变得越来越臃肿了,但倒是也在一个可以接受的范围内。两年前 Vivaldi 依靠这一条宣传没有
Read more ...
暴露在互联网上的服务器非常容易被恶意程序进行端口扫描,以前也整理过一篇 VPS 安全设置 的文章,但都是一些比较基础的设置,能够绕过一些简单的端口扫描,但是并不能从根本上解决端口扫描的问题。
Port knocking 通过防火墙的帮助能够实现,只有你按照特定方式请求后才开放端口,增加了一层保护。主要防止恶意攻击者通过端口扫描来对机器进行攻击。
这篇文章就通过 knockd 的使用来介绍一下 Port knocking 。
Note: 本文只演示 IPV4 下的配置。
Port knocking
Port knocking 类似于
准备工作
Read more ...