20. September 2012 · Comments Off · Categories: Mac

What’s New in Version 1.4
Ready for OS X 10.8 (Mountain Lion), separator checkbox now updates currently generated password, other minor interface improvements.

MD5: 9c33605ae05392ab48adc8e15e31dca9

Download Now!

20. September 2012 · Comments Off · Categories: iOS

What’s New in Version 1.4
Ready for iOS 6 and iPhone 5, separator switch now updates currently generated password, other minor interface improvements.

Download Now!

08. August 2012 · Comments Off · Categories: Cisco

I recently took and passed Cisco CCNP Security FIREWALL (642-618). Unfortunately the test changed from 642-617 to 642-618 while I was in the middle of studying, so I had to study the deltas between the old and new tests using the Cisco Press guide. I used CBT Nuggets video training for 642-617 and the official Cert Guide from Cisco Press for 642-618. The biggest difference is that 642-617 covers ASA OS up to version 8.2, whereas 642-618 covers 8.3 and 8.4. In case anyone is interested, I’ve decided to share the notes I took in preparation.

Pro tip: Cisco made major changes to the way NAT is configured and processed in OS versions 8.3 and later versus 8.2 and before. Know them well.

CCNP Security FIREWALL Notes (PDF)

05. May 2012 · Comments Off · Categories: iOS

What’s New in Version 1.4
I listen to feedback. Here’s proof:
- No more ads!
- Full support for multiple orientations (landscape)
- Full support for Retina display iPad
- Prettier colors and easier to read on iPad

PLEASE show your support by rating Vimmy!

Download Now!

23. March 2012 · Comments Off · Categories: iOS

What’s New in Version 1.3
Ready for iOS 5.1, new icon, iPad Retina support, added new content to Miscellaneous section. Now utilizes Apple iAd to help support future development of this and other 13Cubed apps.

Download Now!

18. February 2012 · Comments Off · Categories: Mac, Snippets

This is a quick-and-dirty way to write a simple locked-down web browser perfect for kiosks or other similar scenarios. This code opens a pre-defined URL in full-screen mode and works with Snow Leopard and Lion. Instead of the overhead of a full browser like Firefox, the compiled size of this code is around ~500k and is designed to serve a very simple function.

AppDelegate.h:

//  AppDelegate.h
//  QuickWeb
//
//  Please edit below to define URL, font and font size.

#import <Cocoa/Cocoa.h>
#import <WebKit/WebKit.h>

#define MY_URL          @"http://www.example.com"
#define FONT            @"Times"
#define FONTSIZE        16

@interface AppDelegate : NSObject <NSApplicationDelegate> {
    NSWindow *mainWindow;
}
@end

AppDelegate.m:

//  AppDelegate.m
//  QuickWeb
//
//  Please edit "AppDelegate.h" to define URL, font and font size.

#import "AppDelegate.h"

@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    int windowLevel;
    NSRect screenRect;
    // Capture the main display
    if (CGDisplayCapture( kCGDirectMainDisplay ) != kCGErrorSuccess) {
        NSLog( @"Couldn't capture the main display!" );
    }
    // Get the shielding window level
    windowLevel = CGShieldingWindowLevel();
    // Get the screen rect of our main display
    screenRect = [[NSScreen mainScreen] frame];
    // Put up a new window
    mainWindow = [[NSWindow alloc] initWithContentRect:screenRect
                                             styleMask:NSBorderlessWindowMask
                                               backing:NSBackingStoreBuffered
                                                 defer:NO screen:[NSScreen mainScreen]];
    [mainWindow setLevel:windowLevel];
    [mainWindow setBackgroundColor:[NSColor blackColor]];
    [mainWindow makeKeyAndOrderFront:nil];
    
    // Load content view
    NSString *urlAddress = MY_URL;
	NSURL *url = [NSURL URLWithString:urlAddress];
	NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    WebView *webView = [[WebView alloc] initWithFrame:screenRect];
    [[webView preferences] setStandardFontFamily:FONT];
    [[webView preferences] setDefaultFontSize:FONTSIZE];
    [[webView mainFrame] loadRequest:requestObj];
    [mainWindow setContentView:webView];
}

- (void)applicationWillTerminate:(NSNotification *)notification
{
    [mainWindow orderOut:self];
    
    // Release the display(s)
    if (CGDisplayRelease( kCGDirectMainDisplay ) != kCGErrorSuccess) {
        NSLog( @"Couldn't release the display(s)!" );
    }
}

- (BOOL)canBecomeKeyWindow
{
    return YES;
}

@end