Thursday, March 9, 2017

VeilHymn

An interactive video for VeilHymn, the one-time collaborative effort from Dev Hynes & Bryndon Cook with exclusive behind the scenes content brought to you by MailChimp.
by via Awwwards - Sites of the day

Wednesday, March 8, 2017

10 Best Practices for Designing Call-to-Action’s that Covert

Lead generation can be a nightmare sometimes. In an ideal scenario, a potential customer comes to your website, learns all about you, converts, becomes a customer, and you get to have an amazing customer relationship with him. But let’s be truthful here - a lot of times, customers come to your...

[ This is a content summary only. Visit our website http://ift.tt/1b4YgHQ for full links, other content, and more! ]

by Guest Author via Digital Information World

How Writing Our Book Taught Us About Killer Prototyping

Two years ago at UX Bristol, we (fffunction, a design agency in the South West of the UK) ran a workshop on creating interactive prototypes. It was a bit of a turning point for us in terms of our approach to prototypes; we realised that there was a wider interest in prototype creation than we’d thought existed up until that point. We saw that this interest came from designers of all kinds, many of whom don’t have the technical skills to create prototypes using HTML and CSS.

Continue reading %How Writing Our Book Taught Us About Killer Prototyping%


by Dan Goodwin via SitePoint

Java’s If Statement in Five Minutes

Conditional statements are fundamental for imperative programming languages, including Java. They're used to instruct a program to act differently based on whether something is true or false. Java's if statement is the most basic conditional statement - it evaluates a boolean expression and executes code based on its outcome.

To follow along, you need to have a basic understanding of equality, relational, and conditional operators and how to form boolean expressions with them. You should be good to go if you get why 1 > 0 evaluates to true and num == 5 evaluates to false when num equals anything other than 5.

The if Statement

The if statement is the most fundamental control flow statement. Once you understand it, the others will come easily. Essentially, an if statement tells a program to execute the following block of code only if the accompanying condition is true.

Here you can see the anatomy of an if statement:

int num = 5;

if (num == 5) {
    System.out.println("This message gets printed because num is 5.");
}

A variable num is declared and set to 5. What comes after that is the if statement.

It starts with the keyword if followed by a pair of parenthesis. Between the parenthesis you need to provide a condition. A condition is a boolean expression - something that evaluates to either true or false. It can be a variable of type boolean, equality, relational, or conditional expressions (like num == 5), or even a method call that returns a boolean. Boolean object wrappers are also valid.

After the parenthesis you can see a pair of curly braces defining a block of code, often called the if block or if branch. That code is only executed if the condition evaluated to true.

It is common practice to indent your if block as it provides a visual hint for readers. For code blocks that contain only a single line of code you can omit the curly braces - whether you should is a different discussion.

The if-else Statement

Continue reading %Java’s If Statement in Five Minutes%


by Indrek Ots via SitePoint

Building Gorgeous 3D Maps with eegeo.js and Leaflet

eegeo.js is an open source 3D maps API built on top of Leaflet, the popular mapping library.

There are many mapping libraries that allow you to embed or build simple, 2D maps. Notably Google Maps, Bing Maps, HERE, Mapbox and OpenStreetMap. Popular mapping abstraction libraries such as OpenLayers and Leaflet also allow you to change the map 'base layer' without having to change your application logic.

With the usage of the Google Earth API falling to NPAPI security deprecation, the choice of 3D map APIs is limited. Alternatives do exist, such as the popular Cesium library. eegeo.js is another, providing a dynamic, truly seamless 3D map of the world, from space to a desk in an indoor map. Right in the browser using WebGL.

eeGeo 3D Maps Space to Desk

Getting Started

In this article, I'll show you how simple it is to embed a gorgeous 3D map of London and add some basic functionality using the Transport for London API.

Spoiler: 3D maps are as simple as using 2D maps.

Disclaimer: I am SVP Software Development at eeGeo, and I have oversight of the development of eegeo.js

There are plenty of tutorials on how to use Leaflet. eeGeo.js was consciously built on top of Leaflet so that developers already familiar with Leaflet can get up and running immediately. I thoroughly recommend the Leaflet examples and documentation.

This article will cover basic HTML, CSS, JavaScript and simple mapping concepts.

What You'll Need

This article will cover a few key components:

Displaying a 2D Map of London

First, let's create a 2D map of London, using Leafet and Open Street Map. Leaflet is super simple. All you need is a tiny bit of HTML to setup the page, a <div> to contain your map, and a few lines of JavaScript to create and set the initial position.

Create the HTML

Let's create a HTML file with the following markup:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Building Gorgeous 3D maps with eegeo.js and Leaflet</title>
  </head>
  <body>
    <div id="map" style="width: 600px; height: 400px;"></div>
  </body>
</html>

Include Leaflet

To include Leaflet it's as simple as adding the Leaflet JavaScript library and CSS. Include these within the <head> tag:

<link rel="stylesheet" href="http://ift.tt/2kub1LW" />
<script src="http://ift.tt/2kXH4AK"></script> 

Add the Leaflet JavaScript

The following lines of JavaScript initialize Leaflet, and use OpenStreetMap as a tile layer. You can add this as an external JavaScript file, or for simplicity in a <script></script> block below <div id="map"/>:

var map = L.map('map', {
  center: [51.517327, -0.120005],
  zoom: 15
});
L.tileLayer('http://ift.tt/1lSj3Er', {
  attribution: '&copy; <a href="http://ift.tt/VGR6Z6">OpenStreetMap</a> contributors'
}).addTo(map);

The code initializes the map centered on Holborn Tube Station at the WGS84, decimal degrees latitude, longitude of 51.517327, -0.120005. You can obtain these coordinates by right clicking and selecting 'What's here' on digital maps like maps.eegeo.com or Google Maps. You'll see later that most geospatial APIs return positions in standard WGS84 decimal degrees latitude and longitude, including the TfL API.

Fire up the 2D Map

Upload your HTML somewhere, or view it locally. I recommend not loading directly from the file system but using a local loopback web server. Save your HTML as index.html, and in the same folder, run: python -m SimpleHTTPServer 8000 You can then visit http://localhost:8000/ in your browser.

You'll see the following map, centered on Holborn Tube Station in London:

2D map of London centered on Holborn Tube Station

Displaying a 3D Map of London

As eeGeo.js is built on top of Leaflet there are very few changes to make to turn the 2D map of London into a gorgeous 3D map.

Change the JavaScript we added above which read var map = L.map ... to the following. A free eeGeo API key is required. You should also delete the JavaScript that calls L.tileLayer as it is no longer required.

The JavaScript should now read:

var map = L.eeGeo.map('map', '<your_api_key>', {
  center: [51.517327, -0.120005],
  zoom: 15
});

Change the <script> include we added to <head> to include eegeo.js rather than Leaflet. The eegeo.js file already contains Leaflet, so don't include both:

<script src="http://ift.tt/2m06i1v"></script>

And that's it! By changing just a couple of lines, you'll now see the exact same view of Holborn Tube Station but in gorgeous 3D:

eeGeo.js 3D Map of London centered around Holborn Tube Station

Changing zoom, tilt & orientation

As eeGeo.js is completely 3D, it's possible to rotate and tilt the map. The Leaflet setView function is supported, with optional tilt and heading arguments to support the 3D behavior of the map.

Add the following JavaScript and after 10 seconds the map will seamlessly animate in 3D from Holborn Tube Station to the Gherkin in London:

Continue reading %Building Gorgeous 3D Maps with eegeo.js and Leaflet%


by TIm Jenks via SitePoint

Android Things: Peripheral Input/Output

Introducing Portfolio WordPress Theme – and the Design Decisions Behind it

As you may have noticed, SitePoint now offers our own range of premium WordPress Themes. Our newest and – we think – most attractive theme is called ‘Portfolio’. We worked closely with a very talented designer – Shahadat from Droitlabs – to try to create the ideal platform for designers, writers, artists, and even front-end coders to showcase their talents. The brief was ‘crisp, open and minimalist’.

I thought it might be useful to break down the key design decisions that drove it.

1). Choosing the Typography: Raleway and Open Sans Regular

Typography choices are always loaded. Arguably no other design decision will be so totally pervasive to the feel of a design, yet also strangely invisible to the user. The may read thousands of words a day on Facebook, yet ask the average user to describe the font used, and they’ll most likely blink and shrug.

[caption id="attachment_149880" align="aligncenter" width="1200"]SitePoint WordPress Portfolio Theme screenshot SitePoint WordPress Portfolio Theme screenshot[/caption]

The overlapping 'w' in Raleway

For the headings in Portfolio, we picked perhaps my favorite sans-serif font available in the Google catalog – Raleway, Matt McInerney’s profoundly elegant creation.

Why do I like it so much? Check out that ‘W’!

Raleway has the look of flexed and machined steel – the kind of lettering you see on 1930-40’s era post offices, schools, and public buildings. It’s always razor sharp but not aggressive.

Open Sans Regular was a nice match for the body type. It’s more versatile than Raleway but shares a lot of neo-grotesque qualities – minus some of the distinctive mid-century flourishes (like the ‘w’). They share space on the same page together easily.

2). Selecting Imagery

Our typography pointed the direction towards the iconography we selected. Both Raleway and Open Sans Regular use a light, single weight line – almost like they’re crafted from fencing wire.

[caption id="attachment_150251" align="alignright" width="350"]Handmade linear icons - Madebyjoel.com Handmade wireframe imagery - Madebyjoel.com[/caption]

I’ve seen real-world fencing wire sculptures – this raw piece from MadeByJoel.com is brilliant – so we wanted to continue the ‘wirework look’ for the icons, assembling a combination of linear icons – about 50 all up. As no single icon set had what we wanted, we curated a new icon library from a number of sources including:

Portfolio icons

They’re all in crisp SVG, so they work fine at almost any scale from icon to feature illustration.

Showing off your work to its best effect is always going to be super important in a portfolio site. We focused the gallery on showcasing collections of visuals in a square-tiled gallery layout before opening each unit into a magazine-like modal. You can filter your images by category or browse them all as an open collection.

Gallery Animation

4). Particle Geometry Effects

While we wanted the hero area to remain open and uncluttered, we thought a subtle touch of the unexpected wouldn’t be out of place in such an important panel. The particle effect we implemented here fits the bill nicely. It’s calming yet charming.

Canvas particle effects

The floating nodes and linking vectors hint at the theme of idea generation and connections – a relevant skill for designers, writers, and coders. It adds texture and depth to design but doesn’t demand your attention over more important page elements – in this case, you. And that’s a good thing.

Continue reading %Introducing Portfolio WordPress Theme – and the Design Decisions Behind it%


by Alex Walker via SitePoint