Via Bruce Schneier
18 September, 2006
Renew Your Passports, People
15 September, 2006
Who "Launches" a Product That You Can't Buy Yet?
Microsoft does.
I'm sure they're not the only ones, but I'm in a mood today.Now, I've shared my opinion on the Zune's chances already. The iPod is a tough nut to crack. John Gruber recently reported on Apple's "Showtime" event on Tuesday. From that entry:
- Apple claims 88 percent of non-bootleg music downloads in the U.S.
- 70 percent of 2007 model year cars sold in the U.S. have iPod connectivity built-in. Not “MP3-player” connectivity. iPod connectivity. Note to Jobs: Send nice Christmas presents to the engineers who came up with the proprietary iPod dock connector port.
- 450,000 Nike + iPod Sport Kits have been sold in fewer than 90 days. Not Nike + MP3 Player Sport Kits. Nike + iPod.
- The iTunes Store is the fifth-largest music reseller in the U.S., and expects to pass Amazon early next year, at which point they’ll trail only Wal-Mart, Best Buy, and Target.
- Apple has sold 1.5 billion total songs to date.
So, probably the only company that is afraid of the Zune is Creative.
To be fair, the Zune (somehow they've managed to come up with a name even sillier than iPod) -- the Zune will come to the table with a couple of nice new features. The wi-fi song sharing sounds nice and the bigger screen is certainly a plus. I find it interesting that these are two features that Apple is reluctant to add because of battery life concerns. It should be no suprise, therefore, that we've heard no mention of the battery life of the Zune.
I should be nicer to the Zune, I know. Competition for the iPod can only result in good things. It's just that ... well, Microsoft's actions tend to speak much louder than their words.
23 August, 2006
The Sci-Fi Character Quiz
Another Geek Quiz! Via Bilz. Apparently I'm a formally schooled Shakespearean actor. Who knew?
22 August, 2006
Working with the Workspace in Eclipse Plug-in Tests
Okay, I've had to figure out how to do this a number of different times that exceeds two; so now I'm writing it down.
The Situation
I want to create a file in the test runtime workspace that I can run tests against.
The Solution, v0.1 ... (beta)
@Before protected void setUp() throws Exception { IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); // Create a project in the runtime workspace IProject project = root.getProject( "My-Test-Project" ); project.create( null ); project.open( null ); // Get a file from the test plug-in's bundle path URL url = MyTestPlugin.getDefault().getBundle().getEntry( "/" ); URL fileUrl = new URL( url, "resources/my-source-file.txt" ); String filePath = FileLocator.toFileURL( fileUrl ).getFile(); File sourceFile = new File( filePath ); // Create a folder and file in the test workspace IFolder folder = project.getFolder( "src" ); folder.create( false, true, null ); IFile file = folder.getFile( "testfile.txt" ); // and set its contents to the file from the plug-in file.create( new FileInputStream( sourceFile ), false, null ); }
You will have to delete the project in tearDown
. Otherwise, the next time
setUp
gets called, you'll get a ResourceException
.
06 August, 2006
More Eclipse Monkey
Today's Eclipse Monkey offering is entirely selfish in its utility. It updates the version number of any locally modified plug-ins in my workspace.
I've reformatted it a bit to make it fit a little better on this page.
--- Came wiffling through the eclipsey wood --- /* * Menu: Versions > Update Versions of Modified Plug Ins * Kudos: Toby Tripp * License: EPL 1.0 * * The Update Site URL and Feature ID of the "DOM" * for this script: * DOM: http://tripp.no-ip.org/eclipse/updates/com.ttripp.eclipsemonkey.doms * * The above DOM provides the following objects: * * svn - com.ttripp.eclipsemonkey.doms.subversion.SubversionResources * * pluginVersion - com.ttripp.eclipsemonkey.doms.plugins.PluginsFacade * * Note that this DOM depends on the Subclipse plug-in: * http://subclipse.tigris.org/update_1.2.x */ function main() { var verIndex = Packages.com.ttripp.eclipsemonkey.doms.plugins.PluginsFacade.UPDATE_VERSION // dirtyProjects returns an array of // Subversion resources (ISVNLocalResource) var dirtyProjects = svn.dirtyProjects(); for each( project in dirtyProjects ) { // This call will increment, by one, the third (update) // index of the plug-ins version number. pluginVersion.incrementPluginVersion( project.getResource(), verIndex ); } } --- And burbled as it ran! ---
My First Eclipse Monkey Script
My mother must be so proud...
The following bit of javascript will search the current workspace for projects that are locally modified subversion resources. In other words, they're checked in to subversion, but need committing. It doesn't do much with the results except to present a dialog box. I'll show you later what you can do with that list.
To install the script, first you have to have Eclipse Monkey installed. Once you've got that set up: copy the javascript below, including the jabberwocky quote surrounding it, into the clipboard. Then, in eclipse, select the menu item "Monkey->Paste New Script" and away you go. The script will appear in the Monkey menu. Enjoy!
--- Came wiffling through the eclipsey wood --- /* * Menu: Versions > Find Modified Projects * Kudos: Toby Tripp * License: EPL 1.0 * * The Update Site URL and Feature ID of the "DOM" for this script: * DOM: http://tripp.no-ip.org/eclipse/updates/com.ttripp.eclipsemonkey.doms * * Note that this DOM depends on the Subclipse plug-in: * http://subclipse.tigris.org/update_1.2.x */ function main() { var dirtyProjects = svn.dirtyProjects(); text = "\"Dirty\" Projects: (" + dirtyProjects.length + ")\n"; for each( project in dirtyProjects ) { text += project.getIResource().getName() + "\n"; } Packages.org.eclipse.jface.dialogs.MessageDialog.openInformation( window.getShell(), "Monkey Dialog", text ) } --- And burbled as it ran! ---