No build front end is so much more funa year agohttps://simonwillison.net/2025/May/31/no-build/避免使用npm、React、TypeScript等前端构建系统,直接用纯HTML和JavaScript编写代码。浏览器API现在已经足够强大,无需再使用jQuery。使用简单的方法如`document.querySelectorAll()`和`fetch()`,以最少的代码构建价值。最近的文章涵盖了诸如LLM、AI与就业、以及在终端中使用LLM运行工具等话题。
The Guide to Cloudflare's Durable Objectsa year agohttps://flaredup.substack.com/p/the-ultimate-guide-to-cloudflaresDurable Objects是Cloudflare开发者平台的独特功能,支持有状态的无服务器应用开发。它们能即时创建全球分布的微型服务器,具备内置持久化存储,并可在请求间休眠以节省资源。该功能支持多玩家场景协调、内置WebSocket能力以及定时执行的警报机制等特性。全球分布式架构有效降低延迟并提升冗余度,自带故障自动转移和恢复机制。典型应用场景包括多人在线应用、实时协作工具和SaaS应用的多租户实现。可通过代码创建管理,提供同步调用(fetch/RPC)、警报和存储(key-value/SQLite)等API接口。基于SQLite的版本支持零延迟查询和时间点恢复,特别适合复杂数据存储需求。内置WebSocket支持简化实时通信,消息间隔自动休眠的设计显著降低成本。Agents SDK利用该技术实现AI代理,提供MCP支持、状态同步和任务调度等能力。需关注可观测性和成本管理,可通过Workers Logs监控,计费基于请求数、持续时长和存储用量。
Is It JavaScript?a year agohttps://blog.jim-nielsen.com/2025/is-it-javascript/短语'It’s Just JavaScript'常用来暗示某个项目易于上手,因为它使用了无处不在的JavaScript语言。JavaScript可用于多种环境,如浏览器(DOM API)、服务器(Node.js)以及需要编译的工具(JSX、TypeScript)。并非所有JavaScript代码都是标准的;有些需要特定运行时、工具或框架(例如Node中的process.env,React中的JSX)。上下文至关重要:理解代码在何处以及如何运行(浏览器、服务器、特定工具)是掌握其功能的关键。真正的'纯JavaScript'指的是无需特殊工具、运行时或编译步骤就能普遍运行的代码。
Our production Ruby on Rails stacka year agohttps://attendlist.com/blog/production-rails-stackAttendList是一个基于Ruby on Rails和Chrome扩展开发的Google Meet考勤追踪器。核心技术栈包括PostgreSQL、Redis、Sidekiq以及用于测试的RSpec。使用Devise进行身份验证,支持Google OAuth和增量授权流程。采用ViewComponent构建UI组件,Tailwind CSS实现样式设计。通过Bullet gem和rack-mini-profiler进行性能监控。集成Google客户端库以连接Google Meet和People API。使用Redcarpet处理Markdown、Rouge实现代码高亮的自定义博客系统。通过Hatchbox部署在Hetzner服务器上以优化成本。其他重要组件包括Blazer仪表盘、Ahoy分析工具和Honeybadger监控服务。
JavaScript Imports Under the Hood (2023)a year agohttps://blog.jim-nielsen.com/2023/imports-under-the-hood/JavaScript和TypeScript需要理解书写代码与浏览器执行代码之间的复杂转换过程。SVG、JSON、CSS等导入语句和模块标识符常经历非标准转换,需依赖特定工具链处理。SVG导入可能输出原始SVG内容或路径引用,具体取决于构建工具的实现。JSON导入会将文件转换为JS对象,但该功能并非浏览器原生支持。CSS导入可能将样式注入DOM或提供类名,不同框架/打包器的行为各异。模块标识符(如'~/foo.js'或'bar:foo')不符合标准规范,其解析逻辑完全依赖工具实现。Deno的模块加载机制与浏览器语义保持一致,显著降低了复杂性和黑魔法操作。源码与最终执行代码间的差异正在扩大,开发者必须深入理解底层的转换机制。
Adding Bluesky likes to my Hugo based blog postsa year agohttps://www.duncanmackenzie.net/blog/showing-bluesky-likes-on-hugo-posts/受Salma Alam-Naylor方案的启发,在基于Hugo的博客文章中集成Bluesky点赞功能。通过自定义frontmatter字段将Bluesky帖子ID与博客文章关联。使用JavaScript通过公共API动态获取并展示实时Bluesky点赞数据。实现方案包含Hugo partials模板、站点配置和动态内容所需的JavaScript。包含点赞占位符、Bluesky账号及可供JavaScript调用的帖子ID。通过跳转至Bluesky原帖的链接促进用户互动(点赞/评论)。
Decorative Text Within HTMLa year agohttps://shkspr.mobi/blog/2025/05/decorative-text-within-html/Andy Bell提出了在HTML中对属性值进行分组的概念,以提高代码可读性和模块化程度。替代性的分组方法包括使用方括号或竖线符号实现视觉分隔效果。HTML属性值允许包含任意字符,这为使用表情符号或Unicode符号等创意用法提供了可能。虽然不符合常规做法,但开发者可以在class属性值中嵌入注释作为文档说明。艺术化的类名设计在技术层面完全有效,但可能会造成开发人员理解困难或影响优化工具处理。潜在问题包括:优化工具可能删除空格、预处理器可能重新排序属性值,以及人工阅读时的理解障碍。该创意在开发者社区中获得了褒贬不一但总体积极的反馈。
Show HN: Page Magic: Use AI to customize any web pagea year agohttps://github.com/khaledh/pagemagic一款名为Page Magic的Chrome扩展利用AI定制网页外观需要Anthropic API密钥(BYOK)才能使用功能用户可指示Page Magic进行所需更改,扩展程序随后会应用这些修改安装流程包括配置node.js、克隆代码库和构建扩展程序安装完成后需配置API密钥和模型选择等设置所有修改具有叠加性,允许对单个网页进行多重调整用户可随时启用/禁用或删除已应用的修改采用BSD-3-Clause开源协议
FastHTML Best Practicesa year agohttps://www.fastht.ml/docs/ref/best_practice.htmlFastHTML应用与使用FastAPI/react、Django等的应用不同,遵循fast.ai哲学:减少繁文缛节,利用智能默认值,编写简洁清晰的代码。通过FastLite幂等的`create()`方法简化数据库表创建,使用数据类风格的定义使代码更清晰、更具Python风格。路由命名约定允许函数名定义路由,`index`自动映射到`/`,其他函数名也会自动成为路由。FastHTML中更推荐使用查询参数而非路径参数,以实现更符合习惯的URL并避免参数名重复。利用`insert()`和`update()`方法的返回值进行函数式链式调用,简化代码。使用`.to()`方法生成URL,提供类型安全和便于重构的代码。FastHTML默认包含PicoCSS,可自动为语义HTML元素添加样式而无需自定义CSS。智能默认值包括`Titled`自动将内容包裹在`Container`中,以及`serve()`内部处理`if __name__ == "__main__":`。FastHTML组件直接接受可迭代对象,无需使用`*`解包。对于简单转换,函数式模式如`map()`更简洁,尤其是配合FastHTML的可迭代处理特性。极简代码实践包括:对自文档化代码省略注释、不返回空字符串、单行代码表达单一思想。在FastHTML中对所有变更使用POST方法,因其默认仅处理GET和POST,更符合惯例且更简单。FastHTML中现代HTMX事件语法将下划线转换为连字符,通过`hx-on__event`语法简化事件处理。
Switch 2 rooted on day 1a year agohttps://bsky.app/profile/retr0.id/post/3lqtwrndzf22w该网络应用具有高度交互性,需要JavaScript支持。简单的HTML界面可以实现,但在此场景中并不适用。由retr0.id的David Buchanan发布。提及'首日用户态ROP攻击',时间戳为2025-06-05T08:48:58.850Z。
A masochist's guide to web developmenta year agohttps://sebastiano.tronto.net/blog/2025-06-06-webdev/通过Emscripten将C代码编译为WebAssembly来构建Web应用的入门介绍解释WebAssembly(WASM)作为底层语言如何在浏览器中实现接近原生性能配置Emscripten开发环境及必要工具的指南将简单C语言'Hello World'程序编译成可在浏览器运行的示例探讨如何构建适用于WebAssembly的C语言库并从JavaScript调用JavaScript与DOM交互式网页开发基础介绍模块化库实现以更好地与Web应用集成的步骤使用pthreads在WebAssembly中实现多线程及浏览器兼容性考量利用Web Workers防止主线程在繁重计算时被阻塞通过Emscripten工具实现C与JavaScript回调函数交互使用IndexedDB实现浏览器端大数据缓存的持久化存储方案使用Emscripten进行Web开发的挑战与经验总结
PHP Is 30a year agohttps://kieranpotts.com/php-is-30PHP Tools 1.0版本由Rasmus Lerdorf于1995年6月8日发布,距今已30年PHP最初是一组用C语言编写的CGI脚本,用于简化处理cookie和表单数据等网页开发任务早期PHP是Apache的模板系统,允许在HTML中调用C语言函数尽管PHP并非为业务逻辑设计,早期使用者仍将其同时用于模板和业务逻辑处理PHP易用性强且与Apache无缝集成,这使其成为构建动态网站的热门选择PHP激励了包括作者在内的许多人开启编程之路并投身IT行业PHP的影响力体现在:驱动了大量网站运行,并催生出WordPress和Laravel等知名工具
7.cssa year agohttps://khang-nd.github.io/7.css/7.css 是一个旨在重现 Windows 7 界面组件的 CSS 框架基于 XP.css(98.css 的扩展框架),专注语义化 HTML 和无障碍访问支持样式覆盖同时保留原始外观,可与任何前端框架兼容包含按钮、复选框、下拉菜单、进度条和带标题栏的窗口等组件提供工具提示、标签页、菜单和对话框的详细创建指南(需特定 HTML 属性)通过 7.scoped.css 支持作用域样式,可与其他框架共存包含树形视图、状态栏和磨砂玻璃窗框等高级 UI 元素的实现示例
Framework Is Showinga year agohttps://dbushell.com/2025/06/13/your-framework-is-showing-nextjs-error/Next.js框架因导致完全渲染页面崩溃的灾难性客户端错误而受到批评生产环境中的错误信息面向开发者而非用户,既不友好也缺乏细节Next.js的GitHub问题报告被自动关闭,尽管该问题已持续数月未解决Next.js被描述为'腐朽无能'的框架,且未见改进迹象批评延伸至React和Next.js开发者过于固守该框架生态圈建议在非必要情况下避免为网站使用JavaScript框架
Show HN: Tail Lens – Tailwind editor in browsera year agohttps://taillens.io/Tail Lens是一款基于浏览器的Tailwind CSS工具,支持可视化检查、编辑和预览样式类而无需切换工具。功能包括:智能样式类替代方案、任意样式类搜索与预览、自定义配置支持、悬停实时预览、元素固定对比、即时样式切换、布局与间距参考线、撤销/重做支持、高效元素导航以及一键复制样式类。该工具评分高达4.5分,已被500多名开发者采用。用户积极评价其高效性、流畅的界面和节省时间的特性。采用简单透明的定价策略:一次性支付30美元即可获得终身使用权,含免费更新、多设备无限制使用及优先邮件支持。Tail Lens全面兼容Tailwind CSS v3和v4版本,包括v4全新的CSS配置结构。
HTML spec change: escaping < and > in attributesa year agohttps://developer.chrome.com/blog/escape-attributesHTML规范更新:转义属性中的<和>符号以防止mXSS漏洞变更影响Chrome 138版本(Beta版2025年5月28日,稳定版2025年6月24日)修改了HTML片段的序列化方式(涉及innerHTML、outerHTML、getHTML()等方法)不影响HTML解析或DOM API属性获取(如getAttribute、dataset等)可能破坏通过innerHTML/outerHTML提取属性值的现有代码对比HTML与静态值的端到端测试可能需要更新此项变更通过防止突变型XSS实例提升安全性各浏览器 rollout 时间表:Chromium(2025年6月24日)、Firefox(140版本)、Safari 26 Beta(2025年9月)开放针对此变更引发问题的错误报告渠道
An origin trial for a new HTML <permission> elementa year agohttps://developer.chrome.com/blog/permission-element-origin-trialChrome 引入新的声明式HTML <permission>元素,用于在网页应用中请求权限。当前命令式权限请求方法(如地理定位API、通知API)存在权限滥用和缺乏情境化等问题。<permission>元素从Chrome 126版本开始进入源试用阶段,旨在标准化权限请求流程。该元素的核心属性包括指定权限类型的'type'和附加参数的'type-ext'。元素会根据权限状态(已授予/已拒绝等)自动更新显示文本。为保证可识别性和可用性,<permission>元素设有样式限制规范。JavaScript事件如'onpromptdismiss'和'onpromptaction'可让开发者处理用户与权限弹窗的交互。可通过检测window对象中的'HTMLPermissionElement'进行特性支持判断。该规范正与其他浏览器厂商讨论以实现潜在标准化。开发者可通过GitHub上的演示项目和源代码进行体验。
ZjsComponent: A Pragmatic Approach to Reusable UI Fragments for Web Developmenta year agohttps://arxiv.org/abs/2506.11016ZjsComponent是一个轻量级、与框架无关的Web组件,用于创建模块化和可复用的UI元素。它无需构建步骤、转译或依赖项,仅需浏览器支持JavaScript即可运行。ZjsComponent支持HTML+JS片段的动态加载和隔离,简化界面开发流程。提供DOM与代码隔离、生命周期钩子函数及传统类实例方法。专为简化Web开发而设计,最大限度降低开发者负担。
Every Google &udm=? in the world (2024)a year agohttps://serpapi.com/blog/every-google-udm-in-the-world/Google搜索网址可通过添加'udm=x'参数来筛选特定类型的搜索结果。常见的'udm'参数值包括:#2(图片)、#12(新闻)、#14(网页)、#28(购物)。较冷门的'udm'参数值包括:#15(景点)、#18(论坛)、#36(图书)。文章提供了完整的'udm'参数值列表及其对应的搜索筛选类型。'udm'功能在全球范围内适用,不同国家/地区支持的参数值可能不同。支持'udm'的国家/地区按大洲分类标注,涵盖欧洲、非洲、亚洲等区域。文末鼓励读者分享该列表,并提供了纠错或反馈的联系方式。
How we cut CKEditor's bundle size by 40%a year agohttps://ckeditor.com/blog/how-we-reduced-ckeditor-bundle-size/通过tree-shaking和包体积优化技术,CKEditor 5的打包体积减少了40%优化过程包括分析和重构代码,以消除不可tree-shake的依赖项和副作用关键策略包括使用/* #__PURE__ */注释、将编译目标更新至ES2022,以及利用package.json中的sideEffects标志团队引入元包(meta-packages)来简化安装流程并减少重复模块,提升了开发者体验使用Sonda等工具实施持续回归监控,防止未来打包体积膨胀实际测试显示显著改进,在Vite、esbuild和webpack等不同打包工具下,包体积最高减少42.7%