Thursday, April 11, 2013

PLATO Access Lists

At work today we discussed the need for a relatively sophisticated permissions system for controlling access to various features at a site we are building. I realized that something similar to what we were talking about was designed and built way back in the early 1980s on the PLATO system. Here's an Antiques Roadshow tour of PLATO Access Lists using a game I worked on in college as an example.... (if you want the PDF version contact me).

Avatar: A Multi-Player Dungeons and Dragons Game


An Access List is a system-provided capability on PLATO that allows authors (developers) to create custom flags that can then be used to control access to various features of a lesson (program). The example shown here is for Avatar, a popular RPG on PLATO. Keep in mind that this was created in the early 1980s and 512 x 512 plasma (orange) panel screens were state-of-the-art at the time.


Thank you to cyber1.org for providing a working PLATO system!

In an Access List there are roles (e.g. Author, Operator) that have sets of individual permissions. In this screen the roles can be set for the individual indicated (mike / s or mike@s in more modern lingo) by pressing a capital letter (A, B, C, D, E) or individual permissions can be set by pressing 1,2,3,4.


These are the individual options listed under the Operator Options (#2 above). So you could set a user to have Operator access and then enable/disable individual flags for that user.



Individual options and sets of options (Author, Operator, etc.) can be custom defined by the Developer without any programming (next four screens). The Developer of course still needs to put hooks in their code to look at the Access List flags.



The Developer can edit the sets of options….



And the individual options…



That’s pretty much it! This is the main entry screen for Access Lists and may give you some other ideas.


Sunday, March 31, 2013

Mobile Web Performance Video

This is an excellent presentation of the issues around performance of the mobile web including the overhead of cell towers, tools for measuring timing, etc.

Breaking the 1000ms Time to Glass Mobile Barrier (Ilya Grigorik)
http://marakana.com/s/post/1423/breaking_the_1000ms_time_to_glass_mobile_barrier_ilya_grigorik_video

High Performance Browser Networking (O'Reilly)
http://chimera.labs.oreilly.com/books/1230000000545

W3C Navigation Timing
https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html


Monday, February 18, 2013

Embracing Uncertainty

A worthwhile video that has some interesting overlap with my Zen studies:

Keynote: Embracing Uncertainty (Dan North)
http://www.infoq.com/presentations/Embracing-Uncertainty

Mentioned in the presentation:

Hofstede's cultural dimensions theory
http://en.wikipedia.org/wiki/Hofstede's_cultural_dimensions_theory

Matrix of Countries
http://www.geerthofstede.nl/dimension-data-matrix

Quick Ref of Dimensions
http://geert-hofstede.com/dimensions.html


Wednesday, February 06, 2013

Product Management Tool Kit (Chromebook Planning)

Some quick notes on tools that I want to have available as the Chromebook vs. Windows PC world becomes an option to consider. Will append to this note over time.

MS Office

Something comparable to the basics of MS Office are essential. Google Docs is probably sufficient, though I think it will begin to fall apart with spreadsheets larger than 10K rows. This is a pretty common occurrence in my work. Pivot Tables are also essential so need to evaluate those in Google Docs. Also need to experiment with presentations in Google Docs.

Screen Capture and Annotation

I use SnagIt every day on the Windows PC. Screencasts are becoming more important too.

Zip

Including ability to unzip RAR files.

Audio/Video Editing

These have been necessary with my volunteer work, not my day job. Would presumably delegate those to more expert resources.

Project Management

In the process of evaluating MS project on the web. Daptiv was another example used at a previous position. Issue tracking systems offer some of these features.

Any other tools are web-based these days including issue tracking, Wikis, version control, to do list, etc.

Chrome Releases Blog

More to come I expect....

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.

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