Wednesday, April 28, 2021

V2EX - 技术

V2EX - 技术


各位大佬?如何用一个手机拍另一个手机拍出录屏的感觉?

Posted: 28 Apr 2021 04:16 AM PDT

如题

不用手机自带的录屏是因为我们要测试手机性能,不想因为录屏影响性能

但是现在用另一个手机拍也是各种反光 跟录屏差别太大了

有没有办法防止 app 内资源被提取呢?

Posted: 28 Apr 2021 04:07 AM PDT

有没有办法防止 app 内资源被提取呢?正在开发一个教育行业的 app,核心资源就是一些试卷( pdf ),字帖( jpg)等形式用来被用户调取打印,有办法防止非法用户直接获取到这些资源吗?或者获取到以后不便直接修改这样。

想问一个 k8s 调度问题,这种调度能实现吗

Posted: 28 Apr 2021 03:59 AM PDT

就是当 pod 第一次调度到一个节点后,就不再变动了,哪怕发生故障 down 机都不会变. 除了用 nodeselector 绑定之外还有别的办法吗?因为用 nodeselector 就成纯手动调度了,我还是希望按照我上面说的逻辑自动调度,有可能吗?

最近学习前端发现有点瓶颈,想着挑战些有难度的功能

Posted: 28 Apr 2021 03:44 AM PDT

个人遇到的场景有限,各位在工作中有什么项目难点或者需要注意的地方吗

关于使用异步框架发送 http 请求的疑问

Posted: 28 Apr 2021 03:13 AM PDT

业务流程:
客户端请求服务端 -> 服务端请求多个第三方 http api 获取数据 -> 服务端聚合处理第三方 api 的数据,返回给客户端

在第二个步骤中,我们使用 vert.x web client 这个异步框架同时发起多个 http 请求,当请求完成后将结果放到一个 future 中。调用线程调用 future.get 阻塞住,等待异步请求结果返回。

我的问题是:
听说这个地方使用异步框架能带来处理能力上的提升,支持更多的请求和链接,这是为啥呢?不太理解。
相比较而言,如果换成使用线程池来发起多个 http 也用 future 来接受结果,到底提升在哪呢?
异步请求 http 的时候也是用的线程呀,这个线程与线程池里的线程有啥区别吗?凭啥更好呢?

小米 k40 有刷机成功的没

Posted: 28 Apr 2021 02:59 AM PDT

lineage18.1 还没有 k40 版本 或者他们至少还没测试

今天第一次用小米 发现 v2ng 即使下载下来 也无法安装 提示去应用商店下载另外类似软件

另一个 b 开头 v 结尾的 点几次都无法启动

caoliu 被默认浏览器报"按照国家法律法规 请求被停止"

私以为 小米肯定在监控所有用户 你装了翻的 他们肯定有记录了

我想尽快把原系统刷掉

求教一个 js 的问题,入门菜鸡

Posted: 28 Apr 2021 02:33 AM PDT

大概场景就是有一段源代码,不修改它

//源代码 ... function a(){ console.log("111"); } ... a(); console.log("333"); ... //新代码 function b(){  console.log("222"); } 

大概就是想在 a 调用完立刻调用 b 输出结果顺序为 111 222 333

扩展一步,如果是调用前能办到吗,即在执行 a 前先把 b 执行

(不知道 a 被调用了几次,但想把 b 绑定在 a 上)

可以在 b 中直接修改 a 的运行时代码吗?

感谢~

开发前的设计要怎么保证扩展性呢,感觉怎么设计都赶不上突然的变化

Posted: 28 Apr 2021 02:25 AM PDT

每次设计时,都要求要考虑好未来的扩展性。结局就是要么没有未来,要么未来也全部推翻

求教如何替换网页原本的 js

Posted: 28 Apr 2021 02:10 AM PDT

大致情况:我在某网站上被禁用了某些功能。我看了一下,是通过 js 实现功能禁用的。
我想能不能通过某种方法替换掉这个 js,使得这个 js 无效。

我好像发现了 RDP 的一个 BUG

Posted: 28 Apr 2021 02:01 AM PDT

远程多台局域网的电脑,剪贴板会失效;
但远程多台不是局域网的电脑又很正常,还能从远程 A 直接复制到远程 B 。
大家有没有遇到过这种情况?有没有解决的方法?

你们公司一般新人入职多久会分配开发任务?来到公司快两周了,还没分配开发任务。

Posted: 28 Apr 2021 01:51 AM PDT

现在的每天的工作就是熟悉项目代码+把关 hr 转过来的简历

如何移除 Google 搜索中被引流站爬取的内容

Posted: 28 Apr 2021 01:45 AM PDT

网站上存在一些敏感信息,关键词被 Google 爬取到了。现在在源网站中移除了相关内容,使用 Google 的更新 Cache 使得关键词的搜索内容也从 Google 搜索结果中移除。

现在的问题是之前的搜索被一些博彩网站爬取了,导致当前 Google 搜索关键词,出来的都是这些引流网站,并包含了敏感的缓存内容。点击这些引流网站,跳转到的也是其他网站的内容(不存在实质性内容,我理解就是欺骗点击量)。

因此我尝试了向 Google 举报 Spam,结果一个多月过去了还是没有变化。尝试更新 Cache,被 Google Deny 。这些结果要怎么移除呢?

Java 自动装箱问题求助

Posted: 28 Apr 2021 01:36 AM PDT

Integer skillId = Objects.nonNull(classifyResponse) ? classifyResponse.getSkillId() : 0; getSkillId 返回一个 Integer 对象,为空就会报空指针异常,但是我?后面直接写 null 就不会报异常为什么? java8 版本。

为什么 PHP .ini 设置中的 error_reporting 在 cmd 命令行下不起作用?

Posted: 28 Apr 2021 12:35 AM PDT

已经修好 php.ini 里的错误级别,php -i 查看也生效了,但是命令行运行 php 文件时变量未定义仍报警告。

CMD 运行程序中文乱码的疑问。

Posted: 27 Apr 2021 11:17 PM PDT

WIN10 的 CMD 默认编码是 gbk,php 文件编码也是 gbk,在命令行运行 php 文件输出中文乱码或不显示,把 php 文件编码转换为 utf8,再运行中文正确显示,请问这是什么原理?
难道 php 运行的文件默认编码是 utf8 ?并根据前端编码转换输出编码?
如何在命令行运行 gbk 编码的 php 文件并正确输出中文?谢谢。

线程奔溃求解,有偿

Posted: 27 Apr 2021 10:08 PM PDT

laya 打包的游戏 单独游戏是可以运行的,加入 GDTMobSDK 广点通包就会程序崩溃
打包成功后,运动直接卡在启动页,有偿求解

有什么方法禁止安装 app 吗?

Posted: 27 Apr 2021 09:00 PM PDT

老人的手机一段时间不管就装了很多垃圾 app,删了还能自动装上
Android 自带的外部来源应用啥的不管用

手写一个在 Flutter 里展示”精灵图“的 Widget

Posted: 27 Apr 2021 08:57 PM PDT

前言

之前用 Flutter 里的游戏引擎 Flare 做了一个"是男人就坚持 100 秒"的游戏

使用 Flare 引擎之后,完全没有了Flutter应用特有的代码风格。虽然更适应我这类有过游戏开发经验的开发者,但并不利于我们学习Flutter框架。所以我在那篇文章最后也说了,要抽空用 Widget 重写一次这个游戏。

首要任务,就是得有一个支持"精灵图"的Widget,既然是学习,那就不能用别人开发好的,必须得自己亲手造轮子。

什么是"精灵图"

image.png

精灵图的英文是spritesheet(精灵表单),就是在一张图上放置多个图形,只需要加载到内存里一次。在展示的时候,仅展示单个图形的区域。一般多个图形多用来放置连续动画的多个关键帧。除了在游戏引擎里很常见以外,为了减少 web 请求,在前端领域也很常见。

原理拆解

加载一张大图,但每次只展示图片的特定区域

image.png

比如这张飞机的精灵图,尺寸是 330x82 (像素),横向排布 5 个画面,那么单个画面的尺寸就是330/5 = 66。我们每次展示的区域为x=66*画面序号,y=0,width=66,height=82

可以设定横向排布或纵向排布

精灵图可以横向或纵向排布,有些游戏引擎的贴图最大尺寸为 4096x4096,所以还有些情况是需要我们换行切换的,但原理差异并不大,这里就不过多讨论了。

可以设定播放时间间隔,自动切换多个连续区域

2021-04-08 09_45_16.gif

大部分时候我们是需要用精灵图来展示动画的,比如这个飞机的精灵图。其中第 1,2 幅画面用于展示飞机飞行状态的动画,需要循环播放。

2021-04-08 09_48_43.gif

第 3,4,5 幅画面用于展示飞机爆炸的动画,只需播放一次。

思考应该用哪些 Widget 来搭建

通过一个动画演示来看看我们需要哪些 Widget

2021-04-08 10_00_37.gif

  • 可以控制显示区域的 Widget ( Container )
  • 需要可以指定坐标的 Widget ( Stack+Positioned )

原理也清楚了,也知道该用什么 Widget,那么接下来的代码就很容易了

将思路转变为代码

@override Widget build(BuildContext context) { return Container(     width: 66,     height: 82,     child: Stack(       children: [         Positioned(           left: 66*currentIndex,           top: 0,           child: widget.image         )       ],     ), ); } 

加入定时器,根据设定的时间间隔改变currentIndex,那么图片看上去就动起来了。

Timer.periodic(widget.duration, (timer) {      setState(() {       if(currentIndex>=4){         currentIndex=0;       }       else currentIndex++;     });   } }); 

我们再进一步封装成一个自己原创的Widget,下面是这个 Widget 的全部代码

import 'dart:async';  import 'package:flutter/widgets.dart';  class AnimatedSpriteImage extends StatefulWidget {    final Image image;   final Size spriteSize;   final int startIndex;   final int endIndex;   final int playTimes;   final Duration duration;   final Axis axis;    AnimatedSpriteImage({     Key? key,     required this.image,     required this.spriteSize,     required this.duration,     this.axis = Axis.horizontal,     this.startIndex = 0,     this.endIndex = 0,     this.playTimes = 0,//0 = loop   }) : super(key: key);    @override   _AnimatedSpriteImageState createState() => _AnimatedSpriteImageState(); }  class _AnimatedSpriteImageState extends State<AnimatedSpriteImage> {    int currentIndex = 0;   int currentTimes = 0;    @override   void initState() {      currentIndex = widget.startIndex;      Timer.periodic(widget.duration, (timer) {        if(currentTimes<=widget.playTimes){         setState(() {           if(currentIndex>=widget.endIndex){             if(widget.playTimes!=0)currentTimes++;             if(currentTimes<widget.playTimes||widget.playTimes==0)currentIndex=widget.startIndex;             else currentIndex = widget.endIndex;           }           else currentIndex++;         });       }     });      super.initState();   }    @override   Widget build(BuildContext context) {     return Container(         width: widget.spriteSize.width,         height: widget.spriteSize.height,                  child: Stack(           children: [             Positioned(               left: widget.axis==Axis.horizontal?-widget.spriteSize.width*currentIndex:0,               top: widget.axis==Axis.vertical?-widget.spriteSize.height*currentIndex:0,               child: widget.image             )           ],         ),     );   } } 

封装得好,使用起来也尤其方便。

//播放飞机飞行状态动画 AnimatedSpriteImage(   duration: Duration(milliseconds: 200),//动画的间隔   image: Image.asset("assets/images/player.png"),//精灵图   spriteSize: Size(66, 82),//单画面尺寸   startIndex: 0,//动画起始画面序号   endIndex: 1,//动画结束画面序号   playTimes: 0,//播放次数,0 为循环播放 )  //播放飞机爆炸动画 AnimatedSpriteImage(   duration: Duration(milliseconds: 200),//动画的间隔   image: Image.asset("assets/images/player.png"),//精灵图   spriteSize: Size(66, 82),//单画面尺寸   startIndex: 2,//动画起始画面序号   endIndex: 4,//动画结束画面序号   playTimes: 1,//播放次数,0 为循环播放 ) 

求大佬指教这个 spring aop 的切点表达式怎么写

Posted: 27 Apr 2021 08:22 PM PDT

我有一个类,类里面的某个方法上有一个自定义注解,现在我想用 aop 拦截这个类的所有方法,可以实现吗?如果能实现这个切点表达式该怎么写呢?

Java 协议管控

Posted: 27 Apr 2021 07:15 PM PDT

我们这边一个中台需要调用各种技能,但是现和各技能的协议是不确定的,有的字段直接扔进一个 map 里面,有的技能又用不上,比较乱。现在我们中台想管控这些字段,各个技能只能用我们配置的协议字段,有没有什么好的框架或者办法控制吗?

求问怎么提高 FTP 传输的速度

Posted: 27 Apr 2021 03:37 PM PDT

弄了一个种子盒子,然后用 FTP 将里面的东西拖到本地 我用的是 FileZilla,但是传输速度好的情况下就 2MB/S,慢的话几百 KB 求问有什么提高速度的方法么?

有用 M1 芯片 Mac 的 V 友吗,现在这个时间点, Java 开发是否可以完美使用了?

Posted: 27 Apr 2021 02:40 PM PDT

  • 受够了 15 寸 MBP 的风扇声音,想要换 M1 的 Mac 了。
  • 平时用的几个关键应用和 JVM,IDEA,Maven,Docker 和 X86 的 docker 镜像是否能够完美适配 M1 了?

淦。。Oracle 注册始终不给过

Posted: 27 Apr 2021 01:14 PM PDT

啥代理都没挂,地址都是真实的,招商 visa 卡,扣款也成功了(扣完秒退款)但是就是不给过

Nginx 将 location /docker-registry proxy_pass 到 docker registry 出现“error parsing HTTP 404 response body”

Posted: 27 Apr 2021 12:08 PM PDT

我使用 Nginx 将 /docker-registry proxy_pass 到 http://localhost:5000/,以下是配置:

http {    server {       server_name ...;       listen 443 ssl;        ssl_certificate ...;       ssl_certificate_key ...;        location /docker-registry {          proxy_pass http://localhost:5000/;       }    } }  events { } 

但是执行docker push {domain}/docker-registry/hello-world时报错了,我应该怎么解决呢?

报错信息如下:

error parsing HTTP 404 response body: invalid character '<' looking for beginning of value: "<html>\r\n<head><title>404 Not Found</title></head>\r\n<body>\r\n<center><h1>404 Not Found</h1></center>\r\n<hr><center>nginx/1.18.0 (Ubuntu)</center>\r\n</body>\r\n</html>\r\n" 

如果我将 location /docker-registry 改为 location /,然后执行 docker push {domain}/hello-world,是可以成功的。

初入坑 devops 的大学生 想对 devops 有较好的学习和了解有什么建议吗

Posted: 27 Apr 2021 11:13 AM PDT

项目 docker(简单套壳) + springboot + springcloud ( nacos+gateway )想要上 CI/CD 不想单纯完成任务,想较为系统的学习一下 devops 的一些知识

k3s/k8s 如何远程控制?比如使用 kubenav 或者 kuber app 来远程访问时, 6443 端口证书如何导出到手机上?

Posted: 27 Apr 2021 10:31 AM PDT

我想配置一下在手机上访问 Kubernetes 远程集群。现在遇到的问题是,我可以用 kubectl proxy 把 API server 代理到服务器上然后用 SSH 转发到本地。

不过在手机上不方便如此操作。

想问一下能否直接访问 服务器公网 IP:6443 来实现远程访问 /控制?

目前卡在了 TLS 证书上。k3s 有一大堆证书,可以导入到 iPhone 并且信任。但是似乎没有作用。请问大概是用哪一个呢?

如何打印 Python 线程堆栈?

Posted: 27 Apr 2021 08:41 AM PDT

现在线程占用 CPU 比较多,但是代码用的开源的,还没有理清逻辑,想直接在线 debug 一下线程。用什么工具好? GDB 、pyflame,还是其他什么工具?

电动汽车的技术栈都有那些?

Posted: 27 Apr 2021 05:01 AM PDT

今天的特斯拉仿佛看到了几年前的三星 S7,是非对错暂且不表,感觉电动车行业可能会迎来一波爆发。想了解下造电车过程中哪些技术最有价值?也会好做个准备,将来能多一条路走

请教一个大问题~关于 PsychoPy

Posted: 27 Apr 2021 02:11 AM PDT

我是一个学习心理学的学生,没有学过 py,但是我们最近有一个作业是关于 py 的。老师要求我们使用 PsychoPy,把论文里的数据套进去然后模拟实验(按照我的理解)。电脑小白看到这个已经晕菜了,所以有大佬可以给我讲讲吗?非常感谢!鞠躬:3

No comments:

Post a Comment