Tuesday, November 13, 2012

The Next Linkedin/Facebook...

I don’t know what the next LinkedIn or Facebook is going to be, but I do know what one of the next LinkedIn or Facebooks is going to be.
 
It will be just as big,and actually could even end up being bigger than Facebook in terms of end users.
 
It will cross borders and countries, and it will change the face of the planet as we know it today in a positive way.
 
It is going to be an education destination where anyone can come to learn anything at anytime.
 
Education without bureaucracy, education without borders. It will be both synchronous and asynchronous. It can be instructor led, it can be self-paced. It can be for profit, and it can be for free.
 
It can and will ultimately be all of these things and much more than we can even imagine today.

Wednesday, October 31, 2012

HTML5 is Worth Your Time

Though all the features are not close to being 100% cross browser, and while I have only scratched the surface I think HTML5 is real game changer. I certainly am excited thus far with what I see.

Web Storage is a great new feature that is essentially cookies on steriods. Actually comparing it to cookies is a bit of a disservice. In a nutshell web storage is a hash (associative array, aka key/value pairs) that you can store persistent or per session. The most interesting to me is persistent, though this term is a bit of a misnomer as the cache is only persistant until one clears out their browser cache. Session can also be useful for maintaining page to page context where you do not want to make a trip back to the server. In general I think it is still going to be appropriate to maintain session and persistent context server-side, but this really is a nice option for certain development scenarios.

Client Side SQL DB - I have not done anything with this one yet, but it the feature that excites me the most. A client side database you say... what for? Being able to put a database on the client opens up a wealth of possibilities for resident apps. Yes... yes... I know we are entering the age of the cloud (which also is very cool and about time) and 24/7 connectivity, but the possibilites for pc or tablet apps is very thought provoking indeed. Especially coupled with the new file system api's. Think Dropbox on a much broader and grander scale!

I also like the new audio and video tags, though there have are means of doing this for some time.

When you couple HTML5 , CSS3, and killer libraries like JQuery one can really begin to build some wicked apps.

I started working with HTML a month before they implemented tables (seriously). We could only dream back then. Today our only excuse seems to be our own lack of imagination :-). For someone that has been riding the web train since Clinton was President these are some very exciting times to be doing web development.

Thursday, October 4, 2012

These are merely tools we use

My email tag at GE says "It is not about the tools, it is what the carpenter does with them."

If only I had a better set of golf clubs I would be a better golfer. More times than not this seems to be our mentality in technology. The technologies we use are nothing more than tools. What we craft with these tools is up to us, our imagination, skill... and of course our collective ability to communicate and to work and play well with others.

Twenty years ago we had to limit our imagination and consider things like can I really afford 3k for that image in my webpage? We needed to do all sorts of contortions to build web content. Web applications were something we only dreamed about. We were cave dwellers trying to build a civilization with stone tools. Ancient civilizations can do some pretty amazing and resourceful things.

Today we are only limited by our imagination and ability. The tools we have to work with are powerful. The languages expressive. Inherent context management for our pages with a single directive. Powerful, scalable resources that are easy to implement and develop in. Answers to our current woes just a google away. It is a great time to be a software developer.

It seems we have moved past the "if only I had this tool I could..." phase. This is good because I have never been much for excuses.

Todays biggest challenge is to be able to store singular data on the backend and to interact this data with the front end user experience irrespective of the device: PC, Laptop, Netbook, Tablet, Smart Phone.

Well, what are we waiting for?

Tuesday, October 25, 2011

On Dennis Ritchie Passing

On October 12th, 2011 Dennis Ritchie died. Most of you are too young to remember who he was. To old geezers like me he was a programming geek many of us wanted to be. He invented the C programming language. It has been far too long since i have written a line of C. It is such a wonderfully elegant and powerful language.

Back in the day to be able to say you programmed in C gave you a certain stature among fellow programmers. The raw power and sheer beauty of pointers. The brilliance of the header files in abstracting the machine but still allowing us an intimate experience to use all its power. Being able to wisely know when to use register to create lighting fast stacks. Macros and other preprocessor directives. i could go on and on.

Most modern day block languages can be traced back to C.

Most of us involved in programming plumbing, or working to build higher order code have moved on to using higher level languages. While most still involved in plumbing and infrastructure use C++, it really is C that led the way to where we are today.

SQL, TCP/IP, The modern GUI. They all have roots that can be traced back to C. C freed us from the tedium of assembler. It allowed us to start thinking less about the machine and more about the virtual space that is software that we wanted to dream in.



Dennis Ritchie was a true icon in the programming community and will be missed. His passing is the passing of an era that in digital years seems to these gray temples like ancient history.

Wednesday, July 20, 2011

i forgot why i like developing software

it is easy for me to get caught up in the technology wars, chasing after the silver bullet in technology, the negativity that is associated with having to deal with bad software, bad implementation practices, and much more...

... but, i am getting weary lately of getting bent by all these distractions.

Software is what i want it to be. there may be norms, there may be standard practices, there may be accepted and practiced conventions. But there are no rules. There is only your imagination and your ability to break free of so many of the norms that stifle creativity.

i forgot why i like developing software. i actually do this more times than i care to admit. i do all the bad things i mentioned above. i only have myself to blame when i do this.

i like developing software because there really are no limits or boundaries other than your own imagination and ability. i am talking about developing software as a one person shop, where there are no meetings, no deadlines. A world limited only by your own imagination and skill.

i also, far too often, forget the joy of engaging in an activity where you have total freedom, and total control. kind of like the guys on Swamp people, though probably not as cool as being a gator hunter. i suspect i forget this because i have to spend far too much of my time these days developing things i am just not all that interested in.

work really sucks when you are doing things that are not of much interest. when you have a gig that engages you it is not really work at all. But, with time being scarce and at a premium i still need a development fix that interests me.

i have found a new hobby in hydroponic gardening. i am documentating my experiences and learning. i want to put together a website on the subject. Putting two and two together i just do not want to go the drudgery of yet another website (yaw). I want to try a new user experience for delving into information. i have no idea what that new experience looks like at the moment, but that is half the fun ...

and, like i'm sitting on the beach in the keys with a cold one i have no sense of time or urgency to get anything done :-).

Tuesday, July 19, 2011

When Developers Do Not Work In Production...

...Software suffers.
This will certainly ruffle some feathers. I suspect if I was working in development and did not have any experience with how my stuff worked in production I might take offense.
In defense of developers, it is seldom part of the plan of development leadership to expect their development staff to gain this experience. I am not talking about some afternoon field trip to one of the production customers to be a nuisance looking over their shoulders. I am talking about some real time on the pond. Sitting down with the end-users and asking them what they like and more importantly what they don't like. Getting to know their workflows and how your software facilitates, or more importantly how is impedes their work.
I am not just talking about application development that ends up in the hands of end-users. End consumer of software like Report Writers, Business Rules Engines, BI software also needs some TLC.

For example, years ago I worked with a Report Writer that in the interest of maximal reuse the vendor decoupled the query from the presentation layer. To make matters worse they stored all the queries for every report in a single file. The production systems I deal with can have up to 1500 reports to manage. They might also have as many as 8-10 staff members that write reports. To further compound this the development environment for writing reports is on each report writers individual Windows workstation. The runtime enviroment is on a Posix server. And, workstation and the server had their own, out of sync version, of that one file that held all the queries. Meaning...
  • We (actually, us and our customers) had NO means of keeping that query file in-sync between all the different report writers working on different reports and queries.

  • Further they had no means of getting the queries in-sync with that single file on the server.

As a remedy, we created a special tool that took the query from the workstation query file and appended the query file on the server. In the next two releases of their product that we upgraded to they changed their underlying metacode and broke our tool.
  • This approach made troubleshooting and support very difficult.
For example, if you wanted to share a report, or open a case for a report you were having trouble with here was the process you needed to go through.

  1. Send them the report file (which contained the presentation layer)
  2. Cut-n-paste the query from the other file to send to them. You also had to send them the name of the query (case-sensitive) so they to add it to their environment.
I could go on and on. Needless to say we got them to add functionality that coupled the query with the report. But, the real point I wish to make is that the developers lack of understanding of what it takes to support multiple employees writing reports in an operational environment contributed to what was one of the biggest software fiacos I have witnessed in my 20 years in this game.
While that example is extreme it serves to satisfy the old cliche that "you will never understand until you walk a mile in their shoes."
The #1 problem with software today is the inability to gather bullet proof requirements and translate them into killer apps. While there are many, many reasons for this, one is... that it is hard to communicate effectively with someone that has no experience with the boots you have to walk in.

I do apologize if this offended anyone. Though, it does not change my perspective on this matter one iota.

Saturday, May 7, 2011

RAID Fun and Games - Part 2

My "Mediasonic USB 3.0 & eSATA 3.5-Inch 4-Bay" Raid enclosure came. Seemed like a very solid and well put together device. Newegg had mostly good reviews on it. A few days later my 4 1TB Western Digital hard drives cames from geeks.com. They were $65 each. A helluva deal. Unfortunately they had an outer "caddy" and DID NOT physically fit into the raid enclosure.

I am not exactly destitute, but my outlay was $450 for a 4TB raid setup that I could use for various mucking around. Not exactly chump change. I tried to get some support, but that was a big strikeout. I really did not want to try and remove the caddy. I really had no other options for buying other drives, and did not want to take a chance on desktop hard drives as there were some folks on newegg talking about problems they encountered that made me wary.

The Mediasonic unit had its own raid controller built into the enclosure. Given the fact that the whole device cost only $200 I suspect the raid controller was not doing the raid in hardware as those controllers (the low end ones) tend to cost more than $200 alone. Still, I was just not trusting going with desktop drives given some of the reviews I read on Newegg.

I returned the drives (pained me to do so). Geek.com was really good about taking them back. Will do business with them again. They have some great deals, especially if you do not mind technology that is a little older.

While I like the Mediasonic enclosure I could not find any information (their forum, the general internet, etc...) that definitively stated they were doing software raid. The whole point of this exercise was to be able to play around with various raid configurations. I could live with a software raid setup, but the lack of information on the subject has been dissapointing.

I will continue to research the subject (though not as diligently) and maybe there will one day be a part three to this.