0%

本来想写个窗口管理器的,但是发现已经有了,而且还是免费的,所以就不用自己写了。
就像那个日历一样,开源了之后,很多模仿者出现。
前两天刚下一个终身免费的 Align,加上之前买的 Magnet,不知道会不会用得上,但是还是收录了。

这里记录两个开源的。

Read more »

用微软的 xiaoxiao natural 版本听书,当前来看已经很不错了,尤其是 edge 里可以直接使用。虽然来到这个时间节点,微软又推出了 azure 里几个新的模型,声音仿真效果真的变态好,不过全面铺开使用我看还得一段时间至少一年或者更长时间,尤其是开放到 edge 选项里估计更久。好在当前的已经很不错了。

本来用的 edge 里的一个插件EpubPup - EPUB Reader,可以导入打开 epub,试了下还是不错的,就是不能自动翻页。
但是苦于只能支持桌面版,所以又开始找手机版的方案。

Read more »

历史重复并发展,现代事件表现的很明显。
当前哈以冲突,以反恐的阶段发展来看,尤其验证这句话。前期一致谴责恐怖份子彻底支持以色列到现在一致要求限制以色列,验证了这句话。当然这种情况是抽离当前其他因素的情况下的分析,以赢得战争的前提下,这句话是对的。

Read more »

使用的 flutter inappwebview 以及 asw 的 chime 完成视频会议需求后
近期遇到了一个奇怪的问题
android 使用视频会议,然后麦克风没有声音;但是 iOS 却没有问题。

  1. 因为前两天也查了 iOS15.5 视频画面背景虚化的问题(chime 不支持 iOS16 之前的背景虚化)。然后直接就想到了先用手机浏览器试试会议链接看看界面上的表现
    1. 竟然发现手机浏览器可以,但是 app 就是没有声音。
  2. 是不是 android 麦克风权限配置错误
    1. 找了半天资料也试了下,发现没用,配置貌似没有问题
  3. 第二天真机调试看页面,然后程序是不是会报错
    1. 也没发现有价值的 log
  4. 看到 inappwebview 里面配置参数有安卓权限部分,断点试试
    1. 看到首次进入页面的时候,权限已经获得了 android.webkit.video 以及 audio 的权限了
      androidOnPermissionRequest: (InAppWebViewController controller, String origin, List<String> resources) async {
      return PermissionRequestResponse(resources: resources, action: PermissionRequestResponseAction.GRANT);}
  5. 感觉有点一筹莫展了,试过了所有的可能,问题感觉指向了 webview 页面使用 microphone 权限的问题
    1. 问了前端是不是能看到是否获得了麦克风权限
    2. 然后自己在断点时候偶然发现,点击页面上的视频开关,会每次都调用上面那个代码片段,意外的惊喜
    3. 赶紧试了下视频按钮边上的麦克风开关,感觉找到问题了,并没有请求上面的代码,然后告知前端
  6. 解决
    1. 应该是 chime 的代码里判断了如果前端浏览器是 chromium-webview 的话,不能使用麦克风,为什么
    2. 然后同事看到麦克风里 android 环境可以选择多种设备,之前默认的是 Microphone 1,然后改动到 Speakerphone 就可以了。
Read more »

用了一天多,感觉总是想要实现下直接用滚动球来控制滚动,架上一些组合键,而不只是用来移动光标。什么动机我这是?
试了太多,什么 usb overdrive,SteerMouse 都不行,可能是我自己不会用导致的。最后找到这个帖子还行,解决了。Any free software that enables drag scrolling? : r/MacOS

就这不长的时间体验下来,舒服是真的舒服,不过还有点不习惯,再慢慢用适应吧。

Read more »

以前也就不到十年左右吧,开始使用,那时候用 windows,如今又用回来,使用 google bard 也就是 gemini,方便每次输入 prompt 指令。

!a::Run "C:\Users\sunxu\AppData\Local\Programs\Android Studio\bin\studio64.exe"
!f::Run C:\Users\sunxu\AppData\Local\Fork\Fork.exe
!v::Run "C:\Users\sunxu\AppData\Local\Programs\Microsoft VS Code\Code.exe"
!e::Run "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
!x::Run "C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"
!s::Run "C:\Program Files\Sublime Text\sublime_text.exe"
!q::Send {Shift F10}

::ccjj::
my_text =
(
请用日语和英语翻译下面这句话。
0行显示要翻译的原文,标记句子D。
1行句子D翻译成日语。在日语翻译中,请务必为所有汉字添加假名,因为你总是会遗漏,所以务必检查保证每个汉字添加假名。标记句子A
2行句子D翻译成英文。标记句子B
3行,根据句子A,意译成日语。标记句子C
4行,根据句子B,意译成英文。
5行找出句子A和句子C日语中所有的单词,如果单词是汉字,请标出平假名。如果单词是片假名,用英文单词标注。所有单词用数字标出重低音。用表格表示这些内容。

原文:
)
Send(my_text)
return

::jjcc::
my_text =
(
请用汉语和英语翻译下面这句话。
0行显示日语原文,标记句子C。
1行句子C直接翻译成汉语,标记句子A。
2行句子C直接翻译成英文,标记句子B。
3行根据句子A的汉语翻译,进行第二次汉语意译。
4行根据句子B的英语翻译,进行第二次英语意译。
5行根据句子C,进行第二次日语意译。标记句子D。
6行找出句子C和句子D中所有的单词,如果单词是汉字,请标出平假名,如果单词是片假名,用英文单词标注,所有单词用数字标出重低音,用表格表示这部分单词内容。
)
Send(my_text)
return


Send(text){
ClipSaved := ClipboardAll
clipboard := ""
clipboard := text
ClipWait, 1
If (!ErrorLevel)
Send, ^v
Sleep, 300
clipboard := ClipSaved
VarSetCapacity(ClipSaved, 0)
}
Read more »

如果是两个相邻的 widget,可以通过回调的方式,将数据传递给父 widget,然后父 widget 再传递给另一个子 widget,也可以用 bloc 来实现。一般默认的情况下,一级一级传递 bloc 也能实现,只要 bloc 更新了数据,页面上的 UI 就会更新。

Bloc 不起作用了

Read more »

还是要总结输出啊,每次想到这个问题,都是从头开始,最后落脚到虚拟机和自家服务器上,但是还是浪费时间考虑那么多。

  • 加密磁盘或者文件夹。解密磁盘后还是会被系统的其他软件窥视,加密文件夹倒是可行,但是还是有点混乱的感觉
  • 加密各个单独的图片或者视频。这效率太低了
  • 图片视频管理软件,需要开源的,最好要有点 ai 功能,这样重复照片啊或者特殊事件也能有好的内容提供
Read more »