HNHacker News
TopNewBestAskShowJobs

masswerk

5,504 karma · joined December 10, 2012

Norbert Landsteiner, Vienna, AT, https://www.masswerk.at
submissionscomments
masswerk··on Ask HN: Share your personal website
https://masswerk.at/

The site covers mostly retro- and classic computing. (Strictly no AI generated content.) Here in convenient format:

  (
    :name "Norbert Landsteiner"
    :site "https://masswerk.at/"
    :blog "https://masswerk.at/nowgobang/"
    :feed "https://masswerk.at/nowgobang/feed.xml" //covers blog only
    :about "https://masswerk.at/info/"             //legal info
    :hnuid "masswerk"
    :bio "web developer and designer, site content is mostly retro- and classic computing."
  )
masswerk··on A4 Paper Stories
Only, I think, a foot is actually a half a cubit (length from elbow to fingertip). So, sort of a misnomer, rounded to the nearest body part.
masswerk··on We recreated Steve Jobs's 1975 Atari horoscope program
Notably, Dave Nutting Associates (Bushnell's former employer, who also distributed Computer Space) had played around with an Intel 4004 in 1974 and then demonstrated (to Bally) a CPU based system with a frame buffer in September, which evolved into the Intel 8080-based board that ran Midway's Gun Fight. Atari would have probably been aware of this (Nutting Associates had filed a patent.) So, something along the lines of Intel 4004 or 8080 machine code, maybe M6800.
masswerk··on Vector graphics on GPU
May require "(2022)" in the title.
masswerk··on We recreated Steve Jobs's 1975 Atari horoscope program
The choice of AppleSoft BASIC for a recreation seems to be somewhat odd and deliberate, and doesn't represent the typical limitations of the time (AppleSoft BASIC does floating point math!): in August 1975, the MOS 6502 hadn't even been announced and the Apple ][ wasn't yet a dream. Even Microsoft 4K BASIC for the Altair hadn't been introduced, yet (this was to happen only later in October.) Meaning, none of the basic technology of choice would have been available.

Something along the lines of Intel 8080 assembly may have been more appropriate, given that the target platform would have probably been a coin-op machine. (Given that "Gun Fight", the first arcade video game utilising a microprocessor, wasn't yet released, even this would have been an ambitious choice. Atari doing research for something that required an ALU may be even more interesting than the involvement of the young Steve Jobs.)

PS: This is just to give some truth to "this is where the hackersnews jerks will say this is an ad". ;-)

masswerk··on Strange.website
Curious detail: the button/widget icons of the browser chrome are composed of multi-layered box-shadows (i.e. one box-shadow definition per pixel or line, concatenated to a sting) of a `:before` pseudo element. (I don't think that I've seen anything alike before.)

Meaning: also no images.

masswerk··on Claude wrote a functional NES emulator using my engine's API
For me on Firefox/macOS it's terribly slow, fails to initialise/resume sound, no keyboard input.
masswerk··on Log level 'error' should mean that something needs to be fixed
Also, warnings for ambiguous results.

For example, when a process implies a conversion according to the contract/convention, but we know that this conversion may be not the expected result and the input may be based on semantic misconceptions. E.g., assemblers and contextually truncated values for operands: while there's no issue with the grammar or syntax or intrinsic semantics, a higher level misconception may be involved (e.g., regarding address modes), resulting in a correct but still non-functional output. So, "In this individual case, there may be or may be not an issue. Please, check. (Not resolvable on our end.)"

(Disclaimer: I know that this is a very much classic computing and that this is now mostly moved to the global TOS, but still, it's the classic example for a warning.)

masswerk··on Icons in Menus Everywhere – Send Help
I'd suggest a simple test: remix menu items and icons and test, if this has significant impact on usability. If not, the icons are just arbitrary decoration and ultimately add clutter.

Referring to the examples provided in the article, I'd suggest that the impact on the Safari app menu should be minimal (so these are non-functional icons), while the impact on the Move & Resize submenu would be devastating and should result in confusion (so these are essential).

If you can remix with minimal impact, don't do icons. (In the case of the app menu, these are apparently meant to add structure, which is already established by other means like menu separators, so you have now two – or, including indentation, three – systems of structure and visual hierarchy that are fighting each other.)

Moreover, if you put icons everywhere, you're forgoing the facility to convey state, like active state checkmarks, since these, instead of standing out and signalling change, would be just drowned in the decorative clutter. (So what's next? Add color and/or animation, like swirling checkmarks?) And this, BTW, is also why the icons in the Move & Resize menu are effective: they are conveying and illustrating state (in terms of a preview), while most of the other menu icons (mostly referring to activities) do not. So, as a rule of thumb: icons referring to state may be useful and even desirable, while icons referring to activities are probably better left out. (And, if you feel the need for something like bullet points to mark your most important menu items, there's probably a deeper problem with your menu structure.)

masswerk··on I failed to recreate the 1996 Space Jam website with Claude
This may be an even greater challenge: analysing a table layout and recreating it in CSS with absolute positioning.
masswerk··on I failed to recreate the 1996 Space Jam website with Claude
Hum, table cells provide the max-width and images a min-with, heights are absolute (with table cells spilling over, as with CCS "overflow-y: visible"), aligns and maybe HSPACE and VSPACE attributes do the rest. As long as images heights exceed the effective line-height and there's no visible text, this should render pixel perfect on any browser then in use. In this case, there's also an absolute width set for the entire table, adding further constraints. Table layouts can be elastic, with constraints or without, but this one should be pretty stable.

(Fun fact, the most amazing layout foot-guns, then: Effective font sizes and line-heights are subject to platform and configuration (e.g., Win vs Mac); Netscape does paragraph spacing at 1.2em, IE at 1em (if this matters, prefer `<br>` over paragraphs); frames dimensions in Netscape are always calculated as integer percentages of window dimensions, even if you provide absolute dimensions in pixels, while IE does what it says on the tin (a rare example), so they will be the same only by chance and effective rounding errors. And, of course, screen gamma is different on Win and Mac, so your colors will always be messed up – aim for a happy medium.)

masswerk··on CSS now has an if() conditional function
Well, historically, styles were first in JS (JS StyleSheets in Netscape 4.0) and were pulled out into CSS. – This is an old man card! ;-)
masswerk··on 30 years ago today "Netscape and Sun announce JavaScript"
Well, having a platform agnostic runtime, you could throw arbitrary code at, was potentially a great deal. It was one of the founding concepts for ARPANET, which never took off, since nobody wanted to run foreign code from the network on their machines. For a platform agnostic runtime, OO may have seemed to fit well, by encapsulating data, handlers and logic into interacting objects. (This is close to the original use case for OO as described by Alan Kay.)

Fun fact: Java was also renamed from formerly Oak.

masswerk··on 30 years ago today "Netscape and Sun announce JavaScript"
Some seems to be server-side (LiveWire), as well, which was a Netscape product long before Node.js, but I'm not sure if this was already available, then. (When was the Netscape Enterprise server launched?)

I'm also not too sure, if LiveConnect (the connection between JS and Java applets and vice versa) was already a thing, when JavaScript was announced. (I think, this came a little later.)

Edit: I've a Netscape JavaScript book from when this was still in beta. (My first reading on the subject.) It does mention applets on a single page and that you may address them per ID via LiveConnect in a single sentence. So this was already implemented, but it wasn't advertised prominently. The book is all about form based examples.

(The applications in this book were the same that were demoed as showcase applications by Netscape on their website – and probably represent a significant part of what these voices reacted to.)

masswerk··on 30 years ago today "Netscape and Sun announce JavaScript"
It's kind of funny to see how the endorsements were talking about rich multimedia integration, when your output options with JavaScript 1.0 were: writing into a textarea, writing into a form input field, or setting the state of other form elements (like checkboxes or select elements) – that's your rich multimedia experience!

Of course, there was the infamous `document.write()`, when the document was loading and the document stream was still open, but this was more of a hack than an interaction model.

masswerk··on 30 years ago today "Netscape and Sun announce JavaScript"
"LiveScript" – all the proprietary Netscape technologies were named "Live…", as in LiveWire, LiveBridge, etc.
masswerk··on AI Is Breaking the Moral Foundation of Modern Society
So, because of certain tech patents, patents and IP are bogus in general? What's the point, then?

(Meaning, if we're making generalisation from worst examples a virtue, there will be hardly an argument left. E.g., as there are buggy programs, LLMs are just yet another bug.)

masswerk··on AI Is Breaking the Moral Foundation of Modern Society
Well, let's say, an alternative history novel, is it just ripping off a history textbook or is there more going on?
masswerk··on AI Is Breaking the Moral Foundation of Modern Society
I think, you're mistaking I.P. and creative effort. Certainly, there must be a reason for people reading, even searching for this stuff, beyond the mention of a well-protected trademark.
masswerk··on Chrome Jpegxl Issue Reopened
Nice example for how a standard, like PDF, can even persuade/force one of the mighty to adopt a crucial bit of technology, so that this may become a common standard in its own right (i.e. "cascading standards").
masswerk··on The internet is no longer a safe haven
To entertain the few humans behind this, I run what I call "HTTP Adventure" on well-known admin addresses.

E.g., https://www.masswerk.at/wp-admin

masswerk··on I’m worried that they put co-pilot in Excel
Our product has many issues. You must pick one and must not discuss any other.
masswerk··on Replacing Parts of Strings in C64 Basic
> Cons: Slightly more memory per entry (each number is stored as 5 bytes internally).

Actually, integer arrays use just 2 bytes per entry (contrary to simple integer variables). And integers are really all what's needed here.

Therefore, using `DIM %R(RC,6)` should come with less overhead.

As for calculating overheads: String variables use 5 byte and the memory required for the actual string (one byte per character). Arrays use 2 bytes for the name and then 2 bytes for a length offset and 1 byte for the width/length per dimension, plus the space required for the individual entries (for integers 2 bytes per entry, for floating point 5 bytes and for strings 3 bytes). So a 2D array uses 2 + (2 + 1) + (2 + 1) = 8 bytes for the header plus the space for the entries.

Regarding performance, mind that arrays come after simple variables in memory and must be relocated (moved) each time, a new simple variable is defined (or used for the first time). So make sure to define simple variables before DIM-ing arrays. (As a lesser known feature, you can define simple variables by DIM as a list at once, where no dimensions parameters are provided, which should make this easier. E.g., `DIM A$, I%, X, Y`. Mind that this also defines the lookup order, so define often used variables before infrequently used ones. Add your array-DIMs after this.)

masswerk··on AI is not killing jobs, US study finds
Archived: https://archive.ph/54LhN

The study: https://budgetlab.yale.edu/research/evaluating-impact-ai-lab...

masswerk··on Nicu's test website made with SVG (2007)
That's totally correct! I once replaced some blurry scans from the 6502 manual by SVG versions, and, while I was at it, I coded them by hand (really, because for this particular job it seemed easier than doing it in a drawing program.) While nobody will notice, it's satisfactory.

[1] https://www.masswerk.at/6502/6502_instruction_set.html#stack

masswerk··on DOOMscrolling: The Game
Proof for there being still some pretty simple ideas to be explored. – Well done.
masswerk··on macOS 26 Tahoe's Dead Canary Utility App Icons
Back in the day, when you could still have custom icons in the sidebar of the Finder and file dialogs (well, Snow Leopard…), I used colored spheres as identifiers for project folders, for minimal 1-bit attention. Which may be a proper use case for such a thing. (There's a clear relationship, but this is also subject to change.)
masswerk··on macOS 26 Tahoe's Dead Canary Utility App Icons
PS, Another way to put this: are these still icons, as in "indicative of something", or are they merely ornamental, particularly in their individuality? And, if the latter, how good are they as ornaments? Is there even a need or a place for ornaments in an interactive environment that is meant to be tuned for efficiency?

(In my experience, if an interface elements raises questions, even more so, if these are fundamental questions, you do have a problem. If not for other reasons, just for the few more bits of awareness spent on these questions, every time you see them.)

masswerk··on macOS 26 Tahoe's Dead Canary Utility App Icons
I'd call them "non-icons": they don't communicate in any way, they don't add significance or separate one application from the other at first glance, they don't really mean anything without the file name, they are really not much better than default icons. And this is probably what they are: default icons for a group of applications with a bit of variation sprinkled on top.

At this point, does it need that residual variation or is this just adding noise? Also, a shape inside a shape inside a shape inside a shape isn't anything anyone is likely to parse – how many bits of information is this? So maybe just go with a simple default wrench icon for all of them?

masswerk··on HTML-in-Canvas
Well, a fingerprinting dream…

Meaning, no way, just for the security aspect.

← PreviousPage 3 of 34Next →