谢乾坤 | Kingname

给时光以生命。

我们在部署代码到线上以后,可能会需要在一些情况下给自己发报警通知。如果是公司的线上业务,一般会有公司内部的各种通知工具。

但如果是自己的个人服务,我们应该怎么推送消息呢?有些同学可能使用过叮叮或者飞书机器人,但是这些机器人要发送通知还需要拉个群,稍微有点麻烦。有些同学可能使用的是Telegram,但使用它需要梯子也不太方便。

如果你的手机是iPhone,那么你可以使用一个开源免费超级轻量级的消息推送服务:Bark.

阅读全文 »

我以前一直使用Vue来写前端。去年下半年接手了一个基于React + Next.js的项目,于是顺带学习了一下Next.js。由于Next.js的特点,这个项目的前后端是放在一起的。一开始没什么问题,看了半天文档就上手了。

上周我们需要在另一个网页项目中,调用这个项目的后端接口,于是就需要处理跨域请求的问题。但我发现按照网上的方法,跨域问题依然存在。这个问题浪费了我不少时间,好在最后终于找到了原因。记录在这里,免得大家跟我一样踩坑。

阅读全文 »

跟风来写个年终总结。

我记得在2023年元旦,我发了个语音,说我要开始搞播客。结果1年过去了,播客还是没个影子。今年不设这个目标了,免得又拖到明年。

2023年开头的前5个月,是2022年痛苦的延续。我真的太讨厌字节了。每一天都过得非常痛苦。公众号没有时间写,自己的代码也没有时间写,连学习的时间都没有。每天下班就只想躺下。连躺下都躺不安稳,飞书上面的消息一直在轰炸,动不动就开语音。开你妈个锤子的语音。急急急,急你MLGB,你连一小时都活不下去了吗?我每天在心里骂字节和某些没有边界的同事一百遍。

阅读全文 »

上周的公众号文章提到了Bright Data提供的代理服务。没想到他们的运营同学竟然找上了门,问我能不能帮他们做一个评测。

我之前使用Bright Data的代理,是因为突然有一天我的HuggingFace爬虫挂了。比较奇怪的是,这个爬虫在我电脑上始终正常运行,但一放到服务器上就请求失败。联想到HuggingFace被封了,而这个爬虫之前一直使用的国内代理供应商,那么原因就很明显了。因为我的电脑是24小时挂着梯子的,所以能够正常访问HuggineFace,但爬虫部署到服务器上面以后,他会自动使用配置好的国内代理。由于国内代理也受到GFW的影响,因此也会出问题。

阅读全文 »

使用过GNE的同学都知道,GNE虽然是通用爬虫,但只是文章类页面的通用爬虫。如果一个页面不是文章页,那么就无能为力了。

随着ChatGPT引领的大语言模型时代到来,这个问题基本上已经不是问题了。我们先来看一个效果。首先打开Linkedin,随便找一个招聘的岗位,如下图所示:

然后,我们直接使用GPT从这里提取信息:

阅读全文 »

GnePro是开源项目GNE的付费版,能够实现如下功能:

  • 输入任意文章页面的URL,返回标题/作者/正文/发布时间/图片/面包屑等一系列信息
  • 支持异步加载文章页提取
  • 支持上传自定义的HTML代码提取正文
  • 支持自动检测网页编码
  • 支持自动提取网页全部URL
  • 在8个国家13万个新闻类网站进行测试,准确率高达90%
阅读全文 »

经常关注未闻Code的同学都知道,我做了一个叫做GNE的开源项目,它能够自动提取新闻类网页的正文。效果远远好于市面上其他的开源新闻提取工具。

大家可能不知道,GNE还有一个高级版,叫做GnePro。它可以让你输入URL就自动提取新闻的正文,提取的字段比GNE多得多。并且已经在8个国家13万个网站上做过测试,识别准确率100%。

阅读全文 »

当我们在维护公司项目时,可能会遇到这样的场景:我正在开发一个新功能,突然需要修一个Bug。

这个时候,有些同学是这样做的:

1
2
3
4
5
6
7
8
git add .
git commit -m 'WIP'
git checkout -b 新的分支名

...新的代码修改完成并push以后...

git checkout 老分支
...继续开发...

更有一些经验的同学,可能会这样写:

1
2
3
4
5
git stash
git checkout -b 新的分支
...新的代码修改完成并push以后...
git checkout 老分支
git stash pop

但如果在修这个Bug的时候,又来了一个更紧急的Bug需要修怎么办?到后面很容易就把前面的代码搞忘了。

阅读全文 »

在之前的多篇文章中,我都反复告诫大家,不要滥用字典来传大量数据。因为当你的函数收到一个字典的时候,你根本不知道这个字典里面有哪些Key,你必须有一层一层往上看,找到所有尝试往字典里面添加新Key的地方,你才能知道它总共有哪些Key。

但是,在正常公司项目中,我们可能会需要维护一些历史遗留代码。代码规模大,函数调用层级非常深。并且之前的人已经使用字典来传递了大量的数据。

短时间内,我们没有办法直接把字典改成Dataclass。那么我们能做的,就是尽量避免后续的维护者往里面加入新的Key。我以前遇到过一个项目,它有一个字典,刚刚开始初始化的时候,只有5个Key。这个字典作为参数被传入了很多个函数,每个函数都会往它里面加很多个Key。到最后,这个字典里面已经有40多个Key了。

阅读全文 »

前两天的OpenAI发布会,相信很多同学看完以后都热血沸腾。我之前一直使用的是ChatGPT的免费版本,看完这个发布会以后,立刻就充值了ChatGPT Plus,来试一试这些高级功能。

这两天GPTs功能上线了,短短三天时间,全球网友创建了几千个GPT机器人。我今天也来搞一个玩玩。

使用GPTs创建机器人非常简单,不需要懂任何编程知识,甚至不需要懂Prompt工程,你只需要跟着他的向导,一步一步描述你的想法就可以了。

阅读全文 »
0%