木木的木头

一只爱折腾的小程序猿

解决MAC操作系统所有应用报错“您无法打开应用程序'XXXX',因为它可能已损坏或不完整”

MAC系统错误

现象 我也不知道什么操作导致的,结果就是系统所有应用图标都变成一个问号,点击打开都提示“您无法打开应用程序’app name’,因为它可能已损坏或不完整”。然后注销账户,使用访客账户登录,发现一切正常。 解决过程 STEP 1 首先我怀疑是我账户的环境变量导致的,然后我用访客账户登录,进入命令行,切到root账户,清空我账户的环境变量,重启,结果没什么卵用。 STEP 2 我想了...

Golang跨平台编译

Golang

Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。 Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main...

自制按键精灵

Reboot

项目地址(已经闭源) 由来 之前想给手游写一套很牛逼的自动化控制脚本,能够实现自动领任务,自动寻路,找怪,打怪。。。以前一直用按键精灵写简单的游戏脚本,但是按键精灵底层不够稳定,经常死掉无响应,而且按键精灵网络通信基本等于残废。于是我决定自己从轮子开始开发。 大致架构 首先,领任务,找怪。。。这些肯定得用上文字识别,在寻找很久后,最终用了cnocr 这个项目基于MXNet网络训练...

深入探究按键精灵(Android)的实现原理

逆向工程

深入探究按键精灵(Android)的实现原理 起因:本来想用按键精灵写点挂机脚本,但广告过于恶心,于是就想自己写一个模拟人工操作的app,但是写的时候发现各种权限问题,于是便好奇想探究一下按键精灵是如何做到Root后后台截屏并模拟手动点击的 Step 1 首先是在网上查了按键精灵的相关讨论,发现挺多人其实都在研究按键精灵的实现,但是大家都是从结果讨论的,基本上想办法做到能够模拟...

HTTP Codes

htto code

状态码 说明 100 客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。 101 服务器...

大数据去重之布隆过滤器

布隆过滤器

什么是布隆过滤器 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。 相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。 实现原理 HashMap 的问题 讲述布隆过滤器...

离不开的微服务架构,脱不开的RPC细节

微服务

服务化有什么好处? 服务化的一个好处就是,不限定服务的提供方使用什么技术选型,能够实现大公司跨团队的技术解耦,如下图所示: 服务A:欧洲团队维护,技术背景是Java 服务B:美洲团队维护,用C++实现 服务C:中国团队维护,技术栈是go 服务的上游调用方,按照接口、协议即可完成对远端服务的调用。 但实际上,大部分互联网公司,研发团队规模有限,大都使用同一套技术体系来实现服务:...

使用Docker搭建nginx&php环境

Docker

引言 本来在Linux下使用apt或者yum搭建环境非常快,但是在分布式架构下使用docker部署更方便各个服务的管理。 安装php-fpm #拉取镜像 docker pull bitnami/php-fpm #创建实例 docker run \ -d \ -v /data/wwwroot:/usr/share/nginx/html \ --name m_phpfpm...

一份ThinkPHP的Nginx配置

TP的Nginx配置

server { listen 80; server_name localhost; location / { root /usr/share/nginx/html/public; index index.php index.html index.htm; if (!-e $request_file...

crontab无日志问题

crontab

crontab无日志问题 在Ubuntu中,crontab默认是不记录日志的。很多时候遇到crontab不执行,或者执行出错根本找不到原因。网上各种博客都说看日志。卧槽,哪有日志呀,根本没有好不。 打开crontab日志 sudo vim /etc/rsyslog.d/50-default.conf #将cron前面的注释符去掉 cron.* /var...