Email or username:

Password:

Forgot your password?
Nate Cull

Protip:

When designing a user interface, imagine some old woman using it, say Margaret Hamilton, and she's clicking your app's buttons and saying to you, as old people do,

"Young whippersnapper, when I was your age, I sent 24 people to the ACTUAL MOON with my software in 4K of RAM and here I am clicking your button and it takes ten seconds to load a 50 megabyte video ad and then it crashes

I'm not even ANGRY with you, I'm just disappointed."

141 comments
Zulgrib

@natecull Well, people don't optimize for resources anymore

Angle

@Zulgrib @natecull Human time is more valuable than computer time in most circumstances. Or at least, thats the way the incentives lean. :/

Zulgrib

@natecull @Angle But if human time is wasted due to waiting result from unoptimized code ?

Angle

@Zulgrib @natecull *Shrugs* As long as it's someone elses time. :P

Markus

@Zulgrib @natecull @Angle I think the usual reasoning is: "Get a better computer then."

Natasha Nox 🇺🇦🇵🇸

@Zulgrib A real shame. Imagine what a current high-end computer would be capable of doing if everything was perfectly optimized straight down to the kernel. You could probably run the personal computing needs of a small city on a single machine. @natecull

🍂
@er1n this is both one of my biggest agony points in UI design and one reason I haven't released SotF :P I can lag it in some cases and it really bugs me because I can't figure out why, not even with flame graphs and profiler timelines
erin 。:゚૮ ˶ˆ ﻌ ˆ˶ ა ゚:。

@ninjawedding i was actually thinking about your scrolling demo when i cc'd you :)

🍂
@er1n oh the scrolling thing, heh

yeah I was really (disproportionately?) happy when that worked the way I wanted it to. I mean it's just scrolling but being able to zoom through tens or hundreds of thousands of items at full framerate and bounded memory is still something I love
cascode

@LottieVixen @ninjawedding @er1n profiler output visualization tool, helps you see what functions and system calls your program is spending the most time on

this, or similar (like what erin linked) :
brendangregg.com/FlameGraphs/c

erin 。:゚૮ ˶ˆ ﻌ ˆ˶ ა ゚:。

@cascode @LottieVixen @ninjawedding the difference with what i posted is that it's very good for monitoring infrequent events

🍂
@cascode @LottieVixen @er1n yep, pretty much that (I got weird lag on this status 🤷 )

first image is an example of a flame graph from the QML profiler; you can see that the majority of total time was spent updating a binding (and, amusingly, there's no sub-operation inside it). you can then look at the timeline to see what that looks like over time, which is useful for analyzing things like "what's causing jank" etc and getting an idea of what that 51.7% of time spent means in terms of frame budget

FlameScope does look cool, I just don't know how to integrate it yet :P
@cascode @LottieVixen @er1n yep, pretty much that (I got weird lag on this status 🤷 )

first image is an example of a flame graph from the QML profiler; you can see that the majority of total time was spent updating a binding (and, amusingly, there's no sub-operation inside it). you can then look at the timeline to see what that looks like over time, which is useful for analyzing things like "what's...
the QML profiler's flame graph running on a sparkline renderer
same application, same dataset, but the timeline view
🍂
@er1n oh huh

that could make it really easy then 🤔

actually I think you told me about this before lol
Mx Lottie 💜:autistic:​🇯🇲ΘΔ

@ninjawedding @cascode @er1n

oh heck this looks awesome, also erm....the delay may be toot.cat fed issues....*sigh*

🍂
@LottieVixen @cascode @er1n yeah the tools are great

though tbh similar tools have been in web browsers for quite a while too :)

actually I'd say that browsers have probably some of the best profiling tools out there right now? next to maybe like Instruments, bespoke profiling tools in game engines, and Telemetry, which I have never used but have seen and it looks sick
@LottieVixen @cascode @er1n yeah the tools are great

though tbh similar tools have been in web browsers for quite a while too :)

erin 。:゚૮ ˶ˆ ﻌ ˆ˶ ა ゚:。

@ninjawedding @LottieVixen @cascode telemetry is theoretically amazing but it's also probably unfathomably expensive, like so expensive that they just say "contact us if you're interested"

🍂
@LottieVixen @er1n @cascode I think you would do fine -- Telemetry's data comes from hooks you write into the code, so they work a lot like print statements

(or so I hear)
🍂
@er1n @LottieVixen @cascode heh yeah -- when I first saw Telemetry in use I was like "oh how much could this be? certainly no worse than CLion"

lol me
Nate Cull

meanwhile the Gemini Guidance Computer team laugh

"you MIT people had 4K of RAM, we had 39 whole bits AND WE WERE GRATEFUL"

en.wikipedia.org/wiki/Gemini_G

Nate Cull

ah, actually they did have 4096... 36-bit words of writeable core RAM. Weird. Was the Gemini computer *bigger* than the Apollo one ????

ibiblio.org/apollo/Gemini.htp

Nate Cull

The Apollo LVDC is the third computer on the ship that never gets any love cos it just ran the engines and wasn't sexy

ibiblio.org/apollo/LVDC.html

Nate Cull

<< and the MIT Instrumentation Labs' antibodies flooded in to destroy the invader with critiques and reports negative of the IBM report. >>

lol programmers then just like today

Nate Cull

Ah! The LVDC had no ROM at all! Good lord. The entire program sat in RAM. Aaaaaaaaaaaa

Nate Cull

<< A so-called "bugger word" has been stuck at the end of each bank—no comments on this terminology, please, since I didn't invent it; when I asked Don Eyles some question that involved them, he somewhat-laconically stated "we called them check sums">>

ibiblio.org/apollo/index.html

Nate Cull

Huh, and if you have ROM and RAM I guess it literally is a Harvard Architecture

ibiblio.org/apollo/BlockIII.ht

I never thought of that before!

Mans R

@natecull Not necessarily, or even typically. It is quite common to have both code and read-only data in ROM while using RAM for read/write data. RAM can also be used to hold code loaded from some type of storage that doesn't permit direct execution.

josef

@natecull john roderick often talks about his ~85 year old mother on his podcasts, and describes how she (as a programmer in the 1950s-1960s) is appalled at pretty much all bugs in computer programs and the blasé attitude developers have, saying something like "back when I worked on those machines we made sure the code was correct before we sent it to anybody, we spent months and years making sure everything was completely correct before any of it was sold"

Michal :verified:

@jk @natecull "months and years", a luxury today's developers do not have

Tim Böttcher

@jk @natecull Back then, though, #programmers were #mathematicians and/or #physicists; nowadays, programmers are people who visited #codecademy and #geeksforgeeks ^^

InsertUser

@jk @natecull back when software developers actually had an engineer's mindset

Cirrus Breeze

@jk @natecull right, but we aren't dealing with rockets most of the time. Unfortunately...

🇸 🇭 🇮 🇳 🇲 🇦 🇮

@jk to be fair, producing software in that manner is how you often end up with user interfaces and feature sets that don't meet the needs or expectations of the end users

there's a reason software development today is largely incremental and iterative, and that reason isn't because coders are lazy or incompetent

Alex@rtnVFRmedia Suffolk UK

@shi @jk

End use and how easy it is to correct errors makes a big difference - its way harder to stop a batch run of bank transactions to fix a bug or to make a site visit to physical equipment, yeet its EPROMS and replace them with the updated firmware.

My car's braking system has a software version number, I would expect this code to have a much higher standard of testing and quality checking than the entertainment system (which locks up and has to be rebooted every so often)

:verified: Jeff Allen

@natecull Actually, the Apollo 11 block II guidance computer had 2k of RAM (core memory) and 32k of ROM. This was a significant upgrade from the previous block I unit that had 1k of RAM (again, core memory) and 24k of ROM.

Even a VIC 20's feeble 3.5k RAM was luxurious by comparison.

Nate Cull

@profoundlynerdy 2K *words*, I believe, and the words were 16 bit.

AskChip

@natecull The programming paradigm I've always loved is this: "The program should always act in the way that is least surprising to the user".

🛄 chitter.xyz

@natecull this is not even far from what would really happen

pesco

@natecull
In fact: the Apollo guidance computer had awesome and groundbreaking UI.

Torb

@natecull This reminds me. I was at a 2 day course in usability by Norman Nielsen Group.

They talked about they where frustrated that devs didn't take them seriously when the pointed out (via usability testing) that a UI was too difficult to use. The devs said "well the users are just not smart enough!".

To prove that the UI really was too difficult to use they did the usability test with rocket scientists from NASA and showed that even they couldn't figure out the UI.

Nate Cull

Huh talk about Margaret Hamilton and there she is!

m.youtube.com/watch?v=ZbVOF0Uk

and there's a million things she hasn't done
but just you wait

dankendirekt

@natecull if the kids these days still printed their code, they'd get to the moon simply by climbing up it

Andrew (bookseller era)

@natecull I love that this post is making the rounds again.

I was reading about Commodore Grace Hopper the other day and it made me think of this post, but I couldn't remember who wrote it.

So, you know, thanks and all that.

Tranny Oakley

@natecull ok, but I was picturing Wicked Witch of the West Margaret Hamilton

Nate Cull

@TrannyOakley Fly my pretties! All the way to the Moon and back!

★ STMAN ★ 🏳️‍🌈

@natecull Real programmers code in assembly language. That’s all.

Dan Fixes Coin-Ops

@natecull The raspberry pi: cheaper than a console game, fits in a pocket, powerful enough to run a full graphical OS, uses 6 watts running full-pelt.

The computer I just had to buy so that my wife could run Android Studio: $500, hundreds of watts, weight in double-digit kilos and big enough to need its own furniture.

One of these is what all computers should look like by now.

Kakki Sobyv

@ifixcoinops @natecull I've been moving to more energy efficient computing (eyes stare off into the distance) since the sheeva plug days, but more recently with the pis + kin

ɹɐǝq ǝɹɐƆ

@natecull I think it makes the most sense to design UI for the majority of people who will use it rather than edge cases. You can spend unlimited resources trying to make a UI that works for people who don't effectively draw intuitive conclusions based on related information, but you'll reach a larger audience by appealing to those who do, because those who do also have the wherewithal to ditch your product for another one that does what they want the way they want.

\\

@natecull heard that in Kitboga voice and it made it even better.

paws.jpg 🇵🇱|🇺🇸
@natecull meanwhile Japanese gamedevs with mostly 16 colors (aside from a few later 256 color games) and in many cases even a NEC v30 (faster 8086):
https://twitter.censors.us/pc98_bot
DELETED

@natecull
I am feeling this in all of my soul 😔

DELETED

@natecull Also on the hardware side, my 85 year old Mom has skin so dry her fingertips don't often get read by on-screen touch sensors, so that's a real clap up the side of the head.

She used to be a nurse in an intermediate care facility, so was at the time very technically competent, but now at 85, if you even move one UI element to another corner, she can't figure it out. Because, basically, she's done thinking. Just wants to use it.

AnAffordableWizard

@perigee @natecull Age can do that alas, my grandmother grew up with a husband who was screwing around with valve computers in the 70s at the CSIRO, so she was technologically literate as heck thanks to the utter jungle of computers and terminals and stuff my grandfather had around the place from the early late 70s onwards

But by the time she hit 90, she could barely operate a phone anymore. Sad, but its the way life goes. Give your brain a hug, it wont be around forever.

buo

@natecull You may enjoy this: righto.com/2019/01/inside-apol -- the author has analyzed and reverse-engineered many of those old but awesome machines

Openhuman

@natecull I allways say small children should interface test them. If they can make of it there is a high chance its intuitive

Murad

@natecull we just need to make this the standard for all UX testing...

Sören

@natecull @ellotheth I would hope Hamilton would be a bit more nuanced on her take. The memory safety of the binary, usability and accessibility of the UI and maintainability of code has increase tremendously.

gemma lynn

@chucker @natecull i mean in this hypothetical designed to make people think harder before they use "design it for an old woman" as UX engineering advice, i imagine that would be exactly her point: despite the usability/accessibility/maintainability improvements made in the last five decades, my button STILL takes ten seconds to load a 50MB video and then crashes. she's even more disappointed than i realized.

Hans Gerwitz

@natecull I have a little Alan Cooper in my head for this.

was B (this is my old account)

@natecull just came across this again, and it is so so good. 💖

R. L. Dane :debian: :openbsd:

@natecull

I'm not yet 50 and I feel the same way, particularly on the web 😓

Colin Lee supports #BLM 🇺🇦

@natecull "When I was your age, we fit entire graphics demos in 256 bytes. Now, even toots won't do that."

youtu.be/Imquk_3oFf4

Shivvi :blobhaj_cathug:

@natecull That's fair. I learned to program on machines with only a few K of memory back in the day. Nothing that would get anyone to the moon of course, I'm not that good... I suspect the furthest people would get on my newbie coding back then was as far as the front door when they run away screaming about bad code.

Natasha Jay now at @tech.lgbt

@natecull

"I was waking up at 6am, 4 hours before we even went to sleep. Designed screens on VT100 and VT220 terminals before you were even *born*... no mouse - and you tell the young people of today that and you know, they won't believe you!"

(needs a broad Yorkshire accent 😂)

lobingera

@natecull I had a UX design crash course once - doing paper prototypes. So if the test person clicks on something you exchange the 'view' etc. This already would let some people think about the 'flow' or 'non-flow' they are about to create ...

Michael T. Richter

@natecull I say this all the time. I didn't send people to the moon, but I did control and monitor power stations in a computer that has less processing horsepower than an average USB hub.

Propedelec

@natecull but aren’t they today just copying and modifying already existing code?

Sly-Little-Fox(xo)

@natecull my interface
<!DOCTYPE html>
<html>
<body>
<button>
</body>
</html>

Oblomov

@natecull
To be fair, the UIs for all the machine involved in sending people you the moon were not exactly the epitome of what would be considered “accessible UX” today, and required extensive training to use. (Yeah, this hardly justifies the bloody and bugs, but it should be kept in mind.)
@aeva

Emma Hunneyball

@natecull I read this is Margaret Hamilton’s voice 🤣

Mark de Vries

@natecull If you are interested in the practical difficulties of computer usage in space during the Mercury-Gemini-Apollo programs, the book Carrying the Fire by Michael Collins is interesting. He was the Command Module pilot during the Apollo 11 Moon mission. He explains extensively the steps they had to take to program their computer for a rendezvous with another spacecraft.

en.wikipedia.org/wiki/Carrying

Shell Bryson

@natecull This, on so many levels. I say this as a web engineer drowning in javascript and css.

Lachlan Hardy

@natecull Had me in the first eighth, not gonna lie…

AnAffordableWizard

@natecull I was about to grumble at you about "why does it have to be an old WOMAN", but then read the Margret Hamilton scolding the UIX for it being slow trash and instead decided to 👍 instead.

She's now my UIX consultant in my head. Though she's far less grumpy than mental Jakob Nielsen.

Paul Marrow 🇪🇺🇬🇧🇦🇹

@natecull I even downloaded that software and I have no idea how to use it.

📄 Mehdi.doc

@natecull strong OK pioneers but boomer nonetheless vibes

Christopher Agocs

@natecull Sometimes I imagine Grace Hopper and her microsecond of wire, just disappointed in the piss-poor job I'm doing shuffling letters around

Telyn

at a place i've worked we had 0 developers with significant front-end expertise (self included) and we ended up adding padding to the bottom of a menu that appears on hover to make sure it works on touch interfaces

we really just.. didn't know what we're doing in that realm, had this massive hoary legacy app, and didn't have the buy-in or expertise to do a front-end rewrite and it's kinda sad

JW prince of CPH

@natecull seriously. I just switched from 20 to 100 Mbit - ask me if anything got 5 times faster...

Gemma 👽

@natecull
The UI’s I make are just beautiful and sweet and nice, and everything works.😌

Then the page goes live, and there’s a billion tracking partner scripts that tell about cookies, open a chat, track what user clicks and loads ”user customised” content. THEN it crashes. 😞

glamouranna (she/her)

@natecull that’s why you need us UXers to test your prototypes with the users

Generic Sadboy 1916

@natecull I have no memory of liking and boosting this, but here we are again in 2022, after the eternal september, and its back.

Im not even mad, infact, i am glad.

Karl

@natecull I just blame the FE team when they mess up implementing my designs

Firehorseart lives!

@natecull

*Laughs in COBOL*

Maybe I'm becoming that type of user.

John Meadows

@natecull One of my mentors in IT used to tell me he wrote his PhD thesis on a computer with 15k of RAM. "You learned pretty quickly how overlays worked!"

Richard Barrell

@natecull I'm briefly glad that I don't know what Margaret Hamilton's voice sounds like because if I could so much as accurately imagine this it would absolutely destroy my soul.

Kjoobe

@natecull but it was fast on my computer. Worked perfectly fine. It is your providers fault that this is slow. 😆 #LameExcuseNo1

Adam Shostack :donor: :rebelverified:

@natecull to be fair, she also got to store programs in custom hardware ropes, which is just not supported on my intel chipset.

Argenis

@natecull @adamshostack it we gotta feed all those tracking systems for ads to make money off those mouse movements and clicks! /s

Григорий Клюшников

This is because in the last ~decade, the majority of (proprietary) software stopped serving users' needs, and instead started serving developers' own ones almost exclusively.

Go Up