Tag: IT

  • 在外置硬盘上,加密安装 ubuntu

    需求: ——这篇攻略和是否外置硬盘盒,没多大关系。普通内置硬盘也可以这样加密安装。 最新的 Ubuntu 22.04 之后的版本,在安装界面里自带了 LVM 全盘加密安装的选项。但是并不能满足第 3 条需求。所以还需要一些复杂的手动操作。 安装过程尽量围绕 ubuntu 的图形安装界面,对新人友好。参考并验证了这篇教程。但原文连同 /boot 引导分区也一起加密了,于是在配置上略显繁琐。我觉得加密 /boot 并不是很有必要,做了一些改动。最终的硬盘分区结构为(以 512GB 硬盘为例): 操作步骤: 下载 Ubuntu,制作 USB 安装盘(过程略)。——然后,强烈建议在整个安装过程之前,在电脑的 BIOS 里,把内置的其它硬盘暂时卸载。 插上移动硬盘和 USB 启动盘。从 U 盘启动电脑,选择 Try Ubuntu。最新的 Ubuntu 22.04 安装程序里,已经内置了所需的 cryptsetup 和 cryptsetup-initramfs 软件包。因此,整个安装过程中,应该不需要连接互联网。 首先,把硬盘预分区。分区软件有很多种,可以用原文的 sgdidk,也可以直接用图形界面下的 Disk 或者 Gparted。在硬盘上创建 GPT 分区表,然后分成: 这些分区都先不用格式化。记住第二个分区的名字,本文假定为 /dev/sda2。 分区成功后,关闭分区软件,打开 Terminal 命令界面,执行 root 权限 将系统分区加密。按提示输入密码,——这个密码,就是以后每次启动时,挂在硬盘用的密码。和安装…

  • Mastodon: 将媒体文件存放在本地(docker 版)

    本攻略适用于—— 这个搭配虽然不多见,但其实用起来满爽的。很多人用的 s3 服务都是在薅羊毛,而 mastodon 那个变态的,把别人家的媒体文件缓存到自家的架构,流量的吞吐其实很大的(开了 relay 就更夸张),薅羊毛时很容易就超出了。反而是 vps 本身的流量上限很高。对于个人建站而言,媒体文件总量通常 <50GB,某些 vps 自带 200GB 硬盘,足够用了。 缺点是,除了数据库定期备份外,也要考虑媒体文件的异地备份问题。但其实只需要备份存储本地附件的 media_attachments,而 cache 是不需要备份的,所以工作量也不大。 两年前我把媒体文件转移到本地时,参照了 antisocial science 的设置。但因为我用 docker,官方默认的设置,docker 内外权限不一致,无法将媒体文件写到本地。于是匆匆又在本地建了个 minio s3 来中转……这样其实很浪费资源了,minio 的开销也不小。所以最近趁着搬家,又试了一下,终于把 docker + 本地存储 跑通了。 1. 在 docker-compose.yml 里, web 和 sidekiq 容器中,已经预设了媒体文件的卷映射 这个不用动。——也可以改成其它的路径,但要和后面的设置一致(本文用相同的颜色标明)。 2. 修改 .env.production PAPERCLIP_ROOT_URL 是服务器的所有媒体文件链接的子文件夹名称,形如: 默认值是 /system;但是建议改成独特一些的名字,而且建议和 S3_BUCKET 一致。以后需要在本地存储和 s3 之间转换时,可以省一点心。(所以要独特一些,防止回头在 s3 上和别人撞名)…

  • Fediverse: 是否要自建实例?

    之前和人聊到,自建 fediverse 实例时,和在其它实例做注册用户相比,一些不同的体验。然后发现,谈到的许多东西,对于没有自建经历的网友,还是很新鲜的。所以索性在这里列出来,让大家了解一下。 自建实例的优点 1. (可能)更好的稳定性 是的,自建并不是「不稳定」的代名词;恰恰相反,如果技术能力达标,个人实例因为开销相对较少,稳定性反而比很多中小型实例要高。即使我完全有能力,担任几百名用户的实例管理员;和维护一个我自己用的实例相比,我也是对后者的稳定性更有信心的。 而另一方面,现有实例的站长们,也未必都是很靠谱的。他们会因为各种技术、非技术、甚至搞笑的原因,导致站点无法访问。常见例子包括: 目前 fediverse 更换一次账号,还是满麻烦的;也并没有旧帐号数据的导入功能。所以,如果想要让自己的账号,长久地存在下去,自建可能是更好的选择。 以及,自建实例有更好的安全性。——像 fediverse 这类的程序,暴露出的系统漏洞,其中相当大一部分,都是通过「站内用户的恶意攻击」来触发的(譬如上传会包含代码的媒体文件)。如果这个站点只有你自己在使用,那么,这类漏洞,对你来说是无关紧要的。 2. 更好的隐私控制 之前写过一篇《Fediverse 站长都能看到什么?》。普通用户的很多未公开信息,对于所在实例的站长,技术上都是可见的。如果你在这些隐私方面有所顾虑,或者打算把 fediverse 账号当成私密日记来用,那么,自己建站,信息被不相干的人看到的可能性,会更少一些。 3. 管理自己的全部数据 现有的 fediverse 服务程序,为普通用户提供了数据导出功能,但导出的数据内容很有限。譬如 mastodon 导出的数据中,包括: 但并不包括: 其它程序的数据导出,也都大同小异(twitter 也差不多);有的甚至会更少,譬如支持和 fedi 账号互 fo 的,图书管理程序 bookwyrm,用户能导出的,只能用惨烈来形容(只有书的链接;没有书的标题和简介!没有你的书评!)。如果你希望未来也能够看到这些自己交互过的信息,而不是随着网站的消失而听天由命,那么,可能一开始就选择自建比较好。 另外,mastodon 的搜索功能,做的很差劲的(尤其是中文)。elastic search 的开销极其巨大,效果也不好。虽然我也很少用搜索功能,但一旦真的有什么信息,需要精确查找,直接在自己建的站里用 SQL 搜索数据库,要舒适很多。 4. 更少的站内约束 很多 fediverse 实例,是有其内部的聊天「氛围」的。一些和氛围不合拍的发言,可能会遭到实例其它用户的抵制,甚至举报。很多时候,这样的分歧可能无关对错,但多少会对发言者产生困扰和拘束。又或者,站长决定,或者通过「民主表决」的方式,让全站屏蔽了某个实例,而你可能并不希望这样。如果是自建的话,做自己的站长,这样的约束可能会少一些。——虽然偶尔还是会看到一些来自外站的举报,但跨站举报本来就没有相应的处理和交互机制,无视就可以了。以及,我并不是指,自建站就可以肆无忌惮地发色情或者仇恨言论,那可能会让你的整个站点,被其它实例屏蔽的。 5. 使用自己的个性域名作为账号 这样看起来比较酷。但也仅仅是比较酷而已。 6. 免翻墙 随着 fediverse 逐渐进入某国审查机构的视野,那些几百甚至几十人的实例,未来被封杀的可能性也会急剧增加。相对来说,用个人域名在海外服务器搭建的,个人使用的实例,短期内被封的可能性,还不是很大。自建站的用户不必翻墙,就可以直接通过自己的实例,访问到其它被封实例的内容。——当然,翻墙属于必备技能,所以这也算不上是多大的优点。 自建实例的缺点…

  • Fediverse: 你的站长都能看到什么?

    当你注册成为某个 fediverse 实例(mastodon pleroma misskey …)的用户时,你所在的实例,可能是几十万用户的大站,站长离你遥不可及;也可能是几十个甚至几个用户的小站,站长和你关系密切,每天一起聊天玩耍。但无论是哪种,你的站长,都能看到和你有关的哪些内容呢?我觉得这是你应该知道的。 首先,所有人都能看到的: 然后,是你能看到,其它用户看不到,而且你可能也不希望别人看到的: 最后,是你作为普通用户也看不到,但你的站长能看到的: 还有哪些?欢迎大家补充~ P.S.

  • 关于 RSS 订阅器,以及推荐自建 tt-rss

    RSS 订阅器,大致上分三种: 现有的网络服务,如当年的 Google Reader 单机版的订阅器 自建网络服务 从 Google Reader 停止服务,到现在快 10 年了。之后的所谓「老牌」订阅服务,如 feedly、inoreader,都限制了免费用户的订阅数量,不能超过 100 或 150 条。倒不是非要坚持用免费的,只是: 首先,这些服务并没有如当年大家期望的,在用户与用户之间,发展出推荐阅读之类的社区功能; 其次,如果有一天,它们也像 Google Reader 那样倒闭了,在这些订阅器里镜像的 blog 文章也全都消失,才是最大的损失。 单机版的订阅软件有很多,一些邮件客户端甚至手机浏览器,也有这方面功能。所以问题还是 抓取的文章能不能长久保存?哪怕重新装机,原来的文章也还在?有很多免安装的 RSS 订阅器,但其中大部分都是十几年前 blog 时代的作品,早已停止更新,对新的操作系统以及新的 rss atom 协议,支持都不好。Windows 下我在用 QuiteRSS,感觉不错。免安装,数据保存在 sqlite 文件里,似乎也有 Mac 版本。 以及,这类本地订阅器,有没有可能,通过网盘同步数据,从而实现多台机器或手机同时使用?我还没有见过这方面靠谱的方案。 自建 RSS 服务里,很多人推荐界面简洁的 Miniflux,我以前试过,感觉还行,但似乎有因为过于简化而不适的地方,忘了具体是什么了。/ 最终选择了 tt-rss (Tiny Tiny RSS),界面确实要比 Miniflux 臃肿一些,响应慢一些,但是它有一个非常亮眼的功能:你在 tt-rss 订阅器里,可以选择「发布」某些喜爱的文章,而这些发布出来的文章,是能够生成一个新的 RSS…

  • 关于 fediverse 的删除机制

    在当前的很多 fediverse 服务(mastodon、pleroma…)里,当 A 站的用户 a 被另一个实例(譬如:B 站)的用户关注时,他所发的嘟文,会在 B 站的服务器上储存一个副本,B 站的用户,通过访问这个副本,来阅读这条嘟文。当原本的嘟文被删除时,A 站会通知 B 站,删除相应的副本。但这个时候,这条嘟文未必像人们期待的那样,从 fediverse 上彻底消失。 假设存在如下情况: A 站的 a 用户 B 站的 b 用户,b 在关注 a C 站的 c 用户,c 在关注 b,但 C 站没有人关注 a a 发了一条公开嘟文,此时 b 可以看到这条嘟文,而 c 是看不到的。 b 转发了 a 的这条嘟文,此时 c 可以看到这条嘟文了。C 站的所有人,在查询 a 的时候,也都可以看到 a 的这条嘟文。 如果这个时候,a 再把这条嘟文删除,那么…

  • Mastodon 的「去中心化」所导致的……?

    论文研究表明,在 Mastodon 的去中心化网络里,用户之间的关联状况,其实比 twitter 更加高度集中。——但这种现象可能仅仅是因为 Mastodon 的机制设计问题,而并不应该归咎于「去中心化」。

  • 个人 VPS 上的服务安装(未完稿)

    这篇文章要讨论的是,如何在一台轻量级的 VPS 服务器上,基于自己的域名,同时安装如今各种流行,去中心化的网络服务: 个人博客:Wordpress ActivityPub 社交网络:Pleroma 或 Mastodon Matrix 聊天服务器:Synapse 或 Dendrite 个人网盘和在线办公套件:Nextcloud 然而,原本我一直在用 Linode 每月 5 美元,1C1G(1个CPU,1G内存)的服务器,打算安装的服务,也是基于这个级别的配置。然而弄到一半,突然被乔乔推荐了 Contabo 每月 5 欧元(要一次缴一年,不然有额外费用),4C8G 的服务器。虽然实际速度和网速,并不比 Linode 或 Vultr 好多少,但 8G 内存,选择各种服务的余地可就大多了。所以我整理出来的 1C1G 方案,自己并没有在用……原因我后面会说。 之前也犹豫,既然同样价钱都能 4C8G 了,那为啥还要写 1C1G 的方案?很快大家的配置也都会变高级了吧?但想想也未必,还是整理一下吧。 这篇文章讨论如何在轻量级服务器里塞进各种服务。——前提是这台服务器,假定只会有你一个人在用,最多加上你的闺蜜和男朋友。我并不知道几十个用户的 Mastodon 会有怎样的开销,至少在 1C1G 上这样做非常不靠谱。我所面向的,只是两三个好友自用的私人 VPS 而已。 这篇文章不是写给小白用户的。整个系统还是很复杂的。指望有一个教程,或者一个 docker-compose,能够让完全不懂 Linux 的用户,通过逐行复制命令,就能搞定所有的安装,目前还不现实。你至少要有在完全理解的基础上,用 LNMP 搭出 Wordpress 的能力。所以我也没必要把用过的每一条命令,都放在这篇文章里。——对于每一项服务,我会尽量给出相关靠谱攻略的链接,并且讨论一下里面的坑,和我个人所作的选择。 所以,其实这篇文章本质上就一句话: 是的,这些服务都可以装到一台机器上,不冲突。我弄过了,没问题,你们放心慢慢弄吧。 安装环境:一台 1C1G(或更好的) VPS 服务器,一个你自己的域名。

  • hello fediverse

    当我说 mastodon 难部署的时候,并不是作为一个建站小白说的。用自己的域名和大约每月5刀的服务器,我可以很轻松地搭建一个 mastodon 实例,用 docker 部署则更简单。——如果我对这个服务器没其它需求的话。 问题在于,对于大多数有建站情操和能力的人来说,建站优先级最高的未必是 mastodon,而是 wordpress 啊。把这两套系统同时塞进一个服务器,理论上是能做到的,但其麻烦程度让我实在没欲望去折腾。而为这两个系统买两个服务器,又总觉得很耻辱,和小白们每个服务交一份钱有啥区别…… 另一方面,尽管 mastodon 存在单用户模式,但真的建了实例只有自己一个人用的话,整套 mastodon 程序功能其实是很冗余的。所以对于个人用户而言,要做的可能并不是自建 mastodon 实例,而是寻找其它可以通过 ActivityPub 协议,和 Fediverse 用户进行沟通的程序。——目前似乎还没有太理想的。 write.as 正在做,我去试了试, 用户可以在 Fediverse 上 follow @[email protected] ;wordpress 也有类似的插件(等我先给自己域名申请 SSL ……)。但似乎都只能让 Fediverse 用户「订阅」这个站点,而不能反向和他们回复沟通。 所以还要继续关注 Fediverse 的新进展。据说 nextcloud 已经可以支持 ActivityPub 和 mastodon 沟通了。——网上的免费服务器没这个功能,需要自建 nextcloud 然后挂载相关服务,哪位愿意折腾试试靠谱不?但似乎 nextcloud 还不支持发布 blog??(怒吼:为什么,明明这个更容易啊)。不然 nextcloud 就已经很一站化了。

  • 笔记软件 Joplin

    用 Joplin 当作笔记软件很久了,个么正式安利一下。 我用笔记软件基本是为了个人写作、记录想法、以及同步查看一些文本资料。对于富文本编辑、Web Clip、以及团队协作,完全没需求。最初用的是 Evernote,但自从印象笔记分裂那会儿,就基本放弃了。Onenote 这种连 Ctrl a 都不能用的笔记更是看了一眼就放弃。后来用了很长时间的 Simplenote,——这个确实不错,即使现在我也会向人推荐。只是如今对于把数据交给服务商而自己无法控制备份,越来越难以容忍,而且 Joplin 的一些特性确实感觉更舒服一些。 Joplin 的优点: 不依赖于单一的服务器。笔记存储方式包括本机存储(不同步、或者手动用网盘同步),和多种网盘同步:Dropbox、Onedrive、Nextcloud、WebDAV(如墙内的坚果云)。而且同步时是从笔记软件直接访问网盘,不需要专门在电脑上安装网盘的客户端。 各个平台的客户端种类完备:Win、Mac、Linux、Android、iphone…… 支持笔记文本加密,防止通过直接访问网盘或本地文件夹看到笔记内容。 支持 markdown,软件界面还算友好,关键是可以调用其它外置编辑器来写作。也有 Web Clip 插件以及支持贴图,但我没用过这方面功能。 支持多个笔记本,笔记本之间支持多层树结构。方便管理,支持 tag。 开源。 缺点: 缺少一个单纯通过 web 浏览器访问笔记的方式。如果没有任何电脑或手机客户端的话,很难通过直接访问网盘,来查看笔记。网盘上的笔记文件通常是加密的,即使不加密,每条笔记的文件名也是编码过的,并不能直观地从文件夹里找到文件。我问过开发组,能不能改成用可识别文本,直观显示文件名,被回复无法做到;虽然我觉得技术上应该是可行的。因为这个缘故,我到现在还同时在用着 Simplenote,以便偶尔在公用电脑上处理一些笔记。 Update:经推友推荐,发现已经有人做了通过浏览器访问 Joplin 笔记的服务器程序,基于 Python 开发,也已经有 Docker 的部署版本。但对一般用户而言,自建这种 web 服务器的门槛还是太高了。

  • 天真的程序员?

    关于比尔盖茨的全球疫苗计划,指责的声音一直都有。除去那些太脑残的,譬如盖茨想要「净化人类」的阴谋论不提。从学术角度对疫苗计划的运作过程、以及计划本身的批判也有很多,其角度包括: 为了推广疫苗计划,疫苗的有效性是否被夸大,以及副作用被忽视。 疫苗厂商的利益链条。 用贫困国家的人民来试药,从而为发达国家提供更完善的疫苗。 以及从更学术的角度分析这种疫苗观背后的「优生劣汰」思路是否合理,是否把白人关于「健康」的观念强加给不同的文化…… 其中大部分问题确实存在,是资本主义在项目运作中,展现出的血腥丑恶一面。但要是根据这个认为比尔盖茨在这个过程中有白人至上的统治阴谋,我觉得还是想多了。 我想说的是另外一个事情。相对于其它群体,程序员(我说的不是社畜),是不是对构建一个自我想象中的美好世界,有着更多的天真和热情?某种意义上,程序员每日接触的算法、架构,是和真实世界脱节的,而通过设计这种架构中而得到的正反馈和成就感,会在性格上造成什么样的影响? 因为我也想过,如果我在完全不影响生计的情况下,还有几亿闲钱,会去做什么。很可能我会去雇人设计一个开放式的互联网社交体系,去替代当前这个从 Facebook 到 Wechat 都无比糟糕的社交生态圈。设计出来的东西可能未必有人会用,但至少要让想用的人,有那么一套完备的方案。过去十几年资本对 Facebook 的追捧,导致互联网由开放转向封闭,是我一直耿耿于怀的事。互联网本来可以有另一种不一样的未来,一种更符合程序员对这个世界的期望的未来。对这种未来的完善,因为资本的转向而被中止。很多人「解释」说,这种状况是必然发生的,因为人类就是愿意像 Facebook 那样,把自己的现实社交方式复刻到互联网上。但我并不能确定,这个过程是真的必然如此,还是只是对偶然性事件的事后解释。我只是觉得自己的这种「天真」,和比尔盖茨的疫苗世界,其实有点像。

  • Master Go

    所以关于围棋彻底输给AI这件事,我感伤的点在哪里呢? 这本来就是意料之中的事。相对于「围棋爱好者」的身份,我也毫无疑问更贴近于「科学教徒/程序猿」。在AlphaGo的对局中,也出现了很多人类千年以来未曾想到的下棋思路,通过分析这些思路,就像很多文章总结的,人类和AI一起迎来围棋的新世界。 这个新世界的问题在于,这些新的,更牛逼的招数,各种数据搜集深度学习的算法,和人类的思路渐渐是两回事了。没有人,也没有一台计算机(未来或许有),能够用一名棋手能够理解的方式,讲述它为什么选择这样落子。虽然AlphaGo的算法也是由人类设计,但是,就好像面对奥数题,先用微积分得出答案,再根据答案揣度出一个小学生能理解的思路,又或者通过证明费马大定理和谷山志村猜想等价来证明前者(这个例子我似乎不应该这么用…)一样,在这里,我们所期待的,我们想要欣赏到的,解决问题时迸出的思维火花,让位给另一种更有效的思维方式。 我们日常生活里,能够通过正常人类的理性思维,分析抉择的机会已经不多了。那些我们思考着的,往往让位给资本,让位给专制甚至民主,让位给不成熟的感情(好吧这些是吐槽),让位给大数据,让位给学习算法……当然「让位」本身也是一种理性的选择,因为它们确实更有效,但在这个过程中,我们引以为荣引以为乐的思维体操,似乎渐渐地变成第二等的东西。无疑AI可以帮助我们释放自己,去更多的领域发展,但如果新的领域里更有效的仍然是AI,如果最终我们周围的事物99%都是由AI的逻辑决定,只剩下一些艺术神马的让人类互相自慰的东西,即使这一切都还在人类掌控之中,那时会是种怎样的寂寞? 嗯,就yy到这里。其实我也不确定围棋所代表的「正常人类思维」究竟指什么,以及是不是其实放弃了也无所谓。但这种把什么都能写成寂寞的感觉真好玩。 —————- 8月在德里,和几个印度人聊天,对方也是天天泡网络的现代同龄白领,天文地理历史政治娱乐宗教什么都能聊起来,而且确实没什么种族信仰之间的隔阂,聊的很开心。 后来我问他们:「你们平时棋牌娱乐是什么?」 「就是国际象棋。」 「哦……」 「国际象棋是印度发明的哟!」 「好吧。(确实如此)」 「中国呢?」 「(装逼)听说过围棋么?」 「没。」 给他们看图片。 「黑白棋?」 「不是……」介绍规则,「AlphaGo你们总该听过吧?应该是半年前的特大新闻了,人工智能blahblah……」 「没有哦。」 「好吧……」 所以也不用想太多。 —————- 顺便推荐安安猪的《波士顿围棋故事》六篇,讲述在波士顿下围棋的老外们,很好玩。