All Things Techie With Huge, Unstructured, Intuitive Leaps

Adding A New Development Dimension ~ Mac

After visiting clients in the tropics (did I mention that I have developed software for high net worth individuals), I have come to the conclusion that being a straight Windows developer is a path to oblivion.  I have to take the plunge and develop for iPad and Mac.

If you try and download the Mac SDK on a Windoze machine, the downloader detects it.  So you really need a Mac.  Because I split my time between North America and the tropics, I had to get a laptop for uninterruptability.  So MacBook Pro it is.  I always try to develop for one generation behind the curve, so you see that the iPad is a slightly older iPad.

Here is a usage tip -- it turns out that geezers with money are now travelling with iPads.  They can read their email, they can review documents and they can get their entertainment, news and stock quotes.  They do not travel with laptops any more.  I have to cater to that market.

So in upcoming posts, I will start relaying tips on my Mac development experience.  Stay tuned.

(And for the meta-data collectors -- add one more developer converted to Mac.  Microsoft is truly dead man walking, as is Facebook.)

invalid server's version String Tamirsharpssh


I was using the Tamirsharp or SharpSSH library in a demo that I was doing.  I was in a hotel lobby business area and I kept getting an connection error:  "invalid server's version String".  Google wasn't that helpful.  I was defecating bricks trying to resolve this.

I couldn't possibly imagine what was wrong.  I got a valid connection a few hours earlier from a different location.  We remoted desktopped to the server, and everything was running fine.  Our ssh daemon was cygwin d and we rebooted that for good measure.

Couldn't understand what the problem was, until it dawned on us.  The hotel IT network was blocking the ssh/ssl ports.  Moved away from the hotel network and everything worked fine.  It did cause a few anxious moments though.

Search Engine Use As an Intelligence Indicator

Can your choice of search engine show your intelligence levels? Judging by my overnight blog statistics, I'd say yes. First of all, look at the chart for the dummies:

Dummy Usage of Search Engine:

(click for larger image)

Did you notice the top search engine by far? It was Microsoft's Bing. And do know that the search term was. It was "Kate Middleton Topless". And Bing is the dummy winner by far.

Now lets examine smart folks usage of search engines:

Intelligent person's usage of a search engine:

(Click for larger image)

The search engine results are for this software and concepts blog that 85% of the world doesn't understand. The intelligent people coming to this blog, by far use Google.

So, let's just say that Bing has a higher usage among those looking for less intelligent subject matter. The numbers don't lie, and the difference is dramatic.

So take a look at your blog statistics. If a majority of your search traffic comes from Bing, well the term "lowest common denominator" comes to mind.

Update of Browser Types and Operating Systems on the Internet

What is the most popular Browser? Easy -- Chrome. I have a popular blog, and today I have a crapload of hits. Here is what Google is telling me about my blog traffic browsers:

Chrome
  • 1,511 (27%)
Internet Explorer
  • 1,438 (26%)
Firefox
  • 1,424 (25%)
Safari
  • 693 (12%)
Mobile Safari
  • 161 (2%)
Apple-PubSub
  • 143 (2%)
Opera
  • 89 (1%)
BingPreview
  • 25 (<1%)
Mobile
  • 24 (<1%)

And as for operating systems, here are todays stats:



Windows
  • 3,843 (71%)
Macintosh
  • 658 (12%)
Linux
  • 355 (6%)
iPhone
  • 150 (2%)
iPad
  • 134 (2%)
Android
  • 131 (2%)
BlackBerry
  • 47 (<1%)
Other Unix
  • 17 (<1%)
Windows NT 6.1
  • 15 (<1%)
iPod
  • 22 (<1%)
chromeframe
  • 10 (<1%)

I have no idea what chromeframe is. The biggest surprise is that there is still Windows NT6.1 out there.

So if you want a snapshot of what people are using to surf and crawl the web today -- there you have it!

Facebook Inc. (NASDAQ:FB) Accounts Illegaly Used to Gather Secret Information, Report | News Today Digest


Fake Facebook Inc. (FB) accounts are being illegally used to gather secret information, it is revealed by an Australian government review of social media and defense.
The review of social media and defense by Australian government completed in March disclosed that Taliban is using fake Facebook profiles with girls to obtain intelligence from military personnel. (Read more)


Facebook Inc. (NASDAQ:FB) Accounts Illegaly Used to Gather Secret Information, Report | News Today Digest

The Problem With Python ~ Perils of Python

Python freaks adhere to their favorite programming language like zombies to a cult. This is going to tick off some Python freaks.

You need some third party apps to make a standalone app out of Python. Plus it has many many add-ins built with C, C++ and whatever your programming weapon of choice. It can be a mashup of binary vomitus that can have some serious consequences. I saw one today.

This particular Python app was built by some troglodyte who's previous arena of expertise was DBase and FoxPro and thought that relational databases were a passing fad. So this app that he built fed itself data using .dbf files. Let me tell you, finding a .dbf file converter for free is like trying to find someone with a full set of teeth in a small southern town. Excel stopped outputting .dbf with 2007. Why would you need a dbf converter when you could use something more in the 19th century like a csv file? (Twentieth century is xml and 21rst century is JSON).

Well, it all has to do with the Perils of Python. The importer in this case was written in Python, and theoretically, it could import both csv and dbf files. CSV files always failed. But they didn't fail consistently. Sometimes the python input parser would correctly import a CSV and then on another like file, it would create extra fields, columns or whatever dinosaurs called table columns. It was a huge WTF? moment.

Then it came to me in a flash while I was emptying my colon. It was the colon in the date field. In some random cases, it correctly surmised that it was just another character in the field, and when another file was read in, it immediately said "AHA! Reserved character separator!. So why the inconsistent behavior? Da Python!

The input parser would make a decision on which import method to pass the input to. Depending on file size, it went to a method that was a layer of abstraction over the Python engine, or virtual machine, or Model T or whatever they call Python binaries. This would cause a choke. With just a few changes in the file characteristics, it would get imported natively and happily work. Unfortunately, you couldn't predict when and where it would work.

SO .... people beware of hiring the guy next door who will do the job for cheap ... these guys who still program with tools from the middle ages are doing you more harm than good. And your program is only good when it is operating on their development machine. Put it out in the real world and it fails quicker than the zipper coming down on Pee Wee Herman's and Fred Willard's pants in a darkened theater. Caveat emptor. The price you pay for using Python is huge if you want real inter-connectivity.

Chrome Blocking Extensions Part II



In a previous blog entry, I described how I added Chrome Browser extensions to prevent tracking cookies. Sites like CNN and New York Times and such sell tracking cookie information to all comers, and since I am a privacy advocate, it was starting to tick me off. So, I added DisconnectMe, Ghostery, and Do Not TrackPlus to my Chrome browser, and life was good.

I added the Adblocker, and that threw me my first curve ball. I couldn't access my Google account to see how much money my online ads were making. That made me take off AdBlocker.

Last week I discovered another fly in the ointment: Expedia.

The reason that I use Expedia is simple. I wanted in overnight hotel room in city that was 5 hours away. I just wanted a quick stopover, a place to lay my head and to get up and continue my journey. I knew of just the hotel that I wanted to stay at and where it was. I went to their site, and got what I thought was a reasonable price. To double check, I went to Expedia.

That same hotel room was 30 per cent cheaper on Expedia for the same night. I immediately booked it. I couldn't complete the online transaction. It kept telling me to wait a second and try again. After 15 minutes of this, a Eureka moment struck me. I turned off the Chrome Extension blockers and all worked well. I was able to book my hotel online.

Luckily most of these blockers have a little icon in the corner of the browser where you can turn them off and on. However, I wasted a quarter of an hour figuring this out.

500 Error UnsupportedClassVersionError


(click for larger image)

Had a troublesome error. I moved my development environment in Eclipse to my laptop. Imported the project. Everything went smoothly. Started the server. All fine. The minute that I had to go to the database, it blew up with an error that looked like this:

javax.servlet.ServletException: java.lang.UnsupportedClassVersionError Unsupported major.minor version 51.0

I realized that my new Eclipse Juno was set to compile for the 1.7 Java environment and Tomcat was running 1.6 Java JRE.

I went into the project properties, and selected Java Compiler option. On the upper right corner there is a link where you can click to Configure workspace settings. The JDK compliance is set to 1.7. (which is version 51). Use the combo box to set it to 1.6 which is version 50 and it should work.