InfraPub 为您找到相关结果 130

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

,它的价值马上就体现出来了。而写一份文档,随着时间的推移,它的价值才会逐渐体现出来。 你可能只写一次文档,将来它会被阅读上百次、上千次,因为一份好的文档可以在未来替你向别人回答类似下面这些问题。 1. 为什么当时是这么决策的? 2. 为什么代码是这样实现的? 3. 这个项目里都有哪些概念? 4. …… 写文档同样对于写作者也有非常大的收益: - 帮你构思规范化API: 写文档的过程也是你审视你API的过程,写文档时会让你思考你API设计是否合理,考虑是否周全。如果你没法用语言将API描述出来,那么说明你当前的API设计是不合理的。 - 文档也是代码的另一种展现: 比如你两年后回过来看你写过的代码,如果有注释和文档,你可以很快速理解代码。 - 让你的代码看起来更专业: 我们都有个感觉,只要文档...阅读全文

博文 2021-07-30 16:15:13 joseph
9. 嵌入 header 和 footer HTML5.1 允许你在另一个 header 嵌入 header 和 footer。你可以向部元素添加一个 header 或 footer ,假如它们在段落内容里包含它们自己。假如你想添加详细阐述诸如
标签到语义段落元素,这个特性将变得非常有用。 在下面的代码中,
标签包含一个
标签,它有个自身包含
标签的
博文 2021-01-28 17:50:20 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 掘金

中国开源人访谈系列之:清风博主

、kde4到现在的kde5,一直在折腾。 2008年申请过两次Ubuntu的光盘 收到的或刻录的部分光盘 最大的困难肯定是英语了,到现在也只是能看一些简单的技术文章,大段的英文一看就大,肯定影响深入学习。对新手的建议:英语很重要! 3.您会使用Linux来做与地理或者教学有关的事吗? 答:现在日常使用的就是Linux桌面环境,自然教学工作也是用它。比如多媒体教学,用Linux基本没问题,学生都知道我的操作系统挺特别的。必须要windows系统的场景,一般用虚拟机也就够了。 4.曾经有没有考虑过从事计算机相关行业? 答:现在也算半个程序员吧,写过业余水平的php,也在帮人维护服务器。毕竟不是专业的,许多问题都是知其然而不知其所以然,因此业余时间主要是混QQ群,帮助别人,也提高自己。要说去从事计算机相...阅读全文

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

六大算法之三:动态规划【转载】

数字相同,dp[i][j] = dp[i-1][j-1]+1;当这两个位置数字不相同时,dp[i][j] = Math.max(dp[i][j-1], dp[i-1][j])。最后二维数组最右下角的值就是最大子串。 public class MaxTwoArraySameOrder { public static int MaxTwoArraySameOrderMethod(String str1,String str2) { int m = str1.length(); int n = str2.length(); /* * 定义一个二维数组保存公共子序列长度 * dp[i][j]表示字符串1从开始长度是i,字符串2从开始长度是j,这两个字符串的最长公共子序列的长度 * 设置数组行列比...阅读全文

博文 2021-07-31 07:18:53 CSDN博客

大起底:揭开亚马逊云计算丰厚利润的秘密 - 电子商务

Kinsella)曾经创办帮助企业优化云计算部署的科技公司“云健康”,公司后来被虚拟机巨VMware并购。金塞拉分析称,在AWS的数百万客户中,营收和利润并未均匀分布。如果两成的客户贡献了八成的收入,那么主要的盈利来自于剩下的八成客户,他们主要是中小企业。需要指出的是,云计算大客户往往能够获得不菲的折扣。贝尔斯登公司预测,在2019年,亚马逊云计算已经实现了61%的总体毛利率。对于本报道,亚马逊官方目前并未发表评论。核心计算:EC2美国科技行业观察人士哈瓦·苏里(Bhavan Suri)表示,EC2(亚马逊弹性计算云,是一个让使用者可以租用云端电脑运行所需应用的系统)是亚马逊云计算最古老的产品,是毛利润和运营利润的发动机。苏里表示,EC2服务的毛利率应该在50%左右。迄今为止,亚马逊并未提供各个云计算产...阅读全文

博文 2021-09-07 11:41:54 cnBeta.COM

深入了解Docker背后的namespace技术

namespace中,我们能修改其主机名而不会对他的宿主系统和其宿主系统的其他容器造成影响,他们有隔离的UTS namespace。 让我们在 child_exec 函数中修改hostname。为此,我们需要添加#include 文件使其能访问到sethostname函数,同时还需要添加#include 文件使得 setthostname函数能够调用 strlen 函数。修改完的 child_exec 应该如下: // child_exec is the func that will be executed as the result of clone static int child_exec(void *stuff) { struct clone_args...阅读全文

博文 2015-05-17 10:03:00 debian.cn

树莓派 9 周年:你不知道的树莓派冷知识

属于与 Arduino 相同的类别,适合用于嵌入式设备或物联网设备的开发,例如控制电动机、灯光和传感器,并在打开电源后立即运行程序,而无需启动,也无需担心在不安全关闭的情况下拔下插会丢失数据。4. 最受欢迎的树莓派Raspberry Pi 3 B 是有史以来最畅销的树莓派机型,目前已累计售出 1320 万台。 而在目前流行的各种 Raspberry Pi 4 B RAM 版本中,4 GB 型号的销量最高,大约是 8 GB 和 2 GB 出货量的两倍。 值得一提的是,Raspberry Pi Pico 虽然仅上市了几周,但已经售出了 250,000 台,此外还有750,000 台处于待售状态。受疫情等因素影响,2020 年是树莓派产品销量最高的一年,总共售出 710 万台不同型号的树莓派设备...阅读全文

博文 2021-03-11 17:03:55 diablo4

运维的未来:云服务兴起,运维人员会“下岗”吗?

衡是非常必要的。 开发团队通常认为运维团队阻碍了创新或者交付。双方都应该相互理解。贬低运维团队很容易,但是更多情况下,他们只是想跟上步伐。不用非得采用每个登上 Hacker News 条的最前沿的科技,也能创新。另一方面,现代运维组织需要意识到他们几乎永远不可能满足人们的要求了。可持续的发展道路——也是传播同理心的道路——是打破孤岛,共担责任。这就是运维的未来。随着运维工作转移到云,它需要给予开发团队更多的权利和信任以重塑自身,而不是“闭关锁国”。 运维长存! 【本文转自 36氪 】...阅读全文

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

聊聊很重要的内核技术eBPF

直接集成到应用程序中的高级库。 2:bpftrace bpftrace是Linux eBPF的高级跟踪语言。它的语言受awk和C以及DTrace和SystemTap等以前的跟踪程序的启发。 bpftrace使用LLVM作为后端将脚本编译为eBPF字节码,并利用BCC作为与Linux eBPF子系统以及现有Linux跟踪功能和连接点进行交互的库。 3:Cilium Cilium是一个开源项目,提供基于eBPF的联网,安全性和可观察性。它是从开始专门设计的,旨在将eBPF的优势带入Kubernetes的世界,并满足容器工作负载的新可伸缩性,安全性和可见性要求。 4:Falco Falco是一种行为活动监视器,旨在检测应用程序中的异常活动。 Falco在eBPF的帮助下审核Linux内核层的系统...阅读全文

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

kubectl 创建 Pod 背后到底发生了什么?—探寻 Kubectl 创建 Pod 的原理

会把这些信息填充到将要发送的 HTTP 请求中: x509 证书使用 tls.TLSConfig 发送(包括 CA 证书)。bearer tokens 在 HTTP 请求 Authorization 中发送。用户名和密码通过 HTTP 基本认证发送。OpenID 认证过程是由用户事先手动处理的,产生一个像 bearer token 一样被发送的 token。 2. kube-apiserver 认证 现在我们的请求已经发送成功了,接下来将会发生什么?这时候就该 kube-apiserver 闪亮登场了!kube-apiserver 是客户端和系统组件用来保存和检索集群状态的主要接口。为了执行相应的功能,kube-apiserver 需要能够验证请求者是合法的,这个过程被称为认证。 那么...阅读全文

博文 2022-04-18 16:18:04 CSDN

Web前端知识体系精简

,服务器返回该文件; 如果中引用了外部js文件,则发出js文件请求,服务器返回该文件后开始运行; 渲染引擎继续载入html中的部分的代码,并开始解析前面返回的css文件,然后根据css选择器计算出节点的样式,创建渲染树; 从根节点递归调用,计算每一个元素的大小、位置等,给每个节点所应该出现在屏幕上的精确坐标; 如果body中的引用了图片资源,则立即向服务器发出请求,此时渲染引擎不会等待图片下载完毕,而是继续渲染后面的代码; 服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排版,因此引擎需要回过来重新渲染这部分代码; 如果此时js脚本中运行了style.display="none", 布局被改变,引擎也需要重新渲染这部分代码; 直到为...阅读全文

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

提问的智慧 – 全文

:我组装的电脑(K6/233 CPU、FIC-PA2007 主板[威盛 Apollo VP2 芯片组]、Corsair PC133 SDRAM 256Mb 内存)最近在开机20分钟左右、做内核编译时频繁地报错,提示SIG11 ,但在20分钟内从不出问题。重启动不会复位时钟,但会整夜关机。更换所有内存未解决问题,相关的典型编译会话日志附后。 鉴于不是每个人都不能做到明智的提问,所以这里有一句话可以给到你启示:「所有的诊断专家都来自密苏里州」。美国国务院的官方座右铭则是「让我看看」(Show me)[15],对回复者而言,这并不是质疑,而只是一种真实而有用的需求,以便让他们看到与你看到一样的原始证据,目睹尽可能一致的东西,而不是你的片面的猜测与总结。(所以)让我们看看(Show me)。 【本章...阅读全文

博文 2009-10-01 13:18:00 debian.cn

Debian 相比 Ubuntu 有哪些不同之处

序。Ubuntu的标准安装程序被设计成主要为了要求尽量少的用户输入,以便确保安装简单、速度尽可能快。要是你遇到任何问题,可以试试专家模式安装程序,这是Debian安装程序稍稍改换面的版本。 Debian安装程序显然有其他优先事项。比如说,其图形化版本是GUI,这有别于主要在工具包中的基于文本的安装程序:除了让害怕使用命令行的那些用户感到安心外,没有任何优势可言。 相比之下,Debian之前的声誉是,只要按照在线操作说明,此外每个阶段接受默认设置,通常就可以安装Debian。然而,如果你决定亲自选择,可以在安装过程的每一步选择每个设置,这大大增加了安装所需的时间。Debian安装程序并不是迎合没有经验的用户,而是兼顾所有不同水平的用户。它不是很漂亮,但是不用编译自己的程序包,所以你不可能找到...阅读全文

博文 2017-12-22 23:41:07 debian.cn

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

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

Gitlab CI 配置文件 .gitlab

,将从项目中使用默认值。 可以设置的值有:clone,fetch,和none。 clone是最慢的选项。它会从开始克隆整个仓库,包含每一个job,以确保项目工作区是最原始的。 variables: GIT_STRATEGY: clone 当它重新使用项目工作区是,fetch是更快(如果不存在则返回克隆)。git clean用于撤销上一个job做的任何改变,git fetch用于获取上一个job到现在的的commit。 variables: GIT_STRATEGY: fetch none也是重新使用项目工作区,但是它会跳过所有的Git操作(包括GitLab Runner前的克隆脚本,如果存在的话)。它主要用在操作job的artifacts(例如:deploy)。Git数据仓库肯定是存在的,但...阅读全文

博文 2018-12-12 21:09:02 ci.yaml 详解(下)

最全 MongoDB 基础教程

Select * from ruochen where likes > 100 and likes < 200; 模糊查询 查询title中包含 'py' 的文档 db.ruochen.find({title:/py/}).pretty() 查询title字段以 'p' 开的文档 db.ruochen.find({title:/^p/}).pretty() 查询title 字段以 'p' 结尾的文档 db.ruochen.find({title:/p$/}).pretty() MongoDB $type 操作符 $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果 类型 数字 备注 Double 1 String 2 Object 3 Array 4 Binary data 5...阅读全文

博文 2021-02-22 07:45:45 OSChina

“Debian 章程有毒” - OSCHINA

the light of Joey's resignation, as I'm sure many of us have been. Joey 的离职让我不住去想 Debian 的管理出了什么问题,我相信我们其中许多人也一样。 当时,Russ 已经在 Debian 技术委员会里待了6个年,但他没能熬过2014年那场论战。他表示,委员会几乎每一个决策都受到巨大的压力,他感到没有精力来处理这些事情,他也觉得自己在技术委员会的工作对整个项目没什么帮助。 2019年,Debian 开发者 Michael Stapelberg 在离职 Debian 时留下一篇长文,里面细数了 Debian 内部的各种问题,引起各方热议。 在写下这篇文章的几个星期前,Michael 在苏黎世 Debian 聚会上遇见了一...阅读全文

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

Debian 9 使用kubeadm创建 k8s 集群(上)

本教程使用的是 Kubernetes 1.14版,这是本文发布时的官方支持版本。 有关最新版本的最新信息,请参阅官方Kubernetes文档中的当前发行说明 。 Kubeadm自动安装和配置Kubernetes组件,例如API服务器,Controller Manager和Kube DNS。 但是,它不会创建用户或处理操作系统级依赖关系及其配置的安装。 对于这些初步任务,可以使用Ansible或SaltStack等配置管理工具。使用这些工具可以更加简单地创建其他集群或重新创建现有集群,并且不易出错。 在本指南中,您将使用Ansible和Kubeadm从开始设置Kubernetes集群,然后将容器化的Nginx应用程序部署到它。 目标 您的群集将包含以下物理资源: 一个主节点 主节点...阅读全文

博文 2019-05-13 22:47:39 debian.cn

深入理解Golang之context

消当前timerCtx。WithTimeout与WithDeadline类似,WithTimeout也是创建一个定时取消的context,只不过WithDeadline是接收一个过期时间点,而WithTimeout接收一个相对当前时间的过期时长timeout:func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { return WithDeadline(parent, time.Now().Add(timeout)) } context的使用首先使用context实现文章开done channel的例子来示范一下如何更优雅实现协程间取消信号的同步:func main...阅读全文

博文 2021-01-27 09:05:27 知乎

kubelet 中垃圾回收机制的设计与实现

) }kl.containerGC.GarbageCollectkl.containerGC.GarbageCollect 调用的是 ContainerGC manager 中的方法,ContainerGC 是在 NewMainKubelet 中初始化的,ContainerGC 在初始化时需要指定一个 runtime,该 runtime 即 ContainerRuntime,在 kubelet 中即 kubeGenericRuntimeManager,也是在 NewMainKubelet 中初始化的。k8s.io/kubernetes/pkg/kubelet/kubelet.gofunc NewMainKubelet(){ ...... // MinAge、MaxPerPodContainer、MaxContainers 分别上文章开提到的与容器垃圾回收有关的 // 三个参数...阅读全文

博文 2021-02-05 17:48:22 知乎

协议介绍之深入了解 gRPC

header 主要有 Call-Definition 以及 Custom-Metadata。Call-Definition 里面包括 Method(其实就是用的 HTTP/2 的 POST),Content-Type 等。而 Custom-Metadata 则是应用层自定义的任意 key-value,key 不建议使用 grpc- 开,因为这是为 gRPC 后续自己保留的。 Length-Prefixed-Message 主要在 DATA frame 里面派发,它有一个 Compressed flag 用来表示该 message 是否压缩,如果为 1,表示该 message 采用了压缩,而压缩算啊定义在 header 里面的 Message-Encoding 里面。然后后面跟着四字节的...阅读全文

博文 2017-06-22 11:08:48 debian.cn

处理器架构消亡史

今年,根据外媒报道显示,MIPS Technologies正在转变其商业模式,即该公司将不再设计 MIPS 芯片,而将开发基于 RISC-V 架构的处理器。发生在MIPS Technologies身上的变化,或许也预示着又一个处理器架构正在逐渐向命运低。同样,作为最具有历史的处理器架构之一,MIPS见证了很多其他处理器架构的发生变化——他看着X86称霸PC市场,Arm在移动市场崛起,RISC—V又作为新星受到新兴市场的青睐;但同样他也看着SPARC,Alpha,PA-RISC和其他一些架构逐渐走向消亡。璀璨的二十世纪八十年代上个世纪八十年代,互联网已现雏形,PC受到了企业级市场的认可。在这个期间,IBM开始打算用开放生态与产业合作的方式完成PC生产。于是,英特尔借此机会成长了起来,由此也...阅读全文

Cortex: 高可用和水平扩展Prometheus监控系统

置为对cortex执行远程写入。使用此功能,指标可以从多个集群聚合到一个运行cortes的集群中。这为我们提供了一个中心位置,在这里我们可以观察整个基础设施的指标。Cortex提供了与Prometheus/PromQL兼容的端点endpoint。可以将此端点endpoint作为数据源提供给grafana,并与普通Prometheus实例相同的方式执行查询。长期储存普罗米修斯的本地存储不是持久的长期存储。发送到cortex的指标被存储在已配置的存储服务中。如果使用云存储,这将使您从运行自己的数据库的麻烦中解脱出来。你还可以享受云提供商提供的SLA。Cortex还支持用于存储块的对象存储:GCSS3多租户当向cortex写入指标时,通过设置http(X-Scope-OrgID)来提供多租户。查...阅读全文

博文 2021-10-09 17:00:22 知乎

HAProxy用法详解 最详细中文文档

符。测试服务器端的响应报文时可以使用shdr()。例如下面的例子用于测试首部Connection的值是否为close。 hdr(Connection) -i close 5.1.4 method method 测试HTTP请求报文中使用的方法。 5.1.5 path_beg 用于测试请求的URL是否以指定的模式开。下面的例子用于测试URL是否以/static、/images、/javascript或/stylesheets。 acl url_static path_beg -i /static /images /javascript /stylesheets 5.1.6 path_end 用于测试请求的URL是否以...阅读全文

博文 2014-05-10 17:14:46 debian.cn

Redis 命令、特性介绍与性能调优

,Redis能够确保每个客户端得到的序列值或序列范围都是全局唯一的,绝对不会出现不同客户端得到了重复的序列值的情况。 List Redis的List是链表型的数据结构,可以使用LPUSH/RPUSH/LPOP/RPOP等命令在List的两端执行插入元素和弹出元素的操作。虽然List也支持在特定index上插入和读取元素的功能,但其时间复杂度较高(O(N)),应小心使用。 与List相关的常用命令: LPUSH:向指定List的左侧(即部)插入1个或多个元素,返回插入后的List长度。时间复杂度O(N),N为插入元素的数量 RPUSH:同LPUSH,向指定List的右侧(即尾部)插入1或多个元素 LPOP:从指定List的左侧(即部)移除一个元素并返回,时间复杂度O(1) RPOP:同LPOP,从指...阅读全文

博文 2018-10-27 10:37:55 debian.cn

OpenAI掌门人Sam Altman:AI的下一个发展阶段_OneFlow

类的价值观)。风险在于,有人担心懂得“自我改进”的AI有可能会像科幻小说描写的那样,擅自改动代码或修改优化算法。 我深信,真正有利于促进人类和经济的前行的,是一个能够推动科学进步的社会架构。我们能从这样的社会架构中获益很多。 Audience Member:像GPT-3这样的基础模型会如何影响生命科学研究的步伐?生命科学研究中有没有一些技术手段无法克服的限制因素,比如自然规律等? Sam Altman:目前的可用模型还不够好,不足以对生命科学领域产生重大影响——不少生命科学家了解这些模型之后都说,它们只能在部分情况下发挥些许作用。AI在基因组学领域有一些很有前景的应用方向,但目前尚属起步阶段,不过我很看好。我认为这也是市值千亿的巨准备进军的领域之一。 如果AI未来真的可以让医药公司的研发速...阅读全文

博文 2023-02-04 15:55:11 CSDN博客

7大维度看国外企业为啥选择gRPC打造高性能微服务

gRPC是一个高性能、开源、通用的RPC框架,面向移动和HTTP/2设计,是由谷歌发布的首款基于Protocol Buffers的RPC框架。 gRPC基于HTTP/2标准设计,带来诸如双向流、流控、部压缩、单TCP连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电且节省空间占用。gRPC 1.0版本是2015年面世以后的第一次版本发布,开发者可以把该版本用于生产。API现在也是很稳定的。 Bugsnag(注:一家云端bug监控服务商)每天处理数以亿计的错误信息,为了处理这些数据,考虑优先构建一个可扩展,性能强大的后端系统,并从中学到很多有挑战性的技术。最近,我们推出了新版本的仪表板,这个项目要求扩展系统,来处理服务呼叫的显著增加,这些呼叫是跟踪用户发布和会话所需的...阅读全文

博文 2018-03-19 17:51:32 debian.cn

Sam Altman的成功学|OneFlow

-E以及近期火出科技圈的ChatGPT。 无论是个人才智和财富,还是远见和野心,Sam Altman显然是标杆性的“成功人士”。 在离任YC总裁的那一年,曾与无数创业者和技术人才交流过的Sam Altman发表了一篇博客,总结了他眼中获得成功所要具备的13个特质,如果你渴求成功,或者至少希望自己变得优秀,这篇博客对你的个人成长将有所启发。如果你恰好在职业生涯早期就看过,无疑是一种幸运。 不同于热衷分享虚巴脑的鸡汤式成功学的成功人士,Sam Altman给出的这篇“成功学”建议具有可执行性,最显著且可贵的一个特点是——不装。 注意,Sam Altman这篇文章的原标题是“how to be successful(如何取得成功)”,但这13条特质并不是一个人必然取得成功的充分或必要条件。 要知道...阅读全文

深度解密基于 eBPF 的 Kubernetes 问题排查全景图

地实现了进程监测这样的需求。所以,eBPF 可编程的执行引擎非常适合用来将增强可观测性,将丰富的内核数据采集上来,通过关联业务应用,方便问题排查。​三、从监测系统到可观测性随着云原生浪潮,可观测性概念正深入人心。但仍离不开日志、指标、链路这三类可观测领域的数据基石。做过运维或 SRE 的同学经常遇到这样的问题:半夜被拉到应急群里,披盖地地被质问为什么数据库不工作了,在没有上下文的情况下,无法立刻抓住问题核心。我们认为好的可观测性平台应该帮助用户很好地反馈上下文,就像 Datadog 的 CEO 说的那样:监测工具不是功能越多功能越好,而是要思考怎样在不同团队和成员之间架起桥梁,尽可能把信息放在同一个页面中(to bridge the gap between the teams and...阅读全文

博文 2022-03-21 09:11:51 joseph