机器文摘 第 066 期
长文
一个文本编辑器独立开发者的 9 年回顾
作者是一个全栈开发者,9 年来一直独立开发一款 Mac 系统下的文本编辑器。
文章里记录了他在开发和产品运营上的一些选择,以及为什么这么做。
Mac 系统下不乏优秀的文本编辑器,作者的产品为什么还能占有一席之地,并且持续获得用户的好评?
这主要源于作者对于细分市场的敏锐嗅觉,以及对于确立的产品定位极致的坚持(有很多产品做着做着就在用户的呼声里迷失自我)。
作者的很多观点都与业界公认的思想有所抵触,比如他坚持所有东西都是自己做(违背了:不要重新发明轮子)、坚持极简的界面和极少的功能、对性能的极致追求(业界普遍会为了研发周期缩短而牺牲性能,或者觉得硬件浪费无所谓)等等。
使用 A* 搜索算法给游戏做路径查找时的一些技巧
迪杰斯特拉(Dijkstra)算法是经典的最短路径搜索算法,它能保证你找到最短路径,但是如果在游戏中使用的话,对于资源的消耗有些多,尤其是之前的游戏主机性能羸弱的情况下。
最早的时候,像吃豆人那种游戏选择使用最直接的算法,也就是计算怪物和玩家的距离及角度,让怪物直接朝玩家奔去,遇到阻挡的墙壁就顺势滑行。
但后来的游戏的场景逐渐复杂,这种简单算法不能满足需求。
于是诞生了更好用的 A* search 算法。
这篇《A* 游戏寻路技巧》,介绍了这种算法在游戏中的应用。
作者本来是打算给一个复古 8 位主机 PPU466(一个用于教学的类似 PICO-8 的幻想主机平台) 编写图形游戏,在实现路径搜索时觉得有必要分享一下思路,记录整理成为了本文。
显示器旋转多少度最有利于开发?
显示器能够旋转 90° 竖起来,这个大家都知道。
而且,对于文字阅读、网页浏览等任务,竖起来的话明显空间利用率更高。
对于 Windows 系统来说,你能做的也就这么多了,要么横着,要么竖着。
不过,Linux 的自由度就很高了,可以使用一个叫做 xrandr 的小工具将显示内容旋转任意角度。
于是开头那个哥们就测试了很多角度,得出了 22° 是个合适的角度的结论。
但是实际使用中估计没有人会真这么做吧。
纯塑料3D打印的环境能量收集器
如何把让人讨厌的静电转换成人类赖以生存的能源,是从 2012 年摩擦纳米发电机(TENG)的发明才开始有了解决方案。
特点:因为几乎世上所有的材料都会摩擦升电,所以可以作为发电机材料的物品种类繁多,而且很多日常废弃物品都是可用的,比如纸,动物毛皮,废弃塑料等。简单的制作和多样的材料选择(几片塑料薄膜和金属片就可完成制作)让它成为绿色能源的一个热门选项。
原理:利用摩擦生电原理发明的发电机,其基本原理就是运动的带电物体(比如毛皮,塑料等)吸引电极和导线内的电子运动,产生电流。
用途:常用的电磁发电机,需要高频的有规律运动。TENG更加适合于低频率的无规则环境振动能量收集,例如海洋能,雨滴能,风能和人体运动。第 267 期提到的雨水发电板就是该发电机的一种。
文章作者用3D打印的方法,制作了纯塑料可随身携带的能量包,设计开源,让每个人都可以随心所欲的制造它。
资源
在线模拟自然声音的网站
asoftmurmur是一个可以在线播放自然声音的网站,可以根据自己的喜好调整雨声、雷声、鸟鸣、风声等声音的占比。
适合读书或自习当作背景播放。
网页桌面模拟
DaedalOS,又一个运行在网页里的桌面模拟环境。
模仿 Win10 的界面风格,具有开始菜单和资源管理器。
自带浏览器、文本编辑器、画图板等基础应用。
在 2024 年还想玩 Flash 游戏
Flashpoint,这个项目我记得推荐过一次。但值得再次细说。
对于痴迷 Flash 游戏的人来说,当下的环境无疑是让人失落的,因为 Flash 技术已经被淘汰,不再被主流浏览器和操作系统支持。
曾经好玩的 Flash 小游戏也没有合适的平台来玩了。
不过,还是有一群有情怀的人启动了一个项目。
Flashpoint,一个保存 Flash 小游戏的项目,提供了一个集成的运行环境,打包存储了超过 17 万个小游戏和动画。
可以去他们的官方网站下载,内置少量游戏的基本版文件包大概 1GB 左右,包含全部游戏的版本安装完成大概需要 1.48TB 的存储空间。
ps:我最近在这个项目上找到了二十年前玩过的一个解密游戏 Chasm ,村里的水停了,一个小鸭嘴兽一路上山修复水管的故事。
我找了很久这个游戏,靠着一点儿零星的关键词,终于找到了,花了一个周末的时间才打通。
将卧室电脑打造成游戏机
bazzite,一个可以将你的卧室电脑打造成 Steam Deck 操作体验的开源系统。
Steam Deck 是一个游戏掌机,其自带系统(基于 Linux 的魔改版本)专为游戏而生,操作体验进行了特别优化。
如果你也想让你的家用电脑获得这样的体验,可以尝试一下这个开源系统,不管是放在卧室还是客厅,都可以做到即开及打。
主要特性:
- 预装 Nvidia 显卡驱动;
- H264 编码硬解;
- 预装 Xbox 手柄驱动;
- 内置录屏解决方案;
- 优良的 CPU 调度,平衡功耗和性能;
- 预装安卓模拟器,可玩手机游戏;
观点
“索引”思维
就像“分层” layer、“缓存” cache 这种通用思维一样,“索引” index 也是一种通用思维;
“缓存”在各种系统中起到了减少数据搬运而提升速度的作用,而“索引”则在各种场景中起到聚合信息、以少量信息检索大量信息的作用;
这种通用思维不仅仅局限于信息化软件本身,广义上来说,物理世界的任何“系统”都是可以使用这种通用思维的。
举例来说,谷歌搜索引擎建立了互联网网页内容的索引、门户网站和导航网站建立了分类信息的索引、淘宝商城建立了可交易商品的索引、维基百科建立了知识概念的索引,这些索引极大地满足了人们对信息获取的需求,所以取得了成功。
如果想提供自己的产品或服务,除了能直接提升生产力的工具类之外,还有一种可能,就是利用“索引”思维去提供整理好的信息。
目前已经有很多人在做类似的事情了,比如影视解说、读书解说、分类资源汇总。
写到这里我想到一个段子:有三家开的比较近的商店竞争,第一家招牌叫“最好的商品”,第二家招牌叫“最实惠的商品”,第三家把店开在他两家的中间,招牌叫“入口”。
订阅
这里会隔三岔五分享我看到的有趣的内容(不一定是最新的,但是有意思),因为大部分都与机器有关,所以先叫它“机器文摘”吧。
Github仓库地址:https://github.com/sbabybird/MachineDigest
喜欢的朋友可以订阅关注:
- 通过微信公众号“从容地狂奔”订阅。
- 通过竹白进行邮件、微信小程序订阅。