Friday, June 29, 2007

Blue Moon 'Round Midnight


Have you seen the full moon? I was walking the dog after midnight last night thinking about the moon. Okay, you could call me luney. It's that once in a Blue Moon you've heard about. Yes, about once every two-and-a-half to three years there occurs two full moons within the same calendar month. This is called a Blue Moon (see here).

We're talking lunar calendar here. The term month comes from one full moon to the next full moon (about 29 days).

The Blue Moon was the exception. Do you realize the other full moons had names? They are: the Wolf Moon, Snow Moon, Worm Moon, Pink Moon, Flower Moon, Strawberry Moon, Buck Moon, Sturgeon Moon, Harvest Moon, Hunter's Moon, Beaver Moon and the Cold (or Long Nights) Moon.

Why is this important?

You need to switch modes from the high-speed, urban, electronic life, out of touch with seasonal, living growing things and switch to an agrarian form of thought. Things like planting, harvesting and surviving Winter occupy a great position of importance. The moon names are said to originate with Native American tribes and adopted by the New England farmers (see here).

Only the Harvest Moon and perhaps the Hunter's Moon names have generally survived into contemporary times--I think that is a shame. Perhaps we should re-name the months for the moons they represent. Think of it, months named for the great ebb and tide of growing things, of fertile, dynamic life--instead of named for Roman Emperors and Roman Gods of a decadent, hated empire.

Why stop there... Gregory and Augustine were pretty lousy astronomers and timekeepers and had hidden agendas. Their calendars keep getting out-of-sync and you have to add a day every blue moon or so, we call it leap year. Let's adopt our new calendar from Tolkein's sensible hobbits. The hobbit calendar is pretty much like ours, but each month has the same number of days (30). The days of the week don't change from year to year. So, for example, if January 4th is Wednesday, it will be Wednesday year after year. But wait--you ask--the actual astronomical year is 365+ days long, what do we do with the extra days? (otherwise after a few decades The Seasons will be out of whack) We do what the hobbits do, proclaim an extra 5 (or 6) days as a special time at the end of the year named: 'Yule'. We all take time off and have a grand party, celebrating that we, our friends, our planet have survived and enjoyed another year.

As this Strawberry winds to a close, have a great Buck.

Thursday, June 21, 2007

AJAX Adventure

For over a week I've been building, and just completed, a web-based website content editor. All of my client website's content exists in MySQL databases and all of their pages are dynamically generated XHTML/CSS w3c compliant pages. Until now, the connection has just been PHP. The availability of great Javascript AJAX libraries encouraged me to undertake this project.

I wish I could say everything is taped out and it's just a matter of putting some blocks together... but it's not! Often doing some of the simplest things with the web monster can be frighteningly complex. If you wanted to be 100% competent on web development, you have to know all about server-side languages and database interaction and client-side browser interactions and all of the different quirks of the five or six main browsers and their earlier versions and new releases and how each handles CSS1 and CSS2. Even then, certain things fail. It's a 90% technology that's never finished.

The problem really isn't the software, the problem is (as usual) people. Incomplete communications, erroneous communications, missing data, conflicting opinions and even greed, jealousy, envy and other destructive emotions all regarding the methods, means and tools to use our glorified "universal" interface called the Web.

I have right now only one user for my simple content editor, so I've debugged and set it up for Firefox. Works great! IE squishes table columns, completely alters the dimensions of submit buttons and refuses to refresh windows--usable but ugly. Opera renders incorrect font sizes, may or may not refresh pages--again, usable but ugly. Haven't tried Mozilla, Netscape or Safari, don't want to.

Ths same conclusion again presents itself: Fine tech if you don't do anything too fancy. Most public pundits belie the level of complexity. If you're a non-techie, try right-clicking somewhere on the background of a webpage and select: "View Page Source". This will popup a window to show you what has been sent to your browser to display the page you are looking at. It could be the tip of the iceberg as every piece of that page's code could be generated by multiple programs accessing multiple databases that exist on the server that served-up that page across the Internet's virtual space.

I'm not knocking the complex, just holding out to have all you developers out there at least consider simplicity and clarity for the rest of us--please!

Friday, June 15, 2007

Musical Technical Meltdown

I've spent the past 48 hours as a technical User not programmer. My wife, composer Carol Worthey, utilizes a great Music Notation program whose development ceased a decade ago. It's a MAC-based program written by a bunch of MIT grads who were also excellent musicians, so it's got a lot going for it. It was the premier (and only) professional-grade software that was available for quite some time. It was also quite expensive. Today it's showing its age... it contains un-fixed bugs.

Composing and notating music is a very complex task. Performed music only requires a listener, written music although, is an historical system. In other words, as a system, music notation is not clean. The "rules" for its construction vary in many aspects, are in conflict, subject to authority and opinion, extension is arbitrary and terminology extensive and arcane. This is what one would expect from a human communications system... the written document is intended to convey to a human performer how to render the work.

There is another communications system that now enfolds (engulfs?) technical rendition of music best referred to as MIDI (Musical Instrument Digital Interface). This is a data stream of simply: timings, notes (pitches), durations and intensities. Equipment designed to render this notation into sound (a performance) cares not for nuance or interpretation or human qualities. It is dead literal; there is no interpretation involved. Creating such a data stream that mimics human qualities is quite an undertaking and is part of my problem with using the program and system we have set up.

Traditional, hand-written musical scores are great--you get exactly what you want. The computer requires input in the manner in which the programming was created and (usually) only that way. In our scenario we get all of the notation entered (composed) by hand, then the data gets turned into a Conductor Score, Piece Parts and MIDI. The MIDI is transferred to a sampled-sound system where instruments are assigned to parts and the result output by sequencing software as sound. Here's the rub, the grand scheme is flawed, these three elements unintentionally are in conflict with each other and the software will not be fixed!

Work-arounds

Should be called: work, work, work, work, work-arounds. When the Conductor Score is created, the voices of several instruments are combined and displayed as one stave (the 'staff', you know, that group of five horizontal lines that hold 'notes' the little black dots with flags--for you non-musicians out there). This is important for the orchestra's conductor so he can easily see the relationship of several of the same type of instruments playing together, for example: Trumpet I, II & III. Each of the trumpet players--in this example--needs to have printed music that contains their individual part or the Piece Part. For example: Trumpet II, Violin II, Clarinet IV. Now we also need a MIDI data stream or track that has the notes etc. for each of these parts so that later we can assign a sampled sound (like a trumpet) to this track to play (perform) these notes using audio equipment. This last is not a problem. What is a problem is that the piece parts for the musicians usually have extensive performance notes (text) that create the nuances that make real orchestral music a delight. These pieces of text also show up on the highly condensed Conductor Score usually making it unreadable. Finally: if you delete the text notes from the Score, they are removed by the program from the Piece Parts. This is not surprising as both are generated from the same database. What it does mean is now data copies have to be made, one to support the Score, one to support the Piece Parts. Any further changes or edits must be propagated to both sets of data and the program does not facilitate making duplicates of data--it's a very tedious procedure.

Lastly, it may be that there are errors in the way we are entering data into the program. The really well-written manual for the software is 1 1/2 inches thick and I have never read every bit of it. The relevant sections on 'text entry' explain available 'features' but there is no tutorial about why you would use any particular feature.

Being a User is quite difficult. I have never enjoyed being at the end of an effect chain where I cannot correct a problem at the source which is perhaps why I've spent so much of my life writing software.

This week's experience again reinforces the reason open-source software must survive. It really is an issue of freedom. I certainly would not want to have a job that was a work-around, a job ready to vanish or get much worse with the next software "update."

Tuesday, June 12, 2007

Night Owl

Once again I execute a sortie into technological wonderland to see if I can extract some simplicities to build upon.

It always amazes me, when searching the net, that there is such a wealth of excellent software available and so little information on putting the pieces together to accomplish the kinds of useful things a working boy needs to get on with the show. Case in point--a web text editor. In searching I found a great software package that did everything I needed... but there was a catch, after probing deep into the code I discovered it really only supported ASP pages. Great for Redmond, but what about the rest of the world?

Searching again, I found a slightly less complete editor, but written in javascript with interfaces to PHP, Python, PERL and some I've never heard of. I downloaded and ran their PHP demo and it worked great! Then the catch... how to connect the editing to useful things like MySQL or even flat files? I thought I was in for another day of exploring all of the detailed coding to find the secret API, but first I applied a motto I've developed. It goes something like this: "...I have the problem, you can bet someone in the wide world has had the same problem too!"

Low and behold I was correct. Thanks to a great guy in Chicago who took the time to create a web page to simply explain the key connections within the editor to interface to a MySQL database I was able to easily use a great tool and create a better editor than I would have had time to build quick and dirty. Why is his page not in the package's wiki tutorial?

I hope more and more people will post their vital data solutions to make it easier to get the multitude of tools up and running in a simple, comprehensible manner. This night owl would enjoy sleeping once and a while.

Sunday, June 10, 2007

A Toast

This morning I was again elected President of Renaissance Speakers, Toastmasters Club #2374. When I was last President, in 1998-99, we took the club to the #4 position in the world out of approximately 9,000 clubs (at the time). Currently, I plan to "place hold" for one of our members who is in Florida finishing up a course of study in Clearwater. Her indefinite return to Los Angeles has set me planning for the entire new Toastmaster year beginning in July 2007. We have as yet to set a "theme" for the year and I'll need to have the first meeting of the new executive council to set the club goals, and then there is District 52 officer training mid-July.

When you have an internationally top-rated club, there are standards to uphold and improve upon. The council is, for the most part, 'green' and will need a bit of tempering, but with the assistance I can count upon from the 'old hands' I'm sure there will be no difficulty in overcoming any errors they may make. After all, Toastmasters is an educational public speaking activity and if there weren't things to learn then what is the point?

I'm looking forward to the challenges and rewards ahead. God I wish this were a paying position!

Saturday, June 9, 2007

Why Linux?

Continuing...

Unix was the answer to the Operating Systems war, but there was a catch, it was owned by Ma Bell. Those of you old enough may remember the great Telephone Monopoly. Universities got Unix free, there were no commercial binary versions allowed. If you weren't a university and you wanted Unix, the only way to get it was to by a full source license (I believe it was about $50,000 to $60,000 in 70's dollars). If you'd care to see the whole Unix timeline try the Bell Labs site here.

Working programmers like myself really wanted to have Unix because if today you experienced the tools we had to work with, you'd laugh. What we did, as smart programmers, was to write our own Unix-like toolkit of utility programs that worked the same way under the different vendor OS's.

Finally, in the late 70's and 80's, with the breakup of Ma Bell, variants of Unix were starting to be commercially licensed... the ??ix's. To see a great chart of the proliferation of Unix, take a look here.

Into this potpourri walk Richard Stallman with his GNU Project (definition: GNU's Not Unix --good god, a recursive acronym) and Linus Torvald with a simple terminal emulation project and the newly opened (for commercial traffic) Internet. A hypergolic mix. I first used the Internet (then called ARPANET) in 1977 at General Electric--we fed punched paper tapes into a churning, jerking Teletype 33 as it sent and typed text at 300 baud. The Internet let all the Software Engineers (the term "Information Architect" wasn't invented until the 90's) combine their personal toolkit's under Linus' brilliant direction and Stallman's license to create Linux the Operating System, the Unix-workalike system we wanted for over a decade.

The first time I used Linux (version 0.09 kernal 1993) I became a believer. It was so true to Unix although it was programmed from scratch by 10,000 engineers. Best of all, it was free... not just the price, but an example of what can be accomplished with free collaboration and sharing while working toward a common goal. I've been a Linux Man ever since.

Why mention all this?

Because today, the Operating System wars are not really over. With the rise of the Desktop and the advent of "personal computing" plus a whole array of web-related technologies repeating and repeating the same weary commercial scenerio I'd like to say a few words , the view from this desk so to speak.

The one thing that was detested from my hippie-oriented programming days was the idea of hardware vendors withholding vital information needed to help their customers achieve their goals in order to extort some sort of financial advantage. It formerly was just a bad taste in the mouth, now with the degradation of the culture it has become a standard Public Policy.

Look at this:
  • A huge commercial US company wanting to own all software and programming as part of its charter.
  • The "standards" that permit stability and interchange are given only lip service by the companies that employ the technologists to implement their schemes.
  • The technologists receive diddly-squat as payment, but eagerly accept "toys" to play with, no matter how potentially destructive.
  • The public does not know or believe there are any alternatives to the dominant commercial technology, and they are sold this viewpoint at every opportunity.
  • Lawyers, Governments and Commercial companies, not understanding actual Social (capital 'S') implications and details of technological disruption, just want to cash-in for a short-term profit.
Gee, welcome to, was that: 1969? 1975? 1981? 1985? 1998? etc.

Perhaps we are, and have always been, in a great Information war and Crusade for the domination of men's minds by a few over the many. My experience is there can be no War (capital 'W') with full disclosure. Our supposed grand material technologies move us at an ever-increasing rate to a time when all Information is instantly available and all of it means absolutely nothing, but we are required to pay for it all.

There's a warning here.

Oh, I am a Linux Man!

Friday, June 8, 2007

I Am A Linux Man


Oh I am a Linux man (well actually Unix before that). History unlearned, repeats the same mistakes again and again. Here's why I'm a Linux man:

I was actually trained as and worked professionally as an Architect at the dawn of the Third Age of computers. I swore off computers after college, because it was clear from the Dean of the school that: "...there is no place in architecture for computers...they are some use in structural engineering." Naturally, I gravitated to Boston, Massachusetts center of the architectural world and ended up working for the third largest firm in the world in a field no one had ever heard of: Computer-aided Design.

I learned all about programming out of self-defense in the wars. The war between the firm's partners: Old School versus New Thoughts. And the more important war, the Genius (but eccentric) Computer Phd's versus the Production People. I fought on the latter side in both theatres and I like to think, I won an education!

The Third Age really begins with the "mini-" computer. The Second Age was all about "mainframes". The "mini" made computing possible for smaller firms than the Fortune 500. By smaller, I mean you had to shell out $250,000 (1968) baseline for just the machine. Staff, programming and maintenance were extra. We then had an 18-bit word computer, with an entire 8K of (core) memory, a tape operating system, a raster graphics display and a vector graphics display. The machine took up eight 19" rack-mount bays 7'-6" high and had less compute power than the original IBM pc.

Let me just focus on software and programming in this little missive. We all know that hardware started on it's steep upward trend in this Third Age time frame and has not really peaked, even today.

Did you know that the first software battle of the Third Age was the vendor Operating System skirmish? Each vendor had it's own Operating System for it's own product line. This meant from a career viewpoint, you were an: IBM'er, a Control Data man, a DEC man or a Data General guy. Later you could be a TANDOM'er or a WANG'er, but we won't go into that. What a pain! You see, when you switched hardware vendors, you also had to learn all new system commands, a new assembly-level programing language and structure, all new procedures, new editors, not to mention all applications you have from the previous vendor had to be completely re-written from scratch. Practically speaking, you never, ever switched vendors once you bought in. The vendor war-lords loved it!

The first rebel raid on the vendor camps were the High-Level Languages. Fortran led the charge, and oddly, Basic brought up the rear. The great thing here was that without too much trouble you could actually port applications between one vendor's machine and another. Not all was rosy, however, because each vendor created it's own version of the high-level languages that had to interface with it's own operating system. Basic wasn't always the same Basic. Oy!

A real change occurred in 1973 once Dennis Ritche wrote the 'C' language (the genesis of unix). This language was the same on all vendor's machines. The final assault came on quickly, once AT&T's Bell Labs (the owner of Unix) finally released Unix into first a university then the commercial environment. My God! Unix as an Operating System ran on any vendor's hardware. Better yet, it was almost identical from port to port. From a programmer's viewpoint: the same commands, the same structure, the same editors, the same procedures and most of all the same applications. A stable toolkit for the advancement of Information Science.

The Operating System war was over...or was it.

Stay tuned for the next exciting installment as: Ray reminisces.

Thursday, June 7, 2007

First Entry

New blog established. Create a modified "Minima" template.