For the past couple of weeks, I've used some of my time to write code that adds support for Federated Login for Google Account Users to an Elgg instance. This particular project's requirements don't end with just an implementation of Single Sign-On (SSO) but it also needs to have access to some of the user's Google Apps Data. Because of this, I decided to use Google's OpenID+OAuth Hybrid protocol, which is a good fit for the requirements.
The first thing I did was to register the domain of the application I'm writing with Google. You can read instructions on how to do this here. After I've validated the domain, I now need to write the interface to Google's OpenID+OAuth Hybrid protocol. The goal is to have SSO working with the capability to automatically create users on the Elgg side and map them to the proper Google account and to be able to request access to Google services.
I searched the plugins page for Elgg if anyone already wrote such a module and I got two results that piqued my interest. These are Kevin Jardine's OpenID client plugin and Justin Richer's OAuth plugin.
We were recently tasked with an Elgg project that requires forum discussions to behave like mailing lists. There's already a community contributed plugin that does something similar but doesn't quite meet the client's required specifications, notably with regards to permissions.
During the initial design, the client mentioned that we should think about reusability since the system might require other functionality that makes use of incoming emails in the future. So instead of just coding a plugin that will take care of discussions via email I decided to write a plugin that can handle incoming emails in a generic way and then trigger plugin hooks. The different plugins will then be responsible for implementation on how to handle the incoming email.
We recently posted about our project that implements Single Sign-On between Moodle and Elgg using Moodle Network (MNET). We wrote an Elgg plugin that extends the mnet-lib PHP library as part of this implementation. This early version of the plugin allows Elgg to function as an Identity Provider (IdP) so that its users can SSO to moodle. The current implementation assumes that ELGG is the authorative system. It doesn't have the capability to act as Service Provider. We expect to be doing a great deal more work to extend this plugin in its early stages so stay tuned!
Selenium Remote Control with Tcl and OpenACS [seleniumhq.org]
Last week I looked into automating web-based user interface tests using Selenium Remote Control. This is a Java based server that listens for HTTP requests containing test commands. These commands are used to drive a web browser with a Javascript adapter. It works with IE, Firefox, or Safari depending on which operating system the Remote Control server is running on.
It was very easy to setup, download the Selenium Remote Control java code. On Linux you can just type "java -jar selenium-server.jar" and the server starts up, waiting for commands on an HTTP server listening on port 4444.
News Flash: Design Requires Effort [www.useit.com]
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.
Clickpass, simplified OpenID [www.clickpass.com]
Clickpass is a new service that helps you manage OpenIDs. Once you signup you can use one click login on sites that support it. By default it will generate a unqiue OpenID address for every site you sign up on, so you are anonymous unless you choose to share your information with that site.
In addition they have developer tools to add Clickpass support to your web site. This looks like a good step to making OpenID easier to use.
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.
Step by Step, live walkthroughs of Web applications [icant.co.uk]
Step by step is a YUI-based tool that builds guided walkthroughs of Web applications. This looks like a great tool to build documentation right into a Web application. A context-sensitive help system could be built with this tool. The script is available under a Creative Commons license.
The positives are it is much more interactive than a video or screencast and the users stay right on the Web site.
The negative is that, at least for now, a programmer has to be involved in creating the experience. A screencast or documentation page can be created by a nonprogrammer. However, we could write a front end if someone wanted to use it extensively.
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.
Whatever field you are in, good communication is one of the keys that make work easier. In search for better communication, one of our colleagues came across the Jing program and shared about it to the rest of the group. I was tasked to look into Jing and see what it can do for the company.
As I tried to learn how to use the Jing program, I read through a few of the comments and blogs written by some users who participated in the Jing Project by providing their feedbacks which in turn became useful to the design and development team of Jing. The comments and feedback paved the way to a newer and better version of Jing. My learning experience with Jing was quite okay, I must say. Some things I found advantageous and useful while others, just about average.
Accessible Google Charts [ajaxian.com]
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.
XO (OLPC) can change the world. [www.groklaw.net]
XSS: Welcome to 2003 (or thereabouts) [ajaxian.com]
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.
As part of Solution Grove Blog's facelift, we added links to "share" the content to different social web communities. We already have the standard "Digg" and "del.icio.us" links in most of our client sites and we initially thought of putting this in our own blog. However, while browsing other blogs, I came across a niftier implementation. It's a free script provided by ShareThis. All you have to do is 1) register, 2) customize your "Share This" link using their "button builder", and 3) copy the code to your page or site template.
Your Gmail account could have been hacked ..... [www.davidairey.co.uk]
First, let me greet everyone Happy Holidays!!!
I would just like to let everyone know about a blog article I read about how a Gmail user and graphic designer, David Airey, lost his domain to a hacker because of a gmail exploit.
Please check your gmail filters and settings to make doubly sure that you have not been hacked.
cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot co openacs-4/packages/searchOnce you have the new search package installed, you will need the following utilities
insert into search_observer_queue (select live_revision,now(),'UPDATE' from cr_items ci, cr_revisions cr where ci.live_revision=cr.revision_id and ci.content_type='file_storage_object' and ci.name like '%.doc')You can repeat that query changing the like '%.doc' criteria to like '%.xls', etc... for each file type you want to index. Pdfftotext will not extract text from a PDF document that does not allow copy/paste from the text of the PDF document. In this case only the text of the filename will be indexed.
Subscribe to notificaitons