Currently Reading

Image of Derivatives Demystified: A Step-by-Step Guide to Forwards, Futures, Swaps and Options (The Wiley Finance Series)

Image of Working Effectively with Legacy Code (Robert C Martin)

Image of Coders at Work: Reflections on the Craft of Programming

Image of Succeeding with Agile: Software Development Using Scrum (Addison-Wesley Signature)

Image of iPhone UK: The Missing Manual

Image of My Shit Life So Far

Recently Read

Image of Refactoring: Improving the Design of Existing Code (Object Technology Series)

Image of Advanced Actionscript 3 with Design Patterns

Image of The Secrets of Consulting: A Guide to Giving and Getting Advice Successfully

Image of Test Driven: TDD and Acceptance TDD for Java Developers

Image of Test Driven Development (The Addison-Wesley Signature Series)

Image of Cloud Atlas

Image of UML 2 for Dummies

Image of iPhone Advanced Projects (Books for Professionals by Professionals)

Image of Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)

Image of ActionScript 3.0 Design Patterns: Object Oriented Programming Techniques (Adobe Developer Library)


January 27, 2009

Number Romanizer

Filed under: ActionScript, Flex — Anthony @ 2:58 am

I was messing around on a personal project today and had to build a simple converter to change numbers into Roman Numerals. Below is the result. Had a few issues trying to use a simple object to hold the numerals as ActionScript was sorting the object Alphabetically which meant I was getting false results especially with 4's which would return four 'I''s instead of the correct 'IV'.

 
/**
* Function that turns any number into it's roman numeral
* equivelant.
* We have to use an array to hold the values as if we use
* a Dictionary / Object actionScript sorts it alphabetically.
* and we don't get the correct results.
*
* @param value : Number 0 - 9999;
*/
public static function romanize( value : Number ) : String
{
var numerals : Array = [
{ label : 'M', value : 1000 },
{ label : 'CM', value : 900 },
{ label : 'D', value : 500 },
{ label : 'CD', value : 400 },
{ label : 'C', value : 100 },
{ label : 'XC', value : 90 },
{ label : 'L', value : 50 },
{ label : 'XL', value : 40 },
{ label : 'X', value : 10 },
{ label : 'IX', value : 9 },
{ label : 'V', value : 5 },
{ label : 'IV', value : 4 },
{ label : 'I', value : 1 }
]
 
var roman : String = '';
 
for( var i : String in numerals )
{
while( value >= numerals[ i ].value )
{
roman += numerals[ i ].label;
value -= numerals[ i ].value;
}
}
 
return roman;
}
January 5, 2009

Time Calculator

Filed under: ActionScript, Flex — Anthony @ 11:19 pm

I recently found a post about someone needing a good time calculator and seeing as I had recently written one for the redbullracing website I figured I should improve it and release it here.

Features

  • Calculates time bi-directionally ie: if the date is in the past it will tell you the time since it elapsed or if it is in the future it will tell you the time left until it elapses.
  • Optionally set a expiration string to be returned when the date has been reached.
  • Fires a TimeCalculator.TIME_EXPIRED event when the time expires.
  • Set the precision level of the return values. ( YEARS, MONTHS, DAYS, WEEKS, HOURS, MINUTES, SECONDS, MILLISECONDS ). This allows you to return values for example where the date is 1 year 2 months in the future but you don't care about the years you just want the number of months, days, hours, minutes, seconds, milliseconds till that date. ie 13 months, 30days, 23hours, 59minutes, etc...
  • Individual time accessors ie get Years( ); Months( ); Days( ); etc... until the due date.
  • Set labels and separators to be returned with the time strings labels( 'years', 'months' ). 01years : 01months.
  • Optionally set removeEmptyTImes = false; This will display values that have no time associated with them. For example for a date 2 months in the future with a precision set to YEARS, the default return value from _timeCalculator.calculateTime( ); would be 01 : 30 :  23 : 59 : 59 : 999 with the years not being returned and the date starting at the months. However if you set removeEmptyTimes = false the return date would be 00 : 01 : 30 :  23 : 59 : 59 : 999 showing the years as 00 values.
  • Turn off individual time ammounts so if you wanted just the years, months and days for a given date you can set showHours = false; This will cut the date at the Days and only return YEARS : MONTHS : DAYS.

As usual you can right click to view the source.. Any comments suggestions or errors please leave a comment.

System.vmVersion

Filed under: ActionScript — Anthony @ 11:57 am

A fellow Senior Rich Internet Applications Developer at work Sam found a nice new undocumented attribute in the Systems package today. vmVersion seems to return the current Flash player virtual machine running on your computer. Mine, and Sams for that matter traces out as 1.0 cyclone. Not sure how useful this is but interesting none the less.