通过 Windows
实现端口转发。本文为参考转发文章
使用Portproxy
模式下的Netsh
命令即能实现Windows
系统中的端口转发,转发命令如下:
1 | netsh interface portproxy add v4tov4 listenaddress=[localaddress] listenport=[localport] connectaddress=[destaddress] |
通过 Windows
实现端口转发。本文为参考转发文章
使用Portproxy
模式下的Netsh
命令即能实现Windows
系统中的端口转发,转发命令如下:
1 | netsh interface portproxy add v4tov4 listenaddress=[localaddress] listenport=[localport] connectaddress=[destaddress] |
Bazel - a fast, scalable, multi-language and extensible build system
在使用 bazel
许久之后,开始做一下记录,以记录一些奇奇怪怪的处理方式(?)。
使用 docker-compose 管理本地容器组,是非常方便的手段,但是最近遇到一个 bug,决定使用 docker stack /swarm 替代 docker-compose 。
命令行生成二维码可以试试
echo "二维码内容" | qrencode -o - -t UTF8
事情是这样的,在 docker-compose.yaml
内定义了 network
.aliases
之后,在测试的时候,其他容器能够正常通过 aliases
对其进行访问,但是,到了实际部署的时候,很容易失败,例如重启之后,或者某个容器意外或者手动重启之后,都有可能导致该情况,导致很湿郁闷。
遂,在查找资料之后,决定替换掉 docker-compose
。
Ps:
docker-compose
的配置depends_on
只会控制控制启动顺序,并不会等待所需容器启动成功之后再启动下一 容器
简单来说,启动容器数据库
之后会马上启动容器应用
,并不在乎应用
容器需要数据库
容器才能正常运行,此时可能会造成应用
容器无法找到数据库而意外退出。
承接自 kHttpd 项目。
由于 kHttpd
项目使用了 libevent
开源库,其中某些特性导致使用上面不太方面(仅仅指的是我个人而言),所以重新开发了本项目。
http server
实现, http server
服务端功能,使用线程池为每个连接进行处理,所以每个请求都可以阻塞(但是并不建议,除非某种特定的场景,例如进行http代理服务,必须等到对方回应,不使用 libevent
其中一个原因)。
WebSocket server
实现,当前项目实现了WebSocket server
端代码,可以使用 c/c++ 愉快的开发WebSocket
项目,同时WebSocket
服务端也支持http server
,也就是同一个端口同时使用WebSocket server
以及 http server
,使得更方便一些。使用WebSocket server
的情况下,请根据实际情况,加大线程数量以及监听数量,否则可能造成后续连接被阻塞。
CGI
功能实现,目前实现 CGI
调用 php
,可以使用php
作为动态脚本进行开发,不过现在还未实现 php
的POST
模式,即还未将 php
body
数据传入给CGI
。
最近在使用 bazel
,尝试使用交叉编译,在这做个记录
配置的地方有几个:
.bazelrc
文件配置,用于激活 config
配置toolchain
目录,并创建BUILD
文件.bzl
文件本项目是用于模拟自动注入,通过添加注解@Autowired
,方便在安卓下能够更好的自动注入自动添加对象,不需要自己给每一个类进行Instance
维护。
最近弄了个Android
的模拟自动注入的库,在给别人用的时候,需要发送 jar
或者 aar
给对方,这就导致我可能需要保留一份,否则每次都需要重新编译生成。为了 偷懒
增加效率,在查询资料之后,将其发布到了github packages
。
准备工作:需要github
账号(废话),生成GitHub token
需要有写权限(如果只是使用不需要,如果需要推送则需要),将账号(GITHUB_USER
)
和token
(GITHUB_PERSONAL_ACCESS_TOKEN
)配置到用户目录下~/.gradle/gradle.properties
。
注意事项:
如果发布返回4**系列错误,原因可能是这几个:
GroupPageId
或者ArtificatId
使用了大写,需要改为小写。- 当前
GroupPageId
或者ArtificatId
已经在使用了!!!,需要修改,或者把在使用的删掉。。。。- 账号密码(
Token
)错误。
在某些情况下,我们需要用一个已知的物体,在一个场景内进行匹配,比如有一张身份证,然后想要在桌子上找到他的位置。比如以下两张图片:
身份证图片:
桌子图片:
(什么?没有桌子?哦,不要在意这些细节问题,嗯。)
如果想要从其中桌子图片找到身份证图片的话,我们可以使用 OpenCV 的 ORB特征检测器(SIFT和SURF已获得专利,如果要在实际应用中使用它,则需要支付许可费,而 ORB 速度和性能也不差)。
在需要带着笔记本出门的情况下,相对于如今动不动就 15寸+
的笔记本电脑,我更喜欢携带一些小尺寸的电脑,毕竟,每天上下班背电脑是真的重。