What I’m trying to do in Outlook

So, in my work e-mail, I get around 200 messages a day. I periodically get myself back down to inbox zero, but if I take a day or two off, I immediately get behind. I recently decided on a new mechanism for sorting my incoming mail. First off, would be to divert any mail not sent directly to me (where my name isn’t on the to or cc line) into a separate folder. This would be the stuff I would get to when I had time. Next would be to divert mail where I’m CC’d into a separate folder (this is the mail I’d read after reading my inbox), all mail with me on the TO line would be left to filter to my inbox. This way, I think I could make sure that I’m not losing the important messages in the noise of the stuff that I don’t need to read (but will when I have time).

Unfortunately, Outlook’s rules don’t let me do this. I can create a rule for messages where my name isn’t on the “To” line, and I can create a rule for messages where my name is on the CC line, but then messages where I’m in the CC line get put into two different folders because they aren’t mutually exclusive. Since the rules in Outlook are more or less fixed, there doesn’t seem to be a way to do what I want here.

Any suggestions (other than get a real mail program)?

A simple tip for prospective job seekers

If you are graduating with a degree in Computer Science and you are applying to companies in the software field; it is probably not a good idea to say something like “I’m looking for a job where I don’t have to sit in front of a computer all day” in your summary statement.

Upcoming talks and events

(all times/dates are PST)

I have a few conference talks and such in the next couple weeks, so I thought I’d send out some pointers.

If you are attending the Intel Developer Forum in San Francisco, I’ll be speaking on a panel discussing how to educate the next generation of computer scientists for the new paradigms of parallel processing. The Panel is called “Parallelism and Education: Navigating Through a Sea of Cores”, the session is on Monday 9/13 at 11am, right after the keynote. I’ve written about this session last month.

On Tuesday, September 14th, around noon, I’ll be appearing live on Intel Software Network TV, you can watch here.

Later that evening, I’ll be hosting a Pixel Bender Meetup at 6pm at the Mars Bar in San Francisco. All Pixel Bender developers are welcome to join me and talk Pixel Bender. More info and directions here.

The next week, I’ll be speaking at the NVidia Graphics Technology Conference in San Jose. My session is on Thursday, September 23rd at 11am and it is called “GPGPU in Commercial Software: Lessons From Three Cycles of the Adobe Creative Suite.” More information here.

If you attending IDF or GTC or you’ll be in San Francisco on the 14th, come by and say “hi!” Otherwise, I’m hoping that I’ll be able to post video or slides from my sessions soon after.

Of course, I’ll be at MAX as well and may have some surprising things there, but I can’t talk about that yet 🙂

Dear Alaska Airlines and Apple Computer…

Yes, I’m an idiot. I left a valuable piece of my property on your plane, Alaska. I know that you are not responsible for items left behind, it’s my fault, not yours.

However, that was the last flight of the day and the item in question was out of sight of other passengers, but my newspaper was sticking out, which meant that it was likely that the seat pocket would be examined in cleaning. It’s extremely likely that my property was picked up by one of your employees either after the flight or in the morning before the next one. I immediately registered with your web site for the item in question, identifying not only the flight, but the seat (thanks for not posting a phone number, but only an impersonal web page. It really shows how much you care). So, given that this kind of thing happens all the time, I did hope that there was a chance I would get it back. It was a long shot, to be sure, but not a non-zero one.

Now you Apple, thank you for creating the mechanism so that I could track my device, send a message to it, lock it and wipe it. In this case, I can’t locate it or send a message to it as it was on airplane mode. So, most likely, whoever has it has either wiped it, failed the login and had it wipe itself, or is trying to hack it (or fence it). Since, by your own definition, the device is now stolen property, maybe you could let me know when someone else tries to use it after it has been reset? No, of course, you can’t do that. Doing that would mean that you might be liable in all sorts of ways, right? There are so many ways that some mechanism could go wrong like that, that your corporate council decided it was best not to get involved. Even though you could actually immediately notify me the minute that the device registered to me with the unique ID you use to track your customer’s devices popped up again. This actually works out better for you, because now you’ll have sold me the same device twice.

So, yup, I can now troll the net looking for the device myself in a time-consuming, frustrating and fruitless attempt while constantly reminding myself of my own mistake. I wasn’t that fond of it in the first place, but I actually need it for a project, so I’m not left with much choice. I’ll need to file this as just another case of crappy customer service.

Thanks for nothing guys!

A Kettle of Fish (Vancouver BC)

Reading the reviews of this restaurant, I was unsure what to expect. It sounded like it was decorated like an antique store. The food decent, but not amazing; uneven and over-priced.

I have to say I was very pleasantly surprised. The atmosphere was indeed distinctive and unusual, but not overbearing. The dining room was open, light and inviting, the bar cozy and dark. There were certainly some antique touches and lots of big plants, but it felt more like the Palm Court at the Plaza in New York or the Laurel Court at the Fairmont in San Francisco rather than your great grandma’s dining room.

The food was also better than expected. My seafood fritter appetizer had been allowed to go cold in the pass-through and was not impressive, but my dining companions’ fried oysters were hot and quite good. However, my halibut main course was cooked perfectly; the inside tender and the outside with a nice thin crust. The others had the Salmon and also enjoyed their meals. For desert, I had a coconut pudding that was a bit sweet but which I had no problem finishing.

The service was good, attentive, but not overbearing. The staff friendly, but not obsequious. The prices were a bit high, but not unreasonable.

I think that this would be a good restaurant to try when looking for something a little different, something unique.

A Kettle of Fish on Urbanspoon

New Flash Experiment posted: Image Navigation via Overlay

screenshot I’ve been working on a lot of Pixel Bender experiments and wanted a nice UI to allow zooming in to examine the effected pixels. I decided to use the method of having an overlaid box on a scaled version of the image that corresponds to a zoomed separate display. I looked around and found some nice sample code on FLEX{er} written by Stelian Crisan. I mostly added nice UI to adjust the parameters in his code.

The experiment is posted on the labs area of my site.

Apple’s way or the highway

The Daily Show With Jon Stewart Mon – Thurs 11p / 10c
Daily Show Full Episodes Political Humor Tea Party

Is Apple jumping on the crazy train?

I liked this article on Newsweek: Apple vs. Everybody: The company’s epic battle over a missing iPhone is only the latest in series of contretemps.

It’s the kind of attention that Apple, long a media darling, isn’t used to. Apple’s control-freak nature didn’t matter as much when it was a plucky underdog. Yes, Jobs was a demanding boss and a finicky perfectionist—but he created great products. We rooted for Apple, and wanted it to survive. Apple seemed like the anti-Microsoft, a company that was on our side. But this year Apple will do nearly $60 billion in sales, and its market value stands at $240 billion—the third-largest in the United States, bigger than Coca-Cola and Pepsi combined. Any company that big can seem a little scary. So when police start breaking down doors over a lost phone, it’s a PR disaster, especially for Apple. The company works hard to cultivate a counterculture image, with ads that have featured Gandhi and John Lennon, not to mention the “I’m a Mac” hipster. Yet lately Apple has started to look like the big bully of the tech industry, the kid who doesn’t play well others. Over the long haul, that can put customers off.

It definitely can put developers off (including this one), and when your platform has a lot of competitors gunning for it and a slim percentage of the desktop market, putting off developers is not really a very good idea. Apple is betting the company on their new strategy of a tightly controlled ecosystem where they make a small amount off of every transaction and act as intermediaries between content producers and developers and their customers. It will either be fantastically successful or Apple will crash and burn in a spectacular fashion. Only time will tell.

Moving to scrum: changes

So we started this product cycle with two geographically-dispersed mixed-discipline scrum teams on two week sprints. Specifically, the geographical co-mingling was designed to break up some of the silos that had built up on the team due to the existing functional teams being in different cities. By the third sprint, we’ve now switched back to scrum teams that mimic the original functional and geographic splits and are now on four week cycles. This has made cross-team communication more difficult, but has made everyone a lot happier by keeping the scrum meetings more relevant to everyone on the team. I can definitely see why people like this more, it lets people focus on what they are doing, but I do think we are losing something by not spreading the knowledge of the different parts of the project around the team. Also, not having multiple functional areas represented in the scrum meetings means that some fresh perspectives are lost in any of the technical discussions that come up. Over the next few sprints we’ll try this out and see if this is working. I think this will probably be what we stick with, and we’ll need to address the cross-team communication issues separately.

Switching to four week sprints was mostly to reduce the amount of time spent in the scrum meetings themselves relative to the amount of working time. Between planning poker, retrospectives and sprint planning, a lot of time is lost to the process itself in a two week sprint. For a team used to working on 6 week sprints, fitting stories into 2 week chunks was also difficult. I like the idea of two week sprints, but in practice, it was difficult for a team that is new to scrum. We’ll maybe try 2 week sprints in a future product cycle.

We still haven’t switched to our planned internally created scrum tool which itself makes things difficult. Our backlog is an excel spreadsheet and our tracking is all on Wikis. Hopefully, we’ll be converted over to the tool by the next sprint, which should make life a bit easier on me and the scrum master.

Pixel Bender Synthesizer Experiment

The subject of using Pixel Bender for audio processing on the Flash platform comes up a lot. Audio processing is very processor-intensive and math-heavy, so it would seem natural to leverage Pixel Bender to improve performance of audio within a SWF. At some point, last year, I was talking to Justin Everett-Church about doing a demo for Flash Player 10.1 multi-touch features. A synth seemed like a good idea, and it would let me kill two birds with one stone. So I coded up a synth (with a lame Flex UI) and Justin took that and made it pretty and added multi-touch support. That 2nd part of the demo never worked out the way we meant it too (missed the MAX 2009 keynote by this much). After that, I planned on cleaning up the code and posting it, but I got busy shipping CS5 and well, 7 months later, I finally got around to posting it. Right now it is just the playable demo with the crummy Flex UI.

It is a total processor hog, on purpose. I basically wanted to use it to push the limit of what could be done in the player, so I kept adding more filters and processors to it until the audio started to break up on my Core Duo 2 Mac Book Pro and then stepped back just a little. It turns out that you can actually do a ton of audio processing interactively in the player leveraging Pixel Bender. This was also designed to run as an AIR app, which means that if you really want to play with it, close all your other tabs. Really.

UI for synth

Pixel Bender Synth Experiment
Continue reading “Pixel Bender Synthesizer Experiment”

Section 3.3.1 is not new behaviour from Apple

[disclaimer: I am an Adobe employee and an Adobe and Apple shareholder, my opinions are my own and not those of my employer.]

Like the rest of the software industry, I’ve been pondering what the effect section 3.3.1 of the iPhone 4.0 SDK will have. I had fully been planning to make an iPhone application at some point. I had planned to do the initial version with Flex to prototype, but then also spend time doing a Cocoa version to better learn that SDK for myself. This iPhone 4.0 SDK announcement honestly has me questioning if I do really want to develop for the iPhone. Not just because of a higher-minded sense of indignity at Apple’s lack of openness of their platform, but rather because of that combined with their somewhat arbitrary and opaque app store approval process. Could I spend months of my spare time learning ObjectiveC and working on an iPhone application only to have that time be a complete waste if the App store reviewers decide that they don’t want that app in the store?

Thinking about it this morning, I realized that not only was Apple’s move to lock in developers nothing new, but that I’d already written about it before (in fact, I’ve been blogging about it since almost the day I started doing professional development for the Macintosh): iPhone SDK: The carrot for Cocoa, the stick for Flash, The difference between being an Apple developer and a Microsoft developer, Developers Developers Developers Developers.

Gruber had the motivation right, I think, but I also think he got the ramifications wrong. Since Steve returned to Apple, they have been applying the screws tighter and tighter to their developers, trying to get them to lock in. It was somewhat indirect at first, but the long term implication was clear: “We’ll tell you how to develop for our platform, if you do as we say, then you’ll be fine. If you don’t do it the way we tell you, your life will be a never-ending stream of headaches.” The move to Intel (forcing all developers onto X-Code and a big rewrite of any PPC-assembly) was step one, the move to 64-bit (dropping support for Carbon after promising it) was step two. The iPhone 4.0 SDK is just the most obvious move in this process because it basically spells it out. You no longer have a choice: it is Apple’s way or the highway. The problem is the App store. On the Mac, I control my own distribution. On the iPhone platform, Apple does. That means that they no longer have to negotiate with their developers, they can now finally dictate to them.

As a developer, this makes the iPhone platform a lot less attractive because I also can’t be sure that they won’t change the terms again. Once I’m locked in, I’m locked in. Apple can do whatever they want and I’m forced to rewrite my apps or get forced out. As someone who writes software for a living, this scares the crap outta me.

Here are some other blog posts that I thought were good reading around this:
The iPad isn’t a computer, it’s a distribution channel (O’Reilly Radar)
Five rational arguments against Apple’s 3.3.1 policy (37 Signals blog)