Skip navigation
Help

BBC

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

theodp writes "In a move straight out of Healthcare.gov's playbook, teachers won't get to preview the final lessons they're being asked to roll out to 10 million U.S. students until a week before the Dec. 9th launch of the Hour of Code nation-wide learn-to-code initiative, according to a video explaining the project, which is backed by the nation's tech giants, including Facebook, Microsoft, Apple, Google, and Amazon. The Hour of Code tutorial page showcased to the press sports Lorem Ipsum pseudo-Latin text instead of real content, promised tutorial software is still being developed by Microsoft and Google, and celebrity tutorials by Bill Gates and Mark Zuckerberg are still a work-in-progress. With their vast resources and deep pockets, the companies involved can still probably pull something off, but why risk disaster for such a high-stakes effort with a last-minute rush? One possible explanation is that CS Education Week, a heretofore little-recognized event, is coming up soon. Then again, tech immigration reform is back on the front burner, an initiative that's also near-and-dear to many of same players behind Hour of Code, including Microsoft Chief Counsel Brad Smith who, during the Hour of Code kickoff press conference, boasted that Microsoft's more-high-tech-visas-for-U.S.-kids-computer-science-education deal found its way into the Senate Immigration Bill, but minutes later joined his fellow FWD.us panelists to dismiss a questioner's suggestion that Hour of Code might somehow be part of a larger self-serving tech industry interest."

0
Your rating: None
Original author: 
Jon Brodkin

Niall Kennedy

Todd Kuehnl has been a developer for nearly 20 years and says he's tried "pretty much every language under the sun."

But it was only recently that Kuehnl discovered Go, a programming language unveiled by Google almost four years ago. Go is still a new kid on the block, but for Kuehnl, the conversion was quick. Now he says "Go is definitely by far my favorite programming language to work in." Kuehnl admitted he is "kind of a fanboy."

I'm no expert in programming, but I talked to Kuehnl because I was curious what might draw experienced coders to switch from proven languages to a brand new one (albeit one co-invented by the famous Ken Thompson, creator of Unix and the B programming language). Google itself runs some of its back-end systems on Go, no surprise for a company that designs its own servers and much of the software (right down to the operating systems) that its employees use. But why would non-Google engineers go with Go?

Read 17 remaining paragraphs | Comments

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

Yesterday, on a farm near Gloucester, England, thousands gathered for the annual Cooper's Hill Cheese-Rolling and Wake, continuing a tradition that dates back at least 200 years, despite recent warnings from police. In the event, groups of fearless racers risk life and limb chasing an 8 pound (3.5 kg) round of Double Gloucester Cheese down an extremely steep and uneven hill, with a 1:1 gradient in some sections. The last officially organized race was in 2009, since then, it has continued unofficially every year, despite the potential for serious injury. Earlier, local police warned cheese-maker Diana Smart, who has supplied cheese to the race for 25 years, that she may be construed as a race organizer, and therefore legally liable. The BBC reports that this year organizers replaced the cheese with a lightweight foam version, in order to make the race safer. The winner of the race takes home the cheese. [24 photos]

Contestants in the men's race chase a Double Gloucester Cheese down the steep gradient of Cooper's Hill during the annual tradition of cheese-rolling on May 27, 2013 in Brockworth, Gloucestershire, England. Although no longer a officially organized event since 2009, thousands of spectators still gathered to watch contestants from around the world tumbling down the 200m slope, which has a 1:1 gradient in parts, in a series of races that are said to date back hundreds of years, with the winner of each receiving a cheese. Injuries such as broken arms and legs are commonplace. (Matt Cardy/Getty Images)     

0
Your rating: None
Original author: 
Patrick Traylor

It’s hard to pin down where John Francis Peters might be at any given time. Upstate New York, China, Mexico… and that was just last year. “Travel has been a big part of my life since childhood and engrained in my experience as a photographer,” recalls Peters. “Part of my focus on photography as a [...]

0
Your rating: None
Original author: 
burn magazine

This SlideShowPro photo gallery requires the Flash Player plugin and a web browser with JavaScript enabled.

Hover over the image for navigation and full screen controls
ESSAY CONTAINS EXPLICIT CONTENT

Enri Canaj

Shadow In Greece

play this essay

 

The centre of Athens, as I first remember it, was full of life.

During the period before the Olympic Games, there was great development. New hotels appeared in order to host the visitors, shops, restaurants and cafes kept sprouting out, it was full of people everywhere. All this happened within a few years. It was as if the city put on new clothes. During the days of the Olympics, the city was clean and well-guarded. You would not see street- merchants, drug-addicts or immigrants, just tourists and people who came in order to have a good time. In my eyes, it looked like another place.

As time passed, the city started deteriorating and gradually recovered its previous character: the everyday life that we all knew, with the junkies, the street-merchants, the the immigrants and the prostitutes.

Time passes fast. The city is now fading. Some people abandon it due to the crisis. Many shops and hotels have shut down, the centre is now almost deserted. People fear they will get ripped-off, they hear that this happens all the time. They no longer feel like going out and wandering about like before. They even fear seeing all the poverty and destitution, they drug-users who will rip you off for their shot, the women prostituting themselves.

But for me, those people were always there. I found them all there when I first arrived as a 9-year old child. They were always there when I was growing up. They are somehow trapped in their lives, subsisting in terrible circumstances, in squalid houses with insufficient hygiene.

The immigrants live in small rooms that they rent, many of them together, without much hope. The women prostitute themselves even in the streets for 5€. You don’t want to run into them in the street. Yet, hanging around with them has been my daily routine. This way, it was easier to approach them. They are sensitive people with a lot of problems, with ruined families behind them. Sometimes they give the impression that no one has cared for them. As if they want someone to talk to, as if they want to get out of the misery they are in. For some of them I had the sense that they were almost looking for someone to open up to and take it all out. Like confessing. What made an impression on me was that they often opened up and talked as if they knew me. Sometimes they talked about difficult things, about what they were experiencing, as if they were talking about someone else. Almost as if they felt better this way.

I would only shoot when I sensed that they were more comfortable, after some time had passed. Sometimes, unexpected things happened, and made me change the plan I had in mind. Other times, things just happened spontaneously, and I was just following along. The images I have selected are stronger for me, because I know the story behind them.

I have been working on this project since 2011. My work is still in progress. When others looks at those pictures I want them to feel respect and dignity for the subjects. Like I do.

 

Bio:

Enri Canaj was born in Tirana, Albania, in 1980. He spent his early childhood there and moved with his family to Greece in 1991, immediately after the opening of the borders. He is based in Athens and covers stories in Greece and the Balkans.

He studied photography at the Leica Academy in Athens. In 2007 he took part in a British Council project on migration, attending a year-long workshop with Magnum photographer Nikos Economopoulos.

Since 2008, he has been a freelance photographer for major publications such as Time Magazine Lightbox, Newsweek, Le monde Diplomatique (German edition),TO VIMA, TA NEA, Tachydromos and VIMAGAZINO. A sample of his work has been exhibited at the Cultural Foundation of the National Bank of Greece in Athens and Salonica, at the Bilgi Santral in Istanbul, the European Parliament in Brussels and the Athens Photo Festival.

He has been working in the Balkans, mainly Kosovo and Albania, as well as Greece, focusing on migration and the recent crisis.

 

Related links:

Enri Canaj

 

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

Web maps have come a long way. Improved data, cleaner design, better performance, and more intuitive controls have made web maps a ubiquitous and critical component of many apps. They’ve also become one of the mobile space’s most successful transplants as more and more apps are powered by location-aware devices. The core web map UI paradigm itself—a continuous, pannable, zoomable surface—has even spread beyond mapping to interfaces everywhere.

Despite all this, we’ve barely begun to work web maps into our design practice. We create icon fonts, responsive grids, CSS frameworks, progressive enhancement strategies, and even new design processes. We tear down old solutions and build new ones, and even take an extra second to share battle stories in prose and in person. Yet nearly five years since Paul Smith’s article, “Take Control of Your Maps,” web maps are still a blind spot for most designers.

Have you ever taken apart a map? Worked with a map as a critical part of your design? Developed tricks, hacks, workarounds, or progressive enhancements for maps?

This article is a long overdue companion to Paul’s piece. Where he goes on a whirlwind survey of the web mapping stack at 10,000 feet, we’re going to walk through a single design process and implement a modern-day web map. By walking this path, I hope to begin making maps part of the collective conversation we have as designers.

Opinionated about open

Paul makes a strong case for why you might want to use open mapping tools instead of the established incumbent. I won’t retread his reasons here, but I would like to expand on his last: Open tools are the ones we hack best.

There is nothing mysterious about web maps. Take any spatial plane, split it up into discrete tiles, position them in the DOM, and add event handlers for panning and zooming. The basic formula can be applied to Portland, Mars, or Super Mario Land. It works for displaying large street maps, but nothing stops us from tinkering with it to explore galleries of art, create fictional game worlds, learn human anatomy, or simply navigate a web page. Open tools bare the guts of this mechanism to us, allowing us to see a wider range of possibilities.

 character navigation, Mars, and Super Mario Land.
The mechanics of web maps are not limited to street maps.

We should know the conditions under which map images are loaded and destroyed; we should argue whether map tiles are best positioned with CSS transforms or not; and we should care whether vector elements are drawn with SVG or Canvas. Open tools let us know and experiment with these working details of our maps. If you wouldn’t have it any other way with your HTML5, CSS, or JavaScript libraries, then you shouldn’t settle for less when it comes to maps.

In short, we’ll be working with a fully open mapping stack. MapBox, where I work, has pulled together several open source libraries into a single API that we publish under mapbox.js. Other open mapping libraries that are worth your time include Leaflet and D3.js.

Starting out

I’m a big fan of Sherlock Holmes. Between the recent Hollywood movies starring Robert Downey Jr. and the BBC’s contemporary series, I’m hooked. But as someone who has never been to London, I know I’m missing the richness of place and setting that Sir Arthur Conan Doyle meant to be read into his short stories.

A typical approach would be to embed a web map with pins of various locations alongside one of the Sherlock stories. With this approach the map becomes an appendix—a dispensable element that plays little part in Doyle’s storytelling. Instead, we’re going to expand the role of our map, integrating it fully into the narrative. It will set the stage, provide pace, and affect the mood of our story.

Comparing a map used as embedded media versus one used as a critical design element.

A tale of places

To establish a baseline for our tale, I restructured The Adventure of the Bruce-Partington Plans to be told around places. I picked eight key locations from the original text, pulled out the essential details of the mystery, and framed them out with HTML, CSS, and JavaScript.

Text only demo.
A Sherlock Holmes story in text only. View Demo 1.

  • The story is broken up into section elements for each key location. A small amount of JavaScript implements a scrolling flow that highlights a single section at a time.
  • Our page is not responsive yet, but it contains scaffolding to guard against bad choices that could thwart us. The main text column is fluid at 33.33% and pins to a min-width: 320px. If our content and design flow reasonably within these constraints, we’re in good shape.

Next, we’ll get started mapping. Initially we’ll work on our map separately from our story page to focus on learning key elements of a new technology.

Maps are data

The mapping equivalent of our abridged Sherlock story is a dataset of eight geographic points. GeoJSON, a format for describing geographic data in JSON, is the perfect starting point for capturing this data:

{
    "geometry": { "type": "Point", "coordinates": [-0.15591514, 51.51830379] },
    "properties": { "title": "Baker St." }
}, {
    "geometry": { "type": "Point", "coordinates": [-0.07571203, 51.51424049] },
    "properties": { "title": "Aldgate Station" }
}, {
    "geometry": { "type": "Point", "coordinates": [-0.08533793, 51.50438536] },
    "properties": { "title": "London Bridge Station" }
}, {
    "geometry": { "type": "Point", "coordinates": [0.05991101, 51.48752939] },
    "properties": { "title": "Woolwich Arsenal" }
}, {
    "geometry": { "type": "Point", "coordinates": [-0.18335806, 51.49439521] },
    "properties": { "title": "Gloucester Station" }
}, {
    "geometry": { "type": "Point", "coordinates": [-0.19684993, 51.5033856] },
    "properties": { "title": "Caulfield Gardens" }
}, {
    "geometry": { "type": "Point", "coordinates": [-0.10669358, 51.51433123] },
    "properties": { "title": "The Daily Telegraph" }
}, {
    "geometry": { "type": "Point", "coordinates": [-0.12416858, 51.50779757] },
    "properties": { "title": "Charing Cross Station" }
}

Each object in our JSON array has a geometry—data that describe where this object is in space—and properties—freeform data of our own choosing to describe what this object is. Now that we have this data, we can create a very basic map.

Basic web mapping demo.
The basics of web mapping. View Demo 2.

  • Note that the coordinates are a pair of latitude and longitude degrees. In the year 2013, it is still not possible to find a consistent order for these values across mapping APIs. Some use lat,lon to meet our expectations from grade-school geography. Others use lon,lat to match x,y coordinate order: horizontal, then vertical.
  • We’re using mapbox.js as our core open source mapping library. Each map is best understood as the key parameters passed into mapbox.map():
    1. A DOM element container
    2. One or more Photoshop-like layers that position tiles or markers
    3. Event handlers that bind user input to actions, like dragging to panning
  • Our map has two layers. Our tile layer is made up of 256x256 square images generated from a custom map on MapBox. Our spots layer is made up of pin markers generated from the GeoJSON data above.

This is a good start for our code, but nowhere near our initial goal of using a map to tell our Sherlock Holmes story.

Beyond location

According to our first map, the eight items in our GeoJSON dataset are just places, not settings in a story full of intrigue and mystery. From a visual standpoint, pins anonymize our places and express them as nothing more than locations.

To overcome this, we can use illustrations for each location—some showing settings, others showing key plot elements. Now our audience can see right away that there is more to each location than its position in space. As a canvas for these, I’ve created another map with a custom style that blends seamlessly with the images.

Web map with illustrations.
Illustrations and a custom style help our map become part of the storytelling. View Demo 3, and then read the diff.

  • The main change here is that we define a custom factory function for our markers layer. The job of the factory function is to take each GeoJSON object and convert it to a DOM element—an a, div, img, or whatever—that the layer will then position on the map.
  • Here we generate divs and switch from using a title attribute in our GeoJSON to an id. This provides us with useful CSS classes for displaying illustrations with our custom markers.

Bringing it all together

Now it’s time to combine our story with our map. By using the scroll events from before, we can coordinate sections of the story with places on the map, crafting a unified experience.

Web map coordinated to story text by a scroll handler.
As the user reads each section, the map pans to a new location. View Demo 4, then read the diff.

  • The bridge between the story and the map is a revamped setActive() function. Previously it only set an active class on a particular section based on scrolling position. Now it also finds the active marker, sets an active class, and eases the map to the marker’s location.
  • Map animation uses the easey library in the mapbox.js API, which implements animations and tweening between geographic locations. The API is dead simple—we pass it the lon,lat of the marker we want to animate to, and it handles the rest.
  • We disable all event handlers on our map by passing an empty array into mapbox.map(). Now the map can only be affected by the scrolling position. If users wanted to deviate from the storyline or explore London freeform, we could reintroduce event handlers—but in this case, less is more.

Displaying our fullscreen map together with text presents an interesting challenge: our map viewport should be offset to the right to account for our story on the left. The solution I’m using here is to expand our map viewport off canvas purely using CSS. You could use JavaScript, but as we’ll see later, a CSS-only approach gives us elegant ways to reapply and adjust this technique on mobile devices.

Using an off-canvas map width to offset the viewport center.

At this stage, our map and story complement each other nicely. Our map adds spatial context, visual intrigue, and an interesting temporal element as it eases between long and short distances.

Maps in responsive design

The tiled, continuous spatial plane represented by web maps is naturally well-suited to responsive design. Web maps handle different viewport sizes easily by showing a bit more or a bit less map. For our site, we adjust the layout of other elements slightly to fit smaller viewports.

Adding a responsive layout.
Tweaking layout with web maps. View Demo 5, then read the diff.

  • With less screen real estate, we hide non-active text sections and pin the active text to the top of the screen.
  • We use the bottom half of the screen for our map and use media queries to adjust the map’s center point to be three-fourths the height of the screen, using another version of our trick from Demo 4.

With a modest amount of planning and minimal adjustments, our Sherlock story is ready to be read on the go.

Solve your own case

If you’ve been following the code between these steps, you’ve probably noticed at least one or two things I haven’t covered, like the parameters of ease.optimal(), or how tooltips picked up on the title attribute of our GeoJSON data. The devil’s in the details, so post to this GitHub repository, where you will find the code and the design.

You should also check out:

  • The MapBox site, which includes an overview of tiling and basic web map concepts, and MapBox.js docs and code examples.
  • Leaflet, another powerful open source mapping library.
  • D3.js, a library for powering data-driven documents that has a broad range of applications, including mapping.

This example shows just one path to integrating web maps into your designs. Don’t stick to it. Break it apart. Make it your own. Do things that might be completely genius or utterly stupid. Even if they don’t work out, you’ll be taking ownership of maps as a designer—and owning something is the only way we’ll improve on it.

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

I often hear (and have said myself in the past) that good graphics don't make a good game. Recently, I have used games such as Proteus and Minecraft as my examples. “ Look”, I say, “they look like throwbacks to the 8bit era and yet they are amazing games”

0
Your rating: None