• Westward Bound
  • About Aaron Brander

The Saulzar Codex

~ and other writing by Aaron Brander

The Saulzar Codex

Tag Archives: technology

What Makes Front End Coding So Difficult (or HTML Black Magic)

24 Friday Feb 2012

Posted by Aaron Brander in On Technology

≈ Leave a comment

Tags

Mindscape, programming, technology

Do you know what front-end programmers dream about? It is not an answer to the national debt, or if Democrats and Republicans can get along, or even if there is life on other planets. No, front-end programmers dream of something that seems entirely more difficult to attain.

A front-end programmer wants a world where they can do their work one time and be done.

It sounds simple, doesn’t it? Most of us go through life completing a task and knowing that having completed the task, there is nothing more to do.

Not so for the much maligned front-end programmer. Before I take you too deep into their dark, esoteric world of angled brackets, cascading styles and the abomination that is javascript, it will be helpful to know what a front-end programmer is.

I am sure there are many different definitions, but at MINDSCAPE, our front-end programmers take the pretty designs from a designer and turn it into the code that displays the website in a browser. It is not enough to take the design, turn it into an image and put that on the Internet. Once upon a time the world was that simple. But it’s not 1995 anymore, and our clients want to be found on the Web by their visitors. So, our front-end programmers must turn the design into hundreds of lines of code so that automated bots can crawl the site and index the content found there.

Our front-end programmers work their magic with HTML, CSS, javascript, flash and a number of frameworks and standards that help them do their work better.

It may not be simple, but it’s a fairly straightforward process. Or so it seems, until the first time they open up the webpage they just built in Internet Explorer. That is where things start to get messy.

You see, there are a lot of browsers out there. A browser is the program you use to see the Internet. Google Chrome, Firefox and Safari are a few of the modern browsers. They are considered modern because they support many of the features from the latest HTML standards (HTML 5) and CSS standards (CSS 3). The new standards allow our front-end programmers to do really cool stuff. And when not doing cool stuff, it helps them do the mundane tasks very quickly.

Well, Internet Explorer is a bit behind the curve, and that’s sort of an understatement. So our front-end programmers find themselves in a bind. Do they build the website to use the latest and greatest technology, or do they build the website to work in what is somehow still the most popular browser (see stats at StatCounter)? And if they choose to build the website for Internet Explorer (IE), do they optimize it for IE 6, IE 7, IE 8, or IE 9. You see, each version has its own interpretations of the standards. So what you build for one, is not going to work for the other.

Perhaps you begin to see why the ritual of making a site work in IE usually begins with animal sacrifices, pounding drums and incense. It’s another reason they make us work in the Pit.

Alright, so we don’t have to go quite that far. However, there are additional wrinkles to contend with. You see, we want to make our websites so that it is easy to extend them to work on mobile devices. Most new mobile devices, thankfully, use browsers that handle the latest CSS and HTML. That allows us to build a version of the site that works for both mobile and desktop with a minimum of additional effort beyond building the mobile site styles.

In the end, our front-end programmers must build the same site multiple times if we are going to make it compatible with all possible browsers. That means each site must be:

A site for modern desktop browsers such as Google Chrome, Firefox, and Safari. IE 9 handles most of what these other browsers do, so that is a step in the right direction. However, many of the features are supported in different ways by each browser, so we still have to define rules in multiple ways.

A site for IE 8 and IE 7. These browsers are pretty close together, and most of the time standard HTML and CSS will work well with them. Either way, it needs to be tweaked.

A site for IE 6. Microsoft has finally announced that they will be killing off this browser, and the front-end world rejoiced. It’s a nightmare to work with, and for the longest time it was the most used browser in the world. Check out the Internet Explorer 6 Countdown website. IE 6 usage is less than 1% in the US now! Yay!

A site for mobile. Even though the browsers are standards compliant, we still need to design and style the site differently for the mobile space. It seems easy enough, until you realize that there are dozens of potential screen sizes between mobile phones and tablets.

Now, there are ways that we combat this without having to build entirely new sites for the different browsers but it involves trade-offs. For example, IE 7 and 8 will not have rounded borders when we finish the site. To make rounded borders, we have to create many small images to create the corner. On modern browsers, it is a line of CSS to create a rounded border. That saves us time and allows us to concentrate on hundreds of other details that make your site successful.

In the end, sometimes it is important that we fully support older browsers. In that case, we can make it happen but it takes additional time and costs extra money. If you know you need older versions of Internet Explorer to work, be sure to consult with your Web developer before starting the project.

And if you do ask him to do it and you hear pounding drums, see strange flickering lights and smell smoke coming from his room, do not go in. You don’t want to know what it takes to make it happen.

Share this:

  • Twitter
  • Facebook
  • More
  • Email

Like this:

Like Loading...

Quoting a Project (or How Deep is that Rabbit Hole?)

07 Tuesday Feb 2012

Posted by Aaron Brander in On Technology

≈ Leave a comment

Tags

Mindscape, quoting, technology

Last year I had a few rooms in my house repainted. In order to determine which company I would use for the work, I invited them to the house to quote the work. I showed them the rooms, told them the type of paint and color I wanted, and told them when I wanted the work done by.

Each company was able to calculate the amount of paint they needed, the cost of the paint and how many people would need to work on the project in order to have it done by my deadline. Having painted a multitude of rooms before my request, they were able to imagine potential obstacles before they happened and be fairly sure that they were not missing anything in their quote.

The resulting quotes were very precise and given to me with a high degree of confidence.

Quoting a job for a new custom application is a lot like that, except that we can’t see the rooms ahead of time. In fact, we can’t see the rooms, because first we have to build them. The rooms that we see in our mind’s eye are often very different from what our client sees in their imagination.

Let’s ponder a request to build a rabbit hole. The rabbit hole needs to be 8 inches in diameter, be set in a yard full of lush, green grass, preferably under an apple tree and near a babbling brook. Beyond the tree should be a field of ripened, winter wheat; golden and dancing in the breeze.

Seems easy enough, except that getting the blossoms correct on the apple tree may take some doing. But, all in all, everything is out in the open.

That is, of course, until we build that rabbit hole and take a trip inside. Suddenly, there is a rabbit late for an important date; a grinning, invisible Cheshire cat; a hookah-smoking caterpillar, a mad hatter and an irate Queen of Hearts. And let’s not even get into the pills and potions that can change the user’s size and shape at will!

The client is completely nonplussed by our discovery. Of course the rabbit hole contained an entirely new world full of anthropomorphic creatures and nonsensical laws of physics! What other types of rabbit holes could there be?

Sounds a bit far fetched, doesn’t it? And yet, similar scenes happen in the software development world all of the time.

A problem is presented by a client in a short paragraph of needs and requirements.

A software engineer conjures up thoughts of similar software that have been built in the past as a basis for their quote.

A quote is given based on myriad undocumented assumptions and risks.

Three months later, the proud software engineer presents their creation to the client and is flummoxed as to why the client is so flabbergasted at the result!

It doesn’t have to be that way, and at MINDSCAPE, we do our best to eliminate as many doubts as we can before we begin coding.

The MINDSCAPE Process

1) Our sales team meets with a client to determine what needs to be built.

2) Our quoting committee meets to understand the client’s needs. If it’s a simple project for a client that we’ve worked with in the past, we may be comfortable enough to give a fixed price cost right then. Most times, however, we need more information before we can give a granular cost. Instead, we’ll give a large range of costs based on what we know of the project, but more importantly, based on what we think may be hiding down that rabbit hole. We’ve been down there a few times and know what sort of exotic features are lurking.

3) If the client finds that part of the range will fit their budget, we engage them for a one day, on-site (if possible) requirements gathering session. Two of our team members will sit down for an in-depth discussion about what the system needs to do, why it needs to do it and what benefits are expected.

The result of this meeting is a much better understanding of the system and leads to two courses of action.

A) If the project is manageable enough, we’ll have been able to document the vast majority of functionality and even have some rough outlines for what the different screens will need to do. This will give us enough confidence to bring back a fixed cost estimate for development.

B) If the project is very large, we’ll have a better understanding of the scope of the project, as well as potential risks. The next action is to engage in a Technical Design Document phase. Based on the on-site discussion, we’ll be able to give a better budget range and a cost for the Technical Design Document. If the more-defined scope is agreeable to the client, we’ll start on the Technical Design Document.

4) The Technical Design Document deserves its own post later on, but for now it’s enough to know that our engineers will grab their spelunking gear and head down into that rabbit hole. They will survey the landscape and draw out what it is they see. The client will give feedback during this phase to make sure that we are seeing the same thing in that rabbit hole that they are seeing.

5) Once the Technical Design Document is done, we present it to the client along with a final, fixed cost price for the development. The client can then work with us to complete the development or take our Technical Design Document to another firm for quoting. Either way, we’ve done the hard work to determine what’s down the rabbit hole; for our own sake, but also for our client’s sake and the sake of any developer that may work on the project in the future.

Even with all of this due diligence, it takes constant communication and interaction with the client to make sure the project is on course. The final scope of the project can change due to many issues (who can foresee a croquet game with flamingos as mallets and hedgehogs as balls?), but we do our best at MINDSCAPE to keep ahead of the game.

(And if you have not had the pleasure of reading Lewis Carroll’s Alice in Wonderland, you should at least browse the Wikipedia article so that this blog post doesn’t seem completely off the wall.)

Share this:

  • Twitter
  • Facebook
  • More
  • Email

Like this:

Like Loading...

Life in the Pit (or How to Pamper your Programmers

19 Thursday Jan 2012

Posted by Aaron Brander in On Technology

≈ Leave a comment

Tags

programming, technology

The office of MINDSCAPE at Hanon McKendry is located in the heart of Downtown Grand Rapids. It’s on the sixth floor of an old building next to Van Andel Arena.

When the elevators open on the sixth floor, visitors are treated to an open floor plan, a nice reception area, a nifty coffee bar, some fancy table and chairs for informal gatherings and a half-dozen nice cubes where information workers are busily executing strategies for website success.

It’s a great place to walk into, and a great atmosphere to work in. The free soft drinks, breakfast foods and a hidden cupboard full of M&Ms and trail mix add to the lure for workers.

But there is a hidden danger, one that the programmers who used to inhabit the cubes near the reception area found out first hand.

You see, the lights are really bright and cast harsh glares on their dual monitors. Co-workers and clients bustle to-and-fro past the cubes, catching their eye and interrupting their code flow. Phones rang, impromptu meetings and parties broke out at the coffee bar and the student tours gawked at the programmers, making them feel like white collared monkeys in a zoo.

MINDSCAPE’s merger with Venux in 2010 precipitated a change. We needed more room for the programmers and the six cubes in the entrance area of the sixth floor were no longer enough.

The programmers moved down to an empty office space on the first floor, and it fits their needs much better. Take a gander at the advantages they enjoy, and see if you can figure out why it is called the Pit.

A look at the “Pit”

1. No Lights – it’s true, this is an advantage. Fluorescent lights are harsh and being able to see your surroundings clearly only entices distraction.

2. Silence – it really is golden. The phones are used rarely, the inhabitants speak softly and everyone understands they walk on hallowed ground. Creation is happening and it is given the respect it duly deserves.

3. Privacy – it is hard to say if no one visits because they do not want to interrupt, or because it has been forgotten what office they are in, or if it’s the four digit combination lock on the door. Either way, the programmers thrive knowing they can put their heads down and get work done.

Programming Nirvana

4. Windows – There is a lot of natural light during the summer thanks to a number of windows along edge of the office. True, it sometimes brings too much light, but being able to see outside is a pleasant reminder that there is a world beyond the 1’s and 0’s on their computer screen.

It’s nearly a programmer nirvana, although there are some drawbacks.

1. Bathroom Breaks – Here’s a recipe for disaster: put eight intense, focused programmers in an office with no bathroom on that floor and only one key to access the bathroom on the next floor up. They aren’t concerned with simple bodily needs like waste disposal, so when the need makes itself urgently known, mad dashes for the key are inevitable. Then imagine it happens at eight in the morning on an overcast day in the winter. Ahh, you see the issue. There is no light. And there happen to be a lot of chairs in the middle of the room by the conference table. And there is only one key.

2. Communication – Sometimes it’s almost like the Pit is in another country and not just a short elevator ride (or walk down the stairs) from the main office. We had some communication issues for a while, but we are learning to overcome that through repeated training sessions with both the Morlocks and the lofty denizens of the sixth floor, the Eloi. Walking through the door into the Pit is not akin to entering one of Dante’s circles. Riding the elevator up to the sixth floor and having it open to a bright, vibrant atmosphere full of smiling, intelligent, bubbly people is not at all like their nightmare of showing up to do a presentation naked. It will take continual effort, but the gap will be bridged.

(If you ask me, any blog post that manages a reference to two classics like the Time Machine and Dante’s Inferno is a success.)

Share this:

  • Twitter
  • Facebook
  • More
  • Email

Like this:

Like Loading...

Cloudflare – protect your website

30 Tuesday Aug 2011

Posted by Aaron Brander in On Technology

≈ Leave a comment

Tags

cloudflare, Google, technology

A month ago, I wrote about the Google Page service.  The Page Service caches your static content and serves it up from their servers for faster page views.It sounds great in theory, and perhaps it will perform well in practice.  Currently, it’s still in a beta period and available to only a small set of webmasters.While I was researching that article, I stumbled upon a service called Cloudflare.  Cloudflare already does what the Google Page service does, but also protects your sites from known threats like spambots, can auto-minify your site’s CSS and Javascript files, hides your email address from any spambot that may get through, and a whole bunch of other cool sounding stuff.

Basically, they level the playing field for small websites. A small website no longer has to pay large sums of money to get the security and reach that giant, corporate websites get.  And somehow, Cloudflare manages to do it all for free.

I immediately put my wife’s site, www.branderphoto.com, onto the service.  It took only a few minutes to setup, and as long as you have access to your domain’s nameservers, it shouldn’t take longer than that.  Within an hour, Cloudflare was protecting our site.  It was cool to view the source on the page and see how their email protection hid email addresses.

Click for full image

I was very happy to see the threat panel. Over the last 30 days, Cloudflare intercepted 759 threat visits from 52 unique sources. I can view each threat from my dashboard.  I see their IP address, what kind of threat it is, how dangerous the threat was, the country the threat came from, and what happened to it.  Cloudflare maintains a list of IP addresses that are running bots and when a visitor from one of those IPs shows up, they are presented with a Captcha challenge. If the user can pass the captcha, they can gain access to the site. If it was a real person, the can leave a message as well.  This helps you make sure that real people are getting to the site.

As of right now, all of the threats were real and I have not had an issue with actual users being blocked.

As an owner of a website, it’s a no brainer to run my site through Cloudflare.

I wear another hat, though. I am also the Vice President of Technology at Mindscape.  Over the last few months, our bandwidth usage has gone through the roof.  We have taken a number of different measures to try and curtail the rising bandwidth costs, but nothing has really taken hold.

Not long after I started using Cloudflare for branderphoto.com, I decided to start sending our images and files from our webTRAIN platform through Cloudflare.  Each website on our platform serves its assets from one of four specific subdomains. So, I could essentially serve 90% of webTRAIN images by protecting those 4 subdomains with Cloudflare.

There were two things I needed to do.  First, I needed to upgrade to the pro plan. It’s $20 a month for the first website, $5 for each additional pro site in your account.  I needed it in order to serve a secure version of the files into the admin of our platform. I received the additional bonus of 15 minute increments on my stats, instead of 24 hours like the free sites have.

Secondly, I needed to do something about video.  Cloudflare protection and video served from the protected domain don’t mix well.  Embedding a YouTube video is fine, and so is serving your video from an unprotected subdomain.  So, while I tested the file serving idea on a small portion of our sites, our team got to work on making sure all video passed through a “video only” subdomain.

The small subset of files went great. We were saving a GB or two of bandwidth a day.

Well, on Sunday, I deployed our teams video solution and flipped the switch on our busiest file serving subdomain.  Check this out:

That’s one day of serving our files through Cloudflare across the busiest section of webTRAIN.  We had averaged about 60 GB a day in bandwidth on the four previous Mondays.  That single subdomain, serving files, was responsible for 25% of that bandwidth!

And check out the request numbers.  81% of the requests were served by Cloudflare and not by our server. That’s a HUGE number and big load off of our own machines!

We’ve been using Cloudflare for a month now, and have slowly put more reliance in it. Turning on our main fileserver to Cloudflare was a big step for us, and 24 hours in, it looks like the right solution for us.

Thanks Cloudflare!

Share this:

  • Twitter
  • Facebook
  • More
  • Email

Like this:

Like Loading...

Google Page Service

29 Friday Jul 2011

Posted by Aaron Brander in On Technology

≈ 1 Comment

Tags

Google, technology

Do you feel the need, the need for speed? It’s an ongoing battle for coders and webmasters to make their page show up faster. A slow load time can cause the multi-tasking, instant-gratification-needing web generation to move on to another site before you have a chance to show them what your site is all about.

At Mindscape, we’ve made a number of optimizations to try and get our sites to load faster. We’ve re-indexed databases, compressed our many CSS files into a single file, enabled gzip compression on our server, and worked to improved our database queries. On the whole, it’s been very helpful.

Well, Google is coming to the rescue to make it even easier to have a fast page. According to this article, http://techcrunch.com/2011/07/​28/google-page-speed-service/, Google will soon be rolling out a service that will make your site load faster. The idea is that you point your DNS to Google’s server, and it fetches and caches your data to serve it up using a number of performance best practices.

Sounds like a nice theory, but there are a few questions.

1) What about dynamic content? Will it handle that well?
According to Matthew Prince, from Cloudflare (more on Cloudflare later), the method they are using won’t work well with dynamic content. He linked to a blog on his site, but I was unable to view the blog post. So, we’ll have to wait and see if Google handles this well.

2) Will Google use this to influence their search result? It’s been said that your load times can influence your search ranking. So if that’s the case, and you can pay Google to have faster load times, does that create a conflict of interests. I may be naive, but I like to think that Google has good intentions and would not push this as a way to directly influence their search rankings.

3) How well does it work? I decided to try it out for myself to see. You can test their service here:
http://code.google.com/speed/pss/index.html

Click to see the full image

First, I tested www.BranderPhoto.com, my wife’s photography business. It runs on webTRAIN, Mindscape’s powerful marketing and content management system. Brander Photo is using compressed CSS, so the load time for CSS files is low, but it has a lot of big images, which can be slow.

The test was run from the California server. It certainly looks as if it helps. However, it was interesting that on the repeat visit test, the original site was faster. That tells me that our CSS compression is helping, and after having the images locally, there wasn’t much time spent waiting on files. Good job webTRAIN! See the full test here: http://goo.gl/DBVEv

On the second test, I used our current Mindscape website. It is also on webTRAIN, but never received the compressed CSS update. So, there are a lot of CSS files that need to be downloaded the first time.

Click to see the full image

Google Page Service can speed up that content by about 50%. That’s a big increase!

The full test is here: http://goo.gl/tBjZ7

It certainly appears that Google Page Service can speed up your site. I’m interested in how it will work with a dynamic site, and not just a static page.

A competitor?
I saw a lot of comments from the Cloudflare team in the comments to the original article. I checked out their website (http://www.cloudflare.com/overview.html), and I was intrigued. It seems that you can get what Google is offering, and more, for free. I did not see a way to test their performance increase, so I’ve updated one of our less used sites to point to Cloudfare in an attempt to see if it can do what it says. It will take some time for the DNS to update, so watch for a follow up article in a week or two.

I’m most intrigued by something that has been plaguing us for a while, bandwidth lost to crawlers and bots. Cloudflare says: “We also block threats and limit abusive bots and crawlers from wasting your bandwidth and server resources.”

Now that’s something I can get excited about!

Conclusion
It appears that Google’s Page Service can help speed up your website. However, you may also want to check out Cloudflare in the meantime. It also looks like both services may have trouble with sites that are dynamic or that stream video, so you’ll want to do some research or try with a low volume site, before you dive in and make the change.

Share this:

  • Twitter
  • Facebook
  • More
  • Email

Like this:

Like Loading...

Google Apps Transition – The pain you’ll feel and how to fix (some of) it

14 Thursday Jul 2011

Posted by Aaron Brander in On Technology

≈ Leave a comment

Tags

Google Apps for Business, technology

Google Apps for Business is a great solution for companies that want email, calendar and documents hosted in the cloud by Google.  Mindscape, where I work, has used Google Apps for Business for a number of years now. It allows me to have aaron [at] mindscapesolutions.com as my email address.  What it did not allow in the past was for me to access tools like Google Reader, Checkout, Picasa, and a number of other popular, ancillary services from Google.

What I could do, however, was create a second Google account using the same aaron [at] mindscapesolutions.com address. This account had to have a separate password, but as a standard Google Account, I had access to those other Google Services.

I wasn’t interested in using my work email to access those other services. So I made it even more complicated.  My wife runs her own photography business, http://www.branderphoto.com. I use aaron [at] branderphoto.com as my personal email. It’s also a Google Apps for Business account. So, when I wanted to access Google Reader, and Checkout and Analytics and Picasa, I had to have a separate aaron [at] branderphoto.com account, with a different password, to access those accounts.

The plus side of this arrangement is that I could have aaron [at] mindscapesolutions.com signed in and accessing email, and in another tab of my browser, have aaron [at] branderphoto.com signed in and accessing email.

The down side is that I would also have another tab open, with my other aaron [at] branderphoto.com account signed in, to access Google Reader.

All in all, it was as confusing as it sounds. So, it was with much rejoicing, mixed with some trepidation, that I transitioned my Branderphoto.com account to the new Google Apps for Business model last week (http://www.google.com/support/a/bin/answer.py?hl=en&answer=181867). With the new model, my branderphoto.com account will function just like a real google account and have access to all of the Google Services.  So I made the switch.

I had to create a new google account to hold my secondary branderphoto.com account data. Apparently it wouldn’t just merge them together.  The biggest pain here was exporting my Google Reader subscriptions and importing it to my upgraded branderphoto.com account.
Not super painful, but not as smooth as I would have liked it.

So, after reading a few blogs in my improved branderphoto.com account, I decided it was time to try clicking on a Google +1 button and see how that worked.  Epic Fail.

Apparently, my improved branderphoto.com account isn’t completely a real Google Account.  Services like Google Health (I don’t care), Google Power Meter (no matter to me), and Google Profiles (what!?) don’t work with Google Apps for Business users yet.

Soon after, I had a chance to try the new Google Plus service. Turns out I can’t use that with aaron [at] branderphoto.com.  And now that my secondary aaron [at] branderphoto.com is no more, I would have to use some other Google account to create my Google Plus account.  I have no desire to add yet another layer of complexity, so I guess I’ll be out of the Google Plus loop until my Google Apps account is fully functional.

Google Profile seems central to all that Google is trying to accomplish, so making my Apps for Business account behave like a regular Google account, but leaving out Profiles is like having an ice cream cone but leaving out the ice cream. Who wants that?

I got over the pain of not having a Google Plus account. It wasn’t that hard to do.  Today, however, more pain came.  My mindscapesolutions account was transitioned to the new model.  Since it also acts like a regular Google account, I can no longer have my branderphoto.com and my mindscapesolutions.com account signed in at the same time!  Ack!  Now I have to use Google Chrome, and Internet Explorer to have keep my business and pleasure separate.

It’s a pain, but one I can deal with. However, there’s one other way to handle it. You’ll need to enable sign in to multiple accounts.

See that cool, new Google bar at the top of your site? It looks like this:

Click on your email account to open up some options:

 

Click on the Account Settings tab:

Click to see the full image.

 

Click on Edit next to the Multiple sign-in and turn it on. Click Save:

Click to see the full image

 

Now, you’ll need to sign out of your account and sign back in. You should see a new “Switch Accounts” button in the options area.

Click on that to see all of the accounts that have can log into. The first time, you’ll just see one account. Click the sign into another account link and log in to the new account. You’ll then be able to switch back and forth between the two in the same browser!

Oh, and apparently Google already has some help documentation up for this. So if you don’t like my screenshots, check out Google’s video: http://www.google.com/support/accounts/bin/answer.py?answer=182343

Now, if they just get Google Profiles working….

Share this:

  • Twitter
  • Facebook
  • More
  • Email

Like this:

Like Loading...

Review of Rework by Jason Fried and David Heinemeier Hansson

19 Thursday Aug 2010

Posted by Aaron Brander in On Books, On Technology

≈ 1 Comment

Tags

5 stars, On Books, technology

The founders of 37 signals have something to say about business, and it may not be what you are used to hearing.  This firm started out in 1999 with just three people. In 2004, they created Basecamp to help manage their projects. Soon, their clients wanted to use the tool themselves, so Basecamp was offered to the masses. It now generates millions of dollars a year in profits.

Between Campfire, Highrise, and Backpack, over 3 million people use their products.  While they were at it, they also invented an open-source programming framework called Ruby on Rails that powers many of the largest sites on the internet.

I’ve been keeping up with the teachings of 37 signals for years.  The talk about releasing code quickly, not out-doing your competition, and focusing on the basics. It’s a refreshing change from software and websites that try to do everything and be everything for every company.

This book is a compilation and revision of many of the business posts that they have released to the Web on their blog, Signal vs Noise.  The book is like the company’s products – no nonsense and easy to use.  They give you an idea or theme, expound on it for a paragraph or two, and let you decide how you want to use it from there.

I am going to touch on a few of the items that I found to be the most profound.  If you would rather skip that, I give this book a 5 out of 5 for anyone looking to start their own business, who has an idea about a business, or is working for someone else and wants to build the best product they can.

Planning is guessing

“Unless you are a fortune-teller, long-term business planning is a fantasy”.  When is the last time you successfully planned everything at a party, a luncheon or a vacation?  It’s hard to do well, and in a business, it is even more complex.  There are just too many factors to take into consideration.  Better to call your plans guesses.  They give you an idea of what you need to do, but you can then improvise and change direction when a better opportunity comes along.

They propose that you stop guessing at the future. Decide what is the most important thing this week, not this year.  Make it your priority today and get it done now, tomorrow will take care of itself.

Workaholism

“Not only is this workaholism unnecessary, it’s stupid.”  Pulling an all-nighter or working a lot of overtime demonstrates a capacity for pain tolerance, not a capacity for efficiency and innovation.  Sheer hours worked does not make up for a lack of innovation and organization.  Workaholics can create crises because they like to feel like heroes and they can make others that work in the company feel bad for putting in just their regular hours.

Your best workers are already at home because they figured out how to get it done faster.

Scratch your own itch

“The easiest, most straightforward way to create a great product or service it so make something you want to use.”  If you are your own customer, you know exactly what you want the product to do.  James Dyson built his own vacuum cleaner because the vacuumed he owned wasn’t very good.  Basecamp started as a home grown application for 37 signals that now services hundreds of thousands of users.

Draw a Line in the Sand

“Great businesses have a point of view, not just a product or a service.”  Determine what your product is about, and don’t change that for anyone.  Your strong stand will bring fans and haters.  That’s OK. If you try and please everyone, you’ll end up with a product that doesn’t do any one thing great.  It’s OK to say no if it makes your product stronger.

Embrace Constraints

“Constraints are advantages in disguise.”  When you have to make due with what you have, you end up getting creative.  Don’t have 3 months to create the feature, just 3 weeks?  Adjust your plan and build something useful in those 3 weeks.

Build half a product, not a half-assed product

“You just can’t do everything you want to do and do it well.”  Find the core of the product or service you are offering and make it shine. Leave the extraneous stuff for later, or better yet, for never.

Interruption is the enemy of production

“If you’re constantly staying late and working weekends, it’s not because there’s too much work to be done. It’s because you’re not getting enough done at work. And the reason is interruptions.” We have found this to be the case at my company, Mindscape.  We do our best to minimize active interruptions like phone calls, stopping by and instant messages.  Instead, we check out email at 11am and 4pm and leave tasks for people in Basecamp.  Of course, it doesn’t always work that way. I just had two emails, a person stop by my desk, and 3 instant messages pop up.  When that happens, it’s hard to remember what you were working on.

Quick Wins

“Momentum fuels motivation”. Break your long term projects into short term goals.  Releases and milestones show everyone that progress is being made. When people get stuck in a two year project, it’s hard to stay motivated through the entire lifecycle.

Don’t be a hero

“A lot of times it’s better to be a quitter than a hero.”  We’ve all come up against problems that we thought would only take a couple of hours, but ended up taking a couple of days.  Buckling down and finding the solution is great, but sometimes the better solution is to find a different tact.  There were a lot of other items you could have accomplished while you were working to overcome that hurdle.

This doesn’t mean quit at the first sign of a struggle. Instead, set yourself a deadline for the task. If you haven’t finished and you think you should have, bring in a fresh pair of eyes. Sometimes they can point out something obvious that you were too deep into the problem to see.

Say no by default

“Start getting into the habit of saying no-even to many of your best ideas. “  Henry Ford once said, “If I’d listened to customers, I’d have given them a faster horse.”   Keep things simple, remain true to the product that you want to build, and make stand for what is right.  This is one of my favorite chapters, and something I’ve been preaching for years.  Sometimes you have to protect the customer from their decisions, even if they don’t know why.  But keep your mind open. If you say no to the same thing every day, then you probably found the next feature to use.

Let your customers outgrow you.

“There are always more people who are not using your product than people who are. Make sure it is easy for these people to get on board.”

Each chapter is full of useful information and fresh ways at looking at business. I don’t want to give you a free pass to everything that the authors preach, so I’ll just pick out a few more chapter titles that I thought were interesting and that should wrap up this review nicely.

  • Emulate drug dealers. – Make your product so good and so addictive that a small free taste makes them come back with money.
  • Send people home at 5 – Busy people get the most done. Let them go be busy.
  • ASAP is poison – Stop saying it. When you add ASAP to everything, then everything is high priority. If that’s the case, then there no longer is priority.
  • Inspiration is perishable – Ideas last, but the inspiration to act on them does not stick around.

Rating: 5 out of 5 – I’ll be reading this book often  Check it out yourself by clicking this link.

Share this:

  • Twitter
  • Facebook
  • More
  • Email

Like this:

Like Loading...

Why can’t we all just get along? or The state of UI programming on the web

01 Thursday Jul 2010

Posted by Aaron Brander in On Technology

≈ 2 Comments

Tags

HTML, technology

I recently received a note from Mac user who looked at one of our sites on a PC.

“Something is wrong with the site. The fonts don’t look right at all!”

That person had hit upon an issue that vexes web designers and programmers around the world.  Unfortunately, Macs and PCs are like apples and oranges; they handle fonts in a very different manner.  As much as it pains me to say it as a PC user, Macs are far superior in how they render fonts. In the end, it isn’t anything we can change as front end website coders.

To illustrate: http://css-tricks.com/font-rendering-differences-firefox-vs-ie-vs-safari/

The same Mac visitor brought up how the site has slight (and sometimes great) variations in different browsers. Once again, it’s a common problem that HTML and CSS coders have had to overcome.  It is essentially a balancing act.

Do we want to build quickly and efficiently while utilizing the latest standards and technology?

If so, we can make sure it works great in Google Chrome, Safari, and Firefox (which we’ll call “modern browsers” for the duration of this post) and ignore Internet Explorer (IE) altogether.  In modern browsers, our CSS gurus can make rounded corners, fancy navigation, interactive popups, and a host of other website improvements with just a little code.  The only problem is IE.

Do we want to implement the design quickly, and still make sure IE isn’t left behind?

If so, we’ll make sure that IE 8 and IE 7 function and look good. The site may not have the rounded corners or other details that users would get in modern browsers, but it still looks great. Only the designer and a discerning user will see the difference.  This is the route we typically take at Mindscape. It strikes a good balance between using modern HTML and CSS techniques, using our time efficiently, and making sure IE users have a good experience.

Do we want to ensure that all users, even IE 6, have the same website experience?

If so, we end up making a style sheet for the modern browsers, as well as a special style sheet for IE 8, IE 7 and IE 6 respectively.  In essence, we have to build the site 3 times, skip over modern techniques for HTML / CSS creation, cut all rollovers and navigation into multiple images, and generally fight the system to make it all work correctly.  Typically, we don’t follow this process. It’s easier to detect if a user is using IE 6, and if so, give them a message to upgrade. Hey, if Google isn’t supporting IE 6, I don’t think Mindscape needs to either.

To illustrate a recent issue: we had a 1 pixel gap on the tabs for the http://www.thewhisperwall.com in IE 7. It took our HTML Guru 3 hours and hundreds of tiny changes to make it look acceptable in all browsers. In the end, we had to build completely new code for IE 7 because it worked so differently.  We didn’t even try to fix all the issues in IE 6. It is too archaic.

So how long with this inequality in browsers last?

HTML 5 is the new website standard that is being developed. Modern browsers support much of what is in the HTML 5 standard.  IE is years away. However, do you know how far away the final version of the HTML 5 standard is?  About 12 years: http://en.wikipedia.org/wiki/HTML5.

So us lucky web programmers have another 12 years (at least!) of having to test, retest, and rewrite our code multiple times to work in every flavor of browser out there. Please don’t hold it against us!  If you are a Mindscape client, send us the issues you see and we’ll do our best to correct it.

Share this:

  • Twitter
  • Facebook
  • More
  • Email

Like this:

Like Loading...

The Devil is in the Details

26 Monday Apr 2010

Posted by Aaron Brander in On Technology

≈ 2 Comments

Tags

Project Management, technology, work

I am a programmer and a project manager.  The company I work for builds websites. In my experience, 95% of the job is pretty easy. That is not to say that anyone can do it – I know there are things during the website process that I cannot pull off.

Front end HTML is difficult for me.

Sales – You can keep that for yourself.

Design?  That one is nigh impossible unless you also think purple and green go well together.

There are members of our team that handles those tasks very well.  I, in turn, find it a far better fit to program business logic, design databases, and organize the team to complete their tasks.  Over the last several years when I have been the Project Manager at Mindscape, we have been able to standardize and create processes for just about every aspect of the website creation process. We have become more efficient and less prone to mistakes.  We strive to get better every day so we can deliver the best project possible.  But there is one area that refuses to be completely processed away.

The Devil is in the Details

The Devil is in the DetailsI love details, to the point where there are times where I cannot see the forest for the trees and I have to remind myself to step back and take a longer look at where we are going.  Even with a love of details, it is difficult to keep track of the thousands of details that come up even on a small project.

To help in the task, we use a product called Basecamp from 37 Signals.  We have templated ToDo lists that we add to each project.  Doing so gives us a firm foundation to work from, and helps us know what major items need to be accomplished for each task.

And with those major items, we are rolling along right now.  We get through 95% of any project without difficulty.  It is that last 5% that presents problems. The small details that may not be visible for a while but can come back to bite you if no one is aware of them.

Most of our clients do not work on the web for a living. They have an idea of what they want to do, but no firm grasp on how that is to be accomplished.  We have to take care of the details they know they want, while also taking care of the details that they have no idea they need. These details can come up in any part of the website process, and it is our responsibility to look for them.

It can happen in sales – We’ve seen similar situations to what our client is asking for, so we know what we can do for a client that will work well and the client has not considered.  It is up to the sales team to identify these details and present them to the client.

It can happen when doing a website strategy for a client – Identifying something the client isn’t currently doing can have a huge impact on their business.

It can happen in design – Pulling together the items the client asked for, and still creating a site that looks great and accomplishes everything and more is a difficult art.

It happens in HTML and programming – The client doesn’t have an idea what goes on here. But watching out for every possibility, and making sure it always works no matter what happens, is the cross we must bear.

It happens in support – taking the time to figure out what’s going on and explain the issue clearly to clients is key. It is even better when we can anticipate the problem or go above what is being asked.

During any of those stages, a thousand details come up that need to be recorded and remembered in order to pull off the impressive things we do.  Basecamp ToDos is the tool we use to track this. When something comes up that must be remembered or done by someone else, we put it in Basecamp and make sure it is assigned to someone.  The assignment feature in Basecamp is a lifesaver.  Our team can filter out all the tasks that are assigned to them and see the day it needs to be done by.

Everything works great, as long as each team member keeps an eye out for the details. Did that link get connected? Did we assign a Google Analytics account? Did we remember to put in the call to action the client wanted on the home page?  Wasn’t that form supposed to have two address fields?

Often, when a team member completes their portion of a task, it still is not complete. It needs to be sent to another person on the project. Again, Basecamp ToDo’s come in handy.  The first team member adds in a comment, and then reassigns the task to the next one in line.

The process works great when everyone is on the lookout for those devilish details.  It can be a hard thing to anticipate every request, the hidden things each request represents, and still remember to link up every page, replace all of the insidious Lorem Ipsum that can find its way into the site during testing, and make sure the pixels line up the right way in Firefox, Chrome, Safari, IE 8, IE 7 and that horrible monster – IE 6.

If you don’t use it already, I suggest you try out Basecamp. It’s a flexible way to manage projects.

How do you manage the details?  I’d love to hear your views on it.

Share this:

  • Twitter
  • Facebook
  • More
  • Email

Like this:

Like Loading...

Google Fiber for Grand Rapids

12 Monday Apr 2010

Posted by Aaron Brander in On Technology

≈ Leave a comment

Tags

technology

***************************************

Aaron’s note – I wrote this article about the Google Fiber Community Search back in February. It was published on the Grand Rapids Social Diary blog: http://www.grandrapidssocialdiary.com/index_feb25_10.php

***************************************


Need more fiber in your diet?

On February 10th, Google announced that they would be building out 1 Gigabit speed fiber optic network. They were looking for applications and nominations from communities around the country to help them decide where they would build out this insanely fast network.

Nick Kuzmin, our IT Guru here at Mindscape, saw this and mentioned to me that maybe he’d build a Facebook fan page about it later that day. I thought it was a great idea, but also knew that with ideas like that, time is an important factor. If it lingers, it might not happen. The best way to implement a great idea is to implement it right away! Ten minutes later I was the first fan of our new group and Nick and I had spread the word to the few hundred friends we have on Facebook.

We didn’t expect what happened next. Nick spent some time getting in contact with the city of Grand Rapids IT department and also with Douglas Lang at the Grand Rapids Technology Partnership (http://www.grtp.org). I doubt we were the only ones in contact with the city, but I think we helped get it moving. A few days later, we crested a 1000 fans, and the city had put in their official bid. Since then, it has been exciting watching the Grand Rapids community get behind this possibility. Two weeks later, we were over 5300 [we hit 37,000 by March 26th and were the largest Facebook group of its kind in the country] members, and trailed only Topeka, Kansas for total members on a Facebook page about Google Fiber. Many community leaders have gotten involved, and taken it upon themselves to organize meetings and find creative ways to show Google how much our community wants and can utilize their new network.

Mindscape at Hanon-McKendry knows about social media. Nick and I, though we work here, are more involved with the technology side of what we do and haven’t had a chance to see the power of social media first hand. I haven’t ever had this much fun (or had this sort of excuse) checking Facebook on a minute by minute basis. Great work Grand Rapids!

Why should Google come to Grand Rapids?

(written by Denise Brander, one of the group’s fans, who happens to be my wife)

Grand Rapids is a hard-working, strong community. Our city prides itself on our amazing health care facilities (we’ve dubbed Michigan Ave the “Medical Mile”). The potential benefit to the medical community would be immeasurable. We also support the arts — Festival in June (this year with be the 41st!), Art Prize in the fall (last year was the inaugural event). Faster internet speeds would give artists a greater chance to share their work. We’ve recently begun to increase our participation in the motion picture industry. Our partnership with Google would make the city even more appealing to location scouts. And I can’t forget to mention, this community supports the fiber network! There is a buzz about the city — meetings are being planned, discussion forums are, well, discussing. The people of Grand Rapids are ready and willing to help in any way we can!

What can Google Fiber do for Grand Rapids?

  • Extremely fast internet speeds increase efficiency of current technologies like video, web, and teleconferencing
  • Opens the doors for a host of new applications and technologies that are hard to imagine until that kind of speed is in place
  • Medical institutions could attract more research projects and researchers due to high speeds
  • Local tech companies could build and test new applications that would help lead the country into this next phase of interconnectivity
  • New jobs for infrastructure companies, not to mention for all of the companies or movies studios that would be attracted to the area
  • More choice in internet providers!

[The nomination period ended on March 26th, but you can still become a part of the Facebook page]

Share this:

  • Twitter
  • Facebook
  • More
  • Email

Like this:

Like Loading...
Newer posts →

Categories

  • On Books
  • On Miscellany
  • On Technology
  • On Travel
  • On Writing

Get Social


My Links

  • Brander Photography
  • Libzig.com
  • Mike July.com
  • Mindscape @ Hanon McKendry
  • Picture Perfect
  • Westward Bound

.NET 1 star 2 stars 3 stars 4 stars 5 stars 90 day challenge African Mythology Alexander the Great Basketball Bernard Cornwell Bob Lee Swagger China Coming Soon Dan Brown Danes David Gemmell diet Dresden Files Fantasy Fencing Fiction Final Four fitness Gladiators golf books golf practice Google Halo Hiking Historical Fiction History HTML James Clavell Japan Jim Butcher Kindle King Alfred Last of the Mohicans Lord of the Rings Magic Michigan State Spartans Microsoft Mindscape Neil Gaiman Non-Fiction Norse Mythology On Books programming Project Management Putting R.A. Salvatore ratings Richard Sharpe Roman Empire Roman History Romans Rome Samurai Saulzar Saulzar Codex Saxons Science Fiction Shattered Sports Books Stalin Stephen King technology Tolkien Travel Washington D.C. Wizards work Work in Progress Writing

Create a free website or blog at WordPress.com.

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy
  • Follow Following
    • The Saulzar Codex
    • Join 33 other followers
    • Already have a WordPress.com account? Log in now.
    • The Saulzar Codex
    • Customize
    • Follow Following
    • Sign up
    • Log in
    • Report this content
    • View site in Reader
    • Manage subscriptions
    • Collapse this bar
 

Loading Comments...
 

    %d bloggers like this: