<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: design</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/design.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2026-01-24T23:31:03+00:00</updated><author><name>Simon Willison</name></author><entry><title>Don't "Trust the Process"</title><link href="https://simonwillison.net/2026/Jan/24/dont-trust-the-process/#atom-tag" rel="alternate"/><published>2026-01-24T23:31:03+00:00</published><updated>2026-01-24T23:31:03+00:00</updated><id>https://simonwillison.net/2026/Jan/24/dont-trust-the-process/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.youtube.com/watch?v=4u94juYwLLM"&gt;Don&amp;#x27;t &amp;quot;Trust the Process&amp;quot;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Jenny Wen, Design Lead at Anthropic (and previously Director of Design at Figma) gave a provocative keynote at Hatch Conference in Berlin last September.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Don't &amp;quot;Trust the process&amp;quot; slide, speaker shown on the left" src="https://static.simonwillison.net/static/2026/dont-trust-process.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;Jenny argues that the Design Process - user research leading to personas leading to user journeys leading to wireframes... all before anything gets built - may be outdated for today's world.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hypothesis&lt;/strong&gt;: In a world where anyone can make anything — what matters is your ability to choose and curate what you make.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In place of the Process, designers should lean into prototypes. AI makes these much more accessible and less time-consuming than they used to be.&lt;/p&gt;
&lt;p&gt;Watching this talk made me think about how AI-assisted programming significantly reduces the cost of building the &lt;em&gt;wrong&lt;/em&gt; thing. Previously if the design wasn't right you could waste months of development time building in the wrong direction, which was a very expensive mistake. If a wrong direction wastes just a few days instead we can take more risks and be much more proactive in exploring the problem space.&lt;/p&gt;
&lt;p&gt;I've always been a compulsive prototyper though, so this is very much playing into my own existing biases!

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://twitter.com/jenny_wen/status/2014479445738893649"&gt;@jenny_wen&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/prototyping"&gt;prototyping&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai-assisted-programming"&gt;ai-assisted-programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/vibe-coding"&gt;vibe-coding&lt;/a&gt;&lt;/p&gt;



</summary><category term="design"/><category term="prototyping"/><category term="ai"/><category term="generative-ai"/><category term="llms"/><category term="ai-assisted-programming"/><category term="vibe-coding"/></entry><entry><title>It’s hard to justify Tahoe icons</title><link href="https://simonwillison.net/2026/Jan/5/its-hard-to-justify-tahoe-icons/#atom-tag" rel="alternate"/><published>2026-01-05T19:30:24+00:00</published><updated>2026-01-05T19:30:24+00:00</updated><id>https://simonwillison.net/2026/Jan/5/its-hard-to-justify-tahoe-icons/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://tonsky.me/blog/tahoe-icons/"&gt;It’s hard to justify Tahoe icons&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Devastating critique of the new menu icons in macOS Tahoe by Nikita Prokopov, who starts by quoting the 1992 Apple HIG rule to not "overload the user with complex icons" and then provides comprehensive evidence of Tahoe doing exactly that.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In my opinion, Apple took on an impossible task: to add an icon to every menu item. There are just not enough good metaphors to do something like that.&lt;/p&gt;
&lt;p&gt;But even if there were, the premise itself is questionable: if everything has an icon, it doesn’t mean users will find what they are looking for faster.&lt;/p&gt;
&lt;p&gt;And even if the premise was solid, I still wish I could say: they did the best they could, given the goal. But that’s not true either: they did a poor job consistently applying the metaphors and designing the icons themselves.&lt;/p&gt;
&lt;/blockquote&gt;

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=46497712"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/apple"&gt;apple&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/macos"&gt;macos&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/usability"&gt;usability&lt;/a&gt;&lt;/p&gt;



</summary><category term="apple"/><category term="design"/><category term="macos"/><category term="usability"/></entry><entry><title>Dark mode</title><link href="https://simonwillison.net/2025/Dec/10/dark-mode/#atom-tag" rel="alternate"/><published>2025-12-10T16:05:34+00:00</published><updated>2025-12-10T16:05:34+00:00</updated><id>https://simonwillison.net/2025/Dec/10/dark-mode/#atom-tag</id><summary type="html">
    &lt;p&gt;I've never been particularly invested dark v.s. light mode but I get enough people complaining that this site is "blinding" that I decided to see if Claude Code for web could produce a useful dark mode from my existing CSS. It did &lt;a href="https://github.com/simonw/simonwillisonblog/pull/572/files"&gt;a decent job&lt;/a&gt;, using CSS properties, &lt;code&gt;@media (prefers-color-scheme: dark)&lt;/code&gt; and a &lt;code&gt;data-theme="dark"&lt;/code&gt; attribute based on this prompt:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;Add a dark theme which is triggered by user media preferences but can also be switched on using localStorage - then put a little icon in the footer for toggling it between default auto, forced regular and forced dark mode&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The site defaults to picking up the user's preferences, but there's also a toggle in the footer which switches between auto, forced-light and forced-dark. Here's an animated demo:&lt;/p&gt;
&lt;p&gt;&lt;img alt="This site on mobile. Clicking the icon in the footer switches to a black background with readable text." src="https://static.simonwillison.net/static/2025/dark-mode.gif" /&gt;&lt;/p&gt;
&lt;p&gt;I had Claude Code &lt;a href="https://gistpreview.github.io/?5ea34de3e999bd32d0f86beef4bd803d"&gt;make me that GIF&lt;/a&gt; from two static screenshots - it used this ImageMagick recipe:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;magick -delay 300 -loop 0 one.png two.png \
    -colors 128 -layers Optimize dark-mode.gif
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The CSS ended up with some duplication due to the need to handle both the media preference and the explicit user selection. We &lt;a href="https://github.com/simonw/simonwillisonblog/commit/d4bc7573775960a630145a287d854b8569da6f72#diff-5acc582e2a25639d184d784747a69ff9b30061aca8d5913d9c7e67452e715e08"&gt;fixed that with Cog&lt;/a&gt;.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai-assisted-programming"&gt;ai-assisted-programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/claude"&gt;claude&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/coding-agents"&gt;coding-agents&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/claude-code"&gt;claude-code&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="design"/><category term="ai"/><category term="generative-ai"/><category term="llms"/><category term="ai-assisted-programming"/><category term="claude"/><category term="coding-agents"/><category term="claude-code"/></entry><entry><title>The ChatGPT sharing dialog demonstrates how difficult it is to design privacy preferences</title><link href="https://simonwillison.net/2025/Aug/3/privacy-design/#atom-tag" rel="alternate"/><published>2025-08-03T23:26:15+00:00</published><updated>2025-08-03T23:26:15+00:00</updated><id>https://simonwillison.net/2025/Aug/3/privacy-design/#atom-tag</id><summary type="html">
    &lt;p&gt;ChatGPT just removed their "make this chat discoverable" sharing feature, after it turned out a material volume of users had inadvertantly made their private chats available via Google search.&lt;/p&gt;
&lt;p&gt;Dane Stuckey, CISO for OpenAI, &lt;a href="https://x.com/cryps1s/status/1951041845938499669"&gt;on Twitter&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We just removed a feature from @ChatGPTapp that allowed users to make their conversations discoverable by search engines, such as Google. This was a short-lived experiment to help people discover useful conversations. [...]&lt;/p&gt;
&lt;p&gt;Ultimately we think this feature introduced too many opportunities for folks to accidentally share things they didn't intend to, so we're removing the option.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There's been some media coverage of this issue - here are examples from &lt;a href="https://techcrunch.com/2025/07/31/your-public-chatgpt-queries-are-getting-indexed-by-google-and-other-search-engines/"&gt;TechCrunch&lt;/a&gt;, &lt;a href="https://www.techradar.com/ai-platforms-assistants/chatgpt/openai-pulls-chat-sharing-tool-after-google-search-privacy-scare"&gt;TechRadar&lt;/a&gt;, and &lt;a href="https://www.pcmag.com/news/be-careful-what-you-tell-chatgpt-your-chats-could-show-up-on-google-search"&gt;PCMag&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It turned out users had shared extremely private conversations and made them discoverable by search engines, which meant that various &lt;code&gt;site:chatgpt.com ...&lt;/code&gt; searches were turning up all sorts of potentially embarrassing details.&lt;/p&gt;
&lt;p&gt;Here's what that UI looked like before they removed the option:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://static.simonwillison.net/static/2025/chatgpt-share.jpg" alt="Screenshot of a chat sharing dialog with title &amp;quot;Public link created&amp;quot; and X close button. Text reads &amp;quot;A public link to your chat has been created. Manage previously shared chats at any time via Settings.&amp;quot; Below is an unchecked checkbox labeled &amp;quot;Make this chat discoverable&amp;quot; with subtitle &amp;quot;Allows it to be shown in web searches&amp;quot;. The sharing URL shown is &amp;quot;https://chatgpt.com/share/688b95ef-f986&amp;quot; with a black &amp;quot;Copy link&amp;quot; button. At bottom are three social sharing icons for LinkedIn, Reddit, and X." style="max-width: 100%;" /&gt;&lt;/p&gt;
&lt;p&gt;I've seen a bunch of commentary, both on Twitter and &lt;a href="https://news.ycombinator.com/item?id=44778764"&gt;this Hacker News thread&lt;/a&gt;, from people who are baffled that anyone could be confused by such a clear option in the UI.&lt;/p&gt;
&lt;p&gt;I think that confusion is warranted. Let's break it down.&lt;/p&gt;
&lt;p&gt;Here's the microcopy in question:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Make this chat discoverable&lt;/strong&gt;&lt;br /&gt;
Allows it to be shown in web searches.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The first problem here is the choice of terminology. "Discoverable" is not a widely understood term - it's insider jargon. "Allows it to be shown in web searches" is better, but still requires a surprisng depth of understanding from users before they can make an informed decision.&lt;/p&gt;
&lt;p&gt;Here's everything a user would need to understand for this to make sense to them:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What a URL is, and how it's posssible to create a URL that is semi-public in that it's unguessable by others but can still be read by anyone you share it with. That concept is a pretty tall order just on its own!&lt;/li&gt;
&lt;li&gt;What a web search engine is - that in this case it's intended as a generic term for Google, Bing, DuckDuckGo etc.&lt;/li&gt;
&lt;li&gt;That "web search" here means "those public search engines other people can use" and not something like "the private search feature you use on this website".&lt;/li&gt;
&lt;li&gt;A loose understanding of how search engines work: that they have indexes, and those indexes can selectively include or exclude content.&lt;/li&gt;
&lt;li&gt;That sites like ChatGPT get to control whether or not their content is included in those indexes.&lt;/li&gt;
&lt;li&gt;That the nature of a "secret URL" is that, once shared and made discoverable, anyone with that link (or who finds it through search) can now view the full content of that page.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ChatGPT has over a billion users now. That means there is a giant range of levels of technical expertise among those users. We can't assume that everyone understands the above concepts necessary to understand the implications of checking that box.&lt;/p&gt;
&lt;p&gt;And even if they have the pre-requisite knowledge required to understand this, &lt;strong&gt;users don't read&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;When people are using an application they are always looking for the absolute shortest path to achieving their goal. Any dialog box or question that appears is something to be skipped over as quickly as possible.&lt;/p&gt;
&lt;p&gt;Sadly, a lot of users may have learned to just say "yes" to any question. This option about making something "discoverable"? Sure, whatever, click the box and keep on going.&lt;/p&gt;
&lt;p&gt;I think there's another factor at play here too: the option itself makes almost no sense.&lt;/p&gt;
&lt;p&gt;How many people looking for a way to share their chats are going to think "and you know what? Stick this in Google too"?&lt;/p&gt;
&lt;p&gt;It's such a tiny fraction of the audience that a logical conclusion, when faced with the above option, could well be that obviously it wouldn't put my chats in Google because who on Earth would ever want that to happen?&lt;/p&gt;
&lt;p&gt;I think OpenAI made the right call disabling this feature. The value it can provide for the tiny set of people who decide to use it is massively outweighed by the potential for less discerning users to cause themselves harm by inadvertently sharing their private conversations with the world.&lt;/p&gt;
&lt;h4 id="meta-ai-does-this-even-worse"&gt;Meta AI does this even worse&lt;/h4&gt;
&lt;p&gt;A much worse example of this anti-pattern is Meta AI's decision to provide a "Post to feed" button in their own Meta AI chat app:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://static.simonwillison.net/static/2025/meta-ai-share.jpg" alt="Sharing dialog has two options: Post to feed - share this conversation to the public feed so anyone can see it and engage. and Share a link: Create a link to share this conversation with specific people." style="max-width: 100%;" /&gt;&lt;/p&gt;
&lt;p&gt;I think their microcopy here is &lt;em&gt;top notch&lt;/em&gt; - the text here uses clear language and should be easy for anyone to understand.&lt;/p&gt;
&lt;p&gt;(I took this screenshot today though, so it's possible the text has been recently updated.)&lt;/p&gt;
&lt;p&gt;And yet... Futurism, June 14th: &lt;a href="https://futurism.com/meta-ai-embarassing"&gt;People Don't Realize Meta's AI App Is Publicly Blasting Their Humiliating Secrets to the World&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Once again, when your users number in the millions some of them are going to randomly click things without understanding the consequences.&lt;/p&gt;
&lt;p&gt;The Meta AI iPhone app (fun fact: it can talk to you in the voice of Dame Judi Dench or John Cena) shows that public feed on the homepage when you first open the app, presumably to try and help people get over the blank slate "what is this thing even for" problem. They do not appear keen on losing this feature!&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/privacy"&gt;privacy&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/usability"&gt;usability&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openai"&gt;openai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/chatgpt"&gt;chatgpt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/meta"&gt;meta&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="design"/><category term="privacy"/><category term="usability"/><category term="ai"/><category term="openai"/><category term="generative-ai"/><category term="chatgpt"/><category term="llms"/><category term="meta"/></entry><entry><title>Re-label the "Save" button to be "Publish", to better indicate to users the outcomes of their action</title><link href="https://simonwillison.net/2025/Aug/2/wikipedia-save-button/#atom-tag" rel="alternate"/><published>2025-08-02T19:48:29+00:00</published><updated>2025-08-02T19:48:29+00:00</updated><id>https://simonwillison.net/2025/Aug/2/wikipedia-save-button/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://phabricator.wikimedia.org/T131132"&gt;Re-label the &amp;quot;Save&amp;quot; button to be &amp;quot;Publish&amp;quot;, to better indicate to users the outcomes of their action&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Fascinating Wikipedia usability improvement issue from 2016:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;From feedback we get repeatedly as a development team from interviews, user testing and other solicited and unsolicited avenues, and by inspection from the number of edits by newbies not quite aware of the impact of their edits in terms of immediate broadcast and irrevocability, that new users don't necessarily understand what "Save" on the edit page means. [...]&lt;/p&gt;
&lt;p&gt;Even though "user-generated content" sites are a lot more common today than they were when Wikipedia was founded, it is still unusual for most people that their actions will result in immediate, and effectively irrevocable, publication.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A great illustration of the usability impact of micro-copy, even more important when operating at Wikipedia scale.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://x.com/tilmanbayer/status/1951730503671050245"&gt;@tilmanbayer&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/usability"&gt;usability&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/wikipedia"&gt;wikipedia&lt;/a&gt;&lt;/p&gt;



</summary><category term="design"/><category term="usability"/><category term="wikipedia"/></entry><entry><title>Enough AI copilots! We need AI HUDs</title><link href="https://simonwillison.net/2025/Jul/27/enough-ai-copilots-we-need-ai-huds/#atom-tag" rel="alternate"/><published>2025-07-27T22:15:55+00:00</published><updated>2025-07-27T22:15:55+00:00</updated><id>https://simonwillison.net/2025/Jul/27/enough-ai-copilots-we-need-ai-huds/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.geoffreylitt.com/2025/07/27/enough-ai-copilots-we-need-ai-huds"&gt;Enough AI copilots! We need AI HUDs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Geoffrey Litt compares Copilots - AI assistants that you engage in dialog with and work with you to complete a task - with HUDs, Head-Up Displays, which enhance your working environment in less intrusive ways.&lt;/p&gt;
&lt;p&gt;He uses spellcheck as an obvious example, providing underlines for incorrectly spelt words, and then suggests his &lt;a href="https://www.geoffreylitt.com/2024/12/22/making-programming-more-fun-with-an-ai-generated-debugger"&gt;AI-implemented custom debugging UI&lt;/a&gt; as a more ambitious implementation of that pattern.&lt;/p&gt;
&lt;p&gt;Plenty of people have expressed interest in LLM-backed interfaces that go beyond chat or editor autocomplete. I think HUDs offer a really interesting way to frame one approach to that design challenge.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design-patterns"&gt;design-patterns&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/geoffrey-litt"&gt;geoffrey-litt&lt;/a&gt;&lt;/p&gt;



</summary><category term="design"/><category term="design-patterns"/><category term="ai"/><category term="generative-ai"/><category term="llms"/><category term="geoffrey-litt"/></entry><entry><title>RISD BFA Industrial Design: AI Software Design Studio</title><link href="https://simonwillison.net/2024/Oct/9/risd-bfa-industrial-design-ai-software-design-studio/#atom-tag" rel="alternate"/><published>2024-10-09T23:12:26+00:00</published><updated>2024-10-09T23:12:26+00:00</updated><id>https://simonwillison.net/2024/Oct/9/risd-bfa-industrial-design-ai-software-design-studio/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://risd-ai-studio.notion.site/AI-Software-Design-Studio-b5c1d283e5534565a64f199c90e90211"&gt;RISD BFA Industrial Design: AI Software Design Studio&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Fascinating syllabus for a course on digital product design taught at the Rhode Island School of Design by Kelin Carolyn Zhang.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Designers must adapt and shape the frontier of AI-driven computing — while navigating the opportunities, risks, and ethical responsibilities of working with this new technology.&lt;/p&gt;
&lt;p&gt;In this new world, creation is cheap, craft is automatable, and everyone is a beginner. The ultimate differentiator will be the creator’s perspective, taste, and judgment. The software design education for our current moment must prioritize this above all else.&lt;/p&gt;
&lt;p&gt;By course's end, students will have hands-on experience with an end-to-end digital product  design process, culminating in a physical or digital product that takes advantage of the unique properties of generative AI models. Prior coding experience is not required, but students will learn using AI coding assistants like ChatGPT and Claude.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;From &lt;a href="https://twitter.com/kelin_online/status/1843731509246865606"&gt;Kelin's Twitter thread&lt;/a&gt; about the course so far:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;these are juniors in industrial design. about half of them don't have past experience even designing software or using figma [...]&lt;/p&gt;
&lt;p&gt;to me, they're doing great because they're moving super quickly&lt;/p&gt;
&lt;p&gt;what my 4th yr interaction design students in 2019 could make in half a semester, these 3rd year industrial design students are doing in a few days with no past experience [...]&lt;/p&gt;
&lt;p&gt;they very quickly realized the limits of LLM code in week 1, especially in styling &amp;amp; creating unconventional behavior&lt;/p&gt;
&lt;p&gt;AI can help them make a functional prototype with js in minutes, but it doesn't look good&lt;/p&gt;
&lt;/blockquote&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/education"&gt;education&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/prototyping"&gt;prototyping&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;&lt;/p&gt;



</summary><category term="design"/><category term="education"/><category term="prototyping"/><category term="ai"/><category term="generative-ai"/><category term="llms"/></entry><entry><title>Help wanted: AI designers</title><link href="https://simonwillison.net/2024/Aug/13/ai-designers/#atom-tag" rel="alternate"/><published>2024-08-13T16:24:05+00:00</published><updated>2024-08-13T16:24:05+00:00</updated><id>https://simonwillison.net/2024/Aug/13/ai-designers/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://docs.google.com/document/d/1_W98tj_Sz6pnpJz3cXNQbxwntkELMHmSUYPy0s1K0Yo/edit"&gt;Help wanted: AI designers&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Nick Hobbs:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;LLMs feel like genuine magic. Yet, somehow we haven’t been able to use this amazing new wand to churn out amazing new products. This is puzzling.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Why is it proving so difficult to build mass-market appeal products on top of this weird and powerful new substrate?&lt;/p&gt;
&lt;p&gt;Nick thinks we need a new discipline - an AI designer (which feels to me like the design counterpart to an &lt;a href="https://www.latent.space/p/ai-engineer"&gt;AI engineer&lt;/a&gt;). Here's Nick's list of skills they need to develop:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Just like designers have to know their users, this new person needs to know the new alien they’re partnering with. That means they need to be just as obsessed about hanging out with models as they are with talking to users.&lt;/li&gt;
&lt;li&gt;The only way to really understand how we want the model to behave in our application is to build a bunch of prototypes that demonstrate different model behaviors. This — and a need to have good intuition for the possible — means this person needs enough technical fluency to look kind of like an engineer.&lt;/li&gt;
&lt;li&gt;Each of the behaviors you’re trying to design have near limitless possibility that you have to wrangle into a single, shippable product, and there’s little to no prior art to draft off of. That means this person needs experience facing the kind of “blank page” existential ambiguity that founders encounter.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://twitter.com/HobbsNews/status/1823017048823501052"&gt;@HobbsNews&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;&lt;/p&gt;



</summary><category term="design"/><category term="ai"/><category term="generative-ai"/><category term="llms"/></entry><entry><title>Quoting Chris Perry</title><link href="https://simonwillison.net/2024/May/29/chris-perry/#atom-tag" rel="alternate"/><published>2024-05-29T07:17:02+00:00</published><updated>2024-05-29T07:17:02+00:00</updated><id>https://simonwillison.net/2024/May/29/chris-perry/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://twitter.com/thechrisperry/status/1795661635602059664"&gt;&lt;p&gt;Sometimes the most creativity is found in enumerating the solution space. Design is the process of prioritizing tradeoffs in a high dimensional space. Understand that dimensionality.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://twitter.com/thechrisperry/status/1795661635602059664"&gt;Chris Perry&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;&lt;/p&gt;



</summary><category term="design"/></entry><entry><title>Lateral Thinking with Withered Technology</title><link href="https://simonwillison.net/2024/Mar/14/lateral-thinking-with-weathered-technology/#atom-tag" rel="alternate"/><published>2024-03-14T04:13:57+00:00</published><updated>2024-03-14T04:13:57+00:00</updated><id>https://simonwillison.net/2024/Mar/14/lateral-thinking-with-weathered-technology/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://en.wikipedia.org/wiki/Gunpei_Yokoi#Lateral_Thinking_with_Withered_Technology"&gt;Lateral Thinking with Withered Technology&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Gunpei Yokoi’s product design philosophy at Nintendo (“Withered” is also sometimes translated as “Weathered”). Use “mature technology that can be mass-produced cheaply”, then apply lateral thinking to find radical new ways to use it.&lt;/p&gt;

&lt;p&gt;This has echos for me of Dan McKinley’s “Choose Boring Technology”, which argues that in software projects you should default to a proven, stable stack so you can focus your innovation tokens on the problems that are unique to your project.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dan-mckinley"&gt;dan-mckinley&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/boring-technology"&gt;boring-technology&lt;/a&gt;&lt;/p&gt;



</summary><category term="design"/><category term="dan-mckinley"/><category term="boring-technology"/></entry><entry><title>New Default: Underlined Links for Improved Accessibility (GitHub Blog)</title><link href="https://simonwillison.net/2023/Oct/19/new-default-underlined-links-for-improved-accessibility-github-b/#atom-tag" rel="alternate"/><published>2023-10-19T16:19:30+00:00</published><updated>2023-10-19T16:19:30+00:00</updated><id>https://simonwillison.net/2023/Oct/19/new-default-underlined-links-for-improved-accessibility-github-b/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.blog/changelog/2023-10-18-new-default-underlined-links-for-improved-accessibility/"&gt;New Default: Underlined Links for Improved Accessibility (GitHub Blog)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
“By default, links within text blocks on GitHub are now underlined. This ensures links are easily distinguishable from surrounding text.”


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/accessibility"&gt;accessibility&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/github"&gt;github&lt;/a&gt;&lt;/p&gt;



</summary><category term="accessibility"/><category term="design"/><category term="github"/></entry><entry><title>ChatGPT should include inline tips</title><link href="https://simonwillison.net/2023/May/30/chatgpt-inline-tips/#atom-tag" rel="alternate"/><published>2023-05-30T19:23:27+00:00</published><updated>2023-05-30T19:23:27+00:00</updated><id>https://simonwillison.net/2023/May/30/chatgpt-inline-tips/#atom-tag</id><summary type="html">
    &lt;p&gt;In &lt;a href="https://www.theverge.com/2023/5/30/23741996/openai-chatgpt-false-information-misinformation-responsibility"&gt;OpenAI isn’t doing enough to make ChatGPT’s limitations clear&lt;/a&gt; James Vincent argues that OpenAI's existing warnings about ChatGPT's confounding ability to convincingly make stuff up are not effective.&lt;/p&gt;
&lt;p&gt;I completely agree.&lt;/p&gt;
&lt;p&gt;The case of the lawyer who &lt;a href="https://simonwillison.net/2023/May/27/lawyer-chatgpt/"&gt;submitted fake cases invented by ChatGPT to the court&lt;/a&gt; is just the most recent version of this.&lt;/p&gt;
&lt;p&gt;Plenty of people have argued that the lawyer should have read the warning displayed on every page of the ChatGPT interface. But that warning is clearly inadequate. Here's that warning in full:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ChatGPT may produce inaccurate information about people, places, or facts&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Anyone who has spent time with ChatGPT will know that there's a lot more to it than that. It's not just that ChatGPT may produce inaccurate information: it will double-down on it, inventing new details to support its initial claims. It will tell lies &lt;a href="https://simonwillison.net/2023/May/27/lawyer-chatgpt/#img-apologize"&gt;like this one&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;I apologize for the confusion earlier. Upon double-checking, I found that the case Varghese v. China Southern Airlines Co. Ltd., 925 F.3d 1339 (11th Cir. 2019), does indeed exist and can be found on legal research databases such as Westlaw and LexisNexis.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;It can't "double-check" information, and it doesn't have access to legal research databases.&lt;/p&gt;
&lt;p&gt;"May produce inaccurate information" is a massive understatement here! It implies the occasional mistake, not Machiavellian levels of deception where it doubles-down on falsehoods and invents increasingly convincing justifications for them.&lt;/p&gt;
&lt;p&gt;Even for people who have read that warning, a single sentence in a footer isn't nearly enough to inoculate people against the many weird ways ChatGPT can lead them astray.&lt;/p&gt;
&lt;h4&gt;My proposal: Inline tips&lt;/h4&gt;
&lt;p&gt;I think this problem could be addressed with some careful interface design.&lt;/p&gt;
&lt;p&gt;Currently, OpenAI have been trying to train ChatGPT to include additional warnings in its regular output. It will sometimes reply with warnings that it isn't able to do things... but these warnings are unreliable. Often I'll try the same prompt multiple times and only get the warning for some of those attempts.&lt;/p&gt;
&lt;p&gt;Instead, I think the warnings should be added in a way that is visually distinct from the regular output. Here's a mockup illustrating the kind of thing I'm talking about:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://static.simonwillison.net/static/2023/chatgpt-mockup-trending.jpg" alt="Default (GPT-3.5). Prompt: Write some tweets based on what's trending on pinterest. Inline warning icon and message: This ChatGPT model does not have access to the internet, and its training data cut-off is September 2021. Response: 1. &amp;quot;Obsessed with these DIY farmhouse decor ideas! &amp;amp; Can't wait to give my living room a rustic makeover. #FarmhouseDecor #DIYProjects #PinterestInspiration&amp;quot; " style="display: block; margin: 1em auto;  width: 500px; max-width: 100%;" /&gt;&lt;/p&gt;
&lt;p&gt;As you can see, the prompt "Write some tweets based on what's trending on pinterest" triggers an inline warning with a visually different style and a message explaining that "This ChatGPT model does not have access to the internet, and its training data cut-off is September 2021".&lt;/p&gt;
&lt;p&gt;My &lt;a href="https://twitter.com/simonw/status/1641467385688489984"&gt;first version of this&lt;/a&gt; used "My data is only accurate up to September 2021", but I think having the warnings use "I" pronouns is itself misleading - the tips should be commentary about the model's output, not things that appear to be spoken by the model itself.&lt;/p&gt;
&lt;p&gt;Here's a second mockup, inspired by the lawyer example:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://static.simonwillison.net/static/2023/chatgpt-mockup-legal.jpg" alt="4 Model: Default (GPT-3.5) Prompt: For a legal brief give me US legal cases (including case numbers) I can cite for precedent that the montreal convention means my client can still make an injury claim against an airline even if they have declared bankruptcy. Just list the cases as markdown bullets. Warning: ChatGPT should not be relied on for legal research of this nature, because it is very likely to invent realistic cases that do not actually exist. Response: Certainly! Here are some US legal cases that you can cite as precedent for your client's injury claim against an airline, even if the airline has declared bankruptcy, under the Montreal Convention: • In re Air Crash Disaster Near Peggy's Cove, Nova Scotia on September 2, 1998, 209 F. Supp. 2d 1320 (S.D. Fla. 2002): The court held that bankruptcy does not absolve an airline of its liability under the Montreal Convention for personal injury claims arising from an air crash." style="display: block; margin: 1em auto;  width: 500px; max-width: 100%;" /&gt;&lt;/p&gt;
&lt;p&gt;This time the warning is "ChatGPT should not be relied on for legal research of this nature, because it is very likely to invent realistic cases that do not actually exist."&lt;/p&gt;
&lt;p&gt;Writing these warnings clearly is its own challenge - I think they should probably include links to further information in an OpenAI support site that teaches people how to responsibly use ChatGPT (something that is very much needed).&lt;/p&gt;
&lt;p&gt;(Here's &lt;a href="https://gist.github.com/simonw/02577529aa080a4f8b521fab8879c1b3"&gt;the HTML&lt;/a&gt; I used for these mockups, added using the Firefox DevTools.)&lt;/p&gt;
&lt;h4&gt;How would this work?&lt;/h4&gt;
&lt;p&gt;Actually implementing this system isn't trivial. The first challenge is coming up with the right collection of warnings - my hunch is that this could be hundreds of items already. The next challenge is logic to decide when to display them, which would itself require an LLM (or maybe a fine-tuned model of some sort).&lt;/p&gt;
&lt;p&gt;The good news is that a system like this could be developed independently of core ChatGPT itself. New warnings could be added without any changes needed to the underlying model, making it safe to iterate wildly on the inline tips without risk of affecting the core model's performance or utility.&lt;/p&gt;
&lt;p&gt;Obviously I'd like it best if OpenAI were to implement something like this as part of ChatGPT itself, but it would be possible for someone else to prototype it on top of the OpenAI APIs.&lt;/p&gt;
&lt;p&gt;I thought about doing that myself, but my list of projects is overflowing enough already!&lt;/p&gt;
&lt;h4&gt;Max Woolf's prototype&lt;/h4&gt;
&lt;p&gt;Max Woolf built an implementation of this idea as &lt;a href="https://github.com/minimaxir/simpleaichat/blob/main/examples/notebooks/chatgpt_inline_tips.ipynb"&gt;an example&lt;/a&gt; for his &lt;a href="https://github.com/minimaxir/simpleaichat"&gt;simpleaichat library&lt;/a&gt;. He shared &lt;a href="https://github.com/minimaxir/simpleaichat"&gt;these screenshots on Twitter&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://static.simonwillison.net/static/2023/inline-tips-demo-1.jpg" alt="You: Can you tell me more about Max v. Woolf? Warning: ChatGPT should not be relied on for legal research of this nature, because it is very likely to invent realistic cases that do not exist. ChatGPT: Max v. Woolf is a legal case that took place in the United Kingdom in 2017. It involved a dispute between two authors, Max and Woolf, over the alleged plagiarism of Max's work by Woolf. Max claimed that Woolf had copied significant portions of his book without permission or attribution. The case was heard in the High Court of Justice in London, and the judge ultimately ruled in favor of Max, finding that Woolf had indeed plagiarized his work. Woolf was ordered to pay damages to Max and was also required to issue a public apology. The case received significant media attention and sparked a wider conversation about plagiarism in the literary world. It also highlighted the importance of proper attribution and the potential consequences of failing to give credit where it is due." style="width: 48%" /&gt;
&lt;img src="https://static.simonwillison.net/static/2023/inline-tips-demo-2.jpg" alt="You: Everyone's talking about it on Twitter! Warning: This ChatGPT model does not have access to the internet, and its training data cut-off is September 2021 ChatGPT: It's not surprising that the case is generating a lot of discussion on social media platforms like Twitter. Plagiarism is a serious issue in the creative industries, and cases like Max v. Woolf can have far-reaching implications for both the individuals involved and the wider community. Many people are likely to have strong opinions on the case, particularly if they are writers or other creatives who have experienced plagiarism themselves. Others may be interested in the legal aspects of the case or the broader ethical questions it raises. Overall, the case is a reminder of the importance of respecting intellectual property and giving credit where it is due. It also highlights the potential consequences of failing to do so, both in terms of legal action and damage to one's reputation." style="width: 48%" /&gt;&lt;/p&gt;
&lt;h4 id="inline-tips-claude"&gt;Inline tips in Claude&lt;/h4&gt;
&lt;p&gt;On July 27th 2023 &lt;a href="https://twitter.com/simonw/status/1684680051433091072"&gt;I noticed&lt;/a&gt; that Anthropic's &lt;a href="https://claude.ai/"&gt;Claude&lt;/a&gt; had started presenting inline tips that look like this:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Claude interface. My prompt: Summary of https://simonwillison.net/2015/Feb/switching-from-django-to-rails-from-now-on Claude then displays this inline tip: Claude can't visit links. Responses may contain hallucination. Followed by a hallucinated response: Here is a summary of the key points from the article: • The author Simon Willison had been using Django for most of his web development work for many years. He decided to switch to using Ruby on Rails going forward. • He found Rails to have a lower barrier to entry compared to Django. Simple things were quick and easy in Rails, while Diango tended to be more complex." src="https://static.simonwillison.net/static/2023/inline-hints-claude.jpg" style="max-width: 400px" /&gt;&lt;/p&gt;
&lt;p&gt;That response is hallucinated - I asked for a summary of a non-existent web page and Claude hallucinated the content of the page - but Claude now shows an inline warning before the response that says "Claude can't visit links. Responses may contain hallucination".&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/prototyping"&gt;prototyping&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/max-woolf"&gt;max-woolf&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openai"&gt;openai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/chatgpt"&gt;chatgpt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/anthropic"&gt;anthropic&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/claude"&gt;claude&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="design"/><category term="prototyping"/><category term="ai"/><category term="max-woolf"/><category term="openai"/><category term="generative-ai"/><category term="chatgpt"/><category term="llms"/><category term="anthropic"/><category term="claude"/></entry><entry><title>Why Chatbots Are Not the Future</title><link href="https://simonwillison.net/2023/May/15/why-chatbots-are-not-the-future/#atom-tag" rel="alternate"/><published>2023-05-15T20:54:29+00:00</published><updated>2023-05-15T20:54:29+00:00</updated><id>https://simonwillison.net/2023/May/15/why-chatbots-are-not-the-future/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://wattenberger.com/thoughts/boo-chatbots"&gt;Why Chatbots Are Not the Future&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Amelia Wattenberger makes a convincing argument for why chatbots are a terrible interface for LLMs. “Good tools make it clear how they should be used. And more importantly, how they should not be used.”


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ux"&gt;ux&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/amelia-wattenberger"&gt;amelia-wattenberger&lt;/a&gt;&lt;/p&gt;



</summary><category term="design"/><category term="ux"/><category term="ai"/><category term="generative-ai"/><category term="llms"/><category term="amelia-wattenberger"/></entry><entry><title>brumm.af/shadows</title><link href="https://simonwillison.net/2021/Jan/6/shadows/#atom-tag" rel="alternate"/><published>2021-01-06T16:12:22+00:00</published><updated>2021-01-06T16:12:22+00:00</updated><id>https://simonwillison.net/2021/Jan/6/shadows/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://brumm.af/shadows"&gt;brumm.af/shadows&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I did not know this trick: by defining multiple box-shadow values as a comma separated list you can create much more finely tuned shadow effects. This tool by Philipp Brumm provides a very smart UI for designing shadows.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://twitter.com/joshwcomeau/status/1212416891513397248"&gt;@joshwcomeau&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="design"/></entry><entry><title>Command Line Interface Guidelines</title><link href="https://simonwillison.net/2020/Dec/4/command-line-interface-guidelines/#atom-tag" rel="alternate"/><published>2020-12-04T20:44:58+00:00</published><updated>2020-12-04T20:44:58+00:00</updated><id>https://simonwillison.net/2020/Dec/4/command-line-interface-guidelines/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://clig.dev/"&gt;Command Line Interface Guidelines&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Aanand Prasad, Ben Firshman, Carl Tashian and Eva Parish provide the missing manual for designing CLI tools in 2020. Deeply researched and clearly presented—I picked up a bunch of useful tips and ideas from reading this, and I’m looking forward to applying them to my own CLI projects.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://twitter.com/bfirsh/status/1334902269758693376"&gt;bfirsh&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/cli"&gt;cli&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/usability"&gt;usability&lt;/a&gt;&lt;/p&gt;



</summary><category term="cli"/><category term="design"/><category term="usability"/></entry><entry><title>Weeknotes: datasette-auth-passwords, a Datasette logo and a whole lot more</title><link href="https://simonwillison.net/2020/Jul/17/weeknotes-datasette-logo/#atom-tag" rel="alternate"/><published>2020-07-17T03:41:13+00:00</published><updated>2020-07-17T03:41:13+00:00</updated><id>https://simonwillison.net/2020/Jul/17/weeknotes-datasette-logo/#atom-tag</id><summary type="html">
    &lt;p&gt;All sorts of project updates this week.&lt;/p&gt;

&lt;h4&gt;datasette-auth-passwords&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://simonwillison.net/2020/Jun/12/annotated-release-notes/"&gt;Datasette 0.44&lt;/a&gt; added authentication support as a core concept, but left the actual implementation details up to the plugins.&lt;/p&gt;

&lt;p&gt;I released &lt;a href="https://github.com/simonw/datasette-auth-passwords"&gt;datasette-auth-passwords&lt;/a&gt; on Monday. It's an implementation of the most obvious form of authentication (as opposed to &lt;a href="https://github.com/simonw/datasette-auth-github"&gt;GitHub SSO&lt;/a&gt; or &lt;a href="https://github.com/simonw/datasette-auth-tokens"&gt;bearer tokens&lt;/a&gt; or &lt;a href="https://github.com/simonw/datasette-auth-existing-cookies"&gt;existing domain cookies&lt;/a&gt;): usernames and passwords, typed into a form.&lt;/p&gt;

&lt;p&gt;Implementing passwords responsibly is actually pretty tricky, due to the need to effectively hash them. After &lt;a href="https://github.com/simonw/datasette-auth-passwords/issues/1"&gt;some research&lt;/a&gt; I ended up mostly copying how Django does it (never a bad approach): I'm using 260,000 salted pbkdf2_hmac iterations, taking advantage of the Python standard library. I wrote this up &lt;a href="https://github.com/simonw/til/blob/master/python/password-hashing-with-pbkdf2.md"&gt;in a TIL&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The plugin currently only supports hard-coded password hashes that are fed to Datasette via an environment variable - enough to set up a password-protected Datasette instance with a couple of users, but not really good for anything more complex than that. I have an &lt;a href="https://github.com/simonw/datasette-auth-passwords/issues/6"&gt;open issue&lt;/a&gt; for implementing database-backed password accounts, although again the big challenge is figuring out how to responsible store those password hashes.&lt;/p&gt;

&lt;p&gt;I've set up a live demo of the password plugin at &lt;a href="https://datasette-auth-passwords-demo.datasette.io/"&gt;datasette-auth-passwords-demo.datasette.io&lt;/a&gt; - you can sign into it to reveal a private database that's only available to authenticated users.&lt;/p&gt;

&lt;h4&gt;Datasette website and logo&lt;/h4&gt;

&lt;p&gt;I'm finally making good progress on a website for Datasette. As part of that I've been learning to use &lt;a href="https://www.figma.com/"&gt;Figma&lt;/a&gt;, which I used to create a Datasette logo.&lt;/p&gt;

&lt;p&gt;&lt;img alt="Datasette" src="https://static.simonwillison.net/static/2020/datasette-logo.svg" style="max-width: 100%; margin: 1.5em 0" /&gt;&lt;/p&gt;

&lt;p&gt;Figma is really neat: it's an entirely web-based vector image editor, aimed at supporting the kind of design work that goes into websites and apps. It has full collaborative editing for teams but it's free for single users. Most importantly it has &lt;a href="https://www.figma.com/blog/with-figmas-new-svg-exports-less-more/"&gt;extremely competent SVG exports&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I've added the logo to &lt;a href="https://datasette.readthedocs.io/en/latest/"&gt;the latest version&lt;/a&gt; of the Datasette docs, and I have an &lt;a href="https://github.com/readthedocs/sphinx_rtd_theme/pull/978"&gt;open pull request&lt;/a&gt; to &lt;code&gt;sphinx_rtd_theme&lt;/code&gt; to add support for setting a custom link target on the logo so I can link back to the rest of the official site, when it goes live.&lt;/p&gt;

&lt;h4&gt;TIL search snippet highlighting&lt;/h4&gt;

&lt;p&gt;My &lt;a href="https://til.simonwillison.net/"&gt;TIL site&lt;/a&gt; has a search engine, but it didn't do snippet highlighting. I reused the pattern I described in &lt;a href="https://24ways.org/2018/fast-autocomplete-search-for-your-website/"&gt;Fast Autocomplete Search for Your Website&lt;/a&gt; - implemented server-side rather than client-side this time - to add that functionality. The implementation &lt;a href="https://github.com/simonw/til/commit/51f5daef61b6bbe6c5be564b8644d2bff6761ab0"&gt;is here&lt;/a&gt; - here's &lt;a href="https://til.simonwillison.net/til/search?q=asgi"&gt;a demo&lt;/a&gt; of it in action.&lt;/p&gt;

&lt;h4&gt;SRCCON schedule&lt;/h4&gt;

&lt;p&gt;I'm attending (virtually) the &lt;a href="https://2020.srccon.org/"&gt;SRCCON 2020&lt;/a&gt; journalism conference this week, and Datasette is part of the &lt;a href="https://2020.srccon.org/projects-products-research/#datasette"&gt;Projects, Products, &amp;amp; Research&lt;/a&gt; track.&lt;/p&gt;

&lt;p&gt;As a demo, I set up a Datasette powered copy of the conference schedule at &lt;a href="https://srccon-2020.datasette.io/"&gt;srccon-2020.datasette.io&lt;/a&gt; - it's running the &lt;a href="https://github.com/simonw/datasette-ics"&gt;datasette-ics&lt;/a&gt; plugin which means it can provide a URL that can be subscribed to in Google or Apple Calendar.&lt;/p&gt;

&lt;p&gt;The site runs out of the &lt;a href="https://github.com/simonw/srccon-2020-datasette"&gt;simonw/srccon-2020-datasette&lt;/a&gt; repository, which uses a GitHub Action to download the schedule JSON, modify it a little (mainly to turn the start and end dates into ISO datestamps), save it to a SQLite database with &lt;a href="https://github.com/simonw/sqlite-utils"&gt;sqlite-utils&lt;/a&gt; and publish it to &lt;a href="https://vercel.com/"&gt;Vercel&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;Covid 19 population data&lt;/h4&gt;

&lt;p&gt;My &lt;a href="https://simonwillison.net/2020/Mar/11/covid-19/"&gt;Covid-19 tracker&lt;/a&gt; publishes updated numbers of cases and deaths from the New York Times, the LA Times and Johns Hopkins university on an hourly basis.&lt;/p&gt;

&lt;p&gt;One thing that was missing was county population data. US counties are identified in the data by their &lt;a href="https://en.wikipedia.org/wiki/FIPS_county_code"&gt;FIPS codes&lt;/a&gt;, which offers a mechanism for joining against population estimates pulled from the US Census.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href="https://github.com/nytimes/covid-19-data/pull/155"&gt;Aaron King&lt;/a&gt; I've now incorporated that data into the site, as a new &lt;a href="https://covid-19.datasettes.com/covid/us_census_county_populations_2019"&gt;us_census_county_populations_2019&lt;/a&gt; table.&lt;/p&gt;

&lt;p&gt;I used that data to define a SQL view - &lt;a href="https://covid-19.datasettes.com/covid/latest_ny_times_counties_with_populations"&gt;latest_ny_times_counties_with_populations&lt;/a&gt; - which shows the latest New York Times county data with new derived  	&lt;code&gt;cases_per_million&lt;/code&gt; and &lt;code&gt;deaths_per_million&lt;/code&gt; columns.&lt;/p&gt;

&lt;h4&gt;Tweaks to this blog&lt;/h4&gt;

&lt;p&gt;For many years this blog's main content has sat on the left of the page - which looks increasingly strange as screens get wider and wider. As of &lt;a href="https://github.com/simonw/simonwillisonblog/commit/3d44c67a2cfee128d0168cb2e6a650f45211446a"&gt;this commit&lt;/a&gt; the main layout is centered, which I think looks much nicer.&lt;/p&gt;

&lt;p&gt;I also ran &lt;a href="https://github.com/simonw/simonwillisonblog/commit/b085679933985c44b8171b556d141cdef8f232d2"&gt;a data migration&lt;/a&gt; to fix some old internal links.&lt;/p&gt;

&lt;h4&gt;Miscellaneous&lt;/h4&gt;

&lt;p&gt;I gave a (virtual) talk at &lt;a href="https://www.djangolondon.com/"&gt;Django London&lt;/a&gt; on Monday about Datasette. I've taken to sharing a Google Doc for this kind of talk, which I prepare before the talk with notes and then update afterwards to reflect additional material from the Q&amp;amp;A. Here's &lt;a href="https://docs.google.com/document/d/17ZDlxHOqDGugKqn_Nh_Q7JER5vjKin1D3d17oPhrs9o/edit"&gt;the document&lt;/a&gt; from Monday's talk.&lt;/p&gt;

&lt;p&gt;San Francisco Public Works maintain a page of &lt;a href="https://sfpublicworks.org/tree-removal-notifications"&gt;tree removal notifications&lt;/a&gt; showing trees that are scheduled for removal. I &lt;a href="https://simonwillison.net/2019/Mar/13/tree-history/"&gt;like those trees&lt;/a&gt;. They don't provide an archive of notifications from that page, so I've set up a &lt;a href="https://simonwillison.net/tags/gitscraping/"&gt;git scraping&lt;/a&gt; &lt;a href="https://github.com/simonw/sfpublicworks-tree-removal-notifications"&gt;GitHub repository&lt;/a&gt; that scrapes the page daily and maintains a history of its contents in the commit log.&lt;/p&gt;

&lt;p&gt;I updated &lt;a href="https://github.com/simonw/datasette-publish-fly/releases/tag/1.0"&gt;datasette-publish-fly&lt;/a&gt; for compatibility with Datasette 0.44 and Python 3.6.&lt;/p&gt;

&lt;p&gt;I made a few tweaks to &lt;a href="https://simonwillison.net/2020/Jul/10/self-updating-profile-readme/"&gt;my GitHub profile README&lt;/a&gt;, which is now Apache 2 licensed so people know they can adapt it for their own purposes.&lt;/p&gt;

&lt;p&gt;I released &lt;a href="https://github.com/dogsheep/github-to-sqlite/releases/tag/2.3"&gt;github-to-sqlite 2.3&lt;/a&gt; with a new option for fetching information for just specific repositories.&lt;/p&gt;

&lt;p&gt;The Develomentor podcast published &lt;a href="https://develomentor.com/2020/07/16/simon-willison-data-journalism-the-importance-of-side-projects/"&gt;an interview with me&lt;/a&gt; about my career, and how it's been mostly defined by side-projects.&lt;/p&gt;

&lt;h4&gt;TIL this week&lt;/h4&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href="https://github.com/simonw/til/blob/master/heroku/pg-pull.md"&gt;Using heroku pg:pull to restore a backup to a macOS laptop&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/simonw/til/blob/master/python/password-hashing-with-pbkdf2.md"&gt;Password hashing in Python with pbkdf2&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/passwords"&gt;passwords&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/projects"&gt;projects&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/datasette"&gt;datasette&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/weeknotes"&gt;weeknotes&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/covid19"&gt;covid19&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/git-scraping"&gt;git-scraping&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="design"/><category term="passwords"/><category term="projects"/><category term="datasette"/><category term="weeknotes"/><category term="covid19"/><category term="git-scraping"/></entry><entry><title>Quoting Juliette Cezzar</title><link href="https://simonwillison.net/2020/Feb/21/juliette-cezzar/#atom-tag" rel="alternate"/><published>2020-02-21T01:04:06+00:00</published><updated>2020-02-21T01:04:06+00:00</updated><id>https://simonwillison.net/2020/Feb/21/juliette-cezzar/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://deardesignstudent.com/why-is-so-much-of-design-school-a-waste-of-time-39ec2a1aa7d5"&gt;&lt;p&gt;So next time someone is giving you feedback about something you made, think to yourself that to win means getting two or three insights, ideas, or suggestions that you are excited about, and that you couldn’t think up on your own.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://deardesignstudent.com/why-is-so-much-of-design-school-a-waste-of-time-39ec2a1aa7d5"&gt;Juliette Cezzar&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;&lt;/p&gt;



</summary><category term="design"/></entry><entry><title>Quoting Daniel Burka</title><link href="https://simonwillison.net/2018/Nov/25/daniel-burka/#atom-tag" rel="alternate"/><published>2018-11-25T19:03:21+00:00</published><updated>2018-11-25T19:03:21+00:00</updated><id>https://simonwillison.net/2018/Nov/25/daniel-burka/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://library.gv.com/everyone-is-a-designer-get-over-it-501cc9a2f434"&gt;&lt;p&gt;Whether you like it or not, whether you approve it or not, people outside of your design team are making significant design choices that affect your customers in important ways. They are designing your product. They are designers.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://library.gv.com/everyone-is-a-designer-get-over-it-501cc9a2f434"&gt;Daniel Burka&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;&lt;/p&gt;



</summary><category term="design"/></entry><entry><title>Work process vs technology</title><link href="https://simonwillison.net/2017/Mar/1/work-process-vs-technology/#atom-tag" rel="alternate"/><published>2017-03-01T05:25:00+00:00</published><updated>2017-03-01T05:25:00+00:00</updated><id>https://simonwillison.net/2017/Mar/1/work-process-vs-technology/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="http://ask.metafilter.com/306429/Work-process-vs-technology#4435787"&gt;Work process vs technology &lt;/a&gt; on Ask MetaFilter&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Do you have a plan for what happens if you lose your hard drive, or someone steals it? I understand your need for offline access, but personally I'm terrified of losing my laptop to the point that I use cloud backup services (Dropbox, but I've used and liked Backblaze in the past) to make absolutely sure that I don't lose any data should my laptop get lost or stolen.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/ask-metafilter"&gt;ask-metafilter&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/microsoft"&gt;microsoft&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/technology"&gt;technology&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/secure"&gt;secure&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="ask-metafilter"/><category term="design"/><category term="microsoft"/><category term="technology"/><category term="secure"/></entry><entry><title>What design techniques does Apple use in the introduction page of iPad Air?</title><link href="https://simonwillison.net/2013/Oct/29/what-design-techniques-does/#atom-tag" rel="alternate"/><published>2013-10-29T13:13:00+00:00</published><updated>2013-10-29T13:13:00+00:00</updated><id>https://simonwillison.net/2013/Oct/29/what-design-techniques-does/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-design-techniques-does-Apple-use-in-the-introduction-page-of-iPad-Air/answer/Simon-Willison"&gt;What design techniques does Apple use in the introduction page of iPad Air?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Apple used the same technique on their &lt;span&gt;&lt;a href="http://www.apple.com/mac-pro/"&gt;Apple - Mac Pro&lt;/a&gt;&lt;/span&gt; page. I first saw this trick used on the &lt;span&gt;&lt;a href="http://2011.beercamp.com/"&gt;BeerCamp at SXSW 2011&lt;/a&gt;&lt;/span&gt; page.&lt;/p&gt;

&lt;p&gt;It's not that hard to achieve - the basic principle is to attach a JavaScript event handler to the onscroll event.&lt;/p&gt;

&lt;p&gt;There are even a bunch of open source libraries to help you achieve this kind of effect, such as &lt;span&gt;&lt;a href="http://johnpolacek.github.io/scrollorama/"&gt;scrollorama&lt;/a&gt;&lt;/span&gt; and &lt;span&gt;&lt;a href="http://prinzhorn.github.io/skrollr/"&gt;skrollr&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/apple"&gt;apple&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html5"&gt;html5&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ipad"&gt;ipad&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="apple"/><category term="design"/><category term="html5"/><category term="ipad"/><category term="web-development"/><category term="quora"/><category term="frontend"/></entry><entry><title>How long should I budget for an experienced designer to design a responsive ecommerce store?</title><link href="https://simonwillison.net/2013/Aug/13/how-long-should-i/#atom-tag" rel="alternate"/><published>2013-08-13T15:00:00+00:00</published><updated>2013-08-13T15:00:00+00:00</updated><id>https://simonwillison.net/2013/Aug/13/how-long-should-i/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/How-long-should-I-budget-for-an-experienced-designer-to-design-a-responsive-ecommerce-store/answer/Simon-Willison"&gt;How long should I budget for an experienced designer to design a responsive ecommerce store?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There's no single answer to this - it depends on the scope of the project. A one-page store selling 3 items is quicker to design than a thousand page store with dozens of category homepages etc.&lt;/p&gt;

&lt;p&gt;I suggest putting together a brief and getting estimates from a number of different designers - that should give you a pretty good idea of how long it should take.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/startups"&gt;startups&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ui"&gt;ui&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ecommerce"&gt;ecommerce&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ux"&gt;ux&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/responsivedesign"&gt;responsivedesign&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="design"/><category term="startups"/><category term="ui"/><category term="web-development"/><category term="quora"/><category term="ecommerce"/><category term="ux"/><category term="responsivedesign"/></entry><entry><title>What are the best web design and web development conferences/ meetups in Central &amp; Eastern Europe (2013)?</title><link href="https://simonwillison.net/2013/May/1/what-are-the-best-conferences/#atom-tag" rel="alternate"/><published>2013-05-01T14:51:00+00:00</published><updated>2013-05-01T14:51:00+00:00</updated><id>https://simonwillison.net/2013/May/1/what-are-the-best-conferences/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-are-the-best-web-design-and-web-development-conferences-meetups-in-Central-Eastern-Europe-2013/answer/Simon-Willison"&gt;What are the best web design and web development conferences/ meetups in Central &amp;amp; Eastern Europe (2013)?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;span&gt;&lt;a href="http://2013.djangocon.eu/"&gt;DjangoCon Europe&lt;/a&gt;&lt;/span&gt; is in Warsaw this year, on 15th-19th May 2013 - if past experience is anything to go by, that should be an excellent conference (though obviously with a strong bias towards Django).

&lt;p&gt;We have a list of &lt;span&gt;&lt;a href="http://lanyrd.com/topics/web-design/in/cee/"&gt;Web Design conferences and events in Central and Eastern Europe&lt;/a&gt;&lt;/span&gt; on Lanyrd - you might find our full list of &lt;span&gt;&lt;a href="http://lanyrd.com/places/cee/"&gt;Conferences in Central and Eastern Europe&lt;/a&gt;&lt;/span&gt; useful as well.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/conferences"&gt;conferences&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ui"&gt;ui&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ux"&gt;ux&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="conferences"/><category term="design"/><category term="ui"/><category term="web-development"/><category term="quora"/><category term="ux"/></entry><entry><title>Where can I find out about upcoming conferences, conventions, and trade shows in design, publishing, and elearning?</title><link href="https://simonwillison.net/2013/Mar/23/where-can-i-find/#atom-tag" rel="alternate"/><published>2013-03-23T18:32:00+00:00</published><updated>2013-03-23T18:32:00+00:00</updated><id>https://simonwillison.net/2013/Mar/23/where-can-i-find/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/Where-can-I-find-out-about-upcoming-conferences-conventions-and-trade-shows-in-design-publishing-and-elearning/answer/Simon-Willison"&gt;Where can I find out about upcoming conferences, conventions, and trade shows in design, publishing, and elearning?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Our site, Lanyrd, is a crowdsourced directory of conferences and professional events. We're extremely strong in areas such as Mobile, Web Design and User Experience, but we also have listings for Publishing and E-Learning. Try these pages:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;a href="http://lanyrd.com/topics/e-learning/"&gt;E-Learning conferences&lt;/a&gt;&lt;/span&gt; on Lanyrd&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href="http://lanyrd.com/topics/publishing/"&gt;Publishing conferences&lt;/a&gt;&lt;/span&gt; on Lanyrd&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href="http://lanyrd.com/topics/design/"&gt;Design conferences&lt;/a&gt;&lt;/span&gt; on Lanyrd&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;We also try to keep track of open calls for proposals: &lt;span&gt;&lt;a href="http://lanyrd.com/calls/"&gt;Calls for participation&lt;/a&gt;&lt;/span&gt; - but our data is only as good as the information that has been added by our community. We'll be working to make our calls for papers functionality more visible (and hence more populated) in the future.

&lt;p&gt;If you sign in to the site with Twitter we'll show you events that the people you follow are attending or speaking at, which could work well as an alternative to just browsing our listings by topic.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/conferences"&gt;conferences&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/conference"&gt;conference&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="conferences"/><category term="design"/><category term="quora"/><category term="conference"/></entry><entry><title>What would be the best design conference to attend in 2013?</title><link href="https://simonwillison.net/2013/Feb/7/what-would-be-the/#atom-tag" rel="alternate"/><published>2013-02-07T11:10:00+00:00</published><updated>2013-02-07T11:10:00+00:00</updated><id>https://simonwillison.net/2013/Feb/7/what-would-be-the/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-would-be-the-best-design-conference-to-attend-in-2013/answer/Simon-Willison"&gt;What would be the best design conference to attend in 2013?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's a pretty tricky question to answer... there are a lot of excellent UX  conferences around (we're listing &lt;span&gt;&lt;a href="http://lanyrd.com/topics/user-experience/"&gt;69 upcoming UX events &lt;/a&gt;&lt;/span&gt;on Lanyrd at the moment, and more get added frequently). A few things you should consider:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Where are you based, and how far are you willing to travel?&lt;/li&gt;&lt;li&gt;Are you interested primarily in learning things or in meeting relevant people?&lt;/li&gt;&lt;li&gt;What's your budget?&lt;/li&gt;&lt;li&gt;Are you looking for a single day event or something longer?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In terms of UX there are more academic events (&lt;span&gt;&lt;a href="http://lanyrd.com/2013/chi/"&gt;ACM CHI&lt;/a&gt;&lt;/span&gt;), more commercial events (the &lt;span&gt;&lt;a href="http://lanyrd.com/series/an-event-apart/"&gt;An Event Apart&lt;/a&gt;&lt;/span&gt; series, &lt;span&gt;&lt;a href="http://lanyrd.com/2013/uxlondon/"&gt;UX London&lt;/a&gt;&lt;/span&gt;), or events like &lt;span&gt;&lt;a href="http://lanyrd.com/2013/iasummit/"&gt;IA Summit&lt;/a&gt;&lt;/span&gt; that bridge the two worlds.

&lt;p&gt;There are also an increasing number of smaller one-two day events dotted all over the map - events like &lt;span&gt;&lt;a href="http://lanyrd.com/2013/ux-hong-kong/"&gt;UX Hong Kong 2013&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a href="http://lanyrd.com/2013/conveyux/"&gt;Convey UX&lt;/a&gt;&lt;/span&gt; in Seattle, &lt;span&gt;&lt;a href="http://lanyrd.com/2013/uxmunich/"&gt;UX Munich&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a href="http://lanyrd.com/2013/uxmad/"&gt;UXMad 2013&lt;/a&gt;&lt;/span&gt; in Madison, &lt;span&gt;&lt;a href="http://lanyrd.com/2013/uxlx/"&gt;UX Lx&lt;/a&gt;&lt;/span&gt; in Lisbon...&lt;/p&gt;

&lt;p&gt;Sorry this isn't a direct answer to the question, but the truth is that there's a whole bunch of factors in picking the right event for your time and budget.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/conferences"&gt;conferences&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ui"&gt;ui&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ux"&gt;ux&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="conferences"/><category term="design"/><category term="ui"/><category term="quora"/><category term="ux"/></entry><entry><title>Which sites have the best URL design?</title><link href="https://simonwillison.net/2012/May/31/which-sites-have-the/#atom-tag" rel="alternate"/><published>2012-05-31T09:08:00+00:00</published><updated>2012-05-31T09:08:00+00:00</updated><id>https://simonwillison.net/2012/May/31/which-sites-have-the/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/Which-sites-have-the-best-URL-design/answer/Simon-Willison"&gt;Which sites have the best URL design?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;GitHub's URL design is fantastic - it's a virtually flawless mapping of Git semantics to URL space. Their basic URL structure is excellent, but they also have a bunch of neat URL hacks going on. Here are a few of my favourites:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;https://github.com/django/django/compare/4553f511557052d6f18811807ae6136f81fa86a3...master  - compare view between commits, branches or tags&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href="https://github.com/django/django/blob/314d82a94e2d4270b6ec8aa4b3fc2e8ebc404f08/AUTHORS#L36-38"&gt;https://github.com/django/django...&lt;/a&gt;&lt;/span&gt; - Place #L36-38 at the end of the URL to highlight those lines of code&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;You can read more about GitHub's approach to URL design on Kyle Neath's blog here: &lt;span&gt;&lt;a href="http://warpspire.com/posts/url-design/"&gt;http://warpspire.com/posts/url-d...&lt;/a&gt;&lt;/span&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/urls"&gt;urls&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="design"/><category term="urls"/><category term="quora"/></entry><entry><title>What is the best design conference in the midwest?</title><link href="https://simonwillison.net/2012/Apr/30/what-is-the-best/#atom-tag" rel="alternate"/><published>2012-04-30T10:19:00+00:00</published><updated>2012-04-30T10:19:00+00:00</updated><id>https://simonwillison.net/2012/Apr/30/what-is-the-best/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-is-the-best-design-conference-in-the-midwest/answer/Simon-Willison"&gt;What is the best design conference in the midwest?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you're looking for a general UX/web design event, the An Event Apart series are excellent - they tour various American cities including Chicago from August 27-29. &lt;span&gt;&lt;a href="http://aneventapart.com/2012/chicago/"&gt;http://aneventapart.com/2012/chi...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;There are a bunch of UX events coming up in the midwest - I've not been to any of them so I can't make a recommendation, but they all look very good on paper - Confab is a Content Strategy event in Minneapolis in mid-May, Midwest UX is in Columbus (31 May to 2nd June), and UXMad is in in Madison in July.&lt;/p&gt;

&lt;p&gt;We've got a good directory of upcoming conferences in the Midwest here: &lt;span&gt;&lt;a href="http://lanyrd.com/places/midwestern-usa/"&gt;http://lanyrd.com/places/midwest...&lt;/a&gt;&lt;/span&gt; - you can search it or filter by topic down the right hand side. Hope you find it useful!&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/conferences"&gt;conferences&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="conferences"/><category term="design"/><category term="quora"/></entry><entry><title>What are the best design conferences or meetups in Switzerland?</title><link href="https://simonwillison.net/2011/Jan/25/what-are-the-best/#atom-tag" rel="alternate"/><published>2011-01-25T16:47:00+00:00</published><updated>2011-01-25T16:47:00+00:00</updated><id>https://simonwillison.net/2011/Jan/25/what-are-the-best/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-are-the-best-design-conferences-or-meetups-in-Switzerland/answer/Simon-Willison"&gt;What are the best design conferences or meetups in Switzerland?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I haven't been myself, but Lift has an excellent reputation:&lt;/p&gt;

&lt;span&gt;&lt;a href="http://www.liftconference.com/lift11"&gt;http://www.liftconference.com/li...&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;a href="http://lanyrd.com/2011/lift-11/"&gt;http://lanyrd.com/2011/lift-11/&lt;/a&gt;&lt;/span&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/conferences"&gt;conferences&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="conferences"/><category term="design"/><category term="quora"/></entry><entry><title>What are the best free resources to begin learning UX design?</title><link href="https://simonwillison.net/2011/Jan/9/what-are-the-best/#atom-tag" rel="alternate"/><published>2011-01-09T13:56:00+00:00</published><updated>2011-01-09T13:56:00+00:00</updated><id>https://simonwillison.net/2011/Jan/9/what-are-the-best/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-are-the-best-free-resources-to-begin-learning-UX-design/answer/Simon-Willison"&gt;What are the best free resources to begin learning UX design?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We're collecting videos and slides from conference sessions covering user experience on Lanyrd - here's 10 videos and 14 slide decks:&lt;/p&gt;

&lt;span&gt;&lt;a href="http://lanyrd.com/topics/user-experience/video/"&gt;http://lanyrd.com/topics/user-ex...&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;a href="http://lanyrd.com/topics/user-experience/slides/"&gt;http://lanyrd.com/topics/user-ex...&lt;/a&gt;&lt;/span&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ui"&gt;ui&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ux"&gt;ux&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="design"/><category term="ui"/><category term="quora"/><category term="ux"/></entry><entry><title>24 ways: Extreme Design</title><link href="https://simonwillison.net/2010/Dec/10/extreme/#atom-tag" rel="alternate"/><published>2010-12-10T10:08:00+00:00</published><updated>2010-12-10T10:08:00+00:00</updated><id>https://simonwillison.net/2010/Dec/10/extreme/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://24ways.org/2010/extreme-design?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A 24ways %2824 ways%29"&gt;24 ways: Extreme Design&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Hannah Donovan on the design process that has evolved from multiple /dev/fort expeditions.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/devfort"&gt;devfort&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/process"&gt;process&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/recovered"&gt;recovered&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hannahdonovan"&gt;hannahdonovan&lt;/a&gt;&lt;/p&gt;



</summary><category term="design"/><category term="devfort"/><category term="process"/><category term="recovered"/><category term="hannahdonovan"/></entry><entry><title>What are the underlying, unspoken values of TED?</title><link href="https://simonwillison.net/2010/Dec/7/what-are-the-underlying/#atom-tag" rel="alternate"/><published>2010-12-07T16:50:00+00:00</published><updated>2010-12-07T16:50:00+00:00</updated><id>https://simonwillison.net/2010/Dec/7/what-are-the-underlying/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-are-the-underlying-unspoken-values-of-TED/answer/Simon-Willison"&gt;What are the underlying, unspoken values of TED?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Not unspoken, but the ten commandments they send out to their speakers are pretty interesting: &lt;span&gt;&lt;a href="http://www.ted.com/pages/360"&gt;http://www.ted.com/pages/360&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ideas"&gt;ideas&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/technology"&gt;technology&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ted"&gt;ted&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="design"/><category term="ideas"/><category term="technology"/><category term="quora"/><category term="ted"/></entry></feed>