「技术分享」CRDT与协同编辑

引言

如何设计和实现一个多用户场景下的文档编辑器?

如果的只是单用户的场景,其实可以很简单地实现,只需要一个 <TextArea /> 输入框就够了。至于富文本的实现,可以直接渲染Markdown,那么文档的数据只需要朴素的文本格式保存md string就行了。不涉及状态同步,没有复杂数据模型,也不会产生任何冲突。

但是在多用户的场景下,一篇文档可能被多个用户分时或者同时编辑,而且文档也可能有排版需求。编辑器如何支持多用户编辑场景?文档的数据模型又该如何设计?多用户编辑产生的冲突又如何解决?

第一个问题,编辑器要支持多用户编辑场景,就是要记录和同步每个用户修[……]

继续阅读

山东大学 校园网公网端口映射 (SDU Port Mapper)

大致思路是将容器化的 easyconnect 部署在公网服务器上,通过 容器内 nginx 反向代理校内网端口实现公网映射的功能。因每次 ssh 上服务器手动增删映射配置较为麻烦,故开发为 web 前后端方便管理。最后将整体打包为 Docker image,方便部署。

Github:

https://github.com/CrazyHer/SDU-Port-Mapper

项目地址:

https://sdu.herui.club

Docker Image:

https://hub.docker.com/r/crazyher/sdu-port-mapper

[……]

继续阅读

山东大学 一键申请出校脚本 开润神器

本脚本旨在为沙袋师生提供更便捷和稳定的山东大学信息中心出校申请服务

( 说白了就是免去每次出校都要填写繁琐的表单,一键用上次提交出校申请的信息再帮你申一次

仅备案制出校时可用 (其实审批制也可以,不过都审批制了也没必要

济威青一校三地均可用 (理论上来说是这样的,不能用请提 issue

Github: CrazyHer/run-away-from-sdu: 山大?快润!山东大学一键申请出校脚本 (github.com)

NPM: run-away-from-sdu – npm (npmjs.com)

使用方法

1. CLI 命令行直接运行

安装[……]

继续阅读

「实习笔记」全栈后端知识整理

阿里今年把前端改全栈了,实习转正还需要加一轮后端面。感谢伟大的郭总,给了俺一些后端笔记看看。

https://www.processon.com/view/link/6166e3327d9c0866513817d6

https://www.processon.com/view/link/6166e2f27d9c08665138176e

在此学习并整理一下笔记。

[……]

继续阅读

「React源码分析」二. React Renderer渲染器react-dom包概览与其主要API的功能及其作用

一. 概览

react-dom 包作为 React 的 DOM 模型渲染器和服务器渲染器的入口点。它旨在与通用 React 包配对,后者作为 react 提供给 npm。也就是说,react 的渲染过程是使用 react-dom 中提供的一系列API进行的。

react-dom 的 package 提供了可在应用顶层使用的 DOM(DOM-specific)方法,我们在有需要的情况下可以把这些方法用于 React 模型以外的地方。不过一般情况下,大部分组件都不需要使用这个模块。

二. 安装和使用

使用npm命令安装 react 和 react-dom :

编写[……]

继续阅读

「React源码分析」一. React开源项目概览

2021SC@SDUSC

React简介

正如React项目官网所说,React是一个「用于构建用户界面的 JavaScript 库」。人们往往也会将React与Vue、Angular作为前端三大框架进行对比(但如今Angular的热度也越来越小了,而前两者的社区规模和热度仍在不断发展壮大)。React相对其他前端框架(说前端框架其实并不准确,因为React早已不再单纯地面向“前端”,本身也并不是所谓的“框架”)来说,不仅写法上更灵活,语法也更贴近ES标准,对Typescript也有着更好的支持。

同时,React本身在整体架构设计上更有优势,React日益庞大而成熟的技术栈[……]

继续阅读

[课程白嫖笔记]算法设计与分析

因为这学期选了不少其他限选课,再加上这门课听不少人说考试挺鬼畜的(全考算法证明题),老师挂科率也高(高达30%+),就算过了得分也不好看(均分75) 所以没选,但毕竟还是挺有用的感觉,所以跟着舍友旁听了。
虽说不用交作业不用考试,但还是开个笔记好好学下……(虽然还是分而治之和图算法占大半篇幅

[……]

继续阅读

山大校内网socks5代理端口被滥用

最近发现服务器异常卡顿甚至无响应,经检查发现原本用于山大校内网而完全对外开放代理的1080端口被滥用。因此将该端口默认封闭,需要使用的同学请通过邮箱联系我,并提供自己的IP地址,我将审核并加入白名单。

此外,校内网端口映射服务(https://sdu.herui.club)正常开放。需要的同学可以直接使用该服务。

[……]

继续阅读