Archive for August, 2009

Lotus, Snow Leopard, and Apple’s IRRemote

Monday, August 31st, 2009

It appears as though exclusive access to Apple’s Infrared Remote Control was removed in Snow Leopard, and thus 10.6 users running Lotus will notice that when they press the Play button on their remote, their Mac will launch or play iTunes. Likewise, the other buttons are intercepted by the system as well.

The remote can still be used to control Lotus, but obviously you probably don’t want your “Upbeat 80’s Mix” to start playing as you sit down to meditate.

I am hoping to find a workaround for this soon, at which point an update will be posted here. In the meantime you can still use Lotus’ regular GUI controls as usual to start, stop, pause, and reset your timers. Besides this quirk, Lotus Meditation Timer is fully compatible with 10.6, so download and enjoy!

Blackout updated to 3.2.1

Saturday, August 29th, 2009

Blackout has been updated to version 3.2.1. This is a minor update which fixes a small visual oddity in the system status menu when running Blackout on Snow Leopard (Mac OS X 10.6). It also further reduces Blackout’s disk space footprint.

Blackout is a unique screen dimmer that gives you hardware-independent screen dimming and special tools to help you focus during those late nights with your Mac.

Stay tuned for the upcoming 3.3 release which will feature support for dual displays! Click here to read more about Blackout, or download it now and try it out! If you like Blackout, please register your copy to support its development.

Help fight cancer, get cool Mac apps

Saturday, August 29th, 2009

For those of you who haven’t checked it out yet, be sure to visit Seth Dillingham’s PMC Mac Software Bundle fundraiser! It’s a great way to support the care and treatment of cancer patients through the Jimmy Fund, and get awesome Mac apps in return.

How does it work? Head to Seth’s PMC page to view a huge selection of top-quality Mac apps donated by various software publishers including Ambrosia Software, Delicious Monster, Extendmac, Realmac, Freeverse, and of course BravoBug! BravoBug donated 10 copies of Mega BrickBash 3000 and 10 copies of IconBurglar. And along with great Mac apps, you’ll find plenty of cool iPhone apps available for your ‘dream bundle’ as well. Then, once you’ve picked out your apps, you make an offer on the bundle. The best part? 100% of the proceeds go to support cancer care and treatment.

What’s in the works…

Tuesday, August 25th, 2009

UPDATE: There will be a small update made available soon for Blackout which will fix a tiny visual glitch with the status menu icon under Snow Leopard (10.6).

Some cool updates and new stuff on the way:

  • Blackout 3.3 – dual monitor support.
  • Easybatch 1.5.1 – many small tweaks & improvements, including better memory usage.
  • Multiplayer (Network or Vs. Computer) being added to Mega BrickBash 3000 in a new 2 player mode (which means new rules, new gameplay, new levels!).
  • MiLife 1.3.1 – small update with a few tweaks and bug fixes.
  • MacMetronome – more beat options, samples, and other good stuff.

Details to come soon! Thanks for visiting.

New EasyBatch 1.5 build

Sunday, August 23rd, 2009

A new build of EasyBatch 1.5 is available for download. This fixes a typo in one of the contextual menus, and fixes the help button’s positioning during window resizing. This update is a minor one for just these aesthetic tweaks, and does not update or change any of EasyBatch’s functionality, but any users who would like to update to the most recent build can get the latest download by clicking here.

Thanks for trying EasyBatch!

New! EasyBatch 1.5

Saturday, August 22nd, 2009

BravoBug Software is happy to announce today the 1.5 update to EasyBatch, the powerful and fast photo processor for Mac. EasyBatch has been given a big overhaul in this update, with improvements to the interface, stability, EXIF/GPS/metadata preservation, RAW file support, selective processing, improved saving, and much more.

EasyBatch allows you to resize, rotate, watermark, convert, and rename your photo albums with just a few clicks. With support for multi-core Macs, it also provides some of the fastest image batch processing you can get. Its powerful image tools (like custom renaming with unique prefixes, suffixes, and indexing) are easily accessible from its all-in-one interface.

Download EasyBatch 1.5 and try it out for yourself. Like what you see? Purchase an EasyBatch Shareware license (only $15!) to help support its development. Thanks for visiting.

Mega BrickBash 3000 Updated to 1.2.1

Saturday, August 22nd, 2009

Mega BrickBash 3000 has been updated to version 1.2.1. This new version of MBB3K contains changes to many of the end-game levels in the full game set (about 20 levels have been improved for better playability, pacing, and difficulty).

Mega BrickBash 3000 is a fun, action-packed arcade game with over 100 smash-tastic (is that a word? Because if it isn’t, it should be!) levels, and it’s available for download by clicking here. (Requires Mac OS X 10.4+).

Mega BrickBash 3000 Tip: Do you have a favorite music track in MBB3K? While playing the game, hold down the SHIFT key and press the right arrow key on your keyboard to skip through the game’s music tracks!

Cocoa Quickies: Sort an NSDictionary by keys

Friday, August 21st, 2009

If you’ve ever needed to sort an NSDictionary by its keys, you’ll quickly discover that this functionality is missing from the NSDictionary class. This is because the order of keys in an NSDictionary is undefined (really, the concept has no meaning in an NSDictionary in the first place). So the basic process to follow is:

  1. Put the keys into an NSArray for ordering
  2. Sort the NSArray
  3. Traverse each key in the NSArray and obtain the -objectForKey

Here’s the code. (Note: this method uses its own bubble sort algorithm, but you could easily replace this with NSArray’s built-in sorting methods if you wanted to):

-(NSMutableArray*)bubbleSortDictionaryByKeys:(NSDictionary*)dict
{
	//this method takes an NSDictionary and performs a basic bubblesort
	//on its keys. It then returns those ordered keys as an NSMutableArray.
	//You can then traverse the original NSDictionary and retrive its
	//ordered objects by simply stepping through each key in the NSMutableArray.

	if(!dict)
		return nil;
	NSMutableArray *sortedKeys = [NSMutableArray arrayWithArray: [dict allKeys]];
	 if([sortedKeys count] <= 0)
		return nil;
	else if([sortedKeys count] == 1)
		return sortedKeys; //no sort needed

	//perform bubble sort on keys:
	int n = [sortedKeys count] -1;
	int i;
	BOOL swapped = YES;

	NSString *key1,*key2;
	NSComparisonResult result;

	while(swapped)
	{
		swapped = NO;
		for(i=0;i<n;i++)
		{
		key1 = [sortedKeys objectAtIndex: i];
		key2 = [sortedKeys objectAtIndex: i+1];

		//here is where we do our basic NSString comparison
		//This can be easily customized.
		//See the options for -compare: in NSString docs
		result = [key1 compare: key2 options: NSCaseInsensitiveSearch];
		if(result == NSOrderedDescending)
		{
		//we retain for good form, but these
		//objects should still be safely
		//retained by the dictionary:
		[key1 retain];
		[key2 retain];

		//pop the two keys out of the array
		[sortedKeys removeObjectAtIndex: i]; // key1
		[sortedKeys removeObjectAtIndex: i]; // key2
		//replace them
		[sortedKeys insertObject: key1 atIndex: i];
		[sortedKeys insertObject: key2 atIndex: i];

		[key1 release];
		[key2 release];

		swapped = YES;
			}
		}
	}

	return sortedKeys;
}

And here’s an example of how it can be used:

    NSDictionary *test = [NSDictionary dictionaryWithObjects:
                         [NSArray arrayWithObjects:
@"4",@"3",@"1",@"2",@"6",@"5",nil]
               forKeys:  [NSArray arrayWithObjects:
 @"dog", @"cat", @"apple", @"big bear", @"zebra", @"porcupine", nil]];
    NSMutableArray *keys = [self bubbleSortDictionaryByKeys: test];
    NSEnumerator *arrayEnum = [keys objectEnumerator];
    NSString *aKey = nil;
    NSString *str = @"";
    while((aKey = [arrayEnum nextObject]))
    {
        str = [str stringByAppendingString:
               [NSString stringWithFormat:
               @"\nKey: %@ -> %@", aKey, [test objectForKey: aKey]]];
    }
    NSLog(@"%@",str);

Output:

Key: apple -> 1
Key: big bear -> 2
Key: cat -> 3
Key: dog -> 4
Key: porcupine -> 5
Key: zebra -> 6

New! MacMetronome v1.0

Wednesday, August 19th, 2009

Another nifty freeware app just released by BravoBug Software. MacMetronome provides a simple metronome tool for musicians. Speed is fully adjustable by BPM (beats per minute). It includes several sound samples which can be played ontop of each other in any basic 4/4 beat. The interface is simple, compact, and easy to use. It also provides a visual metronome-style indicator.

Best of all, MacMetronome is free! Download MacMetronome here (Requires Mac OS X 10.4 or later).

EasyBatch 1.5 Coming Soon!

Tuesday, August 18th, 2009

EasyBatch is being updated to 1.5 with several improvements, tweaks, and new features including improved RAW support, auto-orientation (portrait/landscape) detection, and more. This will be a free update to registered users of EasyBatch 1.x. Stay tuned!

UPDATE: A big thanks to those of you who have supported EasyBatch through its recent growing pains. Despite BravoBug’s best efforts, the 1.4 update introduced a handful of small but pesky bugs which are still being squashed to give EasyBatch the polish it deserves. The next update aims to fix these and introduces a number of improvements including better EXIF support. Check back soon!