JCROM 1.3.2 is out

I’ve just released JCROM 1.3.2. The release includes fixes and improvements in handling versions and recursive references, and a couple of enhancements.

See the full list of resolved issues here. I’ve updated the user guide to reflect the new features. In the meantime, you can download it and take it for a spin. Thanks to everyone on the user list that helped out with testing, reporting issues, and requesting features!

Posted in Software | Tagged , , | 4 Comments

My geeky Mac desktop

I’ve never really used my computer desktop for anything. Lot’s of files scattered around, and a useless background picture that I never look at because it’s been buried under application windows and files. So for the new year, I decided to clean up my desktop a bit. I googled around, and found a very interesting application called GeekTool, which helps turn your desktop into something a bit more useful than a picture of your dog :)

GeekTool is basically a tool for the Mac that enables you to put the output of shell scripts onto your desktop (in a layer on top of your desktop background). Just specify how frequently to run your script, and your desktop becomes alive with up-to-date data. It also supports displaying an image (for example an online image or a generated one), and the contents of a text file (such as a log file). You can create multiple entries (scripts, text files, images) and arrange those on your desktop as you like.

My desktop now displays my todo list (from a text file), a calendar, uptime, mounted disks, airport and ethernet IP addresses, system log, and more. Have a look at the screenshot (click for full size):

geektool_desktop

I got most of the information and scripts from these two articles, which you can refer to for information on how to achieve this:

Mac OS X does have the widget layer which you can bring up, but it is a bit slow, and I’m a sucker for plain text information. What better way to start a new year - a clean and actually useful desktop :)

Posted in Software | Leave a comment

Rendezview

Well, after many good years at VYRE, I decided to start up my own company with a good friend of mine, Hjörtur Stefán Ólafsson, and moved back to Iceland at the end of September. I guess I needed a new challenge. The challenge has turned out to be slightly bigger than anticipated as the Icelandic economy crumbled a week after I arrived (I had nothing to do with it…promise!). But I’m still strangely optimistic about the whole thing.

I was always looking for that great idea to push me into entrerpeneurship, and a few months ago it came to the two of us: online meeting notes. Not scheduling meetings (lots of people do that), and not webcasting or screen sharing (again, lots of people do that), but actually managing and mining all the data that gets created during meetings, and managing the workflow between meetings.

I wanted something that could answer a question like “Give me all decisions taken on Subject X during meetings with Client A, that I attended, in the following time interval…“, and answer it immediately. I don’t want to look through my email opening tons of Word attachments, and I certainly don’t want to have to go through all those scribbled notes that I’ve lost anyway. We looked all over for a product that could solve this need. Couldn’t find it, so we built it.

After a few months of building, we’re finally in beta testing. I’m immensely proud of what we’ve achieved so far (although there is still much to do…you never really finish an app like this). The product is called Rendezview. Please head over to www.rendezviewonline.com and register if you want to be part of the closed beta testing. If you attend meetings, I’m sure you’re going to like it :)

Posted in Software | Tagged , | Leave a comment

JCROM 1.3.1 is out

I’ve just released JCROM 1.3.1. This is a relatively small release with mostly bugfixes, and a couple of enhancements.

See the full list of resolved issues here. I’ll be updating the user guide over the next few days to reflect the new features. In the meantime, you can download it and take it for a spin. Thanks to everyone on the user list that helped out with testing, reporting issues, and requesting features!

Posted in Software | Tagged , | Leave a comment

JCROM 1.3 released: Now with lazy loading!

I’ve just released JCROM 1.3. There’s lots of new features, and a few bug fixes. The highlights are:

  • Lazy loading for child nodes, file nodes, and references (e.g. @JcrChildNode(lazy=true)) is now supported.
  • Weak references by path are now supported via @JcrReference(byPath=true).
  • Support for dynamic maps of child nodes, file nodes, and references.
  • Enum properties are now supported.
  • …and more!

See the full list of resolved issues here. I’ll be updating the user guide over the next few days to reflect the new features. In the meantime, you can download it and take it for a spin. The javadocs are here. Big thanks to everyone on the user list that helped out with testing, reporting issues, and requesting features!

Posted in Software | Tagged , | Leave a comment

Two neat tricks for the Mac OS X terminal

Ben French, our sysadmin guru at VYRE, had a knowledge sharing session today, and one of the tricks he showed us was how to colour code the output from ls and format the prompt properly on the Mac terminal. It has made such a difference to my terminal windows that with Ben’s blessing I’m going to share it with you here :)

First of all, set your Terminal window settings to something black & white, like the “Pro” setting. Then, add the following lines to .profile in your home directory:

export LSCOLORS=cxexcxdxbxfxfxbxbxcxcx
export PS1="\n\[\e[0;32m\]\w \[\e[0;38m\]\n-> "
alias ls='ls -lhFGv'

This gives you a nice prompt, and it will colour code the ls output, so that directories are green, executables are red, and so forth. Also, all directory names are followed by “/”, all executables are followed by “*”, etc. The following screenshot shows the result:

Thanks Ben!

Posted in Software | Leave a comment

New book on Google Guice

This is a very short entry to tell you that I just finished reading a book recently published about the Google Guice framework: “Google Guice: Agile Lightweight Dependency Injection Framework” by Robbie Vanbrabant. I highly recommend it, it was great fun to read.

You can buy the book from Apress here (I bought the e-book).

Guice rocks! :)

Posted in Books, Software | Tagged , | Leave a comment

JCROM 1.2 is out

I’ve released JCROM 1.2. This release has many cool new features, such as support for java.util.Map as a child node, array support for properties, auto-serializing (@JcrSerializedProperty), etc. But the coolest one has to be dynamic instantiation of objects from nodes (for programming to interfaces).

See the full list of resolved issues here. I’ve updated the user guide to reflect the new features (search for “programming to interfaces” on that page to get info on the dynamic instantiation). Go ahead and download it.

Big thanks to everyone on the user list that helped out with reporting issues and requesting features!

Posted in Software | Tagged , | Leave a comment

JCROM 1.1 is out

I’ve just released JCROM 1.1. This release has a few bug fixes, plus new features such as support for mapping node references, versioning support in the DAOs, better Spring support, etc. See the full list of resolved issues here. I’ve updated the user guide to reflect the new features. Head over to the downloads area and get it while it’s hot! :)

Posted in Software | Tagged , , | Leave a comment

JCROM - annotation-based OM framework for JCR

I’ve just released the first version of JCROM (pronounced “Jack-rom”). JCROM (which stands for Java Content Repository Object Mapper, I’m not great at naming things) is a lightweight framework for mapping Java objects to/from a Java Content Repository (JCR). It relies on annotations only, so there are no XML configuration files involved. JCROM ensures that your objects are mapped to the JCR according to best practices, meanwhile abstracting the gritty details and making your code clean and readable. Last but not least, JCROM is open source, with an Apache 2.0 license.

Head over to the 2 minute intro for a quick overview, and then continue to the User guide if your’re hungry for more detail!

I am aware of the ocm framework that appeared in Jackrabbit 1.4 (the old Graffiti project). I’ve read the documentation, but I have to admit I have not taken it for a serious test drive yet! I guess it is a lot bigger and more powerful (and heavier) framework, with query service and persistence manager with support for locking, versioning, etc.

I wanted to create a lightweight annotation-based alternative (I am not a huge fan of XML configuration files, although I do realise that they are sometimes necessary), that just handles the mapping of the object to and from nodes (as I found myself writing lots of boiler plate code to achieve this in my applications). Transactions, versioning, locking, are all out of scope, and handled outside JCROM.

Then I added the DAO support classes (with all the CRUD methods implemented), and extending classes can then add custom finder methods (usually just one-liners utilising the protected finder methods from the abstract class). Now I create applications with Jackrabbit and JCROM that require half the amount of code that my old Hibernate applications needed.

There are some discussions on the Jackrabbit dev mailing list regarding JCROM, and it is some people’s opinion that using JPA (Java Persistence API) annotations might be a better approach for the future. From my perspective, I did not want to wait for a specification to change, I needed a framework for this right now. Something lightweight and easy to use. Couldn’t find it, so I built it. But I am more than happy to look into adding support for JPA annotations to JCROM. I just need to read the JPA spec in more detail…so much to do, so little time :)

Posted in Software | Tagged , , | Leave a comment