1. Equinox.space (equinox.space)
项目名称: Equinox
简介: Equinox 是一个以星空为舞台的互动故事体验项目。
核心内容: 用户可以沉浸于一个设定在星际间的交互式叙事之中。
访问方式: 该体验通过其专属网站(equinox.space)提供。
视觉标识: 项目配有一张用于社交媒体分享的预览图(og-image)。
21 篇热帖
项目名称: Equinox
简介: Equinox 是一个以星空为舞台的互动故事体验项目。
核心内容: 用户可以沉浸于一个设定在星际间的交互式叙事之中。
访问方式: 该体验通过其专属网站(equinox.space)提供。
视觉标识: 项目配有一张用于社交媒体分享的预览图(og-image)。
超级任天堂(SNES)卡带不仅包含存储游戏指令和素材的ROM芯片,还集成了一系列功能独特的芯片。文章揭示了其内部构造的关键组件与技术。
这是SNES卡带最显著的特征,共有13种增强芯片应用于72款游戏,显著提升了系统性能。
SA-1(超级加速器1):
CX4:
CS-DD1:
DSP系列(数字信号处理器):
Super FX系列(矢量图形处理器):
其他专用芯片:
这些增强芯片极大地增加了后期模拟器开发的难度。一些芯片需要通过开盖逆向工程或提取其内部ROM才能正确模拟,部分芯片的模拟至今仍未完善。
Infinitown 是一个基于 WebGL 的实验项目,旨在创建一个充满活力且有趣味的程序化城市。其核心技术是先生成一个有限的随机城市街区网格,随后利用视角环绕技巧,使观察者的视线不断绕行该网格,从而营造出无限城市景观的视觉效果。项目开发使用了 Three.js、Blender 和 Unity 等工具,模型资源由 VenCreations 提供。
本页是一个包含多个单人益智游戏的小型计算机程序合集。所有游戏均可在Unix(GTK)和Windows系统上原生运行,也可通过Java或JavaScript小程序在网页上游玩。作者创作此合集的初衷是希望提供更多小巧的桌面娱乐工具,让人们能在工作间隙快速游戏几分钟,同时解决跨平台游戏缺失的问题。
重要更新(2023-09-20):由于作者的Mac电脑已损坏且不再打算购买新的Mac,Mac版本将无法继续构建和更新。作者欢迎其他开发者自愿维护Mac前端代码并提供可下载应用。Mac用户目前可通过网页版游玩。
合集包含多种类型的益智游戏,例如:
整个游戏合集受MIT许可证保护,版权属于Simon Tatham及部分代码的贡献者。用户可自由使用游戏二进制文件或代码,但不得冒充原创或因问题追究作者责任。
提供多种获取方式:
git clone https://git.tartarus.org/simon/puzzles.git。Penzai 是一个 JAX 库,用于将模型编写为易读、函数式的 pytree 数据结构,并提供可视化、修改和分析工具。其核心理念是让训练后的模型操作变得简单,特别适用于模型逆向工程、消融研究、内部激活检查、模型手术和架构调试等研究场景。
Penzai 由一系列设计协调但可独立使用的模块化工具构成:
Treescope (pz.ts):一个增强型交互式 Python 美化打印器。它是 IPython/Colab 渲染器的直接替代品,专为理解 Penzai 模型和其他深层嵌套的 JAX pytree 而设计,内置对任意维度 NDArray 的可视化支持。
JAX 树和数组操作工具:
penzai.core.selectors (pz.select):一个 pytree 通用操作工具,将 JAX 的 .at[...].set(...) 语法推广到任意基于类型的 pytree 遍历,便于进行复杂的重写或对模型进行动态修补。penzai.core.named_axes (pz.nx):一个轻量级命名轴系统,可将普通 JAX 函数提升为按命名轴向量化,并允许在命名轴和位置轴编程风格之间无缝切换,无需学习新的数组 API。声明式神经网络库 (penzai.nn (pz.nn)):与其他库(如 Flax、Haiku 等)的替代方案。它使用声明式组合子来暴露模型前向传播的完整结构。模型以 JAX PyTree 表示,这意味着可以通过美化打印查看模型的所有操作,并使用 jax.tree_util 注入新的运行时逻辑。此外,penzai.nn 模型在树的叶子节点允许存在可变变量,使其能够跟踪可变状态和参数共享。
Transformer 模型模块 (penzai.models.transformer):一个参考 Transformer 实现,支持加载 Gemma、Llama、Mistral 和 GPT-NeoX/Pythia 等架构的预训练权重。它由模块化组件和命名轴构建,旨在简化复杂的模型操作工作流。
penzai.deprecated.v1 子模块导入以保持旧版行为(V1 API)。pip install penzai 安装 Penzai。import penzai
from penzai import pz
在 Colab/IPython 笔记本中,推荐配置 Treescope 作为默认美化打印机:import treescope
treescope.basic_interactive_setup(autovisualize_arrays=True)
详细文档位于 https://penzai.readthedocs.io。如果 Penzai 对您的研究有用,请考虑引用相关论文(收录于 ICML 2024 Mechanistic Interpretability Workshop)。
注意:这不是官方支持的 Google 产品。
Py2wasm 是一款 Python 到 WebAssembly 的编译器,旨在通过将 Python 程序转换为 WebAssembly 来提升运行性能。它基于 Nuitka 工具,避免了传统解释器的开销,使程序运行速度比基线解释器快约 3 倍。
pip install py2wasm。py2wasm myprogram.py -o myprogram.wasm 将 Python 文件编译为 WebAssembly 模块。wasmer run myprogram.wasm 运行生成的 .wasm 文件。通过 pystone.py 基准测试比较:
优化 Python 在 WebAssembly 中运行的策略包括:
最终选择 Nuitka,因其将 Python 代码转译为 C 语言的 CPython API 调用,支持大多数 Python 程序,并已有成熟基础。集成过程中解决了两个关键问题:
目前 Py2wasm 使用 Nuitka 的 fork 版本,并已向上游提交 PR 以集成更改。
Py2wasm 主要用于加速 Python 后端应用(如 Django),便于将服务迁移到 Wasmer Edge 等边缘计算平台,以降低成本和提升性能。未来计划将 Py2wasm 作为 Wasmer 包发布,简化执行命令(如 wasmer run py2wasm)。
这是一种旨在以最小误差将球形行星(如地球)投影到平面的地图方法。其展示形式为一个交互式双面圆盘,分别显示北半球(左盘)和南半球(右盘)。
该投影方法有详细的学术论文描述,同时也获得了《纽约时报》和《科学美国人》等主流媒体的报道,被称为“迄今为止最精确的平面地图”。
pico.sh 平台概述
pico.sh 是一个为开发者提供的、基于 SSH 的开源及托管 Web 服务集合。其核心特点是利用用户系统中已安装的 SSH 工具(如 rsync, scp, sftp),无需额外安装软件即可发布内容和管理服务。
主要服务与功能:
rsync -rv ./public/ pgs.sh:/mysite/。localhost:8000)暴露到公网。示例:ssh -R dev:80:localhost:8000 tuns.sh。ssh pipe.pico.sh sub mytopic,另一个终端发布消息 echo "Hello world!" | ssh pipe.pico.sh pub mytopic。scp hello-world.md prose.sh:/ 即可发布文章。git diff | ssh pastes.sh changes.patch。核心优势:
平台旨在简化开发者的部署、发布和协作流程,使其能够通过熟悉的 SSH 命令快速完成各项任务。
摄影师如何拍摄到日食照片
加拿大自然摄影师Liron Gertsman拍摄了PetaPixel所见过最出色的日全食照片之一。他的作品《军舰鸟与钻石环》是多年研究、辛勤工作、实践、地点勘察和一点运气的结晶。
目标与规划 Gertsman长久以来梦想捕捉到鸟类在日食前飞行的剪影。为实现这一目标,他专注于寻找一次日全食,并选择了2024年4月8日横跨北美的一次。他利用自身生物学背景和鸟类知识,通过各种在线资源(如eBird、Google Earth)筛选地点,最终确定墨西哥锡那罗亚州海岸附近的皮德拉斯布兰卡斯作为首选地点,因为该地区历史天气状况良好且是海鸟聚集地。他提前一年预订了旅行和住宿。
勘察与准备 Gertsman进行了详尽的地点勘察,制定了备用计划以防天气变化。关键挑战在于预测鸟类在日食期间的行为。他基于观察,选择了那些白天和夜晚都有鸟类活动的区域,以增加鸟类在日食期间可能表现出夜间行为的概率。马萨特兰群岛(Mazatlán Islands)生态保护区是他的首选点,因为傍晚时分有大量鸟类在此栖息。他特别希望拍摄到军舰鸟,一种具有显著叉状尾的大型海鸟。
拍摄过程 拍摄日当天,从包租的船上进行拍摄,这提供了快速调整位置的灵活性。在日全食开始前几分钟,起初只有四五十只鸟,但随后突然有约250只鸟升空盘旋,并且没有降落,这正好符合他需要的“空中盘旋”构想。船长和船员的专业支持至关重要,Gertsman还特意让船员移除了船舵处的遮阳篷,让大家都能亲眼目睹日食。
设备与技巧 Gertsman使用两台佳能EOS R5相机,以避免在日全食期间更换镜头浪费时间。一台搭载RF 100-500mm长焦镜头(使用伺服自动对焦及动物检测),另一台搭载RF 24-105mm标准变焦镜头(使用单次自动对焦,对焦至无穷远附近)。他长期练习在移动船只上手持拍摄,并在2023年的一次环食期间进行了实战练习,以熟悉在类似条件下拍摄飞鸟。
成功要素 Gertsman强调,成功离不开充分的准备和练习。尽管拍摄日早上天气一度令人担忧,但他坚持了原计划。薄云的出现为拍摄提供了理想条件,柔化了阳光,使鸟类与太阳的合影成为可能。摄影师承认运气是因素之一,但认为“运气是自己创造的”。
结语 这张梦想照片的获得,是长期准备、专业技能、灵活应变和有利环境共同作用的结果。Gertsman在日全食期间保持了冷静,并凭借自动化的操作流程完成了拍摄。
Parquet-WASM 是一个基于 Rust 的 WebAssembly 项目,提供读写 Apache Parquet 格式数据的功能,并与 Apache Arrow 实现相互转换。其设计目的是与 JavaScript 的 Arrow 实现库(如官方的 JS Arrow 库)配合使用。该库包含完整的读写支持及所有压缩编解码器。
readParquet、readSchema、writeParquet。需要预先加载整个 Parquet 文件缓冲区,可能不适用于大文件。readParquetStream 和 ParquetFile 类,支持流式读取和处理远程文件。Table 类来处理 Apache Arrow 表。parquet-wasm。parquet-wasm/parquet-wasm/esm:用于浏览器的 ESM 模块,使用前需手动初始化 WebAssembly。parquet-wasm/bundler:适用于 Webpack 等打包工具的构建。parquet-wasm/node:适用于 Node.js 的同步 require 构建。writeParquet 写入 Parquet 格式(支持压缩设置),再用 readParquet 读取回来。wasm-pack 进行自定义构建,以最小化包体积。默认启用特性包括 all_compressions、reader、writer 和 async。Table.intoFFI API 将 WebAssembly 内存中的数据转移至 JavaScript。此 API 利用 Arrow 的 C Data Interface,相比传统的 intoIPCStream 方式,可减少内存拷贝,提升性能并降低内存开销。根据法国商业杂志《Challenges》报道,苹果公司已于2023年12月收购了总部位于巴黎的法国人工智能初创公司Datakalab。该公司专注于AI压缩和计算机视觉技术,自称是“低功耗、运行时高效及深度学习算法”的专家,其技术主要面向设备端运行。
Datakalab的核心优势在于其行业领先的压缩与自适应技术,能够部署快速、经济且精确的嵌入式计算机视觉系统。收购前,该公司规模较小,员工人数在10至20人之间。Datakalab的业务包括开发用于测量公共空间人流的图像分析算法,其产品强调“隐私设计”原则,能在100毫秒内将图像转化为匿名的统计数据,且不存储任何图像或个人数据。
该公司此前曾有重要的合作案例,包括在2020年5月与法国政府合作,在巴黎交通系统部署AI工具以检测乘客是否佩戴口罩,并与迪士尼等伙伴有过合作。
尽管苹果与Datakalab均未公开确认此次收购,但报道称交易已向欧盟委员会报备。消息指出,Datakalab的两位创始人并未加入苹果,但有多名其他员工转入。此外,Datakalab持有多项与AI压缩和视觉技术相关的专利。
此次收购正值苹果预计于今年晚些时候在iOS 18中引入一系列AI功能之际。Datakalab先进的视觉技术也可能在苹果未来的Vision Pro等项目中发挥作用,其高级面部识别技术还可能有助于改进“照片”应用和Face ID等功能。
Espressif Systems 于 2024年4月22日宣布收购 M5Stack 的多数股权。此举是物联网与嵌入式系统领域的战略里程碑,旨在推动双方共同的愿景——普及人工智能物联网技术。
2024 年第一季度,Espressif 实现营收 3.8719 亿元人民币,同比增长 21.71%;净利润 5392 万元人民币,同比大幅增长 73.43%,创下历史同期最佳业绩。
本文通过对比Ruby和Python中的for循环机制,阐述两种语言在对象迭代、数据处理和编程范式上的根本哲学差异。
Python的方式:对象模型服从for循环。对象通过实现__iter__和__next__等方法,告诉语言如何迭代自己。for循环的主体负责处理对象返回的数据。
class Stuff:
def __init__(self):
self.a_list = [1,2,3,4]
self.position = 0
def __next__(self):
# 返回数据或抛出StopIteration
def __iter__(self):
return self
for data in Stuff():
print(data)
Ruby的方式:for循环(通过each方法)服从对象模型。对象将过程式代码封装在块(block)中传递,对象内部通过yield将值传给块处理。
class Stuff
def initialize
@a_list = [1, 2, 3, 4]
end
def each
for item in @a_list
yield item
end
end
end
Stuff.new().each do |item|
puts item
end
简单来说:Python将数据传回给for循环,Ruby将代码传给数据。
数据处理方式
for循环构建各种处理操作(如列表推导式):[item for item in Stuff()]
[item for item in Stuff() if item % 2 == 0]
select、map):Stuff.new().select{|item| item.even?}
Stuff.new().map{|item| item}
控制权分配
each和map可能有不同优化),开发者需要按照对象期望的方式与之交互。编程范式基础
self作为第一个参数(类似C的句柄),自由函数常被鼓励。本质是过程式优先,对象化是安全性的提升。两种语言的根本分歧在于:Python让语言规范统领数据处理,Ruby让对象掌控自身的交互规则。这种哲学差异导致了它们在语法、惯用法和应用场景上的广泛不同。
Intel Gaudi 3是英特尔在2024年发布的最新一代专用AI加速器,相较于前代Gaudi 2实现了显著升级,计划于2024年下半年投入量产。
Intel Gaudi 3通过大幅增加显存容量、计算核心和网络带宽,显著提升了性能。其基于以太网的扩展设计降低了数据中心网络管理的复杂度,结合有竞争力的定价,旨在强化英特尔在快速增长的AI加速器市场中的地位。
纽约州成功抵制反市政宽带预算修正案
2024年4月19日,纽约州议会通过了一项预算法案,其中并未包含一项据信由大型有线电视公司Charter Spectrum游说推动的修正案。该修正案的失败,意味着纽约州旨在支持市政宽带建设的“市政基础设施计划”(MIP)拨款得以保全,避免了其被削弱的风险。
修正案内容与潜在影响 该修正案提议将MIP拨款限制在仅针对“未服务和服务不足”地点的项目。支持者认为,这种限制会使许多市政宽带项目在财务上难以维持,从而阻碍其发展。MIP是纽约州十亿美元“连接纽约”计划的一部分,专门用于资助市政宽带项目,旨在为居民提供更多宽带选择,打破大型垄断企业服务质量不稳定、价格高昂的局面。
支持市政宽带的观点 纽约州众议员安娜·凯莱斯(Anna Kelles)指出,被否决的修正案将“摧毁纽约州为市政宽带建立可持续商业模式的现有努力”。她与州参议员雷切尔·梅(Rachel May)强调,MIP项目的初衷是保障地方政府为其选民提供高速互联网的选择权。在已有市政宽带部署的地区,整体价格下降,服务水平得到提升。
美国公共宽带协会(AAPB)执行董事吉吉·索恩(Gigi Sohn)将此视为“纽约州每个社区和每位居民的胜利”。她赞扬州议会抵制了有线电视游说者破坏社区宽带的幕后企图,并强调社区应有权自由选择最适合居民的宽带网络类型,公共网络能够提供私营运营商往往无法实现的普遍服务和可负担价格。
挑战与未来展望 文章指出,将补贴局限于FCC定义的“未服务”地区存在缺陷,因为FCC的宽带数据收集本身因大型企业的长期游说而存在不准确之处,可能遗漏了实际上服务不足的地区。尽管此次修正案被成功阻止,但全国范围内大型电信和有线电视公司推动的反竞争行动并未消失。索恩预计,拥有庞大资源的同类游说者明年还会再次尝试,而AAPB及其成员将继续捍卫每个社区控制其宽带未来的自由。
该内容展示了一个综合技术论坛的板块列表与统计数据。论坛涵盖硬件、软件、网络、娱乐及生活等多个领域。
注:提供的实际内容为论坛的板块结构与数据统计,而非指定的文章内容。
本文是关于SBCL(一种Common Lisp实现)内部机制的技术探索。作者通过实际实验,逐步揭示了SBCL运行时的多个关键方面。
文章首先使用SBCL内置的反汇编工具,对一个简单的Lisp函数testfunc进行分析。通过查看生成的x86-64汇编代码,作者发现函数调用GENERIC-+进行加法操作,并且常量33在代码中被移位(左移1位,即存储为66)。作者随后演示了如何直接修改函数对应的机器码内存(通过sb-sys:int-sap和sap-ref-8),将常量从66改为80,从而验证了修改后函数返回结果变为40。这展示了Lisp代码与底层机器码的直接对应关系,以及SBCL允许在运行时修改已编译代码的可能性。
接着,文章探讨了Lisp对象(如字符串)在内存中的表示。作者使用sb-kernel:get-lisp-obj-address获取对象地址,并编写了一个简单的十六进制转储函数hexdump-address来查看内存内容。通过分析一个测试字符串,作者揭示了带标签指针的关键概念:
0xF(OTHER_POINTER_LOWTAG),函数指针是0xB(FUN_POINTER_LOWTAG),列表指针是0x7(LIST_POINTER_LOWTAG)。作者通过修改字符串对象内存中的长度字段和字符数据,直接改变了字符串的内容,进一步验证了这种内存布局。
文章解释了SBCL如何高效表示数字。定点数不作为堆上的对象分配,而是直接嵌入指针值中。如果指针的最低位为0,则该值被解释为一个定点数(实际值左移1位存储)。这种技术避免了频繁的内存分配和解引用,提高了性能。
文中提到了几个对探索SBCL内部有用的工具:
(disassemble 'function-name)。(sb-kernel:get-lisp-obj-address object)。sb-sys:int-sap将整数转换为系统区域指针,并使用sap-ref-8等函数访问。src/runtime/genesis/constants.h中生成了定义低标签和对象布局的C语言常量,这些常量是SBCL的C语言运行时系统理解Lisp对象结构的关键。作者声明本文旨在为那些不熟悉SBCL实现细节的读者提供一个内部机制的入门导览,并将其作为一次“公开学习”的实验。前提是读者已熟悉Lisp基础,并对x86汇编有一定了解。
总结来说,本文通过一系列交互式实验,揭示了SBCL中函数编译结果、Lisp对象内存布局(特别是带标签指针机制)以及数字高效表示等核心内部机制。
近年来,众多非洲科技公司正从谷歌(Google)的服务转向印度竞争对手Zoho。驱动这一转变的核心因素是成本压力和本地化策略。
总而言之,Zoho凭借其极具竞争力的价格、灵活的支付方式及积极的本地化策略,成功切入非洲市场,成为谷歌的有力替代选择。然而,其长期成功还需在产品体验升级和开发者生态建设上持续投入。