IT牛人博客聚合网站 - RSS Feed

发现IT技术最优秀的内容, 寻找IT技术的价值

Latest articles

浅谈NATS消息系统

我用过很多消息系统,比如:简单的Redis Streams;高效的Kafaka等等,不过自从我把编程语言切换到 Golang 以后,总觉得必须找个用 Golang 开发的消息系统才配得上门当户对,原本我已经和小家碧玉的NSQ厮守终生,不过当我认识了上流社会 CNCF 钦定的大家闺秀NATS后,刹那间就仿佛徐志摩遇到了林徽因,扭头就给结发妻子写了休书。 INSTALLATION 服务端 nats-server,客户端nats,监控工具nats-top,性能测试工具nats-bench: shell> go get github.com/nats-io/nats-server/v2 shell> git clone https://github.com/nats-io/natscli.git...

曼联,索尔斯克亚,2020-2021 赛季

好久没有写一点关于曼联的文字了,上次已经是 2019 年年初了,作为一名铁杆曼联球迷,这期间倒是一场比赛都没有落下过。我看比赛已经过了十多年前那样尽量看直播的阶段了,如今虽说一场不落,每一场却只看录播。老实说,对我来说这很舒服,我可以跳过那些没有营养的赛前、中场休息等等环节。 这过去的一年里面,大家的目光和注意力都被疫情打击得面目全非的英超比赛形式给吸引了,譬如反复的延期,疯狂的赛程,以及缺失的场内观众。但是对于很多球队来说,这既是机会,也是挑战。我猜想今年暑期的转会市场,应该不会再有那些疯狂的转会大单了,疫情导致的球会损失将使得大家花钱都更谨小慎微。从长远来看,我决定这其实是好事,资本的力量很强大,但是资本也往往会冲昏很多人的头脑,那么今年夏天,正好冷静一下,看看球队的哪些位置是最迫切需要进补的。...

Raft 为什么不能直接 commit 前任的日志?

有一些文章, 包括Raft协议的论文, 已经从反例的角度解释了为什么不允许 Leader 直接 commit 前任的日志, 而是必须追加本任期的一条日志, 以达到隐式地 commit 前任的日志. 我想从 Raft 的几项原则的角度, 在逻辑上解释这个问题. Raft 策略1: 节点的日志一旦 commit 便不可撤销 某个节点的一条日志, 一旦 commit 它, 那么就会对状态机造成不可逆的改变. 也许某些状态机有回滚功能, 但在 Raft 的架构中, 假设状态机不可回滚. 因此, 日志一旦 commit, 便不可撤销. 注意, 这里用的是"策略"一词, 表明这是人为规定的规则, 不是客观存在的定理. Raft 策略2: 节点的日志在 commit 之前可被撤销 某个节点的一条日志,...

科技爱好者周刊(第 159 期):游戏开发者的年薪

这里记录每周值得分享的科技内容,周五发布。 本杂志开源(GitHub:ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。 周刊讨论区的帖子《谁在招人?》,提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。 封面图 重庆市很多山地,地形复杂,产生了特有的奇观:被高架道路团团围住的楼盘。(via) 本周话题:游戏开发者的年薪 最近,推特上面有很多欧美的游戏开发者,晒自己的薪水,使用#GameDevPaidMe这个标签就能看到,从中可以了解国外程序员的收入。 下面是一个美国开发者的发言。 他有超过十年的开发经验,年薪是20多万美元。这还是在西雅图,如果在湾区,工资可能还会再高一些。这跟我听说的差不多,美国高级程序员的年薪,一般都会超过20万美元(约130万人民币)。...

ANSI escape code 及 Lua 封装

这两天想给一个想法做个简单的原型,因为涉及人机交互,需要在屏幕上绘制一些简单的交互元素。当然,现在有很多工具可供利用。过去遇到这种事情,我会尝试用已有的各种开源游戏引擎(我尤其推荐PICO-8),或是直接在浏览器中用 css/javascript 写等等。 最近几年我玩了大量 RogueLike ,想尝试一下在 console 下用 ascii 字符来拼凑画面。这很有趣,能让我回忆起小时候 Apple ][ 上花掉的大把时光。同时我想用 Lua 来做开发,却不想引入ncurses这样的第三方库。最好能用几分钟就可以从零搭建起开发环境。 最好的选择当然是用ANSI escape code通过标准输出在 console 界面上作画了。 需要用到的是 CSI (Control Sequence...

中国经济的数字逻辑

重庆市前市长黄奇帆退休以后,受聘担任复旦大学特聘教授,定期给师生做讲座,介绍他对中国经济的看法。 他的12次讲座,去年汇集成书出版了,书名叫做《分析与思考:黄奇帆的复旦经济课》。 我最近读了以后,发现他在讲座中经常引用各种数字,而且会解释了背后的经济逻辑。怎么理解各种经济指标,怎么用它们指导经济政策,讲得深入浅出,我觉得很有价值。 下面就是我从书中摘录的一些片段,相信可以帮大家更好地看懂中国经济。 一、金融业产值 中国经济的一个严重问题是,金融企业的产值过高。金融业增加值占 GDP 的比重是百分之八点几,全世界最高。世界金融业产值占全球 GDP 是5%左右。这个比重过高,意味着金融业吃掉了其它产业的利润。 但是,如果仅仅统计中国的银行、证券、保险的金融增加值,其实也就是4%--5%。多出来的3%是非银行的金融企业形成的,包括信托、小贷、保理、担保公司、财务公司、互联网金融公司、私募基金等。...

MacOS下配置neovim的nvim-lspconfig + clangd

配置nvim-lspconfig和clangd的注意事项 clangd可以通过homebrew安装 brew install llvm clangd一定要在PATH环境变量下,否则neovim找不到它,LSP也就不能生效。在Apple M1安装llvm后,它的路径在/opt/homebrew/opt/llvm/bin,需要手动把这个路径加到PATH路径。因为系统自带了一个clang,homebrew为了避免冲突,不会自动把llvm加到PATH环境变量中 如果clangd仍然不能生效,可以在neovim下运行LspInfo查看运行时信息 0     0 由 udpwork.com 聚合 |...

《蝇王》&《太空异旅》 书影搭配服用尤佳

​友情提示:本文就这一书一电影有着严重甚至过分的剧透。不仅描写了故事梗概,还揭示了大结局。 一 《蝇王》是一本架空名著,作者戈尔丁因此书而获得诺贝尔奖。 它虚构了一次空难后,一帮孩童荒岛求生的故事。故事的内核,其实是在拷问我们人类是如何组织起来的,政治宗教经济以及由此而引发的纷争,是从何而来的。 这帮英国孩童抵达荒岛后,第一时间,很自然地,选出了一个领导人。这种自然并不是因为什么打小对民主就耳闻目染,而纯粹是出于一种很朴素的公平理念:你凭啥领导我们啊,得一人一票不是。 这是最早期的权力合法性来源,但有意思的地方是,这种来源并不建立在ta最聪明或最强壮之上,而是因为,正方一号有一只很漂亮的海螺。这些孩童到达荒岛之后,他捡到了这只海螺吹响了号角把他们聚集起来。 但这群孩童中,还有一个先天的组织——空难之前他们就是一个组织——唱诗班。唱诗班的首脑我这里姑且称之为反方一号。反方一号有一定的领导力,本来就是唱诗班的头。为了安抚反方一号的落选,正方一号给了他一个职位:打猎队队长。因为每个人都需要食物,这个职位并不虚。...

数据库事务ACID和锁

数据库事务功能非常重要, 任何应用只要操作的多个对象之间有依赖(约束)关系, 都会不约而同地想到使用事务, 例如银行转账功能, 社交 App 中的粉丝关注功能, 购物网站下订单功能. 任何一个数据库系统, 如果不提供事务功能, 就不能减少用户(应用开发者)的某些麻烦, 因为用户不得不自己在应用层去实现类似事务的代码逻辑. 从用户的角度看, 如果数据库不提供事务, 他就要多写代码, 这让他很不爽. 所以, 即使是 KV 数据库, 也应该提供事务功能. 但是, 不仅事务功能的实现是有成本的, 使用也有成本. 比如, 很多用户不能准确地理解事务的特点和作用. 抽丝剥茧, 我们来分析一下数据库事务的本质是什么? 用户对事务功能的需求的本质是什么? 先从 ACID(Atomicity, Consistency,...

Raft日志复制状态机模型的Apply进度问题

日志复制状态机模型是 Raft 协议里的一个基础概念, 用于保障多副本一致性. 这个概念并非 Raft 独创, 而是由 Raft 具体总结和推广的, 在 Raft 之前, 像 MySQL 的 binlog 等等, 都是广义的日志复制状态机模型. 采用日志复制状态机模型的系统, 把多副本一致性问题分解成两个部分(模块), 第一部分是日志本身的一致性, 第二部分是状态机(例如数据库引擎)的数据一致性. 这两个系统模式是独立运行的, 它们之间的通信(Apply)也是异步的. 由此带来了广义的可靠通信问题: 有序, 最终到达(不丢包), Exactly Once(去重). 为了解决可靠通信问题, 系统至少需要保存 Apply 进度. 但是, 由于微观上"保存进度"和"Apply 日志"是两个独立的操作,...

Discover, share and read the best on the web

Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters! Get unfiltered news feeds or filter them to your liking.

Get Inoreader
Inoreader - Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters!