#webdev

2387 bookmarks tagged with #webdev · RSS Feed · ← All Tags

Do web components have a future if nobody is writing them? | Read the Tea Leaves

https://nolanlawson.com/2026/10/19/do-web-components-have-a-future-if-nobody-is-writing-them/
So whatever happens to web components in the future, and regardless of whether web developers ignore them, forget them, celebrate their demise, or write them off entirely, nothing can take this victory away from them. They are woven into the texture of the web platform in a way that can never be undone. For me, this makes me happy even if I never write another web component again.

OpenSeadragon

https://openseadragon.github.io/
An open-source, web-based viewer for high-resolution zoomable images, implemented in pure JavaScript, for desktop and mobile.

Antiquated HTML Snippets and Artefacts | Vale.Rocks

https://vale.rocks/posts/html-relics
This article doesn’t cover once-specced but now obsolete bits of HTML but instead looks at all the snippets that have wormed their way into websites as result of, or in combat against, third-party integrations, browser competition, vendor extensions, and platform-specific hacks. The bits of HTML that were included for reasons, and which have been forgotten for present irrelevance. The snippets that live on only in the markup of sites from bygone eras and in the minds of those who fought during the browser wars.

The asteroid currently hitting frontend web development | Read the Tea Leaves

https://nolanlawson.com/2026/08/23/the-asteroid-currently-hitting-frontend-web-development/
Meanwhile, Cursor and Viget have blogged about migrating their codebases from Solid and Lit, respectively, to React. Since rewrites are less expensive with agents, this may be a bit surprising: why not move to the more performant/less verbose framework? The answer (explicitly in Cursor’s case, and I suspect for Viget as well) is of course: “the agents know React.” For better or worse, React is heavily overrepresented in the training weights, and “agent experience” is starting to matter more than developer experience.

Today I Rescued 7,234 Old GIFs – Dan Q

https://danq.me/2026/07/10/rescuing-7234-gifs/
I’ve talked about imagemaps before, but the essence of them is that you define areas of an image that, when clicked, hyperlink to different places. The most-common way of doing these was always client-side imagemaps, where the HTML code itself contained all of the coordinates and, crucially, the resulting destinations. But that’s not what kind of imagemap this is.

Memories Can’t Wait—or, How I Learned to Keep Worrying About the Web - Jeffrey Zeldman Presents

https://zeldman.com/2026/07/06/memories-cant-wait-or-how-i-learned-to-keep-worrying-about-the-web/
The web is still the best hope we have for a durable, shared memory. But it requires us to be gardeners, not just tenants. To plant things in soil we control, and to tend them. Because if we don’t, the only record that we were here will be someone else’s ad inventory, and when the ads move on, we’ll move with them—into the quiet, unmarked graveyard of the deleted.

Introducing the Safari MCP server for web developers | WebKit

https://webkit.org/blog/18136/introducing-the-safari-mcp-server-for-web-developers/
In Safari Technology Preview 247, we’re introducing the Safari MCP server — a Model Context Protocol server for web developers that makes your web development and debugging workflow faster and more powerful. We know agents are increasingly integral to the coding process and the Safari MCP server gives your agent the ability to know how your code actually renders in the browser by connecting it to a Safari browser window.

Hate “The Algorithm?” RSS Is One of the Tools You’ve Been Looking For | Electronic Frontier Foundation

https://www.eff.org/deeplinks/2026/06/hate-algorithm-rss-one-tools-youve-been-looking
RSS is one of the best examples we have of the open web, where we can design and customize how we experience the internet, not the other way around. RSS has come in and out of fashion, been declared dead, and has come back, every time. Open systems are the best way forward to a free, equitable internet, and the resilience and continued reinvention of RSS has shown just how creative the web community can be with open protocols.

sneakerweb

https://sneakerweb.org/
The sneakerweb CLI lets you browse and maintain a local collection of sneakerwebsites. You can export your collection to a .snk file, you can import .snk files into your collection, and you can create new websites.

Building Ask Ricmac: my first experiment in the agentic web stack - Richard MacManus

https://ricmac.org/2026/03/06/building-ask-ricmac-my-first-experiment-in-the-agentic-web-stack/
Over the past few months I’ve been exploring what I think of as the agentic web stack — the emerging intersection of artificial intelligence with the open web. As part of that exploration, I built a small experiment for my personal website: an AI chatbot called Ask Ricmac. Its purpose is simple: instead of searching my site manually, a visitor can ask a question and receive an AI-generated answer based on the articles I’ve written over the years.

argyleink/prop-for-that: what JS knows, now CSS knows

https://github.com/argyleink/prop-for-that
Sliders, pointer position, element visibility, viewport size, battery, network, sensors — JavaScript can read all of it; CSS can't. prop-for-that writes that runtime state into --live-* and --const-* custom properties — batched and diffed down to one setProperty per frame — so your CSS can compose and react to it with plain calc() and var().

The Website Specification

https://specification.website/?ref=sidebar
A platform-agnostic specification of the technical features every decent website should have — from <title> to /.well-known/security.txt, from WCAG contrast to llms.txt. Written for humans and agents.

How building an HTML-first site doubled our users overnight

https://mohkohn.co.uk/writing/html-first/
It is not acceptable to bounce users on old browsers, users with bad network connections, users using assistive technologies. Certainly not from a monopoly public service. A lot of hype and noise is pressing us to extend the cowboy, wild-west phase of the software industry’s expansion. We should set that aside, and take ourselves seriously as a mature industry. Build a web application that works on a playstation portable on a 3G connection - if you do, it will work for all your users, and it will still work 30 years from now.

MikeSchirtzinger/silent-notetaker: Private, on-device AI meeting notetaker that runs entirely in your browser — live transcription, speaker ID, and note extraction with no audio leaving your machine (WebGPU + WASM).

https://github.com/MikeSchirtzinger/silent-notetaker?utm_campaign=ai-tinkerers-columbus-june-meetup&utm_content=link1&utm_medium=ai-tinkerers&utm_source=columbus
Private, on-device AI meeting notetaker that runs entirely in your browser — live transcription, speaker ID, and note extraction with no audio leaving your machine (WebGPU + WASM).

Obs.js – context-aware web performance for everyone

https://csswizardry.com/Obs.js/demo/
Obs.js reads a handful of browser signals (Navigator and Battery APIs) to infer connection strength, battery status, and device capability. It exposes those signals as CSS classes on the <html> element, and as properties on window.obs, so you can adapt delivery accordingly: serve lower-resolution media, forgo web fonts, disable auto-playing video… you name it.

Save For Web claws – Unsung

https://unsung.aresluna.org/save-for-web-claws/
For context, Save For Web was a popular export function in Photoshop at the peak of its use for web design, but assigned a rather unpleasant ⌘⌥⇧S shortcut. Using it often turned your hand into a… claw of sorts.

Sourcefeed

https://www.sourcefeed.app/why
Some writing wants to be a website. Some wants to be a newsletter. Some wants to be a feed. Sourcefeed is for the third kind. RSS-only. No website, no inbox, no algorithm. Subscribers read it where they choose, in whatever reader they already trust.

<script type="importmap"> HTML attribute value - HTML | MDN

https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/script/type/importmap
An import map is a JSON object that allows developers to control how the browser resolves module specifiers when importing JavaScript modules. It provides a mapping between the text used as the module specifier in an import statement or import() operator, and the corresponding value that will replace the text when resolving the specifier. The JSON object must conform to the Import map JSON representation format.

WebMCP

https://webmcp.dev/
WebMCP is an open source JavaScript library that allows any website to integrate with the Model Context Protocol. It provides a small blue widget in the bottom right corner of your page that allows users to connect to and interact with your webpage via LLM or agent.

Under the hood of MDN's new frontend

https://developer.mozilla.org/en-US/blog/mdn-front-end-deep-dive/
Last year, we launched a new frontend for MDN. The most noticeable changes were adjustments to our styles; we simplified and unified the MDN design across all of our pages. In truth, the biggest changes were not reader-visible, but rather in the overhauled code that powers our frontend. This post describes what we've done, the technologies we chose, and why we did it at all.

AI Might Be Our Best Shot At Taking Back The Open Web | Techdirt

https://www.techdirt.com/2026/03/25/ai-might-be-our-best-shot-at-taking-back-the-open-web/
The promise of the open web was colonized by internet giants. But the power of LLMs and agentic coding means we can start to take it back. We can build customized, personal software for ourselves that does what we want. We can connect with communities via open social protocols that allow us to control the relationship rather than a billionaire intermediary. This is what the Resonant Computing Manifesto was all about, and why I’ve argued ATproto is so key to that vision.

Password Protecting Static Site Content with WASM

https://al9000.com/rust/wasm/static-site-file-decryption/
I use static site generators for my sites. I call out to external APIs to do anything dynamic. The exception is password protection. I'd always thought that needed to be done dynamically on a site's host server. I realized with WASM that's not the case. Files can be encrypted and served statically with a WASM process providing decryption directly on the front end.

Fully Local Code Embeds | Aleksandr Hovhannisyan

https://www.aleksandrhovhannisyan.com/blog/local-code-embeds/
A few years ago, I was looking for a way to add interactive code sandboxes to my Markdown files without embedding third-party iframes, like the ones from Codepen or Codesandbox. Those services are great and I use them all the time to share demos, but I’ve never been a fan of using them on a blog since you have to jump back and forth between your local Markdown file and an external site to make changes to the demos. Plus, they typically load lots of JavaScript.

The 49MB Web Page | thatshubham

https://thatshubham.com/blog/news-audit
They built a system that treats your attention as an extractable resource. The most radical thing you can do is refuse to be extracted. Close the tab. Use RSS. Let the bounce rate speak for itself. These are vanity metrics until enough people stop vanishing into them and then suddenly they become a crisis.

FAQ | TinyBase

https://tinybase.org/guides/faq/
TinyBase is well suited for JavaScript applications where you need to manage structured data, such as those that have multiple 'records' to represent many of one type of object that might share fields. For example, in a Todo app, you can imagine using a Row in a Table for each todo. TinyBase makes it easy to set, get, respond to, and enumerate over this data and build user interfaces with it.

CBOR-LD 1.0

https://w3c.github.io/cbor-ld/
CBOR is a compact binary data serialization and messaging format. This specification defines CBOR-LD 1.0, a CBOR-based format to serialize Linked Data. The encoding is designed to leverage the existing JSON-LD ecosystem, which is deployed on hundreds of millions of systems today, to provide a compact serialization format for those seeking efficient encoding schemes for Linked Data. By utilizing semantic compression schemes, compression ratios in excess of 60% better than generalized compression schemes are possible. This format is primarily intended to be a way to use Linked Data in storage and bandwidth constrained programming environments, to build interoperable semantic wire-level protocols, and to efficiently store Linked Data in CBOR-based storage engines.

Pluralistic: The web is bearable with RSS (07 Mar 2026) – Pluralistic: Daily links from Cory Doctorow

https://pluralistic.net/2026/03/07/reader-mode/
It's almost impossible to overstate how superior RSS is to the median web page. Imagine if the newsletters you followed were rendered with black, clear type on a plain white background (rather than the sadistically infinitesimal, greyed-out type that designers favor thanks to the unkillable urban legend that black type on a white screen causes eye-strain). Imagine reading the web without popups, without ads, without nag screens. Imagine reading the web without interruptors or "keep reading" links.

Introduction - Neobrutalism components

https://www.neobrutalism.dev/docs
Neobrutalism is a mix of regular brutalism in web design and more modern typography, illustration, and animation standards. Neobrutalism refuses the usual components of UX-UI design and embraces uncomfortable design elements, and it is more fearless to use distinctive color palettes.

Introducing Markdown for Agents

https://blog.cloudflare.com/markdown-for-agents/
Here’s how it works. To fetch the markdown version of any page from a zone with Markdown for Agents enabled, the client needs to add the Accept negotiation header with text/markdown as one of the options. Cloudflare will detect this, fetch the original HTML version from the origin, and convert it to markdown before serving it to the client.

gradient.horse

https://gradient.horse/
Honestly I just wanted to play around with gradients. But gradients without anything on the horizon lack something, so I added horses. Since I can't draw horses, now you can draw them. And watch them parade across the screen alongside horses drawn by people you probably wouldn't like. Or maybe you would, how should I know?!

Server-Sent Events Beat WebSockets for 95% of Real-Time Apps (Here's Why) - DEV Community

https://dev.to/polliog/server-sent-events-beat-websockets-for-95-of-real-time-apps-heres-why-a4l?context=digest
Everyone defaults to WebSockets for real-time features. Most shouldn't. The reality: 95% of "real-time" applications only need server → client updates. Chat notifications. Live dashboards. Stock tickers. Log streams. AI responses. WebSockets give you bidirectional communication. But bidirectional comes with a tax: complexity, resource overhead, scaling challenges, debugging nightmares. Server-Sent Events (SSE) do one thing: stream data from server to client. They do it brilliantly. And for most applications, that's all you need.

Kroki!

https://kroki.io/
Kroki provides a unified API with support for BlockDiag (BlockDiag, SeqDiag, ActDiag, NwDiag, PacketDiag, RackDiag), BPMN, Bytefield, C4 (with PlantUML), D2, DBML, Ditaa, Erd, Excalidraw, GraphViz, Mermaid, Nomnoml, Pikchr, PlantUML, Structurizr, SvgBob, Symbolator, TikZ, UMLet, Vega, Vega-Lite, WaveDrom, WireViz... and more to come!

lukilabs/beautiful-mermaid

https://github.com/lukilabs/beautiful-mermaid?tab=readme-ov-file#rendermermaidtext-options-promisestring
Mermaid is the de facto standard for text-based diagrams. It's brilliant. But the default renderer has problems: Aesthetics — Might be personal preference, but wished they looked more professional Complex theming — Customizing colors requires wrestling with CSS classes No terminal output — Can't render to ASCII for CLI tools Heavy dependencies — Pulls in a lot of code for simple diagrams We built beautiful-mermaid at Craft to power diagrams in Craft Agents. It's fast, beautiful, and works everywhere—from rich UIs to plain terminals.

Broadcast Channel API - Web APIs | MDN

https://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_API
The Broadcast Channel API allows basic communication between browsing contexts (that is, windows, tabs, frames, or iframes) and workers on the same origin. By creating a BroadcastChannel object, you can receive any messages that are posted to it. You don't have to maintain a reference to the frames or workers you wish to communicate with: they can "subscribe" to a particular channel by constructing their own BroadcastChannel with the same name, and have bi-directional communication between all of them.

Submitted for Your Approval

https://intertwingly.net/blog/2026/01/28/Twilight-Zone.html
The blog demo was a real Rails application running full stack in your browser. Action Cable over BroadcastChannel. Active Record over IndexedDB. The editor runs on WebContainers — Node.js and npm, entirely in browser memory. The same patterns, the same code structure, no server. What originally motivated this is now child's play to build. I want judges to be able to record scores during an event despite unreliable Wi-Fi. Downloading the agenda and that judge's scores entered to date and then running the existing ERB views over IndexedDB just works. Posting updates in real time when possible and batch when connectivity resumes is straightforward. Since each judge records their own scores, there are no merge conflicts. Mount the resulting offline SPA via Rack middleware, and everything works transparently.

Cursor is better at marketing than coding • The Register

https://www.theregister.com/2026/01/26/cursor_opinion/
From where I sit, what makes the Cursor case more dangerous than just a failed hack‑week project is that the hype is baked into its methodology. The "experiment" wasn't presented as what it really was: an interesting, but messy, internal learning exercise. No, it was rolled out as a milestone that conveniently confirmed the company's long‑running autonomous agent advertising. Missing from the story were basics any senior engineer would demand: passing Continuous Integration (CI), reproducible builds, and real benchmarks that show the browser doing more than limping through a hello-world page.

rustfs/rustfs: 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting migration and coexistence with other S3-compatible platforms such as MinIO and Ceph.

https://github.com/rustfs/rustfs
🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting migration and coexistence with other S3-compatible platforms such as MinIO and Ceph.

seaweedfs/seaweedfs: SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. Filer supports Cloud Drive, xDC replication, Kubernetes, POSIX FUSE mount, S3 API, S3 Gateway, Hadoop, WebDAV, encryption, Erasure Coding. Enterprise version is at seaweedfs.com.

https://github.com/seaweedfs/seaweedfs/
SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. Filer supports Cloud Drive, xDC replication, Kubernetes, POSIX FUSE mount, S3 API, S3 Gateway, Hadoop, WebDAV, encryption, Erasure Coding. Enterprise version is at seaweedfs.com.

How to Make a Damn Website

https://lmnt.me/blog/how-to-make-a-damn-website.html
A lot of people want to make a website but don’t know where to start or they get stuck. That’s in part because our perception of what websites should be has changed so dramatically over the last 20 years.

Resources for the Personal Web: A Follow-Up Guide · brennan.day

https://brennan.day/resources-for-the-personal-web-a-follow-up-guide/
We must find moments of joy in the horror of our present. Joy is not a prize for getting through it all—joy is a tool that enables us to get through the horror. Our joy is an act of resistance. The independent web is already here, quietly thriving while Big Tech implodes under its own extractive weight. All you have to do is join it.

Host your own webmention receiver | Brain Baking

https://brainbaking.com/post/2021/05/beyond-webmention-io/
Yesterday’s “Webmentions Beyond Webmention.io” IndieWeb event (see notes) exposed a problem: many bloggers exploring the IndieWeb and Webmention world simply make use of webmention.io, a hosted solution that handles receiving mentions, enabling you to treat the whole system as a black box. Aaron wondered: “why are so many people using webmention.io?” - and the answer is quite obvious: because it’s easy. Just add <link rel="webmention href="https://webmention.io/something"> to your HTML header after signing up and you’re done.

Various ways to include comments on your static site

https://darekkay.com/blog/static-site-comments/
Static site generators like Eleventy, Jekyll or Hugo have become a popular choice for a blogging platform or a CMS. When using something like WordPress or Medium, you get a comment section out of the box. It isn't as straightforward in a static environment. In this article, I'll summarize different options to provide your audience with a way to leave a comment.

A Quick Guide to Everything I Know about Webmentions

https://reillyspitzfaden.com/wiki/tutorials/webmention-tutorial/
Webmentions are great! They're a way that personal websites can interact with each other — you can notify another site when you link to them, and receive notifications when someone links to you. I find them to allow for some of the nicer parts of social interaction on the web, but with much more agency and much less inflammatory or harmful material than something like Facebook or Instagram. However, then can also be a bit intimidating, especially for non-developers.

What Happened To WebAssembly

https://emnudge.dev/blog/what-happened-to-webassembly/
On every WebAssembly discussion, there is inevitably one comment (often near the top) asking what happened. It seems to have been advertised as a world-changing advancement. Was it just oversold? Was it another JVM applet scenario, doomed to fail?

Keynote: The Death of the Browser - Rachel-Lee Nabors, AgentQL - YouTube

https://www.youtube.com/watch?v=pznpsgZqlGQ
In ten years, Internet Browsers may be a nostalgic memory. As enterprises face mounting API costs and integration headaches, a new paradigm is emerging. The internet's evolution from an open highway into a maze of walled gardens and monetized APIs has created significant challenges for businesses—but it has also set the stage for accessing and organizing the world’s information. This lightning talk traces our journey from the invention of the browser to the arms race of scraping for data and access to it to the dawn of AI agents, showing how the challenges of today opened the door to tomorrow. See how technologies refined by the web scraping community are combining with large language models to create practical alternatives to costly API integrations. From the rise of platform monopolies to the emergence of AI agents, this timeline-based exploration will help you understand where we've been, where we are, and where we're heading. Join us for a glimpse of how AI agents are enabling a return to the era of free information with ""the web as the API.

Web development is fun again

https://ma.ttias.be/web-development-is-fun-again/
It’s also not the typing of code that I really enjoy, nor is it the syntax or structure or boilerplate that’s required to build anything. It’s the fact you get to build something out of nothing, writing code was just how you got there. And with today’s tooling, that saves a ton of time. AI really has made web development fun again.

Origin private file system - Web APIs | MDN

https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system
The origin private file system (OPFS) is a storage endpoint provided as part of the File System API, which is private to the origin of the page and not visible to the user like the regular file system. It provides access to a special kind of file that is highly optimized for performance and offers in-place write access to its content.

The Silicon Valley Stack Doesn’t Work Here: Why Africa Will Lead the Post-Bloat Web | by Paul Allies | Dec, 2025 | Medium

https://paulallies.medium.com/the-silicon-valley-stack-doesnt-work-here-why-africa-will-lead-the-post-bloat-web-e7c34b577c61
While the West builds for the 1%, Africa has the opportunity — and the necessity — to lead the world in building for the next billion users. We don’t need to catch up to their bloated standards; we need to leapfrog them. By embracing a “back-to-basics” approach — prioritising Server-Side Rendering (SSR), lightweight libraries, and “Offline-First” architectures — Africa can become the global hub for the sustainable, lean web.

You can make up HTML tags: (Maurycy's blog)

https://maurycyz.com/misc/make-up-tags/
Browsers handle unrecognized tags by treating them as a generic element, with no effect beyond what’s specified in the CSS. This isn’t just a weird quirk, but is standardized behavior. If you include hyphens in the name, you can guarantee that your tag won’t appear in any future versions of HTML.

delphitools - Handmade Developer Tools

https://tools.rmv.fyi/
A collection of small, low stakes and low effort tools. No logins, no registration, no data collection. I can't believe I have to say that. Long live the handmade web. If you find these tools useful, I'm glad. You don't owe me anything. But if you're an artist, feel free to email me your work. I'd love to see it.

Scripting News: The web as your plan B

http://scripting.com/2025/12/22/220039.html?title=theWebAsYourPlanB
My advice -- think this through, now. And if you can't see a way that you share in the success of the company behind Bluesky, which we know very little about, then I urge you to at least have the web as a backup. Use a standard format to broadcast your writer's work to places outside the AT Proto-verse, so we can pick up your signal, and you'll still be on the air if they yank your chain. This alone might get the Bluesky folk to listen to you more carefully. My experience, no matter how much you want, you can't wish away the economics of this stuff.

About - Ringspace Trusted Webrings: Protocol Specification

https://ringspace.net/about.html
Ringspace is an attempt to revive the old concept of webrings, but with an added twist: mutual verification of identity and reputation. Historically, webrings were simply a “doubly-linked list” of sites, in which each member provided links to the previous and next members in the ring. A simple concept, brilliantly effective in its time to organize the web into discrete, discoverable communities in a time before search engines.

Introducing Ringspace: A Proposal for the Human Web: Taggart Tech

https://taggart-tech.com/ringspace/
Ringspace is a proof-of-concept for how we might modernize the webring concept to provide a reasonable amount of trust within a small human community of creators. It attempts to provide readers of sites with a guarantee that the site is a) who they claim to be, and b) in good standing in the community. With a simple CLI and an accompanying browser extension (and a little asymmetric cryptography), the webring model blossoms into a trust model suitable for small to medium-sized communities.

The Web Platform is a Triumph of Object-Oriented Programming | That HTML Blog

https://thathtml.blog/2025/12/the-dom-is-a-triumph-of-object-oriented-programming/
It’s not just that web APIs often take advantage of OOP. They would not exist without OOP! Virtually every web API you have ever used is designed specifically within the OOP paradigm. And every entity in the lifecycle of a web page is based on objects. These objects are instances of classes and in a great many cases these classes are subclasses of other classes. This means that key functionality is spread across a class hierarchy. That isn’t a bug, it’s a feature! And this means that it’s absurd to think that to write a web app you need to reach for a “framework”. The Web Platform is a framework.

Why RSS matters

https://werd.io/why-rss-matters/
RSS has always worked quietly in the background. In a moment when the web is being reshaped by enclosure, consolidation, and algorithmic mediation, its reliability is exactly what we need. It offers a simple, durable way for publishers to keep control of their distribution and for readers to keep control of their attention, without permission, platform lock-in, or hidden agendas. If we treat RSS not as a relic of an earlier web but as the strategic infrastructure it already is, it can continue to anchor a more open, more resilient, and more humane internet for decades to come.

Useful patterns for building HTML tools

https://simonwillison.net/2025/Dec/10/html-tools/
I’ve started using the term HTML tools to refer to HTML applications that I’ve been building which combine HTML, JavaScript, and CSS in a single file and use them to provide useful functionality. I have built over 150 of these in the past year, almost all of them written by LLMs. This article presents a collection of useful patterns I’ve discovered along the way.

I built a tiny RSS generator for my Advent of Code solutions : Juha-Matti Santala

https://hamatti.org/posts/i-built-a-tiny-rss-generator-for-my-advent-of-code-solutions/
This week, I started solving Advent of Code problems and this time I’m publishing my explanations as part of my Digital Garden and that doesn’t support separated RSS feeds for a subset of notes. Two IndieWeb principles that I love are Make what you need and Use what you make. In that spirit, I built a tiny tool today afterwork to enable people to follow my Advent of Code explanations via RSS.

In 1995, a Netscape employee wrote a hack in 10 days that now runs the Internet - Ars Technica

https://arstechnica.com/gadgets/2025/12/in-1995-a-netscape-employee-wrote-a-hack-in-10-days-that-now-runs-the-internet/
The 10-day creation story has become programming folklore, but even with that kernel of truth we mentioned, it tends to oversimplify the timeline. Eich’s sprint produced a working demo, not a finished language, and over the next year, Netscape continued tweaking the design. The rushed development left JavaScript with quirks and inconsistencies that developers still complain about today. So many changes were coming down the pipeline, in fact, that it began to annoy one of the industry’s most prominent figures at the time.

Django 6.0 released | Weblog | Django

https://www.djangoproject.com/weblog/2025/dec/03/django-60-released/
The Django team is happy to announce the release of Django 6.0. The release notes assembles a mosaic of modern tools and thoughtful design. A few highlights are: Template Partials: modularize templates using small, named fragments for cleaner, more maintainable code. (GSoC project by Farhan Ali Raza, mentored by Carlton Gibson) Background Tasks: run code outside the HTTP request-response cycle with a built-in, flexible task framework. (Jake Howard)

Being of the Web – CogDogBlog

https://cogdogblog.com/2011/08/being-of-the-web/
If you are “of” the web, you are doing things that make content available, leaving it there, making it findable. Twitter takes place “on” the web (and elsewhere) but the older rings of growth die off as the search is only able to return just the newest few weeks of stuff. Twitter thus creates debris rings of dead web content.

Of the web

https://werd.io/of-the-web/
most web apps are on the web, but not of it. This seems right to me, and I suspect web instigators like Tim Berners-Lee would agree. The odd thing is that, for a while, desktop software did exactly this. Word would save a document in a particular format, and another application written by someone else entirely could open that document. When we moved to the cloud, we signed up for a computing environment that was as much about siloing and isolation as much as it was about ease of access and maintenance.

Using CSS nesting - CSS | MDN

https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Nesting/Using
The CSS nesting module allows you to write your stylesheets so that they are easier to read, more modular, and more maintainable. As you are not constantly repeating selectors, the file size can also be reduced. CSS nesting is different from CSS preprocessors such as Sass in that it is parsed by the browser rather than being pre-compiled by a CSS preprocessor. Also, in CSS nesting, the specificity of the & nesting selector is similar to the :is() function; it is calculated using the highest specificity in the associated selector list.

Custom Asidenotes – Eric’s Archived Thoughts

https://meyerweb.com/eric/thoughts/2025/10/29/custom-asidenotes/
Previously on meyerweb, I crawled through a way to turn parenthetical comments into sidenotes, which I called “asidenotes”. As a recap, these are inline asides in parentheses, which is something I like to do. The constraints are that the text has to start inline, with its enclosing parentheses as part of the static content, so that the parentheses are present if CSS isn’t applied, but should lose those parentheses when turned into asidenotes, while also adding a sentence-terminating period when needed.

The indie web is here to make the internet weird again | The Verge

https://www.theverge.com/column/829831/indie-web-geocities-neocities
Depending on how social media changes over the next few years, I wouldn’t be surprised to see more people leave and give the indie web a try. Much like vinyl, it will probably never return to its peak like in the pre-Yahoo GeoCities days, but I think there will continue to be a consistent group of people who flock to this side of the internet to escape the modern internet.

Shuffling a CSS grid using custom properties | Christian Heilmann

https://christianheilmann.com/2025/11/24/shuffling-a-css-grid-using-custom-properties/
The grid above shuffles around on every reload or when you active `shuffle` button. There are many ways to achieve this effect, but this example uses only CSS properties to set the order of the grid items. The HTML is not altered and there is no DOM manipulation other than accessing the CSS properties of the parent element. This should make this highly performant. The JavaScript code rotates the order of the items in the grid by changing the CSS variables that define their order.

Servo 0.0.2 hints at a real Rust alternative to Chromium • The Register

https://www.theregister.com/2025/11/18/servo_002_arrives/
In summary, there are a handful of non-Chromium based alternative browsers out there, but not many and they do have some limitations. In the world of web components to embed into apps, there's really no choice except Chromium. That is why Servo matters. It's FOSS, it's independent, and it's more or less the original Rust project.

Rewiring Mozilla: Doing for AI what we did for the web

https://blog.mozilla.org/en/mozilla/rewiring-mozilla-ai-and-web/
Mozilla has always been focused on making the internet a better place. Which is why pushing AI in a different direction than it’s currently headed is the core focus of our strategy right now. As AI becomes a fundamental component of everything digital — everything people build on the internet — it’s imperative that we step in to shape where it goes.

Going build-free with native JavaScript modules | Weblog | Django

https://www.djangoproject.com/weblog/2025/nov/19/going-build-free-with-native-javascript-modules/
Modern CSS supports many of the features natively that the build tools were created for. CSS nesting to organize code, variables, @supports for feature detection. JavaScript ES6 / ES2015 was a big step forward, and the language has been progressing steadily ever since. It now has native module support with the import / export keywords Meanwhile, with HTTP/2 performance improvements, parallel requests can be made over the same connection, removing the constraints of the HTTP/1.x protocol.

Color Palette Pro

https://colorpalette.pro/?color=oklch%2817%25+0.177+46.9%29&paletteType=ana&paletteStyle=diamond&colorFormat=oklch&effects=0%2C0%2C0%2C0
The ColorPalette Pro synthesizer generates 6 different color palettes, in 4 styles, across 8 color spaces and formats. Export, share, download, and copy palettes to create beautiful artworks, websites, and designs. Designed and developed by Ryan Feigenbaum.

git-pages/git-pages: Scalable static site server for Git forges (like GitHub Pages) - Codeberg.org

https://codeberg.org/git-pages/git-pages
git-pages is a static site server for use with Git forges (i.e. a GitHub Pages replacement). It is written with efficiency in mind, scaling horizontally to any number of deployed sites and concurrent requests and serving sites up to hundreds of megabytes in size, while being equally suitable for single-user deployments.

Grebedoc — static site hosting for git forges

https://grebedoc.dev/
In short: a service that publishes the pages branch in your Git repository as a website on your domain; think GitHub Pages if it was open source and community operated. More specifically, it is a public deployment of git-pages and Caddy configured to work especially with Codeberg but also with other Git forges. It is operated by Catherine 'whitequark' and teammates, and currently deployed using Rage4 anycast infrastructure routing to VPSes in six regions (Europe, North America East, North America West, South America, East Asia, Australia), with site contents stored on Tigris and backed up to Wasabi.

Syntax Highlighting in Web Component Templates

https://remysharp.com/2025/11/12/syntax-highlighting-in-web-component-templates
The extremely quick read is, add /* HTML */ to the front of the template. Case sensitive and space sensitive (though hopefully one day it won't be so strict). Now highlighting and prettier (with save and fix) works. Note that you need the es6-string-html VS Code extension for this to highlight correct (something I had forgotten I had installed).

Why Tim Berners-Lee still believes in the web | The Verge

https://www.theverge.com/podcast/814552/tim-berners-lee-world-wide-web-ai-future-interview
The right place to end up is where you’re totally in control of your data. As the power of local devices becomes greater, then the amount of stuff which gets stored locally increases… a lot of the things that people are building out there on the web are local-first, meaning that they’re designed to be able to work without the cloud. They store data either on the web, or they store the data on your local device. The good place to be is that the data is all stored on your local device. The inference is happening in your device, and you’re in control.

In Praise of dhh

https://okayfail.com/2025/in-praise-of-dhh.html
The tent is being made smaller. To stay in the tent going forward you will increasingly be forced to agree with David. I’ve been involved with Ruby for seventeen years: why am I the one being pushed out in order to make space for toxic and abusive dudes?

Abandonware of the web: do you know that there is an HTML tables API? | Christian Heilmann

https://christianheilmann.com/2025/10/08/abandonware-of-the-web-do-you-know-that-there-is-an-html-tables-api/
When people turn data into HTML tables using JavaScript, they either use the DOM methods (createElement() and the likes), but most of the time just append a huge string and use innerHTML, which always is a security concern. However, did you know that HTML tables also have an old, forgotten API ? Using this one, you can loop over tables, create bodies, rows, cells, heads, footers, captions an summaries (yes, HTML tables have all of those) and access the table cells. Without having to re-render the whole table on each change.

Your URL Is Your State

https://alfy.blog/2025/10/31/your-url-is-your-state.html
This got me thinking: how often do we, as frontend engineers, overlook the URL as a state management tool? We reach for all sorts of abstractions to manage state such as global stores, contexts, and caches while ignoring one of the web’s most elegant and oldest features: the humble URL.

Metorial - Integration Platform for AI

https://metorial.com/blog/jquery-age-of-ai
If you're building with AI right now, connecting agents to tools, wiring up APIs, trying to get Claude to talk to your database, you're living through something weirdly familiar (I think). It's the same chaotic, fragmented, "why is this so hard" energy that web developers felt in the mid-2000s when every browser implemented JavaScript differently and cross-browser compatibility was a prayer, not a promise.

WebFinger

https://webfinger.net/
WebFinger is used to discover information about people or other entities on the Internet that are identified by a URI using standard Hypertext Transfer Protocol (HTTP) methods over a secure transport. A WebFinger resource returns a JavaScript Object Notation (JSON) object describing the entity that is queried. The JSON object is referred to as the JSON Resource Descriptor (JRD).

Scripting News: Think different about developers

http://scripting.com/2025/10/23/133525.html#a133630
This is the same problem web devs have, we have to become resellers for Amazon S3. Why can't Amazon, who already has an account for every freaking person in the world, let the user own their own data, which I believe they would reallllly like. I don't want access to it, I just want to make great tools for them to use. And they're free to use other products with the data. This helps encourage data format standards. It's why the PC software market was so much more vibrant than the web developer market.

The smallest Docker image to serve static websites | Florin Lipan

https://lipanski.com/posts/smallest-docker-image-static-website
Until recently, I used to think that serving static websites from Docker would be a waste of bandwith and storage. Bundling nginx or various other heavy runtimes inside a Docker image for the sole purpose of serving static files didn’t seem like the best idea - Netlify or Github Pages can handle this much better. But my hobby server was sad and cried digital tears.

The Design Leaders Are Lying to You — Suff Syed

https://www.suffsyed.com/futurememo/the-design-leaders-are-lying-to-you
Every designer now faces a choice. You can continue seeking guidance from leaders who are excellent generals of yesterday's war. Continue perfecting skills optimized for a diminishing paradigm, hoping the transformation will somehow spare you. That your craft will be recognized. That your leaders will guide you through. Or recognize that the paradigm has already shifted. That the work determining design's future is happening now, in rooms where most designers are not present. And that if we want to shape that future, we must be willing to fundamentally transform what it means to practice design.

inessential: Why NetNewsWire Is Not a Web App

https://inessential.com/2025/10/04/why-netnewswire-is-not-web-app.html
If it were a web app instead, I could drop the developer membership, but I’d have to pay way more money for web and database hosting. Probably need a CDN too, and who knows what else. (I don’t have recent web app experience, so I don’t even know what my requirements would be, but I’m sure they’d cost substantially more than a couple hundred bucks a year.) I could charge for NetNewsWire, but that would go against my political goal of making sure there’s a good and free RSS reader available to everyone.

Personal data storage is an idea whose time has come

https://blog.muni.town/personal-data-storage-idea/
Personal Data Storage has long since escaped containment as a concept pertaining to any specific protocol. Some implementations of it will be more mainstream than others, but pragmatic data coops can be protocol-agnostic and storage formats are transmutable. As long as we have sufficient control of our own data there will always be a way to restart our social graph and digital presence elsewhere in the event of platform collapse. Let’s make the web personal again.

Simple automated deployments using git push

https://garrido.io/notes/simple-automated-deployments-git-push/
Using git push remains one of my favorite ways of deploying software. It’s simple, effective, and you can stretch it significantly until you need more complex workflows. I’m not referring to using git push to trigger a Github action which builds and deploys software. I’m talking about using git push web main to deploy your main branch to a server that you’ve named web.

I like AI slop and I cannot lie (Interconnected)

https://interconnected.org/home/2025/09/26/slop
I looked in my home directory in my desktop Mac, which I don’t very often (I run a tidy operation here), and I found a file I didn’t recognise called out.html. Here is out.html. For the benefit of the tape: it is a half-baked GeoCities-style homepage complete with favourite poems, broken characters, and a "This page is best viewed with Netscape Navigator 4.0 or higher!" message in the footer. The creation date of the file is March of this year. I don’t know how it got there. Maybe my computer is haunted?

The Ruby community has a DHH problem | tekin.co.uk

https://tekin.co.uk/2025/09/the-ruby-community-has-a-dhh-problem
Silence and appeasement is only emboldening DHH to ratchet up the toxicity and allowing the damage to continue. Perhaps if enough of those in positions of power call him out on his bullshit he’ll at at least follow his own advice and keep his politics to himself. More importantly though, it will send a clear message to the wider Ruby community (and those who may be considering joining it) that the majority does not stand with DHH and his toxic views.

Playing tricks with web browser tabs - sizeof(cat)

https://sizeof.cat/post/tricks-with-web-browser-tabs/
For the past few months I've been getting several emails and people were asking me about the tomfoolery regarding my website and the web browser tabs. Basically people were wondering how the tab title and favicon change (to Reddit, Instagram, TikTok) when the tab with my website gets deactivated, and when it's reactivated it changes back to the initial text/image. Check it out yourself, click on another web browser tab, and then click back to this one. Interesting, eh? Annoying, eh? Can't decide?

Inside the Behind the Scenes Battle for the Future of the Web - Business Insider

https://www.businessinsider.com/google-microsoft-openai-fight-standards-limit-ai-access-websites-2025-9
In today's new AI era, products such as Google's AI Overviews and AI Mode, OpenAI's ChatGPT, and Perplexity deliver answers directly, often eliminating the need to visit the original source. These systems still rely on content scraped for free, but by cutting off traffic, they threaten the revenue that funds the creation of quality information online.

Tiny Awards

https://tinyawards.net/
This is the home of the Tiny Awards, which, since 2023, has celebrated the best of the small, poetic, creative, handmade web. The Tiny Awards exist because we thought it was important to shine a spotlight on the sorts of personal web projects that tend to get overlooked by more traditional, larger or more commercial awards.

Building the Hundred-Year Web Service with htmx - Alexander Petros - YouTube

https://www.youtube.com/watch?v=lASLZ9TgXyc
In the fast-moving JS ecosystem, keeping your software current can be a huge drain on resources. But what if there was way to write software that had minimal maintenance burden today and didn't inspire dread in the junior developers of tomorrow? Built into the web platform are all the capabilities necessary to create useful, networked services that last for decades—we just have to build in ways that takes advantage of them.

You Want Technology With Warts

https://entropicthoughts.com/you-want-technology-with-warts
Every single wart that annoys us today, used to be a reasonable feature that someone relied on in their production code. Every wart we see today is a testament to the care the maintainers put into backward compatibility. If we choose a technology today, we want one that saves us from future maintenance by keeping our wartful code running – even if we don’t yet know it is wartful. The best indicator of this is whether the technology has warts today.

Faircamp

https://simonrepp.com/faircamp/
Point Faircamp to a folder hierarchy containing your audio files. Within minutes, Faircamp builds a complete website presenting your work. The resulting site requires no database, no programming, no maintenance, and is compatible with virtually every webhost on this planet.

SmallJS - Home

https://small-js.org/Home/Home.html
SmallJS is a free and open source implementation of the elegant and powerful Smalltalk-80 (ST) language. It compiles to JavaScript (JS) that runs in modern browsers or in Node.js.

live laugh blog | you do not have to use generative ai "art" in your blogs because there are websites where you can get real, nice images for free

https://livelaugh.blog/posts/non-ai-images-for-blogs-websites/
too many people are doing a great disservice to their writing by garnishing it with generative-ai (artificial intelligence) - ethics and values aside (lol), it looks tacky and it cheapens the words around it. there are so many human-created, realistic, and beautiful images available for you to use on your blogs, websites and projects for free. the following is a list that i believe just scratches the surface of what's available out there.

Litestar is worth a look

https://www.b-list.org/weblog/2025/aug/06/litestar/
A few years ago at work, I had a project which offered an opportunity to look at the new generation of async-first, type-hint-driven Python web frameworks. For reasons which aren’t particularly relevant today, on that project I ended up choosing Litestar, which is the one that doesn’t have a ravenous all-consuming hype machine surrounding it. And I’m very glad I did, because today I’m more convinced than ever it was the right choice, and for the last 18 months or so every new project I’ve started at my day job has been built with Litestar.

slash pages

https://slashpages.net/
Slash pages are common pages you can add to your website, usually with a standard, root-level slug like /now, /about, or /uses. They tend to describe the individual behind the site and are distinguishing characteristics of the IndieWeb.

Most RESTful APIs aren’t really RESTful | Florian Krämer

https://florian-kraemer.net//software-architecture/2025/07/07/Most-RESTful-APIs-are-not-really-RESTful.html
Fielding’s rules emphasize that a truly RESTful API should embrace hypermedia (HATEOAS) as the central mechanism for interaction, not just use HTTP as a transport. REST is protocol-independent at its core; HTTP is simply a convenient way of using it. Clients should discover and navigate resources dynamically through links and standardized relations embedded in representations — not rely on hardcoded URI structures, types, or external documentation. This makes REST systems loosely coupled, evolvable, and aligned with how the web itself operates: through representation, discovery, and transitions. REST isn’t about exposing your internal object model over HTTP — it’s about building distributed systems that behave like the web.

Getting Started | Milkdown

https://milkdown.dev/docs/guide/getting-started
Milkdown is a powerful WYSIWYG markdown editor that combines the simplicity of markdown with the flexibility of a modern editor. It's designed to be lightweight yet extensible, making it perfect for both simple and complex editing needs.

Web Developer's Guide to Midjourney

https://www.skeptrune.com/posts/how-to-use-midjourney/
Midjourney's learning curve is steep, but climbing it unlocks a superpower for developers and entrepreneurs. Learn how to create stunning, cohesive image sets that actually work for your projects. Go from building style reference galleries to using the describe feature for professional marketing visuals that don't scream "AI-generated."

Home | Lottie Animation Community Website

https://lottie.github.io/
​​Lottie is an open-source vector graphics animation file format . It was first created in 2015 by Hernan Torrisi as an export format for the export and playback of animations from Adobe After Effects. It is now a highly popular animation format used on the web, mobile applications and other systems with multiple independent renderer implementations and creation support.

Why I use WebAssembly - nasso

https://nasso.dev/blog/why-i-use-wasm
Finally, we reach the juicy part. My favorite way to use WebAssembly is as a way to share code between platforms. Write the core logic of your application in Ru… a language that can easily compile to native code and WebAssembly 😊. In this architecture, most of your code is shared between the “native” and the “web” variants of your app. Maybe some platform-specific features will need to be turned on or off with compile-time flags, but if you’re building a cross-platform app, you are probably already dealing with different code paths for different platforms anyway. With WebAssembly, the web just becomes another platform to target!

Text Fragments Enable Deep Linking on Web Pages - TidBITS

https://tidbits.com/2025/04/23/text-fragments-enable-deep-linking-on-web-pages/
Wouldn’t it be nice if you could link to specific bits of text on a Web page rather than forcing people following your links to scan the page for whatever piece of information you’re trying to convey? With full support from major browser manufacturers appearing late last year, the Web has finally caught up with hypertext theory from the previous century.

MicroW8

https://exoticorn.github.io/microw8/
MicroW8 is a WebAssembly based fantasy console inspired by the likes of TIC-80, WASM-4 and PICO-8. The initial motivation behind MicroW8 was to explore whether there was a way to make WebAssembly viable for size-coding. (Size coding being the art of creating tiny (often <= 256 bytes) graphical effects and games.) The available examples so far are all in this space, however, I very carefully made sure that all design decisions make sense from the point of view of bigger projects as well.

The IndieWeb Doesn't Need to "Take Off" - Susam's Quick Notes

https://susam.net/indieweb-does-not-need-to-take-off.html
I feel that such claims about the IndieWeb not "taking off" are either stating the obvious or, if that's not the intention, completely missing the point. It's like saying that gardening hasn't taken off because most people buy their vegetables at the supermarket. The IndieWeb doesn't need to "take off" to be valuable to those who participate in it. Maintaining a personal website is about owning your digital presence, embracing creative freedom, and expressing your individuality! It's not about appealing to the masses!

Scroll Buddy

https://focusfurnace.com/scroll_buddy.html
Instead of a boring scrollbar thought it would be fun to have an animated stick figure that walks up and down the side of your page when you scroll.

Web Performance Calendar » Signals: the nitty-gritty

https://calendar.perfplanet.com/2022/signals-the-nitty-gritty/
Mostly revealed to the Web by Solid.js, shortly after embraced by Preact, but also blended into usignal, or implemented by many others, this pattern convinced tons of developers that hooks might not be the best solution to reactivity out there, but while the concept might look and feel super simple and natural to deal with, the complexity behind spans from 30LOC to pretty convoluted code bases.

halcy log - Mastodon.py in the browser!

https://halcy.de/blog/2025/02/18/mastodonpy-in-the-browser/
Today, I learned that PyScript exists. PyScript is, at its core, some rigging to make Pyodide, a WebAssembly port of the CPython Python interpreter, real easy to use as a proper client-side web scripting language. Just include one <script> tag and now <script type="py"> is a valid thing you can have in your website. Put Python code inside of it, interact with the DOM, the works. I think that rules and/or is kind of horrifying, depending. Obviously, for me, the immediate question was: Can this run Mastodon.py? And the answer is: Yes, very competently.

Belle Nuit Montage - A web component called tiny-ps

https://belle-nuit.com/a-web-component-called-tiny-ps
What if you could add PostScript code just into your HTML code and forget about all the JavasScript? What if you could configure it just with the properties of the tag, having your PostScript graphics at the size as you want and at the format you want? Like an canvas tag, but without JavaScript. Like an SVG tag, but programmable.

The definitive guide to using Django with SQLite in production | alldjango.com

https://alldjango.com/articles/definitive-guide-to-using-django-sqlite-in-production
Especially for side projects with limited traffic requirements and scaling concerns, the promise of SQLite is that it can remove a lot of ongoing hassles. Without a separate database, cache, or queue, there is less network traffic (because the SQLite file is local), and less servers to manage, maintain, and backup.

Building a QR Code HTML Web Component | Scott Jehl, Web Designer/Developer

https://scottjehl.com/posts/q-r/
Recently, a friend asked if I knew of a Web Component that generates a QR Code from meaningful HTML. She said that there seemed to be plenty of options for creating QR codes in general, but none that worked by extending already-useful HTML instead of just configuring it all with JavaScript. I couldn't find any either, but thinking through these kinds of patterns is probably what I enjoy most about working on the web, so I thought I'd write up how I'd make one.

Taking regular screenshots of my website – alexwlchan

https://alexwlchan.net/2024/scheduled-screenshots/
I was mulling over this for a while, and I had an idea. I like having a set of screenshots as a visual history of the stuff I’ve worked on (including this site), but I’m not very good at remembering to create them. I just finished a bunch of design tweaking on this site, and I completely forgot to take a screenshot of what it looked like before I started making changes.

The Pixel Canvas Shimmer Effect

https://ryanmulligan.dev/blog/pixel-canvas/
I recently stumbled on a super cool, well-executed hover effect from the clerk.com website where a bloom of tiny pixels light up, their glow staggering from the center to the edges of its container. With some available free time over this Thanksgiving break, I hacked together my own version of a pixel canvas background shimmer. It quickly evolved into a pixel-canvas Web Component that can be enjoyed in the demo below. The component script and demo code have also been pushed up to a GitHub repo.

The 70% problem: Hard truths about AI-assisted coding

https://addyo.substack.com/p/the-70-problem-hard-truths-about
AI isn't making our software dramatically better because software quality was (perhaps) never primarily limited by coding speed. The hard parts of software development – understanding requirements, designing maintainable systems, handling edge cases, ensuring security and performance – still require human judgment. What AI does do is let us iterate and experiment faster, potentially leading to better solutions through more rapid exploration. But only if we maintain our engineering discipline and use AI as a tool, not a replacement for good software practices. Remember: The goal isn't to write more code faster. It's to build better software. Used wisely, AI can help us do that. But it's still up to us to know what "better" means and how to achieve it.

About | Skia Canvas

https://skia-canvas.org/
Skia Canvas is a browser-less implementation of the HTML Canvas drawing API for Node.js. It is based on Google’s Skia graphics engine and, accordingly, produces very similar results to Chrome’s <canvas> element. The library is well suited for use on desktop machines where you can render hardware-accelerated graphics to a window and on the server where it can output a variety of image formats.

How to fix Storybook screenshot testing | Tiger Oakes

https://tigeroakes.com/posts/storybook-test-runner-screenshots/
As an alternative to Chromatic, I’ve been using Storybook’s Test Runner to power screenshot tests for Microsoft Loop. We configure the test runner to run in CI and take a screenshot of every story. However, the initial implementation based on the official Storybook docs was very flaky due to inconsistent screenshots of the same story. Here are some tips to reduce flakiness in your Storybook screenshot tests.

Turning Your Root URL Into a DuckDB Remote Database | Drew Breunig

https://www.dbreunig.com/2024/12/01/turning-your-root-url-into-a-duckdb-remote-database.html
On the Overture Slack, Jake Wasserman shared a cool trick where you can connect to a remote DuckDB database using the ATTACH statement, using an HTTP or S3 URL. Jake’s demo was especially cool because he created a DB containing only views referencing an Overture parquet on S3, so the hosted database file was only a couple hundred kilobytes.

Introduction | Better Auth

https://www.better-auth.com/docs/introduction
Better Auth is framework-agnostic authentication (and authorization) framework for TypeScript. It provides a comprehensive set of features out of the box and includes a plugin ecosystem that simplifies adding advanced functionalities. Whether you need 2FA, multi-tenant support, or other auth releated features. It lets you focus on building your actual application instead of reinventing the wheel.

Don't Fuck With Scroll

https://dontfuckwithscroll.com/
Momentum scrolling plugins are the web equivalent of turning a functional bike into a unicycle because it "looks cool." It adds unnecessary complexity, degrades usability, and frustrates users. Instead of reinventing scrolling, stick to what works: native, predictable, fast scrolling behavior. Don't make scrolling a thing. Just let people scroll.

Amazon S3 adds new functionality for conditional writes - AWS

https://aws.amazon.com/about-aws/whats-new/2024/11/amazon-s3-functionality-conditional-writes/
Amazon S3 can now perform conditional writes that evaluate if an object is unmodified before updating it. This helps you coordinate simultaneous writes to the same object and prevents multiple concurrent writers from unintentionally overwriting the object without knowing the state of its content. You can use this capability by providing the ETag of an object using S3 PutObject or CompleteMultipartUpload API requests in both S3 general purpose and directory buckets.

I don't have time to learn React - Keith Cirkel

https://www.keithcirkel.co.uk/i-dont-have-time-to-learn-react/
When I mentor early career developers and they ask me what they should learn, I can't say React, they don't have time. I mean sure, pick up enough React to land you the inevitable job doing it, but it's not going to level up your career. Anyone with $5,000-$10,000 can make their way through a bootcamp and scrape their way through an interview, but it's a competitive market and it's usually quite evident when your interviewing a bootcamp candidate. Stand out by picking up some more fundamentals

On self-hosting being a patch ~ jutty.dev

https://blog.jutty.dev/posts/self-hosting-patch/
Our systems do not need to be high-maintenance, intensive on resources and energy needs. They don’t have to answer every request with availability and latency that measures up to however many nines or zeroes are the current industry standard. They have to attend to the needs of those who are using them, which can be much less demanding. We can run both infrastructure and software at more human scales and learn other ways of growing or shrinking, and we can also scale to high performance and availability too. This is what the concept of a network enables after all, but it is often used to centralize and create dependency instead.

leaningtech/webvm: Virtual Machine for the Web

https://github.com/leaningtech/webvm
WebVM is a server-less virtual environment running fully client-side in HTML5/WebAssembly. It's designed to be Linux ABI-compatible. It runs an unmodified Debian distribution including many native development toolchains. WebVM is powered by the CheerpX virtualization engine, and enables safe, sandboxed client-side execution of x86 binaries on any browser. CheerpX includes an x86-to-WebAssembly JIT compiler, a virtual block-based file system, and a Linux syscall emulator.

Speculation Rules API - Web APIs | MDN

https://developer.mozilla.org/en-US/docs/Web/API/Speculation_Rules_API
The Speculation Rules API is designed to improve performance for future navigations. It targets document URLs rather than specific resource files, and so makes sense for multi-page applications (MPAs) rather than single-page applications (SPAs).

Importing a frontend Javascript library without a build system

https://jvns.ca/blog/2024/11/18/how-to-import-a-javascript-library/
I like writing Javascript without a build system and for the millionth time yesterday I ran into a problem where I needed to figure out how to import a Javascript library in my code without using a build system, and it took FOREVER to figure out how to import it because the library’s setup instructions assume that you’re using a build system.

Exploring Effect in TypeScript: Simplifying Async and Error Handling - Tweag

https://www.tweag.io/blog/2024-11-07-typescript-effect/
Effect is a powerful library for TypeScript developers that brings functional programming techniques into managing effects and errors. It aims to be a comprehensive utility library for TypeScript, offering a range of tools that could potentially replace specialized libraries like Lodash, Zod, Immer, or RxJS.

How to register just enough domains – Evan Prodromou's Blog

https://evanp.me/2024/11/16/how-to-register-just-enough-domains/
Have a personal domain, put a CMS behind it, use that for publishing static pages, use subdomains of it for standalone services, and register new domains only when you need to. I think this kind of strategy is inherent in the idea of having “your own domain”, and a lot of people follow it to a greater or lesser degree, but I wanted to spell it out fully to make it clear to myself how I would deal with different circumstances.

Sponsoring the Web Applets project, an open approach to AI-empowered web apps - Mozilla Innovations

https://future.mozilla.org/builders/news_insights/sponsoring-the-web-applets-project/
Web Applets are small, secure pieces of web code (bundles of HTML, JavaScript, and CSS) that can run anywhere, allowing a model to take actions within software much like a human would and then generate interfaces appropriate for the user’s intent. For example, a developer could write an applet that enables a model to respond to a query about local coffee shops by conducting internet searches and then displaying the results on an in-line map. And because the model can read the internal state of each applet, it can then conduct follow-up actions to complete a user’s request (for example, updating the map to display only coffee shops that will be open tomorrow afternoon). Anyone can build Web Applets and host them on the Web, and any client can potentially support them.

Regular Restarts Are Good, Actually

https://matt.blwt.io/post/regular-restarts-are-good-actually/
By enforcing the lack of local state, we can ensure that state lives somewhere more appropriate - a queue, a database, an object store and so on. This makes coordination significantly easier - shared-nothing services can be thrown away, scaled up and down without having to worry about state.

BASIC HTML COMPETENCY IS THE NEW PUNK FOLK EXPLOSION!

https://coolguy.website/basic-html-competency-is-the-new-punk-folk-explosion/
I know I have a tendency to classify anything I love as "Punk", in the same way a child calls any tall, nice-smelling presence "Mom", BUT! I feel like homemade websites are a type of Punk. And I know it feels premature to say that basic HTML competency is a type of folk craft, but I'm not sure what else to call it.

Why would anyone need JavaScript generator functions?

https://jrsinclair.com/articles/2022/why-would-anyone-need-javascript-generator-functions/
Generators are an odd part of the JavaScript language. And some people find them a bit of a puzzle. You might be a successful developer for decades and never feel the need to reach for them. Which raises the question, if you can go so long without ever needing them, what are they good for?

Rewrite it in Rails | old man rambling

https://dirkjonker.bearblog.dev/rewrite-it-in-rails/
Interestingly, all of the things that used to annoy me about Ruby and Rails now annoy me much, much, much less. I have accepted that there is no perfect language or framework. You just have to know its strengths and weaknesses and deal with them. Luckily, there are some really good frameworks out there for people who want to focus on building a good product. I think Rails is probably one of the best, but there are a lot of other long-lived frameworks with lots of active contributors that are probably just as good. It might still be worth it to choose a more exotic language, framework or to dive in and write your own. If only for the opportunity to learn these kinds of lessons on your own.

Highlighting Text in Links with Text Fragments

https://calebhearth.com/text-fragmentsFuckOffFuckOff
I’ve used URL text fragments in a few posts now and often use it outside of this blog to point someone to a particular piece of text on a page. They’re a really useful feature that allows you to create a URL that links not just to a page or an anchor on that page, but specifically to a bit of text that you’d like to call out to your audience.

Status Page On Demand | Gatus

https://gatus.io/
Gatus was made to monitor everything, in every possible way. HTTP, GraphQL, DNS, ICMP/PING, TCP, certificate expiration, you name it. While checking the response status may be enough for some use cases, Gatus goes much further and allows you to add conditions on the response time, the response body and even the IP address.

TECH: Deer Text Format - the system powering this site, and how it can work for you - the DeerZone

https://deerz.one/pages/blog/2024/dtf-introduction.dtf
my personal website runs on a bespoke dynamic site generator i coded from scratch. but why? what lead me to designing and programming it? what can you do with it? and how can it be transformed into a tool for everyone to use? a deep dive into Deer Text Format, why it exists, and what lies in its future.

About – StarSubculture

https://starsubculture.com/about/
StarSubculture is an online community space where creatives can showcase their websites and art and interact with a like-minded community as well as keep up with their favorite artists and websites! In this era of the internet, it’s become near-impossible to connect to other creative website owners. Here at StarSubculture, you’re free to cultivate that community that the internet is so desperately needing.

Constraint validation - HTML: HyperText Markup Language | MDN

https://developer.mozilla.org/en-US/docs/Web/HTML/Constraint_validation
The creation of web forms has always been a complex task. While marking up the form itself is easy, checking whether each field has a valid and coherent value is more difficult, and informing the user about the problem may become a headache. HTML5 introduced new mechanisms for forms: it added new semantic types for the <input> element and constraint validation to ease the work of checking the form content on the client side. Basic, usual constraints can be checked, without the need for JavaScript, by setting new attributes; more complex constraints can be tested using the Constraint Validation API.

Cron-based backup - Litestream

https://litestream.io/alternatives/cron/
Sometimes Litestream can be overkill for projects with a small database that do not have high durability requirements. In these cases, it may be more appropriate to simply back up your database daily or hourly. This approach can also be used in conjunction with Litestream as a fallback. You can never have too many backups!

Using SQLite as Storage for Web Server Static Content – Internal Tools Deployment Platform | Clace

https://clace.io/blog/sqlite/
For Clace, the decision was made to use SQLite for app files storage instead of using the file system. The reasoning was mainly to be able to do atomic version changes. When updating an app, since there could be lots of files being updated, using a database would allow all changes to be done atomically in a transaction. This would prevent broken web pages from being served during a version change.

Smarter than 'Ctrl+F': Linking Directly to Web Page Content

https://alfy.blog/2024/10/19/linking-directly-to-web-page-content.html
Historically, we could link to a certain part of the page only if that part had an ID. All we needed to do was to link to the URL and add the document fragment (ID). If we wanted to link to a certain part of the page, we needed to anchor that part to link to it. This was until we were blessed with the Text fragments!

An Experiment in Social Media

https://nikolas.ws/social-media-experiment
On the internet, there is a clear social understanding of hashtags. If we create web rings for hashtags, we can use that to connect arbitrary web pages that add those hashtags to their content. This will allow us to create hashtag aggregation pages (like those on Twitter or Mastodon) that cross platform boundaries. The web ring will act as a community library that people can contribute to, filing their posts and articles and resources where they feel they fit.

Using static websites for tiny archives – alexwlchan

https://alexwlchan.net/2024/static-websites/
Because this system has no moving parts, and it’s just files on a disk, I hope it will last a long time. I’ve already migrated a lot of my files to this approach, and I’m pleased with how it’s going. I get all the simplicity and portability of a file full of folders, with just a bit of extra functionality sprinkled on top.

Where web components shine - daverupert.com

https://daverupert.com/2024/10/super-web-components-sunshine/
In this job we need to think a lot about the tools we choose and why, so I cataloged all the places where web components (for me) feel like “the right tool for the job”. Your list may be different and I’d love to read it. And because I don’t want this to be 100% propaganda, I’ll also cover some of the not-so-great parts of web components as well.

Zero

https://zerosync.dev/
We’re building a general-purpose sync engine for the web. You put Zero in front of your existing database or web service, and we distribute your backend all the way to main thread of the UI.

nekoweb

https://nekoweb.org/
Nekoweb is a free static website hosting service, created in 2022 2023 2024 by a group of coders, programmers and artists, passionate for the old web and personal websites. Social media is too limiting. We believe that everyone should be able to freely express themselves in their own little corner of the web, without having to worry about things like algorithms, tracking, or advertisements.

Using Cloudflare on your website could be blocking RSS users - Open RSS

https://openrss.org/blog/using-cloudflare-on-your-website-could-be-blocking-rss-users?utm_medium=FuckOff&utm_source=FuckOff
Many users prefer to use an RSS feed reader to stay up to date with the content on the websites they visit. But if you've enabled Cloudflare on your website, you're likely blocking these RSS users from accessing your website content without realizing it.

Web Components are not Framework Components — and That’s Okay • Lea Verou

https://lea.verou.me/blog/2024/wcs-vs-frameworks/
The bottom line is, web components reduce the number of use cases where we need to reach for a framework, but complex large applications will likely still benefit from one. So how about we conclude that frameworks are useful, web components are also useful, stop fighting and go make awesome sh!t using whatever tools we find most productive?

Invoker Commands (Explainer) | Open UI

https://open-ui.org/components/invokers.explainer/
Adding commandfor and command attributes to <button> and elements would allow authors to assign behaviour to buttons in a more accessible and declarative way, while reducing bugs and simplifying the amount of JavaScript pages are required to ship for interactivity. Buttons with command will - when clicked, touched, or enacted via keypress - dispatch a CommandEvent on the element referenced by commandfor, with some default behaviours.

Popover API - Web APIs | MDN

https://developer.mozilla.org/en-US/docs/Web/API/Popover_API
The Popover API provides developers with a standard, consistent, flexible mechanism for displaying popover content on top of other page content. Popover content can be controlled either declaratively using HTML attributes, or via JavaScript.

:has() - CSS: Cascading Style Sheets | MDN

https://developer.mozilla.org/en-US/docs/Web/CSS/:has
The functional :has() CSS pseudo-class represents an element if any of the relative selectors that are passed as an argument match at least one element when anchored against this element. This pseudo-class presents a way of selecting a parent element or a previous sibling element with respect to a reference element by taking a relative selector list as an argument.

CSS container queries - CSS: Cascading Style Sheets | MDN

https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_containment/Container_queries
Container queries enable you to apply styles to an element based on the size of the element's container. If, for example, a container has less space available in the surrounding context, you can hide certain elements or use smaller fonts.

Example of Tabs with Automatic Activation | APG | WAI | W3C

https://www.w3.org/WAI/ARIA/apg/patterns/tabs/examples/tabs-automatic/
This example section demonstrates a tabs widget that implements the Tabs Pattern. In this example, a tab is automatically activated and its associated panel is displayed when the tab receives focus. It is recommended that authors consider implementing automatic activation of tabs only in circumstances where panels can be displayed instantly, i.e., all panel content is present in the DOM.

HTML for People

https://htmlforpeople.com/
HTML isn’t only for people working in the tech field. It’s for anybody, the way documents are for anybody. HTML is just another type of document. A very special one—the one the web is built on.

The Web We've (Never) Lost

https://www.bitoff.org/web-we-never-lost/
Doesn't it feel like the web is getting worse every day? Do you miss the days when Google wasn't a garbage factory, Twitter wasn't a cesspool of Nazis, and you weren't treated like a pair of eyeballs with a wallet? Don't worry, the web of yore is still alive and kicking – in fact, it's thriving. You just need to know where to look. Let's take a dive into the non-mainstream web, where people create blogs and websites for the sheer joy of it, algorithmic feeds are nowhere to be found – and you can join, too!

Resources for keeping the web free, open, and poetic | Stefan Bohacek

https://stefanbohacek.com/blog/resources-for-keeping-the-web-free-open-and-poetic/
I’ve been running my own personal website for over 15 years now. It has been a fun learning experience, and an opportunity to share my work and get to know a ton of amazing people. And I’d like to help others to do the same without needing to learn how to manage servers or be a rock star programmer.

Wasm is the new CGI | Roborooter.com

https://roborooter.com/post/wasm-is-the-new-cgi/
And to be clear I don't mean the Common Gateway Interface as a protocol. I mean what CGI and the cgi-bin application model brought to the web. They allowed people to easily write code that makes websites interactive. This shifted the web from an archive of documents to a vast network of applications. It was the first "web application model". I think Wasm (WebAssembly) is setup to bring the next "web application model" to the industry.

Molly White, Citation Needed / Web3 Is Going Just Great - XOXO Festival (2024) - YouTube

https://www.youtube.com/watch?v=MTaeVVAvk-c&list=PLCbA9r6ecYWU6SVyvb32a0YHIzpr9jxnW&index=3
Best known for puncturing blockchain/crypto hype with her Web3 Is Going Just Great project, writer/researcher Molly White believes a better web is possible. Launched two years ago, her Citation Needed newsletter covers “tech world without all the boosterism,” while her latest project tracks the crypto industry’s attempts to influence the 2024 elections.

Autoscale based on metrics · Fly Docs

https://fly.io/docs/launch/autoscale-by-metric/
The metrics-based autoscaler scales an app’s Machines based on any metric, such as pending work items or queue depth. Scaling on metrics other than requests or connections is useful for apps, like background workers, that aren’t running web services. Apps with services that need to scale based on HTTP requests can use the built-in Fly Proxy autostop/autostart feature for Machines.

Weird Web October

https://weirdweboctober.website/
Weird Web October is a challenge to try and make a website every day of October, based on the theme for each day, inspired by Inktober. It’s open to you and everyone!

What is OpenAPI? - OpenAPI Initiative

https://www.openapis.org/what-is-openapi
The OpenAPI Specification (OAS) provides a consistent means to carry information through each stage of the API lifecycle. It is a specification language for HTTP APIs that defines structure and syntax in a way that is not wedded to the programming language the API is created in. API specifications are typically written in YAML or JSON, allowing for easy sharing and consumption of the specification.

Building a Storybook-like demo browser with web components — a much simpler way to get most of the benefits

https://jan.miksovsky.com/posts/2020/11-02-storybook
I recently tried Storybook, a popular tool for browsing the demos and documentation for a UI component library. I think Storybook offers a good user experience, but its developer experience entails complexity out of proportion to its benefits. I tried creating a simpler web component library browser using web components, and am happy with the result.

Don't Sleep on AbortController - kettanaito.com

https://kettanaito.com/blog/dont-sleep-on-abort-controller
If you are creating libraries in JavaScript where aborting or cancelling operations makes sense, I highly encourage you to look no further than the AbortController API. It's incredible! And if you are building applications, you can utilize the abort controller to a great effect when you need to cancel requests, remove event listeners, abort streams, or teach any logic to be abortable.

Some Go web dev notes

https://jvns.ca/blog/2024/09/27/some-go-web-dev-notes/
I spent a lot of time in the past couple of weeks working on a website in Go that may or may not ever see the light of day, but I learned a couple of things along the way I wanted to write down.

A.N. Lucas's 88x31 button Collection

https://anlucas.neocities.org/88x31Buttons
Here is a collection of more than 700 88x31 web buttons from the 1990's and 2000's, including the famous "Netscape NOW" and "Internet Explorer" buttons as well as various other buttons for websites of past and present. All were rescued from a now defunct http://harrypagerubbish.webs.com/buttons just before it disappeared without warning. These buttons are an historic example of advertising in the earlier days of the World Wide Web. Enjoy these buttons and use them to your liking.

What Is React.js?

https://briefs.video/videos/what-is-react/
Highlight:Its proponents can be weird, it takes itself far too seriously, and its documentation is interminable. These are some ways that some people have described Christianity. This video is about React.js. A video from Webbed Briefs

Raw dog the open web!

https://www.fromjason.xyz/p/notebook/raw-dog-the-open-web/
Highlight:In our current digital landscape, where a corporate algorithm tells us what to read, watch, drink, eat, wear, smell like, and sound like, human curation of the web is an act of revolution. A simple list of hyperlinks published under a personal domain name is subversive. Curation is punk. Lets break away from the protective layer that is our For You Pages.

What RSS Needs

https://www.mnot.net/blog/2024/08/25/feeds
Highlight:It’s just that feeds could be so much more with some love and directed care – something that could jump from a niche use case to a widespread ‘normal’ part of the Web for many. Web feeds could be so much more if we put some effort into them. This post explores some ideas of how to start.

The Art of Dithering and Retro Shading for the Web - Maxime Heckel's Blog

https://blog.maximeheckel.com/posts/the-art-of-dithering-and-retro-shading-web/
Highlight:In this article, I hope to convince you of the power of post-processing effects and that nothing beats an elegant retro vibe applied to a website 👌✨. We'll also look into examples of dithering and pixel art from very talented folks who use the same processes that I'll be introducing later on, as well as some of my own creations that I built while learning about all this. A detailed walkthrough of the inner workings of dithering and other shading techniques to give a retro look and feel to your WebGL and React Three Fiber work.

jacktuck/unfurl: Metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js :zap:

https://github.com/jacktuck/unfurl?tab=readme-ov-file
Highlight:Unfurl (spread out from a furled state) will take a url and some options, fetch the url, extract the metadata we care about and format the result in a sane way. It supports all major metadata providers and expanding it to work for any others should be trivial. Metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js :zap: - jacktuck/unfurl

microlinkhq/metascraper: Get unified metadata from websites using Open Graph, Microdata, RDFa, Twitter Cards, JSON-LD, HTML, and more.

https://github.com/microlinkhq/metascraper
Highlight:The metascraper library allows you to easily scrape metadata from an article on the web using Open Graph metadata, regular HTML metadata, and series of fallbacks. Get unified metadata from websites using Open Graph, Microdata, RDFa, Twitter Cards, JSON-LD, HTML, and more. - microlinkhq/metascraper

Server-side rendering (SSR) – Lit

https://lit.dev/docs/ssr/overview/
Lit supports server-side rendering through the Lit SSR package. Lit SSR renders Lit components and templates to static HTML markup in non-browser JavaScript environments like Node. It works without fully emulating the browser's DOM, and takes advantage of Lit's declarative template format to enable fast performance, achieve low time-to-first-byte, and support streaming.

Server-side rendering (SSR) – Lit

https://lit.dev/docs/ssr/overview
Lit supports server-side rendering through the Lit SSR package. Lit SSR renders Lit components and templates to static HTML markup in non-browser JavaScript environments like Node. It works without fully emulating the browser's DOM, and takes advantage of Lit's declarative template format to enable fast performance, achieve low time-to-first-byte, and support streaming.

Learn HTML

https://web.dev/learn/html
This HTML course for web developers provides a solid overview for developers, from novice to expert level HTML.

Embedding Our New React UI in Go | Flipt Blog

https://www.flipt.io/blog/embedding-react-in-go
The UI is served over HTTP directly from the binary using Go’s fantastic http.FileServer implementation from the standard library. Sometime around February 2021 was the Go 1.16 release, which came with native embedding of files into Go binaries. Flipt quickly took advantage of this feature for bundling the static UI assets directly into the binary. Go has a handy wrapping function that adapts the embed.FS into the required http.FileSystem interface to integrate it seamlessly into an http.Server. You can find the current (v1.16.0) embed directive in Flipt here.

Tree views in CSS

https://iamkate.com/code/tree-views
A tree view (collapsible list) can be created using only HTML and CSS, without the need for JavaScript. Accessibility software will see the tree view as lists nested inside disclosure widgets, and the standard keyboard interaction is supported automatically.

DRY Switching with CSS Variables: The Difference of One Declaration | CSS-Tricks

https://css-tricks.com/dry-switching-with-css-variables-the-difference-of-one-declaration/?unapproved=1674473&moderation-hash=4e9cb4ef4344732a9e5a5ca87b6d0849#comment-1674473
This is the first post of a two-part series that looks into the way CSS variables can be used to make the code for complex layouts and interactions less difficult to write and a lot easier to maintain. This first installment walks through various use cases where this technique applies.

DRY Switching with CSS Variables: The Difference of One Declaration | CSS-Tricks

https://css-tricks.com/dry-switching-with-css-variables-the-difference-of-one-declaration?moderation-hash=4e9cb4ef4344732a9e5a5ca87b6d0849&unapproved=1674473#comment-1674473
This is the first post of a two-part series that looks into the way CSS variables can be used to make the code for complex layouts and interactions less difficult to write and a lot easier to maintain. This first installment walks through various use cases where this technique applies.

Enabling CORS in Synology WebDav

https://github.com/keeweb/keeweb/issues/703#issuecomment-326404286
ssh ip-synology cd /var/packages/WebDAVServer/target/etc/httpd/ sudo vim conf/httpd.conf-webdav add LoadModule rewrite_module modules/mod_rewrite.so sudo vim conf/extra/httpd-ssl.conf-webdav add : Header always set Access-Control-Allow-Origin "*" Header always set Access-Control-Allow-Headers "origin, content-type, cache-control, accept, authorization, if-match, destination, overwrite" Header always set Access-Control-Expose-Headers "ETag" Header always set Access-Control-Allow-Methods "GET, HEAD, POST, PUT, OPTIONS, MOVE, DELETE, COPY, LOCK, UNLOCK" Header always set Access-Control-Allow-Credentials "true" RewriteEngine on RewriteCond %{REQUEST_METHOD} OPTIONS RewriteRule ^(.*)$ blank.html [R=200,L,E=HTTP_ORIGIN:%{HTTP:ORIGIN}] cd /var/packages/WebDAVServer/target/tools sudo ./start_stop.sh start restart

The Fall and Rise of SVG

http://blog.siliconpublishing.com/2015/12/the-fall-and-rise-of-svg
Now that SVG is widely supported and native to browsers, the art of using it is more connected to the surrounding web technologies that it can now interoperate with in HTML5

Unit testing React components without a DOM – simonsmith.io – Portfolio and blog of a London based front-end web developer

http://simonsmith.io/unit-testing-react-components-without-a-dom/?imm_mid=0d3af7&cmp=em-web-na-na-newsltr_20150617
the idea of shallow rendering is to instantiate a component and get the result of its render method, which is a ReactElement. From here you can do things like check its props and children and verify it works as expected.

Unit testing React components without a DOM – simonsmith.io – Portfolio and blog of a London based front-end web developer

http://simonsmith.io/unit-testing-react-components-without-a-dom?cmp=em-web-na-na-newsltr_20150617&imm_mid=0d3af7
the idea of shallow rendering is to instantiate a component and get the result of its render method, which is a ReactElement. From here you can do things like check its props and children and verify it works as expected.

The Web Is Dying; Apps Are Killing It - WSJ

http://online.wsj.com/news/article_email/the-web-is-dying-apps-are-killing-it-1416169934-lMyQjAxMTI0NTEwNzAxMTcwWj
Everything about apps feels like a win for users—they are faster and easier to use than what came before. But underneath all that convenience is something sinister: the end of the very openness that allowed Internet companies to grow into some of the most powerful or important companies of the 21st century.

Seth Ladd's Blog: Minification is not enough, you need tree shaking

http://blog.sethladd.com/2013/01/minification-is-not-enough-you-need.html
I believe that web developers need a better workflow that automates tree shaking, dead code elimination, minification, and more. Stop caring how big a library is, and instead let a tool or build step produce the smallest output possible for you, ideally by tree shaking the application.

Physical-web by google

http://google.github.io/physical-web
The Physical Web is an approach to unleash the core superpower of the web: interaction on demand. People should be able to walk up to any smart device - a vending machine, a poster, a toy, a bus stop, a rental car - and not have to download an app first. Everything should be just a tap away.

Why Web Components Aren't Ready for Production... Yet -Telerik Developer Network

http://developer.telerik.com/featured/web-components-arent-ready-production-yet/
Web components and Polymer are exciting technologies that may fundamentally change the way we develop web applications, but because of the large performance gap between browsers that support the technologies natively (aka Chrome 36+) and those that don’t (aka every other browser), it will be difficult for most developers to use web components until they’re implemented everywhere, and there’s no way of knowing how long that will be.

Why Web Components Aren't Ready for Production... Yet -Telerik Developer Network

http://developer.telerik.com/featured/web-components-arent-ready-production-yet
Web components and Polymer are exciting technologies that may fundamentally change the way we develop web applications, but because of the large performance gap between browsers that support the technologies natively (aka Chrome 36+) and those that don’t (aka every other browser), it will be difficult for most developers to use web components until they’re implemented everywhere, and there’s no way of knowing how long that will be.

Easy accelerated 3D Games in a browser with JavaScript and WebGL using Three.js or Babylon.js - Scott Hanselman

http://www.hanselman.com/blog/EasyAccelerated3DGamesInABrowserWithJavaScriptAndWebGLUsingThreejsOrBabylonjs.aspx
Let's ignore that we haven't got a web-agreed-upon way to do just about anything, much less basic line-of-business apps with data-bound text boxes over data, and just revel in the fact that we can do hardware-accelerated 3D graphics in our browsers with WebGL. This works today in all the latest browsers.

APIs.json

http://apisjson.org/
The objective of APIs.json is to help fix this problem by making it easy for people to signpost where the APIs on a given domain are and provide information on how they work. The format is simple and extensible and can be put into any web root domain for discovery.

APIs.json

http://apisjson.org
The objective of APIs.json is to help fix this problem by making it easy for people to signpost where the APIs on a given domain are and provide information on how they work. The format is simple and extensible and can be put into any web root domain for discovery.

OCRAD.js: Pure Javascript OCR via Emscripten – Blog

http://antimatter15.com/wp/2013/12/ocrad-js-pure-javascript-ocr-via-emscripten/
The idea of the extension was kind of simple and also kind of magical: a browser extension that allowed users to highlight, copy, and paste text from any image as if it were plain text. Of course the implementation is a bit difficult and actually relies on the advent of a number of newfangled technologies.

OCRAD.js: Pure Javascript OCR via Emscripten – Blog

http://antimatter15.com/wp/2013/12/ocrad-js-pure-javascript-ocr-via-emscripten
The idea of the extension was kind of simple and also kind of magical: a browser extension that allowed users to highlight, copy, and paste text from any image as if it were plain text. Of course the implementation is a bit difficult and actually relies on the advent of a number of newfangled technologies.

EVE Online Image Server

http://image.eveonline.com
Welcome to the image server of EVE Online. You can use this service to obtain images related to entities in New Eden. At this moment, it is possible to get alliance logos, corp logos, character portraits, ship renders and inventory type icons in various resolutions.

Paul O’Shannessy - Do We Need Node?

http://zpao.com/posts/do-we-need-node/
So what do I want? I want a world where the core JS engine is swappable. Maybe I’m deploying on an architecture not supported by V8 (Node on SPARC came up while working on SpiderNode). Maybe my employer only wants to use the JVM. Or maybe Microsoft can get some performance wins by using Chakra for Windows Azure. Back to modules, I don’t want to get rid of npm. Or maybe I do and I want something that only supports ES6+ modules.

Paul O’Shannessy - Do We Need Node?

http://zpao.com/posts/do-we-need-node
So what do I want? I want a world where the core JS engine is swappable. Maybe I’m deploying on an architecture not supported by V8 (Node on SPARC came up while working on SpiderNode). Maybe my employer only wants to use the JVM. Or maybe Microsoft can get some performance wins by using Chakra for Windows Azure. Back to modules, I don’t want to get rid of npm. Or maybe I do and I want something that only supports ES6+ modules.

Imperfect Circles – Aesthetic imperfection with fractal subdivision | Rectangle World – HTML5 Canvas and JavaScript: Tutorials and Experiments

http://rectangleworld.com/blog/archives/413
Getting a computer to draw a shape in the way that a human would requires programming in some imperfection. The simple idea is to add in some randomization of drawing coordinates, which could be done in various ways. Below are two examples of imperfect circles drawn in an HTML5 canvas with JavaScript, where the imperfection has been added through the use of a fractal-like subdivision algorithm. The imperfection can be subtle, but it is enough to make the image appear to be human-drawn. Although the images are quite simple I find them quite nice to look at.

Introducing BladeRunnerJS

http://bladerunnerjs.org/2013/09/16/introducing-bladerunnerjs
Here at Caplin we’re in the business of building extremely complex financial trading GUIs as single page web apps. Over the past 18 months we’ve created a developer toolkit and lightweight JavaScript framework called BladeRunnerJS to help us do this more efficiently.

Announcing Artillery's Project Atlas, a Hardcore RTS for the Browser - The Artillery Blog

http://blog.artillery.com/2013/09/project-atlas-and-the-artillery-platform.html
The Artillery Platform, which Atlas is built upon, uses JavaScript and WebGL to deliver a high-quality, low-latency multiplayer gaming experience to anyone with a modern web browser. The platform is centered around 3D experiences with real-time multiplayer capability and strong community support. The JavaScript-based game engine features a component-entity design, a modern deferred rendering pipeline, and development tools designed to allow creative expression and super-fast iteration.

An introduction to the Crafty game engine - Build New Games

http://buildnewgames.com/introduction-to-crafty/
In this tutorial, I’ll show you how Crafty makes it easy to make simple, 2D games and I’ll walk you through the process of making a very simple game from start to finish. By the end of the tutorial, you’ll know how to start making your own games from scratch using Crafty and you’ll have our example game built and running in your own development environment which will give you a great jumping-off point for future projects.

An introduction to the Crafty game engine - Build New Games

http://buildnewgames.com/introduction-to-crafty
In this tutorial, I’ll show you how Crafty makes it easy to make simple, 2D games and I’ll walk you through the process of making a very simple game from start to finish. By the end of the tutorial, you’ll know how to start making your own games from scratch using Crafty and you’ll have our example game built and running in your own development environment which will give you a great jumping-off point for future projects.

Case Study: Auto-Resizing HTML5 Games - HTML5 Rocks

http://www.html5rocks.com/en/tutorials/casestudies/gopherwoord-studios-resizing-html5-games/
In the summer of 2010, we created Sand Trap, a game that we entered in a competition on HTML5 games for mobile phones. But most mobile phones either displayed only part of the game or made the game too small—making it completely unplayable. So we took it upon ourselves to make the game fluidly adjust to match any resolution. After a bit of re-programming and using ideas outlined in this article, we had a game that scaled across any modern browser, whether it ran in a desktop or a mobile device.

Case Study: Auto-Resizing HTML5 Games - HTML5 Rocks

http://www.html5rocks.com/en/tutorials/casestudies/gopherwoord-studios-resizing-html5-games
In the summer of 2010, we created Sand Trap, a game that we entered in a competition on HTML5 games for mobile phones. But most mobile phones either displayed only part of the game or made the game too small—making it completely unplayable. So we took it upon ourselves to make the game fluidly adjust to match any resolution. After a bit of re-programming and using ideas outlined in this article, we had a game that scaled across any modern browser, whether it ran in a desktop or a mobile device.

Dropbox login using only curl, sed and bash | commandlinefu.com

http://www.commandlinefu.com/commands/view/12496/dropbox-login-using-only-curl-sed-and-bash
Use the command line to log into Dropbox. You have to replace me@yahoo.com with your Dropbox email (note the URL-encoding of "@" as %40). Also replace my_passwd with your Dropbox password. (Note: special characters in your password (such as #) must be url-encoded. You will get a cookie (stored in file "cookie") that you can use for subsequent curl operations to dropbox, for example curl -b cookie https://www.dropbox.com/home. Debug note: If you want to see what data curl posts, use curl's --trace-ascii flag.

Concurrency in JavaScript | TypedArray.org

http://typedarray.org/concurrency-in-javascript/
Web Workers are now broadly available in most browsers even on mobile (caniuse.com stats for Web Workers) and give you the power of concurrency from within JavaScript. It will allow you to move expensive computations to other threads, to permit best responsive programming, and ideally open the doors in the future to true parallelization in JavaScript. Let’s have a look at the reasons why you may be interested into leveraging Web Workers.

Concurrency in JavaScript | TypedArray.org

http://typedarray.org/concurrency-in-javascript
Web Workers are now broadly available in most browsers even on mobile (caniuse.com stats for Web Workers) and give you the power of concurrency from within JavaScript. It will allow you to move expensive computations to other threads, to permit best responsive programming, and ideally open the doors in the future to true parallelization in JavaScript. Let’s have a look at the reasons why you may be interested into leveraging Web Workers.

Stop Doing Internet Wrong. - Scott Hanselman

http://www.hanselman.com/blog/StopDoingInternetWrong.aspx
Some days...some days it's frustrating to be on the web. We're compiling C++ into JavaScript and running Unreal in the browser but at the same time, here in 2013, we're still making the same mistakes. And by we, I mean, the set of web developers who aren't us, right Dear Reader? Because surely you're not doing any of these things. ;)

Ladda

http://lab.hakim.se/ladda/
A UI concept which merges loading indicators into the action that invoked them. Primarily intended for use with forms where it gives users immediate feedback upon submit rather than leaving them wondering while the browser does its thing. For a real-world example, check out any of the forms on slid.es.

Ladda

http://lab.hakim.se/ladda
A UI concept which merges loading indicators into the action that invoked them. Primarily intended for use with forms where it gives users immediate feedback upon submit rather than leaving them wondering while the browser does its thing. For a real-world example, check out any of the forms on slid.es.

Persona and Surveillance - Identity at Mozilla

http://identity.mozilla.com/post/52729477874/persona-and-surveillance
It’s also worth pointing out that we do take certain technical measures to limit the data we collect. We’ve designed Persona so that the identity provider – including the fallback Identity Provider that we run – does not learn your browsing history. We consider that a good security practice, not specifically because of surveillance, but generally because collecting data without a user benefit just creates risk.

Codebits: The Codebits Digital Signage Project (Part I)

https://codebits.eu/s/blog/c89f80ca02910f48ac4cede8c3ce5cd7
We’ve been so busy we haven’t had time to do a proper write-up of this yet, but this year we decided to revamp the on-site displays (both overhead projections and LCDs). And given that 2012 is pretty much the year of the Raspberry Pi, we decided to have a go at it using these amazing little boxes – after all, they’re pretty much perfect for the job given that they have an HDMI output, an Ethernet port and more than enough smarts to run a browser and playback H.264 video.

MPEG1 Video Decoder in JavaScript - PhobosLab

http://phoboslab.org/log/2013/05/mpeg1-video-decoder-in-javascript
An MPEG1 decoder sounded like a relatively simple and fun weekend project. While the real world use cases for this are of course a bit limited, I still learned a whole lot about video codecs in the process. The size of the source is just around 15kb gzipped and the performance is quite okay-ish - a 320x240 video easily plays with 30fps on the iPhone5.

Why feed reading is an open web problem, and what browsers could do about it – Luis Villa

http://tieguy.org/blog/2013/04/21/why-feed-reading-is-an-open-web-problem-and-what-browsers-could-do-about-it/
I’ve long privately thought that Firefox should treat feed reading as a first-class citizen of the open web, and integrate feed subscribing and reading more deeply into the browser (rather than the lame, useless live bookmarks.) The impending demise of Reader has finally forced me to spit out my thoughts on the issue. They’re less polished than I like when I blog these days, but here you go – may they inspire someone to resuscitate this important part of the open web.

Why feed reading is an open web problem, and what browsers could do about it – Luis Villa

http://tieguy.org/blog/2013/04/21/why-feed-reading-is-an-open-web-problem-and-what-browsers-could-do-about-it
I’ve long privately thought that Firefox should treat feed reading as a first-class citizen of the open web, and integrate feed subscribing and reading more deeply into the browser (rather than the lame, useless live bookmarks.) The impending demise of Reader has finally forced me to spit out my thoughts on the issue. They’re less polished than I like when I blog these days, but here you go – may they inspire someone to resuscitate this important part of the open web.

getFavicon

http://getfavicon.appspot.com/
Retrieves the relevant favicon for a URL, or returns a default icon should it not be able to find it. Works better than the Google version as it will find favicons specified by an HTML page's <link> element. Feel free to hotlink, although it would be nice if you could email me if you're going to make more than a couple of requests a second.

getFavicon

http://getfavicon.appspot.com
Retrieves the relevant favicon for a URL, or returns a default icon should it not be able to find it. Works better than the Google version as it will find favicons specified by an HTML page's element. Feel free to hotlink, although it would be nice if you could email me if you're going to make more than a couple of requests a second.

Ambient Light Events and JavaScript detection ✩ Mozilla Hacks – the Web developer blog

https://hacks.mozilla.org/2013/04/ambient-light-events-and-javascript-detection/
The idea with an API for ambient light is to be able to detect the light level around the device – especially since there’s a vast difference between being outside in sunlight and sitting in a dim living room – and adapt the user experience based on that.

Ambient Light Events and JavaScript detection ✩ Mozilla Hacks – the Web developer blog

https://hacks.mozilla.org/2013/04/ambient-light-events-and-javascript-detection
The idea with an API for ambient light is to be able to detect the light level around the device – especially since there’s a vast difference between being outside in sunlight and sitting in a dim living room – and adapt the user experience based on that.

CLI all the things: Introducing Josh.js - ILoggable

http://www.claassen.net/geek/blog/2013/03/cli-all-the-things-introducing-josh-js.html
Everytime I click my way through a hierarchy tree, I long for a simple BASH shell with TAB completion. It’s such a simple thing, but TAB completion (usually implemented via the trusty Readline library) still ranks as one of the most productive tools in my book. So as I was once again trying to navigate to some page in a MindTouch site, I thought that all I really want is to treat this documentation hierarchy like a file system and mount it with a bash shell.

webiopi - Raspberry Pi REST framework to control GPIO and more - Google Project Hosting

http://code.google.com/p/webiopi/
WebIOPi is a REST framework and a webapp which allows you to control your Raspberry Pi's GPIO. Just install it on your Pi, and use any browser from your network. It's useful to start enjoying GPIOs and also to debug some circuits without writing any line of code. It also allows to control your Pi's GPIOs over Internet, so it's a good starting point for home remote control.

webiopi - Raspberry Pi REST framework to control GPIO and more - Google Project Hosting

http://code.google.com/p/webiopi
WebIOPi is a REST framework and a webapp which allows you to control your Raspberry Pi's GPIO. Just install it on your Pi, and use any browser from your network. It's useful to start enjoying GPIOs and also to debug some circuits without writing any line of code. It also allows to control your Pi's GPIOs over Internet, so it's a good starting point for home remote control.

The rise and fall of webOS is an epic tale; webOS != Web OS on Dion Almaer's Blog

http://almaer.com/blog/the-rise-and-fall-of-webos-is-an-epic-tale-webos-web-os
in my heart I long for someone to come along with a true Web runtime that lets developers write to a standards-based multi-vendor platform that no one company owns. Democracy is messy, but the Open Web is worth it. Don’t read one article and think that it can’t be done.

I will miss the “Douglas Crockford of browsers” | Christian Heilmann

http://christianheilmann.com/2013/02/13/i-will-miss-the-douglas-crockford-of-browsers/
I always called Opera the Douglas Crockford of browsers as it was ruthless in its implementation of standards. If something didn’t work in Opera there is a good chance that you did something wrong. Even better – fixing it in Opera in most cases meant looking at how the W3C standard meant things to work and write your code accordingly, which in most cases meant no change in other browsers, but cleaner code overall. Opera was my linting tool.

I will miss the “Douglas Crockford of browsers” | Christian Heilmann

http://christianheilmann.com/2013/02/13/i-will-miss-the-douglas-crockford-of-browsers
I always called Opera the Douglas Crockford of browsers as it was ruthless in its implementation of standards. If something didn’t work in Opera there is a good chance that you did something wrong. Even better – fixing it in Opera in most cases meant looking at how the W3C standard meant things to work and write your code accordingly, which in most cases meant no change in other browsers, but cleaner code overall. Opera was my linting tool.

Client-side Messaging Essentials

http://freshbrewedcode.com/jimcowart/2013/02/07/client-side-messaging-essentials/
"Most people throw around the term “pub/sub” to describe any kind of eventing/messaging – but I think this term fails to adequately communicate the abstraction. Yes, ultimately, something is subscribing to what something else is publishing. But the level at which publishers and subscribers are encapsulated has the power to make a good pattern turn to the dark side. So, what’s the difference?"

Client-side Messaging Essentials

http://freshbrewedcode.com/jimcowart/2013/02/07/client-side-messaging-essentials
"Most people throw around the term “pub/sub” to describe any kind of eventing/messaging – but I think this term fails to adequately communicate the abstraction. Yes, ultimately, something is subscribing to what something else is publishing. But the level at which publishers and subscribers are encapsulated has the power to make a good pattern turn to the dark side. So, what’s the difference?"

Firefox 3D John Hancock Center

http://shaneriley.com/firefox_skyscraper/
Introducing a new use for Firefox 3D view: Creating sculptures using DOM elements! For my first project using 3D view, I figured I'd take a skyscraper in Hashrocket Chicago's neighborhood and attempt to recreate it using DOM elements and absolute positioning. The resulting building ended up being inspired by the design of the John Hancock Center, but is not a scale replica by any means.

Firefox 3D John Hancock Center

http://shaneriley.com/firefox_skyscraper
Introducing a new use for Firefox 3D view: Creating sculptures using DOM elements! For my first project using 3D view, I figured I'd take a skyscraper in Hashrocket Chicago's neighborhood and attempt to recreate it using DOM elements and absolute positioning. The resulting building ended up being inspired by the design of the John Hancock Center, but is not a scale replica by any means.

Unhosted 1: Personal servers and unhosted web apps

https://unhosted.org/adventures/1/Personal-servers-and-unhosted-web-apps.html
Since we move all the application features out of the personal server and into the browser, the actual personal server becomes very simple. It is basically reduced to a gateway that can broker connections between unhosted web apps and the outside world. And if an incoming message arrives while the user is not online with any unhosted web app, it can queue it up and keep it safe until the next time the user connects.

Mechanics of Flite - Underappreciated NPM Commands Developers Should Know About

http://mechanics.flite.com/blog/2012/12/11/underappreciated-npm-commands/
npm, the package manager that comes bundled with node.js, is generally described as “awesome”. While it was originally a separate project, npm has been bundled with node.js for the past few releases and the number of npm packages available in the npm registry has exploded.

Mechanics of Flite - Underappreciated NPM Commands Developers Should Know About

http://mechanics.flite.com/blog/2012/12/11/underappreciated-npm-commands
npm, the package manager that comes bundled with node.js, is generally described as “awesome”. While it was originally a separate project, npm has been bundled with node.js for the past few releases and the number of npm packages available in the npm registry has exploded.

Combining HTML Hypermedia APIs and Adaptive Web Design – Jayway

http://www.jayway.com/2012/08/01/combining-html-hypermedia-apis-and-adaptive-web-design/
HTML is the lowest common denominator in a world where the number of devices are steadily growing. In such a world, our API should be hypermedia driven and we should consider choosing HTML as the media type for our APIs. If we choose this, we can enhance the API with CSS and JavaScript, making the API human-friendly as well. Further, we can use Adaptive Web Design to make the best possible experience for all types of browsers and devices. This kind of solution has some risks and technical issues related to it though. And it is not a silver bullet.

URI.js - URLs in Javascript

http://medialize.github.com/URI.js
URI.js is a javascript library for working with URLs. It offers a "jQuery-style" API (Fluent Interface, Method Chaining) to read and write all regular components and a number of convenience methods like .directory() and .authority().

JS adolescence – James Padolsey

http://james.padolsey.com/javascript/js-adolescence/
For me there was a time that can only be described as adolescence in the field of programming and more specifically JavaScript. This period was characterised by a certain laziness and hubris. I thought I was right. I thought others were wrong. I could see no path but the very strict one that I had boxed myself into through a process in which I longed for certainty and the expulsion of realistic doubt.

JS adolescence – James Padolsey

http://james.padolsey.com/javascript/js-adolescence
For me there was a time that can only be described as adolescence in the field of programming and more specifically JavaScript. This period was characterised by a certain laziness and hubris. I thought I was right. I thought others were wrong. I could see no path but the very strict one that I had boxed myself into through a process in which I longed for certainty and the expulsion of realistic doubt.

pyx: Getting Started Developing for Firefox OS Screencasts

http://donovanpreston.blogspot.com/2012/10/getting-started-developing-for-firefox.html
As we are ramping up newer developers to help with the project, we need clear documentation of the development process. The Gaia/Hacking page is the canonical reference for how to do absolutely everything, but it's overwhelming. To help with this, I made a series of 5 screencasts that cover the basics of using b2g desktop nightly builds, remote debugging with b2g desktop, hacking on gaia itself in b2g desktop, flashing a phone with gaia changes, and what to do if Firefox OS asks you to choose from two homescreens or if remote debugging does not show your source for your app.

Past Midnight: Debugging Firefox OS

http://blog.astithas.com/2012/10/debugging-firefox-os.html
A few months ago, long before the Firefox debugger had shipped, I had tried to see what it would take to get it to debug B2G, or as we call it now, Firefox OS. The hack proved successful and with time it grew into an important debugging target for us. I demoed it at JSConf last April, but at that time a lot of the debugger frontend functionality had not been available in nightlies. As of yesterday, however, nightly builds of Firefox can debug nightly builds of Firefox OS, both in the device and desktop versions. Let me give you a quick rundown of the necessary steps.

jq

http://stedolan.github.com/jq
jq is like sed for JSON data - you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text.

Django Development Server with HTTPS - xster.net - Never relearn twice

http://tech.xster.net/tips/django-development-server-with-https/
Sometimes you can’t avoid using HTTPS right starting from development (such as for developing Facebook canvas applications). You can setup Apache on your local machine and go through a bunch of trouble setting up your domain and setting up the certificate etc but there’s an easy way of using Django’s python manage.py runserver to work with HTTPS.

Django Development Server with HTTPS - xster.net - Never relearn twice

http://tech.xster.net/tips/django-development-server-with-https
Sometimes you can’t avoid using HTTPS right starting from development (such as for developing Facebook canvas applications). You can setup Apache on your local machine and go through a bunch of trouble setting up your domain and setting up the certificate etc but there’s an easy way of using Django’s python manage.py runserver to work with HTTPS.

marijnh/Presence

https://github.com/marijnh/Presence
Presence is an IRC logger and client that is optimized for my specific use of IRC — scan logs for a few specific channels, respond to direct messages and mentions, and only occasionally participate in discussion. It probably won't work for you if you're a heavy IRC user.

Stop Validating Email Addresses With Your Complex Regex - davidcelis.com

http://davidcelis.com/blog/2012/09/06/stop-validating-email-addresses-with-regex/
No, I’m not joking. Just send your users an email. The activation email is a practice that’s been in use for years, but it’s often paired with complex validations that the email is formatted correctly. If you’re going to send an activation email to users, why bother using a gigantic regular expression?

Stop Validating Email Addresses With Your Complex Regex - davidcelis.com

http://davidcelis.com/blog/2012/09/06/stop-validating-email-addresses-with-regex
No, I’m not joking. Just send your users an email. The activation email is a practice that’s been in use for years, but it’s often paired with complex validations that the email is formatted correctly. If you’re going to send an activation email to users, why bother using a gigantic regular expression?

Ward Cunningham on "The Wiki Way" | To the best of our KNOWLEDGE

http://ttbook.org/book/wiki-way
Before there was Wikileaks, before there was Wikipedia… Before there was Facebook and Twitter and blogs… there was a computer programmer named Ward Cunningham. He’s the guy who, back in 1995, invented the wiki. He also did something even more radical. He didn’t patent it. He passed up billions of dollars in potential revenue, because he believed the internet needed to be more democratic. And why did he invent the wiki in the first place?

Introduction - Google Cloud Storage — Google Developers

https://developers.google.com/storage/docs/getting-started
Google Cloud Storage is a new service for developers to store and access data in Google's cloud. It offers developers direct access to Google's scalable storage and networking infrastructure as well as powerful authentication and data sharing mechanisms. Developers can store objects of any size and manage access to their data on an individual or group basis using Google Cloud Storage.

Enabling Cross-Origin Resource Sharing - Amazon Simple Storage Service

http://docs.amazonwebservices.com/AmazonS3/latest/dev/cors.html
Cross-origin resource sharing (CORS) defines a way for client web applications that are loaded in one domain to interact with resources in a different domain. With CORS support in Amazon S3, you can build rich client-side web applications with Amazon S3 and selectively allow cross-origin access to your Amazon S3 resources.

The Pushbutton Web: Realtime Becomes Real - Anil Dash

http://dashes.com/anil/2009/07/the-pushbutton-web-realtime-becomes-real.html
Pushbutton is a name for what I believe will be an upgrade for the web, where any site or application can deliver realtime messages to a web-scale audience, using free and open technologies at low cost and without relying on any single company like Twitter or Facebook. The pieces of this platform have just come together to enable a whole set of new features and applications that would have been nearly impossible for an average web developer to build in the past.

Introducing django-lazysignup — Stereoplex

http://www.stereoplex.com/blog/introducing-django-lazysignup
So I started wondering - what if we just created a real user for every person who visited the site? Django already has support for creating users with unusable passwords - so if we just create a user with an unusable password every time a new person comes along, log them in, and then at some future point (presumably once they've fallen in love with your site) they can set themselves up with a real username and password. And as a bonus, all that data that they created while messing about with the site sticks around, and carries over into their 'real' user.

X-Robots-Tag: Control Google Indexing via HTTP Headers

http://www.intelligentpositioning.com/blog/2009/08/x-robots-tag-control-google-indexing-via-http-headers/
We’ve all got used to being able to control how the major search engines index our sites using a combination of robots.txt and the robots meta tag to add attributes like ‘noindex’ to individual pages. While this works great for the pages themselves, it’s not so good for non-HTML, indexable content such as PDFs or embedded media, as we have no HTML <meta> tag in which to insert the meta-information. In this article we take a look at a potential solution to this problem: the X-Robots-Tag HTTP Header.

X-Robots-Tag: Control Google Indexing via HTTP Headers

http://www.intelligentpositioning.com/blog/2009/08/x-robots-tag-control-google-indexing-via-http-headers
We’ve all got used to being able to control how the major search engines index our sites using a combination of robots.txt and the robots meta tag to add attributes like ‘noindex’ to individual pages. While this works great for the pages themselves, it’s not so good for non-HTML, indexable content such as PDFs or embedded media, as we have no HTML tag in which to insert the meta-information. In this article we take a look at a potential solution to this problem: the X-Robots-Tag HTTP Header.

Hallo.js, a simple rich text editor for the web - Henri Bergius in Berlin, Germany

http://bergie.iki.fi/blog/hallo-editor/
Hallo.js is a simple rich text editor built as a jQuery UI widget and utilizing the HTML5 contentEditable functionality for allowing in-place editing. This sort of real in-place editing differs from more traditional editors like TinyMCE in that the content is never detached from its place on a page, and so for instance all CSS rules apply to it. This makes the editing experience much more true WYSIWYG.

Hallo.js, a simple rich text editor for the web - Henri Bergius in Berlin, Germany

http://bergie.iki.fi/blog/hallo-editor
Hallo.js is a simple rich text editor built as a jQuery UI widget and utilizing the HTML5 contentEditable functionality for allowing in-place editing. This sort of real in-place editing differs from more traditional editors like TinyMCE in that the content is never detached from its place on a page, and so for instance all CSS rules apply to it. This makes the editing experience much more true WYSIWYG.

7 Compromises Google Made To Put Chrome on iPhone and iPad

http://www.chromestory.com/2012/07/7-compromises-google-made-to-put-chrome-on-iphone-and-ipad/
Google Chrome for iPhone and iPad is here. But as you all know by now, it is not the complete Chrome experience on iOS. There are many compromises (platform limitations, as Google calls it) that Google had to make to bring Chrome to iOS. Let’s take a look at 7 of them.

Origin of the @reply – Digging through twitter’s history | Anarchogeek

http://anarchogeek.com/2012/07/09/origin-of-the-reply-digging-through-twitters-history/
Twitter’s been around for over 6 years now, and it’s most of it’s early history has been forgotten. The amazing thing about twitter as a platform and community is that it’s evolution has come through it’s use. Through use, people together evolve new ways of communicating. The #hashtag, the retweet, the @reply, follow friday, trending topics, real time twitter search, explaining twitter trends, cc-ing users, etc… These were all creations of the user base, people tried out ideas and build them. Twitter the company later adopted the conventions of it’s community and formalized the tools. This letting the community of users create, and then adopting the practices is critical to how Twitter’s grown to be such an amazing platform. It’s also why new efforts to deliver a ‘consistent experience‘ are a terrible idea and if they succeed will kill twitter’s future innovation.

Origin of the @reply – Digging through twitter’s history | Anarchogeek

http://anarchogeek.com/2012/07/09/origin-of-the-reply-digging-through-twitters-history
Twitter’s been around for over 6 years now, and it’s most of it’s early history has been forgotten. The amazing thing about twitter as a platform and community is that it’s evolution has come through it’s use. Through use, people together evolve new ways of communicating. The #hashtag, the retweet, the @reply, follow friday, trending topics, real time twitter search, explaining twitter trends, cc-ing users, etc… These were all creations of the user base, people tried out ideas and build them. Twitter the company later adopted the conventions of it’s community and formalized the tools. This letting the community of users create, and then adopting the practices is critical to how Twitter’s grown to be such an amazing platform. It’s also why new efforts to deliver a ‘consistent experience‘ are a terrible idea and if they succeed will kill twitter’s future innovation.

Scripting News: Twitter is a Corporate API

http://scripting.com/stories/2012/07/07/twitterIsACorporateApi.html
Conclusion -- corporate APIs are good for the corporations that own them, and pretty much bad for everyone else. I would be reluctant to develop on any corporate API unless I was prepared to have my work completely deleted or obviated or usurped by the platform vendor. You really don't have any power. However it's pretty much impossible to avoid them. But try to. And don't be a crybaby when you get hurt. permalink

Mozilla Thimble

https://thimble.webmaker.org/en-US/
Thimble makes it ridiculously simple to create your own web pages. Write and edit HTML and CSS right in your browser. Instantly preview your work. Then host and share your finished pages with a single click. Easy, huh?

Mozilla Thimble

https://thimble.webmaker.org/en-US
Thimble makes it ridiculously simple to create your own web pages. Write and edit HTML and CSS right in your browser. Instantly preview your work. Then host and share your finished pages with a single click. Easy, huh?

Why Django Sucks, Except When It Doesn’t « Coffee on the Keyboard

http://coffeeonthekeyboard.com/why-django-sucks-except-when-it-doesnt-664/
If you’re prototyping a new project, or if you’re a start-up and need to ship something, or if you’re just one person working on a little app with a few (even a few tens of thousands) of users, odds are that none of those benefits are worth losing the nice stuff Django gives you, or the time it takes to build APIs (even using existing apps to do it) or abstraction layers between the silos.

Why Django Sucks, Except When It Doesn’t « Coffee on the Keyboard

http://coffeeonthekeyboard.com/why-django-sucks-except-when-it-doesnt-664
If you’re prototyping a new project, or if you’re a start-up and need to ship something, or if you’re just one person working on a little app with a few (even a few tens of thousands) of users, odds are that none of those benefits are worth losing the nice stuff Django gives you, or the time it takes to build APIs (even using existing apps to do it) or abstraction layers between the silos.

Google's undocumented favicon to png convertor

http://simonwillison.net/2008/Aug/30/favicons/
Google's undocumented favicon to png convertor (via) Showing the favicon of a domain next to a link is a really nice trick, but it’s slightly tricky to achieve as IE won’t display a .ico file if you link to it from an img element, so you need to convert the images server-side. This undocumented Google API does that for you, meaning it’s much easier to add favicons as a feature to your site.

Google's undocumented favicon to png convertor

http://simonwillison.net/2008/Aug/30/favicons
Google's undocumented favicon to png convertor (via) Showing the favicon of a domain next to a link is a really nice trick, but it’s slightly tricky to achieve as IE won’t display a .ico file if you link to it from an img element, so you need to convert the images server-side. This undocumented Google API does that for you, meaning it’s much easier to add favicons as a feature to your site.

How I built my blog in one day

http://erjjones.github.com/blog/How-I-built-my-blog-in-one-day
How I did this blog is nothing new, as a matter of fact many have done exactly what I did and it is well documented. This post is just on how I did it and since it is all very fresh in my mind I thought I would write a post about it. For other tutorials on how to do this checkout these:

Create Your Own Posterous with Jekyll, PHP, Mailgun, and S3 : jazzychad's blog

http://blog.jazzychad.net/2012/03/12/create-your-own-posterous.html
A few weeks ago, I decided to create an email-powered blog that is hosted in an Amazon s3 bucket as a website. I wanted to be able to email new posts to the blog and have them published automatically. I use the email subject line as the title of the post and the email body as the text of the post (written in markdown).

MESS in a browser!

http://jsmess.textfiles.com/
You are looking at a javascript version of the MESS emulator, a program that emulates hundreds of machine types and will, eventually, be capable of running most known computer software programs. What you see here (and if you don't see anything, we apologize) is a Colecovision emulator running the homebrew Colecovision cartridge "Cosmo Fighter 2", in demo mode.

MESS in a browser!

http://jsmess.textfiles.com
You are looking at a javascript version of the MESS emulator, a program that emulates hundreds of machine types and will, eventually, be capable of running most known computer software programs. What you see here (and if you don't see anything, we apologize) is a Colecovision emulator running the homebrew Colecovision cartridge "Cosmo Fighter 2", in demo mode.

Quick QR Codes In Django

http://www.acedevs.com/blog/2011/07/25/quick-qr-codes-django/
Creating QR codes is a quick and easy process using a few model signals and the PyQRNative port. The hardest part of this implementation was finding a way to use the Django ContentFile object to save the generated QR code using our selected storage backend. This was important because you would not have to worry about changes to your system architecture effecting your QR generation code. An example would be moving from local filesystem storage to S3 using Django Storages (django-storages).

Quick QR Codes In Django

http://www.acedevs.com/blog/2011/07/25/quick-qr-codes-django
Creating QR codes is a quick and easy process using a few model signals and the PyQRNative port. The hardest part of this implementation was finding a way to use the Django ContentFile object to save the generated QR code using our selected storage backend. This was important because you would not have to worry about changes to your system architecture effecting your QR generation code. An example would be moving from local filesystem storage to S3 using Django Storages (django-storages).

Scripting News: Outlining and my father

http://scripting.com/stories/2012/05/19/outliningAndMyFather.html
So now I'm on the cusp of releasing a tool that allows you to write directly onto the web in an outliner. The distance between the content on your machine and it being on the web is one mouse-click. That's exactly how far you want it to be. My father is not alive to see this, but if he were, he'd probably die from excitement. This is something he and I shared, at a genetic level, in our DNA, is this idea that the human mind can reach outside of itself, onto a computer, to make even more powerful and useful intellectual structures. Honestly, I wish he were here to share this with me. permalink

Mark Finkle’s Weblog » Firefox for Android: Where’s the Error Console?

http://starkravingfinkle.org/blog/2011/12/firefox-for-android-wheres-the-error-console/
The new native Android UI version of Firefox does not ship with a dedicated Error Console. Instead, all console messages are redirected to the Android system log – also known as logcat. If you have the Android SDK installed, you already have a way to view the logcat:

Mark Finkle’s Weblog » Firefox for Android: Where’s the Error Console?

http://starkravingfinkle.org/blog/2011/12/firefox-for-android-wheres-the-error-console
The new native Android UI version of Firefox does not ship with a dedicated Error Console. Instead, all console messages are redirected to the Android system log – also known as logcat. If you have the Android SDK installed, you already have a way to view the logcat:

Coding Horror: Learn to Read the Source, Luke

http://www.codinghorror.com/blog/2012/04/learn-to-read-the-source-luke.html
The transformative power of "source always included" in JavaScript is a major reason why I coined – and continue to believe in – Atwood's Law. Even if "view source" isn't built in (but it totally should be), you should demand access to the underlying source code for your stack. No matter what the documentation says, the source code is the ultimate truth, the best and most definitive and up-to-date documentation you're likely to find. This will be true forever, so the sooner you come to terms with this, the better off you'll be as a software developer.

Why Web 1.0 Needs to Make a Comeback

http://www.lockergnome.com/net/2012/05/15/why-web-1-0-needs-to-make-a-comeback
In reality, all of these services make money from your content. Either they serve advertisements next door to your content or they are targeting advertisements towards you, specifically, depending on whatever it is that you are sounding off about on these services.

javascript - Convert Data URI to File then append to FormData - Stack Overflow

http://stackoverflow.com/questions/4998908/convert-data-uri-to-file-then-append-to-formdata
I've been trying to re-implement an HTML5 image uploader like the one on the Mozilla Hacks site, but that works with WebKit browsers. Part of the task is to extract an image file from the canvas object and append it to a FormData object for upload.

Uploading directly from HTML5 canvas to imgur — Jonas Wagner's Blog

http://29a.ch/2011/9/11/uploading-from-html5-canvas-to-imgur-data-uri
For an upcoming canvas project I want to give the users the ability to upload the content of the canvas to an image sharing service. When looking for a suitable API I came across imgur.com the registration was trivial, and they support CORS and base64/dataurl uploads, perfect!

Pixel-fitting by Dustin Curtis

http://dcurt.is/pixel-fitting
The difference is subtle, but the comparison makes it very clear. There are several major problems with the computer-created icons that leaves them looking blurry and unimpressive. For example, in the transition from 66x40 to 48x30 pixels, the human version drops the border down to exactly 2 pixels but the computer drops it to 2.8 (that's two solid black pixels, plus one half-pixel at 80% intensity), which gives it an incorrect soft edge. The computer has no way of knowing that the border should always be sharp, so it ignorantly tries to maintain the ratio of the originally-specified image at the expense of sharpness. The result is not great.

no-www considered harmful - defunct

http://www.less-broken.com/blog/2012/05/no-www-considered-harmful.html
I remember reading about the no-www movement years ago. At that time it struck me as a cool thing to do, but I now know that no-www is a really bad idea in general. That’s because the DNS system lets you assign CNAME records to subdomains, including the www subdomain, but only A or AAAA records to root domains. In other words, you can say that www.example.com is the same as test.example.org, but you can only say that example.com is the same as a particular IP address.

Demoing and displaying JavaScript at the same time using CSS | Christian Heilmann

http://christianheilmann.com/2012/05/08/demoing-and-displaying-javascript-at-the-same-time-using-css/
If you do a view-source you find no other script in use, yet it displays in the page. What is this sourcery*? Simple, and it was Mathias Bynens who got me onto it: just display script elements as block and add some generated content to show the “Source” text:

Demoing and displaying JavaScript at the same time using CSS | Christian Heilmann

http://christianheilmann.com/2012/05/08/demoing-and-displaying-javascript-at-the-same-time-using-css
If you do a view-source you find no other script in use, yet it displays in the page. What is this sourcery*? Simple, and it was Mathias Bynens who got me onto it: just display script elements as block and add some generated content to show the “Source” text:

Of parser-fetishists and semi-colons | Christian Heilmann

http://christianheilmann.com/2012/04/16/of-parser-fetishists-and-semi-colons/
I think it is a sign that as developers we are either terribly bored or we are out of ideas when we start to go down to bickering about violating accepted ways of development. We should concentrate on building amazing tools and experiences for users out there rather than smugly trying to undo conventions we’ve been following for years now. The web standards movement was not about enforcing arbitrary code syntax on poor developers who now have to type a few keys more. It is about making code predictable, extensible and easy to explain to newcomers. Confusing these matters doesn’t help the cause of making a new generation of developers embrace the web as a platform. Don’t be that guy.

Of parser-fetishists and semi-colons | Christian Heilmann

http://christianheilmann.com/2012/04/16/of-parser-fetishists-and-semi-colons
I think it is a sign that as developers we are either terribly bored or we are out of ideas when we start to go down to bickering about violating accepted ways of development. We should concentrate on building amazing tools and experiences for users out there rather than smugly trying to undo conventions we’ve been following for years now. The web standards movement was not about enforcing arbitrary code syntax on poor developers who now have to type a few keys more. It is about making code predictable, extensible and easy to explain to newcomers. Confusing these matters doesn’t help the cause of making a new generation of developers embrace the web as a platform. Don’t be that guy.

RoboHash

http://robohash.org
Robohash is a easy web service that makes it easy to provide unique, robot/alien/monster/whatever images for any text. Put in any text, such as IP address, email, filename, userid, or whatever else you like, and get back a pretty image for your site.

SUMO and migrating large amounts of data

http://embrangler.com/2010/12/migrating-large-amounts-of-data/
Data migration is a complicated problem. It’s one of those things nobody wants to do, because it’s mostly tedious, not engaging, and also important to get right. Often times you have to compromise. I’ll talk a bit about the history of SUMO’s data, decisions the product and development team have made regarding its migration, and things I’ve learned from the experience.

SUMO and migrating large amounts of data

http://embrangler.com/2010/12/migrating-large-amounts-of-data
Data migration is a complicated problem. It’s one of those things nobody wants to do, because it’s mostly tedious, not engaging, and also important to get right. Often times you have to compromise. I’ll talk a bit about the history of SUMO’s data, decisions the product and development team have made regarding its migration, and things I’ve learned from the experience.

Custom Admin Views and Reversing Django Admin URLs - Ian Lewis

http://www.ianlewis.org/en/reversing-django-admin-urls
The key parts are the get_urls function and the admin_update_feeds view. The get_urls method returns the urls for this admin to which we are adding our custom view. The custom view does the updating of the lifestream feeds and returns the user to the Item model's changelist view. We get the url for that view by calling reverse with the pattern "<namespace>:<app>_<model>_changelist" which in our case is "admin:lifestream_item_changelist" since the django admin uses the admin namespace.

BrowserQuest – a massively multiplayer HTML5 (WebSocket + Canvas) game experiment ✩ Mozilla Hacks – the Web developer blog

http://hacks.mozilla.org/2012/03/browserquest/
BrowserQuest is a tribute to classic video-games with a multiplayer twist. You play as a young warrior driven by the thrill of adventure. No princess to save here, just a dangerous world filled with treasures to discover. And it’s all done in glorious HTML5 and JavaScript.

BrowserQuest – a massively multiplayer HTML5 (WebSocket + Canvas) game experiment ✩ Mozilla Hacks – the Web developer blog

http://hacks.mozilla.org/2012/03/browserquest
BrowserQuest is a tribute to classic video-games with a multiplayer twist. You play as a young warrior driven by the thrill of adventure. No princess to save here, just a dangerous world filled with treasures to discover. And it’s all done in glorious HTML5 and JavaScript.

django-webdav - Django webdav implementation. - Google Project Hosting

http://code.google.com/p/django-webdav/
WebDAV implemented as a Django application. The motivation for this project is to allow authentication of users against Django's contrib.auth system, while also exporting different directories per user. Many Django tools and app can be combined with this such as django-digest etc. to provide a powerful WebDAV server.

A Hypermedia API Reading List - Literate Programming

http://blog.steveklabnik.com/posts/2012-02-27-hypermedia-api-reading-list
Originally, this post was titled "A RESTful Reading List," but please note that REST is over. Hypermedia API is the new nomenclature. I've been doing an intense amount of research on Hypermedia APIs over the last few months, and while I didn't save every resource I found, I've made a list here of the most important.

Haters gonna HATEOAS — Timeless

http://timelessrepo.com/haters-gonna-hateoas
Now, when I said ‘nobody’ does this, what I meant was ‘for APIs.’ This is exactly how the Web works. Think about it. You start off on the homepage. That’s the only URL you have to know. From there, a bunch of links point you towards each state that you can reach from there. People would consider it ludicrous if they had to remember a dozen URLs to navigate a website, so why do we expect the consumers of our APIs to do so as well?

Escapes.js

http://256.io/escapes.js/
escapes.js is a small JavaScript library for rendering ANSI art, a form of computer art that flourished in the mid 90s. ANSI art was composed by colorizing sequences of characters and blocks drawn in the built-in system font, which made it easy to transmit across telephone wires. As a result, ANSI art was especially popular on Bulletin Board Systems (BBSes).

Escapes.js

http://256.io/escapes.js
escapes.js is a small JavaScript library for rendering ANSI art, a form of computer art that flourished in the mid 90s. ANSI art was composed by colorizing sequences of characters and blocks drawn in the built-in system font, which made it easy to transmit across telephone wires. As a result, ANSI art was especially popular on Bulletin Board Systems (BBSes).

Mozilla developing Web push notification system for Firefox

http://arstechnica.com/business/news/2012/02/mozilla-developing-web-push-notification-system-for-firefox.ars
Mozilla is developing a push notification system for the Firefox Web browser. It will allow users to receive notifications from websites without having to keep those sites open in their browser. The system will also be able to relay push notifications to mobile devices.

Introducing Push Notifications

http://jbalogh.me/2012/01/30/push-notifications
Push notifications are a way for websites to send small messages to users when the user is not on the site. iOS and Android devices already support their own push notification services, but we want to make notifications available to the whole web. We’re making prototypes and designing the API right now and want to share our progress.

Arctext.js - Curving Text with CSS3 and jQuery | Codrops

http://tympanus.net/codrops/2012/01/24/arctext-js-curving-text-with-css3-and-jquery
While CSS3 allows us to rotate letters, it is quite complicated to arrange each letter along a curved path. Arctext.js is a jQuery plugin that let's you do exactly that. Based on Lettering.js, it calculates the right rotation of each letter and distributes the letters equally across the imaginary arc of the given radius.

2011: A Badass JavaScript Year In Review - Badass JavaScript

http://badassjs.com/post/15082876071/2011-a-badass-javascript-year-in-review?72f783a8=
2011 has been a great year for JavaScript. Web browsers have given us great new tools to use and we have taken web applications to new heights, competing with native applications and bringing sexy back to the web with countless impressive demos. A week or so ago, we put out a survey to all of you asking what you thought the most badass JavaScript demo of 2011 was. Of course, this would be a boring post if we just said what the outcome was, so we’re going to list the top JavaScript accomplishments of 2011 here, from demos to libraries and applications themselves. And to all of you in the JS community, Happy New Year and keep up the good work in 2012!

The rise and rise of JavaScript « DanNorth.net

http://dannorth.net/2011/12/19/the-rise-and-rise-of-javascript
JavaScript had a difficult childhood. It grew up in lawless neighbourhoods surrounded by gangs. It spent a lot of time listening to its parents fighting with one another about what they wanted it to be when it grew up. As any young language would, it tried hard to please its parents (and that barmy committee of uncles, and all the other random people trying to shape its future). As a result it suffers from what can only be described as behavioural quirks. Depending on which gang it’s hanging out with it will sometimes happily talk to you through its console.log, at other times refuse to say anything, and yet other times it will blow up in your face (but not tell you why).

Mozilla’s WebAPI for Firefox takes shape, porn sites quiver in anticipation | ExtremeTech

http://www.extremetech.com/computing/107211-mozillas-webapi-for-firefox-takes-shape-porn-sites-quiver-in-anticipation
The first fruits of Mozilla’s attempt to make a Chrome OS-like Firefox operating system — Boot 2 Gecko — are now beginning to take shape in the Nightly builds of Firefox for Android. Dubbed “WebAPI,” these recent additions allow Firefox to access an Android device’s hardware through a JavaScript API. As of the latest Nightly, Firefox 11 for Android can now read the battery state, capture images from the camera, send SMSes, and trigger the vibrator motor.

New York Times Adds A Twist To Hyperlinks | The Daily Feed | Minyanville.com

http://www.minyanville.com/dailyfeed/new-york-times-adds-a
The Atlantic noticed that the New York Times updated its internal hyperlinks and allowed for special commands for more user control. Similar to cuing YouTube videos at a specific point, special code can be added at the end of URLs to link to or highlight specific paragraphs and sentences. Intended for bloggers to underscore certain passages, it's still a nifty trick for sharing excerpts between day-to-day readers.

Code: Flickr Developer Blog » Flipping Out

http://code.flickr.com/blog/2009/12/02/flipping-out
Flickr is somewhat unique in that it uses a code repository with no branches; everything is checked into head, and head is pushed to production several times a day. This works well for bug fixes that we want to go out immediately, but presents a problem when we’re working on a new feature that takes several months to complete. How do we solve that problem? With flags and flippers!

Facebook is gaslighting the web. We can fix it. - Anil Dash

http://dashes.com/anil/2011/11/facebook-is-gaslighting-the-web.html
Now, we've shown that Facebook promotes captive content on its network ahead of content on the web, prohibits users from bringing open content into their network, warns users not to visit web content, and places obstacles in front of visits to web sites even if they've embraced Facebook's technologies and registered in Facebook's centralized database of sites on the web.

bl.ocks.org - 1377729 - Force-based label placement

http://bl.ocks.org/1377729
A small demo of a pleasant, yet simple label placement algorithm for densely packed visualizations. The basic idea is to have labels orbit around their target node at a fixed distance, but repeal each other, so that they don't overlap, and orient themselves to the outside of clusters. To support that, labels on the right of their target node are left-aligned, and labels on the left of their target node are right-aligned; in between, we interpolate. In this example, one force layout governs the node placement, and the second one the label placement, but of course, the node placement could be computed by any other algorithm.

APIs are a Pain

http://www.subbu.org/blog/2011/11/apis-are-a-pain
I would love to see every API to be RESTful, consistent, hypertext driven, and more importantly, interoperable. The reality is that getting consistent APIs is hard – particularly those that are done by distributed teams. For the record – I vehemently hate SOAP APIs and the SOAP mindset. I dislike RPC-style operation names tunneled over HTTP. I frown and cringe whenever I see unnecessary custom headers and complicated formats. I wish POST+XML goes away. I wish every API gets rewritten to the modern understanding of HTTP and REST, serving JSON. But I would rather spend my time enabling interoperability than preaching for consistency.

Why Google gets no respect (from developers) — Cloud Computing News

http://gigaom.com/cloud/why-google-gets-no-respect-from-developers
If Google wants to win the hearts and minds of these developers, it has to get more systematic and clear about roadmaps, has to be more circumspect about changing things without notice, and be precise about how apps that run on Google infrastructure now will or won’t run on other infrastructure in the future. The problem is, it’s not all that clear that Google itself is serious about this market. And if it isn’t, why should anyone else take the plunge?

CouchDB "Joins" - Christopher Lenz

http://www.cmlenz.net/archives/2007/10/couchdb-joins
Obvious to Damien, but not at all obvious to the rest of us: it's fairly simple to make a view that includes both the content of the blog post document, and the content of all the comments associated with that post. The way you do that is by using complex keys. Until now we've been using simple string values for the view keys, but in fact they can be arbitrary JSON values, so let's make some use of that:

The purported death of RSS

http://www.loopinsight.com/2011/11/10/the-purported-death-of-rss
Just as /Library is now hidden from an OS X Lion user, and just as the iOS platform is locked down and sandboxed, RSS is simply dropping off into the background. Content is being syndicated and aggregated just as before. Perhaps even more so than in the past. Virtually everyone with a Facebook, Google+, or Twitter account follows a news-providing entity. Those entities share content feeds. Those content feeds are generally derived from the XML and Atom feeds that comprise the RSS.

Poll: What Is Your Reaction to the Death of Mobile Flash?

http://www.readwriteweb.com/archives/poll_what_is_your_reaction_to_the_death_of_mobile.php
The Web is singing this morning. The coming death of Flash on mobile devices has made a lot of tech pundits and developers very happy. There is a big fat "I told you so" coming from all corners the of Internet while all Adobe can do is quietly sit back and rue the day the original iPhone was announced.

The mobile app is going the way of the CD-ROM: To the dustbin of history | VentureBeat

http://venturebeat.com/2011/11/09/mobile-web
For developers, it’s technologically more manageable to build one mobile web app than a half-dozen or even just two native apps. And given the state of mobile web standards, we’re quickly approaching a point where end users can’t tell the difference between the two. All that’s really left is a business model for mobile web apps, Sullivan contends.

TideArt - Web designers: Time to ditch Flash, Silverlight, and embrace HTML5

http://tideart.com/?id=4ebafb57
Yesterday, Adobe announced major job cuts and a company restructuring, and indicated that their focus on Flash may not be what it used to be, by cutting off Flash development on Android and the Playbook. Meanwhile last week, Microsoft was reluctantly admitting that Silverlight isn't a big part of their future either. The message is clear, and even if it means some relearning for long time web designers, it's time to switch to HTML5 if you haven't already.

Web 2.0 Development and Business Lessons: CoffeeScript Means Giving Up on JavaScript

http://www.w2lessons.com/2011/11/coffeescript-means-giving-up-on.html
While many of you will probably disagree with me, I find the trend towards writing in languages that compile to JavaScript somewhat alarming. The most notable of these languages CoffeeScript, and it's one that has gained a good degree of traction over the last year or so.

Don't use MongoDB | Hacker News

http://news.ycombinator.com/item?id=3202081
From CTO of 10gen First, I tried to find any client of ours with a track record like this and have been unsuccessful. I personally have looked at every single customer case that’s every come in (there are about 1600 of them) and cannot match this story to any of them. I am confused as to the origin here, so answers cannot be complete in some cases.

CSS Media Queries

http://cssmediaqueries.com
HTML4 and CSS2 currently support media-dependent style sheets tailored for different media types. A media query consists of a media type and zero or more expressions that check for the conditions of particular media features. Seems like a nifty site to vet media queries on all my devices

Yahoo's 'Manhattan' To Rescue Web From the iPad | Wired Enterprise | Wired.com

http://www.wired.com/wiredenterprise/2011/11/yahoos-manhattan
On Wednesday, Yahoo launched a virtual newsstand atop its site — dubbed Livestand — and Manhattan will provide a means of building digital publications for this service. But developers will also have the freedom to run their apps wherever they like. The only restriction is that applications must be built with standard web technologies. Early next year, before the arrival of Manhattan, Yahoo will open-source a programming platform dubbed “Mojito.” Based on a widely used open source project known as Node.js, Mojito will allow developers to build entire applications with JavaScript, the web’s standard scripting language. Typically, JavaScript is used to build an application’s front end — the bit that runs on the user’s device — but with Node.js and Mojito, you can also use JavaScript on the back end — the bit that runs on the server.

Loyal Opposition to Const, Private, Freeze, Non-Configurable, Non-Writable...

https://mail.mozilla.org/pipermail/es-discuss/2011-November/017872.html
And JavaScript is one of the *most* dynamic of the mainstream programming languages. Not only can you can pass any object to any function, but you can call a method with any number of arguments, easily modify the prototypes of other objects, introspect on any object's properties with a simple loop, replace any member function with a wrapped version, attach new properties to any object ... the list goes on.

The end of an era: Internet Explorer drops below 50% of Web usage

http://arstechnica.com/microsoft/news/2011/11/the-end-of-an-era-internet-explorer-drops-below-50-percent-of-web-usage.ars
A couple of interesting things happened in the world of Web browser usage during October. The more significant one is that Internet Explorer's share of global browser usage dropped below 50 percent for the first time in more than a decade. Less significant, but also notable, is that Chrome for the first time overtook Firefox here at Ars, making it the technologist's browser of choice.

Tab Override | WJBryant.com

http://wjbryant.com/projects/tab-override
Tab Override is a plugin for WordPress and jQuery that allows tabs to be entered into textareas. In WordPress, it affects the HTML editor on admin pages. The WordPress plugin was originally written by Mathew Tinsley.

CookBookNewFormsDynamicFields – Django

https://code.djangoproject.com/wiki/CookBookNewFormsDynamicFields
But what if you're allowing your users to create their own survey questions, so that you don't know ahead of time how many answers you'll need? Luckily, you can add fields to the form as you're constructing it, in addition to specifying them as class attributes. If you have all your survey questions in a list (let's call it questions just to be confusing), you could create a Survey class that looks like this:

hij1nx/weld - GitHub

https://github.com/hij1nx/weld
Simple. Weld binds data to markup, and can generate markup based on your data. There's NO special syntax or data reshaping required. It works in the browser and in node.js! Weld is currently 3.66Kb uglified with no dependencies other than a valid DOM. Weld will apply values to elements the way that elements expect to have their values set.

Spine

http://maccman.github.com/spine
Spine is a lightweight framework for building JavaScript web applications. Spine gives you a MVC structure and then gets out of your way, allowing you to concentrate on the fun stuff, building awesome web applications.

HOWTO: Log Client IP AND X-Forwarded-For IP in Apache - Techstacks HOWTO's

http://www.techstacks.com/howto/log-client-ip-and-xforwardedfor-ip-in-apache.html
1 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 2 LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy 3 SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded 4 CustomLog "logs/access_log" combined env=!forwarded 5 CustomLog "logs/access_log" proxy env=forwarded

{placekitten}

http://placekitten.com
A quick and simple service for getting pictures of kittens for use as placeholders in your designs or code. Just put your image size (width & height) after our URL and you'll get a placeholder.

Dare Obasanjo aka Carnage4Life - Learning from our Mistakes: The Failure of OpenID, AtomPub and XML on the Web

http://www.25hoursaday.com/weblog/2011/01/30/LearningFromOurMistakesTheFailureOfOpenIDAtomPubAndXMLOnTheWeb.aspx
So next time you’re evaluating a technology that is being much hyped by the web development blogosphere, take a look to see that the fundamental assumptions that the fundamental assumptions that led to the creation of the technology actually generalize to your use case. An example that comes to mind that developers should consider doing with this sort of evaluation given the blogosphere hype is NoSQL.

Generating XML With node.js - WezM.net

http://www.wezm.net/technical/2011/01/generating-xml-with-node-js
For a node.js project I’m working on I wanted to generate a Sphinx xmlpipe2 data stream. The options for generating XML with node.js seemed a bit limited. The main contender appeared to be libmljs but it segfaulted whenever I tried to use it. So with previous experience using Tim Bray’s Genx C library I decided to write bindings for node. The result is node-genx, which is available via npm.

alandipert/ncsa-mosaic - GitHub

https://github.com/alandipert/ncsa-mosaic#readme
This is NCSA Mosaic 2.7, one of the first graphical web browsers. If you're on Ubuntu or something like it, your time machine is fueled up and ready to go. Follow the instructions below to build and run. Many thanks to Sean MacLennan and Alan Wylie for doing the heavy lifting. And, of course, hats off to Marc Andreessen, Eric Bina, and the rest of the NCSA team for kicking things off for us. Thanks!

Detecting Support for data: URIs | Weston Ruter

http://weston.ruter.net/2009/05/07/detecting-support-for-data-uris
The data: URI scheme is now supported by the most current version of every major browser, including Internet Explorer. Because of this I wanted to use CSS background images encoded with data: URIs in a current project at Shepherd Interactive. Why? The first rule of High Performance Websites is to Minimize HTTP Requests. By storing background images directly in the stylesheet only one HTTP request is then necessary to fetch the stylesheet and the images all at once. Furthermore, by giving that stylesheet a far-future cache expiration date the browser will never need to request it again.

2011: The Year of Firefox - or of Chrome? - Open Enterprise

http://blogs.computerworlduk.com/open-enterprise/2011/01/2011-the-year-of-firefox---or-of-chrome/index.htm
"I see no reason why Chrome won't rise to above 20% in the short term. This means, of course, that the market share of Firefox and Internet Explorer will continue to drop. But as I noted some time back, this really isn't a huge problem for Firefox - although it is for Microsoft. The reason is quite simple: Firefox was never aiming at world domination, it was fighting to create an open Web where no browser held such a dominant position that it could ignore open standards and impose de facto ones instead. We pretty much have that now, with Internet Explorer increasingly standards-compliant - and proud of it, amazingly."

Building Large-Scale jQuery Applications

http://addyosmani.com/blog/large-scale-jquery
"In this post we’ll be looking at ways you can put together a toolkit for large-scale jQuery application development by identifying the options you have available at the moment for dependency management, MVC with jQuery, templating, testing, minification and more."

Ned Batchelder: Global Django requests

http://nedbatchelder.com/blog/201008/global_django_requests.html
"As my Django sites get larger and larger, there inevitably comes a point where I want access to the current request from deep inside some function that doesn't have the request object. The latest reason was that I wanted a model class helper to have access to the session so it could access some debug flags. "

SplitSettings - Django - Trac

http://code.djangoproject.com/wiki/SplitSettings
"If you use a source control system (CVS, SVN, ...), or want to publish your application on the web, it may be a good idea to move sensitive or machine/user specific settings like database passwords and such out of the main settings.py file. "

jQuery Masonry · David DeSandro

http://desandro.com/resources/jquery-masonry
"Masonry is a layout plugin for jQuery. Think of it as the flip side of CSS floats. Whereas floating arranges elements horizontally then vertically, Masonry arranges elements vertically then horizontally according to a grid. The result minimizes vertical gaps between elements of varying height, just like a mason fitting stones in a wall."

Python Package Index : django-app-plugins 0.1.1

http://pypi.python.org/pypi/django-app-plugins/0.1.1
"A template extension system for marking points in your django templates as 'plugin-points', and providing plugins which inject themselves at those points. Multiple applications can be injected at each plugin point, and 'registered' plugin-points can have the visibility, order and access of the plugins controlled via DB models. This control can be done on a site wide or per-user basis. Thus you can allow users to add, remove, and reorder the plugins on their profile page for instance."

Django Software Stack : Sourcefabric

http://www.sourcefabric.org/en/home/blog/139/Django-Software-Stack.htm?tpl=355
"Here at Sourcefabric we have been looking in to what software stack to use for our next web products. This discussion used to be (oh, 5-10 years ago) a lot simpler, mainly involving choosing an operating systems, a language, and a database. But now it’s about higher-level things like out-of-the-box support for commenting, activity streams, ajax, cloud storage, deployment tools, scalability, geolocation, tagging, RESTful interfaces, search, twitter, facebook, and a whole lot more. Users and customers are starting to expect all of this built into any web application you build. Building applications these days is largely about integrating a large number of existing technologies instead of building something from scratch."

Cross-domain Ajax with Cross-Origin Resource Sharing | NCZOnline

http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing
"A couple of years ago, web developers were banging their head against the first wall in Ajax: the same-origin policy. While we marveled at the giant step forward enabled by cross-browser support for the XMLHttpRequest object, we quickly bemoaned the fact that there was no way to make a request to a different domain from JavaScript. Everyone setup proxies on their web sites, which was the onset of a new host of open redirect problems, as a way to get around the restriction. Although developers were working around this limitation using server-side proxies as well as other techniques, the community outcry was around allowing native cross-domain Ajax requests. A lot of people are unaware that almost all browsers (Internet Explorer 8+, Firefox 3.5+, Safari 4+, and Chrome) presently support cross-domain Ajax via a protocol called Cross-Origin Resource Sharing."

Labs/Secret - MozillaWiki

https://wiki.mozilla.org/Labs/Secret
"The Secret library (real name TBD) is a general-purpose cryptography API and implementation for JavaScript. Our plan is to design a modern API and first expose it to chrome JS (for browser add-ons), and later expose it to content as well. "

CiteSeerX — A Standard Framework for Web Personalization

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.59.8287
"personalization framework for the web are discussed, and contrasted with the requirements for a federated digital identity system. A set of design goals for personalization frameworks is developed and discussed. User identification requirements for personalization are isolated and found to be more limited than in the digital identity arena. Privacy implications for personalization frameworks are discussed. Based on all of this an architecture is proposed for detailed design and implementation."

PHP and Memcached: The state of things

http://brian.moonspot.net/php-memcached-issues
"Memcached is the de facto standard for caching in dynamic web sites. PHP is the one of the most widely used languages on the web. So, naturally there is lots of interest in using the two together. There are two choices for using memcached with PHP: PECL/memcache and PECL/memcached. Great names huh? But as of this writing there are issues with the two most popular Memcached libraries for PHP. This is a summary of those issues that I hope will help people being hurt by them and may bring about some change."

The New Lens Flare · David DeSandro

http://desandro.com/articles/the-new-lens-flare
"By abusing the text-shadow property, you can turn any ho-hum bit of text into a magnificent, radiant beacon of allure and awe. But getting your bling-bling on has never been for the cheapskates. Expect to pay a boatload in refresh rates, as your browser buckles under the weight of rendering that glorious halo."

A browsable, searchable archive of tweets | stopdesign

http://stopdesign.com/archive/2010/03/02/browsable-searchable-archive-of-tweets.html
"In the past, I’ve wanted to browse or search through my own tweets. Viewing my Twitter profile is one way to do that. But if I want to browse back through history, it’s a chore to go back very far. And forget about searching through my own tweets on Twitter since Twitter Search currently only goes back about a seven days."

NGINX + PHP-FPM + APC = Awesome

http://interfacelab.com/nginx-php-fpm-apc-awesome
"The following guide will walk you through setting up possibly the fastest way to serve PHP known to man. If there is a faster way, I’ve not yet found it climbing through zillions of blog posts out there on the subject. In this article, we’ll be installing nginx http server, PHP with the PHP-FPM patches, as well as APC. The end result? Pure awesome."

support : SAML toolkit for Ruby on Rails

http://support.onelogin.com/entries/165434-saml-toolkit-for-ruby-on-rails
"Security Assertion Markup Language (SAML) is a standard for logging users into applications based on their session in another context. This has significant advantages over logging in using a username/password: no need to type in credentials, no need to remember and renew password, no weak passwords etc."

Pikachoose jQuery Image Gallery

http://pikachoose.com
"Pikachoose is a lightweight Jquery plugin that allows easy presentation of photos with options for slideshows, navigation buttons, and auto play. Pikachoose is designed to be easily installed, easy to setup, and well… all around easy. Creating an image gallery shouldn’t be a complex thing. I’ve created a new plugin that I’m packaging with PikaChoose called SliderJS. "

Jon Rohan · Creating Triangles in CSS

http://www.dinnermint.org/css/creating-triangles-in-css
"I’ve come across a few techniques and tips in my career, while working at my last gig a co-worker pointed me to this technique. I believe this was originally discovered by the legendary Eric Meyer, but I couldn’t find much documentation about it on the web so I thought I would describe it here."

Using SimpleXML with HTML | drewish.com

http://drewish.com/content/2007/08/using_simplexml_with_html
"PHP 5's SimpleXML module is one of the the biggest reasons to upgrade to 5. If you're parsing RSS feeds or the results of webservice requests it works beautifully and saves a ton of time. The only problem with it is that it'll only load valid XML. I banged my head against it for way to long before coming up with the following:"

uWSGI

http://projects.unbit.it/uwsgi
"uWSGI is a fast (pure C), self-healing, developer-friendly WSGI server, aimed for professional python webapps deployment and development. Over time it has evolved in a complete stack for networked/clustered python applications, implementing message/object passing and process management. It uses the uwsgi (all lowercase) protocol for all the networking/interprocess communications. From the 0.9.5 release it includes a plugin loading technology that can be used to add support for other languages or platform. A Lua wsapi adaptor, a PSGI handler and an Erlang message exchanger are already available. "

cloudkick | blog: 4 Months with Cassandra, a love story

https://www.cloudkick.com/blog/2010/mar/02/4_months_with_cassandra
"At Cloudkick we track a ton of metrics about our customer's servers and it's quite a challenge to store such massive amounts of data. Early on, we made the decision to avoid using tools like RRDTool, so we could provide a more holistic look at infrastructure. We had two firm requirements: we wanted to show trends on a macro-level and to have very low latency so our users would never wait for graphs to build. We initially used PostgreSQL, but as we added billions of rows, the performance quickly degraded. We used cron jobs that would roll up the data on intervals to trade storage for throughput and lower latency. With clever partitioning, we were able to stretch the system to a certain point, but beyond that we faced issues of needing a much bigger machine and faster rotational disks to accommodate our business requirements; that's when started looking at other solutions."

#Teleku , Teleku Launches!

http://teleku.tumblr.com/post/405877949/teleku-launches
"Teleku is a new cloud-based telecom company that allows Web developers to build and host phone applications that answer inbound calls and initiate outbound calls, interact with Web applications, and send/receive SMS text messages! Using simple XML responses in your HTTP Web pages, you can deliver sophisticated interactive voice response (IVR) telephony applications in as little as 5 minutes!"

JavaScript Commodore Emulator

http://www.kingsquare.nl/jsc64
"jsc64 is a Commodore 64 emulator written in JavaScript by Tim de Koning. It's a port of the FC64, the Commodore 64 emulator written in Actionscript by Darron Schall and Claus WahlersThis emulator is meant as a 'proof of concept' and uses the HTML5 Canvas-element to render the Commodore 64 screen layout. This means it will work on all modern browsers, being the lastest version of Firefox, Google Chrome and Safari. Rendering on Internet Explorer should be possible with some minor fixes in the 'Renderer class', but I'm afraid performance will be appalling.his emula"

Joe Dog Software - Siege Home

http://www.joedog.org/index/siege-home
"Siege is an http load testing and benchmarking utility. It was designed to let web developers measure their code under duress, to see how it will stand up to load on the internet. Siege supports basic authentication, cookies, HTTP and HTTPS protocols. It lets its user hit a web server with a configurable number of simulated web browsers. Those browsers place the server "under siege." "

cloudhead.io

http://cloudhead.io/toto
"toto is a git-powered, minimalist blog engine for the hackers of Oz. The engine weighs around ~230 sloc at its worst. There is no toto client, at least for now; everything goes through git."

Bad Nomenclature » Blog Archive » A rant about PHP compilers in general and HipHop in particular.

http://blog.paulbiggar.com/archive/a-rant-about-php-compilers-in-general-and-hiphop-in-particular
"One saving grace is that they didn’t patent it. I have an email in my inbox from one of the HPHP developers saying he couldn’t talk to me about the compiler because they might patent it. That’s pretty shitty. Thank god they open-sourced it instead [9]. It sounds like it was a bit touch and go for a while."

Displaying PHP APC Cache Information

http://www.electrictoolbox.com/apc-php-cache-information
"APC is the Alternative PHP Cache, which is a free, open, and robust framework for caching and optimizing PHP intermediate code. I posted about how to install APC on Linux a couple of days ago, and will now look at the apc.php script which comes with APC and shows information about how much of the cache is being used, what files are being cached, the number of times they've been accessed etc."

The Demise of Plain CSS: Why Sass And Languages Like It Will Triumph

http://wiseheartdesign.com/articles/2010/01/18/the-demise-of-css-why-sass-and-languages-like-it-will-triumph
"Just like higher-level programming languages compile to assembler, so Sass compiles to CSS. And just as higher-level programming languages eventually replaced the regular usage of assembler, so Sass (or a language like it) will eventually replace CSS. Now, don’t get me wrong. I am sure CSS has many more years ahead of it, but Sass and languages like it are the future. Yes, you can complain about the syntax. You can complain about the generated code. But ultimately, the productivity and simplicity that languages like Sass offer will win over the masses. Of that you can be sure."

Pinboard Blog

http://pinboard.in/blog/63
"Our technical goals are to never lose data, be very fast, and favor boring and faded technologies where possible. A rule of thumb that has worked well for me is that if I'm excited to play around with something, it probably doesn't belong in production."

Headless Virtualbox on OSX - Jon Atkinson

http://jonatkinson.org/headless-virtualbox-osx
"When I'm developing, I try to continuously deploy to a realistic environment as often as possible. This means a Debian server running a stack as close to production as I can get. Of course, I don't deploy to the actual production servers (a lesson I've learnt many times over), so I virtualise a Debian box and clone package set from the production server. Combined with bridged networking and a quick hosts file change, and I've got a production-equivalent server always available at server.local."

PHP Advent 2009 / You Don’t Need All That

http://phpadvent.org/2009/you-dont-need-all-that-by-marcel-esser
"The point I am trying to make is we’re getting a little crazy with our architectures. These days, we write PHP just like Java, but it’s not Java. It works completely differently, and we shouldn’t try to force patterns that aren’t necessarily the best fit. You don’t need all that. Just write good code."

W3C FileAPI in Firefox 3.6 at hacks.mozilla.org

http://hacks.mozilla.org/2009/12/w3c-fileapi-in-firefox-3-6
"Often, web applications will prompt the user to select a file, typically to upload to a server. Unless the web application makes use of a plugin, file selection occurs through an HTML input element, of the sort . Firefox 3.6 now supports much of the W3C File API, which specifies the ability to asynchronously read the selected file into memory, and perform operations on the file data within the web application (for example, to display a thumbnail preview of an image, before it is uploaded, or to look for ID3 tags within an MP3 file, or to look for EXIF data in JPEG files, all on the client side). This is a new API, and replaces the file API that was introduced in Firefox 3."

Events/live - jQuery JavaScript Library

http://docs.jquery.com/Events/live
"When you bind a "live" event it will bind to all current and future elements on the page (using event delegation). For example if you bound a live click to all "li" elements on the page then added another li at a later time - that click event would continue to work for the new element (this is not the case with bind which must be re-bound on all new elements). "

rc3.org - ETL and MVC

http://rc3.org/2009/11/30/etl-and-mvc
"Many Web developers think in MVC, the design pattern that describes Web development frameworks from Struts to Rails to CodeIgniter. What I’m finding lately, though, is that it’s not incredibly intuitive. ... The other day I was thinking about another acronym that’s relatively new to me — ETL. It stands for Extract, transform, load and is DBA jargon for the process of migrating data from one data source to another. But I think that for reports in particular, it describes how you should organize your code pretty well."

Built from source. » Blog Archive » Detecting plugins in Internet Explorer (and a few hints for all the others)

http://www.builtfromsource.com/2007/06/26/detecting-plugins-in-internet-explorer-and-a-few-hints-for-all-the-others
"The problem is that no one quite knows what to look for when dealing with Internet Explorer’s plugins. Plugins in IE are ActiveX-based, so there’s no single API for them all—each has its own method of returning, for example, version information. What this basically means is that while Firefox and other browsers are putting all of their plugin information in one handy place, Internet Explorer is jealously guarding its plugin-related secrets. It’s like the Dick Cheney of browsers. And we are, um, the Information Security Oversight Office in that analogy. Er… let’s just jump right in with some working detection cod"

Ralph Schindler - Dynamic Assertions for Zend_Acl in ZF

http://ralphschindler.com/2009/08/13/dynamic-assertions-for-zend_acl-in-zf
"In plain English, what developers want to be able to do is be able to design assertions that can accept application models that implement the Resource or Role interface, and be able to apply some dynamic or custom logic to assess whether or not the given role has access to the given resource. ... For the purposes of this example, we’ll take a simple concept: a user needs to be able to only edit their own blog post. The user in this case, would be our applications model for users. The actual class will implement the Zend_Acl_Role_Interface. We will also have a BlogPost model which will serve as the resource in question, thus implementing the Zend_Acl_Resource_Interface"

Holy Shmoly! » WordPress, Nginx and WP Super Cache

http://ocaoimh.ie/89495533/wordpress-nginx-wp-super-cache
"If you host your own WordPress blog, it’s probably on Apache. That all fine and good. For most sites Apache works wonderfully, especially as it’s so easy to find information on it, on mod_rewrite and everything else that everyone else uses. One of the alternatives is Nginx, a really fast webserver that streaks ahead of Apache in terms of performance, but isn’t quite as easy to use. That’s partly because Apache is the default webserver on most Linux distributions and hosts. Want to try Nginx? Here’s how."

Aral Balkan · Maximizing your DROIT, or: why you should learn HTML5, CSS3, and JavaScript for mobile development.

http://aralbalkan.com/2508
"While Microsoft drifts aimlessly with Windows Mobile trying to play a fruitless game of cat and mouse with Apple, and while Google – the defender of all things open and web – invests in Java with Android, one company has come out of left field with a solid vision to embrace open web technologies for its mobile platform. That company is Palm and its platform is called WebOS. And you should stand up and take notice because it is one of the most important developments in the mobile world today."

Doloto

http://msdn.microsoft.com/en-us/devlabs/ee423534.aspx
Sounds interesting. Too bad it's in .NET. "Doloto is an AJAX application optimization tool, especially useful for large and complex Web 2.0 applications that contain a lot of code, such as Bing Maps, Hotmail, etc. Doloto analyzes AJAX application workloads and automatically performs code splitting of existing large Web 2.0 applications. After being processed by Doloto, an application will initially transfer only the portion of code necessary for application initialization. The rest of the application’s code is replaced by short stubs—their actual function code is transferred lazily in the background or, at the latest, on-demand on first execution. Since code download is interleaved with application execution, users can start interacting with the Web application much sooner, without waiting for the code that implements extra, unused features."

New iTunes LP and Extras built using TuneKit Framework, aimed at Apple TV — RoughlyDrafted Magazine

http://www.roughlydrafted.com/2009/09/14/new-itunes-lp-and-extras-built-using-tunekit-framework-aimed-at-apple-tv
"Now look at how iTunes Extras are built: while distributed as a single file, the item is really a bundle (a folder that Mac OS X treats as a file) that amounts to a self-contained web site. It acts as a container for folders of standard PNG and JPEG graphics, AAC audio, and H.264 video content together with HTML and CSS presentation and JavaScript code.The index.html page contained in iTunes Extra bundles references TuneKit Core, a JavaScripts framework that presents a foundation for working with basic TuneKit objects. TuneKit Views present additional code for building a user interface and event handling, such as keyboard navigation and mouse input. Controllers define what is displayed in the user interface and how. The whole ball of wax is built within the TK namespace."

Some Notes On iTunes LP · Jay Robinson

http://jayrobinson.org/2009/09/11/some-notes-on-itunes-lp
"The iTunes LP experience is accomplished with HTML 4.01, CSS and JS. The interface feels very Flash-like, but there is no trace of it. The CSS animations are elaborate and smooth. ... As a music fan, and as a web developer, I couldn’t be more pleased with the new iTunes LP offering. If your audience is significantly Apple-oriented (e.g. a site about Mac rumors or a popular iPhone app) this proves that you can provide an incredible experience using only JavaScript and some proposed CSS3 properties."

XMLHttpRequest - W3C Working Draft 20 August 2009

http://www.w3.org/TR/2009/WD-XMLHttpRequest-20090820#the-setrequestheader-method
This is very annoying for Palm webOS, where WebKit is basically the top-level OS and not a browser. Might be a problem for ChromeOS too? Apps can't set their own User-Agent headers: "For security reasons, these steps should be terminated if header is an ASCII case-insensitive match for one of the following headers: ... User-Agent"

A new (and different) geo platform - (BlockChalk Blog)

http://blog.blockchalk.com/post/176373034/a-new-and-different-geo-platform
"We’ve just released a brand new API for BlockChalk. It’s very easy to learn and use: requests are made via HTTP GET and POST, and data is provided in XML, JSON, and RSS formats. These new interfaces enable developers to do nearly everything that you can do at http://blockchalk.com. It’s now possible to build client applications, mash-ups, and other tools based on BlockChalk geolocation data and services."

Exploring OAuth-Protected APIs :: Drive-by Digressions

http://mojodna.net/2009/08/21/exploring-oauth-protected-apis.html
"From time to time I need to debug OAuth-protected APIs, checking response headers and examining XML and JSON payloads. curl generally rocks for this sort of thing, but when the APIs in question are protected with OAuth, things break down. Likewise for benchmarking (ab, httperf, etc.) and exploration–isn’t it nice to browse APIs that return XML in Firefox? This needn’t to be the case."

Weekend coding: Add a character counter as the background of a textarea with JavaScript | CodeUtopia

http://codeutopia.net/blog/2009/08/01/weekend-coding-add-a-character-counter-as-the-background-of-a-textarea-with-javascript
"Have you ever filled a textarea on a page, which had a limit to how many characters you could type into it? ... How to effectively communicate how many characters you can type into a box, and have it look good. ... Add the number counter as the background of the textarea!"

Hallvord R. M. Steen - Most expensive javascript ever?

http://my.opera.com/hallvors/blog/2009/07/20/most-expensive-javascript-ever
"However, one of the world's biggest hardware vendors - whose name every single reader will be familiar with, and whose hardware a good share of you will be using right now - apparently didn't do their homework. When Opera's sysadmin booted up the server to test its web-based administration interface, they came across a single JavaScript statement that managed to piss off everyone up to and including the CTO."

Palm Pre Mojo SDK experiments at updates @ m.blog

http://mroth.info/blog/2009/07/08/palm-pre-mojo-sdk-experiments
"As a new Pre owner, I was curious to learn to code for the Palm WebOS SDK (Mojo). Whenever I try to learn a new technology, I try to build a functional test project. So… what to build for WebOS? Since the Pre’s web browser doesn’t currently support the W3C Geolocation spec used by Flickr Nearby, I figured a good “Hello World” might be an application to get the GPS coordinates from the Pre, and then load the appropriate Flickr page for that location."

Nick Bradbury: HomeSite Discontinued

http://nick.typepad.com/blog/2009/06/homesite-discontinued.html
"It's been almost 15 years since I created HomeSite, and I stopped working on it in 1998 when I left Allaire Corporation. Several other developers took over after I left, but to the best of my knowledge nobody has touched it for several years, so the fact that it was still being sold until now is a nice testament to how useful people found it. Kudos to Macromedia and Adobe for keeping it around, despite the fact that it competed with some of their other products."

10 UI Design Patterns You Should Be Paying Attention To | How-To | Smashing Magazine

http://www.smashingmagazine.com/2009/06/23/10-ui-design-patterns-you-should-be-paying-attention-to
"design patterns are solutions to recurring problems. By extension, UI design patterns are solutions to common user interface problems. This article goes over 10 interesting UI design patterns that you can use in your own projects. In fact, you may already be using them now without knowing it."

Face detection in pure PHP (without OpenCV) - Maurice Bloggue

http://svay.com/blog/index/post/2009/06/19/Face-detection-in-pure-PHP-(without-OpenCV)
Surprised the code is so short. "Lately, I've been looking for ways to detect faces in photos with PHP. Nowadays, face detection is built in many consumer products (camera obviously, but also Google and iPhoto), and seems to be a pretty common job. So I expected to find many solutions for doing it with PHP. Surprisingly, the only one I could find is OpenCV, an opensource lib that was originally developed by Intel. OpenCV seems to perform well but you need to be able to install it on your server. In my case, I wanted to have a pure PHP solution, so it can work with most hosts."

To Sprite Or Not To Sprite at Vladimir Vukićević

http://blog.vlad1.com/2009/06/22/to-sprite-or-not-to-sprite
"The biggest problem with CSS sprites is memory usage. Unless the sprite image is carefully constructed, you end up with incredible amounts of wasted space. My favourite example is from WHIT TV's web site, where this image is used as a sprite. Note that this is a 1299x15,000 PNG. It compresses quite well — the actual download size is around 26K — but browsers don't render compressed image data. When this image is downloaded and decompressed, it will use almost 75MB in memory (1299 * 15000 * 4)."

camen design · Video for Everybody!

http://camendesign.com/code/video_for_everybody
"Video For Everybody is very simply a chunk of HTML code that embeds a video into a website using the HTML5 element which offers native playback in Firefox 3.5 and Safari 3 & 4 ... In other browsers that do not support , it falls back to Adobe Flash ... If Flash is not installed, QuickTime is used (which allows playback on the iPhone) ... If QuickTime is not installed then Windows Media Player is used in Internet Explorer for Windows Vista and above. ... Finally, if all else fails, a warning is issued that provides links to download the video, and links to software relevant to getting the video to play within the browser itself. ... This is all done without JavaScript and requires only two video encodes, one OGG file for Firefox 3.5, and one MP4 file for everything else (Flash / Safari / iPhone)."

Accessibility is a harsh mistress [dive into mark]

http://diveintomark.org/archives/2009/03/21/accessibility-is-a-harsh-mistress
"When I was an accessibility architect at IBM, I assisted in the final stages of ensuring that Eclipse’s Graphical Editing Framework was fully accessible to blind people. ... During one particularly difficult teleconference, an Eclipse developer muttered something like, “You realize no one is ever actually going to do any of this, right?” There was an awkward silence as the people who had spent their lives in the trenches of access enablement contemplated the very real possibility that no one would ever benefit from their work."

Using JavaScript in PHP with PECL and SpiderMonkey

http://devzone.zend.com/article/4704-Using-JavaScript-in-PHP-with-PECL-and-SpiderMonkey
"SpiderMonkey support in PHP comes through PECL's ext/spidermonkey extension, which is maintained by Christophe Robin, and provides an object-oriented API for accessing the SpiderMonkey library. Although this extension is currently in beta, it still allows you to do some fairly interesting things, including registering and using variables, functions and classes from PHP in JavaScript."

Hemlock

http://hemlock-kills.com
"Hemlock is an open-source framework that combines the richness of Flash with the scalability of XMPP, facilitating a new class of web applications where multiple users can interact in real time. Games, workspace collaboration, educational tools… The only limit is your imagination."

evserver - Google Code

http://code.google.com/p/evserver
"EvServer is a lightweight http server, created especially to host python WSGI applications. Additionally, it supports little known Asynchronous WSGI extension, which was suggested by Christopher Stawarz. Using this extension it's possible to create an output html response in many data chunks, without blocking the main server process while your application waits for external resources. "

Django tip: Caching and two-phased template rendering | Holovaty.com

http://www.holovaty.com/writing/django-two-phased-rendering
"It's a clever solution because you end up defining what doesn't get cached instead of what does get cached. It's a sideways way of looking at the problem -- sort of like how Django's template inheritance system defines which parts of the page change instead of defining server-side includes of the common bits."

how to make ie6 behave - work blog - onderhond.com

http://www.onderhond.com/blog/work/ie6-core-bug-fixing
"No doubt there is more. I'm not an expert on ie6 debugging, but for the greater part these are issues that pop up with every project, and getting these fixes in as quickly as possible makes for much easier ie6 debugging afterwards. Whether you create your ie6 css alongside your main css or run through your main css to construct a ie6 css when everything is finished is entirely up to you. But when you make sure all the above is taken care of, ie6 will look like a much nicer browser. "

mnot’s Web log: Counting the ways that rev="canonical" hurts the Web

http://www.mnot.net/blog/2009/04/14/rev_canonical_bad
"That’s because while I was watching the kids rolling down the grass slope on top of Parliament House, rev="canonical" started to gain some serious momentum, billing itself as a way to shorten URLs that “doesn’t hurt the Internet.” In my opinion, this is an interesting idea with an very unfortunate execution that’s bad for the Web, and I’m going to enumerate the reasons here. "

rev=canonical: url shortening that doesn't hurt the internet

http://revcanonical.appspot.com
"RevCanonical is url shortening with a twist. Instead of creating its own super short versions of links, it checks to see if the link owner has published a shortened version of the given page using HTML link element. If not, we just return the original URL. And you should bug the link owner about providing a better alternative."

How the Web Made Me a Better Copywriter — AIGA | the professional association for design

http://www.aiga.org/content.cfm/how-the-web-made-me-a-better-copywriter
"In 1999, when I left a staff job at a newspaper to start my own copywriting business, I never even thought about writing for the web. A decade later, most of my work consists of web projects. It struck me recently that this medium has led me to develop a different way of writing—tighter, simpler, more transparent. The results, I believe, are greater clarity and persuasiveness, and a speedier, more user-friendly read."

joshua's blog: on url shorteners

http://joshua.schachter.org/2009/04/on-url-shorteners.html
"So there are clear benefits for both the service (low cost of entry, potentially easy profit) and the linker (the quick rush of popularity). But URL shorteners are bad for the rest of us.I feel that shorteners are bad for the ecosystem as a whole. But what can be done to improve the situation?"

Stainless for OS X Leopard

http://www.stainlessapp.com
"Although Stainless started out as a technology demo to showcase our own multi-processing architecture in response to Google Chrome, we've been inspired by our growing fanbase to forge ahead and craft Stainless into a full-fledged browser. In fact, Stainless now has features you won't find in Chrome or in any other browser."

The Javascript Trap

http://www.gnu.org/philosophy/javascript-trap.html
"You may be running non-free programs on your computer every day without realizing it—through your web browser.Many sites still use Javascript that way, but some use it for major programs that do large jobs. For instance, Google Docs downloads into your machine a Javascript program which measures half a megabyte, in a compacted form that we could call Obfuscript because it has no comments and hardly any whitespace, and the method names are one letter long. The source code of a program is the preferred form for modifying it; the real source code of this program is not available to the user."

Goodbye Google | stopdesign

http://stopdesign.com/archive/2009/03/20/goodbye-google.html
This goes a long ways toward explaining why everything Google does is so damn ugly. "Yes, it’s true that a team at Google couldn’t decide between two blues, so they’re testing 41 shades between each blue to see which one performs better. I had a recent debate over whether a border should be 3, 4 or 5 pixels wide, and was asked to prove my case. I can’t operate in an environment like that. I’ve grown tired of debating such miniscule design decisions. There are more exciting design problems in this world to tackle."

Aza’s Thoughts » Rapid Prototyping with Greasemonkey

http://www.azarask.in/blog/post/rapid-prototyping-with-greasemonkey
"In general, using the browser’s run-time as a prototyping environment enables ridiculously fast rapid prototyping. There are no deployment steps to worry about, changes are reflected instantly, and all changes are dog-foodable from the get-go. Prototyping is also entirely decoupled and parallelizable: that’s especially powerful when you don’t have access to the site for which you are making a live-patch, the backend code is obtuse, or when you multiple have competing ideas for changes you’d like to make. We actually use the same technique for prototyping new behaviors for the the Ubiquity code repository."

I finally get REST. Wow. - The Tripping Point - Pluralsight Blogs

http://www.pluralsight.com/community/blogs/tewald/archive/2007/04/26/46984.aspx
"The essence of REST is to make the states of the protocol explicit and addressible by URIs. The current state of the protocol state machine is represented by the URI you just operated on and the state representation you retrieved. You change state by operating on the URI of the state you're moving to, making that your new state. A state's representation includes the links (arcs in the graph) to the other states that you can move to from the current state. This is exactly how browser based apps work, and there is no reason that your app's protocol can't work that way too."

XUI | javascript micro-framework

http://xuijs.com
"We hear your words. Why another JavaScript framework?! When development of PhoneGap was under way we noticed slow load times for modern JavaScript frameworks (such as Prototype, MooTools, YUI, Ext and (yes) even jQuery. A big reason why these libraries are so big is because is mostly they contain a great deal of cross browser compatibility code. The mobile space has less browser implementations (so far) and different needs. Thus XUI."

Continuous Deployment at IMVU: Doing the impossible fifty times a day. « Timothy Fitz

http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day
" Back to the deploy process, nine minutes have elapsed and a commit has been greenlit for the website. The programmer runs the imvu_push script. The code is rsync’d out to the hundreds of machines in our cluster. Load average, cpu usage, php errors and dies and more are sampled by the push script, as a basis line. A symlink is switched on a small subset of the machines throwing the code live to its first few customers. A minute later the push script again samples data across the cluster and if there has been a statistically significant regression then the revision is automatically rolled back. If not, then it gets pushed to 100% of the cluster and monitored in the same way for another five minutes. The code is now live and fully pushed. This whole process is simple enough that it’s implemented by a handfull of shell scripts. "

Infrastructure for Modern Web Sites « random($foo)

http://randomfoo.net/2009/01/28/infrastructure-for-modern-web-sites
"One of the things that I did when I wrapping up at Yahoo! was to begin to take a look at the current state of web frameworks. I ended up picking Django, but I have to say, I was disappointed with the state of what’s out there. Friends will have heard me bemoaning this sad state of affairs - that while Rails and Django might make CRUD easier, that the ORMs weren’t suitable for scaling beyond “toy” sizes, and that more importantly, they didn’t seem to address almost any of the pain points of building and maintaining a modern website."

Everything You Need to Get Started With CodeIgniter - NETTUTS

http://nettuts.com/tutorials/php/codeigniter-basics
"CodeIgniter is a web application framework for PHP. It enables developers to build web applications faster, and it offers many helpful code libraries and helpers which speed up tedious tasks in PHP. CodeIgniter is based on a modular design; meaning that you can implement specific libraries at your discretion - which adds to the speed of the framework. This tutorial will attempt to show you the basics of setting up the framework, including how to build a basic hello world application that uses the MVC approach. "

Why Stallman is wrong when he calls cloud computing stupid - Ars Technica

http://arstechnica.com/open-source/news/2008/09/why-stallman-is-wrong-when-he-calls-cloud-computing-stupid.ars
"Stallman's dismissal of cloud computing and call for the categorical rejection of web services is puzzling in light of the potential opportunities created by web technologies and the innovative work that is being done by software freedom advocates to bring openness to the web. Stallman should be using his visibility to promote adoption of the principles embodied in the Franklin Street Statement. Instead he is undermining those efforts by disingenuously dismissing the entire concept of network computing."

The Wonderful World of Web Hooks // Notebook // Kyle Slattery

http://kyleslattery.com/notebook/entries/the-wonderful-world-of-web-hooks
"The aspect that excites me the most is how easy it is to write a web hook. All you need to have is a cheap PHP host and some basic knowledge about handling POST data, and you're ready to go. By shortening the learning curve, web hooks make it possible for more people to build on top of existing platforms, leading to a more connected and interesting internet."

Blue Sky On Mars » Making web development suck less

http://www.blueskyonmars.com/2009/01/05/making-web-development-suck-less
"I’m delighted to say that starting today I am working with Ben Galbraith and Dion Almaer at Mozilla Labs on web development tools. I’ve been a reader of Ben and Dion’s Ajaxian site for years and I know how much thought they’ve put in to making webdev better, so I’m really excited to be joining their group. And Mozilla looks like a fantastic organization to be a part of."

getluky.net » A Warning About the Real Cost of Microformats

http://getluky.net/2009/01/08/a-warning-about-the-real-cost-of-microformats
"Anyway, here’s the question I want to put into the reader’s mind: should one spend time and effort making a frontend into an informal API through microformats, or to instead spend it on building a fully supported API or data publishing system that exists and operates separately? I think my stance is clear - i’m not against the theory of microformats, but i’m certainly going to differ with anyone who thinks it’s practical."

Aza’s Thoughts » Write the manual first.

http://www.azarask.in/blog/post/write-the-manual-first
"You don’t really know a subject until you’ve had to teach it. In the same way, you don’t really understand your interface until you’ve written a manual explaining how to use it. It can be a frustrating experience. Take for example the two manuals for digital watch and analog watch. The section on setting a digital watch is over a page of dense, difficult explanation. The analog’s is a single sentence: “Pull crown and turn.”"

RFC5005 - Feed Paging and Archiving

http://www.faqs.org/rfcs/rfc5005.html
"This specification formalizes two types of feeds that can span one or more feed documents; "paged" feeds and "archived" feeds. Additionally, it defines "complete" feeds to cover the case when a single feed document explicitly represents all of the feed's entries."

PUT vs POST in RESTful Web Service « vincenthome’s Tech Clips

http://vincenthomedev.wordpress.com/2008/12/18/put-vs-post-in-restful-web-service
"This explains when to use POST or PUT for creating new resources. The answer ultimately lies in who is responsible for determining the new resource’s URI. If the client is in charge, the client can use PUT to the new URI (like we did for user accounts) and the service can return a response code of 201 (“Created”). However, if the service is in charge of generating the new URI, the client should POST the new resource to a factory URI like we’ve done for bookmarks. Then, the service can return a response code of 201 (“Created”) along with the URI of the new resource in the response “Location” header."

A web-focused Git workflow

http://joemaller.com/2008/11/25/a-web-focused-git-workflow
"The key idea in this system is that the web site exists on the server as a pair of repositories; a bare repository alongside a conventional repository containing the live site. Two simple Git hooks link the pair, automatically pushing and pulling changes between them. "

Improve your jQuery - 25 excellent tips

http://www.tvidesign.co.uk/blog/improve-your-jquery-25-excellent-tips.aspx
"I'd call myself an "intermediate" jQuery user and I thought some others out there could benefit from all the little tips, tricks and techniques I've learned over the past year. The article also ended up being a lot longer than I thought it was going to be so I'll start with a table of contents so you can skip to the bits you're interested in."

10 Useful Techniques To Improve Your User Interface Designs | How-To | Smashing Magazine

http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs
"1. Padded block links 2. Typesetting buttons 3. Using contrast to manage focus 4. Using color to manage attention 5. White space indicates relationships 6. Letter spacing 7. Auto-focus on input 8. Custom input focus 9. Hover controls 10. Verbs in labels"

james.padolsey/style.css

http://james.padolsey.com/wp-content/themes/james.padolsey/style.css
Huh, I didn't know you could customize the text selection highlight color in CSS. "::selection { background: #CF0000; color: white; /* Safari */ } ::-moz-selection { background: #CF0000; color: white; /* Firefox */ } "

Spock Proxy

http://spockproxy.sourceforge.net
"Spock Proxy supports range-based horizontal paritioning of a large MySQL database. The proxy intercepts SQL queries from the client, sends queries to the correct databases based on how the database is partitioned, then aggregates the results from each database and returns them to the client as a regular MySQL result set. "

SitePoint » The Single Sign-On War Will Ruin OpenID

http://www.sitepoint.com/blogs/2008/10/30/the-single-sign-on-war-will-ruin-openid
"Google and Yahoo! (and likely Microsoft to follow) are ultimately competing with one another to become the branded single sign-on solution for the web. The good news for users is that by using the same underlying technology, most relying parties will able to turn on support for any new OpenID provider fairly easily. The bad news for users is that since none of the major providers are also relying parties, using services at each of these site still requires multiple accounts. Further, a sign in box with 100 different logos for 100 different providers isn’t a great user experience."

Advogato: Blurring of MVC lines: Programming the Web Browser.

http://advogato.org/article/993.html
I think this whole "abstract the browser away behind my favorite language" thing is kind of batshit insane. The problem is, though, I've yet to think out a well-articulated argument against it and the arguments for seem very compelling. Of course, I also happen to *like* JavaScript. "Only by going the whole hog - fully into Javascript, augmented by Compiler Technology such as GWT and Pyjamas (and more specifically Unity) that allows both the Web Server and the Web Client to be programmed in exactly the same language - can the MVC approach be properly implemented and the user's expectations be satisfied, and thus both the developers' and the user's lives made easier. Gmail is the quintessential example of how this "whole-hog-Javascript" MVC approach can be achieved successfully. "

The Phrasebook Pattern

http://ootips.org/yonat/patterns/phrasebook.html
Not unlike templates for (X)HTML? "The Phrasebook pattern is a technique to separate expressions in one language (e.g., SQL) from the main code that is written in another programming language (e.g., Perl). This is done by keeping the expressions in a separate file – the phrasebook. Any specific expression is generated by finding the appropriate entry in the phrasebook and substituting application parameters into it. This separation makes maintenance easier both for the main application code and for the foreign language code."

Facebook | Photos of You

http://www.facebook.com/photo.php?id=506748201&op=1&pid=1187519&subj=516463201&view=all
"In this photo: Ryan Doherty (photos), Leslie Michael Orchard (photos | remove tag), Laura Thomson (photos), Neil Lee, Lars, Mike Morgan (photos), Justin Scott (photos), Bouncy Ball, Wil Clouser (photos), Austin, Other Bouncy Ball"

Beware of the Dog | JoeDog / Siege

http://www.joedog.org/JoeDog/Siege
"Siege is an http regression testing and benchmarking utility. It was designed to let web developers measure the performance of their code under duress, to see how it will stand up to load on the internet. Siege supports basic authentication, cookies, HTTP and HTTPS protocols. It allows the user hit a web server with a configurable number of concurrent simulated users. Those users place the webserver "under siege." "

Mojo Web Framework

http://mojolicious.org
"Back in the early days of the web there was this wonderful Perl library called CGI.pm , many people only learned Perl because of it. It was simple enough to get started without knowing much about the language and powerful enough to keep you going, learning by doing was much fun. While most of the techniques used are outdated now, the idea behind it is not. Mojo is a new attempt at implementing this idea using state of the art technology. "

Weave 0.3 Prototype Server « Tapestry

http://tobyelliott.wordpress.com/2008/10/29/weave-03-prototype-server
"Feedback on the 0.3 API announcement went well, so it’s time to release a prototype of the server. The code is available from the weaveserver repository along with instructions for setting up a copy of the server and the local user creation API if you want to use that."

No Opera Mini for the iPhone | Hardware 2.0 | ZDNet.com

http://blogs.zdnet.com/hardware?p=2901
Yikes. This is really making me hope that Android or Palm linux phones grow up fast. "It seems that the engineers at Opera developed a version of Opera Mini that would run on the iPhone (and the iPod touch), but this browser will never see light of day because Apple rejected it from the App Store."

matt.west.co.tt » Blog Archive » JSSpeccy: A ZX Spectrum emulator in Javascript

http://matt.west.co.tt/spectrum/jsspeccy
"I’m really typecasting myself here. If there were an international “Person most likely to write a Spectrum emulator in Javascript” award, I’d have taken it for the last five years running. So here it is - probably the most stereotypical project I’ll ever come up with."

REST APIs must be hypertext-driven » Untangled

http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven
"What needs to be done to make the REST architectural style clear on the notion that hypertext is a constraint? In other words, if the engine of application state (and hence the API) is not being driven by hypertext, then it cannot be RESTful and cannot be a REST API. Period. Is there some broken manual somewhere that needs to be fixed?"

Dynamic programming futures | InfoWorld | Test Center | October 13, 2008 | By Peter Wayner, IDG News Service

http://weblog.infoworld.com/archives/emailPrint.jsp?A=/article/08/10/13/42TC-dynamic-futures_1.html&R=printThis
"What will the world of dynamic programming languages and Web applications look like in five years? This is one of those highly personal and deeply philosophical questions best saved for after dessert is served, the drinks are poured, and the sidearms are safely locked away."

Django snippets: minimal nginx conf to split get/post requests

http://www.djangosnippets.org/snippets/1141
"After a point the sql server becomes the bottleneck in lots of web application, and to scale, master-slave replication with single master, multiple slave is recommended. This setup with nginx can be used to accomplish traffic distribution between master and slave based on request method. "

ongoing · Learning REST

http://www.tbray.org/ongoing/When/200x/2008/10/01/Learning-REST
"I was talking to a colleague who has to become savvy in a hurry about modern Web applications and he asked “How do I learn about REST?” Good question. I thought of a couple of suggestions, then asked Twitter and got some more. Here they are."

madhava.com/egotism/: Fennec at M8 - now with more UI!

http://madhava.com/egotism/archive/005028.html
"As Mark Finkle posted over on his blog, milestone 8 (M8) of Fennec is out. This is an exciting time from a user-experience perspective because, along with functionality and stability improvements, this milestone brings with it the beginnings of Fennec's look and feel. In a sense, we have some UI worth playing with, evaluating, and improving."

Code: Flickr Developer Blog » Flickr Engineers Do It Offline

http://code.flickr.com/blog/2008/09/26/flickr-engineers-do-it-offline
"It seems that using queuing systems in web apps is the new hottness . While the basic idea itself certainly isn’t new, its application to modern, large, scalable sites seems to be. At the very least, it’s something that deserves talking about — so here’s how Flickr does it, to the tune of 11 million tasks a day."

All Night Diner : Committing to SVN securely from a web application

http://micropipes.com/blog/2008/09/19/committing-to-svn-securely-from-a-web-application
"On the SVN server the first thing we did was to create a special Verbatim user that can commit to SVN via SSH using a generated key. We copied this key to the Verbatim host which allowed us to commit as the verbatim user without typing a username or password.The only thing that was added to the Verbatim code was a patch that Dan Schafer cooked up that sets an SVN revision property, translate:author, to the name of the current user. When the user clicks “commit” this property is set and sent along with the commit.Next we added a post-commit script that looks for the translate:author property. If it’s found it will take that value, replace svn:author, and remove translate:author; effectively making whatever was in translate:author the real author. This is a non-versioned change which means there is no commit that needs to happen - the new author is set immediately."

Amazon.com: Concise Guide to Dojo: Leslie M. Orchard: Books

http://www.amazon.com/Concise-Guide-Dojo-Leslie-Orchard/dp/0470452021/ref=sr_1_1?ie=UTF8&qid=1222352476&s=books&sr=8-1
"Packed with useful information and lots' of insightful examples The Concise Guide to Dojo, taken from the forthcoming Professional JavaScript Frameworks book, provides experienced web developers a quick path to understanding and utilizing Dojo: a JavaScript based meta-framework for creating highly dynamic, visually appealing web sites. Logically organized, this guide quickly introduces the reader to Dojo and then quickly moves on to cover topics ranging from Manipulating DOM object, Event Handling, Utilizing AJAX, and working with additional Dojo add-on such as Dijit and DojoX."

Redo The Web » Designing a CMS Architecture

http://redotheweb.com/2008/09/19/designing-a-cms-architecture
"Start changing one single line of code in an application build on top of Drupal or ezPublish, to name only the two major ones, and you are in trouble. The moment you need something that is not natively supported, you enter the Dark Zone of CMS hell. You are going to spend a lot of money on development. You will never see the end of the tunnel. That is, until someone says, a few years from now, “Do we need all that crap? Let’s build something that fits our needs and that actually works”.Given number of available open-source CMS solutions, building one on your own sounds like a stupid idea. But if your website is 50% content management and 50% something else, you probably need to start with a web application framework like symfony or Django, rather than a CMS. These frameworks provide plugins that do part of the Content Management job already, so creating a CMS today is like assembling Lego bricks to build something that exactly fits your needs."

csrf_protect.php

http://simonwillison.net/static/2008/csrf_protect.php.txt
"This class adds CSRF protection to existing PHP applications that make use of PHP's session support for authentication. If you are writing an application from scratch you shouldn't use this; it's designed to protect legacy apps that were not built with CSRF in mind."

Foo Hack » YUI’s “Module Pattern” vs. Prototype’s Class Function

http://foohack.com/2007/08/yui-crockford-module-pattern-vs-prototypes-class-function
Interesting perspective, with which I agree somewhat. Though, there's certainly something to be said for building a domain-specific language of convenience for DOM manipulation. "The more time someone spends building applications with a library like Prototype, the further they get from Javascript, and the more dependent they become on the library. By contrast, time spent using YUI tends to breed developers who are experts in Javascript, and that skill is far more useful than being an expert in a particular library."

Easier Theme Development with Sample WordPress Content — WPCandy — WordPress Themes, Plugins, Tips, and Tricks

http://wpcandy.com/articles/easier-theme-development-with-the-sample-post-collection.html
"Developing a theme for public release isn’t an easy task. When you’re the only one using your theme you don’t have to worry about expanding it, but put it into the hands of other users and it better be ready for any content they throw at it. Blockquotes, lists, and floating images - there are plenty of elements that are common to blogs that need to be supported in every theme you release. Cue our new sample WordPress content. "

Nihilogic: Sandbag text wrapping with Canvas

http://blog.nihilogic.dk/2008/09/sandbag-text-wrapping-with-canvas.html
"With CSS you can make text wrap around an image using the float property and for most purposes this is quite adequate. However, it doesn't take into account the actual image and treats it as one big block, even if you'd prefer the text to wrap around the actual content in the picture, magazine style.Since we now have pixel access (in cool browsers, anyway) via the Canvas element, this technique can now be implemented dynamically with a bit of JavaScript."

Google Chrome-Induced Déjà Vu - GigaOM

http://gigaom.com/2008/09/03/chrome-induced-deja-vu
"Reading the Google Chrome comic strip made clear the parallel to the emergence of QEMM and DESQview: All today’s browsers are effectively single tasking, in that only one tab can be actively processing, say, a JavaScript application at any given time (”inherently single threaded”), yet the tabs are interactive to the point where the misbehavior of an “application” in one tab can impact — and sometimes crash — the operation of the entire browser. Web 2.0 has brought about an array of browser-based applications and activities that require a more robust, stable, multiprocessing browser with each process assigned to its own memory space and associated data structures — which is basically how DESQview operated. Indeed, when I pointed this out during yesterday’s SquawkBox, someone labeled Google Chrome as “DESQview for the cloud.” Talk about “Back to the Future“!"

Why Google Chrome Will Dominate | HaveMacWillBlog (aka Robin Bloor’s Blog)

http://havemacwillblog.com/2008/09/03/why-google-chrome-will-dominate
"Chrome is the end of the browser and the beginning of the Cloud Client. These are quite different things. A Cloud Client is a flexible and configurable Interface in which an application can run. Whether the rest of the application is local or lives in the cloud is an option - and switchable. The user may not even know nor care. It doesn’t sound much like a browser does it?"

Labs/Ubiquity/Ubiquity 0.1 Author Tutorial - MozillaWiki

https://wiki.mozilla.org/Labs/Ubiquity/Ubiquity_0.1_Author_Tutorial
The great power of Ubiquity—from a developer standpoint—is how easy it is to create commands. With only a couple of lines of Javascript, Ubiquity enables even casual web developers to drastically enhance the features of the browser. From an 8-line command to insert a contact's email address in any text field, to a 50-line Twitter integration, this tutorial walks you through the process of being generative with Ubiquity.

webdev.stephband.info

http://webdev.stephband.info/parallax.html
"Parallax turns a selected element into a 'window', or viewport, and all its children into absolutely positioned layers that can be seen through the viewport. These layers move in response to the mouse, and, depending on their dimensions (and options for layer initialisation), they move by different amounts, in a parallaxy kind of way."

Cross-Browser.com

http://cross-browser.com
Wow, "X" - what an unsearchably-named framework. "X is a collection of loosely-bound, cross-browser, Javascript functions and objects. It is intended to be a resource from which you pick and choose - you do not have to include the entire library in your application. It contains core DOM/Style functions, unobtrusive enhancements, utility functions, objects such as menus and tab panels, and also has some experimental stuff. I've been developing this library since 2001 (I started its predecessor around 1999). Thanks to thousands of people like yourself X has been extensively tested on a wide range of operating systems and browsers. Thanks to your contributions X continues to improve, grow and evolve."

jQuery PHP library

http://jquery.hohli.com
"jQuery-PHP is a PHP library that allows to tie jQerry with PHP most natural way. You don't need to think in terms of transmission, parsing and other boring staff. Now you have a bridge that brings DOM right onto your server :) and you can ealisy manipulate it in jQuerry-style way." This seems like one of the worst ideas - maybe it's just me, but "shortcuts" and other encapsulations of client-side JS within server-side code-generation in PHP / Ruby / Python / Perl / etc seems like one of the worst forms of magical obfuscation there is in webdev. Of course, I also feel the same way about most psuedo-ORM SQL / database abstractions.

How To Launch Software (Aaron Swartz's Raw Thought)

http://www.aaronsw.com/weblog/howtolaunch
"Instead what happens when software developers try the Hollywood Launch, and I've seen this many times, is that users indeed do flood to your site on launch day but... Tomorrow, hardly any of those users come back. Your traffic graphs look like the sharpest mountain you've ever seen: a huge climb up and then, almost immediately, a similarly-sized crash back down. ... So what do you do then? Well, you do what you should have done all along: you grow the site."

Dare Obasanjo aka Carnage4Life - Explaining REST to Damien Katz

http://www.25hoursaday.com/weblog/2008/08/17/ExplainingRESTToDamienKatz.aspx
"At this point, the benefits of building RESTful services for the Web should be self evident. The Web has a particular architecture and it makes sense that if you are deploying a service or API on the Web then it should take advantage of this architecture instead of fighting against it. There are millions of deployed clients, servers and intermediaries that support REST and it makes sense to be compatible with their expectations. "

The Tombs of Asciiroth

http://www.icculus.org/asciiroth
"The Tombs of Asciiroth is a free, open source game you can play right now in your browser. It has arcade, puzzle and exploration-style game play in an extensive world of font-based abstraction. If it looks a little old school, it's only because I've been trying to make this game since 1980. But other things kept getting in the way. Hope you have some fun with it. "

A Bunch of Great Strategies for Using Memcached and MySQL Better Together | High Scalability

http://highscalability.com/bunch-great-strategies-using-memcached-and-mysql-better-together
"The primero recommendation for speeding up a website is almost always to add cache and more cache. And after that add a little more cache just in case. Memcached is almost always given as the recommended cache to use. What we don't often hear is how to effectively use a cache in our own products. MySQL hosted two excellent webinars (referenced below) on the subject of how to deploy and use memcached."

PHP: Using Phar Archives - Manual

http://php.net/manual/en/phar.using.php
"Phar archives are similar in concept to Java JAR archives, but are tailored to the needs and to the flexibility of PHP applications. A Phar archive is used to distribute a complete PHP application or library in a single file. Unlike Java's implementation of JAR archives, no external tool is required to process or run a PHP Phar archive."

Joe Gregorio | BitWorking | The role of REST in Cloud Computing

http://bitworking.org/news/354/the-role-of-REST-in-cloud-computing
"I am in no way saying that AtomPub is the solution. What I am pointing out is that if you want federation then you need to design your protocols and APIs RESTfully. In this example it is hypertext, link following, in the AtomPub spec that allows these two separate services to be linked together."

Open Web Foundation

http://openwebfoundation.org
"The Open Web Foundation is an attempt to create a home for community-driven specifications. Following the open source model similar to the Apache Software Foundation, the foundation is aimed at building a lightweight framework to help communities deal wi

Download details: IE App Compat VHD

http://www.microsoft.com/downloads/details.aspx?FamilyId=21EABB90-958F-4B64-B5F1-73D0A413C8EF&displaylang=en
Check this page every few months, since it seems they release new versions with the expiration time bumped forward. "VPC Hard Disk Image for testing websites on IE on Windows XP SP2"

Creating accessible charts using canvas and jQuery | Filament Group, Inc., Boston, MA

http://www.filamentgroup.com/lab/creating_accessible_charts_using_canvas_and_jquery
"Data visualization in HTML has long been tricky to achieve. Past solutions have involved non-standard plugins, proprietary behavior, and static images. But this has changed with the recent growth in support for the new HTML Canvas element, which provides a native drawing API that can be addressed with simple Javascript. This article is a proof of concept for visualizing HTML table data with the canvas element."

Simon Wistow - Standing in Line

http://deflatermouse.livejournal.com/145533.html
"What I actually want out of this is a kind of de facto standard like Memcached or Apache or whatever that's so simple to understand and use that it changes the way people develop their apps such that they just start with the assumption that some of their

the ryan king » Introducing Conveyor

http://theryanking.com/entries/2008/02/26/introducing-conveyor
"The future for large websites’ data storage is likely a collection of special purpose data stores: GFS/MapReduce for batch jobs, inverted indexes for search and fast retrieval of small result sets and relational databases for smaller datasets which nee

Greasekit and user style-sheets

http://www.lypanov.net/Web/Blog/Entries/2008/2/17_Greasekit_and_user_style-sheets.html
"No doubt this is an extremely subjective thing... but I really much prefer having a small fixed point and set colors for text and its background when reading websites with large chunks of text."

The B-List: Legacy.

http://www.b-list.org/weblog/2008/jan/23/legacy
"it stands to reason, if Microsoft is bending over backwards to keep its bread-and-butter corporate customers happy, that the IE team would suddenly get backwards-compatibility fever."

Blinksale | Blinksale API

http://www.blinksale.com/api
"The Blinksale Application Programming Interface is simply another way to access your Blinksale data—one that makes it easy for third-party and custom tools to programatically access and interact with the service. The API follows the REST style, and this guide should provide everything you need to implement software that works with Blinksale."

Autoversioning

http://svnbook.red-bean.com/en/1.2/svn.webdav.autoversioning.html
"While the Subversion client is not a full DeltaV client, nor the Subversion server a full DeltaV server, there's still a glimmer of WebDAV interoperability to be happy about: it's called autoversioning."

Wait till I come! » Blog Archive » Planning JavaScript and Ajax for larger teams, equine invigorating imagery, one voice for libraries and a lot of good speakers - this was @mediaAjax 2007

http://www.wait-till-i.com/2007/11/21/planning-javascript-and-ajax-for-larger-teams-equine-invigorating-imagery-one-voice-for-libraries-and-a-lot-of-good-speakers-this-was-mediaajax-2007
"I didn’t cover many technical issues but instead tried to convince some people to recognize that the way you use JavaScript in your team is the most important part of development."

mjt

http://mjtemplate.org
"Mjt is an HTML templating engine that runs entirely in a web browser. It was built for the Freebase service, but it can be used for many other web services. It is distributed as open source."

Repoze

http://repoze.org/index.html
"Want the maturity of Zope now with the flexibility of the WSGI future? Repoze integrates Zope technologies with WSGI and reusable Python middleware."

How to Fix CGI - majordojo

http://www.majordojo.com/2007/11/how-to-fix-cgi.php
"the goal of mod_perlite is to run single Perl scripts in the Apache process space, caching Perl bytecode as it goes, but flushing script memory after every request. Installation is also incredibly simple, and 100% analogous to PHP installation."

XSL Cache - Trac

http://code.nytimes.com/projects/xslcache
"The XSL Cache extension is a modification of PHP's standard XSL extension that caches the parsed XSL stylesheet representation between sessions for 2.5x boost in performance for sites that repeatedly apply the same transform."

Pipes Blog » Blog Archive » Power Your Own Module

http://blog.pipes.yahoo.com/2007/08/13/power-your-own-module
"The Web Service module POSTs the items in a pipe in JSON format to an external web service. This allows developers to extend the functionality Pipes offers to do whatever they need. The original items are replaced by the web services JSON or RSS response

Properties - NAME

http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/properties/name_2.asp
"The NAME attribute cannot be set at run time on elements dynamically created with the createElement method. To create an element with a name attribute, include the attribute and value when using the createElement method."

Beware of XHTML

http://www.webdevout.net/articles/beware-of-xhtml
"there is a lot more to it than you may realize, and if you're using it on your website, even if it validates, you are probably using it incorrectly."

Open Authorization, Permissions, and Socially Enabled Security

http://journals.aol.com/panzerjohn/abstractioneer/entries/2007/07/19/open-authorization-permissions-and-socially-enabled-security/1505
"What if you could say, "by default, trust whatever my buddy Pete trusts"? Or, "trust the consensus of my set of friends; only ask me if there's disagreement"? Or more prosaically, "trust what my local IT department says"."

XML.com: Introducing OpenSearch

http://www.xml.com/pub/a/2007/07/20/introducing-opensearch.html?ATT=Introducing+OpenSearch&CMP=OTC-TY3388567169
"You go to your favorite Web 2.0 search engine and set up a query like http://web20.example.com/search=john+doe&ouptut=atom and search for "john doe," but rather than getting back results as the usual HTML web page, you get it back in Atom format."

Template Engines

http://massassi.com/php/articles/template_engines
"In short, the point of template engines should be to separate your business logic from your presentation logic, not separate your PHP code from your HTML code."

about:cmlenz - Logic in Templates

http://www.cmlenz.net/blog/2007/06/logic-in-templa.html
"In my humble opinion, this kind of “dumbed-down” templating results in only one thing: more lines of code in the application modules, lines of code that are really only about presentation, and should be in the templates."

Wait For It

http://pythonpaste.org/waitforit
"If the response doesn't come back before the time limit, the user is given a response page that asks them to wait. The response page contains Javascript that will re-check the status of the page"

Link Specificity

http://meyerweb.com/eric/css/link-specificity.html
"I tried to apply CSS to my hyperlinks and the hovering didn't work. How come? Is this another case of browsers being stupid?"

Blitzaffe Code - PHP Classes - Jabber Client

http://code.blitzaffe.com/pages/phpclasses/files/jabber_client_52-11
"This is an event-driven Jabber client class implementation, allowing your script to connect to and interact with Jabber (XMPP) servers. This script was originally based on class.jabber.php, but has been almost completely rewritten (with permission from

MonitorThis

http://alp-uckan.net/free/monitorthis
"With MonitorThis you can subscribe to 22 different search engine feeds at the same time. Enter a search term and click the 'make monitor.opml' button to get a list of rss feeds in OPML format."

Memory leak patterns in JavaScript

http://www-128.ibm.com/developerworks/web/library/wa-memleak
"Plugging memory leaks in JavaScript is easy enough when you know what causes them. In this article authors Kiran Sundar and Abhijeet Bhattacharya walk you through the basics of circular references in JavaScript and explain why they can cause problems in

Ned Batchelder: Xss with utf-7

http://www.nedbatchelder.com/blog/20070421T080434.html
"The resulting page doesn't have any explicit declaration of its character set, so depending on your browser settings, the browser may try to auto-detect the character set, and seeing the distinctive UTF-7 byte sequences, will choose UTF-7. In UTF-7, the

Tips for Web 3.0

http://dannyayers.com/docs/web3.0-tips
"Whether or not it's possible to list Best Practices in this space, I think it most definitely is possible to identify ways in which developers of such systems can maximise their impact on release. Whatever the particular business model or target audience

PHPUnit - Trac

http://www.phpunit.de
"a member of the xUnit family of testing frameworks and provides both a framework that makes the writing of tests easy as well as the functionality to easily run the tests and analyse their results."

JsonLibrary - TrimPath - Trac

http://trimpath.com/project/wiki/JsonLibrary
"Note, we have an improved implementation of JSON stringify that builds up a string array instead of doing inline string concatenation. The version below should use less memory than the original JSON implementation."

URI Templates

http://www.ietf.org/internet-drafts/draft-gregorio-uritemplate-00.txt
"URI Templates are strings that can be transformed into URIs after embedded variables are substituted. This document defines the structure and syntax of URI Templates."

ongoing - JSON and XML

http://www.tbray.org/ongoing/When/200x/2006/12/21/JSON
"Use XML - If you want to provide general-purpose data that the receiver might want to do unforeseen weird and crazy things with, ... or if the data is potentially long-lived (as in, more than seconds) XML is the way to go."

JSMIN, The JavaScript Minifier

http://www.crockford.com/javascript/jsmin.html
"JSMin is a filter which removes comments and unnecessary whitespace from JavaScript files. It typically reduces filesize by half, resulting in faster downloads. It also encourages a more expressive programming style because it eliminates the download cos

Pyro—Chat around the Campfire

http://www.karppinen.fi/pyro
"Pyro demonstrates a new breed of applications we call site-specific browsers—apps that are about making a browser-based application better with client-side technology while keeping the user interface intact"

Jack Slocum's Blog - DomHelper - Create Elements using DOM, HTML fragments and Templates

http://www.jackslocum.com/yui/2006/10/06/domhelper-create-elements-using-dom-html-fragments-or-templates
"The DomHelper class in the 0.32.2 release provides a layer of abstraction from DOM and transparently supports creating elements via DOM or using HTML fragments. It also has the ability to create HTML fragment templates from your DOM building code."

YUI: DragDrop Nested targets

http://blog.davglass.com/files/yui/dd2
"Basically, all I am doing is setting a var (lastTarget) onDragOver to the element that we are over. Then in the onDragDrop function, I am checking to see if the id that is returned matches the id that is stored in lastTarget. If it is, display the text i

Transform XHTML to XHTML with XSLT

http://www.xmltraining.biz/xhtmlxhtml
"Considering how useful it could be to transform the XHTML based web to another format or to use XHTML as an XML data store, it is surprisingly tricky to transform XHTML. Most XSLT developers need to be told the secrets of XHTML transformation in order to

throbber

http://sandbox.sourcelabs.com/wikiality/throbber
"The browser throbbing can be a subtle expected queue, and it’s the only thing visible across tabs, so it can be nice to be able to toggle it on and off. This method uses a hidden iframe, which increases load across the server but achieves the desired

Shorty

http://get-shorty.com
"Shorty is a simple tool for creating shorter, human- readable links from long URLs. You install Shorty on your server, so the links you create with it never go away. "

symfony Web PHP framework

http://www.symfony-project.com
"Based on the best practices of web development, thoroughly tried on several active websites, symfony aims to speed up the creation and maintenance of web applications, and to replace the repetitive coding tasks by power, control and pleasure."

Rescuing XSLT from Niche Status

http://www.xfront.com/rescuing-xslt.html
"With just these few commands (an admittedly small subset of XSLT) and a strong background in HTML (DHTML and JavaScript included), I believe web developers could meet the majority of their presentation needs."

Markup - Trac

http://markup.edgewall.org
"Markup is a Python library that provides an integrated set of components for parsing, generating, and processing HTML or XML content in a uniform manner. The major feature is a template language, which is heavily inspired by Kid."

json-xslt: XML 2 JSON

https://json-xslt.codebase.ebay.com
"An XSLT 1.0 stylesheet that can transform any XML file into JSON. You can use the stylesheet along with a server-based XSLT transform tool, such as eBay's XSLT server that works with the REST API. You could also use it with client-side tool, if you are i

PylonsHQ

http://pylonshq.com
"Pylons combines the very best ideas from the worlds of Ruby, Python and Perl, providing a structured but extremely flexible Python web framework."

WPHP

http://blog.ianbicking.org/2006-wphp.html
"This means that PHP applications can be embedded in Python systems. This may not seem that exciting, until you have interesting WSGI middleware."

Routes

http://routes.groovie.org
"Routes is a Python re-implementation of the Rails routes system for mapping URL's to Controllers/Actions and generating URL's."

Ajax RSS reader

http://www-128.ibm.com/developerworks/library/x-ajaxrss/index.html
"Learn how to build an Asynchronous JavaScript and XML (Ajax) Really Simple Syndication (RSS) reader, as well as a Web component that you can place on any Web site to look at the articles in the RSS feeds."

BoxtheWeb

http://www.awriterz.org/etcetc/boxtheweb/code/apis#outlineclasses
Looks like some PHP classes that strive to be a universal parser / translator between outlining formats.

"High" REST [@lesscode.org]

http://lesscode.org/2006/03/19/high-rest
"GET/POST/PUT/DELETE advocates who claim they are pointing out the obvious are actually making a religious argument, and that poor thesis is playing the role of C-3P0 in the Ewok village. It's unproven technology, and it should be viewed with healthy skep

Airbag - Fl.ower.

http://airbagindustries.com/archives/008888.php
"As some of you know I got the chance to work with the super joyful people of Happy Cog on their project for Ma.gnolia, that keen social bookmarking application that more and more people are using."

Default style sheet for HTML 4.0

http://www.w3.org/TR/CSS21/sample.html
"This style sheet describes the typical formatting of all HTML 4.0 ([HTML40]) elements based on extensive research into current UA practice. Developers are encouraged to use it as a default style sheet in their implementations."

ongoing · On PHP

http://www.tbray.org/ongoing/When/200x/2006/02/17/PHP
"I should really buckle down and try writing a PHP app because, at the moment, I have an attitude problem." I certainly understand this sentiment, which is why i started delving into PHP myself.

Yahoo! UI Library

http://developer.yahoo.net/yui
"The Yahoo! User Interface Library is a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, HTML and AJAX."

CocoaJSON

http://toxicsoftware.com/blog/index.php/weblog/entry/cocoajson
"Blake Seely released some code yesterday to convert Cocoa datatypes to JSON. I've had similar code that Ive been meaning to put online for a while now. So now the world has gone from zero to two Cocoa code-bases to read/write JSON."

PHP: usort - Manual

http://us2.php.net/manual/en/function.usort.php
When I grouse about PHP not having good meta magic, here's a case in point: "Sort an array by values using a user-defined comparison function" My kingdom for an anonymous function or function reference or *something*

IEBlog : A New Look for IE

http://blogs.msdn.com/ie/archive/2006/02/01/522737.aspx
Is it just me, or does this look like a GUI widget test demo? 3 different styles of buttons, in various colors, in seemingly random arrangement. Tabs squished in between other semi-related buttons. This is improvement?

AquaPath

http://www.ditchnet.org/aquapath
"AquaPath is a free Cocoa-based developer tool for Mac OS X Tiger that allows you evaluate XPath 2.0 expressions against any XML document and view the result sequence in a dynamic, intuitive tree representation."

AJAX Extended

http://ajaxextended.com
There is no client-side magic: "Well, the only 'bad' thing is that AJAX Extended does require a server-side script to pack the data into a valid JavaScript document."

rest/ahah - Microformats

http://microformats.org/wiki/rest/ahah
"AHAH is a very simple technique for dynamically updating web pages using JavaScript. It involves using XMLHTTPRequest to retrieve (X)HTML fragments which are then inserted directly into the web page, whence they can be styled using CSS."

AJAX using only an image

http://zingzoom.com/ajax/ajax_with_image.php
"Only an image or a stylesheet is used for the communication between the client and the server. The communication occurs without the need for the page to reload. "

Mike Chambers: Flash and Web 2.0

http://weblogs.macromedia.com/mesh/archives/2005/08/flash_and_web_2.cfm
"The neutrality of the entry is disputed, but it gives an example of how groups are trying to steer the direction of the discussion to benefit one technology over another (in this case Ajax over Flash)."

"No Dashes Or Spaces" Hall of Shame

http://www.unixwiz.net/ndos-shame.html
"I've observed one technique that has been nearly universal: the practice of refusing to allow spaces or dashes in credit card number entry fields ... If there were some security or integrity reason for disallowing these characters, I guess I'd buy it, bu

Tabtastic

http://phrogz.net/JS/Tabtastic/index.html
"This library is a simple way to implement tabs on your page using CSS, a little JS, and semantic markup which degrades gracefully on browsers with CSS unavailable or disabled."

JavaScriptTemplates - TrimPath - Trac

http://trimpath.com/project/wiki/JavaScriptTemplates
"For web application developers, the JavaScript Templates engine from TrimPath is a lightweight APL / GPL open-source component that lets you have template-based programming (like PHP/ASP/JSP) while running in a web browser."

DOMForm

http://wwwsearch.sourceforge.net/DOMForm
"DOMForm is a Python module for web scraping and web testing. It knows how to evaluate embedded JavaScript code in response to appropriate events."

weblog_parse

http://www.acme.com/software/weblog_parse
'Reads a web server log file, in either "Common Logfile Format" or "Combined Logfile Format". Parses it, and writes out only the user-specified fields, separated by tabs for easier handling.'

Open Laszlo

http://openlaszlo.org
"Laszlo is an open source platform for the development and delivery of rich Internet applications on the World Wide Web" Hmm, open source Laszlo versus very expensive Flex. This should be interesting

SCGI

http://www.mems-exchange.org/software/scgi
"The SCGI protocol is a replacement for the Common Gateway Interface (CGI) protocol. It is a standard for applications to interface with HTTP servers. It is similar to FastCGI but is designed to be easier to implement."

HTMLoverlays

http://disruptive-innovations.com/zoo/20040830/HTMLoverlays.html
"People, have you ever dreamed of a simple, nice, powerful, cross-browser mechanism to drastically reduce the size of your web pages, something that could allow you to simplify your web pages, preserving only the real content in your pages and externalizi

WebPwdHash

http://crypto.stanford.edu/PwdHash
"PwdHash is an Internet Explorer plug-in that transparently converts a user's password into a domain-specific password."

CSS Pencils v3.1

http://www.designdetector.com/tips/csspencils.php
"THERE ARE NO IMAGES ON THIS PAGE!" This page features a small image entirely composed of colored div pixels. MY HEAD A SPLODE.

PNG Alpha Mask Demo

http://www.mozilla.org/start/1.0/demos/eagle-sun.html
"Drag the sun or the bird around the browser window, and watch the shadow as it moves over the sky" Nifty. Works in Safari too/

bknr

http://bknr.net/bknr
Combining an object store, templates, and a web app framework, this makes me think a bit of Radio UserLand for some readon

Let Them Eat Cake

http://www.alistapart.com/articles/eatcake
"There has been a growing debate lately that pits accessibility against usability, but there’s no reason we can’t have both."

Cacheability Engine

http://www.mnot.net/cacheability
"To help you understand how Web Caches will treat a Web page, the Cacheability Engine will look at a URL (and optionally any images or objects associated with it), giving both specific cache-related data about it, and a general commentary on how cacheable

mnot - cgi_buffer

http://www.mnot.net/cgi_buffer
"cgi_buffer is a group of libraries (for Perl, Python and PHP) that automatically handle performance-improving HTTP features that most Web servers don't implement (at least for scripts)"

Accessible contents menu?

http://www.clagnut.com/blog/277
"Clagnut’s global navigation is a JavaScript-driven drop down (the Site contents button graphical browsers will see top-right). An accessibility no-no, you might think, but I reckon otherwise."