InfraPub 为您找到相关结果 613

成功运作一个开源项目的15个要点

名称也是如此(开源项目的产品通常与项目共享名称,但有些项目会生产多个产品)。声明项目的品牌为商标,并考虑注册商标。制定商标使用指南,以便采用者知道如何使用此品牌。这是一个与开源软件基金会合作可以增值的领域。基金会可以代表社区持有和捍卫项目的商标。这可以避免任何特定的个人或组织劫持开源项目的名称。 13、管理知识产权和权 为项目作出贡献的代码、文档和其他工件都是知识产权。谁是这些知识产权的拥有者呢?作者保留所有权还是指派给了另一个实体?确保所有的贡献者理解贡献者的权利和责任。考虑让贡献者签署开发者原产地证书(DCO)或贡献者许可证协议(CLA)。确保权声明包含在源代码和通知中。 请注意,项目本身不可能作为持有权的法律实体。这是另一个开源基金会可以提供有价值的服务的地方。 14、选择OSI...阅读全文

博文 2017-11-08 09:58:28 debian.cn

Linux下多线程程序为什么消耗大量虚拟内存

; getchar(); getchar(); pthread_create( &th, 0, thread_run, 0 ); while ( (getchar() ) ) { start = 1; } return(0); } 其运行结果如下图,刚开始时,进程占用虚拟内存14M,输入0,创建子线程,进程内存达到23M,这增加的10M是线程堆栈的大小(查看和设置线程堆栈大小可用ulimit -s),第一次输入1,程序分配1k内存,整个进程增加64M虚拟内存,之后再输入2,3,各再次分配1k,内存均不再变化。 这个结果让我欣喜若狂,由于以前学习过谷歌的Tcmalloc,其中每个线程都有自己的缓冲区来解决多线程内存分配的竞争,估计新的glibc同样学习了这个技巧,于是查看pmap $(pidof main...阅读全文

博文 2015-01-28 10:35:39 debian.cn

Linux 系统 vim 编辑器使用简明教程

vi(vim)是上Linux非常常用的代码编辑器,很多Linux发行都默认安装了vi(vim)。vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。vi是“visual interface”的缩写,vim是vi IMproved(增强的vi)。在一般的系统管理维护中vi就够用,如果想使用代码加亮的话可以使用vim。 基本上vi可以分为三种状态,分别是命令模式(command mode)、输入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 1) 命令模式(command mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式、底行模式下。 2) 输入模式(Insert mode) 只有在输入模式下,才可以...阅读全文

博文 2015-07-25 16:33:04 debian.cn

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

ATOM feeds 使用 Django,你可以通过创建一个简单的Python类来快速创建 RSS 和 ATOM feeds。 在数据库中自动创建表 如果你的数据库中缺失了某一个表,你可以通过执行 Django 的迁移命令来自动创建它。 容易的数据迁移 数据迁移是 Django 中最有用的功能之一。通过使用 Django 的迁移方法,你可以在短时间内改变一个数据库模式。同样也容易就能跟踪你的数据库模式和相关的改变。为数据迁移所做的命名能够帮助你进行本控制,还有很多选项可以用来合并本和进行修改。 安全性 Django非常安全,该框架默认情况下可以防止 XSS 攻击、CSRF 攻击,SQL 语句注入、点击劫持、用户管理、cookies、邮件标头注入、密码攻击、目录遍历攻击等等。 Django有一个...阅读全文

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

玩转 AWS 的必备工具

SaltStack。 AnsibleAnsibleisSimpleITAutomation Ansible的配备简易,不用在远程控制instances上事先尤其的手机软件,只必须能根据ssh登陆和Python就可以了。其原理都不繁杂,Ansible最先根据ssh将Ansible的可执行程序拷贝到总体目标isntances上并实行,随后根据ssh连接在远程控制服务器上启用Ansible可执行程序。Ansible应用YAML做为配备模英语的语法。 小编在考博士期内以前参加过一个十分相近Ansible的群集管理系统软件新项目GXPClusterShell。GXP比Ansible大概早了五年。根据GXP不但能够达到相近Ansible的群集管理方法,与此同时也涵盖了一个根据make的Map-Reduce解决构架和一...阅读全文

玩转 AWS 的必备工具

主要详细介绍Ansible和SaltStack。 AnsibleAnsibleisSimpleITAutomation Ansible的配备简易,不用在远程控制instances上事先尤其的手机软件,只必须能根据ssh登陆和Python就可以了。其原理都不繁杂,Ansible最先根据ssh将Ansible的可执行程序拷贝到总体目标isntances上并实行,随后根据ssh连接在远程控制服务器上启用Ansible可执行程序。Ansible应用YAML做为配备模英语的语法。 小编在考博士期内以前参加过一个十分相近Ansible的群集管理系统软件新项目GXPClusterShell。GXP比Ansible大概早了五年。根据GXP不但能够达到相近Ansible的群集管理方法,与此同时也涵盖了...阅读全文

Apollo 分布式配置中心详解

本发布管理 所有的配置发布都有本概念,从而可以方便地支持配置的回滚。 灰度发布 支持配置的灰度发布,比如点了发布后,只对部分应用实例生效,等观察一段时间没问题后再推给所有应用实例。 权限管理、发布审核、操作审计 应用和配置的管理都有完善的权限管理机制,对配置的管理还分为了编辑和发布两个环节,从而减少人为的错误。所有的操作都有审计日志,可以方便的追踪问题。 客户端配置信息监控 可以在界面上方便地看到配置在被哪些实例使用。 部署简单 配置中心作为基础服务,可用性要求非常高,这就要求 Apollo 对外部依赖尽可能地少,目前唯一的外部依赖是 MySQL,所以部署简单,只要安装好 Java 和 MySQL 就可以让 Apollo 跑起来。 Apollo 配置中心适用范围 既然 Apollo 定位...阅读全文

博文 2020-04-12 12:16:26 debian.cn

欧洲核子研究组织(CERN)是如何使用 Linux 和开源的 - 云+社区

现的要早,多年来,他们一直在使用各种开源技术通过 Linux 服务器提供服务。“在过去的十年中,我们发现,与其自己解决问题,不如找到面临类似挑战的上游开源社区进行合作,然后我们一同为这些项目做出贡献,而不是一切都由自己来创造和维护。“Bell 说。一个很好的例子是 Linux 本身。CERN 曾经是 Red Hat Enterprise Linux 的客户。其实,早在 2004 年,他们就与 Fermilab 合作一起建立了自己的 Linux 发行,名为 Scientific Linux。最终他们意识到,因为没有修改内核,耗费时间建立自己的发行是没有意义的,所以他们迁移到了 CentOS 上。由于 CentOS 是一个完全开源和社区驱使的项目,CERN 可以与该项目合作,并为...阅读全文

博文 2021-11-29 13:20:55 腾讯云

你应该选择Cinnamon作为Linux桌面环境的十个理由

Cinnamon 桌面 Cinnamon目前的最新本为3.2。Cinnamon可用于多种发行,其中包括Debian、Arch、Gentoo、Mint、Fedora以及OpenSUSE等。 使用Cinnamon的理由 1. 集成度。桌面的选择与应用可用性并无关联。事实上,我所用过的任何应用都能够在任意桌面环境中运行良好,Cinnamon自然也不例外。不过,Cinnamon确实能够为各类面向KDE与GNOME乃至任何其他桌面编写的应用提供全部必要库,且带来良好的无缝化体验。 2. 外观。Cinnamon拥有清晰、简洁的外观设计,且字体与颜色组合适于阅读。大家可以通过System Settings -> Desktop菜单轻松完成图标显示设置,也能够借此指定桌面图标应该仅显示在主显示器上、副显示器上或者同时...阅读全文

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

Kubernetes常用命令大全(持续更新)

分析错误)对控制器和服务,node同样有效 kubectl describe pods xxxxpodsname --namespace=xxxnamespace 其他控制器类似吧,就是kubectl get 控制器 控制器具体名称 查看pod日志 kubectl logs $POD_NAME 查看pod变量 kubectl exec my-nginx-5j8ok -- printenv | grep SERVICE kubectl get cs #### 集群健康情况 kubectl cluster-info #### 集群核心组件运行情况 kubectl get namespaces #### 表空间名 kubectl version #### 本 kubectl api...阅读全文

博文 2020-03-13 12:35:13 debian.cn

Hadoop 核心 - HDFS 分布式文件系统详解

据信息。 3. HDFS的特性 首先,它是一个文件系统,用于存储文件,通过统一的命名空间目录树来定位文件; 其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。 1. master/slave 架构(主从架构) HDFS 采用 master/slave 架构。一般一个 HDFS 集群是有一个 Namenode 和一定数目的 Datanode 组成。Namenode 是 HDFS 集群主节点,Datanode 是 HDFS 集群从节点,两种角色各司其职,共同协调完成分布式的文件存储服务。 2. 分块存储 HDFS 中的文件在物理上是分块存储(block)的,块的大小可以通过配置参数来规定,默认大小在 hadoop2.x 本中是 128M。 3. 名字空间...阅读全文

RabbitMQ 高可用实现镜像队列

:A,B同时停 该场景下可能是由掉电等原因造成,只需在30s内联系启动A和B即可恢复镜像队列。 场景3:A先停,B后停,且A无法恢复。 因为B是master,所以等B起来后,在B节点上调用rabbitmqctl forget_cluster_node A以接触A的cluster关系,再将新的slave节点加入B即可重新恢复镜像队列。 场景4:A先停,B后停,且B无法恢复 该场景比较难处理,旧本的RabbitMQ没有有效的解决办法,在现在的本中,因为B是master,所以直接启动A是不行的,当A无法启动时,也就没本在A节点上调用rabbitmqctl forget_cluster_node B了,新本中forget_cluster_node支持-offline参数,offline参数允许...阅读全文

博文 2018-12-30 19:21:59 debian.cn

Golang 操作 Kafka 样例

务器都是一个代理(Broker). 消费者可以订阅一个或多个话题,并从Broker拉数据,从而消费这些已发布的消息。 5.Partition(分区):Topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset) Message:消息,是通信的基本单位,每个producer可以向一个topic(主题)发布一些消息。 复制代码 1.1.5. 消息 消息由一个固定大小的报头和可变长度但不透明的字节阵列负载。报头包含格式本和CRC32效验和以检测损坏或截断 1.1.6. 消息格式 1. 4 byte CRC32 of the message 2. 1 byte "magic...阅读全文

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

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

API 中的一种特殊的 ephemeralcontainers 处理器进行创建的,而不是直接添加到 pod.spec 段,因此无法使用 kubectl edit 来添加一个临时容器。 与常规容器一样,将临时容器添加到 Pod 后,将不能更改或删除临时容器。 为什么我们需要Ephemeral 容器? 我们知道容器的优点是它们通过使用不变方法提供所有必需的依赖项来运行隔离的进程。通过仅将所需的依赖项添加到镜像中,容器可以降低攻击面并提供更快的启动和部署。使用“distroless”方法构建容器镜像(基于scratch),通过仅包含已编译的应用程序二进制文件,将容器镜像提升到了一个新的水平。与普通的容器镜像不同,它们不基于任何种类的Linux发行,因此不包含任何其他可通过kubectl exec执行...阅读全文

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

Debian 往事: 与已故创始人 Ian Murdock 的昔日访谈

来分享一下他打造 Debian 的那段历程。 Murdock 第一次接触到 GNU/Linux 是在 1993 年,当时他还是个 20 岁的学生,在普渡大学学习会计学。「那个年代,PC 才刚刚发展到勉强能运行 Unix 操作系统。我当时用的就是 Unix,那时候我觉得 Linux 是能让我更方便地使用 Unix 的一种方式。」用 Murdock 的话来说,当时的软件「完成度还相对粗糙」,但完善、改良软件对他来说也是一种兴趣爱好。 「Linux 最棒的地方之一就是它是第一批你不仅能看到它在干嘛,你还能亲自尝试着对它本身做尝试、做改动的操作系统。」 Murdock 开始研究的时候,GNU/Linux 的发行还很少。Murdok 当时选择的是 SLS,Softlanding Linux...阅读全文

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

Monit:开源服务器监控工具

Monit是一个跨平台的用来监控Unix/linux系统(比如Linux、BSD、OSX、Solaris)的工具。Monit特别易于安装,而且非常轻量级(只有500KB大小),并且不依赖任何第三方程序、插件或者库。 Monit可以监控服务器进程状态、HTTP/TCP状态码、服务器资源变化、文件系统变动等等,根据这些变化,可以设定邮件报警、重启进程或服务。易于安装、轻量级的实现以及强大的功能,让Monit成为一个理想的后备监控工具。 官网:https://mmonit.com/monit文档:https://mmonit.com/monit/documentation/monit.html最新本:https://mmonit.com/monit/dist/monit-5.20.0...阅读全文

博文 2023-04-12 15:21:43 阿里云开发者社区

HTML 5.1 — 14 项新增特性及使用案例

HTML5 属于万维网联盟 (W3C), 这个组织为整个网络界提供了标准,如此形成的协议可在全世界通行。在 2016 年 11 月, W3C 对长期行使的 HTML 5 标准进行了更新,它是2年内的第一次小更新。许多最开始提出的 HTML 5.1 功能特性都因为设计上的缺陷和缺乏浏览器厂商的支持而去掉了。 尽管有一些元素和功能提升被带进了 HTML 5.1 里面, 但它仍然是一个小的更新。其中的一些新的元素包含了组合标签, 现在这样的元素包括有

,
, 以及, 这样就为开发者提供了更多表达创意和内容的空间。 W3C 以及开始着手发展 HTML 5.2 草案,有望于 2017 年底发布。而我们在这里所要呈现的是在本...阅读全文

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

观点:DDR内存即将谢幕 HBM 3/4内存才是未来

Tesla P100上商用了HBM 2技术,不过消费级市场上使用HBM 2技术还是AMD去年的RX Vega显卡,但是因为HBM 2显存的成本太过昂贵,RX Vega上实际上使用了两组4GB HBM 2,等效位宽比第一代减少一半,尽管频率大幅提升,所以实际带宽反而低了一些。 见识过HBM的玩家对该技术肯定印象深刻,那么未来它又该如何发展呢?HPE(惠普企业级)公司的Nicolas Dube日前分享了他的一些观点,在他看来DDR内存要走到尽头了(DDR is Over),特别是一些需求高带宽的场合中。 根据他分享的一些数据,HBM 2内存将在2018年大量应用,HBM 3将在2020年左右应用,改进的HBM 3+技术在2022年应用,2024年则会有HBM 4内存,带宽及容量也会逐级增长,比如现在的...阅读全文

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

内网穿透利器frp部署配置指南

台的frp服务端frps和客户端frpc可执行文件。 这里下载的0.29本。 服务端: 1 2 3 4 5 6 wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_amd64.tar.gz tar -zxvf frp_0.29.0_linux_amd64.tar.gz cd frp_0.29.0_linux_amd64 mkdir /usr/local/frp cp frps /usr/local/frp cp frps.ini /usr/local/frp 2. 配置启动服务端frps 编写frps的Systemd配置文件/etc/systemd/system...阅读全文

博文 2021-02-18 14:42:16 青蛙小白

Open Source Initiative 批准四个新的开源许可证

许可证。 四个新的许可证 首先是 Cryptographic Autonomy License(CAL)。这个许可证是为分布式密码学应用而设计的。现有的开源许可证无法保证开放性,因为如果没有义务与其他对等体共享数据,那么一个对等体就有可能损害网络的运行。所以,CAL 除了是一个强大的权许可以外,还包括向第三方提供独立使用和修改软件所需的权限和材料,而不使第三方有数据或功能的损失。 随着分布式密码学在加密结构的点对点共享中越来越多的使用,如果更多的开发者发现自己需要一个像 CAL 这样的法律工具,也就不足为奇了。我们希望由此产生的许可证是清晰易懂的,并希望开源从业者会发现它大有用处。 在我们之前的报道中曾提到,欧洲核子研究组织 CERN 提交的 CERN Open Hardware...阅读全文

博文 2021-03-01 10:44:35 OSChina

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

Netty+Nacos+Disruptor自研企业级API网关 download:https://www.51xuebc.com/thread-566-1-1.html React18+TS+NestJS+GraphQL全栈开发示例 全栈开发是指一位开发人员可以熟练掌握前端、后端和数据库等多个领域的技术,能够完整地开发一个应用程序。在本文中,我们将介绍如何使用React18+TS+NestJS+GraphQL这个技术组合来进行全栈开发。 技术选型 在开始开发之前,我们需要选择合适的技术栈。以下是我们所采用的技术: React 18:React18是React框架最新本,它具有更好的性能、更好的可访问性、更好的代码拆分等特点,可以提高开发效率和应用性能...阅读全文

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

系统解析JDK源码,领略大牛设计思想,JAVA面试必备

系统解析JDK源码,领略大牛设计思想,JAVA面试必备 download:https://www.51xuebc.com/thread-555-1-1.html Vue3实战商城后台管理系统开发示例 Vue是一款流行的JavaScript框架,它可以帮助我们快速构建高效、可维护、易用的Web应用程序。在本文中,我们将介绍如何使用Vue3来开发一个商城后台管理系统。 技术栈选型 在开始开发之前,我们需要选择合适的技术栈。以下是我们所采用的技术: Vue.js 3:Vue.js 3是Vue框架最新本,它具有更好的性能、更好的TypeScript支持、更好的响应式系统等特点,可以提高开发效率和应用性能。 Element Plus:Element Plus是一套基于Vue3的UI组件库,提供了丰...阅读全文

博文 2023-05-27 12:50:27 bianchengyuan123

Docker更名Moby,也是无奈之举

有开源协作机制转移到Moby项目当中。” 有些人认为这可能代表着Docker已经被改名为Moby。但事实上,对于Docker CE或者EE本的用户而言,此次变更不会造成任何影响。Moby仅适用于此前利用Docker代码开发特定容器软件的企业及个人。 为了根据GitHub上的表情符号对此次变更引起的混乱进行量化,截至本文发稿之时,Hykes发表的帖子共获得73个赞、461个踩与377个困惑表情。另外还有18个开心表情、69个欢呼表情与16个心形表情。 在这条pull请求的样讨论当中,Hykes承认相关沟通工作本可以处理得更好。他进行了详尽的说明以平息人们对于Hacker News之上公布的更名决定的强烈不满。他解释称,“看起来pull请求中的解释还不够明确,对此我深表抱歉。”...阅读全文

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

Redis 6 将采用全新协议RESP3 提供客户端缓存功能

缓存功能,保证存储在客户端内存的数据,在收到来自服务器的失效通知时才失效。 另外,当客户端和服务器的连接中断时,客户端无法接收到数据失效通知,这可能会导致服务出现问题。针对这种情况,一般的做法是重新建立客户端和服务器之间的连接,并更新客户端当前的缓存。antirez 表示可以一直保持连接是最好的情况,但为了降低风险,Redis 服务器在与客户端断开连接时,会将失效通知发送给其他客户端。 这项名为”Client side caching” 的功能尚未正式确定名字,最后可能会被成为”Tracking”。Redis 作者还表示在 Redis 6 候选发布之前,这些功能都会进行调整,希望社区能积极反馈意见。 由于 Client side caching 功能需要使用 RESP3 协议来支持实现...阅读全文

百度开源项目 ECharts 首进 Apache 孵化器

的定制能力。ECharts 底层依托了开源渲染引擎 ZRender ,支持 Canvas 和 SVG 等多种方式的渲染,支持 PC 、移动端、数据大屏、服务端渲染等多种设备场景。 目前,在 2018 年初发布的新本 ECharts (4) 中,一些常用图表已支持最高达千万级的数据可视化,并且提供了小程序、无障碍访问等支持。基于 WebGL 的 ECharts-GL 能支持各种 3D 图表渲染、以及海量数据的渲染加速。目前,各种基于 ECharts 的扩展库,以及相关的可视化服务系统已经形成了丰富的产品体系和活跃的社区环境。ECharts 目前在 GitHub 上拥有 25k+ 的关注和 2k+ 的相关项目。大量的社区的反馈和贡献使 ECharts 不断地迭代进化。 业内人士认为,进入...阅读全文

博文 2018-03-09 08:46:07 debian.cn

高性能日志采集工具 logpipe 简单介绍

在集群化环境里,日志采集是重要基础设施。本文结合最新的 1.0.9 ,对 logpipe 做一个简单的介绍。开源主流解决方案是基于 flume-ng,但在实际使用中发现 flume-ng 存在诸多问题。 比如 flume-ng 的 spoolDir 采集器只能对文件名转档后的大小不能变化的最终日志文件进行采集,不能满足采集时效性要求,如果要采集正在被不断追加的日志文件,只能用 exec 采集器搭配 tail -F 命令,但 tail -F 命令又不能通配目标目录中将来新增的未知文件名。其它解决方案如 logstash 由于是 JAVA 开发,内存占用和性能都不能达到最优。 作为一个日志采集的本地代理,内存占用应该小而受控,性能应该高效,耗费 CPU 低对应用影响尽可能小,要能异步实时追踪...阅读全文

Linux系统诊断-内存基础

的文件,大多反馈系统信息的实时情况(进程、内存、cpu、设备信息等)。结论: /proc/meminfo 是 /proc 文件系统下保存你内存相关信息的"伪文件"。2.2 命令输出简介每个发行输出都有一定差异,我们以debian8 4.19.x发行为例。root@4f996feeb851:~# free -m total used free shared buffers cached Mem: 1991 1909 81 4 155 836 -/+ buffers/cache: 917 1073 Swap: 1023 1 1022大部分的命令输出意思,大家可以在man文档中找到解析,这里不做赘述。used: 已使用的内存 used = total - free -buffers...阅读全文

博文 2021-02-11 14:22:42 SegmentFault 思否

下一代时间同步服务 Chrony 详解

Chrony 是一个多功能的 NTP (Network Time Protocol) 实现,类 Unix 系统上 NTP 客户端和服务器的替代品。它可以通过 NTP 服务或者类似 GPS 时钟接收器的硬件级参考时钟来同步系统时钟,具有更好的时钟准确度,并且对于那些间歇性互联网连接的系统很有帮助。Chrony 是免费开源的,并且支持 GNU/Linux 和 BSD 衍生、Solaris 等。 Chrony 有两个核心程序:一个是 chronyd 守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。另一个是 chronyc,它提供一个用户界面,用于监控性能并进行多样化的配置。chronyc 可以在 chronyd 实例控制的计算机上工作...阅读全文

博文 2021-01-04 08:41:14 debian.cn

如何写好技术文档 — 来自十多年的文档经验总结

本文大部分内容翻译总结自《Software Engineering at Google》 第10章节 Documentation。 另外,该书电子近日已经可以免费下载了 https://abseil.io/resources/swe_at_google.2.pdf,有兴趣的同学可以下载翻阅下。 首先声明,本问所说的文档不仅限于纯文本文档,还包含代码注释(注释也是一种特殊形式的文档)。 ## 文档的重要性 ## 高质量的文档对于一个组织或团队来说有非常多的益处,比如让代码和API更容易理解、错误更少;让团队成员更专注于目标;也可以让一些手工操作更容易;另外如果有新成员加入的话有文档也会让他们更快融入…… 写文档有比较严重的收益滞后性,不像测试,你跑一个测试case,它能立即告诉你是对还是错...阅读全文

博文 2021-07-30 16:15:13 joseph

Debian 向左:或将迎来根本性改革 - OSCHINA

开源社区是个独特的存在。它虽然结构松散但却又切实有效,为社会提供便利好用的产品却不以利益为目的,将志趣相同的人们聚集在一起但又完整地保存了每一个个体的独特性...... 这些开源社区就像是一场场风格迥异的社会实验。 其中,Debian 社区是一个典型代表。作为 Linux 最早的发行本之一,诞生于1993年的 Debian 可以算是开源社区中的“活化石”。这也令 Debian 在机制、行事和文化等方面都体现出了一定的“古典”特质。 最近,Debian 社区正在酝酿一件大事 —— 改革自己的决策机制。一直以来,Debian 的决策机制都饱受诟病,不少优秀的开发者因此离开,这样的变革或许不可避免。 01 离开 “长久以来,Debian 都难以作出改变。” 2014年的时候,Joey Hess...阅读全文

博文 2021-12-06 13:55:01 中文开源技术交流社区

得物云原生全链路追踪Trace2.0-采集篇 - OSCHINA

,基础框架本参差不齐。 尽管监控系统在每一次迭代时都会尽可能保证最大的向后兼容,但将近两年的迭代周期里,不同本造成的数据差异也极大制约了监控门户系统天眼的迭代,开发人员长时间奔波于数据上的妥协,在很多功能的实现上曲线救国。 稳定性层面 相关预案依托于 Spring 框架 Bean 的自动装配逻辑,业务方理解成本低,便于变更,但缺少细粒度的预案,比如运行时期间特定逻辑降级等等。 2021 年下半年开始,为了充分平衡以上的收益与风险,我们决定将监控采集端与基础框架解耦,独立迭代。在此之前,在 CNCF(云原生计算基金会)的推动下,OpenTracing 也与 OpenCensus 合并成为了一个新项目 OpenTelemetry。 四、 0x03 第三阶段 向前一步 基于...阅读全文

博文 2022-12-10 06:50:41 中文开源技术交流社区

Kafka 3.0新特性全面曝光,真香!

导语 | kafka3.0的本已经试推行去zk的kafka架构了,如果去掉了zk,那么在kafka新的本当中使用什么技术来代替了zk的位置呢,接下来我们一起来一探究竟,了解kafka的内置共识机制和raft算法。一、Kafka简介Kafka是一款开源的消息引擎系统。一个典型的Kafka体系架构包括若干Producer、若干Broker、若干Consumer,以及一个ZooKeeper集群,如上图所示。其中ZooKeeper是Kafka用来负责集群元数据的管理、控制器的选举等操作的。Producer将消息发送到Broker,Broker负责将收到的消息存储到磁盘中,而Consumer负责从Broker订阅并消费消息。(一)Kafka核心组件producer:消息生产者,就是向broker...阅读全文

博文 2022-04-28 16:02:11 mp.weixin.qq.com

使用 tmate 分享你的终端会话

/DeBucoyRfdOtlUmb5D214NC8 magi@magi-VirtualBox The key's randomart image is: +---[RSA 2048]----+ | | | | | . | | . . = o | | *ooS= . + o | | . =.@*o.o.+ E .| | =o==B++o = . | | o.+*o+.. . | | ..o+o=. | +----[SHA256]-----+ 如何安装 tmate tmate 已经包含在某些发行的官方仓库中,可以通过包管理器来安装。 对于 Debian/Ubuntu,可以使用 apt-get 命令或者 apt 命令来安装。 $ sudo apt-get install software-properties-common $ sudo...阅读全文

博文 2017-12-06 10:33:33 debian.cn

Linux 中使用 Fio 测评硬盘性能

Linux 、FreeBSD 、NetBSD、 OpenBSD、 OS X、 OpenSolaris、 AIX、 HP-UX、 Android 以及 Windows。在这个教程,我们将使用 Ubuntu 16 ,你需要拥有这台电脑的 sudo 或 root 权限。我们将完整的进行安装和 Fio 的使用。 在 Debian 系统安装 Fio 对于 Debian 来说, Fio 已经在主仓库内。我们可以很容易的使用 apt-get 的包管理器安装。你只需要简单的执行下述命令: sudo apt-get install fio 当然,你可以可以使用源代码,自己编译安装最新的本。我们需要从 GitHub 上克隆最新的代码,安装所需的依赖,然后从源码构建应用。首先,确保我们安装了 Git , sudo...阅读全文

博文 2018-08-15 19:18:24 debian.cn

Stackstorm 入门介绍

可扩展套件,与你的基础环境交互,执行流程如下: 从各个服务系统通过push或pull的方式把event传给sensors, sensors会产生一个trigger到规则配置中查询该trigger对应的动作或者工作流将来自工作流的Action发送到消息队列(内置rabbitmq)中Actions到达外部的系统后就执行相应的动作日志和审计历史被推送到数据库进行存储(Mongodb)处理后的结果被发送回规则引擎进行进一步处理 Stackstorm的更新非常活跃,最新的发布信息从官方网站上可以看到。目前最新的本是 2.10.1。 Stackstorm工作原理 目录...阅读全文

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

计原理,Spring事务处理机制,SpringMVC,Spring源码分析Mybatis:Mybatis体系结构,Mybatis核心应用与配置,Mybatis关联查询,与Spring集成,Mybatis源码分析 2. 工程化工具 Maven项目工具:Maven命令使用,Maven的pom配置体系,插件机制及插件开发,Nexus使用,上传,配置Git分布式本控制:Git安装和理解仓库,工作常用命令,分支和Tag管理,代码冲突解决方案,Github开源社区,Git企业应用,与IDE集成Sonar代码检测:Sonar环境搭建和使用,使用Sonar进行代码质量管理,与IDE集成使用Jenkins:搭建Jenkins自动化部署环境,集成git/maven/sonar工具,插件机制 3. 微服务架构...阅读全文

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

Java 12 / JDK 12 正式发布

取“半年发布一次本”的模式。 可访问 http://openjdk.java.net/projects/jdk/13/ 查看 JDK 13 的相关信息。 讨论 留意到不少开发者对 Raw String Literals 特性情有独钟,该特性类似于 JavaScript ES6 语法中的模板字符串,使用它基本可以告别丑陋的字符串拼接。特性详见 http://openjdk.java.net/jeps/326。 该特性原计划于 JDK 12 发布,可惜最后还是被取消了,详见:http://mail.openjdk.java.net/pipermail/jdk-dev/2018-December/002402.html 可能是因为业界呼声太高,最近委员会又把这个特性拿出来重新讨论了:https...阅读全文

博文 2019-03-20 12:46:27 debian.cn

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

。因为当时还没有可用的 C++ 编译器来支持新的语言定义,这个新标准的采用与普及经历了几年时间的迭代。正因此,由于 C++11 的出现,C++ 在 TIOBE 榜单中的地位在 2001 年以来不断下降之后,慢慢走上了正轨。 第二个重大变化当然要属 C++20 的出现,其引入了模块、概念(Concepts)等功能。目前 C++20 本的使用还正在逐渐上升,未来几年,这也 可能会驱动其在 TIOBE 榜单的地位。」 整体而言,在 2022 年,C++ 因为涨幅最大,为 4.62%,从而成为 TIOBE 2022 年度编程语言魁首。亚军是增幅 3.82% 的 C 语言,季军是 Python(增幅 2.78%)。 另外,在 Top 20 榜单中,开发 iOS、MacOS 等苹果平台应用常用的...阅读全文

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

开源社区纠纷不断:20 年的 Debian 开发者被排挤出项目

近日,据外媒报道,一位在 Debian 项目中服务超过 20 年的开发者 Norbert Preining 在去年 12 月被降级为维护者,这一行为导致他决定离开该项目。Preining 称,Debian 客户经理团队认为他“多年来一直在欺负项目成员”、“不能与社区团队沟通”。在接受采访时,Preining 表示他现在已经加入了 Arch Linux 项目,将在以后的博文中进行更多的解释。Debian 是一款为数极少的纯社区驱动的 Linux 发行,而不是由商业公司或者政府机构所掌控。虽然 Debian 采用了 Linux Kernel (操作系统的核心),但是大部分基础的操作系统工具都来自于 GNU 工程, 因此又称为 Debian GNU/Linux。DAM 认为 Preining...阅读全文

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

六个开源软件开发的潜规则

代码、撰写文档、修正错误。所有的这些不受待见的任务在一个健康的社区中都是必要的。 为什么要在优雅地写代码前做这些呢?这是一种信任,更重要的是,不要只关注自己开发的功能,而是要关注整个社区的动向。 博闻强识,敦善不怠 当你在某个社区中建立起自己的声望,那么很有必要全面了解该项目和代码。不要停留于任务状态上,而是要去钻研项目本身,理解那些超出你擅长范围之外的知识。不要只把自己的理解局限于开发者,这样会让你着眼于让你的代码有更大的影响,而不只是你那一亩三分地。 打个比方,你已经完成了一个网络模块的测试本。你测试了一下,觉得不错。然后你把它开放到社区,想要更多的人测试。结果发现,当它以特定的方式部署时,有可能会破坏安全设置,还可能导致主存储泄露。如果你将代码视为一个整体时问题就可以迎刃而解,而不是...阅读全文

博文 2017-05-20 10:27:11 debian.cn

谷歌开源了代码评审规范:好坏代码应这样来判断

表的不同部分,都会有不同的评审者进行细致的审查。当然如果是结对编程,且你的队友能进行高质量的代码评审,那么这样写的代码一般可以视为已经过评审了。此外,我们也可以进行面对面的评审,评审者会问开发者一些问题。 根据谷歌的项目描述,代码审核规范为两套独立文档组成,代表了两方面内容的最佳实践: 代码评审者的指南CL 作者指南 在其中一些文档中使用了一些术语,如下: CL:表示“变更列表 (changelist)”,意思是已经提交到本控制或正在进行代码检查的一个独立的更改。其他组织通常称为“改变”或“补丁”LGTM:意思是“在我看来不错 (Looks Good to Me)”,这是代码审阅者在批准 CL 时说的 接下来我们来看看两份文档分别的主要内容是什么: 1. 代码评审者的指南——如何进行代码评...阅读全文

博文 2019-09-10 17:19:13 debian.cn

APISIX Ingress 如何使用 Cert Manager 管理证书

Apache APISIX Ingress Controller 是一款以 Apache APISIX 作为数据面的 Kubernetes Ingress Controller 开源工具,目前已经更新到 v1.3 本,实现了如证书管理、负载均衡、金丝雀发布等功能。 长久以来,证书管理都不是一件简单的事情,虽然 Apache APISIX Ingress Controller 支持从 Kubernetes Secrets 资源中提取证书和私钥,并转换为 Apache APISIX 可识别的 SSL 对象,但这只是整个证书管理链中的一部分,证书的颁发、轮转、吊销逻辑依然需要管理员执行,尤其当证书数量比较多时,工作量往往并不小,因而会占用管理员不少的时间。 Cert Manager 是一款致力...阅读全文

博文 2023-02-09 07:38:06 中文开源技术交流社区

深入学习golang — channel

" }() go func() { time.Sleep(time.Second * 2) c2 <- "two" }() for i := 0; i < 2; i++ { select { case msg1 := <-c1: fmt.Println("received", msg1) case msg2 := <-c2: fmt.Println("received", msg2) } } 在C中,我们一般都会传一个超时时间给select函数,go语言中的select没有该参数,相当于超时时间为0。 主要参考 https://golang.org/doc/effective_go.html 作者:YY哥 出处:http://www.cnblogs.com/hustcat/ 本文权归作者和博客园共有,欢...阅读全文

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

在 Kubernetes 上扩展 TensorFlow 模型

管理、流量分割和本管理。然而,这个选项并没有提供自动扩展功能。 - **Seldon Core** 是一款第三方工具,可用于 Kubeflow 抽象和资源。它支持多种机器学习框架,包括 TensorFlow,并允许将训练好的 TensorFlow 模型转换为 REST/gRPC 微服务,运行在 Kubernetes 中。Seldon Core 默认支持模型自动扩展。 - **BentoML** 是 Kubeflow 使用的另一个第三方工具,它提供高级的模型服务功能,包括自动扩展,以及支持微批处理的高性能 API 模型服务器。 在下一节中,我将展示如何使用 KFServing 对训练好的 TensorFlow 模型进行自动扩展,KFServing 是默认的 Kubeflow 安装中的一个模块...阅读全文

处理器架构消亡史

扩展到完整的64位体系架构。于是,Alpha架构应运而生。Alpha于1992年末推出,是专为高端台式机,工作站和服务器设计的微处理器架构,这也使得他们成为首批实现64位体系架构的企业之一。Alpha对于产业的贡献或许不是有多少产品采用了这种架构,而是他在理论上为产业的发展提供了一种新思路。有人认为,Alpha,MIPS两种RISC架构都比较早的考虑了64位、和引入了很多超前的微架构设计概念,以至于影响了以后英特尔在微架构(uops)、超线程方面的发展,这些在英特尔处理器微架构设计隐约能看到Alpha架构的一些影子。除此之外,艾康电脑公司于1983年开始的开发项目——ARM也是值得一提的架构。1980年代晚期,苹果电脑开始与艾康电脑合作开发新的ARM核心。由于这项目非常重要,艾康电脑甚至于...阅读全文