Debian 爱好者社区 为您找到相关结果 570

TLS1.3 正式版发布 — 特性与开启方式科普

。TLS1.2具有很强的可配置性,因此一些有安全漏洞的站点为兼容老版本的浏览器而没有关闭那些旧的属性。 TLS1.3信奉“少即是多”哲学,取消了对一些老旧而衰弱的加密方式的支持。这意味着你无法打开那些潜在的漏洞。TLS1.2中原有的大量特性都被删除了,其中大部分特性与那些著名的攻击有关,这些特性包括: RSA 密钥传输 —— 不支持前向安全性 CBC 模式密码 —— 易受BEAST和Lucky 13攻击 RC4 流密码 —— 在HTTPS中使用并不安全 SHA-1 哈希函数 —— 建议以SHA-2取而代之 任意 Diffie-Hellman 组 —— CVE-2016-0701漏洞 输出密码——易受 FREAK 和 LogJam攻击 TLS1.3 消除了旧版本中糟糕的加密方式,同时降低了旧的攻击方式对其...阅读全文

博文 2018-08-14 14:40:05 debian.cn

使用 setfacl 管理文件的访问控制列表ACL

。在 Debian 系统中,执行命令: sudo apt-get install acl ACL 使用样例 ACL即Access Control List,主要的目的是提供传统的 owner, group, others 的 read, write, execute 权限之外的具体权限设置,ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的访问控制有一定帮助。例如,某一个文件不让单一的某个用户访问。 ACL使用两个命令来对其进行控制: getfacl:取得某个文件/目录的ACL设置项目 setfacl:设置某个文件/目录的ACL设置项目 setfacl 的命令参数: -m:设置后续acl参数 -x:删除后续acl参数 -b:删除全部的acl参数 -k:删除默认...阅读全文

使用 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

域名与商标: 如何防止域名被仲裁

。因为收购是域名投资市场正常的交易行为,在这里,重点要说说域名仲裁的那点事。 关天域名仲裁的事儿,最近发生的也不少,有点名气的如淘宝仲裁"HAITAO"双拼,以失败告终。那么,仲裁的根源是什么?什么样的行为又会构成仲裁呢? 域名仲裁的依据,一般认为是根据《保护工业产权巴黎公约》第六条之2和《知识产权协议》第16条第3项都规定,禁止复制、仿造或翻译他人的驰名商标用于任何商品或服务。网络作为现实的延伸,国际公约中对驰名商标的保护,同样也延伸到网络世界中,而域名作为网络上一种唯一的、排它性的标志,自然是首当其冲。但是,由于域名注册的自由,开放,先得原则,与商标的保护,又存在着一定的冲突和约束,因此,ICANN就针对域名争端制定了《域名争端统一解决政策》。 在这两种原则相冲突的情况下,仲裁机构如何对与...阅读全文

博文 2019-01-18 14:59:59 debian.cn

钉钉发送报警消息的Python实现

] else: return '' access token 在2小时内有效,有效期内重复获取返回相同结果,重复获取会使有效期会自动顺延。corp_id 和corp_secret 是企业的 id 和 secret,在钉钉的管理后台可以找到。另外,上面用到了 urllib2 和 json,需要在脚本中引用。 消息类型 钉钉的消息类型分为:text,image,voice,file,link和OA。下面以发送文本,链接和文件消息为例进行说明。 给用户发送消息 发送文本 def send_text_to_users(access_token, users, text): msg_type, msg = _gen_text_msg(text) return _send_msg_to_users...阅读全文

博文 2018-04-27 08:51:33 debian.cn

总结系统设计中的33个黄金法则

Refer to https://www.linkedin.com/pulse/system-design-rules-navneet-kumar-p6n7f/ 系统设计很复杂,它需要设计者有深厚的计算机知识和专业知识,没有一种通用的设计可以适应所有业务场景。尽管如此,还是有一些比较通用的规则可以供你设计系统时参考,也能帮助你在面试中摆脱困境。 1. 对于数据密集型系统 — 考虑使用缓存。 2. 对于写入量大的系统 — 使用消息队列进行异步处理 3. 对于低延迟要求 — 考虑使用缓存和 CDN。 4. 需要𝐀原子性、𝐂一致性、𝐈隔离性、𝐃耐用性兼容数据库 — 选择 RDBMS/SQL 数据库。 5. 对于非结构化数据——可以选择NoSQL...阅读全文

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

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

境 首先,我们需要安装Node.js和Vue CLI,并创建一个Vue3项目。然后,我们需要安装Element Plus、Axios和ECharts等依赖库。 2. 设计页面 在设计页面时,我们需要遵循一些基本原则,包括界面简洁明了、布局合理、交互友好等。我们可以使用Element Plus提供的UI组件来构建页面,以及使用ECharts展示数据统计报表。 3. 实现功能 在实现功能时,我们需要编写Vue组件,并调用Axios发送HTTP请求。同时,我们需要使用Vue Router进行路由管理,并使用Vuex进行状态管理。 4. 测试和优化 在完成开发之后,我们需要对应用程序进行测试,确保所有功能都能正常工作。如果有问题或性能瓶颈,我们需要对代码进行优化。 总结 通过这个示例,我们学习了如何...阅读全文

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

三大亮点带你看 Linux 内核 5.6

原因。 同样,Ubuntu 20.04 LTS 将支持 WireGuard。 2、支持 USB4 Linux 5.6 也将支持 USB4。 如果你不了解 USB 4.0 (USB4),你可以阅读这份文档。根据文档,“USB4 将使 USB 的最大带宽增大一倍并支持多并发数据和显示协议multiple simultaneous data and display protocols。” 另外,虽然我们都知道 USB4 基于 Thunderbolt 接口协议,但它将向后兼容 USB 2.0、USB 3.0 以及 Thunderbolt 3,这将是一个好消息。 3、使用 LZO/LZ4 压缩 F2FS 数据 Linux 5.6 也将支持使用 LZO/LZ4 算法压缩 F2FS 数据。 换句话说,这只...阅读全文

博文 2020-02-07 11:13:09 debian.cn

Kubernetes调度算法浅析

给每个节点和待分配的pod进行打分。1.首先可用的node和pod会被打分函数进行打分,分数在0-10分之间。并且每个打分函数还有一个权重值。那么一个可用的node节点最后的总分就是:Σ函数打分*函数的权重值。 node节点总分 =(函数1的打分 * 函数1权重值)+......+(函数n的打分 * 函数n的权重值) 2.打分函数即优先级函数的种类: 这里只介绍了一部分的优先级函数算法,还有许多算法在这里未解释有兴趣的小伙伴可以上网查一下哦。 小结 kube-scheduler组件将整个集群资源调配变得很科学。比如该如何分配pod的副本到其他的node节点中,或者如何分配pod使得集群运转的更加高效。此外kube-scheduler还支持第三方的调度器进行扩展,所以是一种插件化的实现。...阅读全文

博文 2020-12-20 11:01:10 debian.cn

企业制定开源战略的免费指南

大多数使用开源的公司都了解其商业价值,但他们可能缺乏战略性地实施开源计划和获得全部回报的工具。根据 The New Stack 最近的一项调查,“开源计划的三大好处是 1)提高了对开源的认识,2)提高了开发周期的速度和灵活性,以及 3)更好的许可证合规性。” 开源指南 运作一个开源计划办公室涉及到创建策略来帮助你定义和实施你的方法,并衡量你的进度。由 Linux 基金会与 TODO Group 合作开发的 企业开源指南基于多年的经验和实践提供了专业开源知识。 最新的指南中, 设置开源战略详细介绍了制定战略和确保成功之路的基本步骤。根据该指南,“你的开源战略将管理、参与和创建开源软件的计划与计划所服务的业务目标联系起来。这可以开辟许多机会并促进创新。”该指南涵盖以下主题: 为什么制定战略?你...阅读全文

博文 2018-12-17 13:05:32 debian.cn

除了HighScalability 还有哪些介绍网站拓扑、架构的站点

HighScalability.com 是一个经典的架构类网站,曾介绍过许多著名的大型网站的架构和扩展性方案。除了它以外,以下这些网站也提供了大量优秀的技术架构、系统设计、拓扑架构的内容,非常值得关注:🌟 一、国外权威技术博客类网站📌 1. InfoQ • 网址:https://www.infoq.com • 特点: • 覆盖分布式架构、微服务、云原生、DevOps、性能扩展、高并发系统等各方面技术架构实践。 • 文章质量非常高,经常分享一线公司(Netflix、Spotify、AWS等)真实案例。📌 2. Netflix Tech Blog • 网址:https://netflixtechblog.com/ • 特点: • Netflix官方技术博客,深入介绍Netflix基础架构...阅读全文

Elastic search 6.0.0 正式发布 大量新特性

Elasticsearch 群集搜索 和以前一样,Elasticsearch 6.0 能够读取在 5.x 中创建的 Indices ,但不能读取在 2.x 中创建的 Indices 。不同的是,现在不必重新索引所有的旧 Indices ,你可以选择将其保留在 5.x 群集中,并使用跨群集搜索同时在 6.x 和 5.x 群集上进行搜索。 迁移助手 Kibana X-Pack 插件提供了一个简单的用户界面,可帮助重新索引旧 Indices ,以及将 Kibana、Security 和 Watcher 索引升级到 6.0 。 群集检查助手 在现有群集上运行一系列检查,以帮助在升级之前更正任何问题。 你还应该查阅弃用日志,以确保您没有使用 6.0 版中已删除的功能。 使用序列号更快地重启和还原 6.0 版本中最大的一个新特...阅读全文

博文 2017-11-15 18:11:10 debian.cn

Linux 上如何禁用 USB 存储设备

block_usb.conf (也可能叫其他名字) , $ sudo vim /etc/modprobe.d/block_usb.conf 然后将下行内容添加进去: install usb-storage /bin/true 最后保存文件并退出。 方法 2:删除 USB 驱动 这种方法要求我们将 USB 存储的驱动程序(usb_storage.ko)删掉或者移走,从而达到无法再访问 USB 存储设备的目的。 执行下面命令可以将驱动从它默认的位置移走: $ sudo mv /lib/modules/$(uname -r)/kernel/drivers/usb/storage/usb-storage.ko /home/user 现在在默认的位置上无法再找到驱动程序了,因此当 USB 存储器连接到系统上时也就无法加载到驱动...阅读全文

博文 2017-12-18 22:52:58 debian.cn

Debian Linux下LNMP环境配置

http://packages.dotdeb.org wheezy all 完成之后更新源: apt-get update 接下来就可以开始安装nginx、mysql、php了。 2.MySQL 使用apt工具安装: apt-get install -y mysql-server mysql-client 安装过程中会询问root密码,输入你想设定的密码就可以。安装完成后执行如下配置命令: mysql_secure_installation 按提示往下走就行,过程中会询问是否更改root密码、是否移除匿名用户、是否禁止root远程登录等,自己按需配置即可。 注:我在使用mysql的过程中发现远程客户端无法连接到数据库,后来发现问题是“/etc/mysql/my.cnf”文件中“bind...阅读全文

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

Qt5.9发布:如何评价QT

Quick Controls 2的功能增强,还有基于openGL shader cache 对QML进行类型缓存, 以及.qml / .js文件生成的代码和数据结构的缓存的支持。 这些功能将大大提高使用Qt构建的设备的启动速度。 发布新Qt Creator 4.3.0,Quick Designer里面也看以同时看到和编辑qml code了! 作为Qml项目开发者确实立刻感到了方便! 还有新框架将允许Qt团队更容易创建新版本,包括修补程序和发布次要版本。 引入自动化性能回归测试,使得对Qt的监控与提高加强。 安全方面,Qt 5.9正式支持INTEGRITY RTOS。 确实越来越多的RTOS应用程亟需要更高级GUI框架来满足用户期望呢。 操作系统和硬件方面,Qt 5.9完全同时支持传统的Win32应用...阅读全文

博文 2017-06-02 10:24:32 5.9的变化

LFS 8.0 正式发布:从零开始编译自己的 Linux 发行版

,另有两个变种1.CLFS Sysroot 采用Sysroot的方法来进行编译,好处是软件包的编译次数可以减少,坏处是不能支持在编译后对软件进行测试,必须要启动到目标平台上才能测试。 2.CLFS Embedded 一般用于极小系统以及嵌入式系统。为此,它使用uclibc而不是一般LFS使用的glibc。 Automated Linux From Scratch(ALFS) 标准LFS只是一本书,用户需要根据书上的指引下载软件包并手动输入指令进行编译。ALFS子项目提供了把这一切自动化的脚本。 Hardened Linux From Scratch(HLFS) 这个子项目致力于打造在安全性上无懈可击的Linux系统。 Hints 收集一些解释性、增强性的文档,以协助用户 LiveCD 利用...阅读全文

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

五种绕过 Linux 命令别名的方法

下命令暂时绕过名为 mount 的 bash 别名:\mount 方法 2 - 使用引号: "command" 或 'command' 如下引用 mount 命令调用实际的 /bin/mount:"mount" 这里单引号和双引号都可以。 方法 3 - 使用命令的完全路径 使用完整的二进制路径,如 /bin/mount: 方法 4 - 使用内部命令 command 就是在执行的命令前加上 command 命令,样例如下: command cmd command cmd arg1 arg2 要绕过 .bash_aliases 中设置的别名,例如 mount: command mount command mount /dev/sdc /mnt/pendrive/ “command” 直接运行命令...阅读全文

博文 2018-03-08 13:33:02 debian.cn

OpenSSL 3.0 正式发布,更改许可协议并弃用所有低级别 API

经过 3 年的开发,17 个 alpha 版本,2 个 beta 版本,超过 7500 个提交,以及来自 350 位不同开发者的贡献,OpenSSL 3.0 终于正式发布了。OpenSSL 1.1.1 以来的主要变化主要版本开发者可以从这里下载 OpenSSL 3.0,并升级你的应用程序使之兼容。OpenSSL 3.0 是一个大版本升级,并不完全向后兼容以前的版本。大多数使用 OpenSSL 1.1.1 的应用程序仍然可以正常工作,只是需要重新编译(可能会有关于使用废弃的 API 的编译警告)。还有一些不能完全兼容的应用可能需要进行修改才能正确编译和使用。如果应用程序需要利用 OpenSSL 3.0 中的一些新功能(例如 FIPS 模块),也需要对应用进行更改。许可证变更在以前的版本中...阅读全文

历数2017年五大Linux痛点

Linux操作系统为许许多多用户安装和使用,难免会遇到一些问题。正如2016年我们总结过5大Linux故障排除技巧一样,在即将过去的2017年里,我们依然搜集了用户在使用Linux系统时发现的问题,在此总结综述为"2017年五大Linux痛点",直指用户使用的关键点,希望能对您有所帮助。 1.文档 文档的问题是你今年最大的痛点吗?开源的方式产生了大量优秀的代码,文档的质量也因此上升了一个台阶。随着越来越多的非技术用户采用Linux和开源软件,文件的质量和数量将变得至关重要。如果您想为开源项目做贡献,但又不觉得自己有足够的技术来提供代码,那么改进文档是一个很好的参与方式。许多项目甚至将文档保存在它们的存储库中。因此你可以通过自己的贡献去改进工作的效率。 2.软件/版本不兼容 软件版本不兼容的...阅读全文

博文 2017-11-25 12:27:56 debian.cn

Rust的模块化系统: 包Packages, 箱Crates, 和模块Modules

(); map.insert(1, 2); } 有命名冲突时, 引入父模块use std::fmt; use std::io; fn function1() -> fmt::Result { // --snip-- } fn function2() -> io::Result<()> { // --snip-- } 或用as解决命名冲突的问题use std::fmt::Result; use std::io::Result as IoResult; fn function1() -> Result { // --snip-- } fn function2() -> IoResult<()> { // --snip-- } 引入同一个模块module或包package中的多个元素use std::{cmp...阅读全文

博文 2021-02-20 08:49:51 知乎

Golang 之禅: 如何写优质代码

。 明确处理错误 健壮的程序其实是由处理故障案例的片段组成的,并且需要在故障出现之前处理好。冗余的if err != nil { return err }比出了故障再一个个去处理更有价值。panic 和 recover 也一样。 尽早 return,不要深陷 每次缩进时都会在程序员的堆栈中添加另一个先决条件,这会占用他们短期内存中的 7±2 个片段。避免需要深层缩进的控制流。与其深入嵌套,不如使用守卫子句将成功路径保持在左侧。 并发权留给调用者 让调用者选择是否要异步运行你的库或函数,不要强制他们使用异步。 在启动 goroutine 之前,要知道它什么时候会停止 goroutines 拥有资源、锁、变量与内存等,释放这些资源的可靠方法是停止 goroutine。 避免包级别的状态 要完成明确和...阅读全文

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

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

:1dd78a123212328bd… 123MB 文件大小是否已发生改变? $ docker images | grep node- node-multi-stage 331b81a245b1 678MB node-vanilla 075d229d3f48 679MB 最后一个镜像(node-multi-stage)更小一些。你已经将镜像的体积减小了,即使它已经是一个很小的应用程序。但整个镜像仍然很大!有什么办法可以让它变得更小吗? 2. 用 distroless 去除容器中所有不必要的东西 这个镜像包含了 Node.js 以及 yarn、npm、bash 和其他的二进制文件。因为它也是基于 Ubuntu 的,所以你等于拥有了一个完整的操作系统,其中包括所有的小型二进制文件和实用程序。 但在运行容器时是不需要这些东西的,你...阅读全文

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

分布式任务调度平台 XXL

XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 v2.0.0 Release Notes 1、调度中心迁移到 springboot ; 2、底层通讯组件迁移至 xxl-rpc ; 3、容器化:提供官方 docker 镜像,并实时更新推送 dockerhub(docker pull xuxueli/xxl-job-admin),进一步实现产品开箱即用; 4、新增无框架执行器 Sample 示例项目 “xxl-job-executor-sample-frameless”。不依赖第三方框架,只需 main 方法即可启动运行执行器; 5、命令行任务:原生提供通用命令行任务 Handler(Bean...阅读全文

博文 2018-11-05 21:47:15 JOB 2.0.0 发布

Golang 中的 channel 通道详解

channel的容量。对于内置的len函数,如果传入的是channel,那么将返回channel内部缓存队列中有效元素的个数。因为在并发程序中该信息会随着接收操作而失效,但是它对某些故障诊断和性能优化会有帮助。package main import "fmt" func main() { ch := make(chan int, 10) // 创建一个最大容量为10的channel ch <- 233 ch <- 2 ch <- 3 fmt.Println(cap(ch)) // 10 fmt.Println(len(ch)) // 3 fmt.Println(<-ch) // 233 fmt.Println(len(ch)) // 2 } 向缓存Channel的发送操作就是向内部缓存队列的尾部插入元素...阅读全文

Kubernetes 部署 Nacos 1.4 集群 · 小豆丁

-binding subjects: - kind: ServiceAccount name: nacos-admin namespace: devops roleRef: kind: ClusterRole name: nacos-admin-clusterrole apiGroup: rbac.authorization.k8s.io 执行部署 Nacos RBAC 资源 -n:指定部署的 Namespace $ kubectl apply -f nacos-rbac.yaml -n mydlqcloud 2、创建数据库配置 ConfigMap 资源 nacos-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: nacos...阅读全文

博文 2021-02-24 10:10:29 www.mydlq.club

聊聊很重要的内核技术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

DPDK Graph Pipeline 框架简介与实现原理

++] = node->off; graph->tail = tail & graph->cir_mask; } 复制代码 而API 函数 __rte_node_enqueue_tail_update目的就是调整 tail 把下一个 node 放到 pending stream 里。 下图展示了报文的传递跟 node 是如何被加到 pending stream 的关系。 注意一下 node 添加到 pending stream 的顺序取决于处理报文时的顺序。例如,如果报文 1 和 3 到 node2,而 报文 2 和 4 到 node3,那么 circular buffer/pending stream 中 node1 和 node2 的顺序将被交换。 组件 libgraph 的核心组件是 graph 和...阅读全文

博文 2023-02-09 07:13:55 掘金

RabbitMQ 高可用实现镜像队列

:publish 到镜像队列的所有消息总是被直接 publish 到 master 和所有的 slave 之上。这样一旦 master 失效了,message 仍然可以继续发送到其他 slave 上。 简单来说,镜像队列机制就是将队列在三个节点之间设置主从关系,消息会在三个节点之间进行自动同步,且如果其中一个节点不可用,并不会导致消息丢失或服务不可用的情况,提升 RMQ 集群的整体高可用性。 先来看下设置镜像队列后的效果: 镜像队列会出现+2标识, 1.如何设置队列为镜像队列 有两种方式,通过命令行或者通过 RMQ 的控制面板。 通过命令行设置镜像队列 rabbitmqctl set_policy [-p Vhost] Name Pattern Definition [Priority] -p Vhost...阅读全文

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

如何使用 journalctl 清理 journal 日志

下面的逻辑来覆盖默认设置: 主配置文件最先被读取, 优先级也最低。 所有 *.conf.d/ 中的配置文件 都会覆盖主配置文件中的设置。 所有 *.conf.d/ 中的配置文件(无论位于哪个目录中), 统一按照文件名的字典顺序处理。 当多个配置文件都设置了同一个选项的时候: (1)如果该选项仅接受一个单一值,那么仅以文件名最靠后(字典顺序)的那一个为准; (2)如果该选项可接受一个值列表,那么将会按照文件名的字典顺序将所有值列表拼接起来。 为了便于排序, 建议给所有 *.conf.d/ 中的配置文件 都加上两位十进制数字的文件名前缀。 如果系统管理员想要屏蔽 /usr/lib/ 目录中的某个配置文件, 那么最佳做法是在 /etc/ 目录中 创建一个指向 /dev/null 的同名符号链接...阅读全文

博文 2021-02-05 15:43:28 博客园

深入理解Golang之context

选择执行哪个取消选项。考虑下面这种情况:假如主协程中有多个任务1, 2, …m,主协程对这些任务有超时控制;而其中任务1又有多个子任务1, 2, …n,任务1对这些子任务也有自己的超时控制,那么这些子任务既要感知主协程的取消信号,也需要感知任务1的取消信号。如果还是使用done channel的用法,我们需要定义两个done channel,子任务们需要同时监听这两个done channel。嗯,这样其实好像也还行哈。但是如果层级更深,如果这些子任务还有子任务,那么使用done channel的方式将会变得非常繁琐且混乱。我们需要一种优雅的方案来实现这样一种机制:上层任务取消后,所有的下层任务都会被取消;中间某一层的任务取消后,只会将当前任务的下层任务取消,而不会影响上层的任务以及同级任务...阅读全文

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

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

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

提问者为Linuxstory.org的华华,回答者即为清风博主老师。之前常逛Linux社区的同学,对这个ID应该很熟悉。 A.您与Linux的那些事 1.清风老师能简单的介绍下您自己吗? 答:中学地理老师,Linux爱好者,Gentoo用户,70后 来张几年前上课摆拍的工作照吧 2.您是因为什么喜欢上折腾Linux的呢?遇到最大的困难是什么呢? 答:说来话长。初识Linux是在参加工作近10年之后,之前都没听说过Linux。真正知道Linux,是因为自学了点asp,后来在搜索如何搭建更好的网站环境时,才知道了还有这么一个神奇的系统。2008年,有了笔记本电脑后,才尝试安装,发现这个系统太适合拿来折腾了!从入门级的Ubuntu到Gentoo,桌面环境从gnome2、unity、gnome3...阅读全文

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

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

此跨平台框架。如果想要添加新的关键字(通过 RF 测试库 API ),需要具备 Java / Python / C 语言的基础知识。 2. JUnit JUnit 是一款针对 Java 应用的单元测试框架,用于编写和运行可重复的测试。 优点: 纯 Java 编写。 支持测试驱动开发(TDD)。 允许创建自己的单元测试用例套件。 能很好地与其他工具(如 Maven )和 IDE(如 IntelliJ )集成。 长时间发展,有自己庞大的用户群体,可以很容易找到文档。 缺点: 如果需要 mocking 能力,则需要额外添加 Mockito(或其他模拟库)。 因 JUnit 中的方法名称受 Java 约定限制等原因,非技术人员很难读懂测试结果。 如果你正在为你的 Java 应用编写单元测试,那这可能...阅读全文

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

Rust 1.37.0 稳定版发布

) => { const _: [(); $size] = [(); ::std::mem::size_of::<$ty>()]; // ^ Note the underscore here. } } static_assert_size!(Option>, 8); // 1. static_assert_size!(usize, 8); // 2. 注意第二个 static_assert_size!(..):由于使用了未命名的常量,可以在不命名冲突的情况下定义新项。以前,需要编写 static_assert_size!(MY_DUMMY_IDENTIFIER, usize, 8);。在 Rust 1.37.0,可以更容易地为静态分析目的创建人机工程学和可重用的声明性和过程宏。 配置文件引导的优化(Profile...阅读全文

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

亚马逊12个月免费云服务

热线、在线聊天支持。作为全球云服务的龙头企业,亚马逊云计算拥有最广泛的全球云计算基础设施,全球节点丰富,为网站的快速稳定访问提供基础设施保障。配合亚马逊全球CDN节点,能满足不同国家独立站访问速度需求。1.什么是云服务器?云计算服务器(也称云服务器或云主机)是云计算服务系统中的主机产品,有效解决了传统物理主机中管理难度大、业务扩展性弱的缺陷。在实际应用中,云主机具有三个方面的灵活性:主机服务配置和业务规模可根据用户需求配置,可灵活调整。用户申请的主机服务可以快速供应和部署(实时在线开通),实现集群内灵活可扩展的收费模式,用户无需支付押金,有多种支付模式供用户选择。2.云服务器适合什么样的用户?关注主机服务性价比的用户;需要快速实现分布式部署的用户;需要灵活扩展业务的用户;对系统高可用性和快速...阅读全文

一位资深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

团队激励的八大方法,让你的团队成员更加高效地达成目标

,实现目标。激励作用=目标意义×实现可能性从这一公式中可以明确地看出,目标意义和实现的可能性越大,激励作用也越大,反之亦然。目标的设置必须具有可行性,这不仅可以使目标发挥最大的激励作用,还有利于具体目标与长远目标的实现,以及个人目标与团队目标的有机结合。2、集体荣誉激励法集体荣誉激励法是指团队各级领导者在实际工作中,通过多表扬、奖励集体来激发下属的集体意识,使每个团队成员产生一种强烈的荣誉感、责任感和归属感,从而形成一种自觉维护集体荣誉的向心力的办法。3、情感激励法每个人都需要关怀与体贴。一句亲切的问候,一番安慰的话语,都会成为激励人们行为的动力。通常来说,团队成员工作热情的高低,同领导与员工感情的亲疏成正比。团队领导可以和员工经常沟通,内容可以是家庭、生活、婚姻、生产、娱乐、工作等,相互交流...阅读全文

开源软件对于商业机构的6大好处

持周期,以避免更新混乱的出现。 2、有利于产品的长期发展 福布斯杂志指出,90%的初创公司最后都会失败,而他们当中,只有不到一半的中小型公司存活期能超过5年。如果在产品开发的中途突然出现需要更换供应商的问题,那迁移的成本就很高了。所以,要避免选择只有一个供应商支持的产品。 而开源使得社区成员能够协同编写软件。如 OpenStack 就是由多个公司及个体志愿者共同编写的。这么做,就能保证,在一个供应商出现问题的情况下,其他供应商能继续支持。而且,软件一经开源,企业就会长期投入开发团队以实现产品开发。使用源代码的好处就是,你可以聘用贡献者来保证开发的活跃性。 3、更安全 以开源的方式进行开发,可以很直观地看到,供应商是如何对待安全问题,以及是否在积极保证产品安全。研究源代码并执行独立代码审核,也...阅读全文

博文 2017-11-15 23:41:11 debian.cn

Memcache UDP反射放大攻击技术分析

务崩溃,并不能稳定的打出最大放大倍数。但是这里涉及的技术改进并不困难,攻击者容易做出响应调整。 另外,我们对将放大倍数调整到 60k 以上做了一些初步分析。我们怀疑这个比例是可以继续显著提高的,但具体技术细节不会在这里讨论。 当前已知 Memcache DRDoS 攻击的案例 2月27日,Qrator Labs 在 medium.com 上 批露 了一次DDoS攻击。按照文章的说法,这次攻击确信就是 UDP 11211 端口上的 memcache DRDoS,攻击流量峰值达到 480Gbps。 除了这个案例以外,我们确认有更大的攻击已经实际发生,但并未被公开报道。 当前已知各国运营商、安全社区的应对措施 目前已经有多个相关安全通告,部分列出如下: 通告类:多个主要设备厂商、安全厂商、CERT...阅读全文

博文 2018-03-02 09:20:52 debian.cn

Redis 6.0.0 GA已正式发布

用于选定的前缀),但服务器端无需进行任何内存操作。此外,现在支持选择加入/退出模式,因此,对于不使用广播模式的客户端,可以将其将缓存的内容准确告知服务器,以减少无效消息的数量。从根本上说,现在该功能在需要低内存模式和需要选择性(低带宽)模式时都更好。 2.这是许多用户的旧请求。现在,Redis支持一种模式,用于复制的RDB文件会在不再有用时立即删除。在某些环境中,最好不要将数据存储在磁盘上,而要存储在内存中。 3. ACL在某些方面更好。首先,有一个新的ACL LOG命令,该命令允许查看所有违反ACL的客户端,访问不应该访问的命令,不应该访问的密钥或尝试失败的身份验证。该日志实际上位于内存中,因此每个外部代理都可以调用“ ACL LOG”以查看发生了什么。这对于调试ACL问题非常有用。 但是...阅读全文

博文 2020-05-01 09:15:09 debian.cn

兼容 tmux 的文件上传/下载工具 trzsz ( trz / tsz ) 使用指南 支持进度条和目录传输

择合适的缓冲区大小,但不会超过此上限。-t 超时时间trz -t 30 或 tsz -t 30 xxx 等,设置超时秒数 ( 默认 20 秒 )。在超时时间内,如果无法传完一个缓冲区大小的数据则会报错并退出。设置为 0 或负数,则永不超时。异常处理方法如果 tmux 不是运行在远程服务器上,而是运行在本地电脑上,或者运行在中间的跳板机上。方案1:使用 tmux -CC 与 iTerm2 集成,请参考 iTerm2 与 tmux -CC 集成。方案2:在本地电脑上安装 trzsz-go,设置 alias ssh="trzsz ssh" 可以方便使用。如果出现了错误,且 trzsz 挂住不能动了:按组合键 control + c 可以停止服务器上的 trz 或 tsz 进程。对于 iTerm2...阅读全文

博文 2023-01-06 07:54:36 joseph

Java 12 / JDK 12 正式发布

2 月 7 日开始,Java/JDK 12 就进入了 RC 阶段。按照发布周期,美国当地时间 3 月 19 日,也就是今天 Java 12 正式发布了! △ JDK 12 GA 发布 Java 12 带来了一系列新特性: 189Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) 低暂停时间的 GC230Microbenchmark Suite 微基准测试套件325Switch Expressions (Preview) Switch 表达式334JVM Constants API JVM 常量 API340One AArch64 Port, Not Two 只保留一个 AArch64 实现341Default...阅读全文

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

AD:为什么说 CoinEx 是一家很有潜力的数字货币交易所?

大家详细介绍CET,以及推出它的全球知名数字资产交易服务商CoinEx。 CET(CoinEx Token)诞生于2018年1月,是 CoinEx业务生态内的用户增值服务权益体系,最开始 CET 基于 Ethereum ERC20 协议发行。CoinEx业务生态内的用户增值服务权益体系,CET价值远不止这些。CET可以在多种场景下流通并使用。CET的核心价值包括并不限于: ** 1、长期回购销毁 ** CoinEx每天自动将平台手续费收入的50%用于回购CET,并在每个自然季度结束时将当季回购的CET全部销毁,直至CET总量减至30亿。CET总量减至30亿后,CoinEx将继续把平台手续费收入的20%用于回购并销毁CET,直至CET全部销毁。 ** 2、优惠抵扣平台交易费 ** CoinEx...阅读全文

Go 1.16 即将发布,这些变更你需要知道

bytes, 0 allocs init errors @0.22 ms, 0.004 ms clock, 0 bytes, 0 allocs init strconv @0.24 ms, 0.002 ms clock, 32 bytes, 2 allocs init sync @0.28 ms, 0.003 ms clock, 16 bytes, 1 allocs init unicode @0.44 ms, 0.11 ms clock, 23328 bytes, 24 allocs ... 主要作用是 init 函数跟踪的支持,以用于 init 调试和启动时间的概要分析,算是一个 GODEBUG 的补充功能点。 简化结构体标签 在 Go 语言的结构体中,我们常常会因为各种库的诉求,需要对结构体的...阅读全文

博文 2021-02-17 08:52:12 CSDN博客

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

value值自增指定的整型数值,并返回自增后的值。只对可以转换为整型的String数据起作用。时间复杂度O(1) DECR/DECRBY:同INCR/INCRBY,自增改为自减。 INCR/DECR系列命令要求操作的value类型为String,并可以转换为64位带符号的整型数字,否则会返回错误。 也就是说,进行INCR/DECR系列命令的value,必须在[-2^63 ~ 2^63 – 1]范围内。 前文提到过,Redis采用单线程模型,天然是线程安全的,这使得INCR/DECR命令可以非常便利的实现高并发场景下的精确控制。 例1:库存控制 在高并发场景下实现库存余量的精准校验,确保不出现超卖的情况。 设置库存总量: SET inv:remain "100" 库存扣减+余量校验: DECR...阅读全文

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

Jono Bacon: GPL 没落了吗?

目的自然选择,Debian、Ubuntu、Fedora 和 Linux 内核以及很多都是例子。 近年来,尽管我们已经看到了不再那么挑剔的一代开发者的出现,但是如果我说的过激一些,他们缺少对于自由的关注。对于他们来说开源软件是构建软件的务实、实用的一部分,而无关伦理。我想,这就是为什么我们发现 MIT 和 Apache 协议的流行的原因。 未来 ? 这对于 GPL 意味着什么? 我的猜想是 GPL 依然将是一个主要选项,但是开发者将将之视为纯粹的自由软件协议。我想对于软件的纯粹性有高要求的项目会优先选择 GPL 协议。但是对于商业软件,为了保持我们之前讨论过的那种平衡,他们不会那么做。我猜测, MIT 以及 Apache 依然会继续流行下去。 不管怎样,好消息是开源/自由软件行业确实在增长。无...阅读全文

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

Kubernetes 1.9发布:Apps Workloads通用版本与生态系统扩展

(简称GA) 我们兴奋地向大家宣布,apps/v1 Workloads API[1]通用版本现在已经默认启用。Apps Workloads API负责将DaemonSet、Deployment、ReplicaSet以及StatefulSet API等整合起来,从而构建起在Kubernetes内长期运行无状态与有状态工作负载的根本性基础。需要强调的是,Batch Workloads API(Job与CronJob)并不在Apps Workloads API的整合范畴之内,未来前者将推出自己的独立通用稳定版。 Deployment与ReplicaSet属于Kubernetes当中使用频率最高的两个对象,根据一年多以来收集到的实际使用与反馈意见,二者的稳定性已经得到极大提高。SIG Apps[2]也...阅读全文

博文 2017-12-17 01:00:00 debian.cn

Gitlab CI 配置文件 .gitlab

上传的artifacts。默认情况下,artifacts都是在GitLab中永久保存。expire_in允许设置设置artifacts的存储时间,从它们被上传存储到GitLab开始计算。 可以通过job页面的Keep来修改有效期。 过期后,artifacts会被通过一个默认每小时执行一次的定时job删除,所以在过期后无法访问artifacts。 expire_in是一个时间区间。下面可设置的值: '3 mins 4 sec' '2 hrs 20 min' '2h20min' '6 mos 1 day' '47 yrs 6 mos and 4d' '3 weeks and 2 days' 示例配置 设置artifacts的有效期为一个星期: job: artifacts: expire_in...阅读全文

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

阿里巴巴版 JDK 首发 GA 版 生产环境可用

某些测试用例,启动阶段跑分会有 10% 的提高。该特性在阿里巴巴的双 11 抢购场景中得到了大量验证。目前,阿里巴巴正在社区努力推进,希望通过 JEP 的方式将该功能推到上游 OpenJDK 社区。 下图是阿里一个应用在“双十一”期间使用 JWarmUp 时的效果: 说明:图中蓝线是正常启动 (默认开启分层编译),红线是启用 JWarmUp 的 CPU 使用率。 (1)是开启了 JWarmUp 选项,在应用启动时候,流量进来之前积极加载和编译方法。(2)是流量进来的时刻。(3)是正常模式启动下,CPU 消耗 100% 维持了 70s。(注:作图省略了一部分数据)(4)对应的绿线是稳定后 CPU 的使用率。 可以看到应用 JWarmUp 后在流量进来的时候 JWarmUp 可以减少大量 CPU...阅读全文

博文 2019-07-11 10:24:52 debian.cn