Archive for the 'Tips&Tricks' Category

Outlook 2003 An object could not be found

Wednesday, January 30th, 2008

The funny thing with ‘professional’ software is the weird things you run into. Everytime. When you don’t need it. At 1 A.M.
This time around Outlook started whining about objects not found. It didn’t say which object which is kind of an easy way out. I can just see ourselves running around “Couldn’t find an object, couldn’t find an object”. Go figure.

Solutions on the microsoft site led to nowhere. They proposed creating a new profile, migrating all your mail, settings, rules etc to the new profile. I think not! The problem was easily created (really, I didn’t even had to do anything !) it should be easily fixable.

Luckily after googling for an hour or so I found this one:

Outlook 2003 The operation failed. An object could not be found error

“Answer: Close outlook, simply delete all the *srs files from %userprofile%\application data\Microsoft\Outlook.
EG C:\Documents and Settings\username\Application Data\Microsoft\Outlook\outlook.srs

When outlook is re-opened it will create a new *.srs file (* = the name of your profile in outlook)”

Yeah baby, simplicity rocks!

Blue Screen of Death

Friday, December 7th, 2007

I love saying those 4 words, don’t you? Repeat after me “BLUE SCREEN OF DEATH BLUE SCREEN OF DEATH”, and why shouldn’t we, time enough to do so while trying to fix those annoying day wasting system crashes.

In this case the following applies:

  • BSOD ( blue of screen death ) occurs on system reboot through a RDP ( remote desktop connection )
  • The message is ati2dvag.dll TERMINAL_SERVER_DRIVER_MADE_INCORRECT_MEMORY_REFERENCE

In my case the following steps fixed the problem:

  • Goto My Computer, Hardware, Display Devices, Delete ATI display device
  • reboot
  • download and install latest ATI driver only package (7.11)
  • install drivers
  • reboot

Done. Hope this helps you too.

Casting to Array

Friday, November 16th, 2007

Casting to Array, well that’s easy enough right?

Imagine you have:
var my2dArray:Array = new Array();

my2dArray.push ([1,2,3,4,5]);
my2dArray.push ([6,7,8,9,0]);

And now you want to access and cast an element of myArray to an array:

var firstArray:Array = Array (my2dArray[0]);
trace (firstArray.length);

Right?

Yeah if you’re compiling in MTASC. The Flash IDE (more…)

exception processing message c0000013 parameters 75bobf9c 4 75bobf9c 75bobf92

Wednesday, October 17th, 2007

Come again?

Yes, that was what I said. Upon running Adobe Flex Builder 2 I’m visited with this strange error.
The title for the exception is ‘No disk found’.

ZOMG!

After right clicking on ‘Safely Remove Hardware’ and removing my card drives (you know the empty ones), the error went away.

Amazing, simply amazing :).

Creating your own testserver with a bogus domain

Tuesday, October 16th, 2007

When you are developing a theme for say Joomla, or editing a lot of content, it is easier now and then to do this offline.
However if you DO want to do this offline, you’ll need a testserver.

I’ve been using JSAS, Joomla StandAlone Server for that purpose.
Download it here: http://joomlacode.org/gf/project/jsas/frs/.

Once installed, you’re good to go with apache, php, mysql and joomla.

By default it will give you a local webserver on your localhost, reachable on port 85, in other words, to test it, goto :
http://localhost:85/

Inside the JSAS directory (more…)

Subversion problems

Tuesday, July 17th, 2007

Today our Subversion / Tortoise software began acting weird.

It randomly displayed errors/behavior such as:

  • Error bumping revisions post-commit
  • Error: Can’t move ‘P:\544 Politieacademie projecten\Behrloo\checkouts\test\3\trunk\deploy\.svn\tmp\entries’ to ‘P:\544 Politieacademie projecten\Behrloo\checkouts\test\3\trunk\deploy\.svn\entries’: Cannot create a file when that file already exists.
  • stopping an update while it wasnt even completed
  • We narrowed it down to two sources:

  • zonealarm
  • overlay icons on network drives in tortoise
  • So far the only workaround I’ve found is to disable both.

    arguments.callee._name?

    Monday, July 16th, 2007

    A question on the flashcoders list about an hour ago triggered me to put together a very simple example that I have been wanting to put together for ages now.

    How do you get the name of a function?

    With function we could refer to:

  • any function
  • a calling function
  • a function being called
  • My reflection package is at the core of my xflas2 logger, but I don’t think a lot of people have been using it. Even though it provides much the same information MTASC can put into a trace statement WITHOUT MTASC (except for the linenumbers). Not that I don’t like MTASC, I absolutely love MTASC and never leave home without it ;-).

    Anyway, the reflection package is perfectly capable of being used standalone without my logger or Xray around (yeah that’s right: osflash.org/xray yeah baby!). It provides two simple classes with an even simpler API: ClassFinder and FunctionFinder.

    Imagine a function:


    private static function runExample3() {
    _print (
    "I am :"+
    FunctionFinder.getFunctionName(arguments.callee)+
    " and I am defined in "+
    ClassFinder.getClassName(
    FunctionFinder.getFunctionClass(arguments.callee)
    )+
    " and OH YEAH I was called by "+
    FunctionFinder.getFunctionName(arguments.caller)
    );
    }

    Note that it’s static, but it doesn’t have to be, I’m just being a lazy git.

    This prints:


    I am :runExample3 and I am defined in SampleClass and OH YEAH I was called by main

    Now, for the small print : you HAVE to call ClassFinder.registerAll() once somewhere at the start of your program.

    For your convenience I’ve put an example together for download, have fun and let me know what you think of it!

    Note:
    I am working on an (xuse da tude but I’ve been very happy with it so far) awesome new version of a reflection package, which doesn’t have the registerAll requirement, but I’m not quite there yet so for now this will have to do :).

    Preventing dynamic property collision

    Monday, July 9th, 2007

    We sometimes have to deal with dynamically added properties at runtime, and looking into the code of some frameworks, we are not alone in this. However, whereas our packages are carefully structured to provide classname collisions (according to the standard reversed domain name convention), my experience is that developers take no such precaution when it comes to adding properties to objects at runtime.
    So it’s very probable for two different frameworks to add say a “className”, or a “hashCode” or a “key” property to classes or objects.

    Now the odds of using two frameworks together might seem slim, but on the other hand its a very subtle bug waiting to happen. You might not be using 2 frameworks, but you might use a component based on another framework loaded at runtime that does etc.

    I dont know if any of you are using any convention to prevent this, but we have recently started to use a very simple convention to make sure this doesnt happen, and I thought I’d share it.
    Instead of object[”key”] or object[”className”] etc we have recently started to define these as:
    private static var _key:String = “_”+[insert classname here]+”.”+[insert propertyname here]

    so for example:

    private static var _key:String =
    "_nl.trimm.util.SessionUniqueIdentifier.key";

    and then later on

    myObject[_key] = ....

    I’d like to hear if there are any of you who are using similar conventions or how you deal with this ‘problem’ (problem is a too big of a word for such a minor detail, but still).

    Some of the subtle errors on collisions like this are 256 recursion errors, hanging applications, not working in general etc.
    In my opinion a convention like this is especially important for sources you plan to release to a bigger audience, where these sources act upon the properties of all classes and objects from somewhere other than the class or object itself. As said above classes that fall into these categories are hashcodefactories, reflection utilities, wrappers and there might be more.

    MovieClipLoader won’t load

    Friday, June 29th, 2007

    Today I encountered something very simple… and weird:


    var mc:MovieClipLoader = new MovieClipLoader();
    mc.addListener (this);
    mc.loadClip(_viewUrl, _root);

    Should work right?

    Should but doesn’t. What’s the gotcha? It doesn’t work on _root.
    Not that that is a bad thing since _root is evil anyway, but I was only writing a ‘quick’ test for something.
    Again Flash turns it into a ‘quirck’ test instead.

    Correct way is to load it into a subclip of some kind.

    TikiWiki notification emails

    Wednesday, May 9th, 2007

    I had a problem today with the configuration of our TikiWiki portal. We migrated our portal from one of my private servers to our company servers after which tikiwiki no longer sent out notification emails upon changing a wiki page. After searching for a bit, it turned out to be very simple: in order for tikiwiki to send out notification emails it needs a valid recognized email address which can be specified on the general page.