Zero Calorie Drink Shop

A childless azukisan lady who is miserable at her own live.

That is me. Only a nihilistic phantom.

[Feed] [GitHub]

试着复刻一个vue的计算属性

之前对于 Vue 的响应式封装(这里主要思考的是 computed),主要是用用,其实是懒得思考背后的原理的。毕竟原理其实可以用一句话说明:计算属性对别的属性产生有向的依赖关系,这个依赖关系构成一个有向无环图(DAG),图上的某个节点更新后重新计算其所有后置节点即可。

但是仔细想来,内部其实有一些时间复杂度的问题。显然,我们不能暴力调用回调函数(会卡出指数级时间复杂度 O(2n)O(2^n) 下面会详细解释)。同时朴素的做法很难解决这样的问题:

const a = ref([]);
const b = computed(() => a.join(","));
for (let i = 1; i <= n; i++) {
  a.value = a.value.concat([i]);
}

注意到对于一个网页而言,我们实际上期望 b 能在整个宏任务跑完以后才更新。所以实际上a.value 的 setter 触发的更新必须要进行推迟。

这篇文章讲讲我怎么在思考这些的过程中试着复刻一个 vue 的计算属性 computed

Latex符号大全

Latex 符号大全

静态版Ruby?Crystal语言试用

前几天在思考,Python 和 JS 都拥抱了类型检查(类型注释),但是 Ruby 却只能用 Sorbet 这样的影响性能的类型检查器(Ruby 没有官方的类型检查工具,引入静态类型检查的 gem 反而降低了性能),在搜索中找到了 Crystal 这门语言。

https://crystal-lang.org/

看描述我就惊艳到了:作为一个静态语言,Crystal 居然长得这么像 Ruby,于是本着不妨玩玩的想法,我进行了 Crystal 的初试。

# A very basic HTTP server
require "http/server"

server = HTTP::Server.new do |context|
  context.response.content_type = "text/plain"
  context.response.print "Hello world, got #{context.request.path}!"
end

address = server.bind_tcp(8080)
puts "Listening on http://#{address}"

# This call blocks until the process is terminated
server.listen

查看你的Misskey存档!

简而言之,我写了一个可以查看Misskey/Firefish/Sharkey/…等Misskey系软件导出帖子存档的工具!

网址: https://lhcfl.github.io/misskey-archive-viewer-web

源代码: https://github.com/Lhcfl/misskey-archive-viewer

从中心化平台跑路:迁移到联邦宇宙(Fediverse)

2023年10月18日, X (Twitter) 发布了一则公告,宣布他们在进行一项“测试”:在新西兰和菲律宾注册的新用户必须支付 $1 的年费才能在 X (twitter) 上和人互动。并且“在此测试中,现有用户不受影响”。
这促使我写下这篇文章:早该跑路了!如果之前的 Twitter 还努力营造一种“为了所有人”的印象,重视用户的黏性,Elon Musk的肆意妄为无疑是宣告 Twitter 终究是一个由公司掌握的营利性平台,而任何这样的大型中心化平台都不可避免的被少数人控制。国内平台尤甚,The big brother可以随意获取你的隐私,审查你的言论 (censorship),无需理由就能禁言、封禁你的账户,随意关闭任何回答的评论区。你真的愿意让你使用社交平台的权利被拿捏在它们手中吗?

Mastodon的单一文化问题

Mastodon 非营利组织的首席执行官兼 Mastodon 软件的首席开发者 Eugen Rochko(在联邦宇宙上被称为 Gargron)最近的举动让一些人担心 Mastodon(该软件项目和该非盈利组织)对 Fediverse 的其余部分造成的巨大影响。是的。我们的确应该担心。

Hexo 博客添加数学支持

eiπ=1e^{i\pi} = -1

一言

这里将会显示一句话

2020-03-26

联想电脑 wifi 无法使用,有时只需输入一条命令即可

sudo modprobe -r ideapad_laptop

Vim学习笔记

Vim 的学习笔记

Previous