2012 in review

The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog.

Here’s an excerpt:

600 people reached the top of Mt. Everest in 2012. This blog got about 6,600 views in 2012. If every person who reached the top of Mt. Everest viewed this blog, it would have taken 11 years to get that many views.

Click here to see the complete report.

Just for fun !!!

So today, just for fun, I had a wild idea !!!

Windows Web Server 2008 hosting IIS 7 running Python 2.7 + Tornado + Django 1.3 doing the same thing I was able to achieve with Ubuntu + Python 2.7 + Django + wsgi + Tornado + nginx !!!

I doubt the Windows performance will match that of Ubuntu however this has been all kinds of fun !!!

See also:  Running Django on Windows (with performance tests) !!!

I was originally interested in doing Django 1.3 with Windows Web Server 2008 and IIS 7 so what I found was pretty darned cool.

Point and click installations for all this stuff was nothing less than amazing !!!  Especially for Windows !!!  WTG Microsoft !!!

What I really want is WebDav so I can share my huge pile of files with myself and only myself via the Internet and WebDav seems to do the trick…  problem is Windows Web Server 2008 doesn’t seem to know how to do WebDav so I have to improvise a bit by making this do the trick as follows:

Tornado does wsgi !!!

Now IIS 7 does Tornado !!!

Easy as 1,2,3 !!!

Oh, and this puts me one step closer to having my own Private Cloud in my home !!!

 

 

 

Management 101 – Make Dashboards

Yes, I am a Manager now…  not saying where because I value my job but this is my innovation for Managers everywhere.

Make Dashboards – Upper Managers seem to love Dashboards and this is all I am gonna say about this.

And who ever said I’d have to have an MBA to be successful in Management, anyway ?!?

 

Simple improvement – 3D Pie Charts !!!  Gotta love Excel !!!

 

Automatic SEO Optimization –> Test Drive it today !!!!

When Any and All URLs based on the CargoChief.Com domain leads the end-user to the CargoChief site you are free to explore SEO (Search Engine Optimization) simply by using whatever URLs you wish to use such as the following:

http://www.cargochief.com/book/your/next/shipment/through/us/

or

http://www.cargochief.com/helps/you/connect/with/shippers/

or

http://www.cargochief.com/gets/your/pallets/shipped/today/

or

Whatever your marketing people might wish to use… you can feel free to be as creative about your message and how your URLs are positioned in whatever search engines you may wish to use…

Yet another useful innovation you may wish to begin using today.

Go ahead and give it a try…  the URL you bookmark will be the SEO-friendly URL rather than the actual end-point even when the actual end-point takes you to the CargoChief Cloud.

Only works with http://www.CargoChief.Com or CargoChief.Com domains.

Never see another 404 page again !!!

Brought to you by Vyper Logix Corp, innovation for the 21st Century ad beyond.

PogoPlug is FASTER than DropBox for my needs !!!

Been using PogoPlug for a while in parallel with DropBox with PogoPlug Agent running on one of my Mac Mini boxes (seems Apple is good for something after-all albeit a bit pricey as compared with the Atom alternatives since Mac Mini’s run pretty cheap).

PogoPlug is FASTER !!

Well FASTER than DropBox anyway…

FASTER than that damned silly NAS I wasted money on last year – it has something like 8 TB but is as slow as molasses even though it is connected to my LAN via 1 Gbps.  Go figure.

PogoPlug Agent is fast enough to be useful when it says I have 14 TB spread between the slow NAS and the Mac Mini that has 6 TB in the form of 3 TB USB 2.0 drives.  Damn Apple for not supporting USB 3.0 !   LOL   But at-least USB 2.0 is FASTER than SATA II NAS !!!  If you can believe that !!!  Or maybe the Mac Mini is just FASTER than whatever OS is running in the SATA II NAS ?!?   Who knows why it is FASTER… I just like FASTER.

PogoPlug Agent is FAST-enough to allow me to go searching for files from Windows 7 while at work with reasonably quick results even when no file indexing was done by me other than whatever PogoPlug is doing for me.

Is PogoPlug Secure ?

Who knows… all I know is if I didn’t build it then it is likely not secure enough for my tastes.

PogoPlug is likely not doing SSH when shipping files to and fro – seems too fast for any kind of encryption but for all I know they use SSL or nothing.

Back to learning more about the PogoPlug while I trust their software is not allowing every one on the planet into my files like DropBox has been known to do.

Needless to say, I am getting closer to ditching DropBox for my most important files… just getting some other things done before I get around to it while giving PogoPlug a spin for a while.

 

More Android Adventures

Getting some good downloads just from word of mouth and no advertising while working on the back-end to make sure I won’t have to pay any money to Google for the Google App Engine.

BTW – I now have a slick method for ensuring only 2000 emails per day are sent by aggregating over a 1 week period; all excess emails are shunted to a PHP Script running on a low-cost resource I have secured in 5 year intervals (unlimited bandwidth and unlimited disk space, yeah – one of those…).

See the status:

Android Development Project #1 – Game Tube

Game Tube is a new Android App for Android 2.2+ and Adobe AIR 2.5+

Game Tube 1.0

Game Tube 1.0 will allow people to view certain selected Gaming Sessions for entertainment purposes only.

New Gaming Sessions will be added on a regular basis.

Game Tube 2.0

Game Tube 2.0 will allow users to “upload” their gaming videos via You Tube as a way to share their Brag Clips with other users of Game Tube 2.0.   People will have the option of installing a Desktop Version of Game Tube 2.0 to their Windows/Mac/Linux Desktop to Administer their Game Tube Brag Clips;  there may be some support in the Android version for this also.

Game Tube 3.0

Game Tube 3.0 will allow users to build their own Social Networks of friends and others they wish to share their videos with.  There may be a FaceBook App that interfaces with Game Tube 3.0 to allow users to share their Brag Clips via FaceBook.  Support for Twitter and other Social Networks may be added depending on user support and user requests.

Stay Tuned for the ride !

Check back here for additional details whenever they become available.

Riddle me this… ?!?

How can a language with half the speed give 200% better performance ?!?

Facts:

#1 – Java is supposed to run way faster than Python.

#2 – Java servlets are single threaded due to complexity of threading model.

#3 – Python can more easily deal with real OS threads. (No link required because this is Axiomatic.)

Fact #2

Whenever Java programmers talk about Java, in hushed low voices, in relation to performance problems they are having with Java – not that anyone wants to talk about any perceived performance issues where Java is being used… they have to acknowledge the undeniable fact that Java is simply single-threaded.

Java is only single-threaded because the code required to make Java multi-threaded is so god-awful complex that nobody would want to have to deal with it AND the requirement to write thread-safe code.  Actually thread-safe code has gone the way of the dodo bird in Corporate America.  Why ?  Because your typical programmer (I hate to use the term “Software Engineer” here because most programmers are no more an “engineer” than milk is carbonated, which as we all know milk is not at-all carbonated unless you can find fizzy milk and as we all know when you walk through your local grocery store you ain’t gonna see much carbonated milk and hence there are very few real software engineers in Corporate America contrary to popular belief and all self-delusions aside…).

Thread-safe code is about as fun to write as Drano is to drink, for most Java programmers (aka. code slingers).  Let’s face it, most Java coders hate to solve real problems when they can have so much more fun writing Java code.  Why spend all that time working-out how to make your code thread-safe when there is very little reason to do so since each Servlet instance runs in its own thread anyway ?!?

Fact #3

Anyone who has spent enough time with Python to learn how it works knows Python handles thread as easy as 1..2..3.. which means Python wants to be multi-threaded.

Python has that really cool Global Interpreter Lock which to the casual uninformed coder seems like a really bad idea until you figure-out it really does help you write thread-safe code without so much as having to even think about whether or not your code is in-fact truly thread-safe.  Each thread gets to execute a certain number of instructions before the next thread gets control and so on until all threads have had their turn.  The GIL ensures there is never more than exactly 1 thread being executed at the same time.  In essence the GIL makes multi-threaded code pretty much automatically thread-safe while allowing software engineers to engineer their software using multiple threads.

Stackless Python !

Stackless Python makes micro-threading easy and is in-fact easier to code than Python OS threads.

Stackless Python is at the heart and core of one very popular and powerful MMORPG known as Eve Online.

Why has nobody ever coded an MMORPG using Java?

Java-based MMORPG…  Okay maybe there are some Java-based MMORPG Engines out there; supported by a ton of C++ code rather than pure Java code.  But… Why are there no Java-based MMORPG games I want to play ?  None are as popular as Eve Online !  Eve Online is the ONLY MMORPG game that features a single unsharded Game Universe !  (Eve Online appears at the top of that search, doesn’t it ?!?)

Why do skilled Java coders not push their Java servers to the hilt ?

So who even knows what the “hilt” is where Java is concerned anyway ?

Typical Java coders who spend their time in J2EE-ville are far less concerned about pushing the performance envelope than in just writing some pretty easy to understand Java code… so because very few Enterprise-level Java coders know what the “hilt” is none of them would know how to push it to the “hilt”.  Also pushing it to the “hilt” would require some pretty insane coding and who wants to have to do that anyway ?!?

Python makes it easy to push it to the “hilt” !

Let’s face it, when you have as rich a set of data types to use when writing your code you can very easily find yourself pushing your code to the “hilt” and beyond.

Python makes the job of writing very efficient code as easy as possible without losing your ability to handle complex coding problems.

Java, as a language, is not about coding complex problems easily.  Java is all about readability and making code easy to understand.  Java coders don’t even think in terms of writing efficient complex code – they are all about just making the code work about as simplistically as possible.  Java does not make data manipulations fast, efficient and powerful the way Python does, IMHO.

Obviously I would rather code Python than Java !

But like everything, there is a reason for this… Nuff said !

Charting Stress Test for Flash and the Google Cloud

This is a story about LitePoint.Com and how they need to hire someone who can resolve their terribly messed-up Flash Builder 4 Code that cannot perform real-time charting of only 5000 data points.

Once upon a time a skilled software engineer went on an interview with the aforementioned company who said they wanted to hire someone who has worked with Charting Apps that chart a bunch of data points, in this case some 5000 every 250 ms.  The skilled programmer told them he could do the work.  They asked what past coding projects could they view as proof of the skill our rugged Hero said he had.  All went well for the first part of the interview until… The two guys who had created their problems had their chance to interview our rugged Hero.  Neither of those guys had any experience to speak of with Flash or Flex (Flash Builder 4 is really Flex).

One of these guys was a C++ programmer and neither knew anything about Object Finalization, as if knowing how to cause objects to be garbage collection is all that big of a deal – which it is not, of course.  Let’s forget the fact that one need not be the least bit concerned about either object finalization nor garbage collection when performing real-time charting of 5000 data points every 250 ms – because none of that is the least bit required.

Let’s also forget the fact that one need not create a bunch of objects to get 5000 data points charted every 250 ms; unless someone tried to build their own charting display objects and they had no clue what they were doing.

Let’s also forget the fact that not only can Flash Builder 4 produce Apps that can chart 5000 data points every 250 ms one can also easily optimize this system to handle far more than just 5000 data points every 250 ms.

Let’s also forget the fact that our two llama C++ guys who caused their own problems were trying to convince their bosses that Flash Player cannot handle charting 5000 data points every 250 ms, as-if the only way to get this done would be to code it in C++.

Let’s also forget the fact that if one really wanted to one could shove C++ code into a Flash App to get the performance up, if one had to do so.  It’s called Alchemy, not that those two Llama’s had any clue about this aspect of Flash anyway.

So now that we have chosen to ignore all the facts we can focus on the solution which by the by only required 12 hours time to build but then this is how a skilled programmer handles such trivial tasks as charting 5000 data points every 250 ms.  This is worth 12 hours because this is a non-issue for Flash Builder 4.

See also: Charting Demo – go ahead and download it.  The published version handles 5000 data points every 250 ms with ease.  The simplest of optimizations could easily boost performance to 20,000 data points every 250 ms with ease.  Additional optimizations would result in 50,000 or more data points charted every 250 ms, also with ease.  Just in case Flash Player might prove too slow one could always achieve this goal using any number of techniques capable of displaying 30 charting updates per second by using some optimization techniques any suitably skilled programmer should be able to manage with ease.

Anyway, Charting Demo took 12 hours to build – time-permitting some additional features may be added such as a slick Dashboard with gauges and dials to show the performance.  It would also be nice to boost the performance as high as possible just to prove this can be done with Flash.

Moral of the story is… if you need to hire someone to fix your problems you might as well hire the guy who says he can get the work done… who knows he might even get it done right away and save you some money OR you can just live with your problems and keep on interviewing until you find Mr. Perfect who may or may not be able to get the job done.  Either way, this is nothing but a trivial problem for those who are suitably skilled – the rest cause the problems without knowing how to fix them.

BTW – The skilled programmer who wanted to fix these problems for that wayward company has also NEVER created a problem he could not fix – hey, I am talking about myself anyway in the 3rd person – this is a story so deal with the literary stuff however you wish… those who create problems they cannot fix should also not piss those off who can fix whatever problems anyone may care to create.

It should be noted Charting Demo was created with a couple Frameworks (Flex and the Google App Engine) that don’t exist anywhere else; Flash Builder 4 for the client and Python/Django 1.1 for the server.  Reusable code make Application Development a breeze – 12 hours is pretty quick for any development effort and this one has some pretty cool features – all those features are 100% reusable.  No reason to spend time reinventing the wheel – unless you are in Corporate America and cannot figure-out how to make your code reusable.

AmazingFacts.Org sells 50,000 units of the Product produced by Ray C Horn !!!

Their development investment was less than $50,000.00 !!!

Not bad for a product that was produced for Windows and Mac in English and Spanish based on a prototype that was produced during the first 30 hours of development !!!

Try as hard as you might you cannot beat this value in any single individual contributor !!!

Way to go Ray !!!

%d bloggers like this: