Hugo 博客折腾记

五一期间折腾了一下服务器的 Docker 化,踩了好多的坑,写文记录下来。 别小看这篇文章,我已经折腾两天了 起因 本来想搞个第二博客写点非技术性的东西,经过一

10月乱想

不知不觉十月份就要结束了,经济形势越来越差,很多公司都在裁员过冬。 很不幸的是,我也被裁了。 其实一切都是可以预料到的,从去年年底福利缩水,聚餐

GPD MicroPC 使用感受

前言

四月还是五月的一天,无聊的我在地铁上刷今日头条,突然看到一个文章,说 GPD 又出新玩具了(准确的说是生产力工具)。一看价格也不贵,京东众筹 1999。于是买了一台,算是了却心愿。

说起来我对袖珍电脑有兴趣不是一两天了,一个是大学上课带电脑偷偷玩东西,电脑巨大无比不好藏,而且真的很重。大学用的昭阳 K29,虽然是台 12 寸的笔记本,但是由于巨大的 9 芯电池, 重量不输一般的 15 寸笔记本,每天上课十分健身。所以一直以来都想要小型化的电脑。

上班后,在北京的公司里接了一个做嵌入式设备的项目,然后做完了需要出现场调试设备。那个设备本质上是个工控机,但是没有屏幕。需要用串口线连进去 tty 控制,所以大笔记本也是麻烦。 那个时候就看到了 GPD Pocket ,没记错的话 3300,咬着牙买的。那个时候每个月到手也就6k,为了这个分期+吃土三个月。体验嘛,真的很方便,现场设备很小挂在墙上, 笔记本的话需要拖着很难搞。而这种便携设备只需要放在盒子里,连好线敲就是了。

那个嵌入式项目结束后,pocket 就一直在吃灰。究其原因,铝合金外壳,漂亮,但是烫手,ATOM 处理器真的很热。而且性能对于电脑软件真的稀烂,幸好我只用 XShell。Chrome总会无端崩溃, 估计也是性能的锅。而且,只有一个标准尺寸 USB 口,接了鼠标就没法弄U盘,为了 pocket 还买了个宜丽客马克鼠,就为了不占住 USB 口。(顺带一提,我的马克鼠也在吃灰)

OhMyPushBot ———— Telegram 推送 Bot

前几天做的小玩具

OhMyPushBot

Telegram 是个有趣的聊天工具,最好玩的就是它十分开放 Bot 系统。相比于微信公众号这种层层审核还一堆限制,或者 QQ、微信 机器人这种强行扒官方协议的灰色接口, Telegram 提供的 API 非常简单。你可以用 Bot 管理 Channel,制作好玩的 Bot,这一切只需要和 BotFather 聊聊天,就可以设置并创建一个Bot,完全不需要等待审核。

制作这个 Bot,最大的用处就是方便一些自动化脚本通知事件结束。一般的场景下,自动化脚本要发送通知,多数使用发送邮件的方案,但是发送邮件需要使用专用的工具。 而且一般的邮件需要自己检查邮件情况,早些年有过黑莓的PushMail服务,几百元一个月的服务费也不是一般人玩得起的。现在好了,Telegram 作为一个免费 IM 工具, 完善的客户端支持(Linux、Windows上都有,各大手机平台也都有),比较实时的推送速度,简直是事件通知最佳的选择。

几种报表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 ,它决定了时间分组的粒度。