在做微信小程序的订阅消息功能,使用以下代码调起客户端订阅消息界面报错:

requestSubscribeMessage:fail can only be invoked by user TAP gesture.

wx.requestSubscribeMessage({
    tmplIds: resp.data.tmplIds,
    success(res) {
      console.info('订阅消息模板成功', res)
    },
    fail(res) {
      console.info('订阅消息模板失败', res)
    }
  })

错误原因是从 2.8.2 版本开始,用户发生点击行为或者发起支付回调后,才可以调起订阅消息界面。

- 阅读剩余部分 -

本文首发于 微信公众号 CroWall,这里同步一下。

PS: 本文目标读者是对编程感兴趣的用户或者是程序员,小白用户可以忽略。

昨天夜里尝试了一下 Ollama 本地部署大模型,效果不错,参见《Ollama 初体验,本地部署大模型利器,小白也能在 M2 芯片的 Mac 上分分钟跑起来》这篇文章。

今天上午一到公司,就迫不及待尝试了下阿里的 qwen2.5-coder:7b 模型的代码补全效果。

PS 视频参见公众号文章。

先说结论,代码补全在我的 M2 MacBook Air 上可以用,但资源占用太高,导致我的网易云音乐播放着的音乐都卡顿了,所以目前来看并不好用。

一方面不能一边写代码一边听音乐了,另一方面如果是坐在外面(比如咖啡馆)写代码没插电源,估计个把小时就能把电池用完了。

- 阅读剩余部分 -

本文发布于 微信公众号 CroWall,这里同步一下。

2024-12-13T18:35:48.png

Ollama 是一个开源的大型语言模型(LLM)服务工具,旨在简化在本地运行大语言模型的过程,降低使用大语言模型的门槛。

有了 Ollama,即使是小白用户,也能分分钟在自己电脑上跑一个大模型玩玩。

- 阅读剩余部分 -

本文发布于 微信公众号 CroWall,这里同步一下。

有网友在 Reddit 上分享了一张 GitHub 截图,内容显示一位ID为 OXY2DEV 的开发者用手机写了 24461 行代码:

2024-12-13T18:30:04.png

这个项目叫 markview.nvim,是一款使用 Lua 语言开发的 Neovim 插件,用于渲染 Markdown,目前有 337 Commits,1.9k Star。

- 阅读剩余部分 -

部署一个新项目,composer install 的时候报错:

PHP Fatal error:  Uncaught Error: Class "Normalizer" not found in /usr/share/php/Symfony/Component/String/AbstractUnicodeString.php:31

这个问题是因为 Normalizer 类没有被找到,这个类是 Symfony 组件的一部分,并且依赖于PHP的国际化扩展 php-intl。

需要手动安装一下。

我的服务器是 ubunut, php 版本是 8.3,直接使用 apt 安装:

sudo apt install php8.3-intl

也可以考虑使用 pecl 安装:

pecl install intl

检查扩展是否已生效:

php -m | grep intl

重新 composer install,问题解决。

有个需求是在小程序页面展示二维码。

于是使用 canvas 实现了一下,发现有个bug,真机上看的时候,滑动页面,canvas 会抖动,在安卓上更是乱跑,没法用。

使用服务端生成二维码会有点影响服务器性能,并且消耗带宽。

不如考虑将 canvas 转成 base64 图片后展示。

下面是实现步骤:

- 阅读剩余部分 -

刚用 AI 写了个处理 YAML 的小工具,因为是 php 写的,直接用了 yaml 扩展。

一运行发现我本地的 php8.3 还没安装 yaml 扩展,虽然可以改成使用第三方包,但觉得还是安装一下试试。

执行 pecl install yaml,提示找不到 libyaml 包。

checking for yaml headers... not found
configure: error: Please install libyaml
ERROR: `/private/tmp/pear/temp/yaml/configure --with-php-config=/opt/homebrew/opt/php/bin/php-config --with-yaml' failed

- 阅读剩余部分 -