Being An Elegant Business Programmer

11 September 2011 | talking about Programming

“I am a Java programmer.”

“I am an object oriented programmer.”

“I am an agnostic programmer, I can program anything.”

“I am a mobile programmer.”

When talking to software developers everyone is something. Today I am going to reveal what I am, creating a new category of programming, a completely new bucket of organization. Drum roll please.......”I am an elegant business programmer”.

computer geek image

Being Elegant

Ok maybe EBP is not the best name, I will work on a better one. For now, though, let’s define what it is. First let’s analyze the “elegant” part. Code can be a work of art or a tangled web of craziness. I consider code elegant if I can read it as I would a book. A well-written book reads smoothly, and uses words wisely to lead the reader along with the plot. Unnecessary wordiness may drive readers away. Similarly, with software development I should be able to start at the top of a file and read through the entire code at a consistent pace, not getting hung up on any section in particular, and not being flooded with unnecessary terms.

An example of “not so elegant” would be a 10 line sql statement just to return back a perfect sub-set of data, when a “Select *” would have done the trick. That 10 line statement often will cause someone reading the code to stop and spend a great deal of time dissecting. I am sure that block of sql took 100X longer to write then a simplified version that might have returned a little more data. Furthermore, that block of code is very hard to maintain and debug in the future.

I know what people may respond to the statement above with “performance is better with the ugly block of code”. You know what does not perform well? Software that never launches. Or software that launches with tons of bugs. Every performance decision should be made on “will my users notice the difference”. They will notice bugs. They will notice it takes forever for you to release new features.

Be a knowledgeable programmer: recognize when there could be better ways of doing something. However, when software is young, a focus on elegant, maintainable, bug free software is a far better approach.

Naming conventions: keep them readable. Anyone that has ever read my code will notice I use longer and more descriptive class, variable, and function names. Remember: your code should read like a novel. Don’t make your names so unreadable that no one can understand your code. Both Objective-C and Ruby have gone to great lengths to make naming conventions understandable. I try to follow suit.

Another less than elegant approach is being tough with your typing while you program, particularly in scripting languages. I really get annoyed when I see classes riddled with private and public restrictions. I really get annoyed when people go overboard with making sure every variable is typed just perfect. Yes, in some software this stuff really matters. In web scripting world this stuff does not really matter. It just makes you an OCD, control freak programmer.
Read the rest of this entry

Content Management Systems

23 February 2011 | talking about Programming, Infrastructure

Different CMS SystemsContent management systems (CMS) have been on my mind for a while now. Several months to be exact. A content management system for the web is a system for publishers, producers of content, to easily distribute content without needing a PhD in computer science. Allowing the producer of the content to focus on the content not the technology. Once a CMS is setup a publisher just logs in to a private admin area to add content. Adding content in most cases is as easy as updating your status on Facebook.

Content Management On The Brain

The reason I have been thinking about and playing around with different content management systems is I have had this good guy bad guy thing going on. As a programmer I have always just felt managing content is for non-programmers. If I need to create a new web page I will just open up a text editor and build that page with my programing skills. Who needs that extra layer of fluff? I have used almost every CMS on the market in the past for client work and personal blogs. I always felt they were great if the primary user was not a technical person. Over the last few months I have had this unexplainable urge to prove to myself that I need a content management. I have been on a quest to find a CMS that speaks to me. Diving deep into each CMS offering in search of a CMS that delivers the flexibility I need as a “programing power house” while at the same time giving me features and interfaces to manage my content in a more effective way.

I spent a great deal of time with Wordpress, PyrosCMS, ExpressionEngine, Drupal, Joomla, and FuelCMS. Almost all these content management systems provided really nice ways to build pages, and a blog (which I am sure is a majority of the CMS market). They all had their pros and cons for customizing into a platform to run my web empire. On several occasions I concluded I was just going to write my own CMS (like every web developer does) but then realized there is a lot to it, hat tip to all you CMS developers out there. Then I went into a phase of “I will just build whatever I need on top of which ever CMS I choose, and maybe contribute the code back to the community”. This was a great idea but felt like there was too much custom hacking going on for the commercial products I manage.

Finally, I fully committed to Expression Engine (EE), the only commercial, non-free, CMS of the bunch. I have been playing with EE for years but always thought it was not suited for my particular needs. I was pretty wrong about that. EE is the most flexible and robust CMS I have ever used. Its channeling system, templating system, and asset manager really allows me to build web applications the way I want and not structured around some restricted way of doing things the CMS developer chose. My team and I at Skyclerk recently fully converted our public marketing site to EE. We are very proud of what we completed and are very excited about the flexibility EE will offer for us to grow in the future.
Read the rest of this entry

Love Of Evernote & The Art Of Reflection

5 December 2010 | talking about Cloud Computing

Evernote & SkyLedgerI have never really been a note taker. For the most part I always have a pen and paper nearby in case I want to jot something down, but often I do not use them. I do not know what constitutes a good memory, but given the fact I can often remember most everything (minus names, spellings, and phone numbers) I am going to say I have a good memory.

This brings me to my new favorite product, Evernote. Evernote is a note taking solution that makes it easy to remember things big and small from your notable life using your computer, phone, and the web. I am going to go as far as naming it my 2nd favorite product of the year. My 1st favorite product is Skyclerk, of course!!

For over a year now I have been looking at Evernote thinking “cool product, I really want to use it, but I am not a note taker”. A few months ago I just took the plunge and started putting anything and everything into Evernote and my life has changed because the use of Evernote has taught me the art of reflection.
Read the rest of this entry

AudioBox - Real Cloud Based Music

16 May 2010 | talking about Cloud Computing

When it comes to hardware and operating systems I am one of the biggest Apple fan boys out there. When it comes to software and control I am truly annoyed by Apple. As a side note I am an Apple share holder and I love what they do from a business stand point. Apple has held back music players for years. They released iTunes a long time ago and it blew all the music players out of the water. Back then compiled desktop based software was cool. Then they went full speed ahead with the Apple iTunes music store. This was amazing from a lets kill cds standpoint.

I have a library of music that I have gotten from all different sources; Amazon, iTunes, cd rips, and so on. I want to stuff all this music in one bloat free place and have it with me everywhere I go. If I am 100% an Apple user this place is iTunes, but I am not. I have an Android phone, a windows netbook, linux laptop, Apple desktop, Apple laptop. There is no easy way with iTunes to keep all these devices in sync when it comes to my music. Nor do I want my 13 Gig music stash living on all these devices. The service that was about to do all this was until Apple purchased them and closed them down. has sort of done it but their way of doing things is a little odd and they use way to much flash.
Read the rest of this entry

My Top Technology List Of 2009

7 January 2010 | talking about Cloud Computing, Programming, Infrastructure

technology_v1Every geek blog I actively read posted a list of top technologies for 2009, so I thought I would be remissed if I did not do the same. These are technologies that really stepped it up or came to my attention in 2009 and became part of my everyday life both for work and personal used.
2009 was all about moving my life to the cloud. I determined early in 2009 it was stupid to ever store a file on my computer ever again. All my data should live in the cloud so I can have access to it everywhere I go, I can have access on any platform (think cell phone), I can easily share my data with people I want to share it with, and lastly I do not have to worry about backups (for the most part), and that is just what I have done.
Below is a list of my top 10 products that have changed my life in 2009. The first 6 are sort of consumer related and the last 4 are software developer related. So if you are not a software developer I am thinking you might only find the first 6 interesting.
Read the rest of this entry

No More Compiled Software For Me

25 November 2009 | talking about Cloud Computing, Infrastructure

Cloud Computing As many of you know I am the founder and president of Cloudmanic Labs, LLC. At Cloudmanic Labs it is our goal to build web applications that traditionally were handled via compiled native software and stuff them in the Cloud. For a while now I have been not eating my own dog food (for a lack of a better term). I stilled was using a native mail client, still listening to my stored mp3s in iTunes, using word to type documents, still using some sort of compiled solution for a twitter client and so on. Then the recent preview release of Google's Chrome OS came out and it gave me a wake up call.
Read the rest of this entry

I Am Totally Jazzed On Appcelerator

17 November 2009 | talking about Mobile, Infrastructure

Take a look at my post over at Cloudmanic Labs.

Also take a look at the new stuff they are doing in Version 0.8

Titanium 0.8 Preview - Facebook Enhancements from Appcelerator Video Channel on Vimeo.

Read the rest of this entry

The Stats - Linode Vs. Slicehost ...... And The Winner Is…...

25 April 2009 | talking about Infrastructure

long time ago I went to a linux user group (plug) and there was a fresh new company giving a presentation on this way cool new technology called User Mode Linux or UML. They created this company using virtualization to offer dedicated hosting to users. More or less having many different instances of Linux operating systems all running on one server. Each instance is owned and operated by a different customer. I was so taken in by this idea I became a customer right way. I was a customer for many years as a matter of fact. However I was never really that happy with it. Just seemed to be slow and sluggish.

So I finally left and went on to a Mac Mini hosting which was interesting but owning the hardware and having \"remove hands\" just annoyed me. So I moved to shared hosting. Well that just sucked!!! So I started to get interested in these VPS dedicated hosting company. Thinking that maybe UML has gotten better with time. I found out the UML is a thing of the past and is now been taken over by Xen and all these VPS hosting companies are using Xen which seems to be way faster! So I thought I would give it a try. I looked at all the companies and concluded that SliceHost and Linode were the two best companies on the market.
Read the rest of this entry

PiWik - Oh My God This Is The Best Took Ever!!!

22 April 2009 | talking about Infrastructure

As someone that looks over many different websites one of the tools I have used is Google Analytics. Google Analytics using some javascript that you install on your website to send traffic data back to Google. Then you can log into their website and view data about your traffic. This data consists of visitors, page views, visitor location, and so on. There are hundreds of tools out there for this purpose but Google Analytics really stepped up as the best free option. My only problem with Google Analytics is you have no control over how it works. You do not have direct access to the data, and the data is not processed in real time. While I continue to think there is nothing better out there for free I have recently stumbled upon an amazing open source project called PiWik.
Read the rest of this entry

My Love Of Jquery’s Form Plugin

15 April 2009 | talking about Programming

The type of web programing I do often has a large database back-end with which requires user input and data return. In the olden days you just created an html form and then posted some input data to some cgi (say PHP script) and the script would speak with the database and return some html causing the browser to reload on post. Now that we are a super cool web 2.0 world we do not do this anymore we make javascript use Ajax to do the post for us. If you are anything like me you take one look at javascript and say "no thank you". Most people hate the syntax of javascript, the confusion of the language, or the browser compatibility issues; when I say most people I am including me. This is where our friends at Jquery come to the rescue (more on them in another post).
Read the rest of this entry