Skip navigation
Help

Netherlands

warning: Creating default object from empty value in /var/www/vhosts/sayforward.com/subdomains/recorder/httpdocs/modules/taxonomy/taxonomy.pages.inc on line 33.
Original author: 
Amid Amidi

The Annecy International Animated Film Festival, which concluded on June 15th, awarded its Cristal prize for feature to the Brazilian film, Rio 2096: A Story of Love and Fury. The festival’s Cristal for short film went to the NFB short Subconscious Password, a CG/pixilation effort by Oscar-winner Chris Landreth (Ryan).

The complete list of winners is below:


The Cristal for best feature
Rio 2096: A Story of Love and Fury
Directed by Luiz Bolognesi (Brazil)

The Cristal for best short
Subconscious Password
Directed by Chris Landreth (Canada)


The Cristal for best TV production
Room on the Broom
Directed by Jan Lachauer and Max Lang (Great Britain)


The Cristal for best commissioned film
Dumb Ways to Die
Directed by Julian Frost (Australia)

Feature Films: Special Distinction
My Mommy Is in America and She Met Buffalo Bill
Directed by Marc Boréal and Thibaut Chatel (France/Luxembourg)

Feature Films: Audience Award
O Apóstolo
Directed by Fernando Cortizo Rodriguez (Spain)

Short Films: Special Jury Award
The Wound
Directed by Anna Budanova (Russia)

Short Films: Distinction for a first film
Trespass
Directed by Paul Wenninger (Austria)

Short Films: Jean-Luc Xiberras Award for a first film
Norman
Directed by Robbe Vervaeke (Belgium)

Short Films: Special Distinction
The Triangle Affair
Directed by Andres Tenusaar (Estonia)

Short Films: Sacem Award for original music
Lonely Bones
Directed by Rosto (The Netherlands)

Short Films: Junior Jury Award
Feral
Directed by Daniel Sousa (USA)

Short Films: Audience Award
Lettres de femmes
Directed by Augusto Zanovello (France)

TV: Special Award for a TV series
Tom & The Queen Bee
Directed by Andreas Hykade (Germany)

TV: Award for best TV special
Poppety in the Fall
Directed by Pierre-Luc Granjon and Antoine Lanciaux (France)

Commissioned films: Special Jury Award
Benjamin Scheuer: “The Lion”
Directed by Peter Baynton (Great Britain)

Graduation Films: Award for best graduation film
Ab ovo
Directed by Anita Kwiatkowska-Naqvi (Poland)

Graduation Films: Special Jury Award
I Am Tom Moody
Directed by Ainslie Henderson (Great Britain)

Graduation Films: Special Distinction
Pandas
Directed by Matus Vizar (Slovakia)

Graduation Films: Junior Jury Award
Rabbit and Deer
Directed by Peter Vacz (Hungary)

Unicef Award
Because I’m a Girl
Directed by Raj Yagnik, Mary Matheson, and Hamilton Shona (Great Britain)

Fipresci Award
Gloria Victoria
Directed by Theodore Ushev (Canada)

Fipresci Special Distinction
Feral
Directed by Daniel Sousa (USA)

“CANAL+ creative aid” Award for a short film
Autour du lac
Directed by Carl Roosens and Noémie Marsily (Belgium)

Festivals Connexion Award – Région Rhône-Alpes with Lumières Numériques
Feral
Directed by Daniel Sousa (USA)

The Funniest Film according to the Annecy Public
KJFG No 5
Directed by Alexey Alekseev (Hungary)

0
Your rating: None
Original author: 
Mikko Takkunen

Features and Essays

Rena Effendi / INSTITUTE  for National Geographic

Rena Effendi / National Geographic

Rena Effendi: Transylvania Hay Country (National Geographic)  The old art of making hay on the grass-growing meadows of Transylvania | from the July issue of National Geographic magazine | Effendi’s agency

Ami Vitale: Montana Ranch (Photo Booth)  A testament to a disappearing way of life and an ode to its endurance.

Rena Effendi: Spirit Lake (Institute) Located in an isolated and economically languishing area of North Dakota, Spirit Lake is a Sioux Indian reservation home to some 6,200 inhabitants

Raphaela Rosella: Teen Mothers in Australia (Feature Shoot)

Giorgos Moutafis

Giorgos Moutafis

Giorgos Moutafis: Istanbul’s Taksim Square (Photo Booth) Moutafis’s website

Guy Martin: Turmoil in Istanbul: Turkey’s Gezi Park Protests (LightBox) Full edit on Panos Pictures here

Guillaume Herbaut: Unrest in Turkey (Institute)

LouLou d’Aki: Occupy Istanbul: Portraits of Turkey’s Protest Kids (NY magazine)

Enri Canaj

Enri Canaj

Enri Canaj: City of Shadows (Foto8) Athens, Greece

Yannis Behrakis: Homelessness in Greece (Guardian) Related on Reuters photoblog here

Lauren Greenfield: The Fast and The Fashionable (ESPN) In Monaco during F1 Grand Prix

Giovanni Cocco: The Life Of A Sibling With Disability (NPR Picture Show)

Riverboom: Giro d’Italia (Institute)

Robert Nickelsberg: Surviving Cold War (World Policy) Forces from Norway, Britain, and the Netherlands in training in the planet’s harshest climate in the Arctic Circle

Diana Markosian

Diana Markosian

Diana Markosian: My Father, The Stranger (NYT) Markosian writes about her father here | Related on the NYT Lens blog here

Ian Willms: Following in the Mennonites’ Footsteps (LightBox)

Tomasz Lazar: In Kosovo, Bridging an Ethnic Divide (NYT)

Cathal McNaughton: Yarnbombers (Guardian) Photographer Cathal McNaughton has caught up with the Yarnbombers, the guerrilla knitters who plan to target the G8 using knitting or crochet rather than graffiti

Sebastian Liste / Reportage by Getty Images for TIME

Sebastian Liste / Reportage by Getty Images for TIME

Sebastian Liste: On the Inside: Venezuela’s Most Dangerous Prison (LightBox)

Pietro Paolini: Ecuador: Balance on the Zero (Terra Project)

Elizabeth Griffin and Amelia Coffaro: Capturing Life With Cancer At Age 28 (NPR Picture Show)

Lars Tunbjörk: Cremation: The New American Way of Death (LightBox)

Lucas Jackson: Tornado survivors of Moore (Reuters photo blog) multimedia

Andy Levin: Coney Island (NYT Lens)

Daniel Love: 200 Hours (Guardian)

Robert Herman: New York: A View of Inner Turmoil (NYT Lens)

Reed Young: The Ground Zero of Immigration: El Paso (LightBox)

Sara Lewkowicz: An unflinching look at domestic abuse (CNN photo blog)

Tony Fouhse: The Simple View of Ottawa (NYT Lens)

Justin Jin for the New York Times

Justin Jin for the New York Times

Justin Jin: A Chinese Push for Urbanization (NYT)

Sean Gallagher: Climate change on the Tibetan plateau (Guardian) audio slideshow

Nic Dunlop: On the frontlines of a ‘Brave New Burma’ (CNN photo blog)

Zohra Bensemra: Pakistan’s female Top Gun (Reuters)

Paolo Marchetti: The Stains of Kerala (LightBox)

Behrouz Mehri / AFP / Getty Images

Behrouz Mehri / AFP / Getty Images

Behrouz Mehri: Life in Tehran, glimpsed through the rear window (AFP Correspondent)

Tyler Hicks: A New Strategy on One Syrian Front (NYT)

Laurent Van der Stockt: On The Damascus Front Lines (Le Monde)

Jason Larkin: Suez – Egypt’s Lifeline (Panos Pictures)

Nyani Quarmyne: Bridging Approaches to Mental Illness in Sierra Leone (NYT Lens)

Jake Naughton: Education of Girls in Kibera (Feature Shoot)

David Guttenfelder: Last Song for Migrating Birds (NGM) Across the Mediterranean, millions are killed for food, profit, and cruel amusement.

Nick Cobbing: Follow the Creatures (Photographer’s website) Antarctica

Nelli Palomäki: Portraits of Children (LightBox)

Articles

AP Explore

AP Explore

The Burning Monk 50th anniversary (AP) Malcolm Wilde Browne was 30 years old when he arrived in Saigon on Nov. 7, 1961, as AP’s first permanent correspondent there. From the start, Browne was filing the kind of big stories that would win him the Pulitzer Prize for reporting in 1964. But today, he is primarily remembered for a photograph taken 50 years ago on June 11, 1963, depicting the dignified yet horrific death by fiery suicide of Buddhist monk Thich Quang Duc.

Malcolm Browne: The Story Behind The Burning Monk (LightBox)

Love struck: Photographs of JFK’s visit to Berlin 50 years ago reveal a nation instantly smitten (The Independent) Photographer Ulrich Mack accompanied Kennedy on the entire trip. The results, published this month as Kennedy in Berlin, have mostly never been seen before

Osman Orsal / Reuters

Osman Orsal / Reuters

Images of Protest in Istanbul: The Woman in Red (No Caption Needed)

Turkey’s “Lady in Red” and the Importance of Professional Photographers (NPPA)

The photo that encapsulates Turkey’s protests and the severe police crackdown (Washington Post)

‘Woman in red’ sprayed with teargas becomes symbol of Turkey protests (Guardian)

Photographer documents Istanbul ‘war zone’ in his own backyard on Facebook (NBC News photo blog)

Photographic Mood, on the Eve of Destruction (No Caption Needed)

Photographer Injured in Istanbul Protests (PDN)

Pixelating the reality? (Al Jazeera: Listening Post) Photography is a subjective medium, and how it is used will always depend on who is using it. | On Paul Hansen’s World Press Photo of the Year and post-processing in photojournalism in general

The Art of War – Ron Haviv (Viewpoint on Vimeo) A documentary from the public television of Greece, year 2013. Language: English | Greek Subtitles

Leading photojournalist captures the beating heart of a brutal world (Sydney Morning Herald) Forty years of covering atrocities has only reinforced James Nachtwey’s faith in humanity

Rita Leistner: Looking for Marshall McLuhan in Afghanistan (BagNewsNotes)

Profile of a Curatorial Master: Yolanda Cuomo (LightBox)

A Glance at the 2013 LOOK3 Photo Festival (LightBox)

Edouard Elias / Getty Images

Edouard Elias / Getty Images

Two journalists, including photographer Edouard Elias, abducted in Syria (BJP) According to Le Monde and BBC News, the two journalists, Didier François and Edouard Elias, were travelling to Aleppo in Syria when they were abducted by four armed men at a checkpoint 

Syrian teacher turned war photographer (CNN) Nour Kelze describes her transition from English teacher in Aleppo to war photographer in the middle of Syria’s conflict.

Frontline Freelance Register created to help freelance war reporters (BJP)

Margaret Bourke-White’s Damaged Negatives From a Classic Assignment (LIFE)

A Paean to Forbearance (the Rough Draft) (NYT) The origins behind James Agee’s 1941 book, “Let Us Now Praise Famous Men,” a literary description of abject poverty in the South, accompanied by Walker Evans photographs.

In pictures: Saul Leiter’s pioneering colour photography (BBC)

Ageing and creative decline in photography: a taboo subject (BJP)

The Woman in a Jim Crow Photo (NYT Lens)

Abigail Heyman, Feminist Photojournalist, Dies at 70 (NYT) Related

Denver photographer Steven Nickerson who shocked, awed, dead at 55 (Denver Post)

Bolivar Arellano’s Photos for El Diario-La Prensa (NYT Lens)

Nelson Mandela: a life in focus (Guardian) Pulitzer Prize-winning photographer Greg Marinovich reflects on a legend of our time

Eman Mohammed in the Gaza Strip (Denver Post Plog)

Robert Capa’s vintage prints on show (BBC) To mark what would have been the 100th birthday of photographer Robert Capa, the Atlas gallery in London is holding an exhibition of his work. It comprises a wide range of prints from his time in Spain during the Civil War through World War II, and ending with the Indo China conflict where he lost his life.

Uzbek migrant workers in Kazakhstan

Chloe Dewe Mathews

Chloe Dewe Mathews’s best photograph – Uzbek migrant workers (Guardian)

Featured photographer: Scout Tufankjian (Verve Photo)

Featured photographer: Carlo Gianferro (Verve Photo)

Featured photographer: Antonia Zennaro (Verve Photo)

Deutsche Börse photography prize 2013 won by Broomberg and Chanarin (Guardian)

American Girls: Photographs Offer Vision into American Girlhood (Daily Beast) Polish photographer Ilona Szwarc’s new exhibit captures 100 kids with their cult-classic toy, the American Girl doll.

Northern Ireland: 30 Years of Photography by Colin Graham – review (Guardian) This catalogue of recent Northern Irish photography shows a determination to leave the documentary style of the Troubles behind

After Lowry (FT magazine) Landscape photographer John Davies takes a series of pictures in the northwest of England inspired by the work of LS Lowry

Eric Maierson: This is what editing feels like (MediaStorm blog)

Yunghi Kim: Protecting Our Images (NPPA)

I Spy: Photographer who secretly snapped neighbors goes to court (Yahoo)

Beyonce Photoshopped Into Starvation for Latest Ad Campaign (PetaPixel)

Interviews and Talks

C-SPAN

C-SPAN

Rodrigo Abd and Javier Manzano (C-Span)

Carolyn Drake (cestandard) An interview with Carolyn Drake, author of Two Rivers

Paul Conroy (Amanpour) The deadliest country on earth for journalists | Conroy on Marie Colvin’s last assignment

Alex Webb (LA Times Framed)

Christopher Anderson (GUP magazine)

Stuart Franklin (Vice) There’s More to Stuart Franklin Than the Most Famous Photo of the 20th Century

Paula Bronstein / Getty Images

Paula Bronstein / Getty Images

Paula Bronstein (ABC Radio National Australia) Internationally acclaimed US photo journalist Paula Bronstein talks about bearing witness to human suffering through her photo essays.

John H. White (NPR Picture Show) Photo Staff Firings Won’t Shake Pulitzer Winner’s Focus

Joe McNally (NYT Lens) Photographing on Top of the World

David Guttenfelder (NGM) Photographer David Guttenfelder reflects upon why taking pictures of the slaughter of songbirds is like covering a war.

Alexandra Avakian / Contact Press Images

Alexandra Avakian / Contact Press Images

Jean-François Leroy (BJP) Visa pour l’Image organizer on the festival’s editorial line and the cost of covering war

Jean-François Leroy (BJP) Visa pour l’Image organizer on social media, the future of photojournalism and the need for greater cooperation

Marco Di Lauro (Image Deconstructed)

Evgenia Arbugaeva (Leica blog) Leica Oskar Barnack Award Winner 2013

Jenn Ackerman (PBS NewsHours) One Photographer’s Experience Documenting Mentally Ill Inmates

Richard Misrach (PDN Pulse) Misrach on Documentary vs. Art, the Complications of Portraiture, and Digital Photography

Daniel Etter / Redux

Daniel Etter / Redux

Daniel Etter (LightBox Tumblr)

Espen Rasmussen (Panos Social)

Michael Christopher Brown (Window magazine)

Terry O’Neill (WSJ) The photographer on starlets, the Stones and Sinatra

Ewen Spencer (Vice) The Soul of UK Garage, As Photographed by Ewen Spencer

Mikko Takkunen is an associate photo editor at TIME.com. Follow him on Twitter @photojournalism.

0
Your rating: None
Original author: 
Lars Kappert

  

We are talking and reading a lot about responsive Web design (RWD) these days, but very little attention is given to Web applications. Admittedly, RWD still has to be ironed out. But many of us believe it to be a strong concept, and it is here to stay. So, why don’t we extend this topic to HTML5-powered applications? Because responsive Web applications (RWAs) are both a huge opportunity and a big challenge, I wanted to dive in.

Building a RWA is more feasible than you might think. In this article, we will explore ideas and solutions. In the first part, we will set up some important concepts. We will build on these in the second part to actually develop a RWA, and then explore how scalable and portable this approach is.

Part 1: Becoming Responsible

Some Lessons Learned

It’s not easy to admit, but recently it has become more and more apparent that we don’t know many things about users of our websites. Varying screen sizes, device features and input mechanisms are pretty much RWD’s reasons for existence.

From the lessons we’ve learned so far, we mustn’t assume too much. For instance, a small screen is not necessarily a touch device. A mobile device could be over 1280 pixels wide. And a desktop could have a slow connection. We just don’t know. And that’s fine. This means we can focus on these things separately without making assumptions: that’s what responsiveness is all about.

Progressive Enhancement

The “JavaScript-enabled” debate is so ’90s. We need to optimize for accessibility and indexability (i.e. SEO) anyway. Claiming that JavaScript is required for Web apps and, thus, that there is no real need to pre-render HTML is fair (because SEO is usually not or less important for apps). But because we are going responsive, we will inherently pay a lot attention to mobile and, thus, to performance as well. This is why we are betting heavily on progressive enhancement.

Responsive Web Design

RWD has mostly to do with not knowing the screen’s width. We have multiple tools to work with, such as media queries, relative units and responsive images. No matter how wonderful RWD is conceptually, some technical issues still need to be solved.

start-image_mini
Not many big websites have gone truly responsive since The Boston Globe. (Image credits: Antoine Lefeuvre)

Client-Side Solutions

In the end, RWD is mostly about client-side solutions. Assuming that the server basically sends the same initial document and resources (images, CSS and JavaScript) to every device, any responsive measures will be taken on the client, such as:

  • applying specific styles through media queries;
  • using (i.e. polyfilling) <picture> or @srcset to get responsive images;
  • loading additional content.

Some of the issues surrounding RWD today are the following:

  • Responsive images haven’t been standardized.
  • Devices still load the CSS behind media queries that they never use.
  • We lack (browser-supported) responsive layout systems (think flexbox, grid, regions, template).
  • We lack element queries.

Server-Side Solutions: Responsive Content

Imagine that these challenges (such as images not being responsive and CSS loading unnecessarily) were solved on all devices and in all browsers, and that we didn’t have to resort to hacks or polyfills in the client. This would transfer some of the load from the client to the server (for instance, the CMS would have more control over responsive images).

But we would still face the issue of responsive content. Although many believe that the constraints of mobile help us to focus, to write better content and to build better designs, sometimes it’s simply not enough. This is where server-side solutions such as RESS and HTTP Client Hints come in. Basically, by knowing the device’s constraints and features up front, we can serve a different and optimized template to it.

Assuming we want to COPE, DRY and KISS and stuff, I think it comes down to where you want to draw the line here: the more important that performance and content tailored to each device is, the more necessary server-side assistance becomes. But we also have to bet on user-agent detection and on content negation. I’d say that this is a big threshold, but your mileage may vary. In any case, I can see content-focused websites getting there sooner than Web apps.

Having said that, I am focusing on RWAs in this article without resorting to server-side solutions.

Responsive Behavior

RWD is clearly about layout and design, but we will also have to focus on responsive behavior. It is what makes applications different from websites. Fluid grids and responsive images are great, but once we start talking about Web applications, we also have to be responsive in loading modules according to screen size or device capability (i.e. pretty much media queries for JavaScript).

For instance, an application might require GPS to be usable. Or it might contain a large interactive table that just doesn’t cut it on a small screen. And we simply can’t set display: none on all of these things, nor can we build everything twice.

We clearly need more.

Part 2: Building RWAs

To quickly recap, our fundamental concepts are:

  • progressive enhancement,
  • responsive design,
  • responsive behavior.

Fully armed, we will now look into a way to build responsive, context-aware applications. We’ll do this by declaratively specifying modules, conditions for loading modules, and extended modules or variants, based on feature detection and media queries. Then, we’ll dig deeper into the mechanics of dependency injection to see how all of this can be implemented.

Declarative Module Injection

We’ll start off by applying the concepts of progressive enhancement and mobile first, and create a common set of HTML, CSS and JavaScript for all devices. Later, we’ll progressively enhance the application based on content, screen size, device features, etc. The foundation is always plain HTML. Consider this fragment:


<div data-module="myModule">
    <p>Pre-rendered content</p>
</div>

Let’s assume we have some logic to query the data-module attribute in our document, to load up the referenced application module (myModule) and then to attach it to that element. Basically, we would be adding behavior that targets a particular fragment in the document.

This is our first step in making a Web application responsive: progressive module injection. Also, note that we could easily attach multiple modules to a single page in this way.

Conditional Module Injection

Sometimes we want to load a module only if a certain condition is met — for instance, when the device has a particular feature, such as touch or GPS:


<div data-module="find/my/dog" data-condition="gps">
    <p>Pre-rendered fallback content if GPS is unavailable.</p>
</div>

This will load the find/my/dog module only if the geolocation API is available.

Note: For the smallest footprint possible, we’ll simply use our own feature detection for now. (Really, we’re just checking for 'geolocation' in navigator.) Later, we might need more robust detection and so delegate this task to a tool such as Modernizr or Has.js (and possibly PhoneGap in hybrid mode).

Extended Module Injection

What if we want to load variants of a module based on media queries? Take this syntax:


<div data-module="myModule" data-variant="large">
    <p>Pre-rendered content</p>
</div>

This will load myModule on small screens and myModule/large on large screens.

For brevity, this single attribute contains the condition and the location of the variant (by convention). Programmatically, you could go mobile first and have the latter extend from the former (or separated modules, or even the other way around). This can be decided case by case.

Media Queries

Of course, we couldn’t call this responsive if it wasn’t actually driven by media queries. Consider this CSS:


@media all and (min-width: 45em) {
	body:after {
		content: 'large';
		display: none;
	}
}

Then, from JavaScript this value can be read:


var size = window.getComputedStyle(document.body,':after').getPropertyValue('content');

And this is why we can decide to load the myModule/large module from the last example if size === "large", and load myModule otherwise. Being able to conditionally not load a module at all is useful, too:


<div data-module="myModule" data-condition="!small">
    <p>Pre-rendered content</p>
</div>

There might be cases for media queries inside module declarations:


<div data-module="myModule" data-matchMedia="min-width: 800px">
    <p>Pre-rendered content</p>
</div>

Here we can use the window.matchMedia() API (a polyfill is available). I normally wouldn’t recommend doing this because it’s not very maintainable. Following breakpoints as set in CSS seems logical (because page layout probably dictates which modules to show or hide anyway). But obviously it depends on the situation. Targeted element queries may also prove useful:


<div data-module="myModule" data-matchMediaElement="(min-width: 600px)"></div>

Please note that the names of the attributes used here represent only an example, a basic implementation. They’re supposed to clarify the idea. In a real-world scenario, it might be wise to, for example, namespace the attributes, to allow for multiple modules and/or conditions, and so on.

Device Orientation

Take special care with device orientation. We don’t want to load a different module when the device is rotated. So, the module itself should be responsive, and the page’s layout might need to accommodate for this.

Connecting The Dots

The concept of responsive behavior allows for a great deal of flexibility in how applications are designed and built. We will now look into where those “modules” come in, how they relate to application structure, and how this module injection might actually work.

Applications and Modules

We can think of a client-side application as a group of application modules that are built with low-level modules. As an example, we might have User and Message models and a MessageDetail view to compose an Inbox application module, which is part of an entire email client application. The details of implementation, such as the module format to be used (for example, AMD, CommonJS or the “revealing module” pattern), are not important here. Also, defining things this way doesn’t mean we can’t have a bunch of mini-apps on a single page. On the other hand, I have found this approach to scale well to applications of any size.

A Common Scenario

An approach I see a lot is to put something like <div id="container"> in the HTML, and then load a bunch of JavaScript that uses that element as a hook to append layouts or views. For a single application on a single page, this works fine, but in my experience it doesn’t scale well:

  • Application modules are not very reusable because they rely on a particular element to be present.
  • When multiple applications or application modules are to be instantiated on a single page, they all need their own particular element, further increasing complexity.

To solve these issues, instead of letting application modules control themselves, what about making them more reusable by providing the element they should attach to? Additionally, we don’t need to know which modules must be loaded up front; we will do that dynamically. Let’s see how things come together using powerful patterns such as Dependency Injection (DI) and Inversion of Control (IOC).

Dependency Injection

You might have wondered how myModule actually gets loaded and instantiated.

Loading the dependency is pretty easy. For instance, take the string from the data-module attribute (myModule), and have a module loader fetch the myModule.js script.

Let’s assume we are using AMD or CommonJS (either of which I highly recommended) and that the module exports something (say, its public API). Let’s also assume that this is some kind of constructor that can be instantiated. We don’t know how to instantiate it because we don’t know exactly what it is up front. Should we instantiate it using new? What arguments should be passed? Is it a native JavaScript constructor function or a Backbone view or something completely different? Can we make sure the module attaches itself to the DOM element that we provide it with?

We have a couple of possible approaches here. A simple one is to always expect the same exported value — such as a Backbone view. It’s simple but might be enough. It would come down to this (using AMD and a Backbone view):


var moduleNode = document.querySelector('[data-module]'),
    moduleName = node.getAttribute('data-module');

require([moduleName], function(MyBackBoneView) {
    new MyBackBoneView({
        el: moduleNode
    });
})

That’s the gist of it. It works fine, but there are even better ways to apply this pattern of dependency injection.

IOC Containers

Let’s take a library such as the excellent wire.js library by cujoJS. An important concept in wire.js is “wire specs,” which essentially are IOC containers. It performs the actual instantiation of the application modules based on a declarative specification. Going this route, the data-module should reference a wire spec (instead of a module) that describes what module to load and how to instantiate it, allowing for practically any type of module. Now, all we need to do is pass the reference to the spec and the viewNode to wire.js. We can simply define this:


wire([specName, { viewNode: moduleNode }]);

Much better. We let wire.js do all of the hard work. Besides, wire has a ton of other features.

In summary, we can say that our declarative composition in HTML (<div data-module="">) is parsed by the composer, and consults the advisor about whether the module should be loaded (data-condition) and which module to load (data-module or data-variant), so that the dependency injector (DI, wire.js) can load and apply the correct spec and application module:

Declarative Composition

Detections for screen size and device features that are used to build responsive applications are sometimes implemented deep inside application logic. This responsibility should be laid elsewhere, decoupled more from the particular applications. We are already doing our (responsive) layout composition with HTML and CSS, so responsive applications fit in naturally. You could think of the HTML as an IOC container to compose applications.

You might not like to put (even) more information in the HTML. And honestly, I don’t like it at all. But it’s the price to pay for optimized performance when scaling up. Otherwise, we would have to make another request to find out whether and which module to load, which defeats the purpose.

Wrapping Up

I think the combination of declarative application composition, responsive module loading and module extension opens up a boatload of options. It gives you a lot of freedom to implement application modules the way you want, while supporting a high level of performance, maintainability and software design.

Performance and Build

Sometimes RWD actually decreases the performance of a website when implemented superficially (such as by simply adding some media queries or extra JavaScript). But for RWA, performance is actually what drives the responsive injection of modules or variants of modules. In the spirit of mobile first, load only what is required (and enhance from there).

Looking at the build process to minify and optimize applications, we can see that the challenge lies in finding the right approach to optimize either for a single application or for reusable application modules across multiple pages or contexts. In the former case, concatenating all resources into a single JavaScript file is probably best. In the latter case, concatenating resources into a separate shared core file and then packaging application modules into separate files is a sound approach.

A Scalable Approach

Responsive behavior and complete RWAs are powerful in a lot of scenarios, and they can be implemented using various patterns. We have only scratched the surface. But technically and conceptually, the approach is highly scalable. Let’s look at some example scenarios and patterns:

  • Sprinkle bits of behavior onto static content websites.
  • Serve widgets in a portal-like environment (think a dashboard, iGoogle or Netvibes). Load a single widget on a small screen, and enable more as screen resolution allows.
  • Compose context-aware applications in HTML using reusable and responsive application modules.

In general, the point is to maximize portability and reach by building on proven concepts to run applications on multiple platforms and environments.

Future-Proof and Portable

Some of the major advantages of building applications in HTML5 is that they’re future-proof and portable. Write HTML5 today and your efforts won’t be obsolete tomorrow. The list of platforms and environments where HTML5-powered applications run keeps growing rapidly:

  • As regular Web applications in browsers;
  • As hybrid applications on mobile platforms, powered by Apache Cordova (see note below):
    • iOS,
    • Android,
    • Windows Phone,
    • BlackBerry;
  • As Open Web Apps (OWA), currently only in Firefox OS;
  • As desktop applications (such as those packaged by the Sencha Desktop Packager):
    • Windows,
    • OS X,
    • Linux.

Note: Tools such as Adobe PhoneGap Build, IBM Worklight and Telerik’s Icenium all use Apache Cordova APIs to access native device functionality.

Demo

You might want to dive into some code or see things in action. That’s why I created a responsive Web apps repository on GitHub, which also serves as a working demo.

Conclusion

Honestly, not many big websites (let alone true Web applications) have gone truly responsive since The Boston Globe. However, looking at deciding factors such as cost, distribution, reach, portability and auto-updating, RWAs are both a huge opportunity and a big challenge. It’s only a matter of time before they become much more mainstream.

We are still looking for ways to get there, and we’ve covered just one approach to building RWAs here. In any case, declarative composition for responsive applications is quite powerful and could serve as a solid starting point.

(al) (ea)

© Lars Kappert for Smashing Magazine, 2013.

0
Your rating: None
Original author: 
(author unknown)

Jeremy Keith notes that what happens between the breakpoints is just as important as the breakpoints themselves—perhaps even more so. While I agree with this, we do have to start somewhere. In a way, this part of the process reminds me of storyboarding, or creating animation keyframes, with the in-between frames being developed later. We’re going to do that here.

Major breakpoints are conditions that, when met, trigger major changes in your design. A major breakpoint might be, for example, where your entire layout must change from two columns to four.

Let’s say you’ve chosen three basic design directions from your thumbnails. Think about what your major breakpoints will look like (Figure 7.6). And here’s the key: try to come up with as few major breakpoints as possible. That might sound crazy, since we’re talking about responsive design. After all, we have media queries, so let’s use about 12 of them, right? No! If a linear layout works for every screen and is appropriate for your particular concept, then there’s no need for different layouts. In that case, simply describe what will happen when the screen gets larger. Will everything generally stay the same, with changes only to font size, line height and margins? If so, sketch those. For these variations, make thumbnails first, explore some options, and then move on to larger, more detailed sketches. Use your breakpoint graph as a guide at first and make sketches according to the breakpoints you’ve estimated on your graph.

When thinking about major breakpoints, remember to think about device classes. If you’re thinking about smartphones, tablets, laptops/desktops, TVs, and game consoles, for example, you’re heading in the right direction. If you’re thinking in terms of brand names and specific operating systems, you’re on the wrong track. The idea is to think in terms of general device classifications and, sometimes, device capabilities. Capabilities are more important when designing web applications, since you should be thinking about what screens will look like both with and without any particular capability.

Rough sketches of major breakpoints can help you determine:

Rough sketches are more detailed than thumbnails, but they shouldn’t take a long time to create. In a short period, you should have a sketch of each major breakpoint for each of your chosen designs. This should be enough to decide on one of the designs.

  • Whether or not more major breakpoints are needed
  • Which design choice will be the most labor intensive; you might opt for a design that will better fit within time and budget constraints
  • Whether or not a particular device class has been neglected or needs further consideration
  • What technologies you’ll need to develop the design responsively


Figure 7.6: Most websites need very few major breakpoints.

Minor breakpoints are conditions that, when met, trigger small changes in your design. An example would be moving form labels from above text fields to the left of those fields, while the rest of the design remains the same.

So where and when will you sketch minor breakpoints? In the browser, when you do your web-based mockup. You’ll find out why and how in the next chapter. In the meantime, simply focus on making sketches of the state of your web pages or app screens at the major breakpoints of each design.

At this point, don’t worry too much if you notice that the initial breakpoints on your breakpoint graph simply won’t do. Those were just a starting point, and you’re free to revise your estimate based on your sketches. You might even decide that you need an extra breakpoint for a given design and record that in sketch form; you can add that breakpoint to your graph. This is a cycle of discovery, learning, and revision.

Think about your content while sketching

While sketching, you’ll certainly be thinking about the way things should look. My experience is that much UI sketching of this type revolves around the layout of elements on the screen. I’ve found it useful to keep thinking about the content while sketching, and to consider what will happen to the content in various situations. When designing responsively, it can be useful to consider how you’ll handle the following content in particular:

  • Text
  • Navigation
  • Tables

Oh, sure, there are many more things to consider, and you’ll end up creating your own list of “things to do some extra thinking about” as the project progresses. For now, let’s take a look at the items listed above.

Text

Before you say, “Hey, wait a minute, didn’t you just tell me that I didn’t have to draw text while sketching?” hear me out. While sketching, there are a couple of text-related issues you’ll need to tackle: column width and text size, both of which are relevant in proportion to the screen and the other elements on the page.

Column width is fairly obvious, but it can be difficult to estimate how wide a column will be with actual text. In this case, sketching on a device might give you a better idea of the actual space you have to work with. Another method I’ve used is just to make a simple HTML page that contains only text, and load that into a device’s browser (or even an emulator, which while not optimal still gives a more realistic impression than lines on paper). When the text seems too large or too small, you can adjust the font size accordingly. Once it seems right, you’ll be able to make your sketches a bit more realistic.

Note: Distinguish between touchability and clickability. Many designers, myself included, have made the mistake of refining links for people who click on them using a mouse, or even via the keyboard, without considering how touchable these links are for people on touch devices.

Think about the size of links—not only the text size, but also the amount of space around them. Both of these factors play a role in the touchability or clickability of links (and buttons): large links and buttons are easier targets, but slightly smaller links with plenty of space around them can work just as well. That said, there’s a decent chance that no matter what you choose to sketch, you’ll end up making changes again when you create your mockups.

This is the great thing about sketching that I can’t repeat often enough: you’re going to refine your design in the browser anyway, so the speed with which you can try things out when sketching means you won’t have to do detail work more than once (unless your client has changes, but we all know that never happens).

Navigation

Navigation is another poster child for sketching on actual devices. The size issues are the same as with links, but there’s a lot more thinking to do in terms of the design of navigation for various devices, which means navigation might change significantly at each major breakpoint.

Think back to Bryan Rieger’s practice of designing in text first, and ponder what you would do before the very first breakpoint if you had only plain HTML and CSS at your disposal—in other words, if you had no JavaScript. That means no, you can’t have your menu collapsed at the top of the screen and have it drop down when someone touches it. If you have your menu at the top, it’s in its expanded form and takes up all the vertical space it normally would.

This is a controversial enough subject, with even accessibility gurus in disagreement: JavaScript, after all, is currently considered an “accessibility supported” technology. But this isn’t necessarily about accessibility. It’s about thinking about what happens when a browser lacks JavaScript support, or if the JavaScript available on the device is different than what you’d expect. Your content will be presented in a certain way before JavaScript does its thing with it, no matter what the browser. So why not think about what that initial state will be?

In the chapter on wireframes, I talked about my preferred pattern for navigation on the smallest screens: keep it near the bottom of the screen and place a link to that navigation near the top of the screen. JavaScript, when available and working as expected, can move that navigation up to the top and create the drop-down menu on the fly.

But a pattern is not design law, so how you choose to handle the smallest screens will depend on your project. If I had only a few links in my navigation, I might very well put the menu at the top from the very start, and there it would stay at every breakpoint.

Remember that JavaScript and CSS let you do a lot of rearranging of stuff on the screen. That knowledge should empower you to safely design a great page with plain HTML and use JavaScript and CSS to spice it up any way you like. This is the essence of progressive enhancement.

Tables

Tables! Oh, the bane of the responsive designer (or wait, is that images? Or video? Or layout? Ahem). Tables are tough to deal with on small screens. I’d love to tell you I have all the answers, but instead I have more questions. Hopefully, these will lead you to a solution. It’s good to think about these while you’re sketching.

First of all, what types of tables will you be dealing with? Narrow? Wide? Numerical? Textual? Your content inventory should give you enough information to answer these simple questions. Once you’ve considered those, try to categorize the types of tables you have into something like the following classes (Figure 7.7):

  • Small-screen-friendly tables, which you’ll probably leave as they are, because they’re small enough and will work fine on most small screens.
  • Blockable tables, which you can alter with CSS so that each row in the table functions visually as a block item in a list (Figure 7.8).
  • Chartable tables, which contain numerical data that can be transformed into a chart, graph, or other visualization that will take up less space on a small screen.
  • Difficult tables, which are hard enough to deal with that you’ll need to come up with a different plan for them, sometimes even on a case-by-case basis. These are our enemies, but unfortunately, are the friends of our clients, who all love Microsoft Excel. Oh well.


Figure 7.7: There are several different types of tables, and different ways of dealing with them on small screens. (Sources: mobilism.nl and eu-verantwoording.nl)


Figure 7.8: One way of dealing with small screen tables is to treat each row as a block.

Thinking again in terms of progressive enhancement, the base design should probably just include the whole table, which means that the user will have to scroll horizontally to see the whole thing in many cases. On top of this, we can employ CSS and JavaScript, when they’re available, to do some magic for us. Blockable and chartable tables can be blocked with CSS and charted with JavaScript. Plenty of designers and developers have experimented with many different options for tables, from simply making the table itself scrollable to exchanging columns and rows.

The fun part is that what you do on small screens isn’t necessarily what you’ll do on larger screens. That’s why now—when all you have to do is sketch and it won’t take much time—is the time to think about the changes you’ll be making at each breakpoint.

What to do if you get stuck

Every designer gets stuck at some point. It’s no big deal unless you treat it like one. There are countless ways to deal with it, from asking yourself what if questions (“What if it weren’t a table, but a list?” is what I asked myself before “blockifying” the attendees table for the Mobilism site) to the cliché taking a shower, which you hopefully do on a regular basis anyway. The reason this chapter focuses so much on sketching is because the act of drawing itself can actually stimulate your brain to come up with more ideas, provided you push it hard enough by sketching past your comfort zone of first-come ideas.

If your problem is that you’re stuck creatively, there are many inspiring books and resources to get your creative engine started during the bitter cold of designer’s block. Although there are plenty of resources on design and creativity itself (try such classics as Edward de Bono’s Lateral Thinking), the greatest inspiration can come from sources outside the realm of design.1 Trying to combine things that normally aren’t combined can lead to surprising results. It’s a simple little trick, but I’ve often used Brian Eno and Peter Schmidt’s Oblique Strategies to force me to take a different approach.2 Worst case, it’s a lot of fun. Best case, you’ve got a great idea!

If your problem is that you’re not sure how to handle something in the context of responsive design, there’s no harm in researching how others have solved problems like yours. Just be sure to use your creativity and tailor any ideas you might find to your own situation; after all, you’re a designer. At the time of this writing I find Brad Frost’s This Is Responsive to be one of the most exhaustive collections of responsive design patterns and resources available.3 You can spend hours going through there and you’ll certainly come across something that will get you unstuck.

Excerpted from Responsive Design Workflow by Stephen Hay. Copyright © 2013.
Used with permission of Pearson Education, Inc. and New Riders.

0
Your rating: None
Original author: 
Ian Willms

At the heart of the Mennonite religion, you’ll find an unwavering commitment to nonresistance that has endured five centuries of oppression and violent atrocities. This work is a photographic ode to an endless journey that my Mennonite ancestors undertook in the name of peace.

Right from their origins in the 16th and 17th centuries, Mennonites in the Netherlands were hunted down by the Catholic Church and publicly tortured to death because of their Christian beliefs. This prompted the Mennonites to migrate to Poland, where they remained for a century until the state began to force them into military service. In the late 18th century, the Mennonites chose to migrate again — this time to Ukraine and Russia.

On a bitterly cold winter night, in the midst of the Russian Revolution, Bolshevik soldiers arrived at my family’s doorstep. They forced 48 Mennonite men to walk from house to house at gunpoint using them as human shields as they stormed the non-Mennonite homes; my great grandfather was one of three survivors from that group. During the revolution, entire Mennonite villages were wiped off the map in nighttime massacres that saw men, women and children struck down by Bolshevik soldiers on horseback. Those who were able to escape with their lives would return to their villages the following day to bury their neighbours and families in unmarked mass graves before beginning new lives as refugees. Throughout their history, the Mennonites have been repeatedly faced with the same decision: Take up arms and abandon your faith, leave your home behind and give up everything you have worked for in your life, or die where you stand.

In 2012, I decided to re-trace the refugee migrations of the Mennonites to witness the places where they lived and died. I followed their historical journey through The Netherlands, Germany, Poland and Ukraine, photographing the communities, farmland, execution sites and mass graves that had been left behind. The path on which I traveled emulated the nomadic history of the Mennonites, while I searched for a feeling of familiarity and a connection to the former homes of my distant relatives. In most places along the migration route, the lingering presence of the Mennonites was little more than a collection of memories; a pockmarked gravestone; the mossy foundations of a farmhouse; a group of blurry faces, locked away in a history textbook. I found myself sifting through peaceful cow pastures and rural villages, seeking the ghosts of unimaginable heartbreak and tragedy.

The process of carrying out this work took an emotional toll, but the experience taught me to admire the Mennonites for their immense personal sacrifices. The Mennonites gave up community, prosperity and even faced death because they believed in the statement of nonresistance. I feel that if the places in these photographs could speak, they would tell us that hostilities brought against pacifist peoples are more than an injustice; they are an attack upon the hope for peace within our world.

Ian Willms is a photographer based in Toronto. He is currently represented by Getty Images Emerging Talent.

0
Your rating: None
Original author: 
Adrianne Jeffries

Atm_robbers_large

Defendants Elvis Rafael Rodriguez and Emir Yasser Yeje posing with approximately $40,000 with cash. Source: US Attorney, Eastern District of New York

If you’d been waiting for the ATM inside the deli at East 59th and Third in Manhattan on Tuesday, February 19th around 9:24PM, you would have been annoyed. A young man in a black beanie and puffy black jacket made seven withdrawals in a row, stuffing around $5,620 into his blue backpack. The man wasted no time. He exited the deli and headed up five blocks to repeat the process at four more ATMs, finishing his route at a Chase bank at 69th and Third at 9:55PM, where he made four withdrawals totaling $4,000.

While the man in the black beanie was beelining along the Upper East Side, seven...

Continue reading…

0
Your rating: None
Original author: 
WSJ Staff

In today’s pictures, baseball players remember Jackie Robinson in Boston, North Korea marks an anniversary, a man goes face-to-face with a sculpture in Paris, and more.

0
Your rating: None