易栈网-膘叔

浏览模式: 标准 | 列表 | 图文
使用UniAPP的data-select弹窗穿透其他组件的问题

使用UniAPP的data-select弹窗穿透其他组件的问题

虽然已经知道所谓的:在vue中,两个不同的组件,A加了层级或者A的子元素加了层级(大于1),B没加,不管B的子元素层级有多高都不会再A上面显示。

但发现不管怎么调整,下拉框还是被其他组件覆盖了,这时候我才注意到有一个sticky的样式。为了让这个元素能够留在顶部,结果就出现了样式穿透的问题了。记录一下下次再遇到的时候,也好加深一下记忆
参考:
1、https://www.zhangxinxu.com/wordpress/2018/12/css-position-sticky/ ,杀了个回马枪,还是说说position:sticky吧
multipass 如何更改磁盘

multipass 如何更改磁盘

用了multipass后,在mac下建了一虚拟机,用来跑lnmp项目。原来是用valet的,但还是有点不太方便。所以就直接用multipass + zerotier ,然后远程指过来。有点小麻烦,但还能接受。

因为我原来也没有多轻松,是用了frp + valet 来做映射,frp是个客户端,得时刻与服务器通讯。
---
闲话不说,multipass在试用的时候,创建的磁盘是5G,结果用两天就满了,一查原来是composer/npm的cache太大了。于是就想着扩容。在没有去官方查资料的时候,先google搜了一下,结果能够搜到的都是改cpu / memory,连改磁盘大小的教程都几乎没有,唯一找到的一篇还是windows下的,说是用了hyper-dev,可以直接在开发工具里调整一下,还是可视化的。
网上搜到的改CPU/内存的都是说进入 /var/root/Library/Application Support/multipassd/xxxx.json里直接修改就完事了。事实上在经历过几次更新后,这个json文件也不在原来的位置了,而是在 multipassd/qemu的目录下。
但这个配置文件也还是只能改 CPU和内存,所以,改磁盘就改不了。
抱着试试看的态度查了下官网,结果发现,原来改这个玩意这么简单:https://multipass.run/docs/modify-an-instance#heading--set-the-cpu-ram-or-disk-of-an-instance,直接两句命令就完事了
multipass set local.primary.disk = 10G
其他可设置的是:cpus / memory
local是本地,primary是instance的名称。
---
查一下官方资料,真是比啥都好,网上那些教程的时效性太短了。
laravel debug模式下抛出异常时隐藏关键字段

laravel debug模式下抛出异常时隐藏关键字段

laravel在debug模式下抛出异常时,会把当前的环境变量等打印出来,即使是开发机、测试机,其实有时候也不希望将一些关键的变量公开给所有人,比如密码、APPKEY(主要是不少人在上传的时候APPKEY本地和服务器一致),还有各类OSS、微信的appId,secret,token等,所以就需要在抛出异常时隐藏掉。

网上查到的是在config/app.php中增加:debug_hide 的数组下标,对应的数据是_ENV,_SERVER,其实就是把遍历这些全局变量,对指定的KEY进行隐藏。但偶尔也查到有debug_blacklist。于是全文搜索了一下,发现框架里是:foreach([config('app.debug_hide'),config('app.debug_blacklist')]),看来这是一个历史 遗留问题。
知道怎么写之后就方便了。例如:
'debug_hide'=>[
'_ENV' => ['APP_KEY']
]
,随便抛一个异常可以看到 ,输出的APP_KEY的地方,已经不再是标准值了,而是一堆***,关键变量其实有很多,如果一个个写,感觉有点累,再加上,它不支持 * 的模拟判断,比如*KEY*,则完全无效。于是偷了个懒:
'debug_hide'=>[
'_ENV' => array_filter(array_keys($_ENV),fn($v)=> Str::contains(strtolower($v), ['oss_', 'db_', 'cookie', 'key','secret', 'password', 'aliyun']) ),
]
既然都在debug_mode下了。也不在乎这点性能了。。
tips:
1、不能用str($v)->contains,因为str这个helper函数,居然还调用了env的class,而在刚加载config文件时。env的类还没有加载进来。
2、strtolower,是因为Str::contains不能忽略大小写。虽然.env都是标准的大写,但你不能保证其他人有没有写小写(又不能抽他们)。所以先tolower一下
解决!
感觉现在可充电的5号、7号锂电池还只是个玩具

感觉现在可充电的5号、7号锂电池还只是个玩具

标题中出现的【5号、7号锂电池】,现在在PDD或者淘宝上也是铺天盖地了,上去看看平均一节电池也差不多在10~20元的区间(看店家怎么个下刀了)

买它的原因还是因为,苹果旧版的键盘、鼠标太耗电了,有时候我就在想,是不是应该卖掉换新的。毕竟新的都是可充电的,再这样耗下去,我换电池的钱都快可以买新键盘了。
原来我是一直用IBM的一个移动键盘,但是在我当时的带鱼屏摔下来把小红点砸坏后,好象就有点不听使唤了。当然也能用,就是偶尔会出现乱码的情况,这时候就必须重启重连才能恢复正常。在这点上,确实不如苹果原生的支持的好。
话题扯的有点远,回到这个电池上,目前这些电池几乎都是在上面开了一个typec的口,意味着typec就能够直接充电,充电的时候会亮个灯,但缺点是,我永远不知道这个电什么时候能够充满,比如就象我现在,充了一晚上,灯还是亮着。
然后还有个缺点是,你永远不知道这个电能用多久,我放在键盘里,一直显示是100%,开始我感觉很耐用,可是几天后,突然键盘提醒我快没电了,看了一下变成40%。这个100%~40%,毫无症兆,中午变40%,然后晚上就0%了。实话实说,感觉他没有达到标称的3330mah。不过我也没有专业设备来测试,只能凭眼睛看了。
主要是让我不太舒服的是电量的突然崩完。这个有点不太方便。目前还在坚持着用,3330mAh的,还不如我10年前买的eneloop,他们的使用时间感觉上还是差不多,但那个我用了10年了。。。
---
再用段时间看看是否继续使用,或者换成eneloop,又或者直接换成可充电的鼠标键盘(其实并不是很喜欢,因为成本太高了,哪天充不进电,一个鼠标就废了,而我的 m557,130多,因为微动开关的问题,2年换一个没那么心疼,万一来个充电鼠标因为微动开关换,那就严重提升成本了。),有点怀念15年前的雷柏,又好又爽,电池也能用半年。只是最近买了几个,不是飘的厉害就是卡顿,在mac下的兼容还是有问题。
Sablog-x 1.6升级支持PHP8成功

Sablog-x 1.6升级支持PHP8成功

发现从PHP7.4升到PHP8后,就一个地方,那就是 get_magic_quotes_gpc 这个函数。报错信息是:PHP message: PHP Fatal error: Uncaught Error: Call to undefined function get_magic_quotes_gpc()。

方法未定义?看了下文档,原来从7.4.1开始就已经不再支持了,而且永远返回False,在PHP8中彻底移除,仅此而已,于是乎。。。。
在 include/common.php 文件中,在调用 get_magic_quotes_gpc上面加了一段 :
if(!function_exists('get_magic_quotes_gpc')){
function get_magic_quotes_gpc(){
return false;
}
}
然后,一切正常,所以我就不再上传新包了。(页面详情可能有不正常的情况,是因为我在上一页下一页的时候。$article[articleid]上没有加单引号,进入后台在模板管理 default/show.php 搜到 57行,下一篇的链接就是 ,调整一下即可)
----
改完后才发现,问题很多啊。。。比如 global.php的296行,$article[image] ,这种代码太多了。。。。估计得一点点改了,php4的后遗症啊。
----
只能说解决了95%的问题,其它的只能遇到后慢慢改了。。。我也不可能一个个的去定义:define('image','image');。当然 这样就彻底解决了,只是有点2
Win32DiskImager写入U盘后提示磁盘未格式化

Win32DiskImager写入U盘后提示磁盘未格式化

手贱了一下,用win32diskimager把ISO写到U盘,然后就各种报磁盘未格式化,用磁盘工具管理也无法进行处理,无法删除无法弄。

查了下资料,只能用powershell 管理员模式,运行diskpart,然后list disk。可以看到所有的盘,找到对你容量的U盘。select disk {num}。
再运行list disk,会看到你select的盘前面有个*号。这时候就比较放心了
运行clean 清除所有数据
再运行create partition primary,创建主分区,后面就可以用磁盘工具操作了。
至此,恢复完成
轮回,又备案了

轮回,又备案了

经历了一波又一波的轮回,neatstudio.com又备案了。在没有备案的这段时间,web server放置在过:aws ec2/lightsail/do/linode等,部署地有美国、新加坡、香港、日本等,也放在过国内,使用cloudflared tunnel进行打洞(说起这玩意,就感觉郁闷 ,这玩意把我的机器 IO拖的极慢,退出tunnel后,直接IO几乎重置。。真可怕,难道我的neatstudio.com是世纪大站?开个玩笑)

如今,他终于直接部署在国内了,这样就可以用国内的RDS,节约点数据库资源。当然前面还是用CF做了一个代理。
前两天备案,关停了一天(当时非常担心,怕因为春节放假而无人审核,因为在12月底1月初的时候,有一波备案,整整差不多20天都没有人审核),所幸春节前备案好快,第二天就通过了。
感恩
小心微信号:Phinkc和QQ号:732626894,互联网的骗子

小心微信号:Phinkc和QQ号:732626894,互联网的骗子

不想多说,可以搜索一下这个QQ号(732626894)和微信号(Phinkc),其实是有欺骗行为,嗯。我也是贪便宜的一个。

想单独架一个Sentry服务器,价格确实便宜,然后就被骗了。这种骗局说难不难说简单也不简单,其实说白了也没多少钱,只是心里不开心罢了,确实这些价格可以买很多正常的服务器,比如我用的腾讯的轻量云,比这个稍微贵一点。。。
我想,我的博客流量还算可以,那就曝光一下,也可以让其他人少上点当吧
vue3中require被报equire is not defined

vue3中require被报equire is not defined

require这玩意不属于vite的功能,也不是vue的功能,我没有用webpack,所以无法直接用require。

但因为参考的项目用了require.context的遍历,所以就在想应该怎么弄呢。查了一下资料,发现vite有提供现成的:import.meta.glob,用法和 require.context差不多。
原来的代码: const requireModules = require.context('./modules/', true, /index\.(ts|js)$/iu)
修改后的代码:const requireModules = import.meta.glob('./modules/*/index.(ts|js)')
只是原来requireModules还是一个function,而修改后的是一个Object,因此遍历的代码就要再改一下,比如原来可以直接requireModules.keys(),现在只能用Object.keys(requireModules)。
至此,修改完毕。
2002即将过去,记录一下

2002即将过去,记录一下

2022就这样悄无声息的走到了最后一天,今年过的很快也很慢,快到感觉都没出几次小区,一年就这么过去了,慢到感觉天天就是这样的轮回才过完了一年。

一切都是从3月底的事件开始,但事实它并没有对我们产生多大的影响,但却给全国做了一个很好的榜样,告诉其他省市应该怎么做了。这些事情和工作无关就此跳过
来,开始一一回顾一下:
1、记得去年的时候说今年要换laravel把博客重写一下,事实上前台确实有重写,基于inertiajs重写了一份,但因为没有好的皮肤,所以还是放弃了,后面又基于typecho把数据库重导了一份,自己写脚本自己导数据,也是因为效果不好而放弃了(中间还买了套typecho的皮肤,买完后才发现其实写的有点乱,不适合我这种简约派)。所以自己为typecho写插件写这写那,写了一堆玩意,然而还是没有好好皮肤,于是先上线了https://blog.neatcn.com,用来记录开发中的点滴
2、2022年学习了flutter,用来实际开发了3个APP,尝试了bloc/riverpod/getx三种state的管理工具,自己写组件也写了几十个,踩坑无数,但好歹能够用了(离精通还是有距离,这个和去年的展望还是对应上了)
3、把原来睿读的英语基于inertiajs前台重构了一份,后台过段时间会考虑。原来是说2022年会做一些自己的产品,而不再局限于外包的,结果疫情天天在家,把自己都给弄废了。从明天开始就以此为2023年的目标:宠物类、WMS、物业以及一个标准的CMS,做为自己公司的产品,同时会申请软著。小项目会逐步放弃。
如果遇到好的模板,就把博客上线成laravel的,如果遇不到好的模板,嗯,那就用inertiajs+tailwindcss+现在的界面重撸一份。
tomorrow is coming!2023,雄起