程序猿

程序猿必备的高逼格午饭玩具

会有一股神秘感。 提交于 2019-11-27 00:29:16
午饭选择综合症?天天呆在写字楼,方圆百米内的餐馆都吃吐了?天天喊着「改变世界」的程序猿,连午饭吃啥都搞不定,还搞个毛线世界? 这是一篇有逼格追求的程序猿们,有效解决中午吃啥的「世界性难题」的故事,正在申请2016年诺贝尔和平奖。 原始需求: 解决攻城狮、程序猿、运维狗们的午饭吃啥问题。不在以上系列的小盆友请出门右拐煎饼摊,夹菜5块,加肠7块。 解决思路: (设计)提前解决,12点吃饭,11点开始准备。 (功能)负责到人,落不到人头上的都不算事。团队里每个小伙伴轮值一天,负责确定吃啥,如果是外卖下单;或者饭馆订位,或者确定快餐店吃饭地点。 (可靠性)候补机制,如果第一责任人没有及时处理,有候补人员,第一责任人惩罚买零食。 实现: 使用 OneAlert 排班计划,团队每人轮值1天。 使用定时调度脚本,11点准时提醒。发送吃饭事件到 OneAlert 的一个应用里。 使用 OneAlert 的通知必达,短信、微信、电话、邮件通知第一负责人,如果不处理,默认升级候补人。 不知道 OneAlert 的,请自行度娘。 微信通知 分享 OneAlert 的小伙伴排班表 分享我们的分派策略: 如果排班同学不及时订饭,升级到老大!兄弟等着买零食吧。 接下来是定时调度脚本代码实现部分: 1.安装json处理工具jq yum install jq -y 2.vim chifan.sh ,写入以下命令

golang逃逸分析

血红的双手。 提交于 2019-11-25 22:18:28
带GC语言给我们程序的编写带来了极大的便利,但是与此同时屏蔽了很多底层的细节,比如一个对象是在栈上分配还是在堆上分配。对于普通的代码来说虽然不需要关心这么多,但是作为强迫症程序猿,还是希望能让自己写出来的代码性能最优,所以还是需要了解什么是逃逸,以及如何判断是否发生了逃逸。 什么是堆和栈? 首先需要知道,我们说的堆和栈是啥。这个可不是数据结构里面的"堆"和"栈",而是操作系统里面的概念。 栈 在程序中,每个函数块都会有自己的内存区域用来存自己的局部变量(内存占用少)、返回地址、返回值之类的数据,这一块内存区域有特定的结构和寻址方式,大小在编译时已经确定,寻址起来也十分迅速,开销很少。这一块内存地址称为栈。栈是线程级别的,大小在创建的时候已经确定,所以当数据太大的时候,就会发生"stack overflow"。 堆 在程序中,全局变量、内存占用大的局部变量、发生了逃逸的局部变量存在的地方就是堆,这一块内存没有特定的结构,也没有固定的大小,可以根据需要进行调整。简单来说,有大量数据要存的时候,就存在堆里面。堆是进程级别的。当一个变量需要分配在堆上的时候,开销会比较大,对于go这种带GC的语言来说,也会增加gc压力,同时也容易造成内存碎片。 为什么有的变量要分配在堆,有的要分配在栈? 这个问题要从C++说起了。在C++中,假设我们有以下代码: ```c++ int* f1() { int

使用rancher满足程序猿刚需

假如想象 提交于 2019-11-25 21:13:13
通过将近1个季度的努力,基本上完成了内网开发、测试以及生产环境(借助公有云容器引擎服务)关键服务容器化工作。 在这个过程中,本来是把已经验证过的技术和方案进行落地,只是执行上的问题。但是研发大爷在使用过程中又提出了许多新的需求,见招拆招之后,发现还是有些许收获,因此整理成文,本文介绍rancher server的应用。 一、什么是rancher? Rancher是一个开源的企业级容器管理平台,通过使用rancher,可以快速的构建出kubernetes环境并对其进行可视化管理。 Rancher由以下四个部分组成: 1、基础设施编排 Rancher可以使用任何公有云或者私有云的Linux主机资源。对计算资源进行整合和统一调度使用 2、容器编排与调度 Rancher包含了当前全部主流的编排调度引擎,同一个用户可以创建Swarm或者Kubernetes集群。并且可以使用原生的Swarm或者Kubernetes工具管理集群。 3、应用商店 Rancher的用户可以在应用商店里一键部署由多个容器组成的应用,例如容器的日志集中收集应用套件。 4、企业级权限管理 Rancher支持灵活的插件式的用户认证。支持Active Directory,LDAP, Github等 认证方式。 Rancher支持在环境级别的基于角色的访问控制 (RBAC)

使用init-containers满足程序猿刚需

♀尐吖头ヾ 提交于 2019-11-25 21:12:54
随着现网生产环境容器化改造逐步完成,核心的业务都由K8S集群中的pod对外提供服务。各个微服务应用间的内部资源调用次数、调用链耗时、调用阈值告警、超时错误等信息指标对保障业务健康运行来说显得非常重要。由于现网使用的是云容器引擎服务,公有云提供了一整套的解决方案。下面是华为云和阿里云相关的产品介绍,总体来说,借助这类的工具,可以快速的查看微服务的各项指标和调用情况,定位相关的问题。 https://support.huaweicloud.com/apm/index.html https://help.aliyun.com/document_detail/63796.html?spm 那么刚需来了,程序猿希望内网开发和测试环境能对照现网生产环境也来这么一套差不多的监控工具,一些隐藏的问题不需要等到上了生产环境才能发现。 问:运维同学要怎么满足这个需求呢? 答:开发和测试环境也迁移上公有云。 PS:心里想想就算了! 本文介绍使用pinpoint满足程序猿这个合理需求。 一、Pinpoint是什么? pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控。关于pinpoint服务端的部署可参考下列的文档。 https://www.cnblogs.com/yyhh/p/6106472.html 二、需求分析 1

看过这篇数据分析,再也不要说你是凭实力单身了

微笑、不失礼 提交于 2019-11-25 20:47:46
缘起 不知道从什么时候开始,广大程序猿们(不包括程序媛们)总是被调侃,一直都是那个靠实力单身的群体。 而根据网上不知道是否准确的数字,中国的单身人口高达2亿,我的天,不能这两亿都是程序猿吧 今天不是来探究这个单身数字的,而是选择了一个切入点,来探究下,码农单身到底是哪里的锅。 切入点 而我选择的切入点就是人口结构数据,通过观察人口结构,男女比例,来看看单不单身,是不是由你说了算。 首先感谢下“快易理财网”的数据 https://www.kuaiyilicai.com/ 我这里使用的数据,都是来自于该网站,网站上还有各类财经数据,有兴趣的小伙伴儿们可以去看看。 获取我国女性占比 首先我们先来抓取下我国女性的逐年占比数据,看看找对象在什么时代能容易些 抓取该网站还是很容易的,直接解析 HTML 文件即可 import requests from bs4 import BeautifulSoup url = 'https://www.kuaiyilicai.com/stats/global/yearly_per_country/g_population_female_perc/chn.html' res = requests.get(url).text html = BeautifulSoup(res, 'html.parser') html.find('tbody').find_all