Posted by marshall
Tue, 17 Jun 2008 00:43:00 GMT
I'm back from WWDC, and it was a great week. The sessions were interesting, I had lots of good discussions with friends, and as usual, a bit of sightseeing was worked in as well. The conference itself was far better than last year's blend of dropped Leopard features and the "sweet" "Web 2.0" "app" "solution" for the iPhone. This year, we got solid information on the real iPhone SDK, Snow Leopard, and even some improvements for web apps.
For once the early buzz was fairly accurate, so my predictions for what was likely to appear turned out to be reasonably accurate as well. The things I thought would happen did, and the things I didn't expect (but nonetheless hoped for) were nowhere to be seen. And while there were a few small surprises, there weren't any really big shockers.
That being said, here are the results, broken down in the same way the predictions were...
Read more...
Posted in Musings, Computing, Smartphones | no comments | no trackbacks
Posted by marshall
Sun, 08 Jun 2008 05:41:00 GMT
There is almost always a surprise at Macworld and WWDC keynotes, and no one really knows going in just what's going to happen. There's no real point in trying to figure out ahead of time what sessions to attend at WWDC; the keynote frequently changes everything.
John Siracusa has been making bingo cards for the past couple of years, containing predictions what may or may not appear at the keynote. I never really played along, but I do have my own expections of what will happen. I'm usually wrong -- most spectacularly at Macworld 2007 (my list was similar to Gruber's) -- but even then it's fun to look back later and compare what I predicted with what actually happened.
So here they are, broken down by how confident I'm feeling.
Read more...
Posted in Musings, Computing, Smartphones | no comments | no trackbacks
Posted by marshall
Thu, 05 Jun 2008 22:48:00 GMT
TUAW is saying that WWDC next week will bring a build of Mac OS X 10.6, which "will not include any new significant features from 10.5; instead, Apple is focusing solely on 'stability and security.'"
Daring Fireball notes that the name for this release is rumored to be "Snow Leopard", and follows up with this comment:
"If you’ve ever wished that Apple would spend more time focusing on making existing parts of the OS work better rather than adding new features, this is going to be the release for you."
Count me in among those who have wished for something like this.
Read more...
Posted in Musings, Computing, Smartphones | no comments | no trackbacks
Posted by marshall
Sun, 25 May 2008 03:54:00 GMT
A few days ago, John Gruber posted a Perl script that he uses for converting text to title case on the excellent Daring Fireball site. Shortly thereafter, Dan Benjamin of RailsMachine voiced my immediate thought: "We need this rewritten in Ruby."
Ruby includes a capitalize method for String objects, but it simply uppercases the first letter and then downcases everything else -- not helpful at all. Rails adds a titleize method that gets a bit closer, but it's one of the "non-clever" functions that Gruber mentions: it doesn't downcase small words like "of", it incorrectly handles words with embedded caps (e.g. "iTunes"), and it mangles contractions and possessives (e.g. "can't", "AT&T's"). Gruber's script, by contrast, works correctly with almost any input.
Knowing that Ruby's text processing features are largely influenced by Perl, and seeing that the script in question wasn't actually that long, I figured I'd give it a try. It turned out to be quite a straightforward port; the biggest hurdle was learning enough Perl to determine what the script was doing (it's one of those languages that I was intending to learn for a long time, but I lost the will once I came across Ruby). And once I'd gotten that far, it wasn't too difficult to work out a JavaScript version as well. Gruber very helpfully provided a list of edge cases for testing, so it was easy to tell when the new code was working properly.
With the Ruby and JavaScript versions finished, I probably should have stopped. But it was turning out to be a fun exercise, and I thought to myself, "what if I needed this in an iPhone app someday?" Well, that's more of a challenge. Gruber's script does all its work with regular expressions, and Cocoa does not have built-in regular expression support. Various people have come up with extensions to support them, such as RegexKit, but those require additional libraries, and I kind of wanted to keep it self-contained. Plus I figured it would be more of an interesting problem to solve with just the built-in objects, since I'd already done two versions that depended on regular expressions.
The result is an Objective-C category (VCTitleCase) that extends all NSString objects with a titlecaseString method to complement the existing lowercaseString and uppercaseString methods. It's implemented using NSScanner, and because it already has to parse out each word, it does almost everything in one pass rather than doing multiple find-and-replace steps.
All three versions are available on the Title Case Ports page.
Footnote: Of course, I was just one of many to respond to Benjamin's request: he later posted a list of 11 responses, with more in the comments. A couple of them took the next step and extended the Ruby String class to support title-casing. Unfortunately, quite a few seem to have missed the point -- or at least they didn't take the time to understand the problem. Many didn't properly handle contractions, small words at the end, or the special cases that Gruber's script took care of, such as "Q&A". It's particularly disappointing given that 1) the original script wasn't that long, 2) Gruber spelled out exactly what "clever" things he was trying to accomplish, and 3) a set of edge cases was provided for testing.
Posted in Computing | 1 comment | no trackbacks
Posted by marshall
Thu, 03 Apr 2008 20:54:00 GMT
Yesterday I had the misfortune of having to install Adobe Creative Suite 3 (Super Duper Web Ultimate Premium Extreme Edition...or something like that). It's not that I didn't want the products; it's that Adobe has crafted perhaps the worst out-of-the-box experience I have dealt with.
I was going to write up a whole article detailing its failures, but it turns out that Adobe is inflicting the same horrible system upon users of Photoshop Elements as well, and Jens Alfke has posted an excellent write-up of it here:
It doesn't cover some of the further annoyances, like how Adobe Help Viewer gets installed in /Applications even if you tell it to install somewhere else, and how multiple folders get created inside /Applications/Utilities even though you told it to install somewhere else, and how every single application in CS3 is put into a separate folder full of files like "JSBridge.bundle" and "libjflashgen.jnilib" (including apps you didn't know you were installing and couldn't turn off)...but some of those may be CS3-specific, I'm not sure.
From the comments on that page, it appears that the installer is the product of Blue Flavor, whose PR page for the installer goes on about how the installer is web standards compliant and AJAX-enabled.
What the...?!
It's a freaking installer! We're not talking about the latest Web 2.0 my-second-social-face app here. We're talking about a way of distributing software that already has a standard framework with a standard user experience on both Mac OS X and Windows.
And this is what happens whenever developers try to take shortcuts when creating cross-platform applications: their product sucks on all platforms. It's generally worse for the Mac, whose users have higher expectations, but it's bad for both.
This is why one of the best things I've heard recently is that Adobe's going to have to rewrite Photoshop CS5 in Cocoa to get 64-bit support. By dropping 64-bit support for Carbon, Apple has forced Adobe to finally update Photoshop to a modern codebase, instead of maintaining the lousy OS9-based UI it's been limping along with for years.
This wouldn't necessarily give me as much hope (if anyone can screw up a Cocoa-based UI, it'll be Adobe) if I didn't keep hearing positive things about Lightroom. It's Cocoa-based, and apparently it feels much more at home on Mac OS X than other Adobe products -- right down to the installer. I'm at least encouraged by the feature tour on Adobe's site: the dialogs actually use Aqua group boxes (the sunken style introduced in Panther), which, when compared with CS3, is a major accomplishment for Adobe. Hopefully the improved quality of Lightroom will become the norm rather than the exception.
(And no, I'm not saying that Carbon cannot be used to produce great apps. It's just that virtually all of the apps that I've used that feel out-of-place on Mac OS X are from developers who are depending on Carbon to keep around old UI code written for a completely different operating system. The developers who really "get" Mac OS X are all using Cocoa. Plus Cocoa provides a base set of "free" functionality that, because it takes extra work, rarely shows up in Carbon apps.)
Posted in Computing | no comments | no trackbacks
Posted by marshall
Mon, 31 Mar 2008 03:15:00 GMT
So BlueHost went and updated Rails to 2.0 without telling anyone. This killed my blog until I upgraded to the latest version of Typo, which was harder than it ought to have been because BlueHost changed some other things around too (such as how FastCGI scripts are handled) and added some misleading items to cPanel that give the impression that Rails apps should now be run through Mongrel. And Rails apps do, in fact, start up in Mongrel when started through cPanel, but the rewrites that cPanel says you need to do don't actually work, and the Mongrel process dies after several minutes anyway.
Sigh.
Anyway, it's back up now, and I've frozen Rails so that hopefully (please oh please) it won't break again when BlueHost goes on a non-compatible update spree the next time.
Hmm, maybe I should actually start posting things again now. Wouldn't that be crazy?
Posted in Computing | no comments | no trackbacks
Posted by marshall
Thu, 20 Apr 2006 06:22:00 GMT
I recently found myself the elated owner of a shiny new dual-core MacBook Pro with 2 GB of RAM and 256 MB of video RAM. It's a wonderful experience. But perhaps the greatest part of it is the recent developments in dual-booting and virtualization. First Apple shocked everyone by coming out with Boot Camp. which supplies the long-lost BIOS CSM that was missing from the EFI-based Intel Mac hardware, along with key drivers and a ridiculously easy partitioning tool, making it exceedingly simple to dual-boot between Windows XP and Mac OS X. Then, just days later, Parallels introduced their virtualization solution, which is nothing short of amazing.
Like Virtual PC, Parallels runs Windows XP in a window inside OS X, but unlike Virtual PC and every other similar solution, it's fast. Very fast. I now have TextMate open in OS X on my main display, and the ever-infuriating Internet Explorer open in Windows XP on my secondary display, and the mouse pointer just glides seamlessly between them. Run full-screen and combine with Virtue for 3D transitions between OS X and Windows desktops. It's exactly what I've been wanting for web development, and I sure could have used it in Indonesia last year for configuring the Tranzeo units we had in the internet cafe (whose web UI inexplicably worked only in IE, and just barely at that). Windows XP boots and runs much faster in Parallels than it does on my P4-based Dell GX270. With Office and IE running in Parallels, and a dual-boot configuration for high-performance 3D apps (e.g. games), there really is no reason to have a Windows-only system anymore.
Posted in Computing
Posted by marshall
Wed, 28 Sep 2005 19:29:00 GMT
I love TextMate. It is the software I spend the vast majority of my time in during the day, and I'm constantly discovering new worlds of functionality in it.
Read more...
Posted in Computing
Posted by marshall
Fri, 16 Sep 2005 18:59:00 GMT
I finally got around to buying a copy of NoiseWare the other day. I've been meaning to get some kind of photograph noise reducing software for a while, and the new phone gave me the final push. As with most consumer digital cameras, the camera in the 6682 doesn't fare too well in low-light conditions, and even has some graininess in well-lit scenes. NoiseWare is amazing at reducing the noise while preserving the detail. It's not perfect -- there's only so much it can do with what you give it -- but it certainly helps.
Click on the picture below to see a before/after comparison:

I really should have bought it earlier; it also works very well on photos I took with my Treo. Combine it with a bit of black/white level adjustment and slight unsharp mask, and some surprising detail can emerge.
NoiseWare's certainly not the only product on the market that does this; I also tried Noise Ninja, and I've heard good things about Neat Image as well. I liked Noise Ninja's method of selecting parts of the image you knew to be noise. But from what I read and from the free trials I used, NoiseWare seemed to provide the best results. I got the Photoshop plug-in version; there's also a standalone one for those without Photoshop. All three of the products mentioned have versions for both Mac OS X and Windows.
Posted in Pictures, Computing
Posted by marshall
Wed, 14 Sep 2005 17:28:00 GMT
This morning I read an interview with Bill Gates. This has got to be one of the scariest things I've read in a long time. From the article:
At any point in our history, we've had competitors who were better at doing something. Novell was the best at file servers. Lotus was the best at spreadsheets. WordPerfect was the best at word processing. Right now...Nokia is way ahead of us in phones; we're closing the gap. Sony is ahead of us in video games. We're just on the verge of something (the Xbox 360) that will help us close the gap there. In Web search, Google is the far-away leader...And Apple in music has done a fantastic job.
Look at the list of competitors -- all in different markets. And the message Gates is giving is, "We're going to kill them all." And when they're done with those, they'll find new markets to conquer. There's no need, market-wise, for Microsoft to compete with Nokia: Sony Ericsson, Palm, and Blackberry all compete in the smartphone space to drive it forward. There's no need for Microsoft to compete with Google: Google has competition from Yahoo and other search/portal sites. The only driving force is greed. Microsoft wants to own every single tech market, just because it can. And that's a terrifying prospect.
The future according to Microsoft: when you talk on the phone, it will be a Microsoft Windows Smartphone. When you drive your car, it will run Microsoft Windows Automotive. When you start your computer, it will run Microsoft Windows Vista. When you watch a DVD, it will use Microsoft Windows Media. When you play a game, it will be on the Microsoft Xbox. When you connect to the internet, it will be through the Microsoft Network. When you open your internet browser, it will be Microsoft Internet Explorer. When you search for something, your search results will come from Microsoft Network Search. When you check your e-mail, it will be with Microsoft Outlook. When you type a document, it will be with Microsoft Office. When you want news, you'll watch Microsoft NBC. When you listen to music, it will be Microsoft Windows Media Audio. When you set up a web site, it will run on Microsoft Internet Information Services, with the Microsoft Active Server Pages .NET runtime, using a Microsoft SQL Server database, and running on a Microsoft Windows Server. And that's just the short list.
These are all different markets -- phones, cars, operating systems, multimedia, game consoles, web search, databases, television, web browsers, and more -- with companies competing in each, but Microsoft wants there to be just one company controlling them all. All of the information you receive will come through Microsoft. And just as they did with Novell, Lotus, and WordPerfect, they will ensure -- through licensing deals, pre-installation, and other monopoly-extending means -- that competitors in every tech space are not given the chance to breathe.
I hope Google wins. I hope Apple wins. I hope Nokia wins. I hope Sony wins. Anyone, really, but Microsoft.
As a side note, here's another fun Gates quote from the article:
Software in general, whether it was from Microsoft or somebody else, was not set up for an environment where all the computers were connected together. So it's not like there was some software that had this security capability and our software did not.
Actually, Bill, the UNIX base that drives Linux, Mac OS X, Solaris, FreeBSD, and other operating systems was set up for an environment where all the computers were connected together, from the beginning. Just because you were late to the game doesn't mean "software in general" was.
Posted in Musings, Computing