Bio - Jim Michaels

 

Overview

I learned about computers mainly on my own and from the CP/M user's group meetings. I have had many different types of computers and have used many different types of lanugages (they all begin to look the same after a while, with the exception of smalltalk, LISP, and APL). I don't remember APL much and I can't do LISP.

I learned more about C/C++, Modula-II, Pascal programming, and compiler-writing at Portland Community College where I got my AS in Software Engineering - I had a really good but tough set of instructors. more C/C++ at OIT Metro campus (essentially some of the same classes) where I got my BS in Computer Systems Engineering (now they call it Embedded Systems Engineering, but they threw out the degree title after I got it).

I got interested in Computer Music when I learned about it in Dr. Dobb's Journal of Computer Calisthenics and Orthodontia (I had a few volumes). then I got some issues of old Computer Music Journal (which I heard about in DDJCCO and the mavellous work that was being done with the Fairlight). I was hooked on synthesized music. Which brings up Jean Michael Jarre's music. All synthsized, and 'the Well-tempered Clavier' and "switched-on Bach', of which I had a recording and enjoyed immensely.

after I got saved though, this music seemed hollow.

I used to go to the Pro music shop and examine the mixers, and play with the synthesizers and make interesting sounds (made a helicopter once).

I composed my own music cd's on our keyboard. I was thankful we were able to get it. I have not made any music since 2005. Once really neat sound I cannot reproduce as hard as I try.

College got me going as a "polyglot". I got maybe a B, and an occasional A, but mostly C's. I was spending all my time playing with the new ideas I was learning and imagining all the wonderful things I could do with it.

baby days

my dad fixed radio, clocks, watches, grandfather clocks, furniture, and resells them. he also fixes police radios. My mother was an architectural draftsman who worked for the Army Corps of Engineers and would have taken mainframe computer classes in college, but someone switched her around. So my mother was an Engineer, and my dad was a electronics and mechanical fixit guy.

and me?

my mother tells me I used to stick my fist in the light socket when I was little (do I like it now? no.).

I was always taking things apart. I wanted to see how they worked. I just wasn't any good at putting them back together again. until later when I was a teen. I got a lionel train set. I took apart the engine. I got an erector set once. I took apart the motor. never got those back together. I took apart my mother's (or was it my stepdad's) camera. I remember I got a spanking for that...

school days

I started working with computers back in middle school. decwriters and teletypes, playing games like mugwump and doing the Occupational Outlook thingy on the Decwriter (which had a keyboard and a dot matrix printer - fun).

when I went to high school, a friend introduced me to an Apple II in the library... He showed me a program that drew random colored lines all over the screen. I asked him how he did that. He showed me, and I didn't understand it all yet. I thought it was cool. then he showed me a program that shot colored ramdom lines out of the center of the screen out to a circle pattern. he showed me how to do that too.

I was barely learning algebra. He was teaching me trig functions. cool. so I started to get comfortable with sin() and cos() and learned early how they worked long before I got to trig class "elementary functions" in college.

I was on a roll. I was writing programs on the library computer like crazy. and I met other kids who were writing programs too. I started learning assembler and more basic. I learned to optimize my programs, and did sound and graphics. I grabbed the chance at 3d stuff. I learned to use floppy disks and the Apple II DOS file system.

I started attending the CP/M Users Group meetings. Since CP/M was going out of style, they changed the meaning of the acronym of the meeting every so often. Jim Willing, Bill Maxwell?, and Will Gallant, and Don Taylor were people I remember at the meetings on a regular basis, and people whom I learned a lot from. I traded a lot to get CP/M computers such as some S100 bus machines and other machines. but before that, I got a terminal and a 300 baud accoustic coupler modem. and I was on the BBS's all the time posting messages until I got tired.

I was always going into Showcase Music and Sound and admiring and playing with the Pro Audio equipment, hoping to buy someday.

I also spent a lot of time at the computer stores eyeing the Lisa and the Atari ST, which was the new kind of Mac with a graphical interface and a cool look.

I spent a lot of time at a friend's house playing games and running other programs on my friend's Amiga. Do you know some news stations were still (probably just up until the switch to HD broadcasting) using those for broadcasting newscasts using the famous Video Toaster? In fact, you can still buy Video Toaster software from NewTek along with a whole slew of switcher equipment and make different types of studios, from live news to post production. I had to do some video research for someone.

You will find I am good at doing research, if I am not feeling bogged down with tasks.

Later I got my first PC clone in 1986 ( the pc xt came out in 1984) for college purposes after I got out of high school. I had been wasting my time away. Ross had suggested I do something useful with my time. go to college. A friend helped me out (Ross Tuininga). I had no printer, so for college I got a Burroughs Lineprinter - Big Huge 500Pound all-metal 16-gauge steel thing. I had to haul it up in pieces to my bedroom (the only place my mother would allow it in the house). lotsa metal. FAST! I have an interesting repair story about that if you have a few minutes sometime where the Lord helped me in a bind in college. And later when I got work at Sequent I got a laptop (lasted for 8 hours and had 2 floppies - real workhorse!), and a Mac ProForma 630 (only for a little while, couldn't do anything with it, only had a floppy).

I have had a LOT of PC's come through my hands. At one time We had a lot of 8 or so compaq luggables with 20GB MFM hard drives. those were passed on.

where I am at now

Currently I have what I call a development box. it is what I do all my development on, and it is also my general work/home PC. my do everything PC. it is a Dell 4600 running XP Pro SP3 which I have kept alive through thick and thin, many bluescreens, disk upgrades, backups, and I think a restore, and a very difficult SP3 upgrade experience.

I have tried to avoid reinstalling the OS at all costs and to keep it running well for 6 years without reinstalling the OS (and I have learned things in the process). I have learned a lot in the process about how device drivers are installed - and removed in some cases.

I write programs in a number of different computer languages, but the ones I focus on most right now are NSIS installer scripts, Javascript, PHP, C/C++, Auto-It3, and batch files (both CMD-shell and command.com).

I know about ActiveX controls to some degree, such as how to remove them, install them the right way, and manually. I used to write them a long time ago (1990). I am also familiar with GUIDs. I also used to write multithreaded server applications, and I used to do testing on some pretty big servers in my heyday. I also worked on automated tape libraries (DLT), and I wrote a web-based SAP legacy server monitoring application. now SAP folk make plenty now. But I don't want to move out of my spot, and I can't drive...

I took BS Software Engineering And upgraded it to Computer Systems Engineering in college, but it turned into what they call today an Embedded Systems Engineering degree (they tossed the degree after I got it).

I like to discuss Pro Audio and Pro Video and Cinema equipment. I get the Sweetwater and BH catalogs. when you order from Sweetwater they put candy in the order. I like that. And the prices are nice and the Sales Engineers there are helpful for finding a proper solution.

I know how to do TCP/IP and NETBEUI networking (NETBEUI in win9x/me is not routable!) I have used older versions of File and Printer Sharing (9x/XP). you should know that the various flavors File and Printer sharing has taken with every windows version are not compatible with each other.

we have a windows 3.1+dos box that has a pentium mobo with 32MiB RAM. it "pops" when it comes to speed. everything is instantaneous. love that. only thing slowing it down is the hard disk.

dos apps:

I got to try out a vista box, a 32-bit, and a 64-bit 7 box some time ago.

no 64-bit has command.com which is required for running DOS (as in MS-DOS) programs. still has cmd.exe, but 7 (and hopefully 8/8.1) does have 32-bit Windows XP Mode virtual machine though it has always been broken, which DOES have command.com and can run DOS apps.

in case someone is confused as to the term DOS, DOS has always meant MS_DOS, not the windows cmd shell or any command prompt.

to use XP Mode or a VM (Virtual Machine), you must enable virtualization on your modern CPU in the BIOS to install it or make it work.

best solution if you need command.com is to buy a retail or core 32-bit windows and VM it, and find a way to share your filesystem if you are doing development so you avoid file copying and burning endless cdrom's. I hear vmware does this and windows 8/8.1 does this, but win7 does not share .vhd's, and vista you will have to rely on vmware workstation or virtualbox.

You should know that If you are using the guest additions to get some USB 2.0 EHCI for virtualbox, this requires an enterprise license that is extremely expensive. FAR cheaper to get vmware workstation if you need this, or PARALLELS (tricky install/config I hear) if you have a mac.

computer repair

I like to help people solve computer problems.

to be truthful, sometimes I can do it and sometimes I do a lot of praying. In any case, God gave me my skills and abilities (I had to learn that the hard way!), so to God be the glory.

I also repair computers as a ministry/service to people more than as a business. As a result, I don't usually make much money, but that isn't my intent. My only problem is I am slower than Geek Squad at solving problems. It usually takes me an evening to do something because I like to do something right and do a complete job.

I am also heavier on the software side (I do that all day) than I am on the hardware side, but I can do both. I can build a pc from scratch, take a PC apart and put it back together. I order parts or get them from a computer store.

I became an OEM and a Community Distributor for OpenOffice.org so I could both distribute it online or on cd's and install it on people's PC's. It is a free alternative to Microoft Office - great for students and families with a low budget!

my hobbies

  • digital and some analog electronics
  • computers (programming them, building them when I can, repairing them, writing software)
  • web design and web programming
  • volleyball
  • singing
  • collecting and prrogramming interesting calculators, especially the HP 50g
  • collecting well made bright LED flashlights that don't use multiple CR-123A batteries
  • researching LED lighting systems, especially flat lighting panels
  • researching products to find the best feature set and reliability that I can
  • finding wireless-N routers that are dd-wrt-able. (hard to do - any help appreciated). dd-wrt is an enterprise-class router firmware that you can flash your router with. If you don't brick your router, you will end up with a rock solid router that gets better signal in some cases (I got 1 more bar) and you will never have to turn off your router except in emergencies (storms).
  • automating repetetive things (just about anything actually) - anything to save me time and long waits.
  • parallelizing jobs that were previously done serially, when I can.

languages I write or have written in

  • C/C++ (intermediate - full lanuguage standard is growing beyond my ability to comprehend). I used to have/read the language specification.
  • Auto-it3 (good wrapper for command-line apps and good for small windows apps, generates 32-bit and 64-bit code)
  • CSound (sound generation language and sequencer, VERY flexible)
  • Microsoft BASIC, BASICA, BASIC, GWBASIC, QBasic, QuickBasic, some Visual Basic. lots of kinds of BASIC.
  • 6800, 6502, 8088, 8080, z80, 8086, 386 Assembler using nasm, tasm, and masm, and learning GAS (AT&T Assembler syntax)
  • Python (slight intro to language - it is the scripting language of Paint Shop Pro)
  • modplug (uses sampled musical instruments and patterns instead of a staff to make music, can use MIDI)
  • screamtracker (uses sampled musical instruments and patterns instead of a staff or MIDI to make music - no longer sold)
  • PHP (web server scripting lanugage, very popular - free)
  • ColdFusion (web server scripting language, not very popular, VERY cost prohibitive, for people who can't write scripts, but I usually wrote scripts with it anyway)
  • XML/XHTML/HTML/HTML5/DHTML/CSS/SVG/CSS3 - I read the w3c specifications
  • JavaScript/JScript - I have the language specification
  • Java (though rusty now)
  • SQL: PostgresSQL, MySQL, MSSQL, MS Access (I have written Embedded SQL applications, which means I have written client applications that use a server. I have also used the Visual Studio for Office SDK to make a full Access application.)
  • VBScript/VBA (Visual Basic for Applications), which is a scripting language for Microsoft Office and OpenOffice. used VBA once to automate processing of 600 Word documents at work (it was repetitious) so I wouldn't have to do it by hand. I like to automate things.
  • Tcl/TK [have worked with large test rigs for this, although I admittedly could have done better in hindsight for the message processing. I think I still need to learn incrTCL (object oriented programming for Tcl). but I have dropped TCL/TK for now.]
  • Dia (at least an attempt at making my own SVG shapes)
  • I am sure there is something I have forgotten over the years... :-)
  • postscript (I didn't have a manual at the time - hey - the code was in Computer Shopper and I was learning)
  • flex+bison, lex+yacc (for writing computer languages - recent work is a GPL3'd autocad DXF-to-POV-RAY translator skeleton)
  • zsh, Bourne Shell Scripts, Korn Shell Scripts, C Shell Scripts. BASH I just read the ref and write as needed.
  • NSIS installer scripts
  • POV-ray
  • interest in setting up mail servers (Apache James)

BTW, Tiny Basic is no longer available except through Dr. Dobb's Journal of Computer Calisthenics and Orthodontia, and volumes/issues are hard to get and aging. Plus, the processors it ran on (6502) are no longer currently sold. the 6502 was a microcontroller that got popularized by the Apple II computer, and consequently how I got introduced into programming.

my software is Open Source. I use Open Source software almost exclusively, and I feel it is time to contribute.

my capabilities

  • partially build a compiler skeleton
  • write small utilities (0-6000 lines of code)
  • reverse-engineer and wrap head around large software projects and learn how they work (2 million lines of code, with proper reverse-engineering tools), and sort out documentation, but don't know if I can do it again.
  • sorting out different versions of documentation in a box
  • intermediate or beginner web design skills - there are many people who make much flashier sites than I
  • interest in Embedded Systems, but have no toys
  • digital and some analog Electronics, enough analog to interface the digital and build simple power supplies
  • interest in Computers
  • interest in Technology
  • interest in Web Design, and related programming, DHTML, and online web apps since 1990 or so, when I wondered "What would I ever do with a web page?".
  • some work with revision/change control (intro to CVS, mostly RCS work)
  • music, interest in Pro Audio and Pro Video equipment, Cinema Video equipment, sequencers, video editing, Working with Video Cameras
  • Research on the internet, finding things
  • automating repetetive processes - I don't like repetetive work.
  • I don't know whether I am an Software Engineer or a Programmer. But I am definitely software-oriented.
  • multi-threaded SAP/web server programming was one of my tasks. Done. fun. in my head was the design of a soon-to-be popular application - team communication over a web browser using Java - not IRC chat, but like news posts.
  • I like to work on servers, especially big iron with lots of processors.
  • If you want me to keep it busy, I will find a way. If required, can find ways to bring it to its knees for testing purposes.
  • I like to report bugs in products. I did software testing for several companies, and now it is in my blood I guess. You will find me active in the bug trackers on a number of projects in SourceForge.net, the major source of Open Source software.
  • interest in LED lighting products, and in certain cases, the brighter the better. diffusers are important too.
  • interest in motion control products, have done some experiments on my own
  • trained in ESD awareness/safety, I think I still have my certificate somewhere.
  • interest in ways to get on the internet
  • used to have an interest in Digital Signal Processing
  • computer repair.
  • keep a collection of very useful software tools handy for travel purposes, and I have my "Doctor bag". I have a business for this.
  • some knowledge left about ActiveX/OLE controls (and how to remove them)
  • knowledge about how to remove "dead" Windows Services.
  • keep an eye out on good Open Source or free software
  • ray-tracing
  • interest in writing programs to solve problems

my limitations - need more practice and mentoring in these areas.

  • not good at maintaining existing code, so I guess I am write-only.
  • working with debuggers
  • people/soft skills (working on that) - I am mostly a recluse, but that depends on the situation I am in
  • managerial skills - I have some leadership skills, but not enough to be a manager. Mostly I am a follower.
  • I don't do well in production-type jobs, or where safety is a concern.
  • I am a little clumsy. Don't think I can fix that.
  • I make lots of mistakes. Don't think I can fix that.
  • When programming, I tend to write on-the-fly - I wing it. Maybe this is why my programs are small, the largest of my apps totals 32,120 lines of code not including documentation.
  • can't compile UNIX programs on Windows, or even on UNIX, unless they are OS-specific. boy are those things a mess!
  • can't write *well-written* UNIX programs - yet. only working with templates and stdio.h or iostream & fstream.
  • can't usually get configure scripts to work on my windows machine, even with MSYS. too many library pieces missing.
  • can't understand how to write a configure script or an automake script or autoconf script, much less how to hardly read the makefiles that usually come with those.
  • I have digressed from a full-fledged Engineer I think to a programmer/tinkerer. it's been more than 10 years since I have been in college.

    for a history of computers and some of my computer history, take a look at...

    Old Computers