Paul's Blog 2.0 (Beta)

Computational Photography and Storage

Monday Mar 03, 2008

There is a great article on CNet's news.com about computational photography, "Photo industry braces for another revolution". It is basically about Photography 2.0. The first wave of digital photography seeks to reproduce film-based photography as well as it can. Photography 2.0 advances hardware while taking advantage of higher processing power within the camera to take advantage of the new hardware, replace hardware functionality with software functionality or bring image detection and manipulation capabilities that are not possible in the hardware space.

There are a few developments worthy of note, and all of them involve bringing more CPU capabilities into the camera:


  • Panoramic photography - I enjoy these types of scenes (one shown below), though I don't think they are the future of photography at all
  • Depth of field and 3-D photography - There is an excellent example of this in the CNet article. Personally, depth of field is arguably one of the most difficult techniques to master since this is purely 4-dimensional using our current lenses (aperture size decrease increases time of exposure and more depth will be in focus, etc...)

There are many other ideas in the article...detecting smiles (an extension of this is closed or open eyes), better light detection, self-correcting for stabilization (this is done with high priced hardware today in Image Stabilized lenses), etc... Clearly a Photography 2.0 revolution is in the works.

Photography 2.0 is really the same trend we see in the storage business...Storage 2.0. There are simple changes in the industry, like the incredible increase in CPU driving software RAID into storage stacks again. A huge benefit with software RAID is the decrease in hardware costs that it drives. This is very similar to the Photography 2.0 concept of moving image stabilization out of the hardware (the lenses) and into the software.

Storage 2.0 also brings us projects like this one: Project Royal Jelly. Project Royal Jelly encompasses two important pieces, one is the implementation of a standard access model to fixed content information, a second is the insertion of execution code between the storage API and the spinning rust. The ability to "extend" a storage appliance (or device) via a standard API will allow us to leverage the proliferation of these inexpensive and high-powered CPUs. A common use-case for an execution environment embedded in a storage device would be an image repository or a video repository. Every image submitted goes through a series of conversions: different image formats, different image sizes (thumbnail, Small, Medium, Large), and often a series of color adjustments. Documents go through similar transformations: a PDF may have different formats created (HTML primarily), the document will be indexed, larger chunks will be extracted into a variety of metadata databases for quick views, etc...

These transformations can arguably be the responsibility of the storage operation, not the application operations, especially when the operations can be considered part of an archiving operation. While indexing and manipulation could be considered a higher tier, storage tiering and taking advantage of storage utilities could also benefit from a standard storage execution platform. Vendors could easily insert logic onto storage platforms to "move" data and evolve a storage platform in place rather than authoring applications that have to operate outside of the storage platform.

Just some Monday morning musings...have a great week.

Like this post? del.icio.us | furl | slashdot | technorati | digg

DVD Player = Trash Bin

Monday Feb 25, 2008

My nearby Hollywood Video shuttered its doors this weekend. My MVP membership was automatically canceled by the company. As far as the personalities go, I enjoyed all of the folks there, it was nice to get real recommendations from real people. As I stood in line with my son to purchase a few stray DVDs I talked to my son that in 3-5 years he would never step into a video store again. I got a few stray looks in line. The more I told him about never being in a video store or a music store again, the more I realized what a foolish purchase those plastic cases and metallic disks in my hands were.

I convinced my son we didn't need the DVDs and I promised he could login to Amazon Unbox on the Tivo and rent a movie when we got home. We set the DVDs down, left the line, and I walked out of a video store with my son for the last time ever.

We went home, rented "Mr Bean's Holiday" at home (no, it wasn't my choice) and I'm boxing the DVD player and putting away whatever movies I do have.

And here is a message for Blu-Ray. I haven't looked at a Blu-Ray player, I'm not looking at a Blu-Ray player and I swear I will never have one in my house, period (unless I purchase a video game system with one but then I won't get movies for it anyway). Revel in your victory oh Blu-Ray backers, but it will be short lived, physical media for content is short-lived. I actually think Microsoft XBox is fine if they can get the video downloads working ASAP on their platform. These are pro-gamers, renting online will not be a problem and I doubt pro-gamers show off their DVD collection.

When I don't have my Tivo with me, I can download to my Media Center PC and plug it into the TV through the S-Video port, works great, portable media, very nice.

One less black box in my house is a good thing. Thanks for your time of service DVD player, I'll show you to the door.

[6] Comments
Like this post? del.icio.us | furl | slashdot | technorati | digg

Why one bit matters.

Friday Feb 15, 2008

Sometimes I wonder why I'm in the field of storage. Its not glamorous. Its JBODs, RAID arrays, HBAs, expanders, spinning rust, and all of those things wrapped into enclosures with lots of fans humming. My background is varied, I wrote a file system for my Master's, I worked on one of the biggest Java Business Frameworks ever (the SanFrancisco Project at IBM), and I've danced between the application and infrastructure space more than once.

I often think about my "ideal" job, I've even pondered it here on my blog...and take note, the new Jack Johnson CD is very good and I am ripping it to 8-track real soon now. Personally, I love the field of digital preservation, XAM is in the right direction, and long term digital archives are important to people-kind.

But still, this storage business, there is something to it.

I watched my friend get their eyes lasered to correct their vision this week. While I was watching, I was able to sit with one of the assistants and pepper her with questions, it is an astounding process. Basically, as I understand it, the Doctors use the scanners and computers to


  • map the surface of each eye
  • analyze the surface to understand why the vision is incorrect
  • create several corrective treatments
  • the doctor looks at the corrective treatments and adds their wisdom to make the right decision (a lot goes into this, like the health of the patient, the age, their profession, whatever...)
  • the doctor may tweak the map of places that need adjustments
  • the updated map is loaded into the "laser"
  • the patient comes in, gets prepped, the doctor aims the laser and sets the program loose
  • the "laser" jumps around the eye zapping away
  • the doctor reassembles the eye
  • the patient goes home

Coolness. But then the geek in me took over, I asked what I could about the machine, backup generators, power, moving the data, mapping the eye, etc... But my head kept thinking about the storage and computer software.

What if a bit is wrong? What if the bits are stored away but due to some battery backup cache being down, it doesn't really get stored and the out of date map is actually in place? What if one tiny point "ages" and becomes rust and there is no checksumming to see it "rotted"? These are people's eyes, you know? Would you want to be the storage vendor that supplied storage that messed up someone's eye because you didn't get the signal / noise ratio on the cabling right?

I've been thinking a lot about digital photography lately as well. While its not people's eyes, it is still an incredibly fragile process. In fact, many of the world's best photographers still do not use digital, and for very good reason. Even when you purchase photographs, you pay a premium price for pictures that have not gone through the digitization process.

Think about this, if a person takes a picture, the CCD (or whatever they are these days) takes the light and transfers it to a memory card. The memory card gets transferred to a laptop hard drive (in my case), a variety of backups are made and I move many of the pictures to SmugMug.

That's a lot of storage along the way. Now, let's say (God forbid), my house burns down. I get my pictures back from SmugMug and one of my pictures has a bit that rotted away.

Now, that is one tiny bit of imperfection to some people. To a professional, that picture is no longer an original. At that point, you have to decide to toss away your artistic integrity and photoshop the point to be like the ones near to it, or just toss the picture from your portfolio. Either way, the picture is never the same.

How would you like to be the one that sold the storage unit that allowed the bit to rot or be stored incorrectly, or archived incorrectly and destroyed that person's memory, that one perfect picture that was meant to be a keepsake forever.

Well, when you think about it, building storage units and management for those storage units is probably not as glamorous as owning the software or companies that specialize in photo archiving, or "lasering" people's eyes, or storing original recordings for artists, or archives of space travel. But those folks have to pick storage units from a company...and if you are the company they pick and you fulfill your moral responsibility to supply checksumming in your file systems, and well-tested storage that may occasionally be late to market to ensure that a memory is not lost or an eye doesn't get fried...you know, that's pretty rewarding.

Cheers to all of my co-workers at Sun who believe storage is more than a spinning drive or a paycheck.

Like this post? del.icio.us | furl | slashdot | technorati | digg

Metadata, CAS and the future of Digital Photos

Sunday Dec 09, 2007

I have my new Adobe Photoshop Elements 6.0 up in the background and I am currently working away at tagging all of my pictures. Get this, I have 8,477 digital photos since I started taking them around 1997 or so with my Kodak DC120.

Here is a picture from the Kodak, I was trying to figure out how well the camera processed different color bands.

I have a few scanned photos from before that and, in fact, I went on a scanning binge this Summer with old pictures my Mom had sent me...of course, I have lost those already and have to re-scan them.

My newer Canon Rebel XTi is very cool. I can't say enough about it. Finally a camera that I feel replaced my 35mm (Canon Rebel as well). I have a few lenses for it and am still practicing like crazy. My friend bought me a kick-butt lens for it, 67mm front opening and a fixed f/2.8 aperture. Here is one of my favorite "technical" pictures so far (not to say I don't have a growing library of pictures that I love too...more on that in a minute).

Back when I used my Kodak, vendors hadn't realized the importance of a non-proprietary format. The Kodak recorded images in a ".mix" format. These days its hard to find software that recognizes those images, .mix has not stood the test of time. Generally, vendors have learned from their lessons. Oh, wait...more advanced cameras allow you to take pictures in a RAW image format, this is an unprocessed, uncompressed image that is basically like a digital negative. RAW formats generally suffer the same limitations as those early picture formats, you are often tied to the manufacturer's software to edit the RAW images, then convert them to something like a JPG.

Today was the first real sled day here in Colorado (at least in the Denver-metro area). I tromped out with my camera and kid in tow and snapped a few shots. When I say a few shots, I mean about 150. Here is one from the zoom lens.

Now, let's talk storage. I wouldn't even rate myself an "amateur photographer", I am more like a "every few weekend" photographer. Still, I have racked up 1,000s of pictures, and the flood-gates have opened with my new camera. I have about 40GB of photos today and the challenge of maintaining them is growing. Here are my current set of challenges:


  • Backup

  • Search and Retrieve

  • Picture Format Compatibility

  • Printing

There are more challenges, of course...like taking a good picture...but let's stick to the above. Reading a book like Photographing the Landscape: The Art of Seeing by John Fielder makes you realize what an art a camera really is.

So, here is how I am tackling my challenges with some technology tips for storage and folks like me...please feel free to let me know if you have additional tips, I can always use pointers.

Backup
Simply put DVDs don't work. I just don't like fiddling around with everything. So here is my current home-grown process.


  • Download pictures to my laptop
  • Take a pass at processing the photos (initial edits, ratings, etc...)
  • Convert favorites from RAW to JPG (to share)
  • Copy all of the pictures to a second computer

Then, every couple of weeks I copy the photos again using the Areca Backup Software out on SourceForge.

Now, I haven't experimented with it yet, but Adobe Photoshop Elements 6.0 finally has an online backup facility built in. Trust me, we are all going here sooner or later. Its crazy having all of your memories on a hard drive. And, further, if you think you will have to leave your house in a hurry some day (just ask folks in San Diego about this), you better have them on your laptop or on one of the new external drives. Semi-professional and professional photographers even build their own storage networks with JBODs and systems as storage heads. The The DAM Book: Digital Asset Management for Photographers is a great reference if you want to see an outline of putting together your own system for archiving.

Search and Retrieve
Search and retrieve is becoming my biggest headache. Thankfully, I was reading The DAM Book... as I started encountering this headache. Basically, your memory will fail and you will start losing track of your most treasured photos.

Here is the key: metadata, metadata, metadata.

Adobe Photoshop Elements has been worth every penny I spent. I rate the pictures and add tags to all of my pictures that will help me locate them in the future. I use top-level classes of People, Places, Events, Sports and Other. The Places are cool as there is built-in geo-tagging so that all of your pictures for a particular place can be found on a map (as long as you are Internet connected).

The DAM Book had additional guidance for tagging that is very useful (like how to effectively use the * ratings). Now rather than searching around folders that I think were around the date that I took a picture, I simply click on the tags, put in date limits and figure out the quality of picture I'm looking for, a nice spread of pictures is displayed.

The investment in tagging my old pictures has been heavy and I'm still not done, but metadata is the ONLY way to manage your pictures. In my opinion, the XAM initiative is going to be huge, it basically makes this type of metadata search and retrieve the "top-level" storage primitive. Today, my metadata is heavily tied to Adobe Photoshop and the application. With XAM, applications use standard APIs for querying objects rather than files. My prediction...XAM or something like it will be a part of every major operating system within 5 years, making the storage primitive that of a Content Addressable Storage (CAS) device. With CAS/XAM type APIs, applications should be able to share the metadata and content rather than having it tied to proprietary "sidecar" files. Further, a good XAM implementation should let you use the information as standard files if you are really tied to your file explorer.

Picture Format Compatibility
My Canon's RAW format (.cs2) is thankfully compatible with Adobe Photoshop Elements. So I can edit my RAW files directly from the application. There is only one set of filters I'm missing which would be nice to have, but I'll survive.

But here's the thing, there is an open format from Adobe that is extremely interesting, it is the Digital Negative (DNG) format. It is sort of like a TIFF file, but open and with much more information packed in. The files end up about double the size of your original RAW file, but for a storage archive, DNG files make a lot of sense. The contents are still "RAW" but have been moved to a standard format that can withstand the lifetime of a digital camera (RAW files have no guarantee to live past the life of a particular camera or brand, thus giving you a potential headache when you switch cameras). DNG is not ubiquitous yet, so often times you cannot read the DNG file from software (other than Adobe's).

Still, my $$$ are on DNG to be ubiquitous in the coming years. I have not converted all of my files yet, but the day is coming...once I have them all tagged ;-)

Printing
Finally, printing. Let me give you a tip. Use your photo printer sparingly, it is simply not worth it. When you add up the cost of the printer, ink, and the headaches and combine it with the limited options of your home photo printer...just forget it. I can get $0.10 prints from my local grocery store now. I literally upload them, tell them to print them, and I can go pick them up in an hour. Its amazing. The quality at the grocery store was "OK", not exceptional...but your local photography store allows you to do the same thing. I print at a photo store by the mall for some even better prints...they are about $0.20 a piece for a 4x6. Kodak's online site kicks butt too, those come in the mail in a couple of days and the quality is incredible.

But here's a tip I learned the other week. The image sensors on the Canon's (and other dSLRs) blow up at a different ratio than a pocket camera. The dSLRs have an 8x12 ratio with no crop whereas the pocket cameras have an 8x10 ratio. I have only found one site that does 8x12s, SmugMug. The pictures arrived after a couple of days professionally packaged and looking exceptional. The price was pretty good too...there is a fee to be a member though whereas Kodak is pretty much free if you order something once a year.

And that, my friends, is a blog post that is way too long but has been eating me up for a long time.

Paul

[2] Comments
Like this post? del.icio.us | furl | slashdot | technorati | digg

Street Direction Savvy vs. Being a Good Driver

Monday Oct 29, 2007

Whenever I'm doing architecture or talking to managers and such about projects, I always have a collection of metaphors in my head. I've always wanted to pull this particular metaphor out at a party but I've never had the right moment, so I decided to put a blog together about it since it is one of the architecture tools I carry around in my toolbox.

As with all metaphors, there is the danger you take it too far so...let me know if I've done that :-)

In practicing architecture and implementation and especially discussing project planning with people I encounter situations where a distinction is necessary between Street Direction Savvy (best thing I could come up with) vs. what I could probably term as simply Being a Good Driver. What's the difference you may ask?

In the real world, we spend a lot of time teaching our kids the mechanics of driving things: a bike, a skateboard, skis, and eventually a car (by the way, I believe the legal driving age should be 31). The parallel in programming is a person that has spent a lot of time learning the mechanics of a language or a specific part of a platform: Java 2 Enteprise Edition, Web Tier User Interfaces with AJAX, Database Engineering (by the way, I believe the legal age for use of Java 2 Enterprise Edition should also be 31...ITS A JOKE).

(Image linked from eHow)

One thing you quickly realize when you start to drive is that the technical ability to drive something does not make you an expert in getting from Point A to Point B. What's worse, the shortest path from Point A to Point B is almost always mired in complexities such as what you are driving (using a bike to get between points may yield an entirely different route as compared to a car) and what time of day it is (traffic often sends you onto side streets at particular times in the day). Further, what you know how to drive often forms your decisions on how to get between the points (knowing how to drive a bike and then learning how to drive a car yields some remarkably inefficient ways to get between points...often including driving through a neighbors yard (this is frowned upon when you have 4 wheels and 2,000 pounds added to your vehicle)).

As a result, you develop street savvy that goes with the context of what you are driving. Bringing this back to engineering, I like to think that architecture is all about street savvy and the better you know how the architecture is to be applied (how to drive) the deeper an architecture can go. Not only can I provide a map to the engineering teams, but I can also tell them specific platform decisions rather than just wave some boxes and requirements of those boxes at them.

Interestingly, some people never learn how to drive things but they have remarkable street savvy. Other times we are asked to have street savvy but we don't know how to drive what the other person is driving...I was asked by one of the Project Blackbox drivers how to get from Point A to Point B and I was like "are you driving your semi or your car".

This happens all the time as an architect. You end up applying the knowledge of something else that you learned how to drive that is similar. For example, an architect with experience in Swing and Designing User Interfaces may have a valid estimate for a team that is building an AJAX user interface. More importantly, I feel, is that the architect has to be sure to inform people of the differences in various tiers and platforms. Many times you are asked about an individual and whether they could fill a role on another team. People with driving savvy in one tier are often not useful in another tier if they haven't learned quite a bit about street savvy. Someone that has spent their entire life writing scripts in perl may not be helpful building an AJAX Web User Interface, yet it is a time honored tradition that management asks the question of whether the perl programmer can fill a role that needs immediate filling in the UI tier.

More than anything, I believe you are morally responsible for the information you give to people. So why not be transparent when you tell a person that your estimate to get from Point A to Point B is based on a map built for a bike rather than a map built for a car. Also, when asked about resources, feel free to ask questions about the person if you are not fully informed...if you've known someone only in the position as a database engineer, ask if they have experience in the user interface tier and what type of projects they've worked on. Ask if they understand the abstractness of languages and not just a language, this can be a big help...we all know that someone that understands a clutch and how to drive a particular manual transmission will probably be quicker on the uptake of another manual transmission since they get why they are pressing the mysterious third pedal down.

The metaphor works if you think about, enjoy...and let me know if there is a party around that I can use it at or if I can refine it a bit more.

Like this post? del.icio.us | furl | slashdot | technorati | digg

Rockies in the Series - Whoo hoo!

Tuesday Oct 16, 2007

It was a LONG night last night at Game 4 of the National League Championship Series (NLCS). BUT, it was worth it, the Rockies swept the D-Backs to go into their first world series ever! We compiled a TON of pictures, here are a few:

First pitch!

Last out!

The end of game scrum!

The Rockies pulled this off with a payroll in the Bottom 1/3 of the league (along with the Arizona Diamondbacks and Cleveland Indians). Only the 1-game behind Boston Red Sox are in the top of the league in terms of spending.

Pretty amazing to think the Rockies were one strike from wrapping up the season a few weeks ago.

I guess the lessons are


  • Money does not equal success
  • It takes a team to succeed
  • The game is not over until the last out
  • The season is not over until you are at home watching the World Series

Yes, the photos are a bit blurry...we were above the purple seat line (indicating 1 mile elevation mark), so yeah...could have been better seats but it was worth it!

Go Rockies!

Like this post? del.icio.us | furl | slashdot | technorati | digg

Sha - XAM (Fall SNW)

Thursday Oct 11, 2007

My team delivered an end to end prototype of the Version 0.65 XAM API (XAM is the eXtensible Access Method) to the SNIA XAM SDK TWG today for use at Storage Networking World in Dallas next week.

Its pretty exciting, our Sun StorageTek 5800 Storage System already has a client API available from the Sun Download Center and is in the process of moving to OpenSolaris as a first-class project.

XAM helps to standardize the architecture of the API as well as specific language bindings for the API. With the architecture and API specifications at 0.65 to 0.69, there is obviously going to be changes to the architecture and APIs as it moves closer to release. Still, it is a great start with obvious promise.

The API itself is worked on by a broad range of companies that provide storage solutions (EMC, HP, not to mention Sun Microsystems). Application authors are also a part of the TWG membership to ensure there is an end to end view of the architecture. The XAM Architecture itself provides a top-end API for application vendors as well as a bottom end API for participation by storage vendors. Within the architecture are query capabilities and standardized properties that are a part content addressable storage systems.

I know this part may bore a bunch of folks, but here is an example of submitting a query that returns a list of all XSet objects (objects that contain metadata and data) residing on a storage system.

String sQueryCommand = "select .xset.xuid";
XSet qXSet = sys.createXSet(XSet.MODE_UNRESTRICTED);
qXSet.createProperty(XSet.XAM_JOB_COMMAND, true, XSet.XAM_JOB_QUERY);
XStream vXStream = qXSet.createXStream(XSet.XAM_JOB_QUERY_COMMAND, true, "text/plain");
vXStream.write(sQueryCommand.getBytes(),0,sQueryCommand.getBytes().length);
vXStream.close();
System.out.println("Closed query stream");
XUID queryXuid = qXSet.commit();
qXSet.submitJob();

The results get stored in the qXSet and can be read. The application can then go back and talk to each separate XSet for more information about it or to grab content from the object.

So, as you're milling around the demo area next week at SNW, look for one of these:

and be sure to drop in on Mark Carlson's XAM talk on Monday from 10:15 to 11am.

Like this post? del.icio.us | furl | slashdot | technorati | digg

Taking a few mins...

Tuesday Sep 25, 2007

Sometimes you have to take a few minutes and chalk up one of those things you have always wanted to do. The interesting thing about digital cameras (combined with Google) is that they give you the ability to "compress" the learning cycle. Something that would have taken a person months and a ton of money to learn about now takes a week and a good memory card (oh, and lots of hard drive space). Of course, it is probably not as gratifying which gives our society the ability to catch up with our predecessors but continue to build...standing on the shoulder's of giants.

With that, here is a shot of tonight's full moon (I missed the picture of the werewolf in my backyard...sorry).

The shot was done with a Canon Rebel XTi with the following:


  • F5.6 Aperture
  • 1/250sec Shutter Speed
  • ISO 100
  • Focal Length 300mm

Enjoy :-)

Like this post? del.icio.us | furl | slashdot | technorati | digg

Pneumothorax Recovery - 2 Month Recovery Diary

Wednesday Sep 12, 2007

Just to recap: 4 Spontaneous Pneumothoraxes in under a month (frequent enough that I called them "not so spontaneous pneumothoraxes"), 2 thorocoscopies (surgeries that go in and staple your lung then permanently "glue" it to your chest cavity), 6 chest tubes, 4 hospital stays, and 2 sessions of "aspirating the air and liquid" under a CAT scan machine. Its been about 2 months since my last surgery and try as I might, I haven't found ANY decent descriptions of recovery periods on the web.

So, I'm going to deviate from my normal "blog tenor" to document some of my own recovery. To start with, though, a few notes:


  • Everyone is different, listen to your Doctor and your body
  • My case appears to be much worse than the normal pneumothorax, so what I say may be worse than what you are going through
  • I fully cannot understand why someone would choose to wreck their lungs with smoking or any other lung-destroying activity...

So, two months along, I just came from a checkup with Dr. Hofer. I still have 200cc's of fluid (approximately) in the bottom part of my chest cavity. The fluid comes from the irritation and scarring of the lung to the wall of the chest cavity when they put in the sterile talc...gross huh? I've been very, very careful over the last couple of months...I have 8 obvious scars along my side from the procedures and innumerable other holes from needles from the aspiration sessions. My first 3 weeks after the second surgery were completely miserable. Lots of fevers, very uncomfortable laying down, and a favorite chair to lay in. As of right now, the fevers are long gone and I got myself off pain medication as quickly as I could and onto Advil. After about 3 weeks I was off the Advil completely and by now I've been Advil-free for quite some time. Discomfort still reigns, I've switched from sleeping on my back prior to the surgeries to sleeping face down...the weeks after the surgery I slept on my back but propped up on pillows. If I do one of those "half runs" where you are late to school to pick up the kids so you sprint out, I have to stop in about a block cause it feels like someone is squeezing the bottom part of my lung, yech.

Around a month I went out for a bike ride, 7 miles total. I'm not a biker at all so it was a change of pace. I went on a road bike but switched to my mountain bike for the next time out. I am usually a jogger/runner, but the biking was a lower impact and the mountain bike even lower. My first few bike sessions I came home with a "stitch" in my side and I had to do some serious sleeping. In all, I've done about 4 7 mile sessions, a 20 mile session and a couple of 12 mile sessions. The bike is where its at for athletic recovery in the first few months...I'll tell you that.

I have seriously thought about giving up running altogether, but for me it is a nice release. Further, to do an apples to apples comparison on my recovery, I figured I had better do some running. Dr. Hofer gave me the thumbs up for running today so I was off to the races. To give you some idea of where I'm at, prior to the first thorocoscopy, my "inspired volume" for my lung capacity was around 4,250 mLs. Now I'm around 3,000 peaking at 3,250. I am also seriously out of shape. My weight also dropped precipitously to below 135, I was 142 before the surgeries and now have a goal to push my weight to a more healthy 155 or so. For those of you who do not know this, skinny does not equal healthy and skinny does not equal in shape. My goals for my first run were pretty simple:
- Jog over a block
- Keep my heart rate down in my normal running range (approximately 155) and go as slow as I have to for maintaining it
- Stop if I hurt at all
- Don't push it

To be honest, the recovery is going to be as much mental as physical. I've turned into a complete lung hypochondriac...

It turns out I did FAR better than I had hoped:
- I jogged about 5k (a little more). I promised I wouldn't time myself but to give you a ballpark, my Bolder Boulder time (my personal best) was 10k in 42 minutes...I ran my 5k today in about 35 or so minutes...so not fast, but steady
- My heart rate spiked towards the end to 172...ouch, I pulled up at that point and walked. The recovery period was very long too. A high heart rate probably reflects both my lower lung capacity and my being so out of shape
- I didn't hurt. After the first block or so that eery feeling of someone being inside your chest squeezing part of your lung was basically gone...for the first time in months! It did feel creepy on my right side still, but the glued up lung is supposed to not be felt at all. Dr. Hofer mentioned the nerves are pretty messed up on my right side so these feelings are to be expected. In some cases for my rather long hospitalization, he is saying about a year to be completely back to normal "nerve" wise.
- I didn't push it, 5k was good and not too much

And that, my Spontaneous Pneumothorax buddies, is the 2 month recovery diary. There are more people than you think who have been through this, so don't be shy about talking to people. As far as I can tell, everyone has recovered fully, even with the glued lung!!!!! Feel free to email me if you want to know some more about what I'm going through to help yourself, or if you want to sponsor my recovery (I'M JOKING).

Like this post? del.icio.us | furl | slashdot | technorati | digg

Wi-Fi Wiki Space

Wednesday Sep 12, 2007

All right, I'm over my frustration from yesterday's Starbucks incident. I realized that the search for free Wi-Fi hotspots is always full of adventure. Tables are always full at the good Wi-Fi spots and in other places the Wi-Fi seems crippled or simply well out of range due to the size of the location.

I'm a big fan of Free Wi-Fi...free as in beer...so why not create a place where folks can participate in creating an up to date listing of hot spots? I know even some towns are one big hot spot (I believe Fort Collins in Colorado is one of these, but I'm not going to plug it in until I've tested it in a few weeks).

As such, I've created the Free Wi-Fi Wiki. This can help some of us frequent travelers or work-from-home people get out and participate in the world and embrace those that are bringing the network to the people :-)

I know, you've found a "secret" free hotspot and you don't want everyone to know about it since you have your own comfy chair and you don't want someone to spill coffee on it or break the springs. Well, you don't "have" to give it up. BUT, I would ask that if you do use the Wi-Fi Wiki ever, to find a free hotspot to plug in...even if you keep your favorite a secret ;-)

Like this post? del.icio.us | furl | slashdot | technorati | digg

Starbucks, Your Brand isn't Worth $9.99

Tuesday Sep 11, 2007

I decided I would get out of the house today to do some more work on the XAM stuff I'm doing. I have a nice setup at home and I get to avoid the long commute, save a little gas, yadda yadda yadda but some days you just have to leave for a few minutes to regroup.

So, I decided I would wander over to Starbucks and bring up my NetBeans IDE to do some coding. I grab a coffee, grab a chair that 5,000 people before me sat on so there is no telling what is in the crevices, and I pop open the laptop. Gack...they are still partnered with TMobile. Guess what? My account was "cancelled" by them and they want me to call customer service (probably otherwise known as "the Sales Department"). I surf around a bit and they still want $9.99 for a day pass.

Listen, Starbucks, it is easier for me to get up, move my butt down the street and get a faster and more reliable Wi-Fi connection for free. Further, the Starbucks brand no longer demands a premium for "coolness" since the market is saturated (600 Starbucks in the San Francisco area...you have GOT to be kidding me), so its not even COOL for me to be sitting in Starbucks working, it is far cooler at the Tattered Cover or even Panera.

So, for me to get a few minutes of work in (for which I DO buy coffee, yogurts and other stuff since I come in before Breakfast), you want me to


  • Purchase a few things at your store
  • Drink McDonald's-like Coffee that tastes the same every day, day in day out with no different flavor and no personality
  • Pay $9.99 for a day pass that I will use for maybe an hour while I eat Breakfast
  • Actually "talk" to the TMobile Sales...err...Service people that deactivated my account
  • Not support my local businesses that have free Wi-Fi (I know Panera isn't local but the Tattered Cover is)

Listen, it doesn't add up! It is just not cool to carry around a Starbuck's cup, it is just coffee, coffee I can buy at approximately 200 other places in the Denver area. And paying over $17 (TMobile + Food) for the privilege of Starbucks just doesn't add up anymore when I can take $10 off by going to one of the other myriad of places that have Wi-Fi. Heck, I could go to the hospital again and get free Wi-Fi (would insurance help me out on that one????).

And if you want a clue why your U.S. expansion is stalling, it doesn't take a brain surgeon to figure it out. And, frankly, the iPhone partnership isn't going to help you. Get out of the TMobile partnership, get some food that isn't stale and unappealing, get some hipness...you're a dinosaur.

Wi-Fi is ubiquitous. What is a brand worth to a consumer when that brand has hit the saturation point? I'm not a genius, but its not $17.

[2] Comments
Like this post? del.icio.us | furl | slashdot | technorati | digg

CPU and Storage all the way down

Tuesday Sep 04, 2007

This weekend I had the privelege of finding the last campsite in all of Colorado. I went to Stillwater Campsite in the Arapahoe National Forest area, just down the road from Rocky Mountain National Park. Everything was spectacular about the entire trip, and I had my Canon Elph along for the ride (I bought a Canon Rebel right before we left but...forgot the battery!!!!!!).

The panoramas in the Rocky Mountain National Park area are fantastic.

If you haven't dug into your latest digital camera + editing software, you may not have noticed a little feature that is called something like a "photo stitcher". It basically allows you to take a series of photos and stitch them together into one large picture, like the one here:

The original source is much larger than what I show above (9448x1823 to be exact) and is stitched together from a whopping 5 pictures taken in a line across the horizon. If you like the above picture, it is a scene off the roadside in Rocky Mountain National Park. Long's Peak (a 14er) is on the right side of the shot. Is it a good picture? I don't know, you can decide. Fortunately for you, if you are in Rocky Mountain National Park, you actually have to try if you want to capture a bad picture.

What is particularly interesting to me is the number of processors and the amount of intelligence that is inserted between the original captured content and the final printed result. What we are witnessing is the increasing encroachment of system and application intelligence in the path of the data content. This is occurring everywhere, from the smallest of devices up to the largest of storage systems. Further, companies that can insert applications along the datapath can do a great service to the consumers of the content along the way. My stitched together photo is a perfect example.

Start with me standing on a ridge in Rocky Mountain National Park. I would LOVE to have the entire panorama I'm seeing in a single picture, but my lense simply won't allow it. Enter the "Stitch Assistant". Instead of my camera being a light capture and store device, it is a light capture, process, store and assist device. Using the stitch assistant (that my friend found for me), I was able to take the first picture, and my camera would show the edge of that picture so I could line up the next picture with some intelligence. Not only that, it would keep the photos organized so that they are easily found and accessed on the SD card.

Next, I upload the pictures to my laptop, where there is more storage and CPU processing. The Canon software takes the images that were grouped on the camera and stitches them back together into one large panorama, crops it, and stores it as new content. Now comes a FATAL flaw in the Canon Software, there is no built in uploader to online content repositories.

So, I bring up Kodak Easyshare or the SmugMug uploader and grab my panorama (SmugMug is actually proving to be easier). SmugMug then processes the image AGAIN on the way into their content repository and transforms it to thumbnails and metadata. Finally, I choose to print my panoramic view (here all of the storage services fall down, they give the traditional sizes for printing (4x6, 5x7, etc...) and don't tailor their services to us budding panoramites (I would love to choose a picture and have them create a custom size for me that best fits the picture).

Think about this, every storage operation was preceded by application intelligence that made meaningful transformations of my content. With better programmers and more time, the storage operations could become far more intelligent as well. For example, there is absolutely NO reason that my pictures that I used "Stitch Assistant" on shouldn't have been weaved together into a single panorama when my pictures were transferred from my camera to my laptop. The storage operation itself should be able to apply meaningful application logic to the process.

Where these transformations take place will be dependent on the particular application. For example, the Canon Camera uploader is a natural place for the stitch assisted photos to be re-stitched because of the lack of CPU on my camera and the lack of standards for metadata in images. Had my camera more CPU, the camera itself could do the stitching. If images had standard metadata about what picture in the series was what, you could push the stitching into the storage device itself (you would store 5 pictures and get 6 back in your folder!). Even the Operating System could add the functionality.

Each step of the way has distinct advantages and disadvantages. More and more we are going to see application logic being placed in between the capture and raw bits of our digital life. It just makes sense that our storage devices should be able to do some work on our behalf. Further, these abilities are going to creep into our lives almost unnoticed...except by those companies that are enabling these leaps in customer functionality, like Sun Microsystems :-)

Like this post? del.icio.us | furl | slashdot | technorati | digg

Happy Birthday to the CD...not many left!

Friday Aug 17, 2007

A shout out to the birthday...thing this weekend, the Compact Disc (CD), congratulations on your 25th birthday! Ahhh, I have plenty of reminiscing about vinyl on my blog as I rip my vinyl to my hard drive and then, yes, burn the MP3s onto CD to play on my car stereo (when I don't have my iPod with me).

My first CD? Well, I believe it was 10,000 Maniacs In My Tribe purchased while I was in college at Winona State University, circa 1990 I believe...its so hard to remember. By the time I was done with my undergrad I had all of the essentials (Dire Straits Brothers in Arms, Cowboy Junkies Trinity Sessions, a Pink Floyd or two, etc...).

My last vinyl album (to date) was Son Volt - Trace, I still have it unopened, the CD was good enough at the time.

The CD is one of those ubiquitous technologies. Consider how far usage has crept. From ABBA and Dire Straits recordings to a backup technology. The CD squashed use of cassette tapes. CDs don't get warped and all funky when you set them on your dashboard or toss them into the back window of your car (at least...not very often). The record industry certainly didn't like cassettes, but the lifetime of a cassette was about 1 year in my hands and the quality of the recording between vinyl and cassette was lacking at best.

Once CDs became home recordable, look out record industry!

But think about that transition. When the recording industry went from analog to digital, it made the transition from (basically) an infinite number of data points to recreate the music to a finite number of bits. With the CD, you could actually treat music as little magnetic pieces, what a revolution. Once home media moved to digital, the flood gates opened (though it did take a while) to migrating that content to other media and leverage growing CPU power and bandwidth to migrate it around. Time and time again the record industry has been caught off guard and fearful of the natural evolution of media and transmission that CDs ushered in.

As the price of record able CDs dropped, diskettes became challenged to deliver more capacity for computing, but the drop off in diskette sales was inevitable. CDs became too cheap, too fast, and ushered in massive recording capabilities for data (not just music).

Today, I rarely use the original CD in my life. I buy them, rip them to a portable format, then burn them back onto record able CDs that I can use in my car and put them on my iPod. I use CDs to back data up and go through them like crazy when I'm building boot media for my Solaris Nevada builds.

This next part is for the ears of the CD only:

Unfortunately, I must also declare the coming death of you, the Compact Disc. You have certainly aged well, I won't deny that. You'll be around for a few more years but you are starting to remind me a lot of that 3 1/2" diskette format that held on for dear life trying to cram a few more K onto it. Frankly, my USB keys and the network are replacing you faster than you can say the word DVD...heck, the DVD format wars have barely finished and they are already being replaced.

Heck, its hard to even find you at conventions anymore, USB keys have all but replaced you. Maybe you didn't notice, but AOL hasn't even delivered me a CD in YEARS (my last mailing was a DVD if I remember right and even that was about 2 years ago).

Now, if one of these storage utilities would host some boot images and tell me how to boot my laptop from it (after a small stub loads my wireless driver), I would be DONE with media...buh bye.

Still, I will keep of spindle of you around at all times, at least for the next two years until I replace my car stereo with one that has a USB jack (HELLO CAR STEREO MAKERS...WHAT THE HECK?) or an iPod with Bluetooth with a compatible car stereo Bluetooth interface.

Like this post? del.icio.us | furl | slashdot | technorati | digg

Wikis Solve World Hunger (and make coffee)

Wednesday Aug 15, 2007

As you know, Sun launched wikis.sun.com earlier this month. I even have a public space I'm working on for Storage System Patterns and some private spaces I'm participating on.

Personally, I've been in and out of the Wiki world for over 5 years. A co-worker at J.D. Edwards used to expound endlessly on how Wikis were going to change the world. Oddly enough, Satish was right in many ways...some wikis have changed the world! Other wikis just stink. You know, to misquote a famous politician: "It's the content stupid".

Before you get to content though, you also have to be careful to choose the right tool for the job at hand. Here's an example. Let's say that I have 100 Business students (most of whom have only used iTunes in their life) at a college that need to learn how to run business applications in a Solaris environment. As a school administrator, I'm left with two options:


  • Sign the students up and let them come into the classroom and communicate together in an attempt to learn the new CRM system
  • Sign the students up, assign a teacher well versed in Solaris and CRM and let them teach the class...facilitating comments and questions from the students as they go

This is a no-brainer...if you want to promote pirating of movies, choose the first one, if you want to teach the students something, choose the latter. Why? Your community (Wiki) will get hijacked to serve the desires of the community that you assembled. This desire is clearly NOT Solaris and CRM...these are business students. The latter (a Blog) is NOT a community that can run amok, it is a soapbox discussion that is directed towards the assembled readers with tiny spaces during the day to facilitate comments. The comments rarely rise above the importance of any lecture and, in fact, relate only to that lecture (a blog post).

There are a couple of other avenues for content these days that put things onto the web:


  • The venerable static web page content / update (no participation facilitated)
  • Group blogs (very, very useful for teams of people that all have something to say but don't want to collaborate), everyone gets to have their own soapbox.

There are more, I'm sure, but I wanted to keep this short and sweet. Here is another way to think about these things:


  • Wiki - Group barn raising, you probably have a "moderator" cleaning up loose ends and directing people, but you live and die by the workers building the structure, not by what you produce as an individual. Some BIG downsides of Wikis are the "group" mentality for page formatting and design and when individuals try to hijack a barn for themselves
  • Blog - A single person's soapbox, like this one. Blogs aren't about "participation" so much, they are about easy publishing, quick ways to get information out, and directed comments back about the particular topic.
  • Email Lists - Ahhh, email lists are HUGE...they are immediate and targeted with even less formatting issues. Long live the email list. This is a great "forum" avenue.
  • Static Web Content - Publish

This is clearly, clearly a simplification of life. BUT, I often have these conversations when I start educating folks on the differences in various avenues for publishing content. The barn raising, soapbox, publish metaphors seem to hit the spot pretty well.

Like this post? del.icio.us | furl | slashdot | technorati | digg

Google Storage Offering / Microsoft SkyDrive

Monday Aug 13, 2007

I don't think anyone would argue that Google is one of the masters of Web 2.0. One thing that Google does particularly "Web 2.0" is the Perpetual Beta. They release code early, they release code often, and more often than not, the application is a glimmer of what "could be" rather than the all-conquering application that is.

Google's Storage Offering is one of those things that could be. With the wealth of APIs available (including a Google Data APIs, Google Web Toolkit and a Picasa Web Albums Data API, the new storage offering has more than enough potential for conquering the world.

But, lo and behold, true to the Web 2.0 roots, the first outing for Google's Storage Offering only "integrates" the Gmail application and the Picasa Web Albums storage (so that both applications can access the same storage). Obviously, Google is moving to a consolidated storage / application model rather than separate stovepipes...though I have to question making people pay for this feature (free storage in the two applications is still stovepiped). In addition to "integrated" storage, you also get more storage.

So, as of right now, the model for Google Storage pricing is different from Amazon.com's pricing. In a way, this is an apples to oranges comparison as the accessibility of the storage is different (Google is accessed THROUGH an application and Amazon is accessed BY an application). I can ONLY assume that there will be parity in writing to a data API at some time (though I believe the capabilities of the data API will be slightly different).

Recall that Amazon.com's pricing is $0.15 per GB per month with a bandwidth price of $0.10 / GB data transfer in and tiered pricing for data out ($0.18 for < 10GB,

The cost of Google storage is $20/year for 6GB, &75/year for 25GB, $250/year for 100GB and $500/year for 250GB. Because there is no "application" API at this time, it makes sense there is no bandwidth charge.

Its very, very difficult to make a comparison here, but at the 6GB cost per year (assume 12 GB of inbound data and maybe 18GB of outbound data), you end up with $20 for Google and $15.24 for Amazon.com. But, again, what you can do with that storage is radically different so its really not even a fair comparison. Today, you would choose your provider based on your needs (do you use Google apps, then buy storage from Google, do you want to write an application that requires storage, then you would use Amazon.com).

Will Google give access to the storage from the Google Data API, I have to assume so...some day.

Architecturally, if you make the assumption you can switch from Amazon.com as your application storage provider to Google storage at some point in the future, you will need to build an adapter/model layer in your application so you can plug in the Google API as a target (assuming there is a level of parity in the API capabilities).

Finally, I have to briefly mention Microsoft's SkyDrive Beta. SkyDrive is a web-based application that you can sign up for with a Microsoft Live Account. It provides 500 MB storage with a web-based interface for dragging and dropping files. There doesn't appear to be a CIFS API yet for you to mount it on a machine and use it seamlessly, but you can almost guess this is in the works. But, keep in mind SkyDrive is just part of a suite of applications for sharing that Microsoft Live puts out (also includes a Photo Gallery, Blogs, EMail, Maps, Search, etc...). Its pretty obvious when you put the storage offerings from Google and Microsoft in perspective, they are simply ways to enhance their web application/desktop efforts! Microsoft Live + XBox 360 can extend Microsoft into your living room, is Google looking for this extension? (Remember, Amazon is already in your living room with its movie service via Tivo).

Perhaps a year from now, we will be looking at two different "APIs" for accessing your online storage utility:
- CIFS/NFS for use with normal File I/O libraries
- Application-aware interfaces (such as Amazon.com and our own StorageTek 5800 Storage System)

Where will Google land (if it lands?), both? Data API and CIFS/NFS?

The next few years will prove interesting as the apps and storage come into your house via so many different access points (consoles, phones, PCs, DVRs, etc...).

Wow, somehow an apples to apples comparison of storage utilities (of course, by definition, the only "storage utility" here is Amazon's) turned into an online application blog post?????? What's with that?

Like this post? del.icio.us | furl | slashdot | technorati | digg