Monthly Archives: December 2007

Mac: Launchers and text expanders

Back on my Windows times, I have been using a couple of apps that were definitely increasing my productivity. I’ve been looking for their corresponding apps under Mac, and lately this list has started to grow quite a bit, so I’ve decided to post the links here.

Launchers

I think at this chapter, the most advanced Mac users will cry together: QuickSilver. Well, I must confess that it looks impressive, but it is a bit overcomplicated for my taste. Here, are my findings, starting with the one I am currently using (in the past I’ve been using just the integrated Spotlight):

Probably a subcategory of launchers should be the shortcut based launchers. Here, I’ve been using only Spark, but basically with a complete different purpose (see text expanders).

Text expanders

These applications allow you to define different abbreviations and then they are taking care of replacing that with the full expanded version. The feature can be found natively in apps like Vim or your IDE. But, the following are providing a generic solution that works with all apps.

  • textexpander. (commercial)
  • TypeIt4Me (commercial)
  • Spark. It works a bit differently than a normal text expander: you have to define shortcuts for the text snippets.

Tomorrow, I’ll probably provide a list of the corresponding Windows apps.

Posted by: Alex Popescu (aka the_mindstorm)

2 Comments

Filed under Tools

Injecto: Mixins for Groovy

Yesterday, as a follow up on some post on Artima, I have mentioned some fundamental difference between Mixins and Traits.

What I’ve forgot to mention is that mixins are available in Groovy through Injecto (a module initially developed by Luke Daley.

A couple of weeks ago I have started to think about some advanced features that would fit into Injecto. Unfortunately, meanwhile I got sidetracked by my daily job and a couple of complex technical aspects (f.e. supporting overloaded methods, different lifecycle mixins, etc.) that I wanted to solve for the new features. I hope to be able to get to it in the upcoming weeks, so that early next year to come out with a revamped mixin support for Groovy.

Posted by: Alex Popescu (aka the_mindstorm)

1 Comment

Filed under personalog, technolog

Mixins and Traits (for Java)

I’ve read last night a post on traits for Java and I just thought to make a small comment.

According to the author:

The difference between a Trait and a Mixin is that order is important.

Well, in my opinion there is a much bigger, fundemental difference: mixins have state, traits don’t. When a class or object includes a mixin it includes all methods and attributes defined by the mixin, according to the Wikipedia:

A mixin can also be viewed as an interface with implemented methods. When a class includes a mixin, the class implements the interface and includes, not inherits, all the mixin’s attributes and methods.

This is quite an important difference, as traits are easier to be supported (except the inheritance change they are imposing), but the benefit is really limited. And the good news is that using AOP (e.g. AspectJ) you can have mixins (so implicitly you can have traits).

Posted by: Alex Popescu (aka the_mindstorm)

1 Comment

Filed under Uncategorized

Unbelievable: (bip) releases …

As pointed out by Adrian Sutton in one of the comments, this post was breaking X NDA about Developer Previews (which I initially thought is about distribution only), so unfortunately I had to take it down for the moment. I really have to apologize to you for this unfortunate action.

Update: I have figured out that if I don’t use any names, I still can leave my personal opinion here:

I’m usually calm and trying to understand the decisions some are making. But this is f%^$% unbelievable: (bip) has released a developer preview of (bip), but it is meant only for version bip or later. Are they kidding me? A guy has been able to build (bip) by his own, has packaged it for both (bip) and (bip), and (bip) comes out 1 month later with a (bip) version only? That’s incredible arrogant.

There’s even more: the release is only for 64bit (bip). If today would be April 1st, I would say that this is one of the best jokes. But it is not, and so this makes it one of the worst (and sour) jokes.

Posted by: Alex Popescu (aka the_mindstorm)

17 Comments

Filed under personalog

JXInsight: how to document a rich UI app?

One of the suggestions I’ve had for improving JXInsight documentation was to create a small document describing the application (called JXInsight console) UI. Basically, this document should contain some short descriptions for the panels and also a legend for the icons used. In my experience, this approach proved to be the simplest, the cheapest but most effective.

But, it looks like this will not work (or it will just partially work) for JXInsight. The console UI (doesn’t this sound weird ? 🙂 ) is using around 1000 icons (yes, you heard me right). So, creating this document is gonna take a lot of time and is gonna be quite expensive to maintain. I am wondering what other options would you suggest for documenting a very rich UI?

Here is a screenshot of the app, just to get an idea of what I am talking about:

JXInsight rich UI

Posted by: Alex Popescu (aka the_mindstorm)

Leave a comment

Filed under Tools

Discussions on Java7 new features

I’ve put together a list of links tracking some of the most discussed new features for Java7. So, here they are:

Extension methods

invokedynamic

If you have more then please ping me about them, and I’ll update the post.

Posted by: Alex Popescu (aka the_mindstorm)

Leave a comment

Filed under links

JXInsight documentation

After the other day William’s comments, I decided to invest some more time in reading about JXInsight. So last night, I’ve started my look through their blogged documentation and put together everything that might get me started. Thinking that others may be facing the same issue as I was, I am listing here those entries that may get you some ideas about the product.

101

Configuration

I have listed only the link for Tomcat as that is the configuration I was looking for, but it looks like the blog contains entries for other deployments too. There are a couple of more links that may be interesting, but they look a bit old: Apache Tomcat Monitoring and Configuring Servlet Traces.

My continued quest for information resulted in finding a couple of more pages, but I’ll have to filter them out firstly:

Concepts at work

What I am still looking for, and doesn’t look like being around, are the following pieces of documentation:

  • Definition of the concepts
  • Console details
  • Terminal usage

I’ll probably ping William about these. So far I’ve been a bit puzzled by the terms the documentation is using. These are not clearly defined, and I think I am that kind of person that agrees with usability guru Steve Krug when thinking that you shouldn’t introduce new terms for existing concepts, as these are usually leading to confusion.

Last, but not least, I have noticed that JXInsight 5.5 was released and that William will focus on creating the so-needed documentation:

Now the hard part begins – rebuilding the documentation set! This will be ongoing for the next few weeks[…]

I am looking forward to seeing it.

Posted by: Alex Popescu (aka the_mindstorm)

6 Comments

Filed under Tools

Distributed VCS: Mercurial

Lately, I’ve found myself using locally more and more Mercurial (a fast, lightweight Source Control Management system designed for efficient handling of very large distributed project). The reason is that I’ve been traveling a lot and meanwhile I had to play with some crazy ideas I had. And so far, I am very happy with it; even if I am missing a couple of things that would make it absolutely lovely (a decent Eclipse plugin, a GUI tool, etc.). So, if you know about such tools please let me know.

Yesterday, I have imported locally a CVS repository. Before doing it, I had to search a bit on how to do it, and below are the links that I’ve found interesting. I have ended by using the generic Tailor as I’ve used it before and it looked like the simplest setup.

Links

I had also to install cvs on my Mac machine. It comes inside the XCode app, but I didn’t want to have all those, so I have found a repository of cvs distros.

Configuration

If somebody wonders what configuration I have used with Tailor, here it is:

[projectname]
root-directory=~/workspace/
source=cvs:projectname
target=hg:projectname
subdir=projectname
verbose= True

[cvs:projectname]
start-revision = HEAD
repository=:pserver:anonymous@projectname.cvs.sourceforge.net:/cvsroot/projectname
module=projectname

[hg:projectname]

Basically, this configuration says: import the project called projectname from the CVS source detailed in configuration section [cvs:projectname] into a Mercurial targer (hg prefix) detailed in the configuration section [hg:projectname].

Concerns

Even if I am getting more and more familiar with Mercurial, there is one thing that concerns me a bit: as long as there is no remote replica of my repository, I still have to deal myself backing up the system. Mercurial repositories are self contained, so if you by mistake delete the workspace then all your work is gone. Forever. I am trying to figure out if there is an easy solution for this.

Posted by: Alex Popescu (aka the_mindstorm)

2 Comments

Filed under Tools

Glassbox and JXInsight

I have heard about JXInsight a couple of months ago, and since then I was eagerly waiting for the moment I’ll get to it. Last night, with a bit of energy left after a long day, I have remembered about it and I thought: “maybe this is the right moment”. I have quickly passed through the homepage (which definitely looks interesting in terms of features) looking for a download. I have found the 5.5-RC1 and got it installed on my machine. When all this was done, I have started to look around to what’s next. And unfortunately I couldn’t find any good documentation about what am I supposed to do. The site doc links to a blog, where, even if there are various entries, none is close to being a decent user guide/step-by-step/up to speed intro. I have double checked the installation, and there was no documentation their either. Maybe I should use the examples… I have to confess that unfortunately, I had to give up as my energy was finished before figuring out what’s next. In conclusion, I’ve been quite disappointed that after a very cool homepage intro there was nothing to get me started (even if I have spent a couple of hours). Or maybe I was just missing the obvious?

Speaking about JXInsight features, I have remembered about Glassbox: an open source project created by my friend Ron Bodkin. In fact at some moment in time, I have spent quite a few weeks understanding the internals of the app and figuring out and suggesting some improvements. Now, Glassbox is in 2.0 RC1, and I hope the guys have addressed all the problems, because the product looks really interesting. And you know what? It comes with a decent User guide! Not to mention that it is open source, so at any moment, you can just stick your nose into code and figure out how is working.

I am wondering if others have any experience with these tools and if they are up to recommending something.

Update I have started to gather JXInsight documentation.

Posted by: Alex Popescu (aka the_mindstorm)

16 Comments

Filed under Tools