Go解析Flv数据,统计看视频进度

B站是个好地方,上面有好多视频可以学习,但有时候网络不稳定,于是便使用工具将视频下载了下来。在看视频学习的过程中,想统计一下自己的学习进度,便开发了这个工具 github地址:https://github.com/Andrew201801/calculateProgress 使用教程: 下载release文件,并解压 在放视频的文件夹下,新建一个pass目录,将看过的视频放进去 如下例,数据库文件夹下,有《149什么是函数依赖.flv》等一堆看过的文件,而在数据库文件夹下的pass文件夹内,包含...阅读全文

简书 2021-07-06 17:32:33 AndrewMyh

MacBook Linux 树莓派raspberrypi安装Golang环境

个人还是比较喜欢用go语言开发,比java开发效率高,以后会持续更新golang相关的博客 MacBook安装golang环境 官方下载地址: https://golang.google.cn/dl/ 官方下载Mac对应版本 tar.gz包 OS macOS 版本 x86-64 #解压 tar -zxvf xxx.tar.gz #配置环境变量 vim ~/.zshrc #文件最后加入 export GOROOT=/Users/liang/software/go1.15.6 export GO_H...阅读全文

简书 2021-07-06 15:32:32 beyond阿亮

近期面试回顾

6月底离职了,在上家公司期间经历了各种各样的线上故障,处置过各种各样的问题,从刚开始的掉头发到后面的游刃有余。这三年半对我职业生涯而言还是非常重要的一段,公司虽小,但也有了典型互联网公司的技术架构,从而让我有机会去面对各种各样的技术问题。离职找工作,这里记录下最近的一些面试。 字节-飞书组织架构管理 这次面试是还未离职的时候,很多东西没有好好的准备,比如面试官问到的redis key的过期淘汰策略,redis的实现我整本书都看过,没有准备的情况下很多东西确实是忘了,还问到了go的GPM模型,当然...阅读全文

简书 2021-07-06 15:32:32 Devops_cheers

Go - options模式(函数式选项模式)

作为 Golang 开发人员,遇到的众多问题之一是试图将函数的参数设为可选。这是一个非常常见的用例,有一些对象应该使用一些基本的默认设置开箱即用,并且您可能偶尔想要提供一些更详细的配置。 在python 中,你可以给参数一个默认值,并在调用方法时省略它们。但是在 Golang 中,是无法这么做。 那么怎么解决这个问题呢? 答案就是Options模式。Options模式在Golang中应用十分广泛,几乎每个框架中都有他的踪迹。 传统方式: package main import "fmt" typ...阅读全文

简书 2021-07-06 13:32:48 董小贱

2021-07-03

golang 行情推送[1]的分享,有人针对 ppt 的内容问了我两个问题,一个是在 docker 下 golang 的 gomaxprocs 初始化混乱问题,另一个是 golang runtime.gomaxprocs 配置多少为合适?golang runtimeGolang 的 runtime 调度是依赖 pmg 的角色抽象,p 为逻辑处理器,m 为执行体(线程),g 为协程。p 的 runq 队列中放着可执行的 goroutine 结构。golang 默认 p 的数量为 cpu core ...阅读全文

简书 2021-07-06 13:32:48 java编程

Go 内存模型 并发可见性

参考资料 https://golang.org/ref/mem TLTR 协程之间的数据可见性满足HappensBefore法则,并具有传递性 如果包 p 导入包 q,则 q 的 init 函数的完成发生在任何 p 的操作开始之前 main.main 函数的启动发生在所有 init 函数完成之后 go语句启动新的协程发生在新协程启动开始之前 go协程的退出并不保证发生在任何事件之前 channel上的发送发生在对应channel接收之前 无bufferchannel的接收发生在发送操作完成之前 ...阅读全文

简书 2021-07-06 13:32:47 ShootHzj

2021-04-16:摆放着n堆石子。现要将石子有次序地合并成一堆,规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。求出将n堆石子合并成一堆的最小得分(或最大得...

2021-04-16:摆放着n堆石子。现要将石子有次序地合并成一堆,规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。求出将n堆石子合并成一堆的最小得分(或最大得分)合并方案。 福大大 答案2021-04-16: 动态规划。 代码用golang编写。代码如下: package main import ( "fmt" "math" ) func main() { arr := []int{1, 4, 2, 3} ret := StoneMerge(arr) fmt....阅读全文

简书 2021-07-06 13:32:47 福大大架构师每日一题

ARTS #5

Algorithm 剑指 Offer 09. 用两个栈实现队列 看了官方解答之后才做出来的。栈A存push的内容,栈B存remove的内容。栈B空的时候,把栈A的内容一一remove出来,然后再一一push到栈B里面。 type CQueue struct { stack1, stack2 *list.List } func Constructor() CQueue { return CQueue{ list.New(), list.New(), } } func (this *CQueue) ...阅读全文

简书 2021-07-06 13:32:46 林华清

Helm3 快速入门 —— 3、初识 Chart

第3章、初识 Chart 一、Chart 是什么? 还记得我们在第一章节时介绍 Helm 的三大概念时是如何介绍 chart 这个概念的吗?是的,chart 就像许多语言封装的源码包一样,它是 Helm 使用的封装包的总称。 我们知道,Kubernetes 将其管理的对象称为资源,例如 deployment、service、ingress 等。而 Helm 作为 K8s 的包管理器,其最大的作用就是通过 chart 的方式整合需要管理的 K8s 中的资源,再通过 Helm 客户端 统一交由 K8...阅读全文

简书 2021-07-06 13:32:46 独奏乱序

如何才能真正的提高自己,成为一名出色的架构师?

能有这个疑问的程序员,你的心态已经保证你成功了一半 我基于我的经验给些建议吧 第一、知识面要广 其实我认为做架构师的,从来都是CTO储备,因为需要涉及的能力太广。 做架构,其实最简单的理解就是一句话,就是在有各种限制的情况下想办法解决问题 所谓的限制就是性能、稳定性、开发效率、可维护性等因素。 例如,百度贴吧这种应用场景,每天可能有几十亿次的访问,几千万甚至上亿次的写入。肯定是性能要求为先,可能为了做性能的提升牺牲一部分开发的效率。 再如,银行的应用场景,不是非常在意用户的体验和访问延迟,但是对...阅读全文

简书 2021-07-06 13:32:36 做个有梦想的程序猿

向github开源项目提交代码(pr)的详细步骤:

> 无意间看到一个类似redis的项目:rosedb。之前一直想自己写点轮子,一直没有行动,可能是现有的轮子用的太舒服了,没有动力去实现一个新的轮子。 先在别人的项目上提交点代码吧。 ### rosedb简单演示: >redis是c语言写的,rosedb是golang写的,我比较希望golang可以出现一个类似redis性能的项目。rosedb效果如下: 服务器端: ![在这里插入图片描述](https://img-blog.csdnimg.cn/2021070312093358...阅读全文

Go语言中文网 2021-07-05 19:28:40 TangYiMo