Idea: Coffee stirrers made of metal that change color based on drinkability of the coffee.
Idea: Coffee stirrers made of metal that change color based on drinkability of the coffee.
The new iOS 7 fade-in animation that occurs when turning on the device seemed slow to me, or at least slower than in iOS 6. So, I wanted to run a pseudo-scientific experiment to see if my perception was correct (“pseudo-scientific” due to the small sample size). I compared my iPhone 4S with iOS 7 to my wife’s iPhone 4S with iOS 6 in terms of “time to home screen”, which I defined as the time between pressing the power button, unlocking the screen, and waiting for the icons to come into place on the home screen.
For iOS 6, 5 runs: 2.11, 2.2, 2.07, 2.12, 2.06 (measured in seconds), with an average of 2.11 seconds.
For iOS 7, 5 runs: 2.3, 2.33, 2.51, 2.54, 2.47 (measured in seconds), with an average of 2.43 seconds.
The difference comes out to .32 seconds of extra time waiting on animations before getting to the home screen in iOS 7. Now, that’s not a whole lot of time; it’s not even a full second. However, this is a task that users will do several times a day, perhaps even several times an hour, and that means extra fractions of a second wasted over millions of people. When a user interface has a major update, it should take less of our time to use it, not more.
Software developers always have to be mindful of avoiding Gold Plating. Developers, though, are not the only team members that can go overboard on a project or feature. When visual designers use aesthetics to emphasize “beauty” over usability, they overstep their duties to the users of their software.
One tendency I see now is to over-use the color gray throughout an interface—John Brandt discussed this in his post What’s with all the gray? I propose the phrase “Gray Plating” (or “Grey Plating” if you prefer the non-U.S. spelling) for the overuse of a visual style that is detrimental to the user experience.
When setting up your Google Maps API key, specify that it works on all subdomains, i.e. *.mysite.com. Then, create a host name in /etc/hosts (different path on Windows) that is something like “local.mysite.com” to point at 127.0.0.1. Now, instead of using “localhost” to access your site locally, you can use “local.mysite.com” to access it, and the Google Maps API will treat it as a legitimate site. Yay, no more API key error messages!
On April 24th-25th, Raleigh, NC hosted the East Coast Game Conference for 2013 for the 5th year. Despite not being in the game industry, I decided to attend because I have a more than cursory interest in game design and development. I came to realize that the game industry is very similar to the web industry in culture. We share similar challenges in diversity, in developing empathy for our customers, and in growing as communities of practitioners.
The content of the conference was great; for that reason alone, I encourage anyone interested in game design, development, or the industry as a whole to attend. The organization of the conference itself left something to be desired, which I will cover shortly. I attended sessions on developing combat systems, AI for turn based games, tips for visual communication in level design, prototyping, finding a mentor in the industry, and finding your “core” (the main point of your game).
From the development and design sessions, I realized one similarity between game development and web development is that we should always spend less time on re-inventing the wheel. The AI for games is well-researched, with many published algorithms; no need to write your own. Similarly, there are tons web development libraries and frameworks out there, so spend more time building cool things and less time struggling over problems that are already solved.
Another similarity made clear to me was that designers and developers in non-web industries face the same issues we face in web development. One anecdote from the developer leading the combat systems session was “I have never worked on a fighting game in which the designers didn’t come back, 6 months into production, and say ‘We really want the ice guys to be vulnerable to fire’, so at this point I always have a vulnerabilities table built from the beginning”.
Cliff Blezinksi gave an inspirational talk to implore the community to stand united, rather than tearing itself apart from the inside with artificial differences like AAA game developers vs. indie game developers. Jason Vandenberghe’s keynote discussed his ideas of the 5 Domains of Play as a means for developing empathy for players. The discussion of empathy for players sounds very familiar to what every UX professional preaches with regard to empathy for users in web development.
Aside from the content, the conference itself was somewhat confusing at times. The web and print schedules did not match and it was hard to tell which was the authoritative schedule. The ECGC staff did maintain a twitter account, so that was somewhat helpful, but the rescheduling of the keynote on Thursday did cause some people to be late to the 3rd session of the day. Parking was expensive—$19 over two days, and it wasn’t included on the website in any fashion to tell people where to park or make recommendations. WiFi was not free, at least for my ticket level—had I purchased a more expensive ticket, I would have access to the WiFi (“a $40 value”). This is less a problem from the ECGC organizers than it is the Raleigh Convention Center owners—why can I go to a privately-ran company like Starbucks and get free WiFi, but my $80 ticket to a conference can’t cover the cost of WiFi? If Raleigh wants to show it’s a modern hub for tech companies, I think they should invest in their tech infrastructure for these kinds of events.
Despite the aforementioned complaints, the ECGC staff did a wonderful job keeping equipment running, shepherding people around, and generally keeping things running smoothly. Though I still probably won’t be in the industry next year, I plan to attend nonetheless, because this was an affordable conference with great content where you could feel the strength of the community in the area come together.
After seeing this series of tweets about responsive images and picturefill.js, I started wondering if there was another approach web developers should take for serving up images. The following relates to inline or content images, not background or decorative images. For example, large images in the middle of a long article on a news site.
Imagine loading pages without inline images even present by default. Pages would load blazingly fast, because there are fewer HTTP requests overall and images aren’t taking up bandwidth on initial page load. The user could tap or click an image placeholder to request the image.
I think it would be great to see this user tested on content-heavy sites, such as blogs or news sites.
Recently, I was trying to split a string into two separate array values in a JSP, for displaying them separately through JSTL. I commented out
String someVar = "";
Array someVarArray = new Array(2);
and Eclipse seemed to be fine with it. So, I went on to write more code utilizing my new array, and refreshed the page…everything worked fine. But, the page markup was not changing to reflect the JSP changes. It was heavily cached for some reason. So, I restarted the server, and reloaded the page, and got the following error:
String someVarArray = new String;
This is difficult to track down because my IDE effectively told me there was a ClassNotFoundException, which every StackOverflow post points to being an issue with class paths or output folders for a project; none of them point to actual code problems. Also, the compiler did not catch this as a problem, either. Where is your strong type handling now, Java?
After spending so much time tracking down this problem, I’m starting to understand the allure of using a single language on the client as on the server (e.g. NodeJS). Not having to switch contexts would have prevented this problem in the first place. Or maybe one day I’ll be a better Java developer that won’t make these kinds of mistakes (ha!).
I recently built a new PC that would serve primarily as a gaming computer that would have much more horsepower than my MacBook Pro. Aside from just being more powerful, it also allows me to play those Windows-only games that come around every so often. Plus, it gave me a chance to try out Windows 8. This is my out of box experience with Windows 8.
I did a clean installation of Windows 8 Pro on my new PC. The install process was fairly smooth, as far as Windows installations goes. After getting into the system to do updates and what not, I discovered it was not activated. When I went to activate it, I received an error that it could not be activated because it was an upgrade version and upgrade versions cannot be installed without upgrading from a previous version. I double-checked all the packaging and sure enough there is no mention that Windows 8 Pro is upgrade only. Nothing on the front nor on the back, nor under System Requirements. I won’t go into details about how I finally activated it, but there are details online for how to activate a clean install of Windows 8 Pro. Nonetheless, this felt like a total marketing scam and started my out of the box experience off on the wrong foot.
As far as the UI goes, Windows 8 utilizes every corner of the screen to provide some action. The lower left shows a shortcut to the Modern UI Start screen. The upper right and lower right both bring up the Charms sidebar. The upper left serves as a “previous app” shortcut that bridges the Modern UI and the Windows Desktop. If there is no open app in the Modern UI, then moving to the upper left will do nothing. The Modern UI has its own sort of taskbar that can be revealed by going to the upper left and then scrolling down the left edge of the screen. Meanwhile, the traditional Windows desktop still shows the taskbar at the bottom, always visible. So, there are two taskbars, with two different ways to view them. This is one of many examples of Windows 8’s bipolar nature.
Another example of wonky bipolar differences between the two UIs is in the settings for a PC. There is the traditional control panel, with all of its various items, such as Device Manager and User Accounts. Device Manager still opens the Device Manager—no surprise there. However, User Accounts brings up options for managing user accounts with some links that work inside the Control Panel and some which take you into the Users screen in the Modern UI. Every time you click a link or take an action which leads into the Modern UI, you have to sit through the same “window flipping” animation. With some links working inside their normal context and some links taking you into the Modern UI, it becomes impossible to guess what’s going to happen when you click something the first time. Not only is it bipolar, it lacks any sort of affordances to reveal how a link will act—you never know which UI you’ll be using based on the link itself.
On the topic of affordances, the login screen is severally lacking in that regard. It is simply a full screen image that requires a keyboard press or a click to make the image slide up to reveal the user login form. This is just one extra click, but it’s one extra click every single time you turn the computer on. That sort of inefficiency completely flies in the face of the ISO standard for usability (efficient, effective, and satisfactory).
Recoverability from errors is another area where Windows 8 is bipolar. In the traditional desktop UI, there are the normal minimize, restore, and close icons on each application window, in the upper right. In Modern UI apps, these icons do not exist and finding corresponding actions, especially “close”, is hard or sometimes impossible. For example, in the Mail app, when it opens it asks for your login information. You have to options: “Sign In” and “Cancel”. Clicking “Cancel” shows some text that seems like an error message that states you must login with your Microsoft account and “try again”, which is a link back to the sign in form. First, that’s the incorrect order (you “try again” to login). Second, “Cancel” implies I didn’t want to do it anyway.
I realize some of these gripes are with apps I’ll probably never use (Mail) and some settings can be changed (like the lock screen), but the overall out of the box experience with Windows 8 is frustrating to say the least. I would not recommend it to any Windows 7 user out there.
Snippet of screenshot from Amazon Seller form used to add a product. I’m really surprised Amazon’s UX folks didn’t raise an issue that most users probably don’t know how to measure “bytes” in a text area.