V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  xylophone21  ›  全部回复第 4 页 / 共 23 页
回复总数  454
1  2  3  4  5  6  7  8  9  10 ... 23  
2021-10-21 10:00:00 +08:00
回复了 cxp 创建的主题 问与答 程序员如何比较规范的整理资料
》》但是苦于不同平台的不同代码,记录的时候总会产生分支

这个是你代码没有把相同的流程统一,而是 DRY 了,文档是无从解决的
当然,这不是你的问题,你们公司选择了直接使用 SDK,在上面修改。而不是自己实现 SDK,把硬件差异抽象出来。

如果一定要解决,我建议是整理协议这些更稳固的东西,而不是整理 SDK,你正在整理的 SDK,可能就是别人抱怨的 x 山
如果一定要整理,那就只能忍着,想想你在整理 x 山就好了
2021-10-08 09:37:47 +08:00
回复了 b00tyhunt3r 创建的主题 程序员 怎么防止用户自己调用网站 API 发送 POST 请求篡改数据
可以看一看钉钉是怎么防虚拟定位打卡的
传统的
1. 客户端各种加密,防止非官方 App
2.客户端各种检测,防止 root 、虚拟机等模拟 GPS
以及比较狠的
1. [传说] 发现问题不报错,但是在后台标记,等着管理员找你
2021-09-22 15:07:40 +08:00
回复了 FATEQiang 创建的主题 Android Android 单元测试如何规范
@ahao99 然而在 Android 端,一般来说业务并不是很多?
2021-09-15 11:40:47 +08:00
回复了 yuhangch 创建的主题 程序员 感叹一下,花括号换不换行真能把人难受死哈哈
用 golang 吧
2021-09-13 18:20:57 +08:00
回复了 xlsepiphone 创建的主题 程序员 H.264 编码的视频能同时被 mov 和 mp4 进行封装?
score 越大,可能性越高

```c
static int mov_probe(const AVProbeData *p)
{
int64_t offset;
uint32_t tag;
int score = 0;
int moov_offset = -1;

/* check file header */
offset = 0;
for (;;) {
int64_t size;
int minsize = 8;
/* ignore invalid offset */
if ((offset + 8ULL) > (unsigned int)p->buf_size)
break;
size = AV_RB32(p->buf + offset);
if (size == 1 && offset + 16 <= (unsigned int)p->buf_size) {
size = AV_RB64(p->buf+offset + 8);
minsize = 16;
} else if (size == 0) {
size = p->buf_size - offset;
}
if (size < minsize) {
offset += 4;
continue;
}
tag = AV_RL32(p->buf + offset + 4);
switch(tag) {
/* check for obvious tags */
case MKTAG('m','o','o','v'):
moov_offset = offset + 4;
case MKTAG('m','d','a','t'):
case MKTAG('p','n','o','t'): /* detect movs with preview pics like ew.mov and april.mov */
case MKTAG('u','d','t','a'): /* Packet Video PVAuthor adds this and a lot of more junk */
case MKTAG('f','t','y','p'):
if (tag == MKTAG('f','t','y','p') &&
( AV_RL32(p->buf + offset + 8) == MKTAG('j','p','2',' ')
|| AV_RL32(p->buf + offset + 8) == MKTAG('j','p','x',' ')
)) {
score = FFMAX(score, 5);
} else {
score = AVPROBE_SCORE_MAX;
}
break;
/* those are more common words, so rate then a bit less */
case MKTAG('e','d','i','w'): /* xdcam files have reverted first tags */
case MKTAG('w','i','d','e'):
case MKTAG('f','r','e','e'):
case MKTAG('j','u','n','k'):
case MKTAG('p','i','c','t'):
score = FFMAX(score, AVPROBE_SCORE_MAX - 5);
break;
case MKTAG(0x82,0x82,0x7f,0x7d):
case MKTAG('s','k','i','p'):
case MKTAG('u','u','i','d'):
case MKTAG('p','r','f','l'):
/* if we only find those cause probedata is too small at least rate them */
score = FFMAX(score, AVPROBE_SCORE_EXTENSION);
break;
}
if (size > INT64_MAX - offset)
break;
offset += size;
}
if (score > AVPROBE_SCORE_MAX - 50 && moov_offset != -1) {
/* moov atom in the header - we should make sure that this is not a
* MOV-packed MPEG-PS */
offset = moov_offset;

while (offset < (p->buf_size - 16)) { /* Sufficient space */
/* We found an actual hdlr atom */
if (AV_RL32(p->buf + offset ) == MKTAG('h','d','l','r') &&
AV_RL32(p->buf + offset + 8) == MKTAG('m','h','l','r') &&
AV_RL32(p->buf + offset + 12) == MKTAG('M','P','E','G')) {
av_log(NULL, AV_LOG_WARNING, "Found media data tag MPEG indicating this is a MOV-packed MPEG-PS.\n");
/* We found a media handler reference atom describing an
* MPEG-PS-in-MOV, return a
* low score to force expanding the probe window until
* mpegps_probe finds what it needs */
return 5;
} else {
/* Keep looking */
offset += 2;
}
}
}

return score;
}
```
2021-09-13 12:05:31 +08:00
回复了 xlsepiphone 创建的主题 程序员 H.264 编码的视频能同时被 mov 和 mp4 进行封装?
ffmpeg
2021-09-09 23:15:23 +08:00
回复了 KageroY 创建的主题 C# VScode 配置 c 语言环境求助
是的,实际工作中很少看到有人用 codeblocks
2021-09-09 19:33:26 +08:00
回复了 KageroY 创建的主题 C# VScode 配置 c 语言环境求助
C/C++主流的还是 gcc/clang + cmake ( gn 其实也很不错,不过还稍微小众一点) + gdb/lldb,这些搞明白后再配 vscode 就很好理解,建议用 clangd + compile_commands.json + CodeLLDB.

codeblocks 哪一套,除非是即学即抛,否则后面还是要转到前面去的;之于 VisualStudio,C#它不香吗
2021-08-30 18:22:44 +08:00
回复了 icemanpro 创建的主题 C++ 如何将 list 的值传给函数的可变参数?
依稀记得多年前是用汇编搞定的
2021-08-25 09:33:13 +08:00
回复了 nikanon 创建的主题 汽车 车险改革之后,买保险比之前更贵了?
新车损险 ≈ (旧车损保 + 旧抢盗险 + 旧自然险 + 旧发动机涉水险 + 旧玻璃险 + 旧找不到第三方特约 + 旧不计免赔) * 小折扣

如果你之前只买旧车损保 + 旧不计免赔 ==> 涨价
如果你之前是这些全买 ===》 便宜了

===》 多听话,少思考,从小事做起
2021-08-23 19:30:21 +08:00
回复了 20ng21 创建的主题 SSL 自签名 SSL,浏览器提示不安全
又想到一个方案:浏览器总是打开云上的一个页面,用类似 https://github.com/szimek/sharedrop 的方法找到局域网上的所有设备,进入设备时仍然访问云端页面,这个页面通过 WebRTC 与设备 P2P 传输数据,再交给前端渲染。

sharedrop 的实现原理要看一下他的代码,关键是怎么猜测两个端在同一个局域网,不过对你的场景来说,假设所有的设备都在一个局域网,问题应该也不大,联不通的显示一下就好了。
2021-08-23 19:05:04 +08:00
回复了 20ng21 创建的主题 SSL 自签名 SSL,浏览器提示不安全
@xylophone21

想复杂了,简化一下:
1. 每个设备上线时向云发送指令,让云帮忙分配一个域名,指向设备的内网地址(类似 DDNS ),下线是回收
2. 用户总是打开你云端的页面,列出所有在线的设备,然后用临时域名跳转,访问设备
2021-08-23 19:01:17 +08:00
回复了 20ng21 创建的主题 SSL 自签名 SSL,浏览器提示不安全
1. 申请一个统一的域名,导向云引导页面,列出所有设备,让用户选择
2. 设备与云通讯,选举一个跑网关,网关与各设备直接用自签证书保证安全
3. 如果设备的局域网 IP 地址是变化的,通过 DDNS
4. 如果设备出现在两个不同的局域网,在步骤 2 的云识别,把第二个局域网的导向第二个域名,同时在第二个局域网内也选举出一个网关

仅提供一个思路,应该还有不完善的地方
2021-08-17 16:44:50 +08:00
回复了 Smash 创建的主题 生活 "中国家庭人均月收入等级出炉"
@vazo
有意思,加起来是 14 亿,也就是说:
1. 号称没有漏统计
2. 3 口之家一人工作,虽然被平均了,但人数还是贡献 3 个的
2021-08-06 09:58:27 +08:00
回复了 brazz 创建的主题 问与答 关于如何践行团队文化的几个问题请教!
一般来说,给钱到位,大家配合演演戏,也就过了
2021-08-03 14:54:21 +08:00
回复了 magese 创建的主题 职场话题 如果月薪降低 20%,但月休增加 4 天你愿意吗?
增加的月休安排加班不
检查一下 mount 的参数吧,或者直接 ssh 到服务器用 svn 命令行尝试一下。
2021-07-23 15:27:56 +08:00
回复了 eggt 创建的主题 程序员 如何通过跳板机无缝连接需要跳转的服务器?
@libook 对,所以我感觉这题是不是讨论偏了?无缝连接是个伪需求,因为要方便,要无缝连接,直接开放端口就好了,之所以不开放就是为了安全,才加堡垒机。如果又在堡垒机上开无缝连接,那么堡垒机就没有价值了。
2021-07-23 11:09:09 +08:00
回复了 eggt 创建的主题 程序员 如何通过跳板机无缝连接需要跳转的服务器?
@zwy100e72
@lcdtyph
@huoshen
@mrxun1998
@ye4tar
@ye4tar
@thet
@libook
@cpstar

这些代理,直通的方案,会不会降低系统的安全性?看起来这些方案里,A 机器都是做了数据转发,这样的话 A 就有可能并不知道 B 、C 、D 执行了什么命令,也就无从做审计,这样的话,堡垒机是不是就没有意义了?
1  2  3  4  5  6  7  8  9  10 ... 23  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1136 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 18:44 · PVG 02:44 · LAX 10:44 · JFK 13:44
Developed with CodeLauncher
♥ Do have faith in what you're doing.