url scheme介绍
前言首次接触移动端开发, 刚刚了解这些概念, 感觉可以通过这玩意, 实现语音控制多个不同app间的某些特定功能, 或者配置一些多个app间功能自动化。
资料收集由于当前只是简单了解阶段, 并不打算使用, 因此只是暂时收集了一些资料和相关实践的文章, 参考链接如下:
https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app
https://juejin.cn/s/url%20scheme%20%E8%A7%84%E8%8C%83
https://juejin.cn/post/7232846086833111099
https://bbs.z01.com/PItem?id=24652
Hyper-V的嵌套虚拟化
参考下方链接https://learn.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/user-guide/enable-nested-virtualization
Hyper-V的虚拟网络交换机创建
前言最近由于诸多原因弃用了VMware(主要是性能原因为主)。 转向了直接链接硬件, 直达硬件性能的Hyper-V系统自带的虚拟平台。但是, 由于日常开发中最常用的网络桥接模式, 自带的虚拟平台并不进行直接提供(默认仅提供内部的虚拟交换机), 因此需要手动创建。
介绍
可创建的虚拟交换机有如图中所示的3种类型, 这里我简单介绍下:
外部: 即我们vm中通常使用的桥接模式, 用于使虚拟机通过此”虚拟的外部物理交互机”直达物理网络。 当然其必须通过已经链接物理网络的物理网卡<包括wifi网卡——可能有小问题>来实现。 即你所使用的网卡需要有物理网络链接, 若虚拟机和宿主机使用的是同一网络(如路由器)的物理网络, 则它们属于同一子网。
内部: 即直接使用宿主主机网络, 用于使虚拟机通过此”内部虚拟的物理交换机”共用宿主机网络来。 (当然, 此选项不依赖于网卡(不和物理网卡直接交互, 仅通过宿主机网络间接于物理网卡交互), 仅依赖于宿主机器(属于物理网络子网(宿主机ip)的子网)。 即宿主机(任一网卡)有物理网络链接即可)
专用: 即不依赖于任何网络, 仅用作虚拟机之间的网络链 ...
Hyper-V虚拟机与宿主机的文件交互
前言由Hyper-V创建的虚拟机, 好像无法直接与宿主机之间实现复制粘贴, 因此我们若想实现它们的文件交换, 无非一些传统方案了。
如 通过在虚拟机系统中创建’在网络中共享的文件夹’来实现, 或是直接通过 基于 ssh的 ftp服务来实现。
由于后者更为通用(win下需要手动开启, linux下可直接使用), 且配置即使用过程更为简便快捷。 因此这里主要讲解后者的使用。
关于前者, 虽然也可以实现, 且配置起来也很简单; 但是使用过程中的流程较为繁琐, 涉及较多重复的复制粘贴或拖拽操作。
关于后者, 利用ftp类客户端, 可以简化文件互通操作, 避免重复的复制粘贴或拖拽, 可直接将文件一次性拖拽传递到任何目录下。
win下手动开启ssh服务后, 即可使用, 下文中有开启方案。 需要注意的是: 在win下, 请直接配置好ssh后, 通过ssh链接来尝试网络是否通常, 而不是通过ping命令。 –这是由于win10/11默认防火墙出于安全因素禁止了icmp请求, 因此请不要通过ping命令来验证是否可以通过主机与虚拟机建立链接<若非要使用ping命令来验证,请临时关闭w ...
capacitor零碎
自定义原生Android代码时, 遇到的错误文档链接->https://capacitorjs.com/docs/android/custom-code
文档中出问题的步骤如图:
所报错如图:
方便搜索错误而写(仅用于搜索, 请在阅读时忽略)Method does not override method from its superclass
Cannot resolve symbol ‘Bundle’
‘onCreate(android.os.Bundle)’ in ‘com.getcapacitor.BridgeActivity’ cannot be applied to ‘(Bundle)’
Method ‘onCreate(Bundle)’ is never used
由报错图可知, 此错误是由于官方文档的不严谨造成的, 解决方式, 如图:
ok, 我是在quasar框架下使用的, 后续在utils中创建了官方提示的绑定代码, 然后在项目中(如vue单文件组件)做了引入调用, 成功执行。
在quasar中使用的时候, 注意capacitor的no ...
css零碎
长度/宽度 距离单位 px、rem、fr、、px和rempx 和 rem 都是 CSS 中用于设置元素尺寸的单位,但它们的使用方式和计算方式有所不同。
px(像素)是一个绝对单位,1px 对应屏幕上的一个点。这个单位不会随着页面的缩放而变化,因此在不同的设备和屏幕分辨率上,1px 对应的物理尺寸可能会有所不同。
rem(root em)是一个相对单位,它是相对于 HTML 根元素的字体大小来计算的。例如,如果 HTML 的字体大小是 16px,那么 1rem 就等于 16px。如果 HTML 的字体大小是 20px,那么 1rem 就等于 20px。
在实际的开发中,px 和 rem 的选择主要取决于你的项目需求。如果你需要精确控制元素的尺寸,并且不需要考虑页面的缩放和设备的屏幕分辨率,那么可以使用 px。如果你需要创建响应式的布局,并且希望元素的尺寸能够随着根元素的字体大小的变化而自动调整,那么可以使用 rem。
rem是的,你可以手动指定 HTML 根元素的字体大小来改变 rem 的基准值。例如,你可以在 CSS 中这样设置:
123html { fo ...
go并发编程-如何优雅的关闭channel
参考http://www.hangdaowangluo.com/archives/2526
前言通道关闭原则: 在使用Go channel的时候,一个适用的原则是不要从接收端关闭channel,也不要在多个并发发送端中关闭channel。
在不能更改channel状态的情况下,没有简单普遍的方式来检查channel是否已经关闭了
关闭已经关闭的channel会导致panic,所以在closer(关闭者)不知道channel是否已经关闭的情况下去关闭channel是很危险的
发送值到已经关闭的channel会导致panic,所以如果sender(发送者)在不知道channel是否已经关闭的情况下去向channel发送值是很危险的
换句话说,如果sender(发送者)只是唯一的sender或者是channel最后一个活跃的sender,那么你应该在sender的goroutine关闭channel,从而通知receiver(s)(接收者们)已经没有值可以读了。维持这条原则将保证永远不会发生向一个已经关闭的channel发送值或者关闭一个已经关闭的channel。下面,我们将会称上面的原 ...
gorm配合gen效率翻倍
前言func (*gorm.DB).AutoMigrate(dst ...interface{}) error
首先, 介绍这个api的原因是, 我们使用gorm框架永久了, 对于sql的使用难免会摆脱依赖, 也就是说, 更改表字段时, 可能更倾向与直接通过修改该表对应的结构体标签名(gorm:"column:unix")或是直接在结构体中修改字段名称, 然后通过AutoMigrate()来传递到表中, 作出对应修改。
不过, 即使使用了AutoMigrate这个API, 也还是需要我们手动的去操作数据表。因为AutoMigrate仅能够帮助我们完成如下操作:
在 GORM 中,AutoMigrate 函数会在以下情况下修改数据库表结构:
创建表:如果数据库中不存在与结构体对应的表,AutoMigrate 会创建一个新的表。
添加列:如果数据库表中缺少与结构体字段对应的列,AutoMigrate 会添加一个新的列。
添加索引:如果数据库表中缺少与结构体标签定义的索引对应的索引,AutoMigrate 会添加一个新的索引。
然而,为了保护 ...
test在gitlog中的命名
前言以下分享仅为个人习惯
规范我们需要清楚的是, 测试的主要目的是对应的主要关注功能点和问题点, 使我们对自己的代码更有信心, 并且可以提升开发效率。而一味的追求测试覆盖率, 一定会造成边际效应递减的副作用, 会大大降低开发效率。因此, 我建议git提交时, 对测试的命名以所在意的功能点为参考。 并且测试代码中也尽量如此, 至于每个it()中的名字, 是可以以函数名子为准的。
test(<名称>)
<名称> 的规范:
新增测试(业务上的变动, 对应删除), 单词间以-隔开 或 空格
修复现有测试中的bug(其中涉及到测试代码的增删改, 仅与测试本身有关与测试业务无关), 使用fix_
更正现有测试(如测试范围不对, 或是测试的边界值有变, 注意与修复的区别), 使用modify_
(在已有功能名称的测试中)添加新的测试, 使用add_
(在已有功能名称的测试中)删除旧的测试, 使用delete_
删除不需要的测试(业务上的变动, 对应新增), 使用remove_
当然, 以上这些细分命名可以让我们在开发中, 如鱼得水。 不过向主分支合并时, 还是通过squ ...
github以个人令牌的方式完成多账户管理
记录下新功能的试用参考链接如下:
https://docs.github.com/zh/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts
https://docs.github.com/zh/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens
前言多个github账户在同一电脑管理时, 我们对git进行配置, 以便对不同的仓库链接其对应的github帐号(即使是两个不同的账户也不影响)。
根据官方介绍, 最满足需求的就是”Fine-grained tokens”方案了。
步骤直接参考本文开头链接中的文档即可。
结果
最终结果中, 并没有密钥, 也就是说, 当你创建过程结束后, 会显示一个密钥, 而这个密钥你需要尽快记录下来(如复制到你的 本 ...

.png)