-
如何用Python代码发一个炫酷的朋友圈
相信很多朋友在发朋友圈的时候,都会发一些话语,有些还会配一张图,但是普通的配图怎么符合我们程序员的身份呢?发出去都觉得没牌面,应该整点技术性的活。 今天给大家带来一个项目,这个小项目只用50行代码就能实现,它的名字叫做PIL(Python Image Library)。 其实这个项目要做的事情很简单,就是把原来的一张图切图,变为9张图,看着就有牌面了,成功霸屏。 那有的朋友就会问了,这也只是正方形的图片,那我的图片要是很长或者很宽,切不了9张图,那怎么办? 其实很简单,只要把高和宽计算出来,然后…
-
一文搞定 | Linux 共享内存原理
在Linux系统中,每个进程都有独立的虚拟内存空间,也就是说不同的进程访问同一段虚拟内存地址所得到的数据是不一样的,这是因为不同进程相同的虚拟内存地址会映射到不同的物理内存地址上。 但有时候为了让不同进程之间进行通信,需要让不同进程共享相同的物理内存,Linux通过 共享内存 来实现这个功能。下面先来介绍一下Linux系统的共享内存的使用。 共享内存使用 1. 获取共享内存 要使用共享内存,首先需要使用 shmget() 函数获取共享内存,shmget() 函数的原型如下: 参数 key 一般由…
-
5 个冷门但非常实用的 Kubectl 使用技巧,99% 的人都不知道
kubectl 是 K8s 官方附带的命令行工具,可以方便的操作 K8s 集群。这篇文章主要介绍一些 kubectl 的别样用法,希望读者有一定基础的 K8s 使用经验。 有一篇文章也介绍了一些技巧,写博客的时候正好搜到了,正好也分享出来吧。 Ready-to-use commands and tips for kubectl 打印当前使用的API 按状态筛选容器以及删除 这是我在这里学到的命令:Force Delete Evicted / Terminated Pods in Kubernet…
-
2021最佳DevOps监控工具
DevOps集文化理念、技术实践与工具于一身,可以提高组织快速交付应用程序和服务的能力,提高产品的质量和成本效益,能够帮助企业更快速地发展和改进产品,同时DevOps使企业在激烈的市场竞争中能够取得优势。 然而对于实施传统基础设施管理和软件开发流程的企业而言,可能会在市场竞争中处于不利的地位,原因是现代的软件开发生命周期中包含了多个同时进行的开发和测试阶段。 因此打造一个具备开发、测试和运维职能的团队对于企业来说是至关重要的。 DevOps的好处包括: 更快的创新、迎合市场的需求和更高的业务效率…
-
Kubernetes K8S之CPU和内存资源限制详解
Pod资源限制 备注:CPU单位换算:100m CPU,100 milliCPU 和 0.1 CPU 都相同;精度不能超过 1m。1000m CPU = 1 CPU。 官网地址: https://kubernetes.io/zh/docs/tasks/configure-pod-container/assign-cpu-resource/ https://kubernetes.io/zh/docs/tasks/configure-pod-container/assign-memory-resou…
-
DevOps就业面窄?这恐怕是我今年听过最好笑的笑话
说起现在运维的进阶方向有哪些,「DevOps」肯定榜上有名。但即便知道努力方向,运维朋友仍逃不过焦虑二字。 只听过DevOps,但却不知道DevOps到底是啥 朝着DevOps方向努力学习,可又不知道学什么 学了很久,还是没学明白,越学越烦躁 等好不容易学会了DevOps,又开始担心就业面窄,不好找工作: 大多数朋友学习全靠网上搜索,可网络时代,内容虽多但精的却很少,更多的是解释DevOps的定义和DevOps的必要性,但却很少有人整理DevOps案例,更没人梳理DevOps实践的演进路线和发展…
-
浅谈 Golang 锁的应用: sync包
Go 语言 sync 包中的锁都在什么场景下用?怎么用?本文对 sync 包内的锁做了梳理。 今天谈一下锁,以及 Go 里面 Sync 包里面自带的各种锁,说到锁这个概念,在日常生活中,锁是为了保护一些东西,比如门锁、密码箱锁,可以理解对资源的保护。在编程里面,锁也是为了保护资源,比如说对文件加锁,同一时间只也许一个用户修改,这种锁一般叫作文件锁。 实际开发中,锁又可分为互斥锁(排它锁)、读写锁、共享锁、自旋锁,甚至还有悲观锁、乐观锁这种说法。在 Mysql 数据库里面锁的应用更多,比如行锁、表…
-
我们准备了100份惊喜好礼,全部包邮免费送!见者有份~
提到程序员 你第一反应是什么? 于我而言 程序员有着独特的魅力 他们加班熬夜只为修bug 他们据理力争只为赶项目 无论多忙,多累 他们始终坚守在岗位 不离不弃 1024程序员节 马哥教育全体员工 致敬每一位程序员 平时忙的不可开交 没有时间放松娱乐 不如趁着节日 好好的玩上一场 10月24日 晚19:30 1024程序员吐槽大会 等你来参加 本期直播 特邀人气女神豆花 贴心班主任老师 多才多艺的豆包 以及学富五车的立文 我们聚在一起 不谈工作,不谈学习 只闲聊唠嗑 顺便吃吃零食,喝喝小酒 一起聊…
-
细说Redis分布式锁
谈起Redis锁,下面三个,算是出现最多的高频词汇: Setnx Redlock Redisson Setnx 其实目前通常所说的Setnx命令,并非单指Redis的setnx key value这条命令。 一般代指Redis中对set命令加上nx参数进行使用,set这个命令,目前已经支持这么多参数可选: 当然了,就不在文章中默写API了,基础参数还有不清晰的,可以蹦到官网:https://redis.io/commands/set 上图是笔者画的Setnx大致原理,主要依托了它的key不存在才…
-
因不懂Go面向接口编程,被公开嘲讽....
都说接口是Go语言中的核心部分,是Go语言这个类型系统的基石,但仍有部分朋友不懂什么是面向接口编程,因此被公开嘲讽。 接口,我们其实都不陌生,比如插座,比如手机充电口。只要事先定义好插座或手机口的接口标准,并按照标准生产,无论什么牌子,什么结构,用户都可以直接拿来用,即使插座坏了,大不了换一个符合标准的新插座或者充电线。 同样的道理,它在 Go 语言中通过一组方法指定了一个对象的行为,接口的引入能够让我们在 Go 语言更好地组织并写出易于测试的代码,这就是我们为什么说接口是Go语言的重要组成部分…