QCon San Francisco 2009 – Part III of III

-=-==-=-=-=-=-=-=-=-=-=-=–=-===—=–===–=–=-=-=-=–=-=
Day 3
=-===-=-=-=-=-=-==-=-=-=-=—=-=-=-=-=-=-==-=-=-=-=-=-=-=

Did you every create those fancy borders using ascii dashes and equals? That’s one of my favorite things to do in a text editor.  I hold my index finger and middle finger over the pair and randomly punch each one until I get about 80 of them… every border comes out unique this way. It’s awesome, you should try it. Really. I’ll wait. Pretry cool, huh? Well, the keynote by Oracle’s Dave Chappel wasn’t nearly as exciting as creating dash-equal borders. These are some of the tweet’s I issued:

It might be hard to believe, but the Oracle keynote is not good on my laptop battery as I’m surfing wildly. #qcon

That was true, I burned through 25% of my battery. If you think that was clever, you should have seen my next tweet. Golly, this was the most clever one of them all!

Oracle’s cloud strategy is more confusing than writing “Hello, World” in malbolge. #qcon

How many of  you knew what malbolge is? Seriously? Show of hands? I don’t believe you. Well, if you did then I am impressed. Consider this malbolge program:

(‘&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#”
`CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj”Fhg${z@>

What that program does is print “Hello World!” to the console, with no newline I might add. I mean, it’s pretty clear what it does… right? Google malbolge, I guarantee it will wast 10 minutes of your time as you digest that material. Freaky. Was I talking about the Oracle cloud strategy? I tweeted how confused I was and someone actually sent me a link (via Twitter) explaining Oracle’s strategy. Thanks Rex! Here it is:Oracle Keynote Cloud Expo 11-04-09

View more presentations from Rex Wang.

The presentation is seriously need of de-corporatizing as there is way too much going on. IMHO, its rubbish. In a nutshell, Oracle is offering options… private or public clouds, your choice. They will sell you the infrastructure either way.  Well, actually,  they partner with Amazon’s EC2 service for the public offering, which will run Oracle’s software stack underneath. To me—and I must admit I have no actual programming/implementation experience with a true cloud infrastructure—this is a less clear message than Microsoft provides with Azure. Azure sounds so much sexier. Being in the cloud with Azure sounds sexy. Being in the cloud with Oracle sounds kind of boring. Why were there no sessions on Azure at #qcon? That sucks.

Did you see the cool em-dashes? On Windows, you can create em-dashes a few ways. The first way is to hold down the alt key and type 0151. That’s crap. Most “Microsoft” applications will allow you to hit Ctrl-Alt-Numpad hyphen, which is more intuitive. On the Mac the finger contortion is shift+option+dash (next to the zero, up top). Yep, you got it. That works in most Mac software. Try it!

I’m in the long process of reading Gödel, Escher, Bach by Douglas Hofstadter. My friend John lent this to me and I must admit it’s a goddamn chore to get through. But, every now and then it makes me think, hard. And I get smarter! In this book, Dougy often challenges the reader to “Try it” to make sure the concepts gel. So, seriously, try the em-dash thing. Do you know when to use an em-dash? Do I?

Wait, did I get distracted again?

-=-==-=-=-=-=-=-=-=-=-=-=–=-===—=–===–=–=-=-=-=–=-=
Eric Evans
=-===-=-=-=-=-=-==-=-=-=-=—=-=-=-=-=-=-==-=-=-=-=-=-=-=

IMHO, Eric was best speaker at #qcon. I spoke to him afterwards and he said that this talk was new an mostly unrehearsed. In contrast to his first talk, which he’s done dozens of times. Nevertheless, it sounded good to me. Eric has been to my office a few times. Always a pleasure to hang out with him.

Eric challenges: modeling is not an up-front investment that pays off. It helps you get there in the first place. He also challenges the old agile adage: “The simplest thing that could possible work” is often interpreted as “quickest thing that could possibly work.” Eric says that it would be better stated as, “what is the most concise, clear, and most easily understood way to do this”… His point was to do that requires real work. It’s so sad that so many projects have failed because people did simple—and stupid—things. Oh, and don’t let me make you believe I’m not a victim of this from time to time.

Another notable quote: “Typical UML is not a good representation of the model as it is a visual representation of the program. A model, in contrast, is a collection of assumptions, rules, and choices that led you to write the program that way.” Well said, Eric.

Eric asks, how then do you reconcile Agile and Domain-Driven Design? Tech can distract us. Feature-orientation can fragment our model. Upfront analysis locks in ignorance. (If you’re thinking things are seeming a bit “disjointed”, then realize that I’m reformatting my notes… and sometimes I lose context!)

Consider this statement:

Need tools that let
us express models
without getting bogged
down in technical detail

vs.

Need tools that let
less skilled developers to use
parts made by smarter people

What Eric is saying here is really a criticism on elaborate libraries and frameworks that get created to dumb down the intricacies of a system so that “less skilled” developers can be productive. The problem is that visual programming and “compiled UML” are simply bad concepts. It seems pretty obvious. If you abstract away all the details, the “less skilled” developers will never get a real sense of  the system. They will work at an abtract level and ultimately fail to achieve mastery. Like, ever. To be truthful, language is our fundamental abstraction tool. What you talk about the domain reflects the model. Here is where DDD and Agile start to diverge. In agile, you get the right answer and that is enough (green bar!). In DDD, we want to get to the right answer for the right reason. Precious. Eric then said, to many laughs:

The way I work things is not like a waterfall, but more like a whirlpool… if we insist on violent water metaphors. #qcon

Eric then presented a specific process he and his people at Domain Language use with their clients to incorporate exploratory modeling and design into an Agile process. He called it “Whirlpool” and said that it wasn’t quite ready for prime-time, but I’ll keep a lookout and write more about it later. I don’t have the whirlpool graphic he showed, but I’ll try and get a hold of it.

Some more EE gems:

  • You are not done until you have three bad ideas.
  • If your model runs into one special case after another. Test the model with a new scenario.
  • We will always get our predictions of the future wrong,  but this does not make predicting the future a senseless endeavor. We just have to learn not to take our predictions too seriously. #qcon

Great presentation.

-=-==-=-=-=-=-=-=-=-=-=-=–=-===—=–===–=–=-=-=-=–=-=
M – Dynamic Language Grammar – Amanda Laucher and Don Box
-=-==-=-=-=-=-=-=-=-=-=-=–=-===—=–===–=–=-=-=-=–=-=

M is a language unto itself, it’s not the Lex and Yacc model where you have a spec and you spit out C on the other end.  You can build a SQL database with M. You can use M to generate ORM layers. You can dynamically validate data in your own programs. The cool thing about M is that it’s dynamic. It’s also a CLR language so it inter-operates with all of your code (assuming you target the CLR!). It allows you to define DSL’s and validate them at runtime, nay, traverse them, violate them, and do whatever you like. All in all, seems very powerful and the audience seemed to “get it” toward the end.

-=-==-=-=-=-=-=-=-=-=-=-=–=-===—=–===–=–=-=-=-=–=-=
Skeptical View of Language Workbenches – Glenn Vanderburg
-=-==-=-=-=-=-=-=-=-=-=-=–=-===—=–===–=–=-=-=-=–=-=

This talk was a bit of a rant. Glenn fully admitted this from the start and acknowledged this to his audience, who obviously were developers of language workbenches (I think the developer of Intentional Software was in the audience). Here are more or less my raw notes:

  • AspectJ-Bring meta-object concepts, instead of building it into the language like CLOS, you bolt it onto the language.
  • CLOS, deep meta-programming within the language was a bad idea?
  • DSL’s, internal ones, in Ruby community, have been flowering. Ruby has simple syntax… so it’s generally pretty easy to create a SAL directly within the Ruby grammar

Compared to AspectJ, which is an Arcane, complicated sub-language… only a few people understood it well enough to use effectively. Language Workbenches, overestimating programmers. You need to deal with a problem sideways using language workbenches. This is my favorite quote from the con!

There is a reason why Jedi Knights build their own lightsabers. Programmers should not use a tool that seems like magic to them. @glv #qcon

How awesome is THAT! Jedi knight references!

Eric Evans in one of his talks says, “language is our fundamental abstraction tool,” and EE seems to support Glenn’s skeptical outlook.

The counter-argument for Language Workbenches is described very well by Martin Fowler in his ’05 treatise on the topic, Language Workbenches: The Killer-App for Domain Specific Languages? In this essay, Martin describes language workbenches as systems that allow you to modify the compiled form of your code, not the text, not the machine code, but the model in-between. While I’m not a fan of visual languages, compiled UML, or the 4GL insanity of the 90′s, there is something interesting here and something future-predicting about how programmers will be programming in 20 years.

My personal prediction will see the rise of functional languages and machine intelligence (not self-awareness, yet!) and the job of the programmer will be to input “requirements” or logic rules via natural language, and the computer will generate all possible programs that can solve the problem presented. The programmer will then cull out and filter the solution that exactly fits and move on to the next problem. But this is just me talking. What do I know?

-=-==-=-=-=-=-=-=-=-=-=-=–=-===—=–===–=–=-=-=-=–=-===-=-=-=-=-=-=-=-=-=-=
Amazon S3: Architecting for Resiliency in the Face of Failures – Jason McHugh
-=-==-=-=-=-=-=-=-=-=-=-=–=-===—=–===–=–=-=-=-=–=-==-=-=–=-=-===-=-=-==
This talk was about Amazon’s Simple Storage Service and how it’s resilient to failures, like large-scale failures… like datacenter dying failures.

I don’t have too much to say about this talk. It was the last session of the last day and I was getting a bit tired. Kind of like I’m tired after writing three posts in my qcon experience!

Anyway, Amazon S3 has a goal of 99.9% uptime. I was surprised to hear this since I thought enterprise-class uptime wass 5 9′s (99.999%). Anyway, Jason went over the main reasons for failure and exhaustively went through the resolutions for each:

  • Human error
  • Acts of Nature
  • Entropy
  • Beyond Scale

I didn’t write down all of the resolutions, butyou can download the slides from the qcon website.

There was a lot of talk about Amazon’s gossip protocol. Amazon S3 uses a gossip protocol to quickly spread server state information throughout the system. This allows Amazon S3 to quickly route around failed or unreachable servers, among other things. Last year, gossip got out of control due to an error… bringing down the service infrastructure. Check out the statement. You can also check out Amazon’s service dashboard, and even subscribe to an RSS feed for it.

I did some quick Googling and couldn’t find much about the protocol, but I did read an interesting passage for a thesis titled, On the Correctness of Gossip-Based Membership Protocols:

The importance of scalability and fault-tolerance in modern distributed systems has led to considerable research in multi-cast gossip protocols. In a gossip protocol, each node forwards messages to a small set of “gossip partners” chosen at random from the entire group membership; traditional strong reliability guarantees are traded for probabilistic guaranties, potentially yielding greater scalability and fault tolerance. Nodes only stores a small random subset of the membership as maintaining complete membership views at each node is expensive. These protocols are subtle, and while they have been the subject of much simulation and analysis, formal proofs of key properties – in particular the probability of network partitioning – have remained elusive.

Jason admitted that the Gossip protocol doesn’t always work at scale and offered a link to the ElasticVapor blog which had some interesting things to say, including this statement:

One such example provided by wikipedia is in a network with 25,000 machines, it’s usage can find the best match after about 30 rounds of gossip: 15 to spread the search string and 15 more to discover the best match. A gossip exchange could occur as often as once every tenth of a second without imposing undue load, hence this form of network search could search a big data center in about 3 seconds.

Jason also recommended that once you have all of your fault tolerance scenarios implemented, you should turn off a datacenter—literally pull the plug—once a quarter. Make sure you don’t do this before you’re ready, however, as there may be some downtime ;-)

In conclusion…

Hope you weren’t waiting for more analysis on these topics. Hey, I ‘m just jotting down my notes. You can watch videos of a handful of these presentations and get the slides to most of them a the qconsf09 website.

I do hope you had a good time and congratulations for getting to this point! Looking forward to qcon next year and hope to see you there!

Susan Boyle

I’ll write about beer and terrorizing innocents soon enough, but in the meantime… I get teary-eyed every time I watch this:

SusanCDsleeve

Embedding is disabled for some reason. This could be completely fabricated nonsense, but I don’t give a crap. Ignorance is bliss. Click, and enjoy.

Primordial Ooze Trends

When I started my blog in late 2003, it was meant to be technical, geeky, and funny. I honored that for a while. I used to write about .NET, Astronomy, and did a whole lot on Adobe Illustrator/Photoshop, Dungeons & Dragons, etc. Then, as my career saw me managing more than coding, I stopped writing about programming and started posting videos on toilet humor. Lately, I’ve been having a bit of a rennaisance with respect to programming and technology so I’ve been trending back. Of course, throughout, I’ll still be talking about beer and farts because, if you think about it, only talking about tech topics would be no fun.

Here is a graph I put together from my FeedBurner feed statistics web thingy. I started collecting stats on Feedburner in late 2004, so I missed about a year of stats.

ooze_stats

Here is a long-term report generated by my web host, going back to 2000:

ooze_stats2

Here are search terms that drive traffic toward my site in the past month:

ooze_stats3

And here is Google Analytics search terms over the past year:

ooze_stats4

I guess I wrote a lot about maps at one point. Enjoy!

Windows 7 Keyboard Shortcuts

If you’re using Windows 7, they added a ton of keyboard shortcuts that are all very easy to use and wildly addictive. I knew about most of these already, but just discovered Win+Shift+Left/Right, which moves your window from one monitor to the next. Here is a more or less complete list of the new keyboard shortcuts…

  • Win+Home: Clear all but the active window
  • Win+Space: Aero Peek, all windows become transparent so you can see through to the desktop
  • Win+Up arrow: Maximize the active window
  • Win+Down arrow: Minimize the window/Restore the window if it’s maximized
  • Win+Left/Right arrows: Dock the window to each side of the monitor (If you’ve got dual monitors, adding Shift to the mix (e.g., Win+Shift+Right arrow) will move the window to the adjacent monitor.)
  • Win+T: Focus and scroll through items on the taskbar.
  • Win+P: Adjust presentation settings for your display
  • Win+(+/-): Zoom in/out
  • Shift+Click a taskbar item: Open a new instance of that application

Also, some interesting mouse/keyboard shortcuts for the taskbar:

  • Shift + Click, or Middle click starts a new instance of the application, regardless of whether it’s already running.
  • Ctrl + Shift + Click starts a new instance with Administrator privileges; by default, a User Account Control prompt will be displayed.
  • Shift + Right-click shows the classic Window menu (Restore / Minimize / Move / etc); right-clicking on the application’s thumbnail image will also show this menu. If the icon being clicked on is a grouped icon, the classic menu with Restore All / Minimize All / Close All menu is shown.
  • Ctrl + Click on a grouped icon cycles between the windows (or tabs) in the group.

That red/bold item I didn’t know about before researching this blog post!

via lifehacker and wikipedia.

QCon San Francisco 2009 – Part II of III

In the last post, I talked a l ittle about my QCon experience and provided a list of the sessions I attended. In this post, I’ll go more into how those sessions went… enjoy the ride.

Day 1

My QCon experience started off kind of heavy as I listened to a keynote given by two venture capitalists. Try as I might, I couldn’t remember anything remarkable from this talk. I think this is when I created the new twitter account.

After the keynote, I went off to see a talk by Joseph Yoder, a consultant who helps people write software. He wrote a paper called Big Ball of Mud and he referred to this throughout his talk. His talk was about architectural patterns, you know stuff like client-server, model-view-controller, etc.. His favorite pattern was the Adaptive Object Model and you can read a lot more about that on the Adaptive Object Model website!.

Rebecca Wirfs-Brock presented a thoughtful look at the process of an architectural review. Lots of talk about getting through logic bubbles, knowing  your audience, etc. Two interesting things I wrote down. First, when presenting a few choices and doing pros and cons, remember to summarize these in a succinct sentence before making any decisions. This draws the true value out of the different options. Also, when probing for answers from a domain expert, be patient, endure long stints of silence, and keep probing.

Dan North’s talk was a freaking riot. The guy should do stand up. Seriously. His content was solid and he kept the audience’s attention. Some tidbits included advice on introducing “pair programming”: if your team resists “pair programming” and you think it necessary, just call it “helping” and park yourself there for the day. He also said, “A bunch of alpha’s aren’t going to pair. But they are more than willing to show off what they know. So, take advantage of that.” Also, many people at QCon were down on Maven. Dan was too, saying, “Maven is like an obsessive compulsive, comes into your house, brings in apache kids, and begins to rearrange everything.” Also, Dan said an essential role in any team is  the role of Shaman, someone who knows  the history and who knows why this and that happened. Oh, and ESB’s are only good if they’re beer. Anytime a speaker mentions beer, they have my attention.

Next up was Nathan Dye, who talked about continuous deployment. He claimed that Microsoft can deploy up to 200 times a day. A friend tweeted me and said that was often enough to catch every “oops” check-in that happens in a day. What Nathan was describing is that when you can deploy so easily that any checkin can be built, tested, packaged, and deployed, your software is bound to be maintainable. He went into many all of  the techniques that can help companies gain the benefits of continuous deployment.

Day 1 was rounded up by a fantastic talk by Eric Evans. Eric was by far the best presenter, IMHO. I might be saying that only because I’ve shared a beer with Eric on a few occasions since he consults with my company. Like Dan, Eric had the audience laughing, but not at jokes… at scary truths that everyone in the audience was familiar with. Eric’s talk was an introduction to Domain Modeling, the topic of his excellent book on Domain Driven Design.

That evening, QCon hosted a party an Jillians. We got two drink tickets and a whole crapload of bar food. Me and my buddies played pool and met up with Eric Evans, who introduced  us to other clients of his. I didn’t know people still programmed mainframes! But, they do since these guys told me they did and I believed them. All joking aside, this is exactly the kind of environment where the domain-driven design philosophy can work magic, helping companies avoid wasting millions of dollars trying to displace a legacy system that works perfectly well.

Day 2

Day 2 started off with Don Box going up in flames as demo after demo failed. Firewalls? There are firewalls here? What was so amazing was Don’s reaction to all of this. He completely collapsed and ran around the stage like a crazy person. Don loves to code on the fly and does it all of  the time. This is daring and he should be commended for this. But every now and then you’re gonna suck. Lots of people were expecting more and were pretty unkind in the tweet-o-sphere. At first I was kind of disappointed, then I lightened up and enjoyed the antics. The next day, Don did another talk with Amanda Laucher and redemption was in the air.

Next up was a talk on Better Architecture Made Easy. I should have known from the title that this talk was high-risk. Alex Zitzewitz’s talk was about cyclic dependencies and how hey are bad and how a six-sigma approach can solve all of your problems. Alex was a decent presenter and not too pretentious, but I kind of shut off once the presentation went into a product demo. Still, if you’re a Java shop, the SonarJ tool might be an interesting tool. QCon invites vendors to pay the bills, but vendor presence is definitely suppressed when compared to other cons I’ve been to (VSLive, VMWorld, GDC, etc.)

The talk by Michael Feathers was good. He talked about what makes a good programmer and what qualities exist in people that make them good  programmers. One of the stories he quoted was popularized a last year. The story was the result of a study that determined good programmers are people who are comfortable with meaninglessness. What this means is that people who were tested to fail at programming tasks look for deeper meaning and aren’t comfortable with a computer that blindly executes what you tell it to. He made reference to Beddy Edwards excellent book, Drawing with the Right Side of the Brain. Don also quoted Paul Graham, Malcolm Gladwell, and others. “People who have a sense of taste can write good code.”  On the SR-71… “…something beautiful can perform the same way.” Read voraciously. Accept ambiguity.

Next talk was on Cloud computing by Michael T. Nygard. After reading that name and seeing the 6 ft. 4 in. dude on the podium, I half expected him to cry Valhalla and pull out a two-handed sword and engage a party of ogres. But then he started to talk about cloud computing and I forgot all about the ogres. An interesting piece of info on CERN. A typical experiment generates a gazillion data points which can’t be stored in any one location for the power needed for the datacenter would dwarf the power needed for the actual experiment. What does CERN do? They put in big fat data pipes and get the data the hell out of dodge before it reaches critical mass, spawns stranglets and consumes the Earth. It’s true. The data then fans out to successive tiers in a complex network of supercomputers where the data is digested so we can find out how to harness  the power of the sun or blow up the moon. The whole cloud computing talk dovetails with Nathan Dye’s talk from a day earlier and sessions about computing in the cloud was a hot topic at QCon.

The very next talk, after the Asgardian, was with Adam Wiggins of Heroku fame… now I know you’re thinking of Andrew Wiggin from Ender’s Game, but this guy was not a 6-year old kid. He had a goatee and possibly earrings. But he was smart… so maybe he could destroy an entire alien civilization from across the galaxy. Adam’s talk was awesome, he took us through lots of nifty technologies you can use to make it perform well at scale: memcached, couchdb, mvcc techniques to data, hadoop, redis, varnish, rabbitmq, erlang, etc. Great talk, plenty of reading material to take home to Colonel Graff.

The Pragmatic F# class by Josh Graham and Amanda Laucher was up next. The session started off with Amanda telling Josh to effective shut his trap as Josh started talking before the mic was ready. I was like, wow! Then I heard they were married and I was like, of course. The pair then launched into a beginner-grade introduction to the language. This was fine for me since I hadn’t seen any F# code until now. In college I had exposure to Lisp, ML, and Prolog so I knew what functional languages were about. However, that was a long, long time ago at the University of Buffalo and I think I pulled a 2.0 average that year because I was out getting drunk all the time. Anyway, F#, like any .NET language, has full access to the CLR and anything it provides so it’s an important language from that perspective. A few colleagues of mine, Pavan Podila and Kevin Hoffman, wrote an excellent book called WPF Control Development Unleashed and one of their readers went and translated all of the WPF code samples into F#. Neat.

In my next post, that would be Part III, I’ll talk about our Thai dinner, Day 3′s sessions, and our Dim Sum lunch on Friday.

The website is down!

@codinghorror

Visualizing Empire’s Decline

QCon San Francisco 2009 – Part I of III

logo_qconI just got back from a trip to QCon San Francisco 2009. A few guys at work had been to previous QCons and the con came with a pretty good recommendation. A total of six people from my company went, and two of them I didn’t expect to find there but was instead pleasantly surprised to meet up.

The official tagline for QCOn is well-explained on the infoq web page, so go there and read it. I divided the post into three parts because one long post would keep me  up all night. This way, I can spit this out and finish it tomorrow.

I0f you were wondering why I would write about my trip in such detail, well, these posts are going to serve as notes for myself so I’m just being selfish.

While @ #qcon, I attended three grueling days of sessions. I say grueling because I hit all three days and attended all time slots save one on Friday when I took a short trip to get some Dim Sum (playing hookie ROCKS). There were some AMAZING sessions and some FANTASTICALLY DULL sessions. All in all, I would highly recommend the con to anyone looking for a good place to hear about the latest developments in our field.

I was a tweet-monster on this trip. I mean srsly, a monster. In fact, I knew I was going to tweet a lot so I created a new id, nickcoding. Not to be confused with my other twitter id, NickCody. I try to be serious and clever with nickcoding whereas NickCody is stupid and immature without trying. By doing this, I seem to have inspired one of my pals to create a new id as well. In contrast to my creating a smarter account, he created a stupider one.

Here is a list of the sessions I attended. After this boring list, I’ll point out some of the highlights from my trip.

Day 1

  • Keynote: Techie VC’s Talk about Trends & Opportunities by Salil Deshpande and Kevin Efrusy
  • Patterns in Architecture by Joseph Yoder
  • Lessons Learned from Architectural Reviews by Rebecca Wirfs-Brock
  • Adventures of an Agile Architect by Dan North
  • Roadmap to Continuous Deployment by Nathan Dye
  • Strategic Design: Avoiding Responsibility Traps by Eric Evans

Day 2

  • Keynote: Data and Programs: Rethinking the Fundamentals by Don Box
  • Better Architecture Management Made Easy by Alex Zitzewitz
  • Programming on the Right Side of the Brain by Michael Feathers
  • Software Architecture for Cloud Computing by Michael T. Nygard
  • Architecting for the Cloud by Adam Wiggins
  • Pragmatic F# in Action by Josh Graham and Amanda Laucher

Day 3

  • Keynote: Next Generation Service Orientation: The Grid, the Cloud, and the Bus by David Chappel
  • Sustainable Design for Agile Teams by Eric Evans
  • M – Dynamic Language Grammar by Amanda Laucher and Don Box
  • Skeptical View of Language Workbenches by Glenn Vanderburg
  • Amazon S3: Architecting for Resiliency in the Face of Failures by Jason McHugh

In my next post, I’ll talk about my experience in these sessions. It will really be fun, I promise!

Apple 2TB Time Capsule Initial Impressions

Apple Time Capsule

I’ve been wanting to get an Apple Time Capsule for a while now. Time Capsule is a backup drive for your network, plus an Airport Extreme Base Station all rolled into one. From here on out, I’ll call the Time Capsule itself “TC” and the Airport Express Base Station component, “AEBS.” I mean, every good blog post needs a few cryptic acronyms for credibility, right?

My goal in all of this was to get a machine-neutral backup solution for all my home PC’s, plus a better wireless router. By machine-neutral, I mean a backup solution that wasn’t just for one machine, like a locally-connected USB device. TC does both of these functions very well. I installed it today and so far it’s been working as advertised.

While there may be other devices out there that can do the same job and perhaps do it cheaper, TC addressed three main needs in one simple package that just works:

  • A network-attached backup device for all of my macs
  • A wireless router that covered my whole house
  • A Gigabit Ethernet switch

Time Capsule as a Backup Device

As a network device, TC has a single 2TB drive for storage, which is more than enough to backup the drives on my Mac Pro, MacBook and my two iMacs. The TC volume is available as a Time Machine backup target to all machines in your network. You can also hook up an external drive to the TC and it will show up as a drive you can target for Time Machine or just a shared volume you can share files with. This works with everything from a USB thumb drive to a multi-terabyte TB Lacie Drive.

I’ll describe how backups work briefly here. This applies to all Time Machine backups, not just TC ones. If you’re not interested, skip this paragraph. Through Time Machine, hourly snapshots are taken of your data and differences are stored on the Time Machine target volume. Using a straightforward system of following hard links, OS X can reconstruct your drive contents at any time a snapshot was taken. If you browsed the data store, you’d see your entire file system replicated each time a snapshot is taken in a directory denoted by the snapshot date and time. Files aren’t duplicated, though. If a file hasn’t changed in a snapshot, the on-disk file is just a “link” to the latest real file, a pointer in coding parlance.

Using Time Machine on a locally-connected USB drive is trivial in Leopard, but you can’t share this with other Macs on your network. That is, not unless your brave enough to follow some black magic. Pre-release versions of Leopard originally allowed you to attach any old drive to your machine and expose it to other machines on your network as a Time Machine target. This effectively made one of your Mac’s a Time Capsule for other Macs in your network. This feature was removed just before the Time Capsule product was introduced and before Leopard code was finalized, upsetting many of the folks who had their hands on this feature before it was removed.

It should also be mentioned that the backups made by Time Machine can be used to fully restore your computer. Leopard/Snow Leopard installation can detect a Time Machine backup and automatically restore your machine to it’s previous state.

Time Capsule as an Airport Extreme Base Station

As a wireless router, Apple’s wireless devices get high marks. Even their piddly Airport Express—which is no larger than my MacBook’s transformer—can cover nearly my entire house and it does that with no clunky external antennas. What’s nice about the Airport Express is that you can hook up an audio cable to it and pipe music to a stereo receiver or other music device. iTunes sees the Airport Express on the network and treats it like a remote speaker that you can turn on and off. The Airport Express also lets you connect a printer and share it via Bonjour to all computers on your network. Bonjour works just fine for Windows PC’s, too, but you need to download Bonjour for Windows. I think this comes with iTunes.

You might be wondering why I’m talking about the Airport Express. The reason is that AEBS does all of that, but is an even more powerful wireless router. In addition to being powerful enough to cover my whole property (not just my house), it supports Wireless-N (802.11n) which boasts speeds of up to 50-600Mbps. Now, the iMacs have dramatically improved networking performance. I didn’t record any objective measurements. The increased range comes in handy when I have a party and people connect to my Music Library and vote o n songs with their iPods and iPhones. Before  the AEBS, these devices would sometimes go out of range.

The Wireless-N can be configured to show up as a new SSID, I call mine CodyN. I just realized that I have four wireless networks in my house: CodyV (for Verizon’s router), CodyA (for my Airport Express), CodyC (for the AEBS’s 802.11b/g network), and now CodyN (for the 5Ghz 802.11n network). I think I’ll go and turn off CodyV since it’s useless and will probably just wind up causing interference. Done. The AEBS also supports setting up a “guest” network, one that allows guests to get Internet access, but which is isolated from the rest of the machines on your regular network. All of these networks can have individual passwords set up.

Time Capsule as a Gigabit Ethernet Switch

The last feature which I found useful was the 4 Gig-E wired ports on the back of the device. In my living room, I have three devices that need an Internet connection: TiVo, Apple TV, and my Blu-Ray player. The Blu-Ray doesn’t really need an Ethernet connection for day-to-day use but it’s required for updates as it doesn’t support wireless. From my wall, I have a single cable installed by my electrician when  had construction done a few years ago. This cable is connected to one of these devices at a time. While the Apple TV supports wireless, it doesn’t perform well for large media files. While this would likely changes with the addition of a Wireless-N network, you still can’t beat Gig-E. Since the AEBS is situated very close to all of these devices, everyone has Gig-E now and I no longer have to manually switch the cable back and forth.

Amazon S3 & Jungle Disk

Until now, my backups have been to my Amazon S3 account via the excellent Jungle Disk client program. Jungle Disk works on Macs, PC’s, and Linux. Storage charges are pretty cheap, but I was backing up about 100-150GB of data continuously. This wound up costing me upwards of $35 a month. Now that the TC is in place, I have dropped to about 10GB of data I truly don’t want to lose and the cost is under $5 per month. This gives me geographic backup in case of water/fire damage and theft.

If I was a fanatic, I would buy a 2TB external drive and periodically archive the entire Time Capsule disk (which, by the way, is a TC feature) and bring it in to work every month. That’s more expensive, labor intensive, and I’m surely too lazy to make that work properly. The way I have things set up now, everything is automatic.

Conclusion

No doubt the price is high. You can get 2TB of storage much cheaper on NewEgg, but then you have the network sharing problem that Apple invented and has exploited by not making any drive a sharable Time Machine target. Still, when you consider the presence of the fantastically capable AEBS, the $499 price tag starts seeming less of a rip off and more akin to simply buying Apple quality and ease of use. For me, so far so good.