代码 > 被向日葵折腾的不行

2024-09-18

我有个专门放国产软件的虚拟机,向日葵就是里面的一员大将。

前两天连线必须升级,升级玩重启后,好家伙,鼠标点击失效了。

推测是向日葵默认开启被控,接管鼠标操作造成的。

没办法,不停的进安全模式(msconfig关启动和服务)切换,还是不行。

更搞笑的是,鼠标失效后,向日葵还无法反安装。因为反安装界面那两个按钮是画上去的,tab切换不到。

大写的服。

先试试能不能用企业版的监控端吧。

不行就用了就删。

给国产软件虚拟机运行是最正确的选择。

代码 > 用了下雷池这个开源waf

2024-07-26

说真的,真的太重了。

只能说,能用,能挡一下扫描不比深入。

代码 > flutter慎用setstate

2024-07-02

刚刚修正了全文搜索到能用的程度。

怎么说呢。

setState的名字是一个大坑。

它就是rebuild.重新调用build。

所以尽量要在组件树的末端setState,State里尽量不要放数据,情愿多用全局的业务Context。

setState这个名字对它的性能消耗的误导太大了。

代码 > 搞了个livechat代替留验表单

2024-07-01

https://www.jivochat.com/搞了个免费账号,看看效果。

实在不高兴做表单和spam做斗争了,还有各种安全漏洞。

反正livechat也能退化成留言+表单,看看效果。

代码 > flutter双滚动条

2024-06-28

发现Scrollable.ensureVisible只能对最近的一个滚动条生效,调整滚动条顺序后,垂直方向滚条不出现,水平的倒常驻了。

 

搜了下,滚条也是和其他组件一样组件拦截的,需要在拦截判断函数 notificationPredicate处理下

 

大概这样

 

return RawScrollbar(
thumbColor: Colors.white,
thumbVisibility: true,
controller: scrollController2,
scrollbarOrientation: ScrollbarOrientation.bottom,
notificationPredicate: (notification) =>
notification.depth == 1,
child: RawScrollbar(
thumbColor: Colors.white,
thumbVisibility: true,
controller: scrollController,
child: SizedBox(
 

 

 

代码 > 不得不说,windows下商业软件还是有不小的优势的。

2024-06-25

开始折腾flutte app的打包发布了。

ldd以下我的执行文件和so,一堆指向glibc的,还有lgpl的gtk的,完蛋,老实装虚机。

相反同样的app在wndows下编译,不多花费功夫可以在win 7/10下顺利运行。

差距有点明显。

linux下,最多用docker打包能绕过一点。

代码 > 搞定cgo编译musl的pcre库了

2024-06-21

从alpine.pkgs.org 下载alpine的pcre和pcredev包。

配上对应的musl的libc,直接静态编译,结束。

代码大概是

export lib=`cd $(dirname $0)/../../lib/pcre-musl; pwd`

CGO_LDFLAGS="-L$lib -Wl,-rpath=$lib -s -w" CC="musl-gcc" CGO_ENABLED=1 go build -tags 'musl' -a --ldflags "-linkmode external -extldflags '-static'" --trimpath -o ../../bin/hellclient ../

提示找不到-lpcre时其实是找不到libpcre.so.a,从pcre-dev包里搞过来就行。

离开glibc,全身舒爽。

终于体会了lgp/lgpl传染的恶心了。

我不是不接受lgpl,我不是不能接受动态链接。

但是动态连接哪哪都提示glibc系统版本不够高太恶心了。

更何况引入pcre这种mit库的时候。

我只是开个cgo引个dll,压根不想用你牛逼轰轰的glibc好不……

我甚至都用netgo不用你那个破网络库了。

打包编译,在centos7上都能正常运行,一下子就舒服了。

接下去就做稳定性测试了。

 

代码 > 用了下github actions

2024-06-09

试用了下github actions自动发布。

总体感觉还行,的确是不从的功能。

唯一的问题是,yaml的依赖空格的语法是在是过于蛋疼。

代码 > hugo体验

2024-06-08

第一个用hugo的站点上线了。

怎么说呢,能用,某些很窄的场合好用,大部分情况不好用。

hugo或者类似的静态博客/网站做网站,特点是:

1.使用md这个对普通用户不友好的格式

2.发布方式极度依赖技术经验

3.有一套简单的模板系统,不能适用过于复杂的站点

4.不能方便套用表单,搜索等常用功能

总体来说,特别适合做

与计算机相关的(需要技术背景),团队较小(没专门的编辑),页面较多(不然不如手写html),更新较少的网站

基本就是软件/开源项目的官方站点的样子。

其他的场合未毕好用。

代码 > flutter选择背景和文字背景冲突

2024-05-29

具体来说,就是选择背景SelectionColor比背景色backgroundColor优先级低,所以在设置过前/背景色的文本上,选择色的设置无效。

一番搜索,已经有两个issus被提出来了

https://github.com/flutter/flutter/issues/79168

https://github.com/flutter/flutter/issues/96112

怎么说呢,虽然不算常见场景,但需要用的时候还挺蛋疼。

这么久也没修复,感觉真的要修复得接管整个选择目标的渲染流程了。蛋疼。

 

PS

用了个比较脏的Hack

用WidgetSpan(Container(Text())) 代替了TextSpan

将背景色和TextStyle分离

背景色设在Container上

TextStyle给Text

这样Text是没背景色的,选择色就能覆盖背景色了,

由于TextStyle是只读的,还不能单纯的去除背景信息,只能再封装一下原来的textstyle方法。

不得不说,真脏。