Sunday, December 30, 2012

Messaging for Mobile Apps (XMPP)

I've been looking around for a solution to messaging between devices since I'd like to experiment with creating a lite version of a game (Avatar) that I worked on in college as a learning experience. More about that at another time.

http://en.wikipedia.org/wiki/Avatar_(video_game)

XMPP (Jabber) looks interesting. What's really attractive is that I may design the App with no server-side component with just message handling on the Internet. It's different since Avatar in college depended on shared memory (common) and only used a message queue for a portion of the game.

Here's video that got me started (Hulu developers):

Building Asynchronous Communication Layer w XMPP, Ruby, Javascript
by Andrew Carter and Steve Jang
http://www.youtube.com/watch?v=3ZynQ04BuN8

And an interesting article:

http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes

And a JavaScript library to experiment with:

http://strophe.im/strophejs/

Jabber server to experiment with:

http://www.ejabberd.im/

http://www.jabber.org

I've been working through the XMPP Professional Programming with JavaScript and jQuery book. (Jack Moffitt's Blogbook site, book forum, and Github with code.)

A very valuable link to know about relates to CORS and cross-domain security issues:

http://metajack.im/2010/01/19/crossdomain-ajax-for-xmpp-http-binding-made-easy/

And root article on CORS:

https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS?redirectlocale=en-US&redirectslug=HTTP_access_control

Another interesting link -- covers configuration issues related to cross-domain:

Build a web-based notification tool with XMPP
https://www.ibm.com/developerworks/xml/tutorials/x-realtimeXMPPtut/

Covered in the book -- more reading some day on the theory behind Google Docs multiple editors of a document:

http://en.wikipedia.org/wiki/Operational_transformation


Saturday, December 15, 2012

Mobile Design Prototyping

This is an example of what the Internet can do. If you have a good idea, you can assume that a bunch of other people have the same idea. It's the team that executes quickly, effectively, and with some luck that will succeed. I wanted to do some mobile prototyping and ran across the following list:

http://www.quora.com/What-are-the-prototyping-tools-for-mobile-apps-for-user-experience-professionals

I am interested in HTML5 app dev so am looking for multiple platform support. Many are iPhone/iPad only. There are a set of solutions that are designed to string pages of graphics together adding hotspots to create a prototype and others that let you mock up prototypes using components. I'm interested in the latter since I'm heading towards creating a mobile app, not just designing one. Some that I've found and am experimenting with:

Proto.io
http://proto.io -- This is one that I used to create a simple 5 screen prototype of an attendance app for work and am favoring now because I like the feel of the application. The Plus plan is $24/month as of this post.

Codiqa
http://codiqa.com

Fluid UI
http://fluidui.com/editor

Justinmind
http://www.justinmind.com -- This one is a Windows/Mac app with web tie-in. It looks like a more comprehensive and full featured product for a professional designer.

Update: found this site recently...

http://www.prototypingtool.com/

Tuesday, December 11, 2012

Mobile Design Video

A good video on mobile design at Marakana:

Hampton's 6 Rules of Mobile Design
http://marakana.com/s/post/1332/hampton_catlin_sass_6_rules_mobile_design_html5_video
  1. On mobile, simplicity is a requirement.
  2. Simplicity is a balance between comprehension and brevity.
  3. Understand, and then optimize your core value proposition.
  4. "Where?" is more important than "who?"
  5. Assume terrible dexterity (child, drunk, old person trinity of testers).
  6. The footer is a dead zone.
Where refers to home, transit, bars, toilet.

He also makes reference to Dieter Rams, a noted industrial designer:

http://en.wikipedia.org/wiki/Dieter_Rams

Tuesday, December 04, 2012

The Importance of WIP Limits

In Kanban there is a concept of Work In Process limits for more efficient overall operation. I've felt this myself recently as we enter a slower time of the year at work. When we're not operating at 100% (or more) of capacity, we have time to check our work, avoid mistakes and rework, and even consider process improvement.

https://www.google.com/search?q=wip%20limits

Something to think about the next time you're heading into a period of 100% utilization. It may seem efficient, but find ways to reserve some buffer time.