开源免费手机投控制器使用
Scrcpy 是一个开源的、轻量级的 Android 屏幕镜像工具
支持 USB 以及 Wi-Fi 连接,它提供高帧率的流畅体验,无需 root 权限
官方仓库地址 https://github.com/Genymobile/scrcpy
要想手机能够投屏到电脑上,需要打开手机的 USB 调试配置
小米手机可以参考我的上一篇文章,软件安装的话下载压缩包解压就可以了
软件的目录结构如下,主要用到 adb 以及 scrcpy 这两个
USB 连接投屏 手机通过 USB 连接到电脑,连接后手机弹出调试的提示,表示配置正常
在 scrcpy 软件的安装路径下,运行控制台命令窗口
通过 adb devices 命令可以查看当前已经连接的设备
通过 scrcpy 命令开启手机投屏,默认会连接列表显示的第一台设备
如果设备列 …
小米手机打开开发者选项
打开 “设置”,点击 “我的设备”, 下滑点击 “全部参数与信息”
然后下滑看到 “MIUI版本”,连续点击 8 下打开 “开发者模式”
回到 “设置” 页面,往下拉打开 “更多设置”,往下拉看到 “开发者选项”
进入开发者选项后,在当前页面往下拉,在调试下打开 “USB调试” 配置项
后面还有一些和调试相关的配置项,根据实际需要打开
使用cloudflare托管域名
cloudflare 有很多功能,可以在 cf 中可以进行域名托管,证书管理,WAF 等
这里来实操一下怎么通过 cf 来托管个人域名,以及邮件和证书的配置
域名添加 登录 cf 后,在首页的右侧位置,有一个 “添加域” 按钮,点击然后输入你自己的域名
然后为自己的选择一个计划,这里选择免费的就行
添加域名后,会出现一个页面,提示 “更改您的名称服务器”
这里会出现两条 cf 的名称服务器地址,一会要在域名服务提供商中配置
这里以托管阿里云的域名为例,其他域名提供商注册的域名也是一样的
登录阿里云,选择需要修改的域名,在 “DNS修改” 页面中,将上面两条 cf 的地址添加到这里来
阿里云中的 DNS 服务器修改后,回到 cf 中来
但是修改不会马上生效,有一个生效时间,当看到绿勾的时候表示已经生效了
生效后就 …
多台PC共用同一套鼠标键盘
当环境中有多个桌面 pc 需要操作的时候,在 多台 pc 之间切换会造成很多的不方便
可以通过远程进行连接,但是有一个更好的方案是让多台机器之间共用同一套键盘鼠标
常用的解决方案 synergy 和 sharemouse,通过移动光标在不同的 pc 间切换
synergy 的社区开源版本命名为 deskflow,仓库地址 https://github.com/deskflow/deskflow
仓库右侧的 release 可以下载对应的平台版本,支持 win、mac、linux等主流平台
deskflow 运行需要选一台作为 server 节点,其他节点作为 client
client 节点启动的时候,指定前面作为 server 节点的地址
在 server 的配置中可以发现,deskflow 支持多达 15 …
发布文章使用PicGo+Gitee作为图床
csdn 写作的时候,可以使用 markdown 进行写作,但是如果多平台发布文章的话非常麻烦
尤其是对图片的处理上,现在使用 PicGo+gitee 的方式对文章的图片进行管理
gitee 配置 新建仓库 浏览器打开 gitee 页面新建一个仓库,如果没有 gitee 用户的话需要先注册一个
生成令牌 在用户的 设置 中,创建一个私人令牌,私人令牌创建的时候只会显示一次
创建好令牌后把令牌拷贝下来,后面设置 PicGo 使用
PicGo 配置 PicGo 的官方地址 https://github.com/Molunerfinn/PicGo
下载安装 PicGo 软件,还需要为其安装一个 gitee 的插件;启动 PicGo 后,在插件设置中搜索 gitee 然后点击安装
安装插件后,再到 PigGo设置 中勾 …
使用火车头采集站点内容(2)
前面已经通过配置火车头正常采集到了文章的字段以及图片,这里将采集到的内容发布到站点
3、内容发布规则 以 wordpress 站点为例,这里的内容发布需要用到用户 Cookie ,并且发布方式使用内置浏览器登录
需要保证运行火车头采集的机器能正常连接到 wordpress
Cookie 获取 浏览器请求 wordpress 后台页面,使用管理员账号登录,打开开发者工具(按 F12 )
切换到 “网络” 标签页,点击左侧的任意一个请求,将右侧中显示的 Cookie 保存下来一会用
如果网络下没有请求,那么 F5 刷新下当前页面,再将 Cookie 保存起来
locoy.php 配置 为了使得文章能够发布,还需要一个插件 locoy.php,这个 php 文件需要上传到 wordpress …
使用火车头采集站点内容(1)
火车头采集是一个很强大的采集工具,加上支持插件的开发,对于大部分网页站点的采集工作都能出色的完成
火车头插件的开发也很简单,可以参考我的另一篇文章 火车头采集插件开发
这里记录在使用采集工具的过程中一些关键操作,以便查阅
新建采集任务,为了方便管理,建议新建目录,然后选中目录,再点击 “+” 进行新建任务
新建任务后,打开一个配置窗口如下
左下角可以填写当前的任务名称,点击右下角可以将当前的配置进行保存
对于火车头工具,一个采集任务主要有三个步骤,下面按这三个步骤来进行说明
1、网址采集规则 大部分站点都是多级结构,如有一级的目录页面,目录页面下有多个文章标题,点击标题打开文章页
比如 CSDN 的博客,这个就是目录页 https://blog.csdn.net/weixin_53109623
在目录页的下面, …
MinGW的命名意义
官方提供在线安装和离线安装两种方式,离线安装包的命名规则不太常见,这里记录下
参考:https://wiki.qt.io/MinGW-64-bit
SJLJ (setjmp/longjmp):
available for 32 bit and 64 bit
not "zero-cost": even if an exception isn't thrown, it incurs a minor performance penalty (~15% in exception heavy code) but sometimes the penalty can be more significant: https://bugreports.qt.io/browse/QTBUG-29653 …
免费资源pexels的批量下载
下载思路 pexels 是一个免费的图库视频资源网站,里面有大量的可用资源,但是一个一个下载太麻烦了
这里提供一种批量下载的实现方式
打开 pexels 地址后,搜索出来自己感兴趣的资源,每个资源上面都有一个 “下载” 按钮,这里有资源的下载地址,点击就可以直接下载了
在浏览器的 console 窗口,通过脚本的方式将每一个资源的地址都提取出来,然后就可以进行批量下载
从前端的代码看,没有什么特别的标识符,class 应该都是动态生成的,因此这里通过 title=“下载” 的 a 标签来获取
实现脚本 脚本通过提取 url 地址,然后通过拼凑每一个 curl 的下载命令,然后将这些命令输出到屏幕
文件名采用 url 的后面的数字串来表示,因为我这里搜索出来的是视频资源,加上了 mp4 后 …
域名通配证书申请与安装
安装 acme 程序 安装命令:curl <https://get.acme.sh> | sh -s email=admin@abc.com
如果使用了 curl <https://get.acme.sh> | sh 安装而没有指定邮箱的话,使用下面这个命令登记邮箱
acme.sh --register-account -m admin@abc.com 安装完 acme 后,crontab会增加一条的记录,以保证后续证书过期自动更新
8 21 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null 申请 API KEY 登录域名提供商的站点, …
boost的编译和安装
下载 boost 的源码包后解压,在代码目录下有一个 bootstrap.bat 文件,双击运行生成 b2.exe 文件
在 cmd 窗口下,可以通过 b2 --help 查看一些命令以及参数,如 install 指令的 -prefix 参数等
双击 b2.exe 进行缺省编译, 缺省编译的是 minimal,也通过 b2 install 进行缺省编译安装,库以及头文件安装到 C:\\Boost 目录下
如果需要全量编译安装,需要要带上参数 --build-type=complete ,这将会生成动态库和静态库文件(部分没动态库)
如果已经全量编译过了,然后再进行安装也是需要使用 --build-type=complete ,不然也只会安装 minimal 的部分
thread库 对于 thread 库,完整的 …
火车头采集插件开发
火车头采集软件的插件支持多种语言开发,如php、c#、python,这里以 python 作为开发语言编写插件
但从官方文档来看,没有找到很详细的插件编写手册,仅有c#版本的 https://www.locoy.com/index/guide#插件说明文档.html
从网上搜索到的资料来看也没有很详细的介绍,但都是在如下的一个框架基础上编写
# -*- coding: utf-8 -*- from w3lib import html from bs4 import BeautifulSoup from scrapy.selector import Selector from urllib.parse import urljoin from urllib import parse import sys …
接入zookeeper进行主从切换
部署zookeeper服务端 下载最新版本的zookeeper执行文件 https://archive.apache.org/dist/zookeeper/zookeeper-3.7.0/
将下载的包解压到 /usr/local/apache-zookeeper-3.7.0-bin 目录下,将conf下的zoo_sample.cfg复制一份并重命名为zoo.cfg
修改配置 增加data目录,并修改zoo.cfg的数据文件目录配置项 dataDir=/usr/local/apache-zookeeper-3.7.0-bin/data
在zoo.cfg文件的最后增加配置项
server.1=10.32.5.41:2888:3888
server.2=10.32.5.81:2888:3888 …
终端ssh免密码登录
单台机器配置免密码登录 需要 A 通过 ssh 免密码登录到 B,假设 A、B 机器的账户都是 root,生成公私钥的命令为 ssh-keygen,主要参数有
-t 指示生成的密钥类型,主要的密钥类型有 dsa、ecdsa、ecdsa-sk、ed25519、ed25519-sk、rsa
-P 表示密码,-P ’’ 就表示空密码,也可以用 -N 参数,和 -P 参数是一样的意思,不用该参数可以交互输入密码
-C:额外注释,可以填写用户名/邮箱等
-b:指定密钥的长度位数,不指定的话默认 2048 bits
-f 参数指定输出的公私钥文件名,如果不指定的话默认输出在 /root/.ssh/ 目录下
在 A 机器生成公私钥对(在用户的 home 目录下下生成 .ssh 目录,.ssh …
根据动态库生成对应的lib文件
一个 dll 动态库文件,编译的时候需要链接该库文件,如果没有提供 lib 文件,得先从 dll 生成对应的 lib 文件
这里以 Trojan-Qt5-Core 工程中的 trojan-qt5-core.dll 为参考例子,原工程的处理脚本如下
dumpbin /exports trojan-qt5-core.dll > exports.txt echo LIBRARY TROJAN-QT5-core > trojan-qt5-core.def echo EXPORTS >> trojan-qt5-core.def for /f "skip=19 tokens=4" %%A in (exports.txt) do echo %%A >> …