分布式运行时 Dapr 知多少
,并支持通过选项设置并发和一致性行为。 存储:POST http://localhost:
,并支持通过选项设置并发和一致性行为。 存储:POST http://localhost:
不久前,我们写过一篇关于 teleconsole 的介绍,该工具可用于快速分享终端给任何人(任何你信任的人)。今天我们要聊一聊另一款类似的应用,名叫 tmate。 tmate 有什么用?它可以让你在需要帮助时向你的朋友们求助。 什么是 tmate? tmate 的意思是 teammates,它是 tmux 的一个分支,并且使用相同的配置信息(例如快捷键配置,配色方案等)。它是一个终端多路复用器,同时具有即时分享终端的能力。它允许在单个屏幕中创建并操控多个终端,同时这些终端还能与其他同事分享。 你可以分离会话,让作业在后台运行,然后在想要查看状态时重新连接会话。tmate 提供了一个即时配对的方案,让你可以与一个或多个队友共享一个终端。 在屏幕的地步有一个状态栏,显示了当前会话的一些诸如...阅读全文
-Guided Optimization) rustc 编译器现在通过 -C profile-generate 和 -C profile-use 标志提供了对配置文件引导优化(PGO)的支持。 Profile-Guided Optimization 允许编译器根据来自实际工作负载的反馈优化代码。它的工作方式是编译程序,在两个步骤中进行优化: 首先,程序是用编译器插入的工具构建的。这是通过将 -C profile-generate 标志传递给 rustc 来完成的。然后,需要在示例数据上运行检测程序,并将分析数据写入文件之后,重新构建程序,这一次使用 -C profile-use 标志将收集到的分析数据反馈回 rustc。此构建将利用收集到的数据,使编译器能够对代码放置、内联和其他优化做出更好的决定 在...阅读全文
将逐渐减少参与 Debian 的维护和相关活动,并解释这样做的原因。Stapelberg 表示他在 Debian 上投入了十年以上的时间,但在此过程中,Stapelberg 也逐渐发现并认识到了 Debian 在许多方面的不足。他发现 Debian 整个开发评估流程都非常迟钝。举例来说,补丁的评估没有截至日期,有时候他会收到通知说几年前递交的补丁现在合并了。而且 Debian 的一些维护者出于个人喜好拒绝合作,维护者给予的个人自由度太高对 Debian 构成了严重影响。Debian bug 跟踪器 debbugs 源自 1994 年,只有 Debian 和 GNU 项目使用。Stapelberg 抱怨了 Debian 糟糕的开发流程,对此感到十分不满,为此,他撰写了长文,并希望自己的文章能激...阅读全文
Oracle Linux 8.0 发布了,更新包中包括基础 BaseOS 和 Application Streams,其中 BaseOS 提供运行环境的用户空间,Application Streams 提供了一系列以往分发在软件集中的应用,以及可在用户空间内运行的其它产品和程序。 Application Streams Oracle Linux 8 引入了 Application Streams 的概念,它可以比核心操作系统包更频繁地交付和更新多个版本的用户空间组件。Application Streams 包含必要的系统组件和一系列以往分发在软件集中的应用,以及其它产品和程序。 系统管理 引入 Dandified Yum 软件包管理器,它是基于 DNF 技术的 yum 工具的新版本,可在基...阅读全文
Chaos Mesh 的基本功能,包括故障注入、混沌实验场景、可视化操作、安全保障。故障注入故障注入是混沌实验的核心。Chaos Mesh 充分考虑分布式系统可能出现的故障,提供全面、细粒度的故障类型,分为基础资源类型故障、平台类型故障和应用层故障三大类。基础资源类型故障:PodChaos:模拟 Pod 故障,例如 Pod 节点重启、Pod 持续不可用,以及特定 Pod 中的某些容器故障。NetworkChaos:模拟网络故障,例如网络延迟、网络丢包、包乱序、各类网络分区。DNSChaos:模拟 DNS 故障,例如 DNS 域名解析失败、返回错误 IP 地址。HTTPChaos:模拟 HTTP 通信故障,例如 HTTP 通信延迟。StressChaos:模拟 CPU 抢占或内存抢占场景...阅读全文
cause it to allocate a buffer that’s too small,” "恶意 dns 服务器可以利用此漏洞,通过精心构造的 tcp Payload, 诱骗systemd-resolved 分配的缓冲区太小, 随后将任意数据写入它的末尾。 该漏洞涉及ubuntu、debian及其它使用Systemd的linux系统 自 Systemd 223 版本于 2015年6月 推出以来, 这一漏洞一直存在, 包括今年3月推出的 Systemd 233 版本。当然, 前提条件是 systemd-resolved 在您的系统上运行, 因为它很容易受到攻击。 该 bug 存在于 ubuntu 版本17.04 和版本16.10 中;debian 版本 Stretch (又名 debian 9...阅读全文
繁的前10个文件:sysdig -c topfiles_bytes列出Apache进程读取或写入最频繁的文件:sysdig -c topfiles_bytes proc.name=httpd监听对 snoop 的系统调用:sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=openSee the top directories in terms of R+W disk activity:sysdig -c fdbytes_by fd.directory "fd.type=file"See the top files in terms of R+W disk...阅读全文
Material 和其他解决方案的最新版本将一起发布,以便开发人员更好地访问最新版本的 Angular。 根据 Fluin 的说法,团队将重点放在缩小尺寸上,Angular 6 中的捆绑包将更小 ,以便为用户提供更快的体验。 团队正在通过更新到最新版本的 Webpack 来实现这一点。 此外,最新版本将引入一种新的方式来连接应用程序和服务中的模块。 例如,团队正在增加服务引用模块的能力,这样如果服务没有被使用,它就会消失,从而简化包的大小。 版本 6 也更新为 RxJS,即,使用 Observables 进行反应式编程的库 。 根据 Angular 的说法,这使得编写异步或基于回调的代码更容易。 在易于使用的一方面,该团队正在向 CLI 界面介绍更新 。 这个新命令将自动让用户保持最新状态并更新正在使用的...阅读全文
bmon 是类 Unix 系统中一个基于文本,简单但非常强大的 网络监视和调试工具,它能抓取网络相关统计信息并把它们以用户友好的格式展现出来。它是一个可靠高效的带宽监视和网速估测工具。 它能使用各种输入模块读取输入,并以各种输出模式显示输出,包括交互式文本用户界面和用于脚本编写的可编程文本输出。 在 Linux 上安装 bmon 带宽监视工具 几乎所有 Linux 发行版的默认仓库中都有 bmon 软件包,可以从默认包管理器中轻松安装,但可用的版本可能比较旧。 $ sudo yum install bmon [On RHEL/CentOS/Fedora] $ sudo dnf install bmon [On Fedora 22+] $ sudo apt-get install bmon...阅读全文
PHP 7.4 的GA版今天正式发布了。PHP 7.4发布后,PHP 7.3或其它的PHP 7版本都可以升级到PHP 7.4版。 PHP 7.4 的主要特性包括以下几个, 短闭包函数(short closure)预加载提交性能属性类型限定Improved type variance(不会翻译)三元运算简写数组展开运算新增类的魔术方法:serialization数字分隔符运算优先顺序允许在__toString中抛出异常支持反射引用新增字节分割函数移除php短标签弃用左关联运算符不再向后兼容的变更 短闭包函数 短闭包函数可以减少冗余代码: array_map(function (User $user) { return $user->id; }, $users) array_map(fn...阅读全文
谷歌开源了一套代码评审(Code Review)规范,它是谷歌一套通用的工程实战指南,几乎涵盖了所有编程语言与各种类型的项目,这个规范代表了谷歌长期发展以来最佳实战经验的集合,谷歌表示希望开源项目或其他组织能够从这套规范中受益。 代码评审,也称代码复查,如果一个团队正在使用任务分支工作流,那么在所有代码编写完成并通过自动化测试之后,在代码合并之前,就会启动代码评审。通常的目的是查找系统缺陷,保证软件总体质量和提高开发者自身水平,代码评审的所有工具和过程都是为了这个目的而构建的。代码评审对于敏捷团队来说的作用如下: 代码评审共享知识通过代码评审可以更好的进行工作评估代码评审能让你享受休假通过代码评审指导新工程师 既然代码评审要进行众多的检查,那么找一个优秀的评审者就非常重要了。一般对于变更列...阅读全文
常用开发环境、生产环境简写的含义及用途 DEV、SIT、UAT、PET、SIM、STG、PRD 缩写介绍 按开发、测试、上线的时间线排序: - DEV Development 研发环境 - SIT System Integrate Test 系统集成测试环境(内测) - UAT User Acceptance Test 用户验收测试环境 - PET Performance Evaluation Test 性能评估测试环境(压测) - STG Staging 更接近生产的功能验收、测试环境 - SIM Simulation 高仿真环境 - PRD Production 正式/生产环境...阅读全文
Observium是一个免费的开源网络管理和监控工具,可用于监控所有的网络设备。 它是用PHP编写的,使用SNMP从连接的设备收集数据并使用Web界面监视它们。 Observium支持大量的网络硬件和操作系统,包括Linux,Windows,FreeBSD,思科,戴尔,NetApp等等。 Observium提供了一个功能强大,简单易用的界面来监视网络的健康和状态。 在本教程中,我们将解释如何在Debian 9服务器上安装和配置Observium。配置需求: 一个新的Debian 9服务器安装在您的系统上。 在您的服务器上设置一个根密码。 入门 首先运行以下命令,将系统更新到最新的稳定版本: apt-get update -y apt-get upgrade -y 系统更新后,重新启动系统以...阅读全文
据 Venturebeat 报道,微软今天宣布,将关闭开源软件托管平台 CodePlex。微软 2006 年推出这项服务,并决定在今年 12 月 15 日将其关闭。 微软公司副总裁布莱恩·哈里(Brian Harry)在博文中写道,人们将可以下载他们的数据档案,微软正与面向开源及私有软件项目的托管平台 GitHub 合作,给用户提供 “简化的进口体验”,代码和相关内容都将转移到 GitHub 上。简单来说,GitHub 赢了! 哈里写道:“过去多年中,我们已经看到许多惊人的选项起起落落。但是现在,GitHub 正成为开源共享和大多数开源项目托管事实上的中心。”过去几年里,微软越来越向 GitHub 倾斜。它已经于 2016 年将 CNTK 深度学习工具包从 CodePlex 转移到...阅读全文
这篇文章我会尽可能详细地说明如何快速安装纯净的Debian新系统,需要懂一点vi编辑器的使用方法。 如果是新手,没用过 vim 编辑器也不用担心,我会尽量详细地说明使用方法。 首先在Debian官网上下载网络安装CD或者完整DVD镜像,DVD镜像只需DVD-1即可。如果你的网络环境不错,推荐下载 netinst 包,通过网络安装 Debian 系统。 下载好镜像后做成U盘启动盘,从U盘启动开机。在引导界面选择Graphical install(图形化安装),进入安装过程,如图: 选择语言界面,选择中文吧, 提示虽然是好心,但是安装过程中我就见到一处乱码还就是下面这个图上,直接选是,下一步。 区域选择,选择中国。 主机名,自己随便填吧。 域名可不填,直接下一步。 设置root密码,自己设定好...阅读全文
CPU,由于它是单线程作业所以很容易跑满一个逻辑CPU,可以使用redis代理或者是分布式方案来提升redis的CPU使用率。 3.存储的Key一定要设置超时时间 如果应用将Redis定位为缓存Cache使用,对于存放的Key一定要设置超时时间!因为若不设置,这些Key会一直占用内存不释放,造成极大的浪费,而且随着时间的推移会导致内存占用越来越大,直到达到服务器内存上限!另外Key的超时长短要根据业务综合评估,而不是越长越好! 4.对于必须要存储的大文本数据一定要压缩后存储 对于大文本【+超过500字节】写入到Redis时,一定要压缩后存储!大文本数据存入Redis,除了带来极大的内存占用外,在访问量高时,很容易就会将网卡流量占满,进而造成整个服务器上的所有服务不可用,并引发雪崩效应,造成各个系...阅读全文
力,tensorflow请安装tensorflow-gpu包含GPU支持的软件包。 可输入以下命令以安装 TensorFlow: pip install --upgrade tensorflow 在虚拟环境中,可以使用pip代替pip3和python代替python3。在撰写本文时,TensorFlow的最新稳定版本是2.0.0。到此,你的Tensorflow便安装完成了。 如果不熟悉TensorFlow,请访问TensorFlow教程页面并了解如何构建您的第一个ML应用程序。您还可以从Github 克隆TensorFlow模型或TensorFlow-Examples存储库,并探索和测试TensorFlow示例。 如果要退出Python的虚拟环境,可以使用deactivate命令,返回到此前...阅读全文
从我们认为 DevOps 只是一个流行语开始,它已经发展了很长的一段时间。现在,DevOps 已经成为了一个主要焦点,并在过去几年一直在塑造着软件世界。专家表示,DevOps 将成为主流,它的流行程度将在 2019 年达到顶峰。 根据 2018 年《DevOps 现状报告》,DevOps 精英级执行团队代码部署频率和发布速度更高,变更故障率更少,事故恢复时间更短,同时高效能团队的比例逐年增长,采用 DevOps 的团队越来越多。 而 Stack Overflow2018 年的薪资计算器报告显示,全球 DevOps 专家的收入最高,美国 DevOps 专家的年薪中位数接近 10 万美元。 以下是“DevOps”一词的 Google Trends 以及 2019 年的预计增长假设。 从统计数据...阅读全文
Debian10安装wine及用wine安装微信、QQ与TIM 作者:幻影剑客 概览 本文适用于Linux发行版Debian 10,主要参考winehq官方文档Debian部分,Debian wiki的wine,还有其他网上文章。总结起来,就是Debian 10的情况,要先安装faudio依赖,再安装wine官方版。安装完后要做启动配置、字体配置、输入框配置。如果想要更多功能还得做更多配置,这里没介绍了。 注意wine的每个版本甚至在不同发行版的安装都有差别,需要先看winehq官方介绍、你的Linux发行版关于wine的wiki,然后是网上其他资料。下面部分是正式安装介绍。 搞定FAudio部分依赖 winehq的Debian安装页面指出,要先安装依赖FAudio,见 官方链接。这是因为...阅读全文
假如你打算加入Debian社区,为Debian社区做些事情的话,那么你可以先申请Debian Maintainer一职。在那之前需要做好哪些准备呢?在本文中,一位华人DM Aron向大家介绍了申请成为Debian Maintainer的流程以及事先准备。 今天我收到了一封邮件,询问关于做 Debian Maintainer 的事情让我给他写几条建议。非常高兴看到越来越多的人参与到 Debian 社区之中,以下是我所写的一点东西,希望有用。 Debian Maintainer (DM)是有个别软件包上传权限的 Debian 开发人员,是成为正式 Debian Developer (DD)前的一个步骤。在开始前需要清楚,为 Debian 贡献点力量是很容易的事情,但要成为“官方”的人员则需要付...阅读全文
当然,无论西数还是希捷都在努力开发新的存储技术,目前出货的14TB和即将推出的16TB、18TB都是传统充氦垂直记录技术,接下来就要上新的HAMR热辅助磁记录技术,2030年前有望带来100TB的总容量。 希捷此前称会在2018年内出样HAMR硬盘,2019年量产,初期容量20TB,而最新说法让人更加振奋: 希捷表示,HAMR技术进展顺利,下一代大容量近线硬盘的单盘容量可达24TB,预计2019年批量上市。 当然,希捷还有多驱动技术(Multi-Actuator),硬盘内存同时使用多个机械臂进行读写操作,大幅提升性能,读写速度可达480MB/s,基本逼近SATA SSD的水准。...阅读全文
-bindgen 的高级功能包括: 导入 JavaScript 结构、函数和对象以在 WebAssembly 中调用。开发人员可以调用结构中的方法和访问属性。 将 Rust 结构和函数导出到 JavaScript。可以导出一个 Rust struct,它会变成一个 JavaScript class,之后就可以传递结构而不是整型。 目前,WebAssembly 仅支持四种类型:两种整型和两种浮点型。但 JavaScript 和 Rust 开发人员经常使用更丰富的类型,例如 Rust 开发人员使用 Result 类型进行错误处理,这样,使用 wasm-bindgen 的时候,JavaScript 可以使用字符串或 Rust 函数调用 Rust API 来捕获 JavaScript 异常。通过消除...阅读全文
后,即便用户在他的浏览器中输入 URL 时写了 “http://”前缀,浏览器仍将会自动切换“https://”。...阅读全文
采用最小化方式安装的 Debian,在没有接入网络的情况下,默认是没有配置 apt 安装源,也没有安装远程管理用的 SSH 服务的,这个时候就无法使用 apt-get install 在线安装软件的,为使用带来不便。以下为大家提供几个 Debian Stretch 的 apt-get 源配置,详细有不好爱好者在使用 Stretch 时会遇到这个问题。 配置apt-get源 在开始配置新的 apt 源之前,可以先备份原有的安装文件,命令如下: cp /etc/apt/sources.list /etc/apt/sources.list.backup 更新 apt 源配置文件 使用以下命令,重写整个配置文件即可: cat > /etc/apt/sources.list <
毫无疑问,Rust 目前发展势头正劲。此前,微软安全响应中心探索采用 Rust 的消息引发大量关注,在连续四年蝉联“最受开发者喜爱的编程语言”后,Rust 可能已经从“想要学习的语言”逐渐转变为许多开发者“正在学习的语言”。自从四年前首次发布稳定版以来,它已经得到了广泛的采用,谷歌,微软和 Mozilla 等公司都在使用 Rust。现在,AWS 也向 Rust 伸出了橄榄枝。 近日,AWS 在其开源博客上发文宣布赞助 Rust 语言。迄今为止,Rust 已在 AWS 中实现了许多增长,Lambda、EC2 和 S3 等服务都选择在性能敏感的组件中使用 Rust。AWS 开源的 Firecracker microVM 项目也正是采用 Rust 编写。 AWS 从 Rust 维护者的视角解释了...阅读全文
Rust 1.39.0 已经发布。此版本的亮点包括 async/.await,对 match 守卫 by-move 绑定的共享引用,以及函数参数的属性。 async/.await 稳定 此版本 async/.await 特性已经稳定,这意味着现在可以定义 async 函数和块,并进行 .await 操作。 async 函数通过 async fn 引入,被调用时会返回一个 Future,该 Future 是一个会挂起的计算,可以使用 .await 运行并完成计算。而除了 async fn,async{…} 和 async move{…} 块也可以用来定义“异步文字”,它们的行为像闭包。 match 守卫引用 by-move 绑定 在 Rust 中进行模式匹配时,一个变量,也就是“绑定”,可以...阅读全文
SonarQube v8.4 发布了。SonarQube 是一个用于管理源码质量的平台,帮助开发者编写干净的代码,其支持的语言包括:Python、Java、PHP、C#、C、Cobol、PL/SQL 与 Flex 等。 此版本扩展了 OWASP(Open Web Application Security Project,开放式 Web 应用程序安全项目)类型覆盖范围、带来了更快的分析速度、热备份和更快的启动。 Python 添加了 XSS 检测,以及另外 4 个 OWASP Top 10 类型 此版本中添加了一个与 XSS 相关的 Security Hotspot:S5247 查找在模板引擎中已关闭自动转义的所有位置。XSS 在OWASP Top 10 中属于 A7,此版本还增加了其它四个...阅读全文
JavaFX 11 发布了,JavaFX 是一个强大的图形和多媒体处理工具包集合,它允许开发者来设计、创建、测试、调试和部署富客户端程序,并且和 Java 一样跨平台。由于 JavaFX 库被写成了 Java API,因此 JavaFX 应用程序代码可以调用各种 Java 库中的 API,例如 JavaFX 应用程序可以使用 Java API 库来访问本地系统功能并且连接到基于服务器中间件的应用程序。JavaFX 可以自定义程序外观,CSS 将外观和样式与业务逻辑实现进行了分离,因此开发人员可以专注于编码工作。值得注意的是,从 JDK 11 开始,JavaFX 模块与 JDK 分开提供 。 JavaFX 11 需要 JDK 10(必须是 OpenJDK 版本)或 JDK 11,建议使用...阅读全文
)确定决策并写出状态转移方程:因为决策和状态转移有着天然的联系,状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。所以如果确定了决策,状态转移方程也就可写出。但事实上常常是反过来做,根据相邻两个阶段的状态之间的关系来确定决策方法和状态转移方程。 (4)寻找边界条件:给出的状态转移方程是一个递推式,需要一个递推的终止条件或边界条件。 一般,只要解决问题的阶段、状态和状态转移决策确定了,就可以写出状态转移方程(包括边界条件)。 实际应用中可以按以下几个简化的步骤进行设计: (1)分析最优解的性质,并刻画其结构特征。 (2)递归的定义最优解。 (3)以自底向上或自顶向下的记忆化方式(备忘录法)计算出最优值 (4)根据计算最优值时得到的信息,构造问题的最优解 算法实现的说明 动态规划的主要难点在...阅读全文
态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。 二、提前部署 Mysql Nacos 需要提前部署 Mysql,目前支持 5.7 及 8.0 版本。关于如何部署 Mysql 可以参考之前本人写的一篇文章 Kubernetes 部署 Mysql 数据库。 三、导入 SQL 相关数据 等数据库创建完成后,还需要导入 SQL 文件来创建它的表结构和一些基础数据。操作如下,我们进入 Mysql 客户端,执行 source 命令导入 SQL 文件。 $ mysql -uroot -p123456 mysql> source /data/nacos.sql SQL 地址:Nacos 数据 Sql 文件地址 你也可以通过 Navicat...阅读全文
细信息,请参阅这两篇文章:Nonblocking IO & The method to epoll’s madness. 简化流程如下: 数据存储这块解决了,那么针对连接上来的客户端socket,该用什么数据结构保存进来呢?这里用到了红黑树,由于客户端socket会有频繁的新增和删除操作,而红黑树这块时间复杂度仅仅为O(logN),还是挺高效的。有人会问为啥不用哈希表呢?当大量的连接频繁的进行接入或者断开的时候,扩容或者其他行为将会产生不少的rehash操作,而且还要考虑哈希冲突的情况。虽然查询速度的确可以达到o(1),但是rehash或者哈希冲突是不可控的,所以基于这些考量,我认为红黑树占优一些。 客户端socket怎么管理这块解决了,接下来,当有socket有数据需要进行读写事件处理的时...阅读全文
Go 语言官方博客公布了 2016 年 Go 语言使用调查。在 3,595 名被调查者中,89% 称他们在工作中或工作之外用 Go 编程;63% 称他们的工作是 Web 开发,但只有 9% 的人只从事 Web 开发,一半以上被调查者的工作涉及三个以上领域;63% 的人用 Go 开发命令行程序,60% 写 API 或 RPC 服务,52% 写 Web 服务。 被调查者对 Go 的满意度非常高(这显然与被调查者这一群体高度相关),他们主要在 Linux 上进行开发,其次是 MacOS,第三是 Windows;最爱的编辑器是 Vim,其次是 VSCode、Atom、IntelliJ、Sublime Text 和 Emacs;大部分人主要通过 Stack Overflow 寻找 Go 相关问题的答...阅读全文
OCP 峰会刚刚轻松的结束了,但是让我们惊讶的发现微软发布了一个基于 Debian Linux 的操作系统,这个操作系统主要运行在网络交换机之上。该软件被称为 SONiC ,也就是 Software for Open Networking in the Cloud 的缩写。你可以使用它来管理网络交换机的各种操作,网络切换等,而无需依赖网络设备供应商提供的系统。 类似的操作系统还有来自 HP、DELL 和 Cumulus Networks 的系统。 SONiC 基于 Linux 的 Azure Cloud Switch (ACS) 操作系统,该系统我们在去年 9 月份有了解过。ACS 是微软 Azure 云系统中交换机的大脑。可通过 C API Switch Abstraction...阅读全文
挑战,尽管之前的 PostgreSQL 版本已经做了一些工作来减轻清理的开销。 PostgreSQL 13 通过引入用于索引的并行化清理来继续改进清理系统 。具体来说,VACUUM 命令能够并行处理索引。可以使用 VACUUM 命令上的新 PARALLEL 选项(或 vacuumdb 上的 --parallel)来访问其功能,该选项允许用户指定用于清理索引的并行 Worker 进程的数量。要注意的是,这不适用于 FULL 选项。由于管理员可以选择要运行的并行 Worker 进程的数量,因此可以针对特定的工作负载调整此新功能的使用。除了这些性能优势之外,数据插入现在还可以触发自动清理过程。 复制插槽(Replication slots),用于防止在复制副本接收到预写日志(WAL, write...阅读全文
在上个月预想的 C++、C、Python 三种候选语言中,C++ 脱颖而出,成为 TIOBE 2022 年度编程语言的最终获得者! C++ 摘得桂冠 近段时间来,C++ 的发展有目共睹,其在上个月甚至首次超过了 Java,位居榜单第三的位置。现如今之所以赢得年度编程语言的称号,TIOBE 官方也进行了总结与回顾。 其表示,「C++ 受欢迎的原因是它出色的性能,同时 C++ 是一种高级面向对象语言。正因为如此,众多开发者可以使用 C++ 快速开发庞大的软件系统(超过数百万行代码),而不一定会陷入维护的噩梦循环中。 C++ 崛起的另一个原因是它“最近”不断发布具有有趣功能的新语言标准。第一个标准被称之为 C++11,它于 2011 年发布,这是自 1998 年以来,C++ 第一次发生的重大变化...阅读全文
统。不要在 Intel Broadwell 和 Haswell CPU 上应用 20180108 版本。尽可能使用软件包管理器方式。 检查一下,确保存在 /sys/devices/system/cpu/microcode/reload。然后需要用 cp 命令拷贝 intel-ucode 目录下的所有文件到 /lib/firmware/intel-ucode/ 下面: sudo cp -v intel-ucode/* /lib/firmware/intel-ucode/ 你只需要将 intel-ucode 这个目录整个拷贝到 /lib/firmware/ 目录下即可。然后在重新加载接口中写入 1 去重新加载微码文件: # echo 1 > /sys/devices/system/cpu...阅读全文
Debian 不能被单个公司所控制。我们的开发人员来自超过 60 个国家/地区,并且 Debian 本身也已经被翻译为超过 80 种语言。Debian 作为开发者使用的操作系统享有盛誉的原因是丰富的软件包数量和软件支持,这对开发者而言十分重要。强烈建议专业的程序员和系统管理员使用。Adarsh Verma 在 Fossbytes 上写道面向开发者的 Debian多种硬件架构Debian 支持一长串的CPU架构,包括 AMD64、i386,ARM 和 MIPS 的多个版本、POWER7、POWER8、IBM System z 以及 RISC-V。Debian 还可以用于一些特殊用途的架构。物联网和嵌入式设备Debian 可以在各种设备上运行,例如 Raspberry Pi、QNAP 的各个变种、移动设备...阅读全文
几个星期前,我一个朋友问我:“为什么要关心 Go 语言”? 因为他们知道我热衷于 Go 语言,但他们想知道为什么我认为 其他人 也应该关心。本文包含三个我认为 Go 是重要的编程语言的原因。 安全 个人而言,你和我或许完全有能力在 C 中编写程序,既不会泄漏内存,也不会不安全地重复使用内存。然而,整体上,即使有超过40年的经验,用 C 的程序员也无法可靠地这样做。 尽管静态代码分析、valgrind、tsan 以及 “-Werror” 已经存在了几十年,却很少有证据表明这些工具被广泛认可,更不用说广泛采用。总而言之,事实表明,程序员根本无法安全地管理自己的内存。现在是离开 C 的时候了。 Go 不需要程序员直接管理内存,所有内存分配都由语言运行时自行管理,使用前初始化,必要时检查边界。它肯...阅读全文
去年7月,Go 语言官博就曾透露 Go 2 开发计划,并表示 Go 2 的目标就是解决 Go 1.x 在规模化方面做的还不够好的地方。随着时间的推进,开发团队已着手准备 2.0 版本的开发工作,并公布了设计草案,供社区讨论和反馈,以促进最终的语言设计。 设计草案包含三个方面,错误处理、错误值和泛型,并针对各个方面进行了详细的概述和改进草案。大致总结如下: 一、错误处理(Error handling) 为扩展至大型代码库,Go 程序必须是轻量级的,不会过度重复,且具备稳健性,能够优雅地处理出现的错误。 目前 Go 检查错误的代码太多,但处理这些错误的代码却严重不足。对于 Go 2,开发团队希望错误检查更加轻量级,减少用于错误检查的 Go 程序的文本量。此外,还能更加方便地编写错误处理程序,提...阅读全文
型的UBI实验。(Universal Basic Income,无条件基本收入;Sam Altman认为,十年后AI的生产力可以创造巨大财富,足够给每个美国公民每年无条件发放13,500美元。)有一个为期五年的项目已经进行到三年半了。UBI不会是唯一的解决方案,但它是一个不错的做法。 OpenAI从受AI冲击最大的行业中汲取意见,以便制定应对方案;对于那些最先被AI取代的劳动者,我们也尝试利用AI帮助他们学习新技能。我们还会不断地做类似的事情。 Audience Member:你如何定义AGI(通用人工智能)?怎么才算实现了AGI? Sam Altman:我理解的AGI相当于一个可以共事的普通人,任何远程同事可以通过电脑帮你完成的工作,AGI也可以做,包括让AGI学习医疗知识和写代码等等...阅读全文
,kubelet通过给容器打不同的label来识别之。CRI是一个统一的容器操作gRPC接口,kubelet对容器的操作,都要通过CRI请求来完成,而Docker,Rkt等容器项目则负责实现各自的CRI实现,Docker的实现即为dockershim,dockershim负责将收到的CRI请求提取出来,翻译成Docker API发给Docker Daemon。 relist通过CRI请求更新到Pod中Sandbox容器和非Sandbox容器最新状态,然后将状态信息写入kubelet的缓存podCache中,如果有容器状态发生变化,则通过pleg channel通知到syncLoop循环。对于单个pod,podCache分配了两个数组,分别用于保存Sandbox容器和非Sandbox容器的最新状态...阅读全文
》(LFS)是杰勒德·比克曼斯等人编写的久负盛名的安装Linux的教科书,描述了从源代码编译Linux系统的方法。这本书可以从在Linux From Scratch网站上免费下载到,下载链接如文末。书中详细地描述了如何从零开始构建一个完整的 Linux 系统,不过 LFS 包含的套件较少,一般来说 BLFS 提供的套件更多,其几个相关的子项目有如下这些: Beyond Linux From Scratch(BLFS) 标准LFS仅仅安装了足够让系统启动的基本软件,以及使新系统能够编译新软件包的开发工具。BLFS包括了更多的软件包,且都有相应指导。 Crosss Linux From Scratch(CLFS) 为需要进行交叉编译(即在一个平台上编译另一个平台的代码)的用户提供指导,正式版本为1.0...阅读全文
./configure make && make install 安装Yearning 2.1 用pip3安装依赖包(txt文件在src目录中) pip3 install -r requirements.txt 2.2 创建数据库实例yearning 2.3 将该数据库实例的连接信息写入develop.conf。升级请注意:1.0.0发布后,该文件增加了两个属性:ldap_type=1和smtp_port=,如果是cp原有的配置文件覆盖新下载的,要加上这两个配置 2.4 初始化数据库 python3 manage.py makemigrations && python3 manage.py migrate 2.5 添加初始化用户 echo "from core.models import Account...阅读全文
Linux”。同时,这一发行版既模块化又针对现代机器进行优化。 更具体地说,Serpent 将会是一个“真正现代化的 Linux 发行版”(A Truly Modern Linux Distribution),它将采用发行优先、兼容性更高的设计决策。同时还将把过去十年左右的时间里更明智的设计改进纳入 Linux 发行版设计中: 不再拆分 usrbin整个过程均采用 100% 的 clang 编写(包括内核)musl 作为 libc,依靠编译器优化而不是内联 asmlibc++ 代替 libstdc++LLVM 的 binutils 的变种(lld、as等)混合源/二进制分发从x86_64-generic通用基线转向新的 CPU,包括针对 Intel 和 AMD 的优化程序包管理器中基于功能的订阅(硬...阅读全文
Node.js 早诞生将近20年,所以在文档,API 和代码库等在线资源方面更为丰富。所以很有可能其他人也尝试了你想要用代码完成的事情并从中获得了帮助。另一方面,Node.js 虽然已经得到了开发者和组织的广泛关注,但是它支持开发者开发的资源缺相当少。 8.学习曲线: 编写 Node.js 代码对于新手甚至是专业的 JavaScript 开发人员来说都不是件容易的事情,因为他们需要在入门之前理解一些复杂的概念,比如 web worker 和回调函数。相反,PHP是一门非常友好的编程语言对于开发 Web 应用程序的新手来说。 Node.js 和 PHP 战斗的结果是相辅相成的,因为这两种技术都有各自的优点和缺点。这大多是相似的情况在比较或选择用于 Web,桌面和移动开发的其他技术时。Node.js 有前途...阅读全文
持周期,以避免更新混乱的出现。 2、有利于产品的长期发展 福布斯杂志指出,90%的初创公司最后都会失败,而他们当中,只有不到一半的中小型公司存活期能超过5年。如果在产品开发的中途突然出现需要更换供应商的问题,那迁移的成本就很高了。所以,要避免选择只有一个供应商支持的产品。 而开源使得社区成员能够协同编写软件。如 OpenStack 就是由多个公司及个体志愿者共同编写的。这么做,就能保证,在一个供应商出现问题的情况下,其他供应商能继续支持。而且,软件一经开源,企业就会长期投入开发团队以实现产品开发。使用源代码的好处就是,你可以聘用贡献者来保证开发的活跃性。 3、更安全 以开源的方式进行开发,可以很直观地看到,供应商是如何对待安全问题,以及是否在积极保证产品安全。研究源代码并执行独立代码审核,也...阅读全文
了一个闭包——inner_func,并且该闭包持有自由变量——name,因此这也意味着,当函数func的生命周期结束之后,name这个变量依然存在,因为它被闭包引用了,所以不会被回收。 另外再说一点,闭包并不是Python中特有的概念,所有把函数做为一等公民的语言均有闭包的概念。不过像Java这样以class为一等公民的语言中也可以使用闭包,只是它得用类或接口来实现。 nonlocal 语句 在 python 的函数内,可以直接引用外部变量,但不能改写外部变量,因此如果在闭包中直接改写父函数的变量,就会发生错误: 在 python 2 中可以在函数内使用 global 语句,但全局变量在任何语言中都不被提倡,因为它很难控制,python 3 中引入了 nonlocal 语句解决了这个问题...阅读全文
正如体育界不成文的规定一样,这些规则基本上不会出现在官方文档和正式记录上。比如说,在棒球运动中,从比分领先时不要盗垒,到跑垒员跑了第一时也不要放弃四坏球保送。对于圈外人来讲,这些东西很难懂,甚至觉得没什么意义。但是对于那些想成为 MVP 的队员来说,这些都是理所当然的。 软件开发,特别是开源软件开发中,也有一套不成文的规定。和其它的团队运动一样,这些规定很大程度上决定了开源社区如何看待一名开发者,特别是新加入社区的开发者。 按部就班,循序渐进 在参与社区之前,比如开放源代码或者其它什么的,你需要做一些基本工作。对于有眼界的开源贡献者,这意味这你需要理解社区的目标,并学习应该从哪里起步。人人都想贡献源代码,但是只有少量的人做过准备,并且乐意、同时也有能力完成这项艰苦卓绝的工作:测试补丁、复审...阅读全文