3916 stories
·
3 followers

Thinking Outside The Box: Digital Design In The AI Era

1 Share

This article is a sponsored by MacPaw

The phrase “artificial intelligence” has many excited, especially those in tech. But for those of us in creative fields like digital art and design, AI can be more concerning than it is exciting.

AI-generated art, videos, and images have flooded the internet, raising questions about whether more companies will turn to tools like OpenAI’s Dall-E, Midjourney, Leonardo.ai, and more, rather than employing human artists. What’s more, the fact that these AI models are trained on real artists’ work without their consent leaves many feeling as if they have no choice but to accept AI into their work and lives.

In a digital world increasingly dominated by faceless AI chatbots, agents, and features, it can be easy to get overwhelmed by all the technology. AI will certainly play a huge role in reshaping many industries, including design. We can’t deny this. But at the same time, humanization, empathy, and having a person at the wheel have never been more important.

Rather than viewing AI as something that replaces human creativity, we at MacPaw saw an opportunity to explore how we could make AI feel more personal and accessible — all the while keeping humans at the center of the experience. That led us to rethink how AI assistants are created.

The Concept Of A New AI Assistant

Traditional AI assistants like Claude and ChatGPT typically take the form of a conversational textbox or webpage on screen, as this is how users have interacted with their devices. It’s comfortable and familiar. While extremely useful for a variety of tasks, interacting with these AI assistants can feel transactional and technical.

Using the same textbox format across all AI assistants does provide consistency. But we wanted to create a new, more personal and differentiated experience for users. But what format would be best? Even if we change how an AI tool looks, it still needs to be useful and intuitive to use.

As humans, it’s easier to understand and connect with things that resemble us. This is why we often find ourselves drawn to things like animals and characters: they have traits that we recognize within ourselves. Understanding this, we saw an opportunity to combine these values: utility and personality.

The Importance Of Character In Design

Enter Eney: a new proactive AI assistant. MacPaw didn’t want Eney to simply be another AI tool for users, but rather one that proactively assists within a user’s workflow. The vision was to help users connect with Eney more easily than with other AI tools, so we decided to create a character users could interact with. We wanted Eney to be expressive, friendly, and to emote as humans do. But we needed to strike an important balance: making Eney cheerful without it being overly goofy or childish.

This is where human animation and intervention played a critical role. While challenging, it was crucial because an overloaded character UI could turn users off and make navigating Eney difficult. To avoid this, the design team chose to create a select set of emotions and gestures for Eney to express, ensuring that its expressions conveyed useful information. For example, when working on a task, Eney’s figure resembles a loading icon. To do this, we worked to reduce Eney’s on-screen movement to make sure it wasn’t distracting or excessive.

After exploring a few different shapes and styles for Eney, we settled on a circular figure, as it felt the most approachable. It was simple and helped create the feeling of a calm, floating digital companion, rather than another rigid interface element on a user’s desktop. Eney’s minimal face design also plays an important role in connecting with the user. Its eyes are the main emotional connector — a key feature in showing emotions without being cartoonish.

The color choice for Eney was also important. Many AI assistants and companies use blue in their products, as it’s typically associated with intelligence. Blue is a great color, but we wanted Eney to stand out. We still wanted the color to be warm and inviting while slightly more visually stimulating, which led us to choose the color pink. Among dozens of other AI products that choose a more blue aesthetic, Eney was designed to catch a user’s eye and stand out in their mind (and on their screen).

All in all, we wanted to create a character that was present but not attention-seeking; a warm and supportive digital helper that enhances a user’s workflow rather than distracts from it. Eney’s character gives personality to otherwise invisible processes.

Artists In The AI Era

While those who aren’t design professionals may assume there wasn’t much significance behind Eney’s character creation, this couldn’t be further from the truth. Like many other products, all these elements — style, design, emotion, size, name, and more — were intentionally chosen, not by machines but by humans.

Even though AI has streamlined many design processes, namely enabling faster design, there are still many things it can’t do well. Even when designing Eney, while technology supported the process, human designers controlled every step and decision.

As designers, it’s more important than ever to have good judgment, artistic direction, integrity, and emotional sensitivity when working in the field. Technology like AI can help us work faster, but it can’t replace the values that inspire and shape our work.

What’s more, while anyone can easily generate something by typing a prompt into an AI image tool, there’s a true beauty and talent when intentionally crafting something through manual design.

As designers, we shouldn’t stray away from the latest tools. Rather, we should learn them and see how they could potentially help us within our creative workflows. Personally, I like to use AI tools such as Perplexity and ChatGPT for research purposes in the early stages. However, we need to remember that they’re just that: tools. At the end of the day, technology like AI cannot, and should not, replace human artistry. It should help us express our visions, not replace us entirely.

If there’s one thing to take away from this piece, it’s that curiosity helps build taste over time, and taste becomes more valuable, not less, in the AI era.



Read the whole story
emrox
11 hours ago
reply
Hamburg, Germany
Share this story
Delete

Does every question mark deserve a Betteridge?

1 Share

To blog is to get dunked on. I accept this. I even sometimes wonder if I should be grateful, as I suspect my willingness to get dunked on may represent a kind of comparative advantage. (You can tell yourself that if you try to placate the haters, you’ll just ruin things for people who like you. But how do you feel when you’re staring down barrel of a 127 comment thread full of people debating how it’s possible that you’re such an idiot?)

Still, there’s one particular species of dunking that puzzles me. For context, Betteridge’s law states:1

Any headline that ends in a question mark can be answered by the word no.

This is often employed as a sick burn, as in, You titled your article ‘Is this the world’s first gay caveman?’ because it’s not the world’s first gay caveman but you wanted it to be, because you want attention, you are so bad, har-har.

But I don’t quite understand the rules. Can someone explain the rules?

Question 1: Are question marks in titles always bad?

I’m just checking. I suppose I could see the logic, e.g. if you strongly feel that the bottom line should always come right up front. But I’m pretty sure that’s not the rule, because “this title used a question mark” is not regarded as a sick burn.

Question 2: Are question marks only OK if the essay ends with a full-throated “yes”?

Sometimes it does seem like this is the rule. But it’s strange. If it were universally enforced, we could all mentally convert “Do blue-blocking glasses improve sleep?” into “Yes, blue-blocking glasses really do improve sleep!” But then, of what use was the question mark? Why not just say they’re always bad?

If we’re going to allow questions that are actual questions, then it has to be possible for the answer to sometimes be something other than yes. On the other hand…

Question 3: Is Betteridge’s law useful at all?

I think so. At minimum, you can think of it as a convenient label for this theory:

  1. Traditionally, news articles are written with the bottom line up front.
  2. Traditionally, news articles have incentives to make a clear affirmative statement in the headline.
  3. So if a news article uses a question, that’s because they couldn’t justify making a clear affirmative statement.

I don’t think this theory is 100% accurate. But it’s accurate enough to deserve a name. (On the whole, more theories should have names.) Still, Betteridge’s law isn’t usually invoked as a neutral observation about the forces that led to a given title. It’s usually invoked as a dunk. So…

Question 4: Is Betteridge dunking ever appropriate?

Again, I think it is. Here are some of the best/worst examples from John Rentoul’s book, “Questions to Which the Answer Is No!”:

  • “Will Guam capsize?”
  • “Is Osama Bin Laden in Chicago?”
  • “Did Jesus foresee the US Constitution?”
  • “Des smartphones bientôt équipés d’airbags?”

I think we can agree something is wrong with these. But what, exactly?

Question 5: Is it central that the answer is “no”?

Consider these made-up titles:

  • “Is the Pope still Catholic?”
  • “Do you need to sleep every day?”
  • “Did Lincoln have personal qualms about slavery?”
  • “Did the Rubicon even exist back when Caesar supposedly crossed it?”

These are anti-Betteridges. The answer is yes, but the title is irritating in the same way: It gives the impression of a live debate when none exists.

Question 6: What’s really going on here?

I think it’s pretty clear. Consider the title:

Is aspartame bad for you?

If you understood it to be a settled question that aspartame is safe, and the article ultimately concludes that aspartame is safe, then you might find that title annoying. On the other hand, if you understood it to be settled that aspartame is bad for you, and the article confirms that yes indeed it is bad for you, then you also might find that title annoying.

The answer is immaterial. What’s irritating is when a title suggests a novel, interesting possibility that the article does not substantiate as worthy of attention.

Question 7: So what’s the problem?

Here’s a proposition: The modern internet rewards people for being overconfident. I don’t know if you’ve noticed, but people with blogs are not constrained by the norms of traditional newspapers. On the contrary, if you start a blog, you will soon learn that the best way to get attention is to write spicy aggressive titles like, “No, creatine does not make you smarter despite what all the stupid dumb mouth-breathing supplement hucksters may tell you.”

Now, I do think you should say what you actually believe. If you truly are that confident, I want you to tell me, not bullshit me by pretending to be neutral.

However, the internet corrupts all of us. Many people seem to start out with a public persona that is careful and measured and calm. But over time, they’re gradually sculpted by the Reward Function into something quite different. The degree this happens depends on your personality, where you’re competing for attention2 and how much you try to resist. But I don’t think anyone is truly above this.

Still, we should try to resist. My favorite kind of essay is, “Lucid examination of all sides of an issue which finds some evidence pointing in various directions and doesn’t reach a definitive conclusion because the world is complicated.” And I think the fundamental goal of a title should be to accurately signal the contents. But how is such an essay supposed to signal what it is, if not by using a question?

Question 8: What should a title do?

One theory is that question titles are sort of like lists: A thing with strong fundamental merits that has been rendered suspicious by abuse. Under this theory, we should push back against all the Betteridgeing and insist that question titles are fine when the question is genuinely open, regardless of the answer, and that people are wrong to Betteridge unless the question mark is being abused.

As far as I can tell, that’s the only internally consistent theory that doesn’t amount to saying that question titles should be forbidden. A slightly more conciliatory version would be that if you use a question mark, it’s your responsibility to demonstrate that it’s a real question, not something you made up.

I lean towards that theory. But part of me—a minority—thinks that perhaps question titles should be effectively forbidden. I thought I’d do a little reductio ad absurdum by trying to give this post an accurate non-question title. The best things I could think of were, “Hesitantly against over-broad Betteridge dunking” and “I weakly think excessive Betteridge dunking disincentivizes fairly examining all sides of an issue.” At first, I thought those were amusingly terrible. But are they, really?

PS. Was Rentoul’s book correct to list, “Should we clone Neanderthals?” as an example of a question to which the answer is no?

  1. Implicitly, this applies only to yes/no questions. “How long should you brew your tea?” should not be answered with “no”. 

  2. Hi Twitter. 



Read the whole story
emrox
11 hours ago
reply
Hamburg, Germany
Share this story
Delete

Meaning of Life

1 Share

Meaning of Life

And more cats.

Read the whole story
emrox
16 hours ago
reply
Hamburg, Germany
Share this story
Delete

DOOM on regex - find & replace as a computer

1 Share

one operation: global find & replace

DOOM, computed by find-and-replace

A computer whose only instruction is a global regex substitution, applied over and over to one long string. That turns out to be enough to run DOOM.

the machine painting E1M1, with the actual substitution rules firing beside it

The machine painting E1M1; the green pixels are the ones the current substitutions are writing.

13 994 067substitutions to render this frame

544rewrite rules, fixed and hashed before the run

96.6 MBmachine state: a single string

~80 000/ssubstitutions per second (PCRE2 with JIT; clip run, per core)

What is going on here

The whole machine is one long string of 96.6 MB. Registers, RAM, the framebuffer, the DOOM engine compiled to a custom instruction set, even the WAD file: all of it lives in that string as plain text. A driver applies a fixed, ordered list of find-and-replace rules to it; whichever rule matches first fires exactly once, and that counts as one step. No other computation is hiding anywhere: no interpreter, no host-side arithmetic. Take the rules away and all that is left is an ordinary text file.

This works because iterated string rewriting is Turing-complete: it is a Markov algorithm, one of the classic 1950s models of computation. The 544 rules implement a small 32-bit CPU whose adder is a 512-entry lookup table with the carry threaded through capture groups, whose memory access jumps an exact number of characters assembled from the digits of the address, and whose instruction fetch lands on the current opcode the same way, guided by the program counter. DOOM itself is compiled to that CPU with 8cc and ELVM on top of the doomgeneric port, in BFDoom's footsteps.

Every step is verified. A reference emulator written in Python executes the same instruction set, and after every single substitution the string has to match the emulator's encoded state byte for byte. On top of that, the SHA-256 of the rendered frame matches a natively compiled DOOM, so three independent implementations keep arriving at the same bytes.

A hundred frames of actual gameplay

These are frames 160 through 259 of the built-in timedemo: the player grabs the armor, picks up the shotgun, and the demons attack. Getting there took about 1.25 billion substitutions, and every one of the 100 frames is byte-identical to the native build. Drag the slider to scrub.

12 fps playback | computed at about 3 minutes per frame on five machines in parallel

Watch the machine think

These are 28 real recorded substitutions, the ones that execute the first instructions of a small test program (MOVI, ADD, a store into the framebuffer, MUL). Red marks the text a rule replaced and green marks what it wrote instead. The full string is 621 066 characters long, and you are looking at roughly the first hundred of them.

mul_step_0 pass 17/28 | len 621.079

before

RVM1|ST:run|PH:3|CI:660100000000|PC:00000005|MF:000000000|R0:00010001|R1:00000003|R2:000000d7|R3:

after

RVM1|ST:run|PH:3|CI:660100000000|PC:00000005|MF:100000000|R0:00010001|R1:00000003|R2:000000d7|R3:

MUL runs as a series of micro-phases: a transient |MF: field appears in the header to hold the accumulator while Horner steps multiply the operands nibble by nibble through the #T table, and the field vanishes as soon as the result lands in the register.

Anatomy of a rule

This is a real rule from the set, the one that executes STOREI into flat memory. Hover over the parts to see what each of them does. The scary-looking jump in the middle is how the machine addresses memory: it skips an exact number of characters computed from the digits of the address, using conditional groups arranged as a binary tree.

rule storei_n: write a register into memory at an immediate address

ARVM1|ST:run|PH:0|CI:(?<ci>23(?<d>[0-7]).00(?>(?=[4-7c-f])(?<na52>)|)(?>(?=[2367abef])(?<na51>)|)(?>(?=[13579bdf])(?<na50>)|)[0-6]...(?=...R(?P=d):(?<v>.{8}))(?<pre>(?s:.{47408})(?(na52)(?s:.{65535}x512)|)(?(na51)(?s:.{65535}x256)|)...).{8}

Hover over a highlighted part of the pattern.

Try it yourself

Here is a tiny version of the same idea, running right in your browser on JavaScript's regex engine: a counter that increments itself by rewriting its own digits. The increment works the same way it does in the big machine, by looking up the next digit in the #D table that lives inside the same string. Press the button and watch which rule fires.

rule matched: inc_last

The finished frame

13 994 067 substitutions later you get frame 60 of the timedemo, and its SHA-256 matches the natively compiled DOOM exactly; not a single character of the frame was produced by anything other than find-and-replace.

the finished frame

Read the whole story
emrox
2 days ago
reply
Hamburg, Germany
Share this story
Delete

Building Personal Software: Crafting Your Own Tools for Success

1 Share

I was sitting in a coffee shop this afternoon, nursing a cappuccino and doing a quick triage of the GitHub repositories I maintain. It was supposed to be a quick check-in, but I was surprised to find a pile of issues I hadn’t seen before. They had slipped through the cracks of my notifications.

My immediate reaction wasn’t just annoyance; it was an itch to fix the process. I needed a way to monitor a configurable set of repos and get a consolidated report of new activity—something bespoke. For my smaller projects, I want to see everything. For the big, noisy ones, I only care if I’m assigned or mentioned.

So, I opened up my terminal. I fired up gemini cli and started describing what I needed.

Twenty minutes later, I had a working command-line tool. It did exactly what I described, filtering the noise exactly how I wanted. I ran it, verified the output, and added it to my daily workflow. I closed my laptop and went on with my day.

But on the walk home, I realized something strange had happened. Or rather, something hadn’t happened.

I never opened Google. I never searched GitHub for “activity monitor CLI.” I didn’t spend an hour trawling through “Top 10 GitHub Tools” blog posts, or installing three different utilities only to find out one was deprecated and the other required a subscription.

I just built the thing I needed and moved on.

We are entering the era of Personal Software. This is software written for an audience of one. It’s an application or a script built to solve a specific problem for a specific person, with no immediate intention of scaling, monetizing, or even sharing.

Looking back at my recent work, I realize I’ve been living in this category for a while. In many ways, this is the active evolution of the “Small Tools, Big Ideas” concept I explored earlier this year. Instead of just finding these sharp, focused tools, I’m now building them. Gemini Scribe started because I wanted a better way to write in Obsidian. Podcast Rag exists solely because I wanted to search my own podcast history. My github-activity-reporter from this afternoon? Pure personal necessity. Even adh-cli was just a sandbox for me to test ideas for the Gemini CLI.

We have crossed a threshold where building a bespoke application is often faster—and certainly less frustrating—than finding an off-the-shelf solution that mostly works. The friction of creation has dropped so low that it is now competing with the friction of discovery.

There is a profound freedom in this approach. When you build for an audience of one, the software does exactly what you want and nothing more. There is no feature bloat, no upsell, no UI clutter. You are the product manager, the engineer, and the customer. If your workflow changes next week, you don’t have to file a feature request and hope it gets upvoted; you just change the code. You don’t have to convince anyone else that your problem is worth solving.

But this freedom comes with a new kind of responsibility. When you step outside the walled garden of managed software, you are on your own. If you get stuck, there is no support ticket to file. If an API changes and breaks your tool, you are on the hook to fix it.

There is also the “trap of success.” Sometimes, your personal software is so useful that it accidentally becomes non-personal. Friends ask for it. Colleagues want to fork it. Suddenly, you aren’t just a user anymore; you’re a maintainer. You have to decide if you’re willing to take on the burden of supporting others, or if you’re comfortable saying, “This works for me, good luck to you.”

Not every problem is a nail for this particular hammer, of course. Over time, I’ve started to develop a rubric for what makes for good Personal Software.

The sweet spot is usually glue and logic. If you need to connect two APIs that don’t talk to each other, or parse a messy data export into a clean report, AI can write that script in seconds. My GitHub activity reporter is a perfect example: it’s just fetching data, filtering it against my specific rules, and printing text.

It’s also great for ephemeral workflows. If you have a task you need to do fifty times today but might never do again—like renaming a batch of files based on their content or scraping a specific webpage for research—building a throwaway tool is vastly superior to doing it manually.

Another fantastic category is quick web applications. We used to think of web apps as heavy projects requiring frameworks and hosting headaches. But modern platforms like Google Cloud Run or Vercel have made deployment trivial. Tools like Google AI Studio take this even further—offering a free “vibe coding” platform that can take you from a rough idea to a hosted application in minutes. My boxing workout app is a prime example: I didn’t write a line of infrastructure code; I just described the workout timer I needed, and it was live before I even put on my gloves.

Where Personal Software falls short is in infrastructure and security. I wouldn’t build my own password manager or roll my own encryption tools, no matter how good the model is. The stakes are too high, and the “audience of one” means there are no other eyes on the code to catch critical vulnerabilities. Similarly, if a problem requires a complex, interactive GUI or high-availability hosting, the maintenance burden usually outweighs the benefits of customization.

Despite the downsides, I find this shift fascinating. For decades, software development was an industrial process—building generic tools for mass consumption. Now, it’s becoming a craft again. We are returning to a time where we build our own tools, fitting the handle perfectly to our own grip.

So, I want to turn the question over to you. What are you building just for yourself? Are there small, nagging problems you’ve solved with a script only you will ever see? I’d love to hear about the kinds of personal software you’re creating in this new era. Let me know in the comments or reach out—I’m genuinely curious to see what handles you’re crafting.

Read the whole story
emrox
2 days ago
reply
Hamburg, Germany
Share this story
Delete

Forever

1 Share

Forever

Oh, Happy Bear.

Read the whole story
emrox
2 days ago
reply
Hamburg, Germany
Share this story
Delete
Next Page of Stories