Tuesday, March 3, 2009

So many Versions so little time!!!

Today I want to tackle a SDR feature that is external from the radio itself, but so intimately involved that it can not be underestimated. That feature is the SVN server

SVN stands for Sub-Versioning, and it is an enterprise means for controlling changes in software.

First what is Versioning? When software starts being written it is given a Version number. The reason you give a version number is so you can go back and forth and see the changes you make, and it allows you to fix something if your new brain storm breaks it. You may start out with version 1.0.0 and make a change and that may become 1.0.1 and then 1.0.2 1.0.3 and pretty soon you have made a stable change in some part of the program, like fixed the AGC or something and that version would become 1.1.0 and you move on. Each of these iterations are subversion of version 1.0.0. What this does is allow you to make changes and document the changes you make, and outline your thinking so you can figure out what the hell you did 3 months from now. Eventually you would decide you had reached a stable version and it was time to advance to some superset of the program. That is its time to move on to Version 2.0.0 At that point you would publish the software as a stable non-changing entity that users could use and rely on. At that point it would not be "alpha" or "beta" software but it would be stable with most or all the bugs squished. Next would be 2.0.1 2.0.2 etc and the whole things starts over again.

Now that's just dandy if you are the only software author, but what happens when you are involved in an enterprise, that is lets say 10 authors scattered all over creation, maybe Austin, maybe Maryland, maybe Australia, all involved on the same project. You don't want 50 version of the same trunk floating around, as no one would know what the heck was going on.

Enter SVN. SVN allows these files to be stored on a central server and allows each author to work on a central version or he may have his own little branch with some wild hair that he is working on. Here is what the SVN server for PowerSDR looks like

What you see is the main thread of PowerSDR and there are several other threads that are being developed by people who are either part of the main thrust of Flex like N4HY, or people who are users who have a particular interest like W2RF or K6JCA. This is the collaborative ""thing" that I am so impressed with. Because of the power of this approach people can try out their ideas hone the code, have others try out their code as alpha and beta tests squish bugs and do everything big time software developers do. They can easily collaborate with other software developers and gain and leverage from their expertise, for example N4HY can come over to W2RF's thread and look at his code to solve a problem. If the specific idea that a person is working on would have wide appeal to the general PowedSDR user population, his feature or features can be incorporated into the main thread.

THIS IS HUGELY POWERFUL. I can't stress enough how powerful this is. Two brains are better than one and ten brains each with his own expertise are better than 2, so what comes out of the mix is much greater than the sum of its parts. The other thing is the software is developed by hams who want to solve a problem or add some specific feature for their use. Many of the commercial ham radios are designed by some engineer or some small group of engineers and the design criteria may have nothing to do with making the radio useable. I have ranted about for example radios being designed to the ARRL test, becaues the ARRL test is so important to a marketing strategy. But while you are spending your time making the radio have ever increasing dynamic range, you spend NO time fixing the damn key clicks and so for example Yaesu put out radios that did good on the test but for 15 years had a design flaw that made them very wide on CW. I'm sure the radios got designed on budget but there was no money left in the budget to fix this glaring error, and the damn TEST didn't bother with that, or at least its concern was minor compared to the all important dynamic range.

Also this is the power of GPL. If all this design was under wraps like it is with every other manufacturer you would never achieve the critical mass of intellectual insight that would propel you into some where else. I play guitar. When I sit down and play solo, I wind up just doing the same things I know how to do over and over. When I get together with a couple of buddies is when I move beyond. When I get together with my buddies I can see his same old chops and then see how combining my same old chops with his same old chops moves us both to something new. It is the same here in this software model, because it is open. In fact you don't even have to be a programmer to make an impact. All you have to do is spend some time understanding the system to make suggestions. You may get listened to you may not, but there is an avenue for input. Here is the Bug Tracker that allows users to report bugs

AND here is the New Feature page that allows users to opine on new features

I have had several of my new feature ideas picked up over the years. These do get acted on according to time and how it could be implemented, and of course any of these ideas could be picked up by a collaborating author as part of his project. These screens also track by changing the search parameters to see where in the cue it resides. So you can see if it is being worked on or has been added or what ever. This is an entirely different approach to the management of user input than I know if in any other ham radio manufacturer. How many times have you read on a reflector that: "I emailed the company and never got a reply"?

I was talking to a friend of mine last night W4AG, who is an Orion owner and he mentioned the TT list was all up in arms over the "NEW" firmware that had just been released for the Orion-II. I guess it has been a couple years since the last "new" firmware was released. I remember those days, waiting and waiting and waiting for the mother ship to release even the slightest tid bit of improvement.

Here is the body of a comment of an Orion owner

Lots of messages about the new firmware for the Orion II. Does anyone know what the status of new firmware for the original Orion?

Here was the reply

I believe TenTec said it would be released after the O-II update. As I recall, they did not give a firm date but indicated that the delay would notbe too long. The timing is vague, but they did say there would be an update.

Checks in the mail.... We gonna git around to that real soon, you betcha real soon...

That kind of frustration is not even part of my world anymore, and frankly I'm glad to be rid of it. GPL has such advantages. It has its problems as well to be sure but its advantages are great.

Here is a screen shot of the ham radio part of my desktop

I update my software quite often to update all I have to do is right click the folder that contains the version I want to update and a drop down opens that allows me to update. Here is what that looks like when I click:

Since I am up to date it shows completed at rev XXXX. This means I am up to date. If there had been any updates or a number of updates those would download into my folder and then I would be up to date. There is a log entry you can review to see what has been added

This shows what had been modified to get to this version. This is from the W2RF thread.

The next thing to consider is the symbiosis between the authors and the company, and here is a great place to think about that. You see a bunch of threads all being coded by various individuals and the main code of the company. All are moving forward at some rate of development. Suppose if I had been relying on W2RF and his development, and he suddenly lost interest. Development would stop unless someone else decided to pick up the ball. BUT since the company has a vested interest in forward motion the entire process of advancement does not stop. This is key. W2RF has added things to the main thread and therefore the company has benefited from his hard work, but also he is free to come and go using his time and talent as he see's fit, and the commercial enterprise contines. The commercial enterprise acts as the lynch pin around which development occurs, but the loss of any one collaborator doesn't upset the whole show. If this was all closed, you would wind up with the comment on the TT list. but I never see that.

It is this kind of collaboration that will advance Ham radio. Lets face it, the day of the wild and wooly home brewer is over. You can build pristine quality analogue devices, like I did with my fancy schmancy speech processor, and software will eat your lunch. It will eat your lunch because you don't have to procure 100 parts to find 4 that all match, and it will eat your lunch because if two or three gather and write a better equation, you don't have to rebuild the whole damn this like I would have had to do to implament a new idea. The reality is soft, the reality is plastic, and that is also what seperates this enterprise from firmware radios. Firmware just leaves you with the sentiment

Lots of messages about the new firmware for the Orion II. Does anyone know
what the status of new firmware for the original Orion


Update Here is a screen where there are updates and notations of changes made