Sunday, August 4, 2013

(04-08-2013) Why the CIA cloud contract is worth so much more than $600M; the week in cloud [ W4llppr ]

Why the CIA cloud contract is worth so much more than $600M; the week in cloud Aug 4th 2013, 16:20

5 mins ago Aug. 4, 2013 – 9:00 AM PDT

We all knew the battle between IBM and Amazon Web Services over which gets to build the CIA cloud goes well beyond the $ 600 million contract itself.  WIth the U.S. government's "cloud-first" initiative many billions of dollars worth of business are at stake.  Whichever vendor finally gets the nod from the CIA will automatically gain credibility for other government agencies wanting to build secure clouds. In short if IBM wins, no government bureaucrat will be fired for buying IBM cloud. Ditto for AWS.

But right now, we still don't know who will build this all-important private cloud.

A recap: Late last year AWS won the contract which, at that time, was top secret. In February, IBM, which was the also-ran in this instance, challenged the result, arguing that the CIA failed to take into account all the facets of the bids. At that point, because the government's General Accountability Office (GAO) got involved, things went more public than the CIA would have liked. The CIA responded that it's taken GAO concerns into account but has not said whether the AWS stands or  if IBM prevailed. Finally, AWS challenged the notion that the contract should be reconsidered and the whole mess now sits in the U.S. Court of Federal Claims. 

Proponents of both sides love to talk (off the record) about what this all means, but suffice it to say, AWS needs this deal to prove it knows what's what in private, secure cloud as opposed to public cloud. And IBM needs it to show that its array of hardware, software, and services can add up to a secure cloud that is affordable to mere mortals. A reasonable person would say that a good chunk of the rationale behind IBM's $ 2 billion purchase of SoftLayer was to show that IBM is serious about cloud and has all the tools needed to provide private, as well as public cloud capabilities. (IBM/Softlayer were out last week loudly proclaiming their win of the DARPA robot challenge away from AWS.)

Amazon, king of public cloud, is not stupid. It sees the appeal private cloud has for workloads with strict regulatory and compliance constraints. I'm convinced — although they haven't confirmed it –that AWS is building an array of "mini-me" clouds in various localities around the world to meet these needs.

It's also safe to say that Google, another big public cloud provider with the Google Cloud Platform, has likewise found the private cloud religion and is suiting up for that fight. Microsoft and VMware of course have already staked their private cloud claims.

Speaking of IBM and cloud, the company also disclosed last week that the Securities & Exchange Commission is looking into how it accounts for cloud revenue. IBM maintains it's using generally accepted accounting practices. Let's don't go too hard at IBM on this one: we'll see a lot more of these inquiries as legacy IT vendors try to transition existing hardware, software, and services businesses into cloud computing deliverables.

Gratuitous plug department

On Thursday, GigaOM launched our first-ever Structure podcast. Check out Derrick Harris and I and Microsoft Server & Tools group CTO Dave Campbell on the very first episode.

And, don't forget to tune in to hear next week's guest, Ken Rudin, head of analytics at Facebook

More cloud computing news from the interwebs;

  • From IDG News Service:  State dumping IBM after IT project runs 42 months late,
  • From Troy Media: How Canada's cloud computing sector can leverage the Snowden affair 
  • From GigaOM: Amazon's low-cost cloud is hugely profitable (says rival cloud company)

Subscriber Content

?

Subscriber Content comes from GigaOM Pro, a revolutionary approach to market research without the high price tag. Visit any of our reports to subscribe.

  • Migrating media applications to the private cloud: best practices for businesses December 2011
  • 9 Companies that Pushed the Infrastructure Discussion in 2010 December 2010
  • Microsoft Azure: What It Is, What It Costs and Who Should Care February 2010

Continue reading →

(04-08-2013) The “Other” Interface: Atomic Design With Sass [ W4llppr ]

The "Other" Interface: Atomic Design With Sass Aug 4th 2013, 16:14


  

As front-end developers and designers, we're constantly refining two interfaces simultaneously: one for visitors who load the website, the other for developers who have to tackle the code in the future, when adjustments or full-scale redesigns must be made. Yet we tend to assign the role of "user" to the first group, often forgetting that the code we write must work for developers in a similar way. We shouldn't forget that developers are users, too.

If this is the case, then our convention for naming and organizing files is critical if we are to ensure active (and efficient) development in the future. But do we really design the partials, files and directories that make up this interface with a particular set of users in mind, with a set of clear goals, combined with precise, well-defined documentation? I don't think we do.

Recently, I've been working on many different projects, each wildly different from each other. And the various problems I've faced while switching between the projects has made me wonder how we can drastically improve front-end accessibility.

We Need To Follow Atomic Design Principles In Our Style Sheets

Last month, in a post titled "Atomic Design," Brad Frost argued that Web development could be improved. He suggested to developers that, instead of coding a form as a component that is reused throughout a website, they could style small modules — such as a placeholder, input field and text field — and then create each form by combining these chunks together. This process could be duplicated for navigational items, text with icons, floated objects and pretty much any other sort of front-end module that needs to be reused regularly.

atoms-500_mini
(Image: Brad Frost)

“Atomic design gives us the ability to traverse from abstract to concrete. Because of this, we can create systems that promote consistency and scalability while simultaneously showing things in their final context. And by assembling rather than deconstructing, we're crafting a system right out of the gate instead of cherry picking patterns after the fact.”

The theory is that by employing these distinct elements, a developer can speed up their workflow and write code more efficiently because they're not forced to repeat themselves. This much appears to be common sense. Essentially, what Brad calls for is object-oriented design, which has been discussed in numerous articles and blog posts recently. That isn't really what interested me about the idea, though — it was the naming convention that Brad chose.

He uses scientific terms to quickly describe what sections of a design should do; "atoms" are the discrete chunks (placeholders, labels, etc.), while "molecules" are combinations of these standard atoms. The simplicity here grabbed my attention, because ultimately what we're discussing isn't just a process for design, but also a distinction to be made in the user interface, as I mentioned earlier.

Problems With The Front-End Interface

Before we retroactively squeeze some of Brad's ideas into our current workflow, we have to figure out precisely which problems need to be solved. So, as I switched between my projects, I started to take note of the flaws that appeared to be wasting much of my time. By the end, I counted three main problems that affect the developer's workflow:

1. Finding Code Should Be Easy

Although I had written some components with Sass early on in a project, I found that towards the end, I was simply incapable of remembering where in the stack I needed to make adjustments. This forced me to try to memorize where each block of code was and had me scurrying around, completely lost, even with the advanced search features of a great text editor.

Developers are probably quite familiar with Sass files, which contain thousands of lines of code. The legacy Ultimate Package, a tool that we used as a boilerplate for all of our front-end code at Erskine, also contained that unfortunate mistake. The main problem with keeping all of this code in one place and not breaking the files into smaller parts is that you're likely to forget where a particular section of code is. This eventually wastes the developer's time and could slow down the project considerably.

Of course, these problems become infinitely worse when you must navigate someone else's project or an entirely unfamiliar code base.

2. Figuring Out the Relationships Between Modules Should Be Straightforward

Whenever I try to add a component to an old website, I have to figure out the mental model of the relationships between elements. I have to wonder how removing a portion of the website would affect another totally unrelated thing elsewhere. This could be a background color or margins or padding or even the order of elements in a module (such as an image in a comments section combined with text from the same object).

Nicole Sullivan mentions in her fantastic talk at Webstock that these elements can become so interwoven with one another that they pose hurdles down the road. This problem often forces me to move from the text editor to the Web inspector and manipulate elements by hand in order to get an idea of how things work together, and then move back to the editor to make the fix.

This is unnecessarily slow and cumbersome. With atomic design, we would know precisely how one element affects another; we wouldn't have to worry about editing components, or even adding new ones.

3. Websites Need Tailor-Made Components

Sometimes a design requires a component that is never reused, a sort of one-of-a-kind embellishment that sparks interest or delight in the user in some way. If it were repeated, it would become boring or, worse, repellant. Ideally, a new organizational system would allow for the sort of design components that Allen Tan describes in his article "Made to Measure":

“Design is about establishing a set of relationships between elements. By codifying these relationships as a set of principles instead of a single, stand-alone template, we make it possible for other designers to extend our work (per article) while remaining faithful to its core ideas.”

Yet we know that these minute design variations can quickly turn into a royal pain. Having to maintain all of these various fluctuations of commonly used structures would turn most projects into very hostile coding environments.

Of course, if we used some of this atomic design thinking, we wouldn't have to worry about unnecessary code bloat when we add a fancy banner or an alternative text style to a figure. Hopefully, it would encourage us to scope components of the code base so that another user could easily identify which objects are global and which are specific to a single template or module.

What we need to do here is group components according to the sort of effect they might have on the entire system. Atomic design to the rescue!

The System

Last month, I stumbled upon the wonderful Inuit.css framework, which is probably the best place to start learning if you're unfamiliar with modular design in Sass. After a few moments of playing around, I saw that this is a phenomenal step forward for developers and designers alike. It employs BEM's syntax, object-oriented CSS (OOCSS) and many aspects of atomic design, which all might seem a little overwhelming at first but is definitely worth going through because you'll likely see the advantages soon enough.

The problem I had with Inuit.css was with its naming conventions. What was contained in the base, generic and object directories wasn't entirely obvious. These relationships should be obvious and immediate; developers shouldn't have to read hundreds of lines of code and tediously experiment in order to be able to fix a bug or add a feature.

So, I decided to fork my own version and combine these atomic design ideas with the principles of BEM and OOCSS from Inuit. I'll describe this alternative convention here. Now that we've discussed some of the key problems, we can look at how atomic design can help us.

The Control Panel

First, it's worth mentioning that we'll have a style sheet that imports all of the Sass partials we're about to make. Think of this as our control panel, because in the future we won't want to write all of our code from scratch; for most projects, we'll just want to set things up quickly and turn an object on or off. All of the partials will be compiled to this file before we convert it to plain old CSS and serve it up to our website. So far, so good.

Utilities

Atomic design encourages us to first think as vaguely as possible, and then to focus our energy on the smallest pieces later. This means that we need a set of system-wide styles to begin; this directory of Sass files will need to define the foundation; effectively, what's required is a set of utilities that make up the basic plumbing of the website. This directory of partials is also important because we'll need to define global classes, mixins and styles that can be used anywhere and at any time. Our utilities directory might look something like this:

Breakdown of the files within the utilities directory: base-spacing.scss, cleafix.scss, reset.scss

The code in our reset, clearfix and base-spacing partials have a global impact, changing almost every page, template, element and module. By scoping our code in this way, we can easily find these partials later and hide them when our focus is needed elsewhere.

Quarks

Next up, we ought to define the basic building blocks of the website, including paragraphs, tables, images and links. Be careful here: We need to slowly build up to the complexity that is required so that we don't step on our own toes later. At this stage, we should still be thinking globally and not styling for any particular section of the design.

Therefore, this next directory should focus only on default HTML elements. I've started to call these components quarks — classless objects that, within the files themselves, contain nothing more than a few elements:

Breakdown of the quarks directory: lists.scss, paragraphs.scss etc.

Note that these files contain only the default styles for these elements, not modified elements. For example, if we have a table that looks and works entirely differently from the default tables used throughout the website, it would not be a quark.

This system might look like overkill at this point. Why do we need a separate partial to style almost every default element individually? My argument is that if we were to combine all of these small pieces together, we would make the files less readable, especially on a large website. Having a substantial number of partials is fine, as long as they're easy to find and organized properly.

Quarks are also helpful when we set up a style guide or an elements template page that lists the various default components of a project.

Atoms

Now we need to start thinking about the relationships between these quarks, and so we start to introduce aspects of BEM and OOCSS. In this system, I've called these modules "atoms" — universal abstractions, such as the media or flag object. For example, we might include a partial that sets the default style for buttons, so that we can plan for those styles to be extended and built upon:

Breakdown of the atoms directory: media.scss, buttons.scss etc.

The styles in an atom should almost never be attached to an HTML element itself; we might not be able to guarantee what the markup will look like in the future. Specifying a class instead is always safer.

In this way, atoms will save us from writing hundreds of lines of code and keep things relatively abstract. Just as Brad suggests, this concept is powerful because atoms can be combined to form more complicated structures.

Molecules

As I mentioned earlier, sometimes we need one-off structures, such as a banner or navigation element or footer, that we don't intend to replicate. This is where we can combine multiple quarks and atoms, without interfering with any of our global styles:

Examples of files from the molecule directory: banner.scss, footer-nav.scss

A molecule can take advantage of an atom for layout (such as the heading-group molecule, which might manipulate the styles of the heading quark, which lists the styles for h1, h2 etc.). But then, within this molecule, we can extend, modify and combine other styles and modules.

So, while atoms and quarks define rigid and clear rules for the system overall, and utilities provide the outlining structural styles necessary to keep things tidy, the molecules are where the design can be more flexible and extend styles out from those central tenets of the system.

As you can see, quarks, atoms and molecules break up those monster Sass files that I mentioned earlier and make code faster to read and easier to maintain in the long run.

We Need To Revise Our Current Best Practices

Although the system outlined here is pretty rigid, these are not die-hard rules. This is not the only way to organize styles with Sass, and I'm not arguing that it's a panacea for our front-end woes. I'm simply proposing that we take a good look at the developer interface and try to make things better for everyone.

This system could even be based on another kind of taxonomy or categorization, completely unrelated to biology or chemistry. But, as you can see, this is more than just a goofy way to name files and directories — rather, it suggests the kinds of relationships between these independent components. Thanks to this system, our code should be much faster to read and organize and, alongside detailed instructions and documentation, enable another Web developer to be up and running in minutes.

In the past, directories and file names were often poorly designed navigational tools. But if we think long enough about the other interface (the one for developers) and about alternative frameworks and helpful tools to make our code base more human-readable, then we can finally put some of these problems to rest and worry about other more elusive issues.

Relevant Talks

  • "Breaking Good Habits," Harry Roberts, Front-Trends 2012
  • "Atomic Design," Brad Frost, Beyond Tellerand 2013
  • "CSS Tools for Massive Websites," Nicole Sullivan, Webstock 2011

(al) (ea)


© Robin Rendle for Smashing Magazine, 2013.

Continue reading →
Saturday, August 3, 2013

Badacsony [ W4llppr ]

Wallpaper Details: Badacsony

Quickly Download Every InterfaceLIFT Wallpaper!

Build Your Own Bulk Wallpaper Download →

Why click on hundreds or thousands of "Download" buttons?

Get all of our wallpapers at the exact screen size you need without browsing every page of the web site.

Comments from the Community

There are currently no user-submitted comments for this wallpaper.

Post a Comment

Use the form below to post a comment about this wallpaper. Please keep your comments on topic. Inappropriate or malicious comments may be removed or edited at the discretion of the webmaster.

Each comment can be rated by other InterfaceLIFT members and each user receives an overall score based on the sum of the ratings of all their individual comments. Users that have earned extremely negative cumulative scores may be barred from posting comments or their postings may require approval before appearing on the site.

Continue reading →

Manarola Night [ W4llppr ]

Wallpaper Details: Manarola Night

August 2nd, 2013

Manarola is a small town, a frazione of the comune of Riomaggiore, in the province of La Spezia, Liguria, northern Italy. It is the second smallest of the famous Cinque Terre towns frequented by tourists and probably the most photographed. During this night there were probably 20 tripods next to mine, and everybody waited for the perfect shot...

Nikon D800, Nikon AF-S NIKKOR 14-24mm f/2.8G ED.

Photo Settings: 24mm, f/5, 20 seconds, ISO 50.

Map: 44.1075, 9.7258

Quickly Download Every InterfaceLIFT Wallpaper!

Build Your Own Bulk Wallpaper Download →

Why click on hundreds or thousands of "Download" buttons?

Get all of our wallpapers at the exact screen size you need without browsing every page of the web site.

Comments from the Community

There are currently no user-submitted comments for this wallpaper.

Post a Comment

Use the form below to post a comment about this wallpaper. Please keep your comments on topic. Inappropriate or malicious comments may be removed or edited at the discretion of the webmaster.

Each comment can be rated by other InterfaceLIFT members and each user receives an overall score based on the sum of the ratings of all their individual comments. Users that have earned extremely negative cumulative scores may be barred from posting comments or their postings may require approval before appearing on the site.

Continue reading →

Desktop Wallpaper Calendar: August 2013 [ W4llppr ]

We always try our best to challenge your artistic abilities and produce some interesting, beautiful and creative artwork. And as designers we usually turn to different sources of inspiration. As a matter of fact, we've discovered the best one—desktop wallpapers that are a little more distinctive than the usual crowd.

This creativity mission has been going on for over five years now, and we are very thankful to all the designers who have contributed and are still diligently contributing each month. This post features free desktop wallpapers created by artists across the globe for August 2013. Both versions with a calendar and without a calendar can be downloaded for free. It's time to freshen up your wallpaper!

Please note that:

  • All images can be clicked on and lead to the preview of the wallpaper,
  • You can feature your work in our magazine by taking part in our Desktop Wallpaper Calendar series. We are regularly looking for creative designers and artists to be featured on Smashing Magazine. Are you one of them?

Agosto Ketchup

"A calendar inspired by Heinz Ketchup. A big honor to Mr. Heinz, who made one of the famous ketchup brands in the world. This is for the ketchup lovers (including me!)." Designed by Pat Buenaobra from the Philippines.

Agosto ketchup

I Love Summer

"I love summer :)" Designed by Vector4free from Poland.

I love summer

  • preview
  • with calendar:
    800×600, 1024×768, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1920×1080, 1920×1200, 2560×1440
  • without calendar:
    800×600, 1024×768, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1920×1080, 1920×1200, 2560×1440

Leo

"I'm always interested in learning more about the zodiac signs. July 23- August 23 is the time of the Lion, Leo. I based my wallpaper design around this and included the constellation of Leo as well. Enjoy!" Designed by Franny Van Eyck from Wisconsin, USA.

Leo

  • preview
  • with calendar:
    1024×768, 1280×800, 1440×1050, 1680×1050, 1920×1080, 2560×1440
  • without calendar:
    1024×768, 1280×800, 1440×1050, 1680×1050, 1920×1080, 2560×1440

Poppy Herbarium

"Summer is taking off with some magical ice cream hot air balloons." Designed by Sasha Endoh from Canada.

Poppy herbarium

  • preview
  • with calendar:
    640×480, 1024×768, 1152×864, 1280×800, 1280×960, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1920×1080, 1920×1200, 2560×1440
  • without calendar:
    640×480, 1024×768, 1152×864, 1280×800, 1280×960, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1920×1080, 1920×1200, 2560×1440

Hanabi Festival

"From late July to early August, Japanese will celebrate summer with hanabi (fireworks) throughout Japan!" Designed by Evangeline Neo from Japan.

Hanabi Festival

  • preview
  • with calendar:
    1024×768, 1280×800, 1280×1024, 1440×900, 1920×1080, 2560×1440
  • without calendar:
    1024×768, 1280×800, 1280×1024, 1440×900, 1920×1080, 2560×1440

World Alpinism Day

"International Day of Alpinism and Climbing." Designed by cheloveche.ru from Russia.

World Alpinism Day

  • preview
  • with calendar:
    1024×768, 1280×800, 1280×1024, 1440×900, 1680×1050, 1920×1200
  • without calendar:
    1024×768, 1280×800, 1280×1024, 1440×900, 1680×1050, 1920×1200

Johnny Depp

"Instead of using normal lines and shades to sketch the portrait, I'd first break it up into small triangles. Then I'll (slowly and painstakingly) fill the triangles up with different shades of black using different shades of pencils, and viola, the portrait is done! Hope you guys like it!" Designed by Teo Yu Sheng from Singapore.

Johnny Depp

  • preview
  • with calendar:
    1280×720, 1280×800, 1440×900, 1920×1080, 1920×1200, 2560×1440
  • without calendar:
    1280×720, 1280×800, 1440×900, 1920×1080, 1920×1200, 2560×1440

Handwritten August

"I love typograhy handwritten style." Designed by Chalermkiat Oncharoen from Thailand.

Handwritten August

  • preview
  • with calendar:
    320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440
  • without calendar:
    320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

World Photography Day!

"In August we have the world photography day. So it is fair to make this homage to those that translates and makes us immortalize the most special moments of our lives." Designed by ADD from Brazil.

World Photography Day!

  • preview
  • with calendar:
    320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440
  • without calendar:
    320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

The Balinese Flower

Designed by Nitesh Bhatia from India.

The Balinese Flower

  • preview
  • with calendar:
    640×480, 1024×768, 1280×720, 1920×1080, 1920×1440, 2560×1440
  • without calendar:
    640×480, 1024×768, 1280×720, 1920×1080, 1920×1440, 2560×1440

Autumn Is Just Around the Corner

"August is the month that brings to mind the passage of summer season and the arrival of autumn. The entire landscape around us gets a new look, and each of us remains nostalgic due to the passage of summer." Designed by Tattoo Temptation from United Kingdom.

Autumn is Just Around the Corner

  • preview
  • with calendar:
    320×480, 1024×768, 1024×1024, 1280×1024, 1440×900, 1680×1050, 1920×1080, 1920×1200, 2560×1440, 1366×768
  • without calendar:
    320×480, 1024×768, 1024×1024, 1280×1024, 1440×900, 1680×1050, 1920×1080, 1920×1200, 2560×1440, 1366×768

Estonian Summer Sun

"This is a moment from Southern Estonia that shows amazing summer nights." Designed by Erkki Pung / Sviiter from Estonia.

Estonian Summer Sun

Woof!

Designed by Laurent Constant from Belgium.

Woof!

Costa De Los Pinos

"The summer ends, another beautiful season is starting, warm colors and fuzzy atmosphere are replacing the crowd on the beaches.

Jerome ;o}" Designed by Jerome Cuenin ;o} from Switzerland / USA.

Costa De Los Pinos

  • preview
  • with calendar:
    640×480, 800×480, 800×600, 1024×768, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440
  • without calendar:
    640×480, 800×480, 800×600, 1024×768, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

Solidarity

"Black and white landscape/waterscape photo." Designed by Jeremy Mullens from United States.

Solidarity

Summer Holidays

"A colorful wallpaper for the month of holidays! Have a great summer holiday!" Designed by Laboratorio Creativo from Romania.

Summer holidays

  • preview
  • with calendar:
    1280×720, 1280×800, 1440×900, 1680×1050, 1920×1080, 1920×1200, 2560×1440, 2880×1800, 2560×1600, 1600×1000, 1600×900, 800×450
  • without calendar:
    1280×720, 1280×800, 1440×900, 1680×1050, 1920×1080, 1920×1200, 2560×1440, 2880×1800, 2560×1600, 1600×1000, 1600×900, 800×450

That Is Rain To Me!

Designed by Dhwani Gandhi from India.

That is rain to me!

The Great British Summer

"With Britain currently basking in a sub-tropical heatwave, sporting success and the birth of the Royal baby, we felt it appropriate to celebrate all the things we love about the Great British summer in the form of a wallpaper. Perfect for proud Britons and Britophiles alike!" Designed by Fluid Creativity from Manchester, United Kingdom.

The Great British Summer

  • preview
  • with calendar:
    1024×768, 1152×864, 1280×720, 1280×800, 1440×900, 1680×1050, 1920×1080, 2560×1440
  • without calendar:
    1024×768, 1152×864, 1280×720, 1280×800, 1440×900, 1680×1050, 1920×1080, 2560×1440

Monsoon Sale!

"Hey monsoon is here! So grab your umbrella in this monsoon sale, and don't miss the fun in the rain." Designed by Debobrata Debnath from India.

Monsoon sale!

  • preview
  • with calendar:
    1024×1024, 1280×1024, 1440×900, 1920×1080, 1920×1200, 2560×1440
  • without calendar:
    1024×1024, 1280×1024, 1440×900, 1920×1080, 1920×1200, 2560×1440

Flowing Creativity

Designed by Creacill, Carole Meyer from Luxembourg.

Flowing creativity

  • preview
  • with calendar:
    320×480, 1024×768, 1024×1024, 1280×800, 1280×1024, 1680×1050, 1920×1080, 1920×1200, 2560×1440, 2880×1800, 1366×768
  • without calendar:
    320×480, 1024×768, 1024×1024, 1280×800, 1280×1024, 1680×1050, 1920×1080, 1920×1200, 2560×1440, 2880×1800, 1366×768

Off To The Beach We Go

"'Off to the beach we go' is based on screenshots from my latest browser game (I'm an indie games designer)." Designed by Bart Bonte from Belgium.

off to the beach we go

  • preview
  • with calendar:
    640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440
  • without calendar:
    640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

Join In Next Month!

Please note that we respect and carefully consider the ideas and motivation behind each and every artist's work. This is why we give all artists the full freedom to explore their creativity and express emotions and experience throughout their works. This is also why the themes of the wallpapers weren't anyhow influenced by us, but rather designed from scratch by the artists themselves.

A big thank you to all the designers for their participation. Join in next month!

What's Your Favorite?

What's your favorite theme or wallpaper for this month? Please let us know in the comment section below.

Continue reading →

The & #8220; Other& #8221; Interface: Atomic Design With Sass [ W4llppr ]

As front-end developers and designers, we're constantly refining two interfaces simultaneously: one for visitors who load the website, the other for developers who have to tackle the code in the future, when adjustments or full-scale redesigns must be made. Yet we tend to assign the role of "user" to the first group, often forgetting that the code we write must work for developers in a similar way. We shouldn't forget that developers are users, too.

If this is the case, then our convention for naming and organizing files is critical if we are to ensure active (and efficient) development in the future. But do we really design the partials, files and directories that make up this interface with a particular set of users in mind, with a set of clear goals, combined with precise, well-defined documentation? I don't think we do.

Recently, I've been working on many different projects, each wildly different from each other. And the various problems I've faced while switching between the projects has made me wonder how we can drastically improve front-end accessibility.

We Need To Follow Atomic Design Principles In Our Style Sheets

Last month, in a post titled "Atomic Design," Brad Frost argued that Web development could be improved. He suggested to developers that, instead of coding a form as a component that is reused throughout a website, they could style small modules — such as a placeholder, input field and text field — and then create each form by combining these chunks together. This process could be duplicated for navigational items, text with icons, floated objects and pretty much any other sort of front-end module that needs to be reused regularly.

atoms-500_mini
(Image: Brad Frost)

"Atomic design gives us the ability to traverse from abstract to concrete. Because of this, we can create systems that promote consistency and scalability while simultaneously showing things in their final context. And by assembling rather than deconstructing, we're crafting a system right out of the gate instead of cherry picking patterns after the fact."

The theory is that by employing these distinct elements, a developer can speed up their workflow and write code more efficiently because they're not forced to repeat themselves. This much appears to be common sense. Essentially, what Brad calls for is object-oriented design, which has been discussed in numerous articles and blog posts recently. That isn't really what interested me about the idea, though — it was the naming convention that Brad chose.

He uses scientific terms to quickly describe what sections of a design should do; "atoms" are the discrete chunks (placeholders, labels, etc.), while "molecules" are combinations of these standard atoms. The simplicity here grabbed my attention, because ultimately what we're discussing isn't just a process for design, but also a distinction to be made in the user interface, as I mentioned earlier.

Problems With The Front-End Interface

Before we retroactively squeeze some of Brad's ideas into our current workflow, we have to figure out precisely which problems need to be solved. So, as I switched between my projects, I started to take note of the flaws that appeared to be wasting much of my time. By the end, I counted three main problems that affect the developer's workflow:

1. Finding Code Should Be Easy

Although I had written some components with Sass early on in a project, I found that towards the end, I was simply incapable of remembering where in the stack I needed to make adjustments. This forced me to try to memorize where each block of code was and had me scurrying around, completely lost, even with the advanced search features of a great text editor.

Developers are probably quite familiar with Sass files, which contain thousands of lines of code. The legacy Ultimate Package, a tool that we used as a boilerplate for all of our front-end code at Erskine, also contained that unfortunate mistake. The main problem with keeping all of this code in one place and not breaking the files into smaller parts is that you're likely to forget where a particular section of code is. This eventually wastes the developer's time and could slow down the project considerably.

Of course, these problems become infinitely worse when you must navigate someone else's project or an entirely unfamiliar code base.

2. Figuring Out the Relationships Between Modules Should Be Straightforward

Whenever I try to add a component to an old website, I have to figure out the mental model of the relationships between elements. I have to wonder how removing a portion of the website would affect another totally unrelated thing elsewhere. This could be a background color or margins or padding or even the order of elements in a module (such as an image in a comments section combined with text from the same object).

Nicole Sullivan mentions in her fantastic talk at Webstock that these elements can become so interwoven with one another that they pose hurdles down the road. This problem often forces me to move from the text editor to the Web inspector and manipulate elements by hand in order to get an idea of how things work together, and then move back to the editor to make the fix.

This is unnecessarily slow and cumbersome. With atomic design, we would know precisely how one element affects another; we wouldn't have to worry about editing components, or even adding new ones.

3. Websites Need Tailor-Made Components

Sometimes a design requires a component that is never reused, a sort of one-of-a-kind embellishment that sparks interest or delight in the user in some way. If it were repeated, it would become boring or, worse, repellant. Ideally, a new organizational system would allow for the sort of design components that Allen Tan describes in his article "Made to Measure":

"Design is about establishing a set of relationships between elements. By codifying these relationships as a set of principles instead of a single, stand-alone template, we make it possible for other designers to extend our work (per article) while remaining faithful to its core ideas."

Yet we know that these minute design variations can quickly turn into a royal pain. Having to maintain all of these various fluctuations of commonly used structures would turn most projects into very hostile coding environments.

Of course, if we used some of this atomic design thinking, we wouldn't have to worry about unnecessary code bloat when we add a fancy banner or an alternative text style to a figure. Hopefully, it would encourage us to scope components of the code base so that another user could easily identify which objects are global and which are specific to a single template or module.

What we need to do here is group components according to the sort of effect they might have on the entire system. Atomic design to the rescue!

The System

Last month, I stumbled upon the wonderful Inuit.css framework, which is probably the best place to start learning if you're unfamiliar with modular design in Sass. After a few moments of playing around, I saw that this is a phenomenal step forward for developers and designers alike. It employs BEM's syntax, object-oriented CSS (OOCSS) and many aspects of atomic design, which all might seem a little overwhelming at first but is definitely worth going through because you'll likely see the advantages soon enough.

The problem I had with Inuit.css was with its naming conventions. What was contained in the base, generic and object directories wasn't entirely obvious. These relationships should be obvious and immediate; developers shouldn't have to read hundreds of lines of code and tediously experiment in order to be able to fix a bug or add a feature.

So, I decided to fork my own version and combine these atomic design ideas with the principles of BEM and OOCSS from Inuit. I'll describe this alternative convention here. Now that we've discussed some of the key problems, we can look at how atomic design can help us.

The Control Panel

First, it's worth mentioning that we'll have a style sheet that imports all of the Sass partials we're about to make. Think of this as our control panel, because in the future we won't want to write all of our code from scratch; for most projects, we'll just want to set things up quickly and turn an object on or off. All of the partials will be compiled to this file before we convert it to plain old CSS and serve it up to our website. So far, so good.

Utilities

Atomic design encourages us to first think as vaguely as possible, and then to focus our energy on the smallest pieces later. This means that we need a set of system-wide styles to begin; this directory of Sass files will need to define the foundation; effectively, what's required is a set of utilities that make up the basic plumbing of the website. This directory of partials is also important because we'll need to define global classes, mixins and styles that can be used anywhere and at any time. Our utilities directory might look something like this:

Breakdown of the files within the utilities directory: base-spacing.scss, cleafix.scss, reset.scss

The code in our reset, clearfix and base-spacing partials have a global impact, changing almost every page, template, element and module. By scoping our code in this way, we can easily find these partials later and hide them when our focus is needed elsewhere.

Quarks

Next up, we ought to define the basic building blocks of the website, including paragraphs, tables, images and links. Be careful here: We need to slowly build up to the complexity that is required so that we don't step on our own toes later. At this stage, we should still be thinking globally and not styling for any particular section of the design.

Therefore, this next directory should focus only on default HTML elements. I've started to call these components quarks — classless objects that, within the files themselves, contain nothing more than a few elements:

Breakdown of the quarks directory: lists.scss, paragraphs.scss etc.

Note that these files contain only the default styles for these elements, not modified elements. For example, if we have a table that looks and works entirely differently from the default tables used throughout the website, it would not be a quark.

This system might look like overkill at this point. Why do we need a separate partial to style almost every default element individually? My argument is that if we were to combine all of these small pieces together, we would make the files less readable, especially on a large website. Having a substantial number of partials is fine, as long as they're easy to find and organized properly.

Quarks are also helpful when we set up a style guide or an elements template page that lists the various default components of a project.

Atoms

Now we need to start thinking about the relationships between these quarks, and so we start to introduce aspects of BEM and OOCSS. In this system, I've called these modules "atoms" — universal abstractions, such as the media or flag object. For example, we might include a partial that sets the default style for buttons, so that we can plan for those styles to be extended and built upon:

Breakdown of the atoms directory: media.scss, buttons.scss etc.

The styles in an atom should almost never be attached to an HTML element itself; we might not be able to guarantee what the markup will look like in the future. Specifying a class instead is always safer.

In this way, atoms will save us from writing hundreds of lines of code and keep things relatively abstract. Just as Brad suggests, this concept is powerful because atoms can be combined to form more complicated structures.

Molecules

As I mentioned earlier, sometimes we need one-off structures, such as a banner or navigation element or footer, that we don't intend to replicate. This is where we can combine multiple quarks and atoms, without interfering with any of our global styles:

Examples of files from the molecule directory: banner.scss, footer-nav.scss

A molecule can take advantage of an atom for layout (such as the heading-group molecule, which might manipulate the styles of the heading quark, which lists the styles for h1, h2 etc.). But then, within this molecule, we can extend, modify and combine other styles and modules.

So, while atoms and quarks define rigid and clear rules for the system overall, and utilities provide the outlining structural styles necessary to keep things tidy, the molecules are where the design can be more flexible and extend styles out from those central tenets of the system.

As you can see, quarks, atoms and molecules break up those monster Sass files that I mentioned earlier and make code faster to read and easier to maintain in the long run.

We Need To Revise Our Current Best Practices

Although the system outlined here is pretty rigid, these are not die-hard rules. This is not the only way to organize styles with Sass, and I'm not arguing that it's a panacea for our front-end woes. I'm simply proposing that we take a good look at the developer interface and try to make things better for everyone.

This system could even be based on another kind of taxonomy or categorization, completely unrelated to biology or chemistry. But, as you can see, this is more than just a goofy way to name files and directories — rather, it suggests the kinds of relationships between these independent components. Thanks to this system, our code should be much faster to read and organize and, alongside detailed instructions and documentation, enable another Web developer to be up and running in minutes.

In the past, directories and file names were often poorly designed navigational tools. But if we think long enough about the other interface (the one for developers) and about alternative frameworks and helpful tools to make our code base more human-readable, then we can finally put some of these problems to rest and worry about other more elusive issues.

Relevant Talks

(al) (ea)

Continue reading →
Thursday, August 1, 2013

Adila: Multipurpose Business HTML Theme (Business) - W4llppr

Adila is very clean and flat design template for corporate site. Its best suit to both corporate as well as portfolio business one. This is more likely design with modern/corporate and business look. And its numerous feature make it different from others.

Main Features

  • HTML5 / CSS3 / Ultra Responsive
  • 10+ Home Page layout
  • 10+ Ready To Use Color Skins
  • 4 Header/Footer Style
  • 1 Font 360 Icons (Fontawesome)
  • Over 45 Well Commented HTML
  • 15+ Shortcode To Use
  • Twitter/Flickr Widget
  • Working Contact Form
  • Well Detailed Documentation


GET PRODUCT NOW

Continue reading →