Microsoft Office Plugin for Moodle [news.cnet.com]
Microsoft Education Labs has a free Office Addon for Moodle. This addon allows teachers or the owner of a Moodle course to upload documents to their course and access Moodle documents from within Office. Once the addon is installed to Office two items are added to the file menu: Open from Moodle, and Save to Moodle.
The user configures the address of their Moodle server and logs in with their Moodle login. After this the user can access Moodle files from Office.
The addon works with Office 2003 and 2007 and Moodle 1.8.x and 1.9.x. The My Courses should be installed for the addon to work. No additional Moodle modules are required for the addon to work.
Granting Certificates in Moodle [docs.moodle.org]
The Certificates module for Moodle will allow granting certificates based on completion of a Moodle activity.It allows uploading graphics and setting the style of the generatied certificate. Once a user has met the minimum criteria they can download a PDF and print their certificate.
There are several options for setting criteria for granting a certificate. These include overall course grade, time spent in the course, and ability to require one or more activities be completed, optionally with a minimum grade for the activities. Any of these requirements can be combined to determine when a student receives a certificate.
Images can be uploaded to style the borders and include a watermark if desired. A signature image can be included, and of course, a logo can be uploaded.
We added a new post_status method to Moodle's mnet enrol library that allows us to push updates from Moodle to ELGG. Once we had this function enabled we modifed a few of the Moodle features to call this function to update the eportfolio. These included course enrollment , successful completion of a questionnaire, earning a certificate, and posting to a forum. A simple function call for each action is all that is needed. To find the correct place in the code, I noticed add_to_log was called with similar information for the different actions so I added the code for Elgg posting in the same places. Since the users are already authenticating using MNE, we can match the corresponding user on Elgg so that the status goes to the correct student's River.
At Solution Grove we are always experimenting with new ways to interweave web applications. We previously have created a Facebook API suport package for OpenACS that allows supporting Facebook applications with an OpenACS backend server. I am now working on Facebook Connect support which will allow users of an OpenACS site to publish entries such as status updated and photos to their Facebook page from an OpenACS application.
The first application will be a simple blog that will allow the user an option of publishing the blog or a summary to their Facebook page.
The next development will be a general "Share" button to allow any OpenACS content to put shared with Facebook users.
Recently I had a project to integrate Elgg and Moodle. In an earlier post I discused the single sign on feature where users could login to Elgg and be automatically signed into Moodle when they clicked the link to Moodle pages.
In addition I needed to make the themes for Elgg and Moodle match. This is quite challanging. As of Moodle 1.9 course layout still uses some tables which make duplicating a similar layout to Elgg difficult.
In addition I had to make the top navigation/toolbar match between Elgg and Moodle. This was interesting because the menus in the toolbar were generated dynamically by Elgg based on the user identity. To accomplish this I created an AJAX based solution using the Yahoo UI library. I created a custom Elgg view that just provided the toolbar without any additional content. This was added on the fly to the top of the Moodle pages for a seamless experience.
Elgg/Moodle Integration with MNET [docs.moodle.org]
We recently connected ELGG and Moodle using the Moodle Network feature. This provides an API to allow single-sign-on between multilple servers. This can include multiple Moodle server, or other servers that support the MNET API.
For this project we needed ELGG to be the primary authority so users would sign into ELGG first, and be able to access Moodle by clicking a link that would provide the proper information to Moodle to log them into Moodle.
To the end user the integration is seamless. They click a link and the Moodle site can appear as integrated into the ELGG site. This requires some fiddling with the HTML and CSS to get Moodle and ELGG themes to be consistent. I address this in another post.
I have been exploring making a new theme for Moodle. There are already some good resources on creating a new theme in the Moodle documentation. These cover customizing the CSS to make changes to most parts of Moodle.
I did not find any good docs on actually changing the templates for Moodle. In the current Moodle 1.9.x design the index page and other course pages don't entirely share layouts. In addition Moodle 1.9.x uses table based layout so styling the boxes can be a little tricky.
The first problem I had was getting the spacing between the columns on the home page and the course pages consistent. Course pages have a container in the middle column that you can style, but the index page does not. It has a div that does not have a css id or class.
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.
Several of our .LRN client wished to print attendance or completion certificates after a user had completed and online or in-person course.
We developed an online system integrated with .LRN and the Attendance package to allow administators to choose which users had completed the course, and to layout and print certificates. We used the Reportlab rml XML format to define the templates and used tinyrml2pdf to generate the PDF files for each certificate.
Here is a demonstration of the system.
Connectivism Course [ltc.umanitoba.ca]
I am participating, in a non-credit capacity, in the massively online course Connectivism and Connective Knowledge. This is a great experiment to apply the ideas of connective knowledge to a course about the same topic. As a programmer, I enjoy the recursive nature of that. The course started this week. I am a little behind on my homework but I am catching up. My first task was to post an introduction on the Moodle forum for the course.
Here is what I posted to the forums:
I am Dave Bauer from a small town outside Albany, New York. I am chief
architect at Solution Grove, a company that provides online learning
technology, among other things.
I have been interested in learning pretty much ever since I got online.
I have followed a networked, hyperlinked path all around learning and
learning technology, and hopefully this course will give me even more
to think about, and help me organize me thinking.
This course will be a success for me if I can take what I have learned, and actually explain it to someone else!
I have actually followed a networked learning path to my current job. I
was exploring online for ways to improve a retail web site I ran about
10 years ago. I discovered an online book, Philip and Alex's Guide to
Online Publishing, and after reading that, I changed my focus. The main
premise (besides the software behind it) is that a community is a set
of people focused on learning. So from there I learned about online
community software and eventually taught myself enough to find a full
time job building interesting online communties, often focused on some
form of learning.
I hope to be able to learn from this course how to make better software
tools for online learning by understanding how the learning half of
that actually works.
Another Correlation, Richard Feynman and Paul Graham [www.jakevoytko.com]
Another reference to go along with my previous post notes how Richard Feynman's description of the NASA engineering process,
"The usual way that such engines are designed (for military or civilian aircraft) may be called the component system, or bottom-up design"
coincides with good programming practices. Jake Voytko notices that Paul Graham says something similar in ANSI Common Lisp,
Don't Bother with SEO. Did it Ever Work? [www.cincomsmalltalk.com]
Jeff Jarvis says that as Google makes search more personalized, search engine optimization will be less relevant.
"What does that mean to brands? The world gets confusing once more. But I think it means that true relevance becomes more important than SEO tricks"
James Robertson says it has been irrelevant for awhile.
"Trying to "optimize" for Google (et. al.) is a game whose relevance is vanishing."
I agree, it has always been irrelevant if you were actually providing useful content for your visitors.
2-3-98 Moodle Recap [confluence.delhi.edu:8443]
I attended the 2-3-98 Open Discussion on Technology in Education conference last week. In many cases, Open Source is becoming just another option when evaluating software for use in education. Of course, there are still objections from some, but more and more software in compared on the solution it can provide, without regard for the license. One day of the conference was devoted to Moodle, and it was clear that Moodle was regarded as a superior solution by those that chose it. There was not any bias in choosing open source or proprietary solutions noted by those that chose Moodle. That is, they chose Moodle for the the features it provides.
2-3-98 Conference: An Open Discussion on Technology in Education [confluence.delhi.edu:8443]
2-3-98 Conference: An Open Discussion on Technology in Education will address Open Source in Higher Education, and include a second day Moodle Moot. I'll be attending the conference June 19 & 20, 2008 as SUNY Delhi. SUNY Delhi is using Moodle for their unversity LMS.
One of our clients, Stephen Wilmarth, from the Center for 21st. Century Skills will be giving a presentation on how they are using Moodle to conect high school students in CT and in China!
This should be a good opportunity to both learn more about Moodle, spread the word on LAMS and ELGG integrated with Moodle in an amazing setting. According to the web site: "Delhi, NY is nestled in the Catskill Mountains in a land of wooded hills and fertile green valleys with streams, covered bridges, well-tended dairy farms and beautiful vistas. Join us in a great setting for a great conference!"
What makes a design "Googly"? [googleblog.blogspot.com]
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.
Session Timout Usability [www.codinghorror.com]
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.
Gustavo Duarte makes a good observation about engineering and software. He compares some information in Richard Fenyman's report on the Challenger Disaster and software design. The most interesting parts are how the avioncs where designed.
The software is checked very carefully in a bottom-up fashion. First, each new line of code is checked, then sections of code or modules with special functions are verified. The scope is increased step by step until the new changes are incorporated into a complete system and checked. This complete output is considered the final product, newly released. But completely independently there is an independent verification group, that takes an adversary attitude to the software development group, and tests and verifies the software as if it were a customer of the delivered product.
The testing step is the most important here.Each small part is tested as it is built to ensure it is correct before moving on to the next part. Software projects can learn from this. It is an interesting data point considering the quality level that is required for the Space Shuttle. All projects should work towards a goal of this level of quality. Testing at each phase can help improve quality and inform the design as the tests reveal shortcomings and expose new ways of thinking about a problem.
Course Management Content Conversion Tools Wiki [edtechpost.wikispaces.com]
Scott Leslie blogged about a new wiki he set up to keep track of content conversion tools for course management systems. He is asking for help to complete it.
This is necessary since no two CMS support import and export in exactly the same way. We have felt Scott's pain, the .LRN LORS (Learning Object Repository Service) package had to have special import procedures for each version of Blackboard we wanted to support import from. It looks like there is still a long way to go in learning content interoperability.
The cynical view is that there is very little ecconmic driver for any particular vendor to really get the bugs out of thier export. Yes, it has to exist on the spreadsheet, work in the sales demo, or the product won't be bought. However, its years after the system is installed before users really start using export and by then the CMS Vendor has thier money.
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.
Accessibility, Google Reader Example of WAI-RIA [googleblog.blogspot.com]
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.
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.
Distributed Social Networks [opencontent.org]
David Wiley posts about fully distributing the social network. This basically means empowering blogs or other personal Web sites to make the connections directly, without a centralized service such as Facebook. One of the ideas that makes this work is URLs are people, too.
Standards like OpenID, XFN, and hCard can be used to tie all of this together. The DISO-Project is working on the code to make this happen now. They are starting by building on Wordpress, but any Web platform should be able to support these formats.
OERCommons, social netowrking around Open Educational Resources [www.oercommons.org]
OERCommons is a site organized around searching and sharing open educational resources. They have partnered with major open education resource providers to build one community around sharing and reusing these resources.
Update: Annorate is a web service for sharing ratings and annotations of web pages. The source code is available so you can run your own annorate service.
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.
iPaper, YouTube style conversion of documents to Flash! [www.scribd.com]
Scribd has a new feature they call iPaper. This basically involves converting various document formats, including word and powerpoint into embeddable Flash content with read-only access.
Many of our clients would like to display content originally created in MS Word on their Web sites. In most cases, copy/paste from Word into a WYSIWYG HTML editor like Xinha or TinyMCE is problematic at best. This is especially true if the original document uses tables or other advanced features besides simple paragraphs and fonts. We have worked hard at trying to add documentation on how to do this, but Scribd may offer an easier alternative in some cases.
George Siemens outlined some concrete steps to get started with connectivism/networked learning.
Number 4 is interesting!
"4. To be networked, resources and conversations need a degree of openness. This is one of the drawbacks of an LMS. Learners need to develop comfort with transparency and see the impact. In a recent course on digital literacies, Peter Tittenberger and I found learners can be uncomfortable with posting thoughts in an open public forum. There is something personal (vulnerable?) about learning that certain individuals prefer to keep "secure". To balance openness and privacy, tools exist, such as ELGG, that allow educators to create mini-networks with greater privacy than the open web."
By default, our MEL product configures ELGG as a closed "walled-garden". We made this decision because the target audience includes the 6-12 grade range. One of ELGG's strengths is access control, allowing users to choose to restrict access even within the school community. MEL creates an ELGG community for each Moodle class so students can set blog posts, files, etc. as visible only to one class, or even just for their teacher.
Yahoo UI 2,5 DataTable Control and Accessibility [developer.yahoo.com]
Yahoo UI 2.5.0 was recently released and it looks like they are moving towards a highly functional, accessible data table that could make our Ajax Listbuilder work even better.
The DataTable page says:
"The DataTable control provides a simple yet powerful API to display screen-reader accessible tabular data on a web page. Notable features include sortable columns, pagination, scrolling, row selection, resizeable columns, and inline editing."
The promise of screen-reader accessibility is very encouraging. All along I have seen that Yahoo UI has been working on accessibility with their Javascript toolkit.
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.
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.
Phun learning physics [www.acc.umu.se]
Phun is a 2-D physics modeling environment, Windows only. A Mac OS X version is in the works according to the FAQ. It looks like another tool in the spirit of Squeak Etoys, Scratch. Scratch is generally geared more towards making games, while Etoys can be used for simulation as well as games. Of course, in any programming environment you can create anything with enough imagination.
XO (OLPC) can change the world. [www.groklaw.net]
Tell a Compelling Story With Your Next Presentation [www.sociablemedia.com]
Beyond Bullet Points is a Web site and book that helps you make more effective presentations. I just watched the first -five-minute screencast to help me get started using the story template you can download from the Web site.
Just going through the video and applying the ideas to my presentation, I was able to iterate quickly from a boring, traditional theme to a more interesting take on the same information. There's much more there but this is a great start.
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.
Printing the Public Domain [www.publicdomainreprints.org]
Intelligent Web App Email Handling [www.michaelnygard.com]
Should Email Errors Keep Customers From Buying? describes a robust way to handle email in Java. The main point is very clear - don't leave a web visitor waiting while the application server attempts to send an email to them.
I am surprised this is even an issue in 2007. I suppose not everyone has gotten the message (no pun intended!) that OpenACS has used a background thread to deliver email for years. It uses a simple queue that attempts to save the messages, batch them up, and send them to a local SMTP server regularly. Usually, it is done at least every 5 mins or so, but that depends on how much email you are sending out.
I can't imagine it's that hard to run a local SMTP server in this modern age. It doesn't seem necessary to rewrite a SMTP server within Java instead of just running something like Postfix on the same box. Postfix will then make sure the email gets delivered to the intended recipient.
Recently, there have been blog posts describing Agile programming methods and the essential role of collaboration between the customer and the developers. Check out Professional Responsibility by James Shore, author of the Art of Agile Development, and Business software is Messy and Ugly by Bob Martin.
A crucial point of collaboration is defining the schedule. The customer and developer work together to write stories to define what will be developed. The customer prioritizes the order stories that are developed. It is up to the developers to, then, implement the stories.
10 Blogs You Should Be Reading [halfanhour.blogspot.com]
Stephen Downes presents his personal list of 10 blogs worth reading that did not win an Edublogs award. There looks like some very interesting stuff here.
One example is OU Profiles Facebook application. This allows folks to let others know what Open University courses they are studying. This is a good complement to our Open Learning Search Facbook application that allows users find, then share, open learning content.
Yahoo Shortcuts Plugin for Wordpress [www.ysearchblog.com]
Yahoo Shortcuts are links to interesting, hopefully related content. Yahoo has released a plugin for the popular blogging platform Wordpress. This plugin scans the content of your post while you write it and shows suggested items to link to. The suggestions can include links to products, companies, Flickr photos, and more. The author always has the option to decide what shortcuts to add in. The plugin is backed by the Yahoo Term Extraction Service.
So far there are no ads in this content from Yahoo. A comprehensive review of the plugin is on Search Engine Journal.
Open Learning Search [www.facebook.com]
We have been interested in Open Courseware and other open leanring resources for a long time now. Dave Bauer and Caroline Meeks attended the Open Education Conference in 2006 and we were inspired.
Time and again research in education show that people learn better when they work together, and as we work with OpenACS, the obvious place to help would be to build communities around open lear(ning materials, but it seemed tricky to build a critical mass of users to make the community successful. Ideally users would form their own groups and help each other take advantage of these resources.
Email enhanced collaboration? [www.mindthis.net]
(photo courtest of dangering)
Lars Ploughman follows up to his 10-to-1 email rules post. Basically email is never ideal as the only collaboration tool, but should be part of an overall collaboration toolset.
OpenACS is a collaboration tool that offers some good email integration while preserving the benefits of a collaboration toolset. For example, the discussion forums can be email enabled to send out new posts by email and to accept replies to those emails. This way, someone can refer later to a post by URL and all the email is archived in one place, and indexed for full text search. Other collaboration tools in the OpenACS platform can be enabled in the same way. Almost every applicaiton supports notification of new items and changes by email.
Another tool that is becoming more common is RSS syndication. In this way the user chooses to be notified in a news reader instead of by email. To reply from there they can just click on a link and go to the collaboration web site within their browser.
A collaboration toolset like OpenACS gives users the option to work with email, rss, or any combination. Of course, new communication mediums such as SMS can also be integrated with the right code.
A mix of tools that fit each users work style while preseving a searchable centralized history and current status of the collaboration is a good solution taking advantage of the technology we have now.
Excercise your APIs [www.oreillynet.com]
"Here’s a little secret that many “test-infected” developers know: testing makes you a better programmer. It’s not just that your code works. It’s that if you find something is hard to test, that’s a code smell. Maybe your superWunderFunction() which takes 13 arguments isn’t designed terribly well. That’s not saying that all hard-to-test code has a design flaw (GUIs, for example), but as you test more, you start writing code that’s easier to test.Your functions will take fewer arguments. Your functions won’t try to do too many things. Your functions are more likely to be loosely coupled. You’ll have less reliance on global variables. The list goes on and on.
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.
Pair Programming With the Users [vector.org.uk]
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.
LAMS Community Launched using .LRN [www.lamsfoundation.org]
"LAMS creates "digital lesson plans" that can be run online with students, as well as shared among teachers. The LAMS Community allows teachers to share and adapt digital lesson plans, and discuss their experiences of using LAMS." "The LAMS Community is central to our strategy of empowering teachers to transform education using the revolutionary digital lesson planning approach offered by LAMS. Educators can now freely and openly share 'best practice teaching' in a way never seen before in the history of education," said Professor James Dalziel, leader of LAMS. "We chose .LRN for its sophisticated community management functions, complementary feature set, and our shared open source philosophy," Dalziel said.An interesting side note in the press release is the announcement of integration between LAMS and .LRN for course management similar to the integration of LAMS with Moodle.
John Norman, Director of the Cambridge University Centre for Applied Research in Educational Technology praised the LAMS/.LRN collaboration, saying, "Both .LRN and LAMS have set the pace in the development of collaborative/active learning platforms for higher education. This integration and co-operation between the two projects will create a powerful learning environment for students".
Centralized administration, distributed learning? [www.elearnspace.org]
Subscribe to notificaitons