The Register Home Page

* Posts by Chris Gray 1

478 publicly visible posts • joined 8 Jul 2009

Page:

The roller coaster works, but the Six Flags kiosk has gone off the rails

Chris Gray 1
Thumb Up

Fun!

Went to Magic Mountain with a bunch of other co-workers from hereabouts on a free weekend down there. This was long ago, so I don't know how different things are now. But big wooden contraption was a fun ride, although most of the fun was from the rattling and shaking since you can't make a wooden coaster as extreme as the new metal ones.

Dev accidentally commits Copilot binary to FreeBSD ports repo

Chris Gray 1
Go

Simplicity forever!

I still use "rcs". And I sometimes mess that up too!

Secure Unix ancestor KSOS did type safety before Rust made it cool

Chris Gray 1
Go

Re: Nice find

My old Draco language had read/write language constructs, but they ended up not being used much. Not a lot of text I/O happens in production anymore, I expect. (Am I wrong about that?) Their usefulness would, I expect, be proportional to how much programmers can insert themselves into the activity. Pascal's read/write system made it almost impossible to use them for interactive (text terminal) I/O - my recollection is that that was one main issue with them.

My new Zed language doesn't have built-in I/O functions. What it provides is a very comprehensive "ioProc" facility which allows the creation of powerful text output facilities. Each of the non-fixed parameters to such a call (Fmt/FmtN/FmtS is the standard provided one) has syntax allowing formatting codes, overall field width and a precision value. Skip the ones you don't need. Since it is implemented by programmer-provided code that runs at compile time, it can look for custom formatters attached to the types of values given to it, and use them with the same options. So far it has worked out very nicely. Add to that the ability to create, at compile time, custom formatting procs for the programmer's types, and it becomes almost magically easy to get nice output from very little explicit source code.

Then I wanted to see if even fancier was possible, and made my DispAcc facility (runs all at compile time, but the end result is reasonable native code for the final user code). DispAcc (Display and Accumulate) does tabular accumulation and display of vectors/arrays of structured data. All with the user programmer having to do little more than specify a string describing what the columns should look like. A friend said "Chris, that's application programming, not compiler work!", so the excuse of "I wanted to see if I could" had to be produced. :-)

And, if that isn't enough, one can always write user-defined constructs to do things differently. So far I've used that to write a list iterator to go with the list generic, and a "StringCase" construct which does a 'case' statement with string keys.

One advantage of an entirely new general purpose programming language is that no "AI" has ingested any code written in it. Certainly nothing more than a few examples...

Inspired by musical greeting cards, DARPA demands tiny, cheap, self-modifying systems

Chris Gray 1
Trollface

Self-mod is easy

Self-modification is easy. Run an 8080 CPU with 56K available RAM and a meg of flash and you've got the self-mod - the compiler can rebuild itself in that amount of hardware. (Trust me, I know.) So, rebuilding an app works too.

The issue is *intelligent* self-modification. Nothing modern would even hint at being runnable in those resources. You'll need to add at least one "K" to the needed sizes. So, you need to get the intelligence down in size, then the rest should be easy.

Microsoft's latest Windows bug belongs in the Recycle Bin

Chris Gray 1
Devil

Re: "Microsoft is working to improve the reliability of its software."

They were probably adding AI stuff so that it could automatically delete files from your trash. After all, nothing could go worng there.

AI is code – and can't be prompted into being smarter

Chris Gray 1

Upvote!

Ooooh. "botlickers". I like that.

US Army picks out Vampire to fill a gap in its layered drone defenses

Chris Gray 1

Re: New Math WTFBBQ

I presume they are talking about total hours for all of the units in use.

Chris Gray 1
Flame

Watch out!

Hmm. Did the Ruskies already know where the anti-drone stuff was made, or are they now going to get their agents to cause "accidents" in Huntsville?

(Fire icon.)

Trump phone has HTC guts. Tremendous guts. The best guts

Chris Gray 1
Devil

target practice

A friend in the military was looking for useless cell phones to use for target practice by the newbies. Too bad you have to pay for them.

That an app 'Fits on a Floppy' is still a useful measure in 2026

Chris Gray 1
Go

Still fits! :-)

Hmm.

-rwxrwxr-x 1 cg cg 1576672 May 22 11:04 zedc*

Yep, it still fits on a floppy. Dunno how much of it is error message text. Of course you need "header" files and libraries to compile and link most stuff.

I recall the "good old days" when I was writing my "Amelon" game for my "Explore" game system. I eventually ended up having to shrink the names of many symbols, both in the Draco compiler and in my Explore driver, so that I could link the game driver with the Amelon code into something that fit in memory. Pushed things quite a ways, but it was a very satisfactory thing to do. This was on CP/M, with something like 8K of address space stolen for the graphics card.

The game display had a "grid" mode which was an overhead scrolling view of terrain, etc., along with a "maze" view, which was a line-drawn 3-D view of passages, etc. Ported it to the Amiga for better imagery, including moving water affects. No, neither version was ever publically released. And yes, the CP/M version was on 8-inch floppies - one for Draco and tools, one for the Explore system or world.

The Virtual OS Museum opens its doors

Chris Gray 1
Happy

Re: Incredible

Hey, a company I worked for a few decades ago had a Pyramid as its central server. Ran a version of Unix. You could take the address of registers on that machine - made optimizing C a bit easier.... (The top few addresses were for the registers)

X limits hot takes from freeloaders to 50 a day

Chris Gray 1
Happy

:-)

I just want to upvote the article - gave me a couple good chuckles. Oh, wait - I can't just click on Upvote on this site....

This browser add-in doesn't just hide ads, it tells you to OBEY

Chris Gray 1
Alien

It's Alive!

Thanks for describing the movie - for a minute I thought the stuff would be from the "It's Alive" series of movies - those could be truly disburbing once you stopped giggling. (I think it was chemicals causing mutations in human fetuses which resulted in murderous horrors.)

Closest image selected as icon.

dBase debased: Database titan fades to black after 47 years

Chris Gray 1
Go

Impressive

I think the 3 custom dBase-II applications I did were my first income from programming. Not that I made a lot - they were all for small local companies. The guy I worked through would do custom printer paper for each one, and I designed outputs to fit them. They all had customer and sales records, and one also had inventory stuff in it.

I was impressed by what one could do on an 8-bit CPU, 64K of memory and one or two floppy disks.

Anecdote: years later, in a later actual job, I walked past an office whose name I recognized as one of my 3. Went in and chatted a bit - they used the dBase-II stuff for quite a few years before moving on to something based on MSDOS (or Windows?) and a hard drive.

US Army goes green-ish, wants soldiers munching on plant proteins

Chris Gray 1
Happy

IMP yummy

A friend of mine has occasional access to IMP's (Imperial Meal Packet) from the Canadian Army. So, I've had the opportunity to try a couple. In general, I'm pretty happy with them. My favourite is the Jambalaya. But yes, they are far more calories than a mostly sedentary computer geek needs for a mid-day meal!

GitHub: Zounds, a genuinely helpful AI-assisted bug report that isn't total slop! Here, Wiz, take this wad of cash

Chris Gray 1
Stop

User input

One of the oldest rules for any user-facing system: don't trust user input - run it through filters for special characters, quoting, etc. Sheesh! But its now Microsoft, so not too surprising.

Nvidia slaps forehead: I know what quantum is missing – it's AI!

Chris Gray 1

Huh?

How can they be sure that their LLM (AI) isn't making mistakes, based on its training data?

So, how can something that makes mistakes of its own fix all mistakes that something else makes? How can humans trust the result?

Physicist reckons two-button calculator can do all elementary math

Chris Gray 1

*Analog*

What you all seem to be ignoring is that the article specifically states that this is NOT digital computation.

(I recall seeing an old analog computer at my university, and that was when I was still a sprout. Even then it hadn't been used for years. Didn't seem very powerful.)

Amazon rewards loyal Kindle devotees by closing the book on old e-readers

Chris Gray 1
Happy

No, you don't

The email from Amazon says nothing about your old Kindle. I'll be keeping mine around to read what is already on it.

But, I did take the opportunity to order one of their new colour e-ink Kindles at 20% off. Supposed to arrive today. I've been wanting a colour e-ink device for years. I hope I can easily put copies of all of the stuff on the old Kindle on the new one. Some risk if I then turn on the WiFi on the old one by accident.

Chris Gray 1

Re: No contact (yet!)

Got my email this morning.

The URL in the email for "identify your Kindle" doesn't go far enough back to include the Kindle Keyboard.

Prices are quite a bit higher now!

Chris Gray 1
Unhappy

No contact (yet!)

Kindle Keyboard owner here - mine still works fine, and the battery still last weeks. I've had no contact from Amazon about it becoming unusable. And, I sign on to Amazon.ca fairly regularly, at least when waiting for a shipment. I'm *not* an Amazon Prime member, and I always choose the cheapest shipping method. Still messing around moving over to a new "mini" computer I got from them. Typing on a wireless keyboard/mouse combo (Logitech) which is my latest order from them.

Comments don't indicate that anyone has actually received a notification from Amazon. Has anyone on here? Email?

Contracts are in C++26 despite disagreement over their value

Chris Gray 1

Re: Stroustrup said ... I worry a lot about the complexity

Have an upvote for Gormanghast. I tried, I really tried, to read that. Gave up somewhere in volume 2.

Outsourcer Telus admits to attack – may have lost a petabyte of data to ShinyHunters

Chris Gray 1
Meh

Long ago

I, and many other Canucks, have been getting lots of phishing emails claiming to be from "Telus" for quite a while - many months.

AWS Middle East disrupted after ‘objects struck datacenter’ amid Iran war

Chris Gray 1
Terminator

Start building your bunkers!!!!!

Bad idea, Samsung - don't you people watch movies?

The deaths will start around the new factory. Or perhaps the AI/Robots will be sneaky and start somewhere else first....

Indie web browser Ladybird flutters toward Rust with a little help from AI

Chris Gray 1

Re: Sorry! :-) :-)

Zed the programming language. Started long before the Zed editor or the Zig programming language. It's just taking me a loooong time since there is only me, and I've got other "hobbies". Weird hobby - I've done QD, QC, Toy and two variants of Draco.

Out of date stuff at: http://www.graysage.com/Zed/New

NOTE: you have to hit your browser on the head to turn off https-only - I haven't gotten around to learning how to do https yet.

Chris Gray 1
Facepalm

Sorry! :-) :-)

From the article:

"When we originally evaluated Rust back in 2024, we rejected it because it's not great at C++ style OOP."

Apologies for being so late with Zed. It has capsules (single inheritance classes) and interfaces like Java's, but is fully safe if you don't turn on privileged mode. Object code is similar-ish to gcc non-optimized output. I decided to add forward declarations of initialized multi-value constants and global variables a while back, and getting from my internal hash tables, lists of elements, etc. to Elf .o files has been hard on my weak brain. :-(

Chris Gray 1
Happy

Re: I am looking forward for Ladybird warts, controversies and all.

My banking web stuff works just fine in Firefox, and I have NoScript active - I allow the bank's website of course, but *NO* website gets to use "googletagletmanager.com". Showing transactions, transferring between accounts, payments to email accounts, etc.

Linus Torvalds and friends tell The Reg how Linux solo act became a global jam session

Chris Gray 1
Go

Different Path

1991 would have been too late for me (I'm *real* old!) I think it was the 70's that I would have been into all that OS stuff. My first computers were just for gaming, with cassette storage. I eventually got an Exidy Sorcerer system (CP/M) and a pair of 8-inch floppies. It's there that I started on my Draco compiler, etc. Then I spent a ton of money on an S-100 system to go with the dual 8-inch floppy box. Continued on with Draco, etc., and got a couple of plug-in graphics cards. Went down the path of writing a gaming system. I knew about the X86 systems, but didn't really want to get one and port Draco to it. When the Commodore Amiga came out (1984?), I got one of those and ported Draco to it. All my work was on that (and other Amiga's) for years. That system was so much better than the X86 DOS/Windows boxes of the time.

So, I went on a different path, otherwise I imagine I would have been an early Linux user, and likely contributer.

I've been on Linux for a few decades now, and wouldn't change that, but my choices haven't taken me along the contribution path.

Why does the Windows 11 taskbar hurt me like that?

Chris Gray 1
Stop

Ubuntu Mate

I have a Windows 11 laptop that I bought since nothing but newer Windows (maybe Mac) could access our latest provincial health care website. Luckily I don't have to use it much. Oh, now I have to use Teams occasionally.

Let me know when Windows can again run like I've run for decades: Monitor is in portrait mode, tool/task/whatever bar is on the right, since I'm righthanded, and I've put a regular menu set up top, then time and data transfer widgets, then a separator bar, then launchers for xterm, Firefox, my icons for "stop my rarely used spinny disk", "run "sleep 10; xset dpms force off" ", then some timewaster icons, another separator bar, and just the expandible widget that shows all my windows. Oh, and arrow widgets at top and bottom to hide the whole thing as desired.

Everybody gets used to different things; its been around for decades to allow them to do their own things. Keep that capability! Sheesh!

Anthropic's Claude Opus 4.6 spends $20K trying to write a C compiler

Chris Gray 1
Devil

Re: Not to mention

Fully admitting that I've never tried any AI. I'm familiar with old-fashioned AI from decades ago, though.

As my decaying brain struggles with problems in my compiler, I amuse myself thinking how one of the LLM's would handle it. A completely new implementation of all of a compiler, written in itself, a language that no LLM has ever seen. Could be amusing, but I don't have the time.

How the GNU C Compiler became the Clippy of cryptography

Chris Gray 1
FAIL

'strict'

It's been a long time, but doesn't Fortran have a rule that says something about evaluation inside parentheses cannot be moved outside of those parentheses? I believe it related to evaluation of expressions involving very small floating point values.

Because of that I long ago put a 'strict' construct into my Zed programming language. The intent is that stuff directly within the range of the construct must be executed as they appear. There were a couple of provisos needed, but something like this would seem to be more reliable and universal than things like setting the optimization level of an entire C function. Maybe for C30? (Kidding!)

Summer in Australia means beers, beaches, and bork

Chris Gray 1
Happy

weet-bix

Thank-you for introducing me to the "Weet-bix" product. My gran used to send packages of Weetabix from England (arrived sort-of OK), so I thought it was invented in England. Wikipedia put me to rights on that!

Elon Musk merges xAI into SpaceX to spread universal consciousness via a sentient sun

Chris Gray 1
Trollface

Moon aie

I've read a bunch of science fiction, but I must have missed the one where an AI on the moon enslaves mankind. Some sorta like that, but nothing really close. Can someone privide a proper reference?

CES 2026 worst in show: AI girlfriends, a fridge that won't open unless you talk to it, and more

Chris Gray 1
Happy

Sometimes you have to

I used to always buy loose tea, when you could get the sealed tins of it ("Twinings"). Haven't seen those for decades here. If you get loose tea from a tea shop, you'll observe that the small barrel it comes from is not sealed, and the container they put it in isn't either. So, you lose most of the aroma, which is the best part. Gah! I get a brand of tea bag that comes in 3 separate foil bags inside a plastic-sealed cardboard box. Fresh tea each time you open one of the 3 foil bags, which I can re-seal fairly well.

Chris Gray 1
Devil

Lepro AMI

Unless you are are running lots of blocking stuff (e.g. "NoScript"), *don't* click into the Lepro website - my guess is that bad things may happen. Instead, search for "lepro ami" on YouTube to see their stuff, with English subtitles.

Hey, I'd pay a bit of money for a cute Chinese girl cavorting on my desk, but she's not getting internet access!

GNOME dev gives fans of Linux's middle-click paste the middle finger

Chris Gray 1

Re: Can't remember keys...

Thanks, I've cut-n-pasted that from Firefox to a file in Gnu emacs. Had to select menu COPY in Firefox since its not the same clipboard as XTerms use (which is what I run emacs in - I don't want to waste space on a menu bar), and then the usual middle-button click to paste into the emacs buffer.

But, the two kinds of windows I use most are XTerms and Gnu Emacs in an xterm, and those keys do not do those things in either place. :/)

I similarly have a file on my Windows laptop's desktop telling how to use the trackpad - after, errrr, about 50 years of extensive mouse and keyboard use, my fingers just don't work on trackpads. Oh, and did I grumble about the lack of key travel and compressed keyboards on laptops? The windows laptop is faster than this deskside computer, but using external monitor, keyboard, and mouse sounds rather silly. Oh, I mostly use it for running WSL2... not sure what that runs, but X stuff works.

Chris Gray 1
Childcatcher

Can't remember keys...

I use the center-click multiple times a day. Did the ctrl-c/ctrl-v stuff even work on things like early SunOs? I hate that method because my horrible memory for plain facts makes it hard for me to remember the keys. Is "c" Cut or Copy? "v" for paste???? I get sooo frustrated the very small number of times I have to use Windows - *nothing* makes sense, so trying to remember them is extremely difficult for me, based on the one or two times a year I need them.

Gahh. Don't get old. :/)

El Reg needs an icon for frustrated old guy!

Recline of the machines: Terminator felled by dodgy battery

Chris Gray 1

Re: This is confusing

Can I paste and have it readable? Probably not....

Here is the Draco source for drawing a circle (Intel 8080 CPU) on a (Godbout?) Spectrum graphics card:

proc nonrec circle(ushort yc, xc, r)void:

int xd, yd;

word negY;

ushort x, y;

xd := make(r, word) << 1;

yd := 0;

x := r;

y := 0;

negY := 0;

while y <= x do

while xd + yd >= 0 do

point(xc + x, yc + y);

point(xc + y, yc + x);

point(xc + x, yc - y);

point(xc - y, yc + x);

point(xc - x, yc + y);

point(xc + y, yc - x);

point(xc - x, yc - y);

point(xc - y, yc - x);

y := y + 1;

negY := negY - 1;

yd := yd + negY << 1;

od;

x := x - 1;

xd := xd + x << 1;

od;

corp;

Chris Gray 1
Headmaster

Re: This is confusing

Read a bit of the text there - interesting.

If I recall correctly, doing sloping lines without multiply/divide is called a DDA (Digital something something). I recall descriptions and comparisons in an early graphics textbook.

But, did you know you can do *circles* without mul/div? And no lookup tables. I did one for my "Explore" system on a CP/M S-100 graphics card. It's probably possible to modify that to do ellipses, but I didn't need that, so didn't try.

Fun times. Now I need the old geezer icon again!

Lego crams an ASIC in a brick to keep kids interested

Chris Gray 1
Thumb Up

May well be quite successful

All of this is my opinion - I have no inside contacts at Lego.

1) These are in no way intended to be replacements for Mindstorms or PowerUp. They are greatly improved replacements for the 2x3 light and sound bricks that Lego has been using for years.

2) If you read the article by Lego (https://www.lego.com/en-ca/smart-play) you can find some history of how these were developed. The "chip" inside the 2x4 brick (*NOTE* Lego pieces are described via (short dimension) X (long dimension) (optional X height), just like lumber, plywood, and other construction materials) is an ASIC, not a fancy CPU with lots of RAM and Flash.

3) They are intended to make kid's play more interesting and exciting. They are *NOT* intended for computer geeks. Lego fans might get some if they are interested. I'll likely buy one set just to play around with, but that'll be it - I'm not the target audience.

4) Geeks might buy some to strip the parts out of the SmartBrick, and sell the Lego pieces.

5) The protocol between the ID tiles (2x2x1/3 with no studs) and active minifigs, and the SmartBrick could be released, or geeks will figure it out. That'll likely allow things like different sounds and light patterns.

6) The choice of initially going with Star Wars makes good sense. That theme has some highly recognizeable sounds - lightsaber, TIE fighters, wookie calls, etc.

7) These are an excellent answer to what Lumibricks does (I have the Ore Factory and love it), but what you could do with this new SmartBrick system is going to raise things to another level.

Welcome to Wendy's! Before your order can be taken, you must first reset this kiosk

Chris Gray 1
Meh

Non-standard kiosk?

Looks like that "kiosk" is hacked together out of cardboard and an old tablet or something. We have lots of Wendys in Canada, but I doubt regulations would allow that kluge. I haven't eaten at a Wendys for a fair while, but I recall a regular burger with no condiments (I know, I'm weird!) was pretty good. I liked the milkshakes.

All aglow about DCs, investors launch $300M at microreactor startup

Chris Gray 1
Childcatcher

Could be appropriate

If you get on their order list early enough, these *could* make sense. A lot would depend on the regulatory situation where you want to put it. If there are no regulations (maybe the used-to-be-orange one will wave his, er, wand, and make them go away) it could work. In many places there are lots of regulations concerning wind power, and it does take time to set up, even after you've made it to the head of the queue. Gotta get your datacenter running before the AI bubble pops!

Old-school rotary phone dials into online meetings, hangs up when you slam it down

Chris Gray 1

Re: I have some old phones

The POTS exchanges were quite forgiving. I had read somewhere that you could dial using the hook plunger thing. Just tap it N times to dial an N (10 for 0). Worked fine.

Soooo, when I wanted to dial out for a 300 baud modem, just do the same thing in simple code - the hook switch in RS-232 is available. Aaand, you didn't need any kind of modem really, since 300 baud was slow enough that even an 8-bitter could implement a "bit banger", where the RS-232 TX line is simply bounced up and down with the proper timing. Just remember that the start "bit" is 1-1/2 bits long, and you need a couple of off bits between bytes. For incoming, you just counted properly (depends on your CPU speed) and then sampled to see if it was an incoming 1 bit or a 0 bit. Wait for the start bit between bytes, and you stay in sync. Sample at the middle of the data bits. Pretty much how UART chips did it.

LisaGUI recreates Apple's innovative computer OS, without emulating it

Chris Gray 1

Expandable?

Thanks for the article Liam! This old fart didn't know much about the Lisa, and had just assumed it was "conventional" in operation.

Question though: could someone other than Apple add a document kind and the code needed to handle it? If not, perhaps Apple invented the "lockin" concept before Microsoft. :/)

SpaceX and Musk called on to rescue China's Shenzhou-20 crew

Chris Gray 1

Try it on earth.

Surely it wouldn't be hard for the Chinese to ship one of their docking adaptors (without space station attached!) over to SpaceX, so that SpaceX could hack up a variant of what they use that will properly mate with the Chinese one?

Famed software engineer DJB tries Fil-C… and likes what he sees

Chris Gray 1

Re: Type checking and compatibility

I've read on stuff for formatting comments here. I don't have a badge, so I can't use < pre >. Gonna try anyway:

Nope, nor does blockquote or code (I don't know that one)

Any other suggestions I can try?

As a programmer, posting little code snippets is a natural thing for me.

Chris Gray 1

Re: Type checking and compatibility

Conceptually makes sense. The big issue, at least in my case, is that the conversion factors are continually changing. So, they could not be compiled into a "program". Even if you only ran the "program" right after updating it, you'd want the updating to be automatic, so you would need your "compiler" able to go fetch them from whatever authority maintains them. (Is there such a single authority? I'm a bytes guy, not a money guy.)

Chris Gray 1

Re: Valgrind

Thanks to both of you for bringing up Valgrind. Caused me to read a bit more on Wikipedia, answering my question about whether it worked on C sources or on binary files. The fact it uses the latter is good, since it should work on binaries produced by my Zed compiler.

A friend ran valgrind (Memcheck I think) on my earlier Zed stuff and found one uninitialized variable, easily fixed. It also reported a problem that I was not able to track down - the badness seems to have been going through my bytecode engine's memory.... That *should* have been OK, but it would have required some "interesting" hacks to try to chase it further.

Now that I have "zedc" the standalone compiler, I should be able to valgrind it (biggest program I have used it on so far is 2K lines of Zed). Valgrind the compilation, then Valgrind the test program - whee!

Chris Gray 1

Re: Type checking and compatibility

Ok, I was wondering if that type of size change was what you had in mind. You need to also pay attention to the signed/unsigned attribute. If the starting value is signed, then the sign bit will be extended as needed. If the starting value is unsigned, padding 0 bits are inserted. You *do* need to be fully aware of when you are expanding numerics, but most code never has to worry about it. Whether or not you check for loss of value on a size reduction will depend on the "level" of your programming language, and then on what it's rules are for specific situations. I've avoided that issue in Zed by only having low-level sized types. 'uint' and 'sint' are only ever 64 bits.

Chris Gray 1

Re: Type checking and compatibility

Disagree, at least as far as strongly typed compiled languages are concerned. Type 'bool' is true/false. If you want more, then feel free to add such a type to your programming language, but the historic use of the simple 'bool' is very strong.

In my AmigaMUD programming language, type "status" had values "success", "failure", "continue" to deal with attempts to do things in the game world. What you need/want depends on what you are doing and the context. Leave 'bool' alone.

Page: