使用新一代的Web服务器Caddy代替Nginx

Nginx算是最常用的Web服务器了,不管是作为静态服务器还是逆向代理转发,基本上每台服务器都离不开它,轻量级抗并发的特点让大家对它爱不释手。
然而长江后浪推前浪,Caddy作为新一代的Web服务器已经有了可以代替Nginx的潜质,Caddy使用golang开发,高性能,插件丰富,虽然运行于生产环境的稳定性还有待长时间验证,但是丝毫不影响尝鲜党对它的热爱,相对于Nginx,Caddy的优势:

  • 默认支持HTTPS,自动续订
  • 配置非常简单
  • 插件丰富,可拓展行强
  • 单文件应用,无需安装,开包即用

使用Golang跨平台GUI框架进行桌面应用程序开发

跨平台桌面应用程序开发框架非常多,之前提到的electron框架是属于NodeJS系列的,wxformbuilde是Python系列的,以及Java的swing/swt,等。本篇记录使用golang来进行跨平台的桌面应用程序开发。
当然这并不是重复鸡肋的轮子,相对electron、wxformbuilde、Java这类跨平台框架,golang的优势很明显:

  • 超高的执行效率
  • 超小的程序打包体积
  • 静态编译,脱离runtime 这几个优势是除了c/c++应用外其他大部分跨平台桌面应用所不能比拟的,而golang有着比c/c++更高的开发效率,所以这也是本篇的初衷。

mac win7 Linux 文件大小

Mac/Linux环境实现ssh快速免密登录

在win环境习惯了用xshell套件进行ssh登录后,再在Ubuntu和Mac环境登录远程服务器会变得很不习惯,很难找到一个和xshell对应重量级的可视化工具。
因为完全可以通过系统自带的终端工具通过ssh命令来进行登录,而且丝毫不逊色于xshell这类工具。本篇记录如何在Mac和Linux环境下配置ssh的快速免密登录。

Kotlin+DataBinding的使用以及和Vue的比较

随着移动应用前端化越来越严重,原生应用开发的比重逐渐降低,慢慢被微信小程序/ReactNative/Weex/H5+/混合应用等替代,而这些前端化的技术栈中,mvvm模式最受推崇。
google在2015年的I/O大会就推出了mvvm模式的DataBinding框架,而在实际项目中被使用的情况并不多,在前端技术快速发展的今天,mvvm模式被推向了风口浪尖,而Android的DataBinding又一次受到了关注。
在google的2017年I/O大会上,kotlin被指定为Android开发官方语言,本篇以一个小例子记录DataBinding在kotlin环境下的配置以及使用,以及和前端框架Vue的mvvm模式的比较。

mvvm示例

制作一款HSV格式的颜色选择器

常用的颜色格式分为RGB格式和HSV格式,RGB顾名思义是通过红绿蓝三色来表达一个颜色的值,而真实的数据存储格式也是选择这种模式,将三色的值通过高地位来分别保存。RGB格式虽然存储起来方便,对计算机更有好,但是对于感官来说并不友好,而HSV格式则相对于RGB更加直接。
颜色选择器的色谱大部分都会选择使用预制图片来进行实现,有些low,本篇记录如何通过单纯的绘制来实现。
鉴于gif录制对色彩的展现不友好,这里的效果图改用H5的视频播发器,隐藏掉了控制栏,循环播放:

3D环形旋转效果的实现

随着电视盒和VR设备的推广,Android应用开始越来越多的使用3D效果,比如电视墙频道轮转这样的,而这种场景并不适合去引入3D引擎这种重量级的Lib,纯算法实现可能才是最佳实践,当然比起普通的自定义View会麻烦一些。

示例图

Mac下ssh到Linux服务器自动断开无响应问题的解决

ssh到Linux服务器是很日常的操作,在Windows下使用Xshell等工具会自动发送心跳包保持ssh的正常链接,但是在Mac下如果直接使用ssh命令到Linux在长时间不操作的情况下,ssh会自动断开并且界面会卡着无响应,一段时间后才会回提示ssh已断开,非常影响操作体验,本篇记录如何通过ssh的配置来解决这个问题。

,