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.

What I was doing at age 18

I recently realized that a very important aspect of what I have done for the past year in my day job is echoing how I got started in my career. That is, I spent a bunch of time last year and this year justifying a large technical project — in writing for a less-technical audience — and then working with other people to get it organized and deployed. I’ve also recently in my work gone back to that project — documenting the project so that other folks could finish it, and a non-IT PM could manage it — so that I can get back to programming.

Realizing that, it inspired me to see if I still had the documents I’d written for that original project. It turns out, I did — both the original proposal, and a mid-year budget for the actual ordering once we got the project approved.

So, what was this project? Getting my high school computer lab on a LAN, and on the internet — the latter isn’t mentioned in the original proposal, so I guess it was scope creep, but it was awesome. The project lead to my first full-time summer job and my first full-time job when I took my break from Dartmouth (both doing Novell server admin work plus some desktop support) and I’m pretty sure the project itself — still underway — made a difference in my college applications.

A PDF reconstructing the original documents is here: Networking Computer Resources for Hunter College High School: A Modest Proposal Below the break, reminiscences and a text version of the document itself.

Continue reading “What I was doing at age 18”

A letter I sent to the Chancellor of UCSC and the Chief of Campus Police.

I spent an hour stuck in UCSC local traffic trying to get to class, only to be forced to turn around by (expetive deleted) protesters while a campus PD officer stood and did nothing. Then spend another half hour stuck in traffic getting away from campus.
Continue reading “A letter I sent to the Chancellor of UCSC and the Chief of Campus Police.”

An eventful weekend.

1) As of Friday, I was accepted for readmission at UC Santa Cruz, and will be going back to retake Algorithms and finish my MS this spring. W00t.

2) As of Saturday, we are officially under contract on a house. It’s here in San Mateo, really near work. Pictures are available but will not be posted here until we close, which will be on like March 2nd or something like that. Keep your fingers crossed that nothing gets screwed up on the financing.

On the down side, I was sick as a dog with a cold all weekend.

“It’s an honor just to be mentioned.”

I tried Cuil today, and was generally unimpressed – Google still does a much better job of finding the relevant pages, whatever the index size. Further, in the absolutely critical job of ego-googling myself, Google has a lot more of my personal web pages indexed… as opposed to LinkedIn or various index sites referencing my pair of grad school papers, or the one annoying of all, sites mirroring various USENET groups and old mailing lists I post or posted on.

The one very amusing thing that Cuil DID find was a recent LJ/blog post critiquing a graph in the first of my two grad school papers: Your Graph is Bad and You Should Feel Bad

As an aside, there is a rather lame blogmeme sitting in my lifejournal (cubicle_hermit) which will probably be erased, but for those interested, you might look now.

HCHS Represent

Heh. At least we got mentioned:

The Public Elites
Some schools didn’t make our list because their students are too good. The best of the best.

NEWSWEEK’s Challenge Index is designed to recognize schools that challenge average students, and not magnet or charter schools that draw only the best students in their areas. These top performers, listed below in alphabetical order, were excluded from the list of top high schools because, despite their exceptional quality, their sky-high SAT and ACT scores indicate they have few or no average students.

[snippage to lower on the page]

Hunter College High School, New York City: College prep school that serves grades 7-12 and is tied to the City University of New York system.

Oddly enough, Bronx Science got better sounding coverage than Stuyvesant, and Brooklyn Tech wasn’t mentioned at all.

(This was accidentally set as a Page, rather than a Post. It was originally posted on May 19th)