Sneaky Bastard 0.2.0

Okay, after some weeks of testing I’m now ready to release Sneaky Bastard 0.2.0. This is an improved version of the development 0.1.7 branch, with a couple of bug fixes

Feature Summary

  • Preference Pane – As with version 0.1.7, Sneaky Bastard is now controlled via a preference pane
  • No menubar icon -if you choose – That pesky menubar icon is a dead giveaway to Sneaky Bastard’s presence. This version gives you an option to hide it.
  • Custom snapshot directory – Sneaky Bastard now allows you to choose the location of your snapshots, further eliminating suspicion of its presence
  • Admin control – Only the current user or admin will be able to modify Sneaky Bastard’s setting

Sparring.sh – One of the drawbacks of having no visible icon is that you have no way of knowing when Sneaky Bastard has crashed. To make sure Sneaky Bastard is always up I created a shell script, sparring.sh (it’s a sparring partner of sorts ;) . Add it as a cron job and schedule it to perform an hourly check on Sneaky.

Important

As with the previous versions, please remove any Sneaky Bastard instances before installing

Lion Support

Lion is still not supported by Sneaky Bastard as of this time. I’ve received reports that this is broken in Lion but I have no way of verifying this.

Download Sneaky Bastard 0.2.0
Download source
sparring.sh

Posted in download, source code | Leave a comment

Twit Justice

I’ve been running into some bugs with the new Sneaky Bastard version. And I don’t have to time right now to look into it. In the meantime, check out my new cocoa app, Twit Justice. It’s a Twitter app for the ears!

Posted in bug, cocoa, download | Leave a comment

Some updates

Finally, after what’s been more or less a year, Sneaky Bastard is
back on the development track and is almost ready for another release.
Most important update here is Sneaky is now a preference pane bundle.
Which paves the way for 3 important updates:

  • Sneaky can now install itself in the user’s login items.
  • Menubar icon can now be hidden.
  • Preferences will now be accessible only to a administrator account.

Here’s a recap of the development process:

Firstoff, the lastest Sneaky Bastard source has a new home in github: https://github.com/kristm/Sneaky-Bastard. This is where the all the action is right now and git just leapfrogs svn in terms of power and ease of use. You can check out the latest development updates there.

I was finally able to crack the code of Xcode’s build system: compiling multiple targets with one build. I had initial trouble searching the net for examples on how this is done(either resource is scant or I was woefully searching with the wrong keywords) but the recent Xcode 4 release made me realize key concepts like build targets, dependencies and phases ( I used Xcode 3 to build this version though, I’m not so sure losing IB is a good idea). This then enabled me to compile a preferences pane bundled with the SneakyBastard app.

Having multiple applications in a bundle means that these apps will have to share a common resource for configuration options. Because of this I had to the switch the high-level NSUserDefaults classes with the low-level CFPreferences classes. Which is a lot work but I had no choice.
Unfortunately as of this time NSUserDefaults have no support for inter app preference sharing. And with that Sneaky is now a officially a combination of Objective-C and standard C. (Github reports it’s a C project but that’s most probably on account of the 3rd party Email Framework).


Sneaky Bastard’s new Preference Pane controls

Sneaky Bastard 0.1.7

This is a development snapshot which is now in alpha testing stage. Will make it go through the paces for a week or so before making an actual release. If you’re the adventurous kind, you can grab the development snapshot here. You’ll need Xcode 3 or later to build. No guarantees though. This has been tested so far in OS X 10.6.

Posted in updates | Leave a comment

Sneaky Automator

I’ve been trying to rewrite Sneaky Bastard as a Preference Pane bundle from time to time. Unfortunately, it’s been more trickier than I thought. I can’t quite get the right resource on how to make this kind of build in Xcode.

Deciding to go this direction is based on two goals: Give Sneaky Bastard an option to be hidden from the Menubar but still accessible to the user. And to get the issue of converting from application bundle to a preference pane bundle out of the way so I can finally integrate Sparkle framework.

There are some people who are really concerned about the ‘discreetness’ of the app with the icon sticking out of the menubar though. Martin Mark got creative with Automator and submitted his own solution: An Automator script that will quickly fire up and close Sneaky Bastard upon login. He also took it a step further and made an alternate transparent icon. You can download them here.

The Automator script is intended to be run from startup via Login Items. It will look for Sneaky in the Applications directory and run for 20 seconds before shutting down. All this will also be simple to customize in the Automator application.

Posted in General | Leave a comment

What’s Next

After 3 (minor) version releases, around 6 months of dropping in and out of the code, I have already achieved what I initially set out to do. From herein my work in Sneaky will probably be fewer and far between. I have a few things remaining before I officially “hang the towel” on this little project. I’ve received some suggestions from users and most of them make a lot of sense.

So, here’s what’s coming in the next release(s).

Add option to grab Apple Mail’s SMTP settings. A couple of people have emailed me saying how it was not easy setting up Sneaky Bastard’s mail settings. A checkbox that would make it simple to copy Apple Mails settings should fix that.

Add option to hide it from Menu Bar. One of the earliest suggestions I got was that Sneaky Bastard should not be accessible from the Menu Bar, otherwise it can easily be disabled by a malicious user (well… provided he/she knows what it is). It’s true. The decision to make Sneaky accessible on the Menu bar was because it certainly wasn’t going to appear in the Dock or the Task Switcher. And the fact that it’s a more discreet place to be(add to the fact that it’s much more cooler to be up there ;) ). To allow Sneaky to be hidden from the Menu bar while still making it accessible to users, I’d have to make it as a Preference Pane.

Add auto update. It’s really a shame when you’re distributing software and you have to ask previous users to remove the old version first before installing a new one. Fortunately there’s a popular open source framework that makes it easy to add an auto update feature to Cocoa apps: Sparkle. I’ll be integrating this into Sneaky on the next version.

Make “temp” folder hidden. This is something I should have done from the very beginning considering how easy it was to implement (making a file invisible in Unix is as simple as adding a ‘.’ at the beginning of the filename). I was just worried that casual users might not be able to locate the snapshots if they happen to try and look for it.

Posted in General | 1 Comment

Sneaky Bastard in German MacWorld, other foreign language sites

Sneaky Bastard was making the rounds on some mac-centric foreign language websites last week. Pretty Awesome. When you’re suddenly featured in a foreign language page you don’t understand, well uhh, I guess it means something*. Thanks guys!

(*That something, according to Google language tools actually means that I still got some work cut out for me. ;)


Sneaky in MacWelt.de


in Japanese Mac blog

More thanks to macnotes.de, macreviewcast.com, iappleptiker.de, and surfbits.com for the podcast mention.

Posted in reviews | 2 Comments

How to use Gmail with Sneaky Bastard

I realize there were some people having a hard time setting up their email accounts in Sneaky Bastard. It’s not a very straightforward process and there’s no quick feedback on whether your email settings are incorrect or isn’t supported (will be addressed in the future,hopefully!). Unfortunately, this was an area I did very little tests with. I was just relieved after I got it working with my SMTP server that I never bothered checking other services.

Sneaky supports secure SMTP over TLS which is also supported by Gmail.

Here are the complete settings:

  • URL: smtp.gmail.com
  • port: 587
  • Username: youremail@gmail.com
  • Password: yourpassword

And a sample of how I do it:

Using Gmail in Sneaky Bastard

Some servers allow arbitrary email addresses in the sender (from:) field but you’d probably want to put the same value in the Username and Email From field, just to be sure.

Tip: When testing your email settings, it’s a good idea to restart Sneaky Bastard

Posted in networking | 1 Comment