Posts

Come with me, friend, to a day in the life of a developer.

You’re working on a new website. You’re in the testing phase. Colleagues and clients are starting to interact with the site and give you feedback.

On Monday, your client emails several change requests. On Tuesday, your designer posts a list of tweaks in Google Docs. On Wednesday, your traffic manager tells you about a few requests the client gave her over the phone. And on Thursday, your client sends an update to the email he sent on Monday.

It’s Friday, and you’re ready to start your fixes. Where in the world do you begin?

Enter Mantis Bug Tracker.

Mantis is an open-source tool written in PHP. It’s designed to help developers describe, assign, and resolve bugs. We use Mantis to avoid the situation I described above: multiple change requests, spread across different media, in no order, and with no accountability.

Instead, Mantis gives us:

  • A central web-based repository for all bugs, fixes, and updates
  • Dropdowns that let us organize fixes by category and severity
  • A color-coded status system that lets us mark fixes as new, assigned, resolved, or closed
  • A “closing the loop” feature that notifies the person who reported a bug when it’s resolved
  • A messaging system that captures all conversations related to a particular fix.

 

Organizing our quality control process in this way has had a big impact on development. Communication is smoother. Accountability and productivity are higher. And frustration is a lot lower.

In short, using Mantis has enabled a faster, more thorough, and more organized process of getting a web site or application ready to launch.

For a developer, that’s a lifesaver.

At this time of year, lots of folks stress over choosing holiday gifts for their staff. Chocolates? Too generic. A gift certificate? Way too generic.

We’ve got a different concept. We’re giving our folks the gift of a stronger career.

In the past few months, we’ve invited some of our key staff to attend professional development sessions focused on interactive design and development.

In November, two of us attended the Future of Web Design conference in New York. This was an amazing opportunity to meet thought leaders in our field and explore developing technologies and trends – everything from code management and CSS3 to mobile UX and HTML5.

And in November, two more of us attended the WebVisions Web Usability Conference in Atlanta. Again, we got to socialize and share with the developers who are creating the cutting edge in UX. A huge focus of the conference was on responsive design, a paradigm that we’ve already brought back to Atomic and are applying to our work.

Spending time and money on this kind of training is valuable in so many ways. Not only does it teach us how to implement specific new technologies, it helps us think about problems differently. It’s easy to get stuck in a rut and keep solving the same challenge in the same way. Being exposed to so many new ideas has helped everyone on our team break out of our creative patterns and come up with new solutions for our clients.

It’s also reinforced our commitment to each other – to building a team, together, that’s as strong as it can possibly be. Lots of people think that developers are closed-off computer nerds, but we know differently. Developers share a unique passion: to be awesome at what they do. And it’s a great feeling to know that we’re helping everyone at Atomic do that.

Merry Christmas and Happy New Year, everyone.

When you’re at home, on your own computer, you can use whatever browser you want. Into Chrome? Cool. Love Firefox? Fabulous.

But when you’re a developer, you don’t have that luxury. You have to ensure that your sites work well on all browsers —even those that aren’t your favorite. Worse … you have to ensure they work even on dated versions of those browsers.

And that gets old really fast.

Enter Modernizr.

Modernizr is an open-source JavaScript library that helps you build HTML5 and CSS3-powered websites without having to worry about browser compatibility. Modernizer does this through a series of “feature detection tests.” These tests detect features that a user’s browser can’t handle and downgrades those features accordingly, in a way that works for you.

This gives us developers much greater flexibility in building sites. We can build with a “high-end” target in mind — an ideal version of the site — while maintaining full control over what the “low end” version will look like. No more dumbing-down sites to ensure compatibility with older or non-preferred browsers.

Adopting this bit of tech can also save time and money. By building sites with the future in mind, there’s no need to redo development when a browser adopts more of the new HTML5 or CSS3 standards. Your site will have already been built to make full use of them.

This saves the client money and developers time, allowing those resources to be used for more important things. Like well-thought-out user interfaces, and more research in emerging web and mobile technologies.

So we can keep dreaming about the day when all users adopt a single, brilliant, modern browser.

But until then, we’ll keep writing for all the browsers out there. And Modernizr will make that task a lot less painful.

You’d think that using a certain app over and over might get boring. That you’d hit the limits of what it can do and where you can push it. Be ready to move on to something else.

This hasn’t happened yet with WordPress.

This amazing app got its start as a humble blogging engine back in 2003. It’s since become one of the most predominant content management systems used to manage modern websites. It’s used by literally millions of folks—from individuals to interactive developers to huge corporations. And the sites that are running this framework are seen by tens of millions of people every day.

In fact, we’ve found that as WordPress has grown in flexibility, it can be used to manage nearly any type of website or application. We’ve used it to manage Facebook apps, to create social networks, to build mobile web apps and ecommerce sites … and more.

In my opinion, there are several elements that make this radical usability possible.

First is WordPress’s extremely flexible theme and plugin systems. This combination allows for a huge range of sites to be managed via WordPress.

On top of this, WordPress allows custom site development to occur separate from the core framework files. This allows us to apply WordPress and plugin updates as they occur—giving the site increased stability and security.

In addition, WordPress is built on PHP and MySQL and is open source under the GPL license. This means that clients fully own and control their site, including the core CMS framework. There are no outside vendors, license fees, or hosting requirements involved, outside of the basic technology required.

It’s also cost-effective. Using WordPress saves clients time and money because we don’t have to write every piece of webware from scratch. Instead, we can utilize the ingenuity of a worldwide network of developers and designers who contribute to WordPress and its many plugins.

I continually find amazing uses for WordPress. And I love the ease with which I can create custom plugins and themes to fit nearly any site or application a customer desires. It’s great being part of the active developer community behind WordPress, and I look forward to finding new and fun uses for the platform well in the future.

A lot of our clients go wiggy when they see a wireframe. Maybe because of how they look: spare, utilitarian … definitely not sexy. But they play a critical role in the web development process. Here are the top four things to know about what wireframes do … and what they don’t.

A wireframe is a blueprint. A wireframe is very simple diagram that lays out the essential elements of your web pages. For example, a wireframe might have placeholders for a header, navigation, body copy, an image, a search bar, a “call to action” box, and “contact us” information. By carefully assessing which elements are needed for each page of your site, we prevent unpleasant “uh-oh, we forgot that piece” moments once we’re into full development.

It’s not a design. People often mistake a wireframe for a design document. They start to panic because they think we’re using Times New Roman for their font, or arranging their content into boring squares and rectangles. To prevent this, when looking at a wireframe, repeat this calmly to yourself: “This is not my design.” Remember, the wireframe does not represent how your page will look. It represents what it will include.

Wireframes are a step in the development process. Wireframes are just one step in a process that takes your website from idea to launch. These steps include creating a sitemap, wireframes, and design for your site, and then undertaking development. Walking through these steps one by one ensures that the basic elements of your site are established before development begins. So there’s much less chance that development will start, stop, and start over from scratch—which can drive up costs and create a clunky product.

Wireframes are not your final product. Once again, when you see a wireframe, close your eyes and take a deep breath. Repeat to yourself: “This is not my website. This is getting me to my website.” Then, open your eyes and take a critical look. Is everything on the page that should be? Are there too many items in the navigation? Too few? Are there images on the right pages? Is the live chat button where you want it? Ignore the aesthetics, think about what your customer will want to see on each page, and make sure it’s there.

Now you’re seeing a wireframe for what it is – a content planning tool that makes sure nothing critical is left out of your site. And you’re using it the way it’s meant to be used: to increase usability while saving time and money.

Designing a website without usability testing is like building a boat without a blueprint. You’ll make something, but whether it floats is a different matter.

Usability testing fascinates me; in fact, I’m enrolled in grad school at DePaul University, studying for an MS in Human-Computer Interaction. And when I heard some debates recently about whether current usability tools were still valid, I took notice. The crux of the issue seemed to be the value of wireframes vs. prototypes, and whether technical specification documents are necessary.

As someone who believes that a focus on usability should be the focus of building a successful web site or application, I definitely had an opinion. I believe that each of these tools has a distinct place in today’s web development cycle. And as a web developer who handles new projects daily, I’ve seen firsthand how these tools expedite development time and directly reduce the number of bugs found and revisions required after development.

Let’s take a look at how each of these tools works.

  • Wireframes – Wireframes are basic layouts for a site or application. The goal of this phase of usability testing is to focus on determining the basic information architecture and interaction design for a site, without the distractions of interactivity or design elements like color, font, and images. By removing these elements, the development team can focus on the best possible placement for the individual elements of the site or application. They can also begin to think about options for interaction design.
  • Prototypes – Prototypes are beta versions of a site or application that allow information flow and interaction testing. The actual functionality of a site isn’t implemented. However, a user can click through interfaces to get an idea how a site will look and feel. By getting feedback from project stakeholders at this stage and making needed changes, you avoid the difficulty and cost of making revisions after development has taken place.
  • Technical Specification Document – This document combines the information flow, interaction design, and functionality decisions reached during the wireframe and prototype phases of development. It’s presented to the site developers along with other tools generated during usability engineering, giving them a complete, accurate understanding of the site’s usability and functionality requirements. This document also enables clear communication between stakeholders (agency, client, users, designers, and developers) regarding what functionality is expected for each interface.

From my perspective, all three of these tools are essential. They enable a reasonably pain-free development process, and significantly cut down on revision and rework. One small change made during usability testing can save literally days of time and struggle — and beau-coup dollars — later in the process.

So for now, I’m sold on these tools. I’ll be ready to learn about better ones as I continue my studies, but for now, they’ll stay in my tool belt.

optimize

Nothing drives users crazy like a slow-loading website. Back in the day, we happily waited 30 seconds for pages to load over a 56K modem. Now, we expect pages to load immediately, and we get frustrated and click away when they don’t.

There are a number of ways to optimize sites for speed; some involve server side issues and client side code. Here are four methods that you can and should be implementing on any site you develop.

Optimize images
One way to optimize speed is to get resources from your server to browsers quickly.  One way to do this is to crop, resize, and compress (encode) images appropriately. For example, if you’re using a photo from a 6-megapixel camera as a thumbnail, make sure you’re not transferring that large image across the Net just to have a fraction of it show on your site.

Instead, use tools like Photoshop, Gimp, or even Paint.NET to crop out components you don’t want in the photo, resize the image, and use appropriate compression.

If your image is a photo, we recommend JPG file formats.  Logos and graphics work best as PNGs. And small icons and limited-color objects might be best as GIFs.

Reduce requests to the server
You can also increase speed by combining logos and icons into one larger image—a sprite map—that you show portions of as needed.

Think of loading a webpage like ordering a printer online.  Your printer comes in the mail, and it’s only then you realize you need a special cable. You order the cable, then realize you need paper.  And then ink.

These tiny shipments are similar to HTTP requests.  Most browsers can “order” two things at a time from a web server, but the more items are requested, the longer the page takes to load.

That’s where sprite maps come in.  Using a sprite map is like getting an entire kit of supplies for your printer in one package, instead of in multiple tiny shipments.  With sprite maps, you create one image that contains all of your logos, icons, and backgrounds.  Then, with CSS, you use properties like background-position to restrict which parts of the image show to users at any given time.

This reduces the number of requests to the server and in turn, speeds loading time.

Avoid inline styles and consolidate CSS
Imagine reading a story about a boat. Every time the author mentions the boat, they call it “the rickety white boat from Nantucket.”  Using that phrase over and over would waste space and slow readability.

That’s what developers are doing when they abuse inline styles. Describing every “p” tag in your document as having a specific margin and padding wastes time when the web browser is trying to download the site. Using CSS in external files reduces this bloat. Plus, CSS is cacheable, significantly reducing  load time on subsequent page requests.

Cache is king
One of the best ways to create an incredibly fast browsing experience for returning users is to cache your content on their computer.  One of the easiest ways to do this is to have your web host install mod_speed, from Google.  It’s an Apache module that provides recommended cache lifetimes depending on file type.

Things like images tend not to change very often on your site, and CSS files and Javascript files also tend to be static.  Why have your users download them every time they visit your site? mod_speed configures this for you and is a free download. It also provides the added benefit of “zipping” (actually gzipping) traffic between your server and your visitor’s computer.

To learn more, you can check out tools like YSlow from Yahoo, that give recommendations on caching content, where your holdups are, and even provide tips on whether you are requiring too many  HTTP requests.

Speed = less server load
Users will definitely be happier when you speed up your site. And there’s an added bonus: the faster you deliver content, the faster users will find what they need and leave your site. That means less drain on your servers, giving you the ability to serve more customers with less hardware.

Want to talk about how Atomic can help speed up your website? Contact us today.

Fonts have been a sore spot for web designers for a long time.

Back in the day, we were limited to the most basic of fonts – Arial, Times, and Helvetica – because we needed to use fonts that most people had on their machines. Then came the time of JavaScript- and Flash-based plug-ins. They let us use a wider range of fonts … but things still weren’t great. Often the fonts didn’t load quickly or smoothly. Strange things happened when you used special fonts for links or wrapping text. And of course, Apple has decided not to support Flash in the iPhone and iPad environments.

Thank goodness, we finally have something new. It’s Typekit.

Typekit is a subscription-based library of fonts that designers can use for their websites. All the fonts are hosted online by Typeface, so anything you can find on Typekit, you can plug into your site. And your users won’t require Flash, like other font substitutors have in the past.
As a designer, I appreciate the selection of fonts that Typekit makes available. They look like they were hand-picked by someone with a strong design sensibility and an understanding of what works visually on the web.

And as a developer, I love how easy it is to find the font you’re looking for and apply it to your CSS classes, IDs, or any other HTML tag in your markup. You can also pare down your bandwidth use by choosing only the weights and styles in each font family that you need.

Finally, from a business perspective, Typekit is just plain affordable. You can buy one subscription for your company and use it across all the sites that you develop.

I can hardly believe I’m saying this, but Typekit may make fonts fun again for web designers. I think it’s time to break out the champagne.

web semantics

Have you ever wished that the web was more helpful—and less robotic?

Let’s imagine you’re traveling to Florida for Christmas.  You hop onto your search engine and query “christmas florida.” But the first eight results are about the city “Christmas, Florida” — not what you had in mind.

Wouldn’t it be cool if search engines could tell the difference between Christmas the city and Christmas the holiday?

Enter the semantic web. The semantic web is a development paradigm, part of the HTML5 proposal, that structures the content of sites so the internet can “understand” words based on context.

For example:

  • If you search for “house main character,” the semantic web would understand that you mean the TV show House, not a house where someone lives.
  • If you search for “green windows,” it would understand that you meant energy-efficient windows—not windows that were painted green.
  • If you wrote “I love Atomic Interactive – they provide excellent web development,” the semantic web would understand you mean that “Atomic provides excellent web development.”

In other words, the semantic web can understand the association between pronouns and the words they’re linked to. Wow.

How does this all work? The semantic web’s enhanced understanding of words is driven by microdata, one of many new tags in HTML5.

So if I were writing content about Christmas, Florida, I would include microdata indicating that I’m talking about a location. Conversely, if I were writing about celebrating Christmas in Florida, I would include microdata indicating that I’m talking about the location Florida, but the event Christmas.

Modern search engines like Bing, Google, and Yahoo take advantage of this microdata to keep your search results relevant.  In fact, Bing was built from the core up to parse microdata and associate content together. That explains why Microsoft markets Bing as a “decision engine”— supposedly, it helps you make better decisions by getting rid of superfluous search results.

The bottom line? If you have a data-heavy website or are having trouble with SEO because search engines are confused about your content, utilizing the semantic web can help. Atomic can help you take the first step in coding for this brave new web. Reach out to us anytime you want.

blog-pic-html5

HTML5 and CSS3 are the new web development tools on the scene, and they’re making life easier and more exciting for development geeks around the world.

Earlier versions of HTML and CSS have been around for years. HTML, of course, is the language that browsers use to display web pages. And CSS is a tool that developers use to control what web pages look like, and to ensure that any changes they make to a web page “cascade” through the site consistently.

HTML5 and CSS3, the new version of these tools, don’t actually help developers do anything radically different – you still can’t click on a candy bar and have one materialize on your desk. (Maybe soon ???) The true power of HTML5 and CSS3 is that they help developers do some of the same things they always have – but much more easily and quickly.

For example:

  • HTML5 lets you add increased functionality to a site – like audio and video, or drag-and-drop features – directly in your HTML5 code. Previously, you had to add a third-party plug-in to your HTML to do the same thing.
  • In the same way, CSS3 makes it easier to display certain design elements on your site – such as rounded corners, rotating elements, drop shadows, or special fonts. Previously, you would have needed multiple lines of code to execute such features, or a Flash or JavaScript plug-in.

Creating these elements using HTML5 and CSS3 can make life better for everybody – the designer, the client, and the end user. The designer benefits because shorter, simpler coding makes for faster, and frankly, more enjoyable development. The client benefits because the more efficiently we can work, the more cost-effective development and ongoing maintenance are. And the end user benefits because sites that don’t rely on endless plug-ins load more quickly.

Now, truth be told, not all browsers are ready to support HTML5. Mobile devices are leading the pack – in fact, we’ve been developing iPhone and iPad apps and sites right and left using the new language. Chrome and Safari are on the way to supporting it fully … Firefox is getting there … and IE is not even close. So, depending on what browser most of your audience is using, folks could have difficulty viewing sites developed in HTML5.

But soon enough, everyone will catch up. In the meantime, designers and front-end developers are going to be enjoying our new toys … experimenting with creating new websites that are more interactive and dynamic than ever before.