在跟朋友Terraria联机的过程中,我2G内存的小云服务器不堪重负,于是决定用内网穿透在我的树梅派上跑游戏服务器。
其实以前在Minecraft联机的时候,我就已经有想法用内网穿透搭搭麦块服务器了。当时尝试了github上的开源工具,不过被TX疯狂发短信和邮件报警。然后大家也不玩麦块了,所以就不再折腾了。
这次趁着闲,索性自己写一个工具。
然后在这里也介绍一下内网穿透的原理,和怎样自己编写这样一个工具。
最近又时常在Linux下打包东西,所以整理一下常用格式的打包/解压命令。
后续有其他格式就继续在这片文章里更新。
去年11月开始,给自己定了每年的小目标。
一年过去了,姑且总结一下完成情况吧。
在日常开发测试中,偶尔会有这样的需求,在一个cpp文件中,定义一些函数,而这些函数会在一定条件下被自动调用。
例如,我是在刷leetcode
题的时候,遇到了超时的问题,于是乎想写几个benchmark
函数测试一下性能。可是如果以后每次测性能都要重新写一遍的话,又很麻烦。于是乎,我有了这样一个需求:
1 | // leetXX.cpp |
从一开始的Eclipse
,到MyEclipse
,最后到idea
,大致是我使用Java IDE的一个轨迹,而现在基本上是只有在使用idea
进行Java开发了。作为一个IDE,无论是界面,还是代码提示和修改,亦或是对各种框架和工具的支持,方方面面,它都带给我特别多惊喜。故而在这里总结记录分享一点在使用idea
时用到的特性和技巧。
由于工作的原因,经常会需要带着自己的笔记本到处跑。然后,作为程序员,总是渴望着更多的屏幕。比如一块屏幕用来看视频,一块用来看文档,一块用来写代码,一块用来做测试。这也是我比较喜欢Emacs
和Awesome
这种编辑器和wm的原因。不过,在实际生活中,随时带着一块屏幕出门也不太现实,所以探索一下使用ipad
或android
手机作为副屏的方式。
在这篇文章中,就大致介绍一下VirtScreen
和Deskreen
的使用和特点。
在使用libcurl
的过程中,按照教程使用string
类型进行数据接收:
1 | size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp) |
但是在测试过程中,接收图片时却总是出现问题,收到的数据远小于原始数据。
之前在做矢量地图相关内容时用到了boost
库,但是在进行矢量切片时,我发现boost::geometry::intersection
存在bug:boost::intersection produces wrong results。回想起计算机图形学一书中有提到相关内容,回去翻看,于是发现了Sutherland Hodgman
算法。
mapbox的开源切片工具也使用了Sutherland Hodgman
算法。