关于程序员:Aurelia教程编程入门自学教程菜鸟教程免费教程分享

教程简介Aurelia 是一个用于 Web 和挪动利用程序开发的古代开源 UI 框架。它容许您编写洁净、模块化的 JavaScript。该框架遵循简略的约定,并专一于 Web 规范。 Aurelia入门教程 - 从简略的步骤理解Aurelia,从根本到高级概念,包含概述,环境设置,第一个应用程序,配置,依赖注入,组件,组件生命周期,自定义元素,插件,数据绑定,绑定行为,转换器,事件,事件聚合器,表单,HTTP,参考,路由,历史,动画,对话框,本地化,工具,安全性,捆绑,调试,社区,最佳实际。 教程目录Aurelia教程Aurelia - 概述Aurelia - 环境设置Aurelia - 第一次申请Aurelia - 组件Aurelia - 组件生命周期Aurelia - 自定义元素Aurelia - Dependency InjectionsAurelia - 配置Aurelia - 插件Aurelia - 数据绑定Aurelia - Binding BehaviorAurelia - 转换器Aurelia - EventsAurelia - 事件聚合器Aurelia - 表格Aurelia - HTTPAurelia - 参考Aurelia - 路由Aurelia - HistoryAurelia - 动画Aurelia -DialogAurelia - 本地化Aurelia - 工具Aurelia - 捆绑Aurelia - 调试Aurelia - 社区Aurelia - 最佳实际Aurelia - 有用的资源

June 14, 2023 · 1 min · jiezi

关于程序员:考PMP需要做什么准备考试内容是什么

当初很多人都会通过考据来晋升本人的能力和职业竞争力,对于常常会负责项目管理的人来说,考一份PMP证书对于本人是十分有帮忙的,这是由美国项目管理协会(PMI)在寰球200多个国家发动的针对项目经理的资格认证体系,严格评估项目管理人员常识技能是否具备高品质的资格认证考试,其目标是为了给项目管理人员提供对立的行业标准。上面大使简略介绍一下,有须要的能够在认证大使上具体理解。 PMP认证的重要性: PMP是项目管理畛域最重要的认证之一,受到业内宽泛认可。 在寰球各个国家简直都能找到PMP持证人士负责管理的我的项目。与其余专一于特定地区或特定行业的认证不同,PMP是真正全球通用的认证,不局限于某种项目管理方法论、某一行业或地区。        PMP认证对薪资的影响: PMP持证人士在薪资和支出后劲方面具备显著劣势。依据PMI公布的《薪酬力:项目管理薪酬调查报告》第10版,受访者中PMP持证人士比非PMP持证人士工资更高(均匀高出23%)*。 PMP认证对组织的影响: PMP也将使组织受害。当组织中超过三分之一的项目经理为PMP持证人士时,组织会按时、按估算实现更多我的项目并达成最后指标。(PMI 2015年 Pulse of the Profession® 《职业脉搏考察》) 取得PMP认证意味着持证人士将把握全球通用的项目管理语言,成为寰球项目管理专业人士、组织和专家社区中的一份子,成为我的项目背地的“英雄”。

June 13, 2023 · 1 min · jiezi

关于程序员:从-数据工程-到-Prompt-工程

动动发财的小手,点个赞吧! 数据工程形成了数据迷信过程的很大一部分。在 CRISP-DM 中,这个过程阶段称为“数据筹备”。它包含数据摄取、数据转换和数据质量保证等工作。在本文章中,咱们应用 ChatGPT 和 Python 解决了典型的数据工程工作。通过这样做,咱们摸索了数据工程与提醒工程新学科之间的分割。 简介2022 年 5 月,斯蒂芬·沃尔夫勒姆 (Stephen Wolfram) 和莱克斯·弗里德曼 (Lex Fridman) 发表了题为“编程已死吗?”的粗浅见解。他们探讨了将来开发者是否还会应用高级语言。依据 Wolfram 的说法,许多编程工作能够通过大型语言模型 (LLM) 实现自动化。在撰写本文时,此类模型最突出的例子是 ChatGPT。自 2022 年底推出以来,它产生了惊人的成果。指定要由 LLM 执行的操作称为“提醒工程”。如果 Wolfram 是对的,至多软件开发的一部分将从编写代码转向编写提醒。 在数据迷信方面,数据筹备可能是一项耗时且乏味的工作。那么,为什么不尝试应用 LLM 使其自动化呢?在以下局部中,咱们将应用 ChatGPT 和 Python 解决不同的数据工程问题。咱们没有本人编写 Python 代码,而是应用提醒工程来生成它。咱们的试验是在 2023 年 5 月 19 日基于过后最新的收费 ChatGPT 版本 (GPT-3.5) 进行的。 创立数据框让咱们从一个简略的问题开始,并从样本数据集创立一个 Pandas 数据框。表 1 蕴含例如世界银行提供的国家指标。 为了从下面的示例中创立数据框,咱们开始了与 ChatGPT 的新对话并公布了以下提醒: Create a Pandas table with the following data:Continent, Country, Year, Category, Variable, ValueAsia, China, 2022, Economy, GDP, 18.1Asia, China, 2022, Demographics, Population, 1412North America, USA, 2022, Economy, GDP, 25.5North America, USA, 2022, Demographics, Population, 333Europe, Germany, 2022, Economy, GDP, 3.9Europe, Germany, 2022, Demographics, Population, 84作为响应,该模型生成了以下 Python 代码: ...

June 13, 2023 · 4 min · jiezi

关于程序员:前端需要掌握的十大排序算法

前端须要把握的十大排序算法学习排序算法的目标解决理论问题:排序算法是计算机科学中的根底算法之一,简直在任何畛域的软件开发中都会遇到排序的需要。理解各种排序算法可能帮忙程序员解决理论问题,提供高效的数据处理和查问性能。性能优化:排序算法的抉择会对程序的性能产生间接影响。不同的排序算法在工夫复杂度和空间复杂度上有不同的特点,理解不同排序算法的性能特点能够帮忙程序员抉择最适宜的算法,优化程序的执行效率。数据结构:排序算法与数据结构密切相关。对于不同类型的数据结构,抉择适合的排序算法可能充分发挥数据结构的劣势,进步数据处理的效率。例如,对于链表构造,插入排序可能更加实用,而对于数组构造,疾速排序或堆排序可能更高效。算法设计和剖析:排序算法是算法设计和剖析的经典案例之一。通过学习排序算法,程序员能够造就良好的算法设计思维,学会剖析和评估算法的性能,进步解决问题的能力。面试筹备:排序算法是面试中常见的考点之一。许多技术面试会波及排序算法的实现和性能剖析,相熟排序算法能够帮忙程序员在面试中更好地展现本人的技术能力。总之,学习排序算法对程序员来说是十分重要的,它不仅能晋升解决问题的能力和算法设计思维,还能优化程序性能,为面试做好筹备。 常见的排序算法常见的排序算法有以下几种: 冒泡排序(Bubble Sort):比拟相邻元素的大小,如果逆序则替换,每一轮将最大的元素冒泡到最初。工夫复杂度为O(n^2)。抉择排序(Selection Sort):每次从未排序的局部抉择最小的元素,放到已排序局部的开端。工夫复杂度为O(n^2)。插入排序(Insertion Sort):将未排序的元素一一插入到已排序局部的适合地位,工夫复杂度为O(n^2)。疾速排序(Quick Sort):选取一个基准元素,将比基准小的元素放在右边,比基准大的元素放在左边,而后对左右两边递归地进行疾速排序。均匀工夫复杂度为O(nlogn)。归并排序(Merge Sort):将待排序数组一直二分为两个子数组,别离进行排序,而后将两个有序的子数组合并成一个有序数组。工夫复杂度为O(nlogn)。堆排序(Heap Sort):利用二叉堆数据结构进行排序。首先构建最大堆,而后将堆顶元素与最初一个元素替换,而后调整堆,再反复该过程,最终失去有序序列。工夫复杂度为O(nlogn)。希尔排序(Shell Sort):将待排序数组依照肯定增量分组,对每个分组进行插入排序,而后逐步放大增量,直到增量为1,最初进行一次插入排序。工夫复杂度取决于增量序列的抉择。计数排序(Counting Sort):实用于待排序元素范畴较小的状况,统计每个元素呈现的次数,而后依据统计后果进行排序。工夫复杂度为O(n+k),其中k为元素的范畴。桶排序(Bucket Sort):将待排序元素调配到不同的桶中,对每个桶中的元素进行排序,最初按程序将桶中的元素顺次取出。工夫复杂度取决于桶的数量和元素散布的平均水平。基数排序(Radix Sort):依照元素的位数进行排序,从低位到高位顺次进行排序,每一位应用稳固的排序算法。工夫复杂度为O(d*(n+k)),其中d为最大元素的位数,k为基数。这些排序算法各有优劣,实用于不同的场景和数据规模。抉择适合的排序算法能够进步排序效率。 冒泡排序冒泡排序(Bubble Sort)是一种简略的排序算法,它反复地遍历要排序的列表,顺次比拟相邻的两个元素,并依照升序或降序替换它们的地位,直到整个列表排序实现。 实现原理: 从列表的第一个元素开始,将其与下一个元素比拟,如果程序谬误(升序时以后元素大于下一个元素,降序时以后元素小于下一个元素),则替换它们的地位。持续比拟下一个相邻元素,反复上述步骤,直到遍历到列表的最初一个元素。反复步骤1和2,直到没有任何元素须要替换地位,即列表已排序实现。示例代码: // 一般实现function bubbleSort(arr) { const len = arr.length; // 外层循环管制比拟的轮数 for (let i = 0; i < len - 1; i++) { // 内层循环进行相邻元素的比拟和替换 for (let j = 0; j < len - 1 - i; j++) { // 如果后面的元素大于前面的元素,则替换它们的地位 if (arr[j] > arr[j + 1]) { const temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } return arr;}// 示例用法const array = [4, 2, 2, 8, 3, 3, 10, 5, 6, 2, 3];const sortedArray = bubbleSort(array);console.log(sortedArray); // 输入: [2, 2, 2, 3, 3, 3, 4, 5, 6, 8, 10]// 优化实现,如果发现曾经实现排序,通过标记提前退出循环function bubbleSort(arr) { const len = arr.length; let swapped; // 外层循环管制排序的轮数 for (let i = 0; i < len - 1; i++) { swapped = false; // 内层循环进行相邻元素的比拟和替换 for (let j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j + 1]) { // 替换相邻元素的地位 [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]; swapped = true; } } // 如果某轮循环没有进行任何替换,则阐明列表已排序实现,能够提前退出循环 if (!swapped) { break; } } return arr;}// 测试const array = [4, 2, 2, 8, 3, 3, 10, 5, 6, 2, 3];console.log(bubbleSort(array)); // 输入: [2, 2, 2, 3, 3, 3, 4, 5, 6, 8, 10]性能剖析: ...

June 13, 2023 · 8 min · jiezi

关于程序员:欧奈儿行业-RPS-排名一图览全貌-20230613

主动复盘 2023-06-13k 线图是最好的老师,点击详情图能够看到行业 20 日 RPS 的排名,最底下子图是行业 rps 走势线 跟踪板块总结: 成交额超过 100 亿排名靠前,macd柱由绿转红成交量要大于均线公众hao:醉卧梦星河欧奈尔行业RPS排名天天更新追踪主力行业趋势更容易来这里一图看趋势。20 日板块 RPS 排名排名name详情changeamountrps05rps10rps20rps50rps120rps250volume0算力概念2.97%628.05亿9897100100002178.15万手1国资云概念1.90%199.82亿1001001008898100996.76万手2数字水印1.75%119.30亿9499999300707.00万手3东数西算2.67%575.11亿10098999799993074.20万手4Web3.02.33%433.84亿8297989710002966.76万手5近程办公2.58%472.63亿9998989298982228.13万手6信创1.98%1396.53亿949497899607047.79万手7云游戏1.93%247.38亿8895979999992143.05万手8游戏1.91%341.51亿9194971001001002830.03万手9云计算1.89%1559.73亿9796968895968788.90万手10互联网服务2.20%680.32亿8894968495964216.72万手11PCB1.18%186.10亿8674958480811016.68万手12通信设施1.31%443.06亿9385959688901946.02万手13在线教育2.01%943.06亿9597949897986306.32万手14网络安全1.75%768.45亿9091946993944649.75万手15智慧政务1.94%417.71亿9595948592942640.73万手16屏下摄像1.08%65.26亿728493668265872.30万手17元宇宙概念1.87%1099.09亿8493939796957157.84万手18生物辨认2.79%324.99亿8987927993891587.82万手19通信服务0.91%121.28亿9293929090891107.11万手20电子车牌1.35%62.90亿878291788993470.63万手21计算机设备1.35%334.12亿8583919289881367.89万手22激光雷达1.47%74.19亿997891876985311.72万手23机器视觉0.75%150.25亿736290659397676.45万手24数据安全1.76%328.77亿8089905694942257.21万手本文由mdnice多平台公布

June 13, 2023 · 1 min · jiezi

关于程序员:五分钟搞懂分布式流控算法

流控是任何一个简单零碎都必须思考的问题,本文介绍并比拟了不同的流控算法,从而帮忙咱们能够基于零碎需要和架构抉择适合的计划。原文:Distributed Rate-Limiting Algorithms[1]当咱们设计分布式流控系统(distributed rate-limiting system)时,须要用到哪些工具和算法? Criteo是寰球最大的广告技术公司之一,随着广告市场的一直倒退,Criteo在过来几年里始终致力于改良API,帮忙客户更好的通过可编程接口拜访须要的服务。 随着越来越多的客户应用新的API,很显著,须要实现某种流量管制,以确保所有客户端都能平等拜访资源,并爱护API免受(歹意或谬误的)频繁调用。 流控仿佛很简略: 只容许给定的客户端每分钟执行X个调用。在单个服务器实例上实现流控非常容易,能够很容易找到相干的库来实现。但问题是咱们的API托管在6个数据中心(欧洲、北美和亚洲),每个数据中心都有多个实例,这意味着咱们须要某种分布式流控系统。 流控不仅与调用次数无关,还须要和客户端同步以后被限度的状态(例如,应用专用的报头和状态码)。然而本文将次要关注用于流控的算法和零碎。利用负载平衡在尝试开发本人的零碎之前,更重要的是查看现有的基础设施是否可能提供想要的个性。 那么,部署在数据中心所有实例之前,并且曾经在负责查看、路由流量的是什么?负载均衡器。大多数负载均衡器都提供了流控个性或某种可用于实现流控的形象。例如,HAProxy有现成的可用于设置流控的stick tables[2],能够在实例之间同步状态,并且工作得很好。 可怜的是,负载平衡不反对咱们须要的某些个性(动静限度、令牌自省token introspection、……),因而咱们须要本人实现这些特定的需要。 高级计划会话粘连(Sticky sessions)说到负载平衡,如果给定客户端的负载并不平衡,并且总是与单个实例交互,那么就不须要分布式流控系统。大多数客户端拜访间隔最近的数据中心(通过geo-DNS),如果在负载均衡器上启用“stickiness”,客户端应该总是拜访雷同的实例,这种状况下咱们能够应用简略的“本地”速率限度。 这在实践上可行,但在实践中行不通。Criteo零碎面临的负载不是恒定的,例如,彩色星期五/Cyber Week是一年中最重要的时段。在此期间,团队随时处于戒备状态,筹备扩充基础设施,以应答客户一直增长的需要。然而会话粘连和可伸缩性不能很好的配合(如果所有客户端都粘连在旧实例上,那么创立新实例又有什么用呢?) 应用更智能的会话粘连(在扩大时重新分配令牌)会有所帮忙,但这意味着每次扩大时,客户端都可能切换到另一个实例上,而且并不知道客户端在前一个实例上执行了多少调用。实质上说,这将使咱们的流控在每次伸缩时不统一,客户端可能在每次零碎面临压力时会进行更多调用。 Chatty服务器如果客户端能够拜访任何实例,意味着“调用计数”必须在实例之间共享。一种计划是让每个实例调用所有其余实例,申请给定客户端的以后计数并相加。另一种计划反过来,每个服务器向其余服务器播送“计数更新”。 这会造成两个次要问题: 实例越多,须要进行的调用就越多。每个实例都须要晓得其余实例的地址,并且每次服务扩缩容时都必须更新地址。尽管能够实现这个解决方案(实质上是一个点对点环,许多零碎曾经实现了),但老本较高。 Kafka如果不想让每个实例都和其余实例通信,能够利用Kafka同步所有实例中的计数器。 例如,当某个实例被调用时,就将一个事件推到对应的topic。这些事件会被滑动窗口聚合(Kafka Stream在这方面做得很好),每个客户端最初一分钟的最新计数会被公布到另一个topic上。而后,每个实例通过此topic取得所有客户端的共享计数。 问题在于Kafka实质上是异步的,尽管通常提早很小,但当API负载减少时,也会减少提早。如果实例应用了过期的计数器,那么可能会漏过那些本应被阻止的调用。 这些解决方案都有一个共同点: 当一切正常时,能够很好的工作,但当负载过重时,就会进化。咱们的大部分零碎都是这样设计的,通常状况下没有问题,但流控并不是典型组件,其指标就是爱护零碎的其余局部免受这种过重负载的影响。 流控系统的指标是在零碎负载较重时工作良好,其构建指标是为最差的1%而不是好的99%的状况服务。分布式算法咱们须要一个中心化的同步存储系统,以及为每个客户端计算以后速率的算法。内存缓存(如Memcached或Redis)是现实的零碎,但并不是所有的流控算法都能够在缓存零碎中实现。上面咱们看看有什么样的算法。 简化起见,咱们思考尝试实现“每分钟100次调用”的流控。 看看有哪些工具可用。 基于事件日志的滑动窗口(Sliding window via event log)如果想晓得某个客户端在过来一分钟内进行了多少次调用,能够在缓存中为每个客户端存储一个工夫戳列表。每次调用时,相应的工夫戳都会增加到列表中。而后循环遍历列表中的每一项,抛弃超过一分钟的旧项,并计算新项。 长处: 十分准确简略毛病: 须要弱小的事务反对(解决同一客户端的两个实例须要更新雷同的列表)。依据不同的调用限度和次数,存储对象(列表)的大小可能相当大。性能不稳固(更多的调用意味着须要解决更多的工夫戳)。固定窗口(Fixed window)大多数分布式缓存零碎都有特定的、高性能的“计数器”形象(一个能够主动减少的整数值,附加在一个字符串键上)。 以“{clientId}”为key为每个客户端保护一个计数器非常容易,但只会计算自计数器创立以来客户端调用的次数,而不是最初一分钟的次数。以“{clientId}_{yyyyMMddHHmm}”为key能够每分钟都为客户端保护一个计数器(换句话说: 以1分钟为固定窗口),查找与以后工夫绝对应的计数器能够通知咱们这一分钟客户端执行的调用数量,如果这个值超过下限,就能够阻止调用。 请留神,这与“最近一分钟”不是一回事。如果在上午07:10:23有一次调用,固定窗口计数器会显示在上午07:10:00到07:10:23之间调用的数量。但咱们真正想要的是早上07:09:23到07:10:23之间的调用数量。在某种程度上,固定窗口算法每过一分钟都会“遗记”之前有多少次呼叫,因而客户端实践上能够在07:09:59执行100次调用,而后在07:10:00执行100次额定的调用。 长处: 十分快(单个原子增量+读取操作)只须要十分根本的事务反对(原子计数器)性能稳固简略毛病: 不精确(最多会容许2倍调用)令牌桶(Token bucket)回到1994年,父母把你送到游戏厅和敌人们一起玩《超级街霸2》。他们给你一个装了5美元硬币的小桶,而后去了街对面的酒吧,并且每个小时都会过去往桶里扔5美元硬币。因而你基本上被限度每小时玩5美元(心愿你在《街头霸王》中表现出色)。这就是“令牌桶”算法背地的次要思维: 与简略计数器不同,“桶”存储在每个客户端缓存中。桶是由两个属性组成的对象: 残余“令牌”的数量(或残余能够进行的调用的数量)最初一次调用的工夫戳。当API被调用时,检索桶,依据以后调用和最初一次调用之间的工夫距离,向桶中增加新的令牌,如果有多余令牌,递加并容许调用。 所以,和“街头霸王”的例子相同,没有“父母”帮咱们每分钟从新装满桶。桶在与令牌耗费雷同的操作中被无效的从新填充(令牌的数量对应于上次调用之后的工夫距离)。如果最初一次调用是在半分钟之前,那么每分钟100次调用的限度意味着将向桶中增加50个令牌。如果桶太“旧”(最初一次调用超过1分钟),令牌计数将重置为100。 事实上,能够在初始化的时候填充超过100个令牌(但补充速度为100令牌/分钟): 这相似于“burst”性能,容许客户端在一小段时间内超过流控的限度,但不能长期维持。 留神: 正确计算要增加的令牌数很重要,否则有可能谬误的填充桶。该算法提供了完满的准确性,同时提供了稳固的性能,次要问题是须要事务(不心愿两个实例同时更新缓存对象)。 长处: 十分准确疾速性能稳固优化初始令牌数量能够容许客户端“burst”调用毛病: 更简单须要弱小的事务反对漏桶(Leaky bucket): 该算法的另一个版本。在这个版本中,调用沉积在bucket中,并以恒定的速率(匹配速率限度)解决。如果桶溢出,则回绝调用。这实现起来比较复杂,但能够平滑服务负载(这可能是您想要的,也可能不是)。最好的算法?比拟这三种算法,令牌桶仿佛在性能和准确性方面提供了最好的折衷。但只有当零碎提供良好的事务反对时,才有可能实现。如果有Redis集群,这是完满计划(甚至能够实现基于Lua的算法,间接运行在Redis集群上,以进步性能),但Memcached只反对原子计数器,而不是事务。 能够基于Memcached实现令牌桶的乐观并发(optimistic concurrent)版本[3],但这更加简单,而且乐观并发的性能在负载较重的状况下会降落。用固定窗口近似模仿滑动窗口如果没有弱小的事务反对,是否注定要应用不精确的固定窗口算法? 算是吧,但还有改良的空间。请记住,固定窗口的次要问题是它每过一分钟都会“遗记”之前产生的事件,但咱们依然能够拜访相干信息(在前一分钟的计数器中),所以能够通过计算加权平均值来预计前一分钟的调用次数。 *例如: 如果在00:01:43进行了一次调用,递增失去“00:01”计数器的值。因为这是以后的日历分钟,当初蕴含00:01:00至00:01:43之间的调用数(最初17秒还没有产生)。\但咱们想要的是60s滑动窗口中的调用数,意味着咱们错过了00:00:43到00:01:00这段时间的计数。为此咱们能够读取“00:00”计数器,并以17/60的因子进行调整,从而阐明咱们只对最初17秒感兴趣。*如果负载不变,这一近似是完满的。但如果大多数调用都集中在前一分钟,那就会取得一个高估的值。而当大多数调用都集中在前一分钟完结后,这个数字就会被低估。 比拟为了更精确的理解精度差别,最好是在雷同的条件下模仿两种算法。 ...

June 13, 2023 · 1 min · jiezi

关于程序员:Axure-RP教程编程入门自学教程菜鸟教程免费教程分享

教程简介Axure RP是一款业余的疾速原型设计工具。Axure(发音:Ack-sure),代表美国Axure公司;RP则是Rapid Prototyping(疾速原型)的缩写。 Axure RP是美国Axure Software Solution公司旗舰产品,是一个业余的疾速原型设计工具,让负责定义需要和规格、设计性能和界面的专家可能疾速创立应用软件或Web网站的线框图、流程图、原型和规格阐明文档。作为业余的原型设计工具,它能疾速、高效的创立原型,同时反对多人合作设计和版本控制治理 。 Axure RP入门教程 - 从简略的步骤理解Axure RP,从根本到高级概念,包含原型介绍,简介,用户界面,根本交互,应用主控和动静面板,条件逻辑,高级交互,小部件库,导出原型。 教程目录Axure RP教程Axure RP - 原型设计简介Axure RP - 简介Axure RP - 用户界面Axure RP - 根本交互Axure RP - 应用Masters和Dynamic PanelsAxure RP - 条件逻辑Axure RP - 高级交互Axure RP - Widget LibraryAxure RP - 导出原型Axure RP - 有用的资源

June 13, 2023 · 1 min · jiezi

关于程序员:喜报-ShowMeBug获国家高新技术企业认证

近日,深圳至简天成科技有限公司(以下简称至简天成)顺利通过国家高新技术企业认证! 国家高新技术企业是由国务院主导、科技部牵头的国家级荣誉资质,是我国科技类企业中的“国”字号招牌,实现认证须要通过各级政府、科技、财政等多部门层层审核与考评,是中国高科技企业的权威认证。顺利通过国家高新技术企业认证,充分体现了政府部门对至简天成的核心技术研发实力、自主知识产权以及翻新成绩方面的认可。 作为至简天成旗下产品,ShowMeBug以迷信建设技术能力图谱和自研1024 PaaS 引擎为根底,提供海量丰盛且业余的岗位题型题库、智能组卷和自动化评卷,并集成多种编程框架的轻协同 IDE,可实现实在编程环境,实时运行,反对在线DeBug调试,以此助力企业通过在线笔面试实战编程考核形式,更快、更好、更经济地进行技术招聘。 目前,在寰球108家技术测评平台中,能在技术面试中反对工程实战题型的只有2家,ShowMeBug 便是其中一家,同时也是国内首家。 截至目前,ShowMeBug已累计服务包含深服气、百度、京东物流、创维、沃尔玛等超过500家中大型客户,线上付费客户超过 6000家,业务涵盖半导体、智能制作、企业服务、IT互联网等多个畛域,ShowMeBug曾经成长为国内数字化技术招聘畛域的领军者。 放眼将来,至简天成将继续深耕数字化技术招聘畛域,不断丰富产品矩阵,晋升研发实力,构建外围技术壁垒,继续为数字化技术招聘浪潮赋能。

June 13, 2023 · 1 min · jiezi

关于程序员:html中href和src的区别

一省:HTML3. html中href和src的区别?href:href 是 Hypertext Reference 的缩写,示意超文本援用。用来建设以后元素和文档之间的链接。罕用的有:link、a。例如: <link href="style.css" rel=”stylesheet“/>浏览器会辨认该文档为 css 文档,并行下载该文档,并且不会进行对以后文档的解决。这也是倡议应用 link,而不采纳 @import 加载 css 的起因。 src: src 是 source 的缩写,src 的内容是页面必不可少的一部分,是引入。src 指向的内容会嵌入到文档中以后标签所在的地位。罕用的有:img、script、iframe。例如: <script src="script.js"></script>当浏览器解析到该元素时,会暂停浏览器的渲染,直到该资源加载结束。这也是将js脚本放在底部而不是头部得起因。 简而言之,src 用于替换以后元素;href 用于在以后文档和援用资源之间建立联系。 二省: CSS3. CSS 中哪些属性可继承,哪些不能够?能继承的属性: 字体系列属性:font-family、font-weight、font-size、font-style;文本系列属性:color、text-align、text-indent(文本缩进)、text-transform(字母大小写)、word-spacing(词间距)、letter-spacing(字间距)、line-height;元素可见性:visibility;表格布局属性:caption-side(题目地位)、border-collapse(折叠边框)、border-spacing、empty-cells(空白单元格显示)、table-layout(布局);列表布局属性:list-style;光标属性:cursor不能继承的属性:其余的属性不能够继承 三省:JavaScript3. 创立函数的几种形式?函数申明: function sum(num1, num2) { return num1 + num2}表达式申明: let sum = function(sum1, sum2) { return num1 + num2}与函数申明等价。 构造函数申明: let sum = new Function("num1", "num2", "return num1 + num2");//不举荐不举荐,因为这种代码会被解释两次:第一次是当成惯例的ECMAScript代码,第二次是解释传入的字符串代码,很影响性能。 箭头函数: let arrowSum = (a, b) => { return a + b;}箭头函数语法简洁,然而没有arguments、super和new.target,也没有prototype属性。 ...

June 13, 2023 · 1 min · jiezi

关于程序员:奖金成长支持最高100万2023中关村科学城科创大赛持续报名中→

这是一个充斥着有限可能的时代,也是一个须要创新者一直摸索的时代“互联世界、共链将来”,中关村科学城科创大赛正式启动寰球招募,诚邀您共赴前沿盛宴让咱们独特寻找,下一个扭转者 SegmentFault 思否专属报名渠道&邀请码:https://www.micecube.com/sign/4lMUwR/SegmentFault

June 13, 2023 · 1 min · jiezi

关于程序员:失业潮中不得不看CSS知识点巨详细

就业潮中不得不看CSS知识点(巨具体) 一.高度塌陷形容 当父元素未设置高度时,所有子元素浮动后,造成子元素脱离文档流进而无奈把父元素撑开,父元素高度为0产生高度塌陷,称为高度塌陷问题。 解决的方法给父元素增加申明:overflow:hidden; .parent-box{ overflow:hidden}长处:代码少,简略容易; 毛病:如果想让外部元素在父元素里面显示时则会被暗藏,如 Dropdown 下拉菜单,Popover 弹出框,Tooltip 文字提醒等。 在浮动元素下方增加空div,并给元素申明 clear:both,保险起见,再加height:0。革除个别块元素可能自带的height:16px;(IE浏览器自带16px)毛病:须要增加多余的空标签并增加属性; <style type="text/css"> .parent-box { margin: 100px auto; width: 200px; border: 3px solid red; } .chlidren-box { width: 100px; height: 200px; background: green; float: left; } .clear-box { clear: both; /* 上面为了兼容IE */ height: 0; overflow: hidden; }</style><body> <div class="parent-box"> <div class="chlidren-box"></div> <div class="clear-box"></div> </div></body>大家都很熟的万能革除法。原理和第二点其实是一样的,不过把空的div用伪类代替了。 长处:浏览器反对好 毛病:代码多,难以记住 <style type="text/css"> .parent-box { margin: 100px auto; width: 200px; border: 3px solid red; } .chlidren-box { width: 100px; height: 200px; background: green; float: left; } .parent-box::after{ content: ''; display: block; clear: both; height: 0; overflow: hidden; }</style><body> <div class="parent-box"> <div class="chlidren-box"></div> </div></body>父元素增加浮动 ...

June 13, 2023 · 4 min · jiezi

关于程序员:喜讯-ShowMeBug获深圳市专精特新企业认定

近期,深圳市专精特新中小企业评比后果揭晓,深圳至简天成科技有限公司(以下简称至简天成)从泛滥企业中怀才不遇,获评深圳市专精特新中小企业。 “专精特新”是国家推动中小企业倒退的一项重要工程。专精特新中小企业是一批主营业务突出、竞争力强、成长性高、创新能力强的企业,具备专业化、精细化、特色化、新鲜化的特色,在晋升产业链供应链稳定性、推动经济社会倒退中有着重要作用。 本次获评充分体现了政府部门对至简天成的核心技术研发实力、自主知识产权以及翻新成绩方面的认可,也是继“国家高新技术企业”认证后,对至简天成继续深耕数字化技术招聘畛域的再次必定。 作为至简天成旗下产品,ShowMeBug 以迷信建设技术能力图谱和自研1024PaaS引擎为根底,提供以实战编程题型为外围的丰盛岗位题库,反对智能组卷和自动化评卷;同时,集成多种编程框架的轻协同 IDE,提供实在编程环境和工程实战题型,反对在线 Debug 调试,以此助力企业更快、更好、更经济地进行技术人才能力评估。 目前,在寰球108家技术能力评估平台中,可能在技术面试中模仿实在编程环境,反对工程实战题型的只有2家,「ShowMeBug」便是其中一家。 截至目前,ShowMeBug已累计服务包含深服气、百度、京东物流、创维、沃尔玛等超过500家中大型客户,线上付费客户超过 6000家,业务涵盖半导体、智能制作、企业服务、IT互联网等多个畛域,ShowMeBug曾经成长为国内数字化技术招聘畛域的引领者。 放眼将来,至简天成将继续深耕数字化技术招聘畛域,不断丰富产品矩阵,晋升研发实力,构建外围技术壁垒,引领数字化技术招聘浪潮。

June 12, 2023 · 1 min · jiezi

关于程序员:支付宝认证的作用是什么考试方向有哪些

通过考据书来晋升本人的能力,是当初的打工人常常会做的事,而对于从事信息通信技术行业的人来说,能够抉择的证书十分多,其中支付宝认证是一个新设立的证书,然而实用性十分高。支付宝作为咱们生存中罕用的软件,须要大量的专业人才来保护,而支付宝认证体系就是专门为社会输送人才的。上面大使简略介绍一下,有须要的能够在认证大使上具体理解。 支付宝认证技能:将当先的数字技术、多年的行业实际,提炼为一套可学、可练、可考的技能认证体系与规范, 为你晋升职业技能程度,拓展更广大、多元的待业空间。 支付宝认证方向:数字化经营认证 | 小程序经营、无障碍iOS产品设计与开发、阻碍Android产品设计与开发、阻碍小程序产品设计与开发、无障碍Web产品设计与开发、适老化iOS产品设计与开发、适老化Android产品设计与开发、适老化小程序产品设计与开发、适老化Web产品设计与开发、区块链利用与开发 ACCA、区块链利用与开发ACCP、区块链利用与开发ACCE(敬请期待)、OBCA 数据库认证、OBCP 数据库认证、OBCE数据库认证*、支付宝小程序开发认证、根底技术服务认证、Web前端研发认证、Java后端研发认证、品质测试技术认证、云客服认证 支付宝认证内容: 每个证书的考试内容不雷同,上面大使以OBCP 数据库认证简略介绍一下 1、考试概述 本认证次要解说 OceanBase 的高级个性(全局索引、全局数据一致性、负载平衡策略、SQL引擎优化),以及 OceanBase 内存形成、内存数据落盘策略和HTAP等常识,同时提供了进阶试验课程。加入此培训根本要求为:通过 OBCA 高级认证;2 年以上数据库 DBA 工作教训。 适宜架构师、高级数据库管理员、高级利用开发人员等合作伙伴高级售后服务人员 2、考试内容 OB 分布式架构高级技术OB 存储引擎高级技术SQL 引擎高级技术OB SQL 调优OB 分布式事务高级技术OBProxy 路由策略与应用运维 OB 迁徙(OMS)、备份与复原OB 运维、监控与异样解决

June 12, 2023 · 1 min · jiezi

关于程序员:Java-XML教程编程入门自学教程菜鸟教程免费教程分享

教程简介XML是一种简略的基于文本的语言,旨在以纯文本格式存储和传输数据。它代表可扩大标记语言。 Java XML入门教程 - 从根本到高级概念的简略步骤理解Java XML,其中包含概述,Java XML解析器,DOM解析器,解析XML文档,查问XML文档,创立XML文档,批改XML文档,SAX解析器,JDOM XML Parser,StAX Parser,XPath Parser,DOM4J Parser,XSLT,JAXB。 教程目录Java XML教程Java XML - 概述Java XML - ParsersJava DOM Parser - 概述Java DOM Parser - 解析XML文档Java DOM Parser - 查问XML文档Java DOM Parser - 创立XML文档Java DOM Parser - 批改XML文档Java SAX Parser - 概述Java SAX Parser - 解析XML文档Java SAX Parser - 查问XML文档Java SAX Parser - 创立XML文档Java SAX Parser - 批改XML文档Java JDOM Parser - 概述Java JDOM Parser - 解析XML文档Java JDOM Parser - 查问XML文档Java JDOM Parser - 创立XML文档Java JDOM Parser - 批改XML文档Java StAX Parser - 概述Java StAX Parser - 解析XML文档Java StAX Parser - 查问XML文档Java StAX Parser - 创立XML文档Java StAX Parser - 批改XML文档Java XPath Parser - 概述Java XPath Parser - 解析XML文档Java XPath Parser - 查问XML文档Java XPath Parser - 创立XML文档Java XPath Parser - 批改XML文档Java DOM4J Parser - 概述Java DOM4J Parser - 解析XML文档Java DOM4J Parser - 查问XML文档Java DOM4J Parser - 创立XML文档Java DOM4J Parser - 批改XML文档Java XML - 有用的资源

June 12, 2023 · 1 min · jiezi

关于程序员:自动化的艺术

对于基础设施来说,很多服务都有相似的架构、数据库交互和UI,本文介绍了Paypal通过模板自动化基础设施微服务脚手架代码的实际,最大化节约了开发服务的工夫并保障了服务的一致性。原文:The Art of Automating Automation[1]简介作为PayPal网站可靠性和云工程(SRCE, Site Reliability & Cloud Engineering)团队的一部分,咱们始终致力于通过自动化晋升效率。然而,编写可能让人凭直觉自动化实现工作的软件并不是一件简略的工作。在PayPal基础设施中,任何操作的自动化组件都必须提供最高级别的可靠性、安全性、效率和自助服务能力。本文咱们将探讨如何在寰球网络服务(GNS, Global Network Services)中实现自动化。 GNS团队有大量的操作须要自动化,范畴从须要几小时人力投入的一般工作,到须要运维团队投入很多天精力的简单工作。对咱们来说,最大的挑战是如何在不耗费大量开发周期的状况下自动化这些大大小小的操作,咱们须要致力证实“ROI(投资回报)”的合理性,这点特地重要。 软件服务需要要将任何网络性能转变为服务,须要实现以下一系列工作: 用户界面开发 凋谢给PayPal开发社区的所有服务都必须具备某种模式的用户界面(UI),以便用户像应用任何其余服务一样应用网络。数据库交互和表治理 大多数服务须要设计数据库表以及编写数据库交互代码来操作数据。外围业务逻辑 须要编写和测试特定服务的理论业务逻辑。与自动化工具Terraform集成 咱们的根底用户包含网络经营团队,他们不会应用基于UI的服务。相同,他们基于GitOps模式运作,这意味着咱们开发的所有服务都须要通过开发Terraform provider与Terraform集成。认证和受权 这波及到与规范的企业身份验证(如单点登录、多因素身份验证、角色治理等)的集成。服务帐户,API消费者的节流和限速 咱们决定为所有货色提供API。因而,咱们开发的所有服务都必须提供服务帐户,并确保可能节流和限速。从下面的列表能够看出,构建一个可行的网络服务须要破费大量工夫开发重要的外围组件。在现实状况下,咱们可能只把工夫花在编写外围业务逻辑上,而不做其余事件。通过两种形式,咱们达到了编写更少代码的现实状态。 解决这个问题的第一种办法是迁徙到真正的微服务组件以及构建可插拔的库架构,第二种办法是基于模板的主动代码生成,能够基于通用模板生成UI、后端和数据库层代码。 代码生成长期以来,数据建模始终是设计良好的软件产品的支柱。一旦确定了根本数据构建块,构建围绕数据工作的软件组件就比拟容易了。如果数据是以规范格局获取的,那么围绕数据的各种软件组件就有很大的自动化空间。 这正是咱们采纳的办法。咱们团队的所有我的项目都从辨认数据模型开始。数据模型是用YAML格局定义的,这样咱们的动静代码生成模块就能够为零碎的各个局部生成代码。下图显示了这个过程: UI代码生成React框架曾经被包含PayPal在内的业界宽泛采纳。PayPal应用程序团队有一个十分模块化的React库,用于构建面向客户的应用程序。咱们以该库为根底,在任何适合的中央应用。 大多数零碎程序员都不相熟UI编程。为了促成疾速UI组件开发,咱们依赖于模型驱动设计。应用模型驱动设计,典型的GNS开发人员只需指定UI布局,不必编写任何UI代码。 GNS代码生成引擎采纳用户定义的模型,并应用React框架,生成一个独立的React代码容器,带有性能残缺的UI。这种办法容许开发人员专一于应用程序的业务逻辑。 后端代码生成过来,开发提供REST API性能的微服务十分繁琐,开发人员须要为每个端点编写软件并配置web服务网关。然而,Flask框架作为规范框架曾经失去了Python开发人员的宽泛认可。相似的,Golang除了内置反对之外,还有gorilla/mux框架。 大多数GNS服务是用Golang或Python编写的。咱们在上述框架的帮忙下,设计了基于Jinja模板生成通用代码的GNS代码生成引擎。 基于以YAML格局定义的数据模型,代码生成引擎应用预约义的Jinja模板来生成服务的根底代码。GNS开发人员能够在这些代码的根底上实现准确的业务逻辑,从而缩小编程谬误,并打消从头编写所有内容的乏味工作。 数据库层代码生成大多数GNS服务须要某种模式的数据库来存储建模阶段所形容的信息。编写代码来增加、删除和批改数据库中的条目是很繁琐的,而且容易呈现bug、格调不对立等。Python和Golang领有解决对象关系映射(ORM, Object Relationship Mapper )的开源库,咱们抉择采纳sqlalchemy来规范化数据库操作。 因为模型是用YAML格局定义的,咱们的代码生成引擎除了生成后端代码外,还生成数据库解决办法。 Terraform Provider代码生成Terraform曾经成为自动化基础设施的最常用工具。作为GNS服务提供商,咱们曾经决定所有自动化服务都将有针对Terraform的接口,从而可能适配正被一直采纳的继续部署流水线。 Terraform体系架构灵便且不便扩大,可能为咱们喜爱的任何自动化增加Provider。请参阅terrform文档理解更多细节。 因为Terraform Provider是一个结构良好的库,咱们的代码生成引擎能够基于Jinja模板生成基于golang的Provider程序,而后将这些代码构建到一个可插拔模块中,该模块能够装置到正在运行的terraform实例中。一旦实现,用户就能够在GNS服务上进行规范的terraform操作,就像任何其余服务一样。 论断自动化任何网络服务所需的大部分工作曾经由咱们的代码生成引擎生成,从而容许咱们只专一于服务的外围逻辑。转向微服务体系架构以及采纳基于模板的代码生成和模型驱动的体系架构使咱们可能以更快的速度生产服务。在撰写本文时,咱们能够在一天之内实现任何服务的工作框架,从而帮忙团队能够专一于外围逻辑,并在更短的工夫内产生更多的服务。 References: \[1] The Art of Automating Automation: https://medium.com/paypal-tech/the-art-of-automating-automati... 你好,我是俞凡,在Motorola做过研发,当初在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓重的趣味,平时喜爱浏览、思考,置信继续学习、一生成长,欢送一起交流学习。 \微信公众号:DeepNoMind 本文由mdnice多平台公布

June 12, 2023 · 1 min · jiezi

关于程序员:Hexo博客Next主题魔改教程系列音乐播放器

之前写过给博客增加音乐播放器,次要应用的是Hexo-tag-aplayer同时应用Meting-js。但最近发现貌似Meting-js呈现了一些问题,次要是拜访跨域的问题. 所以为了网站失常显示播放器,同时也为了操作不便,我这里又应用了firame <iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width="330" height="110" src="//music.163.com/outchain/player?type=0&amp;id=6856787487&amp;auto=0&amp;height=90"></iframe>同时在meting-js里减少判断,如果报错就显示这个iframe元素,所以就不应用cdn引入了. 下载meting-js文件并引入. 批改一下 class MetingJSElement extends HTMLElement { connectedCallback() { if (window.APlayer && window.fetch) { this._init() this._parse() } } disconnectedCallback() { if (!this.lock) { this.aplayer.destroy() } } _camelize(str) { return str .replace(/^[_.\- ]+/, '') .toLowerCase() .replace(/[_.\- ]+(\w|$)/g, (m, p1) => p1.toUpperCase()) } _init() { let config = {} for (let i = 0; i < this.attributes.length; i += 1) { config[this._camelize(this.attributes[i].name)] = this.attributes[i].value } let keys = [ 'server', 'type', 'id', 'api', 'auth', 'auto', 'lock', 'name', 'title', 'artist', 'author', 'url', 'cover', 'pic', 'lyric', 'lrc', ] this.meta = {} for (let key of keys) { this.meta[key] = config[key] delete config[key] } this.config = config this.api = this.meta.api || window.meting_api || 'https://api.i-meto.com/meting/api?server=:server&type=:type&id=:id&r=:r' if (this.meta.auto) this._parse_link() } _parse_link() { let rules = [ ['music.163.com.*song.*id=(\\d+)', 'netease', 'song'], ['music.163.com.*album.*id=(\\d+)', 'netease', 'album'], ['music.163.com.*artist.*id=(\\d+)', 'netease', 'artist'], ['music.163.com.*playlist.*id=(\\d+)', 'netease', 'playlist'], ['music.163.com.*discover/toplist.*id=(\\d+)', 'netease', 'playlist'], ['y.qq.com.*song/(\\w+).html', 'tencent', 'song'], ['y.qq.com.*album/(\\w+).html', 'tencent', 'album'], ['y.qq.com.*singer/(\\w+).html', 'tencent', 'artist'], ['y.qq.com.*playsquare/(\\w+).html', 'tencent', 'playlist'], ['y.qq.com.*playlist/(\\w+).html', 'tencent', 'playlist'], ['xiami.com.*song/(\\w+)', 'xiami', 'song'], ['xiami.com.*album/(\\w+)', 'xiami', 'album'], ['xiami.com.*artist/(\\w+)', 'xiami', 'artist'], ['xiami.com.*collect/(\\w+)', 'xiami', 'playlist'], ] for (let rule of rules) { let patt = new RegExp(rule[0]) let res = patt.exec(this.meta.auto) if (res !== null) { this.meta.server = rule[1] this.meta.type = rule[2] this.meta.id = res[1] return } } } _parse() { if (this.meta.url) { let result = { name: this.meta.name || this.meta.title || 'Audio name', artist: this.meta.artist || this.meta.author || 'Audio artist', url: this.meta.url, cover: this.meta.cover || this.meta.pic, lrc: this.meta.lrc || this.meta.lyric || '', type: this.meta.type || 'auto', } if (!result.lrc) { this.meta.lrcType = 0 } if (this.innerText) { result.lrc = this.innerText this.meta.lrcType = 2 } this._loadPlayer([result]) return } let url = this.api .replace(':server', this.meta.server) .replace(':type', this.meta.type) .replace(':id', this.meta.id) .replace(':auth', this.meta.auth) .replace(':r', Math.random()) fetch(url) .then(res => res.json()) .then(result => this._loadPlayer(result)) .catch(error => { addAnotherPlayer(this) console.error('There has been a problem with your fetch operation:', error); }); } _loadPlayer(data) { let defaultOption = { audio: data, mutex: true, lrcType: this.meta.lrcType || 3, storageName: 'metingjs' } if (!data.length) return let options = { ...defaultOption, ...this.config, } for (let optkey in options) { if (options[optkey] === 'true' || options[optkey] === 'false') { options[optkey] = (options[optkey] === 'true') } } let div = document.createElement('div') options.container = div this.appendChild(div) this.aplayer = new APlayer(options) }}console.log('\n %c MetingJS v2.0.1 %c https://github.com/metowolf/MetingJS \n', 'color: #fadfa3; background: #030307; padding:5px 0;', 'background: #fadfa3; padding:5px 0;')function addAnotherPlayer (currentDiv) { // 创立一个新的 div 元素 let newDiv = document.createElement("iframe"); // 给它一些内容 newDiv.setAttribute("frameborder","no") newDiv.setAttribute("border","0") newDiv.setAttribute("marginwidth","0") newDiv.setAttribute("marginheight","0") newDiv.setAttribute("width",330) newDiv.setAttribute("height",110) newDiv.setAttribute("src","//music.163.com/outchain/player?type=0&id=6856787487&auto=0&height=90") // 将这个新的元素和它的文本增加到 DOM 中 // let currentDiv = document.getElementsByTagName("meting-js")[0]; currentDiv.insertAdjacentElement('afterend',newDiv)}if (window.customElements && !window.customElements.get('meting-js')) { window.MetingJSElement = MetingJSElement window.customElements.define('meting-js', MetingJSElement)}这样在fetch之后报错的话就减少iframe元素,就失常显示一个播放器了. ...

June 11, 2023 · 2 min · jiezi

关于程序员:苹果首款-MR-头显售价高达-25-万元|库克也在用-ChatGPT-Stack-Overflow-版主大罢工|思否周刊

40 S 新闻速递苹果首款 MR 头显售价高达 2.5 万元,WWDC23 万众瞩目Stack Overflow 版主大罢工唯品会“崩了”,相干责任人解决:撤职库克抵赖在应用 ChatGPT刘慈欣自曝用 ChatGPT 写发言稿OpenAI CEO 称没有公司上市打算Chrome 114 正式公布,反对 CHIPSTIOBE 6 月榜单:C/C++、Java 迫近 Python 抢夺榜首Blink 1.0 正式公布, 最小 x86 Linux 模拟器苹果推出第一个为空间计算而设计的操作系统:visionOSOpenHarmony 4.0 Beta1 公布行业资讯苹果首款 MR 头显售价高达 2.5 万,WWDC23 万众瞩目6月6日,苹果举办 WWDC23,在 One More Thing 环节,苹果正式公布 MR 头显 Vision Pro。Vision Pro 能够说是苹果几年来最重要的产品,申请了 5000 多项专利,它的价格也并非普通用户能够企及,起售价高达 3499 美元,是Meta Quest 3的7倍。超强 M2 Ultra 芯片代替英特尔,推 15 英寸 MacBook Air ,大会前涨超 2% 翻新高,发布会后收跌。(界面新闻) 容许 AI 内容后 Stack Overflow 版主大罢工Stack Overflow 是一个由 Stack Exchange 经营的出名软件开发者论坛,用户能够在下面发问和答复各种编程问题。近日,该网站的一些意愿版主发动了罢工口头,抗议公司新出台的 AI 内容政策,该政策规定,所有由 AI 生成的内容都能够在网站上公布,而且不得因为 AI 内容而对用户进行封禁。版主们示意,他们放心这样会导致错误信息泛滥,侵害网站的品质和信用。( IT 之家) ...

June 11, 2023 · 2 min · jiezi

关于程序员:或许是一个新的算法方向

动动发财的小手,点个赞吧! 今日谷歌 DeepMind 应用深度强化学习发现更快的排序算法,相干论文成绩曾经发表在Nature上。 据报道:该算法能够提速 70%,相比之下,快了3倍之多。 摘要排序或散列等根本算法在任何给定的一天都会被应用数万亿次。随着计算需要的增长,让这些算法尽可能高效变得至关重要。鉴于过来2年获得了显着停顿,进一步提高这些例程的效率已证实对人类科学家和计算方法都具备挑战性。在这里,咱们展现了人工智能如何通过发现迄今为止未知的例程来超过以后的技术水平。为实现这一点,咱们将寻找更好的排序程序的工作制订为单人游戏。而后咱们训练了一个新的深度强化学习代理 AlphaDev 来玩这个游戏。AlphaDev 从零开始发现了优于先前已知人类基准的小型排序算法。 深度强化学习如何进步排序算法的性能? 深度强化学习通过将排序算法的性能进步工作转化为单人游戏,训练一个新的深度强化学习代理来玩这个游戏。该代理从头开始发现了小型排序算法,这些算法的性能优于以前已知的人类基准。通过这种办法,深度强化学习能够超过以后技术水平,发现迄今未知的排序算法。 利用方向这些更快的排序算法能够利用于各种事实场景中,例如搜索引擎、数据库、金融交易等须要大量排序操作的畛域。在这些畛域中,更快的排序算法能够进步计算效率和响应速度,从而进步整个零碎的性能和用户体验。此外,这些更快的排序算法还能够利用于人工智能、机器学习等畛域中须要进行大规模数据处理和剖析的工作。 !职业思考是否当前会呈现新的算法职业,通过深度学习的形式,更新迭代现有的算法,或者利用人工智能发现和发明新德算法? 随着深度学习和人工智能的一直倒退,能够预感将来会呈现新的算法职业。以下是一些可能的方向: 算法工程师/研究员:这是一个宽泛的畛域,涵盖了开发、改良和优化各种算法的业余人员。他们将利用深度学习和其余相干技术,更新迭代现有的算法,并设计翻新的算法来解决新的问题。生成式AI专家:生成式AI专家将钻研和开发生成式模型,通过深度学习的形式发明新的算法。他们将摸索如何利用生成式模型生成新的创意和解决方案,波及到自然语言解决、图像生成、音频合成等畛域。强化学习专家:强化学习是一种通过与环境交互来学习最佳行为策略的机器学习办法。强化学习专家将致力于开发和改良强化学习算法,使其可能利用于各种畛域,如主动驾驶、机器人管制、游戏策略等。自动化算法优化专家:这个畛域的业余人员将利用深度学习和其余优化技术,开发自动化算法优化工具。他们的指标是进步算法的效率和性能,从而实现更疾速和更精确的问题求解。数据科学家:数据科学家将利用深度学习和人工智能技术来发现和发明新的算法。通过对大量数据的剖析和建模,他们将寻找模式、提取特色,并利用这些信息来构建新的算法解决方案。这些是将来可能呈现的一些算法职业方向,但随着技术的不断进步和利用的一直扩大,还会涌现出其余新的职业和机会。要害是继续学习和放弃与技术倒退同步,以适应这个疾速变动的畛域。 本文由mdnice多平台公布

June 11, 2023 · 1 min · jiezi

关于程序员:GitOps多环境部署问题及解决方案

大型组织利用GitOps难免会遇到在多环境中部署的问题,本文剖析了应用环境分支策略会遇到到问题,介绍了利用文件夹策略解决这些问题的计划。原文:Stop Using Branches for Deploying to Different GitOps Environments[1], How to Model Your Gitops Environments and Promote Releases between Them[2] 在对于GitOps问题的指南中,咱们简要解释了(参见第3和第4点)以后GitOps工具在反对不同环境部署以及多集群配置建模时的问题。 “如何将公布部署到下一个环境?”的问题在心愿采纳GitOps的组织中越来越受到重视[4],并且有几种可能的答案。但在这篇文章中,咱们将重点探讨在这一过程中不应该做什么。 咱们不应该应用Git分支来建模不同的环境。如果保留配置的Git存储库(在Kubernetes的例子中是manifests/templates)有名为“预发”、“QA”、“生产”等分支,那就掉进了陷阱。 重要的事件说三遍:\应用Git分支来建模不同的环境是一种反模式,不要这样做!\应用Git分支来建模不同的环境是一种反模式,不要这样做!\应用Git分支来建模不同的环境是一种反模式,不要这样做! 咱们将从以下几点探讨为什么这个实际是反模式: 在部署环境中应用不同的Git分支是过来的遗留问题。不同分支之间的pull request和合并是有问题的。人们偏向于蕴含特定于环境的代码并创立不同的配置。一旦环境数量增多,环境的保护就会变得难以管制。每个环境的分支模型违反了现有的Kubernetes生态系统。在不同环境中采纳分支应该只利用于遗留应用程序。当问到为什么抉择Git分支来建模不同的环境时,答复简直总是“咱们始终都是这样做的”,“感觉很天然”,“这是开发人员晓得的”等等。 这没有错,大多数人都相熟在不同环境中应用分支。这一实际是由古老的Git-Flow模型[3]大力推广的。但自从引入这种模式以来,状况产生了很大的变动,甚至最后的作者也从宏观角度收回了重大正告,倡议人们不要在不理解结果的状况下采纳这种模式。 事实上,Git-flow模型…… 专一于应用程序源代码,而不是环境配置(更不用说Kubernetes manifest了)。如果须要在生产环境中反对多个利用版本,这一模型很适合,通常没有这种场景,但也时有发生。因为本文是对于GitOps环境而不是应用程序源代码的,因而不打算在这里过多探讨Git-flow及其毛病,总而言之,如果须要为不同的环境反对不同的个性,那么应该遵循基于骨干的开发[5]并应用个性标记[6]。 在GitOps上下文中,应用程序源代码和配置也应该在不同的Git存储库中(一个存储库只有利用程序代码,一个存储库有Kubernetes manifests/templates)。这意味着应用程序源代码分支不应该影响环境存储库中的分支。 当咱们在我的项目中采纳GitOps时,应用程序开发人员能够为源代码抉择想要的任何分支策略(甚至应用Git-flow),然而环境配置Git存储库(蕴含所有Kubernetes manifests/templates)不应该遵循每个环境一个分支的模型。 部署降级绝不是简略的Git合并既然咱们曾经理解了在部署中应用按环境辨别分支的办法的历史,就能够探讨其毛病了。 这种办法的次要长处是“部署降级是一个简略的git合并”。实践上,如果想要将一个版本从QA环境降级部署到预发环境,只需将QA分支合并到预发分支即可。当咱们筹备好生产环境时,再次将预发分支合并到生产分支,就能够确定来自预发的所有变更曾经部署到了生产环境中。 想晓得生产环境和预发环境之间有什么不同吗?只须要在两个分支之间做一个规范的git diff[7]就能够了。想要将配置变更从预发环境反向移植到QA环境?从预发分支到QA分支的一个简略的Git合并就能够做到这一点。 如果想对部署降级施加额定的限度,能够应用Pull Requests。一方面任何人都能够触发从QA到预发的合并,另一方面如果想在生产分支中合入一些货色,能够触发Pull Request并要求所有利益相关者手动批准。 这在实践上听起来很棒,一些琐碎的场景实际上能够像这样工作。但在实践中,状况并非如此。通过Git合并来降级一个版本可能会遇到合并抵触、引入不想要的变更,甚至触发谬误的变更程序。 上面咱们以Kubernetes部署为例看一个简略的例子,以后部署位于预发分支中: apiVersion: apps/v1kind: Deploymentmetadata: name: example-deploymentspec: replicas: 15 template: metadata: labels: app: my-app spec: containers: - name: backend image: my-app:2.2 ports: - containerPort: 80QA团队曾经告诉咱们说版本2.3(位于QA分支中)看起来曾经筹备好了,能够转移到交付阶段。咱们将QA分支合并到预发分支,部署应用程序,并认为所有都很好。 ...

June 11, 2023 · 3 min · jiezi

关于程序员:node的包管理工具介绍

在前端开发中,应用node作为运行时环境时,常应用npm与yarn等作为包管理工具. npm与yarn存在的问题NPM对于npm,其外围是有一个package.json和package-lock.json文件用于记录和追踪包版本和依赖。 之前版本的npm的node_modules目录构造是 node_modules └─ 依赖A ├─ index.js ├─ package.json └─ node_modules └─ 依赖B ├─ index.js └─ package.json └─ 依赖C ├─ index.js ├─ package.json └─ node_modules └─ 依赖B ├─ index.js └─ package.json但很显著因为这种会反复装置依赖,还无奈共享依赖,当初的版本是这样 node_modules └─ 依赖A ├─ index.js ├─ package.json └─ node_modules └─ 依赖C ├─ index.js ├─ package.json └─ node_modules └─ 依赖B ├─ index.js ├─ package.json └─ node_modules node_modules下所有的依赖都会平铺到同一层级。因为require寻找包的机制,如果A和C都依赖了B,那么A和C在本人的node\_modules中未找到依赖B的时候会向上寻找,并最终在与他们同级的node\_modules中找到依赖包B。 这样就不会呈现反复下载的状况。而且依赖层级嵌套也不会太深。因为没有反复的下载,所有的A和C都会寻找并依赖于同一个B包。天然也就解决了实例无奈共享数据的问题这种扁平化构造尽管是解决了之前的嵌套问题,但同时也带来了另外一些问题: 依赖构造的不确定性扁平化算法的复杂度减少我的项目中依然能够非法拜访没有申明过的依赖包(幽灵依赖)yarn的输入格局提醒以及下载速度比npm更快. PNPM次要是采纳硬链接和软链接的形式,进步了装置速度、节约了磁盘空间、防止了“依赖分身(doppelgangers)”和“幻影依赖(Phantom dependencies)”的问题。而且 yarn 反对的:平安、离线模式、更快的速度,pnpm 都反对,而且速度还要更快。 当初个别用的还是npm或者yarn. 最初再介绍一些打包工具. 罕用的打包工具有Parcel,Rollup与Webpack,当初也经常应用比拟火的Vite,其性能也不仅限于打包. 对于利用应用 webpack或者Vite,对于类库应用 Rollup ...

June 10, 2023 · 1 min · jiezi

关于程序员:GitOps的12个痛点

现在很多团队采纳GitOps作为规范部署流程,这篇文章总结了GitOps的12个痛点,从而帮忙咱们在采纳这一实际的过程中更好的了解GitOps的劣势和缺点,抉择适宜本人的解决方案。原文:The pains of GitOps 1.0[1] GitOps作为软件公布实际有很多长处,但就像其余解决方案一样,它也有毛病,当咱们从采纳GitOps的狂热中冷静下来后,也须要讨论一下GitOps的问题了(以及古代GitOps工具)。 在本文中,咱们将探讨GitOps的12个痛点: GitOps只笼罩软件生命周期的一个子集用GitOps宰割CI和CD并不容易GitOps无奈将公布部署到不同的环境中对于多环境配置建模没有规范实际主动扩容和动静资源管理毁坏GitOps对于回滚没有最佳实际GitOps(和Git)的可察看性不成熟只管所有信息都在Git中,审计还是有问题大规模运维GitOps很艰难GitOps和Helm并不总是可能很好的单干继续部署和GitOps不能一概而论没有治理密钥的规范计划GitOps只笼罩软件生命周期的一个子集这是以后GitOps工具的次要运作模式,只管GitOps(方法论)有一些乏味的特点和卖点,但以后的GitOps工具只关注应用程序的部署局部,其余什么都没有。这些工具解决了“我想把Git中形容的货色放到集群中”的问题,然而软件开发的所有其余方面都没有波及到: 之所以提到这一点,是因为GitOps工具有时被宣传为万能解决方案,能够解决所有的发行问题,但这是不对的。首先,GitOps要求所有部署构件曾经存在,这意味着…… 编译代码运行单元/集成测试平安扫描动态剖析……并不是GitOps工具所关怀的问题,而是被认为都曾经筹备好了。 甚至部署问题(例如环境降级、密钥治理、冒烟测试等)也被轻易排除在GitOps范式之外,采纳GitOps的团队须要为软件交付的所有方面创立本人的最佳实际。 因而,不能简略“采纳GitOps解决方案”并就此结束。GitOps只是整个倒退策略的一部分,应该确保所有其余流程和工作流程曾经筹备好与GitOps单干。 用GitOps宰割CI和CD并不容易GitOps被认为是一种将CI与部署拆散的办法。在CI/CD零碎的经典利用中,流程中的最初一步是部署。 应用GitOps,能够维持纯正的CI流程,只有将候选版本通过Git提交,而不须要部署。Git提交触发部署解决方案,该计划监听Git存储库,并通过在集群中拉取变更来解决理论的部署(从而使集群状态与Git状态统一)。 该场景在实践上很完满,也实用于简略的场景,但当波及到大型组织采纳的高级部署时,很快就会解体。 混合CI和CD的典型例子是冒烟测试,有时候咱们心愿在部署实现后运行冒烟测试,并依据测试的后果决定是否回滚变更。 正如后面所说,GitOps只解决部署构件,通常不波及(或不理解)源代码,然而在大多数状况下,为了运行单元测试,咱们须要拜访应用程序的源代码。 以后的GitOps工具不能运行单元/集成测试,因为这要求可能看到源代码以及测试所需的所有框架和库。这意味着,为了运行冒烟测试,不得不再次回到CI解决方案。 最终的后果是CI-CD-CI-CD组件的混合,这违反了GitOps的次要精力。当然还有一些潜在问题,比方不晓得环境何时实现部署以触发测试。 基于传统的CI/CD流水线执行雷同的场景会很简略。 GitOps无奈将公布部署到不同的环境中这可能是对于GitOps探讨最多的问题之一,也是当谈到GitOps如何在大型组织中工作时最先探讨的话题之一。 思考一个常见场景:在Git中合并(或创立提交),环境X的集群当初部署了新版本,然而如何将这个版本部署到环境Y中呢? 每当有人声称采纳GitOps很简略时,我总会问他们在不同环境之间的部署是如何工作的,但总是失去不同的答案: “咱们用CI零碎来做到这一点。”这意味着再次将CI和CD混在一起,并且抵赖GitOps无奈笼罩这一场景。“咱们为其余环境开一个新的pull request。”这意味着必须为每个环境应用不同的Git分支(稍后会具体介绍),并且还须要引入更多的手动步骤,以便部署公布。“咱们只有一个环境。”这可能适宜小公司,但在其余状况下不可行。很令人悲观,就连专门为解决GitOps问题而创立的页面[2]都说: “GitOps并没有提供一个将变更从一个阶段流传到下一个阶段的解决方案。咱们倡议只应用一个环境,并防止多阶段流传。” 解决不同环境的最风行的办法仿佛是应用不同的Git分支,但这个解决方案有几个毛病: 人们有可能会在特定分支上提交特定于某个环境的代码。我的项目有可能会耦合到特定的环境(而不是通用的)。这给CI零碎带来了不必要的压力,它必须查看/重建/单元测试每个独立的分支。此外,如果有很多环境,多分支解决可能会很快失控。 对于多环境配置建模没有规范实际上一个问题的论断是,如果咱们须要多环境部署,那么GitOps在没方法帮忙咱们。事实上,它会迫使咱们采纳特定的Git分支模式(每个环境用特定分支),从而让事件变得更糟。 一个典型例子是,每个天文区域(每个大陆或每个国家)都有不同的环境。 假如咱们的利用部署在10个国家,咱们心愿一个国家一个国家的推广版本,GitOps有什么解决方案? 一个有10个分支的存储库,这意味着须要在每次公布时开10个pull request。10个Git存储库,这意味着须要编写本人的解决方案,在存储库之间复制提交(或者应用Pull Requests)。一个蕴含10个子文件夹的Git存储库,同样须要内部解决方案来确保更改同步到所有文件夹。不论哪种计划,公布过程都十分繁琐,目前的GitOps工具对于哪种才是规范计划还没有给出答案[3]。 主动扩容和动静资源管理毁坏GitOps在部署实现后,集群状态与Git存储库中形容的完全相同,这是GitOps的关键点。 在大部分简略的状况下,这没有问题,但一旦咱们引入了变量,GitOps工具就会呈现抵触,典型例子如下: 配置了autoscaler的集群的正本个数配置了optimizer的集群的资源限度内部工具增加的额定属性(特地是带有日期或工夫戳的值)一旦集群状态发生变化,GitOps工具就会尝试从Git同步初始值,但在大多数状况下这违反了咱们的冀望。 Argo反对自定义差别[4],Flux也有相干倡议[5],但这些变通方法只是简略的hack了GitOps,背离了GitOps的次要承诺,从长期看会产生其余一些问题[6]。 对于回滚没有最佳实际集群历史的所有记录都在Git中,这使得在GitOps中回滚(据说)非常容易。如果想回滚到以前的版本,只须要对以前的某个提交利用同步操作就行了。 然而在实践中,“应用以前的提交”的确切含意并不明确,因而不同的人会应用不同的回滚形式: 简略的将集群指向一个以前的Git哈希值,而后让GitOps工具同步这个哈希值。这是最快的回滚形式,但依据定义,因为集群不蕴含上次Git提交中所形容的内容,因而会使集群处于不统一的状态。应用规范的Git reset, Git revert命令,而后让GitOps工具像平常一样执行同步操作。这保障了GitOps的承诺(在集群中领有Git repo中的内容),当然,这须要手工干涉。能够组合采纳下面2种形式,GitOps工具将之前的Git哈希同步到集群,并主动提交(或还原)到Git repo,以放弃一致性。这非常复杂,并且不是所有团队都想让部署工具对Git repo有写权限。不用说,不同的人可能心愿应用齐全不同的回滚计划。然而,在撰写本文时,目前的GitOps工具对于如何以规范形式执行回滚只有很少的反对和领导。 GitOps(和Git)的可察看性不成熟GitOps非常适合查看集群状态,并保障与Git状态相匹配。然而,Git的哈希和提交只对开发和运维人员有用,业务相干方对集群中部署了什么Git哈希不感兴趣。 因而,只管GitOps在技术层面上的可察看性很好,但更重要的是要记住,在软件团队中有一些更有用的问题: 生产环境是否蕴含个性X?个性X是否革除了预发环境?bug X、Y只呈现在预发环境还是也呈现在生产环境?对于大多数产品所有者和项目经理来说,这类问题十分重要,应该尽快找到答案。 目前,GitOps工具工作在最低级别(即Git哈希值),并且与每个部署的业务价值没有任何关联,开发/运维人员须要找到产品部署和业务价值之间的关联。 在目前的状态下,GitOps工具在技术层面上非常适合察看集群的内容,然而在监控每个部署的业务指标方面却很蹩脚。 只管所有信息都在Git中,审计还是有问题上一点的推论是,仅仅因为能够以Git提交的模式拜访集群的整个部署历史,并不意味着能够轻松审计它的性能。 以后的Git工具非常适合治理Git哈希,然而当波及到搜寻和了解业务价值时,正如Adam在Lack of Visibility[7]中提到的那样,只能提供简略的自在文本搜寻性能。 假如咱们正在某个特定我的项目中应用GitOps,并且晓得Git历史记录与集群历史记录相匹配,仅仅通过查看Git History,能够多快答复以下问题? 个性X在投入生产之前在预发环境中停留了多长时间?前两个月的最差、最好和均匀交付工夫(从开发人员执行提交到理论投入生产的工夫)是多少?对环境X的部署胜利百分比是多少,须要回滚的百分比是多少?有多少个性在环境X中存在但在环境Y中还没有?这些问题在大型软件团队中很常见,除非在部署平台上有专门的工具,否则仅通过拜访Git存储库及其历史来答复这些问题是十分艰难的。 大规模运维GitOps很艰难Adam在“Git库的扩大”[7]一文中也提到了这一点。如果在领有大量环境和利用的大公司中采纳GitOps,那么Git存储库的数量会迅速飙升。 这使得跟踪每个环境中正在产生的事件变得十分艰难,并且可能很快导致配置冗余或者人们不得不向特定环境提交(而不是应用共享配置)。 例如,如果咱们有20个存有Kubernetes manifests的git仓库,当咱们须要实现一个重要变更(例如,在每个部署中增加一个新的全公司范畴的标签),须要手动实现20个git提交,或者创立一些胶水代码来帮咱们实现。 ...

June 10, 2023 · 1 min · jiezi

关于程序员:这-3个Python-函数你知道吗

动动发财的小手,点个赞吧! 作为21世纪最风行的语言之一,Python当然有很多乏味的性能值得深刻摸索和钻研。明天将介绍其中的三个,每个都从实践上和通过理论示例进行介绍。 我想要介绍这些函数的次要起因是它们能够帮忙您防止编写循环。在某些状况下,循环的运行老本可能很高,除此之外,这些函数将有助于进步速度。 以下是本文将涵盖的性能: map()filter()reduce()即便您以前据说过这些性能,通过更多的实践和示例来增强您的常识也没有什么害处。 因而,事不宜迟,让咱们开始吧! mapmap() 函数承受另一个函数作为参数,以及某种数组。这个想法是将一个函数(作为参数传入的函数)利用于数组中的每个我的项目。 这派上用场有两个起因: 你不用写一个循环它比循环更快让咱们看看它的实际效果。我将申明一个名为 num_func() 的函数,它将一个数字作为参数。该数字被平方并除以 2 并原样返回。请留神,操作是任意抉择的,您能够在函数内做任何您想做的事件: 当初让咱们申明一个数字数组,咱们要在其上利用 num_func()。请留神 map() 自身将返回一个地图对象,因而您须要将其转换为列表: 仿佛该过程已胜利实现。这里没有什么开创性的,但尽可能防止循环是一件坏事。 filter这是另一个能够节俭您工夫的不错的函数——无论是在编写还是在执行上。顾名思义,这个想法是只将满足特定条件的我的项目保留在数组中。 就像 map() 一样,咱们能够事后申明函数,而后将它与可迭代列表一起传递给 filter()。 让咱们看看这个在口头中。我曾经申明了一个名为 more_than_15() 的函数,顾名思义,如果作为参数给出的我的项目大于 15,它将返回 True: 接下来,咱们申明一个数字数组并将它们作为第二个参数传递给 filter() 函数: 正如预期的那样,只有三个值满足给定条件。再一次,这里没有什么开创性的,但看起来比循环好得多。 reduce当初 reduce() 与前两个有点不同。首先,咱们必须从 functools 模块中导入它。这背地的次要思维是它将给定的函数利用于我的项目数组并返回单个值作为后果。 最初一部分很要害——reduce() 不会返回一个我的项目数组,它总是返回一个值。让咱们看一张图来具体阐明这个概念。 这是在案例图不是 100% 分明的状况下写出的逻辑: 5 加到 10,后果是 1515 加 12,后果是 2727 加 18,后果是 4545 加到 25,后果是 7070 是返回的值。从代码实现开始,让咱们从 functools 模块导入 reduce 函数并申明一个返回两个数字之和的函数: 当初咱们能够从新拜访代码中的图表,并验证所有是否失常工作: ...

June 9, 2023 · 1 min · jiezi

关于程序员:欧奈儿行业-RPS-排名一图览全貌-20230609

主动复盘 2023-06-09k 线图是最好的老师,点击详情图能够看到行业 20 日 RPS 的排名,最底下子图是行业 rps 走势线 跟踪板块总结: 成交额超过 100 亿排名靠前,macd柱由绿转红成交量要大于均线公众hao:醉卧梦星河欧奈尔行业RPS排名天天更新追踪主力行业趋势更容易来这里一图看趋势。20 日板块 RPS 排名排名name详情changeamountrps05rps10rps20rps50rps120rps250volume0算力概念2.36%634.41亿100100100100002479.66万手1国资云概念2.75%164.81亿971001008498100874.56万手2数字水印1.38%101.99亿9899998400631.28万手3东数西算2.80%466.00亿9997999699992621.75万手4近程办公1.62%344.81亿9596989098981746.44万手5PCB1.21%205.67亿7481987878821138.21万手6屏下摄像0.74%75.53亿7288975183611183.81万手7机器视觉0.74%140.70亿146397689398691.95万手8通信设施2.24%494.33亿9188979589912188.01万手9EDA概念2.06%60.41亿939096948579206.36万手10通信服务1.44%148.57亿9995969392911447.84万手11信创1.68%1097.55亿899395899605776.44万手12云计算2.21%1403.41亿9494958194967970.21万手13减速器0.43%36.07亿1719438610277.89万手14MiniLED0.57%180.63亿6680948179772244.57万手15网络安全1.92%652.40亿9192947693954082.46万手16光学光电子0.68%206.92亿5276938081772571.24万手17Chiplet概念1.04%110.90亿49679353890371.54万手183D摄像头0.37%46.45亿67592386532359.22万手19游戏5.13%351.62亿9699921001001002948.42万手20互联网服务1.53%628.07亿8893917795963684.82万手21Web3.01.21%406.75亿9097919710002607.16万手22激光雷达1.90%64.99亿617291666686277.26万手235G概念1.40%1201.98亿6879907284847311.90万手24计算机设备0.81%279.22亿7181908188871250.23万手本文由mdnice多平台公布

June 9, 2023 · 1 min · jiezi

关于程序员:潮流地标美罗城焕新活力智图赋能传统商业经典延续|MobTech观察

上海美罗城作为全国最典型的商业革新案例,停业至今25年,其业态业种通过十多年的降级调整,在商业数字化转型的大背景下,紧跟时代潮流,倒退至今,已蜕去数码标签转变为“潮流新地标”。  我的项目信息: 美罗城位于上海市徐家汇商圈外围地带,建筑面积6.7万平方米,地上8层,公开2层,是定位“时尚、潮流、年老、生机”的地标型购物中心。直径41.2米的裸眼3D球幕-“美罗元宇宙”及其璀璨的夜间灯光效果使之成为上海西南地区的“明珠”。 经典连续,美罗城降级为潮流新地标 早在1998年,上海美罗城正式停业。作为徐家汇商圈首个主打数码产品的购物中心,停业即巅峰。受电商产业崛起的影响,自2009年开始,美罗城启动调改降级工程,瞄准了年老客群为主的生产群体。从“上海名牌”B1层五番街正式开街起,每年调整一个楼层。2015年五楼“上剧场”正式亮相;2020年LOFT中国首店停业;逐渐降级为“商旅文体艺”相交融的年老生机购物中心。 受害于其前瞻性的经营调改策略,2021年“美罗湾”正式“开街”亮相,同年入选第一批国家级夜间文化和游览生产会聚区。2022年屋顶足球场“艺星球”停业,“水晶球”也再度实现降级,由3888块4K高清显示屏代替了原有的灯带颗粒,让这颗水晶球成为了寰球首个裸眼3D球幕,同时也拉开了“美罗元宇宙”的尾声。近日,随着25周年特别版“美罗光影秀”与高达6米巅峰主舞台交相辉映,作为此次“首届徐家汇夜生活节”的重磅流动——“美罗城25周年庆典暨美罗城五番YES!”主题流动更是吸引了宽广市民的关注。 错位竞争,美罗城 “ 小而美 ” 焕新生机 为符合生产需要,美罗城把外围客群精准定位在都市白领、年老客群身上,在泛滥高端百货星散的徐家汇商圈中,始终抓住商业主题“时尚、潮流、年老、生机”,采取业态错位竞争,以“商旅文体艺”相交融的模式,以潮流IP、网红餐饮引爆点。 业态上,批发类以杂货、化妆品、眼镜数码为主;餐饮类以特色餐饮、网红轻餐为主;娱乐类以影院、剧场为主。服务配套业种新兴且丰盛,满足了时尚家庭客群及年老白领的需要。布局上,不同于其余购物中心的餐饮或者服装集中在某一个区域,美罗城匹配年老客群“吃喝玩乐逛”的生产偏好,将不同业态打散散布,兼顾多种生产需要,防止人流汇集,打造舒服的休闲娱乐购物体验。文化艺术与商业的混搭,品类与品牌的混搭,合乎其年老、时尚、潮流、生机的定位,造成了美罗城的特有格调。 数智赋能,智图助力美罗城洞察“新”趋势 随着近两年国潮文化的衰亡,年老客群更关注商业的多元化与趣味性。为进一步夯实潮流地标,美罗城通过MobTech袤博科技智图城市商业大数据平台,再次对近两年到访客群客流、到访客群职住起源、到访客群 全维度 画像 及 生产偏好进行了专项钻研剖析,深度开掘疫情前后我的项目到访客群特色,依据到访客群“更年老”等变化趋势,制订了更精细化的经营策略。 围绕最新的主力客群特色及生产偏好,美罗城继续引入潮流批发和网红餐饮,保持“文化引领商业翻新,潮流助力品牌求新”的倒退之路,主打“潮流+”概念,造成“吃、喝、玩、乐、逛”都市型一站式体验性消费结构。在25周年庆期间,美罗城汇聚了40多家不同业态和各类文化状态的品牌和商家参加,赋予市集更强生存社交属性,特地打造的巅峰主舞台融入爵士、电音、摇滚等不同主题演艺流动,给市民游客带来沉迷式的观演逛街新体验。 商场主题街区设计上,内部采纳商圈灯光能级晋升、美罗城外幕墙焕新、商场营业时间缩短等形式,外部通过每楼层的主题街区、餐饮外摆设计等,晋升商业休闲体验感,吸引年轻人打卡,更大程度地开释消费市场生机,更高质量地推动线下经济倒退,致力成为“徐家汇商圈建设富裕生机和吸引力的世界级夜景新地标”。  在生产满意度决定交易速度的体验时代,购物中心须要一直以消费者的动向为翻新理念。然而如何疾速洞察生产客群,深度耦合消费者多样且深度的需要,构建高效率的商业精细化经营服务,成为商业我的项目继续出圈及实现业绩晋升的重要难题。 面对不变降级变革的生产需要以及新时代下的生产主力军,为了高效解决上述难题,MobTech袤博科技自主研发的智图城市商业大数据平台,正成为精准洞察和辐射主力生产客群的数字化利器。作为标准化利用的轻量级数智化研策SaaS产品,智图的数据笼罩商业场景POI超3000万、全国重点省市超47个、商场收录超7000家、品牌监测超8000家,商场客群数据可回溯达2年之久。 在商业数据的剖析维度上,智图全域商业数据不仅可能做到自动更新,还反对区域、商圈/板块及商业我的项目可视化比照,动态分析城市、区域、商圈及商业购物中心客流及客群起源、客群画像、生产偏好等数据,满足商业购物中心全流程多场景数字化研策需要。 值得一提的是,近期,智图“导出报告”正式上线,5分钟即可生成1份我的项目 及客群剖析 报告,更是极大地提高了商业地产从业人员的工作效率。

June 9, 2023 · 1 min · jiezi

关于程序员:Angular4-教程编程入门自学教程菜鸟教程免费教程分享

教程简介Angular是Google推出的Web前端开发框架,从12年公布起就受到了强烈的关注,他首次提出了双向绑定的概念,让人耳目一新,在2016年9月中旬,Google正式公布了Angular的第二代开发框架Angular 2,2017年3月推出了Angular4。 Angular 4入门教程 - 从根本到高级概念的简略易学步骤理解Angular 4,其中包含概述,环境设置,我的项目设置,组件,模块,数据绑定,事件绑定,模板,指令,管道,路由,服务,Http服务,表单,动画,资料,CLI,示例。 教程目录Angular 4教程Angular 4 - 概述Angular 4 - 环境设置Angular 4 - 我的项目设置Angular 4 - 组件Angular 4 - 模块Angular 4 - 数据绑定Angular 4 - 事件绑定Angular 4 - 模板Angular 4 - 指令Angular 4 - PipesAngular 4 - 路由Angular 4 - 服务Angular 4 - Http服务Angular 4 - FormsAngular 4 - 动画Angular 4 - MaterialsAngular 4 - CLIAngular 4 - 示例Angular 4 - 有用的资源

June 9, 2023 · 1 min · jiezi

关于程序员:5分钟了解Kubernetes-Ingress和Gateway-API

理解Kubernetes Ingress和Gateway API之间的差别,以实现无效的流量治理。原文: Kubernetes Ingress Vs Gateway API 概述Kubernetes现在被广泛应用于容器治理、微服务编排解决方案。对于如何管制微服务的入口流量,Kubernetes提供了两种抉择: Ingress和Gateway API。这篇文章将比照Ingress API和Gateway API,比拟两者各自的实用场景。 2022年5月份Kubernetes Gateway API才公布了Beta版本,以后大多数组织应该还在应用稳固的Ingress API。 为什么须要新的API来治理入口流量?新的Gateway API解决了Ingress API的哪些毛病?本文将介绍Ingres API和Gateway API之间的区别和利用。 通过Ingress公开服务 Kubernetes Ingress定义了如何将内部流量定向到集群外部的服务。作为负载均衡器,解决来自集群内部的申请,发送给集群内运行的适当服务。定义入口规定的YAML文件形容了一组基于主机名或URL门路的流量路由指南,根本设置和示例可参考Kubernetes Ingress with NGINX Ingress Controller Example一文。 只有在K8s集群中运行Ingress控制器,能力使ingress资源失效。 Kubernetes有很多不同的Ingress控制器,参考Kubernetes Additional controllers。 本文将以Nginx ingress及其ingress控制器为例。 通常在创立ingress类的同时创立ingress。 apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: ingress-examplespec: rules: - host: sub.example.com http: paths: - path: /auth pathType: Prefix backend: service: name: http-echo-server port: number: 8080 - path: /api pathType: Prefix backend: service: name: api-svc port: number: 9090 ingressClassName: nginx以上代码是基于门路路由的一个简略的ingress示例,/auth申请重定向到http-echo-server服务,而/api申请重定向到api-svc。 ...

June 9, 2023 · 1 min · jiezi

关于程序员:venv是什么

博客:cbb777.fun 全平台账号:安妮的心动录 github: https://github.com/anneheartrecord 下文中我说的可能对,也可能不对,鉴于笔者程度无限,请君自辨。有问题欢送大家找我探讨 venv是Python中的一个模块,用于创立和治理虚拟环境(virtual environments)。 虚拟环境是一种隔离的Python环境,能够独立于零碎中的其余Python环境进行操作 通过创立虚拟环境,你能够为每个我的项目创立一个洁净的、隔离的Python环境。这样能够确保我的项目所依赖的软件包和版本不会和其余的我的项目产生抵触,同时也不便在不同的我的项目之间进行切换和治理依赖关系。 个别咱们通过 source venv/bin/activate来激活venv环境,从而进入到虚拟环境,而后能够在虚拟环境中应用pip install -r来装置所须要的python包,这些包会被装置到该虚拟环境中,而后能够通过exit或者deactivate进行退出

June 9, 2023 · 1 min · jiezi

关于程序员:Go云原生学习笔记二

博客:cbb777.fun 全平台账号:安妮的心动录 github: https://github.com/anneheartrecord 下文中我说的可能对,也可能不对,鉴于笔者程度无限,请君自辨。有问题欢送大家找我探讨 gRPCgRPC是一种现代化开源的RPC框架,可能运行于任何环境之中,最后由谷歌进行开发,之前说过RPC是一种软性的标准,而不是硬性的协定。它的底层协定应用HTTP/2作为传输协定。这是因为HTTP 2协定通过优化之后速度曾经足够快,并且HTTP2同样应用二进制的数据进行传输,和RPC不约而同。 常见的负载平衡算法 1.轮询算法:依照程序顺次轮流将申请调配给后端服务器,直到轮询完所有的服务器之后从新开始 2.随机算法:随机抉择一个后端服务器来解决申请 3.加权轮询:依据后端服务器的解决能力,为每个服务器调配一个权重值,而后依照权重顺次轮询调配申请 4.加权随机:依照后端服务器的解决能力,为每个服务器调配一个权重值,而后依照权重值随机抉择一个服务器来解决申请 5.最小连接数:讲申请调配给以后连接数起码的服务器,以保障负载平衡 6.IP哈希算法:依据客户端的IP地址,通过哈希算法计算出一个值,而后将这个值对服务器列表长度取值,失去要拜访的服务器编号,相似于随机 7.故障转移:如果以后服务器呈现故障或者无奈解决申请,则主动切换到下一个可用的服务器 grpc实现了哪些负载平衡算法 1.轮询 2.最小连接数 3.故障转移 4.随机 这些负载平衡算法都能够在grpc的客户端配置中进行设置。默认状况下,应用的是轮询算法。 如果须要应用其余负载平衡算法,能够应用gprc提供的负载均衡器,比方grpclb。此外,grpc还提供了扩大借口来让用户自定义负载平衡算法 在gRPC中,客户端能够像调用本地办法一样间接调用其余机器上的服务端应用程序的办法,帮忙你更容易创立分布式应用程序和服务。gRPC是基于定义一个服务,制订一个能够近程调用的带有参数和返回类型的办法。在服务端程序中实现这个接口并且运行gRPC服务解决客户端调用,在客户端,有一个stub提供和服务端雷同的办法 为什么要用gRPCgRPC能够帮忙咱们一次性的在一个.proto文件中定义服务并应用任何反对它的语言去实现客户端和服务端,也就是说gRPC解决了不同语言以及环境间通信的复杂性。应用protocol buffer还能取得其余益处,包含高效的序列化,简略的IDL以及容易进行接口更新。总之,应用gRPC可能帮忙咱们更容易编写跨语言的分布式代码 IDL(Interface description Language) 是指接口描述语言,是用来形容软件组件接口的一种计算机语言,是跨平台开发的根底。IDL通过一种中立的形式来形容接口,使得在不同平台上运行的对象和用不同语言编写的程序能够互相通信交换;比方,一个组件用C++写成,另一个组件用Go写成 应用gRPC进行开发的步骤编写.proto文件定义服务 默认状况下gRPC应用protocol buffers作为接口定义语言(IDL)来形容服务接口和无效负载音讯的构造在gRPC中能够定义四种类型的服务办法 一般rpc,客户端向服务器发送一个申请,而后失去一个响应,就像一般的函数调用一样rpc SayHello(HelloRequest) returns (HelloResponse); 服务器流式rpc,其中客户端向服务器发送申请,并取得一个流来读取一系列音讯。客户端从返回的流中读取,直到没有更多的音讯,gRPC保障在单个RPC调用的音讯是有序的rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse); 客户端流式rpc,其中客户端写入一系列音讯并将其发送到服务器,同样应用提供的流。一旦客户端实现了音讯的写入,它就期待服务器读取音讯并返回响应,同样,gRPC保障单个RPC调用中的音讯是有序的rpc LostsOfGreetings(stream HelloRequest) returns(HelloResponse); 双向流式rpc,其中单方应用读写流发送一系列音讯,这两个流独立运行,因而客户端和服务器能够依照本人喜爱的程序读写;例如,服务器能够期待承受所有客户端音讯后再写响应,或者能够交替读取音讯而后写入音讯,或者其余读写组合。每个流中的音讯是有序的rpc LostsOfGreetings(stream HelloRequest) returns(stream HelloResponse); 生成指定语言的代码(客户端一份、服务端一份)在.proto文件中定义好服务之后,gRPC提供了生成客户端和服务端代码的protocol buffers编译器插件。咱们应用这些插件能够依据须要生成Java Go C++ Python等语言的代码,咱们通常会在客户端调用这些API,并且在服务器端实现对应的API 在服务器端,服务器实现服务申明的办法,并运行一个gRPC服务器来解决客户端发来的调用申请。gRPC底层会对传入的申请进行编码,执行被调用的服务办法,并对服务响应进行编码在客户端,客户端有一个称为存根(stub)的本地对象,它实现了与服务雷同的办法。而后,客户端能够在本地对象上调用这些办法,将调用的参数包装在适当的protocol buffers音讯类型中--gRPC在向服务器发送申请并返回服务器的protocol buffers响应之后进行解决编写业务逻辑代码proto文件生成pb.go以及grpc.pb.go的命令不指定proto门路protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative yourpath指定proto门路protoc --proto_path=pb --go_out=pb --go_opt=paths=source_relative --go-grpc_out=pb --go-grpc_opt=paths=source_relative xxx.proto ...

June 9, 2023 · 6 min · jiezi

关于程序员:Go云原生学习笔记一

博客:cbb777.fun 全平台账号:安妮的心动录 github: https://github.com/anneheartrecord 下文中我说的可能对,也可能不对,鉴于笔者程度无限,请君自辨。有问题欢送大家找我探讨 基本概念架构演变用架构历史 1.单体架构 堆机子 高耦合 一改变就须要重新部署 而且编译工夫很长,不容易拓展,不反对多语言技术栈 2.分层架构 典型的有MVC和MSC架构 当访问量逐步增大,单体架构扛不住了,把单体我的项目进行垂直划分,耦合还是很大,我的项目之间的接口多为数据同步,比方不同我的项目之间的数据库同步。 架构简略,成本低开发周期短,通过垂直拆分之后原来的单体我的项目不至于太大,每一层能够用不同的技术,但还是不易拓展和保护 3.SOA面向服务架构 :当垂直架构的利用越来越多,就会呈现多个利用都依赖的业务组件,比方数据库,而且各个利用交互越来越频繁,此时就须要把局部通用的组件拆分独立解决,于是SOA面向服务架构诞生了,它带来了模块化开发、分布式拓展部署和服务接口定义等概念 实时SOA须要建设企业服务总线,内部利用通过总线调用服务,有以下特色:可从企业内部拜访、随时可用、标准化的服务接口等 长处: 曾经具备微服务的影子了,将反复的性能抽离进去,进步开发效率缩小接口耦合SOA架构实用于大型软件服务企业对外提供服务的场景,并不适宜个别的业务场景,其服务的定义、注册和调用都须要繁琐的配置,业务总线的吞吐量决定了整个零碎的下限,因为整个零碎都是通过总线进行任务分配的。并且业务总线也容易导致系统崩掉、影响性能。 4.微服务架构: 特点 1.服务层齐全独立进去 并将服务层抽取为一个一个的微服务 2.微服务遵循繁多准则 3.微服务之间采纳RESTful等轻量协定通信 4.微服务个别用容器技术部署 运行在本人的独立过程中 微服务架构下服务的拆分粒度更细,有利于资源重复利用,进步开发效率,采纳去中心化思维,更轻量级 毛病:如果服务实例过多,治理老本就会很大,不利于保护;服务之间相互依赖,可能造成简单的依赖链条,往往单个服务异样,其余服务也会受到影响,呈现服务雪崩效应。 微服务与SOA的区别: 微服务继承了SOA的泛滥长处和理念 SOA更适宜与许多其余应用程序继承的大型简单企业应用程序环境,小型的利用并不适宜SOA,微服务则更适宜于较小和良好的宰割式web业务零碎 微服务不再强调SOA架构中比拟重要的ESB企业服务总线,而是通过轻量级通信机制互相沟通 SOA重视的是零碎继承,而微服务关注的则是齐全拆散,SOA尝试采纳中心化治理来确保各个利用可能协同运作,微服务则尝试部署新性能,疾速无效地拓展开发团队,它着重于扩散治理、代码再利用和自动化执行。 微服务的劣势和劣势微服务的劣势 1.快:更重视CI/CD 麻利开发、继续交付 2.准:服务粒度小、服务质量精准可控 3.狠:实用于互联网时代、产品迭代周期更短 微服务的劣势 1.零碎的复杂性 2.服务依赖治理 3.数据的一致性保障 4.测试更加艰巨 5.对于DevOps等基础设施的高要求 如何划分微服务界线如何进行服务划分? 1.依照业务职能进行划分 由公司外部不同部门提供的只能。例如客户服务部门提供客户服务的职能,财务部门提供财务相干的职能 2.依照DDD的限界上下文划分 限界上下文是DDD中用来划分不同业务边界的元素 这里业务边界的含意是“解决不同业务问题”的问题域和对应的解决方案域 为了解决某种类型的业务问题,贴近畛域,也就是业务 CQRS将零碎中的操作划分为两类,即【命令】Command和【查问】Query 命令则是对会引起数据发生变化操作的总称,即咱们常说的新增、更新、删除的这些操作,都是命令。 而查问则和字面意思一样,即不会对数据产生变动的操作,只是依照某些条件查问数据。 CQRS的核心思想是将两类不同的操作进行拆散,而后在两个独立的【服务】中实现。这里的服务个别指的是两个独立部署的利用,在某些非凡状况下,也能够部署在同一个利用内的不同接口上。 微服务的迭代1.第一代2.第二代把那些服务监控、服务治理作为根底服务提供给咱们的业务架构分层 外围组件 API网关服务注册核心配置核心服务通信服务治理服务监控net/rpcRPC呈现的起因RPC须要解决三个问题 1.如何要确定要执行的函数? 在本地调用中,函数主体通过函数指针函数指定,而后调用add函数,编译器通过函数指针函数确定add函数在内存中的地位。 然而在RPC中,调用不能通过函数指针实现,因为他们的内存地址可能齐全不同。 因而,调用方和被调用方都须要保护一个{fuction<->ID}映射表,以确保调用正确的函数 2.如何表白参数? 本地过程调用中传递的参数是通过堆栈构造实现的,然而RPC不能间接应用内存传递参数,因而参数或返回值须要在传输期间转换成字节流,反之亦然 3.如何通过网络传输? 函数的调用方和被调用方通常是通过网络连接的,也就是说 function ID和序列化字节流须要通过网络传输,因而,只有可能实现传输,调用方和被调用方就不受某个网络协议的限度。例如,一些RPC框架应用TCP协定,一些应用HTTP。 ...

June 9, 2023 · 2 min · jiezi

关于程序员:阿里云的认证为什么那么受欢迎想考的话需要做什么

须要做什么能力取得更好的薪资,想要领有更多的资源,从事好的岗位,那就须要把握更加优良的技术和证书。对于从事信息通信行业的人来说,想要晋升本人的能力,就须要领有更多的证书,通过考试来晋升本人,阿里云证书是目前业界内十分受欢迎的一项认证,上面大使简略介绍一下,有须要的能够在认证大使上具体理解。 阿里云证书分类 阿里云的证书次要是针对阿里云旗下的认证产品所设立的,如果考生从事的是相干的职位,而且和阿里云有单干关系,那么是能够在空闲期间取得本人的认证的,以此来晋升本人的职业竞争力。 阿里云证书等级 1、ACA证书 很多人在大学毕业后,能够通过考根底等级证书来帮忙本人找工作,阿里云的ACA证书就是做根底的,这个等级有云计算、大数据、云原生等方向,考试能够依据本人的须要来抉择。 考试费用:600 考试模式:线上 考试题型:单选35;多选15 2、ACP证书 如果想要通过证书来升职加薪,那么ACP认证是不二的抉择,这是阿里云性价比最高的证书,很多公司甚至会组织员工来考试,而取得证书后,不仅能够领有取得进入阿里云的机会,还可能被阿里云的合作伙伴聘用。 考试费用:1200 考试模式:线下+线上 考试题型:单选70;多选30;试验11 3、ACE证书 阿里云云计算架构师ACE认证(Alibaba Cloud Certified Expert - Cloud Computing)是针对云架构师,解决方案架构师,云运维专家等技术人员的阿里云高级别技术认证。通过该技术认证能够无效证实该认证人员具备丰盛的需要剖析能力,云架构设计能力,云架构部署施行能力,云架构诊断和调优能力,洞察业务痛点,制订无效的技术改良计划,最大限度地进步零碎架构可扩展性,安全性,可靠性,耐用性和老本效益等个性。 考试费用:9600 考试模式:线下+线上 考试题型:单选70;多选30;试验;面试

June 8, 2023 · 1 min · jiezi

关于程序员:Monica-您的又一个免费ChatGPT-40

最近 ChatGPT 又开始封号了,次要起因如下: 违反应用条款:如果用户违反了平台或利用的应用条款,例如公布守法、歹意或滥用行为的内容,进犯别人的权力,或者从事垃圾信息流传等,管理员可能会采取封号措施。滥用行为:如果用户进行歹意攻打、骚扰、欺诈、欺骗或其余违法行为,管理员可能会对其进行封号以爱护其余用户和平台的平安。用户投诉:如果其余用户对某个用户的行为提出投诉,并且通过考察确认投诉属实,管理员可能会采取封号措施以应答违规行为。违反隐衷政策:如果用户违反了平台或利用的隐衷政策,例如未经受权地获取别人的个人信息,滥用用户数据等,管理员可能会采取封号措施。如果你还没有尝试过ChatGPT,或者曾经被封号了,那么请往下看吧。 Monica 是一个浏览器扩大,它具备了如下性能: 快捷指令 写作聊天上面是Monica 应用界面 此外,Monica 还有许多其余性能,例如: 弱小的全网页浏览能力:无论文章有多长,Monica可能在5秒内与任何网页和长文本进行问答交换,为用户提供即时的反馈和解答。网页划词指令:只需划选文字,Monica就能提供翻译、润色等性能,并反对自定义指令。例如,在知乎选中某个问题时,Monica能够为该问题生成一个答复。业余文案创作:Monica内置了各种业余畛域的内容创作计划,包含SEO、视频脚本等。用户能够一键套用这些计划,疾速生成高质量的文案内容。搜寻加强:在日常搜寻中,Monica可能提供本人的答案,为用户提供更全面的搜寻后果和参考意见。联网搜寻:Monica具备联网检索的能力,能够为用户获取更宽泛的信息,并生成相应的答复和解决方案。AI绘图反对:Monica还反对相似Midjourney形式的图片创作,为用户提供创意绘图的反对。GPT-4反对:针对那些对内容业余水平有更高要求的用户,Monica还提供了GPT-4反对的版本,以满足更高水平的内容创作需要。如何获取拜访 Monica: https://monica.im/?c=GBOU3FMA 进行注册并装置扩大插件本文由mdnice多平台公布

June 8, 2023 · 1 min · jiezi

关于程序员:前端开发应该掌握的查找算法

前端开发应该把握的查找算法前端开发人员在平时我的项目开发过程中查找算法应该是应用频率最高的算法之一,因而咱们把握一些常见的查找算法是很有必要的,把握这些算法不仅能进步咱们的开发工作效率,好的算法实现还能在肯定水平上晋升我的项目性能,同时也能晋升咱们的编程思维能力。 那么常见的查找算法有哪些呢? 线性查找二分查找插值查找哈希查找二叉搜寻树查找AVL树、红黑树、B树/B+树查找总结 线性查找线性查找(Linear Search)是一种简略直观的查找算法,实用于无序的数据汇合。它通过一一比拟查找指标,直到找到指标元素或遍历残缺个数据汇合。 实现原理: 从数据汇合的第一个元素开始,一一与指标元素进行比拟。如果找到了匹配的元素,返回该元素的索引。如果遍历残缺个数据汇合都没有找到匹配的元素,返回-1示意查找失败。示例代码和正文如下: // 线性查找算法function linearSearch(arr, target) { for (let i = 0; i < arr.length; i++) { if (arr[i] === target) { return i; // 返回匹配元素的索引 } } return -1; // 没有找到匹配元素,返回-1}// 示例用法const arr = [5, 8, 2, 10, 3];const target = 10;const index = linearSearch(arr, target);console.log(index); // 输入:3应用场景:线性查找实用于简略的无序数据汇合,或者数据汇合规模较小的状况。它不须要数据汇合有特定的排序形式,能够间接遍历查找指标元素。线性查找的长处是简略易懂,实现简略,对于小规模数据汇合的查找是无效的。然而,对于大规模数据汇合,线性查找的效率绝对较低,因为它的工夫复杂度为O(n),须要一一比拟所有元素。在须要频繁进行查找操作、数据汇合较大且有序的状况下,能够思考应用其余更高效的查找算法,如二分查找或哈希查找。 二分查找二分查找(Binary Search)是一种高效的查找算法,实用于有序的数据汇合。它通过将查找范畴分成两半,并与指标元素进行比拟,从而疾速定位指标元素的地位。 实现原理: 确定查找范畴的起始地位(通常是数组的起始地位和完结地位)。计算查找范畴的两头地位。将两头地位的元素与指标元素进行比拟。如果两头地位的元素与指标元素相等,示意找到指标元素,返回两头地位的索引。如果两头地位的元素大于指标元素,放大查找范畴为左半局部,继续执行步骤2。如果两头地位的元素小于指标元素,放大查找范畴为右半局部,继续执行步骤2。如果查找范畴放大到起始地位大于完结地位,示意未找到指标元素,返回-1示意查找失败。示例代码和正文如下: // 二分查找算法function binarySearch(arr, target) { let start = 0; // 起始地位 let end = arr.length - 1; // 完结地位 while (start <= end) { let mid = Math.floor((start + end) / 2); // 两头地位 if (arr[mid] === target) { return mid; // 找到指标元素,返回索引 } else if (arr[mid] > target) { end = mid - 1; // 放大查找范畴为左半局部 } else { start = mid + 1; // 放大查找范畴为右半局部 } } return -1; // 未找到指标元素,返回-1}// 示例用法const arr = [2, 5, 8, 10, 15];const target = 8;const index = binarySearch(arr, target);console.log(index); // 输入:2应用场景:二分查找实用于有序的数据汇合。相较于线性查找,二分查找具备更高的效率,因为它通过将查找范畴放大一半来迅速定位指标元素。二分查找的工夫复杂度为O(log n)。应用二分查找的前提是数据汇合曾经有序,因而实用于静态数据汇合或者很少变动的数据汇合。常见的应用场景包含查找有序数组、在数据库索引中进行查找、在字典或词汇表中进行查找等。然而,二分查找的局限是要求数据汇合必须有序,如果数据汇合频繁变动,插入和删除元素时须要维持有序性,可能会导致插入和删除操作的效率降落。 ...

June 8, 2023 · 3 min · jiezi

关于程序员:欧奈儿行业-RPS-排名一图览全貌-20230608继续总结

主动复盘 2023-06-08k 线图是最好的老师,点击详情图能够看到行业 20 日 RPS 的排名,最底下子图是行业 rps 走势线 跟踪板块总结: 成交额超过 100 亿排名靠前,macd柱由绿转红成交量要大于均线公众hao:醉卧梦星河欧奈尔行业RPS排名天天更新追踪主力行业趋势更容易来这里一图看趋势。20 日板块 RPS 排名排名name详情changeamountrps05rps10rps20rps50rps120rps250volume0算力概念-0.07%506.17亿94100100100002022.43万手1数字水印-0.29%126.84亿951001009100733.96万手2近程办公0.22%257.64亿9197998698981450.80万手3国资云概念1.20%126.61亿9499997198100743.95万手4PCB-1.64%183.84亿5083987078821022.86万手5屏下摄像-1.72%53.87亿809098428459784.00万手6机器视觉-1.58%152.79亿46697839599698.77万手7东数西算0.89%348.62亿9496979699982140.41万手8通信设施-0.74%382.84亿6686979488901637.38万手9MiniLED-1.69%156.63亿6979967881771634.66万手10游览酒店0.16%96.32亿999696845684552.08万手11Chiplet概念-1.12%79.77亿24729545910309.31万手12通信服务-0.26%123.08亿9695959391901193.74万手13计算机设备-0.69%188.90亿518294818988929.37万手14光学光电子-1.64%183.91亿4973947183771898.40万手153D摄像头-2.37%48.40亿247894357033436.94万手16信创-0.54%932.74亿759393889605109.66万手17减速器-0.74%31.58亿829357620247.77万手18动物照明-1.87%45.95亿225292657669367.51万手19生产电子-1.65%210.08亿4766924170731160.23万手20互联网服务-0.84%583.06亿7993918294963316.58万手21EDA概念-0.54%47.46亿778791938576173.14万手22Web3.0-1.08%382.28亿9099919710002387.22万手23网络安全-0.32%529.33亿7691906292953397.54万手24电子车牌-0.84%45.47亿568590728993334.80万手本文由mdnice多平台公布

June 8, 2023 · 1 min · jiezi

关于程序员:Angular6-教程编程入门自学教程菜鸟教程免费教程分享

教程简介Angular 6是一个JavaScript框架,用于构建JavaScript,html和TypeScript中的Web应用程序和应用程序,它是JavaScript的超集。它是Angular的一个更新版本,相当于angular的6.x版本。 Angular 6入门教程 - 从根本到高级概念的简略的步骤理解Angular 6,其中包含概述,环境设置,我的项目设置,组件,模块,数据绑定,事件绑定,模板,指令,管道,路由,服务,Http服务,表单,动画,资料,CLI,示例。 教程目录Angular 6教程Angular 6 - 概述Angular 6 - 环境设置Angular 6 - 我的项目设置Angular 6 - 组件Angular 6 - 模块Angular 6 - 数据绑定Angular 6 - 事件绑定Angular 6 - 模板Angular 6 - 指令Angular 6 - 管道Angular 6 - 路由Angular 6 - 服务Angular 6 - Http服务Angular 6 - Http ClientAngular 6 - 表单Angular 6 - 动画Angular 6 - MaterialsAngular 6 - CLIAngular 6 - 有用的资源

June 8, 2023 · 1 min · jiezi

关于程序员:10分钟了解Kubernetes网络

Kubernetes是古代容器化利用不可或缺的弱小、牢靠的根底平台。本文将介绍Kubernetes中与网络相干的组件,正是这些组件撑持Kubernetes成为云原生利用的首选基础设施。原文: Networking in Kubernetes网络是Kubernetes中十分值得了解的重要主题,它帮忙Kubernetes集群上的利用可能互相通信,以及反对利用与内部服务的通信。 在Kubernetes集群中,每个pod都有本人惟一的IP地址,该IP地址在集群内可路由。这个IP地址通常由Kubernetes网络插件调配,该插件负责配置集群网络。网络插件是Kubernetes网络架构的要害组件,有多种抉择,如Calico、Flannel和Weave Net。 除了网络插件,Kubernetes还包含许多与网络相干的组件,如负责跨多个pod均衡网络流量的kube-proxy,以及为一组pod提供稳固的IP地址和DNS名称的Service对象。 网络对集群上运行的应用程序性能和可靠性有重要影响,因而对于任何应用Kubernetes的人来说,理解网络在Kubernetes中的工作形式十分重要。 Ingress 在Kubernetes中,Ingress是一类API对象,提供了从内部拜访集群内服务的配置形式。Ingress资源通常定义一组规定,指定如何依据传入申请的主机和门路将传入流量路由到适当的服务,从而将来自集群外的HTTP和HTTPS路由给集群内的服务。 当申请进入Kubernetes集群时,首先达到Ingress控制器,该控制器负责依据Ingress资源中定义的规定治理和路由流量。Ingress控制器基于Ingress资源中定义的一组规定来确定流量应该路由到哪里。为了使Ingres无效工作,须要应用Nginx,AWS之类的Ingress控制器。 一旦Ingress控制器确定了要将流量路由到哪个服务,就会将申请转发到服务的ClusterIP(这是由Kubernetes网络插件调配给服务的外部IP地址),而后该服务基于本人的规定来确定将流量转发到哪个pod。 流量达到指标pod后,由pod内运行的利用程序处理。而后,响应通过雷同的门路(通过服务和Ingress控制器)发送回原始申请发送方。 须要留神的是,Ingress资源只负责将流量路由到集群内的服务,而不解决任何身份验证或安全性。因而,通常须要与其余安全措施(如TLS终端或Web应用程序防火墙(WAF))联合应用,以提供安全可靠的服务。 DNS DNS(Domain Name System)是服务和pod之间互相发现和通信的一种形式,是一种负责将服务名称转换或解析为IP地址的服务。Kubernetes集群中的每个pod都被调配了惟一的主机名,该主机名由pod名及其命名空间组成。默认状况下,每个主机名都能够在集群DNS命名空间中解析。 当在Kubernetes中创立服务时,会调配一个稳固的DNS名称,用于从集群内的其余pod和服务拜访该服务。 DNS名称的格局通常为servicename.namspace.svc.cluster.local,其中servicename是服务名,namespace为服务所在的Kubernetes命名空间,cluster.local为集群默认的DNS域。 当pod想要与服务通信时,能够简略的通过服务的DNS名称连贯。Kubernetes DNS服务将把DNS名称解析为调配给该服务的相应ClusterIP,并将流量路由到适当的pod。 除了解析服务的DNS名称外,Kubernetes还反对自定义DNS配置,容许指定解析DNS查问时应应用的其余DNS服务器或搜寻域。如果须要在Kubernetes集群之外解析DNS名称,例如拜访内部服务或API,就会十分有用。 总之,DNS是Kubernetes网络的要害组件,容许服务和pod互相发现和通信,并且是在Kubernetes集群上部署牢靠和可扩大应用程序的基础设施的重要组成部分。 Core DNSCoreDNS是Kubernetes中用于服务发现和DNS解析的风行的DNS服务实现,是Kubernetes的默认DNS服务,并确保pod和服务都有FQDN(Fully Qualified Domain Name)。CoreDNS是灵便、可扩大的DNS服务,能够很容易被集成到Kubernetes集群中,并且能够自定义以反对宽泛用例。没有CoreDNS,集群通信将无奈工作。 在Kubernetes中,CoreDNS通常作为pod部署在集群中,负责解析服务和pod的DNS查问。CoreDNS应用Kubernetes API检索无关服务和pod的信息,并主动为每个服务和pod生成DNS记录。 在Kubernetes中应用CoreDNS的益处之一是它是高度可配置的,并且能够扩大以反对自定义插件和DNS供应商。例如,能够应用CoreDNS插件来增加对自定义DNS域的反对,或者与内部DNS供应商集成。 CoreDNS的另一个益处是,它提供了比Kubernetes中以前的默认DNS服务kube-dns更好的性能和可伸缩性。CoreDNS由Go语言编写,其设计更轻量、高效,非常适合在高流量的Kubernetes环境中解决大量DNS查问。 要在Kubernetes集群中应用CoreDNS,能够通过Kubernetes manifest文件或Helm chart将其部署为pod。部署后,能够配置CoreDNS服务以满足特定需要,例如增加自定义DNS供应商、定义自定义DNS域,或与其余Kubernetes组件(如Ingress或ExternalDNS)集成。 总之,CoreDNS是弱小灵便的DNS服务实现,非常适合利用在Kubernetes集群中,并为古代云原生利用的服务发现和DNS解析提供了松软的根底。 探针(Probes)在Kubernetes中,探针用于确定pod中运行的容器健康状况,是Kubernetes自我修复和主动扩容性能的要害局部,为集群提供了一种自动检测和从不衰弱的容器中复原的办法,可用于检测容器状态。 Kubernetes提供了三种类型的探针: 存活状态探针(Liveness Probe)此类型探针用于确定容器是否仍在运行并且运行失常。该探针定期向容器发送申请,如果容器没有响应或响应谬误,探针将把容器标记为不衰弱并触发重启。 如果利用正在运行但无奈实现任何工作,存活状态探针能够捕捉死锁,重新启动容器,从而在容错的前提下进步利用的可用性。 就绪状态探针(Readiness Probe)这种类型的探针用于确定容器是否筹备好开始接管流量。就绪探针定期向容器发送申请,如果容器胜利响应,则将其标记为筹备好接管流量。如果容器响应失败或谬误,将被标记为未筹备好,并且在再次筹备好之前不会接管任何流量。 启动探针(Startup Probe)这种类型的探针用于确定容器是否处于启动过程中。启动探针定期向容器发送申请,如果容器响应胜利,将被标记为筹备好接管流量。如果容器响应失败或谬误,启动探针将持续发送申请,直到容器筹备好,或者达到可配置的超时工夫。 Kubernetes的探针定义在pod标准中,通过YAML进行配置,每个探针都由一组参数定义,例如探针类型、要探测的端点、超时工夫、周期以及胜利和失败阈值。 总之,探针是Kubernetes的弱小性能,使容器可能在产生故障或无响应的状况下收到监控并重新启动,有助于进步在Kubernetes集群上运行的应用程序的可靠性和可用性。 Netfilter在Kubernetes中,Netfilter用于实现网络策略,以管制集群中pod之间的网络流量。网络策略是Kubernetes对象,定义了流量如何在pod之间流动的规定,并通过Netfilter规定来执行这些策略。 当Kubernetes集群利用了网络策略后,Kubernetes API服务与网络插件通信,网络插件负责在底层网络基础设施中配置网络规定,并生成Netfilter规定来执行网络策略。 网络插件生成的Netfilter规定基于网络策略中指定的选择器,用于确定哪些pod应该受到策略的影响,抉择能够基于宽泛的规范,例如pod标签、命名空间或IP地址。网络插件生成与指定选择器匹配的Netfilter规定,对匹配的报文执行策略中指定的动作。 例如,能够定义一个网络策略,容许流量仅在具备特定标签的pod之间流动。网络插件将生成Netfilter规定来匹配带有该标签的pod之间的数据包,而后容许这些数据包通过网络。相似的,能够定义网络策略回绝两个特定pod之间的流量,在这种状况下,网络插件将生成Netfilter规定抛弃这些pod之间的数据包。 总之,Netfilter是Kubernetes中网络策略实现的要害组件,容许对集群中pod之间的网络流量进行细粒度管制,并提供弱小机制来执行平安和拜访控制策略。 IPTablesIPTables是基于linux的防火墙工具,提供配置和管理网络过滤规定的性能。在Kubernetes中,IPTables用于实现网络策略,管制pod和服务之间的流量。 在Kubernetes中创立网络策略时,kube-proxy组件创立IPTables规定强制执行该策略。当网络流量通过pod或服务所在的节点时,这些将被规定利用于网络流量。 Kubernetes基于网络策略选择器和规定生成IPTables规定,选择器确定策略利用于哪些pod,而规定定义容许或回绝哪些流量。例如,能够创立只容许流量发送到带有特定标签的pod上的特定端口的规定。 Kubernetes生成的IPTables规定被插入到内核的IPTables链中,从而用于决定如何解决网络流量。这些链以特定程序进行匹配,第一个匹配的规定将决定对数据包采取的操作。 Kubernetes还通过IPTables实现Kubernetes服务,为拜访一组pod提供稳固的IP地址和DNS名称。当在Kubernetes中创立服务时,kube-proxy会创立一个IPTables规定,依据服务选择器将流量转发到适当的pod。 总之,IPTables是在Kubernetes中实现网络策略和服务的重要工具,容许对网络流量进行细粒度管制,并为负载平衡和服务发现提供牢靠且可扩大的机制。 IPVSIPVS(IP Virtual Server)是提供网络负载平衡性能的Linux内核模块。在Kubernetes中,IPVS被用作kube-proxy和IPTables的替代品来实现服务。 当在Kubernetes中创立服务并且服务类型设置为"LoadBalancer"时,就会通过IPVS为服务创立虚构IP地址(VIP)。VIP用作客户端流量的指标地址,并与一组提供理论服务的pod相关联。 IPVS的工作原理是拦挡进入VIP的流量,并通过负载平衡算法将其调配到可用pod。在IPVS中有几种可用的负载平衡算法,包含轮询、最小连贯和加权最小连贯。 IPVS还提供健康检查,以确保流量只发送到衰弱的pod。当pod通过健康检查失败时,IPVS将其从可用pod列表中删除,并在残余的衰弱pod之间重新分配流量。 与kube-proxy和IPTables相比,IPVS有几个长处,包含更好的可伸缩性和性能,以及更灵便的负载平衡算法。IPVS能够解决大量连贯,并针对高吞吐量和低提早进行了优化,还反对更高级的负载平衡个性,例如会话长久化和连贯排放(connection draining)。 然而,与kube-proxy和IPTables相比,IPVS须要额定的配置,并且可能与网络环境有兼容性问题。IPVS须要内核的反对,并不是在所有Linux发行版上都可用。 ...

June 8, 2023 · 1 min · jiezi

关于程序员:VR问答

学习VR开发须要把握一些基础知识,如计算机图形学、3D建模、编程语言等。以下是一个学习VR开发的打算和纲要,你能够依照这个打算来进行系统性的学习。 基础知识 计算机图形学:理解计算机图形学的基本概念和原理,如光栅化、纹理映射、光照模型等。3D建模:学习3D建模软件如Blender、Maya、3D Studio Max,把握3D模型的创立、编辑和导出办法。编程根底:学习一种或多种编程语言,如C#、C++、Python等,理解面向对象编程、算法和数据结构等基本概念。VR开发工具和平台 Unity:学习Unity游戏引擎的基础知识,如场景编辑、资源管理、脚本编写等。理解Unity与VR硬件的接入办法。Unreal Engine:学习Unreal Engine游戏引擎的基础知识,如蓝图编辑、材质编辑、C++编程等。理解Unreal Engine与VR硬件的接入办法。WebVR:理解基于Web的VR开发技术,学习A-Frame、Three.js等WebVR框架的应用办法。VR硬件设施 理解支流VR硬件设施,如Oculus Rift、HTC Vive、PlayStation VR等,相熟它们的特点和区别。学习VR硬件设施的开发文档,理解如何接入VR设施、获取设施信息、解决输出事件等。VR交互设计与开发 学习VR交互设计的根本准则,如用户界面设计、导航、手势辨认等。把握如何在Unity或Unreal Engine中实现VR交互性能,如头部追踪、手部追踪、抓取物体等。学习如何优化VR利用的性能和视觉效果,升高提早、进步帧率等。实际我的项目 加入VR开发的实际我的项目,如创立一个简略的VR游戏、设计一个交互式的VR空间等。剖析并学习优良的VR利用案例,理解它们的设计思路和技术实现办法。尝试在不同的平台和设施上进行VR开发,理解它们的兼容性问题和解决方案。继续学习 关注VR行业的动静和技术发展趋势,学习新的工具和平台。加入VR开发的线上或线下社区,与其余开发者交流经验和心得。不断完善和更新本人的VR开发技能,将所学利用到理论我的项目中。以下是每个学习阶段的举荐书籍和课程,以帮忙你更深刻地学习VR开发。 基础知识 计算机图形学:《计算机图形学-根底与实际(原书第4版)》(Peter Shirley等著)3D建模:Blender官网教程:https://www.blender.org/support/tutorials/编程根底:《C# 程序设计根底》(张江著) 或 《C++ Primer Plus(第6版)》(Stephen Prata著)VR开发工具和平台 Unity:Unity官网教程:https://learn.unity.com/ (能够依据集体需要抉择对应的课程)Unreal Engine:Unreal Engine官网教程:https://www.unrealengine.com/zh-CN/onlinelearning-coursesWebVR:A-Frame官网教程:https://aframe.io/docs/1.2.0/introduction/VR硬件设施 理解支流VR硬件设施:《虚拟现实:原理与实际》(Steven M. LaValle著)学习VR硬件设施的开发文档:Oculus官网文档:https://developer.oculus.com/documentation/ HTC Vive官网文档:https://hub.vive.com/storage/docs/zh-cn/index.htmlVR交互设计与开发 交互设计:《虚拟现实设计与实际:交互设计篇》(Jason Jerald著)Unity VR交互开发:Unity官网教程:https://learn.unity.com/course/oculus-vrUnreal Engine VR交互开发:Udemy课程:Creating Virtual Reality (VR) Apps with Unreal Engine 4实际我的项目 创立一个简略的VR游戏:Unity官网教程 - Beginner VR Tutorial: https://learn.unity.com/tutorial/beginner-vr-tutorial设计一个交互式的VR空间:Udemy课程:Designing for VR | A Beginners Guide Using Unity继续学习 加入VR开发的线上或线下社区:如Unity Connect(https://connect.unity.com/)或者Unreal Engine论坛(https://forums.unrealengine.com/)关注VR行业的动静和技术发展趋势:例如,订阅VR World(https://vrworld.com/)和Road to VR(https://www.roadtovr.com/)等网站的更新。以下是每个阶段的学习打算,以帮忙你更有条理地学习VR开发。 基础知识(4周) ...

June 8, 2023 · 1 min · jiezi

关于程序员:想考华为认证需要准备什么考试难不难

想要晋升本人的能力,考据是一个十分好的方法,而且对于从事信息通信行业的人来说,考据不仅能够晋升本人的能力,还能够减少本人的职业竞争力,帮忙本人失去更多的薪资、更好的岗位。目前华为的认证体系曾经十分残缺,上面大使简略介绍一下,有须要的能够在认证大使上具体理解。 华为认证概述 华为职业认证笼罩ICT全畛域,致力于提供当先的人才培养体系和认证规范,造就数字化时代的新型ICT人才,构建良性的ICT人才生态。 华为认证等级 1、HCIA认证 培训与认证具备应用虚拟化和桌面云技术帮助进行云计算部署和运维能力的工程师,考生会把握云计算基础知识、虚拟化技术和桌面云技术,具备应用虚拟化和桌面云技术帮助进行云计算部署和运维的能力 2、HCIP认证 培训与认证具备用云能力的云计算高级经营工程师和具备管云能力的云计算高级运维工程师,考生会把握开源OpenStack通用常识和华为云Stack根底IaaS服务相干常识,具备开源OpenStack经营运维能力和华为云Stack相干经营运维实际的能力 3、HCIE认证 造就和认证具备建、用、管云综合能力的云基础设施专家,及具备布局业务迁徙上云和设计云原生、高牢靠能力的云软件架构专家,考生会把握华为云计算整体架构及主打高阶服务相干的常识,具备华为云计算规划设计、施行部署及业务迁徙上云的能力,胜任云基础设施专家、云软件架构专家岗位 华为云考试事项 1、华为的考试每个等级费用不同,从1200-8000不等,考试依据本人所须要的抉择即可 2、华为考试在线下进行,考生须要在官网上查问当地的考试核心安顿,抉择适宜本人的预约 3、考生年满十八岁即可报名考试,在考试时须要携带身份证

June 7, 2023 · 1 min · jiezi

关于程序员:如何修复-SSH-Clientloop-send-disconnect-Broken-pipe-Error

动动发财的小手,点个赞吧! SSH 是 Secure Shell 的缩写,是一种近程网络协议,用于通过 TCP/IP 网络安全地连贯到近程设施,例如服务器和网络设备。 它是一种加密网络协议,可提供弱小的加密技术和散列法来爱护网络上两个设施之间的通信。 SSH应用两种次要的认证形式:明码认证和公钥认证。应用明码验证时,用户提供近程主机的 IP 地址或 FQDN(齐全限定域名)和明码进行验证。 公钥认证应用SSH 密钥对进行认证,SSH 密钥对由两个SSH 密钥组成:私钥和公钥。 私钥驻留在用户的机器上,应始终窃密和平安。公钥保留在用户连贯的近程主机上。在身份验证期间,比拟两个密钥的身份并授予拜访权限。 通过 SSH 连贯到近程零碎时,您可能会遇到谬误 Client_loop: send disconnect: Broken pipe。 在本教程中,咱们将理解为什么会产生这种状况并解决谬误。 Client_loop: send disconnect: Broken pipe 谬误该谬误只是一条断开连接音讯,告诉您已超过 SSH 连贯超时。 这是一个不流动的期间,在此期间没有从客户端执行或收回任何 Linux 命令。产生这种状况时,SSH 会话将终止,从而无效地断开您与近程服务器的连贯。 大多数用户通常会按“ENTER”或键盘上的某个键,以防止闲暇 SSH 会话导致与主机断开连接。然而,这可能是乏味且浪费时间的。 值得庆幸的是,SSH 默认配置设置提供了一些参数,您能够配置这些参数以使 SSH 连贯放弃活动状态更长的工夫。 修复 Client_loop: send disconnect: Broken pipe 谬误要解决此问题,您须要减少客户端上的 SSH 连贯超时工夫。为此,请批改通常位于 /etc/ssh/sshd_config 的默认 SSH 配置文件。 sudo vi /etc/ssh/sshd_config请务必找到这两个参数:ClientAliveInterval 和 ClientAliveCountMax。让咱们看看他们做了什么。 ClientAliveInterval——这是一段不流动的工夫,在此之后 SSH 服务器向连贯到它的近程客户端发送一条流动音讯。ClientAliveCountMax – 这是服务器尝试将流动音讯从服务器发送到客户端的次数。咱们将这两个值设置如下: ...

June 7, 2023 · 1 min · jiezi

关于程序员:欧奈儿行业-RPS-排名一图览全貌-20230607

主动复盘 2023-06-07k 线图是最好的老师,点击详情图能够看到行业 20 日 RPS 的排名,最底下子图是行业 rps 走势线 跟踪板块总结: 成交额超过 100 亿排名靠前,macd柱由绿转红公众hao:醉卧梦星河欧奈尔行业RPS排名天天更新追踪主力行业趋势更容易来这里一图看趋势。20 日板块 RPS 排名排名name详情changeamountrps05rps10rps20rps50rps120rps250volume0算力概念3.05%419.39亿951001000001530.69万手1数字水印3.67%113.64亿991001009500763.86万手2PCB1.72%170.45亿6288997480841097.48万手3屏下摄像1.40%56.86亿929299628465911.28万手4MiniLED2.24%159.10亿8784988381791712.56万手5Chiplet概念2.61%98.97亿13829850920374.02万手6通信设施1.67%350.87亿7687979388901525.78万手73D摄像头1.65%70.21亿618497677052645.69万手8光学光电子1.82%174.54亿7580978283811903.88万手9机器视觉2.33%168.51亿2175968895100657.11万手10近程办公2.47%251.69亿9796969098981362.52万手11动物照明2.02%42.70亿507395787772342.23万手12半导体0.87%439.78亿87795578175986.56万手13Web3.02.53%396.18亿9899949810002498.50万手14减速器-0.00%35.21亿319469630261.31万手15生产电子0.89%232.40亿6578945971761214.44万手16游览酒店3.93%96.27亿989193775780601.15万手17计算机设备1.37%179.48亿758193818987871.48万手18次新股0.84%411.34亿4762928370611223.84万手19通信服务2.66%99.35亿959392899089977.57万手20国资云概念1.75%116.72亿859891719699642.04万手21电子元件1.35%250.51亿2569914254541030.61万手22信创2.18%879.31亿889591919604537.23万手235G概念0.93%944.35亿6179907282855874.21万手24智能穿戴1.09%379.60亿4378903673632368.39万手本文由mdnice多平台公布

June 7, 2023 · 1 min · jiezi

关于程序员:解锁技术人的成长公式

找到成长的动机成长是每个人都谋求的,但很少有人思考过为什么肯定须要成长,也就是成长的动机极少有人去做深层次思考。在一个人的能力成长速度和四周人比起来差不多或者略快的时候这个问题不须要深究,因为所有都看起来逆风逆水,跟着大家的步调后退就不会有太多的焦虑。但当你遇到困难、挑战、挫折、不如意的时候,从新去回味这个动机会让你更好调整好本人的心态,以摆脱困境。 我将本人成长的动机最终提炼为两点:心田的恐怖是鞭策本人一直向前的本源推力,它让我疾速站稳脚跟;心田的渴望是牵引本人一直精进的外围拉力,它让我不畏艰难畏缩不前。 恐怖是成长的最强推力刚开始工作的技能齐全是自学,因为学的业余不统一,而且公司有肯定的考核要求。所以在公司的前3年,周末的工夫也会去公司,学业务知识、看零碎代码、读中间件文档、DEBUG源代码等等。可能反对我长期保持的起因就是,如果是真的有一天被优化掉,我当初学到的好歹还可能减少面试胜利的几率。所以抱着这样学到任何一招一式都是给本人将来减少筹码的心态,把消息中间件、分布式事务、分布式调用等核心技术都学得很扎实。前面我还做了国内部门针对蚂蚁根底中间件的接口人,专解部门内对于中间件的疑难杂症。 根底功的扎实让我疾速积攒起来做事的能力和口碑,为后续更短暂的倒退奠定巩固的根底。但这种心田的恐怖其实并没有齐全隐没,反而是道高一尺魔高一丈,它随着工作年限和层级的减少而同步成长起来:我在P7开始率领项目组做大型项目的架构时,心田充斥着对技术细节无奈齐全把握的恐怖;在P8带比拟大团队的时候,心田充斥着要做治理可能技术敏锐性丢失的恐怖;在P9时心田同样充斥着本人是不是德不配位,能力是不是被平台放大了而不是完完全全的真本事的恐怖......也正是有了这些心田的恐怖才让我不敢懈怠,必须一直朝前、进取。 渴望是精进的最大拉力如果说心田的恐怖是在一直追赶着我,那么心田的渴望就是在一直牵引着我。心田的渴望就是想成就一番事,为了做成这番事把遇到的艰难险阻都化为问题,通过解这些问题减少本人的经历晋升本人的能力,并享受问题解决后事件超前推动的高兴,与此同时在这个过程中其实也一直修改本人的观点,不断丰富欠缺本人的认知和思考。 在建设寰球资金平台初期,整个团队背负着微小的压力:业务我的项目压力太大导致核心成员散失进而团队失血,资金经常被吐槽是业务倒退的瓶颈;技术架构与业务架构、平台产品无奈真正合力导致新平台建设不尽人意;资金平台的业务长期倒退指标与门路关系不明确等等。不论是面对内部的质疑还是外部的迷茫,我的心田首先不是怯懦,而是十分渴望率领大家走出这个泥潭,而且也深信如果我都做不到其他人会更加艰巨。也正是心田有想做成这番事业的渴望,我时刻尝试把面临的窘境去定义为问题,问题定义得越清晰越主观,解法也就越高效。通过这样一直的定义问题,解决问题,并打下来一场轰轰烈烈的胜仗时,团队真的从迷茫中走了进去,本人也失去了更大的成长满足感。 找准成长的法门找到成长的动机只是第一步,如果只有动机但没有很好的办法技巧也很难施展出能量。要是谈技巧我置信有有数的文章甚至是书去阐述,但我认为肯定要抛开技巧去探索实质的货色,只有找到了实质才看到了法则,看到了法则能力找到正确的路。 成长的公式对于成长我认为必须是恪守客观规律,即成长不可能是忽然取得的,必须是与日俱增逐渐晋升的。也就是说,成长最好的方法就是利用好工夫的复利。用一个数学公式来表白应该是这样的: 这里为了让公式可被拆解执行,我把工夫改成了次数,因为次数更可能做这个能力积攒的动作。所以对于成长大家要抛却不切实际的空想,只有稳打稳扎通过做好每一份的成长累积,而后通过长期的工夫来证实。 可行的实际成长的公式很简略,然而要领导具体的成长过程,还须要对单份累积能力做一个具体的拆解才才行,即咱们如何做好每一份成长累积。大家会直观地想到说是增强思考,但如何增强思考这又是一个没有拆解动作的提法。依据我这么多年来的实际,我把每一份能力积攒拆解为如下两个动作:敏锐地反思,成文地总结。 敏锐地反思我把反思比喻为成长的扳机,如果没有扣动这个扳机其实咱们想要的成长根本无法达成。试想一下,你做的每一件事你都没有预先去反思过以下内容:“这件事该不该做,这件事做好没有,如果从头再来哪里还能够做得更好”。那么即便你是做了1000件事,也只是做第一件事反复了1000次而已,最多算做得更加纯熟而不是有真正的成长。 成文地总结但只有大脑的反思是不够的,因为大脑实质上是一个懒家伙,不思考才是他的实质(因为思考耗费能量)。如果只是停留在大脑的反思,他会把很多你没想分明的给你脑补进去,让你误以为你想分明了而事实上你可能真的是只知其一;不知其二。为了克服这个缺点,我的做法是必须要总结成文。一旦你开始写成文字,其实是在逼迫你的脑子开始认真的,认真的思考全面。这个动作其实是疏导你有构造,有条理地深度思考,这才是思考的精华。我经常用这句话来形容写的重要性:只有写分明了才可能讲清楚,只有写分明了才是真的想分明了。 所以最终的成长公式为: 成长没有永动机公式很简略也很奢侈,只是揭示了一个很根底的事实,看了感觉一点也不难,但也有人长时间是无奈冲破无奈精进。因为这里的难是在有点违反兽性,难在很少有人可能被动扣动反思的扳机,难在很少有人可能以写代想,可能长期保持用上工夫的复利。 但当你执行技巧感觉到艰难的时候,想想你的动机,推敲下为什么要这个成长,感觉到痛了就能够再加一把力,再朝前积攒一次。所以成长没有永动机,须要大家继续一直往里面退出恐怖、渴望等外围燃料。心愿每个人都可能一直精进,享受成长带来的高兴。 作者|朱春茂(知明) 原文链接 本文为阿里云原创内容,未经容许不得转载。

June 7, 2023 · 1 min · jiezi

关于程序员:Apache-Solr-教程编程入门自学教程菜鸟教程免费教程分享

教程简介Apache Solr 是一个开源搜寻服务器。Solr 是用 Java 语言开发的,次要基于 HTTP 和 Apache Lucene 实现。存储在 Apache Solr 中的资源存储为 Document 对象。 Apache Solr入门教程 - 从基本概念开始,简略易学地理解Apache Solr,其中包含概述,搜索引擎基础知识,Windows环境,Hadoop,架构,术语,根本命令,外围,索引数据,增加文档( XML),更新数据,删除文档,检索数据,查问,分面。 教程目录Apache Solr教程Apache Solr - 概述Apache Solr - 搜索引擎基础知识Apache Solr - 在Windows环境中Apache Solr - 在Hadoop上Apache Solr - 架构Apache Solr - 术语Apache Solr - 根本命令Apache Solr - 外围Apache Solr - 索引数据Apache Solr - 增加文档(XML)Apache Solr - 更新数据Apache Solr - 删除文档Apache Solr - 检索数据Apache Solr - 查问数据Apache Solr - FacetingApache Solr - 有用的资源

June 7, 2023 · 1 min · jiezi

关于程序员:地图实火断货加印限时折扣抢购通道开启

(点击图片三折购买《社交泛娱乐出海作战地图》) 实火!融云自制《社交泛娱乐出海作战地图》“WICC · 泛娱乐出海嘉年华”最热单品关注【融云寰球互联网通信云】理解更多 《出海作战地图》线下首发立即引爆现场,“如何申领地图”成为嘉年华最热话题。胜利拿到的开发者纷纷就地开始详读,也有不少参会者久久驻足在流动现场的巨型地图前钻研和“打卡”。 5 月初,《出海作战地图》一经线上公布,便在业内引起了热烈探讨并取得一众大咖的点赞和举荐。 为地图“代言”的从业者还在继续减少,而通过集赞等形式获取到地图的出海人,也纷纷自发通过公众号私信的形式表白本人的喜爱,“美言”一直,摘取少少。 “以后企业出海的模式简单,各个区域之间文化差异太大,导致抉择常常出错,出海地图应用性强,信息模块准确,正好能够无效领导出海企业,十分不错。”——淘乐总监 耿少 “从事泛娱乐出海多年,很多思路和打法都是水来土掩、兵来将挡,始终没有工夫认真梳理。看到这张地图,对其中的很多方法论总结深有同感,置信对从业者都会有所启发。”——某直播平台经营负责人 张女士 “认真看了这张地图,信息真的很全面,尤其是很多外围市场和品类信息梳理到一起,比照着看有不少新发现,感激制作。”——某社交软件负责人 柳生 感激大家的喜爱和流传,目前首批地图曾经被抢领一空,制作不易,“断货”是最好的反馈。 但咱们仍一直收到读者和用户的“加购”需要,为了这份贵重的青睐,咱们决定加印一批,以折扣价 29.9 元(含邮费)回馈大家。 有须要的敌人可通过下方二维码购买,咱们将尽快为您寄送。 《社交泛娱乐出海作战地图》核心内容一图 Get

June 6, 2023 · 1 min · jiezi

关于程序员:欧奈儿行业-RPS-排名一图览全貌-20230606

主动复盘 2023-06-06k 线图是最好的老师,点击详情图能够看到行业 20 日 RPS 的排名,最底下子图是行业 rps 走势线 跟踪板块总结: 成交额超过 100 亿排名靠前,macd柱由绿转红公众hao:醉卧梦星河欧奈尔行业RPS排名天天更新追踪主力行业趋势更容易来这里一图看趋势。20 日板块 RPS 排名排名name详情changeamountrps05rps10rps20rps50rps120rps250volume0算力概念-2.21%491.16亿951001000001765.43万手1PCB-2.58%177.28亿44891007576831032.07万手2电机-2.34%28.71亿384999978581180.76万手3减速器-2.49%37.63亿359970630319.49万手4MiniLED-2.51%141.14亿7881987779751437.31万手5机器视觉-3.59%183.93亿3774988995100824.37万手6生产电子-2.84%295.11亿6279976568761694.09万手7屏下摄像-2.51%56.48亿919197648362779.58万手8数字水印-3.34%150.45亿99100978800933.81万手93D摄像头-3.90%78.57亿768696686550552.63万手10光学光电子-2.77%173.90亿6681967682801901.72万手11半导体-2.85%506.02亿1579958380751149.81万手12通信设施-2.33%387.84亿6988959588901709.77万手13Web3.0-1.88%427.38亿9899949810002892.07万手14次新股-2.05%484.17亿4371948271611542.75万手15Chiplet概念-3.14%75.85亿1789455900265.65万手16近程办公-2.76%299.26亿9694939097981600.77万手17动物照明-2.73%28.15亿377493677566268.35万手185G概念-2.52%1083.30亿6583927882856842.11万手19汽车热治理-2.42%101.25亿506292927301010.49万手20传感器-2.89%156.33亿176091547266755.59万手21电网设施-2.30%177.88亿918917158721605.73万手22计算机设备-2.79%208.04亿7384918689871024.09万手23电源设施-2.14%52.80亿285290966894422.10万手24充电桩-2.33%480.61亿4563908771783232.58万手本文由mdnice多平台公布

June 6, 2023 · 1 min · jiezi

关于程序员:Ajax教程编程入门自学教程菜鸟教程免费教程分享

教程简介Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)在 2005年被Jesse James Garrett提出的新术语,用来形容一种应用现有技术汇合的‘新’办法,包含: HTML 或 XHTML, CSS, JavaScript, DOM, XML, XSLT, 以及最重要的XMLHttpRequest。 应用Ajax技术网页利用可能疾速地将增量更新出现在用户界面上,而不须要重载(刷新)整个页面,这使得程序可能更快地回应用户的操作。 AJAX入门教程 - 从简略的步骤理解AJAX,从根本到高级概念,包含什么是AJAX?,概述,技术,示例,浏览器反对,动作,XMLHttpRequest,响应,ActiveXObject,Msxml2.XMLHTTP,Microsoft.XMLHTTP ,数据库反对,DOM操作,安全性,以后问题。 教程目录AJAX教程什么是AJAX?AJAX - 技术AJAX - 示例AJAX - 浏览器反对AJAX - ActionAJAX - XMLHttpRequestAJAX - 数据库操作AJAX - 安全性AJAX - 以后问题AJAX - 有用的资源

June 6, 2023 · 1 min · jiezi

关于程序员:GitHub-竟然有这些骚操作真是涨姿势

GitHub 居然有这些骚操作,真是涨姿态GitHub,不必过多介绍。一个面向开源及公有软件我的项目的托管平台,因为只反对 git 作为惟一的版本库格局进行托管,故名 GitHub。 作为「寰球最大的程序员“交友”社区」,程序员的你,真的能够把它的应用施展到极致吗?程序员不会应用Github那真的是损失微小,比方当你还在满世界找Idea全家桶激活,Idea2023激活码的时候,Github上就有同行间接开源了Github Idea激活码永恒无效;同名Gitee仓库Gitee Idea激活码永恒无效 搜寻全局搜寻傻瓜式搜寻比方咱们要学习下秒杀(seckill)代码的实现,能够在整个 GitHub 站点全局搜寻相干内容 然而这样的搜寻范畴太大,且我的项目品质参差不齐,所以在搜寻后果页,还能够通过 Languages 抉择实现语言,Sort 抉择排序规定(按 Star 数量、Fork 数量、最近更新工夫等)。 精准搜寻(技术范)1. in 关键词限度搜寻范畴公式:搜索词 in:name(/description/readme) 搜寻项目名称和自述文件中蕴含秒杀的仓库 seckill in:name,readme 限定符示例in:namejquery in:name 匹配仓库名称蕴含 "jquery" 的内容in:descriptionjquery in:name,description 匹配仓库名或形容中蕴含 "jquery" 的内容(组合应用)in:readmejquery in:readme readme文件中蕴含"jquery"repo:owner/namerepo:octocat/hello-world 查问某人的某个我的项目(查octocat 的 hello-world 仓库)2. 关键词查找搜寻语法: >n、>=n、<n、<=n:查问数量范畴,能够是 starts、forks、topics......n..*、*..n:等同于 >=n 和 <=nn..m:取值范畴 n 到 m限定符示例stars:nstars:500 匹配 500 个 stars 的我的项目stars:10..20 匹配 starts 数量 10 到 20 的我的项目followers:nnode followers:>=10000 匹配关注者大于等于 10000 的 node 仓库forks:nseckill forks:5 匹配有 5 个 forks 的秒杀我的项目created:YYYY-MM-DDseckill created:>2020-01-01 创立工夫在 2020-01-01 之后的秒杀我的项目language:LANGUAGEseckill language:java 匹配 java 语言编写的秒杀我的项目user:nameuser:Jstarfish stars:>50 匹配 Jstarfish 用户 stars 数大于 50 的仓库location:LOCATIONlocation:beijing 匹配北京的敌人们相互组合应用seckill stars:>=500 fork:true language:java 匹配stars 数量大等于 500(蕴含 forks 数),且语言是 java 的秒杀我的项目location:beijing language:java 北京做 Java 开发的大佬3. awesome 增强搜寻awesome 关键字 ,awesome 系列,个别是用来收集学习,工具,书籍类相干的我的项目。比方咱们要学习下 redis 相干的我的项目,包含框架、教程等,awesome redis ...

June 6, 2023 · 1 min · jiezi

关于程序员:Java教程0105Java内部类

Java外部类Java外部类是一种嵌套在其余类中的类。它具备拜访外部类的成员的能力,并提供了一种组织和封装代码的形式。在本教程中,咱们将探讨Java外部类的应用和相干概念。 步骤1:创立外部类首先,咱们须要创立一个外部类,外部类将嵌套在其中。以下是一个示例外部类的代码: public class OuterClass { private int outerData; public OuterClass(int data) { this.outerData = data; } public void outerMethod() { System.out.println("Outer Method"); }}在下面的示例中,咱们创立了一个名为OuterClass的外部类,它具备一个公有属性outerData和一个公共办法outerMethod()。 步骤2:创立外部类接下来,咱们将在外部类中创立一个外部类。外部类能够拜访外部类的成员(包含公有成员),并提供了更高的封装性和代码组织性。 public class OuterClass { // ... public class InnerClass { private int innerData; public InnerClass(int data) { this.innerData = data; } public void innerMethod() { System.out.println("Inner Method"); } }}在下面的示例中,咱们创立了一个名为InnerClass的外部类,它具备一个公有属性innerData和一个公共办法innerMethod()。 步骤3:创立外部类的实例要创立外部类的实例,咱们须要先创立外部类的实例,而后应用外部类实例创立外部类实例。 OuterClass outer = new OuterClass(10);OuterClass.InnerClass inner = outer.new InnerClass(20);在下面的示例中,咱们首先创立一个名为outer的OuterClass对象,而后应用该对象创立一个名为inner的InnerClass对象。 步骤4:拜访外部类的成员咱们能够应用外部类的实例拜访外部类的成员,包含属性和办法。 int innerData = inner.innerData;inner.innerMethod();在下面的示例中,咱们通过inner对象拜访了外部类的innerData属性,并调用了innerMethod()办法。 ...

June 6, 2023 · 1 min · jiezi

关于程序员:Java教程0104Java中的static和final关键字

Java中的static和final关键字在Java中,static和final是两个罕用的关键字,用于定义类、办法和变量的个性。在本教程中,咱们将学习如何应用static和final关键字以及它们的用处。 static关键字static关键字用于创立动态成员,这意味着它们属于类自身而不是类的实例。通过应用static关键字,咱们能够在不创立类的实例的状况下拜访和应用这些成员。 1. 动态变量动态变量是属于类的变量,而不是类的实例。它们在类加载时创立,并在整个程序执行期间保持一致。 public class MyClass { public static int count;}在下面的示例中,咱们创立了一个动态变量count,它属于MyClass类。 2. 静态方法静态方法是属于类的办法,而不是类的实例。它们能够间接通过类名调用,无需创立类的实例。 public class MyClass { public static void printMessage() { System.out.println("Hello, World!"); }}在下面的示例中,咱们创立了一个静态方法printMessage(),它打印输出一条音讯。 3. 动态块动态块是一段在类加载时执行的代码块,用于初始化动态变量或执行其余须要在类加载时实现的操作。 public class MyClass { public static int count; static { count = 10; System.out.println("Static block executed"); }}在下面的示例中,咱们应用动态块初始化动态变量count,并在动态块中打印输出一条音讯。 4. 动态类动态类是嵌套在另一个类中的类,并应用static关键字润饰。动态类只能拜访外部类的动态成员。 public class OuterClass { public static int count; public static class InnerStaticClass { public void displayCount() { System.out.println("Count: " + count); } }}在下面的示例中,咱们创立了一个动态类InnerStaticClass,它能够拜访外部类OuterClass的动态变量count。 ...

June 6, 2023 · 1 min · jiezi

关于程序员:Java教程0103package和import-访问控制

Java包和导入访问控制在Java中,包(package)和导入(import)是组织和治理代码的重要工具。包用于将相干类和接口组织在一起,而导入用于引入其余包中的类和接口。本教程将介绍Java中包和导入的应用办法。 步骤1:创立包包是一种将相干类和接口组织在一起的机制。咱们能够应用package关键字在Java源文件的顶部申明一个包。 package com.example.myapp;在下面的示例中,咱们创立了一个名为com.example.myapp的包。包名通常是依照反向域名(reverse domain name)的格局命名,以确保唯一性。 步骤2:在包中创立类一旦咱们创立了一个包,咱们能够在该包中创立类。在创立类时,须要确保类的申明位于包的申明之后。 package com.example.myapp;public class MyClass { // 类的定义}在下面的示例中,咱们在com.example.myapp包中创立了一个名为MyClass的类。 步骤3:应用包中的类要在Java文件中应用同一包中的类,无需导入即可间接应用。例如,在同一包中的类中创立一个对象。 package com.example.myapp;public class MyClass { public static void main(String[] args) { AnotherClass another = new AnotherClass(); // 应用AnotherClass对象 }}在下面的示例中,咱们在MyClass类中创立了一个AnotherClass对象,并能够间接应用它。 步骤4:导入其余包中的类如果要在Java文件中应用其余包中的类,须要应用import语句来导入所需的类。 package com.example.myapp;import com.example.otherpackage.SomeClass;public class MyClass { public static void main(String[] args) { SomeClass some = new SomeClass(); // 应用SomeClass对象 }}在下面的示例中,咱们应用import语句导入com.example.otherpackage包中的SomeClass类,并在MyClass类中创立了一个SomeClass对象。 步骤5:通配符导入如果须要应用某个包中的所有类,能够应用通配符(*)导入该包中的所有类。 package com.example.myapp;import com.example.otherpackage.*;public class MyClass { public static void main(String[] args) { SomeClass some = new SomeClass(); AnotherClass another = new AnotherClass(); // 应用SomeClass和AnotherClass对象 }}在下面的示例中,咱们应用通配符导入了com.example.otherpackage包中的所有类,因而能够间接应用该包中的所有类。 ...

June 6, 2023 · 1 min · jiezi

关于程序员:Java教程0102Java引用类型数组和继承的意义

Java援用类型数组和继承的意义Java援用类型数组和继承是Java中罕用的两个概念,它们在编程中起到重要的作用。在本教程中,咱们将探讨Java援用类型数组的应用以及继承的意义,并提供相干的示例。 步骤1:创立援用类型数组Java中的援用类型数组容许咱们在单个变量中存储多个对象的援用。咱们能够应用数组来存储对象,并通过索引来拜访特定的对象。 Person[] people = new Person[3];在下面的示例中,咱们创立了一个名为people的援用类型数组,它能够存储3个Person对象的援用。这个数组将占用内存空间,但数组中的每个元素都是null,即没有援用任何对象。 步骤2:创建对象并存储到数组中接下来,咱们须要创立Person对象并将其存储到数组中的特定地位。 people[0] = new Person("Alice", 25);people[1] = new Person("Bob", 30);people[2] = new Person("Charlie", 35);在下面的示例中,咱们创立了三个Person对象,并将它们别离存储到数组的0、1和2索引地位。 步骤3:拜访数组中的对象一旦咱们将对象存储到数组中,就能够通过索引来拜访特定地位的对象。 Person person1 = people[0];System.out.println("Name: " + person1.getName() + ", Age: " + person1.getAge());在下面的示例中,咱们通过索引0获取数组中的第一个对象,并拜访其属性。 步骤4:继承的意义继承是面向对象编程中的一个重要概念,它容许一个类继承另一个类的属性和办法,并在此基础上进行扩大。继承的次要意义在于代码的重用和扩展性。 public class Student extends Person { private String major; public Student(String name, int age, String major) { super(name, age); this.major = major; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; }}在下面的示例中,咱们创立了一个名为Student的子类,它继承了Person类的属性和办法,并增加了一个额定的属性major。咱们还提供了相应的getter和setter办法。 ...

June 6, 2023 · 1 min · jiezi

关于程序员:Java教程0101-对象和类

Java技术栈: 对象和类什么是对象和类?在Java中,对象是具备属性和行为的实体,而类是一组定义操作和属性的标准或蓝图。类蕴含数据成员(变量)和办法(函数),对象是类的实例化。 如何创立一个对象?要创立一个对象,必须先定义一个类。上面是一个简略的Java类和对象的示例: public class Car { //成员变量 private String make; private String model; private int year; //构造方法 public Car(String make, String model, int year) { this.make = make; this.model = model; this.year = year; } //成员办法 public void start() { System.out.println("汽车启动了!"); } public void stop() { System.out.println("汽车进行了!"); } //getter和setter办法 public String getMake() { return make; } public void setMake(String make) { this.make = make; } public String getModel() { return model; } public void setModel(String model) { this.model = model; } public int getYear() { return year; } public void setYear(int year) { this.year = year; }}上述代码定义了一个名为Car的类,该类具备三个成员变量:make、model和year,以及三个办法:start(),stop()和Getter/Setter办法。 ...

June 6, 2023 · 1 min · jiezi

关于程序员:考NISP认证有什么用考试难不难

信息安全是当初社会的重中之重,在日常生活中,咱们为了不便,会应用很多线上的软件、小程序、网站等等,大多数都须要咱们提供本人的身份信息,而这时信息很有可能会被裸露,让咱们的财产、人身安全受到重大的威逼,因而为了信息安全,市场须要专门的人才来保护,而NISP证书就是因而而诞生的,上面大使简略介绍一下,有须要的人能够在认证大使上具体理解。 NISP概述 为进步各畛域人才信息安全意识,落实国家信息安全人才培养策略,缓解我国信息安全畛域专业人才存在的供需矛盾,放慢我国信息安全业余人才队伍的建设,逐步形成一支政治牢靠、技能过硬、多层次的信息安全人才队伍,中国信息安全测评核心联合发展“注册信息安全业余人员(CISP)”十余年以来的教训,推出国家信息安全程度考试,即 National Information Security Test Program(简称 NISP);该我的项目次要面向在校大学生,与CISP无缝对接,填补了在校大学生无奈考取CISP认证的空白,故又被称为“校园版 CISP”,已成为计算机专业类大学生从事网络空间平安行业的待业通行证。 招收对象:被迫报名加入NISP(一级)培训及考据的在校学生均可报名 培养目标:面向信息技术从业人员的信息安全常识与技能培训。在信息安全企业、信息安全咨询服务机构、信息安全测评认证机构、社会各组织、个人、大专院校、企事业单位无关信息系统/网络建设、运行和利用治理的信息技术从业人员须要具备的信息安全意识。持证者将对网络信息安全有较为残缺的意识,把握电脑、手机平安防护、网站平安、电子邮件平安、Intranet网络安全部署、操作系统平安配置、恶意代码防护、常用软件平安设置、防火墙利用等技能,可能担负起小型网络信息安全工作。  考试模式:在线考试,每月一次(提前1个月颁布下一次考试工夫,需提前预约考试) 所获证书:由中国信息安全测评核心颁发的《国家信息安全程度考试(NISP)一级》证书。只有考取NISP(一级)证书才有机会考取NISP(二级)。 证书价值:持证人员列入网络空间平安人才库,并在中国信息安全测评核心官网和公众号上公布。

June 5, 2023 · 1 min · jiezi

关于程序员:2023-年-10-个最受欢迎的-Linux-发行版

动动发财的小手,点个赞吧! 在本文中,咱们将依据 Distrowatch 的应用统计数据和市场份额,按降序排列截至 2023 年 5 月 18 日的前 10 个最受欢迎的 Linux 发行版。 10. DeepinDeepin(原名Deepin、Linux Deepin、Hiweed GNU/Linux)是从Debian衍生进去的面向Linux桌面的操作系统,反对笔记本、台式机、一体机。旨在为寰球用户提供好看、易用、平安、牢靠的操作系统。 它预装了深度桌面环境(DDE)、多个原生应用程序和开源软件,让您在体验各种娱乐活动的同时,也能满足您的日常需要。重要的是,你能够在深度商店中找到近千款利用来满足用户的需要。 9. Fedora由 Fedora 我的项目(由 Red Hat 资助)构建和保护,这是一个由志愿者和开发人员组成的寰球社区,因为其三个次要可用版本(Workstation(用于桌面),Fedora 多年来始终是最罕用的发行版之一、服务器版和云映像),以及用于基于 ARM(通常是无头)服务器的 ARM 版本。 然而,兴许 Fedora 最显着的特色是它始终处于将新软件包版本和技术集成到发行版中的领先地位。此外,Red Hat Enterprise Linux 和 CentOS 的新版本都是基于 Fedora 的。 8. Zorin OSZorin OS 是目前可用的最好、最易于应用的 Linux 桌面发行版之一。它是 Windows 和 macOS 的替代品,因而是进入 Linux 世界的门户。它之所以受欢迎,是因为其弱小、洁净、精美的桌面提供了 Zorin Appearance 应用程序,让用户能够调整桌面,使其与他们相熟的环境类似。 7. SolusSolus 专为家庭和办公室计算而设计,是一个从头开始构建的 Linux 发行版。它随附各种开箱即用的软件,因而您无需设置设施即可开始应用。 它的一些更乏味的性能包含一个名为 Budgie 的自定义桌面环境,它与 GNOME 堆栈严密集成(并且能够配置为模仿 GNOME 桌面的外观和感觉)。 ...

June 5, 2023 · 1 min · jiezi

关于程序员:R语言多线程提高计算速度如何使用foreach包加速并行计算

R语言多线程减速通常状况下,R语言只能应用一个线程来进行计算,因而计算的速度及其感人! 最近刚好有一个需要:我有一个参考数据表,外面寄存了30万条基因的名称和地位信息,当初我想从外面找到指定的6000个基因的地位信息。最简略的办法是用两层for循环进行迭代,一分钟写出以下代码: for (i in 1:nrow(df)){ pos <- 0 for (m in 1:nrow(ref)){ if (ref$geneID[m] == gene$ID[i]){ pos <- ref$pos[m] } } df$pos[i] <- pos}这段代码是一个双重循环构造,其中外层循环遍历数据框df中的每一行,内层循环遍历参考数据框ref中的每一行。那么也就是说一共要计算290000*6000次。如果是一个线程跑到花儿都谢了。。。。 R语言中如何实现多线程,使计算速度更快?明天分享一个提高效率的神技能。 前言在R语言中,for循环是一个十分常见的循环构造,它能够用来遍历数据集、进行计算等。 然而,当数据量较大时,应用for循环进行计算会十分耗时,这时咱们能够思考应用多线程来减速计算。 单线程计算咱们首先来看一下单线程的计算速度,上面是一个简略的for循环示例: # 生成一个长度为100000000的随机向量x <- rnorm(100000000)# 计算向量中所有元素的平方start_time <- Sys.time()for (i in 1:length(x)) { x[i] <- x[i] ^ 2}end_time <- Sys.time()# 输入计算工夫cat("单线程计算工夫:", end_time - start_time, "\n")运行以上代码,咱们能够失去一个长度为100000000的随机向量,并对其中的每个元素进行平方计算。运行后果如下: 能够看到,单线程计算1000000个元素的平方须要0.024秒左右。 多线程计算接下来,应用foreach包来实现多线程计算。foreach包是一个十分罕用的并行计算包,它能够在多个处理器上并行运行迭代过程。上面是应用foreach包进行多线程计算的示例代码: # 加载foreach包library(foreach)# 生成一个长度为100000的随机向量x <- rnorm(100000000)# 应用foreach包进行多线程计算start_time <- Sys.time()foreach(i = 1:length(x), .combine = c) %dopar% { x[i] <- x[i] ^ 2}end_time <- Sys.time()# 输入计算工夫cat("多线程计算工夫:", end_time - start_time, "\n")运行以上代码,咱们能够失去与单线程雷同的后果。然而,因为应用了多线程计算,计算工夫会更短。运行后果如下: ...

June 5, 2023 · 1 min · jiezi

关于程序员:欧奈儿行业-RPS-排名一图览全貌-20230605-继续跟踪总结

主动复盘 2023-06-05k 线图是最好的老师,点击详情图能够看到行业 20 日 RPS 的排名,最底下子图是行业 rps 走势线 跟踪板块总结: 成交额超过 100 亿排名靠前,macd柱由绿转红公众hao:醉卧梦星河欧奈尔行业RPS排名天天更新追踪主力行业趋势更容易来这里一图看趋势。20 日板块 RPS 排名排名name详情changeamountrps05rps10rps20rps50rps120rps250volume0算力概念1.92%426.41亿971001000001456.48万手13D摄像头0.70%50.97亿8688100807356410.26万手2机器视觉0.34%136.36亿8276999396100638.09万手3PCB0.80%181.01亿6392998179821014.06万手4屏下摄像1.09%55.89亿848998748260848.89万手5减速器0.17%35.34亿5309866660255.85万手6数字水印2.73%100.72亿100100979600727.88万手7生产电子1.08%233.32亿7781977770791289.35万手8MiniLED0.60%131.36亿8079978280741437.37万手9Chiplet概念-0.26%85.14亿11789673930292.98万手10电机0.15%33.73亿564096958582158.61万手11半导体-0.37%566.24亿4882958486771148.47万手12光学光电子1.24%165.58亿8184958083801752.83万手13无线耳机0.47%302.31亿7478946976741338.31万手14近程办公1.56%306.51亿9697949399981659.15万手15智能穿戴0.50%404.23亿7477946174642511.55万手16通信设施1.75%383.38亿8391939788891722.21万手17次新股0.52%436.84亿4973937569631317.09万手18生物辨认0.61%195.05亿9087929195901153.05万手19Web3.02.17%390.09亿9899929910002445.01万手20计算机设备1.12%206.26亿8587919191871052.35万手21电子元件0.46%265.47亿2775915354511067.56万手22动物照明0.53%23.86亿547491687864222.05万手23传感器-0.00%140.24亿426790607567653.29万手245G概念1.02%1024.68亿7984908681856355.15万手本文由mdnice多平台公布

June 5, 2023 · 1 min · jiezi

关于程序员:JVM专栏类加载的过程

类加载的过程类加载过程包含 5 个阶段:加载、验证、筹备、解析和初始化。加载加载的过程“加载”是“类加载”过程的一个阶段,不能混同这两个名词。在加载阶段,虚拟机须要实现 3 件事: 通过类的全限定名获取该类的二进制字节流。将二进制字节流所代表的动态构造转化为办法区的运行时数据结构。在内存中创立一个代表该类的 java.lang.Class 对象,作为办法区这个类的各种数据的拜访入口。获取二进制字节流对于 Class 文件,虚拟机没有指明要从哪里获取、怎么获取。除了间接从编译好的 .class 文件中读取,还有以下几种形式: 从 zip 包中读取,如 jar、war 等;从网络中获取,如 Applet;通过动静代理技术生成代理类的二进制字节流;由 JSP 文件生成对应的 Class 类;从数据库中读取,如 有些中间件服务器能够抉择把程序安装到数据库中来实现程序代码在集群间的散发。“非数组类”与“数组类”加载比拟非数组类加载阶段能够应用零碎提供的疏导类加载器,也能够由用户自定义的类加载器实现,开发人员能够通过定义本人的类加载器管制字节流的获取形式(如重写一个类加载器的 loadClass() 办法)。数组类自身不通过类加载器创立,它是由 Java 虚拟机间接创立的,再由类加载器创立数组中的元素类。注意事项虚拟机标准未规定 Class 对象的存储地位,对于 HotSpot 虚拟机而言,Class 对象比拟非凡,它尽管是对象,但寄存在办法区中。加载阶段与连贯阶段的局部内容穿插进行,加载阶段尚未完验证的过程成,连贯阶段可能曾经开始了。但这两个阶段的开始工夫依然放弃着固定的先后顺序。验证验证的重要性验证阶段确保 Class 文件的字节流中蕴含的信息合乎以后虚拟机的要求,并且不会危害虚拟机本身的平安。 验证的过程文件格式验证 验证字节流是否合乎 Class 文件格式的标准,并且能被以后版本的虚拟机解决,验证点如下: 是否以魔数 0XCAFEBABE 结尾。主次版本号是否在以后虚拟机解决范畴内。常量池是否有不被反对的常量类型。指向常量的索引值是否指向了不存在的常量。CONSTANT_Utf8_info 型的常量是否有不合乎 UTF8 编码的数据。......元数据验证 对字节码形容信息进行语义剖析,确保其合乎 Java 语法标准。字节码验证 本阶段是验证过程中最简单的一个阶段,是对办法体进行语义剖析,保障办法在运行时不会呈现危害虚拟机的事件。符号援用验证 本阶段产生在解析阶段,确保解析失常执行。 筹备筹备阶段是正式为类变量(或称“动态成员变量”)分配内存并设置初始值的阶段。这些变量(不包含实例变量)所应用的内存都在办法区中进行调配。 初始值“通常状况下”是数据类型的零值(0, null...),假如一个类变量的定义为: public static int value = 123;那么在筹备阶段虚构机会依据 ConstantValue 的设置将 value 赋值为 123。 解析解析阶段是虚拟机将常量池内的符号援用替换为间接援用的过程。 初始化类初始化阶段是类加载过程的最初一步,是执行类结构器 <clinit>() 办法的过程。 <clinit>() 办法是由编译器主动收集类中的所有类变量的赋值动作和动态语句块(static {} 块)中的语句合并产生的,编译器收集的程序是由语句在源文件中呈现的程序所决定的。 ...

June 5, 2023 · 1 min · jiezi

关于程序员:JVM专栏类加载器

类加载器类与类加载器判断类是否“相等”任意一个类,都由加载它的类加载器和这个类自身一起确立其在 Java 虚拟机中的唯一性,每一个类加载器,都有一个独立的类名称空间。 因而,比拟两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即便这两个类来源于同一个 Class 文件,被同一个虚拟机加载,只有加载它们的类加载器不同,那么这两个类就必然不相等。 这里的“相等”,包含代表类的 Class 对象的 equals() 办法、isInstance() 办法的返回后果,也包含应用 instanceof 关键字做对象所属关系断定等状况。 加载器品种启动类加载器(Bootstrap ClassLoader): 负责将寄存在 <JAVA_HOME>\lib 目录中的,并且能被虚拟机辨认的(仅依照文件名辨认,如 rt.jar,名字不合乎的类库即便放在 lib 目录中也不会被加载)类库加载到虚拟机内存中。在多线程状况下,程序计数器记录的是以后线程执行的地位,从而当线程切换回来时,就晓得上次线程执行到哪了。扩大类加载器(Extension ClassLoader): 负责加载 <JAVA_HOME>\lib\ext 目录中的所有类库,开发者能够间接应用扩大类加载器。应用程序类加载器(Application ClassLoader): 因为这个类加载器是 ClassLoader 中的 getSystemClassLoader() 办法的返回值,所以个别也称它为“零碎类加载器”。它负责加载用户类门路(classpath)上所指定的类库,开发者能够间接应用这个类加载器,如果应用程序中没有自定义过本人的类加载器,个别状况下这个就是程序中默认的类加载器。当然,如果有必要,还能够退出本人定义的类加载器。双亲委派模型什么是双亲委派模型双亲委派模型是形容类加载器之间的档次关系。它要求除了顶层的启动类加载器外,其余的类加载器都该当有本人的父类加载器。(父子关系个别不会以继承的关系实现,而是以组合关系来复用父加载器的代码) 工作过程如果一个类加载器收到了类加载的申请,它首先不会本人去尝试加载这个类,而是把这个申请委派给父类加载器去实现,每一个档次的类加载器都是如此,因而所有的加载申请最终都应该传送到顶层的启动类加载器中,只有当父加载器反馈本人无奈实现这个加载申请(找不到所需的类)时,子加载器才会尝试本人去加载。在 java.lang.ClassLoader 中的 loadClass 办法中实现该过程。 为什么应用双亲委派模型像 java.lang.Object 这些寄存在 rt.jar 中的类,无论应用哪个类加载器加载,最终都会委派给最顶端的启动类加载器加载,从而使得不同加载器加载的 Object 类都是同一个。 相同,如果没有应用双亲委派模型,由各个类加载器自行去加载的话,如果用户本人编写了一个称为 java.lang.Object 的类,并放在 classpath 下,那么零碎将会呈现多个不同的 Object 类,Java 类型体系中最根底的行为也就无奈保障。 本文由mdnice多平台公布

June 5, 2023 · 1 min · jiezi

关于程序员:亚马逊网络服务教程编程入门自学教程菜鸟教程免费教程分享

教程简介亚马逊AWS(Amazon Web Services (AWS) )是亚马逊提供的是寰球最全面、利用最宽泛的云平台, 从寰球数据中心提供超过 200 项功能齐全的服务。 数百万客户(包含增长最疾速的初创公司、最大型企业和次要的政府机构)都在应用 AWS 来降低成本、进步敏捷性并减速翻新。 亚马逊网络服务所提供服务包含:亚马逊弹性计算网云(Amazon EC2)、亚马逊简略贮存服务(Amazon S3)、亚马逊简略数据库(Amazon SimpleDB)、亚马逊简略队列服务(Amazon Simple Queue Service)以及Amazon CloudFront等。 亚马逊网络服务入门教程 - 从基本概念开始,简略易学地理解亚马逊网络服务,其中包含云计算,基础架构,治理控制台,控制台挪动利用,账户,弹性计算云,Auto Scaling,WorkSpaces,Lambda等示例,虚构公有云,Route 53,Direct Connect,Amazon S3,Elastic Block Store,Storage Gateway,CloudFront,Relational Database Service,DynamoDB,Redshift,Amazon Kinesis,Elastic MapReduce,Data Pipeline,Machine Learning,Simple WorkFlow Service,WorkMail。 教程目录亚马逊网络服务教程亚马逊网络服务 - 云计算亚马逊网络服务 - 基础架构亚马逊网络服务 - 治理控制台亚马逊网络服务 - 控制台挪动利用亚马逊网络服务 - 帐户亚马逊网络服务 - 弹性计算云亚马逊网络服务 - Auto Scaling亚马逊网络服务 - WorkSpaces亚马逊网络服务 - Lambda亚马逊网络服务 - 虚构公有云亚马逊网络服务 - Route 53亚马逊网络服务 - Direct Connect亚马逊网络服务 - 亚马逊S3亚马逊网络服务 - 弹性块存储亚马逊网络服务 - 存储网关亚马逊网络服务 - CloudFront亚马逊网络服务 - 关系数据库服务亚马逊网络服务 - DynamoDB亚马逊网络服务 - Redshift亚马逊网络服务 - Kinesis亚马逊网络服务 - 弹性MapReduce亚马逊网络服务 - 数据管道亚马逊网络服务 - 机器学习亚马逊网络服务 - 简略的WorkFlow服务亚马逊网络服务 - WorkMail亚马逊网络服务 - 有用的资源

June 5, 2023 · 1 min · jiezi

关于程序员:并发专栏CAS

从 Atomic 到 CASCAS 晓得吗,如何实现?讲一讲 AtomicInteger,为什么要用 CAS 而不是 synchronized?CAS 底层原理,谈谈你对 UnSafe 的了解?AtomicInteger 的ABA问题,能说一下吗,原子更新援用晓得吗?CAS 有什么毛病吗? 如何躲避 ABA 问题?前言Java 内存模型要保障可见性,原子性和有序性。 在 JDK 5之前 Java 语言是靠 synchronized 关键字保障同步的,但 synchronized 是一种独占锁,是一种乐观锁, 会导致其它所有须要锁的线程挂起,期待持有锁的线程开释锁 ,效率不是很高。 Java 虚拟机又提供了一个轻量级的同步机制——volatile(面试必问的 volatile,你真的了解了吗) 然而 volatile 算是乞丐版的 synchronized,并不能保障原子性 ,所以,又减少了java.util.concurrent.atomic包, 这个包下提供了一系列原子类。 1. Atomic 原子类Atomic 原子类能够保障多线程环境下,当某个线程在执行 atomic 的办法时,不会被其余线程打断,而别的线程就像自旋锁一样,始终等到该办法执行实现,才由 JVM 从期待队列中抉择一个线程执行。Atomic 类在软件层面上是非阻塞的,它的原子性其实是在硬件层面上借助相干的指令来保障的。 Atomic 包中的类能够分成 4 组: 根本类型:AtomicBoolean,AtomicInteger,AtomicLong数组类型:AtomicIntegerArray,AtomicLongArray,AtomicReferenceArray援用类型:AtomicReference,AtomicMarkableReference,AtomicStampedReference对象的属性批改类型(原子化对象属性更新器) :AtomicIntegerFieldUpdater,AtomicLongFieldUpdater,AtomicReferenceFieldUpdaterJDK1.8 新增(原子化的累加器):DoubleAccumulator、LongAccumulator、DoubleAdder、LongAdder、Striped64以 AtomicInteger 为例理解罕用办法 办法形容get()间接返回值addAndGet(int)减少指定的数据后返回减少后的数据,相当于 i++getAndAdd(int)减少指定的数据,返回变动前的数据,相当于 ++igetAndIncrement()减少1,返回减少前的数据getAndDecrement()缩小1,返回缩小前的数据getAndSet(int)设置指定的数据,返回设置前的数据decrementAndGet()缩小1,返回缩小后的值incrementAndGet()减少1,返回减少后的值floatValue()转化为浮点数返回intValue()转化为int 类型返回set(int)设置为给定值lazySet(int)仅仅当get时才会set http://ifeve.com/juc-atomic-class-lazyset-que/compareAndSet(int, int)尝试新增后比照,若减少胜利则返回true否则返回falseCoding~~~public class CASDemo { public static void main(String[] args) { System.out.println(num.compareAndSet(6, 7) + "\t + current num:" + num); System.out.println(num.compareAndSet(6, 7) + "\t current num:" + num); }}true + current num:7false current num:7执行两次后果却不同,Why? ...

June 3, 2023 · 4 min · jiezi

关于程序员:并发专栏队列同步器-AQS-以及-Reentrantlock-应用

队列同步器 AQS 以及 Reentrantlock 利用Java 中的大部分同步类都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。 ReentrantLock、ReentrantReadWriteLock、Semaphore(信号量)、CountDownLatch、偏心锁、非偏心锁、 ThreadPoolExecutor 都和 AQS 有间接关系,所以理解 AQS 的形象实现,并在此基础上联合上述各类的实现细节,很快就能够把 JUC 一网打尽,不至于查看源码时一头雾水,失落主线。 是什么AQS 是 AbstractQueuedSynchronizer 的简称,翻译成中文就是 形象队列同步器 ,这三个单词离开来看: Abstract (形象):也就是说, AQS 是一个抽象类,只实现一些次要的逻辑,有些办法推延到子类实现Queued (队列):队列有啥特色呢?先进先出( FIFO )对吧?也就是说, AQS 是用先进先出队列来存储数据的Synchronizer (同步器):即 AQS是 实现同步性能的以上概括一下, AQS 是一个用来构建锁和同步器的框架,应用 AQS 能简略而又高效地结构出同步器。 程序员么,看原理类内容,不看源码“下饭”,就不叫深刻学习,所以,适当关上下源码联合着看,很容易了解了。 一、框架结构首先,咱们通过上面的架构图来整体理解一下 AQS 框架 上图中有色彩的为 Method,无色彩的为 Attribution。总的来说,AQS 框架共分为五层,自上而下由浅入深,从 AQS 对外裸露的 API 到底层根底数据。当有自定义同步器接入时,只需重写第一层所须要的局部办法即可,不须要关注底层具体的实现流程。当自定义同步器进行加锁或者解锁操作时,先通过第一层的 API 进入 AQS 外部办法,而后通过第二层进行锁的获取,接着对于获取锁失败的流程,进入第三层和第四层的期待队列解决,而这些解决形式均依赖于第五层的根底数据提供层。第一层如果你当初关上 IDE, 你会发现咱们常常应用的 ReentrantLock 、ReentrantReadWriteLock、 Semaphore、 CountDownLatch ,都是【聚合】了一个【队列同步器】的子类实现线程访问控制的,也就是咱们说的第一层,API 层。 为什么要聚合一个同步器的子类呢,这其实就是一个典型的模板办法模式的长处: 咱们应用的锁是面向使用者的,它定义了使用者与锁交互的接口,暗藏了实现的细节,咱们就像范式那样间接应用就能够了,很简略而同步器面向的是锁的实现,比方 Doug Lea 大神,或者咱们业务自定义的同步器,它简化了锁的实现形式,屏蔽了同步状态治理,线程排队,期待/唤醒等底层操作这能够让咱们应用起来更加不便,因为咱们绝大多数都是在应用锁,实现锁之后,其外围就是要使用方便。 同步器的设计是就基于模板办法模式的,如果须要自定义同步器个别的形式是这样(模板办法模式很经典的一个利用): 使用者继承 AbstractQueuedSynchronizer 并重写指定的办法。(这些重写办法很简略,无非是对于共享资源 state 的获取和开释)将 AQS 组合在自定义同步组件的实现中,并调用其模板办法,而这些模板办法又会调用使用者重写的办法。这和咱们以往通过实现接口的形式有很大区别,这是模板办法模式很经典的一个使用,上面简略的给大家介绍一下模板办法模式,模板办法模式是一个很容易了解的设计模式之一。 ...

June 3, 2023 · 11 min · jiezi

关于程序员:CKA证书到底有什么用考试流程是什么

对于从事IT行业的技术人员来说,想要拿到丰富的工资,取得好的岗位,除了领有过硬的技术之外,还须要考取高含金量的证书,而CKA证书就是目前业界内相当具备含金量的一项证书,很多人会通过卡哦这个证书来晋升本人的职业竞争力。上面大使简略介绍一下CKA考试,有须要的能够在认证大使上具体理解。 CKA认证概述 CKA认证考试是由Linux基金会和云原生计算基金会(CNCF)创立的,以促成Kubernetes生态系统的继续倒退。该考试是一种近程在线、有监考、基于实操的认证考试,须要在运行Kubernetes的命令行中解决多个工作。CKA认证考试是专为Kubernetes管理员、云管理员和其余治理Kubernetes实例的IT业余人员而设的。 已取得认证的K8s管理员具备了进行根本装置以及配置和治理生产级Kubernetes集群的能力。他们将理解Kubernetes网络、存储、平安、保护、日志记录和监控、利用生命周期、故障排除、API对象原语等要害概念,并可能为最终用户建设根本的用例。 CKA考试内容 集群架构,装置和配置:25% • 治理基于角色的访问控制(RBAC) • 应用Kubeadm装置根本集群 • 治理高可用性的Kubernetes集群 • 设置基础架构以部署Kubernetes集群 • 应用Kubeadm在Kubernetes集群上执行版本升级 • 施行etcd备份和还原 工作负载和调度:15% • 理解部署以及如何执行滚动更新和回滚 • 应用ConfigMaps和Secrets配置应用程序 • 理解如何扩大应用程序 • 理解用于创立强壮的、自修复的应用程序部署的原语 • 理解资源限度如何影响Pod调度 • 理解清单治理和通用模板工具 服务和网络:20% • 理解集群节点上的主机网络配置 • 了解Pods之间的连通性 • 理解ClusterIP、NodePort、LoadBalancer服务类型和端点 • 理解如何应用入口控制器和入口资源 • 理解如何配置和应用CoreDNS • 抉择适当的容器网络接口插件 存储:10% • 理解存储类、长久卷 • 理解卷模式、拜访模式和卷回收策略 • 了解长久容量申明原语 • 理解如何配置具备持久性存储的应用程序 故障排除:30% • 评估集群和节点日志 • 理解如何监督应用程序 • 治理容器规范输入和规范谬误日志 • 解决应用程序故障 • 对群集组件故障进行故障排除 • 排除网络故障 CKA考试详情 考试模式:线上考试 考试工夫:2小时 认证有效期:3年 软件版本:Kubernetes v1.27 重考政策:可承受1次重考 教训程度:中級

June 2, 2023 · 1 min · jiezi

关于程序员:Java-集合你肯定也会被问到这些

作为一位小菜 ”一面面试官“,面试过程中,我必定会问 Java 汇合的内容,同时作为求职者,也必定会被问到汇合,所以整顿下 Java 汇合面试题 说说常见的汇合有哪些吧? HashMap说一下,其中的Key须要重写hashCode()和equals()吗? HashMap中key和value能够为null吗?容许几个为null呀? HashMap线程平安吗?ConcurrentHashMap和hashTable有什么区别? List和Set说一下,当初有一个ArrayList,对其中的所有元素依照某一属性大小排序,应该怎么做? ArrayList 和 Vector 的区别 list 能够删除吗,遍历的时候能够删除吗,为什么 面向对象语言对事物的体现都是以对象的模式,所以为了不便对多个对象的操作,须要将对象进行存储,汇合就是存储对象最罕用的一种形式,也叫容器。 从下面的汇合框架图能够看到,Java 汇合框架次要包含两种类型的容器 一种是汇合(Collection),存储一个元素汇合另一种是图(Map),存储键/值对映射。Collection 接口又有 3 种子类型,List、Set 和 Queue,再上面是一些抽象类,最初是具体实现类,罕用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。 汇合框架是一个用来代表和操纵汇合的对立架构。所有的汇合框架都蕴含如下内容: 接口:是代表汇合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以不同的形式操作汇合对象实现(类):是汇合接口的具体实现。从实质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。算法:是实现汇合接口的对象里的办法执行的一些有用的计算,例如:搜寻和排序。这些算法被称为多态,那是因为雷同的办法能够在类似的接口上有着不同的实现。说说罕用的汇合有哪些吧?Map 接口和 Collection 接口是所有汇合框架的父接口: Collection接口的子接口包含:Set、List、QueueList是有序的容许有反复元素的 Collection,实现类次要有:ArrayList、LinkedList、Stack以及Vector等Set是一种不蕴含反复元素且无序的Collection,实现类次要有:HashSet、TreeSet、LinkedHashSet等Map没有继承Collection接口,Map提供key到value的映射。实现类次要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap 以及 Properties 等ArrayList 和 Vector 的区别相同点: ArrayList 和 Vector 都是继承了雷同的父类和实现了雷同的接口(都实现了List,有序、容许反复和null) extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable底层都是数组(Object[])实现的初始默认长度都为10不同点: 同步性:Vector 中的 public 办法少数增加了 synchronized 关键字、以确保办法同步、也即是 Vector 线程平安、ArrayList 线程不平安性能:Vector 存在 synchronized 的锁期待状况、须要期待开释锁这个过程、所以性能绝对较差扩容大小:ArrayList在底层数组不够用时在原来的根底上扩大 0.5 倍,Vector默认是扩大 1 倍 ...

June 2, 2023 · 24 min · jiezi

关于程序员:重磅升级|ONES-Resource-资源管理解决方案

在研发我的项目中,迷信高效的资源管理,能无效缩小资源节约、老本超支和进度延误,以起码的投入实现资源效益的最大化。 ONES Resource 以资源布局与进度跟踪两个环节为外围,提供了多维度的可视化报表,全面展现资源布局与应用状况。借助 ONES Resource,管理者能够高深莫测地查看成员的工作排期与饱和度状况,并通过「利落拽」等操作,高效进行资源布局、资源配置、资源监控及资源预测剖析,为每个我的项目匹配最佳的资源组合。 资源管理的三大常见难题 随着研发规模逐步壮大,多业务线、多我的项目并行的状况一直增多,团队管理者或项目经理在进行资源管理时,往往会面临以下挑战: 资源布局不合理:面对生疏或简单工作,无奈精确预估所需工夫、人力和老本,导致资源分配不当,供需失衡;资源分配不平衡:难以全面把握团队成员的工作饱和度,导致局部成员过劳或闲置,影响整体的生产力和产出品质;资源调配不灵便:需要范畴、要求或优先级变更后, 无奈疾速响应变动并调整资源分配,使得我的项目阻塞、进度延期。ONES Resource 资源管理解决方案 基于对上述痛点及研发场景的粗浅洞察,ONES 重磅推出 ONES Resource 资源管理解决方案。一方面,管理者可能依据业务优先级布局和协调跨我的项目资源,将需要和资源无效匹配;另一方面,管理者还能够直观监控成员的工作量、可用性、饱和度等,及时辨认进度瓶颈,进步团队资源利用率。 一、跨我的项目团队资源布局 在进行迭代布局时,PMO 或项目经理通常会依据迭代指标,预估迭代周期和迭代规模,为其匹配前端、后端、测试等不同类型的资源。针对这一场景,ONES Resource 「成员排期日历」提供了高层视角,帮忙团队轻松实现资源布局与资源调度,正当分派任务。 01 排期可视化,轻松评估成员可用性 ONES Resource 领有清晰直观的甘特图日历,通明地展示了不同部门/成员在某一时间段内的工作排期和饱和值,以便管理者抉择适合的资源,制订牢靠的我的项目打算。 因为不同团队的管理模式存在差别,ONES Resource 反对通过「预估工时」和「工作项数量」两种维度统计成员饱和值,并反对自定义饱和值阈值,适配个性化的资源管理诉求。 02 简略「利落拽」,疾速实现任务分配 成员选定后,管理者只需进行简略的「利落拽」,即可为相干成员疾速布局工作排期、填写预估工时,高效实现我的项目资源配置。 二、实时监控团队资源状况 迭代开始后,成员依据理论的工作状况,在已布局的工作上注销理论的投入工时;与此同时,项目经理继续追踪成员的理论执行状况,确保整体进度与负荷正当可控。ONES Resource「成员注销工时日历」可为管理者的资源监控与资源调度提供决策参考。 01 高效统计我的项目工时,实时监控成员负荷 在 ONES Resource 中,通过剖析成员的工时注销明细,管理者能获取成员理论的投入状况,迷信把控我的项目老本,及时辨认进度危险。 在此基础上,管理者还可实时查看成员的工时饱和度,防止多我的项目并行导致成员超负荷工作,同时也缩小了资源分配失衡导致的成员闲置。 02 以优先级为导向,动静调整资源分配 依靠于 ONES Resource 的分组和筛选性能,管理者可结构化理解成员每天在不同事项的投入散布,并依据业务指标的优先级,灵便调整工作比重,确保资源始终流向优先级最高的我的项目。 三、多维度剖析资源投入 迭代完结后,PMO 和项目经理会查看成员理论投入,剖析资源预估偏差与资源效力,评估迭代布局的合理性。ONES Resource 反对生成工时报表与工时日志,帮忙管理者全方位量化团队的资源投入状况,为资源分配、效力晋升和老本管制提供数据参考。 工时报表:ONES 提供了「我的项目工时汇总」「成员工时汇总」和「工作项工时汇总」等多种报表,便于团队从不同维度统计工时注销状况;工时日志:能够从部门、我的项目、迭代、工时注销人以及工夫等不同维度,对工时明细及散布状况进行剖析,报表数据可一键导出。此外,ONES 还具备成熟的效力指标体系和丰盛的仪表盘模版,帮忙团队从「成员工时我的项目散布」「成员上周注销工时」「成员工作项实现进度」等多角度动手,可视化度量团队的资源利用率,推动团队人效改良。

June 2, 2023 · 1 min · jiezi

关于程序员:欧奈儿行业-RPS-排名一图览全貌-20230602半导体排名显示继续提升

主动复盘 2023-06-02k 线图是最好的老师,点击详情图能够看到行业 20 日 RPS 的排名,最底下子图是行业 rps 走势线 据我察看,成交额超过 100 亿,胜利几率比拟高,个别有买点标注的,走势还能够 公众hao:醉卧梦星河欧奈尔行业RPS排名天天更新追踪主力行业趋势更容易来这里一图看趋势。20 日板块 RPS 排名排名name详情changeamountrps05rps10rps20rps50rps120rps250volume0机器视觉-1.03%201.99亿82901009696100878.78万手13D摄像头0.35%70.08亿9188100797354439.84万手2算力概念-1.52%471.75亿98100990001581.44万手3Chiplet概念-0.14%85.90亿76849963930280.84万手4屏下摄像1.02%57.36亿939298678461648.86万手5PCB-0.21%201.00亿7896988476821018.75万手6MiniLED0.66%132.42亿8284978180731283.70万手7电机-0.32%41.69亿281997978481177.55万手8生产电子0.31%254.64亿7581977867781440.00万手9减速器-0.41%41.02亿1679674650347.27万手10半导体-0.04%499.92亿7579968086761122.51万手11无线耳机-0.05%391.18亿8175957075731741.53万手12光学光电子-0.01%166.34亿8386957881801552.63万手13生物辨认-0.46%241.70亿9191949295891278.33万手14智能穿戴-0.25%468.60亿7980946075632548.14万手15激光雷达-0.42%52.27亿748894706088234.29万手16动物照明-0.35%27.23亿517893667865280.71万手17传感器0.37%161.67亿577493637566758.87万手18数字水印-1.19%112.56亿9899929300750.76万手19次新股0.36%480.07亿6077927668601423.71万手20近程办公0.06%285.11亿9797919299981511.65万手21电子元件-0.10%297.80亿5878914950501188.03万手22计算机设备-0.42%227.20亿8086918890871091.10万手23仪器仪表-0.21%64.25亿197390878295377.21万手24通信设施-0.30%386.29亿8388909587901829.46万手本文由mdnice多平台公布

June 2, 2023 · 1 min · jiezi

关于程序员:QCon-全球软件开发大会广州站学习资料放送

5 月 27 日,由 InfoQ 中国举办的 QCon 寰球软件开发大会在广州圆满闭幕。Apifox 受 QCon 大会主办方和 TGO 鲲鹏会邀请,加入了此次峰会,与国内出名科技企业进行了交换与学习。 大会为期两天,有近百位国内外技术大咖现场分享前沿技术案例与翻新实际,共有十二个专题,近五十余场分享。其中包含稳定性即生命线、编程语言实战、DevOps vs 平台工程、AGI 与 AIGC 落地、下一代软件架构、数据驱动业务、出海的思考、云老本优化、古代数据架构、AIGC 浪潮下的效力智能化、新型数据库、大前端技术摸索。 本次大会的演讲 PPT 能够点击「浏览原文」或通过下方链接进入演讲专题汇总,抉择感兴趣的专题,点击「下载 PPT」即可获取。 https://qcon.infoq.cn/2023/guangzhou/track Apifox 展台的工作人员在大会期间向业界展现了咱们产品的最新动静与解决方案,向参会者展示咱们在 API 研发治理畛域的研究成果,分享咱们的最佳实际、胜利案例以及咱们对将来 API 技术倒退的见解,并与各大技术专家和业内首领进行深刻的交换,聆听他们的观点和反馈。 Apifox 作为国内当先的 API 一体化合作平台,在流动现场播种了大量参会者的充分肯定与反对,咱们会持续致力,致力于为用户提供更优良的产品性能和更极致的应用体验,继续推动 API 研发治理畛域的翻新和倒退,以满足研发团队一直变动的需要。 对于 QCon 寰球软件开发大会 QCon 寰球软件开发大会是由极客邦科技旗下 InfoQ 中国主办的综合性技术盛会,每年在世界各地召开。自 2007 年 3 月份开始举办以来,曾经有超万名有多年从业教训的技术人员加入过 QCon 大会。 QCon 内容源于实际并面向社区,演讲嘉宾根据热点话题,面向 5 年以上工作教训的技术团队负责人、架构师、工程总监、开发人员分享技术创新和实际。QCon 会议依靠 InfoQ 的深厚积攒,亲密关注技术趋势及前瞻性的热点话题,会议设置联席主席、出品人等角色深刻参加到内容策动和把关,让参会者满载而归。

June 2, 2023 · 1 min · jiezi

关于程序员:Zookeeper面试这一篇就够了

谈下你对 Zookeeper 的意识?ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的性能包含:配置保护、域名服务、分布式同步、组服务等。 ZooKeeper 的指标就是封装好简单易出错的要害服务,将简略易用的接口和性能高效、性能稳固的零碎提供给用户。 Zookeeper 都有哪些性能?集群治理:监控节点存活状态、运行申请等;主节点选举:主节点挂掉了之后能够从备用的节点开始新一轮选主,主节点选举说的就是这个选举的过程,应用 Zookeeper 能够帮助实现这个过程;分布式锁:Zookeeper 提供两种锁:独占锁、共享锁。独占锁即一次只能有一个线程应用资源,共享锁是读锁共享,读写互斥,即能够有多线线程同时读同一个资源,如果要应用写锁也只能有一个线程应用。Zookeeper 能够对分布式锁进行管制。命名服务:在分布式系统中,通过应用命名服务,客户端利用可能依据指定名字来获取资源或服务的地址,提供者等信息。对立配置管理:分布式环境下,配置文件治理和同步是一个常见问题,一个集群中,所有节点的配置信息是统一的,比方 Hadoop 集群、集群中的数据库配置信息等全局配置zookeeper负载平衡和nginx负载平衡区别Nginx是驰名的反向代理服务器,zk是分布式协调服务框架,都能够做负载平衡 zk的负载平衡是能够调控,nginx只是能调权重,其余须要可控的都须要本人写插件; 然而nginx的吞吐量比zk大很多,应该说按业务抉择用哪种形式 一致性协定2PC、3PC?2PC阶段一:提交事务申请(”投票阶段“) 当要执行一个分布式事务的时候,事务发起者首先向协调者发动事务申请,而后协调者会给所有参与者发送 prepare 申请(其中包含事务内容)通知参与者你们须要执行事务了,如果能执行我发的事务内容那么就先执行但不提交,执行后请给我回复。而后参与者收到 prepare 音讯后,他们会开始执行事务(但不提交),并将 Undo 和 Redo 信息记入事务日志中,之后参与者就向协调者反馈是否筹备好了 阶段二:执行事务提交 协调者依据各参与者的反馈状况决定最终是否能够提交事务,如果反馈都是Yes,发送提交commit申请,参与者提交胜利后返回 Ack 音讯,协调者接管后就实现了。如果反馈是No 或者超时未反馈,发送 Rollback 申请,利用阶段一记录表的 Undo 信息执行回滚,并反馈给协调者Ack ,中断音讯 长处:原理简略、实现不便。 毛病: 单点故障问题,如果协调者挂了那么整个零碎都处于不可用的状态了阻塞问题,即当协调者发送 prepare 申请,参与者收到之后如果能解决那么它将会进行事务的解决但并不提交,这个时候会始终占用着资源不开释,如果此时协调者挂了,那么这些资源都不会再开释了,这会极大影响性能数据不统一问题,比方当第二阶段,协调者只发送了一部分的 commit 申请就挂了,那么也就意味着,收到音讯的参与者会进行事务的提交,而前面没收到的则不会进行事务提交,那么这时候就会产生数据不一致性问题3PC3PC,是 Three-Phase-Comimit 的缩写,即「三阶段提交」,是二阶段的改进版,将二阶段提交协定的“提交事务申请”过程一分为二。 阶段一:CanCommit 协调者向所有参与者发送 CanCommit 申请,参与者收到申请后会依据本身状况查看是否能执行事务,如果能够则返回 YES 响应并进入准备状态,否则返回 NO 阶段二:PreCommit 协调者依据参与者返回的响应来决定是否能够进行上面的 PreCommit 操作。如果下面参与者返回的都是 YES,那么协调者将向所有参与者发送 PreCommit 预提交申请,参与者收到预提交申请后,会进行事务的执行操作,并将 Undo 和 Redo 信息写入事务日志中 ,最初如果参与者顺利执行了事务则给协调者返回胜利的 Ack 响应。如果在第一阶段协调者收到了 任何一个 NO 的信息,或者 在肯定工夫内 并没有收到全副的参与者的响应,那么就会中断事务,它会向所有参与者发送中断请求 abort,参与者收到中断请求之后会立刻中断事务,或者在肯定工夫内没有收到协调者的申请,它也会中断事务 ...

June 2, 2023 · 7 min · jiezi

关于程序员:ShowMeBug-持续升级提供高信效度支撑的技术招聘方案

去年年底,全新升级版的 ShowMeBug ——一款反对实战编程的技术能力评估平台,首次揭开了它神秘的面纱。 而近日,ShowMeBug 再次迎来一系列产品更新,它将以全新的风貌,提供高信效度撑持的技术招聘计划,继续助力平凡企业更精准、更高效、更经济地实现技术招聘。 那这个计划是怎么诞生的?又是如何解决高信效度的问题呢?明天,咱们为您细细道来: 初心ShowMeBug 创始人& CEO 李亚飞始终有个对于技术招聘终极解决方案的幻想:让面试官实时看到候选人是如何调试一段程序的——"Talk is cheap, show me the code." 这是因为,守业过程中,他直观感触到了技术招聘始终是技术岗 HR 和 CTO 的痛: 1.招聘吞吐率低。筛 100 份简历,能力出 1 份 Offer。面试 20 次,19 次是在浪费时间。 2.传统笔面试与高绩效人才相关性低。八股文与算法题是原罪。 3.最终导致综合招聘老本太高。 这个过程中,李亚飞始终在思考这些问题的解决方案。针对“吞吐率低”的问题,是否能够设计一套反对实战编程的高信效度技术测评计划?针对“面试不精准”这一问题,是否能够设计一套“实战编程”的结构化+情境化面试的计划? 基于上述种种,ShowMeBug 应运而生。 寻因为什么技术招聘这么难? 技术从业 10 年,很难有 1 件事和技术招聘一样能让我不难受但又无可奈何了。 网易云音乐 前端工程师 郑海波 咱们先来看看,企业到底须要什么样的技术人才。CodeSignal 的创始人 Tigran Sloyan 讲到:造就软件工程师就像造就一个飞行员一样艰巨有挑战,只有优良的飞行员能力率领团队胜利。这个比喻很形象。咱们理解到,有些企业中我的项目的延误,甚至失控,正是因为不适合的“飞行员”多了,太多的 Bug 在修,太多的火在救而导致的。这是企业最大的痛,如果人才错了,我的项目肯定无奈胜利。 人对了,事儿就成了。 国内驰名商业征询参谋 刘润 然而,在传统技术招聘中,局部企业仅用面试环节即实现对技术候选人的考核评估。这样的招聘形式一来会占用面试官大量的工夫,老本较高;二来,技术面试官和候选人只是进行语言沟通交流,效率较低,无奈评估技术候选人我的项目实战能力到底如何,心里也没底。招优良工程师,就像招聘一个飞行员,或者像招一个会开车的老司机。咱们不是在选秀,咱们须要业余无效的评估伎俩。所以,很多企业为了进步筛选效率和科学性,改进了技术招聘流程,退出了口试环节,只不过这又导致了另外两个问题——一些技术候选人排挤做“八股文”试题,看到做题就间接走人,人才更不好招了;就算技术候选人残缺做完题目,高分通过,也可能呈现入职后天天写 Bug 的状况。 技术招聘老本高,信效度却始终不高——如何破解这一难题?ShowMeBug 想到了「洋葱模型」。 要害办法ShowMeBug 在「洋葱模型」的实践根底上,将技术招聘流程比作一次剥洋葱的过程。洋葱由外到内顺次分为“履历”、“常识”、“技能”、“动机”四个档次。其中,“履历”为教育背景、工作经验;“常识”为计算机实践、编程语言/框架常识。局部企业只把洋葱“剥”到了这一层,便没有再深刻,因而,候选人的编程实战能力没有被看见。这便有可能会招到“实践都会、实战解体”的候选人。 ShowMeBug 洋葱模型 如果持续再“剥”一层洋葱,就能深挖到“常识”层面的下一层——“技能”,也就是技术候选人解决问题能力和编程思维能力,这正是技术人才应有的外围能力。这部分能力一旦能被疾速精确辨认进去,那么企业在做技术招聘时便能做出更科学合理的决策,从而升高企业的决策危险。 基于 ShowMeBug 的洋葱模型实践,ShowMeBug 2.0 逐步有了雏形。 ...

June 2, 2023 · 1 min · jiezi

关于程序员:大数据教程0501Python-数据分析简介

更多信息请关注WX搜寻GZH:XiaoBaiGPT Python数据分析简介本教程将介绍如何应用Python进行大数据分析。Python是一种功能强大且易于应用的编程语言,具备丰盛的数据分析库和工具。在本教程中,咱们将涵盖以下主题: 数据分析筹备工作导入数据数据荡涤和预处理数据摸索与可视化数据分析与建模1. 数据分析筹备工作在开始数据分析之前,咱们须要确保正确装置了所需的Python库。以下是一些罕用的库: Pandas:用于数据处理和剖析的外围库。NumPy:提供高性能的数值计算性能。Matplotlib:用于数据可视化和绘图的库。Seaborn:基于Matplotlib的高级数据可视化库。Scikit-learn:用于机器学习和建模的库。确保曾经装置了这些库,并筹备好开始数据分析。 2. 导入数据首先,咱们须要导入数据以进行剖析。Python反对多种数据格式,包含CSV、Excel、JSON等。上面是导入CSV文件的示例: import pandas as pd# 读取CSV文件data = pd.read_csv('data.csv')上述代码应用pandas库中的read_csv()函数从名为data.csv的文件中读取数据。请确保将文件门路替换为您的理论文件门路。 3. 数据荡涤和预处理在数据分析之前,通常须要进行数据荡涤和预处理。这包含解决缺失值、解决异样值、标准化数据等。以下是一些常见的数据荡涤和预处理操作的示例: 3.1 解决缺失值缺失值是数据中的空值或未定义值。咱们能够应用pandas库来解决缺失值。以下代码演示了如何解决缺失值: # 查看缺失值data.isnull().sum()# 填充缺失值data.fillna(0, inplace=True)上述代码中,isnull().sum()函数用于计算每列的缺失值数量。fillna()函数用于填充缺失值,这里将缺失值替换为0。依据理论状况,您能够抉择其余办法来解决缺失值。 3.2 解决异样值异样值是与其余值相比显著不同的值。咱们能够应用统计学或可视化办法来检测和解决异样值。以下是一些示例代码: # 检测异样值import seaborn as snssns.boxplot(x=data['column_name'])# 解决异样值data = data[data['column_name'] < 100]上述代码中,sns.boxplot()函数用 于绘制箱线图以检测异样值。而后,咱们能够依据须要对异样值进行解决。在这个示例中,咱们删除了大于100的异样值。 3.3 标准化数据标准化是将数据转换为具备零均值和单位方差的规范散布。这在许多数据分析和建模技术中是很重要的。以下是标准化数据的示例: from sklearn.preprocessing import StandardScaler# 创立标准化器scaler = StandardScaler()# 标准化数据data['column_name'] = scaler.fit_transform(data['column_name'].values.reshape(-1, 1))上述代码中,咱们应用StandardScaler()类创立一个标准化器,并应用fit_transform()函数将数据标准化。请将column_name替换为您要标准化的理论列名。 4. 数据摸索与可视化在数据分析中,数据摸索和可视化是十分重要的步骤。这有助于咱们理解数据的散布、关系和趋势。以下是一些常见的数据摸索和可视化技巧的示例: 4.1 描述统计信息描述统计信息提供了对于数据分布和摘要的概览。以下是描述统计信息的示例: # 计算描述统计信息data.describe()上述代码中,describe()函数用于计算数据的描述统计信息,包含计数、均值、标准差、最小值、25%分位数、中位数、75%分位数和最大值。 4.2 数据可视化数据可视化能够帮忙咱们更好地了解数据。以下是一些常见的数据可视化办法的示例: import matplotlib.pyplot as plt# 绘制直方图plt.hist(data['column_name'])# 绘制散点图plt.scatter(data['column_name1'], data['column_name2'])# 绘制箱线图sns.boxplot(x=data['column_name'])上述代码中,咱们应用matplotlib库和seaborn库来绘制直方图、散点图和箱线图。请将column_name替换为您要绘制的理论列名。 5. 数据分析与建模一旦咱们实现了数据荡涤、预处理、摸索和可视化,咱们能够进行数据分析和建模。以下是一些示例代码: 5.1 相关性剖析相关性剖析用于确定变量之间的关系。以下是相关性剖析的示例: # 计算相关系数correlation = data.corr()# 可视化相关系数矩阵sns.heatmap(correlation, annot=True, cmap='coolwarm')上述代码中,corr()函数用于计算数据的相关系数矩阵,heatmap()函数用于可视化 ...

June 2, 2023 · 1 min · jiezi

关于程序员:Linux版百度网盘丨直接在服务器SSH命令行中使用百度云轻松解决数据传输和分享难题

Linux版 百度网盘本文次要的目标就是在Linux环境下通过命令行来应用百度云盘!间接在服务器上将数据(比方基因组等大文件)传输到百度网盘,之后能够进行轻松分享,而且还能够反对备份,解决文件的传输和分享难题。软件简介bypy是一个Python客户端,用于操作百度网盘,提供了丰盛的命令行操作。该工具可能间接在Linux服务器上进行大文件的传输,反对多线程操作,本文将介绍如何应用bypy进行百度云的上传、下载、同步等操作。 装置pip install bypy命令bypy提供了多种操作命令,具体如下: quota:显示百度云存储配额信息list:列出指定目录下的文件列表upload:上传本地文件到百度云download:从百度云下载文件到本地syncup:将本地文件同步到百度云syncdown:将百度云文件同步到本地delete:删除百度云上的文件makedir:在百度云上创立目录move:挪动百度云上的文件copy:复制百度云上的文件compare:比拟本地和云文件的差别调试运行时增加-v参数,会显示进度详情运行时增加-d,会显示一些调试信息运行时增加-ddd,显示HTTP通信信息应用示例登录配置(test) [user @ cloud 20:17:08 /mnt/data/]$ bypy infoPlease visit:https://openapi.baidu.com/oauth/2.0/authorize?client_id=q8WAnd authorize this appPaste the Authorization Code here within 10 minutes.Press [Enter] when you are donec5c3085d143f880df0727d3fAuthorizing, please be patient, it may take upto 300 seconds...Quota: 10.010TBUsed: 1.332TB登录验证后会显示以后残余贮存空间和已用空间,比方我这里大略10TB左右。 主要参数$ bypy -husage: bypy [-h] [-V] [-d] [-v] [-r RETRY] [-q] [-t TIMEOUT] [-s SLICE] [--chunk CHUNK] [-e] [-f] [--no-resume-download] [--include-regex INCREGEX] [--on-dup ONDUP] [--no-symlink] [--disable-ssl-check] [--cacerts CACERTS] [--mirror MIRROR] [--select-fastest-mirror] [--rapid-upload-only] [--resume-download-revert-back RCOUNT] [--move] [--processes PROCESSES] [--downloader DOWNLOADER] [--downloader-arguments DOWNLOADER_ARGS] [--config-dir CONFIGDIR] [-c] [command ...]命令行参数解释bypy提供了丰盛的命令行参数,具体如下: ...

June 1, 2023 · 1 min · jiezi

关于程序员:Region-Proposal-Network-RPN-架构详解

动动发财的小手,点个赞吧! 简介如果您正在浏览这篇文章,那么我假如您肯定据说过用于指标检测的 RCNN 系列,如果是的话,那么您肯定遇到过 RPN,即区域提议网络。如果您不理解 RCNN 系列,那么我强烈建议您在深入研究 RPN 之前单击此处浏览这篇文章。 因而咱们晓得,在指标检测算法中,指标是生成候选框,可能蕴含咱们指标的框,这些框将通过边界框回归办法进行定位,并由分类器分类到各自的类别。 在晚期版本的物体检测算法中,这些候选框已经是通过传统的计算机视觉技术生成的。其中一种办法是“选择性搜寻”,但这种办法的毛病是它是离线的,而且计算量很大。 这就是 RPN(区域提议网络)办法通过在十分短的工夫内生成候选框和最重要的中央,这个网络能够插入任何对象检测网络,这使得它对任何对象检测模型都更有用。 RPNCNN 从特色图学习分类的形式,RPN 也学习从特色图生成这些候选框。能够应用下图演示典型的区域提议网络 让咱们逐渐理解下面的框图 Step 1因而,在第一步中,咱们的输出图像通过卷积神经网络,最初一层将特色映射作为输入。 Step 2在这一步中,一个滑动窗口运行在上一步取得的特色图上。滑动窗口的大小是 n*n(这里是 3×3)。对于每个滑动窗口,都会生成一组特定的锚点,但具备 3 种不同的纵横比(1:1、1:2、2:1)和 3 种不同的比例(128、256 和 512),如下所示。 因而,对于 3 种不同的纵横比和 3 种不同的比例,每个像素总共可能有 9 个倡议。特色图大小为 WxH 的锚框总数和特色图每个地位的锚点数量 K 能够示意为 WxHxK 。 下图显示了在大小为 (600, 900) 的图像的地位 (450, 350) 处的 9 个锚点。 上图中,三种色彩代表三种尺度或尺寸:128×128、256×256、512×512。 让咱们挑出棕色的盒子/锚点(上图中最外面的盒子)。三个盒子的高宽比别离为1:1、1:2和2:1。 当初咱们有 9 个锚框用于特色图的每个地位。然而可能有很多盒子外面没有任何物体。因而模型须要理解哪个锚框可能蕴含咱们的对象。带有咱们对象的锚框能够被归类为前景,其余的将是背景。同时模型须要学习前景框的偏移量以调整以适宜对象。这将咱们带到下一步。 Step 3锚框的定位和分类是由 Bounding box Regressor layer 和 Bounding box Classifier layer 实现的。 ...

June 1, 2023 · 1 min · jiezi

关于程序员:大数据教程0108大数据数仓实战项目

更多信息请关注WX搜寻GZH:XiaoBaiGPT 大数据数仓实战我的项目应用相干常识在大数据畛域,数据仓库是一个用于集中存储和治理企业的结构化和非结构化数据的零碎。它能够帮忙企业将扩散的数据整合到一个对立的存储中,并为数据分析和业务决策提供反对。在本教程中,咱们将应用Python语言来演示一个大数据数仓实战我的项目的操作步骤。 1. 数据采集数据采集是数仓我的项目的第一步,它波及从各种数据源中收集和提取数据。这些数据源能够包含数据库、日志文件、传感器数据等。以下是一些常见的数据采集办法: 数据库提取:应用SQL查问从关系型数据库中提取数据。文件读取:读取和解析文件,例如CSV、JSON、XML等格局的文件。Web抓取:应用网络爬虫从网站上抓取数据。实时流数据:通过应用流解决引擎,从实时数据源中接管和解决数据。Python提供了许多库和工具来解决各种数据采集工作,如pandas、requests和BeautifulSoup。上面是一个从CSV文件中读取数据的示例: import pandas as pd# 从CSV文件中读取数据data = pd.read_csv('data.csv')2. 数据荡涤和转换在数据采集后,通常须要进行数据荡涤和转换的步骤。这些步骤旨在解决数据中的缺失值、反复值、异样值和格局不统一等问题,并将数据转换为适宜剖析和建模的模式。以下是一些常见的数据荡涤和转换工作: 缺失值解决:填充或删除缺失值。反复值解决:删除反复的数据行。异样值解决:检测和解决异样值。数据格式转换:将数据转换为适当的数据类型。数据规范化:对数据进行归一化或标准化。Python中的pandas库提供了许多函数和办法来解决数据荡涤和转换工作。上面是一个简略的示例,展现了如何删除蕴含缺失值的数据行: # 删除蕴含缺失值的数据行clean_data = data.dropna()3. 数据存储在数据荡涤和转换之后,咱们须要将数据存储到数仓中以供后续的剖析和查问应用。常见的数据存储办法包含关系型数据库、NoSQL数据库、数据湖等。以下是一些常见的数据存储形式: 关系型数据库:应用SQL语言将数据存储到关系型数据库中,如MySQL、PostgreSQL等。NoSQL数据库:将数据存储到非关系型数据库中,如MongoDB、Cassandra等。 数据湖:将原始数据以原始格局存储在数据湖中,如Hadoop HDFS、Amazon S3等。Python中的pandas库提供了多种办法来将数据存储到不同的数据存储系统中。上面是一个将数据存储到CSV文件的示例: # 将数据存储到CSV文件clean_data.to_csv('clean_data.csv', index=False)4. 数据分析和建模一旦数据存储到数仓中,咱们能够应用各种数据分析和建模技术来摸索数据、提取洞察和构建预测模型。这些技术包含统计分析、机器学习、数据可视化等。以下是一些常见的数据分析和建模工作: 描述性统计分析:计算数据的根本统计指标,如均值、标准差、最大值、最小值等。数据可视化:应用图表、图形等可视化工具展现数据的特色和关系。机器学习:应用机器学习算法构建预测模型,如线性回归、决策树、随机森林等。Python中有多个库和工具可供数据分析和建模应用,包含pandas、matplotlib、scikit-learn等。上面是一个简略的示例,展现了如何计算数据的均值和绘制数据的散点图: import pandas as pdimport matplotlib.pyplot as plt# 从CSV文件中读取数据data = pd.read_csv('data.csv')# 计算数据的均值mean_value = data.mean()# 绘制数据的散点图plt.scatter(data['x'], data['y'])plt.xlabel('x')plt.ylabel('y')plt.show()5. 数据查问和报表在数仓中存储的数据能够用于查问和生成报表,以反对业务决策和剖析需要。通常应用SQL语言进行数据查问,并应用报表工具生成可视化的报表。以下是一些常见的数据查问和报表工作: 数据查问:应用SQL语言从数仓中检索特定的数据。报表生成:应用报表工具生成可视化的报表和仪表盘。Python中的pandas库提供了SQL查问的性能,能够间接在Python中执行SQL查问。上面是一个简略的示例,展现了如何应用SQL查问从数据中检索特定的数据: import pandas as pd# 从CSV文件中读取数据data = pd.read_csv('data.csv')# 执行SQL查问query = "SELECT * FROM data WHERE x > 10"result = pd.read_sql_query(query, data)以上是一个大数据数仓实战我的项目的应用相干常识的简要介绍和示例,心愿对您有所 帮忙。在理论我的项目中,可能会波及更多的步骤和技术,具体取决于我的项目需要和数据特点。 本文由mdnice多平台公布

June 1, 2023 · 1 min · jiezi

关于程序员:某内Java课程整套视频课件

某内Java课程须要整套视频文件(视频+课件):(+V: t_shopnet) 1 FUNDAMENTALO101: 对象和类(上)(6 am.mp401: 对象和类(上) (6 pm.mp402: 对象和类(下) (3) am .mp402: 对象和类(下) (3) pm.mp4援用类型数组、继承的意义 (上) (3) am.mp403:03: 援用类型数组、继承的意义 (上) (3) pm.mp404: 继承的意义 (下) (3) am.mp404: 继承的意义 (下) (3) pm.mp405: package和import 访问控制am.mp405: package和import 访问控制pm.mp406: static和finalam.mp406: static和finalpm.mp407: 外部类am.mp407: 外部类pm.mp408: 接am.mp408: 接门pm.mp4多态am.mp409:09: 多态pm.mp4010: 内存治理和面向对象总结10.25-1.mp4010: 内存治理和面向对象总结10.25-2.mp4010: 内存治理和面向对象总结10.26-1.mp4010: 内存治理和面向对象总结10.26-2.mp4010: 内存治理和面向对象总结10.26-1.mp4010: 内存治理和面向对象总结10.26-2.mp4010: 内存治理和面向对象总结10.27-1.mp4010: 内存治理和面向对象总结10.27-2.mp4JAVA第四阶段-PROJECT COLLECTION-Day02-1.mp4JAVA第四阶段-PROJECT COLLECTION-Day02-2.mp4JAVA第四阶段-PROJECT COLLECTION-Day02-3.mp4JAVA第四阶段-PROJECT COLLECTION-Day02-4.mp4JAVA第四阶段-PROJECT COLLECTION-Day02-5.mp4JAVA第四阶段-PROJECT COLLECTION-Day02-6.mp4JAVA第四阶段-PROJECT COLLECTION-Day02-7.mp4JAVA第四阶段-PROJECT COLLECTION-Day02-8.mp4JAVA第四阶段-PROJECT COLLECTION-Day02-9.mp4JAVA第四阶段-PROJECT COLLECTION-Day02-10.mp4JAVA第四阶段-PROJECT COLLECTION-Day02-11.mp42 FUNDAMENTALO201: 对象和类(上) (6 am[海量.01: 对象和类(上) (6 pm[海...02:对象和类 (下) (3) am [海..02: 对象和类(下) (3) pm[海.03: 援用类型数组、继承的意义 (...03:援用类型数组、继承的意义 (...04: 继承的意义 (下) (3) am [..04: 继承的意义 (下) (3) pm [..05:package和import 访问控制a..05: package和import 访问控制p..06: static和finalam..06: static和finalpm..07: 外部类amia..07: 外部类pmja..08: 接amjava..08: 接口pmjava.09: 多态amjava..09: 多态pmjava..010: 内存治理和面向对象总结10..010: 内存治理和面向对象总结10...010: 内存治理和面向对象总结10...010: 内存治理和面向对象总结10...3 JAVASE0101: API文档、字符串基本操作am .mp401: API文档、字符串基本操作pm .mp402: 正则表达式、Object、包装类am .mp402: 正则表达式、Object、包装类pm.mp403: 文件操作File 、 RandomAccessFile (上) am .mp403: 文件操作File、 RandomAccessFile (上) pm .mp404: RandomAccessFile ( 下) am .mp404: RandomAccessFile (下) pm .mp405: 根本IO操作am .mp405: 根本IO操作pm.mp406: 文本数据IO操作、异样根底am .mp406: 文本数据IO操作、异样根底pm .mp44 JAVASEO201:01: 异样高级、 socket编程pm.mp402: Socket网络编程和线程am.mp402: Socket网络编程和线程pm.mp4汇合框架1am.mp403:03: 汇合框架1pm.mp4汇合框架2am.mp404:04: 汇合框架2pm.mp4汇合框架3am.mp405:05: 汇合框架3pm.mp4构建webserver我的项目am.mp406:构建webserver我的项目pm.mp45 WEB_SERVER01: webserver-响应01 pm .mp401: webserver-响应01am .mp402: webserver-响应02am .mp402: webserver-响应02pm .mp403: XML解析am .mp403: XML解析pm .mp404: 空申请的解决以及表单的提交am .mp404: 空申请的解决以及表单的提交pm.mp405: WebServer实现注册登录业务am .mp405: WebServer实现注册登录业务pm.mp406: 反对传递中文以及登录业务am .mp406: 反对传递中文以及登录业务pm.mp406: 反对传递中文以及登录业务pm-2 .mp407: Thymeleaf实现动静页面am .mp407: Thymeleaf实现动静页面am-2 .mp407: Thymeleaf实现动静页面pm .mp407: Thymeleaf实现动静页面pm-2 .mp408: 反射机制与业务模块重构am .mp408: 反射机制与业务模块重构am-2 .mp08: 反射机制与业务模块重构pm .mp408: 反射机制与业务模块重构pm-2 .mp46 WEBBASIC01: Web概迷、HTML概述、文本处理、图像和超链接am.mp401: Web概述、HTML概述、 文本处理、图像和超链接pm.mp4CSS申明am.mp402:CSs概述Css语法CSS选择器CSs概迷、Css语法、CSS选择器CSS申明pm.mp4Css吉明pm-2.mp402CSS概述C踽敖辑讥贝s≤岸乘虫抵甭凹矮隘餐法CSS选择器CsS申明am.mp403:03:CsS申明pm.mp4综合案例am.mp404:04:综合案例pm.mp405: JavaScript概迷、 JavaScript根底语法、流程管制、 JavaScript对象概述、罕用内置对象-上am.mp405: JavaScript概述、JavaScript根底语法、流程管制、 JavaScript对象概述、罕用内置对象-上pm.mp4罕用内置对象-下、内部对象概述、 window对象am.mp406:罕用内置对象下、内部对象概述、 window对象pm.mp47 JQUERY01: jQuery概述、jQuery选择器、jQuery操作Dom am.mp401: jQuery概述、jQuery选择器、jQuery操作Dom pm.mp402: jQuery事件 am.mp402: jQuery事件 pm.mp48 BOOTSTRAP01: 概述、开始应用Bootstrap 、 Bootstrap全局CSS、01:Bootstrap的组件 pm.mp4响应式布局、栅格零碎 am.mp4响应式布局、栅格零碎 pm.mp49 DATABASE01:数据库原理、SQL、SQL分类am.mp40:01: 数据库原理、SQL、SQL分类 pm.mp402: MySQL数据类型、 where字句 、 搜寻后果排序搜寻后果分页、汇总搜寻后果 am.mp402: MySQL数据类型、 where字句 、 搜寻后果排序、搜寻后果分页、汇总搜寻后果 pm.mp410 JDBC01: JDBC原理、JDBC根底、 JDBC外围API-上 am.mp401: JDBC原理、JDBC根底、JDBC外围API-上 pm.mp402: JDBC外围API-下、 JDBC高级编程、 DAO am.mp402: JDBC外围API下、 JDBC高级编程、 DAO pm.mp411 SERVLET_THYMELEAF01: 应用程序架构、Servlet根底、 HTTP协定 am.mp401 :应用程序架构、Servlet根底、 HTTP协定pm.mp402:Servlet工作原理am.mp4Servlet工作原理pm.mp402:门路解决、 Servlet个性am.mp403:03: 门路解决、Servlet个性pm.mp4在Servlet中应用、 OGNL表达式 am.mp404: Thymeleaf概述、04: Thymeleaf概迷、在Servlet中应用、 OGNL表达式 pm.mp405: Thymeleaf详解am.mp405: Thymeleaf详解pm.mp4状态治理、 Cookie 、06:Session am.mp4状态治理、 Cookie、Session pm.mp4过滤器、监听器ammp412 SPRINGMYBATISO101: Spring简介、 Spring容器、 Bean对象的作用域与生命周 am.mp401: Spring简介、 Spring容器、 Bean对象的作用域与生命周 pm.mp402: Spring lOC 、主动拆卸、基于注解的组件扫描与主动拆卸am.mp402: Spring lOC、主动拆卸、 基于注解的组件扫描与主动拆卸pm.mp403: Spring MVC简介、 基于注解配置的MVC利用、 接管申请参数am.mp403: Spring MVC简介、 基于注解配置的MVC利用、 接管申请参数pm.mp404: 转发与重定向、拦截器、 基于SpringMVC的异样解决am.mp404: 转发与重定向拦截器、基于SpringMVC的异样解决pm.mp405: SpringBoot简介、创立SpringBoot我的项目 、 增加动态页面、整合MyBatis、实现登录am.mp405: SpringBoot简介、创立SpringBoot我的项目、实现登录pm.mp4增加动态页面、整合MyBatis、06: MyBatis框架简介,利用、通过MyBatis实现增删改查am.mp406: MyBatis框架简介,利用 、 通过MyBatis实现增删改查pm.mp407: MyBatis中的#0与$占位符、 配置、多表查问am.mp407: MyBatis中的#几与$开占位符、配置、多表查游唉查拜弊脖弹绊唇毕汗冉腰渡哎驿.mp413 PROJECT STRAW01: 企业级我的项目环境搭建、创立数据库,创立数据表、LOMBOK框架、 Mybatis Plus Generator代码生成器am.mp.01: 企业级我的项目环境搭建、创立数据库,创立数据表、LOMBOK框架、Mybatis Plus Generator代码生成器pm.mp.02: MVC核心思想、基于Spring JDBC的事务处理、音讯摘要算法--MD5 、 自定义异样am.mp402: MVC核心思想、基于Spring JDBC的事务处理、音讯要算法--MD5、自定义异样pm.mp403: SLF4日志、用户注册、应用Spring Validation验证申请参数、 应用VUE解决界面am.mp403: SLF4i日志、用户注册、 应用Spring Validation验证申请参数、应用VUE解决界面pm.mp404:Spring Security验证及受权框架、应用Bcrypt算法解决明码加密am.mp404:Spring Security验证及受权框架、应用Bcrypt算法解决明码加密pm.mp405: 用户登录、显示导航栏“问题”的标签列表am.mp405: 用户登录、 显示导航栏“问题”的标签列表pm.mp406: Vue-Select控件、显示公布“问题”时的标签列表、显示公布“问题”时的老师列表 、 公布“问题am.mp406: Vue-Select控件、显示公布“问题”时的标签列表、显示公布“问题”时的老师列表 、公布“问题pm.mp407: summernote富文本编辑器、 Base64算法、 SpringBoot文件上传am.mp407: summernote富文本编辑器、 Base64算法、 SpringBoot文件上传pm.mp408:热门“问题”列表、我的问答列表、 PagerHelper分页框架am.mp4热门“问题”列表、我的问答列表、 PagerHelper分页框架pm.mp408:09: 显示“问题”详情、 公布“问题”答案、 显示答案列表am.mp409: 显示“问题”详情、 公布“问题”答案 、显示答案列表pm.mp4010: 发表评论 、显示评论列表 、删除评论am.mp4发表评论显示评论列表删除评论pm.mp4010:011:删除答案、SpringCloud简介、 Eureka注册核心、 重构分布式我的项目am.mp4011:删除答案、 SpringCloud简介、 Eureka注册核心重构分布式我的项目pm.mp4应用Redis共享Session am.mp4012: Zuul网关、Redis缓存服务器、012: Zuul网关、 Redis缓存服务器、应用Redis共享Session pm.mp4013:Ribbon近程调用与负载平衡、 Zookeeper与Kafaka、ElasticSearch文档服务器 am.mp4013:Ribbon近程调用与负载平衡、 Zookeeper与Kafaka、ElasticSearch文档服务器 pm.mp4014: IDEA的HTTP Request 、基于SpringData的分页解决、搜寻“问题”与“答案”、SpringAOP am.mp4014: IDEA的HTTP Request 、 基于SpringData的分页解决搜寻“问题”与“答案”SpringAOP pm.mp414 EXTENSIONS01: 数据结构相干概念,双向循环链表 am.mp401: 数据结构相干概念,双向循环链表 pm.mp402: 树的基本概念,排序二叉树,红黑树 pm.mp402: 树的基本概念,排序二又树,红黑树am.mp42.14上午视频 am.mp42.14上午视频 pm.mp42.15上午视频 am.mp42.15上午视频 pm.mp42.16上午视频 am.mp42.16上午视频 pm.mp42.17上午视频 pm.mp42.17上午视频 am.mp403: 散列表,阻塞队列 am.mp403: 散列表,阻塞队列 pm.mp404: 二分查找,冒泡排序,算法相干面试题 am.mp404: 二分查找,冒泡排序,算法相干面试题 pm.mp405: 事务,乐观锁和乐观锁,视图,束缚,存储过程 am.mp405: 事务,乐观锁和乐观锁,视图,束缚,存储过程 pm.mp406: 索引am.mp406: 索引pm.mp407:数据库范式,存储引警,sql面试题 am.mp407: 数据库范式,存储引警,sgl面试题 pm.mp408: Java反射、Java注解,SmartMVC根本组件及关系 am.mp408: Java反射、Java注解,SmartMVC根本组件及关系 pm.mp409: SmartMVC(上) am.mp409:SmartMVC(上) pm.mp415 LINUX NGINX REDIS01: Linux Nginx Redis Day01 am.mp401: Linux Nginx Redis Day01 pm.mp402: Linux Nginx Redis Day02 am.mp402: Linux Nginx Redis Day02 pm.mp403: Linux Nginx Redis Day03 am.mp403: Linux Nginx Redis Day03 pm.mp404: Linux Nginx Redis Day04 am.mp404: Linux Nginx Redis Day04 pm.mp405: Linux Nginx Redis Day05 am.mp405: Linux Nginx Redis Day05 pm.mp406: Linux Nginx Redis Day06 am.mp406: Linux Nginx Redis Day06 pm.mp416 PROJECT COLLECTION01: OA我的项目搭建以及配置02: 动静菜单性能实现03: 动静菜单批改性能实现04: 用户角色性能实现05: 用户治理性能实现06:应用shiro实现身份认证以及权限受权本文由mdnice多平台公布 ...

June 1, 2023 · 3 min · jiezi

关于程序员:大数据教程0104excel的使用

更多信息请关注WX搜寻GZH:XiaoBaiGPT Excel中的大数据处理Excel是一款功能强大的电子表格软件,它宽泛用于数据处理和剖析。对于大数据处理,Excel提供了多种性能和工具,能够帮忙用户解决大量的数据。在本教程中,咱们将介绍一些与大数据处理相干的Excel应用常识,并提供Python代码示例来演示如何应用Excel进行大数据处理。 步骤1:导入所需的库在应用Python解决Excel文件之前,咱们须要导入一些必要的库。其中,pandas是一个用于数据处理的弱小库,openpyxl是一个用于读写Excel文件的库。请确保你曾经装置了这些库。 import pandas as pdfrom openpyxl import load_workbook步骤2:读取Excel文件要解决Excel中的大数据,首先须要读取Excel文件并加载数据。咱们能够应用pandas库的read_excel函数来读取Excel文件。 # 读取Excel文件excel_file = 'path_to_excel_file.xlsx'df = pd.read_excel(excel_file)在上述代码中,将path_to_excel_file.xlsx替换为你要解决的Excel文件的理论门路。读取Excel文件后,数据将存储在名为df的DataFrame对象中。 步骤3:解决大数据在Excel中解决大数据的一个常见工作是筛选和过滤数据。例如,你可能只想保留满足特定条件的行或列。上面是一个示例,演示如何应用pandas库在Excel中筛选数据。 # 筛选数据filtered_data = df[df['Column_Name'] > 100]在上述代码中,Column_Name是你要筛选的列的名称,100是你要利用的筛选条件。依据条件筛选后,将生成一个新的DataFrame对象filtered_data,其中仅蕴含满足条件的行。 步骤4:计算统计量在解决大数据时,常常须要计算各种统计量,如平均值、中位数、最小值和最大值等。pandas库提供了许多函数来计算这些统计量。 # 计算平均值mean_value = df['Column_Name'].mean()# 计算中位数median_value = df['Column_Name'].median()# 计算最小值min_value = df['Column_Name'].min()# 计算最大值max_value = df['Column_Name'].max()在上述代码中,将Column_Name替换为你要计算统计量的列的名称。每个函数将返回计算失去的统计量。 步骤5:排序数据排序是另一个常见的大数据处理工作,它能够帮忙咱们依照特定的程序重新排列数据。上面是一个示例, 演示如何应用pandas库对Excel数据进行排序。 # 按升序排序sorted_data = df.sort_values('Column_Name')# 按降序排序sorted_data_desc = df.sort_values('Column_Name', ascending=False)在上述代码中,Column_Name是你要依据其值对数据进行排序的列的名称。sort_values函数将返回按指定列排序后的DataFrame对象。 步骤6:保留后果在解决完大数据后,咱们通常须要将处理结果保留回Excel文件中。咱们能够应用pandas库的to_excel函数将DataFrame对象保留为Excel文件。 # 保留后果output_file = 'path_to_output_file.xlsx'sorted_data.to_excel(output_file, index=False)将path_to_output_file.xlsx替换为你要保留后果的理论门路。index=False参数将不保留DataFrame的索引。 残缺示例代码上面是一个残缺的示例代码,展现了如何应用Python解决Excel中的大数据。 import pandas as pdfrom openpyxl import load_workbook# 读取Excel文件excel_file = 'path_to_excel_file.xlsx'df = pd.read_excel(excel_file)# 筛选数据filtered_data = df[df['Column_Name'] > 100]# 计算平均值mean_value = df['Column_Name'].mean()# 计算中位数median_value = df['Column_Name'].median()# 计算最小值min_value = df['Column_Name'].min()# 计算最大值max_value = df['Column_Name'].max()# 按升序排序sorted_data = df.sort_values('Column_Name')# 按降序排序sorted_data_desc = df.sort_values('Column_Name', ascending=False)# 保留后果output_file = 'path_to_output_file.xlsx'sorted_data.to_excel(output_file, index=False)请确保将示例代码中的门路替换为理论的Excel文件门路和输入文件门路。 ...

June 1, 2023 · 1 min · jiezi

关于程序员:大数据教程0103MySQL-数据库

更多信息请关注WX搜寻GZH:XiaoBaiGPT 大数据与 MySQL 数据库本教程将介绍大数据与 MySQL 数据库的相干常识,并提供应用 Python 编程语言的示例。大数据是指规模宏大、复杂度高、难以通过传统数据处理工具进行捕获、治理和解决的数据汇合。MySQL 是一种风行的关系型数据库管理系统,罕用于存储和治理结构化数据。 目录筹备工作连贯到 MySQL 数据库创立数据库和数据表插入数据查问数据更新和删除数据敞开数据库连贯1. 筹备工作在开始之前,请确保曾经实现以下筹备工作: 装置 MySQL 数据库,并启动数据库服务。装置 Python,并确保曾经装置了 mysql-connector-python 模块,可应用以下命令进行装置:pip install mysql-connector-python2. 连贯到 MySQL 数据库首先,咱们须要应用 Python 连贯到 MySQL 数据库。上面是一个连贯到本地 MySQL 数据库的示例: import mysql.connector# 连贯数据库mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase")# 打印数据库连贯信息print(mydb)将 yourusername、yourpassword 和 yourdatabase 替换为理论的用户名、明码和数据库名称。运行以上代码后,将会输入数据库连贯信息。 3. 创立数据库和数据表在开始存储数据之前,咱们须要创立一个数据库和数据表。上面是一个示例,创立一个名为 employees 的数据库,并在其中创立一个名为 employees_info 的数据表: import mysql.connector# 连贯数据库mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase")# 创立数据库mycursor = mydb.cursor()mycursor.execute("CREATE DATABASE employees")# 创立数据表mycursor.execute("USE employees")mycursor.execute("CREATE TABLE employees_info (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)")在以上示例中,咱们应用 CREATE DATABASE 语句创立了一个名为 employees 的数据库,并应用 CREATE TABLE 语句在其中创立了一个名为 employees_info 的数据表。该数据表蕴含三列:id、name 和 age。 ...

June 1, 2023 · 2 min · jiezi

关于程序员:大数据教程0102常用Linux命令

更多信息请关注WX搜寻GZH:XiaoBaiGPT 大数据相干的 Linux 命令常识和示例在大数据畛域,Linux 是一种罕用的操作系统,它提供了丰盛的命令行工具和性能,用于解决和剖析大数据。本教程将介绍一些罕用的 Linux 命令,并提供应用 Python 语言的示例。以下是一步一步的操作指引。 1. 查看文件内容在解决大数据时,咱们常常须要查看文件的内容,确保数据被正确读取。Linux 提供了 cat 命令,它能够显示文件的内容。 cat filename.txt上述命令将打印出 filename.txt 文件的全部内容。你能够将文件名替换为你理论应用的文件名。 2. 统计文件行数统计大数据文件的行数是十分常见的操作。为此,咱们能够应用 wc 命令。 wc -l filename.txt这将输入 filename.txt 文件的行数。-l 参数批示 wc 命令只统计行数。 3. 过滤文件内容有时候,咱们只对文件中合乎某个条件的行感兴趣。grep 命令能够帮忙咱们过滤文件内容。 grep "keyword" filename.txt上述命令将显示蕴含关键词 "keyword" 的所有行。你能够将 "keyword" 替换为你须要查找的关键词,将 filename.txt 替换为你要操作的文件名。 4. 排序文件内容在大数据处理中,咱们常常须要对数据进行排序,以便进行进一步的剖析。sort 命令能够对文件进行排序。 sort filename.txt上述命令将依照文件的每一行进行排序,并将排序后果打印到规范输入。你能够依据须要应用不同的选项来指定排序程序、疏忽大小写等。 5. 合并文件有时候,咱们须要将多个文件合并成一个文件,以便更不便地解决和剖析数据。cat 命令能够用于合并文件。 cat file1.txt file2.txt > merged.txt上述命令将 file1.txt 和 file2.txt 的内容合并,并将后果输入到 merged.txt 文件中。 6. 宰割文件当解决大文件时,咱们可能须要将文件拆分成多个较小的文件,以便更好地进行并行处理。split 命令能够帮忙咱们实现这一指标。 split -l 1000 filename.txt split_上述命令将 filename.txt 文件宰割成每个文件最多蕴含 1000 行的较小文件。宰割后的文件将以 split_ 结尾,前面 ...

June 1, 2023 · 1 min · jiezi

关于程序员:大数据教程0309闭包和装饰器

更多信息请关注WX搜寻GZH:XiaoBaiGPT 当谈到解决大数据时,正则表达式是一个十分弱小的工具,它能够帮忙咱们在文本中疾速搜寻、匹配和替换模式。在Python中,咱们能够应用re模块来应用正则表达式进行操作。上面是一步一步的操作指南,以及一些示例来阐明如何在Python中应用正则表达式解决大数据。 导入必要的模块首先,咱们须要导入Python中的re模块,它提供了解决正则表达式的函数和办法。能够应用以下代码导入: import re正则表达式的根本语法正则表达式由一系列字符和特殊字符组成,用于定义文本模式。上面是一些常见的正则表达式的根本语法: .: 匹配除了换行符以外的任意字符。*: 匹配前一个字符的0次或多次重复。+: 匹配前一个字符的1次或多次重复。?: 匹配前一个字符的0次或1次反复。\d: 匹配任意一个数字字符。\w: 匹配任意一个字母、数字或下划线字符。[]: 匹配括号中的任意一个字符。^: 匹配行的结尾。$: 匹配行的结尾。正则表达式的常见操作上面是一些常见的正则表达式操作,能够用于解决大数据: 1. 搜寻匹配的模式应用re.search()函数能够搜寻文本中的第一个匹配模式,并返回一个匹配对象。上面是一个示例: text = "Hello, 123 World!"pattern = r"\d+"match = re.search(pattern, text)if match: print("找到匹配的模式:", match.group())else: print("没有找到匹配的模式。")输入后果: 找到匹配的模式: 1232. 查看模式是否存在应用re.match()函数能够查看文本的结尾是否匹配给定的模式,并返回一个匹配对象。上面是一个示例: text = "Hello, World!"pattern = r"Hello"match = re.match(pattern, text)if match: print("模式存在于文本的结尾。")else: print("模式不存在于文本的结尾。")输入后果: 模式存在于文本的结尾。3. 搜寻所有匹配的模式应用re.findall()函数能够搜寻文本中所有匹配的模式,并返回一个列表。上面是一个示例: text = "apple, banana, cherry"pattern = r"\w+"matches = re.findall(pattern, text)print("找到的所有匹配模式:", matches)输入后果: 找到的所有匹配模式: ['apple', 'banana', 'cherry']4. 替换匹配的模式应用re.sub()函数能够将匹配的模式替换为指定的字符串。上面是一个示例: text = "Hello, World!"pattern = r"World"replacement = "Python"new_text = re.sub(pattern, replacement, text)print("替换后的文本:", new_text)输入后果: ...

June 1, 2023 · 1 min · jiezi

关于程序员:通义千问你体验了吗Serverless-一键部署-AIGC-经典场景-5-选-1晒作品赢-Airpods

体验流动链接:https://developer.aliyun.com/topic/aigc_fc 2023 年 5 月 25 日 - 6 月 25 日,函数计算团队全新上线 “Serverless 一键部署 通义千问 预体验、文生图、图生图、图生文、文生文 5 大经典 AI 场景,让您取得通义千问 30 次对话预体验机会,同时简略、高效实现一键部署图像生成、文字生成服务,速成 AIGC 创作家。 双重奖品设置,实现体验场景可得社区 400 积分兑换奖品,还可加入 AI 生成图像较量赢取 Airpods、阿里云定制蓝牙音箱及阿里云定制清雅杯。

June 1, 2023 · 1 min · jiezi

关于程序员:0308大数据教程闭包和装饰器

更多信息请关注WX搜寻GZH:XiaoBaiGPT 当谈到大数据时,闭包和装璜器是Python中十分有用的概念。闭包是指能够拜访其词法作用域中定义的变量的函数对象,而装璜器是用于批改其余函数的性能的可调用对象。上面是对于闭包和装璜器的相干常识以及用Python编写的示例: 闭包闭包是指一个函数对象,它能够拜访其词法作用域中的变量,即便在函数被调用后,这些变量也是可拜访的。闭包在解决大数据时十分有用,因为它们能够将状态或数据保留在外部,而不用依赖于全局变量。 上面是一个简略的示例,演示了如何应用闭包来计算累加和: def outer_function(): count = 0 def inner_function(): nonlocal count count += 1 return count return inner_function# 创立闭包函数closure = outer_function()# 应用闭包函数计算累加和print(closure()) # 输入:1print(closure()) # 输入:2print(closure()) # 输入:3在这个示例中,outer_function 是一个内部函数,它定义了一个局部变量 count。inner_function 是一个外部函数,它能够拜访 outer_function 中的 count 变量。每次调用 closure() 时,count 的值都会减少,并返回新的累加和。 装璜器装璜器是Python中一种非凡的语法,它能够批改其余函数的行为或性能。装璜器通常用于在不批改原始函数代码的状况下增加额定的性能,如日志记录、性能测量或输出验证。 上面是一个示例,演示了如何应用装璜器来测量函数的执行工夫: import timedef measure_time(func): def wrapper(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) end_time = time.time() execution_time = end_time - start_time print(f"函数 {func.__name__} 的执行工夫为 {execution_time} 秒") return result return wrapper# 利用装璜器@measure_timedef my_function(): time.sleep(2) # 模仿函数的执行工夫# 调用被装璜的函数my_function()在这个示例中,measure_time 是一个装璜器函数,它承受一个函数作为参数,并返回一个新的函数 wrapper。wrapper 函数在调用原始函数之前和之后测量工夫,并打印出执行工夫。 ...

June 1, 2023 · 1 min · jiezi

关于程序员:React-state-结构设计原则

React State 结构设计React 中组件 state 状态治理是组件设计中的难点之一,如何设计state的构造。遵循以下准则能够保障state更新不呈现逻辑上的谬误,也能够防止不必要的 state 保护: 相干的状态组合成一个group。当每次触发更新的时候须要更新两个state 则这两个state能够尝试合并成一个state【从单个值类型,变成object 或者 Array 等类型】。import { useState } from 'react';function ComA() { // bad case const [x, setX] = useState<number>(0); const [y, setY] = useState<number>(0); // good case const [position, setPosition] = useState({ x: 0, y: 0 }); return ( <div> <div style={{ position: 'absolute', backgroundColor: 'red', borderRadius: '50%', transform: `translate(${x}px, ${y}px)`, left: -10, top: -10, width: 20, height: 20, }} /> </div> );}避免出现竞态的state, 也就是说两个或多个 state 存在竞态,同一时刻有且仅有一个是真值。如果存在这种问题,则须要思考防止以后这种state的构造, 应用不同的值去辨别抵触的 state,这样就把多个抵触的state 合并成1个state,区别在于value的变动以及其代表的意义。import { useState } from 'react';// bad casefunction ComA() { // 示意编辑状态 const [isWritting, setIsWritting] = useState(true); // 示意是否保留 const [isSave, setIsSave] = useState(fasle); // 其余状态 const [isComplete, setIsComplete] = useState(false); return ( //... );}// 这两头 isWriting 和 isSave 是抵触的。也就是说两个state存在竞态,有且仅有一个是真值。// combine mutilate state ingroup function ComB() { const [status, setStatus] = useState<'writing' | 'save' | 'complete'>('writing'); return ( // ... );}防止多余的state。如果一个 state 能够通过其余 state 的计算得出【.length, 取反异或等】,那么这个 state 就是不须要存在的。export default function Form() { const [firstName, setFirstName] = useState(''); const [lastName, setLastName] = useState(''); const [fullName, setFullName] = useState(''); function handleFirstNameChange(e) { setFirstName(e.target.value); setFullName(e.target.value + ' ' + lastName); } function handleLastNameChange(e) { setLastName(e.target.value); setFullName(firstName + ' ' + e.target.value); } return ( <> <h2>Let’s check you in</h2> <label> First name:{' '} <input value={firstName} onChange={handleFirstNameChange} /> </label> <label> Last name:{' '} <input value={lastName} onChange={handleLastNameChange} /> </label> <p> Your ticket will be issued to: <b>{fullName}</b> </p> </> );}// fullname 齐全能够由 firstName 和 lastName 拼接进去,应用独自的 state 来保留计算结果是多余的。防止反复的状态。如果state存在反复雷同的数据时,这部分反复的数据很难放弃同步更新。【个别是针对数组项的解决,data 保留在一个state 中,而后又应用一个state保留选中或者编辑某项。这时候data中的数据更新,current 可能会被缓存到旧值】。须要防止这种反复。解决办法【防止保留反复的内容,而是保留找到指定数据的id或者索引】。import { useState } from 'react';const defaultData = [ { title: 'Tom', id: 0 }, { title: 'Sam', id: 1 }, { title: 'Dodo', id: 2 }, { title: 'Piker', id: 3 },];function ComA() { const [data, setData] = useState(defaultData); const [current, setCurrent] = useState(data[0]); function handleClick(item) { setCurrent(item); } function handleInput(id, value) { const newData = data.map((item)=>{ if (id === item.id) { return { ...item, title: value }; } return item; }) } return ( <> <ul> { data.map((item) => { return ( <li key={item.id}> <input value={item.title} onChange= {({target})=>{ handleInput(item.id, target.value); }}/> <button onClick={()=>{ handleClick(item) }}>选中</button> </li> ); }) } </ul> <p>以后选中:{current.title}</p> </> );}// 问题: 当点击 “选中” 按钮后, current 保留了以后 item 的一个援用。接着编辑以后项的title,发现并不会同步到<p>中展现。解决办法1:仔细查看代码能看进去,通过 handleInput 执行时,返回了新的对象更新 data 中的 item。只有略微批改一下handleInput的代码,同时更新current即可。 ...

June 1, 2023 · 3 min · jiezi

关于程序员:目标检测RPN-Faster-RCNN-的主干

动动发财的小手,点个赞吧! 在应用 R-CNN 的指标检测中,RPN 是真正的骨干,并且到目前为止已被证实十分无效。它的目标是提出在特定图像中可辨认的多个对象。 这种办法是由 Shaoqing Ren、Kaiming He、Ross Girshick 和 Jian Sun 在一篇十分受欢迎的论文“Faster R-CNN:Towards Real Time Object Detection with Region Proposal Networks”中提出的。这是一个十分风行的算法,引起了很多数据科学家、深度学习和人工智能工程师的关注。它具备微小的利用,例如检测主动驾驶汽车中的物体,帮助不同能力的人并帮忙他们等。 1. 什么是CNN ?CNN 翻译成卷积神经网络,这是一种十分风行的图像分类算法,通常由卷积层、激活函数层、池化(次要是 max_pooling)层组成,以在不失落大量特色的状况下升高维度。对于这篇文章,你应该晓得有一个特色图是由最初一层卷积层生成的。 例如,如果您输出猫图像或狗图像,算法能够告诉您它是狗还是猫。 但它并不止于此,弱小的计算能力带来了微小的提高。 许多预训练模型被开发为间接应用它们,而无需经验因为计算限度而训练模型的苦楚。许多模型也很受欢迎,例如 VGG-16、ResNet 50、DeepNet、ImageNet 的 AlexNet。 对于这篇特地的文章,我特地想谈谈我认为从上述论文中得出的十分聪慧的算法或想法。许多人施行 Faster R-CNN 来辨认对象,但该算法专门钻研了算法如何在已辨认对象四周获取框背地的逻辑和数学。 该算法的开发者将其称为 Region Proposal Networks,缩写为 RPN。 为了为对象所在的区域生成这些所谓的“倡议”,一个小型网络在卷积特色图上滑动,该特色图是最初一个卷积层的输入。 以上是 Faster R-CNN 的架构。 RPN 为对象生成倡议。 RPN 自身具备专门且独特的架构。我想进一步合成RPN架构。 RPN 有一个分类器和一个回归器。作者引入了锚点的概念。 Anchor 是滑动窗口的中心点。对于作为 AlexNet 扩大的 ZF 模型,尺寸为 256-d,对于 VGG-16,尺寸为 512-d。分类器确定具备指标对象的提议的概率。回归对提案的坐标进行回归。对于任何图像,比例和纵横比都是两个重要参数。不晓得的敌人,纵横比=图片的宽度/图片的高度,scale就是图片的大小。开发人员抉择了 3 种比例和 3 种纵横比。因而,每个像素总共可能有 9 个倡议,这就是 k 值的决定形式,对于这种状况,K=9,k 是锚点的数量。对于整个图像,anchors 的数量是 WHK。 ...

May 31, 2023 · 1 min · jiezi

关于程序员:考阿里云大数据分析师需要什么条件考试内容是什么

大数据时代,每个人都能够通过算法找到最适宜的货色,找到本人喜爱的物品,在这背地起到重要作用的就是大数据分析师,他们通过采集数据、剖析数据,精准地锁定须要的人群,从而推送用户须要的货色。 市场变大了,所须要的人才也就变多了,而阿里云作为目标国内最大的云厂商,其旗下的认证在业界内也是具备很大的含金量的,分析师认证是阿里云的中级认证,有口试和试验局部。上面小编简略介绍一下,有须要的人能够在认证大使上,具体理解。 阿里云大数据分析师概述 该认证是面向大数据分析师、BI工程师的专业技能认证,涵盖数据分析相干的常识体系,如大数据基础知识、大数据存储技术、数据分析工具、数据可视化、数据编程、数据品质管制、数据分析项目管理、机器学习等 阿里云大数据分析师考试内容 数据基础知识 大数据存储技术 数据分析工具 数据可视化 数据编程 25%数据品质管制 数据分析项目管理 机器学习 除口试之外,还须要考试验,在官网上试验,实现即可 阿里云大数据分析师考试题型 单选题 70题 每题1分多选题 30题 每题1分 阿里云大数据分析师考试费用 官网的考试费用是1200 ,此外还须要900购买学习视频,然而没有题库,认证大使上有题库,有须要的能够去理解一下。

May 31, 2023 · 1 min · jiezi

关于程序员:如何使用-Pandas-进行数据逆透视和透视操作

Pandas 是 Python 语言中十分风行的数据处理库,其中的逆透视和透视操作在数据重塑方面是相当弱小的。本文将介绍如何应用 Pandas 中的 pd.melt() 和 pd.pivot() 函数进行数据逆透视和透视操作。 首先,咱们来看一个示例数据集: import pandas as pd# 结构测试数据data = {'channel': ['A', 'B', 'C'], 'level': ['L1', 'L2', 'L3'], 'Jan': [100, 200, 300], 'Feb': [150, 250, 350], 'Mar': [200, 300, 400]}da = pd.DataFrame(data)以上代码生成了一个蕴含三个渠道、三个级别和三个月份销售额的数据集。其中,每个月份的销售额都被存储在一个独立的列中,这种表格模式称为宽表格(wide format)。 接下来,咱们将应用 pd.melt() 函数将宽表格转换为长表格(long format),以便于进一步剖析和可视化数据 def melt_data(df): # 应用 pd.melt() 函数进行逆透视列操作 df_melted = pd.melt(df, id_vars=['channel', 'level'], var_name='month', value_name='value') return df_melteddf_melted = melt_data(da)print(df_melted)以上代码中,咱们首先定义了一个名为 melt_data() 的函数,该函数应用 pd.melt() 函数进行逆透视列操作。其中: id_vars:须要保留在后果表格中的列名。var_name:新生成的列名,存储了原始表格中每个月份的列名。value_name:新生成的列名,存储了原始表格中每个月份对应的值。pd.melt() 函数将宽表格转换为长表格后,后果表格的每一行都蕴含了一个渠道、一个级别和一个月份的销售额。 接下来,咱们将应用 pd.pivot() 函数将长表格转换回宽表格。具体而言,咱们将以 channel 和 level 列作为索引,以 month 列为列名,以 value 列为值,从而从新结构出一个与原始数据集雷同的宽表格模式。 ...

May 31, 2023 · 1 min · jiezi

关于程序员:0305大数据教程JavaScript

当谈到大数据处理时,JavaScript 是一种宽泛应用的语言,它具备弱小的前端和后端能力。在本教程中,咱们将介绍一些无关应用 JavaScript 解决大数据的基本知识,并通过应用 Python 语言编写示例代码来阐明。 步骤 1:筹备工作首先,确保您曾经装置了最新版本的 Python。您能够从 Python 官方网站(https://www.python.org)下载和装置它。 步骤 2:装置所需的 Python 包为了应用 Python 解决大数据,咱们将应用 pandas 和 numpy 这两个罕用的数据处理库。关上命令行界面,运行以下命令来装置它们: pip install pandas numpy步骤 3:筹备示例数据在本教程中,咱们将应用一个名为 data.csv 的示例数据集,它蕴含一些虚构的学生信息。创立一个名为 data.csv 的文本文件,并将以下内容复制粘贴到其中: name,age,gradeJohn,21,87Sarah,19,92Michael,20,78Emily,22,95步骤 4:编写 JavaScript 代码创立一个名为 main.js 的 JavaScript 文件,并在其中编写以下代码: // 引入 fs 模块来读取文件const fs = require('fs');// 应用 fs 模块读取 data.csv 文件的内容const data = fs.readFileSync('data.csv', 'utf-8');// 将数据按行宰割成数组const lines = data.split('\n');// 创立一个空数组来存储解析后的学生对象const students = [];// 遍历每一行数据,解析并创立学生对象for (let i = 1; i < lines.length; i++) { const line = lines[i].trim(); if (line !== '') { const [name, age, grade] = line.split(','); students.push({ name, age: parseInt(age), grade: parseInt(grade) }); }}// 打印学生对象数组console.log(students);步骤 5:运行示例代码在命令行界面中,导航到蕴含 main.js 和 data.csv 文件的目录,并运行以下命令来执行示例代码: ...

May 31, 2023 · 1 min · jiezi

关于程序员:0304大数据教程htmlcss基础

当谈到大数据时,HTML和CSS可能并不是最相干的技术。HTML和CSS次要用于构建网页和应用程序的用户界面,而大数据则波及解决和剖析大规模数据集。然而,如果您想展现无关大数据的信息或后果,并在网页上出现,那么HTML和CSS能够用于创立具备吸引力和交互性的数据可视化。 以下是一个根底示例,展现如何应用Python生成一些模仿的大数据,并将其以表格和图表的模式在网页上出现。咱们将应用Flask作为Python的Web框架来创立一个简略的服务器,并应用HTML和CSS来出现数据。 步骤1:装置必要的库 首先,确保您曾经装置了Python和Flask。在命令行中运行以下命令装置Flask: pip install flask步骤2:创立一个Flask利用 创立一个名为app.py的Python文件,并在其中增加以下内容: from flask import Flask, render_templateapp = Flask(__name__)@app.route('/')def index(): data = [ {'name': 'John', 'age': 25, 'country': 'USA'}, {'name': 'Emma', 'age': 32, 'country': 'Canada'}, {'name': 'Li', 'age': 28, 'country': 'China'}, {'name': 'Anna', 'age': 30, 'country': 'Germany'}, ] return render_template('index.html', data=data)if __name__ == '__main__': app.run(debug=True)上述代码创立了一个简略的Flask利用,并定义了一个名为index的路由。在该路由函数中,咱们创立了一个蕴含一些模仿数据的Python列表,并将其作为参数传递给render_template函数。 步骤3:创立HTML模板 创立一个名为index.html的HTML文件,并在其中增加以下内容: <!DOCTYPE html><html><head> <title>Big Data Visualization</title> <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='styles.css') }}"></head><body> <h1>Big Data Visualization</h1> <table> <thead> <tr> <th>Name</th> <th>Age</th> <th>Country</th> </tr> </thead> <tbody> {% for item in data %} <tr> <td>{{ item.name }}</td> <td>{{ item.age }}</td> <td>{{ item.country }}</td> </tr> {% endfor %} </tbody> </table> <div id="chart"></div> <script src="https://cdn.plot.ly/plotly-latest.min.js"></script> <script> var data = [ {x: ['John', 'Emma', 'Li', 'Anna'], y: [25, 32, 28, 30], type: 'bar'} ]; Plotly.newPlot('chart', data); </script></body></html>上述代码 ...

May 31, 2023 · 1 min · jiezi

关于程序员:大数据的多任务编程线程

当波及到大数据处理时,多任务编程和线程是十分有用的工具。在Python中,能够应用threading模块来实现多线程编程。上面是一个对于大数据多任务编程-线程的示例,展现了如何应用线程同时解决多个工作。 步骤1:导入必要的模块首先,咱们须要导入threading模块来创立和治理线程,以及其余必要的模块。 import threadingimport time步骤2:定义工作函数接下来,咱们须要定义要在每个线程中执行的工作函数。这个示例中,咱们假如咱们有一个大数据集,咱们想要对每个数据点执行某种解决。上面是一个简略的工作函数的示例,它只是将输出的数据点打印到控制台,并模仿一些计算。 def process_data(data): # 模仿一些计算 time.sleep(1) # 打印数据点 print("Processing data:", data)步骤3:创立线程并执行工作当初,咱们能够创立线程并为每个线程调配一个工作。在这个示例中,咱们将创立三个线程,并将数据集的不同局部调配给每个线程。 # 数据集data_set = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# 创立线程列表threads = []# 定义每个线程的工作def thread_task(data): for data_point in data: process_data(data_point)# 将数据集划分为不同的局部chunk_size = len(data_set) // 3# 创立线程并分配任务for i in range(3): start = i * chunk_size end = (i + 1) * chunk_size thread = threading.Thread(target=thread_task, args=(data_set[start:end],)) threads.append(thread) thread.start()# 期待所有线程实现for thread in threads: thread.join()在这个示例中,咱们创立了一个线程列表threads,并应用threading.Thread类创立了三个线程。咱们为每个线程指定了工作函数thread_task,并将数据集的不同局部作为参数传递给每个线程。 ...

May 31, 2023 · 1 min · jiezi

关于程序员:大数据面试题目第一部分

您对“大数据”一词有什么理解?当谈到"大数据"时,它是指解决和剖析规模微小、多样化且高速增长的数据集的技术和办法。这些数据通常无奈在传统的数据库系统中轻松存储、解决和剖析。大数据的特点包含数据量大、速度快、多样性高和价值密度低。以下是一些要害概念和技术与大数据相干: 概念/技术阐明分布式文件系统大数据通常存储在分布式文件系统中,例如Hadoop Distributed File System (HDFS)。它将数据分布在多个计算节点上,实现高容量和高可靠性。分布式计算框架分布式计算框架用于解决和剖析大规模数据集,其中最风行的框架是Apache Hadoop和Apache Spark。它们提供了并行计算和容错机制,使得在集群上解决大数据变得可行。数据采集和荡涤数据采集是指从不同的起源(如传感器、网页、日志文件)收集数据的过程。数据荡涤是预处理数据,包含去除反复项、解决缺失值、纠正错误等。数据存储和治理大数据须要高效的数据存储和管理机制。除了分布式文件系统,还能够应用列式存储数据库(如Apache HBase)或NoSQL数据库(如MongoDB)来解决不同类型的数据。数据分析和开掘数据分析和开掘波及从大数据中提取有用的信息和模式。它能够包含统计分析、机器学习、图形剖析等技术,以揭示数据中的暗藏模式和关联。数据可视化数据可视化用于将剖析后果以图表、图形或仪表板的模式出现,使非技术人员可能了解和利用数据。罕用的数据可视化工具包含Tableau、Power BI、Matplotlib等。大数据的五个V是什么?大数据的五个V是指以下五个要害特色,用于形容大数据的特点和挑战: 特色阐明Volume (数据量)大数据的首要特色是其宏大的数据量。传统的数据处理工具和办法往往无奈无效地解决如此大规模的数据集。Velocity (数据速度)大数据的生成和传输速度十分快。数据源可能是实时传感器数据、社交媒体数据或日志数据,须要在短时间内进行解决和剖析。Variety (数据多样性)大数据能够来自各种不同的起源和类型,包含结构化数据(如数据库表格)、半结构化数据(如日志文件)和非结构化数据(如文本、图像、音频等)。Veracity (数据真实性)大数据中的数据品质和真实性可能存在问题。数据源的可靠性和准确性须要思考,以保障在剖析过程中失去可信的后果。Value (数据价值)大数据中的价值密度较低,意味着其中可能蕴含大量乐音和无用信息。在大数据中开掘有价值的信息和洞察力是一个重要的挑战。大数据和Hadoop有什么关系大数据和Hadoop之间存在严密的关系。Hadoop是一个开源的分布式计算框架,专门设计用于解决大规模数据集。以下是大数据和Hadoop之间的关系: 大数据处理:Hadoop是大数据处理的重要工具之一。它提供了分布式文件系统(HDFS)和分布式计算模型(MapReduce),使得可能无效地存储、解决和剖析大规模数据集。可扩展性:Hadoop具备良好的可扩展性,能够通过增加更多的计算节点来解决大规模数据。它可能主动调配和治理数据和计算工作,使得可能在集群上并行处理数据。容错性:Hadoop具备容错性,即便在某个计算节点呈现故障时,也能保证数据的可靠性和计算的实现。Hadoop会主动在其余可用节点上重新分配工作,确保数据处理的连续性。并行计算:Hadoop应用MapReduce模型进行并行计算,将大规模数据集分解成多个小工作,调配给不同的计算节点并行处理。这种并行计算模型能够减速大数据处理的速度。生态系统:Hadoop领有丰盛的生态系统,包含与其严密集成的工具和技术。例如,Hive用于基于Hadoop的数据仓库和SQL查问,HBase用于实时随机读写的NoSQL数据库,Spark用于疾速数据处理和机器学习等。商业利用:因为Hadoop在大数据处理畛域的广泛应用,许多大型企业和组织都在应用Hadoop来解决大数据挑战。因而,相熟和把握Hadoop技术将为你提供在大数据行业中的待业和倒退机会。大数据分析如何有助于减少业务收入?大数据分析能够在多个方面为业务增加收入。以下是一些例子阐明大数据分析如何帮忙减少业务收入: 客户洞察力:通过对大数据的剖析,能够理解客户行为、偏好和需要。这样的洞察力能够帮忙企业定位指标客户群体,并针对其需要进行产品定制和市场推广。例如,一个电子商务公司能够剖析用户购买历史和浏览行为,依据个性化举荐算法向用户展现相干产品,从而进步销售转化率和订单价值。市场趋势剖析:通过大数据分析,企业能够辨认市场的趋势和机会。例如,通过剖析社交媒体数据和舆情剖析,企业能够理解市场上的热门话题和趋势,从而及时调整产品策略和营销流动,以满足消费者的需要,进步产品销量和市场份额。老本优化:大数据分析能够帮忙企业发现外部的老本优化机会。通过剖析供应链数据、生产数据和经营数据,企业能够辨认生产效率低下的环节、资源节约的问题,并采取相应的措施进行优化。例如,一家物流公司能够通过剖析实时交通数据,优化货物配送路线和工夫,从而缩小运输成本和提高效率。欺诈检测和风险管理:大数据分析能够帮忙企业辨认欺诈行为和升高危险。例如,银行能够通过剖析客户交易数据和行为模式,检测异样交易和潜在的欺诈行为,从而及时采取措施防止经济损失。新产品开发:大数据分析能够揭示市场需求和潜在机会,帮忙企业进行新产品的开发和翻新。通过剖析用户反馈、市场趋势和竞争情报,企业能够理解市场上的空白点,并开发出合乎市场需求的翻新产品。这样的新产品无望吸引新客户、减少销售收入。怎么部署大数据解决方案?应遵循什么步骤?部署大数据解决方案须要通过一系列步骤和思考因素。以下是一个一般性的大数据解决方案部署过程,能够作为参考: 确定业务需要和指标:首先,明确大数据解决方案的业务指标和需要。理解企业所面临的具体挑战和问题,明确心愿通过大数据解决方案解决的指标。数据收集和筹备:确定须要收集和剖析的数据类型和起源。设计和施行数据采集机制,确保数据的准确性、完整性和实时性。进行数据荡涤和预处理,解决缺失值、异样值和反复值,以确保数据的品质和一致性。基础架构布局:确定适合的基础架构和环境来反对大数据解决方案。这可能包含抉择适合的硬件设施、网络架构和云计算平台,以满足数据存储、计算和解决的需要。技术抉择和配置:依据业务需要抉择适合的大数据技术和工具。这可能包含抉择适当的分布式文件系统(如Hadoop HDFS)、分布式计算框架(如Apache Spark)、数据库管理系统(如Hive、HBase)和数据可视化工具(如Tableau)等。零碎开发和集成:依据需要和抉择的技术进行零碎开发和集成。这包含设计和开发数据处理和剖析流程、开发定制化的算法和模型,以及将各个组件进行集成和测试。平安和隐衷爱护:确保数据的安全性和隐衷爱护是部署大数据解决方案时的重要思考因素。采取适当的安全措施,如访问控制、数据加密和平安审计,以爱护数据的机密性和完整性。性能优化和调优:对部署的大数据解决方案进行性能优化和调优。通过优化数据存储和解决的办法、调整计算资源的调配,以及应用缓存和并行处理等技术手段,进步零碎的性能和响应速度。监控和保护:建设监控和保护机制,确保大数据解决方案的稳固运行。监控零碎的性能指标、数据品质和异常情况,及时进行故障排查和修复,保障解决方案的可靠性和可用性。继续改良和优化:大数据解决方案是一个继续改良的过程。依据理论运行状况和反馈,一直优化和调整解决方案,以适应业务需要的变动和一直倒退的技术。为什么Hadoop能够用于大数据分析?Hadoop是一个被广泛应用于大数据分析的分布式计算框架,以下是Hadoop在大数据分析中的一些要害特点和劣势: 分布式存储和解决:Hadoop通过分布式文件系统(HDFS)和分布式计算模型(MapReduce)来存储和解决大规模数据。它将数据宰割成多个块并存储在多个计算节点上,通过并行计算来解决数据。这种分布式的存储和解决形式可能提供高容量、高可靠性和高性能的数据存储和解决能力。可扩展性:Hadoop具备良好的可扩展性,能够通过简略地增加更多的计算节点来扩大解决能力。这使得Hadoop能够解决大规模的数据集,应答数据量快速增长的挑战。容错性:Hadoop具备容错性,即便在计算节点呈现故障时,数据的可靠性和计算的连续性也能失去保障。Hadoop会主动将工作重新分配到其余可用节点上,确保数据处理的稳定性和可靠性。并行计算:Hadoop应用MapReduce模型进行并行计算,将大规模数据集分解成多个小工作,并在多个计算节点上并行处理。这种并行计算模型能够减速大数据的处理速度,进步剖析的效率。多样化的数据处理:Hadoop不仅实用于解决结构化数据,还能解决半结构化和非结构化数据,如日志文件、文本数据、图像、音频等。这使得Hadoop在解决各种类型的数据时具备灵活性和宽泛的适用性。生态系统和工具反对:Hadoop领有丰盛的生态系统和工具反对。它提供了一系列与其严密集成的工具和技术,如Hive用于SQL查问和数据仓库、HBase用于实时随机读写的NoSQL数据库、Spark用于疾速数据处理和机器学习等。这些工具和技术能够进一步加强Hadoop在大数据分析中的能力和灵活性。什么是fsck?在大数据畛域,"fsck"通常指的是Hadoop文件系统(HDFS)的校验命令,全称为"Hadoop File System Check"。 HDFS是Hadoop生态系统中用于存储和解决大规模数据的分布式文件系统。因为大数据集的特点,HDFS可能会面临多种问题,如数据损坏、正本失落、块大小不匹配等。"fsck"命令用于查看HDFS的衰弱状态,以确保数据的完整性和一致性。 通过运行"fsck"命令,能够检测和报告HDFS中的问题,例如缺失的块、冗余正本有余、损坏的块等。它会扫描HDFS文件系统,并输入无关文件和块的信息,以及任何发现的谬误或异常情况。依据报告,管理员能够采取适当的措施来修复或复原HDFS中的问题。 "fsck"命令还提供了一些可选参数,能够依据须要执行特定的检查和修复操作。例如,能够应用"-move"参数来挪动损坏的块到可用正本,或应用"-delete"参数来删除无奈修复的损坏块。 NAS(网络附加存储)和HDFS之间的次要区别是什么?NAS(Network Attached Storage)和HDFS(Hadoop Distributed File System)是两种不同的存储架构,具备一些次要区别: 架构:NAS是一种基于网络连接的存储设备,将存储资源通过网络连接提供给客户端。它通常由一个独立的存储设备组成,能够通过规范网络协议(如NFS或CIFS/SMB)拜访数据。而HDFS是Hadoop生态系统中的分布式文件系统,由多个计算节点组成,将数据扩散存储在集群的多个节点上。扩展性:NAS通常是一个中心化的存储设备,存储资源集中在一个设施上。它能够通过扩大存储设备的容量来满足需要,但受限于设施的性能和存储容量。相比之下,HDFS是一个分布式文件系统,能够通过增加更多的计算节点来扩大存储容量和计算能力。它具备更好的可扩展性,实用于存储和解决大规模数据。数据散发和冗余:NAS存储设备将数据存储在独立的存储介质上,并通过网络共享给客户端。它能够提供冗余和备份机制来爱护数据。HDFS通过将数据扩散存储在集群的多个节点上实现数据冗余和备份。它应用数据复制和块级别的冗余机制来确保数据的可靠性和容错性。拜访模式:NAS提供文件级别的拜访,客户端能够间接在文件系统中拜访和操作文件。它实用于共享文件的场景,如文件共享和共享存储。HDFS则提供了一种针对大数据处理的数据拜访模式,通过MapReduce等分布式计算框架以块级别拜访和解决数据。实用场景:NAS实用于小规模存储需要、文件共享、传统应用程序和数据库等场景。它提供了较低的提早和高可用性。而HDFS实用于大规模数据存储和剖析的场景,如大数据处理、数据仓库、数据挖掘等。它能够解决海量的数据,并提供高吞吐量和容错性。须要留神的是,NAS和HDFS并不是互相排挤的,而是针对不同的需要和场景。在理论利用中,能够依据业务需要和存储规模抉择适合的存储架构或联合两者以满足不同的需要。 本文由mdnice多平台公布

May 30, 2023 · 1 min · jiezi

关于程序员:天涯神贴你所不知道的冰冷的经济真相

咫尺神贴:《你所不晓得的寒冷的经济假相》第三节原出处咫尺神贴:《你所不晓得的寒冷的经济假相》 原作者:flp713 原文完整版PDF:https://pan.quark.cn/s/ba1e0577bfd8 上面再来谈谈房市,这是一个牵动很多文盲神经的问题。 要把房市说分明,非得独自开个帖不可,兄弟这里就偷偷懒简略的输理一下房市的脉络以及房市为什么充当货币蓄水池的,文盲们如果看不懂,那也没方法,经济最精彩的是将来,兄弟还有很多货色要写啊,手疼。 第一个问题,中国房市是如何绑架中央经济的? 94年,面对困顿的中央财政,老朱弄了个分税制。何为分税制?就把税收分为国税与地税,这可不是简略的多挂了个牌子的问题——它孕育的粗浅变动至今还在影响着咱们的生存。那么,分税制是怎么切割这个税收蛋糕的?税收大抵分为4块:所得税、关税、流转税、营业税,国税拿走前3块(大抵占总税收的80%以上),中央就只留下可怜的营业税了。这个分税制一下子让地方富得流油,全国80%以上的中央政府立即就变成吃饭财政——所谓吃饭财政,就是每年为吃饭而奋斗的财政。好吧,地方为了安抚中央95年又出台了个政策:中央出让土地时,土地出让金90%归中央所有——文盲们学习这段历史有点领悟没有? 然而,在商品房市场没有启动的期间,中央政府就是卖地也没几个买家啊,吃饭财政还是吃不起饭。与是98年国务院又勾销了福利分房,同时又启动银行按揭——商品房市场正式启动。过后,老朱很分明在分税制下这个商品房盒子关上会有什么结果,所以,还在这个盒子上设置了一道保险——过后设计的住房改革方案是这样的,低端人群用廉租房解决,一般老百姓政府建设经济适用房解决,高端人群才是用商品房解决寓居问题。必须抵赖从98年—2003年,地方投入好几百个亿,大抵解决了700万人口的经济适用房的问题。到了2003年,住建部出台了一个文件:外围是用 “带保障性质的商品房“代替了经济适用房,这下就是把盒子上的保险拆掉了,把所有的人都推向了商品房市场,人为制作了规模微小的刚性需要——房地产一下子就火了起来。 房地产就这样绑架了中央政府,所以,每每地方一调控房市,中央第一反馈就是抵制,能不抵制吗?税收大头你都拿走了,中央就靠点卖地支出来吃饭了,你调控房市不就是调控机关干部职工的饭碗吗——这还真的一点不夸大,每次调控房市,只有房市一低迷,很多经济不发达的中央政府真的连公务员工资都发不进去了。 第二个问题,为什么地方宏观调控房市无用,反而是每一次调控房市后都迎来房价的迅猛上涨? 这个问题文盲们肯定会抢着答复:因为房地产绑架了中央政府,中央抵制所以没用。那你们就又错了,兄弟能够很负责的通知你,中央抵制对宏观调控影响很无限。起因很简略,不仅中央的帽子在地方拎着,更重要的是所有的货币政策金融工具都把握在地方手中,这些才是对房市有决定性影响的砝码。比方,当初房市低迷是什么起因?不仅仅是限购——那只是对那么几十个一线城市有影响,真正对全国绝大多数城市有影响的是限贷! 好了,那么地方宏观调控房市为什么无用呢? 请看上面一组数据。2001年我国货币供应量为15.28万亿,2002年为18.32万亿,2003年为21.92万亿,2004年为25.01万亿,2005年为29.6万亿,2006年为34.55万亿,2007年为40.34万亿,2008年为47.51万亿,2009年为60.62万亿,2010年为72.58万亿。比照期间房价增长趋势,与货币增长趋势惊人统一。 文盲们当初明确了吧,调控房市为什么无用?因为印钞机太厉害了,而且房市又要施展货币蓄水池的作用——一方面超量发行货币,超量发行货币又要赶到房地产这个蓄水池里,一方面又要宏观调控房市——抱薪救火,火不越烧越旺那才是怪事呢。 第三个问题最有意思,既然地方宏观调控房市无用,那为什么地方还要常常保持调控房市呢? 首先,必须得抵赖,管理层肯定比兄弟聪慧10倍,那么,为什么连兄弟都晓得地方宏观调控房市无用,还要保持调控呢?这个起因兄弟推敲了很久才算明确。 宏观调控的深层起因:减少房地产市场政策变数,克制制造业资金过快流进房市。这个问题目前曾经十分重大了,咱们制造业的领头羊比方海尔、联想、首纲等等最近纷纷染指房地产,这在东方是不可设想的。大家都热衷参加财产调配而不是财产发明,大量制造业资金流入房地产,不仅推高了地产泡沫而且使产业空心化越来越重大,产业空心化结果是什么?是经济沙漠化!结果可能比经济硬着陆更可怕。 第四个问题:房地产在经济中表演什么样的角色? 这是一块硬币的2面,倒退房地产益处是显著的,弊病也很显著。益处当然很多,首先是生产的主力,去年全国社会消费额是12万亿,房地产就占了6万亿,半壁江山啊,而后它能够间接带动50几个行业,保8中至多有2个点是房地产奉献的,最初房地产倒退能够带动大量资源性产品9比方铁矿石)的进口,肯定水平上能够缓解目前进出口不均衡的现状。 弊病也很显著。高房价吞噬了老百姓那点可怜的财产,房市火爆的背地是生产更加低迷,过来咱们的生产在GDP 比例好歹也有个35%(美国是70%),去年曾经跌到27%。拉动经济越来越依赖投资和进口,造成经济上的恶性循环。 好了,第二个阶段(2000――2011)的货币蓄水池先就说这么多了,上面,我将谈谈文盲们最感兴趣的将来10年经济发展趋势的问题。哈,给点奖赏吧,兄弟熬夜打字也很不容易啊。 首先,重大鄙视一下论坛中那些打着所谓高手招牌的文盲,他们所谓预测经济走势不仅不靠谱,而且根本都是胡言乱语。当初让老师教你们一个简略的常识,在,要钻研经济首先要钻研政治,要钻研政治首先要学习中央文件,连起码的中央文件都没读过,奢谈什么将来经济走势——什么黄金啊、美元、股市什么的,不是胡扯吗?我抵赖,国内经济局势对咱们的经济走势有影响,然而,决定性的因素,特地是决定咱们经济中长期的因素在咱们外部,在管理层思路里,具体就是在地方各种文件中。 文盲们要跟上进度,上面要讲的十分重要,倡议文盲们至多要学习10遍,因为上面写的每一句话如果你认真思考,重复思考,可能对你都是一次重大时机。 *将来10年见将建设一个零碎的货币蓄水池,事实上只有有足够的货币蓄水池吸纳超发的货币,在印钞机帮忙下,保增长好象还真不是特地艰难的事。 2011年——2020年货币蓄水池: 短期:房市+股市 中期:股市+土地+垄断畛域向民间凋谢(去年有个国务院36条大抵讲的就是这个垄断畛域向民营资本开发,然而这个兄弟很不看好,所以,根本能够忽视这个货币蓄水池) 长期:人民币国际化。 这么写文盲们肯定很难了解,那么老师就略微开展一点,决定将来10年中国经济发展趋势的将是3个改革:股改、汇改与土改。 先来说说股改。 股改有2个方向:全流通与国际版。 何为全流通?过来咱们的股票市场颇具中国特色,一只股票上市分为法人股与流通股。法人股个别要占70%左右,然而却不准上市交易流通。真正流通的只是30%左右的流通股。这个特色导致股市呈现一系列的问题。嗯,上市公司不分成,股民木有法;上市公司造假乱来,股民还是木有法;上市公司操纵股价剪股民羊毛,股民还是木有法;谁让股民只是没有决定权的小股东呢? 插一句:在*做有限责任公司,公司法都是只爱护大股东 (特地是控股股东)权力,小股东被欺侮,法律的潜台词只有2个字:活该!(所以,文盲们要去他人单干弄个公司,请记住,本人所占股份肯定要超过1/3!!!) 回到全流通的话题,这让中国股市真正与国内接轨。貌似东方媒介对此评估很高。然而,兄弟却并不这样乐观。在*体制下,即便全流通你能真正指望收买优质企业资产不受方方面面干预?你能真正指望上市公司独立性增强,不受方方面面影响?举一个例子,比方兄弟发财了,收买了茅台51%的股份,我能冲到茅台公司宣传兄弟负责董事长?哈哈,没有贵州省委书记拍板,没有地方国资委大佬拍板,别说兄弟只是收买茅台51%股份,就是收买茅台100%股份,兄弟也只是一盘菜啊。 所以,全流通外围还是把股市这个货币蓄水池做大,好吧,是把这口锅做大,以一个漂亮的愿景吸纳更多的超发货币。 国际版更不用说了,让国外公司在上市圈钱,还是做大锅的思路。惟一的区别是以前股民听的是上市公司讲故事,今后也能够听听上市公司讲外国故事了。 这里兄弟耐着性子再给文盲们讲讲我对股市的集体认识。股票,兄弟是相对不沾的,有闲钱兄弟宁愿去做慈悲(当然不是捐给郭MM),也坚定不买股票。 文盲们如果要炒股票,请肯定先思考2个问题,第一,股票自身有价值吗?嗯,A股市场股票市盈率个别是50—60左右,守业版就更高了。50倍的市盈率是个什么概念?就是你明天投资100元,大抵要50年后能力发出投资。嗯,50年后100元顶多就是买包卫生纸了,且慢!你能拿到卫生纸还有3个条件,上市公司能活50年( 中国企业平均寿命不到5年);上市公司50年内都象上市报表那样始终赢利(可能吗?上市公司的赢利报表文盲都晓得是怎么回事啊),上市公司始终保持年年分成(猪都要笑了)。别说是50倍就是10倍市盈率也不能去啊——最初归结到一句话,股票自身没有任何价值。 第二个问题,没有价值的股票,我能赢利吗?没有价值炒股理论就是打麻将了,这是一个0和游戏,也就是股民A要赚钱必须是股民B亏钱。其实,如果纯正打打麻将兄弟并不拥护——问题是当初这个麻将桌上还坐着一个庄家或者上市公司,这家伙在咱们只能打13张牌的时候,它要拿15张牌而且还能够无条件看咱们的牌——嗯,如果这样的麻将你还要去玩,兄弟只好大声说一句:把钱给我吧,我肯定比上市公司体现得更好。嗯嗯,我抵赖,我起了邪恶的念头。 上面我要谈谈汇改与土改,与股市这个死气沉沉的大锅相比,后2个更有点意思,特地是土改,兄弟保障,当我把这个货色讲清楚后,文盲们肯定会心潮澎湃的。 更新大略要早晨,明天早晨谈土改,让文盲兴奋一下,好熬夜等我今天的汇改,先天谈捍卫财产的办法,顺便教大家怎么样解读中央文件,预测一些趋势性的货色,可怜的文盲们,大家称心了吧. ...

May 30, 2023 · 1 min · jiezi

关于程序员:使用Python计算数据集中不同维度下的方差和-JS-散度

在数据挖掘畛域中,咱们常常须要掂量不同维度之间的差别或类似度。为了实现这一指标,通常须要应用各种办法来计算两个样本之间的差别。例如,KS 测验和绝对熵等办法能够用于连续变量的比拟。 本文将介绍如何应用 Python 和 Pandas 库来计算数据集中不同维度下的方差和 JS 散度,以评估各维度变动的稳定大小。 代码实现: 首先,定义一个函数 JS_divergence() 来计算两个散布之间的 JS 散度: import scipy.stats as ssdef JS_divergence(p, q, base): M = (p+q)/2 return 0.5 * ss.entropy(p, M, base=base) + 0.5 * ss.entropy(q, M, base=base)接下来,定义一个函数 compute_metrics() 来计算指定维度下的方差和 JS 散度: import pandas as pdimport numpy as npdef compute_metrics(df, dim): var = np.var(df.query(f"dimension == '{dim}'")['pred'] - df.query(f"dimension == '{dim}'")['actual']) js_div = JS_divergence(df.query(f"dimension == '{dim}'")['pred'], df.query(f"dimension == '{dim}'")['actual'], 2) return [var, js_div]而后,咱们将数据存储在一个 Pandas 数据框中,并应用上述函数 compute_metrics() 对每个维度计算方差和 JS 散度: ...

May 30, 2023 · 1 min · jiezi

关于程序员:欧奈儿行业-RPS-排名一图览全貌-20230529

主动复盘 2023-05-30k 线图是最好的老师,点击详情图能够看到行业 20 日 RPS 的排名,最底下子图是行业 rps 走势线 据我察看,成交额超过 100 亿,胜利几率比拟高,个别有买点标注的,走势还能够 公众hao:醉卧梦星河欧奈尔行业RPS排名天天更新追踪主力行业趋势更容易来这里一图看趋势。20 日板块 RPS 排名排名name详情changeamountrps05rps10rps20rps50rps120rps250volume0机器视觉2.05%158.04亿75991009596100662.45万手1减速器0.08%47.61亿3410010080710356.90万手2Chiplet概念0.57%115.91亿98989994940394.11万手3电机0.77%31.00亿496999958584133.55万手4电力行业0.51%270.53亿9581989664623873.25万手5数字水印2.79%74.96亿9997988400457.65万手6动物照明0.36%26.15亿747597808163282.85万手7教育1.39%62.72亿831797867087643.27万手8Web3.03.70%401.36亿9792979910002423.56万手9计算机设备1.98%261.17亿8596968389871129.31万手10PCB0.66%222.26亿9899968678811195.81万手11生物辨认1.94%211.19亿8191958995881195.06万手12电网设施0.98%209.56亿4553957258781848.69万手13机器人概念1.08%493.97亿679494878203483.43万手14算力概念4.72%586.80亿100100940001976.29万手15仪器仪表0.43%75.14亿659294858596362.97万手163D摄像头0.76%41.99亿848793626337350.05万手17近程办公2.48%278.21亿9193939298971537.63万手18生产电子1.03%263.83亿7890927766751457.76万手19工业4.00.47%303.58亿6679928779851850.90万手20光学光电子1.51%143.77亿8088918080781582.10万手21MiniLED0.66%116.29亿7078917474701327.54万手22传感器0.53%178.22亿699091707962770.08万手23智能穿戴1.18%462.03亿8184906971592627.06万手24智能电网1.10%365.57亿6255907568812979.02万手本文由mdnice多平台公布

May 30, 2023 · 1 min · jiezi

关于程序员:Angular-Highcharts教程编程入门自学教程菜鸟教程免费教程分享

教程简介Angular Highcharts是一个基于Angular的开源组件,可在Angular应用程序中提供优雅且功能丰富的高图表可视化,并可与Angular组件无缝配合应用。 Angular Highcharts入门教程 - 从简略的步骤理解Angular Highcharts,从根本到高级概念,包含概述,环境设置,配置语法,折线图,区域图,条形图,柱形图,饼图,散点图,动静图表,组合,3D图表,地图。 教程目录Angular Highcharts教程Angular Highcharts - 概述Angular Highcharts - 环境设置Angular Highcharts - 配置语法Angular Highcharts - 折线图Angular Highcharts - 区域图表Angular Highcharts - 条形图Angular Highcharts - 柱形图Angular Highcharts - 饼图Angular Highcharts - 散点图Angular Highcharts - 动静图表Angular Highcharts - 组合Angular Highcharts - 3D图表Angular Highcharts - 地图Angular Highcharts - 有用的资源

May 29, 2023 · 1 min · jiezi

关于程序员:R语言踩坑丨浮点数间慎用比较

浮点数间慎用比拟在R语言中,输出一个简略的计算题:0.3-0.7+0.4,失去的后果是5.551115e-17,而随机叫一个小学二年级的同学来口算,这个题答案等于0,然而R语言不这么认为! > 0.3-0.7+0.4[1] 5.551115e-17> 0.3-0.7+0.4 == 0[1] FALSE以上就是一个典型的浮点数计算精确性有余案例,上述情况呈现的起因是浮点数计算的精确性问题。 在计算机中,浮点数的存储和计算都有肯定的误差,因而在进行浮点数计算时,可能会呈现一些意外的后果。 谬误起因在本例中,0.3、0.7 和 0.4 都是浮点数,它们在计算机中的存储和精度都有肯定误差。 当计算 0.3-0.7+0.4 时,因为浮点数计算的误差,后果并不是准确的 0,而是一个十分靠近 0 的数,即 5.551115e-17。 这种浮点数计算误差可能会导致比拟操作的后果不精确。在本例中,因为 5.551115e-17 不等于 0,因而比拟操作的后果为 FALSE。 这种误差可能会对程序的正确性产生影响,因而应该尽量避免应用浮点数进行比拟。 本文由mdnice多平台公布

May 29, 2023 · 1 min · jiezi

关于程序员:ThreeJS-入门如何渲染出第一个3D图形

ThreeJS 入门如何渲染出第一个3D图形什么是ThreeJS?Three.js 是一个用于在Web浏览器上创立和显示交互式 3D 图形的 JavaScript 库。简化了在 Web 上创立基于 WebGL 的 3D 图形的过程。WebGL 是一种在 Web 浏览器中实现硬件加速的 3D 图形渲染的技术。Three.js 通过封装简单的WebGL API,提供了一个更简略的接口,使得咱们可能轻松地在浏览器中创立 3D 场景、模型、动画和交互成果。 渲染一个 3D 图形须要哪些步骤?要渲染第一个 3D 图形,须要以下几个步骤: 创立场景 scene,应用 THREE.Scene 进行创立。创立相机 camera,应用 THREE.PerspectiveCamera 进行创立。创立渲染对象(以立方体为例),并增加到场景 scene 中。创立渲染器 renderer,并进行场景渲染,应用THREE.WebGLRenderer 进行创立。调用渲染器 render 函数将场景 scene 和相机 camera 作为参数进行渲染。// 插入一个跳转地址,不便查看残缺代码 创立场景在 Three.js 中,应用 THREE.Scene 来创立 scene(场景),scene蕴含了所有 3D 对象、光源和相机的容器。它是构建和组织 3D 场景的根底。 场景(THREE.Scene)类代表了一个虚构的 3D 空间,其中能够蕴含各种对象,例如几何体、模型、灯光等。通过将对象增加到场景中,能够在渲染过程中将它们出现到屏幕上。 创立一个简略的场景: import * as THREE from 'three';const scene = new THREE.Scene();实例化后的 scene 对象提供一些列的API来对其中的 3D 对象进行治理,如: scene.add(object: Object3D) 、scene.remove(object: Object3D) , scene.traverse(callback: Function) 。还提供对 scene 进行设置和操作的 API 本文临时未应用到 scene 中其余的API,后续独自写篇文章进行介绍。 ...

May 29, 2023 · 2 min · jiezi

关于程序员:欧奈尔行业排名天天更新

主动复盘 2023-05-28公众hao:醉卧梦星河欧奈尔行业RPS排名天天更新追踪主力行业趋势更容易来这里一图看趋势。20 日板块 RPS 排名排名name详情changeamountrps05rps10rps20rps50rps120rps250volume0电机0.89%34.15亿3499100978686146.73万手1减速器0.27%63.33亿10010010090800540.53万手2仪器仪表0.67%70.16亿979899868599422.67万手3电网设施-1.14%214.65亿7291998261822002.11万手4工业4.00.97%326.54亿9294989182872141.03万手5船舶制作0.90%73.51亿05298999598494.44万手6电力行业-0.28%224.71亿9966979752573441.53万手7智能电网-0.13%328.15亿5386978167842721.96万手8机器视觉2.02%154.96亿88100979598100827.15万手9通用设备0.11%210.73亿9390968050811595.22万手10TOPCon电池-1.19%144.46亿100979644190702.39万手11机器人概念0.85%437.08亿899295878603496.41万手12动物照明1.32%27.50亿959495928467278.44万手13汽车零部件1.45%177.52亿9676944730491300.11万手14专用设备0.02%261.47亿9194947363801818.80万手15充电桩0.01%485.47亿4777948267843148.28万手16传感器0.76%157.16亿899693807763714.92万手17特高压-0.47%147.51亿8485938468741379.88万手18电源设施-1.25%68.07亿637992956499591.70万手19工业母机1.36%101.69亿969692937788712.20万手20风电设施-1.58%38.74亿667291602846210.58万手21专精特新0.41%766.86亿9292916863693547.79万手22抽水蓄能-1.10%75.60亿9771918941561146.33万手23燃气-0.64%28.02亿825390773048307.15万手24汽车热治理0.99%81.30亿70849091790897.13万手本文由mdnice多平台公布

May 28, 2023 · 1 min · jiezi

关于程序员:Docker学习笔记丨可以快速移植重复使用的生信软件安装解决方案助力解决软件安装难题

生信入门Docker学习笔记Docker是一种轻量级的容器化技术,它能够让开发者将应用程序及其依赖打包成一个可移植的容器,从而实现疾速部署、可重复性和高度可移植性,Docker的核心技术是容器化,它通过将应用程序和其依赖打包到一个容器中,来实现应用程序的运行。 明天分享的学习笔记是docker入门操作,帮您解决生信软件装置的难题,如果感觉有用欢送转发分享。 Docker的劣势当今软件系统的复杂性越来越高,配置环境也越来越艰难。应用Docker能够解决这些问题,它提供了一个轻量级的容器化解决方案,能够让开发人员轻松地构建、部署和管理应用程序。应用Docker能够大大简化软件配置和部署的流程,进步开发效率和应用程序的可移植性。 Docker的劣势包含: 轻量级:Docker容器十分轻量级,能够在几秒钟内启动和敞开,与虚拟机相比,Docker容器的启动速度要快得多。可移植性:Docker容器能够在任何反对Docker的零碎上运行,无需放心软件依赖或配置问题。可重复性:应用Docker能够确保应用程序在不同环境中的行为一致性,从而进步应用程序的可靠性。易于治理:应用Docker能够轻松地治理多个应用程序和服务,从而进步管理效率。生物信息学与Docker的分割生物信息学是一个数据密集型的畛域,须要应用大量的软件工具和库来解决和剖析数据。应用Docker能够轻松地配置和治理这些软件工具和库,使其更加牢靠和可移植。例如,能够创立一个蕴含所有必须软件工具和库的Docker镜像,而后在任何反对Docker的零碎上运行该镜像,而不用放心软件依赖或配置问题。 Docker的长处在生物信息学畛域中尤为突出,因为生物信息学须要解决大量的数据和简单的计算工作。应用Docker能够轻松地部署和治理生物信息学软件工具和库,进步数据处理和剖析的效率和可靠性。 Linux零碎中应用Docker在Linux零碎中应用Docker非常简单。首先,您须要装置Docker,您能够通过以下命令在Ubuntu上装置Docker: sudo apt-get updatesudo apt-get install docker.io装置实现后,您能够应用以下命令查看Docker是否已正确装置: sudo docker version如果您看到了Docker的版本信息,那么祝贺您,您已胜利装置Docker。 罕用的Docker命令及解释以下是一些罕用的Docker命令及其解释: docker run:启动一个新的容器。docker ps:列出所有正在运行的容器。docker stop:进行一个正在运行的容器。docker rm:删除一个容器。docker images:列出所有本地镜像。docker pull:从Docker Hub下载一个镜像。docker push:将一个本地镜像上传到Docker Hub。创立与打包镜像的办法创立一个Docker镜像的最简略办法是应用Dockerfile。Dockerfile是一个文本文件,其中蕴含一系列指令,用于构建Docker镜像。以下是一个简略的Dockerfile示例: FROM ubuntu:latestRUN apt-get update && apt-get install -y nginxCMD ["nginx", "-g", "daemon off;"]应用以下命令来构建镜像: docker build -t my-nginx-image .此命令将应用当前目录中的Dockerfile构建一个名为“my-nginx-image”的镜像。最初的“.”示意当前目录。 打包镜像也很简略。您能够应用以下命令将镜像打包成一个.tar文件: docker save my-nginx-image -o my-nginx-image.tar此命令将名为“my-nginx-image”的镜像打包成一个名为“my-nginx-image.tar”的文件。 以上是Docker的简介、如何在Linux零碎中应用Docker、罕用的Docker命令及解释以及创立与打包镜像的办法。 如何用Docker装置R语言要在Linux零碎中装置R语言,能够应用Docker来实现。以下是装置R语言的步骤: 装置Docker:在Linux零碎上装置Docker,具体步骤能够参考Docker官网文档。搜寻R语言镜像:应用Docker命令搜寻R语言的镜像,例如: docker search r-base下载R语言镜像:应用Docker命令下载R语言的镜像,例如: docker pull r-base运行R语言容器:应用Docker命令运行R语言容器,例如: docker run -it r-base运行该命令后,将进入R语言的命令行界面,能够在该界面中执行R语言的命令。 通过上述步骤,能够轻松地在Linux零碎中装置和运行R语言,而无需放心软件依赖或配置问题。 实战流程演示假如我想基于R语言初始版本进行搭建软件环境,首先后盾启动容器: docker run -itd r-base:4.0.0而后应用exec命令进入容器,此时界面显示一个新的零碎,相当于虚构出了一块儿独立空间,在这里操作不会受内部原来宿主机的影响: ...

May 28, 2023 · 1 min · jiezi

关于程序员:分布式事务的21种武器-7

在分布式系统中,事务的解决散布在不同组件、服务中,因而分布式事务的ACID保障面临着一些非凡难点。本系列文章介绍了21种分布式事务设计模式,并剖析其实现原理和优缺点,在面对具体分布式事务问题时,能够抉择适合的模式进行解决。原文: Exploring Solutions for Distributed Transactions (7) 在不同业务场景下,能够有不同的解决方案,常见办法有: 阻塞重试(Blocking Retry)二阶段和三阶段提交(Two-Phase Commit (2PC) and Three-Phase Commit (3PC))基于后盾队列的异步解决(Using Queues to Process Asynchronously in the Background)TCC弥补(TCC Compensation Matters)本地音讯表(异步保障)/发件箱模式(Local Message Table (Asynchronously Ensured)/Outbox Pattern)MQ事务(MQ Transaction)Saga模式(Saga Pattern)事件驱动(Event Sourcing)命令查问职责拆散(Command Query Responsibility Segregation, CQRS)原子提交(Atomic Commitment)并行提交(Parallel Commits)事务复制(Transactional Replication)一致性算法(Consensus Algorithms)工夫戳排序(Timestamp Ordering)乐观并发管制(Optimistic Concurrency Control)拜占庭容错(Byzantine Fault Tolerance, BFT)分布式锁(Distributed Locking)分片(Sharding)多版本并发管制(Multi-Version Concurrency Control, MVCC)分布式快照(Distributed Snapshots)主从复制(Leader-Follower Replication)本文将介绍MVCC、分布式快照以及主从复制三种模式。 19. 多版本并发管制(Multi-Version Concurrency Control, MVCC) 容许多个事务并发拜访雷同的数据,而不会互相烦扰。创立同一数据对象的多个版本,并容许事务同时拜访不同的版本。通过这种形式,事务能够在非阻塞的状况下读取数据,并且能够在不产生抵触或不统一的状况下执行写操作。波及如下步骤: 当事务想要读写数据时,首先查看零碎事务表,以确定是否能够进行。如果事务能够持续,则为其调配惟一的事务ID。当事务写入数据对象时,创立该对象的新版本,并且事务ID与该版本相关联,新版本被增加到零碎版本表中。当事务读取数据对象时,会在版本表中搜寻该对象在事务开始之前创立的最新版本,并从对象的那个版本读取数据。数据对象的每个版本都与事务ID、开始工夫和完结工夫相关联。开始工夫为版本创立的工夫,完结工夫为版本被更新版本取代的工夫。当事务提交时,完结工夫被记录在事务表中。与该事务关联的所有版本的数据对象都被标记为已提交,并且完结工夫设置为事务的完结工夫。事务终止时,其完结工夫记录在事务表中。与该事务关联的所有版本的数据对象都被标记为终止,并且完结工夫设置为事务的完结工夫。当新的事务开始时,只能拜访在它开始工夫之前曾经提交的数据对象,确保事务只读取统一的数据。import sqlite3import time# Connect to the databaseconn = sqlite3.connect('example.db')# Create a table for testing MVCCconn.execute('''CREATE TABLE test ( id INTEGER PRIMARY KEY, name TEXT, value INTEGER, version INTEGER )''')# Insert some initial dataconn.execute("INSERT INTO test (name, value, version) VALUES ('foo', 42, 1)")# Start a transactiontx = conn.begin()# Read the current value of 'foo'cursor = tx.execute("SELECT value, version FROM test WHERE name = 'foo'")value, version = cursor.fetchone()# Increment the value of 'foo'new_value = value + 1# Insert a new version of the datanew_version = version + 1tx.execute("INSERT INTO test (name, value, version) VALUES ('foo', ?, ?)", (new_value, new_version))# Update the version of the original datatx.execute("UPDATE test SET version = ? WHERE name = 'foo' AND version = ?", (new_version, version))# Commit the transactiontx.commit()# Print the final value of 'foo'cursor = conn.execute("SELECT value FROM test WHERE name = 'foo'")value = cursor.fetchone()[0]print(f"Final value of 'foo': {value}")# Close the database connectionconn.close()示例代码 ...

May 28, 2023 · 3 min · jiezi

关于程序员:ChatGPT-官方-App-在更多地区上线|Google-开放-AI-搜索|思否周刊

40 S 新闻速递ChatGPT 官网 App 在更多地区上线,含欧洲、韩国等Google前 CEO 称 AI 将对人类形成危险Google 凋谢 AI 搜寻特斯拉在欧洲因涉嫌数据泄露而面临考察亚马逊中国回应敞开利用商店:不会影响业务经营AI 图像编辑技术 DragGAN:轻松实现 P 图,拖拽即实现微软公布 Windows Copilot,新版 Win11 无缝集成 GPT-4Windows Terminal 1.18公布PostgreSQL 16公布首个Beta版本Apache Druid 26.0.0 公布nginx 1.25.0 主线版公布cURL 8.1 公布Docker v24.0.1 公布行业资讯ChatGPT 官网 App 在更多地区上线,含欧洲、韩国等据 5 月 25 日的音讯,OpenAI 发表其官网聊天机器人利用 ChatGPT App 曾经在更多国家全面上线。首次推出时,该利用只在美国市场可供下载,但当初用户在欧洲、韩国、新西兰等地也能够通过 App Store 获取到这款利用。 Google 前 CEO 称 AI 将对人类形成危险最近,前 Google CEO Eric Schmidt 表白了对人工智能(AI)的一种「生存危险」的担心,称其可能会导致许多人「受到挫伤或死亡」。然而,他认为以后的威逼并不是很重大。他还认为,在不久的未来,AI 能够帮忙咱们发现软件安全漏洞或者开翻新的生物学概念。作为一位资深高管,他指出咱们必须确保这些零碎不会被歹意利用。同时,他认为美国还没有做好筹备来应答这项技术的影响,并且目前还没有打算成立专门的 AI 监管部门。然而,最近几个月来,美国政府始终在踊跃公布相干的 AI 权力法案并制订风险管理框架。 Google 凋谢 AI 搜寻最新消息显示,谷歌(Google)曾经开始向早前注册候补名单的用户凋谢搜寻实验室的拜访权限。这项由人工智能(AI)驱动的全新搜索引擎旨在提供一种全新的搜寻体验。谷歌官网公布的指南指出,这种生成式 AI 反对的搜寻体验将使用户可能更快地了解搜寻主题、发现新观点和见解,并更轻松地实现工作。当初,用户无需本人提出一系列问题并拼凑信息,搜索引擎可能为您解决一些沉重的工作。AI 可能疾速提供特定问题的提醒,并帮忙您发现一系列产品以及购物时须要思考的事项。 ...

May 28, 2023 · 1 min · jiezi

关于程序员:bcftools学习笔记丨软件简介安装方式使用方法核心功能参数解释等一文速览

bcftools学习笔记软件简介bcftools 是一个用于操作和解决 VCF/BCF 文件的软件工具集。它是 samtools 工具集的一部分,用于比照对后的 BAM 文件进行 SNP 和 Indel 的检测。bcftools 能够用于 SNP 和 Indel 的过滤、正文、统计和可视化等操作。 装置形式bcftools 能够通过以下两种形式进行装置: 1. 通过源代码装置从 bcftools 的官方网站 http://www.htslib.org/download/ 下载最新的源代码包。解压后进入解压后的目录,运行以下命令进行编译和装置: ./configuremakesudo make install2. 应用包管理器装置bcftools 能够通过包管理器进行装置,如应用 Ubuntu 零碎能够通过以下命令进行装置: sudo apt-get install bcftools应用办法1. 查看 VCF/BCF 文件信息bcftools view 命令能够用于查看 VCF/BCF 文件的信息,如查看文件头信息: bcftools view -h file.vcf查看文件中的 SNP 和 Indel 信息: bcftools view -v snps file.vcfbcftools view -v indels file.vcf2. 过滤 SNP 和 Indelbcftools filter 命令能够用于过滤 SNP 和 Indel,如过滤掉 quality 值低于 20 的 SNP: ...

May 27, 2023 · 2 min · jiezi

关于程序员:分布式事务的21种武器-6

在分布式系统中,事务的解决散布在不同组件、服务中,因而分布式事务的ACID保障面临着一些非凡难点。本系列文章介绍了21种分布式事务设计模式,并剖析其实现原理和优缺点,在面对具体分布式事务问题时,能够抉择适合的模式进行解决。原文: Exploring Solutions for Distributed Transactions (6) 在不同业务场景下,能够有不同的解决方案,常见办法有: 阻塞重试(Blocking Retry)二阶段和三阶段提交(Two-Phase Commit (2PC) and Three-Phase Commit (3PC))基于后盾队列的异步解决(Using Queues to Process Asynchronously in the Background)TCC弥补(TCC Compensation Matters)本地音讯表(异步保障)/发件箱模式(Local Message Table (Asynchronously Ensured)/Outbox Pattern)MQ事务(MQ Transaction)Saga模式(Saga Pattern)事件驱动(Event Sourcing)命令查问职责拆散(Command Query Responsibility Segregation, CQRS)原子提交(Atomic Commitment)并行提交(Parallel Commits)事务复制(Transactional Replication)一致性算法(Consensus Algorithms)工夫戳排序(Timestamp Ordering)乐观并发管制(Optimistic Concurrency Control)拜占庭容错(Byzantine Fault Tolerance, BFT)分布式锁(Distributed Locking)分片(Sharding)多版本并发管制(Multi-Version Concurrency Control, MVCC)分布式快照(Distributed Snapshots)主从复制(Leader-Follower Replication)本文将介绍拜占庭容错、分布式锁以及分片三种模式。 16. 拜占庭容错(Byzantine Fault Tolerance, BFT)一种容错机制,容许分布式系统在存在故障节点的状况下失常运行。节点之间互相通信从而就决策达成共识,即便存在某些歹意或谬误节点,也能够工作。波及如下步骤: 零碎中每个节点向所有其余节点发送音讯,其中蕴含倡议的决策或值的信息。每个节点查看接管到的音讯的有效性。如果接管到来自故障节点或攻击者的音讯,则疏忽该音讯。每个节点收集接管到的所有无效音讯,并创立零碎视图(view)。视图是一组特定节点的无效音讯,每个节点与零碎中的所有其余节点共享视图。每个节点查看从其余节点接管到的视图的有效性。如果接管到有效视图,则疏忽该视图。每个节点创立蕴含其零碎视图的证书(certificate),并与所有其余节点共享。证书是通过签名的申明,用于证实视图的有效性。每个节点查看从其余节点收到的证书的有效性。如果收到有效证书,应该疏忽该证书。一旦节点验证了收到的所有证书,就能够对提议的决策或值达成共识。每个节点依据收到的证书对雷同的值达成共识。一旦达成共识,每个节点执行已达成统一的决策。from typing import List, Dict, Tupleclass Message: def __init__(self, sender: int, content: str): self.sender = sender self.content = contentclass ByzantineNode: def __init__(self, id: int, network: Dict[int, List[Message]], threshold: int): self.id = id self.network = network self.threshold = threshold self.decisions = {} def send_message(self, receiver: int, content: str): message = Message(self.id, content) self.network[receiver].append(message) def receive_messages(self) -> List[Message]: messages = self.network[self.id] self.network[self.id] = [] return messages def generate_vote(self, messages: List[Message]) -> bool: count = 0 for message in messages: if message.content == 'True': count += 1 elif message.content == 'False': count -= 1 return count >= self.threshold def run_bft(self, decision_content: str): # Phase 1: Broadcast proposal to all nodes proposal = Message(self.id, decision_content) for node_id in self.network: self.send_message(node_id, str(proposal)) # Phase 2: Receive messages and generate votes messages = self.receive_messages() vote = self.generate_vote(messages) # Phase 3: Broadcast decision to all nodes decision = Message(self.id, str(vote)) for node_id in self.network: self.send_message(node_id, str(decision)) # Phase 4: Receive decisions and count votes decisions = [m.content for m in self.receive_messages()] count_true = decisions.count('True') count_false = decisions.count('False') # Record decision if it meets threshold, else record failure if count_true >= self.threshold: self.decisions[decision_content] = True elif count_false >= self.threshold: self.decisions[decision_content] = False else: self.decisions[decision_content] = None示例代码 ...

May 27, 2023 · 3 min · jiezi

关于程序员:使用这些方法让你的-Python-并发任务执行得更好

动动发财的小手,点个赞吧! 问题始终以来,Python的多线程性能因为GIL而始终没有达到预期。 所以从 3.4 版本开始,Python 引入了 asyncio 包,通过并发的形式并发执行 IO-bound 工作。通过屡次迭代,asyncio API 的成果十分好,并发工作的性能相比多线程版本有了很大的晋升。 然而,程序员在应用asyncio时还是会犯很多谬误: 一个谬误如下图所示,间接应用await协程办法,将对并发工作的调用从异步变为同步,最终失去并发个性。 async def main(): result_1 = await some_coro("name-1") result_2 = await some_coro("name-2")另一个谬误如下图所示,尽管程序员意识到他须要应用create_task创立一个工作在后盾执行。而上面这种一个一个期待工作的形式,将不同时序的工作变成了有序的期待。 async def main(): task_1 = asyncio.create_task(some_coro("name-1")) task_2 = asyncio.create_task(some_coro("name-2")) result_1 = await task_1 result_2 = await task_2此代码将期待 task_1 先实现,而不论 task_2 是否先实现。 什么是并发工作执行?那么,什么是真正的并发工作呢?咱们用一张图来阐明: 如图所示,一个并发流程应该由两局部组成:启动后台任务,将后台任务重新加入主函数,并获取后果。 大多数读者曾经晓得如何应用 create_task 启动后台任务。明天,我将介绍几种期待后台任务实现的办法以及每种办法的最佳实际。 开始在开始介绍明天的配角之前,咱们须要筹备一个示例async办法来模仿IO绑定的办法调用,以及一个自定义的AsyncException,能够用来在测试抛出异样时敌对地提醒异样信息: from random import random, randintimport asyncioclass AsyncException(Exception): def __init__(self, message, *args, **kwargs): self.message = message super(*args, **kwargs) def __str__(self): return self.messageasync def some_coro(name): print(f"Coroutine {name} begin to run") value = random() delay = randint(1, 4) await asyncio.sleep(delay) if value > 0.5: raise AsyncException(f"Something bad happen after delay {delay} second(s)") print(f"Coro {name} is Done. with delay {delay} second(s)") return value并发执行办法比拟1. asyncio.gatherasyncio.gather 可用于启动一组后台任务,期待它们实现执行,并获取后果列表: ...

May 26, 2023 · 3 min · jiezi

关于程序员:Python语法编程11初识Python

Python简介Python是一种高级编程语言,它诞生于上世纪90年代初期,其创造者是Guido van Rossum。 Python在开发时十分重视代码的可读性和简洁性,同时也反对面向对象和函数式编程。Python语言并不简单,老手很容易把握,因而它是一种十分风行的编程语言。 Python历史Python的命名灵感来自Guido van Rossum喜爱的一种电视悲剧《Monty Python's Flying Circus》。 Python的最后版本于1991年公布。Python语言在过后很快受到了开发者的欢送,遵循Python代码标准的开发者很容易进行编码,所以它成为了程序员的首选语言之一。到了2000年,随着Python2的公布,Python的使用量大大增加,逐步成为了开发社区中最受欢迎的语言之一。Python3于2008年公布,对Python2进行了重构,比Python2性能更弱小且容错性更高,受到了很多开发者的青眼。 Python长处易学习和易写Python语言对老手来说十分敌对,它的语法十分简洁明了。它的代码看起来更像是英语句子而不是艰涩难懂的编程语言。 因而,对于没有编程教训的人来说,Python语言更容易学习,了解和把握编程思维。 案例:Python的易用性使得Python成为数据科学家和业余爱好者的热门语言之一。像NASA和谷歌等大型技术公司都应用Python作为其开发和钻研的重要语言。 跨平台兼容性强Python语言能够在不同的操作系统中运行,比方Windows、Linux、MacOS等。 能够通过装置Python解释器来解释代码文件,因而程序能够在多个零碎上运行。这种跨平台性质能够显著地缩小开发周期,因为你不须要为不同的平台编写多个代码版本,这也能够进步代码的可重用性。 丰盛的库和框架Python领有宽泛的第三方库,如numpy、pandas、matplotlib、scikit-learn等,反对各种多样的工作,如数据分析、图像处理和机器学习等。这些库使得Python更加弱小和高效,缩短了开发人员的开发工夫和老本。 案例:pandas是一个开源的Python库,宽泛用于数据分析和数据处理场景。Pandas是一个功能强大的数据结构,用于解决和剖析数据,是进行数据分析的重要工具。 可扩展性强Python语言能够与其余编程语言进行混合编程。Python语言与C语言的联合能够疾速实现性能弱小的代码,并且Python语言还提供了C语言的接口以扩大其性能, 例如Cython。 案例:许多游戏引擎,例如Unreal Engine 4,都应用Python和C++编写。 Python被宽泛用于游戏脚本编写,因而游戏开发者能够应用Python为其游戏减少新性能。 社区反对Python社区十分弱小并且沉闷,并且领有大量的用户和开源我的项目。这为Python开发者提供了资源和反对以及一个平台,在这个平台上,他们能够分享代码、提出问题、探讨技术并与社区进行互动交换。因而,Python社区的存在让开发者的工作更易上手、高效。 案例:Python社区为Python用户和开发者提供了一个丰盛的资源和平台。像Anaconda这样的Python平台,提供了许多可用的Python开源和生态系统,这些资源使得Python成为数据科学家和开发人员的热门选项。 Python毛病运行速度较慢Python并不被认为是一种运行速度十分快的语言, 这与Python是一种解释型语言无关。尽管Python的解释器在很大水平上优化了Python的速度,但它依然无奈与低级语言(如C和C++)相比。因而,在做大量的计算和简单的我的项目时,Python的运行速度可能会稍慢。 案例:对于须要解决大量数据的利用场景(如高频交易、量化交易),Python稍慢的运行速度可能会影响算法的实时性能。在这种状况下,应用C/C++或其余低级语言可能是更好的抉择。 内存应用较大Python语言的解释器将代码转换为中间代码,并在运行时解释这些代码。这意味着在运行Python程序时,须要占用比其余语言更大的内存空间。 因而,如果须要解决大量数据,Python可能会耗费大量的内存,这可能会导致性能问题。 案例:在解决大型图像或视频文件等内存密集型应用程序时,Python的内存耗费可能会导致机器解体。 在这种状况下,开发者可能须要思考应用其余语言或技术来解决这个问题。 不反对动态类型查看Python是一种弱类型语言,这意味着它没有强制执行变量的类型。变量的类型是动静确定的,并且能够在变量生命周期内扭转类型。这可能导致程序在运行期间呈现类型谬误。因而,开发者可能须要破费额定的工夫来确保代码的正确性。 案例:通过应用Python编写简单的程序时,开发者可能须要特地留神变量的类型,以避免出现类型谬误,这可能会缩短开发工夫。 Python应用领域Python能够利用于多个畛域,包含Web开发、数据迷信、人工智能和游戏开发等。 数据迷信Python是数据科学家应用的首选编程语言之一。通过应用Python数据分析库(如pandas和numpy)和数据可视化库(如Matplotlib和Seaborn),数据科学家能够清理、解决、剖析和可视化大量数据。Python也为机器学习和深度学习提供了许多库和框架,例如scikit-learn、Keras和TensorFlow,使得应用Python进行机器学习和深度学习非常容易。 案例:假如一个银行须要剖析和解决大量的客户数据。通过应用Python的数据分析库(如pandas)和可视化库(如Matplotlib),数据科学家能够清理、解决和可视化数据,以获取无关银行客户行为的有价值信息。 Web开发Python能够用于开发Web应用程序。Django和Flask都是基于Python的Web框架,提供了许多性能,例如身份验证、数据库拜访、模板解决和部署。通过这些框架,开发者能够应用Python编写简单Web应用程序。 案例:YouTube应用Python Django框架开发其视频管理系统,该零碎负责视频内容的上传、删除和分类,同时提供了各种剖析和报告性能。 游戏开发尽管Python不是最风行的游戏开发语言,然而它依然被许多游戏开发团队用于开发游戏。Python能够用作游戏中的脚本,负责实现一些逻辑和性能。此外,Python还能够与其余语言(如C ++)联合应用,以进步游戏的性能。 案例:Eve Online是一个十分风行的网游,其中大部分的游戏逻辑是通过Python代码实现的。Python作为Eve Online游戏的脚本语言,使得在游戏中实现简单的逻辑变得非常简单。 人工智能Python在人工智能畛域也十分风行。Python提供了许多风行的机器学习和深度学习库和框架,例如Scikit-learn、Keras和TensorFlow等。Python还提供了一种简略而弱小的形式来解决和剖析自然语言,通过它,能够对文本和语音数据进行情感剖析、命名实体辨认和自然语言解决等操作。 案例:人工智能公司OpenAI将Python作为其首选编程语言,以构建包含语言模型和强化学习模型在内的先进人工智能零碎。 总结Python是一种风行的编程语言,其最大的长处是其易用性,跨平台兼容性和丰盛的库和框架。然而,Python也有一些毛病,例如运行速度较慢,内存应用较大以及不反对动态类型查看。无论如何,它在多个畛域中都有其利用,包含数据迷信、Web开发、游戏开发和人工智能等。因而,通过学习Python,开发者能够轻松地进入这些畛域,以及开发许多其余类型的应用程序。 站长羽峰95后集体站长,用酷爱10年的编程,做点乏味的事!python教程大全、爬虫与js逆向;网站、小程序源代码分享;程序员学习、技术路线图、接单交换等…千万别错过啦!连忙关注我,解开编程世界的神秘面纱~ 本文由mdnice多平台公布

May 26, 2023 · 1 min · jiezi

关于程序员:总结丨SGAT单基因关联分析工具一文上手使用

SGAT是一个收费开源的单基因剖析工具,基于Linux零碎实现自动化批量解决,可能疾速精确的实现单基因和表型的关联剖析,只须要输出基因型和表型原始数据,即可计算出显著关联的SNP位点,并主动生成后果报告。前段时间陆续的分享了SGAT(Single Gene Analysis Tool)的相干介绍,明天做一个总结整顿,该工具是一个基于R语言tidyverse开发的疾速剖析流程化小工具,还存在很多的不足之处,欢送大家多多领导。 接下来,将用5000字长文详解SGAT的应用办法和算法原理,既是一个分享的过程,也是一个学习的过程。 背景信息什么是单基因关联剖析?单基因关联剖析是一种遗传学和生物统计学办法,用于钻研基因与特定表型之间的关系。在单基因关联剖析中,通常比拟来自不同群体的不同等位基因频率。 如果某个等位基因在解决组中呈现的频率显著高于对照组,则能够认为该等位基因与特定表型相关联。 单基因关联剖析具备广泛应用,在医学、农业、动植物遗传学等畛域都失去了宽泛的利用! 待解决的问题传统形式人工进行单基因关联剖析须要从VCF文件开始,批改基因型文件,通过plink和taseel等软件转换文件格式,并手动批改变异信息,整顿表型和基因型并相互匹配,逐渐进行GWAS剖析并依据后果作图,整个过程费时费力,而且极易出错。 因而,基于以上问题,开发了SGAT自动化单基因关联剖析工具,疾速实现多个基因多个表型多个模型的关联剖析。 外围性能变异信息自动识别与替换染色体编号转换基因型文件转换表型与基因型匹配筛选批量进行多模型GWAS剖析连锁不均衡作图GWAS后果汇总整顿主动筛选显著性位点并提取变异信息基因变异正文转换 定制化开发GWAS分析模型自由选择区间长度自由选择筛选阈值自由选择后果图片类型自由选择 源码开放性 Mar 29 22:55 0_README.md Mar 22 20:25 1_check.R Mar 19 21:40 2_gene_vcf2txt.R Mar 22 20:12 3_hmp_trait_formate.R Mar 20 11:05 4_GWAS_gapit.R Mar 23 20:29 5_GWAS_results_translate.R Mar 29 22:43 6_GWAS_Ttest_Result.R Mar 22 20:14 clearn.sh Mar 31 11:53 start.sh上述所有源码均在Github寄存,其中bash脚本clearn.sh的性能是初始化工作目录并革除长期数据,start.sh的性能是启动自动化过程。 装置与部署运行环境官网渠道(举荐) curl https://www.jewin.love/install.sh |shGithub仓库 git clone https://github.com/JewinZao/SGAT.git本地装置 wget https://www.jewin.love/SGAT-V1.1.0.zipunzip SGAT-V1.1.0.zip通过上述形式装置SGAT工具,装置实现后能够在当前目录下看到脚本文件即胜利! $ curl https://www.jewin.love/install.sh |shArchive: SGAT-V1.1.0.zip1090a66274055c0b2cc578a43f0a4bce083ede4bGood finished!依赖软件查看与装置运行$ Rscript 1_check.R进行查看,依据提醒装置相应软件和R包,直到所有依赖软件装置实现后提醒finished,该过程也会主动查看基因型文件和表型文件,并对其进行提取,输入为列表,用于后续迭代计算。 ###################### 单基因关联剖析 ########################### Design by Jewel 应用办法: 1.将所有的基因型文件放在02文件夹中 例如"TraesCS1A01G0123456.filter.vcf.gz" 2.将表型文件放在05文件夹中,命名为trait.txt 第一列名称为ID,前面每一列代表一个表型,例如"HT32L" 3.软件自动识别基因与表型信息 4.在以后文件夹下执行". ./start.sh" 5.后果将在后续生成 6.初始化与革除工作空间请执行". ./clearn.sh" 【 版本:V1.3.0 】 #################################################################办法:vcf转txt并主动规范化vcf文件是寄存基因变异信息的一种形式,本文提供一种算法,用于读取vcf文件并转换等位基因展现办法、替换染色体展现格局、以及自动识别非惟一变异并进行批改,用于对变异信息进行整顿。 ...

May 26, 2023 · 5 min · jiezi