When I was a kid … ten or eleven years old … I happened upon a local AM radio talk show called Beatles Trivia. It aired Sunday nights at 10:30 p.m. I was a burgeoning Beatles fan, having “discovered” them in the mid-70’s.
The show began as a 5-minute segment during the 7:00 p.m. to midnight “Hall of Fame Show” on Omaha’s WOW AM radio (590 on the AM dial.) By the time I happened upon it, the show ran for about an hour.
I had discovered the International Obfuscated C Coding Contest (IOCCC) some time in the late 1980’s in the pages of a printed technical magazine. At the time, my C skills were still in their larval stage, but I was very intrigued by the handful of entries that had been presented.
In later years, I tried my hand at other obfuscated coding contests, each time usually on a whim. I managed to irritate a few people with an entry in an obfuscated Ruby coding contest and I managed to see print in The Perl Journal for one of that publication’s obfuscated Perl coding contests.
I like to use the PNG format for Mac screen-captures to ensure that I don’t lose any clarity in the source images. I often convert these images to JPEG format for inclusion in email or posts. I got tired of running the conversions by hand.
tojpeg.rb is a Ruby script for OS/X and MacOS that uses the sips utility to convert the PNG files in ~/Desktop to JPEG counterparts. The PNG files are left intact.
Years ago, I used a macro in C and C++ programs to provide information on the current line of code being executed. I used this in error handlers and exception traps in addition to other information. Displaying the file name and line number of a given exception in large projects was often helpful in the speedy remediation of issues.
I also used this technique to home brew tracing function in the code.
I had the need to test connectivity between a couple of servers, recently. Netcat wasn’t available so we managed to cobble something together that worked for the particular situation.
An “echo server” is a program that people often code as kind of a “kata” for practice. I decided to write an echo server in Go.
I have not tested this code on all appropriate environments, yet, so I wouldn’t say that this code is completely stable.
In the early 1990’s, I began writing for a few of my favorite technical magazines. Here is a mostly-complete list.
Windows/DOS Developer’s Journal, September 1992
A Universal EXE-to-BIN Conversion Utility ( Tech Tips ) and More on Copying Large Data Chunks in C ( Tech Tips ) The second entry was co-authored by my friend Roger Samaan.
Windows/DOS Developer’s Journal, March 1993
Converting a Windows Screen-Saver into an Application ( Tech Tips )
I saw in the online Wall Street Journal that Radio Shack is preparing to file for bankruptcy:
http://www.wsj.com/articles/radioshack-prepares-bankruptcy-filing-1421279360
I had read a blog post eulogizing the store from a former employee several weeks ago. I ended up on the Radio Shack Catalogs site:
http://www.radioshackcatalogs.com/
…poring over old catalogs, looking at all of the gear that I’d purchased throughout my childhood and through the early years of my adult life. Reminiscing brought back some good memories.
I was a little choked up when I read Andrew Binstock’s post Farewell, Dr. Dobb’s :
http://www.drdobbs.com/architecture-and-design/farewell-dr-dobbs/240169421
The articles in the magazine were a powerful influence on the quality of my technical skills.
In early 1987, I was in the final quarter of a vocational/technical programming curriculum. I would soon be out looking for gainful employment as a computer programmer. I read a fair number of computer magazines at the time, but most specialized in the Commodore 64 family of computers.
I built a non-Turing-complete interpreter in Go whose current incarnation is simply named “rpnrepl”. rpnrepl is a very tiny stack-based, postfix language whose syntax is similar to that of the Forth programming language.
rpnrepl can only perform four mathematical operations, display the topmost item on the stack, display a newline, and exit the running program.
Unlike Forth whose grammar can change dynamically, rpnrepl does have a simple grammar. Words are separated by spaces unless bound by single quotation-marks or double quotation-marks.
In the Go code I’ve been writing to help learn the language, I’ve been using a common function to deal with error conditions. The function terminateOnErr(err error) checks to see if the err parameter is nil. If not, it displays the paramter and calls os.Exit(1).
func terminateIfError(err error) {
if( err != nil ) {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}
Later in the code, I use the following line after every error check that I need to perform: