Small code with powerful results, the occasional opinion … and beer. 

21 Dec 2012
DD-WRT vs Apple… no masquerading

I learned this one the hard way.  After a lot of searching through DD-WRT forums and time with my cable company doing some communication checking, I accidentally confirmed an obscure item I found in the DD-WRT forums .

If you have any Apple device on your home network (particularly iPad and Macbook), turn off the DNSmasq for DNS option in the DD-WRT Router.

There is something with Apple devices that causes the wireless connection to drop for 5-15 seconds or longer every several minutes when this option is enabled in DD-WRT.  It’s very frustrating when you’re trying to be productive on the net.  It took me a while to confirm that this was the problem, until I mentally associated the start and end of the connection drops with my son coming into or going out of my house with his MacBook Pro.

The best (and most painful) example for Ocham’s Razor that I have ever experienced.

23 Oct 2012
It’s an election year, and I really miss living in California … again.

I spent 9 years in the Los Angeles area during my high school and early adult years. California gets a lot of stereotyped criticism from other parts of the country for any number of reasons, but I have fond memories of the state. And that includes how California manages its elections, and especially… its official election materials. I am reminded of that fact, every election year, ever since I have resided in other states.

To understand my point, let me give you a quick description of the sample ballot I just received for my current residence: Lake County, Florida. It is similar to the ballots I would get in Howard County Maryland, and Balitmore County Maryland.

  • It has a section for the politicians running for office, their party affiliation, and a check box to vote for them.
  • It has a list of sitting State Supreme Court judges with yes / no check boxes to vote whether they should be retained.
  • It has a list of proposed state constitutional amendments (from both the state legislature and from citizen’s initiatives), and other measures that the state government has placed on the ballot for a referendum. Each is described in basic terms of what the change to the law is, and has a yes / no check box to vote whether the change to the law should be made.

… and that’s it.  And, in my opinion, that sucks.  It’s the bare minimum information to know what you’ll be deciding, but it provides zero information to make any informed decision.  Sadly, this style of minimal-information ballot is quite common among the majority of US states (the exact extent, I do not know).

Since it was so long since I last lived in California, I wanted to see if the same ballot style was in use as I remembered from the early 80’s.  So I went online and pulled up the sample ballot for my old address in Los Angeles.  To my delight, they still have the same thoroughness in the ballot materials which I remember.. and they have actually added more.  I have a link to the sample ballot (it’s really a voter’s guide) at the bottom of this post, as well as a link to the one for Lake County Florida for comparison.

Here is how they differ.

In Florida: For the political candidates, all I know is what party they are from.  And, in the most prejudical, biased way I can imagine, the two predominant parties (Republican and Democratic) are pushed to the top ahead of other parties.  In California: I know the party of the candidate AND their occupation.  Knowing the occupation is more important than you might think at first.  And the parties are also not listed in order of size or influence, so you actually have to look for the Democrat or Republican candidate in the list.  There is no party prejudice in California’s layout: no subtle attempt to make two parties appear more important than the rest.

In Florida: The amendments and measures have only a crude description of what they are intended to do.  There is no summary of the potential financial impact the change (or lack of change) would have.  In California: there is that basic description, plus an independent statement from a comptroller stating the financial impact of the law being passed, and the financial impact of the law not being passed.

And then there is the stuff that makes California really shine: the arguments for and against, and the rebuttals to the arguments for and against.  They are not always submitted: sometimes the change has almost unanimous support and no one submits arguments.  But when they appear, the information in them usually reveals not only the good and bad side of the law, but a lot of reasons motivating the law’s proposal becomes obvious.

In Florida: The sample ballot has no instructions for voting, other than essentially saying that this is the sample ballot, and you can mark it up and take it with you to the polling place as a voting guide.  (duh)   In California: the sample ballot has full instructions for how to order an absentee ballot, and what to do with the ballot at the polling station when done, how the automation reads the ballot, and some reasons why it might be rejected.  This is what I remember about the California ballot information sent to the voters, and they have expanded the information in the modern ballots beyond that.

And what’s the most important thing about the California ballot guide:  it respects a person’s time, and it respects a person’s intelligence.  Even back in the 1970’s and 1980’s people were busy, and at that time the internet didn’t exist (at least, in the public sector).  So California’s voter guide consolidated thorough information on what was being voted on, in one pamphlet.  If I blocked out 30 minutes to 1 hour at any time prior to the election day, I could read the guide and be adequately informed, as an average citizen, on not only what I was voting on, but how my vote was be impacting the government spending (my tax money).

Even today, I would still spend 30 minutes to 1 hour reading all these summaries and arguments in each proposed amendment.  It is literally 30 minutes to 1 hour of unbiased information provided  by the government agency regulating and managing elections, and arguments from parties who had an active effort in the development of the proposed law.  Try getting 30 minutes to 1 hour of unbiased information from a commercial news source, who’s motive is profit and has zero vested interest in what they say about a subject–other than how much advertising money was made.  Sorry, commercial media will NEVER be unbiased–it won’t happen.

The reason I say the California voters’ guide respects my intelligence is that it makes no assumption that I am an information search guru, a political expert, or a lawyer.  If a democracy is to succeed, it has to work for all the members of society: from lawyers to layman.  To me, it is unreasonable to expect someone to get the Florida style ballot guide and make an even half-educated decision by doing their own research.  For the fun of it, take some of the amendments listed in the Florida ballot and do some simple Google searches to see what explanations you can find that explain the pros and cons, or the motivations of why the law should be changed.  It’s not very straight forward, and there are a lot of commercial sites with a bias to the explanation in the results.  So much for Grandma and Grandpa making their own effort successfully (in Florida).

In fact, I have to say it.  Over the 200+ year history of this country, we have not only fought for the right to vote, but even taken the time to pass amendments so that non-property owners, women and everyone 18 years of age or older can vote.  Every addition to the list of eligible voters was an attempt to remove a level of elitism from this country.. to give everyone their fair voice in choosing leaders and laws.

And as such, isn’t California’s level of effort in their voter’s guide the minimal level of effort we should expect from all the states?  How else can we provide everyone the best chance of making some kind of informed decision on their own (less any influence from commercialized media)… rather than becoming just a number in someone’s politically slanted “get out the vote” campaign?

So, kudos California.  The rest of the country may try to twist the term “progressive” as a slant against you, but the voter’s guide you produce is a model for democracy that I hope the rest of the country will adopt.

Finally: Why did I say that the occupation of the candidate running for office (listed on California’s ballot) is important?  It reveals a little about why a politician will liberally use the phrases “protect the working person” and “protect the middle class” and “create jobs” as the ever-repeatable buzzwords–and nothing changes once they get elected.  If you look carefully over the ballot in California and pay attention to the occupations of the candidates, you will see a predominance of two professions for all the candidates: business owner and lawyer.  Even some of the candidates that have government job titles (for example: Gang Homicide Prosecutor) have a simple meaning behind them: lawyer.

Over 95% of the elected members of a legislature, both at the State and Federal levels, are business owners or lawyers.  Lawyers are usually business owners as well.  And those that are not will eventually move to a partnership (part owner) or a business of their own.

So why in the world would would business owners ever vote for laws that favored employees over business owners?  Think about it.

The Los Angeles County (California) Voter’s Guide   Fall 2012 election

Lake County (Florida) Voter’s Guide    Fall 2012 election

03 Oct 2012
Exit Tomato, Enter DD-WRT… and a weird NAT loopback issue.

I recently lost my Buffalo WHR-HP-G54 router which has served me faithfully for years running Tomato firmware.  I had difficulty finding any new router on the market, which had the NAT loopback feature as well as the ability to filter incoming IP addresses for a service port.

I found a Rosewill RNX-N300RT router from NewEgg to replace it, which accepts DD-WRT as firmware.  Tomato was not going to be an option for the new router, as it had fallen out of maintenance.  FWIW: It also has a long-standing bug in the syslog configuration where the firmware would just arbitrarily lose the address of the server to send the syslog packets to.

So after getting the firmware successfully loaded and configured, I discovered a nasty snag with DD-WRT: starting at a particular build number, NAT loopback support was dropped.  This was more than a little disheartening at first.  The description of the problem is here, and the ticket for the problem is here.

Essentially, if you have a service (say http) running on a server in your network, you have a dynamic dns entry for your WAN address, and use that dynamic dns entry to address the service from within your network, the router will not route the WAN address back into your own network.  I tried a list of solutions which people had posted, but none seemed to work properly for me.

What worked for me was A) adding a one-line script entry to the firewall, and B) adding some entries in the Port Forwarding for ports that were not open to all external addresses.  The script comes from an entry in the previous posts:

iptables -t nat -A POSTROUTING -j MASQUERADE

This is stored with the Save Firewall button under Admin / Scripts.  This line enables the router to allow the packet to re-enter the LAN.

In my port forwarding table, I have some services which do not filter the incoming IP address: e.g. 17 (Quote of the day), 443 (https).  For all these services, addressing the service with mylocation.dnsalias.net within my home network worked fine without anything beyond the firewall script.

It was the access points that were filtered by IP (RDP, etc) that would not work internally.  The MASQUERADE entry was properly forwarding the packets from the WAN address back into the LAN network, but then the Port Forwarding rules were being applied.  And without an unfiltered entry for the local network, or a filter matching the LAN subnet, the packet was suppressed.

So for the filtered ports only, I had to add additional port forwarding entries with the LAN’s subnet (192.168.17.0/24) as the external address so the router would honor the local LAN for access.

Once this forwarding was in place, everything worked fine using the dns address from within the LAN.

26 Sep 2012
A classic Fairy Tale.. modernized through scrum.

It’s nice to have an adult son who, not only shares my love of coding, but also has inherited a practical sense of humor.

Iteration #1: (my son)

Person jack = new Person('jack');
Person jill = new Person('jill');
 
if (jack.isGoingUphill() == true && jill.isGoingUphill() == true) {
  try {
    WaterWell well = new WaterWell();
    well.fetchPail(jack, jill);
  } catch (FallDownException e) {
    jack.breakCrown();
    jill.tumbleAfter();
  }
}

Iteration #2: (me)

Person jack = new Person('jack');
Person jill = new Person('jill');
 
if (jack.isGoingUphill() == true && jill.isGoingUphill() == true) {
  try {
    WaterWell well = new WaterWell();
    well.fetchPail(jack, jill);
  } catch (FallDownException e) {
    jack.breakCrown();
    try
    {
      jill.tumbleAfter();
    }
    catch (RefusingException e)
    {
      Log.WriteLine ("Sorry Jack!");
    }
  }
}

Iteration #3: (my son)

Person jack = new Person('jack');
Person jill = new Person('jill');
 
if (jack.isGoingUphill() == true && jill.isGoingUphill() == true) {
  try {
    WaterWell well = new WaterWell();
    well.fetchPail(jack, jill);
  } catch (FallDownException e) {
    jack.breakCrown();
    try
    {
      jill.tumbleAfter();
    }
    catch (RefusingException e)
    {
      jack.setRelationship(‘single’).commitToFacebook();
      Log.WriteLine ("Sorry Jack!");
    }
  }
}

I couldn’t have made it any better.

29 Aug 2012
A giant leap towards the cashless society

Back in 1999, the Y2K panic was reaching its peak.  Sadly, it was even starting to consume a few noted national Christian leaders (James Dobson included), which was a little disheartening.  And every church I knew had appointed some person within the congregation as the church’s Y2K representative, whether that person had any real knowledge of the situation or not.  It was a matter of the church leadership feeling the need to do something to address people’s internal insecurity.  And a BIG part of that fear was that Y2K errors would cascade through society and the financial system, leading to a major collapse… and opening up the door for the anti-Christ feared by generations throughout the ages.

But if anyone did any level of study of Revelation, nothing added up in 1999.  Technologically, politically, etc, we just were not where that book describes the world.  Since I was developing and maintaining software for credit/debit processing at the time, I was seeing the strategies and regulations that the major credit card companies and the Federal Reserve were distributing regarding policies to nullify the impact of the Y2K oversight (bug is too strong a word for me). These policies imposed specific deadlines and very stiff fines for non-compliance.

I also was already studying end times prophesy for quite a while.  I understood very clearly that the governments around the world were not going to let any black mark, of any kind, happen to electronic commerce–the core of the future economic system in the world government.  Any problem with it on January 1, 2000 would have caused people to back out of their existing electronic payments, and would have broken trust that would have taken decades to restore.  There was no way that was going to be allowed.

I am a very practical person.  Everytime people inside and outside of the church would start talking about how the financial system was going to meltdown and the government was going to collapse, I would point out to people some simple things that indicated there was little to nothing worth worrying about.  One of my favorites was to ask the person to pull out their credit/debit cards and show them the 2-digit year in the expiration date, which appeared on the front.  In 1999, it was a 00, 01 or 02.  If 2-digit years were such a reason to panic, why were all the new cards being issued with the same 2-digit year instead of a 4-digit year?  Even the expiration date encoded on the magnetic stripe on the rear didn’t change from a 2-digit year.  It was funny to watch peoples’ reaction when they looked at their own cards and saw a 2-digit year.  And as we know now, nothing really happened on January 1, 2000 related to the Y2K scare.

One of the things I was pointing out to people, when the discussion of Y2K led to a discussion of the end times as described in Revelation, was how far we still had to go to get to a cashless society.  A cashless society is the precursor to requiring “the mark of the beast” for commerce.  And it means just that: no cash.  You see, cash represents freedom in a transaction.  There is no middleman: no bank, no government authority to clear the transaction, no approval process, and most importantly… no record of it is necessary.  You yourself can make the person-to-person transaction.  Remove cash, and someone has to facilitate the transaction: the bank.  Thread any amount of middlemen and decision makers into the banking system, and any transaction can be allowed or denied for any number of fluctuating reasons.

So the best way to show people how much of Relevation had NOT yet come to pass (and why the whole Y2K panic being associated to end times was laughable) was related to the “cashless” portion.  Imagine how, in 1999, you would handle the following without cash:

  1. A yard sale
  2. Giving money to friends or family who just dropped by and asked for it.
  3. Giving money to some beggar on the street, who was asking for some spare change.
  4. Giving your child some pocket cash for the ice cream truck.
  5. Buying Girl scout cookies from a stand in front of the local shopping center.
  6. Buying lemonade from some enterprising children sitting in the hot sun on a busy intersection in your neighborhood.
  7. Buying some fresh fruit from a local farmer who has filled up his pickup truck and set up his shop on the side of the highway.

… and some more extreme examples ..

  1. Enticing the dancer at the adult entertainment club for some personal attention (like it or not, this is a real world example).
  2. The illegal drug or arms deal… always done with cash.

As time has passed since 1999, the banks and major credit card companies have addressed a lot of things where people would have “preferred” cash over a credit/debit card, making the card less of a hassle to use.

  • Most credit card and debit card transactions of under $20-$30 dollars no longer require a signature, making the transaction feel more like a cash transaction.  An interesting note:  80% of all purchase transactions in the United States are $25 or lower.
  • All vendors who have kiosks in malls now have the ability to connect to the credit card services wirelessly with their payment terminals.
  • Short term sales events (e.g. concert paraphernalia, souvenirs, etc) are now able to quickly set up the electronic payment system with their tent store for conventions and concerts.
  • Person to person payments have been enabled and become commonplace (via third party vendors like Paypal) for credit/debit cards.  This was a brand new and untrusted concept in 1999.
  • Banks now allow inter-bank transactions via cell phones, including transfers and deposits.

Still, none of these changes addressed cases where cash was the only viable option (the original 8 items above that currently require cash), because there is no effective electronic interface to the banking system.

The Leap:

Only now there are two devices available (and appearing in a short time frame of each other) that can viably address the missing electronic interface for all of the above, where cash still reigns.  One is Square (marketed by Apple), and the other is Intuit’s GoPayment.  These are ingenious devices, and there will be a lot more of these interfaces appearing in the near future.  Initially they will have the interface for a payment card, but later also with a radio frequency reader for implanted ID chips.

Square and GoPayment only require an iPhone or Android, and unlike a merchant account to accept payments (which is quite a lot of paperwork to process and setup), both can be setup online in a few minutes to link to your bank account.

Mark my words: do not underestimate the impact these devices, and others like them will have on the remaining footholds of cash as payment.  It is the missing catalyst to facilitate the true elimination of cash in the future, and force the remaining people holding out on cash to get a personal bank account.

All of the 8 items I listed above will now no longer require cash, but the devices may not yet quite cover the one interesting example: the beggar.  Beggars are most likely not going to have a cell phone with Square: if they did, would you really think they need the money in the first place?  But all government welfare agencies have been issuing benefits in the form of an EBT card (essentially, a debit card tied to a government issued account).  While Square is marketed as the ability to accept card payments, it would only take additional software capability to reverse the payment direction to the EBT card, instead of from it.  So philanthropists (or fools, as you see it): fret not.  If this capability is not there, I would expect it to be added in the future.

And I am sure that the beggars won’t be too thrilled to find that the government is lowering or stopping their benefits, because they have put too much non-Government income on the card.  Technology, after all, is a double-edged sword.

The last two examples of cash footholds I listed are transactions considered amoral by a lot of people.  Remember that cash takes no sides in a moral debate. Cash is hard to track and control, making it the payment method of choice among criminals, people desiring anonomity and, less negatively, those who just don’t trust the motives of the government.  These transactions (and others) will ultimately have to migrate to some form of electronic transactions when cash is eliminated.

With Square and GoPayment, the ability to execute that elimination of cash is truly on the horizon.  It is only a matter of time for promotion and adoption to get devices like Square and GoPayment into widespread, common use.  And once the cash is cutoff, the ability to not only “follow the money” but to catch up with the criminals by “cutting it off” will give law enforcement a whole new level of enforcement ability.  That’s both promising… and scary.

It will also give society a whole new level of responsibility in what it defines as “criminal”.

The proper Christian take-away from this:

Don’t try to outguess God’s timing (a huge mistake made by a number of people in the church prior to Y2K), and don’t read anything into this post, beyond what I have stated.  What we are seeing with the release of these devices is just another event confirming what God said about why he gave his Book of Revelation to man: strengthing our faith.  Read these verses from Revelation 22:10-11 carefully:

Then he told me, “Do not seal up the words of the prophecy of this scroll, because the time is near. Let the one who does wrong continue to do wrong; let the vile person continue to be vile; let the one who does right continue to do right; and let the holy person continue to be holy.”

Now take this in context with the following, just a few verses earlier in Revelation 22:6:

The angel said to me, “These words are trustworthy and true. The Lord, the God who inspires the prophets,
sent his angel to show his servants the things that must soon take place.”

In addition to telling John that this vision is to be shared, there is also a warning: sharing the events described in revelation isn’t supposed to be the basis for evangelism.  Notice that the purpose of the Book of Revelation stated in verse 6 above: “… to show his servants …”  How can an unsaved person be a servant of the Lord Jesus Christ?  This statement is backed up by verse 11:  “Let the one who does wrong continue to do wrong; let the vile person continue to be vile; let the one who does right continue to do right; and let the holy person continue to be holy” , and particularly by this passage (1 Corinthians 2:14) “The person without the Spirit does not accept the things that come from the Spirit of God but considers them foolishness, and cannot understand them because they are discerned only through the Spirit.”

I absolutely LOVE what God is saying to us here:  The fear of horrible events drives man to seek God.  Unfortunately, fear of horrible events alone also causes man to seek God in a lot of wrong places and in a lot of wrong ways which makes things worse.  Jesus is personally driven to seek man, to restore the broken relationship with man.  And his motive for this is the pure love of His creation, with whom He wants to restore the original relationship he intended us to have with him–not any desire to inflict pain and agony on mankind.  His divine acts of amazing grace and mercy, and ultimate surrender of His life for us, are why we accept Jesus as our Savior.  The fear of what he will do to us if we don’t accept His mercy is only for us to understand that He is in charge.. not us.  Whatever decision we make or even refuse to make, He respects our decision and binds us to it.  That’s what He means by grace: the time to understand love versus judgement, so make that choice.

For those of you in a Pilgrim’s progress of studying God’s word in the book of Revelation, here is a reference for further study.  This is the basic implanted RF device described as the “mark of the beast”, and is a form of the device used in the SpeedPass which was prevalent at Exxon gas stations starting in the late 1990’s: http://www.nationalband.com/chip1.pdf.

So watch for Square and GoPayment, or another competing device to add support for reading this RFID chip.  It’s part of the bigger picture.

 

20 Aug 2012
When a loop is not a loop

In an earlier post, I showed how to rethink the traditional MS-SQL CURSOR logic pattern, to minimize the number of maintenance points for FETCH statements (The lost art of break and continue). That post covered the while() { … } loop. Another equally-useful variant is the do { … } while() loop, which also supports the break and continue statements.

The main difference between the two loop types is the number of guaranteed times the loop will execute. The while loop evaluates the boolean case at the beginning, so its content will not run at all if the initial boolean test evaluates to false.  For the SQL CURSOR example, these is useful when the number of rows to process is zero: the row handling logic doesn’t execute at all.

The do..while() loop is very useful for evaluating complex business logic using extensive branching (e.g. rate/tarff calculations).  The loop is guaranteed to always execute, and a break statement can exit the loop block at any time.  This is a great way to implement short-circuiting for evaluations (sometimes referred to as a trap-door sequence).  A trap door sequence is common in rate or tariff calculations, where a number of factors are evaluated to determine a specific rate or tariff.  Once the tariff is determined, the evaluation ends (the trap door) and the logic to further apply the calculated tariff continues.

An example of this type of logic using if() statements would look like this:

money Rate = -1.0;
 
if (Rate == -1.0 && TestCase1() == false) Rate = 2.0;
if (Rate == -1.0 && TestCase2())
{
  if (SubTest1ofTestCase2() == false)
  {
    if (SubTest2ofTestCase2() == true)
    {
      Rate = 1.754;
    }
    else Rate = 1.872;
  }
}
if (Rate == -1.0)  // when true, the rate is still indeterminate
{
  if (TestCase3() == false) Rate = 2.715;
}
 
if (Rate == -1.0)
{
  Rate = 2.772;   // apply a default, throw an error... whatever
}
 
// Rate application logic follows here

The penalty with this method, when a large number of evaluations is done, is that often the if(Rate == -1.0) statement has to end, and another if(Rate == -1.0) statement has to wrap the next set of logic that evaluates the next case.  If the rule set is long, the number of if(Rate == -1.0) wrappers will increase accordingly. There is no quick way out of the evaluation, just a way of stopping the next evaluation from occurring.

Since the do..while() loop evaluates at the end of the block, the code within the do loop is guaranteed to run at least once.  Set the ending evaluation to while(false) or until (true), and the code in the do…while() loop sequence only executes once.  Add the use of the break statement, and the do loop is perfectly suited for a block of code that requires a single pass and needs a quick exit: the trap-door sequence.  Have a look at the following example, which uses break statements, to solve the same problem.

money Rate = -1.0;
do
{
  if (Rate == -1.0 && TestCase1() == false) 
  {
    Rate = 2.0;
    break;
  }
  if (TestCase2())
  {
    if (SubTest1ofTestCase2() == false)
    {
      if (SubTest2ofTestCase2() == true)
      {
        Rate = 1.754;
        break;
    }
    else
    {
      Rate = 1.872;
      break;
    }
  }
  if (TestCase3() == false)
  {
    Rate = 2.715;
    break;
  }
  Rate = 2.772;   // apply a default, throw an error... whatever
} while (false);   // or until (true)... guarantees iteration will not occur.
 
// Rate application logic follows here
// ...

Many people would argue that the same effect can be established with GOTO statements and a label.  Even in my days programming modular code, I never liked the goto statement.  With line numbers in archaic BASIC code it made sense, but migrating it to use labels in object-oriented code seems to be carrying forward a hack: a way for old-school developers to find a way out of their code.

Break simply says the loop is ending, and is also a nice word choice to say the logic has a reason to “break out” of what it is doing.  The break statements, to me, are easier to follow as a developer inheriting someone else’s code base, and doesn’t break the rhythm of the logic.

This trap-door technique with the do { … } while() loop has proven very useful. I encourage you to try it.

 

16 Jul 2012
Weed Killer 1.0.7.1 Released

This is a maintenance release to fix a small bug in the installer, which was missing some assemblies for the worker. No other functionality has changed.

The installation package is available on SourceForge.net here.

08 Jul 2012
The upside-down logic of corporate “free speech” from Verizon

Verizon filed a predictable lawsuit against the FCC this week, challenging the legality of the “net neutrality” rules the commission passed by a 3-2 vote. Not so ironically, excluding the commissioner himself, the 2 commissioners voting for the rules were Democrats, and the 2 commissioners voting against the rules were Republicans.

Of course, the logic in Verizon’s case is upside-down and (in Verizon’s mind possibly) cleverly masked. Their claim is that the rules violate their corporate right to “free speech.” A corporate right to “free speech” is a concept that just 30 years ago would have been laughed-out of court, but is now a buzz-word in the country due to some ill-advised judgments by the US Supreme Court over the past 3 decades. The real issue is whether Verizon can use a federal court to override rules that are being implemented to keep the playing field level, and prevent anti-competitive actions by service providers. That’s what is actually hiding behind the “freedom of speech” rhetoric.

Free Speech is actually a right of the users of the network, not the providers. As much as I never liked Al Gore’s over-simplified promotion of the Internet as an “Information Superhighway” (I am a software engineer after all), the analogy truly applies to the net neutrality rules. Verizon, and other Internet providers, would love to be able to dictate what can and can not flow on their part of the “information superhighway” by blocking or limiting the content that flows. Not only could the highway providers charge additional monies for access to the highway for its use, they could literally turn back vehicles (i.e. data streams) they don’t want on the road.

While a Highway Administration agency has the right to do that on physical highways, for vehicles violating safety, it does not have the right to make an arbitrary decision to deny access to the road for any vehicle it doesn’t like or doesn’t have a business arrangement with. Imagine a highway where someone attempts to come on the road in a Ford Explorer, but is told they can not do it unless they use the Chevrolet that the Highway administration approves of. That’s anti-competitive, is a clear form of racketeering, and is exactly what can happen when the access to the road is not guaranteed for any vehicle that meets only the basic safety guidelines.

But Verizon’s staff is trying to be clever, and knows that the only chance they have to foist this off on the public is to use that favorite catch phrase “Freedom of Speech” in promoting the lawsuit. Utilities, which includes telecommunication companies, are heavily regulated in every country. Any monopolization leads not only to unfair business practices by the utility owner, but can actually endanger economic health and national security. The United States has, multiple times, stepped into the transportation industries to end strikes that would have stopped the movement of people and goods. Truman did it with the railroad strikes in the 1950’s, and Reagan did it with the air traffic controllers in 1981. The purpose for forcefully ending these strikes: one group was attempting to use it’s power base to disrupt economic and military logistics on a massive scale. And that can not be tolerated: free markets must be free, the military has to be able to do its job, and freedom of movement and exchange is the core of a modern free society. Information is no exception.

In an earlier post, I pointed out the conflict of private and public interests when it comes to how Google chooses to rank search results from forums on the Internet. This is a similar conflict: the telecommunications companies are not nationalized, so they maintain a degree of private ownership. Nonetheless, without heavy protection of the rights of traffic traveling over the telecommunications networks, Verizon’s so-called “Freedom of speech” would be protected at the expense of everyone else’s freedom of speech. And like it or not Verizon, you are a utility subject to heavy regulation for good reasons.

And kudos to the FCC for pushing a proactive policy like this, rather than allowing a situation to develop over time, that would take heavy-handed action to rectify when the balance of power gets out of control.

References:
About the lawsuit: click here.

For more information about the specifics of the net neutrality rules, see this article.

For more information on the latest Supreme Court decision affecting corporate “free speech”, see the following article here.

For information on the 1950 Railroad Strike, see this article.

08 Jul 2012
Weed Killer 1.0.7.0 Released

This is a maintenance release to fix a small bug in the Tester (Weed Killer Manager), which would throw a null object exception on a “live” launch (instead of a “test” launch) as the first attempt.  No other functionality has changed.

The installation package is available on SourceForge.net here.

22 May 2012
Weed Killer 1.0.6.0 Released

As of this version, all desired features (at least from my initial design intent) are in place.  Highlights of the release.

Manager:

  • Allow event selections and color selections in tester to be saved and recalled as a named set.
  • Added MRU under a new entry in the File menu (Recent)
  • Substantial improvement to the tester behavior. Result grid population and adjustment time in the Tester reduced to approximately 10% of time previously used.
  • Background worker now processes the actual Weed Killer actions in the Tester (Manager GUI).

Other:

  • Combined the Worker and the Manager into a common installation package: WeedKiller_1.0.6.0.msi

Follow the links to the SourceForge.net  project site on the project page.