Hack: Xbox Controller + iPod Shuffle

This is a neat hack — it shows how to modify an Xbox controller’s second memory card slot to provide a standard USB port, which can in turn be used to charge an iPod Shuffle while playing the Xbox is on. See the rest of the photos. The Xbox seems to recognize some USB mass storage devices and will ask to format them to the Xbox’s filesystem, and it would not be a good idea to do that if it asks when the iPod is connected. However, you can format USB flash drives and use them to stash game saves. Personally, I keep the 007 Agent Under Fire hack and various homebrew BIOS files on a 32MB flash drive for quick modding.

Hack: Xbox Controller + iPod Shuffle

Transmit

The great folks over at Panic, makers of my favorite FTP and iDisk (WebDAV) client have been busy updating their applications for Tiger. Aside from the fact that Transmit 3 beats the Finder hands-down in both iDisk and FTP connectivity, it also boasts AppleScript-ability. Panic has taken advantage of this with a new Dashboard widget to go along with it, and it is really slick. Upon opening it, you click to configure the widget’s network settings, then click Done and are greeted with an animation that indicates it is ready to accept dropped files. While uploading files, the Transmit truck appears to drive along a road, and successful/failed uploads are met with appropriate colored indicators. Overall, it’s a nice addition to an already fantastic client. Panic did such a nice job on the widget animations, too — it makes me wish more widget developers would make use of them. Although copyrighted, the JavaScript code inside the widget is well documented and may give you an idea of how everything works. Download the Transmit widget.

Transmit

AirPort Express Promo Photoshop File

Continuing in my Photoshop file giveaway category, I present you with some Apple advertising in layered Photoshop format. While I didn’t come up with the advertisement idea, I did make the file from scratch (except for the AirPort Expess photo). Apple’s advertising is a vital part of their brand, especially the music parts of it, and I think it’s interesting to study how they make it. I have left my original screenshot inside the Photoshop file in a layer titled “reference” so that you can compare. You can explore how Apple’s advertising is created by poking through the layers in this file and hopefully learn something from it. Creating this kind of thing keeps my Photoshop skills fresh, as well. Just as for the others, this is a Photoshop CS2 file saved with compatibility mode on.

AirPort Express Promo Photoshop File

Tiger Logo Photoshop File

In the hopes that developers will use this to promote their Tiger-ready projects, I present you with a gigantic Tiger logo layered Photoshop file. The dimensions of this thing are huge — 2576 x 3067! It includes the OS X logo, drop shadow, grey spotlight, and black background, all on their own layer (or as layer effects). I’m sure Apple has some guidelines on all logos and branding, so in the interest of channel guidelines, please use it tastefully. Enjoy (7.7 MB zipped).

Tiger Logo Photoshop File

Xbox 360 Video

Xbox-Scene recently posted a link to an Xbox 360 introduction video:

The first official Xbox360 is out – and it confirms pretty much everything we knew so far, the ‘Xbox360’ name, the Xbox360 logo, the wireless controllers, the specs, the skinnable front plates, the look and design of the console, contoller and much more.

I want one.

Xbox 360 Video

RSS+XML Photoshop Files

I created these RSS and XML badges for a project, and I was happy with how they turned out. I’ve seen bunch of tutorials on the web about how to create aqua-looking images, so I thought I would add this to the list. You can obtain the original layered Photoshop files here, for RSS and XML. They were saved in Photoshop CS2 with compatibility mode on, so they should open with past versions just as easily. Feel free to use them for whatever you want.

Update: By request: CSS (green) and xHTML (gray) badges as well.

RSS+XML Photoshop Files

Widget Security

Yesterday, an article on Slashdot about Dashboard widgets got my attention. It has been discovered that widgets pose a possible threat to users’ systems, as they are automatically run when downloaded. A specially crafted web page can direct your browser to download a widget, and Safari’s default behavior is to decompress the .zip archive. The Finder recognizes the .wdgt extension of the newly unzipped file, and launches the widget. In most cases, this makes for a very user-friendly Dashboard experience. However, user-friendliness almost always comes at a cost. Any code contained within the widget gets run, and that’s where the threat comes in. Some code gets run on the target system without any action on the user’s part, other than loading a web page in Safari.

Widgets do have a security layer provided by Apple, and it is built into the Info.plist files within each widget. A standard widget has no access to the internet, the command-line, files outside the widget bundle, Java applets, browser plugins, or widget plugins. In short, without your permission, a widget is effectively in its own sandbox and can do nothing harmful. When a widget needs access to one or more of these resources, it asks for your permission upon launch. When you click “Accept”, the widget can do whatever it needs.

From a security-oriented point of view, I think the main problem with the widget security layer is that the would-be “attacker,” a widget with bad intentions, defines its own security limitations. Mentioned above, each widget’s security is controlled by the Info.plist file written by it’s author and stored inside the widget bundle. A better solution might be to present the user with a dialog that details what resources the widget is requesting, allowing the user to decide what the widget should be allowed to do. This problem is made worse by an overly simple security interface. Different levels of security controlled by one “Accept” button. If the widget is going to define it’s own security limitations and the user will only see one button for any or all of them, why have more than one level of security? A single “AllowFullAccess” key in the Info.plist file would suffice. Future versions of Dashboard may see a security preference where users can control the level of access they would like widgets to have. This may be a bit of a problem, though, because not all users are aware of what a widget needs to do it’s job, and they really shouldn’t have to know. A solution lies somewhere between what the user knows about the inner workings of a widget and what security allowances are necessary for the widget to function. At best, the user needs to be able to easily control what a widget can do without knowing how it works. This is the type of situation in which Apple’s wizards excel, and I look forward to an elegant yet effective solution.

So what can you do to protect yourself right now? The front line for stopping harmful widgets from automatically installing themselves is to change your Safari download settings, as Safari expands widget archives upon download. In Safari’s “General” preferences tab, uncheck “Open ‘Safe’ files after downloading.” With this unchecked, all widgets and files that download and would normally be auto-opened are simply saved to your default download location in their respective format. While you can still “infect” yourself by opening the archive and running the widget, nothing happens automatically without your permission. Turning off the opening of “safe” files may cause you to go through one more step after downloading something, but your computer’s security is worth the time it takes to switch out of Safari and examine a file before you run it.

The second thing you can do to help protect yourself is learn where widgets are stored in Mac OS X. While widgets can be run from any location via a double-click, they aren’t listed in the Widget Bar (which is activated by clicking the plus symbol in the lower-left of Dashboard). Widgets listed there are kept in the main Library folder inside the Widgets folder, at /Library/Widgets/ inside your boot drive. Optionally, widgets can be kept in separate folders for each user, under your Home folder, then following the same structure above. You can add or remove widgets from either folder, and the Widget Bar will be updated. Stephan.com, the origin of the widget security threat report, claims that “the Dashboard bar is not very good about updating when a widget is removed, but eventually it figures things out.” From my own testing, though, I find that the Widget Bar gets updated as soon as you add or remove widgets and activate it again. Alternatively, you could use Widget Manager to control all the widgets you use.

Finally, you can also learn how to stop an active widget in its tracks. By opening Activity Monitor, in the /Applications/Utilities/ folder, you can see all current processes running on your machine. If you type “dashboard” into the “Filter” search field at the top, you will filter the process list to only dashboard widgets (and whatever else may happen to have “dashboard” in its title). Using the list of widgets, you can click on one and click the red “Quit Process” button, then “Force Quit,” and that widget will be stopped, regardless of what it was doing. While not the best solution, it’s a fairly simple way to end an annoying widget that just won’t quit.

Dashboard widgets are a great addition to Mac OS X, and I would hate to see them become a source of spyware-type problems for users, but the fact remains that they are a rather large opening for such a thing to happen. Widgets allow anyone to write custom Javascript, Cocoa, or shell scripts to do almost anything they want on your computer. While most will use it to create slick-looking and useful widgets, the possiblity for creating harmful ones is there, and your best defense is being aware of the situation and acting in accordance.

Update: Several other sites commented on the widget problem:

Widget Security