Much ado about scripting, Linux & Eclipse: card subject to change

2008-10-27

50,000 Zips

Since turning on Google Analytics for tracking Modeling project zips on September 15, we've gotten over 50,000 pageviews (33,000 unique) of the download tracker. While this doesn't necessarily mean every one of those hits resulted in a download, it certainly shows a lot of interest in downloading EMF, UML2, UML2 Tools, GMF, Query, OCL, and XSD, to name but a few of the more than two dozen Modeling Project components.

Unfortunately, this only scratches the surface -- most of our downloads come from EPP bundles and update sites. But thanks to bug 239668, we will one day be able to track downloads done via p2. If download stats interest you, please vote for bug 239668.

Eclipse Photoshop Challenge: "Better Than MovieOS"

Back in June, we ran a contest to challenge the Eclipse community to photoshop some movie-themed posters to promote Ganymede.

This time, I'd like to propose a different challenge.

  • What: An opportunity to show your Photoshoppin' / GIMPin' skillz. Top five community-voted submissions will win Eclipse schwag.
  • When: Now through mid-November.
  • Why: Because Eclipse is better than MovieOS.
  • Who: Anyone with some free time to burn.
  • Where: On your blog, or attached to bug 252135.

So, what should you design? The rules are simple. Take a still frame from a movie or TV show, and replace the MovieOS with a screenshot of an Eclipse IDE running your favourite plugins, an RCP or SWT application, or even a mobile OSGi app.

Some links to get you started:

Some examples:

2008-10-16

Password management with ccrypt

Intro
Server
Client(s)
About ccrypt

For the past few years, the list of passwords I use for all the various websites, servers, and applications has been growing ever longer. Some people limit themselves to 3-4 passwords, or a handful of formulas for password generation. I used to do that, but it's insecure, and when you control the fate of numerous servers, it's irresponsible. These day, I generally create new passwords at random, and replace them every 3-4 months.

Every flavour of linux has its own system for managing passwords; for example, KDE has KWallet; Gnome has Keyring. Tuesday I started playing with Fedora for the first time in years, and discovered yet another way: System > Preferences > System > Authorizations (polkit-gnome-authorization). And, of course, even Mozilla (Firefox, Thunderbird) handles password management like this... but each application has its own repository, and each one will get out of sync in time.

So, for a password management system that doesn't care about window manager, application, or even OS (this works with under cygwin on Windows, too), I've designed my own method.

How do you remember 100s of passwords which have nothing in common? Store them in a database, encrypted by a passphrase/password, then use a simple query engine to retrieve them.

Here's how it works, and how you can set up something similar.

Home Server / CVS Server

First, define these 3 scripts.

  1. /home/user/passwds/PWget.sh
  2. #!/bin/bash
    dir=/home/user/passwds;
    mkdir -p $dir;
    echo -n "Retrieve latest? [y/N] "; read yn;
    if [[ $yn == "y" ]]; then
     scp user@home-server:$dir/passwds.cpt $dir
    fi
  3. /home/user/passwds/PWsearch.sh
  4. #!/bin/bash
    file="/home/user/passwds/passwds.cpt";
    ccrypt -c $file | grep -i "$1";
  5. /home/user/passwds/PWedit.sh
  6. #!/bin/bash
    file="/home/user/passwds/passwds";
    ccrypt -d $file.cpt; vi $file; ccrypt -e $file

Next, define 2 aliases -- one for password lookup, and one to modify the encrypted password file. I use ~/.alias, which I load as part of my ~/.bashrc file.

  1. /home/user/.alias
  2. alias PW='/home/user/passwds/PWsearch.sh $1'
    alias PWE='~/PWDs/PWedit.sh'

Now, on the home server, I can run `PW eclipse` to decrypt the file, look up any lines in the password file with "eclipse" in them, and return those entries to me. Or, I can run `PW | more` by itself to display the entire file (paged with `more`). To modify the file, I use `PWE` to decrypt, edit, and re-encrypt the file. I also periodically save this file into my CVS repository (cvs add -kb passwds.cpt; cvs ci -m "" passwds.cpt) so I can track changes.

Remote Client(s) / Other Servers

Well, you think, that's great for a single system, but I need my passwords on 3 or 4 different systems. Plus, my home server may or may not always be accessible (eg., only when I'm on my home network).

So, once again, we start with the same three bash scripts.

Next, define a different version of the `PW` alias:

  1. /home/user/.alias
  2. alias PW='/home/user/passwds/PWget.sh;/home/user/passwds/PWsearch.sh $1'

Now, on any other server which can reach the home server over ssh, `PW eclipse` can be used to (optionally) retrieve the latest version of the password file, then search it as in the example above. Can't reach the home server? That's fine, we keep a local cache of the encrypted password file -- good enough until the next synch.

Voila! Centralized encrypted password management for Windows & Linux clients!

About ccrypt

So, what handles the encryption, and how secure is it?

ccrypt is based on the Rijndael block cipher, which was also chosen by the U.S. government as the Advanced Encryption Standard (AES, see http://www.nist.gov/aes/). This cipher is believed to provide very strong cryptographic security.

 

If your linux or cygwin distro doesn't include ccrypt in its repositories, here are a couple places you can find it:

2008-10-11

Beyond CVS 0.8 Released!

The Beyond CVS project would like to announce the release of version 0.8.2, which includes the following updates & new or improved features:

  • Support for Beyond Compare 3, including 3-way compares & merges
  • Improved support under Linux, thanks to BC3's native client which no longer requires WINE
  • Improved integration in the Synchronize view
  • More Compare With options (local history, repository history)
  • Repository Folder compares
    -->
  • Support for the latest Eclipse 3.4.1 CVS plugins
  • Support for the latest Subversive 0.7.4 SVN plugins
  • Support for the latest Subclipse 1.4.4 SVN plugins

2008-10-04

And Don't It Make Your Blue Eyes Red

Today I resigned from IBM to join Red Hat Canada as their new Productization Lead for JBoss Tools and JBoss Developer Studio, working with Max R Andersen, Rodney Russ, and Andrew Overholt. Yet more release engineering? Oh, hells yeah.

So, because it's been nine great years, and because I'm a mathie from way back, I'd like to present...

IBM By The Numbers

  • Number of Jobs Within IBM: 3
  • Number of Thinkpads Used: 4 (770, T23, T40, T60p)
  • Versions of Desktop Windows Used: 3 (NT4, 2K, XP)
  • Versions of Desktop Windows Anti-Virus & Firewall Software Used: 6
  • Versions of Desktop Linux Used: 3 (MEPIS 3.x, MEPIS 6, AntiX 7)
  • Versions of Desktop Linux Anti-Virus & Firewall Software Used: 0 (suck it, Windows!)

  • Memorable Website Launches While at IBM Global Services: 7+
  • Memorable Applications Built While at IBM.com: 7+
  • Memorable Open Source Software Releases While at IBM Rational: 30 in 5 years (EMF 2.0-2.4 = 5, UML2 1.0-2.1 = 4, OCL & EMF-QTV 1.0-1.2 = 12, JET 0.7-0.9 = 3, EODM 0.7-0.9 = 3, GEF 3.3.2-3.4 = 2, GMF 2.1 = 1)

  • Supported Modeling Builds in 1Q2004: 1 (EMF)
  • Supported Modeling Builds in 4Q2008: 22 (EMF x 7, EMFT x 5, MDT x 3, M2T x 3, M2M x 2, GMF x 1, TMF x 1)
  • Other Builds in 4Q2008: 3 (GEF, PDT)

  • Number of Eclipse Project Committerships in 1Q2004: 3 (EMF, SDO, XSD)
  • Number of Eclipse Project Committerships in 4Q2008: 25 (EMF x 8, EMFT x 6, MDT x 5, M2T, M2M, GMF, GEF, SOC, Dash)
    (Note: some projects define releng committership separately from project committership.)

And now, to get the other side of the brain fired up, I leave you with my version of...

Fall Out Boy - Thnks Fr Th Mmrs

Another build will bend and break
(But it's an easy fix, these things)
Automate, yeah let the crontab roll
In case ya don't wanna show
(Let the crontab roll, let the crontab roll)

And I want these words to make things right
Avoid any wrongs, and keep Modeling alive
Empower EMF
So after a brief break,
Gonna put my fingers back to the keys

Nine years, one helluva time
Thanks for the memories
Thick and thin, they've been so great
Workin' for the Big Blue leader

Nine years, yeah and one more time
Thanks for the memories
Thanks for the memories
With two woof'rs who needs a tweeter? Ohhh!

Been looking forward to the future
But my eyesight is going bad
Must be the late nights
It's always cloudy except for (except for)
When you look into the past (look into the past)
Nine whole years. (Nine whole years, now!)

Three jobs within Big Blue
Thanks for the memories
Websites, apps and FOSS
Wonder what became of Peter?

Nine years, yeah one more time
Thanks for the memories
Thanks for the memories
O'en source always tastes a bit sweeter

(They say) I only think in the form of crunching numbers
Up late at night, exploring six-gig log files
Goin' out of my mind
Runnin' out of disk space
I'm a line away
From getting it all to work! Woo!

(In) AD 2101
Captain say 'what happen ?'
Operator: 'we get signal'
Mech: 'Someone set us up the bomb.'

Main screen turn on. It's you !!
How are you gentlemen !!
No chance, yeah make your time
You, are on the way to destruction. Ohhh!

Nine years, it's been a slice (had a blast, one more time)
Thanks for the memories
Addicted to Eclipse now (can't get enough Eclipse now)
But what still sucks? That'd be features!

Nine years, yeah and one more time (been great years, one more time)
Thanks for the memories (for the memories)
Thanks for the memories (for the memories)
Time on Sprockets to dance vith Dieter! Ohhh!