I also sold a few shareware apps in the late 90's and early 2000's. Mostly command-line email and/or command-line something-or-other utilities.
435 karma · joined February 1, 2009
The Stray Pointers Podcast : https://straypointers.com
Github : https://github.com/jimlawless
Retrocomputing site : https://jumptable.net
I also sold a few shareware apps in the late 90's and early 2000's. Mostly command-line email and/or command-line something-or-other utilities.
We would punch up a program along with a few Job Control cards and we'd place them in trays in the computer lab. About once every ten or fifteen minutes, a computer operator would stop into the lab. They'd gather the rubber-banded decks of cards. Then, they'd submit them for compile/execution. They would also deliver output printed on greenbar paper from the prior run. The instructors would grade on what should be a "clean" greenbar listing ( good compile and no runtime errors. ) They could still catch logic problems and such by reading the code, though.
When the card decks were left alone in the trays, some of the jokers I went to school with would punch up COBOL and/or Assembler comment cards with crude jokes on them and they'd insert them in peoples' decks to see if the instructors caught eye on them when grading the greenbar listing. Something like:
* HEY, PROFESSOR SMITH.. YOU'RE CUTE!
When the system got busy ... like during finals ... you might only be able to get one compile/run in per day.Using the keypunch machines was difficult. The print mechanisms didn't always work on the ones we had, so you couldn't always see what you were typing.
One of the students did have an unusually large program punched on cards and they dropped the deck in the hallway. They didn't have sequence numbers punched on the right edge so sorters couldn't be used. A group of us each took some pages of the last printed greenbar listing and a pile of the cards and we'd put together what we could ... trading the cards out to others like we were each solving little puzzles. I'm pretty sure that we got the program back together.
Not only did many of us have 8-bit micros at home where we could dash off programs in BASIC quickly, all of us were required to take BASIC on the Prime minicomputer ... so everyone knew that there was a better way. At the end of that first year, we got to use 3270-ish monochrome terminals which were much better. We could submit our jobs directly then, but we still had to wait for the greenbar delivery to find out the fate of our compile/run for batch jobs.
Subjects: tech, retrocomputing, retro pop culture, radio, interviews, books, comics, TV, music, movies ...etc.
For the record, it's all static content. It's generated using Hugo.
He had said that they had their star-programmer there who could dash out complicated MUMPS data queries in very short order. My friend said he had some fun programming in it, but he left the telemarketing company to move on to more conventional programming languages.
https://www.se-radio.net/2008/05/episode-97-interview-anders...
Little Languages: I like to tinker with my own compilers / interpreters. I had read an article recently about someone building an example Linux shell and I wanted to try a couple of ideas where I thought I'd take a different approach than the author. I ended up building a very, very tiny BASIC interpreter in C. My proof that the interpreter was "good enough" was whether or not I could write a script in the dialect of BASIC to display the lyrics to the song "The Twelve Days of Christmas."
In the late 90's, I sold a command-line SMTP e-mailer for Windows. It was easy enough for folks to integrate e-mail transmission into their systems ... even 16-bit systems since spawning a copy of the shell would allow 16-bit systems to invoke my 32-bit mailer. Lots of folks had used these tools for all sorts of things. I got registration checks and cash from around the world before I started taking credit card payments.
I have an open source command-line MP3 player for Windows that folks still use and incorporate into their systems, JS libraries for node.js, ...etc.
The blog is called The History of FoxPro. The Ratliff interview is just one post of a number in the pre-history of FoxPro detailing the rise of dBase. Many of the others pertain to FoxPro.
http://www.foxprohistory.org/tableofcontents.htm
I agree with you about the FoxTales book. It was a great read.
I had an entry in issue #7 in the Obfuscated Perl contest. I took second place in the best "The Perl Journal" printed output competition.
https://www.foo.be/docs/tpj/issues/vol2_3/tpj0203-0012.html
A lot of the content from these issues was collected in the O'Reilly book Games, Diversions, and Perl Culture.
As someone else posted, the C-128 and 1571 disk drive had much better CP/M support. The 128 had a built-in Z-80 and 80-column capability. The 1571 could read/write CP/M format (and MS-DOS format for that matter) disks.
I found a couple of things to not ring true in what I'd read about the compiler, though. There were issues around a lack of error messages when students would send incorrect parameters to a function. If I remember correctly, I think that one could transpose the arguments in a call to fprintf() so that the FILE * reference was not the first parameter. A few of my students put a format string at the front, a few parameters, and then the FILE *. I believe that the version of Power C that we were using did not flag this as invalid. I question the ANSI compliance claim because of this and a couple other odd issues.
The other thing that didn't really ring true was the often-quoted line about loving the book and throwing away the compiler. Really, the book wasn't that great, in my opinion.
I do believe that one received more than their $20 worth of value from the offering, though. It was a nice enough compiler with a decent book.
Windows clipboard capture to file tool. Any new image placed on the clipboard is written to a sequentially-numbered file so that I can just hit various Print-Screen key combinations or I can right click an image in a browser and click Copy to capture it.
Python / PIL scripts to arrange directories of images into seamlessly connected wallpaper images.
Lots of email automation scripts, both sending and receiving. ( Pruning spam, marking all of my unread messages read, sending alerts for blog post updates. )
Scripts to convert filenames to all lowercase in a folder.
Startup scripts that forcibly turn off Windows options that I don't want because Windows update sometimes re-enables these.
Python/Bash + Cheese - Poor man's security system. I used an old netbook with the camera pointed at the inside door of a house I used to own take a picture of the door area and send it to me via email so that I could monitor to see if anyone had been inside while I was gone for an overnight trip.
Custom RSS aggregator scripts ... sends results to me in email so that I keep a record of the articles by day.
...etc., ...etc.
https://github.com/jimlawless/cmdmp3
It doesn't work on all versions of Windows ... it depends on some configuration elements. This has been used in another developer's video game and I believe it's installed with an MP3 player library in node.js ( if you're running node.js under Windows. ) It also plays WAV files on Windows 10 (possibly 11) if you pass the name of a WAV file into the command-line.
I needed a command-line emailer that would send an email via Gmail with a very simple one-line body for my Mac. I also wanted to exercise Go's SMTP libraries while experimenting with trying to build a minimal emailer application.
https://github.com/jimlawless/gsend
I use this regularly. I used to use it on MacOS, but I use it more frequently on Windows.
Have you thought about introducing them to something where they could code/create online and could share their work? You might want to take a look at the online free Logo system at:
http://www.logointerpreter.com/
They would be able to click on the works others have published there and they could tweak the code to do other things.
You might want to look at using FastCGI:
https://en.wikipedia.org/wiki/FastCGI
Basically, the CGI processes stay alive and the servers supporting FastCGI ( like Apache and nginx ) communicate with an existing FastCGI process that's waiting for more work, if available.
I've experienced this kind of page-reload relating to buttons that are of type SUBMIT and no specific ACTION is specified in the FORM tag. Sometimes, the default SUBMIT behavior triggers earlier than an attached Onclick() handler. If there's no ACTION, it reloads the same page.
You might try adding the following attribute to the FORM element:
ACTION="javascript:void(0);"
This should prevent the form from SUBMITting to itself. The job to submit the form then relies on JavaScript code in an event handler to submit the request properly.
You also might try switching the type to BUTTON if you just want to attach an Onclick() handler to it.
For me, tinkering with Forth on a C64 was attractive because I could interact quickly with the compiler, getting immediate feedback when I was toying with different concepts.
https://ftp.sunet.se/mirror/archive/ftp.sunet.se/pub/simteln...
(envy100.zip)
It was a program that provided 37 or so extension functions for batch scripts. Many of them that performed an expression evaluation left a result value in the environment of the parent process. Details and source code can be found in this old blog post:
https://www.mailsend-online.com/blog/envy.html
This really takes me back.
https://www.youtube.com/watch?v=iIf6leAPaEM
(He states that there's a connection between his trying to get funding for the show and a famous TV ad.)
Each C program in our system included a header file with a few globals that looked something like this:
char *dave="Copyright ... blah, blah";
char *bob="More magic and mirth from the mavericks in MicroDev";
char *jim="CAPS Sucks!";
The system we were replacing was written in a proprietary programming language called CAPS that was a royal pain to work with.A decade or so later, after we had moved on to other projects and other companies, one of the old users called me. They were using the system to board a customer and in the printed paperwork that the system generated the words "CAPS Sucks!" showed up! They caught the error before sending the paperwork to the new customer, manually correcting it.
I talked with a new programmer overseeing the system. They eventually found the bug in some code they'd added that caused a pointer to go astray which ended up pointing to constants in early portions of memory ( early because those three strings were in the first #include file in the set.) Why it skipped over the first two strings, I'll never know for sure.
http://www.drdobbs.com/web-development/clientserver-developm...
Using Prolog in Windows NT Network Configuration
http://web.archive.org/web/20040603192757/research.microsoft...