Tuesday, April 20, 2021

V2EX - 技术

V2EX - 技术


我来说说异步框架的最大缺点

Posted: 20 Apr 2021 03:47 AM PDT

异步大家都在夸,都在说他的好处,但是似乎没人说过他的最大缺点,我来说说吧,避免踩坑。

异步因为是只有一个线程,如果有一个地方阻塞了,那整个网站全部都卡住了(多进程的另说),所以你得时刻记得,如果会阻塞的方法,就得用异步的库。另外还得确保别写出死循环的逻辑,不然也是卡住整个站。

异步现在支持最好的应该是 nodejs 吧,各种异步库都有,但是 python 的支持就少很多了,如果用 gevent,猴子补丁不能帮你把所有的接口都补成异步的,所以你得清楚什么方法是可以用的,例如 commands 这个就不能用,没打补丁,可以改用 subprocess 。

写异步的代码时得时刻提醒自己以上问题,但是如果用多线程模型,就不用担心这些,如果你的网站不是特别大的访问量,可以使用多线程模型,够简单;如果是需要高并发,有大量用户,可以用异步框架并始终记住不要用阻塞方法。

如果说得不对的地方,请大家指点。

现在 pyenv 怎么装呀

Posted: 20 Apr 2021 03:46 AM PDT

突然发现 github 连不上了,导致我的 ansible 脚本走不通了

有啥练手项目推荐么

Posted: 20 Apr 2021 03:42 AM PDT

在二线城市待久了觉得自己越来越井底之蛙了
想找个项目体验下新技术
(当然还有点是上班事情不多确实也无聊,写代码摸鱼也不那么容易被发现)
不一定要纯安卓,涉及后端的我也大概会一点
web 端似乎人均撸博客
不知道 V 站的安卓大佬们都是怎么提升姿势水平的

有个问题我不明白

Posted: 20 Apr 2021 03:40 AM PDT

如果作为一个程序员,分享自己正儿八经的开源项目 ,属于推广,然后还要被 万夫所指。

这到底是一种什么样的风气?

这些人到底是什么心理? 为什么看到个人项目就嗤之以鼻,闭着眼睛喷。是因为 996 太憋屈了,所以需要在网上发泄吗?

还有最后一个问题,如果我写一个帖子,名称叫《 Spring 原理解析》再附上 spring 官网的地址,是不是也该放到推广节点? 如果不是的话,为什么把 spring 换成别的项目 就该呢? 难道项目是自己做的 就是原罪吗?

感兴趣的同学瞅瞅 蚂蚁招人了 真海量 HC~

Posted: 20 Apr 2021 03:35 AM PDT

团队:

蚂蚁金服财富前端团队,主要负责财富 tab 里的所有内容。base 上海 /杭州 /北京 均可

职位描述

1 、熟练掌握 JavaScript 、HTML5 、CSS3 的核心技术,包括但不限于 DOM/BOM/AJAX/Canvas/CSS 动画等,熟悉主流移动浏览器的技术特点,熟练使用 jQuery/Zepto 等主流工具库;

2 、熟悉前端主流框架,至少可以熟练使用 React/Vue/Angular 其中一种;

3 、熟悉模块化、前端编译和构建工具,掌握常用编译工具,如 gulp/webpack/rollup 等;

4 、能提供完善的 WebApp 和 HybridApp ( JS 方向)技术方案,了解移动应用 native 开发;有 react native 开发经验者优先;

5 、对技术有强烈的进取心,具有良好的沟通能力和团队合作精神、优秀的分析问题和解决问题的能力。

Node 方向:

1 、熟悉 Node.js Web 应用开发,有大型 Node.js 项目的开发经验,有 koa 、egg.js 等开发经验者优先;

2 、熟悉 Node.js 异步编程,对 koa/co/async 等模块原理机制了解透彻;

3 、熟悉 Web 安全相关知识,并能使用相关技术防范安全漏洞;

4 、关注业内动态,有开源社区贡献者优先;

5 、个性乐观开朗,逻辑性强,善于和各种背景的人合作。

有兴趣的朋友可以 邮箱 Z3VvbC56ZWFsb3RAZ21haWwuY29t 联系,想咨询更详细的也可加 v MTU5ODI0OTkzNjI= 细聊

一个奇怪的关于 UDP 包的问题

Posted: 20 Apr 2021 03:29 AM PDT

直入主题

windows 下 65.55.42.xx (解析 x1ds.xboxlive.com ,微软的 xboxlive 服务) 直接对 65.55.42.xx 发个 UDP 包 port 3074 内容,16 进制: 010000003b0017000000000058626f78204f6e65204563686f205465737400 发出去之后 65.55.42.xx 肯定会回一个包。

但是... 在 linux 下 怎么发,都没有 response 。。。 求大佬指点

linux 下 socat 发包示例 : echo 010000003b0017000000000058626f78204f6e65204563686f205465737400 |xxd -r -p| socat - udp4-datagram:65.55.42.21:3074

类似的问题: https://github.com/shadowsocks/shadowsocks-libev/issues/361

concurrentHashMap 为什么是 CAS+Sychronized 保障线程安全?

Posted: 20 Apr 2021 03:28 AM PDT

为什么不是 CAS+CAS Sychronized+Sychronized?

[翻译] 正式宣布 Visual Studio 2022

Posted: 20 Apr 2021 03:26 AM PDT

原文:[Visual Studio 2022]

首先,我们要感谢正在阅读这篇文章的你,我们所有的产品开发都始于你也止于你,无论你是在开发者社区上发帖,还是填写了调查问卷,还是向我们发送了反馈意见,或者参与了客户研究,感谢你帮助我们继续引导 Visual Studio 的产品路线图。 现在我有一个激动人心的消息要宣布,Visual Studio 2022 的第一个公开预览版将在今年夏天发布。

Visual Studio 的下一个主要版本将会更快、更平易近人、更轻量级,为初学者和构建工业规模解决方案的人而设计。更重要的是有史以来第一次,Visual Studio 将是 64 位的。用户体验将感觉更干净、更智能、更行动导向。

所有的开发团队在地理上变得比以往更加分散了。在过去的一年里,企业需要他们的开发团队安全地协作,更快速地交付解决方案,并不断提高最终用户的满意度和价值。我们正在通过更好的 GitHub 集成使协作变得更容易,使其从 idea 到 code 再到云端无缝衔接。

64 位的 Visual Studio 2022

Visual Studio 2022 将是一个 64 位 的应用程序,将不再局限于主进程 devenv.exe 的 4gb 内存限制。利用 64 位的 Visual Studio,你可以对更大和更复杂的解决方案进行打开、编辑、运行和调试,都不会耗尽内存。

虽然 Visual Studio 将变成 64 位,但这并不会改变用 Visual Studio 构建的应用程序的类型或位数。Visual Studio 将继续成为构建 32 位应用程序的好工具。

我们可以查看这个视频,演示了 Visual Studio 打开一个有 1600 个项目和约 30 万个文件的解决方案时的内存情况,结果真的很令人满意。并没有出现内存不足的情况。🎉

我们还在努力让你的工作流程的每一部分都变得更快、更高效,从加载解决方案到 F5 调试。

为每个人设计

我们正在更新 UI,以更好地保持您的流程。其中一些变化是微妙的外观修饰,使 UI 变得更现代化或减少拥挤感。总的来说,我们的目标是降低复杂性,减少认知负担,以便您可以集中精力,保持在区域内。此外,让 Visual Studio 更容易上手,为每个人提供更好的可用性。下一版本的 Visual Studio 将包括:

  • 更新了图标,以提高清晰度、可读性和对比度。
  • Cascadia Code,一种新的固定宽度的字体,具有更好的可读性和字符支持。(如果你喜欢,今天就可以试用 Cascadia Code !https://aka.ms/CascadiaCode) )
  • 更新和改进的主题。
  • Accessibility Insights 集成,以便在终端用户发现问题之前,尽早检测出辅助功能问题。

个人化

对开发者而言,我们明白,个性化你的 IDE 就像挑选你的办公桌椅一样重要。我们必须让它 "恰到好处",然后才能发挥最大的生产力。让 Visual Studio 2022 对你来说 "恰到好处" 将比以往任何时候都更容易,从定制 IDE 的各个方面,到跨设备同步设置的能力。

开发现代应用程序

Azure

Visual Studio 2022 将使您能够快速、轻松地使用 Azure 构建现代、基于云的应用程序。我们将为您提供大量的仓库,描述了当今应用程序中使用的常见模式。这些仓库由显示这些模式操作的意见代码、用于配置 Azure 资源的基础设施即代码资产以及内置的 GitHub 工作流和 Github Action 组成,在您首次创建项目时,提供完整的 CI/CD 解决方案。此外,所需要的开发环境都将在仓库中定义,以便您可以立即开始编码和调试。

.NET

Visual Studio 2022 将完整的支持 .NET 6,及其用于 Windows 和 Mac 开发人员的 Web 、客户端和移动应用程序的统一框架。这包括了 .NET Multi-platform App UI (.NET MAUI),用于构建 Windows 、Android 、macOS 和 iOS 上的跨平台客户端应用。此外您还可以使用 ASP.NET Blazor 通过.NET MAUI 来编写桌面应用程序。

并且对于大多数应用程序类型,例如 Web 、桌面和移动,您将能够利用 .NET Hot Reload 来对应用代码更改,而无需重新启动或失去应用程序状态。

C++

Visual Studio 2022 将包括对 C++工作负荷的强大支持,包括新的生产力功能、C++20 工具和 IntelliSense 。新的 C++20 语言功能将简化对大型代码库的管理,改进的诊断功能将使 templates 和 concepts 变得更容易调试。

我们还集成了对 CMake 、Linux 和 WSL 的支持,使您更容易创建、编辑、构建和调试跨平台应用程序。如果你想升级到 Visual Studio 2022,但又担心兼容性问题,二进制兼容的 C++ 运行时将使你毫无痛苦。

创新触手可及

诊断和调试

自信地调试应用程序是您日常工作中的重要部分。Visual Studio 2022 将包括核心调试器的性能改进,并提供更多的功能,例如探查器中的火焰图以更好地发现热点路径、依赖断点以实现更精确的调试,以及集成的反编译体验版,这将使您能够单步调试在本地没有的代码。

实时协作

Live Share 为与他人协作、交换想法、结对编程和审查代码提供了新的机会。在 Visual Studio 2022 中,Live Share 将引入集成的文本聊天,这样您就可以在没有任何上下文切换的情况下就您的代码进行快速对话。您还可以选择安排重复使用相同链接的定期会话,从而简化与您经常联系的人的协作。为了在组织内更好地支持 Live Share,我们还将引入会话策略,该策略定义了协作的任何权限要求(例如,读 /写终端是否应该可以共享)

洞察力和生产力

Visual Studio 中 的 AI IntelliCode 引擎在无缝预测您的下一步行动方面将继续变得更好。Visual Studio 2022 将为您的日常工作流程提供更多、更深入的集成,帮助您在正确的时间、正确的位置采取正确的行动

异步协作

Visual Studio 2022 将包括对 Git 和 GitHub 的强大新支持。提交代码、发送拉取请求和合并分支时,你会注意到很多内置的逻辑和检查点,以指导你高效地完成合并和审查过程,不至于拖了同事的后腿。我们在这里的指导原则是帮助你对你交付的代码有更高的信心。

改进的代码搜索

代码搜索是软件开发生命周期中不可或缺的一部分。开发人员使用代码搜索有很多原因:向他人学习、共享代码、在重构时评估更改的影响、调查问题或审查更改。我们致力于在 Visual Studio 2022 中为所有这些关键活动提供更好的性能,以提高您的工作效率。您还将能够在已加载的范围之外进行搜索,以找到您要找的东西,无论它位于哪个代码库或 repo 中。

更新 Visual Studio for Mac

我们对 Visual Studio 2022 for Mac 的目标是,为 Mac 量身定做一个现代化的 .NET IDE,提供你所喜爱的 Visual Studio 的生产体验。我们正在努力将 Visual Studio for Mac 转移到原生的 macOS 用户界面,这意味着它将具有更好的性能和可靠性。这也意味着 Visual Studio for Mac 可以充分利用所有内置的 macOS 辅助功能。我们正在更新整个 IDE 的菜单和术语,以使 Visual Studio 在 Mac 和 Windows 之间更加一致。Visual Studio 的全新 Git 体验也将登陆 Visual Studio for Mac,首先是 Git Changes 工具窗口的引入。

让我们知道你的想法

这里只向您展示了我们正在进行工作中的一点点亮点,但我们欢迎您对 Visual Studio 2022 的方向提出初步想法。一如既往,您可以前往新的开发者社区,浏览现有的功能请求,进行投票和评论,或者创建您自己的功能请求。

请继续关注有关 64 位 Visual Studio 2022 预览版 1 的公告,其中将包括我们的 UI 改进和辅助性改进。(请注意, 像任何正在进行中的工作一样,这些功能仍在开发中,因此其中一些功能将在首次公开发布后出现在 Visual Studio 2022 中。)

谢谢大家!

这两种表设计, 用哪种好?

Posted: 20 Apr 2021 03:25 AM PDT

有个规则表,需要判断规则适用于星期几
是采用方式 1 这种反范式的方式,还是创建一张一对多关联表的方式

方式 1

CREATE TABLE `xx_rule` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `content` varchar(255) DEFAULT '' COMMENT '规则内容(这个字段不是重点)',   `week` varcahr(255) DEFAULT '' COMMENT '(重点字段)规则适用于星期几;逗号分割,如果星期一到星期天都适用则填:1,2,3,4,5,6,7',   PRIMARY KEY (`id`) ); 

方式 2

CREATE TABLE `xx_rule` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `content` varchar(255) DEFAULT '' COMMENT '规则内容(这个字段不是重点)',   PRIMARY KEY (`id`) );  CREATE TABLE `xx_rule_week` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `rule_id` int(11) DEFAULT 0 COMMENT '规则表 ID',   `week` int(11) DEFAULT 0 COMMENT '规则适用于星期几;填 1 表示星期一',   PRIMARY KEY (`id`) ); 

私有 Go modules 管理最佳实践请教

Posted: 20 Apr 2021 03:20 AM PDT

各位老铁是如何管理私有 Go modules 的呀,我司现在用的 gitlab,想配合 athens 做私服及代理功能.但是除了这种方式,有没有更好的方案推荐呢?

windows 上有没有通过快捷键来执行多个快捷键的软件?

Posted: 20 Apr 2021 03:18 AM PDT

希望能找到个方法来执行"打开 OneNote 并且新建页面"这个操作,也就是打出 shift+win+N+ctrl+N 这 5 个键。

(题外话,之所以不用 win+N 打开快速笔记是因为创建的笔记没有创建日期)

但这样的话每次都要打 5 个键,所以想来问问各位有没有那种可以通过自定义的快捷键来执行以上快捷键的软件?

(之前找了一下,看到有用快捷键来打开软件的软件,但还没找到能执行快捷键的)

django uwsgi nginx websocket 搭建后台管理,本地没问题,上传服务器 websocket 报 502 错误,其他接口能正常访问

Posted: 20 Apr 2021 03:16 AM PDT

nginx 配置: server { listen 80; server_name 服务器地址; charset utf-8; client_max_body_size 75M;

location / {     root /root/dist;     index index.html;     try_files $uri $uri/ /index.html;     } location /api/ {     uwsgi_pass 127.0.0.1:8001;     include /etc/nginx/uwsgi_params;   } location /ws/ {     proxy_pass http://127.0.0.1:8001;     proxy_http_version 1.1;     proxy_set_header Upgrade $http_upgrade;     proxy_set_header Connection "upgrade";     proxy_set_header Host $host;     proxy_set_header X-Real-IP $remote_addr;     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;     } 

} nginx 配置:

[uwsgi] chdir = /root/.... home = /root/.... module = ....  master = True processes = 2 harajiri = 60 max-requests = 5000  socket = 127.0.0.1:8001 uid = root gid = root pidfile = /root/master.pid daemonize = /root/conf/logs/uwsgi_hzmj.log vacuum = True log-maxsize = 102400  buffer-size = 65536 

websocket 报错:

WebSocket connection to 'ws://服务器地址 /ws/index/data/' failed: Error during WebSocket 		handshake: Unexpected response code: 502 

现在 1000 元左右能买到全新非国产安卓机吗?

Posted: 20 Apr 2021 02:42 AM PDT

主力是 iPhone,在之前的一篇帖子(/t/768799 )中,不少 V 友给的建议是专门买一部 Android 手机存储隐私数据,请问现在 1000 元左右能买到全新非国产安卓机吗?只有两个要求:
1. 非国产:不太相信也受不了国产 ROM 的各种「优化」
2. 全新:因为无法保证前一任机主有没有做什么手脚,所以要求全新
其它方面没有要求。

大家有 Linux 上推荐的 ImageWatch 吗?

Posted: 20 Apr 2021 02:35 AM PDT

C++ 开发,用 OpenCV 和 Eigen3 比较多,经常需要调试程序时查看内存中的图像 /矩阵内容。

我之前用 VS 的时候,有个叫 ImageWatch 的插件很好用。但目前基本只在 Linux(Manjaro) 上开发了,IDE 用 QtCreator,偶尔也把 vscode 当 IDE 用用。

用过比较长一段时间 gdb-imagewatch,基本功能还是蛮不错的,但最近不知道为什么每次调试都会崩溃,test 也崩溃,可能跟 Manjaro 系统更新有关吧。也尝试过它的改进版 OpenImageDebugger,可它在 Manjaro 上似乎有问题,test 运行正常,但每次调试程序开启 gdb/lldb 时并不会打开 ImageWatch 窗口。

还有没有别的调试图像的方法呢?求大佬推荐

哪些软件是 Windows 上有,反而 macOS 没有的?

Posted: 20 Apr 2021 02:20 AM PDT

纯属好奇,自己一直在用 Windows,自然感觉不到有什么优势,然后有时候看到一些优秀软件,都是 macOS 上独占的。目前自己能想到的也只有 Listary 了,一款可以快速打开 /搜索文件的工具。

提什么类别的都可以,也可以是 Windows 上使用体验更好的软件。

求教! 网页接入微信支付流程?

Posted: 20 Apr 2021 02:18 AM PDT

功能背景: 当用户欠费时,发送通知,并提供微信支付功能缴纳费用

理想状态: 用户登录账号时,从后台查询欠费金额并弹窗提示,可点击缴费按钮弹出支付二维码,后台监控支付状态,支付成功后,返回结果

项目技术结构:Vue + Java[SpringBoot]

备注: 目前是内网环境,没有域名。 微信可个人,也可企业

DBA 行业是否将会消亡?

Posted: 20 Apr 2021 02:16 AM PDT

最近几年由于企业数据上云、自动化运维、人工智能等技术的快速发展,让很多 DBA 感到焦虑,担心技术的变革会让自己饭碗不保,其实大可不必如此。新技术的到来意味着一些简单机械、需要大量人工的工作可以被自动完成,进入 DBA 行业的门槛正在变低,但这绝不意味着 DBA 行业的消亡,反而随着时代的发展和数据量的井喷而愈发重要!

首先简单解释一下什么是 DBA 及他们的工作内容?

DBA:数据库管理员( Database Administrator,简称 DBA),是从事管理和维护数据库管理(DBMS)的相关工作人员的统称,属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。

DBA 的核心目标是保证数据库管理系统的稳定性、安全性、完整性和高性能。

DBA 的主要工作内容为数据库的安装、数据库配置和管理、权限及安全方面的管理、监控和性能调节、备份恢复、监控、审计数据等等。

——百度百科

DBA 当前的时代背景和环境:
  • 当前是数据时代,巨量的数据正在源源不断的生成,数据的量变必将引起质变,这种质变将会影响着 DBA 的工作内容和职位要求。
  • 人工智能( AI )、机器学习、物联网( loT )、云存储、大数据、微服务等的兴起,引发了大多数企业数字转型的浪潮。
  • 去 IOE 进程加速、国产数据库的成熟和兴起、企业对不同场景的不同需求等等,推动着 DBA 需要更加纵深宽阔的知识储备和能力。
  • 开发人员的负担加重、开发周期越来越短、大量的软件不断涌入市场中、一切都以更快的速度运行,传统的运维越来越难跟上这种步伐......
DBA 面临的挑战:
  • 迁移到云:企业中数据迁移到云并与云集成,这是当前的大趋势。
  • 迁移到新技术的需求:例如需要从一些传统数据库迁移到国产或新型数据库中等等。
  • 管理更多的数据库:未来使用单一数据库的可能性越来越小,根据企业的业务场景使用更多更适合的数据库将会成为常态。
  • 自动化运维:当前自动化运维已经越来越多的使用到生产环境中,相比人工而言的更稳定更可控,促使 DBA 向更高阶的地方去。
  • 更繁重的部署任务:为了使 DevOps 有效地工作,必须将数据库无缝地包含在软件开发生命周期中。这意味着 DBA 需要与开发人员更紧密地合作,并有效地改变他们的思维方式,以便在涉及数据库时遵循 DevOps 流程。
DBA 迎来的新机遇:

​ 数据时代已经到来,数据正在成为企业发展和进步的重要资产和动力,并且数据正以指数的形式扩展爆发,这使得数据的治理成为极其重要的一件事。如此庞大数据的治理,靠一个和几个人的力量将越来越难,由此会引起 DBA 的职能越来越清晰,从业者将会更加聚焦在某一个技术领域,越来越需要团队的协作与配合。最后,当前正是数据百花齐放的时代,数据库种类繁多,牵涉到数据库应用和部署的技术也纷繁复杂,这将带给 DBA 们众多大展身手的空间。

死亡言论言过其实

在一些论坛中,常会看到 「 DBA 行业将死,乘早转行」的言论,这种言论背后的焦虑无非是云时代和自动化运维等技术的发展,让身在此行业中的人感到压力巨大而造成的。新技术以更低的成本和更高的稳定性能让很多人饭碗不保。诚然,没有人能抵挡历史的车轮,新技术的发展在为我们的工作带来便利的同时一定会让部分人的工作被替代,但是塞翁失马焉知非福?务必需要辩证的看待,理性的对待,慎重的决定。

DBA 的未来

首先,各类数据库管理工具或自动化运维工具的产生并不代表着 DBA 要做的事情变少,很多技术还没有成熟、需要做的工作还很多,DBA 在接下来的很长一段时间内将仍继续存在,而高级或专精某一门技术的 DBA 将会将会被企业愈发重视,前景无限。此外,DBA 由于对数据库的熟悉,可转为到数据分析、架构师、数据库工程师等各类各个方向,均有广阔空间,而且随着数据库产品软硬件的逐渐结合,或许会衍生出我们未曾想到的职业。

结语

数据时代,DBA 的角色不会被替代,它只可能是换了另一种方式存在着,更加深入的影响着我们的生活。

c++ 20 有人正经用起来了吗?谈谈感受啊

Posted: 20 Apr 2021 02:14 AM PDT

只关心能彻底告别头文件了吗?

不求达到 rust cargo 程度 有个 go module 水平偶尔手动编辑一下输入个命令啥的也可以了!!

现在好多 APP 打开就弹出升级提示 还要一个个点击暂不升级,真是心累。

Posted: 20 Apr 2021 02:07 AM PDT

如何解决?

请教两个问题,关于类成员赋初值和 std::vector 的 pushback()方法与移动构造

Posted: 20 Apr 2021 01:56 AM PDT

大佬们好,小弟请教两个问题

1.类成员赋初值是在类内定义还是在初始化列表定义好? 记得有本书讲过,不记得了。。。。

比如

#include <vector> #include <iostream> class TestA {     public:     TestA() :a(11)  //方法 1     {     std::cerr << "test1 cons"<< std::endl;     }     int a = 10; //方法 2     TestA(const TestA &ta)     {     a = ta.a;     std::cerr << "test1 left copy"<< std::endl;      }     TestA(TestA &&ta)     {     a = ta.a;     std::cerr << "test1 right copy"<< std::endl;     } }; int main(int argc, char *argv[]) {    TestA aaa;    TestA bbb;    std::cerr << "~~~~"<< std::endl;    std::vector <TestA > vt;    vt.push_back(std::move(aaa));    vt.push_back(std::move(bbb));    return 0; } 

2.上面程序输出

test1 cons test1 cons ~~~~ test1 right copy test1 right copy test1 left copy 

为啥还输出了一次 left copy?就很怪 如果把 TestA(const TestA &ta)注释掉,就会出现 3 次 right copy

opencv 识别表面 指针如何确定线段的长度就是每个指针的长度

Posted: 20 Apr 2021 01:30 AM PDT

我用霍夫变换可以识别出来分针和时针, 但是我需要知道那条线更长, 这样才能知道那个是分针那个是时针。

现在的问题是, 霍夫变换只是标注直线而不是线段, 所以这边没法知道那个指针更长, 这个应该怎么做?

我用的测试图片 https://imgtu.com/i/c7ocLQ

我现在用的代码

import cv2 import numpy as np  img = cv2.imread('clock.png') h, w = img.shape[:2] gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray, 50, 150)  lines = cv2.HoughLines(edges, 1, np.pi / 180, 100)  for i in range(len(lines)):     for rho, theta in lines[i]:         a = np.cos(theta)         b = np.sin(theta)         x0 = a * rho         y0 = b * rho         x1 = int(x0 + w * (-b))         y1 = int(y0 + w * (a))         x2 = int(x0 - w * (-b))         y2 = int(y0 - w * (a))          cv2.line(img, (x1, y1), (x2, y2), (0, 0, 255), 2) cv2.imshow("edges", edges) cv2.imshow("lines", img) cv2.waitKey() cv2.destroyAllWindows()  

[求助] 这段代码错在哪里了?

Posted: 20 Apr 2021 01:23 AM PDT

g = $(".th-bg:first").siblings();
for (var i = 0; i< g.length; i ++)
{$('g[i]').children("td:first").append('<input type="button" value="BTTS">')};

我想给 th-bg 所有兄弟标签的第一个子标签增加一个按钮事件。 这里哪里写错了呀?


下面这样是可以的,但是只能增加第一个,为什么?? 求解
$(".th-bg:first").siblings().children("td:first").append('<input type="button" value="BTTS">');

大家平时都是怎么保护隐私的?

Posted: 20 Apr 2021 01:13 AM PDT

现在隐私的话题越来越多了,有些想法想和大家交流下: 1 、大家平时手机上会定期删除或转存一些敏感内容嘛?比如私人照或短信之类的数据 2 、就数据安全而言,网盘值得信任吗?如果有条件,加密上传会不会是个好的选择? 3 、大家还有哪些黑科技用来保护自己的隐私安全的呢?

网站莫名其妙变慢和遭遇 403 错误

Posted: 20 Apr 2021 01:02 AM PDT

正常上线一年半了,一直正常,昨晚开始速度明显变慢,今天访问几次之后就会出现 403 错误,偶尔还有 500 错误;开始排查:

1 、CPU 内存正常,没有访问量突增的情况;

2 、( IIS 服务器)检查默认文档,正常;

3 、查看日志,也没有异常流量;

4 、同服务器其他网站正常——不是服务器问题。

这还可能是什么原因?

Python 开发规范

Posted: 20 Apr 2021 12:50 AM PDT

使用 python 很多年了,除了像 pep8 这种语法规范,就没见过 python 有很系统的开发规范,是我孤陋寡闻么。

关于 Java 垃圾回收的问题

Posted: 20 Apr 2021 12:33 AM PDT

Java 为什么不采用 360 垃圾清理来进行垃圾回收呢?

grpc 环境的安装也是一个坑啊

Posted: 19 Apr 2021 11:43 PM PDT

如题。

CentOS 7 都没办法好好安装了。
按照官方的直接用 make 又不支持,说必须是 cmake 环境

默认是 gcc 4.8.5, 编译的过程中又报说。一看,却子模块的 abseil-cpp 要求环境必须是 gcc5.1+。

自己动手编译安装了个最新版的 gcc,编译时还是不过,看起来是 libstdc++ 的问题,估计还是用了 gcc 4.8.5 的库。

真的是自己挖的坑,得自己填。这方面的问题,网上好像都没有人出现过。

目前正在退回旧版本的 grpc 来编译看看。

刚学前端 VUE,请问这种多级菜单用什么实现好

Posted: 19 Apr 2021 11:28 PM PDT

类似钉钉的多级部门选择,列表点击进入下一级部门,不确定层级数

dwm win32 有没有朋友用过,有几个问题请教?

Posted: 19 Apr 2021 09:35 PM PDT

慢慢习惯于 linux 上的 tiling windows manager,加上 powershell 越来越强大,想把 windows 的使用也编程这种平铺桌面的模式。 昨天刚好看到了 dwm win32 的替代,就用了起来。有几个地方不趁手,想请大侠们看看。

  1. 这个东西是套在 windows 的桌面环境上的,启动有一些慢,能不能把 windows 的桌面环境关掉呀?

  2. 快捷键的问题:默认的 modkey 是 alt,我想改成 win,但是config.h.in里面是用 #define MODKEY (MOD_ALT)不是 linux 里的Mod1MaskMod4Mask,我想用 win,应该改成什么呢? #define MODKEY (MOD_WIN)不起作用。 另外就是快捷键会和 windows 的快捷键同时响应,有没有什么办法屏蔽掉 windows 的快捷键?

  3. 显示的时候会遮挡桌面的上部的一部分,能不能达到与 x11 一样的显示效果。

  4. 对于有 tab 的窗口,他的处理办法是把 tab 栏显示出来,能不能做到把 tab 自动分成窗口去处理。

谢谢大家,下面是项目地址

另外也求其他类似的方案。

请有 m1 芯片苹果电脑的朋友,测试软件,大概花 2 分钟。 给红包

Posted: 19 Apr 2021 09:22 PM PDT

苦于没有 m1 芯片的新设备,测试一个 electron 写的桌面软件,2 分钟, 给个反馈结果就好。
wx: d2FuZ2xpbmdsaW5nMjAxOTEx

翻译了 Golang 官方的开发者调研报告,值得一看

Posted: 19 Apr 2021 08:53 PM PDT

翻译了挺久的,感觉值得一看。

2020 Go 开发者调研报告

真香~

一个关于 react 函数组件重新渲染的问题

Posted: 19 Apr 2021 07:06 PM PDT

点击按钮后,触发 setCount(0+1), 此时 count 改变,改变后 count 为 1,函数重新渲染 输出"render" 然后再次点击按钮,触发 count+1,但是外面包了一层 useCallback,函数里面的 count 应该是第一次渲染时的 count,也就是 setCount(0+1),第二次点击 connt 是没有变的,但是函数还是重新渲染了,输出了"render",这是为什么呢?

代码如下

import React, { useCallback,  useState } from "react";  const App = () => {    console.log("render");      const [count, setCount] = useState(0);    const Add = useCallback(() => {     setCount(count + 1);   }, []);    return (     <div>       {count}       <button onClick={Add}>add count</button>     </div>   ); };  export default App; 

[新手] 不懂就问.

Posted: 19 Apr 2021 06:02 PM PDT

user={}
user.name="张 S."
function sayHi() {
alert("hi " + this.name );
}

//function func(){alert(this.name)}
let func = () => alert("hello " + this.name)
user.f=sayHi
user.f() //hi 张 S.
user.ff= func
user.ff() //为什么这里获取不了 this.name?

Java 怎么 300TPS 地去请求一个接口?

Posted: 19 Apr 2021 04:01 PM PDT

功能是查询出用户,然后给这些用户发推送,目前推送速率限制是 300/s, 应该单机就能满足需求,能有多机方案也好,不过还是需要清楚单机能不能做到这个速度。

目前的设计方案是单线程作为生产者查询数据库放到 blockqueue,然后多个消费者消费这个 blockqueue,并发送推送,流控用 guava 的 RateLimiter 。生产者单线程查询数据库,一秒查 300 个以上应该是可以的。

问题: 1,消费者单线程能做到 300/s 发送(用 netty 之类的类库可以做到吗?)? Spring 自带的 resttemplate 应该根本不可能满足这个要求吧?

2,如果是多线程,方案是怎么样?一个线程也需要多个消费者?线程的数量要怎么确定比较好(因为服务还有其他功能需要使用,如果线程太多会不会影响其他功能?)。

3,300/s,假设每个请求(包括返回) 100kb,那每秒流量就是 30mb,所以应该是单机就能承受的,是这样计算的吗?

感觉提问有点太多啰嗦和细节,大家能给个方向意见也行~

nginx 有主动屏蔽 ip 的插件吗?

Posted: 19 Apr 2021 03:00 PM PDT

比如由 lua 插件,或者后端节点调用一个接口,让 nginx 拒绝来自某 ip 的服务员,有现成插件吗?应用场景比如人工认定受到来自某 ip 的攻击。

原生支持屏蔽,但没有取出功能,不太合适,一旦加入除非手动取消否则就永远屏蔽了,不符合需求

virtualbox 安装 win7_32 位的问题

Posted: 19 Apr 2021 02:04 PM PDT

如题,物理机为 redmibook 15 pro, 系统为 ubuntu20.04 ,virtualbox 版本 6.1.16 ,

在安装 win7_32 位时总是在开始安装的阶段就蓝屏,各种配置都试过了 不知道其他人有遇到过没

镜像文件计算过 sha1sum 没问题

蓝屏代码:0x0000007F

Excelize 2.4.0 正式版发布, 新增 152 项公式函数支持

Posted: 19 Apr 2021 10:22 AM PDT

github.com/360EntSecGroup-Skylar/excelize

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。入选 2020 Gopher China - Go 领域明星开源项目 (GSP)、2018 开源中国码云 Gitee 最有价值开源项目 GVP,目前已成为 Go 语言最受欢迎的 Excel 文档基础库。

开源代码

GitHub: github.com/xuri/excelize

Gitee: gitee.com/xurime/excelize

中文文档: xuri.me/excelize/zh-hans

2021 年 4 月 19 日,社区正式发布了 2.4.0 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看 changelog

Release Notes

此版本中最显著的变化包括:

兼容性提示

升级至该版本需要您使用的 Go 语言为 1.15 或更高版本。

新增功能

  • 新增 GetCellRichText API,支持根据给定的工作表名称获取富文本
  • SetPageLayoutGetPageLayout 现已支持设置和获取页面打印缩放比例、指定单色打印、起始页码
  • SetSheetPrOptionsGetSheetPrOptions 现已支持设置和获取工作表标签页颜色
  • SetCellHyperLink 支持设置屏幕提示文字与显示文字,相关 issue #790
  • 创建数据透视表时新增支持 ShowError 选项
  • 流式 API 支持设置单元格公式, 相关 issue #625
  • 公式计算引擎支持不等于运算符
  • 嵌套公式函数现在支持将单元格引用用作参数
  • 支持指定是否设置图表数据系列格式为自动填充颜色
  • 新增 152 项公式函数支持: ATAN, AVERAGE, AVERAGEA, BESSELI, BESSELJ, BIN2DEC, BIN2HEX, BIN2OCT, BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR, CHAR, CHOOSE, CLEAN, CODE, COLUMN, COLUMNS, COMPLEX, CONCAT, CONCATENATE, COUNT, COUNTBLANK, CUMIPMT, CUMPRINC, DATE, DATEDIF, DB, DDB, DEC2BIN, DEC2HEX, DEC2OCT, DOLLARDE, DOLLARFR, EFFECT, ENCODEURL, EXACT, FALSE, FIND, FINDB, FISHER, FISHERINV, FIXED, FV, FVSCHEDULE, GAMMA, GAMMALN, HARMEAN, HEX2BIN, HEX2DEC, HEX2OCT, HLOOKUP, IF, IFERROR, IMABS, IMAGINARY, IMARGUMENT, IMCONJUGATE, IMCOS, IMCOSH, IMCOT, IMCSC, IMCSCH, IMDIV, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER, IMPRODUCT, IMREAL, IMSEC, IMSECH, IMSIN, IMSINH, IMSQRT, IMSUB, IMSUM, IMTAN, IPMT, IRR, ISTEXT, ISPMT, KURT, LARGE, LEFT, LEFTB, LEN, LENB, LOOKUP, LOWER, MAX, MID, MIDB, MIN, MINA, MIRR, N, NOMINAL, NORM.DIST, NORMDIST, NORM.INV, NORMINV, NORM.S.DIST, NORMSDIST, NORM.S.INV, NORMSINV, NOT, NOW, NPER, NPV, OCT2BIN, OCT2DEC, OCT2HEX, PDURATION, PERCENTILE.INC, PERCENTILE, PERMUT, PERMUTATIONA, PMT, POISSON.DIST, POISSON, PPMT, PROPER, QUARTILE, QUARTILE.INC, REPLACE, REPLACEB, REPT, RIGHT, RIGHTB, ROMAN, ROW, ROWS, SHEET, SKEW, SMALL, STDEV, STDEV.S, STDEVA, SUBSTITUTE, T, TODAY, TRIM, TRUE, UNICHAR, UNICODE, UPPER, VAR.P, VARP, VLOOKUP

兼容性提升

  • 当以 nil 作为值调用 SetCellValue 设置单元格的值时,不再为单元格设置空白字符串而以空值代替,解决 issue #756
  • 移除内部处理单元格填充颜色样式时冗余的 XML 可选空值解析标识
  • 提升与 Google Sheets 离线浏览器扩展应用程序的兼容性,相关 issue #769
  • 在筛选器对应的名称中使用绝对引用以提升与 Apache OpenOffice 应用程序的兼容性,解决 issue #776
  • 在流式解析工作表过程中增加 XML 标签关闭事件的处理,提升行 /列迭代器读取性能,修复部分情况下读取行数有误的问题
  • 提高工作簿内工作表文档使用相对路径的兼容性
  • 避免创建重复的富文本样式,解决 issue #787
  • 提高工作簿内工作表文档使用绝对路径与 Windows 目录分隔符的兼容性

问题修复

  • 修复数值舍入精度问题 #764
  • 添加并调整工作表字段的解析顺序,修复部分情况下生成的文档损坏的问题 #766
  • 修复 COTH 双曲余切三角函数计算有误的问题
  • 公式计算链增加对工作表的关联处理,修复部分情况下复制行导致的文档损坏问题,解决 issue #774
  • 删除工作表时增加对名称的处理,解决 issue #775
  • 修复内部函数 newFillsparseToken 圈复杂度过高的问题
  • 修复对工作表默认自定义行高的检查
  • 修复取消工作表中全部合并单元格时导致文档损坏的问题, 解决 issue #782
  • 修复部分情况下筛选条件部分丢失的问题
  • 修复当工作簿包含图表工作表、对话工作表时,UpdateLinkedValue 产生错误的问题
  • 修复部分情况下 GetColWidth 返回默认列宽错误的问题
  • 修复无法通过 Excel 电子表格应用程序向创建的数据透视表中添加时间轴与切片器的问题,解决 issue #804
  • 设置名称时内部的 localSheetId 属性将使用 sheetIndex,修正错误的工作表索引使用
  • 修复部分情况下保存后的文档单元格锁定或隐藏属性可能丢失问题,解决 issue #809
  • 修复流式写入数据后调用普通 API 将导致流式写入的丢失问题,解决 issue #813
  • 修复负值图表数据系列填充颜色丢失问题

性能优化

  • 提高了数值精度处理速度

其他

  • Go Modules 依赖模块更新
  • 单元测试与文档更新
  • 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新
  • 欢迎加入 Slack 频道Telegram 群组 或技术交流群

DingTalk Group ID: 30047129 QQ Group ID: 207895940

Excelize 技术交流群

前端除了 vue react angular,有没有什么更加冷门,稀奇古怪的开发框架,求推荐

Posted: 19 Apr 2021 09:59 AM PDT

暂时没工作压力,这几个框架写久了感觉有点审美疲劳,想折腾折腾点别的用到个人项目上

请教下安卓 TV 大佬,快图浏览在电视上的幻灯片播放按钮不显示,要修改哪里才会显示呢?

Posted: 19 Apr 2021 09:44 AM PDT

No comments:

Post a Comment