InfraPub 为您找到相关结果 417

Go 泛型的括号选择:[ ] or ( )

Go 语言设计者 Robert Griesemer 和 Ian Lance Taylor 近日在 Golang 官方论坛发帖讨论关于泛型及其括号使用的问题。 他们提到很多人表达了对泛型语法的担忧,特别是在类型参数声明和函数实例以及泛型的括号选择方面。 常见的计算机键盘提供了四对单字符对称括号,分别是小括号 ( )、方括号 [ ]、花括号 { } 以及尖括号 < >。基于此,他们解释了目前泛型草案在示例代码中使用小括号的原因。首先,Go 使用花括号来划分代码块、复合字面量(composite literals)和一些复合类型,因此几乎不可能在没有严重语法问题的情况下将花括号用于泛型。于尖括号,解析器在某些情况下要求 <> 需要 unbounded lookahead。 所以只剩下...阅读全文

博文 2020-07-16 10:38:01 debian.cn

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

日志文件增长,某些应用会在目标目录下产生多个日志文件甚现在不能确定将来的日志文件名,架构上要支持多输入多输出流式日志采集传输,为了达成以上需求,我研究了所需技术,评估实现难度并不高,就自研了 logpipe。 logpipe 是一个分布式、高可用的用于采集、传输、对接落地的日志工具,采用了插件风格的框架结构设计,支持多输入多输出按需配置组件用于流式日志收集架构,无第三方依赖。 logpipe 的一种用法是能异步实时监控集群里的所有日志目录,一旦有文件新增或追加写,立即采集并传输到大存储上以相同日志文件名合并落地,或者写入 HDFS。异步意味着不影响应用输出日志的性能,实时意味着一有日志立即采集,很多日志采集工具如 flume-ng、logstash 介绍文档通篇不提采集方式是否实时还是周期...阅读全文

当 Atom 遇见 VSCode:微软将对 GitHub 做的 6 件事

生态 微软 CEO Nadella 谈到了微软在过去几年中如何成为 GitHub 上最活跃的组织,提交了超过 200 万次的项目 commits 和 updates ,并表示微软正在全身心地投入开源。 于 GitHub 将如何发展成为一家微软公司,Nadella 主要关注三大策略:在开发周期的各个阶段为开发者赋能,加速 GitHub 用于企业开发,并利用该平台让更多用户使用微软的开发工具和服务。 2、保持 GitHub 的开放性 GitHub 创始人 Chris Wanstrath 表示,无论使用的是哪种编程语言、平台、操作系统或编码设备,GitHub 都会是面向所有开发者的开放平台。像之前的 LinkedIn 和 Minecraft 一样,Nadella 时期的微软会让被收购的公司保持其...阅读全文

博文 2018-06-06 11:08:17 debian.cn

Debian下安装搜狗拼音输入法

Linux上的中文输入法,基本上都比较原始,仿佛还停留在上个世纪。唯有搜狗还行。 简介 2013年12月,搜狗与Ubuntu Kylin团队开始合作开发“搜狗输入法Linux版”。经过五个月的合作,于2014年4月17日,正式发布了1.0版本。2015年10月16日更新2.0版本。 搜狗输入法Linux版基于开源小企鹅输入法框架、开源Qimpanel面板以及搜狗输入法引擎开发。目前,我最看重的功能有: 智能输入,动态调频,动态组词 可自由导入的细胞词库 模糊音输入,智能纠错 方便的中英文切换 长词联想 逗号句号翻页 皮肤替换 添加源安装 由于Debian官方是不支持搜狗输入法的,因此纯命令行操作,要先添加源。 如果没有apt-add-repository,先用sudo apt-get...阅读全文

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

Debian GNU/Linux 诞生 27 周年

8月16日,Debian 官方博客发文庆祝 Debian GNU/Linux 诞生 27 周年。 由于 COVID-19 大流行,官方表示今年无法像以往那样组织线下的现场庆祝活动,因此他们要求贡献者、开发者、维护者、团队、社区和用户在8月16日(和/或15日)在线宣传 Debian 项目和举办庆祝活动。 如果你所在地区没人组织庆祝活动,或者自己不想参加活动,Debian 团队提议使用 OBS Studio 把自己准备的庆祝活动录制下来然后上传网络或者直接开直播。 Debian 于1993年8月16日由 Ian Murdock 首次发布,最初将其称为”Debian Linux Release”。当时,他将这封著名的电子邮件发送到 comp.os.linux.development 邮件列表...阅读全文

博文 2020-08-17 08:32:32 debian.cn

2017年的Linux内核防护依然脆弱

到 Linux 内核代码,这是不大可能发生的,因为今天所谓的内核 “社区” 主要是由一帮大厂商的雇员组成,没有人有义务免费的贡献代码去帮助那些需要从雇主那里获得 KPI 的工程师,更讽刺的是, stack clash 的部分修复居然来自 PaX/Grsecurity 于 2010 年的代码,Linus 说 PaX/Grsecurity 是垃圾也等同于打 KSPP 的脸,因为 KSPP 还在继续抄袭 PaX/Grsecurity,而针对 Linux 内核的漏洞利用是否大规模被恶代使用只是曝光与否的问题。 此外,虽然 Stack clash 的 * EMBARGOED" 从开始到现在已经 1 个月,但今 CVE-2017-1000370(offset2lib bypass) 仍然未修复...阅读全文

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

成为Debian社区维护人需要做好的准备

Bug、回应用户请求),来使你的 sponsor 相信你已经有能力来处理好某个特定软件包,这样他们才会在接下来的申请流程中推荐你。 一些 sponsor 会在他们觉得合适时向你提议申请 DM,另外一些不会,作为新维护人员要在自己觉得差不多合适的情况下和 sponsor 进行沟通,听取他的意见看是否可以申请。 6. 申请 DM 前要让少一位你 sponsor 之外的 DD 对你的 GPG 密钥进行数字签名,且密钥本身少要 2048 RSA 或更强。签署密钥不需要对技能的考察,其目的是确认每个密钥的控制者确实是他本人,从而构建 Web of Trust,因而任何人都可以参与到密钥签名活动当中。签名时一般需要双方在现实生活中见面,互相检查身份证或护照确认无误后,交换事先打印好的 GPG key...阅读全文

“Debian 章程有毒” - OSCHINA

,Debian 邮件列表出现了一封标题为“Leaderless Debian”的公开信,文章表示,这年的3月3日-10日是候选人提名阶段,然而,截公开信发出,还没有一位符合资格的 Debian 开发者提交申请。 此前的 Debian 领导人 Chris Lamb 一直被寄予厚望,他已经连任了两年,但是今年他公开表示因为一些 Debian 相关的,以及一些私人的原因不参与竞选。由此,Debian 不得不根据章程延长提名时间,直有人提交申请为止。 当然,最后还是有人跳了出来参加竞选。这里要指出的是,这一尴尬事件非常直观地反映出一个事实 —— DPL 并不吃香。 准确来说,在 Debian 章程的制约下,DPL 是一个没有绝对权利的虚席。 首先,DPL 并不接触具体业务,他可以任命某人执行专门的任务,而这...阅读全文

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

粘合万种芯片的“万能胶” 是摩尔定律的续命丹吗? - 硬件

将芯片连接起来而形成的模型,在业内被称Chiplet(可译为芯粒、小芯片)模型。多年以来,AMD、英特尔、台积电、Marvell等芯片公司已经推出了一些类似于小芯片的设计,例如,英特尔采用了称之为Foveros的小芯片方法,推出了3D封装的CPU平台,该封装方式将1个10nm的处理器内核和4个22nm的处理器内核封装集成在一起;台积电也正在开发一种被称为集成芯片系统(SoIC)的技术。在这些技术中,裸片对裸片的互连关重要,即需要将一个裸片与另一个裸片"黏合"在一起,每个裸片都包含一个带有物理接口的IP模块,公共接口能够让两个裸片形成互连。在Chiplet初期的探索中,许多公司开发了具有专有接口的互连,实现自家芯片模型间的互连。由于Chiplet的最终目标是在内部或多个芯片供应商中获得优质且...阅读全文

博文 2022-04-08 07:35:46 cnBeta.COM

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

已经停止的容器,默认为1;(maxPerPodContainerCount)--maximum-dead-containers:一个 node 上最多可以保留多少个已经停止的容器,默认为 -1,表示没有限制;--minimum-container-ttl-duration:已经退出的容器可以存活的最小时间,默认为 0s;与镜像回收有关的主要有以下三个参数:--image-gc-high-threshold:当 kubelet 磁盘达到多少时,kubelet 开始回收镜像,默认为 85% 开始回收,根目录以及数据盘;--image-gc-low-threshold:回收镜像时当磁盘使用率减少多少时停止回收,默认为 80%;--minimum-image-ttl-duration:未使用的镜像...阅读全文

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

Monit:开源服务器监控工具

行是检查类型为host的服务,需要设定服务名及服务器地址;第二行第四行的意思是中间的预期代码xxx如果失败,则执行then alert;最后一行alert xx@xxx配置局部推送的邮箱,可选。可以多行,表示配置多个。 第二行第四行也可以写成一行: if failed xxx then alert 下面是示例: /etc/monit.d/test ## system check system $HOST if loadavg (1min) > 4 then alert if loadavg (5min) > 2 then alert if cpu usage > 95% for 10 cycles then alert if memory usage > 75% then alert...阅读全文

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

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

本文作者从事数据库相关工作接近四十年,最近开始使用 MongoDB。在开始使用 MongoDB 之前,作者希望有些事情自己已经知道。根据一般经验,对于数据库是什么以及它们能干什么,人们会有先入为主的认识。为了给他人提供方便,本文列出了一些常见的错误。 本文要点 即使 MongoDB 没有强制要求,设计一个模式还是关重要。 类似地,在设计模式及访问模式时设计好索引。 避免大对象,尤其是大数组。 谨慎对待 MongoDB 的设置,尤其是关乎安全和稳定性时。 MongoDB 没有查询优化器,因此,对于如何安排查询操作的顺序,你必须格外小心。 创建一个无需身份验证的 MongoDB 服务器 很遗憾,MongoDB 在安装时默认不启用身份验证。在只从本地访问的工作站上,这没什么不好。但是,由于...阅读全文

理解 Linux 的虚拟内存

都是你的,随便用,管够。可事实上呢,操作系统只是给它们画了个大饼,这些内存说是都给了 P1 和 P2,实际上只给了它们一个序号而已。只有当 P1 和 P2 真正开始使用这些内存时,系统才开始使用辗转挪,拼凑出各个块给进程用,P2 以为自己在用 A 内存,实际上已经被系统悄悄重定向到真正的 B 去了,甚,当 P1 和 P2 共用了 C 内存,他们也不知道。 操作系统的这种欺骗进程的手段,就是虚拟内存。对 P1 和 P2 等进程来说,它们都以为自己占用了整个内存,而自己使用的物理内存的哪段地址,它们并不知道也无需关心。 分页和页表 虚拟内存是操作系统里的概念,对操作系统来说,虚拟内存就是一张张的对照表,P1 获取 A 内存里的数据时应该去物理内存的 A 地址找,而找 B 内存里的数据应该去物...阅读全文

博文 2018-11-25 11:03:49 debian.cn

Gitlab CI 配置文件 .gitlab

types 已废除,将会在10.0中除。用stages替代。 与stages同义 variables GitLab Runner V0.5.0. 开始引入 GItLab CI 允许在.gitlab-ci.yml文件中添加变量,并在job环境中起作用。因为这些配置是存储在git仓库中,所以最好是存储项目的非敏感配置,例如: variables: DATABASE_URL:"postgres://postgres@postgres/my_database" 这些变量可以被后续的命令和脚本使用。服务容器也可以使用YAML中定义的变量,因此我们可以很好的调控服务容器。变量也可以定义成job level。 除了用户自定义的变量外,Runner也可以定义它自己的变量...阅读全文

博文 2018-12-12 21:01:19 ci.yaml 详解(上)

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

(NameSpace) HDFS 支持传统的层次型文件组织结构。用户或者应用程序可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似:用户可以创建、删除、动或重命名文件。 Namenode 负责维护文件系统的名字空间,任何对文件系统名字空间或属性的修改都将被 Namenode 记录下来。 HDFS 会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data。 4. NameNode 元数据管理 我们把目录结构及文件分块位置信息叫做元数据。NameNode 负责维护整个 HDFS 文件系统的目录树结构,以及每一个文件所对应的 block 块信息(block 的...阅读全文

Debian 社区陷入尴尬 或群龙无首

前两天我们才报导过 Debian 包维护者 Michael Stapelberg 因对 Debian 社区的现状不满而 宣布退出 Debian 的维护 ,该消息引发了人们对于 Debian 的担忧。11 日,邮件列表上一封标题为“Leaderless Debian”的公开信进一步加深了这种担忧。 Debian 社区目前正在进行领导人选举,3 月 3 日-10 日是候选人提名阶段,然而,截公开信发出的 11 日,还没有一位符合资格的 Debian 开发者提交申请。 此前的 Debian 领导人 Chris Lamb 一直被寄予厚望,他已经连任了两年,但是今年他公开表示因为一些 Debian 相关的与私人的原因 不参与竞选 。 所以,现在出现了尴尬的情况:“提名期已经结束,竞选期已经开始,但...阅读全文

博文 2019-03-14 11:05:23 debian.cn

AWS省钱攻略:预留实例怎么玩

AWS的预留实例(Reserved Instance)是一种计费方式,并不是一种计算实例,简单讲是一个“包年包月”的优惠方式。购买RI后,可以获得30%以上,最高 75% 的优惠。你可能会说:“这些我都知道,并且RI我已经在用了。” 你真的熟悉 RI 吗? 我们知道预留实例(RI)分为两种: 标准RI与可转换RI(CRI),可转换RI的价格往往较高而不容易被接受,而我们又经常遇到需要调整RI,那么我们购买的标准RI能不能进行适当的转换呢?答案是没问题的,AWS为满足客户的需求,提供了很灵活性的设定。 今天主要介绍一下RI的三个灵活属性:大小灵活性匹配,合并拆分,可转换(CRI),我们暂且这么称呼,三者适用于不同的场景,是互相补充的关系。 大小灵活性匹配 场景:区域范围RI 、相同实例类型...阅读全文

博文 2019-08-18 18:26:19 debian.cn

开源简史基础:Linux基金会

用也可以由Linux基金会提供。 Linux基金会项目 以前被称为“合作项目”的Linux基金会项目是独立资助的项目,很多大名鼎鼎的项目都是Linux基金会的项目,比如为了促进容器化发展而创建的OCI(Open Container Initiative)和CNCF(Cloud Native Computing Foundation)等。全世界超过500家的公司以及数以千计的软件开发人员投入其中,这就是开源世界的力量,截止到2015年,Linux基金会项目的源码总行数为115,013,302行,项目估值高达50亿美元,而在2017年9月,这一估值上升156亿美元。 当然除了这些,Linux基金会还可以进行培训以及认证等多种活动,从而更好地推进了Linux的开源事业的发展。 参考文章...阅读全文

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

将逐渐减少参与 Debian 的维护和相关活动,并解释这样做的原因。Stapelberg 表示他在 Debian 上投入了十年以上的时间,但在此过程中,Stapelberg 也逐渐发现并认识到了 Debian 在许多方面的不足。他发现 Debian 整个开发评估流程都非常迟钝。举例来说,补丁的评估没有截日期,有时候他会收到通知说几年前递交的补丁现在合并了。而且 Debian 的一些维护者出于个人喜好拒绝合作,维护者给予的个人自由度太高对 Debian 构成了严重影响。Debian bug 跟踪器 debbugs 源自 1994 年,只有 Debian 和 GNU 项目使用。Stapelberg 抱怨了 Debian 糟糕的开发流程,对此感到十分不满,为此,他撰写了长文,并希望自己的文章能激...阅读全文

Polar Signals 开源 Parca 以优化代码并减少云账单 - OSCHINA

稳定分支。 我们将讨论 NGINX 版本控制方案,回顾 NGINX 1.17 开发周期内进行的更新,并探索 NGINX 1.19 的特性。 NGINX 版本控制介绍 NGINX 在 NGINX Open Source 代码存储... 1 4 为 Linux 5.16 准备的新版 Zstd 已就绪,最高带来 35% 的性能提升 正如我们上周的报道(点击查看),Linux 内核即将用上最新的 Zstd 实现。如今时隔一周时间,为 Linux 5.16 内核所准备的新版 Zstd 已提交 linux-next 的合并中,以便在接下来的几周内进行更广泛的测试,如无意外我们将在下个月的 Linux 5.16 合并窗口中看到 Zstd 的更新代码。 来自 Facebook 的 Zstd 维护者...阅读全文

博文 2021-10-09 12:23:58 中文开源技术交流社区

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

松分组。 允许创建并行测试。 缺点: 只支持 Java ,少需要具备 Java 编程语言的基础知识。 必须投入时间进行框架设置和设计。 如果你使用 Java ,并正寻找端到端的自动化测试框架,同时愿意投入一点时间去设置框架,你应该考虑使用 TestNG 。 6. Jasmin Jasmine 是一个 JavaScript 单元测试框架, 也被称为 JavaScript 的行为驱动开发(BDD)测试框架。适用于网页、Node.js 项目或任何可以运行 JavaScript 的地方。它主要与 AngularJS 配对使用。 优点: 除了 JavaScript ,还可以运行在 Python 和 Ruby 中。如果想在你的服务器端运行客户端测试,它可以帮助你。 被许多 CIs 使用和支持。 内置用...阅读全文

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

如何在 Debian 上添加和删除用户

提供了一个更熟悉的文字编辑体验。使用箭头键动光标,并搜索如下所示的线: / etc / sudoers root ALL=(ALL:ALL) ALL 在这行下面,复制你在这里看到的格式,只改变单词“root”来引用你想给sudo权限的新用户: / etc / sudoers root ALL=(ALL:ALL) ALL sammy ALL=(ALL:ALL) ALL 你应该为每个应该给予完全sudo权限的用户添加一个这样的新行。当你完成,你可以保存并通过点击关闭文件CTRL-X其次是Y ,然后ENTER确认。 如何删除用户 如果您不再需要用户,最好删除旧帐户。 您可以删除用户本身,而不删除任何他们的文件,通过键入作为根用户: deluser sammy 如果您以具有sudo权限的其他非...阅读全文

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

Kubernetes v1.21 新特性预览

Kubernetes v1.21 下个月就要发布了(v1.21.0 将于 4 月 8 日发布),本文梳理该版本带来的新特性,以便你为下个月的升级做好准备。PodSecurityPolicy 弃用PodSecurityPolicy(PSP)是 Kubernetes 1.8 开始就支持的 Beta 特性,大量应用于容器的安全策略控制。但由于其 API 不够灵活、认证模型不够完善且配置更新繁琐等缺陷,PodSecurityPolicy 将在 v1.21 正式弃用[1],并将在 v1.25 中从代码库中删除。已经使用 PodSecurityPolicy 的用户建议迁到 Gatekeeper[2]。不可变 ConfigMap/Secret 进入稳定版当集群包含大量 ConfigMap 和...阅读全文

博文 2021-03-30 20:24:36 mp.weixin.qq.com

图解 Debian 系统通用安装教程

non-free contrib deb http://ftp.cn.debian.org/debian jessie-proposed-updates main contrib non-free deb http://ftp.cn.debian.org/debian-security jessie/updates main contrib non-free deb-src http://ftp.cn.debian.org/debian/ jessie main contrib non-free 输入完成后按键盘左上角的Esc键退出编辑模式,使用方向键动光标进行定位,删除所有带有CD-ROM字样的条目。 连续按两次d,即快速输入dd可以删除光标所在的当前行(需退出编辑模式才能生效,否则就是加了...阅读全文

博文 2017-07-13 12:52:56 debian.cn

十个增加 Linux Shell 脚本趣味的小工具

-dialog-info:通知图标,你可以指定图标 -i /path/to/your-icon.png 2. tput 命令 这个命令是用来设置终端特性的: 动光标 获得终端信息 设置前景和背景色 设置粗体模式 设置反模式等等 举例: #!/bin/bash # clear the screen tput clear # Move cursor to screen location X,Y (top left is 0,0) tput cup 3 15 # Set a foreground colour using ANSI escape tput setaf 3 echo "XYX Corp LTD." tput sgr0 tput cup 5 17 # Set reverse video mode...阅读全文

博文 2018-04-09 09:38:50 debian.cn

新加坡华侨银行(OCBC) 零门槛开户 使用APP在家即可申请

者自己手机自带的商店。2. 进入开户流程准备好所需材料,开始进入开户流程。1 打开APP 选择简体中文。如果没有弹出,可以点击右上角来选择语言。然后,点击 【注册成为新客户】​2 选择第二项 【持电子护照的外国人】,然后点击【开始申请】​输入介绍人代码 【 IRVU37JB 】,可以获得 15 新币,大约80元人民币的奖励。不写的话没有任何奖励。​3 国家代码点进去选择中国大陆 +86,手机号和邮箱输入自己的即可。然后,接收验证码并填写。​4 点击下一步,扫描护照条形码。这一步,把护照打开到有人像的那一页,然后在光线充足的地方使用手机扫描。 需要一些耐心,扫描可能不会很快,手拿稳多试试即可。​5 NFC 读取护照芯片。护照合上,手机背面贴在护照正面上,开始读取。缓缓动手机,调整到可以读取的...阅读全文

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

署两个Prometheus实例。两者都具有被设置为相同值"one"的集群标签和唯一的副本标签。分发器组件已配置为基于这两个标签执行重复数据删除。如果Cortex在当前规定的时间(超过30秒)内没有从当前副本接收指标,它将故障转到下一个发送样本的副本。kubectl apply -f k8s-ha/ helm install stable/prometheus \ --name prom-one \ --set server.global.external_labels.cluster=one \ --set server.global.external_labels.replica=one \ --set serverFiles."prometheus\.yml".remote_write...阅读全文

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

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

开源的 Pinpoint,近几年 Uber 公司开源的 Jaeger,以及我们国内吴晟开源的 SkyWalking。 有人说,这些其实都归功于 Google 在 2010 年基于其内部大规模分布式链路追踪系统 Dapper 实践而发表的论文,它的设计理念是一切分布式调用链追踪系统的始祖,但其实早在二十年前(2002年),当年世界上最大的电商平台 eBay 就已拥有了调用链追踪系统 CAL(Centralized Application Logging)。2011 年,原eBay的中国研发中心的资深架构师吴其敏跳槽大众点评,并且深入吸收消化了 CAL 的设计思想,主导研发并开源了CAT(Centralized Application Tracking)。 CAT 作为国人主导的开源系统,其本...阅读全文

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

说透IO多路复用模型_京东云开发者的博客

作者:京东零售 石朝阳 在说IO多路复用模型之前,我们先来大致了解下Linux文件系统。在Linux系统中,不论是你的鼠标,键盘,还是打印机,甚于连接到本机的socket client端,都是以文件描述符的形式存在于系统中,诸如此类,等等等等,所以可以这么说,一切皆文件。来看一下系统定义的文件描述符说明: 从上面的列表可以看到,文件描述符0,1,2都已经被系统占用了,当系统启动的时候,这三个描述符就存在了。其中0代表标准输入,1代表标准输出,2代表错误输出。当我们创建新的文件描述符的时候,就会在2的基础上进行递增。可以这么说,文件描述符是为了管理被打开的文件而创建的系统索引,他代表了文件的身份ID。对标windows的话,你可以认为和句柄类似,这样就更容易理解一些。 由于网上对linux...阅读全文

博文 2023-01-01 15:13:50 CSDN博客

打破IP协议重塑互联网 华为能做到吗

的 IP 报头允许终端用户指定要在数据包上执行的自定义功能。 文章以智能家居为例,描述了新 IP 网络下的应用场景: 运动传感器检测出房间出现异常活动时,会通知相应房间的安全摄像头通过智能家居网络采集信息,然后,安全摄像头将收集到的图像信息通过互联网发送到主人的智能手机上进行判断。如果只是误报,主人可以向安全摄像头发送信息要求停止信息收集。由于房子里的所有设备都连接在同一个家庭网络上,所以运动传感器可以直接将通知发送到安全摄像头,并带有它的域内地址;并且由于新的 IP 协议向源地址中添加了一个地址段(4.3.2.1),摄像头数据能够直接传送用户的智能手机中。 不难看出,在该场景中,新 IP与传统 IP 相比有两方面优势:一是智能家居网络采用短地址空间进行批量通信,减少了分组开销,提高了通信...阅读全文

博文 2020-03-31 06:40:15 debian.cn

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

写代码并通过自动化脚本来测试各种案例的测试人员的需求将大幅增长。如果你是测试人员并且在是否学习编码方面处于两难境地,我们建议你还是学习编码吧。了解不同的 DevOps 工具和自动化脚本在当今的软件开发中起着关重要的作用,并且将在 2019 年占据主导地位。 如果测试人员不学习编写代码和自动化测试脚本,就有可能被淘汰。手动测试将在 2019 年过时,因为它们需要耗费大量的时间。测试自动化不仅可以提高效率,还可以确保更快地将功能交付给市场。 微服务架构采用率增加 DevOps 和微服务将齐头并进。微服务是独立的实体,因此在出现问题时不会给其他系统造成破坏。微服务架构可以帮助公司轻松部署和添加新功能。预计更多的企业将会转向微服务架构,以改进他们的在线运行时间和有效交付。不要只是因为别人采用了微服...阅读全文

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

Apollo 分布式配置中心详解

据库等。 配置需要治理 权限控制,由于配置能改变程序的行为,不正确的配置甚能引起灾难,所以对配置的修改必须有比较完善的权限控制,不同环境、集群配置管理,同一份程序在不同的环境(开发,测试,生产)、不同的集群(如不同的数据中心)经常需要有不同的配置,所以需要有完善的环境、集群配置管理。 Apollo 配置中心基本使用 Apollo 基础模型 用户在配置中心对配置进行修改并发布;配置中心通知 Apollo 客户端有配置更新;Apollo 客户端从配置中心拉取最新的配置、更新本地配置并通知到应用。 界面概览 上图是 Apollo 配置中心中一个项目的配置首页,在页面左上方的环境列表模块展示了所有的环境和集群,用户可以随时切换。页面中央展示了两个 namespace(application 和...阅读全文

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

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

正如体育界不成文的规定一样,这些规则基本上不会出现在官方文档和正式记录上。比如说,在棒球运动中,从比分领先时不要盗垒,到跑垒员跑了第一时也不要放弃四坏球保送。对于圈外人来讲,这些东西很难懂,甚觉得没什么意义。但是对于那些想成为 MVP 的队员来说,这些都是理所当然的。 软件开发,特别是开源软件开发中,也有一套不成文的规定。和其它的团队运动一样,这些规定很大程度上决定了开源社区如何看待一名开发者,特别是新加入社区的开发者。 按部就班,循序渐进 在参与社区之前,比如开放源代码或者其它什么的,你需要做一些基本工作。对于有眼界的开源贡献者,这意味这你需要理解社区的目标,并学习应该从哪里起步。人人都想贡献源代码,但是只有少量的人做过准备,并且乐意、同时也有能力完成这项艰苦卓绝的工作:测试补丁、复审...阅读全文

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

深入学习golang — channel

Serve(queue chan *Request) { for req := range queue { sem <- 1 go func(r *Request) { process(r) <-sem }(req) } } 少,这样的代码不会让一个go的初学者不会迷糊,另外,从变量的作用域角度,也更符合常理一些。 在实际的C/C++编程中,我们倾向于工作线程在一开始就创建好,而且线程的数量也是固定的。在go中,我们也可以这样做: func handle(queue chan *Request) { for r := range queue { process(r) } } func Serve(clientRequests chan *Request, quit chan bool...阅读全文

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

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

双因子身份验证就是指,需要两种身份验证才能完成账号有效性的验证,可以是密码、SSH 密钥,也可以是第三方服务,比如 Google Authenticator。这意味着单个验证方式的缺陷,不会影响账号的安全。本文我们将介绍如何在 Debian 服务器上启用双因子验证。 请注意,本文涉及到多次修改 SSH 配置,当你修改配置时,请确保有少两个到服务器终端的连接。打开的终端将一直保持,即便 SSH 服务重启。第二终端意味着你可以修复你在SSH配置的错误。 密钥和密码验证的SSH SSH 支持对登录要求不止一个身份验证方法,我们首先启用密钥和密码验证。 在 /etc/sh/sshd_config 中的 SSH 服务器配置文件中的 AuthenticationMethods 选项中设置了身份验证方...阅读全文

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

漫画赏析:Linux 内核到底长啥样

作任务。 watchdog 瞧瞧,垫子(进程表)旁边也有一只小狗,它会监控小企鹅的状态(监控进程),当小企鹅们不听话时,它就会汪汪地叫喊起来。 httpd process 在这层的左侧,有一只号牌为 1341 的小企鹅,守在门口,门上写着 80,说明这个 PID 为 1341 的小企鹅负责接待 80 端口,也就是我们常说的 HTTP (网站)的端口。小企鹅头上有一片羽毛,这片羽毛大有来历,它是著名的 HTTP 服务器 Apache 的 Logo。喏,就是这只: apache logo 向右看,我们可以看到这里仍有一扇门,门上写着 21,但是,看起来这扇门似乎年久失修,上面的门牌号都歪了,门口也没人守着。看起来这个 21 端口的 FTP 协议有点老旧了,目前用的人也比以前少了,以于这里都没人...阅读全文

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

三个技巧 大幅减少 Docker 镜像体积

http://localhost:3000,并收到“Hello World!”。 Dockerfile 中使用了一个 COPY 语句和一个 RUN 语句,所以按照预期,新镜像应该比基础镜像多出少两个层: $ docker history node-vanilla IMAGE CREATED BY SIZE 075d229d3f48 /bin/sh -c #(nop) CMD ["npm" "start"] 0B bc8c3cc813ae /bin/sh -c npm install 2.91MB bac31afb6f42 /bin/sh -c #(nop) COPY multi:3071ddd474429e1… 364B 500a9fbef90e /bin/sh -c #(nop...阅读全文

博文 2018-09-06 10:50:29 debian.cn

RabbitMQ 高可用实现镜像队列

数据也是在三个节点之间同步,但 Queue 的实际存储只会在一个节点。我们发送消息到指定 Queue,其实是发送消息到指定节点下的 Queue。如下图所示,消息发送队列 testQueue,无论发送者通过哪个 RMQ 节点执行发送,其最终的执行都会是在 MQ03 节点执行消息的存储。 说到这儿,可能有的小伙伴就要问了?说好的,RabbitMQ 集群提供高可用性呢?分析一下,RabbitMQ集群搭建完成后,如果不进行任何高可用配置,会有哪些问题呢? 单点故障会导致消息丢失:如果 MQ03 节点故障,那么 MQ03 中的消息就会丢失无法最大化的利用 RMQ 提升执行效率:既然每次发送到队列 testQueue 的消息都会在 MQ03 节点存储,那么何必搭建集群。 引入 RabbitMQ 的镜像...阅读全文

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

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

关的行业,不是没想过,但已经熬不了夜了,还是多给年轻人一些机会嘛(好吧,其实是水平实在有限,啥也干不了)。 5.您使用开源软件对您的学生有没有产生影响呢? 答:对于中学生,基本没影响。一,我不是信息技术老师,只是个教地理的;二,即便是现在的中学信息技术教学,在现行的IT教育模式下,也没办法施加影响。 6.电脑高手在学校,大家日常工作是怎么看您的呢?会叫您“修电脑”吗? 答:硬件维修不于找我,还有信息技术老师呢!不过,装个系统是常有的事,或者经常被问一些软件方面的问题,你懂的,交流始终不在一个频道,不胜其烦。再者,有一次犯了强迫症,把老婆电脑的重要数据给清理掉,被下了不许碰她电脑的禁令,就更没有耐心管别人的事了。所以,强烈建议:喜欢清理电脑且有强迫症的同学(这样的人会很多吧),千万不要乱动老...阅读全文

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

Spinnaker 介绍 – Netflix 的持续交付平台

然避免不了,为了更加从容的应对这些故障,就搞了一个工具 Chaos Monkey 会随机停止生产环境中的虚拟机,通过观察系统在真实故障中的表现来确保程序的健壮性,也通过实战来验证各种高可用技术是否靠谱。接着冒出了 Chaos Gorilla,会停止一整个可用域中的所有机器;最后还有Chaos Kong,直接停掉一整个 Region,非常有挑战精神(丧心病狂)。 为了更好的观察系统在故障时的情况,还研发了全局可视化系统,代号 Flux,可以将整个系统的逻辑架构和各服务之间的流量可视化在大屏幕上,效果图如下: 他们每个月有一个活动:将一个 Region 里的机器全部关掉,看 Netflix 服务是否正常。有兴趣看视频的可以步这里。 另外,Netflix 除了云服务,还有自建CDN,即 Open...阅读全文

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

百度运维工程师挖矿实录:四个月用155台服务器挖矿赚10万判3年

起运维人员挖矿导致百度损失 2.7 万的事件,同样是运维人员在“涉险”,为什么是运维人员呢? “运维”人员在企业的价值,他们自己的调侃是:当企业没有发生技术故障的时候,大家感觉不到运维人员的存在。当企业发生故障的时候,大家感觉到运维人员确实没有存在的必要。 但调侃归调侃,这反映了技术运维人员在企业中面临的尴尬处境,但实际上,运维人员对于一家企业运营维护的保障,确实是很重要的。他们的职责包括服务器的部署、配置、维护;互联网平台的部署、升级、迁、数据备份恢复;监控服务器,平台的运行,系统优化等,可以说,他们掌握了企业的后门,一旦运维部门发生危险,公司有可能陷入瘫痪状态,因此,一直以来,运维人员也拥有很多访问权限,而这却变成了运维人员不惜“涉险”的一个原因之一。 于是,如何对运维人员进行权限管理...阅读全文

博文 2020-03-17 20:42:41 debian.cn

Golang Context 探究

{ c.mu.Unlock() return // 已经被其他协程取消 } c.err = err // 关闭 channel,通知其他协程 if c.done == nil { c.done = closedchan } else { close(c.done) } // 遍历它的所有子节点 for child := range c.children { // 递归地取消所有子节点 child.cancel(false, err) } // 将子节点置空 c.children = nil c.mu.Unlock() if removeFromParent { // 从父节点中除自己 removeChild(c.Context, c) } } context.timerCtx timerCtx 基于...阅读全文

博文 2021-02-25 09:27:27 lxkaka

开源社区的运作模式:Debian Vs. Ubuntu

有一些非官方身份的包维护人员。但他们的名字只出现在Maintainer字段,因此他们不能执行上传操作,所有上传操作都由DD完成并进行校验。如果DD信任这些非正式任维护人员,他们通常希望维护人员去申请正式的DM角色,这样可以将上传的工作交给他们来执行,以减轻自己的负担。 要成为一个Debian贡献者,一般的途径是先成为非官方的包维护人员。在其包维护的能力和人品得到DD认可并推荐之后,则可以申请成为DM。DM任期满6个月后,则可以通过Debian New Maintainers进程申请成为一个DD,这个过程也需要其他DD的推荐。 Ubuntu中的开发者角色 Ubuntu从一开始就定义了一个官方的“Ubuntu成员(UM)”角色,它包括所有贡献者,如开发人员,文档编写人员,翻译人员,美工等等。有...阅读全文

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

SVN切换分支用法汇总

一、SVN切换分支操作介绍SVN(Subversion,下文简称SVN)是一种版本控制系统,它提供了一系列的命令行工具来管理源代码。在代码的开发过程中,可能会需要更改当前工作目录下所处的分支。SVN提供了switch命令供用户进行分支切换操作,该命令只修改当前工作目录下原本的模块链接并不会真的修改目标URL中的版本库。在SVN中,一个版本库可能会有多个分支,我们可以通过checkout命令来创建这些分支,也可以使用branches工具来进行分支的删除、动、查看等,这些工具都是由SVN提供的。SVN提供了非常完善的分支管理机制,让我们可以方便地在开发过程中,随时随地地更换所处的分支。二、SVN切换分支常用命令及其参数介绍切换分支是SVN的基本操作之一,下面是一些常用的命令及其参数。大家可以...阅读全文

博文 2023-06-09 14:22:35 infras

提问的智慧 – 全文

,(3)暗示这个提问只是碰巧在特别情况出现的。 (欢迎你对本文进行指正,可以将建议发esr@thyrsus.com或respond-auto@linuxmafia.com。请注意,本文不想成为一般的网络礼仪指南,同时,我也会拒绝回应引自论坛并与此文不相关的建议。) 【本章注释】 [3]本文不仅仅适用于黑客,而且适用于普通人。黑客的态度:解决问题,建设事物,崇尚自由和无私的双向帮助。出自Eric S. Raymond的另一篇著名文章《How To Become A Hacker》 [4]在此,用直接「loser」更加合适,语意浅点译做「失败者」,语意深点译做「废柴」、「贱人」和「窝囊废」。 [5]wikipedia的解释:「lusers」为「loser」和「user」的混合词,有贬义,指使人厌烦...阅读全文

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

Java Annotations详解

对舍弃的原因加以说明。 @Override @Override被用在方法前,用来说明覆盖了父类中的方法。假如一个方法被@Override修饰,但实际上它并没有覆盖任何方法,则编译器会提示一个错误。 @Override并不是必须的,即覆盖父类方法时,也可以不在子类方法前面添加@Override。但是还是推荐使用@Override,因为这样做是有好处的,少可以较少一些不必要的错误。如覆盖方法的方法名不对,并没有实现覆盖;或者有人修改了父类中的方法名,导致的子类中的覆盖失效,如果有@Override,编译器就会自动提示错误,从而避免了错误。 @SuppressWarnings 使用@SuppressWarnings能够是编译器对指定的方法放弃提示警告。如方法中引用了已经被舍弃...阅读全文

博文 2013-03-02 08:04:55 CSDN博客

如何在 Debian 下配置邮件服务器

本教程将讨论如何在Debian(或Ubuntu)配置一个可工作的邮件服务器。我们知道在邮件服务器使用的主要协议有SMTP、POP和IMAP。在本教程中,SMTP协议使用postfix,POP/IMAP协议使用dovecot。两者都是开源的、稳定的和高度可定制的。本教程中不会介绍邮件服务器的安全性,这超出了本文的范围。 1.先决条件 每个域必须有一个DNS服务器。建议不要使用Live域用于测试目的。在本教程中,将在实验室环境中使用测试域example.tst。在这个假设域名的DNS服务器应该在少以下记录。 example.tst的forward zone配置: IN MX 10 mail.example.tst. mail.example.tst. IN A 192.168.10.1...阅读全文

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

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

,跑内存不再增加,果然valgrind显示没有任何内存泄露。反复试验了很多次,结果都是这样。 在多次使用valgrind无果以后,我开始怀疑程序内部是不是用到mmap之类的调用,于是使用strace对mmap,brk等系统函数的检测: strace -f -e"brk,mmap,munmap" -p $(pidof AuthServer) 其结果如下: [pid 19343] mmap(NULL, 134217728, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f53c8ca9000 [pid 19343] munmap(0x7f53c8ca9000, 53833728) = 0 [pid 19343...阅读全文

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

Jono Bacon: GPL 没落了吗?

、Digital Ocean 等等等等,探索着在开源领域中赚钱的法子。他们探索过分发模式、服务模式,核心开源模式等等。现在可以确定的是,传统的商业软件赚钱的方式已经不再适用开源软件;因此,你得选择一个能够支持你的公司的经营方式的开源协议。在赚钱和免费提供你的技术之间找到平衡在很多情况下是很困难的一件事。 这就是我们看到那些变化的原因。尽管 GPL 是一个开源协议,但是它根本上是个自由软件协议,作为自由软件协议,它的管理以及支持是由自由软件基金会提供的。 我喜欢自由软件基金会的作品,但是他们已经把观点局限于软件必须 100% 绝对自由。对于自由软件基金会没有多少可以妥协的余地,甚很多出名的开源项目(比如很多 Linux 发行版)仅仅是因为一丁点二进制固件就被认为是 “非自由” 软件。 对于商业来说,最复杂...阅读全文

博文 2017-08-04 08:03:43 debian.cn