分类目录归档:叨逼叨

ChatGPT帮我修好了我的祖传老博客

最近重新开始写作,部分内容会在微信公众号上完成写作和发布,也有部分内容会放到我那开设了十几年的祖传博客站点上,但是最近发现我那博客发布文章总是出现问题,无法更新和发布内容。

作为一个前程序员,我们当然不会这么轻易放弃,同时作为一个不那么热爱折腾的人,我也没有立刻马上开始投入时间和精力去解决这个问题,而是先在电脑上用Markdown把文章写完,博客发不了咱就先发公众号,先把两篇文章写完发了出来。

然后过了两天,我这程序员的轴劲儿上来了,准备把这个问题给整明白。因为WordPress的提示内容不会展示任何技术细节,只是一直提示无法更新和发布内容,提示数据库无法更新。但是我自己随意写几行文字的测试博客又能发布成功,一开始还以为是数据库性能或者偶发问题,来回测试了好几次,终于发现是emoji表情符号带来的问题,只有文章或标题内容中带有Emoji表情符号,就无法成功发布,不带Emoji表情符号的内容就能正常发布。

找到问题了,就好办了,直接问ChatGPT吧,直接给ChatGPT或者Claude提问「WordPress不支持发布带有Emoji表情符号的文章,如何解决?」。很快ChatGPT和Claude就可以给出非常接近正确答案的回复,核心问题也能给指出来,例如核心原因是WordPress中数据库的配置在wp-config.php文件中针对数据库编码字符集的设置(客户端)与数据库和数据库(服务端)中的表以及表中的字段使用的编码字符集不一致,且WordPress中配置的这个编码字符集根本就不支持Emoji字符,这里我们不展开了,技术细节挺繁琐也挺无聊的。

然后ChatGPT会给出非常详细的步骤,如下:

  1. 先修改数据库的编码字符集,然后修改表的编码字符集,再是修改表中字符类型字段的编码字符集;
  2. 数据库的编码字符集修改完成后,再去修改WordPress中的配置,调整为对应的支持Emoji的字符集,也就是上面的步骤中完成的修改;
  3. 然后重启一下数据库服务,基本上就好了。

我就是照着它的步骤一步步完成了这次问题的修复,在这个案例中,AI工具们给出了很多可执行的SQL语句和代码,解决问题的核心思路AI工具给出来的也很准确,没有任何毛病。但是给出的一些代码和SQL语句在执行的过程中,会出现不少不符合预期的问题,这个时候其实还是需要我们有一定的判断力来甄别其给出的方案是否可行,同时针对在执行的过程中遇到的不同的错误,做出不同的响应,包括继续向AI工具提出问题。当然最终,靠着我这点技术积累和ChatGPT的能力,最终还是比较顺利的搞定了这个问题。

刚好这两天收到了Claude的Pro会员的订阅扣款失败的邮件,然后我就想了想,从我开始接触ChatGPT以来到现在,我都用AI工具来帮我解决了什么问题,AI工具在我这儿到底扮演了一个什么样的角色,给我的生活和工作带来了什么影响和变化。

先看看我现在日常还会使用的一些AI工具,以及我分别用它们来帮我解决什么问题。

ChatGPT/Claude以及同类型的产品

ChatGPT作为生成式AI机器人产品的当家花旦,当然是我自己日常使用的最重要的工具,我主要使用ChatGPT的主要有以下几个场景。

  • 日常知识性问题的检索,例如在读书的过程中,读到「荷兰东印度公司」,然后突然想起来英国东印度公司,直接就问ChatGPT「荷兰东印度公司和英国东印度公司之间的关系和区别是什么?」。在读到欧洲还有不少国家当前还是君主立宪制国家,直接就问「欧洲现在还有哪几个国家是君主立宪制国家,国王分别是谁?」。体验极佳,基本上都能快速获得一个自己满意的答案,整个回答的文本内容也非常简明扼要,关键信息基本上不会出现明显谬误,简直就是知识补能第一站;
  • 办公软件技巧查询,由于当前的工作中经常需要处理很多Excel数据表格,此前也没有什么这方面的技能的锻炼和积累,通常遇到一些自己想实现的数据处理,但是自己又不知道该如何实现的时候,就直接把问题组织好给到ChatGPT就好了,到目前为止它已经帮我做了好多数据表格处理的工作辅导了;
  • 偏编程技术问题咨询,由于工作中和工作外偶尔还是需要解决一些偏编程技术的问题,例如上文中提到的就是工作外偶尔遇到的情况,通常一些Python工具脚本的编写,hive SQL语句的编写以及各种运维的技巧等等,基本上都能做到不辜负我对它的期望;
  • 英文阅读和翻译,日常的一些简单的翻译直接就通过ChatGPT的对话完成了,偶尔需要的英文全文翻译,借助浏览器的插件结合OpenAI的API能力,也能非常好地帮助自己快速完成全英文文档和资讯的阅读。

以上这几个应用场景,按照使用频次从高到低排列,作为知识库的入口基本上每天都或多或少地有真实地帮到我。例如我想查长沙市岳麓区洋湖街道的邮编是多少,现在基本上就直接问豆包就好了,不用自己再打开搜索引擎输入再跳转到结果页去查看和确认了。

Dola AI

简单介绍一下,这是一个利用了AI能力的智能日历助手,我可以直接通过文本和语音的方式在Telegram中给它发送指令,让其帮我新建日程和提醒。

最近重新开始写作,部分内容会在微信公众号上完成写作和发布,也有部分内容会放到我那开设了十几年的祖传博客站点上,但是最近发现我那博客发布文章总是出现问题,无法更新和发布内容。

作为一个前程序员,我们当然不会这么轻易放弃,同时作为一个不那么热爱折腾的人,我也没有立刻马上开始投入时间和精力去解决这个问题,而是先在电脑上用Markdown把文章写完,博客发不了咱就先发公众号,先把两篇文章写完发了出来。

然后过了两天,我这程序员的轴劲儿上来了,准备把这个问题给整明白。因为WordPress的提示内容不会展示任何技术细节,只是一直提示无法更新和发布内容,提示数据库无法更新。但是我自己随意写几行文字的测试博客又能发布成功,一开始还以为是数据库性能或者偶发问题,来回测试了好几次,终于发现是emoji表情符号带来的问题,只有文章或标题内容中带有Emoji表情符号,就无法成功发布,不带Emoji表情符号的内容就能正常发布。

找到问题了,就好办了,直接问ChatGPT吧,直接给ChatGPT或者Claude提问「WordPress不支持发布带有Emoji表情符号的文章,如何解决?」。很快ChatGPT和Claude就可以给出非常接近正确答案的回复,核心问题也能给指出来,例如核心原因是WordPress中数据库的配置在wp-config.php文件中针对数据库编码字符集的设置(客户端)与数据库和数据库(服务端)中的表以及表中的字段使用的编码字符集不一致,且WordPress中配置的这个编码字符集根本就不支持Emoji字符,这里我们不展开了,技术细节挺繁琐也挺无聊的。

然后ChatGPT会给出非常详细的步骤,如下:

  1. 先修改数据库的编码字符集,然后修改表的编码字符集,再是修改表中字符类型字段的编码字符集;
  2. 数据库的编码字符集修改完成后,再去修改WordPress中的配置,调整为对应的支持Emoji的字符集,也就是上面的步骤中完成的修改;
  3. 然后重启一下数据库服务,基本上就好了。

我就是照着它的步骤一步步完成了这次问题的修复,在这个案例中,AI工具们给出了很多可执行的SQL语句和代码,解决问题的核心思路AI工具给出来的也很准确,没有任何毛病。但是给出的一些代码和SQL语句在执行的过程中,会出现不少不符合预期的问题,这个时候其实还是需要我们有一定的判断力来甄别其给出的方案是否可行,同时针对在执行的过程中遇到的不同的错误,做出不同的响应,包括继续向AI工具提出问题。当然最终,靠着我这点技术积累和ChatGPT的能力,最终还是比较顺利的搞定了这个问题。

刚好这两天收到了Claude的Pro会员的订阅扣款失败的邮件,然后我就想了想,从我开始接触ChatGPT以来到现在,我都用AI工具来帮我解决了什么问题,AI工具在我这儿到底扮演了一个什么样的角色,给我的生活和工作带来了什么影响和变化。

先看看我现在日常还会使用的一些AI工具,以及我分别用它们来帮我解决什么问题。ChatGPT/Claude以及同类型的产品

ChatGPT作为生成式AI机器人产品的当家花旦,当然是我自己日常使用的最重要的工具,我主要使用ChatGPT的主要有以下几个场景。

  • 日常知识性问题的检索,例如在读书的过程中,读到「荷兰东印度公司」,然后突然想起来英国东印度公司,直接就问ChatGPT「荷兰东印度公司和英国东印度公司之间的关系和区别是什么?」。在读到欧洲还有不少国家当前还是君主立宪制国家,直接就问「欧洲现在还有哪几个国家是君主立宪制国家,国王分别是谁?」。体验极佳,基本上都能快速获得一个自己满意的答案,整个回答的文本内容也非常简明扼要,关键信息基本上不会出现明显谬误,简直就是知识补能第一站;
  • 办公软件技巧查询,由于当前的工作中经常需要处理很多Excel数据表格,此前也没有什么这方面的技能的锻炼和积累,通常遇到一些自己想实现的数据处理,但是自己又不知道该如何实现的时候,就直接把问题组织好给到ChatGPT就好了,到目前为止它已经帮我做了好多数据表格处理的工作辅导了;
  • 偏编程技术问题咨询,由于工作中和工作外偶尔还是需要解决一些偏编程技术的问题,例如上文中提到的就是工作外偶尔遇到的情况,通常一些Python工具脚本的编写,hive SQL语句的编写以及各种运维的技巧等等,基本上都能做到不辜负我对它的期望;
  • 英文阅读和翻译,日常的一些简单的翻译直接就通过ChatGPT的对话完成了,偶尔需要的英文全文翻译,借助浏览器的插件结合OpenAI的API能力,也能非常好地帮助自己快速完成全英文文档和资讯的阅读。

以上这几个应用场景,按照使用频次从高到低排列,作为知识库的入口基本上每天都或多或少地有真实地帮到我。例如我想查长沙市岳麓区洋湖街道的邮编是多少,现在基本上就直接问豆包就好了,不用自己再打开搜索引擎输入再跳转到结果页去查看和确认了。
Dola AI简单介绍一下,这是一个利用了AI能力的智能日历助手,我可以直接通过文本和语音的方式在Telegram中给它发送指令,让其帮我新建日程和提醒。

👆上面是直接通过文本的方式,让它在下周一、周二、周三上午11点提醒我,它便会自动设定好日程提醒的时间和主题,而不需要我再去打开日历软件,一个个时间点去添加了。如果我当前连打字都不太方便或者懒得输入文本了,拿起手机通过发送语音指令也是一样可以的。

👆这是6月6日中午我在公园散步时想起来下午需要给我妈打个电话,当时便拿起手机对着它说出了指令,日程提醒便自动创建好了。

现在Dola AI不只是能通过文本和语音来智能创建日程和提醒了,还支持了添加订阅了,可以针对自己感兴趣的资讯或新闻进行订阅,目前新闻订阅可支持添加自定义主题,例如我就添加了两个主题的新闻的订阅「美股投资新闻」和「互联网科技新闻」。

以上这两个产品或者说两类产品,从我开始尝试使用的第一天到现在,一直都有在持续使用,现在回过头去看,核心原因就一个,它真的帮我解决了我的问题,是一个工作和生活中的好帮手。例如ChatGPT这种偏通用的对话式工具,基本上算是个万事通,有问题丢给它基本上都能给我一个80分的答案,大大降低了我检索信息的成本和难度​。Dola AI这个产品形态本来就是我自己的刚需,因为在去年春节过后,我自己也尝试开了一个坑,要在Telegram中做一个机器人来帮我做一模一样的事情,只是鉴于自己的执行力不够,最终只完成了简单的问答机器人,而基于AI语义分析和CalDAV能力的智能日历助手的这个产品,在我这儿仅仅是一个设想,甚至我也没有想到通过CalDAV这个开放的协议来实现各个设备上日历软件的同步和共享。Dola AI团队非常棒地把我个人非常痛点的需求给解决掉了,当我第一天打开这个产品的时候,​我就深深地被它打动了。


而那些我没有继续使用或者说用着用着就丢了的那些AI工具,我总感觉有点拿着屠龙刀不知道能去干啥的​那种别扭。


在AI工具和产品日新月异的这两年里头,我主动尝试过的AI产品确实也不少,有些是纯粹就是体验和学习,最终因为它们与我日常的工作和生活的结合度太低了,我也没有特别的问题需要它们来帮忙,例如Midjourney,我还曾经系统性地跟着YouTube上的视频学习了如何使用Midjourney来帮我生成图片​,但是因为工作和生活中实在罕有需要使用到这项技能,便慢慢地就不再怎么​使用了。还有一些便是自己习惯了已有的工作流,也甚少去想这些工作是否可以丢给AI工具来帮忙处理,等我们在新闻或者社交媒体上看到很多利用AI工具完成各种神奇的任务的案例时,​心里便会冒出一个想法「哇,原来还可以这样,我怎么就没有想到呢?」


这两天我遇到两个CASE,当时因为我正打开着ChatGPT的对话框在问GPT怎么解决我的博客站点不再支持含有Emoji字符的文章发布的问题​。当时我正在查一个数据的问题,管同事要了一段SQL代码,但是同事的SQL代码有自己的格式和风格,我个人比较喜欢一个字段起一行,当时看着那个​GPT的输入框,我就想着「我能不能让它给我把这个多行的SQL语句换成一行?」
便是下面这段SQL语句

sum(
    if(
      from_unixtime(cast(expire as bigint), 'yyyyMMdd') <= ymd
      and expire != '0',
      gift_price * gift_num,
      0
    )
  ) 

我直接把内容丢给GPT,让它给我变成单行语句,最终它的输出是这样的

sum(if(from_unixtime(cast(expire as bigint), 'yyyyMMdd') <= ymd and expire != '0', gift_price * gift_num, 0))

看,​工作完成得非常好。

另一个CASE是我在尝试将我的博客站点访问的数据库中的所有数据表格的字符字段的编码字符集修改为支持Emoji字符的编码字符集时,因为GPT帮忙生成的Python脚本未能正确工作,而我判断通过手动执行SQL语句来完成这个工作的成本也不高,所以便想着把所有的表格中的字段通过SQL语句查询出来,然后通过Excel中的函数功能来实现批量拼接SQL语句​,然后再手动执行SQL语句。而我们在服务器的命令行中,通过mysql cli工具能获得的输出都是ASCII字符样式的表格和数据。按照我一贯的程序员思维方式,我想着mysql cli工具肯定可以直接将SQL查询结果导出为csv文件的,我还真就直接问了一下ChatGPT,它也给我生成了一个语句,但是我一执行又报错了,就在我想再次向ChatGPT提问如何解决这个导出csv出错的问题的时候,我看着GPT的输入框,心想,我直接把命令行数出来的ASCII的表格结果​给它,让它试试看能不能给我转成csv文件呢?

👆这是我的提问,👇这是ChatGPT的回答

回过头再来看,我想AI工具要能成为我们趁手的工具,还是需要满足两个​条件:

  • 这个工具真的能解决我们遇到的问题,能力基本符合预期,让重复使用成为可能和习惯;
  • 作为工具使用者的我们自己的思路得打开,对于某些我们已经习惯了的工作路径或者方式,愿意重新用新的工具和思路去思考和尝试是否有新的更高效的解法​。

希望未来能看到更多更好的AI工具,能影响我们的工作和生活,让工作和生活都能轻松些许​。​PS:这篇文章的封面图片也是ChatGPT根据我的文案「我想生成一张900px x 500px的微信公众号的封面图片,图片的主题是:ChatGPT帮助一个老程序员修复了他的WordPress站点无法发布Emoji字符的问题。」生成的。

如何刻意练习写作?

这个 Blog 的域名是我在 2009 年 9 月搭建的,彼时想着终于可以一展拳脚,向那些我羡慕已久的博客主们学习,笔耕不辍地在键盘上码字,向着自己儿时成为作家的梦想进一步了(我不知道是不是很多人儿时也有成为作家的梦,我肯定是做过成为作家的梦的)。

然而事实上,这个站点建立至今已经历时 14 年 5 个多月,总共累计发布的文章 206 篇,其中有部分文章是跟编程技术相关的,有部分是跟编程技术无关的。长文主要集中在编程技术方面,短文主要是一些生活随想类的文字。

所以,到底要如何才能让自己真的成为一个写作的人呢?不持续写作是因为没有时间,还是因为没有写作的内在动力,或者说没有写作的主题和灵感呢?

今天在听播客《读库立体声》的时候,听到一位嘉宾李雨白的说法「业务的人才靠灵感,专业的人眼里只有活」,瞬间把我击倒在地。

想起了《文学的故乡》中莫言谈自己写作,贾平凹谈到自己写作,再想起村上春树的写作,再联系到池建强聊到的写作,想想莫不如是啊。

从今天起,就逮着一个话题就硬写下去,咱先不论写得咋样,先写了再说,持续练习一段时间再看看效果何如。

再吃一顿不喝酒的饭

昨天泰峰来北京了,教主下午在微信上跟我说「 今天加班不?泰峰过来」。隔了 2 个小时候,我回复到「在哪儿?XXX 吗?」。晚上,我们仨吃了一顿饭。

昨天中午前后的时间,刚好老板找我过去聊近期团队产品工作的规划,问我当下重点项目的进展,最后被一顿猛批。老板的核心观点如下:

1. 做产品不能只盯着地上,时不时地要抬头,不能一味地陷入细节优化和执行上;
2. 得逼着自己去做一些可能带来增长的事情,而不只是守着当下盘子,只是维稳干等着业务规模衰减;
3. 做产品团队的 Leader 得多向外看,了解行业了解竞品,把目标拆解给到团队伙伴们去执行,自己从执行里头抽出来,多思考,多找方向;

以上老板指出的问题基本全部命中,我照单全收,心里多少有点不是滋味,原本想着晚上可能需要理理接下来的工作计划,把重点调整一下,可能还需要跟部分同学做一下沟通。在收到消息后的 2 个小时里,实际上脑子里有过不少的想法,最终还是被「见一面少一面」这样的想法打败了自己想要继续「卷工作」的念头。

下班后背起书包打车就出发了,下班的时间路上有些堵车,大家原本约好 7 点到那儿,我 7 点下班后往吃饭的地方赶过去,吃饭的地方就约在我跟教主曾经一起创业做游戏的办公楼的底商的一家我们总去的店里,坐的座位也永远都是二楼最角落里头的那桌。等我下车上楼坐下,菜也刚点完,我加了两个小菜和我自己喝的酸梅汤。

跟老哥哥们喝酒,基本上他们也就开头说两句玩笑话「今天不来点?能喝就喝点,别喝多就行」,然而我在他们面前基本也不需要顾及任何人的面子,坦诚地说出「这酒也不好喝,对我来说喝完除了难受,啥也不是,我不喝,我喝点饮料糖水得了」,然后就打开了酸梅汤给自己倒上一杯。

席间没有了当年的笑傲江湖的豪气和干翻世界的锐气,只有三个人时不时会心的大笑。坐在老大哥常坐的的习惯的二楼最角落的位置,一直吃到饭点打烊。聊的话题跟工作基本无关,礼貌性地问候一下家中情况后,基本上就开始自由发挥了,聊的内容有最近上线的电影,看到的视频,读的书,去过的地方,发生在身边的一些小事儿。偶尔会聊起孩子,以及孩子身上发生的一些事情。从清军入关,到安史之乱,再到朝鲜近代兵变。聊到开心处,当场打开京东直接下单,给自己买点快乐的佐料。然后再绕回到游戏美术工业和文旅产品打造,没有什么特定的主题和目的。在讨论中也不求有什么结论,大家的观点和看法可以毫无保留的表达,不论对错,表达完了就好,给对方留足时间和空间,让对方充分的回应和反馈。一顿饭下来,没有什么收获,就是简单吃了一顿饭,喝了两瓶酸梅汤,大声笑了好些次。想起当年刚刚来到北京,踏入这个行业时,身上的那种使命感和舍我其谁的气势,到如今,一个小店的二楼角落里,大声说话,大声笑的三个男人,三两盘凉菜,三五个签子。饭后各回各家,挥手相约下回再见,人生兴许多复如是吧。

整顿饭吃了 5 个多小时,实际上仨人就吃了不到 300 块钱的东西,二位老哥哥也没喝多少,俩人大概也就喝了 7~8 两的样子,大家都还很清醒。挥手告别后,我做上滴滴回家,泰峰打车回酒店,教主直接步行回到办公楼隔壁小区的家中。也许今年,也许明年,也许往后很多年,时不时有机会,还是要约上这些老友,再吃一顿不喝酒的饭。

竟然被动「守夜」了

因着不言自明的原因,从上周五到昨天,间或会从公司GR同学那儿收到公司属地主管部门的某些指令和我们自行脑补的指令。

为了营造2022.12.06的追悼会沉痛的氛围,我想全中国过半数的网民,这几日打开各大互联网产品,均感受到了这股氛围,我们虽然是个不太入流的小产品,但也备不住被监管,更是想要在夹缝中求生。

昨天带着团队中的部分小伙伴,一直守到夜里12点,尚未收到任何指令,一口气松了下来,起码今天的营收还不至于受到巨大的影响,但是手机需要保持随时可接通的状态,也就是不能开静音和关机,处于随时oncall的状态。

由于平日里休息时我读会打开手机的睡眠模式,今天关闭手机的睡眠模式,把手机放到枕头底下,刚躺下没一会儿,微信响了——群里有人还在看日本🇯🇵🆚🇭🇷克罗地亚的世界杯比赛,拿起手机,把这个群设置为免打扰再放回去。没一会儿,钉钉响了——后端服务报警了,拿起手机,把这个提醒设置为免打扰再放回去(后端有专门值班的同学)。待到迷迷糊糊睡下了,凌晨2点半,Telegram响了——TON Community发了一条推送。F**K,我在我家大娃和二娃中间开始翻滚身子,一直处于半睡半醒的状态,这么迷迷糊糊熬到了老婆早起的时间5点半(老婆今天要早起出门赶车出差),基本上就没咋再入睡过了。

躺在床上没睡着的时候,用力回忆了一下,奶奶、爷爷、外公去世的时候,我在祠堂中守夜的情景,断断续续地竟也没有想起太多的细节,未曾想因着工作缘由,躺在床上,为前国家领导人「守夜」了。

附上几个截图,聊做记录吧。

评论好像也没有那么好写呢

我个人非常喜欢的播客节目《八分》和《文化有限》都有大量的文化评论相关的内容,尤其《文化有限》是一档多人对谈的以读书为主题的节目,其中会有很多关于读书的感想、分享和评论。

在我每天午休期间公园散步的路上,听着三位主播基本雷打不动地每周更新近日读过的书,我不止一次生出自己也可以试试做类似事情的念头,只是苦于自己没有志同道合的伙伴罢了。甚至偶尔会觉得自己也能做个类似的以文化消费为主题,谈谈历史、小说、游戏、电影这些大家好像都能谈上几句的内容,大不了多注点水,主要是能自得其乐。

这两天想着刻意练习一下自己写作的能力,这不刚刚读完《王能好》,刚好大概两周前听了一起波米的播客「评-《隐入尘烟》」,这两天早上晨跑的时候,心里听着别的节目,还在构思是不是可以写一篇关于「王能好」和「马老四」的文章。

然后今天上午,我就开始写了,写的时候才发现,写作的难度实际上还是很高的,虽然非虚构写作看似简单,是个人会打字,基本上都能写。但是一提笔就发现,要做到行文流畅,起码结构合理不混乱,表意清晰不胡来,实际上已经是非常困难了。

原来做评论也是需要锻炼的,也是要有大纲和结构的,不是胡诌就行,就是让你胡诌也怕诌不出来啥内容。

我争取以后每读一本好书,写一篇我自己的感想,没看一部好看的电影,写一篇自己的感想,不能光文化消费了,倒是也产出点啥啊。