c0de517e's journal
log_001

logo: back home toot
- The creative freedom of bad code.
- A new ipad has appeared!
- The web never forgets?
- The programming divide.
- What I know about keyboards. (little)
- The exorbitant cost of making things easy.
- The energy of spaces.
- Priesthood
- SQL breaks my brain and I don't believe in Verse.
- Ps5pro and (not so) wild guesses.
- I gave up on contrast.
[Previous log file]

- The creative freedom of bad code. (permalink)

REAC 2024 is almost here https://enginearchitecture.org/2024.htm and I'm preparing some graphics for the breaks. Last year I made a fairly lame shadertoy mixed with some great music ( https://www.youtube.com/watch?v=AiW0XtLuheY), so why not doing that again...

Now, I'm not the best shadertoyer around, nor the best creative coder, heck, I'm not the best coder, period! But the amount of fun one can have whipping random lines of code without a care in the world is always liberating.
And it's particularly, for me, rare to experience this in a shader, where usually all my work is about coupling physics with novel approximations with a precise understanding of where GPU cycles go...

Here, I make my 4080 sweat and yolo - in fact I was surprised my shader was stuttering at home on my macbook pro, then I remembered yeah, I have 1000 watts GPU at work :)
Anyhow. All this should be a reminder that there is space for exploration, and preferably, exploration should be done in systems, languages etc that explicitly can't "ship" - become part of the actual product. That allows for space to be completely careless, without the temptation of ever turning prototypes into the actual shipping code. Modularization (components) help all this.
Wed, 29 May 2024 10:41:32 -0700


- A new ipad has appeared! (permalink)

I had some spare cash (literally, some us$) so I decided to upgrade/update my ipad pro whilst visiting Roblox HQ, sold the old one. I mostly wanted to downsize, my old m2 was the first time I went for the big ipad (mostly lured by the HDR screen that at the time was only on the bigger model), was not a wise choice, it reduced my usage of it by a lot. Not being able to hold it with one hand turned out to be a deal breaker for my usage patterns.
So, now I'm a proud owner of the latest, thinnest, sexiest m4 ipad pro 11 inch. It's really an astonishing device, but it begs the question - who's it for? We are beyond levels of performance that even the most demanding users can notice. My aging macbook pro runs cyberpunk 2044 - under wine+rosetta+gpt emulation, just fine. Where is the performance going to go? On portables, the M1 revolution was mostly about battery life, but now, just a few "M" chips in, it seems we have already shot past what people can do. And an ipad is even more limited, by design (which btw, I do appreciate, still, Apple's restraint).
No surprise then that Apple seems to be opening up iOS to AAA gaming. I think another avenue would be to push on local ML, that surely can eat up any spare cycle. Funny to see Microsoft going all-in turning the OS into a ML thing, for how much I loathe Win11's becoming a platform for ads, I do think that it makes sense for the OS to become effectively an "everything assistant".

Power aside, I have now a dilemma. I really appreciate the ability to quickly jot down notes, and I would like to be able to do it with a keyboard - for handwriting, I already have my pens and notebooks and I won't move from these (other than loving the medium, I also tried for ages all possible technologies, from e-ink to tablets and so on, and never found them superior to the traditional ways). Apple makes a decent, perhaps even excellent - given the constraints - keyboard "folio". But it seems still to be just below what I consider comfortable for typing, I don't know if the scissor mechanisms are different than the other apple keyboards (which I do like) or if it's primarily due to the fact that the keys are a bit too small.
It's also not light, it adds considerable weight to the ipad, a device that I practically always bring with me. I currently have one of the smaller apple aluminum keyboards and a tiny plastic foldable stand - that works great, but it takes time to setup, it might sound silly, but for these daily, high-frequency activities, details matter. In practice, I don't use that too often either, because it is a very deliberate setup, I use it effectively when I know I want to go somewhere to do some writing - not for "spur of the moment" things.

The NuPhy Air60 is fantastic, I tried the keyboard and it is incredible. It comes with its own folio to protect it, that can hold an ipad or other devices - neat... but, it's quite big. Not sure it would see much use either. What would really be ideal for me is if I could carry a keyboard that was as small as possible, whilst still being well made enough - and that incorporates some degree of memory. Like the TRS-80 Model 100 (and all other devices made on the same Kyocera platform), which was apparently quite popular among journalists. If I dabbled in electronics (I consider them witchcraft, electromagnetism in general is) I would try to make a small one or two line LCD display thing to plug in the back of the apple aluminum. That would be great. Or at least, it sounds great, perhaps if I had it I would find other issues... 1st world problems...
Tue, 21 May 2024 00:11:22 -0700


- The web never forgets? (permalink)

Perhaps, but content gets diluted, buried, becomes unreachable. The submerged iceberg of the web where google's search does not shine was already much bigger than what's easily reachable a decade or two ago, pre-platforms, pre-web 2.0. Now it's a lot worse. LLMs could help, as we can interact with chatbots to direct them much more pointedly than we can with search terms. A shame that it seems that there are no LLMs that try to do that - to primarily serve links. Instead they all focus on ingesting all of the content to generate text.
Mon, 20 May 2024 20:48:49 -0700


- The programming divide. (permalink)

Almost since them moment we started dealing with computers, and certainly from the moment we technically could - programming has been divided in two camps: the wizards of the low-level, and the high-level code-composers. Ok, there is probably at least a third camp, the academics, interested in programming per-se, not in the applications, and likely many others - but who doesn't like binary choices...

Basic first, then the era of "visual" languages, widget libraries, OO, and then the web, apps, now perhaps, AI.

So, not a new phenomenon. Yet I feel the divide has been if not widening, becoming more acrimonious. Maybe it's just perception, maybe it's the bubble in which I happen to be. Or maybe it's because the power dynamics have been shifting.

Once upon a time VisualBasic apps were the stuff of amateurs, or of at least, relatively small products. "Real" application software was still C. Today arguably "real" programming, at least by product volume, is increasingly not. The silicon valley wizards are probably making web services in python and JS. The big bucks require to move fast, to scale by burning hardware, to chase ideas and users, not bits and bytes.

I don't have particular feelings in this. It's not my cup of tea, I barely understand that world, but I'm not opposed to it either. I have little sympathy for the machine, it has always been made to serve us, not the other way around, and I don't think the style of programming is what makes or breaks a product for me. I love Another World and Monkey Island, even if they ran on VMs, and I would not allow any IoT crap in my house even if it was written in tight and handcrafted assembly.

And if fewer people know what I know, that should not be a threat.
There is always going to be some value in being good at a given level of detail.
Sat, 4 May 2024 19:02:50 -0700


- What I know about keyboards. (little) (permalink)

I am not a keyboard snob. I can pretty much work with most keyboards, without complaints, but as any nerd, I also own a few fancy ones.

I like watching (listening to) Chyrosran22's channel, I recently acquired (and regretting, albeit, it is awesome) a model F replica capacitive buckling spring thing... I actually knew I would regret it to some degree having tried original IBM buckling spring keyboards and found them to be underwhelming, compared to the hype, but that's another story.

Bottom line, I know a little, and I have a little experience, and this is what I'm persuaded of thus far:
1) Switch technology doesn't really matter. I don't believe that "mechanical" (say, a stem pushing a metal plate on the side against another metal plate) is necessarily better than "membrane" (plastic with a contact on top making contact on another on the bottom, when depressed) or anything even fancier (optical, magnetic reed, capacitive...).

2) Mid-travel actuation is what matters, e.g. not needing to apply most of the force at the bottom of the keypress. That's why I think you can mechanically design a switch with the right actuation force (profile) that then still ends up pressing on a membrane, like in some IBM buckling springs, or most laptop style keys. Having to press a key hard, and hardest at the bottom of the travel, is what causes fatigue.

3) It's all a matter of habit. When I used to type a lot on my macbook, I wanted low-travel keyboards at work too, I bought a couple of aluminum mac keyboards when they moved to the even thinner, current ones, just in case these ended up sucking (and they did not, abeit it took apple quite a few revisions to get it right). Now I type mostly on a topre-like (capacitive) linear NiZ Atom 68 that I bought mostly because it's silent, and I like it, but I also have "clicky" low-profile keys that I love etc, you get the point, there are a million terrible keyboards I would not touch, but I think there are also a million ways to make good keyboards that you can get used to and love.

4) The numeric keypad has to go. That's the number one thing I'd recommend to ppl buying a keyboard today. 75% (tenkeyless - TKL) or less. Mostly because we tend to de-center a big keyboard in order to make space for the mouse - if you are right-handed at least! Or even if you don't move the keys off center, you still have to move you hand more each time you reach for the mouse.

5) I do believe that short travel keyboards are better than longer travel ones, I think I even saw some scientific studies and intuitively it makes sense that you get fatigued more by having to move your fingers more, even if the actuation is mid-travel and so you don't need to press all the way down... But I don't think it's a huge deal.
I doubt that one can have though great short-travel keys if they are not very "tactile" - that is why some early versions of the super thin new Apple designs were really bad imho, they lacked enough of a "bump" for the fingers not to get fatigued bottoming down. I still have an old 12' macbook retina with one such keyboards that I cannot bear to type on at all.

That's all. I don't believe in gaming keyboards, polling rates etc, I hate RGB backlighting (albeit it's hard to avoid, I don't think there is a "good sounding" keyboard - today the trend is the "thock", some love the opposite, the "ping" etc. I think these are all just hyped things that are hyped because they work well on social media shorts.
Mon, 15 Apr 2024 10:33:07 -0700


- The exorbitant cost of making things easy. (permalink)

One of the biggest mistakes I've made at work in my current job is not to protest louder when we moved to CMake. I felt it's one of these holy wars. Not worth fighting for.

Yes I'm an old fart by now and I hate to see people grabbing for tools mindlessly... and I was not persuaded at all that the benefits (being able to more easily add/remove files across the various configurations, effectively) were worth the investment.
I positively hate seeing githubs with a couple of C files and the "obligatory" CMake script because look, it makes it seem so "professional".

Yes, I knew that all build systems quickly turn into "write only" code, where nobody understands what's going on, a few are able to add things, nobody can remove it...

And yes, I knew that CMake is notoriously slow, among build systems... But what's the harm really? It will generate solution files, it's ok... right?
Well, what I should have known better, or rather practiced better, is the fact that once something exists, it will be used. If something is easy, work will flow, literally through a path of least resistance.

And this is a HUGE deal. In all areas of human endevor. People often protest when they encounter friction, it's natural. But friction can be a tool. Don't facilitate what you don't want to see happening. Even if you plan to keep things under control, once the door is open, is so much harder to reign things in, to be constantly vigilant.

Of course the end of the story is that now our builds are in no way shape or form better than they were, they are not more reliable, they are not faster, it might be easier to add files, sure, but we pay the costs for that at every single iteration... And of course, now it's so much harder to change things, because people started using the system in all sorts of ways of ways...

Regardless, the point is not to complain about this specific thing, which in the grand scheme of things is not even so terrible... It's a more general reminder. Things will be used. People will do work. Be careful when you introduce a new system, a new language, a new team, a new role. These are all long term, balance-shifting decisions, changing the flow of work, little by little going towards given directions. It is fundamental to chart that course mindfully.
Sat, 6 Apr 2024 17:56:14 -0700


- The energy of spaces. (permalink)

I go to this coffee shop, Propaganda, in Vancouver, in my weekends. I try to be here once a week at least.

I don't know exactly why. Like I don't know exactly why I live where I do, other than a mystical sense of a "certain energy" of the space that agrees with me.

This shop has good coffee, sure, but I am not a coffee snob and it isn't the best in town. If anything, I have a soft spot for their cookies. They make only two kinds, hardly a marvel of bakery...

It's near my apartment, but I have plenty of great spots that are nearer, and yet, I don't use often.
It has a good ambiance, but... barely. It's definitely not fancy, not beautiful, not even comfortable other than not being too loud, I guess.

It has magazines, that I like, and it has no internet, which forces me to disconnect... but even these things are obviously marginal, I can recreate anywhere. It has fascinating people, artist types for the most. But I almost never talk to anyone.

Yet, it makes me feel better.

Isn't that curious? I don't know how universal this feeling is, but I'm sure it's not rare. And it tells something about... things, I guess, products. How far removed is quality, preference, from spec sheets. How intangible the success of something can be. I guess this is the intuition that made Steve Jobs.

Digression!
I always hated looking at specs, albeit as an engineer and a nerd, I guess it's also hard not to care. It's not wisdom though that I acquired of late. I can remember ranting as a teenager (and that tells a lot) about how PovRay was trying a "completionist" approach of having all the features that can possibly be listed on a sheet, while being generally a misguided piece of software, hard to use for most artistic purposes.

For a while I was convinced that OpenSource would always end up not understanding customers, when they are not programmers themselves. But Blender, Godot and a few others "recently" proved me wrong there. Finally! Maybe one day we'll get a (credible) OS alternative to Photoshop or Lightroom. Wouldn't that be nice...
Sat, 6 Apr 2024 17:55:25 -0700


- Priesthood (permalink)

Saw a priest at the shared table of the cafe i was having my morning chocolate croissant at. Perhaps protestant. At least I assumed he was.

Studying the bible, underlining it with a bold graphic marker, 1mm or so. Then he would occasionally scribble some notes in, I think, a Japanese daily planner with a Montblanc 146. Light blue ink. While listening to something via an iphone/airpods/watch combination.

Sounds like a nice job. Not having to worry about earthly things, mostly thinking, helping the community. Maybe i should have followed my uncle's footsteps...
Then I realized why the appeal. That's already me. Reading, thinking, and jotting down ideas in a cafe is one of my favorite things! Libraries were my churches. I guess the blog then in my pulpit?
Fri, 29 Mar 2024 13:11:08 -0700


- SQL breaks my brain and I don't believe in Verse. (permalink)

Been doing lately some big-data stuff to debug some issues on our platform. Fun in theory (lot of new toys to play with), frustrating in practice (slow iteration time is particularly annoying when your job is to explore).

For this I had to learn SQL, ofc I know the gist of it, and the underlying theory, but I never really had to use it for anything serious before...

...and I got reminded how much declarative programming breaks my brain. I imagine it's not just a "me" thing. I hope. I fancy myself a language connoisseur, having had passion for them in my university years, and having tried pretty much all programming models there are. Imperative, logical, dataflow, functional, actors, agents, OO, expression rewriting - you name it, I probably at least toyed with it.

The languages I least like are the ones with no explicit notion of time. I think there is a huge disconnect between designers and... humanity. Of course, for a language person the idea of expressing computation through constraints and functions that get realized on the hardware by the compiler sounds sexy... Take the thing they are the most embedded in, logic systems, and make them the protagonists, instead of being "only" used for some static checks that programmers often even question the usefulness of (rightfully - as we can't find great correlations in practice between static checking and lesser defects). Also, you have all these benefits of composability! And perhaps you can find incredible ways to schedule (if you ignore how hardware works, auto-parallelization is great!) and so on.

But in practice, I don't see the allure. It's not just that imperative programming is closer to the metal... I find it closer to our brains. It's easy to think about a procedure as a sequence of steps, our brain is finely tuned to work with temporal concepts (because the real world... actions and consequences, with a clear order). It's incredibly hard to think about a web of connections that eventually generate an answer.

And that's why I don't like Verse.

One day I'll probably write a real article about all this - but my pains with SQL reminded me of all of this.
Wed, 27 Mar 2024 12:12:12 -0700


- Ps5pro and (not so) wild guesses. (permalink)

The PS5 is selling like hotcakes. It's the best console ever made so far!

Yet so far the reception to the news of a ps5 pro seems far from enthusiastic, we are not seeing ps5 exclusives, this next-gen looks identical to the previous, only with a few more pixels, same content and technology. Psvr2 did not sell well, and I don't even remember what the screen-streaming thingie name is...

How to square these two facts?

I don't know for sure, but I can propose a theory that could explain...

Console growth is over. Companies expect more or less the same users generation over generation. Maybe even a decrease, in the future. At the same time, AAA growth is over. Blockbusters aren't going to be much bigger than the Fifa/Call of Duty/Fortnite of today. People are not going to play more hours, spend more. We went from discrete titles, to DLCs, to multiplayer and microtransactions and season passes, but that's pretty much it.

So... growth (for AAA) has to be found elsewhere. And that "elsewhere" is in expanding the platform support. Cross-platform titles, cross-play, cross-generation. Console, PC, and ideally even mobile, perhaps streaming (as in video... albeit I don't believe in that much - expensive). That would explain the lack of exclusives.

In this game, if that is the game, Sony is late. Microsoft seems to have predicted the beginning of the end of console (growth) around the 360 era, and acted accordingly. Sony seems to want to follow now, with PC ports, with gamepass style subscription, and by investing on game-pass-able titles (multiplayer, service oriented) etc. They publicly noted that their big single player are too expensive to put on a subscription service, without being able to generate any other revenue, so a shift is needed.
They seem also to be trying to find other avenues for growth, licensing IP for other media (tv series...), investing more in remasters and the back catalog, but I doubt there is a ton of money there, I imagine it's nice to have, and it increases brand awareness, but it won't be enough to keep them doing what they were.

If that's true, we'll still see a PS6, PS7 and so on - for enthusiasts - but we'll see gaming become much more of a "play wherever you are, with whatever device you have" kind of thing. And in that game you have to target wide - so you get closer to PC, where yes, you can turn on the fancy raytracing on a thousand dollars GPU, but it's all hacks bolted on a game that was fundamentally made for a much lower target - a sort of built-in ReShade mod.
Tue, 26 Mar 2024 20:20:12 -0700


- I gave up on contrast. (permalink)

When I was making this website, I tried to research what's best in terms of readability and eye strain. TLDR, apparently studies prove that contrast is king, that reverse polarity (bright text on dark) makes sense in low-light environments, and that in said environments, preferring the longer wavelengths (amber to red) makes some sense... and this is how the website you see was made, why it detects the "night mode" setting you might have to switch polarities etc.

Unfortunately though, I found that maximizing contrast does not seem to work well, especially in night mode. I'm not entirely sure why, but I can, myself, notice some "shimmering" around the letters if I push things to pure white text on pure black background. My theory initially was that this should not matter because you can and should adjust the luminosity of the display to get to a comfortable contrast ratio, and of course, adjusting it down is always possible, whilst adding contrast when not present in the content is harder...

That theory seems reasonable... but somehow, it didn't work for me and it was 50/50% on an online poll I made. Maybe it's because nobody makes such high-contrast content, so you'd need to adjust only for my webpage, which is not going to happen... I even noticed that when I play with mac's accessibility filters, which allow me to push contrast up and even remove color, I still get more fatigued, I can't work for long on a monochrome screen, for some reason... again, I assume it's a lot due to how the content is made / optimized for.

 So in the end I relented and adjusted the color scheme to be a bit less contrast-y. Hope it works! I also suspect I should change the font / font weight in night mode, because somehow (antialiasing?) the font looks thicker to me in reverse polarity... but didn't do that yet and it's not easy to find a font that I like and that comes also in multiple weights...
Tue, 26 Mar 2024 12:23:12 -0700


[Previous log file] [Home]