【2024红包封皮】程序员的小浪漫
潘忠显 / 2024-01-28
码农专用红包皮,祝各位程序员新年快乐,龙马精神,越码越精神!
↓↓↓ 专门给程序员领取方式 ↓↓↓
关注【老白码农在奋斗】=> 发消息【红包封面】=> 回复正确答案,获得红包链接:
本文介绍下 2024 年做红包、发红包的过程中,有不少有趣的细节,比如:手写+抠图的“古法”工艺、设置程序员门槛来限制用户领取等。
先说效果
今年收到公众号奖励的 1200 个封面兑换资格,共分成了 3 波放出,增加粉丝大约 160 个:
- 周日,直接放出 100 个
- 周一,直接放出 700 个
- 周四,直接放出 50 个,程序员门槛红包 350 个
很高兴地看到,领了封面的人中,有超过 10% 的朋友已经使用该封面发过红包。
古法工艺制作
接下来说说,这个红包的制作过程吧。这里戏称 “古法”,是因为单纯的手写+ MacOS自带软件处理,没有使用 Midjourney 等文生图工具,也没有用到 PhotoShop 等图像处理软件。
今年的红包皮风格跟去年的一致,还是简单地放了四个字,主要是感觉手写的字更有诚意。
2017年去日本旅游,恰逢元旦之前,邮局里可以邮寄年贺状(贺年卡),其中手写的贺词模板,用油墨印在白纸上也很有感觉。
而我这个红包的创作,基本上就是在广州长隆开年会的晚上,花了4个小时完成的。
先是「龙码精神」四个字,是荧光笔,写在酒店提供的几张便笺上。 然后手机拍摄下来,直接使用了 MacOS 自带的预览和 KeyNote 进行创作。 (没使用 PhotoShop 的权限和经验)
多写几个点候选的字
抠掉背景
KeyNote组合各个元件
其他细节
给红包气泡上挂上挂件&气泡底色(加了一些金星点):
发红包页的独立图片:
如何特供程序员
最初的两波发放,都是直接放出,被公众号系统推荐很快被领光,基本上受众比较泛泛,甚至一些老粉也没有领到。
如你所见,红包中有个【码】字,代表送给码农的祝福,因此更希望被程序员们领取使用。
因此,仅剩的400个,我就开始琢磨如何能筛选程序员,精准发放。
藏起领取链接
公众号发布的文章,有 2 种方式:
- 发布:用户可以在公众号主页中看到,但是收不到推送消息,每天没有次数限制
- 群发:用户可以收到推送消息,每天仅有1次群发机会。而群发又分为两种:
- 分组群发:只有指定标签的人可以收到,其他人收不到通知,并且不能在主页看到
- 全部群发:所有人都可以收到,并且会在主页展示
分析了公众号文章的发布方式,发现分组群发的方式是可以实现隐藏链接的:只要我将分组选成我自己,那么所有的粉丝都不会收到通知,而且在主页上也看不到。
公众号出题
基于之前的《10分钟让公众号自动回复消息》一文的实现,我的公众号已经具有了消息接收和回复的能力,因此只要它能:
- 被用户消息「红包封面」触发,发送给用户一道题,公众号回调服务回创建一道题目
- 判断用户回答
- 用户回答正确,发送给用户一个链接
- 用户回答错误,给个提示
另外,防止恶意刷题,可以设置一个答题次数限制,比如每个用户只能答题3次。
每个用户,在请求的时候会带过来一个唯一的 ID,可以根据 ID 来为不同的用户准备不同的题目。需要将题目、答案、回答次数等状态存储到数据库中,key 是用户ID + 后缀。数据库的选择,可以是 MySQL/Redis,也可以是 Sqlite 这样的本地文件存储。
因为手头恰好有个 Redis,并且之前已经将用户对话记录保存在 Redis 当中,这里就顺便将用户状态存 Redis 了。
题目创建
我这里其实是预先生成了100道题,是存在了一个 SQLite3 的文件中。
虽然变更了 SQLite 文件之后,需要 git push,但相比起存 Redis,也有一些便利性:
- 易于维护,不需要考虑过期,结构化存储
- 可以直接在 IDE 中修改多行的内容(用Redis通过腾讯云的页面也可以)
有意思的回复
真同行,抽到编程题并一次答对:
你很想要,我也很想送,但是你取关了我就没法给你发链接了:
一位倔强的朋友,强行回复提示语:
跑个题 - 程序员寻找有缘人
公司于 2024-01-29 在春茧体育馆举办年会,而在前一周进行了门票抽取。如果抽到门票的同学不能参加,可以通过微信票证的方式转送给别人。
有人蹭着高压线在BBS上【转赠】,有人送给周围同事,而乐问上出现了一个清奇的送票帖子:
有幸抽中晚会门票,但是过去略麻烦,所以决定无偿转赠给有缘人。转赠规则是有缘人 RTX 的 MD5 值后两位跟我一样,本人的是
a8
,命中概率1/256
。有缘人可以在帖子里面留言,确认无误后我会私下联系你。期待有缘人!
程序员看完上边的帖子,应该会会心地笑一下,被小浪漫打动了一下。
这里也给非码农的读者解释一下上边的小浪漫:RTX 是企业内部的唯一ID (英文字符),MD5 的意思是将名字中的所有字母算一个结果,意思类似于, 找一个跟我名字笔画数量相同的同学。
如何更有缘分:
- 拿更多的因素来匹配,比如用名字笔画总数比用同姓来找到的,听上去更有缘
- 用小概率来匹配,比如万里挑一比百里挑一,听上去更有缘
上边所举例字中,使用名字总笔画,会有分布不均匀的问题,比如没有1画的名字,可能50画以上的也比较少,因此也很难控制百里挑一的概率。
而 MD5 的特点就是可以将所有人的 ID,均匀地分布到若干格子中,
而且可以通过筛选条件来控制概率,比如这里选后两位就是 1/256
。