Hugo 博客折腾记

五一期间折腾了一下服务器的 Docker 化,踩了好多的坑,写文记录下来。 别小看这篇文章,我已经折腾两天了 起因 本来想搞个第二博客写点非技术性的东西,经过一系列纠结,选定了 WordPress + Docker-Compose 的部署方案,本来教程都快写完了,但是 WordPress 死活拉不起来,昨天整整调试了一天,最后放弃。 ...

2019-11-06 · 2 分钟 · zjyl1994

10月乱想

不知不觉十月份就要结束了,经济形势越来越差,很多公司都在裁员过冬。 很不幸的是,我也被裁了。 其实一切都是可以预料到的,从去年年底福利缩水,聚餐减少,到今年一次团建没有,外加老板各种电话出去要债,技术部门停止招新。 不知道他们有没有,我反正做好了被裁员的准备。全组在 Java 背景的组长领导下集体转向 SpringBoot 做困兽挣扎,我这个写 Go 的留下来一点用处没有。 ...

2019-10-25 · 1 分钟 · zjyl1994

GPD MicroPC 使用感受

前言 四月还是五月的一天,无聊的我在地铁上刷今日头条,突然看到一个文章,说 GPD 又出新玩具了(准确的说是生产力工具)。一看价格也不贵,京东众筹 1999。于是买了一台,算是了却心愿。 说起来我对袖珍电脑有兴趣不是一两天了,一个是大学上课带电脑偷偷玩东西,电脑巨大无比不好藏,而且真的很重。大学用的昭阳 K29,虽然是台 12 寸的笔记本,但是由于巨大的 9 芯电池, 重量不输一般的 15 寸笔记本,每天上课十分健身。所以一直以来都想要小型化的电脑。 上班后,在北京的公司里接了一个做嵌入式设备的项目,然后做完了需要出现场调试设备。那个设备本质上是个工控机,但是没有屏幕。需要用串口线连进去 tty 控制,所以大笔记本也是麻烦。 那个时候就看到了 GPD Pocket ,没记错的话 3300,咬着牙买的。那个时候每个月到手也就6k,为了这个分期+吃土三个月。体验嘛,真的很方便,现场设备很小挂在墙上, 笔记本的话需要拖着很难搞。而这种便携设备只需要放在盒子里,连好线敲就是了。 那个嵌入式项目结束后,pocket 就一直在吃灰。究其原因,铝合金外壳,漂亮,但是烫手,ATOM 处理器真的很热。而且性能对于电脑软件真的稀烂,幸好我只用 XShell。Chrome总会无端崩溃, 估计也是性能的锅。而且,只有一个标准尺寸 USB 口,接了鼠标就没法弄U盘,为了 pocket 还买了个宜丽客马克鼠,就为了不占住 USB 口。(顺带一提,我的马克鼠也在吃灰) ...

2019-08-27 · 6 分钟 · zjyl1994

OhMyPushBot ———— Telegram 推送 Bot

前几天做的小玩具 OhMyPushBot Telegram 是个有趣的聊天工具,最好玩的就是它十分开放 Bot 系统。相比于微信公众号这种层层审核还一堆限制,或者 QQ、微信 机器人这种强行扒官方协议的灰色接口, Telegram 提供的 API 非常简单。你可以用 Bot 管理 Channel,制作好玩的 Bot,这一切只需要和 BotFather 聊聊天,就可以设置并创建一个Bot,完全不需要等待审核。 制作这个 Bot,最大的用处就是方便一些自动化脚本通知事件结束。一般的场景下,自动化脚本要发送通知,多数使用发送邮件的方案,但是发送邮件需要使用专用的工具。 而且一般的邮件需要自己检查邮件情况,早些年有过黑莓的PushMail服务,几百元一个月的服务费也不是一般人玩得起的。现在好了,Telegram 作为一个免费 IM 工具, 完善的客户端支持(Linux、Windows上都有,各大手机平台也都有),比较实时的推送速度,简直是事件通知最佳的选择。 ...

2019-07-06 · 3 分钟 · zjyl1994

几种报表SQL常用的时间分组写法

写了小一个月报表相关的SQL,把最容易忘的记下来 最近在公司的任务多数是写各种报表,SQL最长的格式化完了有30行,各种 JOIN 和 UNION ALL 拼 N 张表里的数据。其中最常用到的就是按照时间分组。 假设有如下表 员工名(VARCHAR) 交易金额(INT) 时间(DATETIME) 张三 66 2017-06-23 19:34:00 张三 166 2017-06-23 19:36:00 张三 566 2017-06-23 20:34:00 张三 934 2017-06-24 21:34:00 李四 661 2017-07-01 10:36:00 李四 83 2017-06-25 19:34:00 李四 23 2017-06-26 19:34:00 如果想查某个时间段里每个人的总交易金额报表,大概的 SQL 写完应该是这样的 SELECT `staff_name`,SUM(`money`),(DATE_FORMAT(`time`, '%Y-%m-%d')) AS date_char FROM table_name WHERE `time` >= "开始时间" AND `time` <= "结束时间" GROUP BY staff_name,date_char 其中最重要的部分就是 date_char ,它决定了时间分组的粒度。 ...

2019-06-22 · 2 分钟 · zjyl1994