## JavaScript 源代码映射:摘要 源代码映射弥合了优化后的生产JavaScript代码(通常是压缩和打包后的代码)与原始、对开发者友好的源代码之间的差距。它们允许浏览器使用原始变量名和格式显示和调试代码,即使在运行压缩文件时也是如此——解释了为什么`bundle.min.js`中的错误可以精确定位到`src/index.ts`中的问题。 这个过程涉及三个关键阶段:转译(TypeScript到JavaScript)、打包和压缩,源代码映射在整个过程中保留了与原始代码的链接。这些映射是JSON文件(`.js.map`),包含关于原始源代码、变量名以及最重要的*映射*的信息——压缩数据,详细说明了生成代码和原始代码之间的对应关系。 这种压缩利用了**VLQ(可变长度量)编码**,使用Base64字符有效地表示位置差异。VLQ不存储绝对坐标,而是存储相对变化,从而最小化文件大小。`mappings`字符串由逗号和分号分隔的片段构成(分号充当换行符),编码生成文件和源代码的位置,并可选地包含原始变量名。 理解源代码映射可以解锁强大的调试功能,并且在性能分析工具中变得越来越重要。
## pg_lake:将湖仓带到PostgreSQL
pg_lake 将 Iceberg 和数据湖文件直接集成到 PostgreSQL 中,将其转变为一个强大的、事务性湖仓系统。它允许用户直接从 Postgres 创建、修改和查询 Iceberg 表,同时查询和导入存储在 S3 等对象存储中的各种格式(Parquet、CSV、JSON)的数据。
主要功能包括:通过 `COPY` 命令实现无缝数据导入/导出,支持地理空间数据,透明压缩,以及在单个查询中组合堆表、Iceberg 和外部文件中的数据。pg_lake 从外部源推断模式,并通过 `pgduck_server` 利用 DuckDB 的查询引擎来加速性能。
设置可以通过 Docker 或从源代码构建来实现,需要 PostgreSQL 扩展和兼容 S3 的存储。`pgduck_server` 运行 DuckDB,可通过 Unix 套接字通过 `psql` 访问,从而提高查询速度。配置涉及设置凭据和对象存储中 Iceberg 表的默认位置前缀。
pg_lake 最初由 Crunchy Data 开发,现在由 Snowflake 开源,它基于模块化设计,具有多个 PostgreSQL 扩展和支持服务,优先考虑可维护性和可扩展性。
DRAM市场正经历严重供应短缺,服务器内存受到的影响尤为严重。主要超大规模云服务提供商目前仅收到其订购的70%的DRAM,尽管他们已经同意价格上涨高达50%。这受到内存需求激增的推动——包括HBM和传统的DDR5,这都源于人工智能的繁荣。
三星和SK海力士正在优先生产面向人工智能的组件,从而减少了服务器DRAM的产能。现货价格大幅上涨(DDR5 16GB模块翻倍至约13美元),供应商正在限制报价。虽然超大规模云服务提供商已经获得了分配,但较小的OEM和渠道厂商面临的交货率低至35-40%。
美光预测持续的紧张局面将持续到2025年,TrendForce建议可能出现价格冻结。DDR4的产量正在下降,进一步加剧了这个问题。除非需求下降或生产良率显著提高,否则广泛的DRAM分配限制预计将持续到2026年。
1988年11月,康奈尔大学研究生罗伯特·塔潘·莫里斯向早期的互联网发布了一个自我复制程序——现在被称为莫里斯蠕虫。最初的目的是无害地评估网络规模,但由于编程错误,它迅速传播,在24小时内感染了大约6万个联网系统中的10%。
该蠕虫利用了电子邮件系统和“finger”程序的漏洞,导致严重的减速、崩溃,并迫使一些机构暂时断开与网络的连接——包括主要大学和NASA设施。虽然该蠕虫并非设计用于破坏数据,但解决由此造成的破坏估计耗资10万美元到数百万美元。
莫里斯最终被识别并根据《计算机欺诈与滥用法案》起诉,被处以罚款、缓刑和社区服务。这一事件凸显了新兴互联网的脆弱性,并推动了网络安全技术的进步,标志着计算机安全历史上的一个关键时刻——早于我们今天所知的万维网。