Compiled Fortran program for the first time in 30+ years

I had forgotten how ugly Fortran could be, tho it has gotten a lot prettier since 1979/1980.

And it caused me to reflect on all the programming languages I have used over the years, starting from my earliest days…

* TI-59, whatever language that thing used. I had no idea what I was doing really but was intrigued.
* Fortran. Yay punchcards.
* COBOL. ugh.
* Basic in many forms. Apple’s Integer Basic was maybe the first, or maybe the Basic on the TI 99/4
* PL/1. bad memories here. A command for everything, programming was an exercise in finding the right command.
* ASM in 6501, 68k, and x86 flavors at least. I am sure there were a few more in there too. probably my first in depth coding.
* Forth. always thought it was interesting.
* Pascal.
* C and a little C++ tho the C++ came much later of course. still as comfortable in c as anything.
* APL. what a terrible idea for a language! unreadable 10 minutes after you looked away from it. impossible to type.
* dBase. ok barely a language but useful.
* Hypertalk. never anything serious but always fun.
* So many batch language variants I can’t remember.
* Javascript.
* Java. never did much with.
* Perl. learned enough to deal with movable type at one point, never loved it.
* PHP.
* Python. still learning. mostly interested in scientific use with numpy/scipy.
* MatLAB.

Sure I missed some. Probably forgot some on purpose due to the pain they caused.

Year end link clean up

* “Poor Halo play prompts stabbing threat”:http://blog.seattlepi.com/seattle911/archives/231642.asp. Doesn’t seem unreasonable. I’ve heard campers threatened with worse.
* “How Secure Is My Password”:http://howsecureismypassword.net/. No idea how accurate, but fun. 17 thousand years for my typical password.
* “Rich on photobooks”:http://www.tongfamily.com/archives/2010/12/photobooks-for-christmas/. I just always use the default in Aperture but perhaps I should branch out.
* “AR.Drone”:http://www.crunchgear.com/2010/12/01/ar-drone-torn-down/. Why don’t I have one of these yet.
* “Declining energy quality as recession cause”:http://www.physorg.com/news/2010-11-declining-energy-quality-root-current.html. An interesting way to look at things. Not sure it actually makes sense tho.
* “Now you can swap useless Amex reward points for useless Zynga crap.”:http://techcrunch.com/2010/11/30/american-express-now-lets-you-swap-rewards-points-for-zyngas-purple-cows/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+Techcrunch+(TechCrunch)
* “Snoopy themed Windows tablet”:http://www.crunchgear.com/2010/11/25/onkyo-announces-snoopy-themed-windows-tablet/. Take that, Apple.
* “Spiders on Drugs”:http://design-milk.com/spiders-on-drugs-by-guillaume-lehoux/?utm_source=feedburner&utm_campaign=Feed:+design-milk+(Design+Milk). We are asking for some serious payback from spider nation some day.
* “Umpteenth article on the death of cable TV”:http://techcrunch.com/2010/10/24/internet-tv-and-the-death-of-cable-tv-really/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+Techcrunch+(TechCrunch), yawn. Until I can watch HD live sports without stuttering I am captive to cable/dish. Going to be a while.
* “Charles on breaking up MSFT”:http://www.platformonomics.com/2010/10/the-baby-bills-are-back/. Good as always.
* “Habitable planet found?”:http://www.marginalrevolution.com/marginalrevolution/2010/09/has-a-potentially-habitable-planet-just-been-discovered.html
* “Languages you’ve never heard of”:http://gadgetopia.com/post/7105?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+gadgetopia+(Gadgetopia). In the future, we will all have our very own programming language.
* “Topologist suggests new form of matter”:http://www.kurzweilai.net/topologist-predicts-new-form-of-matter. For most of our history we’ve used the forms of matter that nature gave us. It is interesting to observe and think about what we can create as we gain mastery over atomic organization.
* “One man’s indictment of iTunes”:http://www.xconomy.com/national/2010/09/03/the-leaning-tower-of-ping-how-itunes-could-be-apples-undoing/. The thing is a giant hairball of software.
* “Exercise and aging”:http://www.nytimes.com/2010/11/28/magazine/28athletes-t.html?_r=1&ref=homepage&src=me&adxnnlx=1290787262-FJGn2RNM8RCjxiaHpyyVDA&pagewanted=all. Crap I need to get after it.
* “Show Me What’s Wrong”:http://www.showmewhatswrong.com/. Super useful.
* “User experience of F1 telemetry”:http://www.solidstateux.com/interaction-design/the-user-experience-of-f1-telemetry/. Always impressed with the amount of money spent on racing.
* “MacPaint and MacDraw source code”:http://www.computerhistory.org/highlights/macpaint/. Nostalgia.

MATLAB lessons

Doing a ton of MATLAB coding these days. What an amazing tool. For a numbers geek, this is so much better than Excel. The macro language in excel/spreadsheets has always been wacky, and the basic tool in later versions is even worse.

MATLAB is awesome but of course some key lessons that I am relearning, as well as some new ones.

  • Off-by-one errors are killers. Especially when dealing with huge complex matrices. Document and layout your variables carefully.
  • The lack of any variable typing system is a little scary, as well as the lack of required variable declarations. You can get in a lot of trouble easily by declaring variables willy-nilly and doing whatever you want with them. Powerful but a little dangerous.
  • OK, the ability to create variables with the same name as built-in values/functions, and/or the ability to assign values to built-ins without regard to their intended value — well this is just nutso.  And the “lint” tool that is part of the development environment doesn’t make a peep about it. For instance, I used “i” as the index value for a loop. Unfortunately “i” means of course the square root of -1, and when you arbitrarily set this to say 5, bad $h!t happens. Who ever thought it was a good idea to let users do this? Lesson learned.
  • MATLAB is very PL/1 like. OK this doesn’t mean much to most people, but there is a function or library for everything in MATLAB. If it is something you want to do, there is probably already a function or option to do it, you just have to sift thru the function reference to find it.
  • BTW, make sure you change the help search options to span just the libs you have access to. Otherwise everytime you search help, you will get 95% useless information.
  • The lack of even the most primitive source control package in the development environment is ridiculous. It is easy to point the tool at other working directories tho. Short of installing a source control system , clone your working directory often. Really there ought to be some simple versioning in the tool and the ability to rollback.