Firenvim – 将浏览器变成 Neovim 客户端
https://github.com/glacambre/firenvim
Firenvim 是一个浏览器扩展,可以让你在浏览器中使用 Neovim 编辑文本区域。支持 Firefox 和 Chrome 浏览器,其他基于 Chromium 的浏览器(如 Brave、Vivaldi、Opera 和 Arc)也应该可以使用,但未经过官方测试。。
安装 Firenvim 后,只需点击任何文本区域,它就会立即被 Firenvim 替换。你可以像在 Neovim 中一样编辑文本,保存内容只需在 Neovim 中输入 :w,关闭 Firenvim 覆盖并返回文本区域则使用 :q。如果选择的元素没有显示 Firenvim 框架,尝试按下 Ctrl + Shift + F。
Firenvim 提供了许多配置选项,可以在 init.lua 中设置。例如,你可以配置 Firenvim 自动接管哪些网站的文本区域,设置命令行的显示方式,以及如何处理特殊字符等。此外,还可以通过 UIEnter 和 UILeave 自动命令检测 Firenvim 是否连接到 Neovim 实例。
评论(如有):
- 网友 mastermedo:我尝试过几次 Firenvim,但遇到了与其他扩展(如 Vimium)的快捷键冲突问题,以及在大多数文本提示框中 Firenvim 占用空间太小的问题。虽然理论上可以复制粘贴 Neovim 配置,但适用于终端的配置并不一定适合浏览器中的小文本区域。
- 网友 MantisShrimp90:对于需要在应用生态系统内编辑代码的情况,Firenvim 非常有用。例如,ServiceNow 强制使用其糟糕的专有编辑器,而 Firenvim 可以提供更好的编辑体验。不过,需要谨慎配置哪些网站启用 Firenvim,以免在每个小文本提示框中都激活它。
- 网友 jeroenhd:尽管 Firenvim 很强大,但其安全风险让我望而却步。理想情况下,有人可以将 Neovim 编译成 WebAssembly,这样就可以在不与任何本地二进制文件交互的情况下使用,虽然会牺牲一些性能和功能。
- 网友 yonrg:Tridactyl 也有类似的功能,可以将编辑面板内容拆分到真实的 Vim 或 gVim 编辑器中。我很少使用这个功能,通常只在需要多行注释时才会用到。对于简单的文本输入,我还是更喜欢留在浏览器界面中。
- 网友 eviks:GhostText 是一个类似的扩展,使用外部文本编辑器,特别适合短消息。即使浏览器或扩展崩溃,也不会丢失宝贵的数据。对于较长的文本消息,也不受制于通常较小的输入文本框。
Blackmagic 推出 3D 摄像机 URSA Cine Immersive,专为 Vision Pro 设计
https://www.macrumors.com/2024/12/16/black-magic-3d-vision-pro-camera/
Blackmagic 今日宣布其 URSA Cine Immersive 摄像机现已开放预购,预计将于 2025 年第一季度末开始交付。这款摄像机是全球首款专为 Apple Vision Pro 设计的商业 3D 摄像系统,售价为 30,000 美元。
URSA Cine Immersive 摄像机配备了定制的立体 3D 镜头系统和双 8K 传感器,能够捕捉 180 度视野的 3D 视频,并支持空间音频,最高帧率为 90fps。每只眼睛的分辨率高达 8,160 x 7,200,动态范围达到 16 挡,确保每一帧的细节和色彩准确性。摄像机还配备了两个 5 英寸 HDR 触摸屏和一个外部颜色状态 LCD 屏幕,提供多种连接选项,包括 12G-SDI 输出、10G 以太网、USB-C 和 XLR 音频端口,以及 8 针 Lemo 连接器用于供电。
内置的 8TB Blackmagic Media Module 可存储约两小时的 8K 立体视频,支持 Blackmagic RAW 格式,并且支持 Cloud Store 快速媒体上传和同步。
评论(如有):
- 网友 LaSombra:黑魔官网的公告中甚至没有提到 Vision Pro,只提到了一次 Apple。
- 网友 paxys:有多少电影制作人会花费 30,000 美元拍摄仅适用于单个平台的视频,尤其是这个平台几乎没人用?至少他们应该放弃专有格式,支持 Quest 和其他头显。
- 网友 oDot:我研究过实拍动漫,这款摄像机看起来真的很酷,特别是如果可以精细控制每个传感器,甚至更换镜头(无论是官方支持还是非官方支持)。动漫的优势在于逐帧绘制,因此可以在动作密集的场景中“更换”镜头。使用这款摄像机可以同时拍摄两种不同的设置,实现类似的效果。
- 网友 brabel:90 年代末有一部电影,讲述了一种神经设备可以记录大脑活动,以便后来的人通过设备重播这些体验。但这种体验变得像毒品一样让人上瘾,人们无法停止体验他人的虚拟经历。有人知道这部电影是什么吗?
- 网友 throwaway48476:他们卖出了多少 Vision Pro?还有多少人在使用?
- 网友 TheAceOfHearts:有没有人在专门为 Vision Pro 制作电影?虽然 Apple 可以赞助一些影片来充实他们的内容库,但对于创作者来说,潜在观众太少了,显得不太吸引人。不过,如果 Vision Pro 用户是你想要的目标受众,这可能是个不错的选择。这些用户可能会对专门为其平台制作的内容感兴趣并愿意购买。
- 网友 OliverGuy:8TB 存储两小时的 8K 立体视频,这对任何编辑来说都是一个巨大的工作流程挑战,即使按照今天的标准来看,这也是一个不小的数据量。
- 网友 ulfw:哈哈,这真是小众中的小众中的小众。这款摄像机的预期销量会有多少?两位数?个位数?
- 网友 freedomben:很酷!但我真心希望它不使用某种仅限 Apple 设备的专有格式。
东北大学的编程教育革命:系统化设计与团队合作
https://felleisen.org/matthias/Thoughts/Developing_Developers.html
东北大学计算机科学系在过去的 12 年里,开发了一种独特的编程教学方法,强调系统化和显式化的程序设计。这种方法不仅帮助学生更好地准备他们的第一份编程工作,还为他们未来的职业发展打下了坚实的基础。
传统编程课程的问题
传统的编程课程往往采用“尝试直到成功”的方法,教授学生模仿和实验。这种方法虽然对喜欢摆弄小玩意的学生有吸引力,但也让许多其他有潜力的学生望而却步。东北大学的课程则不同,它通过明确的设计规则和系统化的方法,帮助学生掌握编程的核心技能。
明确的设计规则
《How to Design Programs》是第一本系统地介绍如何构建程序的教材。书中详细介绍了结构化设计的方法,包括六个步骤:理解问题、选择数据表示、编写示例、定义函数签名、创建函数框架、编写测试。这种方法不仅适用于编程,还可以应用于其他领域的系统化问题解决。
课程设置
- Fundamentals I:使用教学语言引入系统化设计,学生从第一天起就开始配对编程,培养沟通和协作能力。
- Fundamentals II:使用 Java 教授如何在实际语言中应用设计原则,引入代码审查。
- Logic in Computer Science:教授逻辑推理,帮助学生理解程序的正确性。
- OOD:扩展项目规模,教授接口和协议的设计。
- Software Development:综合所有核心课程,让学生参与代码维护和团队合作。
学生反馈
- hahahacorn:东北大学的课程设计和原则非常出色。我在工作中很快成为导师,发现其他开发者缺乏系统化思考的能力。
- achenet:配对编程对我的编程能力提升很大,课程过程非常有趣。
- delusional:虽然早期的学习经历充满挑战,但正是这些经历让我成为了一个优秀的开发者。
小编锐评
东北大学的这套编程教育方法不仅注重技术技能的培养,还强调团队合作和沟通能力的重要性。这种方法或许可以为其他高校提供借鉴,帮助更多学生更好地适应未来的软件开发工作。
ISO 8583: 信用卡通信的语言
https://increase.com/articles/iso-8583-the-language-of-credit-cards
图片
ISO 8583 是信用卡交易的标准协议,用于实时通信。无论是你在 POS 设备上刷卡还是在线购物,最终都会生成一条 ISO 8583 消息,这条消息会在商户的收单处理器、卡网络和银行的发卡处理器之间传递。
基本结构
ISO 8583 消息包含三个主要部分:
- 消息类型指示符(Message Type Indicator, MTI):四位数字代码,表示消息类型,如授权请求(0100)、授权响应(0110)等。
- 位图(Bitmap):指示哪些字段存在。每个位对应一个字段,1 表示存在,0 表示不存在。
- 数据元素(Data Elements):实际的数据字段,包括卡片号、交易金额等。
复杂性与挑战
尽管 ISO 8583 是一个标准,但各卡网络(如 Visa、Mastercard、American Express)在实现细节上存在显著差异。例如,不同的网络可能使用不同的编码方式(ASCII、EBCDIC、BCD)和字段定义。这些差异使得实现一个通用的 ISO 8583 解析器变得非常复杂。
评论(如有):
- 网友 ekmartin:虽然称为标准,但实际实现中有很多细微差别,使得集成过程非常困难。特别是 Mastercard 的实现最为复杂。
- 网友 ocf:Visa 和 Mastercard 的实现并不完全标准化,各自发布了数千页的文档来覆盖标准字段的使用和专有数据的嵌入。大多数卡管理和发行平台都很好地抽象了这些差异。
- 网友 t0mas88:这种协议在当时是很常见的,类似于打包的 C 结构体。接收端需要注意动态字段长度的验证,防止读取超出消息范围或无限缓冲区分配。这些问题现在已经被很好地理解了。
- 网友 heywire:很多公司为了绕过 ISO 8583 的限制,会在 API 调用前后添加非 PCI 数据,以传递额外信息。虽然这种方法加快了市场进入速度,但也引入了许多新的故障模式。
小编锐评
ISO 8583 作为信用卡通信的核心协议,虽然历史悠久,但其复杂性和网络间的差异使得实现和维护变得相当困难。随着技术的发展,ISO 20022 等新标准的出现可能会逐步取代 ISO 8583,但这一过程需要时间和全球范围内的共同努力。对于开发者和支付行业的从业者来说,了解这些底层协议的运作原理仍然具有重要意义。
Postgres 作为向量数据库的 GUI 工具:Reservoirs Lab
https://github.com/Z-Gort/Reservoirs-Lab
图片
Reservoirs Lab 是一个轻量级的 Electron 应用程序,旨在直接连接到 Postgres 数据库并可视化高维向量嵌入。用户可以通过该工具交互式地探索数据,并查看元数据与向量嵌入之间的语义相似性。以下是 Reservoirs Lab 的主要功能:
- Postgres 集成:通过连接字符串直接连接到 Postgres 数据库。
- 向量可视化:交互式地绘制和探索高维向量。
- 邻域探索:点击数据点查看按余弦相似度排序的相关点,同时保持聚类。
- 轻量且本地运行:在本地运行,保护数据隐私。
安装步骤
- 确保已安装 Node.js 和 npm。
- 克隆仓库:git clone https://github.com/z-gort/reservoirs-lab.git
- 进入项目目录。
- 安装依赖:npm install
- 启动应用:npm start
- 输入 Postgres 数据库连接字符串。
评论(如有):
- wenc:这个工具很好,但建议提到使用 UMAP 进行降维,并注意超参数的选择。降维到 2 维可能会有很大变化,可以考虑投影到更多维度,通过散点图矩阵来可视化。
- redwood:有人见过 Atlas 吗?绝对美丽的向量可视化工具。
- gregncheese:我还没找到比 Tensorflow Projector 更好的工具:Tensorflow Projector。不过需要先将数据准备成 TSV 文件。
- samanthasu:优秀的可视化!
- z-gort:如果有机会重来,我可能不会选择 Electron。本地进行降维分析确实有一些挑战,但通过分析随机采样的几千个点,可以在本地 GUI 中获得数据的整体视图。
- ddtaylor:这个工具使用了 pgVector 吗?
小编锐评
Reservoirs Lab 为 Postgres 作为向量数据库提供了一个强大的可视化工具,适合数据科学家和开发者在本地环境中快速探索和分析高维数据。虽然有一些挑战,但总体来说,这是一个值得尝试的工具。
Solaar:轻松管理 Logitech 设备的 Linux 工具
https://github.com/pwr-Solaar/Solaar
图片
Solaar 是一个强大的 Linux 工具,用于管理和配置 Logitech 的无线和有线设备,包括键盘、鼠标和其他外设。它不仅支持 Unifying、Bolt、Lightspeed 和 Nano 接收器连接的设备,还支持通过 USB 电缆或蓝牙连接的设备。
功能亮点
- 设备管理:轻松配对和解配设备与接收器。
- 自定义设置:配置设备的各种设置,如 DPI、电池状态等。
- 自定义按钮:根据个人需求自定义设备按钮的功能。
- 规则引擎:运行规则以响应设备发送的特殊消息,实现自动化操作。
用户评价
- 网友 loufe:我使用过 MX Master 鼠标多年,Solaar 真是解决了我在蓝牙连接上的所有问题。它的界面比 Logitech 的软件更简洁,功能更强大。感谢开发者!
- 网友 yapyap:Solaar 比 Logitech 自己的软件好用多了。你可以看到实际的电池百分比,还可以设置具体的 DPI 数值,而不是那个烦人的滑块。
- 网友 bbutkovic:我一直在使用 Solaar 管理我的 MX Master 2s,特别是调整滚轮的自由滚动点,效果非常好。还可以绑定键盘快捷键到特定的手势,非常方便。
相关工具
- Piper:另一个用于配置 Logitech 设备的工具,适用于有线鼠标。
- logiops:虽然规则功能较弱,但也是一个不错的选择。
总结
Solaar 是一个轻量级且功能强大的工具,适合所有使用 Logitech 设备的 Linux 用户。它不仅简化了设备管理,还提供了丰富的自定义选项,让用户体验更加个性化。如果你正在寻找一个可靠的 Linux 设备管理工具,Solaar 绝对值得一试。