Week 02

02-04-2015

Interaction Design - What's the Problem
Web Servers
xAMP

Introduction

Last week, we saw the beginnings of what will be a pattern for how this course is structured. Part of the week will be spent understanding a principle of interaction design and part will be spent learning a new bit of development nerdiness. Throughout the semester, these two will dovetail for a project where you’ll apply both and then split back off.

This week, we’ll be looking at goal-oriented interaction design and setting up a web server on your local computer.

Interaction Design: What's the Problem You're Trying to Solve?

Last week, we saw that design has evolved away from being about colors, shapes and layout. Different design researchers define design in different ways. For instance:

Besides being a little sexist (I’m looking at you Papanek), design researchers agree that, at the core, design is about solving problems. The readings from last week called them "wicked" problems, ones that span across multiple domains and ways of thinking. Papanek’s definition as well as Buchanan’s article from last week are explicit (and the others above are implicit) in that design is not for a small subset of professionals. Design is not merely the domain of "graphic designers" or "industrial designers" or "fashion designers" or "interior designers" or even "interaction designers". Barnes/Morley/Sayers state that "design activities range from cooking a meal to composing a symphony, from designing to satisfy our own needs and desires to designing for a commercial market" (2012).

So, how do we apply the design process to the web? How do we go about solving complex interaction problems? Solving design problems for posters or books or toasters or cars is complex, but a fairly straight-forward process. We’ve seen posters before. We’ve read books before. We’ve used toasters before. We’ve driven cars before. Innovative digital products, by definition, are new kinds of things that provide new ways of doing things. Things we haven’t used before. So, the design of them, by definition, will be both complex and ambiguous. We live in an era of transition, we’re moving from not having ubiquitous access to digital tools to having ubiquitous access to digital tools. During transitions, ambiguity is the name of the game. I’ve found it helpful to look backwards to another time of transition in order to help make sense of our current time. Read the following blog post to get a sense of how a previous generation dealt with a transition from one medium to another:

http://aims.muohio.edu/2012/02/06/digital-incunabula/

What I find fascinating about the incunabula is that it lasted so darn long. A generation to come up with the idea of page numbers! Imagine a book without them. Feels…well…wrong doesn’t it? I believe one of the primary challenges of design today is not to merely figure out the unique problems that interaction design presents, but to speed up the rate at which we figure out those problems. So, how do we speed this up? Research into successful innovative products show us that there are two key factors in the development of innovative products: 1) cross-disciplinary thinking and 2) a focus on the real problems that need to be solved. Read the following blog post that tracks the development of the mouse and the graphical user interface (GUI). As you read it, consider how each team that worked on the mouse and GUI approached these two factors. How did having a cross-disciplinary team and a focus on end users impact the development of the Macintosh vs the Lisa vs Xerox’s Alto vs the development of the Engelbart’s NLS?

http://aims.muohio.edu/2011/10/27/the-mouse-and-wimp/

Now, as we discussed last week, we have the cross-disciplinary thing down. If you look at the course roster, we’re filled with cross-disciplinary folks. The remaining task is a focus on real problems or as Matchett says in the quote at the start of this lesson the "true needs". Getting to the heart of the "true needs" is surprisingly tough. We bring all sorts of baggage and assumptions into a project.

This week’s readings are from an interaction design classic that had a huge impact on the interactive product development world. Visit the library’s website (http://lib.muohio.edu) and search for "About Face 3: The Essentials of Interaction Design" by Alan Cooper. From the catalog listing, you will be able to read it for free on Safari Books Online (follow the link to "Connect to Safari Books online" in the library’s catalog listing). Read the foreword and chapters 1, 2 and 4.

Once you’ve read the chapters, consider the following questions:

Interaction Development: Web Servers

Up until this point, all of your web development work has probably been using the following workflow: build some HTML on your local machine, test it in a web browser and upload to a web server to share when done. This is a fine work flow if want your web pages to be relatively static. However, if you want your system to remember what a user did or enable a user to add content or change things, you’ll need a web server. Here’s an overview video of how all of this works.

Intro to Servers (watch this video)

We call the combination of a web server, a scripting language and a database technology a “technology stack”. There are many different “technology stacks” out there. You’ve probably heard of some of them. PHP, Java (not to be confused with JavaScript, that’s something entirely different), Ruby, ColdFusion etc. all web scripting languages. They’re often paired with a database. The most common database language is SQL. SQL comes in two dominant flavors: Microsoft’s SQL and MySQL. Microsoft’s SQL is proprietary and closed-source, but comes with different flavors that are tailored to different needs. MySQL is free and open source, but requires a bit more finagling. Another popular free database is PostgreSQL (which is the one that Kirk has been using for many years). It is very similar to MySQL. For this class, we’ll be using MySQL. For our web scripting language, we’ll be using PHP. PHP is well established in the marketplace and having it on your resume is a great thing. It too is free and open source. Finally, our web server will be Apache. Now, here’s the awesome thing. Apache running PHP and MySQL is an extremely common technology stack. So common, in fact, that it has a clever name “xAMP” where “x” stands for whatever platform you’re running it on (WAMP for Windows, MAMP for Mac, LAMP for Linux, etc.), “A” for Apache, “M” for MySQL and “P” for PHP.

Even better than a clever name is that it’s exceptionally easy to install and well supported by the open source community. For the technology side of things this week, you’re going to download and install your own copy of xAMP on your machine. You’ll get it running, put up a test PHP page (we’ll get to MySQL later), take a screen shot and email it to Kirk. If you encounter problems, email me. The videos are couple years old and the xAMP stuff looks a little different now but they are still similar enough that you should be able to get it up and running. That's a problem with making a video of a web page (or putting something in print), as soon as you finish it, the material could change. Welcome to the land of IT (Information Technology).

Getting Started with xAMP (watch this video)
Getting Started with PHP (watch this video)

Assignment

:-)