OSX Tools: TrueCrypt

OSX Users have enjoyed FileValult for quite a long time. It’s Apple’s standard tool to encrypt a whole volume. And it’s pretty hard to crack!.

But it has few weak points. You cannot encrypt a folder, or a single file. And once you’re logged into your mac, you’ve got access to all the files and folders stored within your user.
Maybe you share the user with someone else. Or maybe you simply wanna backup encrypted data, and you think that PGP isn’t a good alternative.. or you just wanna try something new!.

The TrueCrypt guys have built an incredible tool, which, by the way, is open source and free. It simply allows you to create ‘virtual encrypted drives’, and mount them as if they were external devices. The User Experience is pretty much the same as when you plug in a pen drive.

So… c’me on! check it out!…: http://www.truecrypt.org/

HTML5 Popups!

Old school HTML fellows know how annoying popups can be. It’s definitely not a good practise, since every single modern browser has some sort of popup blocker.

But what happens when we **really** need to display a popup ?.

Well, what Google fellows do is basically display a modal layer, preventing you from clicking anything below this layer. Thanks god, there are few interesting opensource options that already solve all the quirks you might find while dealing with tons of different browsers.

I’ve been playing with few of them, but since i’m a big jQuery fan, i got to pick fancybox… an html5 popups library, for free. How does it look?… well, just like this:

html5-popups
Fancybox is a jQuery plugin that allows you to display stunning in-window popups, with just few lines of code. It adds an overlay on top of your webpage, and its look and feeling is very OSX!.

I’m pretty sure there might be better solutions. But what i particularly love about this html5 popups framework is that it’s incredibly easy to implement. Just a couple of lines, and that’s it. Clean code leads to better results, in every single aspect.

Check it out, and leave your comments!.

FTP Client for OSX!

I recently had to play with several FTP servers… and truth to be told, working command line can turn into a pain in the neck. You might miss a filename, or maybe you need to type really, relaly long paths. That’s why i began looking for a decent FTP client for OSX.

Well, it turns out, these guys wrote a pretty decent FTP client. And guess what! they offer it for free!.

OSX FTP Client

If you like it, please, hit the donate button. It’s in the AppStore, too, but it’s offered for over 20 dollars, yet, for some unknown reason, you can get it for free straight from the developer’s website.

The good thing about Cyberduck is that it has support for Amazon S3, Google Docs, and almost anything you could possibly need.

I’m sure there are other pretty good FTP clients for OSX. But i think this one deserves our attention.

Preventing crashes: JSON Parsers & Null entries!

How many times you got to parse a backend response, and tested if a given value is != nil?. Well, as it turns out, many parsers (such as JSONKit) will parse ‘null’ values into an instance of NSNull. That might cause a crash… unless you write eeeverywhere… ‘!= nil && != [NSNull null]’.

So… a good idea would be to implement an NSDictionary extention, to do that. Right?.
The method would look like this:
[cc lang=”objc”]
– (id)objectForKeyNotNull:(id)key 
{
    id object = [self objectForKey:key];
    if (object == [NSNull null])
    {
        return nil;
    }
    else
    {
        return object;
    }
}[/cc]

Filtering arrays with NSPredicate!

Suppose you wanna filter a collection of objects. Normally, you’d write a while loop, implement a comparison, and add the matching objects to a collection.

Well, there is an easier way!!. For the sake of this example, say you wanna filter the objects that have the BOOL ‘isEnabled set to YES. So, you could do the following:

[cc lang=”objc”]
NSPredicate* predicate = [NSPredicate predicateWithFormat:@”isEnabled == YES”]; NSArray *filteredArray = [myArray filteredArrayUsingPredicate:predicate];
[/cc]

Yet another powerful example of NSPredicate would be… remember ‘SELECT* WHERE FIELD IN(1, 2)’ ?. Guess what!

[cc lang=”objc”]
NSPredicate* filterPredicate = [NSPredicate predicateWithFormat:@”field IN %@”, desiredFieldValues];
NSArray* filteredObjects = [allObjects filteredArrayUsingPredicate:filterPredicate];
[/cc]