Go语言中文网 为您找到相关结果 492

ARTS第四周打卡(2019.04.08~2019.04.14)

所谓A(Algorithm)R(Review)T(Tips)S(Share): . 每周至少做一个 leetcode 的算法题 . 阅读并点评至少一篇英文技术文章 . 学习至少一个技术技巧 . 分享一篇有观点和思考的技术文章 3 week Algorithm 算法 # # @lc app=leetcode.cn id=5 lang=python # # [5] 最长回文子串 # # https://leetcode-cn.com/problems/longest-palindromic-substring/description/ # # algorithms # Medium (24.34%) # Total Accepted: 48.5K # Total Submissions: 195...阅读全文

Apsara Clouder云计算专项技能认证:云服务器管理运维,你了解多少?

如何实现1+3+5=100种可能性么?通过学习你可以掌握如何快速地开通一台云服务器,并通过管理控制台方便地进行服务器的管理、服务器配置的变更和升级、数据的备份,并保证其可以正常运转并按业务需求随时进行配置的变更。 认证流程 1购买认证 2学习课程/在线实验 3在线考试 4领取电子证书 课程学习 01 3个理由拥抱云服务器 让你了解什么是云服务器以及使用云服务器的好处,带你开启云服务器之旅。免费试听https://edu.aliyun.com/course/58 02 1分钟快速定制ECS 让你了解如何快速地拥有一台属于自己的云服务器。开始学习https://edu.aliyun.com/course/58 03 3分钟便捷管理ECS 让你了解如何远程登录服...阅读全文

Erlang 之父 Joe Armstrong 逝世,如何评价他在计算机领域的贡献?

[转载]https://juejin.im/post/5ccd596e51882540d472aa54 Make it work ,then make it beautiful,then if you really,really have to,make it fast. 90% of the time,if you make it beautiful,it will already be fast. So really,just make it beautiful. Joe Armstrong 不必说 erlang 与 OTP, 光他的论文《面对软件错误构建可靠的分布式系统》就足以载入史册——领先现在几十年,提出了OOP 等思想本质上不是并发的正确处理方法。 Joe Armstrong 在...阅读全文

博文 2019-10-21 18:33:03 aside section._1OhGeD

如何成为一名大数据工程师?成都大数据培训

数据工程师都做什么?数据工程师负责创建和维护分析基础架构,该基础架构几乎可以支持数据世界中的所有其他功能。他们负责大数据架构的开发、构建、维护和测试,例如数据库和大数据处理系统。大数据工程师还负责创建用于建模,挖掘,获取和验证数据集合等流程。因此,数据工程师需要掌握通用脚本语言和工具,利用和改进数据分析系统,不断提高数据数量和质量。 数据工程师与数据科学家有何区别虽然在技能和角色方面存在一定程度的重叠,但这两个职位正日益分化为不同的角色。数据科学家更关注与数据基础设施的互动,而不是去创建和维护数据基础设施。通常负责进行市场和业务运营研究,以确定趋势和关系,数据科学家用各种复杂的机器和方法与数据进行交互并对其采取行动。数据科学家通常精通机器学习和高级数据建模,因为他们希望借助高级数学模型和算法...阅读全文

golang-raft算法理论与实践

前言 我计划写raft的一系列文章,包含从理论到代码实践,此文章依托于MIT的研究生课程。 背景 raft 是一种分布式的共识算法,其目的是要实现多个节点集群的容错性,一致性从而能够构建大规模的软件系统。 在raft之前,比较有名的是Paxos。但是paxos难于理解。 raft的诞生是为了让共识算法更容易理解,在工程上更容易实现。 和其他的共识算法不同的是,raft具有下面的特点: leader:raft中会有一个领导者具有超级权限,可以把自己的log 复制到其他节点中。 leader election: raft每隔一段随机的时间就会进行leader的选举 raft允许集群配置变化时正常运行。 Replicated state machine 状态机是分布式系统中的一个重要概念,任何一个...阅读全文

博文 2020-02-12 07:32:56 唯识相链2

老司机带你用 Go 语言实现 Raft 分布式一致性协议

老司机带你用 Go 语言实现 Raft 分布式一致性协议  随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。   为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。任何一个分布式系统都无法同时满足 Consistency(一致性),Availability(可用性),Partition tolerance(分区容错性)这三个基本需求,最多只能满足其中两项。 但是,一个分布式系统无论在 CAP 三者之间如何权衡,都无法彻底放弃一致性(Consistency),如果真的放弃一致性,那么就说明这个系统中的数据根本不可信,数据也就没有意义,那么这个系统也就没有任何价值可言。所...阅读全文

博文 2017-03-23 08:20:49 chauncy

算法:时间复杂度+二分查找法(Java/Go/Python)实现

导读 曾几何时学好数据结构与算法是我们从事计算机相关工作的基本前提,然而现在很多程序员从事的工作都是在用高级程序设计语言(如Java)开发业务代码,久而久之,对于数据结构和算法就变得有些陌生了,由于长年累月的码砖的缘故,导致我们都快没有这方面的意识了,虽然这种论断对于一些平时特别注重学习和思考的人来说不太适用,但的确是有这样的一个现象。 而在要出去面试找工作的时候,才发现这些基础都快忘光光了,所以可能就“杯具”了!实际上,对于数据结构和算法相关的知识点的学习,是程序员必须修炼的一门内功,而要掌握得比较牢靠除了需要在写代码的时候时刻保持这方面的意识外,也需要日常的训练,换一个目前比较流行的词叫刻意练习。 这就像打乒乓球一样,虽然大家都会打,但是要打得好,打出水准就得经常训练。而学习算法的过程也...阅读全文

博文 2020-02-03 23:33:10 wx5d9ed7c8443c3

云原生(Cloud Native)- 移动App研发新范式

什么是云原生(Cloud Native)App 云原生的话题近期异常火热,对于它的概念,大家也有不同的解读。从我个人的视角而言,云原生代表了一种应用构建的方法论:如何最大程度地利用云计算服务模型的优势低成本、快速地构建一款弹性的应用。本质上而言,云原生的研发模型旨在降低业务的技术风险,让开发者的形态更单纯、专注: 所有的运行环境透明化,按需扩展; 所有的研发流程流水化,高效交付; 所有的基础设施服务化,按量付费; image1 云原生应用 我们通常意义下的云原生应用意指传统的后端应用,Container、Microservice、DevOps构成了云原生研发架构的铁三角。对于移动App这类呈现重前端轻后端形态的产品而言,云原生有另一种诠释方式。移动App对比传统的后端应用研...阅读全文

Go 中的一些问题

go 语言中的分段栈和连续栈 go并发模式管道和取消,主要讲解channel,非常好,首先会好好地研究一下 go tips在做什么 go 中的package ‘os’ go 中的 package ‘syscall’ 计算机软件中,只有读真正的代码,才会得到真正的理解,否则是永远不会理解的。看书就看经典书,看代码就看经典的代码, 写代码就要重构,就要不停地检查,这样子才是永恒的进步之道。 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

博文 2016-04-18 20:00:06 xiaorenwuzyh

GO语言学习--tcp服务器、客户机的通信

一、服务器设计 1. 注册端口; 2. 监听端口 —— ListenTCP( ); 3. 接收请求 —— Accept( ); 4. 接收数据 或 发送数据 —— Read( ) 或 Write( ); 二、客户端设计 1. 获取地址; 2. 发送请求; 3. 接收数据 或 发送数据 —— Read( ) 或 Write( ); 4. 关闭连接 —— Close( )...阅读全文

Kubernetes的Device Plugin设计解读

摘要: Kubernetes的生态地位已经确立,可扩展性将是其发力的主战场。异构计算作为非常重要的新战场,Kubernetes非常重视。而异构计算需要强大的计算力和高性能网络,需要提供一种统一的方式与GPU、FPGA、NIC、InfiniBand等高性能硬件集成。 **点此查看原文:http://click.aliyun.com/m/43607/** **Kubernetes的Device Plugin设计解读** 最近在调研Kubernetes的GPU调度和运行机制,发现传统的`alpha.kubernetes.io/nvidia-gpu`即将在1.11版本中下线,和GPU相关的调度和部署的代码将彻底从主干代码中移除。 取而代之的是通过[Extended Reso...阅读全文

字节跳动广告平台实习 & 应届生招聘JD

后台开发实习生(可转正) - 核心广告系统职位描述1、广告团队是公司核心团队,负责商业变现,为公司年度收入目标而奋斗; 2、负责字节跳动广告系统,代理商系统, 审核系统等平台开发; 3、完善对内对外广告API的实现; 4、表现优秀有转正机会。职位要求1、计算机相关专业,本科及以上学历,硕士生优先; 2、良好的算法、数据结构基础,熟悉计算机操作系统、网络、数据库等课程,至少熟悉一门编程语言; 3、要求有后台开发的实习/项目经验,热爱后台技术,熟悉mysql,memcache,redis,消息队列等常用WEB组件者优先; 4、有大规模系统开发经验者优先,熟悉计算广告,或者有相关开发经验者优先。前端开发实习生(可转正) - 核心广告系统职位描述1、广告团队是公司核心团队,负责商业变现,为公司年度收...阅读全文

博文 2019-03-22 18:34:43 sumy_gao

用了30天整理的一些GO语言学习资料,2019请你加油

因为极其优秀的并发性能,Google的亲儿子Go语言站上了风潮之巅。出现在21世纪的GO语言,虽然不能如愿对C++取而代之,但是其近C的执行性能和近解析型语言的开发效率以及近乎于完美的编译速度,已经风靡全球。特别是在云项目中,大部分都使用了Golang来开发,不得不说,Golang早已深入人心。而对于一个没有历史负担的新项目,Golang或许就是个不二的选择。抛开已经被讲烂了的语言特性,学习一门新语言,特别一门刚刚被业界认可、接受并被广泛使用的新语言,对于每一个技术人都是一个很好的机会:说不定你就因此站上风口,成为什么GO语言布道师了呢?从年初开始,我一直在研究Go语言的入门学习,整理了一些资料,分享给大家。1.官方文档https://golang.google.cn/doc/第一个当然首推...阅读全文

博文 2019-06-29 01:32:41 Linux小小咖

[北京] [滴滴云] 招聘Golang高级后端研发工程师

>职位描述 ###### 参与滴滴基础架构业务系统的设计、研发工作,提升滴滴产品稳定性; ###### 有良好的拆解需求,分析问题能力; ###### 进行相关产品的技术文档编写,方案设计; ###### 学习研究业界先进技术,保持技术进步。 >任职要求 ###### 本科及以上学历,计算机相关专业,两年以上服务端研发经验; ###### 深入理解计算机原理,有扎实的数据结构和算法基础; ###### 深入理解linux系统及其原理,熟悉TCP/IP、HTTP协议以及网络编程; ###### 良好的编码和文档习惯,对代码美感的追求孜孜不倦,并能持续的关注和优化自己做的项目; ###### 精通Go/C/C++/Python等至少一...阅读全文

以太坊源码分析—交易的执行

前言 以太坊是一个运行智能合约的平台,被称作可编程的区块链,允许用户将编写的智能合约部署在区块链上运行。而运行合约的主体便是以太坊虚拟机(EVM) 区块 交易 合约 区块链由区块(Block)组成,而区块中打包一定数量的交易(Transaction),交易可能是一个单纯的转账操作,也可能是调用一个智能合约,无论是哪一种,EVM在运行(excute)交易时都会创建合约(Contract) 外部账户 合约账户 以太坊中的账户有两类 外部账户 由账户持有人的私钥控制的真实存在的账户 合约账户 由合约代码控制,保存着合约代码 一笔交易包含发送方(sender) 接收方(recipient) 和数额(value) 三要素。发送方将一定数额的ETH转移到接收方的账户,这里的转账交易中,接收方是外部账户。...阅读全文

博文 2018-11-13 19:34:39 187J3X1

异构计算助力客户春节webp图片编码

摘要: 背景与挑战 技博客 GigaOM 曾报道:YouTube 的视频略缩图采用 WebP 格式后,网页加载速度提升了 10%;谷歌的 Chrome 网上应用商店采用 WebP 格式图片后,每天可以节省几 TB 的带宽,页面平均加载时间大约减少 1/3;Google+ 移动应用采用 WebP 图片格式后,每天节省了 50TB 数据存储空间。 **背景与挑战** 科技博客 GigaOM 曾报道:YouTube 的视频略缩图采用 WebP 格式后,网页加载速度提升了 10%;谷歌的 Chrome 网上应用商店采用 WebP 格式图片后,每天可以节省几 TB 的带宽,页面平均加载时间大约减少 1/3;Google+ 移动应用采用 WebP 图片格式后,每天节省了 50TB 数据存储空...阅读全文

浅谈分布式计算的开发与实现(一)

## 介绍 分布式计算简单来说,是把一个大计算任务拆分成多个小计算任务分布到若干台机器上去计算,然后再进行结果汇总。 目的在于分析计算海量的数据,从雷达监测的海量历史信号中分析异常信号(外星文明),淘宝双十一实时计算各地区的消费习惯等。 海量计算最开始的方案是提高单机计算性能,如大型机,后来由于数据的爆发式增长、单机性能却跟不上,才有分布式计算这种妥协方案。 因为计算一旦拆分,问题会变得非常复杂,像一致性、数据完整、通信、容灾、任务调度等问题也都来了。 举个例子,产品要求从数据库中100G的用户购买数据,分析出各地域的消费习惯金额等。 如果没什么时间要求,程序员小明就写个对应的业务处理服务程序,部署到服务器上,让它慢慢跑就是了,小明预计10个小时能处理完。 后面产品嫌太慢,让小明想办法加快到...阅读全文

博文 2019-09-05 15:46:22 Java_the_one

一行 Golang 代码引发的血案——全网最详细分析 2020 年 3 月 Let’s Encrypt 证书吊销事故

Let's Encrypt 作为一家免费提供 SSL 证书的组织,旨在推进互联网向更安全的 HTTPS 迁移,受到了大量小型网站的支持和认可。然而很多站长在 3 月 3 日收到了来自 Let's Encrypt 名为 ACTION REQUIRED: Renew these Let's Encrypt certificates by March 4 的邮件,警告站长尽快更新证书。那么为什么需要更新证书?不更新证书有什么危害?如何更新证书?本文将为读者分析本次 Let's Encrypt 证书漏洞事故的真相。 一、事故概览 首先摘录一下邮件中的部分内容: We recently discovered a bug in the Let's Encrypt certificate authorit...阅读全文

博文 2020-03-19 17:33:07 思否编辑部

HEXA 机器人怎么玩?本次推荐的 Skill(机器人应用)给了大家一些小思路

这次的Skill精选,没有像上次推荐的Light Chaser和Fire Marshall Rob一样,具备类似追寻光线、预警火情这样实际应用的功能。但从可玩性来说,今天我们推荐的两款工具类Skill却不输前两者,经过今天的介绍,你或许会对HEXA的玩法又多一些想象。 下面正式进入今天的Skill精选: ![输入图片说明](https://static.oschina.net/uploads/img/201712/13111218_JGB6.png "在这里输入图片标题") **Simulator Kit** 熟悉HEXA的朋友应该知道,HEXA在开发方面的友好程度,除了在系统方面降低了机器人爱好者和开发者学习和探索机器人开发的门槛外,对于小白用户,我们还提供了3D...阅读全文

go语言学习笔记之冒泡排序的实现

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 算法原理 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 算法稳定性 冒泡排序是就地排序,且它是稳定的。 算法描述 go语言 package bubblesort //冒泡排序 func BubbleSort(values []int) { flag := true for i := 0; i < len(values)-1; i++ { flag = true for...阅读全文

博文 2015-06-17 23:01:47 wuwenxiang91322

golang panic: non-positive interval for NewTicker

image.png 原因:随机的时间为0 package main import ( "fmt" "math/rand" "sync" "time" ) func ReadLock(ch chan struct{}, lock sync.RWMutex) { fmt.Println("wait Rlock") lock.RLock() fmt.Println("start Rlock") rand.Seed(time.Now().UnixNano()) randNum := rand.Intn(2) t1 := time.NewTicker(time.Second * time.Duration(randNum)) for { select { case <-t1.C: fmt.Printl...阅读全文

博文 2020-04-05 20:32:50 anthonydan

云原生(Cloud Native)- 移动App研发新范式

什么是云原生(Cloud Native)App 云原生的话题近期异常火热,对于它的概念,大家也有不同的解读。从我个人的视角而言,云原生代表了一种应用构建的方法论:如何最大程度地利用云计算服务模型的优势低成本、快速地构建一款弹性的应用。本质上而言,云原生的研发模型旨在降低业务的技术风险,让开发者的形态更单纯、专注: 所有的运行环境透明化,按需扩展; 所有的研发流程流水化,高效交付; 所有的基础设施服务化,按量付费; 9999 云原生应用 我们通常意义下的云原生应用意指传统的后端应用,Container、Microservice、DevOps构成了云原生研发架构的铁三角。对于移动App这类...阅读全文

Fabric高级架构师/ 技术总监,待遇丰厚!坐标北京

**岗位职责**: 1. 主流区块链底层(Fabric、Ethereum 等)技术研究及转化; 2. Fabric 底层研究及开发; 3. HyperLedger 中国工作组相关工作; 4. 对外技术输出。 **职位要求**: 1. 本科及五年以上研发经验; 2. 扎实的基本功,如算法、网络、软件工程、数据结构等; 3. 熟悉分布式计算、大数据分析、高可用集群等技术架构; 4. 大型项目设计经验; 5. 思路清晰,很好的团队凝聚能力; 6. 熟悉去中心化设计,分布式账本技术等优先。 7. 35 周岁以下应聘者优先考虑。 **招聘邮箱**: **zengjb@hehuomao.com** 欢迎勾搭...阅读全文

阿里七层流量入口 Tengine硬件加速探索之路

摘要: Tengine在软件层面已经有了深度的调试和优化经验,但是在硬件层面,通用处理器(CPU)已经进入了摩尔定律,有了瓶颈。而在业务量突飞猛进的当下,如何利用硬件来提升性能,承载双11等大型活动的洪峰流量,保障活动平稳度过呢?本文作者:王发康,花名毅松,负责集团主站统一接入层Tengine的开发与维护。 Tengine在软件层面已经有了深度的调试和优化经验,但是在硬件层面,通用处理器(CPU)已经进入了摩尔定律,有了瓶颈。而在业务量突飞猛进的当下,如何利用硬件来提升性能,承载双11等大型活动的洪峰流量,保障活动平稳度过呢? 本文作者:王发康,花名毅松,负责集团主站统一接入层Tengine的开发与维护。今天分享的主题是《阿里七层流量入口Tengine硬件加速探索之路》。 ...阅读全文

[上海|15-30K]开发者工具平台招募全栈开发者/机器学习实习生

### 关于我们: 程序员客栈(https://proginn.com),程序员的经纪人,技术众包领域的领军者。 相关报道:http://36kr.com/p/5070975.html 基于业务的发展,开发者们对于开发工具的需求也越来越迫切,因此我们希望能邀请有志于为程序员开发出优秀工具产品的你来加入我们,和我们一起打造出一个业内领先的开发工具平台! ### 需要人才 -------------- #### 1 - (全职)全栈工程师,15-30K,上海 工作内容: 1. 负责新产品架构设计,功能开发 2. 维护完善现有的系统功能 岗位要求: 1. 理工科专业(物理/数学/计算机相关专业优先),本科以上学历, 3 年以上代码编写与...阅读全文

Golang 优化之路——Cantor pair

写在前面 某一种对象是通过两个ID唯一确定的,如何处理这种数据结构以便快速查找以及节约内存?先说一种笨方法——用字符串来处理。这是比较容易想到的(我觉得一般最容易想到的也是最简单粗暴的方法都是用字符串来搞搞搞)。 fmt.Sprintf("%d_%d", id1, id2) 这样就成了。存储的时候用字符串来保存,查询比较的时候用字符串的方法来计算。当然,把数字当作字符串来保存和计算本身就是极其浪费内存和CPU的。 Cantor pairing function 简介 康托尔配对 - Cantor pairing function,是一种将两个自然数转成唯一一个自然数的方法。具体原理我就不说了,我也看不懂。。。简单地说: 只支持自然数。自然数是整数(自然数包括正整数和零); 支持反解; f(k...阅读全文

【上海】蝴蝶互动招聘GOLANG开发工程师

#### **岗位职责** 1. 负责公司基础平台建设,包括账号/认证/支付等系统 2. 负责平台网站开发 3. 搭建平台监控体系 #### **岗位要求** 1. 计算机相关专业本科及以上学历,3年以上相关工作经验 2. 计算机基础扎实,有较好的数据结构与算法功底,熟悉Linux系统和网络编程 3. 熟练掌握Golang,有实际项目开发经验 4. 熟悉NoSQL技术(redis,memcached等) 5. 有Web安全意识,熟悉常见的Web安全问题以及防御措施 6. 具有分布式/高性能系统设计和开发经验者优先 **简历请投至** wangling01@hoodinn.co...阅读全文

2018.9.11 从0到1,你准备好了吗?

最近两天又接到一个任务,给一家区块链公司招聘go开发的人才。于是便在一些社区发了招聘帖子,没多久就有人加我微信,立即通过了。对方是一位前端开发工程师,对区块链感兴趣,想转做区块链后端开发,对于这样的转行跳槽者,我觉得她是有勇气的。她跟我了解了区块链行业的人才需求以及薪酬情况,我也一一解答向她了。她还问了我一个问题:你们招区块链培训机构出来的人么?我说:这个和培训机构没关系的,主要看你自己的技术功底的,不过我个人觉得区块链培训机构,目前应该都不是很成熟的,不太建议你去,大部分不太靠谱。她还和我说,听培训机构说有很多hr跟他们要人。我第一感觉就是她被这些机构忽悠了,区块链技术处于起步阶段,大家都还在摸索,并没有完全成熟的模式,他们这些机构哪能一下子掌握呢?这些都是要靠实践才行的,不是去短时间培训...阅读全文

云计算全球首推峰谷价,为企业节约49%成本

摘要: 我们都知道电费有峰谷电价,但是没有听说过云计算也有,但现在,云计算也有峰谷价了。 近日,阿里云推出了共享流量包。共享流量包是BGP流量的预付费套餐,价格比后付费流量更低,并支持闲时峰谷流量包,大大降低了BGP流量成本。 我们都知道电费有峰谷电价,但是没有听说过云计算也有,但现在,云计算也有峰谷价了。 近日,阿里云推出了共享流量包。共享流量包是BGP流量的预付费套餐,价格比后付费流量更低,并支持闲时峰谷流量包,大大降低了BGP流量成本。共享流量包产品覆盖面广,按流量计费的ECS、EIP、SLB和NAT网关都可以使用。那么,共享流量包到底能给用户降低多少成本?适合哪些业务场景?又如何使用呢? 首先,共享流量包能为用户降低多少成本? 如下图,后付费流量单价和共享流量...阅读全文

可直接嵌入业务系统为终端客户提供分析服务的阿里云分析型数据库

课程介绍 分析型数据库(AnalyticDB),是阿里巴巴自主研发的海量数据实时高并发在线分析(Realtime OLAP)云计算服务,使得您可以在毫秒级针对千亿级数据进行即时的多维分析透视和业务探索。分析型数据库对海量数据的自由计算和极速响应能力,能让用户在瞬息之间进行灵活的数据探索,快速发现数据价值,并可直接嵌入业务系统为终端客户提供分析服务。 产品详情:https://www.aliyun.com/product/ads 课时列表 • 课时1:产品和应用场景 • 课时2:开通、购买和创建 • 课时3:创建表组和表 • 课时4:写入和导入数据 • 课时5:本地客户端访问 开始学习http://click.aliyun.com/m/27...阅读全文

【go共识算法】-POS

pos介绍 参考链接1 pos概念 Proof of Stake,股权证明。PoS核心概念为币龄,即持有货币的时间。例如有10个币、持有90天,即拥有900币天的币龄。另外使用币,即意味着币龄的销毁。在PoS中有一种特殊的交易称为利息币,即持有人可以消耗币龄获得利息,同时获得为网络产生区块、以及PoS造币的优先权。 点点币应用 第一个基于PoS的虚拟币是点点币。鉴于PoW的缺陷,2012年Sunny King提出了PoS,并基于PoW和PoS的混合机制发布了点点币PPCoin。前期采用PoW挖矿开采和分配货币,以保证公平。后期采用PoS机制,保障网络安全,即拥有51%货币难度更大,从而防止51%攻击。 点点币(Peercoin)是首先采用权益证明的货币,点点币在SHA256的哈希运算的难度方...阅读全文

博文 2018-09-27 14:34:41 jincheng828

2018.8.30你是这些公司青睐的人才吗?

最近一个案例引发了我对区块链公司用人要求的思考。一周前推荐了一位我认为不错的候选人,985院校计算机专业硕士学历,两年工作经验,毕业后一直在一家知名的互联网公司上班,技术也比较扎实,近期两个月在持续关注区块链并看好区块链行业,想趁年轻进入这个行业,看看有没有更好的发展机会。他的条件不错,我帮他推荐了业内三家不错的区块链公司。当初拿到他的简历时,我挺满意的,认为他很大概率上会拿到这几家公司的offer,因为之前操作过类似的case,这种背景的人一般都会被offer。等待了一周,结果却在我的意料之外。那么问题到底出现在哪里呢?我这几天一直在思考。直到今天和一位区块链公司的招聘聊天中她的一句话提醒了我:请尽量帮我找资深一点的人吧,要来了就能干活的那种,薪资不是问题,都能谈。从去年年底到现在,半年多...阅读全文

软件技术-零基础Golang编写文件服务器

欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】 当用户请求一个网页的时候,如何让服务器把网页文件发送给用户? 文件服务器 首先我们要知道,用户在浏览器中看到的页面其实就是一个.html文件,就是我们上一篇文章时候撰写的...代码。 但我们最初用Golang写的服务器只是简单返回Hello world!字符串,而不是文件。所以,正确的做法是: 让Golang读取硬盘上的文件内容,然后发送给用户。 这就是文件服务器要干的事情,你要login.html页面,我就给你login.html文件。 在Golang里面,已经提供了快速建立文件服务的功能,就是http.FileServer方法,但是首先要知道我们的web文件夹放在哪里。 获取当前文件路径 在Gola...阅读全文

博文 2019-03-27 02:34:38 zhyuzh3d

Excelize - Go 语言 (golang) Excel 文档基础库

前言 Excelize 是 Go 语言 (golang) 编写的用于操作 Office Excel 电子表格的文档基础库,基于 ECMA-376 Office Open XML 标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的 XLSX / XLSM / XLTM 等格式文档。相比较其他的开源类库,Excelize 支持写入原本带有图片(表)、透视表和切片器等复杂样式的文档,还支持向 Excel 文档中插入图片与图表,并且在保存后不会丢失文档原有样式,可以应用于各类报表系统、云计算和边缘计算系统中。入选 2018 开源中国码云 Gitee 最有价值开源项目 GVP,目前已成为 Go 语言最受欢迎的 Excel 文档基础库。 开源代码 GitHub:...阅读全文

博文 2020-04-09 05:33:11 阿泽Aze

【go共识算法】-Raft

介绍 Raft 状态 一个 Raft 集群包含若干个服务器节点;通常是 5 个,这允许整个系统容忍 2 个节点的失效,每个节点处于以下三种状态之一: follower :所有结点都以 follower 的状态开始。如果没收到 leader消息则会变成 candidate状态。 candidate:会向其他结点“拉选票”,如果得到大部分的票则成为leader。这个过程就叫做Leader选举(Leader Election)。 leader:所有对系统的修改都会先经过leader。 Raft 一致性算法 Raft通过选出一个leader来简化日志副本的管理,例如,日志项(log entry)只允许从leader流向follower。 基于leader的方法,Raft算法可以分解成三个子问题: L...阅读全文

博文 2018-10-10 20:34:39 jincheng828

golang的Channel

golang的Channel Channel 是 golang 一个非常重要的概念,如果你是刚开始使用 golang 的开发者,你可能还没有真正接触这一概念,本篇我们将分析 golang 的Channel 1. 引入 要讲 Channel 就避不开 Goroutine -- 协程。闲话不说, 直接上个例子 Goroutine demo: package main import ( "fmt" "time" ) func main() { origin := 1 go doSomeCompute(origin) time.Sleep(5 * time.Second) } func doSomeCompute(num int) { result := num * 2 fmt.Println(re...阅读全文

golang 实现的一个遗传算法的例子

# golang 实现的一个遗传算法的例子 **假设有N个任务,需要负载均衡器分配给M个服务器节点去处理。每个任务的任务长度、每台服务器节点(下面简称“节点”)的处理速度已知,请给出一种任务分配方式,使得所有任务的总处理时间最短。** ```go package main import ( "fmt" "math/rand" "sort" ) const ( // TaskNum 任务数为100 TaskNum = 100 // NodeNum 计算节点数为10 NodeNum = 10 // TaskLengthMin 任务长度最小值10 TaskLengthMin = 10 // TaskLengthMax 任务长度最大值100 TaskLengthMax = 100 // NodeSp...阅读全文

程序员的自我修养 IO/CUP密集型线程

有关进程线程协程的概念在上一篇文章 golang协程为什么比线程轻量https://www.jianshu.com/p/dd4a480a1410已经解释,有需要的同学可以查看。 多进程与单进程相比的优势: 1.某个操作可能会陷入长时间等待,等待的线程会进入睡眠状态,无法继续执行。多线程执行可以有效利用等待时间。典型的例子是等待网络响应,这可能要花费数秒甚至数十秒。 2.某个操作(常常是计算)会消耗大量的时间,如果只有一个线程,程序和用户之间的交互会中断。多线程可以让一个线程负责交互,另一个线程负责计算。 3.程序逻辑本身就要求并发操作,例如一个多端下载软件(例如Bittorrent) 4.多CPU或多核计算机,本身具备同时执行多个线程的能力,因此单线程程序无法完全全面地发挥计算机的全部计算能...阅读全文

博文 2019-08-04 17:32:39 one_zheng

Hyperledger Fabric 1.2系列:1. 环境准备

简介 当前主机信息: Ubuntu16.04 x86_64 root@JDu4e00u53f7:~# uname -a Linux JDu4e00u53f7 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 我们需要准备的环境有: cURL Docker Compose Docker Golang Nodejs 安装 安装cURL sudo apt-get install curl //Ubuntu系统一般默认会安装 安装Docker Hypreledger Fabric1.2 要求Docker的版本最低为 Docker 17.06.2-ce 安装方法请参考:...阅读全文

博文 2018-07-31 19:34:47 空白格灬

为何专注于流媒体领域?PPIO 技术揭秘续篇

在各种音视频应用充斥着市场的时候,毫无疑问,流媒体领域将会非常适合区块链技术进行场景落地。在上一篇文章中,我们主要讨论了 PPIO 的 PCDN 架构,接下来将介绍 PPIO 的中 P2SP 的下载逻辑和 IaaS 层的流量计数。 下载逻辑 上图为 PPIO 的 CDN 和 P2SP 的传输架构图。这里将会重点讲解 PPIO 中 P2SP 的下载逻辑,它主要分三个部分,Buffer 管理,下载状态机,和下载算法。接下来会对这三部分一一解释。 Buffer 管理 Buffer 管理,即理解为本地设备管理着资源情况,从而决定需要下载的 Piece 的优先级。Buffer 管理也是和实际应用场景是相关的,对于流媒体来说,存在一个视频播放位置,播放位置附近的内容就是紧急内容,该内容则会被优先下载。 ...阅读全文

[leetcode in golang]119、杨辉三角 II

杨辉三角II 不需要输出全部数字,只需要输出最后一行。 最后一行由前一行计算得,同一行也有计算方法: [1,3,3,1] 下一行: 在前一行数组下标为0的位置插入0,而后new[i]=old[i]+old[i+1] [(0)+1,1+3,3+3,3+1,1] [1,4,6,4,1] func getRow(rowIndex int) []int { res:=make([]int,rowIndex+1) for t:=range res{ res[t]=0 } res[0]=1 for i:=1;i=1;j--{ res[j]=res[j-1]+res[j] } } return res } 注意输入0或1: 特殊情况也可以单独考虑,不...阅读全文

博文 2019-09-26 00:32:53 aside section ._1OhGeD

Go语言==接口(interface)

7. 接口(interface) 接口本身是调用方和实现放均需要遵守的一种协议,按统一方法命名参数类型和数量来协调逻辑处理。Go语言中使用组合实现对象特性的描述,对象内部使用结构体内嵌组合对象应具有的特性,对外通过接口暴露能使用的特性。Go语言的接口设计是非入侵式的,开发者无需知道哪些类型被实现。而接口实现者只需要知道实现的是什么样子的接口,但无需指明实现哪一个接口。编译器知道接口应该由谁来实现。 非入侵式的设计让接口与实现者真正解耦。编译速度提高。 1.声明接口 + 接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式、类型及结构 ``` //1.1 接口声明格式 //每个接口类型由数个方法组成 type 接口类型名 interface { 方法名1(args[]) 返回值列表1 方法...阅读全文

图解kubernetes scheduler基于map/reduce模式实现优选阶段

优选阶段通过分map/reduce模式来实现多个node和多种算法的并行计算,并且通过基于二级索引来设计最终的存储结果,从而达到整个计算过程中的无锁设计,同时为了保证分配的随机性,针对同等优先级的采用了随机的方式来进行最终节点的分配,如果大家后续有类似的需求,不妨可以借鉴借鉴 1. 设计基础 1.1 两阶段: 单点与聚合 在进行优选的时候,除了最后一次计算,在进行针对单个算法的计算的时候,会分为两个阶段:单点和聚合 在单点阶段,会根据当前算法针对单个node计算在聚合阶段,则会根据当前单点阶段计算完成后,来进行聚合 1.2 并行: 节点与算法 单点和聚合两阶段在计算的时候,都是并行的,但是对象则不同,其中单点阶段并行是针对单个node的计算,而聚合阶段则是针对算法级别的计算,通过这种设计分离...阅读全文

博文 2020-01-17 18:34:19 代码仔

Go中slice的使用

//切片并不是数组或数组指针,它通过内部指针和相关属性引用数组片段,以实现变长的方案。 //slice并不是真正意义上的动态数组,而是一个引用类型。slice总是指向一个底层array,slice的声明也可以像array一样,只是不需要长度。 //slice和数组的区别:声明数组时,方括号内写明了数组的长度或使用...自动计算长度,而声明slice时,方括号内没有任何字符。 slice和数组的区别:声明数组时,方括号内写明了数组的长度或使用...自动计算长度,而声明slice时,方括号内没有任何字符。第二:注意:make只能创建slice、map和channel,并且返回一个有初始值(非零)。操作含义s[n]切片s中索引位置为n的项s[:]从切片s的索引位置0到len(s)-1处所获得的切片...阅读全文

博文 2018-10-05 00:35:10 ck_god

图解kubernetes控制器Deployment核心机制

Deployment是k8s中部署更新的关键实现,今天我们一起初探下其关键机制包括: 暂停、回滚、扩缩容、更新策略的实现 1. 基础概念 Deployment本质上其实只是一种部署策略,在了解其实现之前,先简单介绍一下部署系统里面常见的概念,Deployment里面的各种参数和设计其实也都是围绕着这些展开的 1.1 ReplicaSet Deployment本身并不直接操作Pod,每当其更新的时候通过构建ReplicaSet来进行版本更新,在更新的过程中通过scale up(新的RS)和scale down(旧的RS)来完成 1.2 部署状态 在k8s的官方文档中主要是介绍了Deployment的三种状态, 对应的Condition分别为Available、Progressing、Repli...阅读全文

用 Go 语言实现一个 telegram 的 bot - 成功复读

telegram bot(复读机) 尝试 用 Go 语言做了一个 telegram 的 bot . 用来简单实现对话(复读)。 获得 telegram bot token 和 BotFather 交谈即可中途需要设置一下名字和查找路径 go get 首先获取 api 包 go get -u github.com/go-telegram-bot-api/telegram-bot-api code package main import ( "log" "os" "github.com/go-telegram-bot-api/telegram-bot-api" ) func main() { bot, err := tgbotapi.NewBotAPI(os.Getenv("TELEGRAM_A...阅读全文

博文 2019-07-26 19:02:37 yhyddr