意想不到的「重设密码」挑战 / 理想园

去年我提了一嘴,现在在做一个客服的工作。不做不知道,电脑常识的下限真的让我永远想不到。

对方的提问常常让我反思,为什么会造成这种情况。作为一个技术员,换个角度看看普通人的操作,其实对更友好的工程设计还是挺有帮助的。

这一篇,来看个似乎简单、但不少人会有奇奇怪怪的问题的业务:「重设密码」。以下提到的虚构问题,基本上都有真实案例支撑,毕竟生活比故事更精彩。 继续阅读“意想不到的「重设密码」挑战 / 理想园”

不是所有机器人都适合面对抱怨 / 随笔谈

去年 5 月出现了一条新闻,说某群众在政府微信公众号留言反映问题,结果被自动回复呛声:“你不说话没人把你当哑巴”、“我仿佛听见了一群蚊子在嗡嗡嗡”。

有关部门也没有回避问题,直接发了致歉信,也点名是第三方设置不当、“小黄鸡”自动回复导致。

致歉信一出,微博评论非常惨烈,热评都很不买账

  • “自动回复就可以这么任性”
  • “系统自动回复的内容还不一样是你设置的”
  • “不是临时工了??”
  • “谁信啊”
  • “把对人民群众的心里话设置成了自动回复……”

这些评论显然并没有意识到,这次这台机器人并不是以往只会匹配敏感词、自动回复固定句式的那类机器人了,而是会陪你聊天的那种机器人。

甚至有人开始批评,“为什么可以把这么重要的窗口交给‘第三方’来运维”。实际上类似客服外包这种事情,国内也实践得不少了,让专业的人做专业的事并没有错。然而这个情况,显然是不专业了而已。

问题来了,一个实实在在的服务部门,的确会有人联系你只想让陪聊,但更多的人还是有实实在在的问题需要解决的。这种情况下,让一个语音助理式的全能陪聊机器人来撑场子,真的能行吗继续阅读“不是所有机器人都适合面对抱怨 / 随笔谈”

Strip Assets Files in new Android Gradle

Spending 2 hours on this because 1) I don't have experience with Gradle script (its syntax looks funky) 2) DJI sxxks, and they put 50MB of large assets files to their SDK, which is camera distrotion_correction files that I never need, and 3) Android Gradle library upgrades, which deprecating mergeAssets.

Looking at some GitHub projects's Gradle script, it looks like dependsOn is very popular in defining what order the task should be executed, and it works! 继续阅读“Strip Assets Files in new Android Gradle”

猪年前夕的一点回望

预告:本文纯属个人的思绪宣泄。

时间真快呀,这可能对于所谓年轻人来说是一种新奇的感觉吧。都已经 2019 了,来一点什么十年挑战,然后就会想着怀旧,于是就发现自己已经再也不是那个「宝宝」了,自己却依然是一无所有。

这也是为什么这一年我写的东西越来越少的原因吧。除了抱歉之余,也请不要带着什么改变的期望。手头堆的事情太多了,写东西的(一些可能莫须有的)顾忌也越来越多了。

回想起来,2018 的上半年可能是我这些年来最充实的半年了,四处奔波,赚几份钱,认识了不少人,简历也莫名其妙地多了好多能写的东西。然而一切就在我夏天第二次从北京回家之后就结束了。可能是因为平衡,马上人就颓了下来。

继续阅读“猪年前夕的一点回望”

信息中心客服的 4 小时

中午 12 点,吃完午饭的我走进了学校信息中心的客服中心。正午的阳光透过落地窗从街头照进房间,显得有些慵懒。我找了个位置坐下,脱下外套,工服、工牌就位。

今天是我在客服中心上班的第三天,按计划还在培训的阶段。我跟第一次见的主管(老师)郭姐姐打了招呼,她就告诉我“今天有点难办,我去问问要怎么弄”。过了会她把她的主管带到了房间,说了下情况:下午这边只有我跟另外一位学生李斯,李斯老哥也没来几周,而我还在第一周培训。大主管问了问我培训的进度,接着问我:“你今天自己接电话感觉行吗?”我有点懵,就说“我试试吧”,两位主管接着就跟我说“有啥问题你让对方稍等,放下电话问我们谁都行,不用慌,大家都是提问题过来的”。

于是,我在我的工位坐下,登陆电话系统,打开工单界面,试了试耳机。两位主管还在谈笑风生的时候,我的第一个电话就毫无防备地打进来了。

继续阅读“信息中心客服的 4 小时”

对一列微信小程序比赛作品的想法

一堆事情没做,又厚着脸皮来写好久没有写过的博客了。今年真是神奇,参加了个小程序比赛,莫名其妙地进了地区选拔赛,虽然成绩并不理想(自费旅游),但也算是领略学习优秀大学生风采了。趁着比赛完想不到要干啥,北京的天也没黑,就斗胆来评论一下前十好了。

我来参加这个比赛的时候,想法是觉得,既然是小程序比赛,选题总该是适合小程序的,才能代表小程序的先进方向。一些 PWA 甚至网页就已经足够实现功能、又没结合微信小程序特点的作品,我总觉得蛮尴尬的。可能并不是每个人都会这么去执着平台依赖这个国内不大关注的问题的吧。答辩的时候并没想到要提小程序与 PWA 区别的思考,结果还剩了几分钟时间,后来发现一整天没人提 PWA 相关,想想还是挺遗憾。

先进一下前情提要。这轮选拔赛的前十都是有奖金的,其中前二可以晋级进入全国决赛。这个名次是现场公布的,不知道最后会不会公示。下面就按名次说好了,我也是这几天才第一次接触到这些小程序;如果没有特别说明,可以直接在微信里搜到这些小程序。 继续阅读“对一列微信小程序比赛作品的想法”

ROS catkin 和 catkin_make 在 overlay 上的区别

TL;DRW

catkin_make 先造的轮子,catkin 后造的轮子(看得到那个 shell 界面优化得也是出神入化了)。

overlay 是个啥?当你想把多个 workspace 同时使用的时候(通常是有一些底层的库被魔改的情况),就需要一层一层地 overlay,其中最底层是 /opt/ros/kinetic,然后就是一层一层的 workspace 了。

今天下午一不小心拿(MoveIt! 推荐的) catkin 做 underlay 的底层 workspace,后面一层的 catkin_make 就死活识别不到 overlay 了。最终两层 workspace 都用 catkin_make,成功。

查了下 catkin 的 issues,似乎是已经修复了 overlay 异常的问题(刚仔细看了下好像是读 underlay 有问题,还不大一样)?然而我用的 ROS Kinetic 下自带的依然有问题啊。

本科走进最后三个月,后知后觉的一点牢骚

人有一点和其他动物没差:是自私的。诸如我写下一篇东西,看起来是免费“分享经验”、“学习交流”,实际上可能只是我有些话想找人说,却不想打扰别人,最后就把这些想法变成了互联网上的十几个千字节数据,自私的是满足自己的一点表达欲、一点存在感、一种说出来的痛快。

突然发现了这一点,再加上发现大家都很忙,并不是多么关心鸡毛蒜皮的事情,自己也突然变忙了,我就好久没写博客了。然而心里总是有话想说的嘛,所以下面这些东西,我也不知道自己在写啥。 继续阅读“本科走进最后三个月,后知后觉的一点牢骚”

关于 0.5% 的刷课党,这里有五组数据

两年前博客(+ 微信订阅号)做过一篇特稿,分析了“公开渠道的教务系统 2016 年 1 月选课期间的一些日志”。写那篇文章让我直面了刷课这个事情,还意外地小小采(tiao)访(xi)了下某个同学。

两年过去,变化还是挺大的。比如,我校教务处终于把新的教务系统完整上线了。还比如,自从上个月新教务系统第一次选课开始,更多的人听说了“刷课”这个词。已经不需要抢课的我,只听说了这次选课期间有人卖课啥的。虽然实际上可能并没这么“道德沦丧”,但大家对这个行为的不齿,是多了一些。

我好奇的是,为啥 2018 年的刷课行业发展成这样子了?新的教务系统并没有可以从公开渠道获取的日志,不过从旧教务系统里看过去几年的趋势,还是可以的。于是这次我使用 Elastic Stack 处理了更大跨度的数据(灌数据进去挺折腾的,不过非常高效),从 2014 到 2017 年选课期间的本科选课操作日志中,得到了下面的一些数据。(以下数据均来自旧教务系统,下简称“教务系统”)

如果太长不想看,这是五组数据的梗概:

一. 大二到大三、2016 至今,进入刷课频道:2017 年暑假 2015 级选课期间操作次数人均 496 次,创了记录。
二. “刷课”一直是少数,但这 0.5% 的玩家越来越多:四年来用户操作次数中位数保持在 50 - 65 之间,刷课的人数成倍增加,在 2017 年寒假达到顶峰。
三. 教务系统的压力从来不小,峰值 QPS 95,大多因为“人多”:选课第一天明明不用抢也是挤爆,卡起来就是死 10 秒钟又闪现 20 秒的体验。
四. 单用户刷课平均每秒 17 次,问你怕不怕:靠刷课党们一“己”之力,还是可以把教务系统搞慢的,最疯狂的人连续一分钟操作 1060 次。
五. 午夜档的热闹从第二阶段开始,刷课党也就个位数:如 2017 年暑假第二阶段的第一场午夜档 218 人参加,其中操作频率极高的也就 5 个人。

继续阅读“关于 0.5% 的刷课党,这里有五组数据”