avatar
文章
21
标签
28
分类
17
Home
Archives
Tags
Categories
LogoLiamRyan 的博客
Home
Archives
Tags
Categories

LiamRyan 的博客

typescript 疑惑版
发表于2026-08-24|typesripthtmlcssjavascript|typesript•html•css•javascript
JSdeclaration为什么建议使用 let 而不是 var 主要原因是作用域不同,let 是块级作用域,var 是函数级作用域。 1234567if (true) { var x = 10;}console.log(x); // 10 — 块外仍能访问!for (var i = 0; i < 3; i++) {}console.log(i); // 3 — 循环变量泄漏到外部 1234567if (true) { let y = 10;}console.log(y); // ReferenceError: y is not definedfor (let j = 0; j < 3; j++) {}console.log(j); // ReferenceError var 会进行变量提升 12console.log(a); // undefined(不会报错,但值是 undefined)var a = 5; 等价于 123var a; //...
typescript 基础知识
发表于2026-08-15|typesripthtmlcssjavascript|typesript•html•css•javascript
html / CSS主要介绍 html/css 入门知识,用来做 typescript 的前置知识。配套课程文件 html HTML(Hypertext Markup Language):The language your web browser uses to describe the content and structure of web pages 如果整个网页当作人体,那么 html 就是骨架,决定每一资源放置的位置 12345678910<!DOCTYPE html><html> <head> <title>Title!</title> </head> <body> <h1>Heading!</h1> <p>Paragraph!</p> </body></html> 文档对象模型(DOM)通过将文档的结构(例如表示网页的...
设计数据密集型
发表于2026-05-25
存储和检索OLTP 索引一个简单的思想就是使用一张哈希表来保存每个数据的 offset,但是这样存在着更新困难的问题: 如果不更新已经删除的 key,那么就会持续占用磁盘 如果更新已经删除的 key,那么就会占用大量时间重新扫描文件系统,来重新构建哈希表 此外,还需要占用额外的空间来保存这张哈希表,否则如果掉电等意外发生,那么也必须扫描整个文件系统来重新构建这张哈希表。同时,这样不会能支持范围检索,如果数据量过大,还必须解决哈希冲突。 SSTable(sorted string table) The Google SSTable file format is used internally to store Bigtable data. An SSTable provides a persistent, ordered immutable map from keys to values, where both keys and values are arbitrary byte strings. Operations are provided to look up the...
站内信
发表于2026-04-08|实习日志|分布式系统设计•站内信•分布式系统
概述站内信相较于 IM 通信系统而言,实现是比较简单。具体而言就是一个单向的通信系统,由服务端向客户端进行推送,而没有客服端向服务端推送的功能。 1234IM: client <-----> serverSite Message: client <------ server 站内信的核心内容是:消息内容,消息和发送人之间的关系,是否已读 实现起来的技术点也是和 IM 几乎没有区别,也存在群发和私发的消息,因此也需要考虑群发消息和私发消息的储存和可靠性。私发消息相对而言实现比较简单,只需要保证有序性和可靠性即可群发消息就实现起来相对复杂,正常来说需要使用单独的一张表来保存这部分消息,是常见的 IM 系统中的读扩散问题,还有已读状态,都需要进行考虑。 由于工期比较赶,因此实现起来也比较潦草,整体实现思路为: 某个 Pod 起来的时候都会订阅某个特定的 channel,并且注册自己独特的 channel,借助 Redis 的 Pub/Sub 机制完成消息的转发。 这种实现方法并不完美,因为 Pub/Sub...
本科毕业设计
发表于2026-02-15
之前做过一点知识图谱相关的工作,了解过一些图相关的知识,可惜之前没有做好记录,只是做了相关内容,具体细节已经忘掉了。 正好毕业设计也是这方面相关的,涉及图神经网络和数据处理方面的,不过嘛,毕业设计的水分还是很足的,大部分是工程相关的,因此也是主要来写怎么处理工程问题,而不是相关算法问题,算法主要是通过复现老师的代码。 神经网络相关数据集一共有两类数据集,分别是基础数据集和 reddit 数据集。下面分别介绍这两种数据集。 基础数据集所谓基础数据集指的是 torch_geometric 中自带的数据集,本次只使用了两种类别,其他内置数据集就没有认真调查了,这两类分别是 Planetoid 和 Amazon。 Planetoid 的名称是来自论文 Revisiting Semi-Supervised Learning with Graph Embeddings. Zhilin Yang, William W. Cohen, Ruslan Salakhutdinov. ICML 2016. Amazon Amazon Co-purchase...
redis 底层数据结构
发表于2025-12-23
SDS
腾讯开悟
发表于2025-09-19|Competitionkaiwu|reinforcement learning•ppo
参赛链接:https://aiarena.tencent.com/aiarena/zh 2024 智能体博弈赛道2024 年,是我第一次接触到强化学习,对于一些概念都比较陌生,今年的比赛本质上是进行调参。(2025 年会狠狠的怀念的)。 2024 年,我们改进方向主要是进行奖励函数的改进,在此基础上加入了很多的奖励函数,想要让模型变的更加的聪明,但是事与愿违,增多奖励函数非常容易让模型变的十分抽象,并且新加的奖励函数容易让模型退化,并且由于训练是 self-play,及其容易出现 lazy-agent 的现象,具体表现就是两边都躲在草丛里面,清完兵线就没有任何的动作了。此外,还导致训练过程中梯度爆炸的限制,主要原因就是没有对奖励值得大小进行约束,导致一个值变的非常的大。 因此,奖励函数设计也变得十分的烧脑,并且尽可能得保证零和博弈。同时,样本的丰富性和多样性就很重要了,之前有选手就写了 ELO 机制,另外,腾讯开悟框架也提供了 random...
MyChat
发表于2025-08-14|CSDIYMyChat|Golang•gin•gorm•微服务•Mysql•Redis
项目来源:https://learnku.com/articles/74274 我对这个项目进行了一些二次开发,完成了一些作者没有做的,或者没有做完的内容,作者写的内容我就不多写了,下面主要是我的学习笔记。主要是相关技术栈入门,以及部分开发的知识。 目前技术栈没有多大变化,也就是原文中的技术栈,只是多了个 docker 部署。 TODO:框架改造:微服务 总体结构12345678910111213MyChat.├── asset // 放置上传的图片├── cache // redis├── common // 放置公共文件├── config // 配置文件├── dao // MySQL├── global // 放置各种连接池,配置等├── initialize // 项目初始化├── middlewear // 中间件(拦截器)├── models // 数据库表设计├── router // 路由├── service // 对外...
golang 中的 singleflight
发表于2025-08-04|实用库文件Golang|Golang•singleflight
背景一般情况下我们在写一写对外的服务的时候都会有一层 cache 作为缓存,用来减少底层数据库的压力,但是在遇到例如 redis 抖动或者其他情况可能会导致大量的 cache miss 出现。 假如我们要访问一个文件,但是由于各种问题,这个请求发送了 1000 次,如果不做处理,让他直接访问缓存或者直接访问数据库,那么就会显著增大后端压力,降低并发性能。 这个时候我们就可以使用 singleflight 库文件,直译过来叫做单飞,主要作用就是把一组相同的请求合并为一个请求,实际上只会请求一次,这样会显著减少数据库和缓存的压力。 原理singleflight 一共提供了三种接口,具体的说明在这里 singleflight: func (g *Group) Do(key string, fn func() (interface{}, error)) (v interface{}, err error, shared...
Golang Slice、String and Arrary
发表于2025-08-02|编程语言特性Golang|Golang•String•Slice
之前面腾讯的时候问到 Slice 把我问懵了,还是太菜了,只是简单的了解了一下 Slice 的底层结构,但是经不起深挖,基础有点太弱了。 String底层结构一个字符串是一个不可改变的字节序列,字符串通常是用来包含人类可读的文本数据。和数组不同的是,字符串的元素不可修改,是一个只读的字节数组。每个字符串的长度虽然也是固定的,但是字符串的长度并不是字符串类型的一部分。由于 Go 语言的源代码要求是 UTF8 编码,导致 Go 源代码中出现的字符串面值常量一般也是 UTF8 编码的。 源代码中的文本字符串通常被解释为采用 UTF8 编码的 Unicode 码点(rune)序列。因为字节序列对应的是只读的字节序列,因此字符串可以包含任意的数据,包括 byte 值 0。我们也可以用字符串表示 GBK 等非 UTF8 编码的数据,不过这种时候将字符串看作是一个只读的二进制数组更准确,因为 for range 等语法并不能支持非 UTF8 编码的字符串的遍历。 Golang 中 String 的定义如下(reflect.StringHeader)在 Go 1.20 之后就被废弃了,因为...
123
avatar
LiamRyan
LiamRyan 的博客
文章
21
标签
28
分类
17
关注我
公告
博客部分功能还未完善,后续会陆陆续续完善,请见谅
最新文章
typescript 疑惑版2026-08-24
typescript 基础知识2026-08-15
设计数据密集型2026-05-25
站内信2026-04-08
本科毕业设计2026-02-15
分类
  • CSDIY2
    • MIT 6.8241
    • MyChat1
  • Competition1
    • kaiwu1
  • docker2
  • hexo1
  • typesript2
标签
GC Process Mysql Slice GMP css gin Memory javascript hexo Lock singleflight Golang 内存管理 Thread String 微服务 typesript 分布式系统设计 Map reinforcement learning ppo gorm 分布式系统 Redis html 虚拟内存 站内信
归档
  • 八月 20262
  • 五月 20261
  • 四月 20261
  • 二月 20261
  • 十二月 20251
  • 九月 20251
  • 八月 20253
  • 七月 202511
网站资讯
文章数目 :
21
本站总字数 :
77.7k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2026 By LiamRyan
框架 Hexo|主题 Butterfly