分类目录归档:技术

随想:XP时代的智能家居系统

之前在研究智能家居,发现在Zigbee之前,还有一种从2000年流行的物联网协议叫做Z-Wave。 我思考在千禧年代,是不是在Windows XP时代也有智能家居的软件呢?或者准确来说,应该叫家庭电气自动化系统。以前在上学的时候也听说过比尔盖茨的别墅——「世外桃源」的概念文章,由电脑控制的别墅园区。现在它有了一个新的名字——物联网与智能家居。

在2005年后期微软发布的Windows XP Media Center 媒体中心系统,本身作为家用电脑就非常适合用作智能化服务器,而其演示视频也有相似的构想、Media Center本身亦支持各种附加组件用于控制API(相当于现在的智能电视或Apple TV),以及包括后续HomeOS的概念。

另一个值得讨论的是Windows 8/8.1以及早期的Windows 10,它们的Metro设计语言真的相当契合智能家居系统。不过很可惜的是生不逢时、没有赶上智能家居系统发展土壤,当然这个细究起来就是社会问题了,在此不表。(土壤怎么来的你别管)

因此,仅仅是讨论操作系统的支持程度的话,其实只能算得上是Home Assistant或者OpenHAB这类聚合器、以及HomeKit、Matter这样的「平台与规范」的概念。对于较为底层的电气协议在那个年代的发展实际上是参差不齐的,因为有古老的从工业PLC系统下放的RS232楼宇控制私有协议、也有上述提到的Z-Wave通用协议,以及X10协议等等,所以具体的协议和支持的底层主控软件是更加重要的选择。(当然即便是现在的Zigbee也做不到完全兼容,但总归是个亮点)

为了能支持众多供应商制造的产品,或者往往建立一套类似行业软件的解决方案与生态壁垒,所以本质上它的价格并不便宜,放在如今来看几乎也是奢侈品了,而且是需要学习成本的奢侈品。当时无论是软件还是硬件都没有当今的华强北时代做得廉价与小型化(实际便宜重点),远没有涂鸦或者米家那么容易入门。

顺藤摸瓜,根据协议的支持程度,我发现了叫做HomeSeer的软件,这即是XP时期相当流行的“智能家居”解决方案,并且也还实现了早期的语音控制与智能手机/PDA、以及触控屏界面设计的配套软件。不过,我没有找到太多的屏幕截图,仅仅能从包装图窥见一斑。

XP-HA_HS2.jpg

这是他们的触控屏设计软件,乍一看像是Flash小游戏或者是WinCE车机的风格。这非常符合千禧年代的民间科技审美。

XP-HA_HSTouch1.jpg

近代版本引入了扁平化设计语言,以及2016年的Pixel手机。 不过这还是更像WinCE或Windows Mobile的PDA的感觉……

XP-HA_HSTouch2.jpg

他们现在仍然在开发智能家居系统,最新的版本是HS4,并且与时俱进也开始支持树莓派这样的ARM平台。根据这个宣传图来看,已经有往Home Assistant的样式靠拢的形式。

XP-HA_HS4.jpg

基于X10协议的ActiveHome Pro是另一个更加流行的家庭电气自动化软件,界面设计具有Windows XP的原生类审美风格,类似于赛门铁克PCAnywhere或者早期的Acronis True Image等各种工具软件。

XP-HA_ActiveHome Pro Test.jpg

在2000年代末期还流行着MisterHouse这样的Web端软件,它是由Perl编写的,可以运行在Web网页服务器上。这是Home Assistant最接近的雏形之一。

XP-HA_MisterHouse.jpg

后来的软件版本也更新了Bootstrap时期的美学的UI界面设计,极具Mac和GitHub的极客时代的视觉印象。

XP-HA_MisterHouse_Bootstrap.jpg

番外

我此外还构想了仓管系统与厨房电脑的设计。 它可以是一台自带摄像头的平板电脑,也可以是台式机,可以将包裹或冰箱里的食品以某种程度录入到仓管系统,然后对使用期限实施数据化监控(防止过期),或者检测小零件的库存情况(例如螺丝、积木或手工制品的漆面、模玩零件)

仓管系统可以是Docker运行的Home Server软件,也可以是一个Obsidian/Excel表格,然后调用Tasks.org或其他自动化系统建立提醒。

装在厨房的电脑需要特制的便宜键盘与Dock,搭配Hi-Fi音响系统可以使用Foobar2000或WinAMP播放经典MP3音频,或串流来自Navidrome/Jellyfin/Subsonic Server上的服务器音乐;它亦是MPD播放端、DLNA渲染播放器,可以播放投送的音乐MV,甚至利用ShanoCast 播放一些来自主PC投送的Web视频平台的音乐(例如B站)。

OpenToonz设置Angle图形引擎启动程序

最近在研究制作动画,了解到吉卜力工作室使用的OpenToonz动画软件。但是我的Windows电脑不知为何打不开,可能是显卡驱动的问题(因为Krita也打不开)。总之看到Crash日志发现是N卡的OpenGL渲染器不支持?
所以去任务管理器禁用掉N卡的驱动后反而能打开了、在另一台机器的RDP也可以打开。
而且在日志下方除了OpenGL渲染器还有一项Angle渲染器,抛砖引玉,试着寻找有没有什么变通的办法能调用Angle。后来也在GitHub的issue上,我发现了来自贡献者的方案详解:
https://github.com/opentoonz/opentoonz/issues/6630#issuecomment-3922104018

  1. 右键单击桌面上的 OpenToonz 快捷方式,然后选择“属性”。
  2. 在“快捷方式”选项卡中,找到“目标”字段。它应该显示:
    "C:\Program Files\OpenToonz\OpenToonz.exe"
  3. 将该文本替换为以下命令(请完全复制并粘贴):
    cmd.exe /c "set QT_OPENGL=angle && start "" "C:\Program Files\OpenToonz\OpenToonz.exe""
  4. 在同一窗口中,找到“运行”下拉菜单,并将其从“普通窗口”更改为“最小化”。(这样可以确保启动应用程序时黑色命令窗口保持隐藏状态)。
  5. 点击“应用”和“确定”。

09-23 回复:仅用手机的人们要如何参与到博客写作里呢?

Phoneblogging

仅用手机的人们要如何参与到博客写作里呢?

介于我的博客是静态博客,需要构建很多东西,所以我做不到仅靠手机写完文章、在手机上构建且部署。

不过我尝试过在手机上写过东西:

  • 先在 Google Keeps 上写,写完后在电脑看同步过来的内容,再复制粘贴进行完善
  • 后来我觉得 Google Keeps 上写跟用别的带同步功能的备忘录软件差不多,再加上我开始接触 Fediverse 所以我改成在微博客上写大致的想法,再在电脑上完善
  • 我尝试过用 GitJournal,甚至想要去开发一款自己用以写 Hexo 博客文章的 android 软件,不过这些都不咋搭我的工作流
  • 我在 Termux 上安装了 Emacs,并 Syncthing 同步了博客文章。虽然写作习惯差不多,不过写起来就是有些怪…… 它也没法构建和部署
  • 学校的博客平台是 WordPress,我可以通过 web 在上面写文章并发布

顺带说一下引用的这个博客文章的最底部有个评论系统。它使用了 IndieAuth,也是我第一次知道还能这样「登录」并评论。或许我应该借鉴下……

在手机上撰写博客的问题无非是编辑器体验与基建系统,Termux自然是一种不错的方案,但是,最好抱着像学习x68000或DOS-BASIC的心态去学。对于基于GUI环境下成长的新生代学习,CLI逻辑具有挑战性。对于更多元化的多媒体附件插入,便捷程度完全取决于文件管理系统的设计——WordPress本应基于人性化的GUI却无比复杂,而SSG可以通过联动RClone等挂载方式创建Inbox制度,将媒体文件正确地、有条理地引用。

Obsidian对于大多数人都够用了,但是对于最终发布,还是将博客当成一种CD-R,随时全盘覆写。博客SSG或CMS不真正管理版本控制,那本应是Writer该做的事情。

随想:有电就能用的NAS个人服务器

在正在开发的混乱不堪的土地上建立数字帝国是一件极其挑战的事情。
正如同工地上的帐篷,我需要一种临时提供服务的解决方案……我看向了那个性能恐怖但体验欠佳的Latitude(i7-8650U 4C8T 16GB,这已经是全村的希望了),在构想一种流动式NAS服务器。

但是PVE也好、TrueNAS、群晖、OMV、飞牛也罢,这些本质上都是Server级别的基建系统。但是全都没有真正意义上地支持笔记本电脑,调度和电池系统都变得不可用。换句话说,纵观整个PC机的历史,パソコン与鲭虽然同源,却因为某种人为的商业策略产生了生殖隔离(一大程度是Windows系的影响,另一说是SLA合同为了降低奇怪硬件的排查效率干扰和培训成本分流)致使市面上极其难见基于笔记本平台构建的服务器产品。即便是在XP MCE和Vista世代,微软有能把ThinkPad T42玩出花的解决方案展示——将笔记本作为Media Center的媒体库。但是这依然算不上真正的Server,并且也不推荐你在上面安装WHS2007(也就是最低阶的WinServer 2003)不过那个年代,家用对Server的依赖程度不高,即便是别墅。

所以消费级别的Windows显然足以大多数家用场合使用了。
去年这个时候我开始研究MPD和DietPi这样的单片机系统作为数字音频播放器,也就是数播/网播。本质上来说,是解耦「提供服务」与「服务器」的关系:究竟什么时候真的要用上类似小型机架构的基建服务器,还是像Windows 3.11 for Workgroups一样虽然有网络但人人平权的简单制度。

虽然在技术层面上,dnsmasq、SSO等中心制度的服务器管理技术与独立网卡的硬件系统仍旧有用,但是对于小型的场景来说,我希望它们简单化,不必像基建式小型机一样依赖各种服务器技术和硬件。
至少先从干掉RJ45开始。
结合实际上的应用场景,在拖地大扫除的时候,在我的区位规划中,落地电视和床头柜是唯二几乎稳定不动且不受集权管制的区域(类似于藩属);或者像房车、出门在外这种场景无法也不打算部署整套Homelab。这些需求很特殊并且经济效益是不如中央服务器搭建内网穿透。但我开始恐慌哇塞秘境的存在。
事实上,大概几年前我就曾用一台Windows平板作为下载机,因为寨板的键盘实际难用,它也一定程度上承担了流动式服务器的功用。随用随关,没电了也没关系。

总而言之,我研究出来各种应用需求对网线与在线状态的依赖程度,以及如何解耦:

  • 固定:Home Assistant自动化系统是基建性质,必须部署在固定设备保持24小时开机。除非使用Zigbee2MQTT网关将控制与管理解耦。
  • 流动:简单的文件共享、媒体库不一定需要使用真正的阵列和存储池系统,是否固定24小时开启取决于对接的应用需求。
  • 固定:但iSCSI、VHD以及NVR存储后端还是应该24小时开机。
  • 流动:音频播放器本身是可以轻易地移植的系统,不听了随时可以关闭。
  • 固定:BitTorrent下载需要稳定的存储池和宽带网络接入支撑,也尽可能24小时开启。
  • 流动:RSS订阅器对固定设施的依赖程度很低,随缘。
  • 固定:邮件服务器,即便是内网的通知系统依然是同理的,必须24小时开机。
  • 流动:Minecraft Server服务器只要不是满人大服,或者只是分担主力机性能,那么也不是一个需要长期开机的需求。
  • 流动:Web Server LNMP,实际上依然是取决于需求,但本地WordPress开发也并不是那么需求长期开机。
  • 固定:虚拟桌面VDI,考虑到调度问题,尽可能使用真正的虚拟化平台。

笔记本的电池也是一个不错的UPS,虽然很多人说电池也有失效风险。

但我个人觉得健康的电池带来的优势作为有头服务器依然非常明显,我此时还想到一个用ThinkPad X230T/富士通T726搭建Drawpile电子画板的方案。还可以运行简单的WebView Kiosk浏览器来操作Home Assistant与Mopidy的Web UI。这个灵感源于Unraid也提供了一种有头启动打开本机管理器的引导选项。
上述的想法也正是考虑到「如果服务器没电了怎么办」的情况。这实际上已经脱离当今随Xeon推出抗衡小型机基建架构的服务器思维,转而类似90年代的网络平权的运行模式。

操作系统也变得不重要。我之前有看到过一篇文章是基于Fedora Core OS构建的简易NAS系统。当然还有Perfect Media Server这样的教程书体系。我自己也在尝试过将DietPi装进SD卡中运行,上到Latitude的8650U、下到Venue 8 Pro的Z8550,如果它能运行在Ventoy上那么可移植性会进一步增加。

虽然我不用Mac,但是根据这种应用式解耦,在一台Mac Mini或Macbook上运行也并不是难点。

选择何种的文件系统与存储池管理方式,也是一个具有争议的问题。

事已至此,先用D525或NTFS硬盘柜顶着吧,大多数人应该会这样想。

随想:基于USB启动盘启动SD卡上的LINUX系统

在笔记本电脑上如果不想动内置硬盘还要用本机Linux系统,那么除了直接安装到USB存储设备(U盘、移动固态)之外,SD卡槽(包括MicroSD/TF)同样是一个不错的选择。但是除了像戴尔或一些山寨机会用USB协议的读卡器,绝大多数的笔记本SD读卡器使用的是Realtek的PCIe协议,或者即便是USB也没有提供启动项。
但大多数还是PCIe的读卡器,不给提供引导启动。尤其是新式ThinkPad和惠普的笔记本。一些平板仅有一个Type C的接口,也不方便随时挂移动硬盘。

以前折腾黑苹果(即Hackintosh)的时候用过Clover和OpenCore引导盘,当然还有rEFInd用来美化。这些三方引导器除了装黑苹果之外,也可以给古早老电脑注入NVMe启动的方式。黑群晖(Xpenlogy)的引导盘也是类似的原理,无论是黑群晖还是黑苹果。引导盘在启动之后基本上就可以拔下来,早期不愿意折腾内置硬盘EFI分区或者容易被Windows Update搞炸的玩家、以及想方便备份管理kext环境的,也有很多用U盘当启动盘的实际需求。这其实很合理。

某种程度上可以理解为假面骑士W的那个地球驱动器,插入不同的记忆体(Cyclone的系统盘+Joker的启动盘)就可以改变配置文件。但按照这个逻辑……其实更像Fang+Joker啊。
(其实DOS时期的Windows多配置也是这么干的,只是存在内置硬盘里)

那么按照这个思路可以用酷豆那种做一个启动钥匙,随时挂在钥匙串上。虽然这比喻跟安全启动或其他加密技术无关,不过似乎的确可以搭配YUBICO那样的安全密钥使用。

如果再进一步,还可以运行在RAMDISK里,也就是相当于WinPE或游戏机的逻辑:系统盘是不可变的固件,本质上是游戏卡带;再再进一步,甚至可以把系统盘分离出来,直接装在像Ventoy这样的镜像里,就像光驱的游戏机读盘。而/home等数据区存储在SD卡里。就像早年的PDA一样。
似乎有些企业级移动瘦客户机也是这样的架构,没有真正意义上的内置硬盘。
理论上内置硬盘直接换成傲腾M10 16G给SD卡做缓存,但对于精简置备的Linux发行版没有实际意义,只是徒增功耗。

用常识想想傲腾M10装笔记本里当缓存只能是整活。我觉得这个前提可能是忽然脑袋一冲买了个准系统的ThinkPad但是买不起硬盘才这么干……或者是像我一样,一台16GB内存的i7级Latitude拆了PM981,然后塞一块傲腾当内存充数,实际荒诞!

OpenTabletDriver开源驱动拯救新帝数位屏尸体

前段时间不是搞了一台新帝DTK-2100也就是21UX Gen2嘛,可惜液晶部分是坏的。
不过好在笔触的数位板功能没有坏,理论上就是一台超大号数位板。
本质上来说,官方的驱动也是可以把整个数位屏当成数位板使用的,只是不支持调节输入区域(为了和影拓数位板作出区分)。另外DTK-2100的驱动真的是太老了,虽然并不是不能用。

然后隔了两个月弄了一台IPS的方屏打算做kiosk用,想着怎么把这个数位屏当作Home Assistant的控制板(形态极其科幻且巨大,请脑补)。我将其放在一台打印机置物架上,然后用VESA支撑IPS显示器。
因为实际上遮挡了一部分空间,存在顶部的盲区。我设想它应该运行一个专门的界面,可以用Rainmeter做,这个盲区就用来显示类似侧边栏的工具,但是在顶部。可以参考Windows Longhorn的一些概念图。如果用原装驱动的话,就是这样了。

后来发现了OpenTabletDriver这个用来使用国产数位板的开源驱动,
这个驱动本身在音游玩家和Linux社区的流行度就很高,有丰富的插件生态和高机能支持。因为是直接和数位板硬件通信,所以延迟可以做得很低。
除了国产/台湾系的数位板厂商(在数位板界两岸一家亲,本质同源,以下统称国产),也支持Wacom本家的数位板和屏,包括这台上古的21UX。不过OTD似乎不能和其他数位板驱动同时使用(存疑),建议卸载所有的数位板驱动后再去使用。

OTD驱动最大的特点是可以调节数位屏的输入区域,这样就可以把这个超大号数位板缩小起来用,也可以搭配带鱼屏或者三屏的区域。(说起来超大号数位板PTK-1240占地面积比DTK-2100其实更大)

OTD本身除了相对/绝对鼠标的光标模式外(没有手势也不能滚动,类似于WindowsXP),还可以实现Windows Ink的协议,
但一些Windows Ink协议的实现是需要安装额外驱动的,国产数位板似乎也需要WinUSB(但我已经不用国产数位板了)有一个Windows Pointer是不需要安装驱动也可以用的,类似于各种笔触电脑的默认免驱效果。
试着用自带UWP截屏软件画Q娃,压感也是勉强可用的。

继续阅读OpenTabletDriver开源驱动拯救新帝数位屏尸体 →

分享网站:鸡骨头、鸡肋和鸡肉

鸡骨头、鸡肋和鸡肉

在研究虚拟桌面相关的技术(歧义注意:不是虚拟用户会话桌面环境),Win10的虚拟桌面一直算是比较鸡肋的。 于是按照这个关键词找到了这个网页:

https://lifegoo.pluskid.org/wiki/MyDesktop.html

设计很有意思,是早期语义化Web设计的风格。

不知这是怎么制作的,看源代码还是HTML4.0的。