Last updated: February 20, 2010 11:02 PM
February 20, 2010
Scripting News
What we don't understand
Imagine you knew nothing about computers and somehone handed you a Macintosh and told you to figure it out.
How long would it take you to figure out what each of the applications did, or even what an application is, and how they differ and how they're similar.
Suppose you found your way all the way to WordPress, think about how many layers of menus and user interfaces you had to master just to get there.
There's the menubar at the top of the screen. The dock at the bottom of the screen. Then, when you launch the web browser, there's a new menu at the top of the screen (and did you notice or did you just think it was the same menu). Then when you get to WordPress, it has its own menu at the top of its screen. But above that menu there are things you click that kind of act like menus that take you away (toolbar icons). WordPress has several kinds of menus. The one running across the top of its screen and the one running down the left.
Okay, someone told you to click OK when the machine asks you to install new software. You have to enter your special password to get it to do that. But don't click OK when you're at a web site or in an email. How do you know which you're in?
And icons. Sometimes you click them once and sometimes you click them twice.
You don't see all of these layers of complexity either because you were around when each one came online (I was) or you just forgot what it was like to be presented with it for the first time. I have no idea what it was like to be a child who had these things since before they can remember, but I know a few undergrads at NYU who I'm going to ask about this.
My mother, on the other hand, has been using computers since before they were born, she started with the Mac in 1985 or so, but like someone who learned to speak another language as a child, she sees the bewildering complexity of our language whenever she does things that we take for granted.
You might say don't worry, her generation won't be here much longer, but that's my mom you're talking about. And further, how much effort are we wasting pushing around all these unnecessary concepts? Too much.
February 19, 2010
Scripting News
Does it matter who you get news from?
The meeting was supposed to follow the BloggerCon rules of moderation, but most people don't know about these, so it takes a while before it feels normal. I had that experience trying to boot up BloggerCon-style meetings in Nashville and Palo Alto. If the people don't know how it works, it just doesn't work.
So about half-way through the meeting I stopped moderating and let the discussion go where it would naturally go. And I learned something from this. I guess that's not surprising.
In Silicon Valley, if you let a discussion wander, it ends up centered on the point of view of the technology industry. You have users and they generate content. Everything revolves around that model. It's pretty inhuman, because the people who do the generating are sometimes "experts" who invest their whole lives in understanding stuff, and then want to share it with others because that's what humans like to do, even if they aren't being paid. Of course the tech companies are all about being paid, for doing what they do. The users are like hamsters on a treadmill. Do you ever think about paying hamsters? I don't think so!
Okay, everyone says NY is where the future is. I'm afraid this might become hype just like the story you hear about Silicon Valley. It's a way of saying the rest of the world doesn't count. Of course people like to think that they live in the one place that makes a difference, it's simpler that way. The world is so complex, who wouldn't want it to be simpler. But who would be happy if they thought the center of the world was somewhere else? So the battle is constant. And for a while people believed the center was in Silicon Valley. I think the worst thing in the world is to live in the center. There's no where to go but down from there. Upside is better. So I choose to think where I live is somewhere off-center. It's also more interesting.
So when the New York conversation drifts, it doesn't end up where the Silicon Valley conversation ends. I guess this is no surprise, right? Where it ends up is with the (forgive me I don't know the terminology) the guy writing the story that informs everyone else. Who is everyone else? It's the hamsters again! This time the hamsters, instead of generating content, are generating revenue! They're clicking on the tip jar, causing micropayments to flow to the author (and his or her editors) so they can earn a living while informing all the other hamsters who are happily paying for all this good stuff. But what happens if the knowledge that everyone wants isn't in the reporters' heads but rather resides with the hamsters? What then?
In the past there was a simple answer. No sale. The information just doesn't get there. But that answer is no longer good enough.
Two cases in point. One, the prototype -- This American Life did a special called Giant Pool of Money -- which should win a Pulitzer for explaining the financial crisis of 2008 in terms anyone with a mind could understand. Everyone who heard it probably remembers exactly where they were when they did. I was walking on Marin Ave in Berkeley. It was great. Before I heard it I had no clue what the financial crisis was about. After hearing it, I got it. And everyone agrees -- we need more of this. But, I found out last night, much to my chagrin, that it took months to produce this episode. And there's the rub, and why the people who are invested in the NY-based system are so enamored of this example, because it proves that You Need Us. Without heavily and expensively produced content, they say, you won't be informed.
So I provide a counter-example. One that fits my model, which I proudly think of as being neither Silicon Valley-centered or New York-centered. I (of course) think my model is reality-centered. (Yes, I am arrogant, I cop to it.)
The counter-example is this. A fantastic FreshAir episode, one hour in duration, recorded live, with almost no production, that completely explained the options for universal health care in the US just as the debate was beginning. It was timely, complete, wonderful and super-inexpensive. Why? Because an individual did all the work. It was paid for by a publisher of course, and he is a professional writer, so while it was expensive, it's part of a reservoir of value that thinkers on both coasts tend to ignore, and in doing so, I think -- miss where the answer is going to come from. The question is -- how will we satisfy the enormous thirst people have for information when the economics of information no longer support vast budgets, or vast amounts of time, to produce expensive wonderful programming like Pool of Money. The answer: From the sources. The people who know what's up.
Sure, This American Life produced something sexier, with great production value, and FreshAir is a talk show. But it was still riveting. I remember where I was when I listened to it (driving from Santa Cruz between Los Gatos and Fremont). I found, last night, when explaining it, I could name each of the models the author described, and it's been six months since the program aired. It obviously made as much of an impression as Pool of Money did.
So the moral of the story is that neither coast has the answer, but the answer is out there all the same. Let's not gravitate to an assumption that the cursor has moved 3000 miles to the east and bring all our sloppy thinking habits with us. We have minds, let's use them, and our minds have information, and let's distribute it, to whoever wants it, no matter where it comes from.
February 18, 2010
Michael Tsai
Aperture 3 Merging
The handling of multiple changes is astonishingly good. Let’s say you crop photo_01 in the desktop library, and adjust exposure on photo_02 in the mobile library. Then let’s say in that mobile library, you add metadata to the same photo_01 file that was cropped in the desktop library. When you merge the libraries, everything is synced correctly—the desktop-cropped photo_01 will gain the metadata added to the same photo_01 in the mobile library; the exposure adjustment on photo_02 will be applied.
by Michael Tsai at February 18, 2010 09:53 PM | Bookmark with del.icio.us
Dividing by Multiplying
Every divisor has a magic number, and most have more than one! A magic number for d is nothing more than a precomputed quotient: a power of 2 divided by d and then rounded up. At runtime, we do the same thing, except backwards: multiply by this magic number and then divide by the power of 2, rounding down. The tricky part is finding a power big enough that the "rounding up" part doesn't hurt anything. If we are lucky, a multiple of d will happen to be only slightly larger than a power of 2, so rounding up doesn't change much and our magic number will fit in 32 bits. If we are unlucky, well, we can always fall back to a 33 bit number, which is almost as efficient.
by Michael Tsai at February 18, 2010 12:27 AM | Bookmark with del.icio.us
Google Buzz
Unsure of its ability to successfully roll it out as an independent product, Google must have then decided to force feed Buzz through its Gmail user base of 175 million. Google executives likely reckoned that in a single day Buzz would garner more users than Twitter has been able to in two years after all that celebrity publicity. That really is why Gmail users woke up one day to find their private account details exposed to the public, unannounced and unprepared, because without such default exposure Google executives likely didn’t believe they could deliver a critical user base for Buzz. That’s not “improper testing,” it’s a platform strategy.
by Michael Tsai at February 18, 2010 12:18 AM | Bookmark with del.icio.us
February 17, 2010
Michael Tsai
Aperture 3 Faces and Storage
On the whole, I’m very happy with the new features and interface improvements in Aperture 3. Many of the changes have been discussed elsewhere, however I wanted to mention a few points that I haven’t seen covered:
Face Detection
I’ve been putting off keywording people in my photos because I assumed that face detection was on the way. Now that it’s here, I’m not sure how much I’m going to use it.
In one of my projects, the faces were totally messed up. Aperture detected “faces” in solid-color areas near the corners of the photos, completely ignoring the prominent people in the middle of the frame. I manually added some faces, drawing rectangles and naming them, but Aperture forgot this as soon as I clicked on another photo in the browser. The only way I could get faces to work with this project was to delete the versions and re-import the masters. Luckily, these versions did not yet have any keywords or adjustments because they would have been discarded.
In my other projects, at least the dozen or so that I’ve gone through since upgrading, the face detection seems to be working properly, pretty much like in iPhoto.
Face Naming
There was some confusion when multiple people had the same first name, or the same first and last name with different middle initials. Also, the Address Book integration didn’t quite work the way I expected. Now that I see how it works, I think it’s adequate, but I would rather that Aperture not get cute and try to abbreviate to ambiguous first names.
The “Unnamed Faces” strip doesn’t seem to offer a way to zoom out or jump to the original photo. As a result, there are some faces that I can’t identify because I can’t see enough context. I don’t want to click Skip, because then how do I get back that list of untagged faces? But if I don’t click Skip, it seems the strip will be forever filled with those same unnameable faces.
Face Storage
Aperture uses a sensible storage model (which I first saw in Mail and copied for EagleFiler) where an “index” database is used for speed but the data and metadata are stored in flat files and XML. If the database is deleted or damaged (or not backed up), the data and metadata remain intact, and the database can be reconstructed from the other files.
Unfortunately, this does not seem to be true for faces. It looks as though Aperture stores the face information in the Faces.db SQLite database but that it does not save it in the XML files along with the other metadata. (It does export faces as keywords in the JPEG files, but that’s not particularly helpful when reconstructing a library.) This makes me wary of spending lots of time tagging faces and possibly losing that work if there’s ever a problem with my Faces.db.
I’m considering using the face detection to aid in assigning keywords. However, there doesn’t seem to be an easy way to generate and assign keywords from faces (other than exporting) or to assign faces from keywords (if I were reconstructing a library where the face information had been backed up in that way). It’s a shame because, although Aperture has good support for keywords, the faces feature is better suited for tagging people (though, alas, faces don’t show up in the various metadata displays).
Core Data
Aperture 1 and 2 used Core Data, but Aperture 3 seems to have dropped it in favor of using SQLite directly. As a user, this doesn’t particularly matter to me, but as a developer making heavy use of Core Data I wonder about the reasons for the change. It’s curious that Mail, iTunes, iPhoto, and Aperture are highly visible “database” applications, none of which use Core Data. Does Apple think that Core Data is the wrong kind of technology for these applications? Or are there limitations/flaws that make the dog food unpalatable? My hunch is that for what Mail needs to do it’s more efficient to use SQLite directly. However, Aperture seems like exactly the kind of application that Core Data was intended for.
Backups
The folder structure inside the library package has been improved so that Time Machine backups should be much more efficient, especially if you rearrange your projects and folders. The thumbnails are now excluded from Time Machine backups, as is the BigBlobs.apdb. Other large database files are included, however: Faces.db, History.apdb, ImageProxies.apdb, Library.apdb, and Properties.apdb. My guess is that, except for Faces.db, these could all be reconstructed, so I’m excluding them from my CrashPlan backups.
Performance
Even after face detection completed (and I rebooted), Aperture 3 seems slower and more RAM-hungry than ever. I’m using a 2009 MacBook Pro, maxed out with 4 GB of RAM, and my library has about 34,000 versions. Aperture 2 was sluggish at times but bearable. Aperture 3 often locks up itself—and the rest of my Mac—for seconds or minutes. I’m going to see whether DiskWarrior helps.
by Michael Tsai at February 17, 2010 09:59 PM | Bookmark with del.icio.us
Scripting News
A week of Buzzing. Whatcha think?
NSLog
Facebook?
FWIW, I chose "a little" because I rarely post, though I check the home page and two other pages (both golf-related) several times per day. Quickly.
I don't use any real applications and I typically hide everything I can, like gifts and other apps people are playing.
by Erik J. Barzeski at February 17, 2010 03:22 PM | Bookmark with del.icio.us
Civic Duty for $9 Per Day
Yesterday afternoon I called in, at 4:30 as directed, and listened to the message. My heart sank jut a little: the number printed on my jury summons was well within the range that was obligated to report the following day.
I reported at 8:30 with a copy of The Lost Symbol on my Kindle and a copy of The Golfing Machine in hard cover.
I found my way to the proper room - room 211 - without any trouble. I told them my name and they gave me form to fill out along with an "Erie County JURY" button I was told to wear on my chest at all times.
I wasn't asked to produce ID. In fact, at no point in the day was my ID confirmed.I took a seat in the corner of a large room. I was roughly 35th of about 100 people that would eventually show up. I filled out my form - which asked me questions like "I believe that a police officer is more likely to tell the truth" (Yes/No) and general questions about my job, my home county, etc.
At no point was I told to turn off my phone, so I got on Facebook and posted an update about how there were no minorities. Eventually two arrived - out of about 100 people.
We watched a video with a local judge telling us about the process we'd endure today. I found it odd that he made a point of saying that there was nothing you could say to guarantee you'd get on - or not get on - a jury. Apparently a lot of people really want to be on a jury. Weirdos.
The woman who was running the whole thing - the "jury coordinator" or something - told us that we'd be given $9, that parking was only $3 if we had our tickets stamped, and that taxes wouldn't be withheld so we had to make sure to declare the nine lousy dollars on our taxes. I kinda wish I had the chance to decline the $9 just to avoid the hassle of declaring it as miscellaneous income.
Cue up another hour of waiting. By this point it's 10:00. 35 or so people's names are called and they're pulled to go to jury selection.
Half an hour goes by. I'm pulled - as the 32nd of 35 potential jurors - for an aggravated assault case from in front of a club in Erie in May, 2009. Both lawyers were given the chance to ask us questions like "do you have any physical ailments that would prevent you from being able to do this?" or "have you or anyone close to you ever been a victim of an assault?" Of those who raised their hands, all were asked if they could put that aside and render an impartial decision. Both took steps to clarify that everyone should have chosen "No" to the policeman question.
The entire time the defendant was seated at the desk on the right side while his girlfriend/wife and two small children were seated behind him in the gallery where all of us were seated.
After conferring for 45 minutes, the two lawyers passed their final list on to the judge's assistant (I'm sure she has a title, but I'm going with "assistant" for this). Names were called out and jurors were selected. They got to 13 by about juror #26, so the rest of us returned to the waiting room.
After 15 minutes - it was now 11:45 - they came in and released us to lunch. We had to return by 11:15.
I went to find a bank because - stupid me - I'd assumed parking was free for jury duty members and I had no cash. I did that, then met up with some fellow jurors at McDonald's. We joked that we were eating there so we could legitimately fake a medical emergency later on. The oddest moment came when the defendant in the assault case came in and sat a table away! Weird…
So we wander back and sit again for another hour. At 2:00, the 50 of us remaining (I was #47 called) were taken to a civil suit trial. A woman was rear-ended at a stop sign, and the defendant - a former police officer and current part-time sheriff (or something) claimed that he had been rear-ended himself, causing the woman's injuries. She supposedly had lower back injuries, had been on drugs, couldn't work the same types of jobs she could before, and so on. Basically, the jury would be responsible for figuring out whether she was full of shit. The accident occurred in 2004 - so I'm a bit surprised it wasn't in court until 2010.
At any rate, the question-and-answer section - voir dire - lasted much longer with 50 people and questions like "have you or anyone in your family or friends ever worked for an insurance agency?" "… in the medical profession?" "… ever had back pain?" "… ever been in an auto accident?" After each person was questioned they were asked and answered the only question that really mattered in the end: can you be impartial?
A good number of people - primarily the ones who had back injuries or were very close to someone with a back injury - claimed that they'd be unable to be impartial. This elicited groans from those of us who couldn't think of an excuse to try to remove ourselves from consideration.
Finally, at 4:30, 14 jurors were selected (ending somewhere around juror #35, leaving plenty of space before they got to me) and the rest of us were excused.
We were told to leave our buttons. We didn't even get a 50 cent button as a souvenir. I joked that maybe if I kept the button, they'd keep their $9.
P.S. One of the jurors looked just like Darlene from Roseanne (or the scientist on Big Bang Theory - the same actress). Just like her. Freaky.
by Erik J. Barzeski at February 17, 2010 12:02 AM | Bookmark with del.icio.us
February 16, 2010
Inessential
Kevin
I got email asking me if I was doing some kind of public shunning of Kevin Ballard. By no means! He’s a totally great guy — smart, friendly, funny, way more interesting than I was at his age — and I’m sorry I didn’t see him at Macworld. It’s just that 1) he’s fun to tease and 2) he’s a super-good sport.
My kind of fella.
Now pretend you didn’t read all of the above. :)
Scripting News
NSLog
DSLRU Now (Semi-)Open – Private Beta
DSLRU is now in private beta testing. If you'd like an invitation, get in touch with me. The invitations I had previously have been accepted.
One of the main goals? To populate the forum. The forum is 100% free, so if you're looking to get in on a new photography forum, this could be a place for you to quickly become "one of the old timers."
There's no obligation to buy anything at this point (nor will there ever be).
We're going to officially launch when we're comfortable with the feature list and bugs. I don't know when, but sooner is preferred over later, obviously!
P.S. If you're interested in selling any courses, you really want to get in touch with me. As with the App Store, it should be good to "get in early" and claim some potentially valuable courses.
by Erik J. Barzeski at February 16, 2010 12:03 AM | Bookmark with del.icio.us
February 15, 2010
Scripting News
2nd Ave Deli
Sitting in a Starbucks on 2nd Ave at 9th St. I knew this place was here cause I used to stop in after eating at the 2nd Ave Deli, which used to be a block away. What's there now? A Chase branch. The kind with no people in it.
Not saying anyone did anything wrong, just thinking about how the universe allocates real estate, and how it's changing. I know the 2nd Ave Deli re-opened uptown, on 33rd betw Lex and 3rd. Not on 2nd Ave. It's a Jewish soul food restaurant, very much about people. Chase? Who knows what that is anymore. A subsidiary of JP Morgan? A bailed out government agency with the name of an old bank. Where was the government when the matzoh ball soup and pastrami needed bailing out?
NSLog
The Lost Symbol, Christians Thread
Months after buying it, I'm finally going to get a chance to read The Lost Symbol. Though I'm sure a good portion (not to say even 50%) of the "stuff" in the book is grounded in fact, it's still basically purely escapist reading. I wonder, too, if the book follows the same paths as the others: old well connected guy found dead, beautiful daughter/niece helps solve puzzle that takes Robert Langdon all over the world. We'll see.
On the golf forum there's a thread going on about Christianity and I'm impressed with how respectful it's been to this point, though I've got a light trigger finger and will close the thread if it gets out of hand at any point - we don't need to get a bunch of people mad at each other.
But, away from that, some of the points being made in favor of religion are, well, they're stupid. One guy has said that he believes the earth is only about 20,000 years old because "it's common sense." Others are using the Bible as proof of other things in the Bible. They'll then claim - when their logical error is pointed out - that others are relying on books as well (referring to science books, articles, etc.).
A few random thoughts:
- I've said before and I'll say again that I don't think I'll ever believe in a God who punishes people who never have the opportunity to hear of him. The whole "if you're not Christian you're going to hell" thing has to be bullshit because some people are never even exposed to the idea of Christianity - why would some good God punish them? If that's the case, that God isn't worth believing in to begin with.
- Evolution is fact. The Big Bang Theory is not, but what's to say God didn't create the Big Bang, too? Heck, in some ways, "God created the Big Bang and knew of everything that would come after it, because he designed it all to happen" is, in many ways, far more awesome than "God created an earth and put people on it."
- The Bible was not written by God himself. It was written by people. It's a book of stories, people, c'mon.
- My one comment in the thread was something along the lines of "Religion is faith in the absence of fact, not faith in spite of fact." The earth is not 20,000 years old. If your religion teaches you that, you need to rethink some things.
My thoughts remain fairly similar to what I wrote about a year ago. And a friend even included that video in the thread.
by Erik J. Barzeski at February 15, 2010 12:06 AM | Bookmark with del.icio.us
February 14, 2010
Inessential
Email sent to a developer on supporting 10.6 and up
The below is an email I sent to a fellow Mac developer on reasons to support 10.6 and up on his next major release. (It’s barely edited: I just changed a couple sentences that would have made identification easy.)
Here are the reasons to go with 10.6 and up:
1. Millions of people are using 10.6. Every new Mac since last September or whatever is running 10.6. Apple is selling lots of Macs. Lots of people have upgraded to 10.6.
2. People who don’t upgrade their OS are, in general, the kind of people who just don’t buy software anyway. (Particularly in the case of 10.6, given how inexpensive the upgrade price was.)
3. Every second you spend dealing with 10.5 (in terms of testing, code, whatever) is a disservice to your customers and your software. It’s very nearly irresponsible.
4. Quality is the most important aspect of your software. Quality drives sales. Dropping 10.5 support means you can spend more time on polish; it means you can use 10.6-only features that make your app better and easier to maintain. Continuing with 10.5 support means that your software is not as good as it could be.
5. Rule of thumb: don’t ever code for a shrinking OS version.
Wayne Gretzky: "I skate to where the puck is going to be, not where it has been."
There will be n 10.5 users on the day the next version of your app is released. The next day there will be n minus some number. A month later it will be n minus some big number — but you’ll still be supporting 10.5, you’ll still be writing software for people who don’t buy software anyway.
There are x 10.6 users today. Tomorrow there will be x plus some number. A month from now it will be x plus some big number.
6. Current users of your app still on 10.5 have a perfectly awesome piece of software to use.
7. If you don’t drop 10.5 now, when do you drop it? On a major release is when it’s easiest, and you don’t want to wait for the major release after this next one.
Scripting News
The 20-minute rule
I have a rule, formed by many years of experience, that I wait for 20 minutes, then I leave. Before I had the rule, I'd never know when to leave when someone was late because it's impossible to know how late they're going to be.
A couple of extreme examples.
1. In 1990 or 1991 (approx) I had a meeting with a vice-president of Apple. It was hard to get the meeting, and my company desperately needed their cooperation because Apple was fudding our product, basically keeping developers from building on it. I flew back to Calif just for the meeting. I was on time. His secretary kept calling the restaurant saying he was on his way, but he never came. I waited three hours before giving up.
2. A few years later I had a meeting with a division manager of Microsoft at a Portola Valley restaurant. I waited and waited. A half-hour after the appointment I ordered. Ate my lunch, left an hour after the appointment. An hour after that I get a call from the restaurant asking where I was. (This was a meeting I totally didn't need, I was having lots of success without Microsoft. I felt I was doing him more of a favor than he was doing me.)
Those were two extreme examples, but people are regularly late. I am late too, sometimes, and sometimes I'm more than 20 minutes late, but it's very rare. In my experience you have to mean it to be that late. So I have a hard and fast rule. After 20 minutes I leave. That takes the guesswork out of it.
There's a very practical reason. If someone is very late, all they're going to talk about is how sorry they are. The person who was on time says "It's no big deal," but nothing ever gets done at those meetings. Much better if you just say "I have a rule" and blame the rule for the fact that you weren't there when they finally arrive.
I thought this kind of disrespect was just a west coast thing, but it's part of east coast culture too. I've never written this rule up, now I have. Please, if you make an appointment with me, try to be on time. And if you're more than 20 minutes late, you'll find I'm not here.
Google did something seriously wrong
So your privacy was violated. Get over it.
Here's what happened. When Google rolled out Buzz last week they activated an unknown number of users and chose people for them to follow automatically based on who they email most frequently with. Presumably these people had to also be on Gmail. And the list of people you follow is public. Therefore the list of people you email with most frequently is now public. They are now trying to close this hole as quickly as possible. But the damage is done, people have to realize that -- the information was already disclosed. You can close the door after the horse gets out but that doesn't get the horse back. This never should have happened. But now that it has, it requires a CEO-level apology and statement of contrition and an explanation of what policies he's putting in place to be sure this never happens again.
That has not happened, and does not appear likely to.
What if it were Eric Schmidt's privacy. I wonder if he'd feel differently. I wonder if he uses Gmail, and if he does, did they reveal the list of people he emails most frequently? I can think of all kinds of problems that might cause, with the stock market, or the SEC, partners, wives, despots, girlfriends. I imagine Nick Denton at Gawker would like to see that list, and that Schmidt would not want him to.
We all have those kinds of concerns. People might get the wrong idea if they saw the list of people I email most frequently. Or they might get the right idea.
Sometimes as I'm entering a message into Gmail, I wonder if the ethics of Google prohibit them from reading the mail. Sometimes I email with execs at companies that compete with Google. I think "They'd probably like to know this." I wonder if they look.
Yet Google, so far, has only said they're sorry for the "concern" they've caused. That shows that they're not owning up to the breach they caused. They can't possibly be so stupid as to not understand what they revealed about users of Gmail. It's just the kind of weaselly response to a building crisis that PR pros tell you not to do, that covering up will only make it worse when people realize what's really been going on. But that assumes a competent and vigilant press. That would be too much to assume in the case of Google and its coverage.
The Don't Be Evil smokescreen was pure brilliance. As Michael Gartenberg said on Twitter, if Microsoft had done what Google did, there would already be lawsuits. It would be a scandal of huge proportion.
The NY Times won't call it a breach of trust by Google. Instead they attribute the claim to "privacy experts." I raised this point, and predictably people say that the Times shouldn't make factual statements about companies who screw up anywhere but in editorials. That's ridiculous. A fact is a fact, and belongs in reporting. It's a fact that Google revealed sensitive information about millions of users, and now they're scurrying to try to cover it up. And the press is helping them buy time. Why? I have no clue, but I don't like it.
February 13, 2010
NSLog
Possibly Developing a Video App
So, for various reasons, I'm looking at developing some basic video software.
The software should:
- Play video at regular speed, slow speed, and allow for frame-by-frame stepping through.
- Play two separate videos side-by-side within the same window.
- Allow the video to be repositioned, grown, etc. in the video window to fit the full frame and/or the half frame.
- Include a few very basic drawing tools.
- Include the ability to narrate (capture audio).
- Be able to export to a new video file with all of the above.
In other words, I want to create a Mac version of V1. V1 sells for about $800 but is buggy as shit and can't even rotate a video 90°. Yeah - it's that terrible.
But they've got the market somewhat cornered.
I'd like to work with someone on a Mac and possibly a Windows version of a simple program that does what it needs to do. I can envision two versions: a "Student" and a "Teacher" edition, selling at perhaps $49 and $299.
Is anyone interested?
by Erik J. Barzeski at February 13, 2010 11:20 PM | Bookmark with del.icio.us
Shipping Routes – PA to NJ to KY to PA
Here's the route my copy of Aperture 3 has (and perhaps will) take. It's unlikely given the times that any of this was flight:
2/9/2010 10:35 PM - Jonestown, PA (PICK UP) 2/9/2010 10:46 PM - Rutherford, NJ (ARRIVAL ORIGIN DHL GLOBAL MAIL FACILITY) 2/10/2010 12:00 AM - Rutherford, NJ (PROCESSED) 2/10/2010 09:26 AM - Rutherford, NJ (DEPARTURE ORIGIN DHL GLOBAL MAIL FACILITY) 2/12/2010 03:52 AM - Hebron, KY (ARRIVAL DESTINATION DHL GLOBAL MAIL FACILITY) 2/12/2010 06:18 AM - Hebron, KY (TENDERED TO USPS) 2/12/2010 10:02 PM - Warrendale, PA (Shipment Accepted)
Now I'm sure DHL and the USPS know what they're doing, but on the face of it, I'm inclined to think "WTF"?
At any rate, here's to hoping I get my copy of Aperture 3 by tomorrow. But seeing as how it just arrived in Warrendale 45 minutes ago, I wonder if that's unlikely.
P.S. I chose the free, standard shipping option because, in the past, the little things I've ordered from Apple like this have shipped directly from Cincinnati or something, and I've had the items within a day or two. Not so this time.
by Erik J. Barzeski at February 13, 2010 03:46 AM | Bookmark with del.icio.us
February 12, 2010
Michael Tsai
MoneyWell 1.5
MoneyWell 1.5 is a nice update to the financial application that I’ve switched to from QuickBooks. I couldn’t be happier. Previous versions weren’t difficult to use, but 1.5 cleans up a bunch of interface issues that had been slightly bothering me, and it feels much smoother now. Although it’s marketed for budgeting and cash flow, MoneyWell works well as a simple tool for reconciling accounts and keeping track of categories for tax reporting. Unlike QuickBooks, it does not support invoicing, so I’m using Billable for that.
by Michael Tsai at February 12, 2010 06:04 PM | Bookmark with del.icio.us
Scripting News
Walked the Highline

I walked the length of the (unfinished) Highline today. It was great. Just wish it went all the way to 34th St. Much easier walk than on sidewalks. You don't have to stop for anything. :-)
Morning coffee notes
Been a while.Google says there's been over 9 million Buzz posts and comments so far. Impressive. But there hasn't been a single link in my tweet-stream from Buzz, except for the one I posted, when I first tried it out (and quickly shut off when I saw the mess it created in my Gmail inbox). What does this mean? Well, it hasn't gone viral, at least to the people who I follow on Twitter.
Fred Wilson, an investor in a bunch of companies in the BuzzSpace, has his review.
Wondering if anyone is thinking of creating a wonderful webmail product that's just webmail, no tricks. With Google-quality spam filters. I'd pay $100 per year for the service. But no tricks! I don't want any new products to launch through your product. I don't want to reach into my email box one day and find a snake!
In other news, Mike Arrington says TED is a sleeper.
Last night Twitter sent out an update on oAuth. They saved the best for last. In June they plan to turn off Basic Authentication in favor of oAuth. They say developers should hurry up and switch now so they don't have to panic come June-time. But they don't say which oAuth developers should adopt. Problem is there are three, and Twitter says, in the very same email, that they like all three. I hear that a lot of people at Twitter read my posts, so please read this: I suppose it's okay to turn off Basic Authentication, if you really must. You're going to lose some apps when you do. I won't convert very many of mine, but at least I can since I've implemented oAuth 1.0. But I'm not in any hurry to implement the others for a couple of reasons: 1. They're moving targets. 2. I'm not investing much time in Twitter development these days, I'm busy with other things. So come June, a bunch of my remaining apps will die. I think it would be better to hold on to the developer momentum and go really slow on the deprecation.
Google says the reason they don't support the Twitter API is that it's not an open standard. Two comments. 1. WordPress and Tumblr thought it was good enough for them. 2. Isn't Google the company that scanned all those books and published them on the web without the authors' permission?
My Roadrunner package will arrive today according to Fedex. According to the instructions, I should have service after I install the modem and call the office. Made total sense until I got a call from Time-Warner yesterday saying they had to send an installer out to turn it on. That won't happen until late next week. But the previous tenant in my apartment had Time-Warner Internet. Seems to me they can turn it on without having to get into the apartment. I'm sure all the wires here are still connected. I love big companies. (Not.)
Had dinner last night at a wonderful West Village restaurant called Po, recommended by the illustrious Matt Terenzio. One of the great things about the neighborhood I live in -- lots of great restaurants. I need to get some exercise today!
It's a sunny day so I think I may go explore the Hudson and the Highline.
Having lunch with Dan Farber who is now the Editor In Chief of CBS.Com. I knew Dan when he was knee-high to a grasshopper, and just Editor In Chief of MacWorld. Also ran into Eric Hippeau who is now CEO of Huffington Post. These are the guys I grew up with in tech. Now they're in NY running things. Proves the old motto, be kind to those you meet on the way up.
Once again Jeff Pulver honors me by making me the opening speaker of his #140Conf here in NYC, April 20. I must have been very kind to him at one point! On after me are the esteemed John Borthwick of Betaworks and the honorable Jay Rosen of NYU.
I wonder if Jeff knows the counter-culture significance of 4/20?
February 11, 2010
Scripting News
East Village aggregator
http://east-village.org/
If you know of any blogs that cover the East Village, please post a link here. Thanks!
Is Google already 'too big to fail'
Eventually advertising will evolve into information, companies with products will go direct, they won't need go pay Google to reach them
When that happens who will pay for the millions of Google servers and the electricity and cooling they consume?
NSLog
QotD: Winter Olympics 2K10
I asked a similar question back in 2006, but here goes:
FWIW, I considered the first two options, but finally went with the second because I plan to watch a little hockey.
by Erik J. Barzeski at February 11, 2010 03:56 PM | Bookmark with del.icio.us
evolvr – Coming Monday-ish
Monday I'm going to be a part of roughly two product launches. One - DSLRU - will launch in the form of a semi-public beta.
The other is one I've worked on with golf instructor Dave Wedzik here in Erie. It's a product I'd wanted to build several years ago, and which had always sort of remained in the back of my mind, but Dave mentioned the idea late in the fall of 2009 and I've pushed hard for it.
The basic idea is that a golfer uploads a set of videos. An instructor critiques the swing, draws on the video, narrates, and types up some notes. Everything (the video, narration, and the notes) are posted back for the user to view, read, and "evolv" as a golfer.
We're using a service called CheddarGetter, and we may have launched a bit sooner, but we need a feature that they say they'll have ready on Monday.
More tk.
by Erik J. Barzeski at February 11, 2010 03:46 AM | Bookmark with del.icio.us
Scripting News
February 10, 2010
Michael Tsai
Idea for Alternative RSS Syncing System
As you can see, the server doesn’t have to do that much. It stores some small bits of data with timestamps. I don’t think it needs any cron jobs (at least not conceptually) — it just responds to requests. It doesn’t even have any idea what this data is about.
You can think of the log file as a queue or message stream that’s being collaboratively read and written by all of the clients. This sounds like something you’d need a fancy web-app to manage, but it turns out that all it takes is a typical HTTP 1.1 server and a trivial server-side script.
It’d be nice to have an alternative to Google Reader.
by Michael Tsai at February 10, 2010 08:49 PM | Bookmark with del.icio.us
Inessential
Advice to new developers on networking
This is for folks new to the Mac, iPhone, and iPad development community who are going to their first conference...
You might wonder if this “networking” thing you’ve heard about is really a thing. “I’ve got Xcode,” you think. “Do I really have to, you know, meet people and stuff? Isn’t networking something my Dad did? What about the meritocracy?”
While you’re busy asking yourself questions, other people are having a good time.
Here’s the deal: you don’t actually need to know anybody else to be successful. You totally don’t. It’s fine.
But it helps.
It’s not really networking, anyway. Or, at least, I’ve never gone into a bar or a party thinking I’ll advance my career or my software. That would be weird and yucky.
Rather, there’s a great community of developers and journalists and bloggers, and they’re roughly in your age range, and you have some interests in common, and almost everybody is nice, and — hey, it sounds like kindergarten, I know — but you can make friends.
That’s all there is to it. It’s not networking: get that dumb word out of your head.
Okay, here’s some practical advice.
Two types of geeks
The first type is exactly what you’d expect: they’re the technologists, the guys who would invent computers if they didn’t already exist. On their nth beer they can discuss the fine points of objc_msgSend_stret().
While they’re talking to you they’re also, in their heads, optimizing the queueing algorithm at the bar, writing their first quantum computing application, and stepping through the code they wrote just an hour ago.
The second type is tech-inflected liberal arts types. (I sometimes wonder if this surprises new computer science graduates.) Journalists and bloggers are often of this type — but a perhaps-surprising number of developers are too. They’d rather discuss Gogol and Gaga, Kafka and Kubrick, Borges and Black Eyed Peas.
What both types have in common, though, is Apple products. “Hey, how ’bout that iPad, huh?”
Both types also love well-designed software.
Some things not to do
Remember that everyone sits at their desk most of the time working on hard things. But not at the moment you’re talking to them. At that moment it’s time to have fun, take a little break from the hard things.
I think many of the technologists can deal with bug reports and feature requests in person. For others it’s too much like being back at the desk. (For me it is, anyway.)
I don’t know anybody who likes being cornered or monopolized, or who can stop what they’re doing to spend 30 minutes looking at a demo.
What you should do
Remember that all geeks are shy, just like you. Even the boisterous ones. Or especially. The word “shy” is so universally applicable among geeks that it means nothing: it’s no excuse for you or anybody else. (What do you think beer is for? It’s not just a FIFO stack.)
But if someone ever seems stand-off-ish or awkward — take it as shyness. That’s all it is. (Countless times I’ve heard people say “so-and-so doesn’t like me, I think” — when it’s always just that geek social skills are a little rough-edged. Mine included. In some cases these people have become best friends.)
So, yes, remember that they’re all people, just folks, not different from you in some fundamental way.
Though I will caution you not to stare directly into my third eye, or make fun of the extra head on the side of John Gruber’s regular head, or try to grab Wolf’s tail.
And if you think you actually just saw Thor himself, well, yes, but we call him bbum (the Norse god of Tequila).
(And, one more time, though it should go without saying by now — if you find yourself anywhere near Kevin Ballard, just slowly back away and move to the other side of the bar. Don’t move too fast — his eyes are freakishly sensitive to motion. You’ll be okay. Eventually. I know it burns.)
Last
This is the last Macworld Expo where you won’t see iPads. I’m nostalgic already.
Scripting News
A note about comments
If a response to your comment must either be defensive or explain how offensive your comment is, I just delete your comment and block you from further participation.
As long as you stick to discussing issues and products, no problem, but as soon as it gets personal -- goodbye, and there are no appeals.
Another thing I don't like is talking about me in the third person in the comments. Think of a comment here as a Letter to the Editor, and on this blog, the editor is me. If you're talking about me to someone else, either take it offline or skip it.
Update: If a comment is sarcastic or devoid of information or ideas, especially if it is anonymous -- I delete that too. There's no point blocking anonymous people, for obvious reasons. You think someone is talking gibberish but you don't have the guts to put your name on it -- why should anyone care?
Ranchero
The Listening Engine
Tim Bray on being well-informed or not: “This might signal a new kind of stratification in society.”
Moltzworld
Crazy Apple Rumors Site: “It’s a Cinderella story.”
Inessential
Super-quick guide to Macworld Expo
The Expo and trade show is during the day. Walk the floor. Pay special attention to the smaller companies — that’s where you’ll usually find the most interesting things. I tend to avoid any exhibit with a big video screen, and that’s served me well.
In the evening is when you get more of a chance to meet people and talk. It’s easy to find out where to be:
Consult the Hess Memorial party list.
If you’re an indie developer, be at the Chaat Café 6 pm Thursday.
Follow Mac developers and journalists on Twitter — they usually make themselves pretty easy to find. (And you’ll often find that a bunch of them are at the same place.) (They’re very needy people. It’s sad, really. At that hour what they usually need is a beer.)
Trust your iPhone Map program. Search works.
Also, as always, drink plenty of water, remember to eat and sleep, and see some of San Francisco if you’re new to the city. And, for the sake of all that’s good and right in the world, do not engage Kevin Ballard in conversation.
Scripting News
What's going on in NY?
I wanted to live in NY because I always wanted to live here. This is where I grew up, where my roots are, where I fit in. I've already made friends with the owner of a local hardware store and coffee shop. Their ethnicities are different, but fundamentally they share the same approach to life -- that of a New Yorker.
If you came from Chicago, that's where you'd fit in, probably. Same with any other place, Florida, Paris, Costa Rica, Buenos Aires, Shanghai, Sydney, Mumbai, Egypt or Israel.
But that's not all.
All my career there's been a tension between technology and media. Very early in my career I saw they'd meet, and I made a good choice to put myself firmly in the technology world, because that's where the growth was. I don't think that's where it is anymore.
I also don't think the growth is in media, believe it or not. I don't think the big organizations are going to turn the corner. I think they're finally coming around to that belief too.
But if it isn't tech and it isn't media, what is it? Ahhh.
We don't have a name for it yet. I call what I do "media hacking" and like the new Japanese doctor on Lost, I am using a phrase that only approximates what's going on.
Here's what's going to happen, imho.
There are a bunch of smart, mostly young, people who work either in tech startups or inside big publishing companies who will, in a few years, form the companies that are hybrids of technology and publishing that will lead us into the future. They won't be like Google, Facebook, Twitter or Apple. And they won't be the NY Times, Time-Warner or even the Huffington Post or Gawker. But they will learn from all of them.
Intuitively, I feel NY is where this is going to happen.
I also think a university will play a role, like Stanford and Cal did in the various tech booms, in bringing people together. That's where I belong right now, and that's why that's where I am.
Vague? Yes. But it's a Ouija board. Lots of people get to shape the future, and only ideas that work will be part of that future. The way to get there is to try lots of things out.
As I used to say in the early days of the Web boom: Zoooooooooooooom!
And Coooooooooooooool.
Keep your enemies closer
There are a lot of mottos that when you actually think about them, teach you not only how to behave, but how to change. For example -- "Only steal from the best" might sound like an admonition to steal, and it is, but there's more to it. It says you should acknowledge those who inspire you. They're the best. It's important to reward people for letting you stand on their shoulders because it will encourage more people to give generously, believing the generosity will be reciprocated.Another famous motto: "Keep your friends close, but keep your enemies closer" has a surface meaning, it appears to be practical, and it is -- but at a sub-surface level you learn that enemies brought closer can become friends. Someone you're close with is someone you share intimacies with, that's what closeness is. And over time that develops into trust. Most people you think of as an enemy are probably more like you than you can see. Bring them closer and you see they mean well. Keeping them at a distance preserves their enemy-tude (yeah I've been watching The Big Lebowski).
Which brings me to a parable that I tried to relate this morning on Twitter and raised more questions than I answered. Here, in the longer form, I'll try to leave nothing to the imagination. It's a story of drawing your enemy closer, and getting a benefit.
Early in 2001 I got an email from someone whose name I don't remember (I immediately forgot it) who worked at the NY Times. The email included a link to a public folder on a website. The folder contained sub-folders with the names of various publications and syndication services. Inside each folder were files with names like sports.xml, international.xml, metro.xml, etc. My heart rate went through the roof, my breath drew short, my eyes opened wide, my tongue drooped out of my mouth. I felt as an ancient explorer must have felt when he opened a door and found King Tut's tomb. Oh the wealth. Oh the humanity!
When I looked inside the files I was not disappointed. Here were synopses of all the stories of the day. Everything that was in the print NYT, or on their website, in parsable XML. So I dropped everything and wrote an app in Radio UserLand called nyTimes.root, that read the files in one of the folders every hour and turned out RSS on one of UserLand's servers. Of course I wrote that up on scripting.com, including links to the RSS feeds.
Shortly thereafter, nine years ago to the day, I got a call from a licensing person at the Times, who very politely and nicely requested that I stop. Of course I complied. I knew the call would come. But I hoped it would start the conversation that it did.
The Times could have seen me as an enemy and distanced itself from me. But they took a different approach. They made me legal! A few months later I had a contract that allowed me to include the content in our Radio UserLand product. Of course I didn't hide the sources, a lot of people thought they had made a "discovery" when they found the feeds sort-of hidden in the product, but I knew they'd find them, I wanted them to.
Punchline: Keep your friends close, but keep your enemies closer.
Another motto: Snatch victory from the jaws of defeat.
Another: Make hay while the sun shines.
Another: Turn a lemon into lemonade.
The wisdom of the ages!
PS: It's even worse than it appears.
Good morning snowstorm!
What's wrong with Google Buzz
I only know about first impressions of Google Buzz because once I saw what it did to my Gmail inbox, which is a mission-critical app for me, my mission became How do I turn this off?This came after I learned that it made no attempt whatsoever to be Twitter API-compatible.
It violates the prime directive of new software. It starts turned on, and the way to turn it off is all-but invisible. And it invades a space that heretofore Google helped to protect. One of the big values of Gmail is its spam filter. Now all of a sudden it's as if the exhaust was reversed, and it was spraying dirt into my message stream, instead of filtering it out.
New software should be easy to try out, and there should be no penalty for doing so. Here, they didn't even give us an option, I was automatically signed up, and the way out was hidden. The first bit, which is fun -- create a new post -- is followed by a flood of new messages in a semi-sacred private place, my email inbox.
Bottom-line: There's no good reason why Buzz (terrible name, btw) should be integrated with Gmail. The company showed the worst judgment. It took what was the industry leading web mail product and turned it into a lab experiment. Once I turned it off (it's not hard, there's a switch at the bottom of the Gmail home page), Gmail went back to being Gmail, and not a nightmarish ad for Google's software design ineptness.
After all that, Kevin Rose's analysis is right on. He calls them feature requests -- clever -- but his concerns are so basic, it's another way of saying this should have been labeled pre-pre-beta and should have been opt-opt-opt-in with disclaimers and confirmation on confirmantion, instead of turned on by default for all Gmail users.
February 09, 2010
Inessential
On the benefits of thin-server RSS syncing
I’ve had a bunch of people ask me about the thin-server RSS syncing system I talked about yesterday.
The main question: what are the benefits?
First let’s define things a little. A thick-server RSS syncing system is something like Google Reader, NewsGator, Bloglines — where the server actually downloads the feeds, and client apps talk to the server rather than to the original sources.
There are lots of benefits to this kind of system. There’s every reason for this to be widely used — it’s the right choice for lots of people, probably for most.
A thin-server syncing system doesn’t read the feeds: it only knows about users, subscriptions lists, and the status of news items. No actual feed content. Loosely coupled to the actual RSS readers.
Here are some of the benefits of a hypothetical thin-server system (in no particular order):
No latency
The thick-server systems have to read millions of feeds. So they don’t usually get updates the moment they happen — they check a feed once an hour or whatever. (Maybe it’s every 15 minutes or whatever for popular feeds.)
This means that news gets to the client apps a little less quickly than it would otherwise.
With the thin-server, the clients read the feeds directly, so they get exactly what’s available at that time.
Security
Say you read a password-protected feed. A thick-server system would have to support that, and you’d have to send your credentials to that system. That system would have to store the content: it would treat it like any other feed it reads.
It’s not economical for thick-server systems to handle password-protected feeds, since each one can’t be re-used. It’s one copy per username/password pair.
With a thin-server system, you never transmit your username and password. It never sees the feed data, just the URL of the feed and IDs of news items. No problem syncing password-protected feeds.
Reachability
Say you read feeds from a local intranet that a thick-server can’t reach. You can’t sync these, since the thick server can’t read the feeds.
But, again, a thin server doesn’t care. All it sees are feed URLs and IDs of news items. No problem syncing intranet-only feeds.
(This also applies to things like script subscriptions. A thick server isn’t going to run an AppleScript, for example, but multiple clients might run the same script. The news items status would still be syncable.) (But not the script! No way would I want to sync executable code.)
Server downtime doesn’t prevent you from getting your feeds
If a thick-server system goes down, you can’t get your feeds. (Unless you turn off syncing.)
With a thin-server system, you still get your feeds. The clients wait to sync up.
Decentralized
So far, all the thick-server systems are on one big (conceptual) server. This means one point of failure for everyone who uses that system. Downtime is a big issue.
It’s conceivable that you could write a thick-server system that can run anywhere. Something open source, something easy to install. But it would use so much resources and bandwidth (reading the feeds every hour, returning entire feeds to client apps) that it would be prohibitive for many people. You couldn’t just install it on your account at your web provider and hope to get away with it. (Well, depending on lots of factors, of course. If it was just for you, and you didn’t have too many feeds, it’s probably okay.)
A thin-server system, on the other hand, would be easy to run. Minimal bandwidth, no content system where it downloads and stores feeds. It should be easier to set up and run than WordPress.
Easier to move from synced to non-synced and back
The thick-server systems rewrite the feeds, and usually substitute their own unique ID for whatever was in the feed. (Though, in the case of Google Reader, it also provides the original unique ID, if there was one.)
Because the feeds are rewritten, it can be very difficult to match up a non-synced item with its synced equivalent. This can make turning on or off syncing very rough, as you end up with duplicates.
Longer limits on news item status
This isn’t inherent, but it’s practical. Thick-server systems tend to serve a ton of people, so they have to have limits on the length of time news items status data will be stored.
For instance, NewsGator’s was two weeks or 200 items, whichever was first. (If I recall correctly.) Google Reader’s is, I believe, roughly twice that (but with some special cases, like when you do a mark-all-read in Google Reader and when you first subscribe to a feed).
But a thin system can afford to keep news item status data longer. Make it six months or a year.
No data loss
Because thick-server systems rewrite the feeds, they’ll often toss out parts of the original feed that they don’t care about.
Again, this doesn’t have to be inherent, but for practical reasons it’s often done this way.
With the thin server, you read the feeds directly, so you miss nothing.
Twitter and other feed-like things
This system would work for anything feed-like: it just needs a URL and individual item IDs.
Imagine pointing not just your RSS readers but also your Twitter clients at the server — your Twitter clients could know which items you’ve already read. Want that? I do. :)
Your data in your control
You could use someone else’s server, if they allowed it. Maybe there’d be inexpensive for-pay services.
But, at least conceptually, you could run it yourself, and control all your data yourself. The opportunity would be there, at any rate.
Anyway
That’s all I have in my head at the moment. There are more benefits, surely, but I think the above is plenty.
NSLog
Aperture 3 Released
Apple released Aperture 3.0 today. I'll update this post after I have a chance to read through the full list of updates, watch some videos, and play with the demo (I've already ordered my license but that will arrive later - why can't they give me a license now?).
One thing that makes me somewhat concerned: that Apple seems to view Aperture as an upgrade from iPhoto and is actively trying to push people that way. Simplicity is good, but I also don't necessarily need a "dumber" Aperture, so I hope that's not what we've got.
I also don't see myself using Faces or Places very much at all. But that's me, and the types of things I shoot are limited, and I tend to organize and name the albums and photos fairly simply and to remember those names, too.
Update: in no particular order, some thoughts…
The Good
Brushes look great. At first I thought they were, well, a poor imitation of what you can find in Lightroom, but if you watch this video ("Using Brushes to Apply Adjusments") the real power is exposed. Sweet. Selective desaturation, baby!
Additionally, the brush tool itself - with the solid outer line and the dashed inner line - is great.
Slide shows look nice. I've never printed a book, but I hear it's nice.
GPS from iPhone photos is nice. I doubt I'll use it much, though, because I see little value in adding 10,000 little pushpins within a 30-mile radius.
Color labels? Flags? I'm not sure how much I'll use it, but I like the option. Might be a good way to code things outside of using the actual ratings.
Search seems to be expanded and includes some nice new tweaks.
I don't have to rush to see if Rivet is broken. That's someone else's job now. Bwah ha ha ha!
I love that I can now apply an adjustment preset when I import. I like Definition of about 0.5 as a starting point for a lot of images. Now I can do that every time.
The Bad
Not giving me a serial number immediately after I buy. Booo. The trial wants to create a demo library - I want to upgrade my existing library. I realize it's tough to email a code while shipping a DVD, but maybe Apple could just email a code to you and not put one in the stupid box.
Checkboxes to select the images to import? Ugh. The target is so much smaller. What was wrong with dragging to select like in Aperture 2?
The path navigator in full-screen is also a menu? What?
Keywords still don't really seem to be hierarchical. Adding "Baleen" from the path "Animals > Mammals > Whales > Baleen" should make the image show up in searches for "Animals" and "Mammals" and "Whales."
I don't like that I can't apply an adjustment ("Recovery" for example to every image I've selected. I still have to use the stamp tool (or something equivalent).
The Indifferent
CURVES!?!? We don't need no stinkin' curves! OK, I don't care about curves, but I'm glad the tool exists because it'll help quiet some of the people who love their curves and couldn't figure out how to work with the tools Aperture provided in prior versions.
I should try to remember to create different libraries rather than use the one massive one I've been using. I'll have a library for my photography, one of the kiddo, and one for golf (product shots, tournament photos, etc.).
Faces, Places. Again, I just don't see myself using them much at all. Is this something professional photographers really care about?
I will not import my iPhoto library into Aperture. iPhoto is for snapshots. JPEGs. Pictures Carey takes.
Facebook and Flickr. Eh.
Plugins have to be 64-bit to not require a re-launch. That's good in the long haul, but bad right now.
by Erik J. Barzeski at February 09, 2010 09:21 PM | Bookmark with del.icio.us
Scripting News
Google Buzz? Pfffft
I liked Google Buzz at first, for about 15 minutes.But when I got to the API, I saw a big red X over its future.
They had to embrace the Twitter API to capitalize on the know-how in the developer community. Google is going it alone. Good luck with that. Maybe it will get uptake, but there's nothing here for me as a developer. I'm even more bored with Buzz after 15 minutes than I am with Twitter after three years.
This comment in yesterday's post sums it up: "Google is a big clunky Microsoft-like company with strategy taxes, and they don't trust the web or developers, or each other, and their internal politics drive most of the decisions they make. To compete with Twitter is an easy sell inside Google, but to actually have the will to be cut-throat about it, that's another thing. It'll probably have to pay homage to Google Wave (remember that?) and therefore will have some elements that are completely incomprehensible. Twitter likely won't get killed, because Google's product will likely fall far-short of what's needed to get us all to think they can be trusted."
I gotta say this -- they aren't even as smart as Microsoft was in its heyday.
PS: I am a Gmail user but I don't want Buzz. How do I get it out of the user interface of Gmail?
PPS: There's a command to turn off Buzz at the bottom of the Gmail UI.
Inessential
Jens on RSS syncing
Here’s Jens Alfke on RSS syncing with a couple interesting suggestions. (Jens has a lot of experience in this area.)
Idea for alternative RSS syncing system
Google Reader is an RSS reader that can be used for RSS syncing. Bloglines used to have a very basic syncing API (maybe it still does). NewsGator had a syncing API. FeedSync is a way to use feeds to sync other stuff (as far as I can tell). Sync Services (MobileMe syncing API) is a generalized syncing system that might be able to do RSS, but works just between Macs.
WebDAV is cool. DropBox is super-amazingly-cool. But these are storage systems, not syncing systems for things like RSS.
Not one of the above is a really great system for just syncing RSS between apps.
(For people who remember NewsGator’s system with fondness: it had drawbacks too, including that it was limited to the past two weeks or 200 items for each feed.)
Now, that said, I think Google Reader is cool (both as app and API), and I’m very glad we can use it, and I totally appreciate the help we’ve had from Google. But I do also hear from NetNewsWire users who’d like an alternative.
With everything else I have to do, I don’t have time to create an alternative. But I could make NetNewsWire work with an alternative, if one existed and was worthwhile.
What is a worthwhile alternative?
There are a few criteria to meet, in no particular order:
It would have to be more like email servers — that is, not just one big server or cluster of servers somewhere, but the kind of thing people can run on any server. My web service provider might run one for me, the same way it runs an email server. (Or I might run one on my LAN. Or I might install it myself on my own website.)
It would have to be free and open source, so that it could be everywhere, so that it would be developed by people who just want to make RSS syncing work. (I’m a capitalist, totally, but there are times when free and open source makes sense.)
It would have to work over http and https. REST API.
It would have to not require that clients download the feeds themselves from the server. (This is the way Google Reader, NewsGator, Bloglines and others worked. Status info was added to the rewritten feeds. I’m saying this system should not work that way: clients would download feeds directly from their sources, just as they do when not syncing.)
The API should be as simple as possible and still get the job done. The job would be defined as syncing subscriptions lists and status of individual news items in RSS and Atom feeds. (And nothing else!)
It would have to be easy to configure an RSS reader to use a given server. No more than URL of server, username, and password should be required. (Less, if possible.)
It should not be limited to the last 14 or 30 days (like some systems) — it should have a much larger limit, like a year.
The server itself wouldn’t ever read any RSS feeds. It wouldn’t have to — it’s entirely just about syncing data between apps. It would only ever talk to client apps.
It should use as little bandwidth as possible, and be as fast as possible.
Authentication would use standard HTTP authentication. (Not cookies or anything else.)
There should probably a PHP + MySQL version, just so it can be deployed as widely as possible. (Though I know you’re thinking Rails.)
Despite its being open source, if someone did want to offer it as a for-pay service, they should be allowed to.
Notes about the API
There are some obvious things. Get subscriptions list as OPML-with-folders. (Feeds could live in multiple folders, which means folders are just like tags, so call them tags if you want to.)
API calls would support conditional GET, so getting a subscription list would usually result in a 304.
You’d probably add, delete, edit subscriptions by addressing into the tree. (That way you could delete one instance of a feed that appears multiple times. You could add/remove folders that way too.)
The other half is the status of news items. Most have a unique ID (always in the case of Atom) or a guid (usually, in the case of RSS). For items that don’t, an agreed-upon way of constructing a unique ID would have to be developed. (Pick things that don’t usually change but are enough to identify an item: pubDate in a specific format + link + feed URL, as a UTF-8 string, then MD5-hashed. Maybe. Something like that, something that would be largely reliable.)
You’d sync status incrementally: get all the status changes since a certain date (the last time you made the call). Status would probably be read, unread, deleted, starred, and saved. To set status, it would be great to address each item in individual calls, very RESTfully — but that would be a giant bandwidth waste. Better a single call that takes a structure of some kind (XML, JSON, whatever) with item IDs and status/value pairs, where you can update a bunch of items all at once.
As you can see, the server doesn’t have to do that much. It stores some small bits of data with timestamps. I don’t think it needs any cron jobs (at least not conceptually) — it just responds to requests. It doesn’t even have any idea what this data is about.
You probably have the database schema mapped out in your head already plus more specific ideas about the API.
(I don’t recall if I’ve said before, but a couple years ago we found that the average NetNewsWire user had 26 subscriptions. That should give you an idea of the storage requirements this would need. Obviously some people have hundreds or thousands, of course, but not most.)
Most of the time clients are just getting the subs list (usually getting a 304 back), and getting/setting news item status changes.
In other words, none of this sounds that hard. And it doesn’t sound like a taxing job for a server.
Invitation
If I had time, I would have written this years ago, offered it for free, made it open source, had NetNewsWire support it, and I’d have tried to get other RSS readers to support it too.
But I didn’t and don’t have time to write it.
However, if there are people who are interested in writing this, I can help. I have client apps, and I’ve been thinking about this for years, and I’ve written to several sync APIs.
If you’re seriously interested in writing some software that could end up deployed far and wide, and that would solve a real problem for real people, get in touch with me.
P.S. Here’s the business case
So you might want to make some money. That’s cool. Two business ideas:
Charge people money to use the service.
Collect information about popular feeds and popular news items. You could provide a real-time view into what people (in the aggregate) are reading. This might be interesting to sell, or it might be interesting as a website itself (where you could display ads). Given all the metadata in feeds, plus your user’s folders/tags, you might even be able to figure out categorization. You might even be able to provide trends, too. Certain topics are gaining/losing ground. Certain feeds are getting more or less popular. Etc. Don’t forget the pretty graphs! All of that stuff would be an add-on, of course, something you’d be able to build because you have the sync system underneath.
Compelling? I don’t know. Just what I thought of off the top of my head.
February 08, 2010
NSLog
Whispering Woods Clubhouse Plans
The clubhouse at Whispering Woods is in what might be called "rough blueprint" stage. It's sketched up, and by an architect, but things are still very much at play and there are a bunch of things to shift around.
The clubhouse will be 6500 square feet or so and will have a smallish Pro Shop, two indoor eating areas, a large outdoor eating area facing the 18th green. Downstairs golfers will find club storage, a small locker room with showers for men and women, and cart storage with separate entry/exit ramps.
I look forward to groundbreaking and the eventual opening of the clubhouse in 2011, and I know the people who work there are excited as well.
More details tk.
by Erik J. Barzeski at February 08, 2010 08:13 PM | Bookmark with del.icio.us
February 03, 2010
Ranchero
Cocoa and Cocoa Touch Intro
Peter Hosey: “Welcome, new Cocoa or Cocoa Touch programmer. Here are some things you will need to know.”
Michael Tsai
No Reply Is Better Than No-Reply
Given the crappy copy and links in the message, after a quick scan, it’s not difficult to miss a key line or two and be left thinking you can hit reply and continue the conversation. After all, they originally asked me to e-mail them, they just replied to my mail, they ask me to “write back”, speak in the first person and they sign with a staff member’s name. I typed “Hi Scott, there must be some confusion. There is no another e-mail add—” before I noticed the “cannot accept incoming e-mail” line.
by Michael Tsai at February 03, 2010 04:20 PM | Bookmark with del.icio.us
Ranchero
On Removing Features
Lukas Mathis: “Eventually, you will find yourself in a position where your application contains features it should not. Even if you’ve been vigilant, this will happen.”
February 02, 2010
Michael Tsai
My Worst iPad Fears
At this time, I suspect the closed nature of the App Store is not as worrying as it should be because it only concerns our smart phones. We can still develop anything we want for Macs, the “real” machines. However, what if the iPad starts to replace the Mac to such a degree that it no longer becomes profitable to write apps for the Mac? It seems that to be a Cocoa developer will eventually mean to have one’s business chained to the App Store. To be chained to the App Store means Apple makes the final decision on whether your apps can be sold the way you like them, or at all.
by Michael Tsai at February 02, 2010 03:39 PM | Bookmark with del.icio.us
20 Years of Adobe Photoshop
Webdesigner Depot (via Cathy Shive):
On February 10th, 2010, Photoshop turns twenty. To mark this anniversary, we’ve come up with an article that takes you through the evolution of Photoshop from its modest beginnings as a bundled program sold with scanners to its current version.
For each version and major feature listed, we couldn’t help but think “did Photoshop ever exist without that feature?”.
by Michael Tsai at February 02, 2010 03:20 PM | Bookmark with del.icio.us
Ranchero
iPhone / iPad icon PSD template
Cocoia posts the good stuff, as always.
February 01, 2010
Michael Tsai
ATPM 16.02
The February issue of ATPM is out:
- Cover
- Sponsors
- Welcome
- MacMuser: Frozen in Time Machine
- MacMuser: And the Winner Is…Who Cares?
- Next Actions: Master List, February 2010
- Segments: Slices from the Macintosh Life: Back to the Beginning
- Desktop Pictures: New England
- Out at Five
- Accessory Review: Element iPhone Stand
- Accessory Review: SolarCharger 906
- FAQ: Frequently Asked Questions
by Michael Tsai at February 01, 2010 09:43 PM | Bookmark with del.icio.us
Ranchero
iPad as revolution
Macworld: “For Apple, it’s not about killing off tinkerers, but ensuring that not everybody who wants to use a computer has to be a tinkerer.”
Citizen Reporter Plug-in for TapLynx
Tyree Apps: “I’ve created a little view controller that lets a TapLynx app offer the user a quick way to snap a photo and then email it to someone without ever leaving the TapLynx based application.”
One of my favorite parts of TapLynx is that it’s extendable: you can create new views with new features. (Note to programmers: TapLynx is a static library. You still use Xcode to build apps, though TapLynx makes it so you write code only if you want to.)
January 30, 2010
Ranchero
Omni + iPad
The Omni Mouth: “We want to bring all five of our productivity apps to iPad: OmniGraffle, OmniOutliner, OmniPlan, OmniFocus, and OmniGraphSketcher.”
I’m especially a fan of OmniOutliner — and I want an outliner on iPad. This is great news.
January 29, 2010
Ranchero
Method replacement
Mike Ash: “Using a technique called method swizzling, you can replace an existing method from a category without the uncertainty of who ‘wins,’ and while preserving the ability to call through to the old method.”
This is interesting information that you should read and never use.
Future Shock
Fraser Speirs: “Those of us who patiently, day after day, explain to a child or colleague that the reason there’s no Print item in the File menu is because, although the Pages document is filling the screen, Finder is actually the frontmost application and it doesn’t have any windows open, understand what’s happening here.”
On iPad’s A4 chip
Macworld: “At the heart of the iPad lies a tiny sliver of silicon. A game changer within a game changer.”
iPad Stencil
Playing with Shapes: “I’m just as anxious as anyone else to start designing for the iPad. I always have to start with paper.”
Blogs
- BBum (feed)
- Dave Hyatt (feed)
- Forwarding Address: OS X (feed)
- GeekLane (feed)
- Inessential (feed)
- Karelia Software (feed)
- Michael Tsai (feed)
- NJR (feed)
- NSLog (feed)
- Ranchero (feed)
- Sci-Fi Hi-Fi (feed)
- Scripting News (feed)
- StevenF (feed)
- Stone Log (feed)
- Unsanity (feed)
- User Creations (feed)
- thom::blog (feed)
Can't get enough blogs? Check out the archive where each day's blog entries are archived.
- MacBlogs archive
- MacBlogs rumors archive
- MacBlogs news archive
- MacBlogs ipod archive
- MacBlogs developers archive
MacBlogs is a blog of blogs. The site is powered by the Planet software, developed by the Gnome and Debian communities.
For more information, please email macblogs@gmail.com




