HNHacker News
TopNewBestAskShowJobs

ayaros

642 karma · joined January 7, 2024

ayaros.at.hn

- - -

### Hi, I'm Andrew!

Please check out my latest project, LisaGUI! Or, check out one of the following links:

#### [Blog](https://blog.yaros.ae) • [LisaGUI](https://alpha.lisagui.com) • [Artwork](https://art.yaros.ae) • [Downloads](https://yaros.ae/downloads) • [Homepage](https://yaros.ae)

- - -

meet.hn/city/39.9527237,-75.1635262/Philadelphia

Socials: - ayaros.at.hn - bsky.app/profile/lisagui.com - github.com/aeyaros - linkedin.com/in/aey - mastodon:mastodon.social/@lisagui - yaros.ae

Interests: Art, Programming, Technology, UI/UX Design, Web Development

---

submissionscomments
ayaros··on Show HN: I wrote a "web OS" based on the Apple Lisa's UI, with 1-bit graphics
Yes, that's correct. There's a variety of palettes to choose from in the preferences!
ayaros··on Show HN: I wrote a "web OS" based on the Apple Lisa's UI, with 1-bit graphics
I'll take a closer look at this. Might be a kerning issue.

EDIT: I'm honestly not sure what this issue might be... If you're up for sending me a screenshot, there's an email link at the bottom of https://yaros.ae/.

ayaros··on How to Incapacitate Google Tag Manager and Why You Should (2022)
I figured... just wanted to see which ones people on HN think are worth looking at.
ayaros··on How to Incapacitate Google Tag Manager and Why You Should (2022)
Is there a good way to collect basic analytics if you have a site you're hosting on GitHub pages? In such cases I'd rather not rely on Google Analytics if I don't have to.
ayaros··on Ask HN: What Are You Working On? (June 2025)
The same thing I was working on last month!
ayaros··on Bill Atkinson has died
A sad day for everyone. R.I.P. <3
ayaros··on Smallest Possible Files
Reminds me of https://github.com/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee/eeeeeeee...
ayaros··on My website is ugly because I made it
Hey, my site is handcrafted too. But ugly? Speak for yourselves, but I've tried to make mine beautiful. Handcrafted doesn't have to mean ugly...

But of course, it's at the point where it's grown into something unwieldy. I feel like it's overdue for a redesign/rewrite. Just gotta figure out a clever UI design that works on desktop and mobile. Not only that, but it also needs to work without any JS, because I don't want my site to be nonfunctional without JS...

ayaros··on Ask HN: What are you working on? (May 2025)
Yes, that's pretty much correct! "Sensible" is debatable... And that's the URL!

(Guess I figured I'd emphasize that point before people start mistaking it for yet-another-CSS-skin™...)

ayaros··on Ask HN: What are you working on? (May 2025)
Thanks!

The answer is neither; it isn't remotely imitating the Lisa's architecture, nor is it a skin over some other previously written JS code. To be clear: this is absolutely NOT a CSS skin.

The only CSS involved is used for the positioning of the canvas element on the page, and for the styling of the temporary UI elements which mimic the Lisa's hardware test screen (and those that display as a fallback if JS is disabled). When the system "boots" all those temporary elements are replaced with a single canvas element on which the UI is displayed.

I should perhaps have been less modest in my original comment in that all of the UI components are coded from scratch. This includes a hierarchical system for displaying objects on the canvas (not dissimilar to the the DOM), the windowing system, a typesetting system, multiple systems for displaying and storing image data, and much more. I've written what I hesitate to call a graphics engine, but I guess that's sort of what it is... it even supports 1-bit blending modes.

This was originally going to be more along the lines of a CSS skin, but I became so deeply frustrated with visual inconsistencies across browser engines and platforms that I ultimately decided to move all the logic I could into JS. The result is what you see now.

ayaros··on Ask HN: What are you working on? (May 2025)
A web os; it's full recreation of the Lisa Office System GUI in Javascript. The entire thing is output to a single canvas element, which has forced me to write a number of the UI components from scratch that I'd normally take for granted. It's got an IndexedDB filesystem, and it's got apps. I'm almost done working on the first real app for it - a word processor akin to LisaWrite. Once I roll that out, I intend to do a ShowHN post.
ayaros··on Show HN: Clippy – 90s UI for local LLMs
I love your website design.
ayaros··on Show HN: My self-written hobby OS is finally running on my vintage IBM ThinkPad
I meant it as sincere constructive criticism! :) <3
ayaros··on Show HN: My self-written hobby OS is finally running on my vintage IBM ThinkPad
Regarding a plan, I often feel the same way about my own project. There are a number of systems I've rewritten multiple times, and I can't help but think much of that would have been unnecessary if I had been more tedious about diagramming out my needs and requirements beforehand. Other times I wonder if I would have gotten this far had I planned things out... It's the age old question of "would I have started this project if I had known how much time and effort it would have taken?"

Each approach has a clear set of pros and cons, as others have explored in this thread. In the end, I think what ultimately matters is whether we're satisfied (and proud) of a project after a significant amount of progress has been made.

I also took the "I want to write everything myself" approach with my project since I wanted it to be a demonstration of my abilities. I wanted to prove to myself and others I could create a project of significant size and scope. It seems like this often means working without libraries and having to reinvent the wheel over and over again. It's tedious, but it certainly adds to the satisfaction you get as you look over your work and think "this is truly mine; I did this."

And yes, copy ideas, not code, is one of those things I do my best to adhere to. Sometimes, at least with JS, you run into problems, look into solutions, and it turns out there's really only one sensible way to do something; what you end up writing feels like a boilerplate solution to the problem. I often find myself going back and forth through search results from places like Stack Overflow and trying to siphon out the best techniques and ideas from multiple examples to mesh together into some usable code in a style I prefer.

Finally, since I failed to say this eariler, congrats on your project! I'm gonna have to try it out as soon as I get some extra time.

ayaros··on Show HN: My self-written hobby OS is finally running on my vintage IBM ThinkPad
I think the default system font should be a more condensed variant; it would make the system look much more refined. There are a number of areas where it's clear you need more horizontal space for characters. Each character should have less width, and there should be as little space between the characters as possible - just a single pixel ought to be enough at the font size and resolution you're using.

I don't know anything about your font system; I'm assuming it's fixed width bitmap fonts? I don't know how hard it would be to make these changes within your codebase so if it's too much work then don't worry about it.

I've been building a web OS site from scratch for a while now (not as technically impressive as what you're doing) and I just got through a total rewrite of the font classes, so it's at the top of my mind.

ayaros··on What if we made advertising illegal?
As ads are getting crammed into more and more aspects of our lives both online and offline, what I find particularly creepy is there's been a push by advertisers and tech companies to normalize these practices to upcoming generations. It seems like we're getting pushed towards the status quo of Futurama where we'll have ads broadcast into our dreams... As is the case with idiocracy, that wasn't an instruction manaul. I can only hope we can push the Overton window back to a place where limitatons on advertising can at least be considered.
ayaros··on SheepShaver is an open source PowerPC Apple Macintosh emulator
No, but there's an config option to enable integer scaling. It makes things look much crisper on a high DPI display.
ayaros··on I Blog with Raw HTML
You're doing God's work.
ayaros··on My 3D SWE Portfolio - Built with React Three Fiber.
God bless you and your beautiful site. I salute you.

As others have said I do think the controls need work; maybe some form of constrained orbit controls would work well.

ayaros··on Stimulation Clicker
See also: Antimatter Dimensions, Universal Paperclips, and Candy Box 1 & 2.
ayaros··on Show HN: A simple frame-by-frame animation web app prototype
This is nice. It's simple, functional, and free of bloat. You should build on this a bit! Maybe add a way to save and load animations to/from indexeddb, or to download them as gifs or sets of PNGs. You could also add a way to change the pen thickness and color.
ayaros··on Every V4 UUID
See also: https://keys.lol/
ayaros··on WASM-4: Build retro games using WebAssembly for a fantasy console
This fantasy console sure looks a lot like a Game Boy...
ayaros··on 1B nested loop iterations
Trust me, I learned this pretty quickly. Areas are only queued when the display has to chnage in some way. There's also a bunch of prepratation before drawing a region of the screen; only the objects that appear within the specified bounds are even considered.
ayaros··on 1B nested loop iterations
The graphics side of my program is structured as a tree of objects. The root is the entire display. Each object contains zero or more children, and masks those children so they only appear within the rectangular bounds of the object. If an object has an image class, and there are several of these using different data structures - then it further masks its children according to the image's alpha channel. I also have some blending modes that can be turned on. Any object can have a blending mode that affects appearance of the object based on the image of the object, or the images below it.

Is that something I could port to WebGL? Can objects contain or be parents of other objects in that way, and mask thier children to only appear directly in front of them? I have done a tiny bit of WebGL for a CS assignment but it was ages ago. Hopefully once I make this public I'll be able to get some feedback on all this. I don't want to say too much more as it would begin to spoil things!

ayaros··on 1B nested loop iterations
Looks like they are just bouncing back and forth at relative speeds to each other; the speed of each ball is all that matters. I also found this diagram confusing at first.
ayaros··on 1B nested loop iterations
I'm working on a web app in JS, the sort of thing I think people on here will enjoy and I'll definitely share it when it's presentable. It's all in JS, including the graphical aspects of it (I'm drawing to a canvas). For per-pixel rendering I have 4 levels of nested loops. I feel like I've done everything in my power to optimize the process, and it's still not at the ideal speed. Really, it ought to be about 5-10 times faster than it is now.

I've been thinking of getting it into WASM somehow - it's really just one function that needs to be replaced by a WASM module - but one of the things which has given me pause are benchmarks like this, as well as other anecdotes, that demonstrate I'd only get a minor speedup from WASM. I guess part of this is due to modern JS engines being so optimized.

Just about all of the relevant code is adding and subtracting integers, but theres's some Boolean logic. There's also some multiplication in there that I could eliminate if I really had to, although at this point I'm not certain it would make a significant difference. Most of the data that contributes to the value of each pixel is spread across a tree of objects, and there's some polymorphism involved too. The point is it's not like I'm just dealing with a bunch of contiguous data in memory that is easily cached by the CPU, which might speed things up considerably. I guess I'm just venting now, lamenting a nightmare of my own creation...

ayaros··on How Google spent 15 years creating a culture of concealment
Google, a company who's goal is, ostensibly, to make the world's information accessible, has been working hard to conceal information about itself. The irony is palpable.
ayaros··on Analysis of economic and productivity losses caused by cookie banners in Europe
I realize there are indeed strictly necessary cookies for site functionality. Sites need to store state information, login data, information about what's in your cart, etc. I should be able to make that choice on a site by site basis - to decide if my relationship with a website is deep enough to be worthy of allowing it to store data on my computer beyond the contents of the page itself. I know whether I'm going to be logging into a site or not. I know whether I feel like making yet another user account or not. I know whether I want to actually consider buying something or not. And if I don't know for sure, I should have the option to allow cookies, and then to quickly revert that decision. And user interfaces can be built within the browser to make this level of control more accessible and understandable to the average person without being obtrusive or overly complex.

In my opinion, the web needs to be less reliant on cookies and state data, and websites should be adaptable to situations where they cannot store or access it. Websites can easily provide UI feedback for this issue. For instance, a store website unable to save a cookie can place a banner at the top saying something like "please enable cookies for this website in order to use the shopping cart." And then it's up to browser vendors to provide a simple, consistent, intuitive user interface for enabling cookies - such a UI should minimize the amount of instructional info a site's banner will need to contain in the first place.

The web really needs to be built around opting into site functionality on a site by site basis. It's been the opposite of this for a long time now and we've ended up where we are today... There are many reasons site operators will hate this, from legitimate concerns about usability or accessiblity, to business concerns about users not wanting to take the minimum amount of time to change a setting to add items to a cart resulting in reduced sales, or even malicious concerns about not being able to track users under a magnifying glass. As pissed off as these site owners will be, it's a change browser vendors can make without needing their permission the same way Apple added app-tracking-transparency controls much to the chagrin of companies like Facebook.

And yes, users will find one reason or another to complain about this, despite the fact that it will be optional. "It's like Vista's UAC prompts all over again!" "I shouldn't have to do extra work to add stuff to my cart!" etc. That's great that they don't care about being tracked and if they want to be the cattle of data mining companies that's fine. But there are plenty of people who, given the choice, will prefer the alternative, and over time sites will adapt. If sites purposefully punish people for not enabling cookies, and websites are interested in pissing off thier users, well there's always the option to close that site and use another... in any case I'd rather deal with that kind of fight then the situation we have now.

ayaros··on Analysis of economic and productivity losses caused by cookie banners in Europe
Why should websites even be trusted with implementing these banners in the first place? Browser vendors should be responsible for implementing these controls per-origin. Give a little banner pop-up built into Chrome, Firefox, Safari, and the rest. Have it display every time a new site sets a cookie for the first time. Or have it reject every cookie by default, unless I whitelist a site. This would result in a consistent user-experience across the board, and I'd actually be able to trust that I'm not being tracked.

Instead, we are trusting the very websites we are blaming on tracking us in the most decietful, malicious ways possible to self-regulate and implement these controls. So now every website gets a shitty banner - on top of all the other annoying in-page banners and popups which are a staple of 2020s web design - that asks us if we want cookies. All these banners look different, are positioned differently on the page, appear at different times after the page is loaded, and function differently. So there's no consistency. And 90% of the time you can't disable all the cookies anyway, because there's that little grayed out toggle control for "strictly necessary cookies." How do I know one of those cookies you consider "strictly-necessary" or "crucial for site functionality" doesn't connect back to some evil tracking algorithm, the blocking of which was the whole point of this banner debacle in the first place?

So we have essentially asked websites to self-regulate the way the US's vitamin/supplement industury does, except its worse because I don't have to click a fucking banner before I take a capsule of what may or may not be vitamin C.

So again, why isn't this the responsibility of browser vendors? Am I taking crazy pills? Am I going insane or is the world going insane?

/rant

← PreviousPage 7 of 8Next →