V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  a132811  ›  全部回复第 1 页 / 共 20 页
回复总数  393
1  2  3  4  5  6  7  8  9  10 ... 20  
62 天前
回复了 momomoi 创建的主题 机器学习 检测画面中存在漏水,给点思路
以下是 llm 的回答方案。

核心思路:用简单的传感器直接检测水或其引发的环境变化。

主要替代方案:

接触式漏水传感器 (针对地面水)

漏水绳/线: 沿管道铺设,水一接触就报警。
优点: 便宜、准确。
缺点: 需要布线,只能检测线缆接触到的水。
点式传感器: 放在关键小区域,水淹就报警。
优点: 非常便宜,安装简单。
缺点: 检测范围小。
湿度传感器 (针对空气湿度变化)

原理: 检测漏水导致的局部空气湿度显著升高。
优点: 便宜,可覆盖一定空间。
缺点: 易受环境湿度和通风影响,响应可能较慢。
声音传感器 (针对喷水声/滴水声)

原理: 麦克风听管道漏水特有的声音。
优点: 可能便宜,可检测喷射。
缺点: 极易受环境噪音干扰,区分困难,误报可能高。
低成本组合建议:

主力: 在关键地面区域和管道下方使用 漏水绳/线。
辅助: 在一些封闭或重要空间顶部加装 湿度传感器。
可选尝试: 试验性使用 声音传感器,但对效果要有预期。
重要: 结合 定期人工巡检 作为补充。
一句话总结:用漏水绳测地面积水最靠谱且便宜,湿度计可辅助,声音检测要小心噪音。
96 天前
回复了 wheelg 创建的主题 奇思妙想 想要一个这样的 Magic 浏览器
1. chrome 启动时加--disable-web-security 可突破跨域限制:
mac 下可以启动隔离的 chrome:
open -na "Google Chrome" --args --disable-web-security --user-data-dir="/tmp/chrome_dev_session"

https://stackoverflow.com/questions/3102819/disable-same-origin-policy-in-chrome

2. 禁用 cors 限制的话,会遇到许多问题
- 用户信息有潜在的安全风险
- 网站服务商会受很大的影响:应对来自 c 端的 ai 爬虫就已经很头大了,放开限制的话,随便一个 web 网站都可能主动利用 js 或被注入 xss 对别的网站发起各种分布式攻击(客户端也有这个风险,但是门槛更高一点)


安全、方便、功能、开发体验之间存在许多矛盾的: pwa 相比客户端应用,牺牲了一些功能,得到了安全。

真要给 pwa 搞一个专门的浏览器的话,可能要禁止 cors 带 cookie ,禁止 xss 执行等,完全模仿客户端的行为.... 这可能会影响现有一些网站的执行。
支持
递归移除一下就可以了:
```
package main

import (
"encoding/json"
"fmt"
)

func removeJavaTypes(input string) (string, error) {
var data interface{}
if err := json.Unmarshal([]byte(input), &data); err != nil {
return "", fmt.Errorf("failed to unmarshal json: %w", err)
}

cleanedData, err := recursivelyRemoveTypes(data)
if err != nil {
return "", err
}

outputBytes, err := json.Marshal(cleanedData)
if err != nil {
return "", fmt.Errorf("failed to marshal json: %w", err)
}
return string(outputBytes), nil
}

func recursivelyRemoveTypes(data interface{}) (interface{}, error) {
switch v := data.(type) {
case []interface{}:
if len(v) == 2 {
_, isString := v[0].(string)
if isString {
return recursivelyRemoveTypes(v[1])
}
}
for i := range v {
var err error
v[i], err = recursivelyRemoveTypes(v[i])
if err != nil {
return nil, err
}

}
return v, nil

case map[string]interface{}:
for key := range v {
var err error
v[key], err = recursivelyRemoveTypes(v[key])
if err != nil {
return nil, err
}
}
return v, nil
default:
return data, nil
}
}

func main() {
input := `
[
"com.test.UserInfo",
{
"userName": "13123",
"email": "[email protected]",
"roleIds": [
"java.util.ArrayList",
[
"109"
]
]
}
]
`
output, err := removeJavaTypes(input)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Output:", output)
}

}
```
181 天前
回复了 xubingok 创建的主题 问与答 有没有一劳永逸关闭 HSTS 的方法?
办法有很多种:
1. 找一下 nginx 等网关,去掉 HSTS 头:

add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains' always;

检验一下:

curl -s -D- 'https://yourserver' | grep -i strict-transport-security

2. 或使用 chrome 扩展修改响应的 header ,将 HSTS 头去掉

3. 或本地开发时使用代理,将 http 请求转发到 https ,为此我写了一个代理工具(会自动生成自签名证书)
https://github.com/ahuigo/selfhttps

4. 或让本地服务也改 https, 让它内置 https 证书(有一些框架提供)
182 天前
回复了 zwpaper 创建的主题 分享创造 一觉醒来, HackerNews 上前三了
允许将整个本地项目代码加入上下文吗?或者指定本地的几个目录的代码作为上下文
不用梯子的话,找一个国内大模式 api 封装一个就是了。
deepseek 、doubao 、GLM 、通义千问、文心一言都有 api
@guanzhangzhang
python3.5 以后就支持类型注解了,习惯了类型、单测后,没有它们我都不敢发代码了。

比 ts 好一点是内置支持,不需要像 ts 一样编译成 js 。
比 ts 差的一点是类型系统不强大,没有类型体操(某种意义上这其实算优点)
252 天前
回复了 anky 创建的主题 分享创造 自己搭了一个在线听广播电台的网站
不知道有没有收录台湾的电台 https://radios.tw/i-bcc-music-network/
317 天前
回复了 sleepybear1113 创建的主题 macOS 来说说 Mac 比起 Windows 笔记本好在哪里
有没有性价,要看你个人需求。

对我来说是省心不折腾:统一的 unix 环境 > 命令行(一键操作、自动化) > 全局 readline 快捷键 > 触摸板(十年没再用鼠标) > 续航。

我很多年前折腾各类 linux desktop 、升级、各类 gui 软件的 bug ,浪费了太多时间。后来换到 mac osx 后,整个世界都安静了。

帮人折腾过几次 wsl 、wsl2 ,体验不太好(可能现在 issue   bug 有改善了?)
另外 sub 子系统与母系统是割裂的(比如 wsl 中用脚本自动种自签名证书就很麻烦)。我现在写自动工具、脚本,一般都不会特别考虑 windows 环境。
我习惯和想法跟你类似,我也写了 10 年的笔记,都是放 git markdown.

不过我没有你这些烦恼。

- 编辑:我使用的 vscode + 自带的 markdown preview + Paste Image 插件,表格用 markdown table 的写法,附件就存其它地方只放链接(不过小文件直接放 git )
- 存储同步:多个 git   repo 备份
- 阅读/分享:vscode 、自己用 katex(latex)+marked.js 写的纯静态(连编译都省了)
- 搜索查找:各类 shell tool(主要是 ag + regex ),由于文章目录本身就是按知识树分门别类,所以搜索很方便
351 天前
回复了 jlz52z 创建的主题 Vim 关于 vim 中一次复制粘贴的询问
我的方法是使用 map 按键映射: 将 command+c 映射到 "+y 复制到系统粘贴板,command+s 映射到保存

""""""""""""""""""
" Copy Quit Save Select
" config iTerm2 keys: Esc+Ac, Esc+As, Esc+Aa
" (注意:mac iterm2 中必须要改键,否则 vim/nvim 无法响应 command+c command+s )
" mac vim 参考: https://stackoverflow.com/questions/23606892/vim-keyboard-mapping-problems-on-mac-osx
"""""""""""""""""""""
" Quit
nnoremap <C-q> :qa<CR>

" Copy
vnoremap <M-A>c "+y

" Save
nnoremap <M-A>s :up<CR>
inoremap <M-A>s <C-o>:up<CR>

" Select whole content
nnoremap <M-A>a ggVG

--------------------------------------
不想改键的话,就映射到其它 vim 能响应的按键

nnoremap <F2> "+p
inoremap <F2> <C-o>"+p
vnoremap <F2> "+y
----------------------------
这样做了后,visual 模式选中、鼠标选中后,都可以按 command+c 复制到系统粘贴板
---------------------------------------------------------------------------------------------------
BTW:
楼上提到的`:set paste`  每次要敲一下命令我觉得麻烦,操作完后还要恢复`:set nopaste`( paste 模式下自动编辑缩进会被关闭).
即使使用`:set pastetoggle=<F10> ` 也只是还是麻烦,况且 nvim 还不支持这个选项
359 天前
回复了 qW7bo2FbzbC0 创建的主题 Go 编程语言 被 go 语言的 json.Marshal 恶心到了
楼主已经自己确认了答案了:是这个 sql 库本身实现得有问题,跟 go 、json.Marshal 都无关。

在某种意义上还是 json 的表达能力不足导致的

## 不同语言的 json 库对[]byte 的处理
json  本身无法区分 string 和 `[]byte`,只有 string 。

1. php 自己本身就没有`[]byte`,甚至连 dict/array 都不区分。直接回避了问题
2. python  有`[]byte`, 但是不能 json 序列化, 如果是 utf8 就需要用 data.decode('utf-8') 要先转成 str
3. golang  序列化`[]byte` 时用 base64 将它转成 string, json 反序列时则用相应的类型去关联`[]byte`类型
4. java , c sharp 跟 golang 处理方式一样的。

## golang 对 json 的支持

json.Marshal 方法:

1. json.Marshal 本身是使用了内置的 json encoder 默认使用 base64 处理 bytes, eacapHTML 默认为 true
2. 但是 json.RawMessage 本身带的 json encoder ,不会对 bytes 做任何处理,如果 bytes 不是 json 格式,就会报编码出错

某些 golang  库实现,可能出于减少值复制,会用 bytes 去表达 string ,但序列化时就只能是 base64   string 了。

如果接收者不要 base64 string json, 解决办法有:

1. 自己先定义一个相应 string struct ,再将 bytes struct 转成 string struct ,最后 json  序列化自然就不是 base64 了
2. 通过反射将 string struct/map 等 转成  string map 再 json. 参考: https://github.com/ahuigo/golib/tree/main/spec/object/convert/objbytes2string_test.go
364 天前
回复了 iorilu 创建的主题 Rust rust 用来开发一些命令行程序是不是神器
@w568w go 也有 urfave/cli 等工具提供一键生成 help message 、config 、type checking 。golang 算是 rust+python 的折中方案。

@sagaxu go 泛型库 lo 可避免写 for 、interface 转换。如果想用函数式的话,可试试 ibm 的 fp-go 库。

错误处理避免 if err 的话,可以像 bufio scan 的方法那样避免 if err 。不过平时开发一般还是 if err 简单顺手。另外错误 chain 是一定要支持,方便定位错误的调用栈
2024-03-29 19:26:45 +08:00
回复了 GuluMashimaro 创建的主题 Visual Studio Code 有没有必要从 jetbrains idea 换到 vs code
我是主力用 vscode 写 js/ts/go/python 好多年了,偶尔用来写 python/rust/java 。

最开始 java/python 的插件都遇到过很影响开发的 bug ,发 issue 后经过很长时间才解决的,不过目前使用良好(轻度使用)
2024-01-24 01:46:16 +08:00
回复了 heroisuseless 创建的主题 分享创造 还在用 JS?过来看看 GS
这是逆 ECMA/TC39  标准而行呀。es 不是不想简化,是要兼容,而且这些年语法上渐近的精进了不少了。

Deno 走 web 标准,做得很好,但是就因为跟 node/npm 不兼容,推广起来老费劲了
2024-01-19 17:46:31 +08:00
回复了 lcj2class 创建的主题 程序员 Zig 中文月报 202311 | 传值或传引用,这是个大问题
感觉 rust 的痛是暂时,zig 的痛是长期的
2024-01-08 21:41:36 +08:00
回复了 awesomePower 创建的主题 程序员 前端求教,有没有懂 flex 布局的
1  2  3  4  5  6  7  8  9  10 ... 20  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   949 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 43ms · UTC 21:06 · PVG 05:06 · LAX 14:06 · JFK 17:06
Developed with CodeLauncher
♥ Do have faith in what you're doing.