The Givers And The Takers

This is a story from the early Internet and also early in my software development history.  I suppose I was a budding professional programmer at the time, because when I had Internet access, I was working at the ISP that was providing that Internet.  I was primarily doing networking and hardware, but I was also writing software for them as well.  And, because programming is just what I do, I did it at home as well.

Also at the same time, I was into music.  I had some keyboards and I was probably getting started with MIDI recording and playback.  And I don’t remember exactly what the end goal was, but I was keen on using my programming skills with my music equipment.  And this required being able to write a program to receive and send MIDI commands.

Being a lifelong BASIC programmer and having advanced to the new Visual Basic language, I was probably using something between VB4 and VB6.  Now, if you’re unfamiliar with early Visual Basic, it was designed for simple business applications – data entry type stuff.  So having access to "the hardware" like you would need for reading and writing MIDI messages was not something that was built in.

But, for those that had the knowledge and skill, you could get access to "the hardware" using Windows APIs.  They were cryptic and poorly documented, but they did exist.  And thanks to having the Internet where I could search on these topics, I was able to find people that were also trying to use MIDI in VB.  My searches led me to some API calls that I could make and after a lot of experimentation, I actually made a small program that would print periods in a textbox when a note was played on one of my MIDI keyboards.

And that’s one of the moments that a developer lives for.  You started knowing nothing and you made it actually respond in a way that you wanted.  But the program wasn’t perfect.  While it could read and acknowledge data received, if you tried to close the program, it would crash, hard.  Now, with all my experience and knowledge, I know why that happened, but back then, I didn’t have a clue.  And there was nothing on the Internet that could explain it to me.  Search engines could find you some pages, but they didn’t have text-based searches like they do now, and there was definitely nothing like AI searches where you just ask a question and get an answer.  But, I did have that page with the discussion of people that were trying.

Back then, people welcomed being contacted.  Their public email addresses were readily shown to the world.  So I emailed the one who seemed to have the most knowledge, although he was also one who said MIDI in VB couldn’t be done – he tried.  I explained what I had accomplished and the problem I had with it.  And he replied that he would look into it.

Eventually, I did get a response from the guy.  He got it to work!  I suppose I had given him enough info for him to try things a different way and he was successful.  Awesome.  Or maybe not.  In his response, he attached a binary file of his working code.  He said I could have a free copy of the user control and that he would be selling his code online.  He might have thanked me or maybe not, but he did say he would not be telling me how he did it because that was now his intellectual property.  At least I didn’t have to pay for his code, right?  I gave up on the project and never returned to it.

I had forgotten about that story for decades and only recently thought of it when I was thinking about people who program for the greater good.  You know, open source and stuff like that.  And here I was, only a teenager, and I get taken advantage of for asking for help.  Surely he was much older and more savvy to the ways of the world, but the idea that if you provide information to someone and ask for help and not only do they refuse to give it to you when they could, but then try and profit from what you gave them…  Well, it almost sounds like AI data mining.  Huh.  Everything old is new again.

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>