Introducing the User Script Console

The Alfresco JavaScript Console is really popular among Alfresco administrators and developers to easy automate tasks around Alfresco. This leads to more and more requests from users to have their problems fixed and tasks automated and keeps developers and administrators from more important tasks.

With the new User Script Console extension for Alfresco Share the users finally can access the powerful JavaScript API directly by themselves without needing a specialist. It integrates as a page in a Share site:

Of cause it can not be expected of end users to know JavaScript or the Alfresco APIs right away. That is why the User Script Console slowly introduces the users to the capabilities of the API using a Gamification approach. Users start out as novices and can gain experience (XP) while using the JavaScript API.

User “Experience”

API access gradually changes with increased experience:

  • 0 XP = No Alfresco API access
  • 10 XP = Read properties and permissions, only document root object
  • 1000 XP = Add comments, add Tags to any node
  • 5000 XP = Write properties and add tags, Site API, full ScriptNode api
  • 10000 XP = Groups API (Add/Remove people from sites)
  • 20000 XP = Full Alfresco Javascript API
  • 50000 XP = runas admin, access beans using Packages.java

A new user starting out as a novice must first write a syntactically correct JavaScript using given examples. He receives 1 XP for each successful transaction and will soon gain access to some parts of the Alfreco API (XP of 10 or more). Commands above his experience level are not available:

Examples

To help users find their way around, there are examples in the “Examples” menu that are adjusted to the users experience level. It starts out with a list of simple JavaScript examples for “for”-loops and “if”-clauses.

Badges

Additionally users can earn badges for special achievements (each earns 500 XP):

  • Unlocker: Unlocked more than 10 documents that were locked by the Sharepoint API.
  • Tagmaster: Added 100 different tags to documents
  • Ninja: more than 10 “hidden” property changes with behaviourfilter.disableBehaviour()
  • Shapeshifter: More than 100 calls of the transformDocument/transformImage
  • JsGuru: Run 10 consecutive scripts that all JsLint without any warnings
  • Loadtester: Your last 10 scripts have all run longer than 30s
  • MrClean: Purge the archive store (nodeArchiveService)
  • Reporter: Generation of more than 10000 lines of print output
  • Bouncer: Removed at least 100 people from groups/sites
  • Hacker: Usage of Packages.java to access Spring beans directly

The new User Script Console will help to empower the savvy user to automate Alfresco in an unprecedented way and lets administrators focus on more important tasks like backup and restore of the Alfresco repository.

Available today for Alfresco 4.1.

Back with SQL Script Creator… almost

SQL Script Creator Splash Screen

Being annoyed by creating a cursor script in SQL and having to define tons of variables manually I wondered if there was any tool to aid in this process. I quick google did not yield promising results. So spend the weekend conjuring up an application that eases the script creation by providing specialized generators to create scripts automatically from a given SELECT statement. It works pretty well and will be tested further in the next week until I’ll release it here under some opensource license.

SQL Script Creator Screenshot

Putting this app together thought me some new things about the settings and localization concepts of .NET 2.0. Two articles that got me introduced to the concept are the tutorial Localization in ASP .NET 2.0 on ondotnet.com and the detailed article
Localization Practices for .NET 2.0 on theserverside.net.

Backup.net

I’ currently thinking about a backup strategy for my linux server. I have several subversion repositories und home directories with imap maildirs that I definately don’t want to loose in case my server disc crashes. Actually I have been very lucky so far with not backing up most of my data for years. Maybe that’s why I feel, that I have to do something in that area.

Anyway, I have about 1-2GB of data, most of which doesn’t change a lot, but it should be stored daily. I’am looking for some kind of network backup solution for storing backups on my workstation or friends’ servers on a VPN. While searching, I came across DIBS: Distributed Internet Backup System which uses a peer to peer approach to store recovery data on serveral distributed servers. From the manual it looks promising and quite mature but I’m not sure if I’ll find enough reliable servers with a decent internet connection to use it.

Bacula looks really interessting but might be overkill in my situation. I like the fact that it provides clients for different OSes so that you can use it as a single backup solution even for the windows clients in your network. It is mainly built for larger networks with distributed backup and storage servers for a large number of clients. I don’t think I’ll invest the time to set up the different server components for this one, though.

Possibly I’ll end up with a tar, scp or rsync solution that copies backups to my windows workstation or other peers in my VPN. linux-backup.net and this IBM article of automation of backups on linux give some useful example for such a do-it-yourself backup solution.

Update: I found one more popular opensource backup application which is called Amanda which provides a similar feature set like Bacula.

Windows freeware for commercial use

When developing software at work you might be restricted to what software you can install and use. You might even work at a client’s computer where you don’t want to risk using trial versions for months and violate licenses. This is where Open Source software really pays off, it’s just free.
Unfortunately, when searching for free software you often find shareware applications or even worse, freeware for personal use only. That’s why I started compiling the following list that contains great freeware and open source apps that allow commercial use. (A link here is no guaranty that commercial use is granted. Licenses can change or I could have made a mistake – check the licenses and EULAs!)

Browser / Web

Mail-Client

FTP-Client

Text and XML-Editors

Diagnostics / System Utils

Archiver

Backup

Media Player

File-Manager

  • FreeCommander Windows filemanager similar to Total Commander
  • XPlorer basically a windows explorer with tabs

CD/DVD Recording

Terminal / SSH / Remote-Control

Messaging

Web-Development

Linux Tools / XWindows

  • Cygwin – a complete linux like environment, including shell, services and X.

Version Control

  • Subversion version control system, sucessor to CVS
  • TortoiseSVN windows client for subversion as explorer integration

Imaging / Graphics

Visualization / UML

  • ArgoUML Java Tool to create UML diagrams
  • StarUML Windows UML ß MDD Tool
  • FreeMind a free mind mapping software like Mindjet’s Mindmanager

Office

Development Environments

  • Visual Studio Express Express Editions of MS Visual C++, C#, VB and SQL Server
  • PHP Designer 2006 PHP Development Environment (eula says personal use, but several forum posts say commercial use granted)

*Missing*

  • good image viewer with thumbnail view
  • a complete burning appliction (like Nero or K3B)
 
I realize that this list is far from complete – I basically started with apps I like to use or think they might be useful for me. Especially if you look for development tools there are a lot more useful apps out there – I deliberately neglected the whole field of java development tools, since most of them are already commercially usable.
 
This list will be updated whenever I find new apps – I would appreciate any suggestions you might have for additions to this list.