gitalk-blog-comment's Introduction
gitalk-blog-comment's People
gitalk-blog-comment's Issues
redis sorted set | TheRiver | Stay Alive
windows下vscode远程配置环境 | TheRiver | blog
公司办公环境是mac下vscode通过ssh连接的docker编译环境,自己的win10就没配编译环境。一般简单的测试都是用在线的编译器,最近在看一些东西,感觉还是本地的方便一些,就把本地环境也搞了下。有些坑记录下,便于以后使用
gitlab+github+hexo | TheRiver | Stay Alive
https://riverferry.site/2020-10-14-gitlab+github+hexo/
前言以前的blog是基于github page + jekyll实现的,参考别人的模板修修改改。存在一些痛点: 代码段不能显示行号 文章没有分页功能 没有搜索功能 没有评论系统(其实是可以实现,但是因为参考别人的模板,之前参考文章失效了,也不知道怎么修改了) 不够流畅,并且缺乏定制化的东西 后面选择的方案是hexo+github+gitlab.通过hexo生成静态网页,依赖next的强大可用资
protobuf 整理和坑 | TheRiver | blog
自留地 | TheRiver
https://riverferry.site/2021/01/01/2021-01-01-%E8%87%AA%E7%95%99%E5%9C%B0/
20201008国庆的一次逃脱,一次有计划的单人旅行,给了我很多惊喜和美好的回忆。一群有意思的人,一切看到的漂亮的风景。让我想起好多儿时的记忆,其实生活没有那么难,应该给自己一些放松的时间,一些接触自然,接触人的机会。 一个喜欢看风景,喜欢看美女的司机,早年在克拉玛依油田开挖掘机,据他说是因为觉得枯燥才换了工作。看朋友圈近几年跑了不少地方,人比较活络,话很多,喜欢主动和人交流,开车技术也不错。我和
MapReduce: Simplified Data Processing on Large Clusters | TheRiver | Stay Alive
https://riverferry.site/2021-01-21-MapReduce-Simplified-Data-Processing-on-Large-Clusters/
尝试翻译一下,会大量参考翻译软件和其他翻译文章,纯自学,无其他用途。参考文章在文末,原文在此: MapReduce: Simplified Data Processing on Large Clusters
hash in redis | TheRiver | Stay Alive
https://riverferry.site/2020-11-07-hash%20in%20redis/
以前整理过一篇hash,后来git rebase不小心给丢了,重新补一下,part1是基础概念,part2是redis里面的字典实现,对照分析
grpc hello | TheRiver | Stay Alive
https://riverferry.site/2020-10-13-grpc%20hello/
用golang+grpc生成一个简单的hello world程序。代码地址:https://github.com/RiverFerry/grpc。
when goroutine quit | TheRiver | Stay Alive
grpc 实现 | TheRiver | blog
golang runtime sema | TheRiver | Stay Alive
https://riverferry.site/2020-11-03-golang-runtime-sema/
go实现的sleep和wakeup,底层是gopark和goready,需要结合调度来看。其他同步手段基本都与这里有关。版本go/1.15.2/libexec/src/runtime/sema.go
golang连接redis | TheRiver | Stay Alive
https://riverferry.site/2020/10/10/2020-10-10-golang%E8%BF%9E%E6%8E%A5redis/
前言通过redigo连接redis,以后有时间的话搞搞go-redis.
Linux-fork和clone | TheRiver | Stay Alive
https://riverferry.site/2020-03-22-Linux-fork%E5%92%8Cclone/
参考Linux fork那些隐藏的开销 Unix/Linux fork后传-clone Unix/Linux fork/exec的前世今生 朴素的UNIX之-进程/线程模型 线程库中的创建线程和退出线程 Linux中fork,vfork和clone详解(区别与联系)
golang routine | TheRiver | Stay Alive
linux-spinlock | TheRiver | Stay Alive
https://riverferry.site/2020-04-07-linux-spinlock/
参考Linux内核同步机制之(四):spin lock 内核锁定技术 What exactly are “spin-locks”? X86与ARM中的原子操作-原理及实现 原子操作对同步与互斥的意义 LINUX KERNEL SPINLOCK使用不当的后果 Linux 内核的排队自旋锁
自留地 | TheRiver | Stay Alive
https://riverferry.site/1994-03-18-%E8%87%AA%E7%95%99%E5%9C%B0/
20201008国庆的一次逃脱,一次有计划的单人旅行,给了我很多惊喜和美好的回忆。一群有意思的人,一切看到的漂亮的风景。让我想起好多儿时的记忆,其实生活没有那么难,应该给自己一些放松的时间,一些接触自然,接触人的机会。
golang sync.once | TheRiver | Stay Alive
https://riverferry.site/2020-10-29-golang-sync-once/
Once is an object that will perform exactly one action.类似c++的单例模式。代码路径/usr/local/Cellar/go/1.15.2/libexec/src/sync/once.go。代码很少,实现起来也比较简单。
mysql 脏读 不可重复读 | TheRiver | blog
skip-list | TheRiver | Stay Alive
https://riverferry.site/2020-11-06-skip-list%20in%20redis/
在计算机科学中,跳跃列表是一种数据结构。它使得包含n个元素的有序序列的查找和插入操作的平均时间复杂度都是O(log n),优于数组的O(n)复杂度。快速的查询效果是通过维护一个多层次的链表实现的,且与前一层(下面一层)链表元素的数量相比,每一层链表中的元素的数量更少(见右下角示意图)。一开始时,算法在最稀疏的层次进行搜索,直至需要查找的元素在该层两个相邻的元素中间。这时,
tags | TheRiver | Stay Alive
golang atomic.value | TheRiver | Stay Alive
https://riverferry.site/2020-10-27-golang-atomic-value/#more
Package atomic provides low-level atomic memory primitives useful for implementing synchronization algorithms. These functions require great care to be used correctly. Except for special, low-level ap
golang sync map | TheRiver | Stay Alive
https://riverferry.site/2020-10-26-golang-sync%20map/
struct123456789101112131415// Map is like a Go map[interface{}]interface{} but is safe for concurrent use// by multiple goroutines without additional locking or coordination.// Loa
gperftool分析leveldb内存申请 | TheRiver | blog
总结下gperftool的使用,写了个leveldb大量写数据的demo用来测试。
操作系统-进程线程-原理 | TheRiver | Stay Alive
参考陈向群操作系统 关于进程和线程 线程的3种实现方式–内核级线程, 用户级线程和混合型线程
gin-基本操作 | TheRiver | Stay Alive
2020-10-14-gitlab | TheRiver | Stay Alive
grpc hello | TheRiver | Stay Alive
https://riverferry.site/2020/10/13/2020-10-13-grpc%20hello/
用golang+grpc生成一个简单的hello world程序。代码地址:https://github.com/RiverFerry/grpc。
2020-10-21-golang context | TheRiver | Stay Alive
https://riverferry.site/2020-10-21-golang-context/
author title version TheRiver golang reflect go version go1.15.2 darwin/amd64
golang RWmutex | TheRiver | Stay Alive
https://riverferry.site/2020-11-04-golang-RWmutex/
读和读不隔离,写和写通过mutex隔离,写和读通过sema互相配合。
stl-vector源码剖析 | TheRiver | blog
https://riverferry.site/2020-03-09-stl-vector%E6%BA%90%E7%A0%81%E5%89%96%E6%9E%90/
参考STL源码剖析.pdf STL源码剖析(批注版).pdf cplusplus-vector
golang mutex | TheRiver | Stay Alive
https://riverferry.site/2020-10-22-golang-mutex/#more
下面这段注释很重要。简单翻一下: Mutex有2种模式:normal/starvation 。 正常模式下的waiter是排成fifo的队列,但是被唤醒的waiter遇到刚运行的goroutine(有更高的优先级)是竞争不过mutex的所有权的。这时候这个waiter就在queue的head等待。如果超过1ms还没拿到锁,就切换成饥饿模式。其实就是做补偿处理,防止饿死 在饥饿模式下,mu
golang连接mysql | TheRiver
mmap共享内存 | TheRiver | Stay Alive
https://riverferry.site/2020-04-07-mmap%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98/
参考brk/mmap 认真分析mmap:是什么 为什么 怎么用 Linux内存分配小结–malloc、brk、mmap 十三 Linux内存管理之vma/malloc/mmap linux mmap 详解
操作系统-进程互斥的实现方案 | TheRiver | Stay Alive
golang semaphore | TheRiver | Stay Alive
https://riverferry.site/2020-10-28-golang-semaphore/
demo12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576package mainimport ( "context" "fmt&qu
Tcp_keepalive | TheRiver | blog
https://riverferry.site/2019-06-30-Tcp_keepalive/
墨菲定律墨菲定律,又译为摩菲定律,具体内容是“凡是可能出错的事就一定会出错” 前言一个学徒,在第一次接触一件事物时,不能很全面,很深入的认知.一段时间后,没了新鲜感,容易失去兴趣,流于表面.就像我,简单的tcp握手,挥手流程,一直没有真正的了解过,心存侥幸,等到真正遇到这方面的问题,才方恨少于读书.吃了墨菲定律的亏,所以说,还是要一步一步,踏踏实实的行进啊.心存侥幸的,都是赌徒.做学徒,不做赌徒.
linux-posix共享内存 | TheRiver | Stay Alive
https://riverferry.site/2020-04-07-linux-posxi%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98/
内存映射文件内存映射文件(Memory-mapped file),或称“文件映射”、“映射文件”,是一段虚内存逐字节对应于一个文件或类文件的资源,使得应用程序处理映射部分如同访问主内存。
stl priority_queue源码分析 | TheRiver | blog
https://riverferry.site/2021-09-24-stl%20priority_queue%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/
分析stl sort函数的时候,发现优先级队列挺麻烦的,单独整理一篇
protobuf varint and zigzag | TheRiver | blog
https://riverferry.site/2021-10-02-protobuf%20varint%20and%20zigzag/
看leveldb源码的时候遇到了protobuf的varint,以前整理protobuf序列化格式的时候了解过,但没有整理过,这次从二进制和源码的角度好好梳理下
leveldb源码分析(一) 编译安装 | TheRiver | blog
项目有用到leveldb,打算最近看看源码,整理个系列文章,这是第一篇编译安装
golang sema treap | TheRiver | Stay Alive
https://riverferry.site/2020-11-04-golang%20sema%20treap/
接着runtime sema的部分,梳理wait的队列实现细节。
红黑树 | TheRiver | Stay Alive
https://riverferry.site/2020-05-16-%E7%BA%A2%E9%BB%91%E6%A0%91/
参考漫画:什么是红黑树? wikipedia 在线测试 Red Black Tree
操作系统-编译链接 | TheRiver | Stay Alive
参考主要参考了:陈向群操作系统, 程序员的自我修养 Gcc 编译的背后 GCC编程四个过程:预处理-编译-汇编-链接
about | TheRiver | Stay Alive
https://riverferry.site/about/
meBorn in 1994, lives in Xi’an, engaged in background development Like games, music, like free ~~ look
skip-list | TheRiver | Stay Alive
https://riverferry.site/2020-11-06-skip-list/#more
在计算机科学中,跳跃列表是一种数据结构。它使得包含n个元素的有序序列的查找和插入操作的平均时间复杂度都是O(log n),优于数组的O(n)复杂度。 快速的查询效果是通过维护一个多层次的链表实现的,且与前一层(下面一层)链表元素的数量相比,每一层链表中的元素的数量更少(见右下角示意图)。一开始时,算法在最稀疏的层次进行搜索,直至需要查找的元素在该层两个相邻的元素中间。这时,算法将跳转到下一个
golang runtime sema | TheRiver | Stay Alive
golang reflect | TheRiver | Stay Alive
https://riverferry.site/2020-10-19-golang-reflect/
author title version TheRiver golang reflect go version go1.15.2 darwin/amd64 前言 在计算机学中,反射(英语:reflection)是指计算机程序在运行时(runtime)可以访问、检测和修改它本身状态或行为的一种能力。[1]用比喻来说,反射就是程序在运行的时候能够“观察”并且修改自己的行为。 反射主要
golang sync.cond | TheRiver | Stay Alive
https://riverferry.site/2020-10-29-golang-sync-cond/
Cond implements a condition variable, a rendezvous(会和) point for goroutines waiting for or announcing(宣布,公告) the occurrence(发生) of an event. Each Cond has an associated(关联) Locker L (often a *Mutex or
gitlab+github+hexo | TheRiver | Stay Alive
https://riverferry.site/2020/10/14/2020-10-14-gitlab+github+hexo/#more
前言以前的blog是基于github page + jekyll实现的,参考别人的模板修修改改。存在一些痛点: 代码段不能显示行号 文章没有分页功能 没有搜索功能 没有评论系统(其实是可以实现,但是因为参考别人的模板,之前参考文章失效了,也不知道怎么修改了) 不够流畅,并且缺乏定制化的东西 后面选择的方案是hexo+github+gitlab.通过hexo生成静态网页,依赖next的强大可用资
linux-posix信号量 | TheRiver | Stay Alive
https://riverferry.site/2020-04-07-linux-posix%E4%BF%A1%E5%8F%B7%E9%87%8F/
参考UNP 概述信号量(英语:semaphore)又称为信号标,是一个同步对象,用于保持在0至指定最大值之间的一个计数值。当线程完成一次对该semaphore对象的等待(wait)时,该计数值减一;当线程完成一次对semaphore对象的释放(release)时,计数值加一。当计数值为0,则线程等待该semaphore对象不再能成功直至该semaphore对象变成signaled状态。semaph
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.