用Ruby打造一个命令行聊天Slack

前言 大家好,我是Mark24 项目仓库: Client Mark24Code/mchat Server Mark24Code/mchat_server 我调整了一下顺序 这部分分为: Mchat 使用说明: 搭建和使用Mchat 后面分享 Mchat 开发故事 Mchat 背景 Mchat 原理 开发中 Ruby 的使用和思考 …… Mchat 搭建和使用 1)Mchat Server 项目 mchat_server 想了...


用100行Ruby代码模拟JavaScript的Eventloop

前言 大家好,我是Mark24 代码仓库: Mark24Code/rb_simulate_eventloop 背景 我们都知道 JavaScript 是单线程的。 今天看到一个有趣的帖子 www.v2ex.com/t/871848,主要是争论JavaScript的优缺点。我看到这个评论觉得很有意思: @qrobot: ....省略.... 多线程下会消耗以下资源 1. 切换页表全局目录 2. 切换内核态堆栈 3. 切换硬件上下文(进程恢复前,必须装入寄存器的数据...


管窥蠡测从思考游戏到实现2048

大家好,我是Mark24,可以叫我Mark Github Mark24Code 前言 本文比较啰嗦,更倾向于是自言自语。不过我写完回顾,这更像是这段时间,自由思考的总结 :P 不过我不是游戏领域的人,这部分都是业余摸鱼思考的记录,如果有勘误,请与我联系,非常乐意交流。 文章可能需要30分钟。 主要涉及的主题: 游戏之难 游戏基本构成 游戏引擎 游戏与交互程序 框架和库思考 语言是否是游戏的瓶颈 双缓冲模式 线程和协程的讨论 线程队列&am...


用Ruby讲从创业到996公司的故事(戏说master-worker模式)

前言 阅读大概需要20分钟。 假设你希望了解 线程、线程池、集群模式/Master-Worker模式、调度器。 需要了解 Ruby 基本的用法和面向对象思想。 本文戏说,无须严肃对待。勿对号入座。个人也没有严肃观点。个人观点和所有人没有关系。 本文博客地址 完整代码示例 github:rb-master-worker-demo Master Worker 模式 MasterWorker 模式,也有翻译成作集群模式、也叫 Master-Slave 模式。 Git 不...


关于编程的思考

一、背景: 看了《SICP》 前面三章。然后休息了一阵子。首先对抽象的重要意义前三章讲得很好,也有了更深刻的体会。 回顾了Sinatra、Rails、Roda 三个框架的颗粒度,和我在他们之间的思考和徘徊 二、关于编程的思考 1.一切的问题在于编程的一半是人 程序,一方面交给计算机执行,一方面交给人来阅读。 人们编写程序主要目的其实是为了给人阅读,其次的目的是给机器执行。 编程的一半的意义是跟人相关。 人通过书写程序来表达一种思想。编程行为本身是一种表达。创造。所以很多大家...


WIP Ruby Ractor遇到的问题

背景 我最近刚巧在看一些 函数式编程的东西,lambda演算。函数式可以解决CPU多核心利用的问题实际上在目前的Ruby上多线程无法真正利用多核。 恰巧 @Jakit 在研究 Ractor,这是一个Ruby上正在开发的特性,原理上类似于把 Golang 底层的并发模型 Actor 带到Ruby。 后来在交流Ractor的过程中发现一些问题。 然后我试图把这些问题弄明白,并且记录在这里。 列举一些资料 在讨论这些之间,你可能需要这些资料 Ractor 扫盲 Ruby中...


思考-计算机本质和程序本质

一、计算机的本质 数学理解 lambda算子(?) 哲学理解 图灵机 具体实现角度理解——CPU工作原理: 以现在CPU的工作原理理解(站在图灵机的实现角度理解) CPU的硬件电路主要实现了四类基本操作 不论CPU内部有多少寄存器、还有几百条指令集,总之可以归纳为以下四类: 数据传输 —— 内存数据、外部IO 运算 —— 实现布尔运算、数值运算(主要是加法,减法是另一种加法) 跳转 —— 实现...


笔记-汇编语言学习

参考书籍 汇编语言(第3版) 作者:王爽 教学视频 通俗易懂的汇编语言(王爽老师的书) 模拟 8086 DOS环境 —— DOSBox 1.在Linux Debian上配置安装环境 # 在Debian 中 安装 DOSBox # https://packages.debian.org/buster/dosbox sudo apt install dosbox 用于研究汇编的 debug 环境需要使用 dosbox-x 环境 这里 dosbox-x 对于 debian,只提供 ...


Debian11增加VPN功能

以下列出了各种类型的 VPN 在 Debian 里面设置 # [Debian 管理员手册|10.3. 虚拟专用网络](https://www.debian.org/doc/manuals/debian-handbook/sect.virtual-private-network.zh-cn.html) # 添加 openvpn sudo apt install openvpn # 在gnome的设置里添加 openvpn 的支持 sudo apt-get install network-...


Mark24

Everything can Mix.