Jason Pan

【2024红包封皮】程序员的小浪漫

潘忠显 / 2024-01-28


码农专用红包皮,祝各位程序员新年快乐,龙马精神,越码越精神!

hongbao-bubble

↓↓↓ 专门给程序员领取方式 ↓↓↓

关注【老白码农在奋斗】=> 发消息【红包封面】=> 回复正确答案,获得红包链接

packet-for-programmer

本文介绍下 2024 年做红包、发红包的过程中,有不少有趣的细节,比如:手写+抠图的“古法”工艺、设置程序员门槛来限制用户领取等。

先说效果

今年收到公众号奖励的 1200 个封面兑换资格,共分成了 3 波放出,增加粉丝大约 160 个:

mp-reading-stat

很高兴地看到,领了封面的人中,有超过 10% 的朋友已经使用该封面发过红包。

cover-stat

古法工艺制作

接下来说说,这个红包的制作过程吧。这里戏称 “古法”,是因为单纯的手写+ MacOS自带软件处理,没有使用 Midjourney 等文生图工具,也没有用到 PhotoShop 等图像处理软件。

今年的红包皮风格跟去年的一致,还是简单地放了四个字,主要是感觉手写的字更有诚意。

2017年去日本旅游,恰逢元旦之前,邮局里可以邮寄年贺状(贺年卡),其中手写的贺词模板,用油墨印在白纸上也很有感觉。

japan-postcard

而我这个红包的创作,基本上就是在广州长隆开年会的晚上,花了4个小时完成的。

先是「龙码精神」四个字,是荧光笔,写在酒店提供的几张便笺上。 然后手机拍摄下来,直接使用了 MacOS 自带的预览KeyNote 进行创作。 (没使用 PhotoShop 的权限和经验)

多写几个点候选的字

hongbao-raw-meterial

抠掉背景

hongbao-extract-charactor

KeyNote组合各个元件

hongbao-keynote

其他细节

给红包气泡上挂上挂件&气泡底色(加了一些金星点):

hongbao-bubble-2

发红包页的独立图片:

hongbao-bubble-3

如何特供程序员

最初的两波发放,都是直接放出,被公众号系统推荐很快被领光,基本上受众比较泛泛,甚至一些老粉也没有领到。

如你所见,红包中有个【码】字,代表送给码农的祝福,因此更希望被程序员们领取使用

因此,仅剩的400个,我就开始琢磨如何能筛选程序员,精准发放。

藏起领取链接

公众号发布的文章,有 2 种方式:

分析了公众号文章的发布方式,发现分组群发的方式是可以实现隐藏链接的:只要我将分组选成我自己,那么所有的粉丝都不会收到通知,而且在主页上也看不到。

公众号出题

基于之前的《10分钟让公众号自动回复消息》一文的实现,我的公众号已经具有了消息接收和回复的能力,因此只要它能:

  1. 被用户消息「红包封面」触发,发送给用户一道题,公众号回调服务回创建一道题目
  2. 判断用户回答
    • 用户回答正确,发送给用户一个链接
    • 用户回答错误,给个提示

另外,防止恶意刷题,可以设置一个答题次数限制,比如每个用户只能答题3次。

每个用户,在请求的时候会带过来一个唯一的 ID,可以根据 ID 来为不同的用户准备不同的题目。需要将题目、答案、回答次数等状态存储到数据库中,key 是用户ID + 后缀。数据库的选择,可以是 MySQL/Redis,也可以是 Sqlite 这样的本地文件存储。

因为手头恰好有个 Redis,并且之前已经将用户对话记录保存在 Redis 当中,这里就顺便将用户状态存 Redis 了。

题目创建

我这里其实是预先生成了100道题,是存在了一个 SQLite3 的文件中。

虽然变更了 SQLite 文件之后,需要 git push,但相比起存 Redis,也有一些便利性:

operate-sqlite-in-ide

有意思的回复

真同行,抽到编程题并一次答对:

image-20240207153659563

你很想要,我也很想送,但是你取关了我就没法给你发链接了:

image-20240207153634153

一位倔强的朋友,强行回复提示语:

image-20240207153558022

跑个题 - 程序员寻找有缘人

公司于 2024-01-29 在春茧体育馆举办年会,而在前一周进行了门票抽取。如果抽到门票的同学不能参加,可以通过微信票证的方式转送给别人。

有人蹭着高压线在BBS上【转赠】,有人送给周围同事,而乐问上出现了一个清奇的送票帖子

有幸抽中晚会门票,但是过去略麻烦,所以决定无偿转赠给有缘人。转赠规则是有缘人 RTX 的 MD5 值后两位跟我一样,本人的是 a8,命中概率 1/256

有缘人可以在帖子里面留言,确认无误后我会私下联系你。期待有缘人!

程序员看完上边的帖子,应该会会心地笑一下,被小浪漫打动了一下。

这里也给非码农的读者解释一下上边的小浪漫:RTX 是企业内部的唯一ID (英文字符),MD5 的意思是将名字中的所有字母算一个结果,意思类似于, 找一个跟我名字笔画数量相同的同学

find-the-right-person

如何更有缘分:

上边所举例字中,使用名字总笔画,会有分布不均匀的问题,比如没有1画的名字,可能50画以上的也比较少,因此也很难控制百里挑一的概率。 而 MD5 的特点就是可以将所有人的 ID,均匀地分布到若干格子中, 而且可以通过筛选条件来控制概率,比如这里选后两位就是 1/256