Programming Languages, as I learned them (pt1)

I wrote this around 6 months ago, and somehow never published it

BASIC

(1980-83: CP/M MBASIC, Commodore, BASICA, QuickBasic, VB6; a little bit of AppleSoft and TRS-80)

Somewhere around the holidays in 1980 or perhaps early 1981, I had my first encounter with a computer thanks to one of my parents’ friends noticing I was bored at a holiday party. This created a bit of a monster, wherein I’d attempt to borrow time on any of my parents’ friends’ machines I could reasonably borrow. I initially learned just enough MBASIC to load the text based games of the time – Star Trek, Wumpus, that sort of thing – but I got interested enough to start writing simple loops and interactive stuff, and acquired a couple of books about it.

Over the next two years, my elementary school acquired a room full of already-somewhat-aging PETs (some 2001s, some newer) and I attended a programming for kids enrichment program at LaGuardia College in NYC wherein I annoyed the instructors by getting too far ahead. Perhaps more memorable than the curriculum was the fact that they used the dark-case Bell and Howell Apple “clones” (a quick scan of retrocomputing sites suggests they were actually made by Apple and rebadged)

I spent a semester in California (thanks to my dad being on a visiting faculty semester at a university out here) in the spring of 1983 and got exposed to the Commodore 64, which was the first machine I learned some minimal graphics programming on. I got my own 64 that fall — I had been told for about 6 months that we were getting me a Timex-Sinclair for my birthday, and then when prices on the Commodores dropped sufficiently, it turned into a much better machine.

As my folks’ friends moved around that period from CP/M to PCs machines and clones (or in one case, an odd hybrid called the Seequa Chameleon), I learned a fair bit of BASICA/GW-BASIC.

My only major exposure to a non-Commodore consumer rather than business 8-bit version BASIC was on the TRS-80, which the magnet school I attended for one year in 6th grade had a full room of (mix of Model 3 and Model 4 one-piece machines; I had no idea at the time what the difference was) and my main memory is of writing a very simple Rogue-like (in the traditional sense) “move the character-based player around a text map on the screen” UI, although I don’t remember whether there was any “game” to it or just the PC movement. I think the TRS-80 basic had “PRINT @” rather than having to use cursor-movement characters or POKE the screen RAM as on the Commodore.

My folks got a PC (an original IBM XT, in fact) at some point during the in the 1986-87 school year, and I started got pretty good with BASICA, and later with compiled MS BASIC (or IBM Basic; I’m not sure at this point where the copy of the basic compiler came from.) Later, in high school, I got my hands on QuickBasic.

I learned VB6 much later; my employer during my mid-1990s break from college was a consulting firm that was, among other things, a Microsoft reseller. While I didn’t have an MSDN subscription through them, we had access to not-for-resale versions of almost anything Microsoft sold — my understanding is that this was for demo and training purposes, and as an employee I was allowed to order them up and reimburse the company. So I bought VC++ 6.0 and VB 6.0; while I was pretty comfortable with C and C++ (to be covered in later entries in this series) and learned to use both to an extent, doing actual Windows (MFC, etc) programming in C++ never clicked. VB, however, was probably the easiest language I’ve ever used to do desktop GUI development and the language itself was kind of just QuickBasic with a UI designer tagged on. Until I later, when had to do professional work with it, I liked it.

When, coming out of college I got my first programming job, I had VB6 on my resume. That company, Kana Communications (later KANA Software) had both a web client and a VB6 based “Power Client.” I was hired onto the server team – what we’d call back-end now – and was warned at the time not to tell anyone I knew VB6 — I assume lest I be pulled into working on the Power Client (more about this, and Kana in general, under Perl/Java).

When the dot-com bubble burst, and the company became much smaller, one of the things happened was that we needed to get someone to maintain the Power Client, and I ended up volunteering. It was already in maintenance mode (the newest release we were putting out retired it and deprecated the Web Client, in favor of a Java Swing app via WebStart) so there wasn’t a ton of new development, but I did learn to have a thorough distaste for what was by then (late 2001 into 2002) very dated tooling. I’ve half wanted to try VB.net since I became aware of it, but it’s never gotten anywhere near the top of my to-learn queue.

Honorable Mentions

In addition to languages I actually learned, I’m going to have a few other mentions, of languages I’ve gotten exposed to but where either I never finished learning them, or where they’re IMO too close to something else to claim credit for learning a new language.

Honorable mention 1

Logo

(sometime around 1981, revisited in 1986)
I got exposure to this in school a number of times, starting with the PETs whenever it was that my school got them, and at some point I played with it on PET, C64, Apple II and TI. Like pretty much anyone else my age, it was cool creating graphics with the Turtle, and by the time I re-encountered it in 6th grade on the TI, I remember doing some parameterized functions along the lines of “give a number 3 or higher, and my function generates a star with that many points” but I never learned to do much of anything else with it.

Chili, a questionable success

This blog is pretty much dead, but I use it as a notepad mostly for recipes these days. If you like any of these, feel free to reuse them, and consider sending me a shout out on my twitter @nkedel

This came out really thick, and perhaps a bit too salty – unsure what to do to fix the salty, but the thick is an easy fix. Otherwise, it was really good.

Finely chop 1 large onion (maybe 1 1/2 if upping the amount of beef)

Peel a couple of chunks of garlic

One 2oz package Pasilla-Ancho dried chiles, with stems and seeds removed
– toast, then break up into moderate sized pieces
– put in food processor

mix 1tsp baking soda and 1 (or 2) pounds of ground beef thoroughly, set aside approx 15 minutes

Add spices:
– 1/2 tsp each spicy ones: chipotle powder, ancho powder, smoked paprika, cayenne [came out spicy, don’t double]
– 1/2 tsp functional ones: MSG, sodium citrate [don’t double]
– 1 tsp: celery seeds [or powder], dried oregano [new this time, was a win]
– 2 tsp black pepper [don’t double]
– 1/2 tbsp each: garlic powder, onion powder, cumin [double w/ 2lbs meat]
– 1 tbsp: chile california powder, sweet paprika, coriander [probably leave the same]
– 1 tbsp: cornmeal

Run all of the above in food processor until a uniform fine powder.

drain and puree 1 jar of roasted red peppers, set aside

Use an oven safe kettle or dutch oven

Preheat oven to 375f

2tbsp olive oil in pan (3tbsp if 1 1/2 onions)

Dump in onions

Cook onions until glassy

Add garlic via press

Add ground beef, brown

When browned, add spice mix, stir in

Immediately add pureed red pepper and mix

add 1 can tomato paste, and mix

add 1 can fire-roasted diced tomatoes, and mix

[if doing 2lbs beef, next time add a 2nd can crushed tomatoes or pureed diced ]

add one can of black beans, including liquids [don’t double – look for low sodium next time if you can find it]

add 1tbsp molasses, 1tbsp soy sauce, 1tsp worchestershire, 1tbsp beef base [low sodium if possible]

add low-sodium beef broth around 16oz [or maybe 12oz dark beer + 4oz of broth?]

Stir until uniform, then cover and put in oven

Bake for ~90-120 minutes, removing to check for separation and stirring every 30 min or so. Add liquid if it starts having an overly thick texture, should be stew like not casserole.