在之前总结 Nemo file browser 的时候接触到了 meld,作为一个 nemo-compare 插件可以用来轻松的比较两个文件夹,两个文件,甚至多个文件。在了解之后发现 meld 其实更加强大,结合 git 使用可以非常轻松地解决 git 的合并冲突问题。
虽然大部分情况我都是用 smartGit 来解决的,smartGit 的三路合并和 meld 能够达到的效果非常相似。
安装
sudo apt install meld
使用
打开 meld 从主界面就能看到应用的分工主要分为三块
文件内容的比较
文件夹内容的比较
Read more ...
ClamAV 是开源的杀毒软件
安装
sudo apt-get install clamav
使用
更新“病毒库”
sudo freshclam
然后可以使用 scan 来扫描
clamscan OPTIONS file/folders
如果可以直接从 root 开始扫描:sudo clamscan
举例
扫描全盘,并显示文件名
clamscan -r /
扫描文件,只显示被感染的文件,并且声音提醒
clamscan -r --bell -i /
扫描全盘文件,只显示感染的文件,后台执行
clamscan -r -i
Read more ...
自从用上 mint 之后,我才发现原来 File Manager 能这么好用,Cinnamon 自带的文件管理叫做 Nemo ,至今用过 Windows,Mac,Ubuntu 还要各种发行版,但是唯有 Cinnamon 自带的这个 Nemo 的文件管理器让我用起来最舒服。至于为什么,我一一道来。
功能
双栏
Nemo 外观很简单,和大多数操作系统的 File Browser 都差不多,左边栏基本上是顶层导航栏,然后主体部分是文件浏览的功能。但是我非常喜欢的双栏设计,当时使用 Windows 的时候还需要借助 Total Commander,而 Mac
Read more ...
gevent 中最主要的是 greenlet,greenlet 是 Python 的 C 扩展,用来实现协程。
协程 [[Coroutine]],就是可以暂时中断,之后再继续执行的程序
事实上 Python 就有最基础的 Coroutine,也就是生成器 generator
协程就是一种特殊的并发机制,其调度”就是指什么时候调用什么函数”完全由程序员指定
进程是一个操作系统级别的概念,拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度。
线程拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程亦由操作系统调度(标准线程)。
Read more ...
之前一直使用的是 h5ai,平时也够用,不过 h5ai 是不能上传文件编写文件的,这算是一个问题吧,今天正好看到了 filebrowser,以前叫做 file manager。
File Browser 是一个用 Go 和 Vue 编写的基于 Web 的文件管理器。
去官网看来一眼,发现支持 docker, 所以就比较方便了。
具体 docker compose 的文件见 这里
只要配置好,几乎就是一键安装了。以后转战 filebrowser 了。
默认的用户名和密码是 admin/admin,记得登录进去第一件事情就是修改密码。
Read more ...
最近在使用 Linux 版有道的时候发现非常卡,影响正常使用,所以就发现了这个 GoldenDict。以前在 Win 下用过 lingoes 但是无奈只有 Win 版本。有的时候也真的挺有意思,闭源的软件用着不舒服,切换到开源软件之后就像打开了新天地,从搜狗切换到 Rime 也是,开源软件不仅在功能上优于这些闭源软件,自己稍微调整一下之后就会发现体验也远超有道,搜狗之类。
GoldenDict 是一个开源词典,用 QT 编写,使用 WebKit 作为渲染核心,它像 Eudict、Mdict、Lingoes 以及 BlueDict 等词典一样可以加载外挂
Read more ...
昨天升级 Ubuntu ,不知为何将网卡配置覆盖了,导致一时间无法上网,然后看了一些网络配置的文章,感觉自己需要补习一下相关知识,所以有了这篇文章。
下面就按照命令分别展开吧
ifconfig
这个命令是查看本地网络端口最常见的命令了,略
设置网卡及 IP
/etc/network/interfaces 文件中保存着本地网络网卡的相关配置
配置 DHCP 自动获取 IP
auto eth0
iface eth0 inet dhcp
假如要配置静态 IP
auto eth0 # 要设置的网卡
iface eth0
Read more ...
高级加密标准 (AES,Advanced Encryption Standard) 为最常见的对称加密算法。对称加密算法也就是加密和解密用相同的密钥。
将明文 P 使用加密密钥 K 加密成密文 C ,传输,然后在使用 AES 解密函数使用相同的密钥 K 解密,产生明文 P
设 AES 加密函数为 E,则 C = E(K, P), 其中 P 为明文,K 为密钥,C 为密文。也就是说,把明文 P 和密钥 K 作为加密函数的参数输入,则加密函数 E 会输出密文 C。
加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合
Read more ...
Alembic 是一个处理数据库更改的工具,它利用 SQLAlchemy 来实现形成迁移。因为 SQLAlchemy 只会在我们使用时根据 metadata create_all 方法来创建缺少的表 ,它不会根据我们对代码的修改而更新数据库表中的列。它也不会自动帮助我们删除表。 Alembic 提供了一种更新 / 删除表,更改列名和添加新约束的方法。因为 Alembic 使用 SQLAlchemy 执行迁移,它们可用于各种后端数据库。
安装
pip install alembic
使用
初始化,使用如下命令会创建环境到 migrations 文件
Read more ...
Android 中实现消息推送的主流方案有下面几种。
方案
原理
优点
缺点
Cloud to Device Messaging,云端推送,是 Android 系统级别的消息推送服务(Google 出品)
Push
简单的、轻量级的机制,允许服务器可以通知移动应用程序直接与服务器进行通信,以便于从服务器获取应用程序更新和用户数据
依赖于 Google 官方提供的 C2DM 服务器,需要用户手机安装 Googl
Read more ...