最近在重构Notion Converter插件的整体UI和功能,其中有个重构场景是当点击插件图标时,根据所在页面不同,行为也有所区别。如果在notion页面点击,弹出插件主题。如果在其他页面点击,弹出popup。

根据chrome插件文档说明,如果在manifest.json里配置了default_popup,那么popup点击事件就不会发送了。于是思路便是不设置default_popup ,同时监听插件点击事件,获取当前tab的url,如果是在notion页面,发送消息通知content_script.js

阅读全文 »

最近在做一个编辑器项目,因为打算做跨平台应用,于是技术方案使用了electron,同时希望用React做渲染层,于是使用了https://github.com/electron-react-boilerplate/electron-react-boilerplate作为脚手架。在开发过程中遇到一些需要调用Node.js api的场景,比如读写文件,与子进程交互。

一开始尝试直接在React层写fs.readdir ,发现会报错需要webpack5的polyfill。于是尝试搜索electron nodejs webpack polyfill,发现出来的结果都需要很复杂的配置,于是我尝试在脚手架仓库issue里搜索相关问题,还真找到一个相近的讨论,具体可以点这里查看,总结如下:

阅读全文 »

最近接到一个需求,客户想要用vaadin(一个用Java构建web的框架)构建一个页面,然后接入picovoice,客户想要一个demo,能支持在网页上语音唤醒,音频识别,意图分析。

阅读全文 »

最近安装了最新版本的google chrome浏览器后,运行后发现设置里的proxy选项没有了,于是就导致无法登录google账号,且无法科学上网。经过搜索后发现,在Arch Linux | Manjaro下,想要设置google chrome的代理,需要通过/opt/google/chrome/chrome --proxy-server="[http://127.0.0.1:7890](http://127.0.0.1:7890/)" 启动后,才能正常科学上网。MacOS下的chrome目前没有这个问题。

设置

背景

目前我个人的博客是托管在Github Pages下,用的也是Github提供的免费域名,但每个程序员都有个梦想,就是有一个属于自己的博客。
于是就决定趁着这段时间不忙,把Github Pages上的博客迁移到自己的服务器上,同时把这个过程记录下来,也能帮助到想要拥有自己博客的人。

阅读全文 »

背景

最近有一个需求,使用ffmpeg把非yuv420p色彩的视频转换成yuv420p bt709色彩,这个需求的具体解决过程放在下一篇文章,此文仅介绍本地ffmpeg编译内容。

因为在搜索色彩空间转换的过程中,发现了一些需要额外构建的filter,以及需要支持CUDA硬件加速,于是决定自己编译一个最新版本的ffmpeg,同时记录下此次编译的操作过程,希望可以帮到其他有需要的人。

阅读全文 »

背景

最近打算把公司后端项目从Java迁移到Kotlin,在迁移JPA实体类的时候,用data class代替了Java定义的class,同时用var+默认值的方式改写了id的定义

阅读全文 »

背景

公司项目下有几个submodule的依赖,通过file协议安装,最近在开发新功能时发现本地更改submodule的代码,主项目无法引用到最新的代码,
同时webstorm的代码跳转会进入node_module目录下同名文件夹,而同事表示他们本地没有这种情况。

阅读全文 »

背景

SpringBoot2.4.0添加了spring.config.import配置项,可以在配置文件里导入其他配置文件,通常用来抽取一些所有profile都会使用的配置,比如公共服务器之类的,下面用一个demo项目演示一下。

阅读全文 »

合并冲突如何发生

看到合并冲突这4个字,很多人觉得肯定只有合并的时候才会发生。事实上只要你尝试把来自几个不同源的修改同时应用到同一个文件上,都可能发生冲突,这里的应用包括以下几种操作

0%