Elexicon Watermark
Archive for January, 2010:

January 15th, 2010 - Chris

What really makes Elexicon valuable to clients is the ability to deliver a lot for a little. When it comes to web programming and development, this can be difficult, because there are so many ways a development project can go wrong. I won’t reveal all our secrets, but here are some of the important lessons I’ve learned that help me ensure Elexicon or our clients don’t waste time or money.

Context is everything

I enjoy developing elegant, clean, programming solutions, but sometimes cutting corners and doing something quick and dirty is fine. No one but me cares about how code looks - they care about how it works. On the other hand, if it’s going to cost the client more for me to maintain my messy code in the future, then it may be better to spend more time to provide a more elegant solution.

The lesson here: Context is everything, and programming in a bubble should be avoided, because the programmer often will know best the questions to ask that could save the client money.

As an example, say a client named Jane Dough needs to import some data into her big important database. She’s considering having Elexicon build her an automated process to do so. At this point, we would want more information. Some questions we would ask would be:

  • Is this is one-time data import, or something that would have to happen often?
  • How is the data currently formatted?
  • How much data is there?
  • How long does it take to manually enter a single record?

From the answers to these questions, we could help her determine whether the cost of doing the manual entry would be less than or greater than the cost of building an automated process to do so. Often, there are diminishing returns, where it may cost a great deal to fully automate a system, but to compromise and just partially automate a system is a lot cheaper.

Other examples of common questions I ask myself:

  • Should I spend more time today to make this code standardized, or is the chance of reusing it very small?
  • Should I spend more time today to make this code maintainable, or will it not be around for very long?
  • How tech-savvy is the client? Is it worth spending time on making a system very usable when the client will be able to figure it out anyways?
  • Will spending more time on this development project now give me the experience to do it faster in the future?

Don’t reinvent the wheel

This applies to every level of the development process. It may seem obvious, but I still see it violated often.

On a higher level, don’t even think about coding your own shopping cart solution, blog software, or simple content management system. While it might guarantee your job while you have to maintain the behemoth of code you created, it betrays a lack of knowledge of the world around you. Instead of giving clients a system that’s built exactly to spec for a lot of money, you can often buy them a system that goes above and beyond what they want for even less money. It may take time to find the exact solution that fits, but that pales in comparison to the time you would spend implementing and maintaining your own solution.

There are definitely exceptions to this, but during the proposal process the key is to ask yourself: Does the client want something that’s similar to sites all over the internet? If so, someone has probably developed something that will save you time and the client money.

On a lower level, there are plenty of development tasks that can be automated or made easier by libraries. However, I would issue a warning: these concepts should be fully understood before attempting to automate them. I would not use an Object-Relational Mapper (such as Subsonic) if I couldn’t figure out how to code one myself, or use jQuery if I didn’t understand what makes it so powerful. It’s a delicate balance between libraries that save you time on trivial tasks, and those that will take too long to learn and/or restrict your ability to maintain and simplify your code. This is why it’s important to understand the concepts in the first place.

Proper communication is essential

Thankfully, at Elexicon we have a team of project managers who are used to working with both design and development, and who ensure that our lines of communication remain open. Nothing has the potential to save yourself and clients more time, money, and headaches like proper communication, mostly because improper communication can be disastrous. This isn’t just about asking the right questions to be aware of the context. It also comes down to the ability to translate tech-speak into language that the client can understand. Not only will this ensure that clients understand what is being delivered, but it will make your process more transparent and trustworthy. It’s good to be able to answer the client when they ask questions like “Why does this simple development task take 20 hours?” in terms that anyone can understand.


January 14th, 2010 - Calvin

Have you ever gone out of your house and made the trek to the back woods to cut down a few trees for firewood? So maybe it’s the 21st century and the number of people who have done this is less than in years past, but not long ago I was out behind my house working with my old, dull axe at getting a large rotted maple tree stump out of the ground. The work was long, exhausting and painful, but in the end I stood triumphant with one less stump in my back yard. I was proud of the work I accomplished, but I would of probably been able to get the job done much quicker with less of the “exhausting and painful” if I had taken a little time before starting to sharpen the blade of my axe.

You may be asking yourself how dull axes and stumps have anything to do with Elexicon or services we offer, but I submit to you that your website isn’t much different than an axe. Both are tools that do no good unless utilized by the owner. Likewise, both an axe and a website can become dull or less effective with time if not properly cared for.

At Elexicon, we pride ourselves with putting together state-of-the-art, industry-standard websites using technology and best practices that are on the forefront of what’s current. The same was true 10 years ago when Elexicon was first created, and the same will continue to be true years down the road. Although this is true, the same practices and techniques that we used when we first started have evolved with the times to make sure that our clients are kept on the “cutting edge.”
In this sense, websites can be like an axe. When we hand-craft and build a site and it goes live, it’s like a brand new axe straight from the hardware store— it’s shiny and new and sharp, able to do what it was intended to do quickly and precisely. However, in the same way that use and misuse of an axe causes it to dull and become less effective, so does neglect and lack of optimization lessen the effectiveness on your website over time. Indeed, though the site will still work much like a dull axe “still works,” getting the job done can become cumbersome and slow.

A good example of this was the changeover from building websites from a table-based system to a more current div-based system. Table-based websites can be, and are still, used today in some cases, but what many people don’t realize is how much easier and clean it was to design and build or update a website in a div-based structure where appropriate. It also became much easier to create stylistic and information updates globally throughout the site quickly and cleanly. The code read quicker and became easier to trouble-shoot for bug, thus lowering maintenance time. Today div-based websites are really an industry standard.

This is only one of many examples of how new web technology and coding practices have either replaced or updated existing systems that are used, most of which provide a more dynamic, intriguing experience for visitors to your website.

Part of what we do at is Elexicon is always learning or researching these new practices so that we will be equipped with the means necessary to build a state-of-the-art website, or to update an existing site with new and exciting tools for all of our clients. Whether you want to upgrade with e-commerce capabilities or to start from scratch with something completely different, know that we will make sure you have the sharpest tool in the shed.


January 13th, 2010 - Chris

Sometimes, you come upon tools and tricks that are so useful, you wonder how you survived without them in the first place.  Here are some of mine.

1) Keep your CSS styles all on one line

My first tip may seem really trivial - but with all the CSS builds I’ve done, nothing has improved the way I do CSS more than keeping my styles all on one line.  Basically this means writing this:

.style1 { margin-top:6px; font-size:22px}

instead of this:

.style1
{
margin-top:6px;
font-size:22px;
}

This makes a huge improvement in organization and ease of editing. It’s much, much easier to group related CSS items. Since the more spread-out version often separates styles with an additional break between them, your eye simply does not recognize the grouping as a distinct block of styles that belong together. Additionally, whatever comments you have to indicate groups of CSS styles are often off the screen. In contrast, look at a style block like this:

/*  My group of CSS styles */
.style1 { margin-top:6px; font-size:22px}
.style2 { margin-top:0px; font-size:12px}
.style3 { margin-top:525px; font-size:42px}
.style4 { font-size:42px;}
.style5 { padding-top:42px;}
/*  end my group of CSS styles */

In the more spread-out version, this group would probably take up a good portion of your screen - especially if the styles have quite a few rules. Instead, your eye instantly recognizes that the styles belong together and it takes up a whole 7 lines. You no longer have to spend hours scrolling around your 15 page CSS file (2-3 pages is usually what I end up with).

2) Firebug. Get it.

As a web developer, there’s almost no excuse for not having Firebug. It is the most useful front-end development tool that I’m aware of. Among other things, Firebug lets you debug Javascript, change CSS/HTML on the fly, and see all the requests you’re making while browsing.

3) jQuery. Use it.

Want to write extremely easy, concise, beautiful javascript? JQuery is the way to go. Sounds simple, but It’s basically a library that allows you to easily manipulate your HTML and CSS. It includes features like animation, ajax, and a huge library of plugins.

4) “It’s ok to say you don’t know. But you’re fired if you can’t Google it”

I’m not sure where I heard this saying originally, but it rings true in the context of programming and web development. It’s simple, but willingness to Google things can show you who the real problem solvers are. Google is possibly the best problem solving tool ever invented and it takes 10 seconds to consult it. If you have a problem with any aspect of web development, it’s almost guaranteed that others have had the same problem, so why reinvent the wheel?

5) See what others are doing

Smashing Magazine is one great resource, and there are others like it if you look. They often have lists of great development tools and new trends in web development. More than many other programming jobs, web development rewards people who stay current on the latest trends and technologies.


January 1st, 2010 - Chris

Much has been made lately of the explosion in applications for the iPhone and its market-leading app store.  We’ve just recently been trying our hands at it.  I’m a developer, and I’m on the bandwagon. This is why.

It’s a Simple Platform

Why is a simple, fairly low-powered platform a good thing?  While it reduces the number of things that you can do, the restrictions of the platform also level the playing field.  The internet has become so massive that it’s often difficult to start a new idea and compete without a large amount of resources.  Mobile apps, with their simple platform, effectively put a cap on how effective the big guys are able to be.  Indeed, there are many very creative independent developers taking advantage of the platform and producing some very successful applications.

This can be a double-edged sword.  For instance, “Simple UI” doesn’t necessarily mean “Easy to design UI”.  Apps with clunky or unintuitive UI are going to be left in the dust.  UI is an area where the iPhone and Apple have really driven user expectations up.  We’ve seen this recently with the unit conversion app that hit the Top 25 in the iPhone App Store, and I’ll delve deeper into that later.

There is a Certain “Cool Factor”

This is the most obvious piece to this. Commercials for the iPhone do a very good job of reeling customers in because they really demonstrate that “cool factor.”  I’m a developer, but even I’m often stunned into thinking “how did they do that?”.  The recently featured “bump” app had this effect on me as a friend and I downloaded and tested it to determine how exactly it functioned.  In this case, the verdict was that it wasn’t quite as magical as I thought (you can “bump” from across a room if you just do it at the same time).

Apps like this demonstrate that there’s still plenty of potential for exciting innovation.  Unlike internet applications where you just have the keyboard and mouse, on the iPhone you get multitouch, a compass, a GPS, bluetooth, an accelerometer, along with the entire internet and all the amazing APIs available.  Honestly, I’m still trying to come to grips with all the possible inputs.  But the bottom line is that both developing for and using the platform is fun.

There’s plenty of cool things on the horizon as well. See: Augmented Reality.

You can extend your current website or brand

The large amount of Flickr, Facebook, and Twitter apps out there demonstrate that APIs aren’t going away.  But extending your site isn’t something only those big sites can do - it’s definitely possible to extend your own website with an iPhone app.  If your website is interactive in any way, you can port some of that functionality to an app, similar to how the Facebook iPhone app works.

Look at your customers - is there a possible mobile application that could be of utility or interest to them?  If so, developing it and branding it for yourself might be a good way to market yourself in an area where it’s possible few of your competitors have ventured.

The Apps are Easily Monetized

Monetization is one of the biggest problems facing people with websites and web applications today who want to actually make money off of them in a non e-commerce fashion. Rumors persist of Facebook, Twitter, or Hulu turning to some sort of paid subscription model to become profitable. Money from advertisers may not be enough to satisfy infrastructure costs as web applications grow larger.

I’m reminded of one of my favorite new TV Shows, Shark Tank (fun, although somewhat cheesy). An oft-repeated maxim on the show is that all entrepreneurs must ask the question: “How am I going to make money off of my idea?”.

App stores provide a very attractive, easy alternative to the traditional ad-based model. Many apps don’t even provide that much more functionality than a simple browser does. But because the web browser on the cell phones will always be somewhat limited, many apps have evolved as a way to provide a much better UI. For instance, the iPhone Facebook app is simply a more attractive and user-friendly way to interact with their site than trying to navigate it with the iPhone Safari browser.
It’s obvious that there would be a huge uproar if Facebook began charging for its services. However, it wouldn’t be so out of the question for them to have released their Facebook iPhone app at $.99 (they didn’t, however). At this point, people still expect to pay for apps. The centralized payment structure makes it even more easy - not only for the customer but for the smaller entrepreneur or developer.

I’m certainly not saying that every app on the iPhone or other mobile platforms will make bushels of money, but it provides a very attractive alternative to those who are pessimistic about dealing with advertising as their main method of making money for their web application.

It’s also important to note that while the iPhone is attractive in it’s simplicity, ultimately the amount of money you can make off of a single idea is probably limited - currently, it seems unlikely that one could make millions off of a single idea. That’s a restriction that doesn’t exist as much on traditional web apps on the PC.  This article has some additional perspectives.

There is Standardized Patching and Updating

This one speaks mostly for itself, and was a no-brainer for app stores to implement. Delivering upgrades and patches is always a headache for developers and the centralized store certainly simplifies the process.

What about the future?

I’m unsure how long this platform will last in its current form.  As time goes on, most of the former points will be affected.  More apps will get released, competition will increase and we might see a recession of paid apps in lieu of more advertising driven ones.  The platform will certainly get more powerful and perhaps less accessible to the little guy as expectations rise.  People eventually will get used to the hardware innovations and the cool factor, and perhaps they will effectively run out of hardware improvements after a while (how many more things can they pack into the iPhone?).

One thing to note about the possibility of increased competition - just because an app (or multiple apps) has been released doesn’t mean you can’t innovate and improve on the same ideas.  Just recently a unit conversion app was released on the iPhone that made the top 25 apps (and $40,000 in sales in it’s first 2 weeks).  There are countless unit conversion apps already available on the iPhone - it seems impossible that one was able to rise above the rest.  Yet it happened, and it showcases how good UI design matters.  There are many parallels here to the successful apple products - the iPod certainly wasn’t the first MP3 player but it was able to rise above the rest due to it’s very well designed UI.

For right now there are plenty of opportunities, especially for the small entrepreneur.  We’re excited.  If you or your company have a good idea, or want to put a spin on an old one, get in touch with us and we’ll see if we can make it a reality.