Fully retired now and one of the things I’d like to do is get back into hobby programming through the exploration of new and new-to-me programming languages. Who knows, I might even write something useful someday!

  • 0 Posts
  • 30 Comments
Joined 2 years ago
cake
Cake day: July 4th, 2023

help-circle
  • dBASE was not my first language, but learning normalization and modelling completely transformed my user interface design. Starting with dBASE, every UI I built used all available data to do some combination of reducing the potential for error and reducing user effort.

    For example, choosing “Tesla” as the make of car should obviously hide “F-150” from the list of models and hide all fuel types except “Battery Only”. This seems obvious to pretty much everyone, but there are a lot of UI designs that completely ignore analogous data relations. Less obviously, but just as important, having reduced the list of fuel types to one possibility, it should be automatically filled in.

    I find web forms, especially government ones, to be particularly bad at this stuff.


  • This, together with the borrow checker, ensures that there are (nearly) no “weird bugs”. Where in C++ one quite regularly hits issues that at first glimpse seem impossible, and only can be explained after several days of research on cppreference (“oh, so the C++ standard says that if this piece of code gets compiled on a full moon on a computer with a blue power LED, it’s undefined behaviour”), that almost never happens in Rust.

    Ah yes, the Chaos Theory principal of programming.

    You’ve settled my mind on which language to tackle next. There are a couple projects that have been calling my name, one in Go and one in Rust. Strictly speaking, I might be able to contribute to their documentation and tutorials without ever looking at the code (nobody in their right mind would ever accept code from me anyway), but I like to have some idea of what goes on under the hood.

    Rust it is.



  • All those assembly language instructions are just mnemonics for the actual opcodes. IIRC, on the 6502 processor family, JSR (Jump to SubRoutine) was hex 20, decimal 32. So going deeper would be really limited to not having access to the various amenities provided by assembler software and writing the memory directly. For example:

    I started programming using a VIC-20. It came with BASIC, but you could have larger programs if you used assembly. I couldn’t afford the assembler cartridge, so I POKED the decimal values of everything directly to memory. I ended up memorizing some of the more common opcodes. (I don’t know why I was working in decimal instead of hex. Maybe the text representation was, on average, smaller because there was no need of a hex symbol. Whatever, it doesn’t matter…)

    VIC-BASIC had direct memory access via PEEK (retrieve value) and POKE (set value). It also had READ and DATA statements. READ retrieved values from the comma-delimited list of values following the DATA statement (usually just a big blob of values as the last line of your program).

    I would write my program as a long comma-delimited list of decimal values in a DATA statement, READ and POKE those values in a loop, then execute the resulting program. For small programs, I just saved everything as that BASIC program. For larger programs, I wrote those decimal values to tape, then read them into memory. That let me do a kind of modular programming by loading common functions from tape instead of retyping them.

    I was in the process of writing my own assembler so that I could use the mnemonics directly when I got my Apple //c. More memory and the availability of quite a few high level languages derailed me and I haven’t touched assembly since.


  • Prairie Centre Credit Union.

    After years of complaining, they finally did something about their hopelessly insecure authentication, only to completely bork it.

    Bitwarden could open the site, but couldn’t push the login info. They prohibited pasting, so I had type everything by hand. And they couldn’t even get that prohibition right, because I discovered that I could type a character then CTRL+V to paste, then HOME, DEL.

    All of that is written past tense, because it was the last straw. I took my banking elsewhere, despite the fact I now have to drive 2.5 hours if I need to talk to someone in person.





  • Maybe I read things too literally, but I thought “Fahrenheit 451” was about a governing class controlling the masses by limiting which ideas, emotions, and information were available.

    “Brave New World” struck me as also about controlling the masses through control of emotions, ideas, and information (and strict limits on social mobility).

    It’s been too long since I read “20,000 Leagues Under the Sea”, but I thought of it as a celebration of human ingenuity, with maybe a tinge of warning about powerful tools and the responsibility to use them wisely.

    I don’t see a lot of altruistic behaviour from those introducing new technologies. Yes, there is definitely some, but most of it strikes me as “neutral” demand creation for profit or extractive and exploitive in nature.


  • Fair enough. What evidence have you got that it’s any different than what humans do? Have you looked around? How many people can you point to that are not just regurgitating or iterating or recombining or rearranging or taking the next step?

    As far as I can tell, much of what we call intelligent activity can be performed by computer software and the gaps get smaller every year.


  • It’s a “gaps” problem.

    Creationism has the “god of the gaps” where every new fossil forces them to set the goalposts closer together.

    The people who think that human intelligence is something special have to adjust the spacing on the goalposts every time a corvid solves a new problem and every time someone figures out how to make a computer do something new.




  • Dummy question: does the new license apply retroactively? My limited understanding of licensing is that a new license can affect only those who choose to use the version that includes the new license. Those who don’t upgrade are still operating under the old license, aren’t they?

    I thought that non-retroactive licensing was key to keeping source open, because the user just doesn’t upgrade or someone forks and moves on.



  • In elementary school, I learned that the round numbers ended with 0. As I progressed, I came to realize that this was equivalent to saying that round numbers are integer-multiples of 10.

    Now that you’re asking the question, I would generalize that, so that round numbers are multiples of the base.

    In binary (converted to decimal), that would be 2, 4, 6, 8, …

    In octal (converted to decimal)l, that would be 8, 16, 24, 32, …

    … and so on.

    I also have no problem with negative round numbers.

    It strikes me that 0 seems to be a canonical round number in that it’s a round number regardless of base.

    I wouldn’t object if you were to say that round numbers are integer powers of the base (10, 100, 1000, … for decimal). If your definition doesn’t include 0, then I’ll expect a good explanation for why not.

    But, truth be told, I could learn to live with any definition I can wrap my head around, as long as I can use my elementary school definition in polite company. :)



  • I’m interested in this primarily as an English teacher. I need to be able to spot the linguistic tics and errors and recognize where it likely came from.

    That might well turn out to be the Red Queen’s Race. It’s only a guess, but I suspect that competitive models, the advances resulting from competition, and the advances and experimentation associated with catching and correcting mistakes will mean that you’ll generally be playing catch up.

    Frankly, I don’t even have anything more useful to offer than the unrealistic suggestion that all such work be performed in class using locked down word processing appliances or in longhand. It may be that the days of assigning unsupervised schoolwork are over.



  • I agree that consciousness is a sensitive issue. I haven’t refined my thinking on it far enough to really argue my position, but I suspect that that it’s just one more aspect of the “mind of the gaps”. As with the various “god of the gaps” creationist arguments, I think that consciousness will end up falling into that same dead end. That is, we’ll get far enough to start feeling comfortable with the idea that gaps are only gaps in the record or our understanding, not failures of theory.

    Some current discussion of the matter is already starting to set up the relevant boundaries. We have ourselves as conscious beings. Over time we’ve come to accept that those with mental and intellectual disabilities are conscious. Some attempts to properly define consciousness leave us no choice but to conclude that consciousness is like intelligence in that there are degrees of consciousness. That, in turn, opens the door to the possibility of consciousness in everything from crows and octopuses to butterflies and earthworms to bacteria and even plants.

    I find it particularly interesting that the “degrees of consciousness” map pretty nicely to the “degrees of intelligence”.

    So if you were to ask me today if my old Fidelity chess computer was conscious, I’d say “to a low degree”. Not because I claim any kind of special knowledge, but because I’d be willing to bet a small amount of money that we’ll get to the point where the question can actually be answered with confidence and that the answer would likely be “to a low degree”.

    To your discussion of the neural correlates of consciousness, my opinion is that making the claim that this still tells us nothing about “what material experiences” is a step into the “mind of the gaps”. I’m happy enough to have those correlates as evidence that information processing and consciousness cannot be kept separate.