Luyu Huang's Blog
  • Home
  • Archives
  • Tags
  • Links
  • About
  • Feed

Synchronize time and time zone between client and server

The time in online games is generally based on the server time, which include the time used by the client for calculation and display, since the time in the client may be incorrect. In addition, my ga
May 8, 2020
#experience #lua #english

Gzip 格式和 DEFLATE 压缩算法

1. 引言 当你键入 tar -zcf src.tar.gz src, 就可以将 src 下的所有文件打包成一个 tar.gz 格式的压缩包. 这里的 “tar” 是归档格式, 将多个文件组合成一个文件; 而 “gz” 指的就是 gzip 压缩格式, 使用 DEFLATE 算法压缩得到. 作为使用最广泛的无损压缩算法, DEFLATE 是怎样工作的, 背后的原理是什么? 这篇文章我们来讨论下这个问
April 28, 2020
#algorithms #featured

给 VSCode 做了个 RSS 阅读器插件

一直比较喜欢使用 RSS 订阅一些新闻和技术博客, 但总觉得 Windows 上除了雷鸟外没有什么好用的阅读器. 后来突然想到既然平时 VSCode 用得这么多, 为什么不给它写个 RSS 阅读插件呢, 而且 VSCode 扩展性这么强, 又天生支持 HTML 渲染. 于是清明节这几天就搞出了这个: luyuhuang/vscode-rss. 在 VSCode 扩展商店中搜 “RSS” 就能找到它
April 6, 2020
#tools

为什么说 Lua 5.3 中没有全局变量了

过去笔者一直使用 Lua 5.1, 对 Lua 5.3 中的 _ENV 一知半解. 最近新项目中使用了 Lua 5.3, 于是特意研究了下. 这篇文章总结下 Lua 5.3 中的环境和全局变量, _ENV 的含义以及与之相关的用法. Lua 变量的类型 Lua 中的变量可分为局部变量, 上值(upvalue)和全局变量. 经常使用 Lua 的同学应该都很熟悉, 举个例子: 12345local u
March 20, 2020
#lua

序列化 Lua 对象

在项目中由于种种需求经常需要将对象序列化成一个字符串. 由于 Lua 唯一的复合结构是 table, 所以实现起来还是比较简单的. 之前我们的做法是用 Lua 写一个递归函数遍历 table 的键值然后转换成字符串并拼接起来. 然而 Lua 在字符串拼接的过程中会不断地构造字符串对象, 因此这样的实现方式性能较差, 并且会浪费内存, 特别是数据比较大的时候. 一种优化方式是将键值转换的小字符串存到
March 18, 2020
#lua

矩阵的 n 次方和斐波那契数列通项式

斐波那契数列大家应该非常熟悉, 这是一个典型的递归定义的数列. 那么这样一个递归定义的数列的通项式是怎样的, 它又是如何推导出来的呢? 这里我们从寻找矩阵的 n 次方说起. 矩阵的 n 次方 首先只有方阵才有与自己相乘, 所以我们实际讨论的是方阵的 n 次方. 为了高效地求得一个 \(m\times m\) 的矩阵 \(A\) 的 n 次方 \(A^n\), 我们的做法是找到一个矩阵 \(P\)
March 16, 2020
#math

分布式哈希表 (DHT) 和 P2P 技术

1. 引言 相信没有人没使用过 P2P 技术. BT 种子和磁力链接就是最常见的 P2P 技术, 使用 P2P 技术, 文件不再需要集中存储在一台服务器上, 而是分散再各个用户的节点上, 每个人都是服务的提供者, 也是服务的使用者. 这样的系统具有高可用性, 不会由于一两台机的宕机而导致整个服务不可用. 那么这样一个系统是怎样实现的, 如何做到去中心化(decentralization)和自我组织
March 6, 2020
#featured #design

Promise 和 Deferred

1. 引言 这篇文章笔者想讨论一下 JavaScript 中的 Promise 和 Python Twisted 中的 Deferred(jQuery 中也有 Deferred, 它们的思路是一致的). 它们很有趣, 也有点复杂. 在协程被广泛应用之前, 它们在网络编程中起到了重要的作用. 在此之前, 我们先来看看一些基本概念. 2. 从请求说起 请求和响应 我们在进行网络编程的时候, 总是会用到
February 9, 2020
#featured #design

三个思路相通的最大面积问题

笔者在 LeetCode 上看到了三个非常有意思的最大面积问题, 这里来分享一下. 1. 接雨水 题目源自Leetcode: 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 trapping-rain-water 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水
January 16, 2020
#algorithms #leetcode

2019 Annual Summary

On September 15, 2017, the first day I joined the company, I told myself that I joined a good company which has a good treatment but I was not feeling happy at all. I had plenty of worry and confusion
January 1, 2020
#essays #english
1…456789

Search

© 2025 Luyu Huang's Blog, Powered by Hexo Fluid