Apr 28
Well the long awaited Publish 28 was released yesterday. In fact this morning I notice that there is already a 28.1 publish, but then this is to be expected when major releases are decended upon by the maddening crowds.
Publish 28 looks to be a really good release. Lots of lovely new loot. My cybernetics are now working again and there are some nice new features like, /pvp to change your standing in the game from non-combatant to combatant to special forces and back again, rather than having to go hunting for a recruiter.
There is a lot of whining about cloning sickness, but frankly its completely unjustified. Cloning sickness, if you don't know, is a 10 minute debuff (-75 to a couple of stats). Getting rid of the debuff is really easy... Walk into the nearest cantena and start watching the nearest entertainer or go pay a medic droid in a nearby medical center or you could just go sit in a corner for 10 minutes... I don't see what the big deal is.
For more information the Publish 28 notes can be found
here
The Publish 28.1 notes are
here
Apr 27
I hate chainmail emails. Despise them! Loath them! Berate my friends for sending them to me! Mostly my friends have got the idea now, but every once in a while they forget....
One of my friends sent me "how to stay healthy" chainmail this morning. I didn't completely realise this is what it was until I got to the bottom of the email.
Why? Well at the top of the email was a quote from a George Carlin routine. Its a great quote, but then I think George Carlin is brilliant stand-up comedian anyway, so here it is (without the spam).
George Carlin's Views on Aging
Do you realize that the only time in our lives when we like to get old is when we're kids? If you're less than 10 years old, you're so excited about aging that you think in fractions.
"How old are you?" "I'm four and a half!" You're never thirty-six and a half. You're four and a half, going on five! That's the key.
You get into your teens, now they can't hold you back. You jump to the next number, or even a few ahead.
"How old are you?" "I'm gonna be 16!" You could be 13, but hey, you're gonna be 16! And then the greatest day of your life . . you become 21. Even the words sound like a ceremony . . YOU BECOME 21. YESSSS!!!
But then you turn 30. Oooohh, what happened there? Makes you sound like bad milk! He TURNED; we had to throw him out. There's no fun now, you're Just a sour-dumpling. What's wrong? What's changed?
You BECOME 21, you TURN 30, then you're PUSHING 40. Whoa! Put on the brakes, it's all slipping away. Before you know it, you REACH 50 and your dreams are gone.
But wait!!! You MAKE it to 60. You didn't think you would!
So you BECOME 21, TURN 30, PUSH 40, REACH 50 and MAKE it to 60.
You've built up so much speed that you HIT 70! After that it's a day-by-day thing; you HIT Wednesday!
You get into your 80s and every day is a complete cycle; you HIT lunch; you TURN 4:30; you REACH bedtime. And it doesn't end there. Into the 90s, you start going backwards; "I Was JUST 92."
Then a strange thing happens. If you make it over 100, you become a little kid again. "I'm 100 and a half!"
May you all make it to a healthy 100 and a half!!
Apr 12
Once in a while I really should read documentation - the "hidden" features I might find on all the applications I use.
For some reason Fiddler stopped working with Internet Explorer, so I was actually reading the few doc and faqs that are on the Fiddler website (
http://www.fiddlertool.com/).
If you don't know what Fiddler is, its an HTTP Debugging proxy. It logs all the traffic between your browser and the outside world. Its particularly useful when you're doing Flash remoting or remoting with AJAX.
Anyway... looking at the FAQs I noticed that it is possible to use Fiddler with any browser!! I decided to try it out with Firefox and it was really really easy to do.
- Install and Run Fiddler once. This will create some files, one of which you'll need.
- In "My Documents" you will now see that there is folder for Fiddler. Inside there you'll find a Scripts folder. Grab a copy of the full path to this Scripts folder. For me that would be : C:\Documents and Settings\Stephen\My Documents\Fiddler\Scripts
- Open up Firefox, go to Options under the Tools menu and then click on the Connection Setting button.
- Down the bottom of the connection settings is "Automatic proxy configuration URL:" Select this option and in the box put the file path to the Scripts folder followed by BrowserPAC.js which is a file in the Scripts folder. So my full path is : C:\Documents and Settings\Stephen\My Documents\Fiddler\Scripts\BrowserPAC.js
- Hit the Reload button, then OK, close the options window and you are set!
You will need Fiddler to be open in order to access the internet now, but its easy to switch between your normal settings and automatic proxy when you don't need Fiddler's assistance.
Apr 5
While I'm waiting for System Mechanic to find all the bits of Fiddler and uninstall it, so that I can reinstall it, I though I would post an note on some CFForms stuff I've been doing recently.
The client wanted to allow users to be able to click on a cell in a grid, the value in that grid to be displayed in an edit box, in much the same way as it does in the likes of Excel, and the user be able to edit that cell either in the cell or in the edit box.
Sounds simple enough. The problem comes when you try to work out which column is currently selected. CFGrid will give you the currently selectedIndex of the row in the grid and all the columns in that row, but not the column of the cell that has been selected.
In order to find out what is in the currently selected cell I had to add an event listener to the grid when the form is loaded and wait for a cell to be selected. This is the cellFocusIn event.
I have a function called onFormLoad() {...} which I call via cfform's onload attribute. In this function I have 2 global variables, _global.currentCol and _global.currentRow. I default these to '' and 0 respectively.
I then create a DataGrid in my onLoadForum that point to my cfgrid :
var datasheet:mx.controls.DataGrid = sheet;
I then create a listener object :
var listener:Object = {};
And create a function for when I get a "cellFocusIn" event.
listener.cellFocusIn = function(evt):Void {...}
This event has a number of attributes and functions, but I'm really only interested in the column related attributes and functions, specifically columnIndex and getColumnAt().
In my cellFocusIn function I get the row and column details and put them into my global variables and then use that information to file my "edit box".
//current grid row +1 for display purposes
var thisRow = evt.itemIndex+1;
var thisForm = _root.chartsheet;
var thisCol = datasheet.getColumnAt(evt.columnIndex);
_global.currentRow = evt.itemIndex;
_global.currentCol = thisCol.columnName;
thisForm.thisCellNo = thisCol.columnName+' '+thisRow;
if (datasheet.selectedItem[thisCol.columnName] != null)
thisForm.thisCell = datasheet.selectedItem[thisCol.columnName];
The last thing to do is to attach this listener to the grid. This is done using the method addEventListener()
datasheet.addEventListener('cellFocusIn',listener);
So now when a user selects a cell, the column name and row number are stored in the global variables, a display of row and column is done and an edit box is filled with the content of the selected cell.
Here is the complete onload function:
function onFormLoad() {
_global.currentCol = '';
_global.currentRow = 0;
var datasheet:mx.controls.DataGrid = sheet;
datasheet.hScrollPolicy = 'on';
var listener:Object = {};
listener.cellFocusIn = function(evt):Void {
var thisRow = evt.itemIndex+1;
var thisForm = _root.chartsheet;
var thisCol = datasheet.getColumnAt(evt.columnIndex);
_global.currentRow = evt.itemIndex;
_global.currentCol = thisCol.columnName;
thisForm.thisCellNo = thisCol.columnName+' '+thisRow;
if (datasheet.selectedItem[thisCol.columnName] != null)
thisForm.thisCell = datasheet.selectedItem[thisCol.columnName];
}
datasheet.addEventListener('cellFocusIn',listener);
}
and the form it belongs to :
Here's the dataUpdate function that is attached to the fieldeditor form item.
function dataUpdate() {
var datasheet:mx.controls.DataGrid = sheet;
var newdata = _root.chartsheet.fieldeditor;
if (_global.currentCol != '') {
datasheet.editField(_global.currentRow,_global.currentCol,newdata);
}
}
I have to be honest, I have chopped some of the form content out in order to protect the innocent ;) and I haven't tested that the form displays correctly, but the onFormLoad() function is unchanged. I'll sort out a working example and a download of the source soon.
5-8-2008
5-7-2008
5-7-2008
4-30-2008
4-29-2008