Accessing the Global Address List in MS Exchange from Java
Recently, I needed to get access to information stored in the Global Address List (GAL) in Microsoft Exchange, the address book that is commonly accessible as a corporate directory of staff through Outlook. I had a dig around on the interweb and although there are plenty of examples out there on using LDAP or accessing the list through the Outlook application via a Java-COM bridge, I couldn’t find anything that exactly explained how to access the MS Exchange GAL via LDAP. So for my benefit (and the off chance that this might help someone else out there) here’s how I did it.
Firstly, to work out which LDAP server to query, you can look at the configuration of your Outlook client (or of course, whatever other mail client you might use that’s hooked up to your corporate LDAP directory). For Outlook users, here are the steps to determine your current LDAP server:
- Open the Outlook address book
- Choose the Options … item from the Tools menu in the Address Book window. This pops up an Addressing window.
- Highlight the Global Address Book entry in the ordering panel at the bottom of the Addressing window.
- Click the Properties button to see the properties for the Global Address List. This window shows the "Microsoft Exchange Address Book Provider", which specifies the address of the current LDAP server.
The Microsoft Exchange Server administrator creates and maintains this Global Address List (GAL). The GAL contains information for every email user, as well as details of global distribution lists and public folder e-mail addresses. Note that (as far as I’m aware) there is no standard naming for the properties in each GAL entry, so some knowledge of the specific GAL entry format for your organisation is required. In my case, I used the freely available Java LDAP Browser/Editor to browse the some entries for people in the CSIRO GAL to understand how the relevant properties were stored (in my case firstname, surname and email address).
With this information in hand, we can now use the JNDI API to access the LDAP directory. My Java code for this is shown below. Note that "ident" is CSIRO parlance for userId or username. This code returns a list with the user’s firstname, surname and email address from the user’s entry in the GAL.
Paddle: The Hawkesbury Classic from Windsor to Brooklyn (111km)
Our final week’s lead-up to the Hawkesbury Classic was far from ideal. After peaking the weekend before the classic with our 60+km paddle, we planned a week of rest, no stress and little exercise to ensure we were in peak condition for the actual Classic. As it turned out, the week was a crazy, hectic one for both of us. I ended up spending 2 days in Canberra for work, which involved getting up at 5am on Wednesday morning for an early flight. As a result, I was feeling rather sleep deprived and could feel the onset of sickness – runny nose, sore throat and blocked sinuses. On Wednesday evening, I was feeling a bit worse. After carbo-loading on a big serving of risotto and hot chips I had a long hot bath and early night in my hotel. On Thursday morning, I couldn’t even bring myself to walk the 15 minutes from my hotel to the office – opting instead to fall into a taxi for a $6 taxi ride. By Thursday evening, when I returned home to Sydney, I was feeling pretty crap. Our land-crew for the Classic (both our fathers) were flying up from Melbourne late on Thursday night, and our original plan had me going to pick them up around 10pm. As it was, I arrived home from the airport around 7pm, ate some carbo-loaded pasta for dinner, did some quick tidying to make room for our dads to sleep and crashed into bed, leaving Shell to stay up and greet them as they arrived via taxi from the airport.
Under any other circumstances, I would have stayed in bed most of Friday feeling sick and sorry for myself. As it was, I had yet another unavoidable early morning start, since we had an interview candidate who we had specially flown out from St Petersburg in Russia as a candidate for our software engineering position. Friday was the 1 day he had to spend with me in Sydney, given that I would be on leave (recovering from the Classic) on Monday, and he would spend Tuesday and Wednesday meeting the rest of our team in Canberra, before completing his epic journey back to Russia. As a result, I was up and in the office early, preparing and fine-tuning problems for our Russian candidate to work on. I spent most of the day in a rather intense discussion and problem solving sessions with our inevitably jet-lagged candidate, and by the end of our day, I was probably as exhausted as he felt. Thankfully, after pumping myself full of herbal and cold-and-flu tablets, I was feeling a little (but not a whole lot) better by Friday night. Another carbo-loaded meal of pasta shared with our dads was followed by shopping for last minute food and drink essentials (gatorade, bananas, high-protein snack foods etc), ready for our big endurance test. The rest of the evening was spent gathering all our gear and supplies for the Classic, deciding on expected checkpoint times for our race plan and preparing last minute equipment.
The day of the Classic dawned rather overcast and cool. Long range forecasts from the weather bureau had originally predicted thunderstorms and showers, but this had been revised to the chance of afternoon showers but an otherwise fine and clear day and night. I woke feeling a bit brighter than Friday, but still far from on top of the world. After some cold and flu tablets and a big breakfast of weetbix, tinned fruit and pancakes, we loaded up the car with PFDs, paddles, food, camelbacks, clothes, maps, compasses, torches and other essential paddling supplies and headed off up the M2 to the starting point at Windsor. Suffice to say with all that gear and 4 people in Starla, we were rather squished in for the hour-ish journey to Windsor.
Paddle: Windsor to Sackville return (62.4km)
So on the final weekend before the Hawkesbury Classic Shell and I decided that it was time to up the ante a little. Although not blogged here, in the past few weeks, we have paddled on the Hawkesbury from Sackville to Wisemans Ferry (~35km), from Wisemans Ferry to Spencer (~32km), and completed a paddle in somewhat choppy seas from our usual launching spot on the Lane Cove River across to Birkenhead Point at Drummoyne (on Sydney Harbour). Each of these paddles happened on different days though, and we were yet to paddle more than about 35km in a single day.
With the actual Hawkesbury Classic being 111km, we decided that we needed to stretch that distance a little. Having previously paddled from Windsor to Sackville, this weekend’s organised familiarisation paddle was in the reverse direction – from Sackville to Windsor – and timed to start an hour or so before sunset such that most of the paddle would be completed in darkness. Shell and I decided to start out just before lunchtime and paddle on our own from Windsor to Sackville before completing the return leg with the rest of the crowd completing the organised paddle.
The number of boats taking part in each paddle has certainly increased as we’ve got closer to the Hawkesbury Classic date. Despite the crowd, our boat continues to be "distinctive" (that’s what a number of people have told us) in that it is one of the wider and slower in the fleet. (We like to emphasise that it’s stable, comfortable and carries lots of gear!). In fact there have rarely been any other plastic boats on the organised paddles. On a couple of the paddles, there have been two guys in a canoe, but even they have swapped over to a speedy fibreglass kayak for the past couple of practice paddles and for the actual event. Still, even if it takes a bit more effort, we’re determined to attempt the Classic in our own kayak .
So the big question that should be on your lips is: did we actually make the distance? Yes – all 62.4km of it!! We arrived back at Windsor sometime around 8:30pm – didn’t actually check the time, but it had been dark for a few hours when we finished. The paddle was very challenging, and the last few kilometres of the return trip to Windsor seemed to take forever! Let’s just say we can certainly feel the trip in our muscles this morning! Somehow, no matter how many calluses develop on our hands, long paddling sessions always seem to uncover fresh areas to become blisters and hot spots. Thankfully we’ve also invested in some kayaking gloves which are a great help once our hands become too sore, and also help to keep our hands warm in nightime paddling.
It was actually a beautifully still night, so the water was pretty glassy for most of the return trip – in contrast to the head-winds that we experienced for most of the way from Windsor to Sackville. Every boat was also carrying a cyalume light (mostly pinned to the PFD of the back paddler) so for many stretches of the river, although we were paddling in darkness, we could try to follow a somewhat eerie collection of glowing greeny-yellow lights off in the distance ahead of us. A shame that we had neither a camera nor the energy to take a picture of it, as it looked quite cool with these lights dotted over the river ahead of us.
Anyway, we’re very satsified to have proved to ourselves that we can paddle 60+km in a single day – that should at least see us through to Wisemans Ferry for the actual Classic. Our challenge now will be to actually continue beyond Wisemans. We’ll probably arrive there sometime around midnight, and we’ll be tired and sore. The tide will have turned against us, and be stronger than further back upstream. So will we actually finish the Classic? I honestly don’t know, but life’s nice when you’ve got challenges Wish us luck for next weekend!
W3C Australian Office moves to CSIRO
The CSIRO ICT Centre has won a competitive bid to host the Australian office of the World Wide Web Consortium (also commonly referred to as W3C), which is the international body that sets standards for the web. I actually heard about the decision a few weeks back from Ross Ackland (the new W3C Australian Office Manager), but it was finally publicly announced in a CSIRO press release yesterday. The office will officially move from the DSTC Co-operative Research Centre (which is winding up after 7 years of operation) to the ICT Centre in Canberra effective from 10 October 2005.
What exactly does this mean? Well for one thing, it means that CSIRO now takes on the role to promote the W3C mission in Australia. The W3C summarises this role as:
To promote adoption of W3C recommendations among developers, application builders, and standards setters, and to encourage inclusion of stakeholder organizations in the creation of future recommendations by joining W3C.
The role also explicitly includes promoting the W3C’s patent policy, which governs the handling of patents in the process of producing Web standards and aims to ensure that Recommendations produced under the W3C policy can be implemented on a Royalty-Free (RF) basis.
In concrete terms, I hope to see a bunch of W3C related activity around the ICT Centre – seminars, workshops, standards discussions and the like. If you’re interested, the W3C has much more information about the role of W3C Offices.
10 years of the BeBox
A few days ago was the 10th anniversary of the public unveiling of the BeBox at Agenda ’96. The BeBox is dual PowerPC computer from Be Inc that was introduced in marketing brochures as follows:
We’d like to introduce you to the BeBox(tm), a highperformance, low-cost system designed to meet the demands of sophisticated computer users and developers. Itâ€™s the first true real-time, object-oriented system that features multiple PowerPC processors, true preemptive multitasking, an integrated database, fast I/O, and a wide range of expansion optionsâ€”all at a price thatâ€™s agressively below that of any competitive offering.
With marketing slogans such as "unfit for consumption by normal human beings" and "one processor per person is not enough", the story of the BeBox launch is an interesting one.
After feverishly working throughout 1995, Be Inc finally decided that the results of 5 years of low profile work were ready for a public launch. When one considers that little over a year earlier, Be’s entire hardware platform had been made redundant by the demise of the AT&T Hobbit processors, this was a remarkable achievement (If you’re interested, you can read more about the history of the BeBox).
Of course, one significant factor in deciding to go public was that Be Inc was again in serious debt. It was hoped that the publicity from a public airing of their work would be enough to attract further funding.
Jean Louis Gassée was, however, reluctant to unveil the BeBox at Agenda ’96, with its audience of industry analysts and members of the media. GassÃ©e was instead keen to launch his baby to a crowd of geeks who he thought would really understand and appreciate what Be had achieved and where they were heading. GassÃ©e’s own words on the Agenda ’96 crowd were: “These are industry insiders … They all hate what we do. I wanted audiences of geeks.”
Despite Jean Louis’ reluctance, the pressure of a desperate need for new funding meant that Agenda ’96 became the venue for the BeBox launch.
In his preface to the BeOS Bible, Henry Bortman provides the following rivoting description of the BeBox launch and the days leading up to it:
Gassée and his engineers arrived a couple of days early. They brought with them everything they needed for the demo – or so they thought. It had all worked flawlessly back at the office. But when they arrived in Scottsdale, Arizona, for the big event, nothing worked. The engineers called back to California, to get people to “bring more stuff”, as Bob Herold recalls. “Software, different hard disks, whatever they thought would work. It was a bit of a crapshoot.” They finally got it “mostly” working.
The day of Be’s presentation also happened to be the day that the O.J. Simpson jury announced its verdict. The BeBox demo had been timed carefully to be completed before the verdict was read. Although the demo system was still plagued with problems, Steve Horowitz, who was running the demo machine behind the scenes, “got very adept at moving things out of the way,” says Herold. “If the debugger would come up, he’d move it away before anyone noticed.”
Apparently the ruse worked. Be got a standing ovation, only the second time in the history of Agenda that anyone has received such accolades. Gassée was speechless. Literally. Anyone who knows GassÃ©e knows that this is a rare event. “I wanted to say my thanks to a number of people. And I couldn’t do it.”
His momentary lapse of eloquence notwithstanding, GassÃ©e’s gamble had paid off. “Agenda was the turning point. That got us in the big time. We went from nothing, in terms of VCdom, to the first tier VCs. Which is very good. Not just the money, but also access.” Not that the money was insignificant. While waiting for investors to come through, GassÃ©e remembers, “we had a couple of near-death experiences. I’m not joking when I say that I’ve seen the whites of the repo man’s eyes.” GassÃ©e keeps a Xerox copy of the four-million-dollar check from Dave Marquardt, dated April 9 1996, pinned to the wall of his office. Marquardt had been in the Agenda audience at Be’s public unveilling.
Following the public launch of the BeBox on October 3rd, Be was “a little overwhelmed” by the reaction. Their previously unknown website was swamped as hundreds of curious and eager developers applied to obtain a BeBox. Amidst this frenetic attention, Be Inc managed to ship over 100 BeBoxen to developers by the end of 1995.
The BeBox seemed poised to become a significant alternative platform for next-generation applications. It was billed as the first true real-time, object-oriented system that featured multiple PowerPC processors, a native OS with true preemptive multitasking, an integrated database, fast I/O, and a wide range of expansion options — all at an extremely affordable price. The BeBox enabled users to run multiple compute-intensive programs simultaneously, synchronize music and sound, view and edit videos, and access the Internet — all at the same time. It shipped with a full set of software development tools and technical documentation, at a time when this was unusual. No other product on the market could match its performance in its price range.
Of course many of the BeBox’s selling points blurred the lines between the BeBox and the BeOS, but this was clearly intentional — the BeBox was intended to be an entirely new computing platform offering both hardware and software innovations that were not possible in the existing platforms that were hamstrung by legacy baggage and the burden of backwards compatibility.
Promises were made that “the BeBox is the first member of the Be product line, which is being expanded to include four-processor and portable configurations”. Unfortunately work never really began on a BeBox portable, and the quad processor BeBox never made it beyond the prototype stage. (As an aside, Joseph Palmer recently revealed that he in fact still has the quad-processor prototype BeBox system in his possession).
Despite exposing the exciting to the excitable, the demise of the BeBox as a platform began in January 1997, less than 18 months after its launch. At that time, Be Inc announced their intention to abandon hardware development to focus their efforts on further developing the BeOS for the PowerPC-based Macintosh and Mac-clone market.
If you want to know more, or know a bunch about the BeBox already and just want to take a pleasant journey down memory-lane, head on over to my other site, The BeBox Zone, which is the authoritative source of information about the BeBox. You should also check out Joseph Palmer’s site. Joe was the designer of the BeBox, and he has recently posted an article about the BeBox’s 10th anniversary, along withan image gallery of Be Inc photos from around the time of the BeBox launch. He’s got some great photos of the BeBox assembly line (the first BeBoxen were hand-assembled at Be Inc’s offices), as well as a photo of the first two BeBox buyers.
If you’ve got any corrections or information to add to the story of the BeBox, I’d love to hear from you! Feel free to email me: andrew at bebox dot nu.