Umbuntu Panel Icons location

I cant bear not knowing how things work, which is one on the reason I use Linux, but even Linux hides stuff from you, one of which is where the icons in your menu bars ACTUALLY live, so they can be backed up/restored and if they are on a second monitor and for some reason cant get to that monitor you can still get to them

Anyway, on Umbuntu, they are located in the directoy

/home/user/.gconf/apps/panel

The individual icons are found in the /objects/object_XX format with a new directory created with each icon (and kept even if they are deleted)
Which icons are are shown where and in what order is kept in the /general/%gconf.xml file

nuff said

Embedded fonts in Adobe air

I know there are nice articles on it here and here by Adobe, but they just did not seem 100% clear when describing embedding fonts in Adobe AIR (also I know I’m supposed to be using ‘spark’ but again this is a support fix)

So to embed fonts in your adobe air app in order to stop your users wrecking your nice layout when they do something like replace the Ariel font on their system (don’t ask), you will need adobe Air 2.5 or better, and be using CSS for text properties (no more in-line stuff, or setting of default in “<mx:WindowedApplication” for you my lad)

Set the font face in the top of your CSS like this

@font-face {
    src:url("../src/com/ldc/Resource/fonts/arial.ttf");
    fontFamily: Ariel;
    advancedAntiAliasing: true;
}

Now the font will be actually embedded in your air application, so the link you use is the referential one to the font file that you have copied from your system font folder into your air project source folders

and then your normal CSS like this will be happy with it

.BaseField {
    color: #580C18;
    fontFamily: Arial;
    fontSize: 12;
    textAlign: left;    
}

that’s it

August’s 1st Tuesday Club

Last Tuesday was a great night at the 1st Tuesday club hosted by Information Security Solutions, as normal the conversations ranged from the intensely technical all the way through company purchasing patterns in the security market and ended up chatting about beautiful hikes around England, I was treated to an explanation on a super simple corporate CMS that minimises the chance for user errors resulting in unsecured documents (as we often see with share point) and got to catch up on all things security based. the sponsor for the night was HP who with their acquisition of Arcsight seemed to have really rounded off their portfolio of recently acquired security companies and had brought someone from each group along, all of them doing that tricky balancing act of being there to represent their company while not at any time doing any form of hard sell (Rob from Arksight was a particularly interesting person to talk to) it was a good thing that HP had not brought more people as it was packed with the waiters really earning their money keeping everyone’s glasses full and maintain a constant flow of food.

All in all a great night with good company that showed that HP is serious about the security arena.

A quick updates to an old database

Now don’t tell me off for this, and yes its very old and very dodgy, but this kind of thing seems to be creeping up more and more, so I figured it might be of use to someone

A client asked for a quick fix to a existing database, the problem being that a old Domino web database was causing problems, the code that runs when the button was clicked was taking longer and longer (growing data set) and the users were getting impatient and clicking the button multiple times causing the code to run multiple times, the client wanted the button to disable and show a little Ajax swirl when clicked , “no worries” i thought a simple little problem, then i find that this is an OLD db, the button was a actually a notes client button with formula under it on and form that was not either xpages or HTML

So, i ended up wraping the button in a bit of HTML and JS

and changing the ID of the button

here is the code in copy and paste version

<span style="display:none;">**OldStyleButton**</span>
<input type="button" id="AcceptSch" value="Accept"
onclick="document.getElementById('AcceptSch').disabled = true;
document.getElementById('AcceptSchAjax').style.display = '';
document.getElementById('fakeAcceptSch').click()">
<img id="AcceptSchAjax" src="/**PathToFile**/ajax-loader.gif"  width=16px height=16px style="display:none" />

Thankfully because the db was so old, there was no Ajax and a full page refresh is done on the page after the code under the button is complete, which meant i did not have to handle re enabling the button, simple

Now before you attack for the in line JS and no framework or stuff like that, there are reasons for this

– This database has had a lot of developers in its long life and I’m sure i wont be the last, this way might be a bit ugly but you can at least see the bloody thing, I hate bug fixing a database and touching something that breaks a dozen things that you cant see. and dont want to make it worse for the next dev
– Its simple and only changes one design element
– It works

ah well hope its useful, now time to leave the 00’s, and get back to modern problems.