What makes a design "Googly"? [googleblog.blogspot.com]


(photo by uptal of flickr)

Web application designer's can take inspiration from the Google User Experience Design Principles. These 10 guidelines are great to keep in mind and help you think about the people who will have to use your web application every day.  The principles tie directly into the Ten things Google has found to be true.

The first two are probably the most important to us here at Solution Grove.

1. Focus on people—their lives, their work, their dreams.
2. Every millisecond counts.

View full post

Session Timout Usability [www.codinghorror.com]


(photo by FABIOLA MEDEIROS of flickr)

Jeff Atwood is frustrated with web sites that timeout a session and lose the data that was typed into a form. There is a huge comment thread discussing the various ways around this.  Most of them are overly complex and try to use tricks like refreshing the page using AJAX. The simple answer of course is, don't lose the user's work.

Some commenters say you should just lock your computer, but that obviously is not appropriate in all situations. Short session timeouts are not the right answer for all situations either. 

Sessions timeouts are necessary for security in some applications, most people know about online banking, and really any application that expects users from a shared computer. The developers and administrators of a site need to balance security and usability and decide on the right session timeout.

View full post

Better Merging with Subversion [www.orcaware.com]


(photo by HubbleSite - NewsCenter)

In an earlier blog post about branching and merging with subversion, I detailed how I do merging with subversion alone. 

It's great to understand the basics but as Mark Aufflick commented on that same article, you're crazy if you don't use "svnmerge.py".

So, what is svnmerge.py? Why do you need it?

The problem stems from the fact that Subversion, older than version 1.5, do not keep track of your merges.

As a result, the developer needs to keep track of merges manually. This means that a developer will have to take note of which revisions were merged to the trunk or to a branch. If the developer is not organized and diligent with tracking his/her merges, it is perfectly possible to "remerge" revisions that have already been merged before, resulting into lots of conflicts and hours of trying to sort them out.

View full post

posted in

(photo by dcjohn of flickr)

Jakob Nielson writes about the issues facing designers who want to design Web user interfaces that are easy to use. He promotes user testing and defines 3 levels of a designer-user continuum. The first is where the user is the designer; the second, where the designer understands the product or domain; and the third, where the designer is unfamiliar with the domain. He then gives some examples of projects and problems that could occur.

There is one example that I did not quite understand. He mentions a Web site selling suits and says the designers were too close to the people who make the suits, instead of the people who wear suits. It seems to me, you could probably find a designer who could, at least, pretend he wanted to buy a suit while designing the user interface. Of course, you have to remember to do this.

View full post

posted in , ,

Google Reader now fully supported by screenreaders using WAI-RIA specification.

 

View full post

posted in ,

(photo by Photo-Mojo of flickr)

I am interested in how games can be used in learning. Pablo recently announced the release of the e-Adventure engine. This is an adventure game authoring environment and engine for building educational games or simulations. It includes an assessment component and can integrate with an LMS that supports IMS-LD. It also supports adaptive learning and it is Open Source.

Another interesting project I just discovered is Platinum Arts Sandbox. The goal of this project is focused on using the platform to teach kids how to make games. This is a fully 3D game engine and again it is Open Source.

View full post


(photo by Lauro)

I have been quite busy these past two weeks with a front-end project for a client. I can't say who yet but the "user-agent" matrix they had tells me that they maybe sticklers, making sure the Web pages we are developing for them work and look good across different browsers.

So, in the last two weeks I was transported back to the year 2000 when I was developing Web pages for IE5.5, IE6, and Netscape. Trust me, those were not the greatest times to be front-end developers.

Internet Explorer, in particular, was the bane of Web developers who happen to be working on projects where Web pages need to look consistent across different browsers. If the little annoying differences between IE and Netscape don't kill you, then the little annoying differences between IE5, IE5.5, and IE6 will.

View full post

posted in

(photo by art_es_anna of flickr)

There is often a need to take content from the web and share it in a different format. For one client, we built a web based report. The client also wanted the report to be able to be downloaded and viewed using Microsoft Word. To do this we decided to export the HTML results of the report as an RTF document.

A quick search of the web will show there aren't too many options to convert HTML into an RTF document that will work with modern CSS based HTML. One program that can do this is OpenOffice. Of course, OpenOffice can convert from any format it can read in, and can convert to any format it can save ,so this technique is useful for many file format conversions.

View full post

Ajax and Accessibility [openacs.org]

As we add Ajax-powered applications for our clients and share the code with others, there is some demand to make these features available within OpenACS and .LRN. .LRN, in particular, has a goal of meeting WAI accessibility guidelines. It is very challenging to meet these guidelines with Ajax-powered systems.

At the latest OpenACS/.LRN conference, we had a discussion on new Ajax applications and accessibility. I created a wiki page to document what we learned, including links to resources and best practices, as well as draft proposals from WAI for accessible rich internet applications.

View full post

I got back this week from the OpenACS/.LRN conference in Guatemala. There was a great bunch of interesting people there and there was a lot to learn.

I presented on an AJAX-enhanced data table, known in OpenACS as Listbuilder. The video and slides are available. The user interface was inspired by DabbleDB, which provides a collaborative alternative to spreadsheets for managing data. In our case, we needed to integrate this level of interactive data manipulation with an existing .LRN system. Data privacy was also an issue, so everything must be hosted internally. 

View full post


(photo by Gzip)

I envy the web apps running off apache. They get an incredible speed boost thru compression just by enabling the mod_gzip module.

Websites on AOLServer 4.5 can use ns_zlib to serve compressed adp pages but I don't know yet if static files like images, cascading style sheets or javascript can automatically be served compressed.

We've been doing lots of front end development and the size of javascript and css files can take its toll on load times. 

Just yesterday I came accross this thread from the AOLServer mailing list archives where the author shares a filter for AOLServer that he wrote to serve up gzipped content if it's available. You don't need ns_zlib to use this filter as you are expected to gzip your resources beforehand. The filter will essentially ...

View full post


(photo by Subversion)

Version control is a must for projects such as ours with a geographically diverse team of developers each working on any number of these projects at the same time.

Subversion, because of its similarities to CVS, has made it easy for us to reap the benefits of version control with minimal effort. However, there is a lot more to subversion than update and commit. There is also branching and merging, but unlike CVS the concept is easier in subversion, at least, in my experience.

So when does branching become necessary or useful? Branching allows you to create a copy of the portion of your project to another location in the repository. This allows one developer to work on features that may not be part of the main line of development without disrupting the work of other developers.

View full post

posted in

Accessible Google Charts [ajaxian.com]


(photo by Google Charts API)

It's interesting how different companies, competitors even, can come together for a good cause in the name of making it easier for more people to use the Web.

In this feature from the Ajaxian, a Web architect from Yahoo, Chris Heilman, makes Google Charts, a product from Google, more accessible to people who can't see the charts it generates.

By "people who can't see", I am referring to people who are either fully or partially (color) blind and who rely on special screen readers like JAWS to view Web pages. 

View full post

posted in , ,

Ajaxian mentions SafeErb for Rails, an add-on to help secure that user input is safe. It does so by checking if you explicitly call a certain method to escape the user content.

OpenACS, the base for .LRN, has been doing this for awile now. We took a different approach. All content is escaped by default, and the programmer must decide when to let through unescaped content. Either way it's something all Web frameworks should support if they allow users to enter HTML. 

View full post

A talk by Stephen Taylor describes the differences between traditional, engineering based, software projects, and agile software projects. The analogies are very enlightening. The engineering model is compared to building a bridge. There are two main phases, design, and construction. After construction begins it is expensive if not impossible to change. Software is not like that at all. Specifications and requirements always emerge during the development process and change is inevitable in software projects. If we break up programming into two phases, the design phase continues until the moment the software is delivered. Construction, otherwise known as compilation, is cheap, and can by done a limitless number of times whenever the design changes. This leaves us with the ability to engage the users of the software directly, and collaborate with them to produce the final product. Frequent delivery of finished features provides for constant feedback, and hopefully allows the final product to better meet the users business needs. In the talk, they go even a step farther than most Agile projects. The users actually sit down with the programmer, "break" the problem, or demonstrate the behavior they need changed, and the programmer makes the changes right then, with direct collaboration between the end user of the software and the programmer who can make the changes. The speaker says
From this you can see we have collapsed the stages of analysis, specification, design, coding and testing into a short, uninterrupted dialogue with our user. Communication is high-bandwidth, face to face; feedback is rich and immediate.
The idea of uninterrupted dialogue with the user sounds like the ideal situation, and isn't possible in all projects, but striving towards that goal will improve the results of any software project.

View full post

posted in
XML
Recent Entries
Categories

AJAX (13)
CCK08 (1)
MEL (14)
LAMS (3)
Tech (13)



Authors




Archive




Notifications
Icon of envelope You may request notification for Solution Grove Blog.


Syndication Feed
XML


Recent Comments
  1. Eamon Costello: thanks
  2. Dave Bauer: Using clickpass
  3. Caroline Meeks: Should we put this on Solutiongrove.com, .net, .info??
  4. Jong-Dae Park: How about redirecting users to setup password for elgg
  5. Caroline Meeks: Great job!
  6. Mark Tomizawa: Bandwidth (the human kind)
  7. Hamilton Chua: ns_zlib on OpenACS
  8. Hamilton Chua: Thanks Mark
  9. Mark Aufflick: svnmerge.py saves you the pain
  10. Hamilton Chua: Mosio, Yahoo Answers on Mobile ?



Technorati Blogs