InfraPub 为您找到相关结果 682

聊聊很重要的内核技术eBPF

eBPF 的C代码,将LLVM译成驻留在ELF文件中的eBPF字节码。将加载到内核中,并创建必要的 eBPF-maps。eBPF 具有用作 socket filter,kprobe 处理器,流量控制调度,流量控制操作,tracepoint 处理,eXpress Data Path(XDP),性能监测,cgroup 限制,轻量级tunnel的类型。将加载的attach到系统中。根据不同的类型attach到不同的内核系统中。运行的时候,启动状态并且开始过滤,分析或者捕获信息。 2016年10月的NetDev 1.2大会上,Netronome的Jakub Kicinski和Nic Viljoen发表了标题为“eBPF / XDP硬件卸载到SmartNIC”。 Nic...阅读全文

博文 2020-08-16 11:08:44 debian.cn

使用 Go 语言的三个原因

几个星期前,我一个朋友问我:“为什么要关心 Go 语言”? 因为他们知道我热衷于 Go 语言,但他们想知道为什么我认为 其他人 也应该关心。本文包含三个我认为 Go 是重要的语言的原因。 安全 个人而言,你和我或许完全有能力在 C 中,既不会泄漏内存,也不会不安全地重复使用内存。然而,整体上,即使有超过40年的经验,用 C 的员也无法可靠地这样做。 尽管静态代码分析、valgrind、tsan 以及 “-Werror” 已经存在了几十年,却很少有证据表明这些工具被广泛认可,更不用说广泛采用。总而言之,事实表明,员根本无法安全地管理自己的内存。现在是离开 C 的时候了。 Go 不需要员直接管理内存,所有内存分配都由语言运行时自行管理,使用前初始化,必要时检查边界。它肯...阅读全文

博文 2021-01-28 17:50:28 debian.cn

Go 公布 2.0 设计草案:规模化和扩展性、支持泛型

去年7月,Go 语言官博就曾透露 Go 2 开发计划,并表示 Go 2 的目标就是解决 Go 1.x 在规模化方面做的还不够好的地方。随着时间的推进,开发团队已着手准备 2.0 版本的开发工作,并公布了设计草案,供社区讨论和反馈,以促进最终的语言设计。 设计草案包含三个方面,错误处理、错误值和泛型,并针对各个方面进行了详细的概述和改进草案。大致总结如下: 一、错误处理(Error handling) 为扩展至大型代码库,Go 必须是轻量级的,不会过度重复,且具备稳健性,能够优雅地处理出现的错误。 目前 Go 检查错误的代码太多,但处理这些错误的代码却严重不足。对于 Go 2,开发团队希望错误检查更加轻量级,减少用于错误检查的 Go 的文本量。此外,还能更加方便地错误处理,提...阅读全文

博文 2018-09-01 18:39:47 debian.cn

基于 Qt 的开源笔记软件 VNote 1.11.1 发布

辑器辑笔记。 ———————————————————————————————— VNote是一个受Vim启发开发的专门为Markdown而优化、设计的笔记软件,也是一个更了解员和Markdown的笔记软件。 VNote是一个基于Qt框架的、免费的开源笔记软件。VNote专注于Markdown的辑与阅读,以提供舒适的辑体验为设计目标。 VNote不是一个简单的Markdown辑器。通过提供笔记管理功能,VNote使得Markdown笔记更简单和舒适! 基于Qt框架,VNote能够在主流操作系统上运行,包括Linux, Windows以及macOS。【本文转载自开源中国】...阅读全文

博文 2018-01-05 23:43:22 debian.cn

王垠:如何掌握所有的程序语言

很多初学者至今还在给我信请教,问我该学习什么语言,怎么学习。由于我知道如何掌握“所有”的语言,总是感觉这种该学“一种”什么语言的问题比较低级,所以一直没来得及回复他们 可是逐渐的,我发现原来不只是小白们有这个问题,就连美国大公司的很多资深工师,其实也没搞明白。 今天我有动力了,想来统一回答一下这个搁置已久的“初级问题”。类似的话题貌似曾经过,然而现在我想把它重新一遍。因为在跟很多人交流之后,我对自己头脑中的(未转化为语言的)想法,有了更精准的表达。 如果你存在以下的种种困惑,那么这篇文章也许会对你有所帮助: 你是初学者,不知道该选择什么语言来入门。 你是资深的员或者团队领导,对新出现的种种语言感到困惑,不知道该“投资”哪种语言。 你的团队为使用哪种语言争...阅读全文

博文 2017-07-10 10:13:17 debian.cn

Node.js Vs. PHP:你应该选择哪一个

现在,Web开发公司和开发人员可以选择多种技术栈来构建Web应用。早期网络发展,不同的技术被用于前端和后端开发。但是,随着Node.js的发布,布局发生了变化,因为它允许开发人员使用 JavaScript 后端代码。这最终催生了MEAN(MongoDB + Express +AngularJS + NodeJS )堆栈 web 开发框架,从前端到后端甚至是数据库(MongoDB -JSON)都使用 JavaScript。在 Node.js 之前,Web 开发通常是在 PHP 的帮助下完成的,因为它很容易与 HTML 集成,帮助开发人员立即构建动态网站。在这篇文章中,我们将比较 Node.js 和 PHP,看哪一个最适合当前的行业需求。 PHP 和 Node.js 的基本区别在于...阅读全文

博文 2017-12-23 23:15:39 debian.cn

Rust 1.37.0 稳定版发布

-Guided Optimization) rustc 译器现在通过 -C profile-generate 和 -C profile-use 标志提供了对配置文件引导优化(PGO)的支持。 Profile-Guided Optimization 允许译器根据来自实际工作负载的反馈优化代码。它的工作方式是,在两个步骤中进行优化: 首先,是用译器插入的工具构建的。这是通过将 -C profile-generate 标志传递给 rustc 来完成的。然后,需要在示例数据上运行检测,并将分析数据入文件之后,重新构建,这一次使用 -C profile-use 标志将收集到的分析数据反馈回 rustc。此构建将利用收集到的数据,使译器能够对代码放置、内联和其他优化做出更好的决定 在...阅读全文

博文 2019-08-17 21:17:23 debian.cn

2016 年 Go 语言使用习惯调查

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 相关问题的答...阅读全文

博文 2021-01-28 17:50:23 debian.cn

ServiceMesh 透明代理Linkerd

Linkerd 是一个提供弹性云端原生应用服务网格(service mesh)的开源项目,也是面向微服务的开源 RPC 代理。Linkerd(发音 "linker-DEE")是一个透明的服务网格,旨在通过透明地将服务发现、负载均衡、故障处理,插桩(instrumentation)和路由添加到所有的服务间通信中,使现代应用安全可靠,而无需侵入应用内部本身的实现。 linkerd 作为一个透明的 HTTP/gRPC/thrift/ 等代理,通常可以以最少的配置被加入到现有的应用中,不管这些应用采用什么语言。linkerd 能与许多通用协议和服务发现后端运行,包括 Mesos 和 Kubernetes 等预定好的环境。 Linkerd 基于 Netty 和...阅读全文

为什么 Django 能持续统治 Python 开发世界

对于 Python 开发者来说,web 开发框架真可谓玲琅满目。然而 Django , 毋庸置疑的成为最受青睐的 web 框架。通过本篇博客,我来为大家讲解下为什么相比 Flask、Pyramid、Tornado、Bottle、Diesel、Pecan、Falcon 这些流行的 Python web 框架,Python 开发者更倾向于选择 Django。 再大肆宣扬Django之前,让我们简单了解一下web框架 Web框架是一个代码库,使开发人员更容易构建动态网站、Web应用和Web服务。 众所周知的是,每个网站都有一些通用的功能(如处理会话,数据验证等等),一些您每次创建网站时都需要的功能。 这使开发任务平淡乏味。 然而,使用Web框架可以让您每次创建网站都需要重新通用功能代...阅读全文

博文 2017-07-21 14:15:11 debian.cn

Netty+Nacos+Disruptor自研企业级API网关

: 1. 搭建环境 首先,我们需要安装Node.js和NestJS CLI,并创建一个NestJS项目。然后,我们需要安装TypeScript、GraphQL、TypeORM和其他依赖库。 2. 设计数据模型和API 在设计数据模型和API时,我们需要定义GraphQL Schema和TypeORM实体类。为了提高可维护性,我们可以使用代码生成工具进行自动化生成。 3. 实现后端功能 在实现后端功能时,我们需要NestJS控制器和服务,并调用TypeORM进行数据库操作。同时,我们需要集成GraphQL,并Resolver进行数据查询和操作。 4. 实现前端功能 在实现前端功能时,我们需要React组件,并使用Apollo Client调用GraphQL API。同时,我们需要...阅读全文

博文 2023-05-27 12:49:20 bianchengyuan123

Knoppix 8.6 发布,GNU/Linux 系统

kernel 5.2.5 和 Xorg 7.7(核心 1.20.4) 来支持当前的计算机硬件。内核补丁:Cloop,aufs32 位和 64 位内核都支持新旧计算机,64 位版本还支持具有超过 4GB RAM 和 chroot 到 64 位安装系统崩溃修复任务的系统。如果检测到具有 64 位功能的 CPU,引导加载将自动启动 64 位内核 (如果不是手动指定的话)。对于只能从 CD 启动的计算机,而不是从 DVD 或 USB 闪存笔启动的计算机,在“KNOPPIX”文件夹中放置了一个可启动的小型 CD 映像,该文件夹可以与完整的 USB 或 DVD 版本一起使用,以便在旧计算机上启动。QEMU-KVM 3.1 作为可脚本的虚拟化解决方案隐私增强的 tor 浏览器,可升级并可通过 knoppix...阅读全文

博文 2019-08-20 12:21:46 debian.cn

深入学习golang — channel

Consumer( queue <-chan int){ for i :=0; i < 10; i++{ v := <- queue fmt.Println("receive:", v) } } func main(){ queue := make(chan int, 1) go Producer(queue) go Consumer(queue) time.Sleep(1e9) //让Producer与Consumer完成 } 上面的示例在Producer中生成数据,在Consumer中处理数据。 4. Server模型 在server,一种常用的模型:主线接收请求,然后将请求分发给工作线,工作线完成请求处理。用go来实现,如下: func handle(r *Request...阅读全文

博文 2021-01-25 12:39:17 博客园

WebAssembly:无需容器的 Docker (上)

同的源语言创建可移植的二进制可执行文件。 这些二进制文件可以在各种环境中运行。 它起源于 Web,并得到各大主流浏览器的支持。Wasm 如何在浏览器中工作?浏览器引擎集成了一个 Wasm 虚拟机,通常称为 Wasm 运行时,可以运行 Wasm 二进制指令。 译器工具链(如 Emscripten)可以将源代码译为 Wasm 目标。 这允许将现有的应用移植到浏览器,并直接与在客户端 Web 应用中运行的 JS 代码通信。这些技术能让传统的桌面应用在浏览器中运行。现在它们可以在任何装了浏览器的设备上运行。 一些著名的例子包括 Google Earth 和用于计算机视觉的 Open CV 库。Wasm 如何在服务器上运行?除了浏览器,也有可以在浏览器之外运行的 Wasm 运行时,包括...阅读全文

博文 2023-01-03 06:35:56 spider

JavaFX 11 发布,与 JDK 拆分后的首个正式大版

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,建议使用...阅读全文

博文 2018-09-20 13:09:25 debian.cn

Red Hat Enterprise Linux 8 Beta 已发布

iptables,MySQL 8.0,MariaDB 10.3,PostgreSQL 10 和 9.6,Redis 4.0等等。主要特性有: 简化应用开发 —— 通过减少设置和配置工作,可以更快地代码 对于刚接触 Linux 的开发者来说,这是最简单的 RHEL 适用于传统和云/容器的应用,两者都有许多新工具 已经提供了许多工具来构建和测试应用 下载: 有三种方法可以访问 RHEL 8 beta,这取决于与 Red Hat 的现有关系: 当前的Red Hat开发会员可以通过Red Hat Developer下载。 如果不是开发会员,只需要在上面的链接注册一下即可,不需要费用。 如果是Red Hat Enterprise Linux的合作客户,登录Customer Portal就可以获取客户...阅读全文

博文 2018-11-17 21:01:26 debian.cn

微软发布基于 Debian 的交换机操作系统

Interface (SAI) 来控制交换机的动作,开发者无需关心底层的硬件细节。而底层的硬件必须实现 SAI ,微软已经将 SAI 贡献给 OCP 组织。 这里有一篇博客详细的描述了 SONiC 系统。SONiC 系统基于 Debian Linux 构建,可通过微软的 Azure GitHub repo 获取到,该系统使用包括 GPL 和 Apache 在内的许可证。 via theregister...阅读全文

博文 2021-01-28 17:50:23 debian.cn

AWS 宣布赞助 Rust 语言

毫无疑问,Rust 目前发展势头正劲。此前,微软安全响应中心探索采用 Rust 的消息引发大量关注,在连续四年蝉联“最受开发者喜爱的语言”后,Rust 可能已经从“想要学习的语言”逐渐转变为许多开发者“正在学习的语言”。自从四年前首次发布稳定版以来,它已经得到了广泛的采用,谷歌,微软和 Mozilla 等公司都在使用 Rust。现在,AWS 也向 Rust 伸出了橄榄枝。 近日,AWS 在其开源博客上发文宣布赞助 Rust 语言。迄今为止,Rust 已在 AWS 中实现了许多增长,Lambda、EC2 和 S3 等服务都选择在性能敏感的组件中使用 Rust。AWS 开源的 Firecracker microVM 项目也正是采用 Rust 。 AWS 从 Rust 维护者的视角解释了...阅读全文

博文 2019-10-17 22:42:27 debian.cn

WebAssembly:无需容器的 Docker (下)

本文翻译自 Wasm Labs @ VMware OCTO 的 blog: WebAssembly: Docker without container。这是 Wasm Labs 在 2022 年 12 月 15 日在冬季 Docker Community All Hands 7 的关于 Docker+WebAssembly 的演讲的文字版。作者:Asen Alexandrov,Wasm Labs 工师。文中的我们均指作者或 Wasm Labs。本篇文章将更具实践性,将以 PHP 为例带领大家实践 Docker + Wasm。上篇文章我们了解了服务端 Wasm 为什么有着重要的作用、什么是 WasmEdge 以及如何让解释型语言在 Wasm 里运行,这篇文章,我们将通过动手示例了...阅读全文

博文 2023-01-03 06:39:46 spider

Scrapy 架构及数据流图简介

Scrapy 是一个为了爬取网站数据,提取结构性数据而的应用框架。 可以应用在包括数据挖掘、信息处理或存储历史数据等一系列的中。本文着重介绍 Scrapy 架构及其组件之间的交互。 Scrapy 组件介绍 Scrapy Engine 引擎负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。 详细内容查看下面的数据流(Data Flow)部分。 调度器(Scheduler) 调度器从引擎接受request并将他们入队,以便之后引擎请求他们时提供给引擎。 下载器(Downloader) 下载器负责获取页面数据并提供给引擎,而后提供给spider。 Spiders Spider 是 Scrapy用户用于分析response并提取item(即获取到的item)或额外跟进的...阅读全文

博文 2017-07-23 22:56:26 debian.cn

基于Inception & Yearning做SQL审核的实践

SQL审核是保证数据库 DDL 和 DML 安全使用、SQL变更可追溯、降低线上数据事故概率的重要手段。去哪儿网开源的 Inception 工具有较大的使用基础,提供了相对完善的 API 接口,结合一些外层的操作界面,可以实现SQL审核、执行、备份和恢复功能,为DBA操作利器。本文详细介绍如何配置 Inception 和 Yearning 的整合。 Inception Inception是一个自动化运维工具,在Mysql前做一个审核和操作的屏障。跟Inception的交互是级别的,即通过Python或其他实现对Inception的命令调用,并解析结果。 Inception的文档地址:http://mysql-inception.github.io/inception...阅读全文

博文 2018-08-13 17:39:45 debian.cn

SonarQube 8.4 发布,分析时间最多可减少 80%

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,此版本还增加了其它四个...阅读全文

博文 2020-07-13 12:55:22 debian.cn

Kiwi TCMS 7.1 发布:开源测试用例管理系统

Kiwi TCMS 是一个集测试计划、测试运行和测试用例于一身的管理系统,用 Python 和 Django 。7.1 版本如下: 支持的升级路径: 5.3 (or older) -> 5.3.1 5.3.1 (or newer) -> 6.0.1 6.0.1 -> 6.1 6.1 -> 6.1.1 6.1.1 -> 6.2 (or newer) Improvements 将 Django 从 2.2.5 更新到 2.2.6将 python-GitLab 从 1.11.0 更新到 1.12.1pygithub 从 1.43.8 更新到 1.44psycopg2 从 2.8.3 更新到 2.8.4在所有遥测页面中添加帮助工具提示添加超链接验证 Fixes Issue #1147 API...阅读全文

博文 2019-10-31 09:34:07 debian.cn

Golang 之禅: 如何写优质代码

在本月初的 GopherCon 上,知名 Go 语言贡献者与布道师 Dave Cheney 发表了名为《The Zen of Go》的演讲,之后他整理了演讲内容在博客中分享,由于内容过长,他又了一个简洁版本: 完整版:https://dave.cheney.net/2020/02/23/the-zen-of-go简洁版:https://the-zen-of-go.netlify.com 这里简单翻译一下简洁版本的内容:简单、可读、可维护的 Go 代码的十个工要点。 每个包实现单一目标 设计良好的 Go 软件包提供一个单一的思路,以及一系列相关的行为。一个好的 Go 软件包首先需要选择一个好名字,使用电梯法则(30 秒内向客户讲清楚一个方案),仅用一个词来思考你的软件包要提供什么功能...阅读全文

博文 2020-02-25 20:48:33 debian.cn

Linux Systemd被爆远程漏洞 CVE-2017

在 Systemd (linux 操作系统流行的 init 系统和服务管理器) 中发现了一个关键漏洞, 这使得远攻击者有可能触发缓冲区溢出, 从而通过 dns 响应在目标计算机上执行恶意代码。 Systemd是什么 systemd 是一种系统初始化。和 sysVinit 以及 upstart 一样,systemd 会成为系统开机时启动的第一个进(至少 PID 是 1),由它掌管计算机接下来要做的事情,例如读取 fstab 挂载磁盘和按照 runlevel 的设定启动各种服务。其安全的重要性不言而喻。 Systemd远代码执行漏洞 CVE-2017-9445 该漏洞号 CVE-2017-9445 ,实际上驻留在 " systemd-resolved " 的...阅读全文

博文 2017-07-02 09:39:36 9445 影响多种Linux系统

TurnKey Linux 16.0 稳定版发布

TurnKey Linux 16.0 稳定版已发布,这也是该发行版首个基于 Debian 10 的衍生版本。 TurnKey Linux 是基于 Debian 的虚拟应用库,它将一些最好的开源软件集成到完备可用的解决方案中。每一个虚拟应用都为易用性进行了优化,并能在数分钟内就部署在裸机、虚拟机及云中。 每一个虚拟应用都可以光盘镜像或是虚拟机镜像的形式获得,而这份仍在增长的应用列表包括 Bugzilla、Django、Drupal、File Server、Joomla、LAMP、Magento、Mantis、MediaWiki、MoinMoin、Moodle、MovableType、MySQL、Openbravo、phpBB、PostgreSQL、ProjectPier、Rails...阅读全文

博文 2020-05-07 09:49:42 debian.cn

GlusterFS 和 Ceph 比比看

Ceph 的差异。顾名思义,GlusterFS 是来自 Linux 世界的文件系统,并且遵守所有 POSIX 标准。尽管你可以将 GlusterFS 轻松集成到面向 Linux 的环境中,但在 Windows 环境中集成 GlusterFS 很难。 Ceph 是一种全新的存储方法,对应于 Swift 对象存储。在对象存储中,应用不会入文件系统,而是使用存储中的直接 API 访问入存储。因此,应用能够绕过操作系统的功能和限制。如果已经开发了一个应用入 Ceph 存储,那么使用哪个操作系统无关紧要。结果是,Ceph 存储在 Windows 环境中像在 Linux 环境中一样容易集成。 基于 API 的存储访问并不是应用可以访问 Ceph 的唯一方式。为了最佳的集成,还有一个...阅读全文

博文 2017-08-09 10:35:29 debian.cn

如何在 Debian服务器 上启用双因子身份验证

法。 当在 /etc/ssh/sshd_config 中新加一行配置,如下。这样在建立sshliaSSH 需要提交一个 SSH 密钥,然后提示输入密码: AuthenticationMethods "publickey,password" 如果你想要对指定用户设置这些方法,那么请使用以下附加配置: Match User joseph AuthenticationMethods "publickey,password" 当你已经辑或保存了新的 sshd_config 文件,你应该通过运行以下来确保你没有犯任何错误: sshd -t 任何导致 SSH 不能启动的语法或其他错误都将在这里标记出来。当 ssh-t 运行时没有错误,使用 systemctl 重新启动 SSH: systemctl...阅读全文

博文 2018-12-05 11:44:56 debian.cn

Angular 6.0 即将发布 承诺更小更快更易用

Material 和其他解决方案的最新版本将一起发布,以便开发人员更好地访问最新版本的 Angular。 根据 Fluin 的说法,团队将重点放在缩小尺寸上,Angular 6 中的捆绑包将更小 ,以便为用户提供更快的体验。 团队正在通过更新到最新版本的 Webpack 来实现这一点。 此外,最新版本将引入一种新的方式来连接应用和服务中的模块。 例如,团队正在增加服务引用模块的能力,这样如果服务没有被使用,它就会消失,从而简化包的大小。 版本 6 也更新为 RxJS,即,使用 Observables 进行反应式的库 。 根据 Angular 的说法,这使得异步或基于回调的代码更容易。 在易于使用的一方面,该团队正在向 CLI 界面介绍更新 。 这个新命令将自动让用户保持最新状态并更新正在使用的...阅读全文

博文 2018-04-24 09:41:33 debian.cn

Go1.16 新特性:一文快速上手 Go embed

在以前,很多从其他语言转过来 Go 语言的同学会问到,或是踩到一个坑。就是以为 Go 语言所打包的二进制文件中会包含配置文件的联同译和打包。 结果往往一把二进制文件挪来挪去,就无法把应用运行起来了。因为无法读取到静态文件的资源。 无法将静态资源译打包进二进制文件的话,通常会有两种解决方法: 第一种是识别这类静态资源,是否需要跟着走。第二种就是考虑将其打包进二进制文件中。 第二种情况的话,Go 以前是不支持的,大家就会去借助各种花式的开源库,例如:go-bindata/go-bindata 来实现。 但从在 Go1.16 起,Go 语言自身正式支持了该项特性,今天我们将通过这篇文章快速了解和学习这项特性。 基本使用 演示代码: import _ "embed...阅读全文

博文 2021-02-17 08:44:12 CSDN

一位资深Java架构师的晋级心得

Java 架构师是什么?是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。 所谓架构师,思考的是全局的东西,是如何组织你的系统,以达到业务要求,性能要求,具备可扩展性(scalability),可拓展性(extendability),前后兼容性等。可能涉及到的东西包括了从硬件到软件的方方面面。 架构师在软件开发的整个过中起着很重要的作用。 架构师的主要任务不是从事具体的软件,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。 在成为Java架构...阅读全文

博文 2019-01-13 22:49:22 debian.cn

DevOps 越来越流行,2019 年这八大趋势值得关注

。 在 2019 年,将会发生从 CI 管道到 DevOps 装配线的转变。DevOps 装配线专注于自动化和连接多个团队执行的活动,例如开发人员的 CI,运维人员的基础架构配置和配置管理,测试人员的测试自动化,SecOps 的安全补丁,发布负责人的语义版本控制和部署到多种环境,等等。 下图展示了单个应用或服务的典型装配线: 自动化将成为主要焦点 关于 DevOps,我们谈论了很多自动化方面的内容。如果可能的话,零接触(zero-touch)自动化就是未来的发展方向。这并不是说你一定要自动化一切,只是说如果有必要,你就应该能够做到。了解 DevOps 周期的六个“C”,并确保在这些阶段之间应用自动化,这才是关键,这将是 2019 年的主要目标。 测试人员要学习码 DevOps 对知道如何...阅读全文

博文 2018-12-10 22:49:57 debian.cn

Ruby 2.5.0 稳定版发布

法代码覆盖。分支代码覆盖指检查哪些分支被覆盖到,哪些没有。而方法覆盖在指可以测量方法是否被调用。基于这些新特性运行你的测试用例,你可以精确地知道哪些分支和方法被运行,并更精确地计算测试的代码覆盖度。[功能 #13901] 新增 Hash#slice [功能 #8499] 和 Hash#transform_keys。[功能 #13583] Struct.new 现在可以被用于创建含有关键字参数的类。[功能 #11925] Enumerable#any?, all?, none? 和 one? 可以接受一个模式作为参数。[功能 #11286] 删除顶层常量查找。[功能 #11547] 我们最喜爱的库之一 pp.rb,现已自动加载。无需手动 require "pp" 来加载。[功能...阅读全文

博文 2017-12-25 21:59:41 debian.cn

21款必不可少的Ubuntu桌面应用程序

。 19. Unity Folders启动器组织整理 Unity Folders是一款恰如其名的应用,它让你可以在Unity启动器上创建可点击的文件夹。 如果你想不必打开Unity Dash,就可以根据类型(“游戏”、“办公”、“社交”等)管理最常用的应用,它再理想不过了。你可以定制文件夹图标(或根据里面的应用,自动生成图标),同时还可以对现有的文件夹进行辑、重新排列、更名及其他操作。 20. Clementine音乐播放器 我在开始撰本文时,就相信自己不会列出可替代Rhythmbox的其他任何音乐播放器,就因为很少有播放器像它那样提供强大的功能。 21. Go For It任务管理器 Ubuntu不再随带一款还不错的笔记应用(它过去随带Tomboy),但要是没有这样一种工具...阅读全文

博文 2021-01-28 17:50:19 debian.cn

C++ 夺冠!成为 TIOBE 2022 年度编程语言

Top 20,还有很长的路要走。 以下为 Top 20-50 的语言榜单: 第 51-100 名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排): ActionScript, Alice, Apex, B4X, bc, Bourne shell, C shell, Chapel, CL (OS/400), Clojure, Common Lisp, Crystal, cT, Elixir, Emacs Lisp, Erlang, Forth, GAMS, Hack, Icon, IDL, Inform, Io, J#, JScript, Korn shell, Ladder Logic, Limbo, LPC, ML, Modula-2, MQL5, NATURAL...阅读全文

博文 2023-01-10 06:42:12 CSDN博客

Solus Linux 正在打造“现代化的 Linux 发行版”,不依赖 GNU

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 的优化包管理器中基于功能的订阅(硬...阅读全文

博文 2020-07-12 09:08:23 debian.cn

2017 年会是 Serverless 爆发之年吗

、API 应用相同的上下文中运行或脚本。可以上传并运行可执行文件,例如 cmd、bat、exe、psl 等等。WebJobs 提供 SDK 用于简化针对 Web 作业可以执行的常见任务,例如图像处理、队列处理、RSS 聚合、文件维护,以及发送电子邮件等等。 Serverless 架构原则 按需使用计算服务执行代码 Serverless 架构是 SOA 概念的自然延伸。在 Serverless 架构中,所有自定义代码作为孤立的、独立的、细粒度的函数来和执行,这些函数在 AWS Lambda 之类的无状态计算服务中运行。开发人员可以函数,执行常见的任务。在比较复杂的情况下,开发人员可以构建更复杂的管道,排多个函数调用。 单一用途的无状态函数单单负责处理某一项任务的函数很容易测试,并稳...阅读全文

博文 2021-01-28 17:50:27 debian.cn

Rust 1.39.0 发布,async/.await 稳定了

: &[u8]) -> usize { slice.len() } 现在可以以更简洁的方式: fn len( #[cfg(windows)] slice: &[u16], // This parameter is used on Windows. #[cfg(not(windows))] slice: &[u8], // Elsewhere, this one is used. ) -> usize { slice.len() } 这里可以使用的属性包括: 条件译:cfg 和 cfg_attr控制 lint:allow、warn、deny 与 forbid应用于项目的过宏属性使用的帮助属性 这在整个语言生态中提供了一个更具可读性的基于宏的 DSL。 标准库中增加的 const fn 此版本中...阅读全文

博文 2019-11-11 09:44:43 debian.cn

PHP 7.4 有哪些新特性

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...阅读全文

博文 2019-11-29 20:45:16 debian.cn

3个 Linux 命令让你看起来很忙:摸鱼的技巧

。它播放的列由你决定,但默认情况下它包括一个加密货币挖掘模拟器、composer PHP 依赖管理器、内核译器、下载器、内存管理等等。不过,我最喜欢的是显示 simcity 加载消息的设置。因此,只要没有人检查得太仔细,你就可以花整个下午的时间等待电脑完成进度条。 Genact 有 linux、os x 和 Windows 版本,Rust 源码可以在 github 上找到。 Hollywood Hollywood 采取了更直接的方式。它本质上是在终端中创建一个随机数和拆分屏幕的配置,并启动看起来很忙的应用,如 htop、目录树、源代码文件和其他应用等,并每隔几秒钟进行切换。它以 shell 脚本的形式组合在一起,因此可以很容易地根据你的需要进行修改。 Hollywood 的源代码可...阅读全文

博文 2019-09-28 15:48:43 debian.cn

Golang 操作 Kafka 样例

1. Kafka介绍 1.1.1. Kafka是什么 kafka使用scala开发,支持多语言客户端(c++、java、python、go等) Kafka最先由LinkedIn公司开发,之后成为Apache的顶级项目。 Kafka是一个分布式的、分区化、可复制提交的日志服务 LinkedIn使用Kafka实现了公司不同应用之间的松耦和,那么作为一个可扩展、高可靠的消息系统 支持高Throughput的应用 scale out:无需停机即可扩展机器 持久化:通过将数据持久化到硬盘以及replication防止数据丢失 支持online和offline的场景 复制代码 1.1.2. Kafka的特点 Kafka是分布式的,其所有的构件borker(服务端集群)、producer(消息生产...阅读全文

博文 2023-01-10 13:46:09 掘金

最全的 DevOps 工具集合

、Selenium、Jasmine 和 Cucumber。 JUnit JUnit 是用于 Java 语言的单元测试框架。JUnit 在测试驱动开发的环境中扮演着重要角色,从 SUnit 起源的一组单元测试框架(统称为 xUnit)之一。 xUnit.net xUnit.net 是由 NUnit 的原作者的,用于.NET Framework 的开源单元测试工具。 Selenium Selenium 是用于测试 Web 应用的可移植框架。Selenium 提供了一种回放工具,使用户无需学习测试脚本语言就能功能测试。 Jasmine Jasmine 是用于 JavaScript 的开源测试框架。它可以在任何支持 JavaScript 的平台上运行,不会入侵应用或 IDE,还有着易读的语法。在...阅读全文

博文 2021-05-26 14:35:21 博客园

bmon:一个强大的网络带宽监视和调试工具

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...阅读全文

博文 2021-01-28 17:50:27 debian.cn

Debian 安装包的简单制作

└── usr ├── local │ ├── bin (可执行文件安装位置) │ └── lib (使用到的相关库,目标机器没有安装) └── share (非必须) └── doc └── example-package 准备相关文件 译完成后,将译后的文件放到 example-package/usr/local/bin下 根据需要按上方的文件结构添加内容 control 文件 Package: example-package Version: 1.0-1 Architecture: amd64 # 运行的CPU架构 Maintainer: UserName <邮箱> Installed-Size: 10 Section: unknown # 应用类型 不知道就用 unknown...阅读全文

博文 2021-01-28 17:50:14 debian.cn

Linux 27周年:这27件有趣的事实你可能不知道

开发和发布时间表后,新版本的 Linux kernel 现在基本每隔 66 天左右发布一次。 18、Linux 不是 Linus Trovalds 唯一知名的作品,还有 Git 版本控制系统和潜水应用 SubSurface 。 19、据估计,90% 的好莱坞视觉效果在生产流的某个阶段依赖于 Linux 。 20、根据 openhub.net 的统计数据,超过 95% 的 Linux 是用 C 语言的。 21、最新版本的 Linux kernel 可能有 13.3%的代码由空行组成。这并非毫无意义,空行是严谨的码风格的一部分,使内核保持整洁、高效和有。 22、基于 Linux 的 Android 是目前全球最成功的移动操作系统。 23、Linux 的每个内核版本都有一个有趣的代号,比...阅读全文

使用 MongoDB 之前应该知道的 14 件事

有一个“填充因子(padding factor)”,为文档增长提供空间。 你也许会想,你可以通过不建立数组索引来绕开这个问题。遗憾的是,没有索引,你会遇到其他问题。因为文档会从头到尾扫描,找到一个接近数组尾部的元素需要花更多的时间, 大部分处理这个文档的操作都会变慢 。 忘记聚合情况下的阶段排 在有查询优化器的数据库系统中,你的查询是说明你想要什么而不是如何获取它。这就像在餐馆中点餐;你通常只需要点菜,而不必对厨师发出详细的指令。 在 MongoDB 中,你是对厨师发指令。例如,你需要通过$match 和$project 确保管道中的数据尽早减少,排只在数据减少时发生一次,查找按照你希望的顺执行。查询优化器省去了不必要的工作,优化阶段顺,选择连接类型,这会把你宠坏。MongoDB...阅读全文

细数k8s支持的4种类型的container - 侃豺小哥

。由于这种模块化,您只需和测试git同步器一次,即可在众多应用中重复使用它。而且,如果有人它,您甚至不需要这样做。 实现辅助功能 。这种场景一般出现在DevOps中。比如将收集日志的组件以Sidecar的方式部署,实现收集日志的用途,或是部署一个Sidecar组件从配置中心监听配置变化,实时更新本地配置。 生命周期 Sidecar容器的所有问题都与容器生命周期相关性有关。由于Pod中的常规容器之间没有区别,因此无法控制哪个容器首先启动或最后终止,但是先正确运行Sidecar容器通常是应用容器正确运行的要求。 从1.18版本开始,K8S内置的Sidecar功能将确保Sidecar容器在正常业务流开始之前就启动并运行,即通过更改pod的启动生命周期,在init容器完成后启动...阅读全文

博文 2021-08-20 11:45:32 博客园

什么是线程安全,以及并发需要知道的几个概念

= new Thread(); t1.start(); t2.start(); t1.join(); t2.join(); System.out.println(i); } } 两个线 t1 和 t2 同时开启,执行run方法,在我们的预想中,如果是线安全的话,那么main的执行结果应该是20,但是因为 i 是共享数据,而没有对 i 的操作做同步的处理,最终运行的结果并不是20,所以这种情况就不是线安全的情况。 解决的办法也比较简单,可以利用synchronized关键字来修饰方法或代码块,这部分的知识也是并发中非常重要的一块,当然,本文就不探究了,之后单独篇文章出来细说。...阅读全文

博文 2018-12-31 20:44:06 debian.cn

2017 热门开源自动化测试框架优缺点对比

1. Robot Framework Robot Framework(RF)是用于验收测试和验收测试驱动开发(ATDD)的自动化测试框架。 基于 Python ,但也可以在 Jython(Java)和 IronPython(.NET) 上运行,提供跨平台支持(Windows、Linux 或 MacOS )。 优点: 通过使用关键字驱动测试(KDT)方法简化了自动化测试过,方便测试人员创建易读的测试。 测试数据语法简单易用。 生态系统丰富。由各种通用测试库和工具组成,这些工具都是作为独立项目开发的。 具有高度可扩展性。 可通过 pabot 或 Selenium Grid 执行并行测试。 缺点: 自定义 HTML 报告较为麻烦。 如果是针对大范围的库和扩展的 KDT 自动化测试,建议使用...阅读全文

博文 2017-11-15 08:52:47 debian.cn