毛毛的梦 - 开发
https://www.maodream.com/tag/%E5%BC%80%E5%8F%91/
-
全方位视奸·睡似了吗? 重生版
https://www.maodream.com/archives/255/
2025-02-03T14:30:00+08:00
Project Sleepy网址: https://maao.cc/project-sleepy/ 在2024年的夏天,因为中考后的假期太闲,我又算是个比较爱睡觉(小睡)的人,所以基本上每天都处在睡着->醒来->睡着->醒来的循环中。有时候朋友们会找我帮忙,大部分都是发信息留言,很多时候我回复得不太及时。而直接打电话又显得有些唐突(实际上我觉得在大部分情况下打电话才是最好的沟通方式),所以我就抱着写着玩的心态 写了一个能让各位知道我睡没睡着的网页,分享给了我的朋友们,并且做成视频发在了B站上。令我意想不到的是,这个项目受到了极大的关注,B站视频收获了近 8 万播放,博客文章的阅读量达到了 1.4 万次。但是在每天反复的操作中,我逐渐体会到了最初的项目存在的问题:使用原来的更新状态的方式并没有想象中的那么方便,由于我比较懒,上学后基本没再更新过状态。我心里其实一直有个想法是将家里的智能家居的状态也分享出来,大家可以更全面地「视奸」我。我希望使用虚拟的智能家居设备作为开关来更新睡眠的状态,于是我决定开启一个全新的项目。写了近一个月,项目基本完工了。网址: https://maao.cc/project-sleepy/现在还在测试阶段,新项目的信息更加全面,包含了我家中所有智能家居的状态,例如灯的开关、音响播放的内容、环境光的明暗和温湿度等,以及我电脑上正在运行的程序。上个项目获得广泛关注之后,有人说看我就像看电子宠物,这回算是真彻底变成电子宠物了。这个项目不仅能让朋友们更方便地知道如何联系我好,还能让大家一起监督我大晚上有没有开着灯熬夜。(当然我还是觉得打电话好)Project Sleepy 也是我做过的最认真的开源项目,开源在 GitHub: https://github.com/maoawa/project-sleepy这个项目的扩展 Sleepy Helper 也开源在 GitHub: https://github.com/maoawa/sleepy-helper(可能打不开,打不开不用管)我真的有非常用心的写各种配置和说明文档,并且让希望复刻这个项目的人方便修改。目前功能已经基本完善了,我也想不到还能再添加什么。如果各位有什么建议或者意见,亦或者是发现了神秘小bug,欢迎留言或者联系我喵!顺祝新年快乐!(虽然有点晚)
-
配置AWS亚马逊云EC2服务器的IPv6网络
https://www.maodream.com/archives/211/
2024-10-26T20:25:00+08:00
AWS (Amazon Web Services, 亚马逊云服务)是 Amazon 旗下全球领先的云计算平台,许多个人和组织都在使用由 AWS 提供的服务,我个人就有在使用 AWS 的 EC2 服务器。但是 EC2 默认只会被分配 IPv4 地址,而不会被分配 IPv6 地址,也就是说 EC2 默认并不能通过 IPv6 访问 Internet。不过我们可以给 EC2 手动分配一个甚至多个 IPv6 地址来解决这个问题。{dotted startColor="#ff6c6c" endColor="#1989fa"/} 首先登入 AWS 控制台,打开希望启用 IPv6 的实例,转到实例绑定的 VPC 展开 VPC 的 Actions (操作) 菜单,点击 Edit CIDRs (编辑CIDR) 点击 IPv6 CIDRs 中的 Add new IPv6 CIDR (添加新的IPv6 CIDR),在弹出的选项卡中选择 Amazon-provided IPv6 CIDR block (由Amazon提供的IPv6 CIDR块),然后点击 Select CIDR (选择CIDR) 这样,VPC 就有了一个由 Amazon 提供的 IPv6 CIDR 块,如图{dotted startColor="#ff6c6c" endColor="#1989fa"/} VPC 有了 IPv6 CIDR 块后,我们还要给 Subnet (子网) 分配 CIDR。回到希望启用 IPv6 的实例的控制台,转到实例绑定的 Subnet (子网) 展开 Subnet 的 Actions (操作) 菜单,点击 Edit IPv6 CIDRs (编辑IPv6 CIDR) 在 Subnet CIDR block (子网CIDR块) 中,点击 Add IPv6 CIDR (添加IPv6 CIDR) 点击Save (保存),这样 Subnet 就有了 CIDR 块 随后,需要给实例分配 IPv6 地址。再次回到希望启用 IPv6 的实例的控制台,展开实例的 Actions (操作) 菜单,展开 Networking (网络),点击 Manage IP addresses (管理IP地址) 展开网络适配器,如图 点击 IPv6 addresses (IPv6 地址) 中的 Assign new IP address (分配新IP地址)。可以选择自己指定一个 IPv6 地址,指定的地址需要在 Subnet 分配到的 IPv6 CIDR 中,也可以让 AWS 来 Auto-assign (自动分配)。随后点击页面底部的 Save (保存) 弹出选项卡二次确认,提示将会分配一个新的 IP 地址,这正是我们想要的。点击 Confirm (确认) 随后就会自动跳转回到实例的控制台,我们已经可以在这里看到实例已经被分配到了一个 IPv6 地址 最后一步是在路由表中新增一条规则,允许 EC2 正常通过 IPv6 与广域网通讯。转到 VPC 控制台,打开左侧的 Route tables (路由表),选中与之前的 VPC 关联的 Route tables,展开 Actions (操作) 菜单,点击 Edit routes (编辑路由) 点击 Add route (添加路由),Destination (目的地) 中键入 ::/0 (全部IPv6),Target (目标) 选择 Internet Gateway (互联网网关),在 Target 的输入框中输入互联网网关的 ID (以 igw- 开头,一般点击输入框,列出的列表中的就是),然后点击网页右下方的 Save changes (确认更改){dotted startColor="#ff6c6c" endColor="#1989fa"/} 至此,我们就已经成功为 EC2 服务器分配了一个可用的 IPv6 地址。值得注意的是,分配IPv6 地址后可能需要更新一下安全组策略,确保需要的 IPv6 入站流量被允许通过。现在可以试试连接至 EC2,测试 IPv6 的连通性。 执行 curl -6 my.ip-addr.is后,返回如下结果 CONGRATULATIONS! 现在这台 EC2 就已经能使用 IPv6 网络了,这篇教程至此圆满结束。 之前提到的 my.ip-addr.is 是我的好朋友 zkn 提供的一个服务,可以通过 curl 请求这个地址来获取自己机器当前的公网 IP 地址,具体用法如下:curl my.ip-addr.is # 获取默认的 IP 协议版本的信息
curl -4 my.ip-addr.is # 仅获取 IPv4 信息
curl -6 my.ip-addr.is # 仅获取 IPv6 信息 ip-addr.is 是一个非常实用的工具站,可以查询自己的 IP 地址、IP 地址信息、域名与 ASN 的 WHOIS 信息、查询 rDNS 解析,国家顶级域名列表。网站界面干净简洁无广告,域名简单直接,便于记忆,使用方便,现在在我心里已经取代 DNSCHECKER,成为了我的首选工具。
-
写了一个能让各位知道我睡没睡着的网页
https://www.maodream.com/archives/192/
2024-07-02T20:11:00+08:00
{alert type="warning"}这个项目已过时船新升级!全方位视奸,包括但不限于我在听的歌、家中灯的开关和电脑运行的程序,甚至还能直接和我互动!!详见: 全方位视奸·睡似了吗? 重生版 网址: maao.cc/project-sleepy {/alert}前言 因为中考完后的假期太闲,我又算是个比较爱睡觉(小睡)的人,所以基本上每天都处在睡着->醒来->睡着->醒来的循环中。朋友们喜欢留言找我,但一两条通知没法吵醒我,直接打电话又有些唐突。于是我决定写一个网页,来让访问网页的各位看到我是活着的还是似着的(){dotted startColor="#ff6c6c" endColor="#1989fa"/} 首先实现思路就是后端给两个接口。一个切换状态(switch)接口,当带 status=1 参数请求时,将状态更改为醒着(awake);当带 status=0 参数请求时,将状态更改为梦中(sleeping)。对于切换状态接口,任何操作都必须带上正确的 secret 密钥参数,否则直接返回 Invalid secret.。第二个接口是查询状态(query)接口,无需任何参数,请求接口后直接返回当前状态。前端请求查询状态(query)接口后,即可显示当前状态。更改状态使用快捷指令发送get请求。{dotted startColor="#ff6c6c" endColor="#1989fa"/} 最终成功实现了想要的效果: https://maao.cc/sleepy/{bilibili bvid="BV1fE421A7PE" page=""/}
-
给常联系页面加了个英文
https://www.maodream.com/archives/129/
2024-01-13T23:53:00+08:00
因为自己有时候可能会和一些外国友人交流,所以挺早之前就想给自己的常联系页面加一个英语,但是一直没去行动。我认识一个来自埃及的朋友,之前经常和他一起打游戏啥的,但是三个多月前,他突然就没任何动静了。我问了很久,他也没回复。终于半个月前(这半个月没怎么上线),他回复了我: 这次经历教会了我们,好朋友之间还是要留下足够多的联系方式。刚好最近不是很忙,就抽出时间给我的联系页加了一个英文的选项:( https://maao.cc/global ) 我选择是将中文和英文分成两个单独的子目录,访问网站首页时,自动检测用户的语言,跳转到对应的语言目录。实现起来非常简单,只需要15行代码(不完全遵守规范的话,还可以更少):<!DOCTYPE html>
<html>
<head>
<title>maao.cc</title>
<script>
var userLang = navigator.language || navigator.userLanguage;
if (userLang === 'zh-CN') {
window.location.href = '/cn';
} else {
window.location.href = '/global';
}
</script>
</head>
</html> 这样,访问首页就会自动判断,将用户引导至合适的语言。当用户的语言是 zh-CN (简体中文)时,就自动跳转到https://maao.cc/cn 是其他语言时,就跳转到https://maao.cc/global 当然,如果识别出错或者只是想看看另一种语言的页面的话,我也做了一个区域选择器(Region Selector 有点模仿任天堂官网那意思): https://maao.cc/regionselector 因为一般来说大部分简体中文访问者不会打开这个页面,所以在这里我是把英文放在第一个。 同时,我也将常联系站(maao.cc)的境外流量接入了上一篇文章提到的Amazon CloudFront(详见 本站的境外网络访问优化记录 - 毛毛的梦 ),现在全球连接速度都嘎嘎快
-
联想拯救者Y7000P 2018款黑苹果EFI 支持macOS 14 Sonoma
https://www.maodream.com/archives/72/
2023-11-17T12:06:00+08:00
{message type="info" content="本文章在macOS上完成编辑"/}{dotted startColor="#ff6c6c" endColor="#1989fa"/}{alert type="warning"} 重要提醒:联想Y7000P 2018款原装硬盘大概率为三星PM981(如下图)由于苹果在生产Mac系列产品时没有采用三星的PM981(a)系列硬盘,所以苹果没有在macOS中提供对这类硬盘的支持,无法识别这类硬盘,强行在这类硬盘上安装macOS可能会导致安装卡在剩余14/12分钟。当然,世上无难事,只怕有心人。针对这个问题,网上也有许多现成的解决办法,例如 PM981/PM981a安装黑苹果——第八版_pm981a补丁-CSDN博客 。不过这些方法还是一些偏方,不如直接把原装硬盘换掉,反正现在M.2固态的价格已经比几年前便宜很多了。请在安装前确认自己设备的硬盘型号,具体方法可以去互联网上搜索: 必应 / 百度{/alert}EFI采用OpenCore{dotted startColor="#ff6c6c" endColor="#1989fa"/}EFI已知问题: - 无法使用隔空投送 - 无法使用蓝牙 - 在macOS 14上无法驱动Wi-FiEFI下载:{cloud title="蓝奏云" type="lz" url="https://wwas.lanzouj.com/b03l3ehla" password="114514"/}{cloud title="百度网盘" type="bd" url="https://pan.baidu.com/s/1jDxf3WrWZEf3iws46wfhXg?pwd=1145" password="1145"/}
-
准备做一个文章更新自动短信推送
https://www.maodream.com/archives/53/
2023-11-15T21:00:00+08:00
导言 这两天生病在家,刚好闲着没事干,准备整个自动推送文章更新。推送方式上,考虑到访问我的网站的用户大多用的是手机,虽然邮件的推送成本极低,但是转化率不高。而且手机短信通知要比邮件方便一些,也有着不错的转化率,所以决定先开发短信推送,邮件推送先搁着。{dotted startColor="#ff6c6c" endColor="#1989fa"/} 现在的想法是用阿里云的短信发送接口。前端写一个页面,输入接收推送的手机号,发送验证码申请提交到后端,通过某种加密方式鉴权,鉴权通过后后端请求阿里云API发送短信。前端再输入收到的验证码,验证通过后把手机号写入数据库。 验证码短信的内容想好了,是:{alert type="info"} 【毛毛的梦】验证码:6位验证码。您正在申请订阅文章更新通知。{/alert} 等到每次文章一更新,就去阿里云发短信给数据库里所有的手机号。消息内容目前定下来是:{alert type="info"} 【毛毛的梦】新文章更新,标题:标题。链接:链接{/alert} 现在只是新建了个计划,开发也处于新建文件夹阶段,给自己定的完成时间是三周以内,慢慢写吧。{dotted startColor="#ff6c6c" endColor="#1989fa"/}2023.11.17 9:26更新: 模板全部审核通过了,就等着开发了2023.11.16 10:47更新: 目前进展:Python后端接口已完成2023.11.16 9:18更新: 通知消息模板人工咨询工单回复了,说建议我在申请备注中提供一个完整的不带变量的模版示例,我只能说...瞎吗...2023.11.15 23:05更新: 修改过后的验证码消息模板过了,但是通知消息模板还是没过,审核意见是什么“根据您提供的链接https://www.maodream.com/archives/,核实功能内容太少,无法判断实际内容 我的archives目录下是文章,我只是用这个链接合成一下,他不会把archives当做一个实际页面了吧...2023.11.15 22:36更新: 验证码消息模板也没过,本来想用“您正在申请订阅「毛毛的梦」文章更新通知。”的,但是阿里云提示不能使用特殊符号,只能作罢。说实话有点小可惜,我觉得「直角引号」还挺好看的。 也想吐槽一下阿里云,为什么不直接禁止输入特殊符号,还要靠人工审核才提示,有点浪费时间...2023.11.15 22:17更新: 短信通知的消息模板没通过审核,阿里云说是title变量的内容不明确,可我觉得原本写的“新文章:标题”挺明确的啊。没办法,只能修改成“新文章更新,标题:标题。”