Additionally, they took down all of their accounting articles without notice. They had valuable summaries on various tax topics. Thankfully, Wayback Machine has archives of my bookmarks.
All the more reason to self-host your own archived versions of bookmarks...
is there an easy solution for this? I recently found myself looking through old bookmarks from a long previous project and only about 1/3 worked and it made me sad.
> Oh, and in 6 months the unintuitive and confusing concept needs to be completely changed into - surprise, surprise - a completely different but equally unintuitive and confusing concept.
But you have to keep the old way of working exactly the same, and the data can't change, but also needs to work in the new version as well. Actually show someone there's two modes, and offer to migrate their data to version 2? No way - that's confusing! Show different UI in different areas with the same data that behaves differently based on ... undisclosed-to-the-user criteria. That will be far less confusing.
In many problem spaces, software developers are only happy with interfaces made for software developers. This article diving into the layers of complex logic we can reason about at once perfectly demonstrates why. Developers ‘get’ that complexity, because it’s our job, and think about GUIs as thin convenience wrappers for the program underneath. To most users, the GUI is the software, and they consider applications like appliances for solving specific problems. You aren’t using the refrigerator, you’re getting food. You’re cooking, not using the stove. The fewer things they have to do or think about to solve their problem to their satisfaction, the better. They don’t give a flying fuck about how software does something, probably wouldn’t bother figuring out how to adjust it if they could, and the longer it takes them to figure out how to apply their existing mental models UI idioms to the screen they’re looking at, the more frustrated they get. Software developers know what’s going on behind the scenes so seeing all of the controls and adjustments and statuses and data helps developers orient themselves save figure out what they’re doing. Seeing all that stuff is often a huge hindrance to users that just have a problem they need to solve, and have a much more limited set of mental models and usage idioms they need to use figuring how which of those buttons to press and parameters to adjust. That’s the primary reason FOSS has so few non-technical users.
The problem comes in when people that aren’t UI designers want to make something “look designed” so they start ripping stuff out and moving it around without understanding how it works affect different types of users. I don’t hear too many developers complain about the interface for iMessage for example despite having a fraction of the controls visible at any given time, because it effectively solves their problem, and does so easier than with a visible toggle for read receipts, SMS/iMessages, text size, etc etc etc. It doesn’t merely look designed, it it’s designed for optimal usability.
Developers often see an interface that doesn’t work well for developers usage style, assume that means it doesn’t work well, and then complain about it among other developers creating an echo chamber. Developers being frustrated with an interface is an important data point that shouldn’t be ignored, but our perspectives and preferences aren’t nearly as generalizable some might think.
I'm not particularly bothered by non-developer UI. I'm bothered by the incessant application of mobile UI idioms to desktop programs (remember when all windows programs looked somewhat similar?), by UI churn with no purpose, by software that puts functionality five clicks deep for no reason other than to keep the ui 'minimal', by the use of unclear icons when there's room for text (worse, when it's one of the bare handful of things with a universally-understood icon and they decided to invent their own), by UIs that just plain don't present important information for fear of making things 'busy'. There's a lot to get mad about when it comes to modern UIs without needing to approach it from a software developer usage style perspective.
You're making a lot of assumptions about who's doing what, what problems they're trying to solve by doing it, and why. The discipline of UI design is figuring out how people can solve their problems easily and effectively. If you have advanced users that need to make five mouse clicks to perform an essential function, that's a bad design and the chance of that being a UI design decision is just about zero. Same thing with icons. UI design, fundamentally, is a medium of communication: do you think it's more likely a UI designer-- a professional and likely educated interactivity communicator-- chose those icons, or a developer or project manager grabbing a sexy looking UI mockup on dribble and trying to smash their use case into it?
Minimalism isn't a goal-- it's a tool to make a better interface and can easily be overused. The people that think minimalism is a goal and will chop out essential features to make something "look designed" are almost always developers. Same thing with unclear icons. As someone with a design degree that's done UI design but worked as a back-end developer for a decade before that, and worked as a UNIX admin off and on for a decade before that, I am very familiar with the technical perspective on design and it's various echo-chamber-reinforced follies.
It's not like all UI designers are incredibly qualified or don't underestimate the importance of some particular function within some subset of users, and some people that hire designers don't realize that a graphic designer isn't a UI designer and shouldn't be expected to work as one. But 700 times out of 1000, that's something dev said "this is too annoying to implement" or some project manager dropped it from the timeline. Maybe 250 of those remaining times, the project manager says "we don't need designers for this next set of features, right? Dev can just make it look like the other parts of the project?"
Developers read an edward tufte book, think they're experts, and come up with all sorts of folk explanations about what's happening with a design and why people are doing it, then talk about it in venues like this with a million other developers agreeing with them. That does a whole lot more damage to UIs in the wild than bad design decisions made by designers.
You seem to think I'm attacking UI designers. I'm not. I think software would be a lot better with professional UI designers designing UIs.
edit: I am making a lot of assumptions. I'm assuming that most UIs aren't really designed, or are 'designed' from above with directions that are primarily concerned about aesthetics.
+1 to all this. And when did it become cool to have icons that provide no feedback they've been clicked, combined with no loading state? I'm always clicking stuff twice now because I'm not sure I even clicked it the first time.
> That’s the primary reason FOSS has so few non-technical users.
Yeah, citation needed. If your argument that 'non-technical users' (whatever that is - being technical is not restricted to understanding computers and software deeply) don't use software that exposes a lot of data on its internals as exemplified by FOSS having few 'non-technical users' meaning people who are not software developers, this is just false. There are entire fields where FOSS software is huge. GIS comes to mind.
Normally in this rant I specifically note that non-software technical people are still technical. For genuinely non-technical software, what are the most popular end-user facing FOSS-developed applications? Firefox, signal, blender, Inkscape, Krita maybe… most of those are backed by foundations that pay designers and in Mozilla’s case, actually do a ton of open usability research. I don’t believe Inkscape does but they do put a ton of effort into thinking about things from the user workflow perspective and definitely do not present all of the functionality to the user all at once. Blender, at first, just made memorize a shitload of shortcuts but they’ve done a ton of work figuring out what users need to see in which tasks in different workflows and have a ton of different purpose-built views. For decades, Gimp treated design, workflow and UI changes like any other feature and they ended up with a cobbled-together ham fisted interface used almost exclusively by developers. You’ll have a hard time finding a professional photographer that hasn’t tried gimp and an even harder time finding one that still uses it because of the confusing, unfocused interface. When mastodon stood a real chance of being what Bluesky is becoming, I was jumping up and down flailing my arms trying to get people to work on polishing the user flow and figure out how to communicate what they needed to know concisely. Dismissal dismissal dismissal. “I taught my grandmother how federation works! They just need to read the documentation! Once they start using it they’ll figure it out!” Well, they started using it, didn’t have that gifted grandmother-teaching developer to explain it to them, and they almost all left immediately afterwards.
Just like human factors engineering, UI design is a unique discipline that many in the engineering field think they can intuit their way through. They’re wrong and if you look beyond technical people, it’s completely obvious.
I'm trying to learn acceptance: how not to get so angry at despicable UIs.
Although I admit I'm kinda failing. My minor successes have been by avoiding software: e.g. giving up programming (broken tools and broken targets were a major frustration) and getting rid of Windows.
Very curious how Mark Moxon was able to understand and comment so much of the code. Just... a very big fan with a lot of free time?
No idea how this will be formatted, but the level of understanding in the comments is quite deep for just having access to the original source. Or did the original source have this level of comments as well?
How long does a project like this take to comment?
.QQ22
SKIP 2 ; The two hyperspace countdown counters
;
; Before a hyperspace jump, both QQ22 and QQ22+1 are
; set to 15
;
; QQ22 is an internal counter that counts down by 1
; each time TT102 is called, which happens every
; iteration of the main game loop. When it reaches
; zero, the on-screen counter in QQ22+1 gets
; decremented, and QQ22 gets set to 5 and the countdown
; continues (so the first tick of the hyperspace counter
; takes 15 iterations to happen, but subsequent ticks
; take 5 iterations each)
;
; QQ22+1 contains the number that’s shown on-screen
; during the countdown. It counts down from 15 to 1, and
; when it hits 0, the hyperspace engines kick in
Some parts of Elite were documented prior to my project, particularly the procedural generation and ship data blocks. But none of it was documented to this level; it's taken time, lots of it!
I love this game, and I figured it deserved a proper homage. Or, to put it another way, this is a labour of love. :-)
Yeah, it's a bit tricky when the code you are documenting is copyright, and you aren't the copyright owner. Website is one thing, but publishing a book? I suspect that is asking for trouble.
Also, books can't be updated, and I update this stuff all the time...
Thank you! I came at it from the BBC Micro angle, which was the system I grew up with, and I have to say that analysing Elite been a brilliant way to learn about other 8-bit platforms. I’ve documented the NES version and now the Commodore 64, and the Apple II is next.
It’s the retro equivalent of discovering that if you like the Beatles, you’ll probably like the Stones, The Who and Pink Floyd. :-)
Honestly, for me personally and on this specific project with its specific history of copyright issues (look it up!), that would be crossing the line into disrespecting the copyright situation.
Websites are ethereal, in a sense, as they are easy to switch off and hard to copy and distribute. PDFs and books are the opposite. Sure, websites get archived and repos get forked, but I think PDFs and books fall into a different area.
I run these projects very cautiously and very carefully. I don't think publishing a book or PDF containing copyright material is a good idea in this instance, to be honest!
You don't need to be the copyright owner. All you need is a license from the copyright owner. It can't hurt to contact Ian Bell and see what you can negotiate. http://www.iancgbell.clara.net/
Well, exactly. This project is a hobby, and I’d like to try to keep it as my happy place!
Besides, I’ve published PDFs of my travel writing sites, and the thought of trying to keep a code repository, a website and a PDF in sync fills me with dread…
Interesting that, Chris Jordan was part of Acornsoft when the original game was being developed and is also well known for his Hybrid Music System for the BBC Micro, way ahead of its time.
I understand and respect your opinion there. In the spectrum of copyright violation, I might be willing to let my kid install a copy of a game I bought on their own computer, but I would definitely not sell copies of it.
But it’s a massive bummer to me that copyright is preventing someone from publishing their research on a 40 year old game that hasn’t been available for sale in decades. I don’t know exactly where that lands on my moral spectrum, but I put it far closer to the left than to the right, legalities aside.
If you are able to get permission for a game code and then do this sort of analysis as a Literate Program and publish that as a book, you'd be in rather rarified company, and I'd certainly buy a copy.
Seriously, thanks for the details. This was a bit of a pivotal game for me in ... '86 IIRC. It's been interesting to see so much of a following over the decades. Just confirms that whatever was intriguing to me connected with so many other people too!
The comments you pasted in particular are about stuff that makes sense and that someone who wants to fully understand some source code can readily figure out, if they put their mind to it.
It's when things don't make sense that it gets interesting, because then you have to guess the original author's intentions, suspect a bug, question your understanding, or deal with other uncertainties. That's usually when a bunch of question marks start to appear in reverse engineering comments (e.g. "increment xyz???")...
This is not a big list, and these are all pretty subtle aspects of the game. After 4 years of analysis, I think we’re pretty close to understanding pretty much everything, which is nice.
Math problems usually have one right/wrong answer. Many interview 'challenges' have multiple ways of doing something correctly. Without necessarily knowing any more about the context of a problem beyond a few sentences, you work with what you've been given. You can deliver a working solution but if it's not the way they were expecting... you're out of the running.
I've started testing with vultr some because they offer affordable fractional GPUs. I think I had something running for about $60/month with a 'real' GPU. 1/24th a GPU, IIRC, but... better than nothing. DO and linode offer GPU service, but the minimal cost just to get something up is significantly more.
Similar here. Good friend of many years - his mother passed a few years back, then his dad earlier this year. In both cases it was relatively sudden, but the compounding factor is I live 800 miles away. In both cases, I debated whether to go up for the funeral, but one case scheduling was near impossible. In the other... I rationalized that... he'd just be too busy with other family issues, and that was the case. I feel like I still should have gone, but we did catch up in person a couple months later, and he'd had time to process and reflect a bit more. Lots of drama was going on (and still is a bit) so being there in the moment might have been more about me trying to feel like I was doing something ("being there") instead of actually being of any real benefit for his family.
I've only got a couple of other friends that close that I would consider attending their parents' funeral. One parent passed away during covid and there was no service. When that other parent passes, I think I will go, even though we've not seen each other in years. Several states away, again, but I will plan on going.
I get it. I didn't say anything at my grandfather's funeral, although I was this close. I just... didn't. Easier in that moment to stay seated for a few extra seconds, but it bothered me. Years later, at my grandmother's funeral, I spoke. Not long, but I said some of the things I'd wanted to say years earlier, though with the benefit of a bit more hindsight and perspective. But not speaking all those years earlier had bothered me. FWIW, it still does, but a little less than before.