Building the Hundred-Year Web Service (2024)a year agohttps://unplannedobsolescence.com/blog/building-the-hundred-year-web-service/演讲《构建百年网络服务》探讨了如何创建持久耐用的软件基础设施。前11分钟内容为非技术性,提供了对互联网未来的深刻见解。以威廉斯堡大桥为喻,质疑软件是否能像实体基础设施一样具有持久性。指出当前万维网是唯一能够支撑百年软件运行的抽象架构。强调必须通过完善HTTP方法支持来增强HTML的动态功能特性。
An ode to HTMX and doing lessa year agohttps://lmao.center/blog/htmx-gone.html作者偏爱早期网络那种复古、静态的特性。HTMX因其能在无需大幅改动现有组件的情况下,为纯HTML添加类似React的自动化功能而受到赞誉。HTMX的工作原理是将后端生成的HTML与浏览器连接,在需要时增强交互性。一个案例研究展示了HTMX的高效性:缓慢的流程会先动态处理,随后缓存转为静态。随着时间推移,当缓存元素取代动态占位符后,页面会完全静态化,从而减轻后端负载。作者推崇网页开发的极简主义,并批评那些基础功能都需要JavaScript的网站。
HTTP/0.9 from Scratch (2024)a year agohttps://kmcd.dev/posts/http0.9-from-scratch/作为'从零开始学HTTP'系列的一部分,介绍HTTP/0.9HTTP/0.9是HTTP的第一个版本,于1991年推出,采用简单的请求-响应模型HTTP/0.9的关键特性:仅支持GET方法、无请求头、无状态码、简单的资源路径请求HTTP/0.9的局限性:无请求头、仅支持GET方法、无状态码、无错误处理机制用Go语言实现HTTP/0.9服务器,处理TCP连接和简单请求使用curl和netcat测试服务器,Firefox是唯一仍支持HTTP/0.9的主流浏览器用Go语言创建简单的HTTP/0.9客户端与服务器交互总结HTTP/0.9的简洁性和局限性,为后续HTTP版本做铺垫预告后续文章将涵盖HTTP/1.0、HTTP/1.1、HTTP/2和HTTP/3
IKEA's Web Fontsa year agohttps://medium.com/flat-pack-tech/ikeas-web-fonts-8e3879f4ccbb宜家最初使用Futura字体,自1954年起成为其品牌标志性元素。2010年宜家改用Verdana字体,以提升跨设备数字兼容性。Verdana的缺陷在于不支持非拉丁字符集,随着宜家进军泰国、韩国等市场逐渐显现。宜家采用谷歌Noto Sans字体(支持所有语言)并定制开发出Noto IKEA专用字体。Noto IKEA初期通过谷歌字体库+小规模定制修正字符实现部署。随后出现缓存问题、性能瓶颈及GDPR法规下使用谷歌字体的合规风险。宜家转为自主托管字体方案,提升性能、降低依赖并确保法律合规。自主方案包含字体子集化、分块加载及移除冗余功能以优化加载速度。尝试可变字体技术后发现对现有排版体系增益有限。未来将针对中日韩市场优化字体交付方案,并清理未使用字符集。
Show HN: I reverse engineered top websites to build an animated UI librarya year agohttps://reverseui.com28个可用组件从顶级网站逆向工程的UI库热门动画组件,预置样式和动画限时优惠,终身访问仅需50美元组件包括:机器人防护、发光球体、短信提醒、交互式信封、社交链接、彩虹闪光按钮、发票追踪、轨道环、点状着色器、基于角色的访问控制、多因素认证、AI聊天、指纹扫描、日志浏览器、文本模糊显示、六边形轮廓、操作系统、股票图表、点赞按钮、Macbook键盘、复古终端、数据输入、凯撒密码、签名、酷徽章、命令K、闪亮按钮
Show HN: Rocal UI – A simple template engine with Rusta year agohttps://github.com/rocal-dev/rocal/tree/main/rocal_uiRocal UI 是一个模板引擎,主要服务于 Rust 的 Rocal 框架,但也可独立使用。支持通过 `{{ 变量 }}` 语法使用变量。包含 `if-else` 和 `else-if` 条件控制结构,用于条件渲染。提供类似 Rust 语法的 `for-in` 循环,用于遍历集合。允许使用 `{ "字符串" }` 简写形式直接嵌入 `&str` 类型的字符串。视图支持嵌套,或作为局部模板在其他视图中复用。`{{ }}` 中的变量可包含任何返回 `&str` 的 Rust 表达式,实现字符串插值功能。安装需通过 Cargo 安装带 CLI 功能的 Rocal,并初始化新项目。示例用法详见 `yourapp/src/templates/root_template.rs` 文件。
Show HN: I created snapDOM to capture DOM nodes as images with exceptional speeda year agohttps://github.com/zumerlab/snapdomsnapDOM 是一款高保真DOM捕捉工具,可将HTML元素转换为可缩放的SVG图像。保留样式、字体、背景、Shadow DOM内容及伪元素。支持导出为SVG、PNG、JPG、WebP或canvas格式。轻量无依赖,基于标准Web API开发。可通过CDN、script标签或模块化引入使用。提供多种捕捉方法,如snapdom(el)、snapdom.toPng(el)等。支持捕获Shadow DOM、伪元素、背景及字体。提供元素排除(exclusion)和占位符(placeholder)属性支持。外部图片需符合CORS规则;字体需在捕捉前完成加载。在速度表现上优于同类库,尤其针对大型DOM结构时优势显著。
My takeaways from DjangoCon EU 2025a year agohttps://www.zachbellay.com/posts/djangocon-eu-2025/DjangoCon EU 2025在爱尔兰都柏林举行,聚焦数据库优化、性能与社区建设数据库核心要点包括:使用`select_for_update`实现行级锁、迁移至BigInt主键、按租户分区表性能优化技巧:用Pytest编写性能测试、检查磁盘I/O速度、禁用TCP_NODELAY提升吞吐量提及的重要工具与库:安全类工具`django-neopolitan`/`django-auto-prefetch`/`django-csp`及`MaxMind`最佳实践:在PR中记录`sqlmigrate`输出、测试中统计数据库查询数、清理陈旧功能开关社区亮点:Django Admin定制、基于GitHub的功能提案、正在开发的Rust模板后端使用Django的企业案例:Octopus Energy/Divio/Monit/Zelthy现场氛围:积极的社区反馈、欧美生活质量对比、都柏林公共服务的赞誉热门演讲主题:大规模数据库迁移、HTMX模式实践、外键使用陷阱
From HyperCard to Vibe Codinga year agohttps://newsletter.iryanbell.com/p/from-hypercard-to-vibe-coding对早期互联网的回忆(GeoCities时代,'97年),那时网站都是手工制作,使用AOL等基础工具。对比互联网1.0(人工制作、小型网络)与现代网络(AI驱动、企业化平台)。个人成长历程:从收集代码片段到用Macromedia Director制作青蛙过河克隆版,由此获得早期职业机会。经历网页开发挑战(IE浏览器问题、jQuery、async/await、TypeScript)并探索多种编程语言和框架的演进过程。意外的职业循环:从童年捣鼓到专业成就(如安全漏洞赏金和艺术展览)。介绍现代编码助手(Cursor、Claude Code、Aider等)的「氛围编程」概念,强调协作工具的规则与边界。对未来「从概念到编译时间趋近于零」影响的推测,认为编程重点将从「如何实现」转向「为何创造」。
Don't make Google sell Chromea year agohttps://world.hey.com/dhh/don-t-make-google-sell-chrome-93cefbc6Chrome通过创新和投资公平地赢得了浏览器大战。目前有许多浏览器替代选择,包括Firefox、Safari以及基于Chromium的浏览器如Brave和Edge。谷歌对网络的投资是出于经济自利而非慈善。强大的网络平台对于与苹果iOS应用商店等专有平台竞争至关重要。网络的活力依赖于持续发展,而Chrome正助力推动这一进程。强迫谷歌出售Chrome可能会损害网络发展,反而让专有平台受益。
The Missing CSS Stylesheeta year agohttps://missing.style/missing.css 是一个旨在通过最小化HTML干预来增强网站样式的CSS库它为原生HTML元素提供默认样式,并支持通过CSS变量进行自定义包含基于语义化标记模式设计的组件,并支持ARIA无障碍特性提供实用工具类和自定义元素以满足现代网页开发需求设计目标包括开箱即用的良好体验、易于定制和促进语义化HTML的使用被hyperscript.org和denizaksimsek.com等网站采用定位介于无类CSS库与Tailwind或Bootstrap等重型框架之间配套提供JavaScript库和Prism语法高亮主题
One Million Chessboardsa year agohttps://eieio.games/blog/one-million-chessboards/网站'百万棋盘'展示了一百万个实时同步更新的棋盘,所有玩家的走棋动作即时全局可见,无需等待回合制该项目灵感来源于'百万复选框',专为高扩展性设计,仅需单台服务器即可运行棋盘数据以6400万个uint64类型二维数组的形式存储在内存中,后端采用Go语言编写系统采用单写入线程+多读取线程架构,通过互斥锁协调对棋盘的访问控制前端采用乐观更新机制即时应用走棋动作,构建依赖关系图,若在服务器确认前出现冲突则自动回滚操作这套乐观更新与回滚机制包含1600行代码,耗费了约7个全天工作量完成开发
The 12-bit rainbow palettea year agohttps://iamkate.com/data/12-bit-rainbow/12位彩虹色板专为National Grid: Live设计,采用12种优化人类对亮度、色度和色调感知的颜色。12位色板中的每种颜色均用4字符十六进制代码表示,便于高效应用于CSS或SVG。传统RGB色彩空间平等对待红绿蓝三色,但人类对亮度的感知存在差异,导致简单RGB彩虹的亮度不均匀。LCH色彩空间(亮度、色度、色调)具有感知均匀性,数值变化对应一致的视觉差异。固定LCH亮度和色度的彩虹色板会显得不自然,例如黄色会渐变为棕色,蓝色则显得过于苍白。更优方案是通过受控方式调整亮度,优先保证黄色的高亮度,并相应调节其他色调。12位色深仅需对亮度、色度和色调进行微调,这些变化足够细微以保持视觉一致性。最终色板呈现均匀分布的色调、最小化的色度变化及平滑的亮度过渡,实现平衡的彩虹效果。
The weirdest HTML feature (or bug?): display your heada year agohttps://lapcatsoftware.com/articles/2025/4/7.htmlHTML文档的头部默认不会在浏览器中显示,但可以通过CSS使其可见。像<script>、<style>和<title>这样的元素默认是隐藏的,这是因为它们在浏览器样式表中设置了'display: none'属性。通过CSS覆盖默认的'display'属性,可以显示这些元素。一个实际案例是浏览器扩展添加的自定义元素因页面CSS而意外显示。关于这种行为是漏洞还是特性存在争议,目前尚无明确共识。一种解决方案是添加特定样式以确保<style>元素保持隐藏。
Making of Monkeys.zipa year agohttps://www.lukeschaefer.dev/posts/making-of-monkeys/Monkeys.zip 已收集了超过11,000只猴子,一个月内撰写了超过60亿字。技术栈包括:后端使用Supabase,前端使用LitHTML,3D部分使用Three.JS,博客使用Astro。模拟架构采用四步流水线设计:Ticks(时钟周期)、generateTickText(生成周期文本)、processTick(处理周期)和Archive(归档)。每15秒产生一个Tick以平衡性能和可靠性。generateTickText使用确定性随机数生成技术来产生猴子文本。processTick会更新数据库中的有效词汇表、词汇计数表和猴子物品表。Archive通过将旧数据迁移到独立表来优化性能。猴子的网格被划分为64x64的区块以提高缓存和查询效率。未来优化可能包括使用更高内存的VPS服务器来加速处理。
Webflow makes GSAP 100% free – plus more updatesa year agohttps://webflow.com/blog/gsap-becomes-freeWebflow宣布GSAP对所有用户100%免费开放,包括原先需付费的Club插件2024年秋季Webflow收购GSAP,以强化交互解决方案能力GSAP的SplitText插件迎来14项新特性升级,文件体积减少50%并提升无障碍访问GSAP插件现已直接内置于Webflow平台,实现无缝集成Webflow推出支持自定义代码(含GSAP动画)的站点预览功能未来更新将包含原生Webflow交互与GSAP特性融合、横向时间轴预览及可复用交互组件Webflow与GSAP将于5月举办社区挑战赛,并于5月9日发布官方公告视频
A simple Common Lisp web appa year agohttps://www.scotto.me/blog/a-simple-common-lisp-web-app/Common Lisp缺乏文档是其流行度的一大障碍,这使得它看起来比实际更难掌握。一个教程演示了如何用Common Lisp创建简单的Web应用,涵盖服务器设置、数据库交互和路由处理。该教程使用现代库如Clack、Lack、Caveman2和Djula进行Web开发,旨在为其他语言开发者提供熟悉的体验。引入了自定义Web框架flashcl,受Python中Flask的启发,旨在减少样板代码并简化Common Lisp的Web应用开发。尽管功能强大,Common Lisp可能并非现代Web开发的最佳选择,其REPL驱动开发是其突出特点。VSCode的Alive扩展被强调为Common Lisp开发的有前途工具,提供类似Emacs中SLIME和SLY的REPL集成功能。
The future of web development is AI. Get on or get left behinda year agohttps://alex.party/posts/2025-05-05-the-future-of-web-development-is-ai-get-on-o...文章讨论了网络开发技术不断变化的趋势。它幽默地列举了过去被认为是'未来'的技术,如区块链、CSS-inJS、渐进式网络应用、Silverlight、XHTML、Flash、ActiveX和Java小程序。语气充满讽刺,嘲笑了围绕新技术和昂贵课程的炒作,这些课程承诺教授'下一个重大技术'。强调了网络开发中技术趋势的周期性本质。
Mac Themes Gardena year agohttps://damien.zone/introducing-mac-themes-garden/Mac主题花园上线,展示3000多款经典Mac万花筒主题。特色包括可下载主题、更新RSS订阅源及网站快捷按钮。该项目由Mac主题机器人升级而来,每小时在社交平台发布主题。主题收录需手动截屏、记录作者信息并存入Airtable数据库。网站采用Astro框架构建以提升性能,通过CSS技巧复刻Mac OS 9界面。未来计划推出颜色搜索、自定义图标展示及实时主题预览功能。
10k Drum Machinesa year agohttps://10kdrummachines.com/2019年时,网页版鼓机的设计草图已完成,但直到2025年才真正编写代码实现。“10,000台鼓机”这个名字的选定并无特殊原因,仅是作为一系列鼓机作品的集合名称。作者坦言由于时间有限,实际达成万台鼓机的目标可能性很小,但仍欢迎他人参与贡献。鼓励人们分享网页版鼓机的创意或原型作品,这些作品将有机会被收录在该网站上展示。