Home > The Offive > Archives

Archive for the ‘Other Projects’ Category:

Human-Computer Interaction Best Hits! (More Fun Than You Think!)

October 21st, 2009 by Brian Zaik

This semester I’ve been having fun with my Theory & Research in Human-Computer Interaction course with Professor Nathan Freier.  The class has been pretty awesome, with a lot of meaningful discussions about the past and potential future of computing.  I wanted to put out a couple links to the class blog to the essays I’ve written for the course, which I think have come out pretty well, but I’ll also suggest that you visit the class blog yourself to see all the goodies.  I think the other people in the course – grad students, mostly, but also some M.S. student like myself – do a great job introducing lots of meaningful topics in the HCI arena.  Think about it: computing and the windowed GUI haven’t changed much since the first Macintosh (OS X and Windows 95 have arguably brought the biggest sets of changes) in 1984.  Ubiquitous computing is still unrealized, and emotional computing is being explored but far from being anything but a pipe dream.  Where’s our augmented reality?  Here are the topics I’ve covered so far on the class blog:

  1. Jef Raskin: The Black Sheep Hero of the Humane Interface:  The father of the first Macintosh developed many new and noteworthy ideas about how computers should work for people.  He believed that we should drop the windowed GUI in favor of a more “humane” interface intended to work for human users, not the other way around.  And though he passed away in 2005 before realizing his ultimate vision for computing, his son Aza now has the opportunity to incorporate many of his old ideas into the coming generation of browser-based operating systems.  Oh, they’re coming.
  2. The Rise of Truly Emotional Computing:  We like to say that we can develop computers which act as social agents.  Sure, we all get pissed off at our laptops and throw them around, punch them a bit, and yell at them, but truly emotional computing – machines that can sense our emotions and adapt their behavior to accommodate to what they notice – haven’t yet been designed.  But there’s a lot of work under way in the EU.  I can’t do that for you, Dave.
  3. Back to the Drawing Board:  Our laws of old that are supposed to help us as designers to build computer interfaces that are well within the physical limitations of the human body are old and outdated.  They no longer work for new and exciting interfaces like direct manipulation, eye gaze tracking, or 3D.  We need to change our ways (and incorporate existing knowledge sets, with some updates) to fit the new “frontier” contexts of the future.
  4. Contact at the Expense of Privacy or: How Google Asked Me to Stop Worrying and Ride the WaveGoogle Wave is the super, whiz-bang communications medium of the future.  Or so Google claims.  But the privacy implications of this new technology must be incorporated into every stage of Google’s design for the system.  Wave promises to do away with all the old defects of email, but is that really for the best for all of us?  Do we really want our online friends to be able to see when we type and sign online?  Is removing the “barriers to communication” actually a completely good thing?

I hope you enjoy these other blog posts.  As I move forward with designing the future of computing, I’d like to hear your thoughts.  And definitely check out the rest of the posts from the course; I’m sure you’ll find days of excellent reading material.

Concerto Goes to the Stratosphere

July 22nd, 2009 by Andrew Armenia

This weekend, the RPI Electronics Club, an organization which shares considerable membership with the WTG, launched a weather balloon. Our goal was to experiment with RF electronics, but as a side benefit, we were able to take some incredible photographs:

The upper atmosphere

Interstate 787 at Route 378

More upper atmosphere

Of course, this wouldn’t have much to do with the WTG, except that this balloon happened to be running a modified version of Concerto Player. With some of the useful improvements in the 3.0 version, we were able to easily strip out the “open browser fullscreen” pieces, and run some shell scripts to capture photographs and GPS coordinates and transmit them over an RF modem. Unfortunately, the RF modem failed shortly into flight, so we weren’t able to capture the photographs in real time. Some folks in Vermont found the payload package, which was still in one piece, and we were able to retrieve the photos. But in this case, a picture really is worth a thousand words, so I’ll leave it with these:

Pre-launch testing
The balloon just before launch

Payload package innards
Inside the payload package: camera (left), single-board computer (bottom of the frame), GPS unit (top right), and lots of rather dodgy electronics.

The author, standing on top of a mountain, listening for a signal which didn't come
We initially headed off in the wrong direction, and so we quickly lost the signal being sent by the GPS receiver. In the hopes of picking it up, we drove to the top of a mountain. There I proceeded to get myself photographed while holding a radio to my ear listening for a non-existent signal. Oh well…

Union Website Feedback is Musical

July 9th, 2009 by Brian Zaik

Haris and I have been toiling away on feedback-related updates to the Union websites for what feels like an eternity. Luckily, the git merge wasn’t too bad, and we’re ready to rock and roll. We’ve implemented a couple pretty interesting user experience elements that I’d like to walk through. But first, check out the feedback box by doing the following:

  1. Visit union.rpi.edu.
  2. Scroll to the bottom of the page, and look under the “Any Questions or Comments” section.
  3. Click on one of the buttons to open up the feedback form.

For this feedback system, we have both the front end form and some back-end administrative panels. Each feedback category is bound to a particular recipient, such as Rick Hartt (the Director of the Union) or the Web Tech Group. We can create these listings on-the-fly, and they appear within the administrative portion of the site with a nice big number of unaddressed comments.

jQuery Tools = WIN

jQuery Tools is a great new jQuery Javascript library that is brutally lightweight (5.8 kb!) and extremely useful. It has a number of insanely great UI tools that you can use simply by calling the Javascript file with this one line:

<script src="http://cdn.jquerytools.org/1.0.2/jquery.tools.min.js"></script>

We’re using the following tools for the feedback form:

  • Overlay: When Javascript is enabled on the visitor’s browser, a nice-looking box pops up. The starting position is tracked based on the element that is initial clicked, similar to how Mac OS X opens folders from the desktop. The background is simply a PNG with a transparent border that you can change at will. Everything is just controlled via one simple CSS file. Best of all, the overlay is just one div that can be included once anywhere within the page markup. However, the overlay element can be called from any element with a rel=”#overlay” attribute.
  • Expose: When the user clicks on a target for the overlay box, the rest of the screen darkens automatically around the window. It’s a striking effect that helps the user focus on the modal box. There’s no confusion about where the visitor’s eyes should be focused.
  • Tooltip: When the mouse hovers over a target, we call the jQuery Tools Tooltip control. This pops up a handy, subtle tooltip dialog box that is, again, based just on some CSS and a single PNG background image. We can create as many of these tooltips on the page as we want – we simply need to call the tip function on specific elements of the page, referenced by unique classes, tags, or IDs.

jQuery Tools really is a great library, but we also realize that we need to provide for graceful degradation. If a user doesn’t have Javascript enabled, the page does just that, falling back to a simple form on the page. And we also use reCAPTCHA for anti-spam human verification, which works (after MANY headaches, especially for poor Haris) on both the AJAX and non-AJAX versions.

Overall, I’m really happy with how this feedback system turned out, and I’m excited with the possibilities presented by our use of these advanced jQuery libraries. They really help improve the user experience.

Friday Updates: Union FAQ, Feedback Form

June 27th, 2009 by Brian Zaik

Tonight, we pushed some changes and bug fixes to the Union website. More specifically, we added a Frequently Asked Questions page that utilizes a nice jQuery expand/collapse action. Other than that, we’re prepping a much more detailed update to add in a powerful feedback controller. It’s going to look very nice.

A sneak peek at the new feedback form for the Union website.

A sneak peek at the new feedback form for the Union website.

Rails authentication, authorization, plugins, and testing

June 18th, 2009 by Andrew Armenia

So I’ve gone and done the unthinkable: I’ve created a Rails plugin and posted it to github. So here’s a brief walkthrough of the process.

Authenticates_Access

authenticates_access addresses the problem of restricting access to certain parts of models based on the currently authenticated user. The plugin (not for production use yet!) is at http://github.com/asquared/authenticates_access, and there is also some preliminary documentation there. But the more interesting bit was creating the plugin itself…

Plugin Creation

This couldn’t be simpler: ruby script/generate plugin YourPlugin. Then edit init.rb and lib/your_plugin.rb in the vendor/plugins/your_plugin directory. init.rb gets run at application startup, so it’s a good way to put mixins into classes such as ActiveRecord::Base.

Plugin Testing

This very undocumented bit of Rails just consumed several hours of my life. If your plugin extends ActiveRecord, be prepared for an interesting experience. First, create a few models in the test directory. Then, you’ll want to create test fixtures: temporary data structures to be used for the testing. The fixtures are stored in YAML files in a straightforward format. Getting ActiveRecord to load these, and setting up a proper environment, can be a bit challenging. This setup can be found in the test/test_helper.rb file, which you must complete manually. (See authenticates_access for an example of something that works after much trial and error, but is quite possibly a very wrong way to do it.) Once this is done, though, you can edit test/your_plugin_test.rb, and create test blocks. Your fixtures will be accessible in some hash-like objects: “users(:admin)”, “comments(:a_comment)”, and you can “assert something_is_true” or “flunk if something_is_true”. Worth the few hours to get here, especially since I’ll never have to spend them again.

Upcoming Improvements

I hope to extend authenticates_access to deal with reading as well as updating, creating, and destroying objects. However, this presents a more considerable challenge. For instance, how does one deal with indexes in the presence of access control? Will users of find( ) receive arrays of completely unusable objects? As always, feedback is appreciated.

WTG Site Updates…

June 6th, 2009 by Brian Zaik

Friday was a night of updates for the new Web Tech website. Most notable of the changes is the fancy new project show page, which you can observe here. It’s a nice way to present more information about each of our major projects in an expanded format. Two cool things that I’ll highlight on these pages are the nifty new image gallery, which is built on the Galleria plugin for jQuery, and the nifty quick link area to our Repositories site for those projects lucky enough to have their source codes on teh Internets.

These changes, as well as others to clean up areas of the site, are intended to expand the information and presentation substance on this forward-facing site. It would be a real tragedy to just leave all of the great stuff we’ve worked with over the years at the WTG locked up tight, so we’re bringing it all to you, one update at a time.

I’d like to give a special shoutout to our friends at the Rensselaer Center for Open Software, often abbreviated as RCOS. The Center gave us tons of support with Concerto in the past, and I’ll be working with them to fully realize our launch of Concerto into the open source arena. I’ll post a debrief over the weekend from the presentation I gave to RCOS yesterday – it was pretty well received. Think of this blog as the companion guide to all of the work I’ll be doing with RCOS and Concerto.

Anyway, it’s getting pretty late in the morning, so I think I’ll retire to bed. Hopefully I can snag a Palm Pre in about 8 hours…