on Nov 30th, 2011Waterproof Samsung Windows Phone?

No, this is not an inside scoop on some new technology, rather an experience report on full submersion of a powered on cell phone.

The other day my 8 year old son and I were down at the beach skipping stones and chasing ducks. Said son, being the adventurous type, was wading out in the water about 5 feet off-shore when he spotted something shiny.  I suggested he pick it up. Lo and behold he came up with a sparkly AT&T Samsung Focus Window Phone.

We had no idea how long it had been there. We looked around at the people on the beach to see if anyone was frantically searching for something. No one. The screen was blank and I didn’t want to try and turn if on so, we took it home to figure out what to do.

On the way home we speculated about how the phone could have gotten there.  The water is pretty shallow and boats don’t get that close.  It’s too far away to have just fallen out of a stroller’s pocket.  There’s no tide and the water level is consistent so the distance to the shore is constant. It could have been throw (but why)? Perhaps it had been there a long time and some summer tourists dropped it while swimming?

At home we decided to open it up and see about drying it out with a view to turning it on and finding the owner.  Amazing how much water that little block seemed to have in it.  After getting the easy parts out (battery, sim, …) it became apparent that there was more water underneath the circuit boards. I found a great step by step disassembly series on TechRepublic. Within about 10 minutes my son and I had the phone in pieces on the kitchen table. We stopped short of separating adhesive bonded parts as we wanted to re-assemble and operate the phone.

After soaking up the obvious water we looked for someplace warm but not too hot for it to dry. Our new oven has a “Proof” setting that is used for rising bread (about 100F).  Hmmm, not 100% sure on that one.  Heat register?  That could work but small parts, kids, cracks, … Not a good combination.  In the end we opted for putting on a small piece of paper on top of the cable TV box.

I checked it the next day and it seemed dry but I figured a bit more time would not hurt. After about 24 hours of drying we reassembled the phone, put in the battery and turned it on.

Well, whaddya know?! It booted up just fine.  About 1/5th of the battery power left — it could not have been in the water that long. Unfortunately the phone was locked with a pin code so we could not immediately find the owner. Also, we could not test that it still worked as a phone.  Bummer.

I decided to call AT&T and see if they could locate the owner.  You’d think that this sort of thing happens all the time but the person I talked to said that they can’t do anything and that I’d have to take the phone to a AT&T store. Luckily there is one on the Microsoft campus where I work so I figured I’d take it in the next day at lunch.

Just before lunch the next day I plugged in (and turned on) the phone to ensure it had some charge when I went to the store (not really sure why but it made sense at the time).  Shortly there-after it buzzed with a text message. “Call me at 425 436-2”. The rest of the phone number was cut off and the phone locked so I could not see it. Sigh.  Then a little while later the phone rang. I answered but could not hear anyone. This time however I could see the number so I called it back. It was the owner, looking for the phone.

Working at Microsoft I see a lot of these phones around and figured the chances where high that it was a fellow ‘softie. Indeed it was. In fact, he worked for a former roommate of mine from 15+ years ago!  Small world.

Apparently he and his family had been at the beach a couple hours before us and, like us, were hanging at the water skipping stones with their kids.  Now, you just gotta imagine that a cell phone would skip real well…  Our best guess is that their 3 year old somehow got the phone, had that very thought, and flung it into the water unnoticed. Needless to say they were pleased to have reconnected with the phone.

We made arrangements to meet. When we did we tried out the calling and to our mutual surprise, it worked flawlessly. It would be interesting to see how long that will last or if some parts will start to corrode. Either way, I think its pretty impressive.

In any event, we had some fun dissecting the phone, they got their phone back, my son learned about “doing the right thing” and I learned that Samsung phones can take a licking. Not bad for a Saturday at the beach.

p.s., Later that week I bought a Samsung Focus S and a Focus Flash for me and my wife. While this was more because we wanted Windows phones, I have to say I was very comfortable with the purchase decision having seen what the phones can withstand.


on Jul 16th, 2011Moving to Microsoft

I’m very pleased to announce that I am joining Microsoft to help drive the architecture and forward vision for Visual Studio Pro. This is a very challenging role that underpins a product line spanning development for mobile, Xbox, Windows, server and cloud deployment. I’ll be building on my Eclipse experience, learning a whole raft of new technologies, and helping drive Visual Studio towards the next generation of development environments and platforms. Very cool!

Of course, this move means my focus will shift away from Eclipse. It’s been over 11 years of fun, learning, and great people. In that time the community and the technology have grown from a fledgeling open source Java IDE focus into a world-leading Java technology conglomerate spanning from runtimes to modelling to tools and beyond. I continue to believe in the power and potential of Eclipse.

Looking back, I have hacked tons of code, led teams, started projects, evangelized new directions, written books, explored business models, and generally had a great time. The software we created is used on space missions, bank servers, autonomous salt harvesters, a vast number of developer desktops, and countless applications about which we know nothing. I never would have dared dream all that when we started. It has been my honour and privilege to work with such a distinguished group of people and have such an impact on the world of computing. Thank you all for your contributions and camaraderie.

Of course, I reserve the right to show up at various Eclipse events and share a frosty beverage or two, find out what’s happening at Eclipse and talk about the things happening at Microsoft. Who knows, maybe there will even be some collaboration?! See you around…

on Apr 15th, 2011Monitoring monitors in Eclipse

I’ve been involved in Eclipse for over a decade now. While it is sometimes embarrassing, I continually find capabilities that I never knew existed.

The other day I was talking to someone and we were lamenting the challenges in debugging deadlocks. If only the Eclipse debugger would show us what monitors a given thread owned then it would be much easier to figure out who was blocking who…

Ian Bull pointed out to me that of course, there is such a capability.  As shown in the screenshot, in the Debug view menu (the menu you get from the little triangle in the top-right of a view) there is a Java entry.  Under that you can turn on Show Monitors.  Notice that it is on and in the stack trace we see that thread Worker-1 owns the P2TargetUtils monitor.

This capability has probably been there for years and I probably even read about it in a New & Noteworthy.  It likely was lost in a sea of other cool features.  I found it useful yesterday, you may tomorrow…

on Apr 1st, 2011What’s going on in Washington DC?

I have been looking at the Amazon sales stats for the OSGi and Equinox and the Eclipse RCP books and see that the Washington DC/Balitimore area is consistently in the lead for purchases of these books. We (the authors) have been puzzling over this but have not come to any particular conclusions.

So we thought we’d ask you.  What’s going on in Washington that is driving the interest OSGi, Equinox and RCP?

If you have any insight you can share, please post here.

on Mar 22nd, 2011RT BoF @ EclipseCon

Interested in using Eclipse and OSGi as a runtime technology?  Already doing that?  Come hang out with like minded folks at the Eclipse RT BoF at EclipseCon on Wednesday Tueday evening.  We’re shooting for the early slot (7:30-8:30). We are setup for the 8:30pm slot tonight. Go check out the OSGi BoF at 7:30, get some food and drinks then come next door and talk RT. See you there.

on Mar 19th, 2011p2 in RCP applications

To date, putting the Equinox p2 provisioning support into an RCP application has been a bit of a chore.  Witness the plethora of blog and mailing list posts detailing problems and how to hack the p2 features and bundles to make them work in RCP scenarios. No more!

Over the past few days the p2 team has been working to address Bug 333810. The bug was originally opened to point out that the org.eclipse.equinox.p2.user.ui feature pulled in too many things for RCP usecases. Indeed it does. It is supposed to. Despite its attractive name, that feature was/is meant for IDE scenarios. Until now, we did not produce a feature specifically for RCP scenarios.

In next week’s integration builds of Equinox and the Eclipse platform there will be a new org.eclipse.equinox.p2.rcp.feature feature. This new feature has all the great p2 function you need to install, update and manage applications without the bitter aftertaste of the extra IDE-specific gorp.

All you have to do is add that feature to your RCP product and away you go.

Read on if  you want a little more detail.

As you may know, p2 is actually a provisioning platform, not a provisioning solution. Over many years of dealing with people provisioning systems, one thing is clear, everyone wants it different. So in p2 we set out to create a platform that has all the pieces-parts you need to create a wide array of provisioning solutions.

We have failed however to make the easy case easy. The goal of this new feature is to do exactly that for typical RCP cases.

The p2 RCP feature yields a UI that is very much like the one seen in the IDE but without support for dropins folders, legacy update sites, repository tools, … and most importantly, with no dependencies on IDE things like Compare and Resources.

This is an easy-to-consume starting point for RCP provisioning solutions.  We fully expect that you will need to customize this. p2 can be customized in various ways. You can add/remove functional bundles as needed, tweak the UI, implement your own Policy class, etc. But these are all things that you only have to do if you want to. The new p2 RCP feature gets you up and running quickly and easily.  Enjoy.

BTW, if you want to know more about p2, its API and its use in RCP apps, check out the following talks at EclipseCon:

Of course, if you want to hear about some of our experiences with teams adopting OSGi, Paul and my talk on 10 (or so) signs you’re doing OSGi wrong. We promise you will laugh and may even learn something.

on Feb 9th, 2011Help us make Peter cry…

Unknowingly, today Peter Kriens issued a challenge — to make him cry. In his post Peter extolled the virtues of the up coming OSGi DevCon and EclipseCon conference. Referring to the talk from me and Paul VanderLei, he said:

If you want to be really entertained then the 10 signs you’re doing OSGi wrong by Jeff McAffer (EclipseSource) and Paul VanderLei (Band XI International) is always highly recommended. Two years ago I almost had tears in my eyes and I actually also learned a few things.

This was high praise (thanks) but also a challenge! “almost” Why almost?!  Clearly we can do better than almost.

We need to make Peter cry and we need your help.

In our talk at EclipseCon 2011 Paul and I are taking a light-hearted look at the mythology that surrounds OSGi and pointing out some of the warning signs that something is amiss in your project. One of our goals is to make this concrete with real code confessing the sins of real authors. To be sure, some of our own misguided practices will be unveiled but OSGi is an open community so it makes sense that your sins be included to.

You can help make this educational and interesting by sending us pitfalls and bad practices that you and your colleagues have encountered or committed. Preferably with code snippets or concrete examples.

Please comment on this post with pointers to problems or practices that you think are particularly nasty or subtle.  We will combine these examples (either anonymously or with, errr, “attribution” as you choose) with a humorous take that will make Peter fall off his chair crying.

See you at EclipseCon…

on Jan 21st, 2011Jeff on EclipseCon and RT/OSGi

Earlier today Lynn Gayowski from the Eclipse Foundation and I chatted about the upcoming EclipseCon conference and the its EclipseRT and OSGi content.  Lynn just posted the audio track on Eclipse Live.  Sound is a little overdriven but its worth a listen if you are going to EclipseCon.

on Jan 19th, 2011OSGi TCKs available to Eclipse projects

Open source is good for you. You know it.  I know it. Bart knows it. And now Eclipse and the OSGi Alliance agree on how it can work.

Many OSGi specs are implemented in open source projects. In fact, many of the OSGi reference implementations come from the open source world. Some time ago the OSGi Alliance made moves to make TCKs for its specs available to open source projects. After working through various legal issues that I don’t begin to understand, Mike Milinkovich let it be known today that projects at Eclipse can get access to the official OSGi TCKs. Awesome!

What does this mean to you? As an Eclipse consumer, perhaps not that much in the near term. In practice, most projects have long ago figured ways to get their function tested by OSGi members — you will continue to get robust, quality spec implementations from Eclipse. In the longer term you should see even more compliant implementations.

To Eclipse contributors and committers it now means that spec compliance and testing can become part of their regular operating procedure. It also opens the doors to fuller participation. For example, my company, EclipseSource, is not a member of the OSGi Alliance. So while I co-lead the Equinox project and Equinox supplies the reference implementation of the OSGi framework spec, to date, I have not been able to see or use the official TCKs. Makes it a bit challenging to be compliant. Now we can dive deeper into providing compliant implementations of OSGi specs at Eclipse.

Thanks to all for working through the issues.

on Jan 18th, 2011Another printing of the Eclipse RCP Book!

Seems the Second edition of the Eclipse RCP book is getting a good reception from the community.  The publisher told us the other day that they have run out of the first printing and are doing another run. I’m not 100% sure but think that means something like 3000 or so sold in the first 6 months or so.  Thanks for your interest!