@jbqueru@fosstodon.org
@jbqueru@fosstodon.org avatar

jbqueru

@jbqueru@fosstodon.org

I'm JBQ / Djaybee, Husband, Immigrant, Veteran, Highly Sensitive Person #HSP. He/Him. I write about tech and other things. I'm fluent in French and English.

I like: #skiing, #hiking, #biking, #games, #photography, visual #astronomy. #PixelArt, #painting, #knitting, #weaving, #crochet. #bead weaving, #CrossStitch and #BlackWork embroidery.

I am in the year-long process of moving from Spokane, WA, USA to Preveza, Greece.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

annaecook, to random
@annaecook@mstdn.social avatar

I’m so tired of having to make a business case for accessibility.

Make your product at least compliant it’s literally your job.

Do your job.

jbqueru,
@jbqueru@fosstodon.org avatar

@annaecook Compliance = "making something so bad that any worse would literally be illegal."

gabrielesvelto, to random
@gabrielesvelto@fosstodon.org avatar

Memory errors in consumer devices such as PCs and phones are not something you hear much about, yet they are probably one of the most common ways these machines fail.

I'll use this thread to explain how this happens, how it affects you and what you can do about it. But I'll also talk about how the industry failed to address it and how we must force them to, for the sake of sustainability. 🧵 1/17

jbqueru,
@jbqueru@fosstodon.org avatar

@gabrielesvelto @cr1901 maybe that's why it sometimes felt like those old machines were rock-solid in spite of their limitations: hardware has become less reliable faster than software became more reliable.

gabrielesvelto, to random
@gabrielesvelto@fosstodon.org avatar

I didn't anticipate there would be so much interest in how memory in consumer devices goes bad, but since there is I'll try to write a short thread later on the topic.

I personally encountered lots of computers with bad memory while helping friends and family, but what really gave me a measure of the problem is when I figured out a heuristic to detect how many Firefox users encounter crashes because of it.

jbqueru,
@jbqueru@fosstodon.org avatar

@gabrielesvelto I don't have statistics (we never spent the time gathering them), but, when I was at Yahoo, we had evidence of single-bit errors in our analytics packets: Flurry event names are strings, and it was easy to spot events whose name was off by one bit.

jbqueru, to random
@jbqueru@fosstodon.org avatar

If I had a Euro each time a train trip recommendation includes either a "connection" between different stations in the same city, or a "connection" that requires spending one night in a train station, I could actually afford taking the train.

rbreich, to random
@rbreich@masto.ai avatar
jbqueru,
@jbqueru@fosstodon.org avatar

@rbreich Beyond market manipulation, stock buybacks are also tax evasion: they allow shareholders to recognize long-term capital gains and to control the timing of such gains (e.g. to match them with tax loss harvesting).

selzero, to VintageOSes
@selzero@syzito.xyz avatar

Did you used to make computer games using STOS or AMOS?

I tried but I was too young to afford the resources I needed and ended up using copies pirated from friends. Even so it was a much better experience than the other development environments I was using at the time.

AMOS The development environment for Amiga game programming.

jbqueru,
@jbqueru@fosstodon.org avatar

@selzero I have not published anything that I wrote in STOS, but it helped me understand the framebuffer structure and, from there, it led me toward learning 68000 assembly.

jbqueru, to random
@jbqueru@fosstodon.org avatar

Hmmm. Write Z80 first, then port to 6502? Write 6502 first, then port to Z80? Write 68000 first, then port to both Z80 and 6502? Write a bytecode interpreter on both 6502 and Z80 and then code to that bytecode?

I guess I'm looking for an excuse to think about writing code instead of, you know, actually writing code.

jbqueru,
@jbqueru@fosstodon.org avatar

@f4grx Fairchild F8? Intel 8048? General Instruments CP1610? Signetics 2650? TI TMS1100? Yep, all used in games consoles...

jbqueru,
@jbqueru@fosstodon.org avatar

@brouhaha It's bytecode interpreters all the way down... and at the bottom is a brainf*ck machine.

(I've recently learned that the 68000 has both microcode and nanocode, and I have no idea where the separation lies).

jbqueru,
@jbqueru@fosstodon.org avatar

@pulkomandy I sincerely hope for you that's not a C166. That CPU gave me nightmares at work, sometime around 2004 (+/- 1 year).

jbqueru,
@jbqueru@fosstodon.org avatar

@teajaygrey You were well ahead of me. Up until (I think) 1990, I had only worked with variants of BASIC. I did have some documentation for Z80 assembly, buy didn't grok it (and didn't have the tools). I picked up 68000 assembly in 1990, I saw some i386 and some PPC in the 90s, a bit of ARM after that, but I've only really picked up 8-bit CPUs recently.

jbqueru,
@jbqueru@fosstodon.org avatar

@brouhaha Oh, that makes sense, essentially a level of indirection for the common instruction components (addressing modes come to mind) if I understand correctly.

jbqueru,
@jbqueru@fosstodon.org avatar

@brouhaha I love your explanation. That's what I had in mind, and you help make my understanding sharper. That explains well how a MOVE can have advanced isntruction modes for both source and destination, or instructions like LEA and PEA.

jbqueru,
@jbqueru@fosstodon.org avatar

@brouhaha I like those details, because they can help me understand patterns in the way those systems work, instead of having to memorize long lists of facts without understanding them.

jbqueru,
@jbqueru@fosstodon.org avatar

@gilesgoat But looking for excuses is so much more satisfying! I can blame other people for their mistakes (which I'm sure made perfect sense at the time) without making any mistake of my own!

jbqueru,
@jbqueru@fosstodon.org avatar

@pulkomandy I had never heard of that CPU. Now I'm curious!

jbqueru,
@jbqueru@fosstodon.org avatar

@brouhaha @pulkomandy Technically, I'm not sure you can drop X, because you then lose TXS / TSX... (yes, you could implement replacement instructions with A or Y, but that wouldn't be compatible with 6502 any more).

jbqueru,
@jbqueru@fosstodon.org avatar

@jarkman Yeah, that's how languages happen. But, then, wouldn't it be fun to use an extinct language, like B?

jbqueru,
@jbqueru@fosstodon.org avatar

@jarkman I'm vaguely aware about the way some of C's features are explained by its lineage. It would be enlightening to push that further, for sure.

jbqueru,
@jbqueru@fosstodon.org avatar

@patrick I'm routinely torn by such discussions, because I'm too obsessed about performance.

On the one hand, I like the idea of high-level languages exposing capabilities that are otherwise unnatural at the assembly level because of limited CPU capabilities.

On the other hand, I am horrified by the overhead that those high-level constructs imply.

What might act as a tie-breaker could be the possibility of squeezing an interpreter into time-constrained routines, such as on the Atari 2600.

jbqueru,
@jbqueru@fosstodon.org avatar

@gunstick And suddenly I remember that Apple did something similar: https://en.wikipedia.org/wiki/SWEET16

jbqueru,
@jbqueru@fosstodon.org avatar

Replying to myself, after lots of valuable and thought-provoking inputs from the wise crowd: some bytecode interpreter might make sense.

-Write once for multiple platforms.

-The interpreters are reasonable to test from within their respective target environments.

-The bytecode is easy to test in any modern host environment.

-Having an interpreter gives me flexibility to interleave it into time-sensitive code (2600, but also CPC and ST where I like racing the beam).

jbqueru,
@jbqueru@fosstodon.org avatar

@mariani1 my challenge now is not to fall for that seduction and to finish my current project instead. If I keep changing focus 2 months into 6-month projects, I'll never get anything out.

jbqueru,
@jbqueru@fosstodon.org avatar

@teajaygrey that's really awesome!!!

I can relate to the learning process of going from a high-level language down to the metal, and then bring horrified at the cost of the abstractions built on top of that.

jbqueru,
@jbqueru@fosstodon.org avatar

@bscloutier oh, that's interesting stuff. I haven't worked much with asymmetric multiprocessing, and the little that I did ran the processors in parallel (Megadrive, NeoGeo, Falcon030) so I never had to worry about the cost of switching.

jbqueru,
@jbqueru@fosstodon.org avatar

@bscloutier Yeah, those older CPUs don't like to share with other bus masters. The Z80 is somewhat more amenable to it (e.g. the Amstrad CPC graphics component steals cycles from the Z80), the 6502 likes that a good deal less (e.g. the 6502 derivative in the NES does weird things during audio DMA cycles).

  • All
  • Subscribed
  • Moderated
  • Favorites
  • anitta
  • everett
  • magazineikmin
  • Youngstown
  • thenastyranch
  • rosin
  • slotface
  • ngwrru68w68
  • Durango
  • PowerRangers
  • kavyap
  • cisconetworking
  • tsrsr
  • DreamBathrooms
  • modclub
  • mdbf
  • tacticalgear
  • khanakhh
  • ethstaker
  • vwfavf
  • InstantRegret
  • tester
  • osvaldo12
  • cubers
  • GTA5RPClips
  • Leos
  • normalnudes
  • provamag3
  • All magazines