﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Conduce Group Blog</title><link>www.conduce.net</link><description>The latest blog posts from Conduce Group</description><copyright>(c) 2012, Conduce Group. All rights reserved.</copyright><ttl>5</ttl><item><author>Paul Saunders</author><title>OMG Another Slideshare Front Page</title><description>This afternoon I made a promotional presentation for our new iPad app YBoard. Here it is:&lt;br /&gt;
&lt;div id="__ss_11402142" style="width: 595px;"&gt; &lt;strong style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a target="_blank" title="OMG not another sticky notes app" href="http://www.slideshare.net/thesaundi/omg-not-another-sticky-notes-app"&gt;OMG not another sticky notes app&lt;/a&gt;&lt;/strong&gt; &lt;iframe width="595" scrolling="no" height="497" frameborder="0" marginheight="0" marginwidth="0" src="http://www.slideshare.net/slideshow/embed_code/11402142"&gt;&lt;/iframe&gt;
&lt;div style="padding: 5px 0pt 12px;"&gt; View more &lt;a target="_blank" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a target="_blank" href="http://www.slideshare.net/thesaundi"&gt;Paul Saunders&lt;/a&gt; &lt;/div&gt;
&lt;/div&gt;
It pretty quickly got 300+ views and attracted the attention of the lovely Slideshare Community Manager Kit Seeborg who dropped me a line to say she was going to feature it on the Slideshare front page. Yay!&lt;br /&gt;
&lt;br /&gt;
&lt;img alt="" src="/uploads/CMS/Images/Blog/Slideshare_Frontpage.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
Fingers crossed it raises the profile of YBoard.&lt;br /&gt;
&lt;br /&gt;
Related Posts:&lt;br /&gt;
&lt;a title="[VIDEO] YBoard Demo" href="http://www.conduce.net/Blog.aspx?f=Video-YBoard-Demo"&gt;[VIDEO] YBoard Demo&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=The-Thinking-Behind-YBoard" title="The Thinking Behind YBoard"&gt;The Thinking Behind YBoard&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Delete-Friction" title="Delete Friction"&gt;Delete Friction&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a target="_blank" href="http://uk.linkedin.com/in/paulrsaunders" title="Paul Saunders LinkedIn profile"&gt;Paul Saunders&lt;/a&gt;</description><link>http://www.conduce.net/Blog.aspx?f=OMG-Another-Slideshare-Front-Page</link><pubDate>Fri, 03 Feb 2012 17:21:28 GMT</pubDate></item><item><author>Paul Saunders</author><title>iPad Attrition Rates</title><description>One question that comes up frequently when I am &lt;a title="Conduce Consulting Presentations" href="http://http://www.conduce.net/Consulting/SubPage.aspx?f=Presentations"&gt;presenting&lt;/a&gt; on the subject of iPads in Aviation is how much to budget for lost, stolen or damaged iPads. I'm probably the worst person to consult on this subject having &lt;a title="The World's most awesome gesture of goodwill" href="http://www.conduce.net/Blog.aspx?f=The-worlds-most-awesome-gesture-of-goodwill"&gt;dropped and smashed my own iPad&lt;/a&gt; within days of purchasing it. Of course having a protective case will help to reduce damage, but this won't prevent loss or theft. The best figure I have previously been able to give people who asked the question about attrition rates is 20%.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt="" src="/uploads/CMS/Images/Blog/iPadAttrition.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
This number is based on a value budgeted by one of our airline clients. They had an replacement rate of 10% per annum for company mobile phones, so they simply doubled that for the larger, "thief magnet" iPad. However I was chatting to our client yesterday who had some surprising statistics to share with me. In their first four months since deploying 610 iPads to pilots they have replaced 2 devices having been dropped and damaged, 1 due to theft and 1 having being lost. Scaling that up for the first year that is less than a 2% attrition rate. However we did agree that once the iPad 3 is launched then we should expect a few more pilots to drop or lose their current iPad 2 devices.&lt;br /&gt;
&lt;br /&gt;
What rates of loss, damage and theft is your organisation experiencing or budgeting for? Let me know in the comments below. Please &lt;a title="Contact Conduce Consulting" href="http://www.conduce.net/Consulting/Contact.aspx"&gt;contact us&lt;/a&gt; to find out how we can help you build your business case and strategy for deploying iPads in your business.&lt;br /&gt;
&lt;br /&gt;
Related Posts:&lt;br /&gt;
&lt;a title="App Prototyping" href="http://www.conduce.net/Blog.aspx?f=App-Prototyping"&gt;App Prototyping&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=iPad-App-Spotted-in-the-Wild" title="iPad App Spotted in the Wild"&gt;iPad App Spotted in the Wild&lt;/a&gt;&lt;br /&gt;
&lt;a title="[VIDEO] YBoard Demo" href="../../Blog.aspx?f=Video-YBoard-Demo"&gt;[VIDEO] YBoard Demo&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a target="_blank" href="http://uk.linkedin.com/in/paulrsaunders" title="Paul Saunders LinkedIn profile"&gt;Paul Saunders&lt;/a&gt;</description><link>http://www.conduce.net/Blog.aspx?f=iPad-Attrition-Rates</link><pubDate>Fri, 03 Feb 2012 09:01:29 GMT</pubDate></item><item><author>Paul Saunders</author><title>App Prototyping</title><description>One thing that we have found with developing mobile and tablet apps for clients is that some of the more traditional ways of developing software are not really appropriate. You will commonly find with legacy enterprise software that hours and hours of project time is spent documenting requirements and writing specifications before a single line of code is developed. This normally isn't the case when it comes to developing for iPad or iPhone, because more often than not the client isn't 100% sure of what they want, mainly because they are not familiar with what is possible, what is practical and what might represent a good return on investment.&lt;br /&gt;
&lt;br /&gt;
That's why we like to prototype apps using wireframes. It doesn't take long to convert the clients' stream of thoughts into a set of diagrams of how the app might look and hang together. We like to use &lt;a href="http://www.balsamiq.com/" target="_blank" title="Balsamiq Mockups"&gt;Balsamiq Mockups&lt;/a&gt;. The good thing about Balsamiq is that it has a whimsical sketchy look and feel which we like because you can immediately see it is only a sketch. Some mockups applications make the wireframe look too real and can give the client the wrong idea about how far progressed you are with the project. With a Balsamiq wireframe it is obvious that you are only demonstrating a conceptual drawing. It is very quick and simple to sit down with the client and show them the wireframe and even make tweaks to the design during the discussion.&lt;br /&gt;
&lt;br /&gt;
Here's a wireframe I knocked up for our friend Michael Denis to help him discuss a proof of concept with his colleagues.&lt;br /&gt;
&lt;img alt="" src="/uploads/CMS/Images/Blog/AvBeep_Home.png" /&gt;&lt;br /&gt;
Once you have got your basic design agreed those wireframes can be easily converted into a prototype app so that the concept can be further investigated and tested before you get on with the coding. Here's the same wireframe converted to a protype app.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe height="338" frameborder="0" width="601" src="http://player.vimeo.com/video/36073645?byline=0&amp;amp;portrait=0"&gt;&lt;/iframe&gt;
&lt;br /&gt;
&lt;br /&gt;
We use &lt;a href="http://www.realizerapp.com/" target="_blank" title="Realizer app"&gt;Realizer&lt;/a&gt; to make our prototypes. If you do a thorough job of the prototyping this helps a client to approve a business case and allows you to thrash out features and functions without having to spend an age on writing a spec that nobody likes to read anyway.&lt;br /&gt;
&lt;br /&gt;
Please &lt;a href="http://www.conduce.net/Software/Contact.aspx" title="Contact Conduce Software"&gt;contact us&lt;/a&gt; if you would like us to discuss what Conduce Software can do to help with your &lt;a href="http://www.conduce.net/Software/SubPage.aspx?f=iOS-Development" title="iOS development by Conduce Software"&gt;iPad and iPhone development&lt;/a&gt; requirements.&lt;br /&gt;
&lt;br /&gt;
Related Posts:&lt;br /&gt;
&lt;a href="http://www.conduce.net/Blog.aspx?f=iPad-App-Spotted-in-the-Wild" title="iPad App Spotted in the Wild"&gt;iPad App Spotted in the Wild&lt;/a&gt;&lt;br /&gt;
&lt;a title="[VIDEO] YBoard Demo" href="../../Blog.aspx?f=Video-YBoard-Demo"&gt;[VIDEO] YBoard Demo&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=The-Thinking-Behind-YBoard" title="The Thinking Behind YBoard"&gt;The Thinking Behind YBoard&lt;/a&gt;&lt;br /&gt;
&lt;a title="iPad App Help Design Pattern" href="../../Blog.aspx?f=iPad-App-Help-Design-Pattern"&gt;&lt;/a&gt;&lt;br /&gt;
Author: &lt;a target="_blank" href="http://uk.linkedin.com/in/paulrsaunders" title="Paul Saunders LinkedIn profile"&gt;Paul Saunders&lt;/a&gt;</description><link>http://www.conduce.net/Blog.aspx?f=App-Prototyping</link><pubDate>Thu, 02 Feb 2012 16:40:22 GMT</pubDate></item><item><author>Paul Saunders</author><title>Codecademy Walkthrough - Blackjack Challenge #2</title><description>&lt;img alt="" src="/uploads/CMS/Images/Blog/Codecademy/codecademywalkthough_blackjack.png" /&gt;&lt;br /&gt;
As promised here's the walkthrough of the second part of this week's Blackjack challenge on &lt;a href="http://www.codecademy.com" target="_blank" title="Codecademy"&gt;Codecademy&lt;/a&gt;. Let's get right on with the coding.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 1. Deal me in&lt;/strong&gt;&lt;br /&gt;
As per usual with the CodeYear courses we start off small and build up. First we need to create a script which generates a random number between 1 and 52 (representing the deck of cards) and return the value in the console. We're using the Math.random command to generate the number and the Math.floor command to round it down to the nearest whole number.&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;&lt;br /&gt;
var card = Math.floor(Math.random()*52 + 1);&lt;br /&gt;
console.log(card);&lt;br /&gt;
&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;br /&gt;
Exercise 2. Functionify Dealing&lt;/strong&gt;&lt;br /&gt;
Now we wrap the action of dealing a card in a function and return the value twice in the console to represent two cards being dealt.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;// Define a function called deal&lt;br /&gt;
// It should return a random number between 1 and 52&lt;br /&gt;
var deal = function() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var card = Math.floor(Math.random()*52 + 1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return card;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Declare two variables &lt;br /&gt;
// For both variables, assign values gotten by calling the function&lt;br /&gt;
var card1 = deal();&lt;br /&gt;
var card2 = deal();&lt;br /&gt;
console.log(card1);&lt;br /&gt;
console.log(card2);&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 3. What's the Score?&lt;/strong&gt;&lt;br /&gt;
This exercise creates a new function to sum the values of the cards.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;// Our deal function will return one random card&lt;br /&gt;
var deal = function() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var card = Math.floor(Math.random()*52 + 1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return card;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Declare our two variables card1 and card2&lt;br /&gt;
var card1 = deal();&lt;br /&gt;
var card2 = deal();&lt;br /&gt;
&lt;br /&gt;
// Define a function called score, which will assign points by&lt;br /&gt;
// adding up the cards: &lt;br /&gt;
var score = function() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return card1+card2;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
console.log("You have cards " + card1 + " and " + card2 +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " for a score of " + score());&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 4. More Score&lt;/strong&gt;&lt;br /&gt;
Now we have a small code iteration to include a new function to get the value of the card being dealt. The function is a simple one at the minute though which just returns the card value. I guess this is an essential lesson in scalability of code.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;// Our deal function will return a random card&lt;br /&gt;
function deal() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; card = Math.floor(Math.random()*52+1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return card;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Deal out our first hand&lt;br /&gt;
var card1 = deal();&lt;br /&gt;
var card2 = deal();&lt;br /&gt;
&lt;br /&gt;
// Make a getValue function here, which should convert a card to&lt;br /&gt;
// the value that card is worth&lt;br /&gt;
var getValue = function(card) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return card;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Our score function converts our cards to a score&lt;br /&gt;
var score = function () {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return getValue(card1) + getValue(card2);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
console.log("You have cards " + card1 + " and " + card2 +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " for a score of " + score());&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 5. Improving getValue&lt;/strong&gt;&lt;br /&gt;
Using the modulo we add some additional code to the getValue function to get the card value by dividing the card by 13 and returning the remainder.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;// Our deal function will return a random card&lt;br /&gt;
var deal = function() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var card = Math.floor(Math.random()*52 + 1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return card;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Deal out our first hand by declaring variables card1 and card2&lt;br /&gt;
var card1 = deal();&lt;br /&gt;
var card2 = deal();&lt;br /&gt;
&lt;br /&gt;
// Define a function getValue that returns the remainder when card&lt;br /&gt;
// is divided by 13&lt;br /&gt;
var getValue = function(card) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return card % 13;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Return the score of our hand&lt;br /&gt;
var score = function() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return getValue(card1) + getValue(card2);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
console.log("You have cards " + card1 + " and " + card2 +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " for a score of " + score());&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 6. Don't forget the Face Cards&lt;/strong&gt;&lt;br /&gt;
The previous exercise gave us a card number from 1 to 13, but in blackjack the face cards are worth only 10. This exercise introduces an if statement to do the conversion. Here we have used the or command using the double pipes ||.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;// Our deal function will return a random card&lt;br /&gt;
var deal = function () {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; card = Math.floor(Math.random()*52+1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return card;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Deal out our first hand&lt;br /&gt;
var card1 = deal();&lt;br /&gt;
var card2 = deal();&lt;br /&gt;
&lt;br /&gt;
// This function takes a card as a parameter and returns the value&lt;br /&gt;
// of that card&lt;br /&gt;
var getValue = function(card) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // if its a face card, number should be set to 10&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(card%13===0 || card%13===11 || card%13===12) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 10;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Otherwise number should be set to card modulo 13&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return card % 13;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Here make a function called score, which will assign points based&lt;br /&gt;
// on the cards.&amp;nbsp; It should take the remainder&lt;br /&gt;
var score = function() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return getValue(card1) + getValue(card2);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
console.log("You have cards " + card1 + " and " + card2 +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " for a score of " + score());&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 7. You're Such an Ace&lt;/strong&gt;&lt;br /&gt;
The final exercise introduces an additional if statement to convert the ace card to the value 11. Here's my code.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;// Our deal function will return a random card&lt;br /&gt;
var deal = function() {&lt;br /&gt;
&amp;nbsp; card = Math.floor(Math.random()*52+1);&lt;br /&gt;
&amp;nbsp; return card;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Deal out our first hand&lt;br /&gt;
var card1 = deal();&lt;br /&gt;
var card2 = deal();&lt;br /&gt;
&lt;br /&gt;
// This function takes a card as a parameter and returns the value&lt;br /&gt;
// of that card&lt;br /&gt;
var getValue = function(card) {&lt;br /&gt;
&amp;nbsp; // if its a face card, number should be set to 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (card%13===0 || card%13===11 || card%13===12) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 10;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; // What if it's an ace?&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (card%13===1) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 11;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; // Otherwise, we just want its number value&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return card%13;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
};&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
// Score the hand&lt;br /&gt;
function score() {&lt;br /&gt;
&amp;nbsp; return getValue(card1) + getValue(card2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
console.log("You have cards " + card1 + " and " + card2 +&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " for a score of " + score(card1, card2));&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
And that's it for this week's Blackjack challenge. Roll on Monday for another round of Codecademy courses and lessons. Check out my previous Codecademy Walkthroughs below.&lt;br /&gt;
&lt;br /&gt;
Previous Walkthroughs:&lt;br /&gt;
&lt;a href="http://www.conduce.net/Blog.aspx?f=Codecademy-Walkthrough-Blackjack-Challenge-Part-1" title="Codecademy Walkthrough - Blackjack Challenge Part 1"&gt;Codecademy Walkthrough - Blackjack Challenge Part 1&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Codecademy-Walkthrough-Starting-a-Startup" title="Codecademy Walkthrough - Starting a Startup"&gt;Codecademy Walkthrough - Starting a Startup&lt;/a&gt;&lt;br /&gt;
&lt;a title="Codecademy Walkthrough - Hello New York" href="../../Blog.aspx?f=Codecademy-Walkthrough-Hello-New-York"&gt;Codecademy Walkthrough - Hello New York&lt;/a&gt;&lt;br /&gt;
&lt;a title="Codecademy Walkthrough - FizzBuzz Answers" href="../../Blog.aspx?f=Code-Academy-Walkthrough-FizzBuzz-Answers"&gt;Codecademy Walkthrough - FizzBuzz Answers&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a target="_blank" href="http://uk.linkedin.com/in/paulrsaunders" title="Paul Saunders LinkedIn profile"&gt;Paul Saunders&lt;/a&gt;</description><link>http://www.conduce.net/Blog.aspx?f=Codecademy-Walkthrough-Blackjack-Challenge-Part-2</link><pubDate>Wed, 01 Feb 2012 09:20:48 GMT</pubDate></item><item><author>Paul Saunders</author><title>Codecademy Walkthrough - Blackjack Challenge #1</title><description>&lt;img alt="" src="/uploads/CMS/Images/Blog/Codecademy/codecademywalkthough_blackjack.png" /&gt;&lt;br /&gt;
Its the start of a new week and a new challenge on &lt;a title="Codecademy" target="_blank" href="http://www.codecademy.com"&gt;Codecademy&lt;/a&gt;... and quite literally a new challenge. I logged on to Codecademy this morning to find a new Courses page layout with lessons and projects grouped into sections and something called the Blackjack Challenge. Today's Codecademy Walkthrough steps us through the first part of the Blackjack challenge: "Deal 'em Up"&lt;br /&gt;
&lt;br /&gt;
Apart from a few layout changes and improvements, the first thing to notice with the exercise screen is that the script and console section have had a bit of a revamp. There is now some client side validation of code which is helpful to prevent mistakes and to give you better feedback if something isn't quite right with your code. This week I don't think I made a single syntax error due to this improved feedback mechanism. Nice work guys! OK, on with the lesson.&lt;br /&gt;
&lt;br /&gt;
Blackjack challenge: Deal 'em Up &amp;gt;&amp;gt; Section 1 Before we get started....&lt;br /&gt;
&lt;strong&gt;Exercise 1. Introduction&lt;/strong&gt;&lt;br /&gt;
Instead of the usual "hit run when you're ready" we have a to do a bit of thinking with this introductory exercise. Now we have to actually return the text "I'm ready to build a blackjack game" in the console.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;console.log("I'm ready to build a blackjack game!");&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 2. Dealing&lt;/strong&gt;&lt;br /&gt;
Now we have to refer back to the previous Dice Game project to lift the code used to generate random numbers. There's a tweak needed though as instead of returning a random number from 1 to 6 we need to return a number from 1 to 10.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;var randomRating = Math.floor(Math.random()*10 + 1);&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 3. More Dealing&lt;/strong&gt;&lt;br /&gt;
Next we need to build a function that takes two random scores from 1 to 10 and sums them together. There are no parameters in the function, but when returning the function don't forget to include the empty brackets.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;var twoRandomScores = function () {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var score1 = Math.floor(Math.random()*10 + 1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var score2 = Math.floor(Math.random()*10 + 1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return score1 + score2;&lt;br /&gt;
};&lt;br /&gt;
twoRandomScores();&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 4. Give me my cards!&lt;/strong&gt;&lt;br /&gt;
This exercise introduces concatenating a numeric value with a string to provide a sensible message by reintroducing the "string + variable concept.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;var randomScore = Math.floor(Math.random()*52 + 1);&lt;br /&gt;
console.log("I got the score "+randomScore);&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 5. Scoring System&lt;/strong&gt;&lt;br /&gt;
The modulo operator is reintroduced to provide the mechanism to convert a random number from 1 to 52 into a face value of a card by dividing by 13 and returning the remainder.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;var deal = Math.floor(Math.random()*52 + 1);&lt;br /&gt;
var final = deal % 13;&lt;br /&gt;
console.log(final);&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 6. Scoring System Continued&lt;/strong&gt;&lt;br /&gt;
The modulo operator is continued in this exercise to return whether a random number is odd or even. Remember to use the triple equal signs here as we are comparing the modulo result with zero. The exercise hint talks about using the OR operator, but I didn't use it or need it for this exercise. Here's my code.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;var outcome;&lt;br /&gt;
var randomScore = Math.floor(Math.random()*40 + 1);&lt;br /&gt;
if (randomScore % 2 === 0){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; outcome = "even";&lt;br /&gt;
} else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; outcome = "odd";&lt;br /&gt;
}&lt;br /&gt;
console.log(outcome);&lt;br /&gt;
&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;Exercise 7. We think you're ready&lt;/strong&gt;&lt;br /&gt;
Following on from the first exercise there is a brief review and what would have previously required us to hit the run button now asks us to confirm we are ready in code using the confirm command.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;confirm("Are you ready?");&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
And that's the first part of the Blackjack challenge done. The lessons, projects, and challenges are coming thick and fast now, and if like me you are noticing an improvement in your coding ability and combined with the enhancements to the&amp;nbsp; Codecademy website you will be rattling through the exercises at a good pace. I will attempt to get the next part of the challenge posted as a walkthrough later this week. In the meantime why don't you take a look at my previous walkthroughs and see if you can make a more elegant version of my code.&lt;br /&gt;
Have fun!&lt;br /&gt;
&lt;br /&gt;
Previous Walkthroughs:&lt;br /&gt;
&lt;a title="Codecademy Walkthrough - Starting a Startup" href="http://www.conduce.net/Blog.aspx?f=Codecademy-Walkthrough-Starting-a-Startup"&gt;Codecademy Walkthrough - Starting a Startup&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Codecademy-Walkthrough-Hello-New-York" title="Codecademy Walkthrough - Hello New York"&gt;Codecademy Walkthrough - Hello New York&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Code-Academy-Walkthrough-FizzBuzz-Answers" title="Codecademy Walkthrough - FizzBuzz Answers"&gt;Codecademy Walkthrough - FizzBuzz Answers&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a title="Paul Saunders LinkedIn profile" href="http://uk.linkedin.com/in/paulrsaunders" target="_blank"&gt;Paul Saunders&lt;/a&gt;</description><link>http://www.conduce.net/Blog.aspx?f=Codecademy-Walkthrough-Blackjack-Challenge-Part-1</link><pubDate>Mon, 30 Jan 2012 09:42:47 GMT</pubDate></item><item><author>Paul Saunders</author><title>iPad App Spotted in the Wild</title><description>Recently we were asked to develop a bespoke data acquisition iPad app for UK based airline Thomas Cook. They wanted an iPad app to replace some of their paper forms they used on board the aircraft to capture safety occurrences. The first version of the app was completed just before Christmas and is now being deployed to the pilot&amp;rsquo;s devices. During a visit to the customer&amp;rsquo;s site for another project we spotted evidence of our app in use. This poster is being put up in crew rooms:&lt;br /&gt;
&lt;img alt="" src="/uploads/CMS/Images/Blog/TCX_Poster.jpg" /&gt;&lt;br /&gt;
It is always great to see a client driving adoption of enterprise software!&lt;br /&gt;
Please &lt;a href="http://www.conduce.net/Software/Contact.aspx" title="Contact Conduce Software"&gt;contact us&lt;/a&gt; if you would like to find out more about how Conduce Software can help your business with &lt;a href="http://www.conduce.net/Software/SubPage.aspx?f=iOS-Development" title="Bespoke iOS Development"&gt;bespoke app development&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Related Posts:&lt;br /&gt;
&lt;a href="http://www.conduce.net/Blog.aspx?f=Video-YBoard-Demo" title="[VIDEO] YBoard Demo"&gt;[VIDEO] YBoard Demo&lt;/a&gt;&lt;br /&gt;
&lt;a title="The Thinking Behind YBoard" href="../../Blog.aspx?f=The-Thinking-Behind-YBoard"&gt;The Thinking Behind YBoard&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=iPad-App-Help-Design-Pattern" title="iPad App Help Design Pattern"&gt;iPad App Help Design Pattern&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a title="Paul Saunders LinkedIn profile" href="http://uk.linkedin.com/in/paulrsaunders" target="_blank"&gt;Paul Saunders&lt;/a&gt;&lt;br /&gt;</description><link>http://www.conduce.net/Blog.aspx?f=iPad-App-Spotted-in-the-Wild</link><pubDate>Fri, 27 Jan 2012 09:19:34 GMT</pubDate></item><item><author>Paul Saunders</author><title>[VIDEO] YBoard Demo</title><description>I made a demonstration video for our new app &lt;a title="YBoard for iPad on iTunes" target="_blank" href="http://itunes.apple.com/gb/app/yboard/id493023226?mt=8"&gt;YBoard for iPad&lt;/a&gt;. Sorry for the appalling production quality but it was filmed on my iPhone in our office and cobbled together using iMovie on the same iPad featured in the video. Its my first ever attempt at video editing and the music is a little cheesy I'm afraid.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe height="339" frameborder="0" width="601" src="http://player.vimeo.com/video/35695146?title=0&amp;amp;byline=0&amp;amp;portrait=0"&gt;&lt;/iframe&gt;
&lt;br /&gt;
&lt;br /&gt;
Hope you like it. Please let us know what you think of a YBoard if you are already using it. We've had some positive feedback so far and Marcin is busy working on a new version which features multiple boards. We're calling the concept "rooms" and we're very pleased with the design. The only problem is that there is an awful lot of re-factoring required. Should be good for release in a few weeks time with a bit of luck.&lt;br /&gt;
&lt;br /&gt;
Related Posts:&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=The-Thinking-Behind-YBoard" title="The Thinking Behind YBoard"&gt;The Thinking Behind YBoard&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Delete-Friction" title="Delete Friction"&gt;Delete Friction&lt;/a&gt;&lt;br /&gt;
&lt;a title="iPad App Help Design Pattern" href="../../Blog.aspx?f=iPad-App-Help-Design-Pattern"&gt;iPad App Help Design Pattern&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a target="_blank" href="http://uk.linkedin.com/in/paulrsaunders" title="Paul Saunders LinkedIn profile"&gt;Paul Saunders&lt;/a&gt;</description><link>http://www.conduce.net/Blog.aspx?f=Video-YBoard-Demo</link><pubDate>Thu, 26 Jan 2012 17:01:36 GMT</pubDate></item><item><author>Paul Saunders</author><title>Simplicity Sells: Apple vs HP</title><description>This week saw the &lt;a href="http://techcrunch.com/2012/01/25/apple-pwned/" target="_blank" title="The Day Apple Left The Tech World's Collective Mouths Agape | TechCrunch"&gt;staggering news&lt;/a&gt; regarding Apple's financial performance for Q1 of their financial year whilst at the same time I was implementing Highrise and Backpack by 37Signals as internal management and organisation tools. This got me thinking (&lt;a href="http://www.conduce.net/Blog.aspx?f=Miami-Presentation-Video" title="Why is MRO Software so complicated?"&gt;again&lt;/a&gt;) about simplicity.&lt;br /&gt;
&lt;br /&gt;
Although I accept that simple software isn't necessarily appropriate for everybody and for all use cases, it is certainly true that there is a requirement to consumerise business software and applications. The tools I have been implementing by 37Signals are definitely business tools - they have no relevance for use in the home, but they are highly consumerised, simple to use, easy to adopt and are instantly useful with very little setup time required. Apple have been as successful as they have thanks mainly to focussing on the needs of the consumer. This success has driven the trend for consumerisation of the business world.&lt;br /&gt;
&lt;br /&gt;
Here's a screenshot from Apple's website - its the page you reach when you want to buy a laptop. It's simple clean and easy to use:&lt;br /&gt;
&lt;img alt="" src="/uploads/CMS/Images/Blog/macbook.jpg" /&gt;&lt;br /&gt;
Compare this to the the equivalent webpage by HP.&lt;br /&gt;
&lt;img alt="" src="/uploads/CMS/Images/Blog/HP_Laptops.jpg" /&gt;&lt;br /&gt;
HP have struggled in the consumer market. Judging by the comparison in marketing style alone is it any wonder why Apple have succeeded whilst HP have not?&lt;br /&gt;
&lt;br /&gt;
Related Posts:&lt;br /&gt;
&lt;a href="http://www.conduce.net/Blog.aspx?f=The-Thinking-Behind-YBoard" title="The Thinking Behind YBoard"&gt;The Thinking Behind YBoard&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Delete-Friction" title="Delete Friction"&gt;Delete Friction&lt;/a&gt;&lt;br /&gt;
&lt;a title="iPad App Help Design Pattern" href="../../Blog.aspx?f=iPad-App-Help-Design-Pattern"&gt;iPad App Help Design Pattern&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a target="_blank" href="http://uk.linkedin.com/in/paulrsaunders" title="Paul Saunders LinkedIn profile"&gt;Paul Saunders&lt;/a&gt;</description><link>http://www.conduce.net/Blog.aspx?f=Simplicity-Sells-Apple-vs-HP</link><pubDate>Thu, 26 Jan 2012 10:03:35 GMT</pubDate></item><item><author>Paul Saunders</author><title>Codecademy Walkthrough – Starting a Startup</title><description>&lt;img alt="" src="/uploads/CMS/Images/Blog/Codecademy/codecademywalkthough_startup.png" /&gt;&lt;br /&gt;
This week there are three exercises to tackle on Codecademy&amp;rsquo;s Code Year course. The first one is an app development exercise which follows on from the previous lessons about functions. Here&amp;rsquo;s my Walkthrough for the &lt;strong&gt;"Starting a Startup"&lt;/strong&gt; lesson.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 1. Introduction&lt;/strong&gt;&lt;br /&gt;
No code required here. Just hit 'run' to proceed&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 2. What is fixed?&lt;/strong&gt;&lt;br /&gt;
We&amp;rsquo;re now asked to begin the exercise by stating a variable for the fixed costs.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;// Declare a variable fixedCosts &lt;br /&gt;
// and initialize it to 5000&lt;br /&gt;
var fixedCosts = 5000&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 3. Define a function&lt;/strong&gt;&lt;br /&gt;
There&amp;rsquo;s a slight change to the instruction text this week. The exercise objectives are much more clearly defined and bullet-pointed. Also the exercise pre-configured scripts are gone. You are forced to either build everything from scratch. (or copy and paste from the previous exercise). In my case I forced myself to rewrite all of my code to help the correct syntax become more instinctive. Now we&amp;rsquo;re wrapping the previous exercise&amp;rsquo;s fixedCost variable in a function.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;// Define a function named calculateTotalCosts &lt;br /&gt;
// declare a variable fixedCosts the value of 5000&lt;br /&gt;
// have the function return fixedCosts&lt;br /&gt;
var calculateTotalCosts=function(){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var fixedCosts = 5000;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fixedCosts;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
Exercise 4. Show me the money!&lt;/strong&gt;&lt;br /&gt;
Now we are asked to include a couple of arguments to the function and use them in a new variable to calculate variable costs.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;//Define the function with two parameters&lt;br /&gt;
//Declare the variables fixedCosts and variableCosts&lt;br /&gt;
var calculateTotalCosts = function(salary, numWorkers){&lt;br /&gt;
&amp;nbsp; var fixedCosts = 5000;&lt;br /&gt;
&amp;nbsp; var variableCosts = salary * numWorkers;&lt;br /&gt;
&amp;nbsp; return fixedCosts + variableCosts;&lt;br /&gt;
};&lt;br /&gt;
calculateTotalCosts(25000,5);&lt;br /&gt;
&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;Exercise 5. Location, Location&lt;/strong&gt;&lt;br /&gt;
Now we need to add an extra argument and if statement to factor in the additional cost of living in New York.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;//Start by defining the function. It now has three parameters!&lt;br /&gt;
var calculateTotalCosts = function(salary, numWorkers, city) {&lt;br /&gt;
&amp;nbsp; var fixedCosts = 5000;&lt;br /&gt;
&amp;nbsp; var variableCosts = salary * numWorkers;&lt;br /&gt;
&amp;nbsp; if (city === "NYC") {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fixedCosts + variableCosts + 30000&lt;br /&gt;
&amp;nbsp; };&lt;br /&gt;
&amp;nbsp; return fixedCosts + variableCosts&lt;br /&gt;
};&lt;br /&gt;
calculateTotalCosts(30000,7,"NYC");&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
Exercise 6. Cheaper Options?&lt;/strong&gt;&lt;br /&gt;
This exercise asks you to include an additional else if clause into the calculation. I struggled a little bit here to get the right syntax of where to put brackets and semi-colons, but got there in the end. One thing that didn&amp;rsquo;t help me was the fact that the area to type lesson code is a little bit small. You can only see 13 lines of code at once so it took me a while to debug and compare my script. I found the Scratch Pad to be useful for this exercise.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;//Start by defining the function. &lt;br /&gt;
var calculateTotalCosts = function(salary, numWorkers, city) {&lt;br /&gt;
&amp;nbsp; var fixedCosts = 5000;&lt;br /&gt;
&amp;nbsp; var variableCosts = salary * numWorkers;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; if (city === "NYC") {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fixedCosts + variableCosts + 30000;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; else if (city === "BEJ") {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fixedCosts + variableCosts + 25000;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fixedCosts + variableCosts + 10000;&lt;br /&gt;
&amp;nbsp; };&lt;br /&gt;
};&lt;br /&gt;
calculateTotalCosts(40000,3,"");&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 7. Try it Out!&lt;/strong&gt;&lt;br /&gt;
Finally you use the app for real to compare costs in various cities. Remember to declare the argument values in inverted commas as they are text strings.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;var calculateTotalCosts = function(salary, numWorkers, city) {&lt;br /&gt;
&amp;nbsp; var fixedCosts = 5000;&lt;br /&gt;
&amp;nbsp; var variableCosts = salary * numWorkers;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; if (city === "NYC") {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fixedCosts + variableCosts + 30000;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; else if (city === "BEJ") {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fixedCosts + variableCosts + 25000;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fixedCosts + variableCosts + 10000;&lt;br /&gt;
&amp;nbsp; };&lt;br /&gt;
};&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
console.log(calculateTotalCosts(50000,9,"NYC"));&lt;br /&gt;
console.log(calculateTotalCosts(50000,9,"BEJ"));&lt;br /&gt;
console.log(calculateTotalCosts(50000,9,"MUM"));&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;So how did I find this lesson? &lt;/strong&gt;&lt;br /&gt;
Pretty good! I rattled through the exercises quickly with relatively few mistakes, so I must be learning something. There have been a number of improvements this week as I mentioned with lesson instructions and the way you are encouraged to duplicate your code. This lesson was pretty well structured with evenly balanced steps between exercises. It&amp;rsquo;s great to see the Codeacademy guys are continually moving things forward and are actively engaging with users via Twitter seeking user feedback. More of the same please Codecademy! I&amp;rsquo;m looking forward to the rest of this week&amp;rsquo;s lessons.&lt;br /&gt;
&lt;br /&gt;
Previous Walkthroughs:&lt;br /&gt;
&lt;a href="http://www.conduce.net/Blog.aspx?f=Codecademy-Walkthrough-Hello-New-York" title="Codecademy Walkthrough - Hello New York"&gt;Codecademy Walkthrough - Hello New York&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Code-Academy-Walkthrough-FizzBuzz-Answers" title="Codeacademy Walkthrough - FizzBuzz Answers"&gt;Codeacademy Walkthrough - FizzBuzz Answers&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a title="Paul Saunders LinkedIn profile" href="http://uk.linkedin.com/in/paulrsaunders" target="_blank"&gt;Paul Saunders&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</description><link>http://www.conduce.net/Blog.aspx?f=Codecademy-Walkthrough-Starting-a-Startup</link><pubDate>Tue, 24 Jan 2012 10:06:21 GMT</pubDate></item><item><author>Paul Saunders</author><title>Codecademy Walkthrough – Hello New York</title><description>Last week I posted &lt;a href="http://www.conduce.net/Blog.aspx?f=Code-Academy-Walkthrough-FizzBuzz-Answers" title="Codeacademy Walkthrough - FizzBuzz Answers"&gt;a blog&lt;/a&gt; which provided the answers in the form of a walkthrough of Codecademy&amp;rsquo;s applied Code Year lesson titled FizzBuzz. This proved to be a bit of a hit in the codecademy community. I got several tweets from grateful followers, plenty of comments on the blog and even a couple of tweets from &lt;a href="http://twitter.com/Codecademy" target="_blank" title="Codecademy on Twitter"&gt;@codecademy&lt;/a&gt; themselves encouraging me to keep up the walkthroughs. We&amp;rsquo;ve had hundreds of hits to the webite and are on page one of Google for all kinds of related searches for Codecademy answers.&lt;br /&gt;
&lt;br /&gt;
The &lt;a href="http://www.codecademy.com" target="_blank" title="Codecademy site"&gt;Codecademy site&lt;/a&gt; itself has seen several improvements this week, not least the addition of a Stack Exchange type Q&amp;amp;A forum. Due to the unprecedented encouragement, not least &lt;a href="https://twitter.com/#%21/Codecademy/status/159330893859782656" target="_blank" title="Codecademy support"&gt;from Codecademy themselves&lt;/a&gt; I think there&amp;rsquo;s still room for a semi-regular walkthrough feature here if time allows. By popular demand here is a walkthrough of the "Hello, New York" applied Course from the second week of Code Year:&lt;br /&gt;
&lt;img alt="" src="/uploads/CMS/Images/Blog/Hello_NewYork.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 1. Hailing a Taxi&lt;/strong&gt;&lt;br /&gt;
The first exercise eases you in gently. All you have to do is declare the variable baseFare setting the value at 2.50. Remember that because the variable is a numeric value, not a string you don&amp;rsquo;t use "inverted commas".&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: courier new; color: #4f6128;"&gt;// Declare a variable named `baseFare` and assign &lt;br /&gt;
// it a value of `2.50`.&lt;br /&gt;
var baseFare = 2.50&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 2. Make it Functional&lt;/strong&gt;&lt;br /&gt;
Here we are given the basis of the taxiFare function and asked to return the baseFare value. We simply add &amp;ldquo;return baseFare&amp;rdquo; inside the braces. Easy enough&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;&lt;strong&gt;&lt;span style="color: #4f6128;"&gt;// remember to move baseFare inside the function taxiFare &lt;br /&gt;
// to properly scope the variable&lt;br /&gt;
var baseFare = 2.50;&lt;br /&gt;
&lt;br /&gt;
// modify taxiFare to return the variable baseFare;&lt;br /&gt;
var taxiFare = function () { &lt;br /&gt;
&amp;nbsp; return baseFare&lt;br /&gt;
};&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;Exercise 3. Where To?&lt;/strong&gt;&lt;br /&gt;
The wording of this exercise confused me a little and it took me a while to figure out what I was being asked to do. Ignoring the lesson text and reading only the comments in the script helped me figure out exactly what was required. It turned out to be simpler than I first thought.&amp;nbsp; There does seem to be a slight bug with the Codecademy console. If you have failed several times to successfully run your script the result will sometimes still return an error even if you have the answer spot-on. However if you reset to the default code and try again it works just fine. &lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;&lt;strong&gt;&lt;span style="color: #4f6128;"&gt;// add a parameter called milesTraveled to the function&lt;br /&gt;
// taxiFare&lt;br /&gt;
var taxiFare = function (milesTraveled) {&lt;br /&gt;
&amp;nbsp; var baseFare = 2.50;&lt;br /&gt;
&amp;nbsp; var costPerMile = 2.00;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; // calculate cost using baseFare, milesTraveled, and &lt;br /&gt;
&amp;nbsp; // costPerMile&lt;br /&gt;
&amp;nbsp; var cost = baseFare + (milesTraveled * costPerMile);&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp; return cost;&lt;br /&gt;
};&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
Exercise 4. After Dark&lt;/strong&gt;&lt;br /&gt;
This is probably the hardest exercise of the lesson, simply because you have more code to write than any other exercise and there are a couple of typos in the exercise instructions. When it tells you that you need to include time before 6pm, it actually should read 6am. Again the code comments are more helpful than the exercise text....&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: courier new; color: #4f6128;"&gt;// add a parameter called hourOfDay to the function&lt;br /&gt;
var taxiFare = function (milesTraveled, hourOfDay) {&lt;br /&gt;
&amp;nbsp; var baseFare = 2.50;&lt;br /&gt;
&amp;nbsp; var costPerMile = 2.00;&lt;br /&gt;
&amp;nbsp; var nightSurcharge = 0.50; // 8pm to 6am, every night&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; var cost = baseFare + (costPerMile * milesTraveled);&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // add the nightSurcharge to the cost starting at &lt;br /&gt;
&amp;nbsp; // 8pm (20) or if it is before 6am (6)&lt;br /&gt;
&amp;nbsp; if(hourOfDay &amp;gt;= 20 || hourOfDay &amp;lt; 6){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return cost + nightSurcharge;&lt;br /&gt;
&amp;nbsp; }else {&lt;br /&gt;
&amp;nbsp; return cost;&lt;br /&gt;
&amp;nbsp; };&lt;br /&gt;
};&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 5. You&amp;rsquo;ve arrived at your destination&lt;/strong&gt;&lt;br /&gt;
Now all you need to do is apply the required values for milesTraveled and hourOfDay parameters. Curious the hourOfDay parameter has magically changed to pickupTime, but this doesn&amp;rsquo;t have any bearing. The only change required is to line 3&lt;br /&gt;
&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;strong&gt;// use taxiFare to set tripCost to the cost of your &lt;br /&gt;
// ride covering 5 miles at 2 am in the morning&lt;br /&gt;
var tripCost = taxiFare(5,2);&lt;br /&gt;
&lt;br /&gt;
// calculates taxi fare based upon miles traveled &lt;br /&gt;
// and the hour of the day in military time (0-23).&lt;br /&gt;
var taxiFare = function (milesTraveled, pickupTime) {&lt;br /&gt;
&amp;nbsp; var baseFare = 2.50;&lt;br /&gt;
&amp;nbsp; var costPerMile = 2.00;&lt;br /&gt;
&amp;nbsp; var nightSurcharge = 0.50; // 8pm to 6am, every night&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; var cost = baseFare + (costPerMile * milesTraveled);&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // add the nightSurcharge to the cost if it is after &lt;br /&gt;
&amp;nbsp; // 8pm or before 6am&lt;br /&gt;
&amp;nbsp; if (pickupTime &amp;gt;= 20 || pickupTime &amp;lt;= 6) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cost += nightSurcharge;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; return cost;&lt;br /&gt;
};&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I hope that helps. I&amp;rsquo;ll ask our dev team to offer any code improvements they can think of. We had fun discussing that internally this week and maybe that&amp;rsquo;s a topic for future blog posts. More Codecademy Walkthroughs next week. Happy coding!&lt;br /&gt;
&lt;br /&gt;
Related Posts:&lt;br /&gt;
&lt;a title="Codeacademy Walkthrough - FizzBuzz Answers" href="http://www.conduce.net/Blog.aspx?f=Code-Academy-Walkthrough-FizzBuzz-Answers"&gt;Codeacademy Walkthrough - FizzBuzz Answers&lt;/a&gt;&lt;br /&gt;
&lt;a title="The Thinking Behind YBoard" href="http://www.conduce.net/Blog.aspx?f=The-Thinking-Behind-YBoard"&gt;The Thinking Behind YBoard&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Delete-Friction" title="Delete Friction"&gt;Delete Friction&lt;/a&gt;&lt;a title="iPad App Help Design Pattern" href="../../Blog.aspx?f=iPad-App-Help-Design-Pattern"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a target="_blank" href="http://uk.linkedin.com/in/paulrsaunders" title="Paul Saunders LinkedIn profile"&gt;Paul Saunders&lt;/a&gt;</description><link>http://www.conduce.net/Blog.aspx?f=Codecademy-Walkthrough-Hello-New-York</link><pubDate>Thu, 19 Jan 2012 23:44:45 GMT</pubDate></item><item><author>Paul Saunders</author><title>The Thinking Behind YBoard</title><description>Last week we launched our latest app &lt;a href="http://itunes.apple.com/gb/app/yboard/id493023226?mt=8" target="_blank" title="YBoard for iPad on the iTunes App Store"&gt;YBoard for iPad on the iTunes App Store&lt;/a&gt;. It&amp;rsquo;s a sticky notes app and is our first attempt at an app which is intended for the general app market. All of our previous apps have either been bespoke enterprise app or targeted to a very specific use case. YBoard is completely different: Not only is it aimed at a much wider market, we simply do not know whether it is primarily a productivity app or whether it is a more fun or artistic app. Hopefully time will tell.&lt;br /&gt;
&lt;br /&gt;
We have been thinking about developing general apps for quite a while now. We&amp;rsquo;ve discussed a number of ideas and have an open thread of ideas and suggestions on our internal message board. Everything from a Pregnancy Diary Logging app to a Brian Blessed Swearing Soundboard have been discussed and ultimately were all either ruled out or shelved. Usually this has been down to the fact that there are very few brand new ideas. Almost certainly when it comes to the iTunes App Store someone will have already beaten you to the drop or in the case of the "Automated Airplane Mode" app which we got quite excited about a couple of months ago are simply not possible to get approved by Apple. There&amp;rsquo;s nothing new about a sticky notes app. In fact there are already dozens of similar apps on the app store and some have been around for quite a long time. We&amp;rsquo;re not afraid of a competition, but what YBoard offers is ultimately targeting a different market and meeting some of the challenges in a different way. Perhaps this can be explained by describing how the idea for YBoard came about.&lt;br /&gt;
&lt;br /&gt;
Last year there was an &lt;a href="http://www.nytimes.com/interactive/2011/05/18/business/delta-northwest-merger-graphic.html" target="_blank" title="How to merge two airlines"&gt;article in the New York Times&lt;/a&gt; which described the merger of two airlines Delta and Northwest. This article contained a now infamous photo of the draft project plan to merge the two airline&amp;rsquo;s operations, systems, branding and identity.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt="" src="/uploads/CMS/Images/Blog/Merging2AirlinesWithPostIts.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
This massive project was planned using sticky notes. We were amazed by this, but equally not surprised. There are some pretty sophisticated software tools that would have been very helpful here, but sometimes old habits die hard. We use a combination of white boards, MS Project, Basecamp and FogBugz for planning and executing projects and there are many other brainstorming, mind mapping and project planning applications on the market. Who knows why such a low tech solution was used here, but maybe this indicated a requirement for some software that applied the same simplicity and user experience of putting sticky notes on a vast wall. This idea got our creative juices flowing and a list of functional requirements began to take shape.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt="" src="/uploads/CMS/Images/Blog/YBoard_Screenshot2_600.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
At Conduce Software we have a policy that we call "Friday Afternoon Play" &amp;ndash; Dan Pink calls these "Fedex days" in his book &lt;a href="http://www.danpink.com/drive" target="_blank" title="Drive by Dan Pink"&gt;Drive&lt;/a&gt; (because you have to deliver something). On a Friday afternoon our development team are allowed to work on anything they like. Some will use the time for R&amp;amp;D or to try out new ideas, whilst others will use it for training, but there is no mandate to use the time productively on current projects. One of our guys, Marcin decided he was going to work on our sticky notes app idea. After only a couple of sessions working on the app Marcin had a working Alpha to show me. This first version of the app didn&amp;rsquo;t do anything exciting: sticky notes could be added and moved around&amp;hellip; that was it. You can see what this version looked like on a previous blog post:&lt;br /&gt;
&lt;a href="http://www.conduce.net/Blog.aspx?f=Testing-Software-is-childs-play" title="Testing Software is Child's Play"&gt;Testing Software is Child's Play&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
After several weeks of working on the app solely on Friday afternoons and in our spare time Marcin and I had decided on what features absolutely had to be included in the first version of YBoard (as we had now begun to call our project.) Christmas was approaching and we had a window in our development schedule so I gave Marcin the green light to work on the app full time for two weeks in order to bring it to market. We had decided very early on that we wanted to use a very minimal and gesture based user interface for YBoard. This became more of a challenge as more features were added, but once the character of YBoard began to take form often an answer to a user interface challenge tended to become obvious. As we have done in the past the answer would probably lie with users. Several times I gave the app to friends, family members or staff and asked them to carry out a specific function in the app without telling them how to do it and certainly without telling them that the function I wanted them to test didn&amp;rsquo;t exist&amp;hellip;. Their intuitive response often became the solution to the problem.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt="" src="/uploads/CMS/Images/Blog/YBoard_Screenshot1_600.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
We submitted YBoard to the app store in the first week of January and almost exactly a week later it was approved by Apple and was &lt;a href="http://www.conduce.net/News/?f=YBoard-for-iPad-launches-on-the-iTunes-App-Store" title="YBoard for iPad launches on the iTunes App Store"&gt;ready for sale&lt;/a&gt;. Sales haven&amp;rsquo;t yet set the world alight, but then again we weren&amp;rsquo;t expecting them to at this early stage. It is a work in progress. There are a couple of essential features clearly missing from YBoard: For example you cannot yet open multiple boards and there are none of the collaboration features that we have planned in place yet, but we made the call to get something out there in the wild as soon as possible. YBoard is one of dozens of sticky notes apps and is probably the least feature rich of them all at this moment in time, but feedback from early adopters has been really positive. No other app of its kind has a look and feel quite like YBoard and we&amp;rsquo;re confident that as the feature list grows we can maintain the minimal, gesture based and intuitive user interface. We&amp;rsquo;ve also moved YBoard back onto the list of projects to be tackled as part of Friday Afternoon Play. This means that it will take us a bit longer to get new versions released, but you can be assured that all future development will have been done by someone who has chosen to work on it. YBoard is an example of what happens when you allow developers to work on whatever they like.&lt;br /&gt;
&lt;br /&gt;
You can find out more about YBoard for iPad by &lt;a href="http://www.conduce.net/Software/SubPage.aspx?f=YBoard" title="YBoard"&gt;clicking here &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Related Posts:&lt;br /&gt;
&lt;a title="Delete Friction" href="../../Blog.aspx?f=Delete-Friction"&gt;Delete Friction&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=iPad-App-Help-Design-Pattern" title="iPad App Help Design Pattern"&gt;iPad App Help Design Pattern&lt;/a&gt;&lt;br /&gt;
&lt;a title="SLIDES: Flight Operations Conference Keynote" href="../../Blog.aspx?f=Flight-Operations-Conference-Keynote"&gt;SLIDES: Flight Operations Conference Keynote&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a title="Paul Saunders LinkedIn profile" href="http://uk.linkedin.com/in/paulrsaunders" target="_blank"&gt;Paul Saunders&lt;/a&gt;</description><link>http://www.conduce.net/Blog.aspx?f=The-Thinking-Behind-YBoard</link><pubDate>Wed, 18 Jan 2012 17:20:03 GMT</pubDate></item><item><author>Paul Saunders</author><title>Codeacademy Walkthrough - FizzBuzz Answers</title><description>&lt;img alt="" src="/uploads/CMS/Images/Blog/codecademy-logo-black-600.png" /&gt;&lt;br /&gt;
Since the New Year I&amp;rsquo;ve been using the new &lt;a href="http://www.codecademy.com" target="_blank" title="Codeacademy website"&gt;Codeacademy website&lt;/a&gt; to teach myself how to code "properly". I&amp;rsquo;ve never described myself as a developer although I have done quite a bit of "copy and paste" coding over the years. I made a bit of a New Year&amp;rsquo;s resolution to try and get some more of the basics down and be a bit more self sufficient rather than relying on our dev team all the time.&lt;br /&gt;
&lt;br /&gt;
The &lt;a href="http://codeyear.com/" target="_blank" title="Codeacademy Code Year programme"&gt;Codeacademy Code Year programme&lt;/a&gt; was right up my street where weekly lessons are prepared to follow in your own time. Its an excellent course, a superb website and has been getting quite a bit of media and investor attention in the technology world. I&amp;rsquo;ve been following lessons at lunchtimes and in the evenings with my son and have been enjoying what I have learnt so far. The final lesson this week was a mini app to count up to twenty replacing numbers divisible by 3 with the word "Fizz" and numbers divisible by 5 with the word "Buzz". It was simple enough, though I did need a bit of help internally to get the modulus syntax spot on. Judging by Twitter there were a few Codeacademy users struggling with this lesson so I thought I&amp;rsquo;d prepare a bit of a walkthrough. Here it is - I hope it helps, but please don't visit here each week expecting a cheat sheet!&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 1. Easy as 1, 2, 3&lt;/strong&gt;&lt;br /&gt;
The exercise asks you to write a script to count up to 20. Codeacademy is looking for you to do this using a &lt;strong&gt;For Loop&lt;/strong&gt;. Even if you achieve the same result via other means your answer will be rejected. Here&amp;rsquo;s my code:&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;br /&gt;
var i;&lt;br /&gt;
for (i = 1; i &amp;lt;= 20; i++) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log( + i )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
I used a variable i which starts at 1 and is returned while stepping up one at a time until i reaches the value 20.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 2. Fizz&lt;/strong&gt;&lt;br /&gt;
Now you have to modify the script to replace numbers divisible by 3 with the word "Fizz".&amp;nbsp; Codeacademy does most of the work for you by showing you the &lt;strong&gt;IF ELSE&lt;/strong&gt; statement. You just need to apply the clause. I used a Modulus to check if i is divisible by 3 leaving a remainder of 0&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: courier new; color: #4f6128;"&gt;&lt;br /&gt;
// Write a statement that decides if the variable `i` is divisible by 3.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
// for the numbers 1 through 20,&lt;br /&gt;
for ( i=1; i&amp;lt;=20; i++) { &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // if the number is divisible by 3, write "Fizz"&lt;br /&gt;
&amp;nbsp; if ( i%3===0) { &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log("Fizz");&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // otherwise, write just the number&lt;br /&gt;
&amp;nbsp; else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(i)&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
}&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 3. Buzz&lt;/strong&gt;&lt;br /&gt;
This exercise is very similar but you need to complete the else if clause to check if the number is divisible by 5. Again a modulus is used here.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: courier new; color: #4f6128;"&gt;// Add an else statement in case the number is divisible by 5. &lt;br /&gt;
&lt;br /&gt;
// for the numbers 1 through 20,&lt;br /&gt;
for (i=1; i&amp;lt;=20; i++) { &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // if the number is divisible by 3, write "Fizz"&lt;br /&gt;
&amp;nbsp; if ( i % 3 === 0 ) { &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log("Fizz");&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // if the number is divisible by 5, write "Buzz"&lt;br /&gt;
&amp;nbsp; else if ( i % 5 === 0 ) { &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log("Buzz");&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // otherwise, write just the number&lt;br /&gt;
&amp;nbsp; else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(i);&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
}&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 4. FizzBuzz&lt;/strong&gt;&lt;br /&gt;
Now you have to check if any numbers are divisible by both 3 and 5. You need to add an IF clause here that uses an &lt;strong&gt;AND&lt;/strong&gt; logic. I put that clause first so that the other clauses don&amp;rsquo;t overwrite the variable.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: courier new; color: #4f6128;"&gt;// Add an else statement in case the number is divisible by 5. &lt;br /&gt;
&lt;br /&gt;
// for the numbers 1 through 20,&lt;br /&gt;
for (i=1; i&amp;lt;=20; i++) { &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // if the number is divisible by 3 and 5 write "FizzBuzz"&lt;br /&gt;
&amp;nbsp; if ( i % 3 === 0 &amp;amp;&amp;amp; i % 5 === 0 ) { &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log("FizzBuzz");&lt;br /&gt;
&amp;nbsp; }&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // if the number is divisible by 3, write "Fizz"&lt;br /&gt;
&amp;nbsp; else if ( i % 3 === 0 ) { &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log("Fizz");&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // if the number is divisible by 5, write "Buzz"&lt;br /&gt;
&amp;nbsp; else if ( i % 5 === 0 ) { &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log("Buzz");&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // otherwise, write just the number&lt;br /&gt;
&amp;nbsp; else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(i);&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
}&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Exercise 5. Never Gonna Stop&lt;/strong&gt;&lt;br /&gt;
This is the easiest of the lot as all you need to do is change the condition of the &lt;strong&gt;FOR loop&lt;/strong&gt; to stop at 100 instead of 20 [FIXED - thanks Marcin]&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: courier new; color: #4f6128;"&gt;// Add an else statement in case the number is divisible by 5. &lt;br /&gt;
&lt;br /&gt;
// for the numbers 1 through 100,&lt;br /&gt;
for (i=1; i&amp;lt;=100; i++) { &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // if the number is divisible by 3 and 5 write "FizzBuzz"&lt;br /&gt;
&amp;nbsp; if ( i % 3 === 0 &amp;amp;&amp;amp; i % 5 === 0 ) { &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log("FizzBuzz");&lt;br /&gt;
&amp;nbsp; }&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // if the number is divisible by 3, write "Fizz"&lt;br /&gt;
&amp;nbsp; else if ( i % 3 === 0 ) { &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log("Fizz");&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // if the number is divisible by 5, write "Buzz"&lt;br /&gt;
&amp;nbsp; else if ( i % 5 === 0 ) { &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log("Buzz");&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; // otherwise, write just the number&lt;br /&gt;
&amp;nbsp; else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(i);&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
}&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Keep an eye out for more Codeacademy walkthroughs coming soon.&lt;br /&gt;
&lt;br /&gt;
Related Posts:&lt;br /&gt;
&lt;a href="http://www.conduce.net/Blog.aspx?f=Delete-Friction" title="Delete Friction"&gt;Delete Friction&lt;/a&gt;&lt;br /&gt;
&lt;a title="iPad App Help Design Pattern" href="../../Blog.aspx?f=iPad-App-Help-Design-Pattern"&gt;iPad App Help Design Pattern&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Flight-Operations-Conference-Keynote" title="SLIDES: Flight Operations Conference Keynote"&gt;SLIDES: Flight Operations Conference Keynote&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a target="_blank" href="http://uk.linkedin.com/in/paulrsaunders" title="Paul Saunders LinkedIn profile"&gt;Paul Saunders&lt;/a&gt;</description><link>http://www.conduce.net/Blog.aspx?f=Code-Academy-Walkthrough-FizzBuzz-Answers</link><pubDate>Fri, 13 Jan 2012 14:58:41 GMT</pubDate></item><item><author>Paul Saunders</author><title>[SLIDES] What We Believe</title><description>&lt;div id="__ss_10915707" style="width: 595px;"&gt; &lt;strong style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a target="_blank" title="What We Believe" href="http://www.slideshare.net/thesaundi/what-we-believe-10915707"&gt;What We Believe&lt;/a&gt;&lt;/strong&gt; &lt;iframe height="497" frameborder="0" width="595" scrolling="no" marginheight="0" marginwidth="0" src="http://www.slideshare.net/slideshow/embed_code/10915707"&gt;&lt;/iframe&gt;
&lt;div style="padding: 5px 0pt 12px;"&gt; View more &lt;a target="_blank" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a target="_blank" href="http://www.slideshare.net/thesaundi"&gt;Paul Saunders&lt;/a&gt; &lt;/div&gt;
&lt;/div&gt;</description><link>http://www.conduce.net/Blog.aspx?f=What-we-believe-slides</link><pubDate>Mon, 09 Jan 2012 19:38:00 GMT</pubDate></item><item><author>Paul Saunders</author><title>Top 10 Tech Predictions for 2012</title><description>Here are my Top 10 Tech Predictions for 2012.&lt;br /&gt;
&lt;br /&gt;
1. Microsoft will release PowerPoint 2012 which will include a couple of radical new features. Comic Sans, Times New Roman, Courier and Arial fonts will no longer be compatible. Animations and clip art will not be supported and there will be a text limit of 140 characters per slide&lt;br /&gt;
&lt;br /&gt;
2. Xcode, Keynote and Garage Band for Windows will be released on the 1st of April 2012.&lt;br /&gt;
&lt;br /&gt;
3. Apple will simultaneously release a 6 inch iPad and a 6 inch iPhone. Both devices will be identical, but the tiny iPad will be marketed to people with very small hands, whilst the giant iPhone target market will be people with massive thumbs.&lt;br /&gt;
&lt;br /&gt;
4. RIM will launch the much anticipated Blackberry Playbook 2 (six months late). The device will not have any native software and in order to browse the web users will need to synchronise the device to their original Blackberry Playbook 1. Synchronisation won&amp;rsquo;t actually be possible until updated firmware is released in 2014.&lt;br /&gt;
&lt;br /&gt;
5. Facebook hits 1 billion users and become self-aware. The Facebook entity is elected as the Governor of California and commences constitutional proceedings to make Silicon Valley an independent nation. The CIA deploy a modified version of the Stuxnet virus to shut down Facebook&amp;rsquo;s servers, but Facebook fights off the attack and renames itself &amp;ldquo;Skynet&amp;rdquo;.&lt;br /&gt;
&lt;br /&gt;
6. Technology Knights Sir Jonathan Ive and Sir Tim Berners-Lee are drafted by the UK government to advise on Information Technology teaching in British schools. Within 6 weeks of implementing their suggestions a 16 year old boy develops an iPhone app as part of his GCSE Economics coursework which solves the Euro crisis.&lt;br /&gt;
&lt;br /&gt;
7. Google sells its Search Engine business to Twitter. Short sighted IT departments around the world forget to un-block access to the new URL mistaking it for a social network. As a result an unprecedented number of companies file for bankruptcy due to the loss of productivity experienced by employees having to get by without access to a decent search engine whilst at work. This triggers a global double-dip recession.&lt;br /&gt;
&lt;br /&gt;
8. The # hash sign and @ at sign characters are adopted by the United States as the 27th and 28th letters of the alphabet. The Queen withdraws all rights for Americans to describe their language as &amp;ldquo;English&amp;rdquo;.&lt;br /&gt;
&lt;br /&gt;
9. Terrorists wage a co-ordinated attack on patent offices in North America, Europe and the Far East destroying all major patent records for the past 25 years. Whilst patent lawyers are trying to resolve the mess hardware and software developers simply crack on with making stuff.&amp;nbsp; As a result world peace is realised for the first time in modern history and world hunger becomes a thing of the past.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
10. North Korea reveals it has secretly been installing its agents as IT Managers and CIOs in western companies as a means to sabotage development and productivity. The expulsion of these agents leads to the immediate demise of the fax machine, Microsoft SharePoint and Internet Explorer 6, 7 and 8&lt;br /&gt;
&lt;br /&gt;
What are your tech predictions for 2012? Let me know via the comments below.&lt;br /&gt;
&lt;br /&gt;</description><link>http://www.conduce.net/Blog.aspx?f=Top10-Tech-Predcitions-for-2012</link><pubDate>Fri, 06 Jan 2012 08:43:04 GMT</pubDate></item><item><author>Paul Saunders</author><title>Request for your post-it note images</title><description>Have you ever managed a project with post-it notes? Do you use post-it notes to plan your workload? Have you ever made a work of art with post-it notes? We want your images...&lt;strong style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/thesaundi/death-by-postit-note" title="Death by POST-IT note" target="_blank"&gt;Death by POST-IT note&lt;/a&gt;&lt;/strong&gt; &lt;iframe width="595" scrolling="no" height="497" frameborder="0" src="http://www.slideshare.net/slideshow/embed_code/10636147" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;
&lt;div style="width: 595px;" id="__ss_10636147"&gt;
&lt;div style="padding: 5px 0pt 12px;"&gt; View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/thesaundi" target="_blank"&gt;Paul Saunders&lt;/a&gt; &lt;/div&gt;
&lt;/div&gt;
We're looking for original images of post-it notes in action in the work place, be it for a serious piece of management work or just a bit of fun. Please send your images to me at &lt;a href="mailto:paul.saunders@conduce.net?subject=Post-it%20note%20images" class="ApplyClass"&gt;paul.saunders@conduce.net&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The best contributions will get a free copy of our new iPad app we are working on and the very best picture will win a special prize. Winners will be announced at the end of January 2012.&lt;br /&gt;
&lt;br /&gt;
Related Posts:&lt;br /&gt;
&lt;a title="Delete Friction" href="http://www.conduce.net/Blog.aspx?f=Delete-Friction"&gt;Delete Friction&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=iPad-App-Help-Design-Pattern" title="iPad App Help Design Pattern"&gt;iPad App Help Design Pattern&lt;/a&gt;&lt;br /&gt;
&lt;a title="SLIDES: Flight Operations Conference Keynote" href="../../Blog.aspx?f=Flight-Operations-Conference-Keynote"&gt;SLIDES: Flight Operations Conference Keynote&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a title="Paul Saunders LinkedIn profile" href="http://uk.linkedin.com/in/paulrsaunders" target="_blank"&gt;Paul Saunders&lt;/a&gt;</description><link>http://www.conduce.net/Blog.aspx?f=Request-for-your-post-it-note-images</link><pubDate>Mon, 19 Dec 2011 12:56:25 GMT</pubDate></item><item><author>Paul Saunders</author><title>Delete Friction</title><description>What is Delete Friction I hear you ask...&lt;br /&gt;
With most software when you delete something like a file or an data record you are normally asked whether you are sure. This momentary ability to opt out of your decision I call "friction". Using a popup with an alert is a standard design pattern for most software including the latest and greatest software around. This is fine, but can be a little bit jarring for some examples of software. We are currently putting the finishing touches on an iPad app called YBoard and we decided we needed to apply a bit of delete friction to prevent user mistakes. In earlier versions you could delete notes without any chance to change your mind. This was seemingly fine because it was in keeping with the simple and minimalist nature of the app. However the app is designed as a genuine business or planning tool and the thought of accidental deletion of data was a bit of a worry, but we didn't fancy having a popup asking the user if they were sure they wanted to delete something. We came up with the idea of a "ghost note". Here's what it looks like.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe height="339" frameborder="0" width="601" src="http://player.vimeo.com/video/33718859?title=0&amp;amp;byline=0&amp;amp;portrait=0"&gt;&lt;/iframe&gt;
&lt;br /&gt;
&lt;br /&gt;
On deleting a note, the ghost note fleetingly appears for a few seconds before fading away. The user can tap the ghost note before it disappears in order to undo the deletion. We're quite pleased with the results, but let us know what you think or if you have a better idea.&lt;br /&gt;
&lt;br /&gt;
Related Posts:&lt;br /&gt;
&lt;a href="http://www.conduce.net/Blog.aspx?f=iPad-App-Help-Design-Pattern" title="iPad App Help Design Pattern"&gt;iPad App Help Design Pattern&lt;/a&gt;&lt;br /&gt;
&lt;a title="SLIDES: Flight Operations Conference Keynote" href="../../Blog.aspx?f=Flight-Operations-Conference-Keynote"&gt;SLIDES: Flight Operations Conference Keynote&lt;/a&gt;&lt;br /&gt;
&lt;a title="SLIDES Tablet Strategy Bootcamp" href="../../Blog.aspx?f=SLIDES-Tablet-Strategy-Bootcamp"&gt;SLIDES Tablet Strategy Bootcamp&lt;/a&gt;&lt;a title="Video: Tablets - is aviation ready for the post-pc era?" href="../../Blog.aspx?f=Tablets-is-aviation-ready-for-the-post-PC-era-video"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a title="Paul Saunders LinkedIn profile" href="http://uk.linkedin.com/in/paulrsaunders" target="_blank"&gt;Paul Saunders&lt;/a&gt;</description><link>http://www.conduce.net/Blog.aspx?f=Delete-Friction</link><pubDate>Thu, 15 Dec 2011 14:19:18 GMT</pubDate></item><item><author>Paul Saunders</author><title>More Media Coverage</title><description>Last week I had a busy couple of days working with &lt;a href="http://www.aviationweek.com" target="_blank" title="Aviation Week"&gt;Aviation Week&lt;/a&gt; on a &lt;a href="http://www.aviationweek.com/aw/blogs/mro/index.jsp?plckController=Blog&amp;amp;plckBlogPage=BlogViewPost&amp;amp;newspaperUserId=388668c6-b459-4ea7-941e-a0a2206d415f&amp;amp;plckPostId=Blog%3a388668c6-b459-4ea7-941e-a0a2206d415fPost%3acdc40cfe-9b94-4603-96da-1c22b68eb32b&amp;amp;plckScript=blogScript&amp;amp;plckElementId=blogDest" target="_blank" title="Aviation Week Guest Blog Post"&gt;guest blog post&lt;/a&gt; and helping with some technical details for a forthcoming magazine article. Aviation Week's Kristen Majcher was kind enough to give me and a recent presentation I did at the 5th Annual Flight Operations Conference a mention in her &lt;a href="http://www.aviationweek.com/aw/blogs/mro/index.jsp?plckController=Blog&amp;amp;plckBlogPage=BlogViewPost&amp;amp;newspaperUserId=388668c6-b459-4ea7-941e-a0a2206d415f&amp;amp;plckPostId=Blog%3a388668c6-b459-4ea7-941e-a0a2206d415fPost%3a52a296c3-08fb-4212-b762-a681c9d115a1&amp;amp;plckScript=blogScript&amp;amp;plckElementId=blogDest" target="_blank" title="Aviation Week Turnaround Time"&gt;Turnaround Time blog&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Amongst all that media attention I was also asked by the folks at &lt;a href="http://www.propelics.com/" target="_blank" title="Propelics"&gt;Propelics&lt;/a&gt; to write a guest post for their blog. Propelics are an iPad strategy and app development consultancy based in California. They asked me to write a "state of the nation address" for the use of iPads in aviation.&lt;br /&gt;
&lt;a href="http://www.propelics.com/ipads-aviation-the-state-of-the-union/" target="_blank" title="Propelics | iPads &amp;amp; Aviation: The State of the Union"&gt;&lt;img alt="" src="/uploads/CMS/Images/Blog/Propelics.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
You can read my guest blog post of the Propelics website here:&lt;br /&gt;
&lt;a href="http://www.propelics.com/ipads-aviation-the-state-of-the-union/" target="_blank" title="iPads &amp;amp; Aviation: The State of the Union"&gt;http://www.propelics.com/ipads-aviation-the-state-of-the-union/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Related Posts:&lt;br /&gt;
&lt;a title="SLIDES: Flight Operations Conference Keynote" href="../../Blog.aspx?f=Flight-Operations-Conference-Keynote"&gt;SLIDES: Flight Operations Conference Keynote&lt;/a&gt;&lt;br /&gt;
&lt;a title="SLIDES Tablet Strategy Bootcamp" href="../../Blog.aspx?f=SLIDES-Tablet-Strategy-Bootcamp"&gt;SLIDES Tablet Strategy Bootcamp&lt;/a&gt;&lt;br /&gt;
&lt;a title="Video: Tablets - is aviation ready for the post-pc era?" href="../../Blog.aspx?f=Tablets-is-aviation-ready-for-the-post-PC-era-video"&gt;Video: Tablets - is aviation ready for the post-pc era?&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a title="Paul Saunders LinkedIn profile" href="http://uk.linkedin.com/in/paulrsaunders" target="_blank"&gt;Paul Saunders&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;</description><link>http://www.conduce.net/Blog.aspx?f=More-Media-Coverage</link><pubDate>Mon, 12 Dec 2011 17:31:26 GMT</pubDate></item><item><author>Paul Saunders</author><title>Guest Blog Featured by Aviation Week</title><description>A few weeks ago I was invited by Aviation Week's Rupa Haria to write a guest blog post about the current state of use of iPads in aviation. After a busy few weeks I finally got round to submitting something today and it has been featured on the Aviation Week Turnaround Time blog.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.aviationweek.com/aw/blogs/mro/index.jsp?plckController=Blog&amp;amp;plckScript=blogScript&amp;amp;plckElementId=blogDest&amp;amp;plckBlogPage=BlogViewPost&amp;amp;plckPostId=Blog:388668c6-b459-4ea7-941e-a0a2206d415fPost:cdc40cfe-9b94-4603-96da-1c22b68eb32b&amp;amp;utm_source=twitterfeed&amp;amp;utm_medium=twitter" target="_blank" title="Guest Blog: iPads and Aviation"&gt;&lt;img alt="" src="/uploads/CMS/Images/Blog/AvWeek.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.aviationweek.com/aw/blogs/mro/index.jsp?plckController=Blog&amp;amp;plckScript=blogScript&amp;amp;plckElementId=blogDest&amp;amp;plckBlogPage=BlogViewPost&amp;amp;plckPostId=Blog:388668c6-b459-4ea7-941e-a0a2206d415fPost:cdc40cfe-9b94-4603-96da-1c22b68eb32b&amp;amp;utm_source=twitterfeed&amp;amp;utm_medium=twitter" target="_blank" title="Guest Blog: iPads and Aviation"&gt;Click here to read the article&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Related Posts:&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Flight-Operations-Conference-Keynote" title="SLIDES: Flight Operations Conference Keynote"&gt;SLIDES: Flight Operations Conference Keynote&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=SLIDES-Tablet-Strategy-Bootcamp" title="SLIDES Tablet Strategy Bootcamp"&gt;SLIDES Tablet Strategy Bootcamp&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Tablets-is-aviation-ready-for-the-post-PC-era-video" title="Video: Tablets - is aviation ready for the post-pc era?"&gt;Video: Tablets - is aviation ready for the post-pc era?&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a target="_blank" href="http://uk.linkedin.com/in/paulrsaunders" title="Paul Saunders LinkedIn profile"&gt;Paul Saunders&lt;/a&gt;&amp;nbsp;</description><link>http://www.conduce.net/Blog.aspx?f=Guest-Blog-Aviation-Week</link><pubDate>Fri, 09 Dec 2011 15:34:47 GMT</pubDate></item><item><author>Paul Saunders</author><title>How to make it to the front page of Slideshare</title><description>Due to popular demand, I have updated my thesis on how to make it on to the front page of Slideshare. Once is a fluke, but twice implies I know what I'm doing.&lt;br /&gt;
&lt;div style="width: 595px;" id="__ss_10480284"&gt; &lt;strong style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/thesaundi/updated-how-to-make-it-to-the-front-page-of-slideshare" title="UPDATED: How to make it to the front page of Slideshare" target="_blank"&gt;UPDATED: How to make it to the front page of Slideshare&lt;/a&gt;&lt;/strong&gt; &lt;iframe width="595" scrolling="no" height="497" frameborder="0" src="http://www.slideshare.net/slideshow/embed_code/10480284" marginwidth="0" marginheight="0"&gt;&lt;/iframe&gt;
&lt;div style="padding: 5px 0pt 12px;"&gt; View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/thesaundi" target="_blank"&gt;Paul Saunders&lt;/a&gt; &lt;/div&gt;
&lt;/div&gt;
Related Posts:&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Flight-Operations-Conference-Keynote" title="SLIDES: Flight Operations Conference Keynote"&gt;SLIDES: Flight Operations Conference Keynote&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=SLIDES-Tablet-Strategy-Bootcamp" title="SLIDES Tablet Strategy Bootcamp"&gt;SLIDES Tablet Strategy Bootcamp&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Tablets-is-aviation-ready-for-the-post-PC-era-video" title="Video: Tablets - is aviation ready for the post-pc era?"&gt;Video: Tablets - is aviation ready for the post-pc era?&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a target="_blank" href="http://uk.linkedin.com/in/paulrsaunders" title="Paul Saunders LinkedIn profile"&gt;Paul Saunders&lt;/a&gt;</description><link>http://www.conduce.net/Blog.aspx?f=Updated-How-to-make-it-to-the-front-page-of-Slideshare</link><pubDate>Tue, 06 Dec 2011 11:37:33 GMT</pubDate></item><item><author>Paul Saunders</author><title>iPad App Help Design Pattern</title><description>We've recently been working on a data acquisition app for a UK airline and have just finished prototyping the help system for the app. The app itself is pretty simple, largely self explanatory and originally had no scope for in app documentation. However we decided to support the external documentation and training material with a simple but useful in app help system. Here's a quick demonstration of the solution we came up with.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe width="601" height="339" frameborder="0" src="http://player.vimeo.com/video/33164370?title=0&amp;amp;byline=0&amp;amp;portrait=0"&gt;&lt;/iframe&gt;
&lt;br /&gt;
&lt;br /&gt;
I've seen the idea of a "help layer" used in apps a few times, but I wanted to use a solution which still allowed you to see the actual app behind the help layer. Hence the transparent idea. There's nothing particularly clever behind what we have implemented. The help file is actually just a .png image with a 25% transparent blue background that appears over the screen on activation. There is a seperate image for each screen when the device is oriented in either landcape or portrait mode. It took a bit of experimentation to make the transition as slick as possible, but there is no animation between landcspae and portrait. If it looks like there is then that's just a trick of the eye. I used Balsamiq Mockups to produce the help layer design as I wanted it to look like a sketched blueprint. We're quite pleased with the results. Let me know what you think.&lt;br /&gt;
The app itself is in beta testing phase with the client, hopefully to be rolled out to their users over the next few weeks.&lt;br /&gt;
&lt;br /&gt;
Related Posts:&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Flight-Operations-Conference-Keynote" title="SLIDES: Flight Operations Conference Keynote"&gt;SLIDES: Flight Operations Conference Keynote&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=SLIDES-Tablet-Strategy-Bootcamp" title="SLIDES Tablet Strategy Bootcamp"&gt;SLIDES Tablet Strategy Bootcamp&lt;/a&gt;&lt;br /&gt;
&lt;a href="../../Blog.aspx?f=Tablets-is-aviation-ready-for-the-post-PC-era-video" title="Video: Tablets - is aviation ready for the post-pc era?"&gt;Video: Tablets - is aviation ready for the post-pc era?&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Author: &lt;a target="_blank" href="http://uk.linkedin.com/in/paulrsaunders" title="Paul Saunders LinkedIn profile"&gt;Paul Saunders&lt;/a&gt;</description><link>http://www.conduce.net/Blog.aspx?f=iPad-App-Help-Design-Pattern</link><pubDate>Tue, 06 Dec 2011 09:11:53 GMT</pubDate></item></channel></rss>
