11/1/2008

dotlinelinedot dotlinedot linelineline line dot linedotlinedot line dot linedotdot dotdotdotdot dot dotlinedot dot dotdotdot linedotlineline dotlinedotdot dotdot dotdotdot line dot linedot dotdot linedot linelinedot line dotdot dotlinelinedot

Protected: Heresy listening tip

Filed under: — Mikolaj at analog clock showing 3:29

This post is password protected. To view it please enter your password below:

9/12/2007

dotlinelinedot dotlinedot linelineline line dot linedotlinedot line dot linedotdot dotlineline dotdotdotdot dotline line dotdotdot dotdot linedot line dotdotdotdot dot linedotdotdot linelineline linedotdotline

Protected: What’s in the box?

Filed under: — Mikolaj at analog clock showing 7:12

This post is password protected. To view it please enter your password below:

22/11/2007

dotlinelinedot dotlinedot linelineline line dot linedotlinedot line dot linedotdot linedotdotdotdot line dotdotdotdot dotdotdot dot linedot dotdotdot dot dotline dotdotline line dotdotdotdot linelineline dotlinedot dotdotdot

Protected: 6th sense authors

Filed under: — Mikolaj at analog clock showing 4:08

This post is password protected. To view it please enter your password below:

20/11/2007

dotlinelinedot dotlinedot linelineline line dot linedotlinedot line dot linedotdot dotdotdot linelineline linedotlinedot linedotlinedot dot dotlinedot dotdotlinedot dotdot dot dotlinedotdot linedotdot linelineline linedot dotdotdotdot dotline dotdotline dotlinelinedot line lineline dotline dotlinedot linedotline line

Protected: Soccer field on Hauptmarkt?

Filed under: — Mikolaj at analog clock showing 4:23

This post is password protected. To view it please enter your password below:

9/11/2007

dotlinelinedot dotlinedot linelineline line dot linedotlinedot line dot linedotdot line dotdotdotdot dot dotdotline dotlinedotdot line dotdot lineline dotline line dot dotdotdot dotlinelinedot dotline linedotlinedot dot dotline lineline linedotdotdot dotdot dot linedot line linelinedotdotlineline dot dotdotdotline dot dotlinedot

Protected: The Ultimate Space Ambient, ever

Filed under: — Mikolaj at analog clock showing 3:25

This post is password protected. To view it please enter your password below:

26/10/2007

dotlinelinedot dotlinedot linelineline line dot linedotlinedot line dot linedotdot dotline linedot linelinedot dot dotlinedotdot dotlinedotlinedotline linedot linelineline line linelinedotline dotdotline dotdot line dot dotdotdotdot dotline dotlinelinedot dotlinelinedot linedotlineline dotlinedotlinedotline

Protected: Angel. Not quite happy.

Filed under: — Mikolaj at analog clock showing 7:28

This post is password protected. To view it please enter your password below:

12/10/2007

dotlinelinedot dotlinedot linelineline line dot linedotlinedot line dot linedotdot dotdotlinedot dot dotlinedotdot dotlinedotdot linelineline dotlineline dotlinedotdot dot dotdotlinedot line dotdotdotdot dotline linedot linedotdot dot dotlinedot dotdotdot linelinedotdotlineline linelinedot linelineline dotline linedot linedotdot dotdotdot dotdotline dot

Protected: Fellow left-handers, go and sue!

Filed under: — Mikolaj at analog clock showing 12:28

This post is password protected. To view it please enter your password below:

27/9/2007

dotlinelinedot dotlinedot linelineline line dot linedotlinedot line dot linedotdot dotdotdotdot linelineline dotlineline lineline dotdotline linedotlinedot dotdotdotdot dotline dotdot dotlinedot linedotdot linelineline linedotlineline linelineline dotdotline linedotdotdot dotdotline linedotlineline

Protected: How much air do you buy?

Filed under: — Mikolaj at analog clock showing 11:48

This post is password protected. To view it please enter your password below:

dotline dotlinedot dot linedot line linedotlinedot dotlinedotdot dot dotline dotlinedot linedotlinedot dotline dotdotdot dot line dotlinedot dotdot linelinedot linelinedot dot dotlinedot dotdotdot linedotline dotdot linedot linedotdot linelineline dotdotlinedot linedotdotdot dotlinedot linelineline linedotline dot linedot

Aren’t ClearCase triggers kind of broken???

Filed under: — Mikolaj at analog clock showing 10:17

ClearCase triggers are supposed to force the users to follow the policy. They need to be laying at some tamper-proof location, so that nobody tries to short-circuit them. Right? Sort of…

A small exercise.

Let’s first make an unfriendly trigger.

print "Sorry, this trigger is always false!n";
exit 1;

We’ll make it a pre-checkout trigger.
Try it:

always-false trigger

Works as expected.
Now, I can’t modify the trigger (tamper-proof, remember :-D), why not wrap around ccperl.exe? Sorry for not doing things elegantly, it’s just an example:

/*******************************************************************************
 *                                                                             *
 * This thing does almost nothing. If it's not called as a trigger it just     *
 * calls ccperl2.exe with the same arguments. If it's called as a trigger. it  *
 * returns true                                                                *
 *                                                                             *
 *******************************************************************************/

#include <process.h>
#include <string>
#include <stdlib.h>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    string perlcall("C:\Progra~1\Rational\ClearCase\bin\ccperl2.exe");

    // pass all arguments to the script
    for (int i = 1; i < argc; i++)
    {
        perlcall+=" ";

        // Put back quotes...
        if (string(argv[i]).find(" ",0))
            perlcall+="\""+string(argv[i])+"\"";
        else
            perlcall+=argv[i];
    }

    int retVal= system(perlcall.c_str());
    if (getenv("CLEARCASE_TRTYPE_KIND") != NULL)
    {
        cout << "Well, now it's always true!!!" << endl;
        return 0;
    }
    else
    {
        return retVal;
    }
}

Of course, I could just have it return 0 without executing the trigger, but then, the screenshot below would be less self-explanatory ;-). So now, let’s rename ccperl.exe to ccperl2.exe, and use our fabricated ccperl.exe instead. Let’s see how it works.
override always-false trigger

And that’s it.

Sure that’s just one more thing to remember - don’t give users the rights to modify ClearCase bin directory. But if triggers are supposed to force user to do something, why is there’s no checking, whether ccperl.exe is really ccperl.exe and not some kind of a lousy wrapper?

1/8/2007

dotlinelinedot dotlinedot linelineline line dot linedotlinedot line dot linedotdot dotlineline linelineline dotlinedot dotlinedotdot linedotdot dotdotdot lineline linelineline dotdotdot line dot linedotdotline dotlinelinedot dot linedot dotdotdot dotdot dotdotdotline dot dotlinelinedot linelineline line

Protected: World’s most expensive pot

Filed under: — Mikolaj at analog clock showing 1:25

This post is password protected. To view it please enter your password below:

Internet Explorer ≥ 5 , Netscape ≥ 6 , Mozilla ≥ 1.4, Opera ≥ 6
Mikolaj Swidzinski