Wohooo !!!finally a day off from work or you can say i bunked it(its very common for me), but it was special as it was my first leave/bunk from office in past 3 months.It was nice awesome weather, thanks to cyclone that day in bay area. I was planning what to do? and i suddenly realized its been days i dint go for a bike drive.So, got my beast Pulsar 220 out and set out for a drive. I was in midst of my journey and cyclone played upon, it started raining heavily. All I could was to rush to some place and on the highway i landed up into a Cafe'(not the Irani Chai one :P).
I entered cafe' asked barista for a hot cuppa.I grabbed a book from the side table and started reading it.
"Hey, how come you here?" a voice called, I turned around and found my college junior standing behind me. I also asked him the same as this place was unusual bit farther from city.He told "I came with my girlfriend". Next question obviously was "Where is she and Who?" as i din see any girl around, he told she was in washroom as they both got drenched.
We both sat down,Oops i forgot to introduce him. He is the Ex-Col. son Rakesh Singh, as long as i remember he aspired to be in army.His haircut and mustache looked like he was in army but wasnt sure about it. So i popped up a question" You in Army, right?".
He said "No, I am still trying for it". I said "Ohhkk, Your appearance made you look that you are already in". He then lit up a cigarette and started smoking, I asked him when did you start smoking. He told me, for joining army he has started adapting that lifestyle of smoking and drinking as this gives him "GENTLEMEN" feeling.His answer was good enough for me to thank god, that i dropped my plan of joining armed forces, I wouldn't have adapted to this mad rush.
So, I thought it would be great to discuss with this guy about Anti-Graft movement and corruption as he is going to join army must be passionate about our country as i am.So i asked him what did he think about it. He told me, he doesn't give a shit about whatever happens in politics,he will be part of army and not a civilian.
Now here was an answer i hated from him.I asked aren't civilians part of this country and isn't corruption prevails in army too,shouldn't we fight against it.His next answer was real amazing"Its something civilians get it to army, Armed forces people are not corrupt". This pissed me off.
I asked him"how can you say that". He told"I know it, We live to glory and for country". I counter questioned him "Aren't civilians and corruption part of this country". I want to join army to enjoy to get a good 5 digit salary and my dad's influence would get me posted in some relief areas , I can drink and enjoy the armed forces party and have a good time spending my life".
Before i could say anything, i heard another voice "My mushy mushy darling lets go, rain has also stopped. I need to be home before 8".She was Rakesh's girlfriend.He introduced me too her and i can
say she was blonde and dumb seeing her face.So he left in 5 minutes after some PDA in front of me.
He left but also left a question to me "Aren't we responsible for our country?. Is our youth going crazy behind unrealistic things in life.I don't know which knowledge center is mus-guiding them."
and to add on "I don't want such people to defend my country, i feel so unsafe now".
But its time for us to realize what is important for our country, rather then sitting on our ambitions. Our country needs a good corruption free environment not the one we have now.I wanna change it.
A week back i received an e-mail from client team in Palo Alto asking me for responsive web design approach for the new project.I know its boring topic for people who are not related to UI/UX stream,but certainly you should read to know whats the next big thing on its way.
"The control which designers know in the print medium, and often
desire in the web medium, is simply a function of the limitation of the
printed page. We should embrace the fact that the web doesn’t have the
same constraints, and design for this flexibility. But first, we must
“accept the ebb and flow of things.” John Allsopp, “A Dao of Web Design”"
The English architect Christopher Wren once quipped that his chosen
field “aims for Eternity,” and there’s something appealing about that
formula: Unlike the web, which often feels like aiming for next week,
architecture is a discipline very much defined by its permanence. A
building’s foundation defines its footprint, which defines its frame,
which shapes the facade. Each phase of the architectural process is more
immutable, more unchanging than the last. Creative decisions quite
literally shape a physical space, defining the way in which people move
through its confines for decades or even centuries.
Working on the web, however, is a wholly different matter. Our work
is defined by its transience, often refined or replaced within a year or
two. Inconsistent window widths, screen resolutions, user preferences,
and our users’ installed fonts are but a few of the intangibles we
negotiate when we publish our work, and over the years, we’ve become
incredibly adept at doing so.
But the landscape is shifting, perhaps more quickly than we might
like. Mobile browsing is expected to outpace desktop-based access within
three to five years. Two of the three dominant video game consoles have web browsers (and one of them
is quite excellent). We’re designing for mice and keyboards, for T9
keypads, for handheld game controllers, for touch interfaces. In short,
we’re faced with a greater number of devices, input modes, and browsers
than ever before.
In recent years, I’ve been meeting with more companies that request
“an iPhone website” as part of their project. It’s an interesting
phrase: At face value, of course, it speaks to mobile WebKit’s quality
as a browser, as well as a powerful business case for thinking beyond
the desktop. But as designers, I think we often take comfort in such
explicit requirements, as they allow us to compartmentalize the problems
before us. We can quarantine the mobile experience on separatesubdomains,
spaces distinct and separate from “the non-iPhone website.” But what’s
next? An iPad website? An N90 website? Can we really continue to commit
to supporting each new user agent with its own bespoke experience? At
some point, this starts to feel like a zero sum game. But how can we—and
our designs—adapt?
A flexible foundation
Let’s consider an example design. I’ve built a simple page for a hypothetical magazine; it’s a straightforward two-column layout built on a fluid grid, with not a few flexible images
peppered throughout. As a long-time proponent of non-fixed layouts,
I’ve long felt they were more “future proof” simply because they were
layout agnostic. And to a certain extent, that’s true: flexible designs
make no assumptions about a browser window’s width, and adapt
beautifully to devices that have portrait and landscape modes.
Huge images are huge. Our layout, flexible though it is, doesn’t respond well to changes in resolution or viewport size.
But no design, fixed or fluid, scales seamlessly beyond the context for which it was originally intended. The example design
scales perfectly well as the browser window resizes, but stress points
quickly appear at lower resolutions. When viewed at viewport smaller
than 800×600, the illustration behind the logo quickly becomes cropped,
navigation text can wrap in an unseemly manner, and the images along the
bottom become too compact to appear legible. And it’s not just the
lower end of the resolution spectrum that’s affected: when viewing the
design on a widescreen display, the images quickly grow to unwieldy
sizes, crowding out the surrounding context.
In short, our flexible design works well enough in the
desktop-centric context for which it was designed, but isn’t optimized
to extend far beyond that.
Becoming responsive
Recently, an emergent discipline called “responsive architecture” has begun asking how physical spaces can respond
to the presence of people passing through them. Through a combination
of embedded robotics and tensile materials, architects are experimenting
with art installations and wall structures
that bend, flex, and expand as crowds approach them. Motion sensors can
be paired with climate control systems to adjust a room’s temperature
and ambient lighting as it fills with people. Companies have already
produced “smart glass technology” that can automatically become opaque when a room’s occupants reach a certain density threshold, giving them an additional layer of privacy.
In their book Interactive Architecture, Michael Fox and
Miles Kemp described this more adaptive approach as “a multiple-loop
system in which one enters into a conversation; a continual and constructive information exchange.”
Emphasis mine, as I think that’s a subtle yet powerful distinction:
rather than creating immutable, unchanging spaces that define a
particular experience, they suggest inhabitant and structure can—and
should—mutually influence each other.
This is our way forward. Rather than tailoring disconnected designs
to each of an ever-increasing number of web devices, we can treat them
as facets of the same experience. We can design for an optimal viewing
experience, but embed standards-based technologies into our designs to
make them not only more flexible, but more adaptive to the media that
renders them. In short, we need to practice responsive web design. But how?
Meet the media query
Since the days of CSS 2.1, our style sheets have enjoyed some measure of device awareness through media types. If you’ve ever written a print style sheet, you’re already familiar with the concept:
In the hopes that we’d be designing more than neatly formatted page printouts, the CSS specification supplied us with a bevy of acceptable media types,
each designed to target a specific class of web-ready device. But most
browsers and devices never really embraced the spirit of the
specification, leaving many media types implemented imperfectly, or altogether ignored.
Thankfully, the W3C created media queries as part of the CSS3
specification, improving upon the promise of media types. A media query
allows us to target not only certain device classes, but to actually
inspect the physical characteristics of the device rendering our work.
For example, following the recent rise of mobile WebKit, media queries
became a popular client-side technique for delivering a tailored style
sheet to the iPhone, Android phones, and their ilk. To do so, we could
incorporate a query into a linked style sheet’s media attribute:
The query contains two components:
a media type (screen), and
the actual query enclosed within parentheses, containing a particular media feature (max-device-width) to inspect, followed by the target value (480px).
In plain English, we’re asking the device if its horizontal resolution (max-device-width) is equal to or less than 480px.
If the test passes—in other words, if we’re viewing our work on a
small-screen device like the iPhone—then the device will load shetland.css. Otherwise, the link is ignored altogether.
Designers have experimented with resolution-aware layouts in the past, mostly relying on JS-driven solutions like Cameron Adams’ excellent script. But the media query specification provides a host of media features
that extends far beyond screen resolution, vastly widening the scope of
what we can test for with our queries. What’s more, you can test
multiple property values in a single query by chaining them together
with the and keyword:
Furthermore, we’re not limited to incorporating media queries in our links. We can include them in our CSS either as part of a @media rule:
@import url("shetland.css") screen and (max-device-width: 480px);
But in each case, the effect is the same: If the device passes the test put forth by our media query, the relevant CSS is applied to our markup. Media queries are, in short, conditional comments
for the rest of us. Rather than targeting a specific version of a
specific browser, we can surgically correct issues in our layout as it
scales beyond its initial, ideal resolution.
Adapt, respond, and overcome
Let’s turn our attention to the images at the base of our page. In their default layout, the relevant CSS currently looks like this:
I’ve omitted a number of typographic properties to focus on the layout: Each .figure
element is sized at roughly one third of the containing column, with
the right-hand margin zeroed out for the two pictures at the end of each
row (li#f-mycroft, li#f-winter). And this works fairly
well, until the viewport is either noticeably smaller or wider than our
original design. With media queries, we can apply resolution-specific
spotfixes, adapting our design to better respond to changes in the
display.
First of all, let’s linearize our page once the viewport falls below a certain resolution threshold—say, 600px. So at the bottom of our style sheet, let’s create a new @media block, like so:
If you view our updated page in a modern desktop browser and reduce the size of your window below 600px,
the media query will disable the floats on the design’s major elements,
stacking each block atop each other in the document flow. So our
miniaturized design is shaping up nicely, but the images still don’t
scale down that intelligently. If we introduce another media query, we
can alter their layout accordingly:
Don’t mind the unsightly percentages; we’re simply recalculating the widths of the fluid grid to account for the newly linearized layout. In short, we’re moving from a three-column layout to a two-column layout when the viewport’s width falls below 400px, making the images more prominent.
We can actually take the same approach for widescreen displays, too.
For larger resolutions, we could adopt a six-across treatment for our
images, placing them all in the same row:
Now our images are working beautifully at both ends of the resolution spectrum, optimizing their layout to changes in window widths and device resolution alike.
By specifying a wider min-width in a new media query, we can shift our images into a single row layout.
But this is only the beginning. Working from the media queries we’ve embedded in our CSS, we can alter much more than the placement of a few images: we can introduce new, alternate layouts
tuned to each resolution range, perhaps making the navigation more
prominent in a widescreen view, or repositioning it above the logo on
smaller displays.
But a responsive design isn’t limited to layout changes. Media
queries allow us to practice some incredibly precise fine-tuning as our
pages reshape themselves: we can increase the target area on links for
smaller screens, better complying with Fitts’ Law on touch devices; selectively show or hide elements that might enhance a page’s navigation; we can even practice responsive typesetting to gradually alter the size and leading of our text, optimizing the reading experience for the display providing it.
A few technical notes
It should be noted that media queries enjoy incredibly robust support
among modern browsers. Desktop browsers such as Safari 3+, Chrome,
Firefox 3.5+, and Opera 7+ all natively parse media queries, as do more
recent mobile browsers such as Opera Mobile and mobile WebKit. Of
course, older versions of those desktop browsers don’t support media
queries. And while Microsoft has committed to media query support in IE9, Internet Explorer currently doesn’t offer a native implementation.
However, if you’re interested in implementing legacy browser support
for media queries, there’s a JavaScript-tinted silver lining:
A jQuery plugin from 2007 offers somewhat limited media query support, implementing only the min-width and max-width media properties when attached to separate link elements.
More recently, css3-mediaqueries.js was released, a library that promises “to make IE 5+, Firefox 1+ and Safari 2 transparently parse, test, and apply CSS3 Media Queries” when included via @media blocks. While very much a 1.0 release, I’ve personally found it to be quite robust, and I plan to watch its development.
But if using JavaScript doesn’t appeal, that’s perfectly
understandable. However, that strengthens the case for building your
layout atop a flexible grid, ensuring your design enjoys some measure of flexibility in media query-blind browsers and devices.
The way forward
Fluid grids, flexible images, and media queries are the three
technical ingredients for responsive web design, but it also requires a
different way of thinking. Rather than quarantining our content into
disparate, device-specific experiences, we can use media queries to
progressively enhance our work within different viewing contexts. That’s
not to say there isn’t a business case for separate sites geared toward
specific devices; for example, if the user goals for your mobile site
are more limited in scope than its desktop equivalent, then serving
different content to each might be the best approach.
But that kind of design thinking doesn’t need to be our default. Now
more than ever, we’re designing work meant to be viewed along a gradient
of different experiences. Responsive web design offers us a way
forward, finally allowing us to “design for the ebb and flow of things.”