Where can you find an application that comprises a single shell command wrapped in so many layers that it ends up 10,000 times bigger, slower, more obtrusive, less intuitive and full of junk, but still performs the same function as the original command?
AppleScript can be handy sometimes, but when people release applications like this, and get awards for it, alarm bells should be going off. WallSaver is almost two megabytes in size. For a single command-line.
Just reinforce the point, I wrote another wrapper for the same command in Objective-C. It’s 100 kb, or 60 kb without the icon. It can pause the screensaver (which brings it down to 0 CPU usage), resume it or restart it. And not once will it throw an “AppleScript error”
. Download it and see for yourself.
As for the source code, all you need is:
/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -background
17 Comments so far
Leave a commentMore on this gem here.
http://rixstep.com/4/2/wallsaver,00.shtml
Also this.
http://rixstep.com/4/2/desksaver,00.shtml
voiced by Rick on November 16, 2007 6:18 am | Permalink
Yes, I know those things…
http://www.appletje.nl/ (yeah, I know, mostly a Dutch site…) offers for €3 (±$4) an application that they call a ‘patch’ (like it’s actually repairing something that’s broken in Apple’s code!) to enable Time Machine for network drives (i.e. “defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1″). They even made it into one (Dutch) national newspaper for this… Completely ridiculous…
composed by sphynx on November 16, 2007 10:13 am | Permalink
Wow. That’s even more ridiculous than WallSaver. And they’re charging for it!!
That’s like the
defaults write com.apple.finder AppleShowAllFiles 1“applications” that are released by the dozen.voiced by Ankur on November 16, 2007 10:49 am | Permalink
Agree. So much software today is “blotware” - from adobe PDF 7 to PDF 8 the program became 4 times bigger….and with very few improvements….
The same thing happened with Nero and lots of other good commercial programs.
disclosed by Hope on November 17, 2007 6:59 am | Permalink
Adobe Reader 8 doesn’t even work properly most of the time. And initially they had the random crashes caused by the updater plugin. No thanks, Adobe. Maybe version 9.0.
divulged by Ankur on November 21, 2007 1:42 pm | Permalink
I find this blog somewhat humorous, especially coming right after your announcement of Trimmit.
While I’m sure trimmit does other stuff, your own announcement proudly proclaims that a large part of what Trimmit does is run existing command-line commands.
Anyone see a conflict here?
declared by Wade on November 22, 2007 4:23 pm | Permalink
Wade, I find it humorous that you’re making inflammatory comments like this. FYI, he released a shell script first, but found that Mac users are scared by the command line, so he had to write an app. And anyway, developers should be doing packaging their apps correctly to start off with.
disclosed by Harley on November 22, 2007 5:48 pm | Permalink
Nothing is broken at all; the “bloat” is a total nonissue.
I had a long reply written up, but this article:
http://www.joelonsoftware.com/articles/fog0000000020.html
says it better then I did.
The only things I can add are:
1) Wallsaver performs automatic updating, using the sparkle framework, which weighs in at 1.4 MB. 1.4MB is an excellent trade off to make for stable functionality without writing any code.
2) One gigabyte costs about then thirty cents today. By the time you read my this, the price will have fallen.
recorded by Vincent Gable on December 4, 2007 11:40 am | Permalink
Vincent, you want automatic updating for a single command line operation!?
composed by Ankur on December 4, 2007 11:55 am | Permalink
Yes. I like all the software that I use to update itself automatically. And there’s room for improvement with this little party-trick-app, so updates are welcome.
mentioned by Vincent Gable on December 4, 2007 1:16 pm | Permalink
This “party-trick-app” is nothing more than a command line. How about I write a 2 MB app that runs a defaults command to show hidden files in the Finder?
revealed by Ankur on December 4, 2007 2:13 pm | Permalink
The command-line isn’t a good interface. It violates pretty much all of http://www.asktog.com/basics/firstPrinciples.html
People have good reason to avoid it.
A simple interface to hide a command-line can be useful, like Trimmit. It’s why I use otx instead of otool. It’s a good thing to trade ease-of-use (important) for file-size (unimportant). Especially when we are talking about such infinitesimal sizes as 2MB, which is less then 0.02 percent of my disk’s capacity.
Of all the dimensions where programs could be improved, size-on-disk is currently least important.
/usr/bin/mail is 165K
Mail.app is 286.5MB
Yet Mail.app is a much better program by any reasonable definition.
The only thing I could see changing this is solid-state memory supplanting current hard-disk technology without a major price-drop.
proclaimed by Vincent Gable on December 4, 2007 4:00 pm | Permalink
Vincent, please be careful. There’s going to be heated discussion if you keep changing what you’re saying.
The simple reason that WallSaver - which wraps a single command line operation (in AppleScript) - needs auto-updating functionality is enough notice that it’s broken. Why else would it need updates? He’s certainly not going to be adding more features to ScreenSaverEngine.
But Trimmit’s not a wrapper for a single command-line. A peek in the Resources folder will find you a lovely - almost complicated - shell script.
You don’t seriously think WallSaver is better than the Obj-C alternative?
uttered by Ankur on December 4, 2007 7:15 pm | Permalink
I don’t understand where I am changing what I say, but my apologies for (apparently) being unclear.
For the record then:
Application-size is not a big deal, and it’s a total non-issue when the we are talking about only a few MB.
Consequently, I don’t see the how WallSaver is broken “beyond repair” or “dysfunctional”, since it functions just fine at running a screensaver as the desktop. It does not matter that it’s over a MB instead of under a KB. Even a little bit.
Again, http://www.joelonsoftware.com/articles/fog0000000020.html
says it better then I do, “In fact there are lots of great reasons for bloatware. “
published by Vincent Gable on December 4, 2007 9:18 pm | Permalink
The DeskSaver bundle does not have write privileges for the user, and it should. When someone tries to move the app, say to to /Applications/ , Finder asks them to authenticate first. That’s no good.
(Strangely, you can still move the folder with DeskSaver inside it. You cant even move it to the trash and empty it. But you can’t move just DeskSaver.app without authenticating.)
announced by Vincent Gable on December 5, 2007 2:11 am | Permalink
People’s time is worth something. Federal minimum wage in the US is $5.85 per hour. I think that’s a major under-valuation, but it’s an indisputable lower-bound, so let’s go with it.
Now I claim hard-drives cost $0.30 USD per GB [1].
Divide price/hour by price/GB and we find that a person’s time is worth a minimum-wage of 19968 MB per hour [2].
So 2MB translates to at most 0.36 seconds of someone’s time [3]. That’s totally inconsequential. I don’t understand why you make such a big deal about < 2MB. Sure, all else being equal, smaller is better. But it’s not a big deal. FAT binaries were a good solution in the early 90’s and they’re a better solution now.
The whole point of wrapper programs is to save people time (not save computers time). And they do a good job of that, despite their flaws. It would take the average person 31 seconds to type in the 125 character sequence [4]:
/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -backgroundAnd that’s totally ignoring the time it takes them to find and launch Terminal — which they never use because they’re not geeks, remember. And that’s assuming they memorized that command in the first place!
Now I timed myself, and it took me about 25 seconds to bring up Terminal, and type it in. With Terminal already running, and using tab-completion of course.
But It took me 13 seconds to find and launch WallSaver, then click “Activate”. A two-fold savings.
The reason WallSaver is winning awards is because it lets people do something neat with their computer, and because it doesn’t matter that it’s footprint isn’t optimal. In fact, the strange permissions DeskSaver ships with will do more to aggravate normal people then WallSaver’s “bloated” size.
[1] A 750GB external-hard-drive for $229.99.
http://www.newegg.com/Product/Product.aspx?Item=N82E16822136132
It works right out of the box. There’s no hidden labor costs for instillation.
[2] http://www.google.com/search?q=%285.85+dollars+per+hour%29+%2F+%2830+cents+per+GB%29+in+MB+per+hour
[3] http://www.google.com/search?q=2+MB+%2F+%28%285.85+dollars+per+hour%29+%2F+%2830+cents+per+GB%29%29
[4] The mean typing speed is 40 WPM according to:
http://www.readi.info/TypingSpeed.pdf
40 WPM * (5 letters + space) = 240 characters/min.
125 characters / 240 characters/min = 31 seconds.
posted by Vincent Gable on December 5, 2007 5:18 am | Permalink
Vincent - I’m not going to argue about whether file size is important. However:
It’s actually the parent directory’s permissions that affect what you can do with the bundle; moving and deleting are still ok. Finder shouldn’t be asking for authentication - maybe it’s paranoid?
That’s not the point. WallSaver is bloated. It’s written in AppleScript. For a single command-line. It has auto-updating functionality. For a single command-line. It’s 2 MB. For a single command line.
We’re not talking about a “wrapper” here. We’re talking about a wrapper for a wrapper for a wrapper.
But with bugs like and - you know it’s gotta be good.
Really, what’s wrong with Obj-C?
proclaimed by Ankur on December 5, 2007 7:24 am | Permalink
Leave a comment