代码 > 选型:flutter Desktop or AvaloniaUI?

2023-08-02

面临一个自己的玩具项目的选型。

需要做一个跨平台(Windows/Linux/Android/Ios)的应用程序。

根据实际情况排除的七七吧吧,无非剩下了 Flutter Desktop或者 AvaloniaUI

Fltter Desktop做过一个简单的试手Demo。

优势:

1.大厂支持

2.不少成功案例(企业微信桌面版?)

3.Linux开发工具优秀(android studio/vscode)

缺点:

Dart

AvaloniaUI用过Lunacy。

优势:

1. c#,更好的代码复用

2.桌面方案更稳定

缺点:

1.微软的砍技术恶习

2.中文环境稳定性存疑

留个记录,看最后怎么选的。

Linux > ext4的No Space Left on Device/设备没有足够空间错误

2023-03-16

最近由于有些特殊需求,需要在文件夹中放大量小文件。

放了大约近900万文件后,无法继续mv/cp,报设备没有足够空间 错误。

此时文件系统的空间和inode还有大量富余。

搜了一晚上,基本确定为ext4文件每个目录的目录信息不能超过2g。

mount了一个btrfs数据盘后,文件就能复制过去了。

看来ext4的确有些老了,适应不了新的需求。

Linux > 利用autossh和sshpass快速建立sockes5 proxy

2023-03-15

ssh -D 本身就可以建立proxy,但是缺乏一个稳定的断线重播机制

 

autossh能建立一个守护程序维护这个连接,命令为

autossh -o ServerAliveInterval=99999999 -N  -D [PORT] [USERNAME]@[HOST]

如果服务器是通过密码连接的,需要安装和使用sshpass,命令为

sshpass -p "[PASSWORD]" autossh -o ServerAliveInterval=99999999 -N  -D [PORT] [USERNAME]@[HOST]

可以建立一个systemd的service文件来利用systemd托管。文件内容为[Unit]

Description=sshproxy

After=network.target

[Service]

Type=simple

User=root

Restart=on-failure

RestartSec=5s

ExecStart=sshpass -p "[PASSWORD]" autossh -o ServerAliveInterval=99999999 -N  -D [PORT] [USERNAME]@[HOST]

[Install]

WantedBy=multi-user.target

 

工地 > 博客服务器迁移到sfo

2022-11-24

早上起床发现原服务器被墙了……

只能快照迁移下

对比下来还是sfo的最快

代码 > 使用musl代替gcc进行go语言的cgo编译

2022-07-29

最近在发布go代码的时候遇到一些问题

主要是集中在linux版本的gcc上的。

总的来说,gcc的问题有以下几点

1.协议问题,mit协议的代码静态编译gpl的库总觉得有点问题

2.libnss问题,由于gcc本身的特殊性,libnss不能静态编译进去,不然会有各种报错(比如dns解析时panic)

3.glibc版本不匹配问题。

所以换使用musl进行编译。

总体来说,musl提供了一个musl-gcc协议,总体更新跟着不多的文档还是很方便的。

就是各种dev包里一般提供的是glibc编译的版本,之间使用会报错

需要用aptitude source下载代码包

然后通过CC="musl=gcc" ./configure的方式手动编译,得到.a文件,再通过编译脚本以的LDFLAGS中 以-L指定进来。

其他没啥问题,接下去就要进行稳定性测试了。

游戏 > 这么多年了,终于发现我最喜欢steam下那个标签的游戏了

2022-05-17

策略。

需要研究的游戏大都有 这个标签。

build,战术等等。

杂言碎语 > 终于把知乎帐号玩挂了

2022-05-15

舒服了。

本来整个帐号已经被自我冻结了。

这次翻出来疯狂对线,终于直接炸了,不是封禁,直接不存在那种了。

也罢,也算为我这段网络进程告一段落。

也算求仁得仁。

在这疯狂的岁月,将来回想一下,也不会叫唤两下的羊了。

不过知乎禁用帐号,用户都不可见了,历史文章还能看到的行为,值得狠狠tui一下。

代码 > Godot到导出wasm过大问题

2022-05-04

研究了下,这个基本无解。

标准是20mb左右

进行功能裁剪后重新打包也有16mb+

通过预压缩可以到4mb左右。

所以,还是只适合大型场景,不适合小场景。

毕竟 Godot功能太强大了吧。

在网络流量和带宽大幅度提速下降之前。

应用godot还是有一定的成本的。

代码 > godot导出为web/html5后与Javascript交互

2022-05-02

继续研究godot

找到了godot与js交互的方式

https://godotengine.org/article/godot-web-progress-report-9

具体API见

https://docs.godotengine.org/en/stable/classes/class_javascript.html

很明显,可以通过:

 

Javascript.Callbacks 方法,常见可以供js调用的全局方法作为回调接口,可以传入数据

可以通过

Javascript.get_interface 调用封装在js全局域的api

双休调用很容易

很明显,godot可以代替原来Flash领域的大部分工作。