The Latest Blog
send me a comment

Lotusphere Instagrams (Wednesday, Jan 25)
[ permalink ] [ e-mail me ] [ ]

I didn't take many pictures (again) at Lotusphere this year, but the ones I did take were with my iPhone and published via Instagram and Twitter. None of my people pictures turned out very good, so it's all just "stuff" pictures. Luckily there's a whole Flickr stream being filled by people who had much better cameras (and camera skills) than me.

OK Go rockin the Lotusphere 2012 Opening General Session
OK Go rockin' the Lotusphere 2012 OGS

Beautiful day at the Dolphin
Beautiful day at the Dolphin

Took a quick break to enjoy the weather
Took a quick break to enjoy the weather

Stumbling towards Kimonos
Stumbling towards Kimonos

Swirly circley LS12 logo
Swirly circley LS12 logo

Pretzel Cookie!!!
Pretzel Cookie!!!

Atrium at MCO
Atrium at MCO

Sitting on the wing
Sitting on the wing

Awesome gifts from awesome people
Awesome gifts from awesome people (not pictured: Wisps!)

Lotusphere Sessions On Your Calendar (Tuesday, Jan 10)
[ permalink ] [ e-mail me ] [ ]

If you're in the final stages of planning for Lotusphere 2012 and you want to get all your "must see" sessions on your mobile calendar, here are four options.

Option #1: LSMobile App on your iPhone/iPad
The easiest way for me (since I'm an iPhone kinda guy) is to use the LSMobile iPhone App (also available for iPad, optimized for the larger screen) written by Tim Davis at The Turtle Partnership. With that app, all you have to do is open a session you're interested in and tap the action button at the top right of the title bar to bring up a "Session Actions" sheet at the bottom of the screen. From there you can tap the "Add to Calendar" button to add the session information to the calendar on your phone. As you can see from the screenshot, this is also an easy way to tweet about a session or check in to it on Foursquare.
Option #2: The Genii Software Sessions Database
Once again, Ben Langhinrichs has imported all of the Lotusphere session information into a free database that you can download and open in your Lotus Notes client. From the session views (by ID, by Track, etc.) you can select one or more sessions and click the "Add Selected To My Calendar" button at the top of the view. This will add the session information to your Notes calendar, and of course your Notes calendar can then sync with whatever it already syncs with -- Blackberry, etc.
Option #3: The IBM Social Business Online website
All people who are registered for Lotusphere 2012 should have received an email describing how to access and log in to the Social Business Online website, which is the official web and mobile web dashboard for attendees this year. The home page describes a few different ways to get the session content, including mobile apps for iPhone, Android, and Blackberry, and also a "Session Scheduler" tab on the main site that allows you to create an iCal export.

NOTE: this site is for registered attendees only. If you're not registered, you won't be able to login. Sorry.

Option #4: Write Your Own iCal Export
If you're a programmer and you just like doing it yourself, you can always take the Genii Sessions database and write an agent that creates a custom iCal feed** of your own, suitable for importing into iCal-compatible applications. To get you started with that (because I know that's what you really want to do anyway), here's a very basic and kind of limited iCal class I wrote a while back:

    iCalBasic LotusScript Classes

You should be able to easily convert the example code into something that works with the session database and allows you to create an importable iCal file. If you're a Java sorta person, it should be a fairly straightforward port to Java (or you can just find an open source class to use).

** Special Note: yes, I know it's technically "iCalendar" rather than "iCal". But I don't really care because people know what I'm talking about anyway, and "iCal" is easier to type and sounds better.

Happy New Year! Clean Out Your Inbox! (Sunday, Jan 1)
[ permalink ] [ e-mail me ] [ ]

If you're looking for a good way to start off the new year, try this:

Obviously if there are things you immediately need to act on, you should still do them. But really, if you haven't gotten around to acting on those emails from a year (or two years, or three years...) ago, you just need to man up and let them go.

Wadsworth (Friday, Oct 28)
[ permalink ] [ e-mail me ] [ ]

The Arrow and the Song
by Henry Wadsworth Longfellow

I shot an arrow into the air,
It fell to earth, I knew not where;
For, so swiftly it flew, the sight
Could not follow it in its flight.

I breathed a song into the air,
It fell to earth, I knew not where;
For who has sight so keen and strong,
That it can follow the flight of song?

Long, long afterward, in an oak
I found the arrow, still unbroke;
And the song, from beginning to end,
I found again in the heart of a friend.

Apropos of nothing; I've just always liked that poem and heard it again yesterday, so I thought I'd share.

Sometimes if you have an idea, you just have to let it fly and not worry about where it goes. You may never meet the people you've helped. But that doesn't make them any less helped.

Atari Bats (Friday, Sep 30)
[ permalink ] [ e-mail me ] [ ]

Every once in a while, I get it in my head that I have to search for something obscure on the Internet. Recently I was telling my kids about my first computers -- an Atari 400 with a membrane keyboard, followed by an Atari 800 with a real keyboard -- and how we couldn't download games from the Internet, but we had cartridges and cassette tapes and subscriptions to computer magazines that had BASIC source code you could type in yourself. I'm sure the kids were enthralled by my stories.

The first game I ever remember typing in from a magazine was one where you had to fly a bat across the screen in a cave, avoiding stalactites and stalagmites as you went. Later on I thought, "I bet I could find that if I looked hard enough", and the quest was on.

All I have to say is: thank goodness for the Internet Wayback Machine. It's been crawling and archiving sites on the Internet since 1996, including (as it turns out) the Classic Computer Magazine Archive. Inside the December 1982 issue of Antic magazine was the game I was looking for... BATS!

Next stop was finding an Atari emulator. There was a surprising variety to choose from. I loaded up Atari800Win Plus in a Windows VM and downloaded the BASIC file for the "Bats" game (luckily I didn't have to retype the game, I only had to download -- I love living in the future). After figuring out the virtual drives and virtual joystick controls, I was ready to go:

Atari Bats BASIC file load

Atari Bats game!

That was fun for a few minutes anyway, as nostalgia always is. According to the magazine article, the author of the program (Stan Ockers) released it into the public domain, so if you're curious as to what the BASIC file for such a game looks like I converted it to text as BATS.BAS.txt for your viewing pleasure.

The BASIC-to-text conversion was an interesting process, as I had to map a virtual printer to Notepad in the Atari emulator. Kids today... they don't realize how easy they have it with their ASCII and their Unicode and whatnot...

Updated Clippings Article List (Tuesday, Sep 27)
[ permalink ] [ e-mail me ] [ ]

Since it's been about two and a half years since I've posted a list of my Clippings articles, I thought it might be time for an update:

If you're not subscribed to the monthly newsletter, here's a link to the LotusUserGroup Clippings Page so you can take a look and sign up. If you're more interested in the admin side of things, don't forget that Warren Elsmore and I trade off duties writing articles (he writes on the odd months, I write on the even ones).

Windows DHCP Issues (Thursday, Sep 8)
[ permalink ] [ e-mail me ] [ ]

Of the 15 physical devices currently active (i.e. -- in regular use) on my home network, only one is a Windows machine. The majority of devices are made by Apple, although there are also 2 Wii's, 2 DSi's, and an Android phone in the mix. Every single device works flawlessly with my wireless router except the Windows machine. Windows XP always worked (and still works) fine, but Vista and Win7 just can't seem to stay on the network.

Recently, the Windows laptop went from "problems every week or so" to "can't even stay connected long enough to check email". I did a full virus scan, removed and re-added the wireless network a bunch of times, disabled and re-enabled the wireless network adapter, and turned many wireless adapter settings on and off. On the router, I could see constant streams of DHCP discovers and offers for the laptop, but somehow it wouldn't connect or stay connected. I even took the drastic measure of replacing the firmware on my router with DD-WRT -- everything that worked before continued to work, the Windows machine continued to be flaky.

Here's what I did to finally get it working. I don't know if one of these things was a magic step or not, but this is what worked:

1. Set the MTU to 1492: I followed these directions for setting the MTU, and I used a value of 1492.

2. Disable Receive Window Auto-Tuning: this ended up being a 2-step process, because first I had to disable Windows "scaling heuristics", and then disable the auto-tuning. And then reboot, just for good measure.

3. Set a static IP address: no matter how much I played with DHCP broadcast flags, I still had issues getting and keeping a reliable connection, so I finally gave up and set a static IP address and used Google DNS for name resolution. Interestingly, DD-WRT is configured by default with a setting called "DHCP-Authoritative" turned on, which will prevent non-DHCP clients from accessing the network; so I had to turn that off at the router.

4. Set the wireless router to use a fixed channel: by default, my wireless router had its wireless channel set to "auto", so it could be anything from 1 to 11. I changed it to a fixed channel of channel 5.

You would think that setting the wireless channel or static IP address was what actually fixed it, but I had done that before and still had problems, so I think something about the first two steps was also important. For reference, the commands I had to issue (at a command prompt in Administrator mode) to do #1 and #2 were:

netsh interface ipv4 show subinterfaces
netsh interface ipv4 set subinterface "Wireless Network Connection" mtu=1492 store=persistent

netsh interface tcp show global
netsh interface tcp set heuristics disabled
netsh interface tcp set global autotuninglevel=disabled

I hope this helps someone out there... or at least helps me next time I have to troubleshoot this.

New Neal Stephenson Book Available Early? (Tuesday, Aug 30)
[ permalink ] [ e-mail me ] [ ]

Neal Stephenson's new book "Reamde" (not a typo) is coming out on September 20th. However, the UK Kindle version appears to be available for download right now! Very jealous.

UPDATE (Sept. 2): the UK Kindle version is now showing up as pre-order, but the UK hardback appears to be available now. Not sure what's going on. Either way, it still looks like I have to wait until the 20th to get the book in the USA.

Problem Signing JAR Files (Wednesday, Aug 10)
[ permalink ] [ e-mail me ] [ ]

Fair warning: if you don't write Eclipse plugins this will probably be of no use to you.

Anyone still there? Good.

I was signing some JAR files for an Eclipse plugin -- nothing fancy, just using the normal jarsigner command-line tool -- and while this has worked fine for me in the past, this time I was getting errors every time I tried to install the plugin. Not errors about the signature, errors about the plugin itself. "Plugin does not have a valid identifier" and "Plugin does not have a valid version" kinda errors.

The unsigned version of the plugin worked, but not the signed version. I knew it had something to do with the signature process but I couldn't figure out what. After a LOT of searching, my biggest clue was an Eclipse forum post referencing a StackOverflow question, both dealing with the jarsigner tool overwriting the MANIFEST.MF file in the plugin JAR file.

It made sense that this would cause the error I had, and when I looked at my plugin, sure enough my META-INF/MANIFEST.MF file had been replaced by a new file listing the hash digests of the signed files (as described in the jar file documentation).

In the case of a signed OSGi plugin, the Manifest file has a dual purpose. First, to act as a descriptor for the plugin (version information, etc.), and second as a list of hashes as described above. What is supposed to happen is that the signature information gets appended to the file, after the existing plugin information. But for me, the plugin headers were being completely overwritten.

The Eclipse forum and StackOverflow links indicated that this was a problem with some of the Java 1.5 versions and that it was fixed in 1.6. But I was trying with Java 1.5.0_22 as well as 1.6.0_20 (aka Java 6 update 20, aka Java 6u20), and both were giving me the same problem. I went for hours thinking that I must be doing something wrong, and went through manually repackaging the JAR file, converting linefeeds to CRLF, adding and removing and changing order of manifest information, and all sorts of other things, all to no avail.

Then I finally found a bug report for Java 6u20 describing exactly my problem. The solution? Use a Java 1.6 version either prior to update 18 or after update 21. Surely it couldn't be that simple? But I downloaded 1.6.0_26 from the SunOracle website, installed it, and... everything started working!

So the issue was that on the particular Windows VM I was on, I just happened to have these "magical" versions of Java with exactly this bug. Normal automatic Java updates didn't help because those update the JRE but not the JDK. After a manual install of the latest Java 6 JDK, I now have a working signed plugin (and a strong desire to drink a beer).

On Employment and Social Networking (Monday, Aug 8)
[ permalink ] [ e-mail me ] [ ]

As Rob Novak has recently mentioned on his blog, I no longer work for SNAPPS. I haven't for a few months. I had my own reasons for leaving and you shouldn't read anything into it. It was a decision that was right for me. We are still very good friends and I had a fantastic experience there working with Rob, Viktor, Troy, Jerald, Melissa, Liz, and Karen.

However, as I've been "on my own" again and finding work, it might seem strange that I haven't been announcing my situation to the world and using my website and all the social networking tools at my disposal, screaming "Hire Me!".

The answer is, actually, that I have been. I've been using my website, podcasts, social networks, personal networks, conferences, and the like in order to continuously announce this for the past 9 years. I just don't use those particular words. Instead, the words have been things like:

That, to me, is how you use social networking (or the Internet in general) to find work or customers. Make yourself discoverable, and when people discover you give them something useful. The caveat is that it's probably a longer sales cycle than most people want it to be. This is the age of the quick hit: Find a Job using Twitter in less than 10 Days! It doesn't work like that. It takes time to build relationships.

For example, one of the things I'm doing right now is providing developer support for the Turtle Partnership. They've already got a very capable development team, but as they have requests or things I can help with, I provide backup. It's good for me because it helps keep me busy while leaving me open to pursue other projects as I can fit them in.

Someone asked me how I made that arrangement, because they wanted to do that sort of thing too. I said, "It's hard to say... we all just kind of knew each other already." We speak at the same conferences, write blogs, make comments on Facebook, chat on Skype. There were no resumes or interviews involved; the relationship was already there.

I know this sounds preachy and I'm sorry about that. But I think this is important. Please don't take this as some kind of arrogant "I'm so great and I know so many people and you should be just like me" kind of statement either. I'm not going to make a laundry list of partnerships I have or projects I've worked on, because that ends up diluting the message. And the message is: you can do this too, if you want, but you have to put yourself out there and it won't happen overnight.

You don't have to be on Twitter and Facebook and Google+ and every other social network all the time, but you should at least dip your toe in the water now and then and see what's going on. Say something every once in a while. Gradually meet people and let them meet you. Go to a few conferences and meet people face-to-face (gasp!).

It does take effort, but it's your choice.

(UPDATE: did that whole thing sound really pompous? I hope not. I guess I just know a lot of people looking for work or wondering where the next job will come from, and I wanted to make the point that social networking can actually work. At least sometimes.)

IBM Champion Program (Thursday, Jun 30)
[ permalink ] [ e-mail me ] [ ]

I know I'm a week late, but it's never too late to thank someone. In this case, I wanted to give a big thank you to the IBM Champion program for selecting me as one of 50 new IBM Champions for Collaboration Services. And congratulations to all the other folks who got chosen as well!

I was in the room when Ed Brill gave the formal announcement at the View Developer conference in Las Vegas last week, and I was pleasantly surprised to see my name up on the screen. As much joking as a few of us have done about ordering IBM Champion superhero capes and swooping in to fight evil, it really is an honor and I am very flattered to be on the list.

Bacon Chips! (Sunday, May 29)
[ permalink ] [ e-mail me ] [ ]

Hugging my bags of bacon chips

Bacon chips! One more way in which Francie is awesome.

UKLUG Wrapup (Saturday, May 28)
[ permalink ] [ e-mail me ] [ ]

UKLUG 2011 was, once again, a fantastic event. This year it was at the Museum of Science and Industry in Manchester. The size of the meeting space was perfect -- crowded enough that you got to see all the people and vendors, but not so crowded that you had trouble moving around. And hey, it was at a gigantic science museum! Among other things there were lots of old computers and computing equipment on display, including the Baby:

The Baby: Possibly the first programmable computer, on display at MOSI

As a technical conference, Warren and crew did another amazing job of organizing the entire event and pulling together some top notch speakers. For a lot of attendees, this is the only chance they get all year to go to a technical conference (as was obvious when Ted Stanton asked in the opening session how many people did not go to Lotusphere, and about half the hands got raised). And for the vendors, that means a whole group of people that they probably don't have access to otherwise.

Anyway, it was a great time. I got to see a lot of friends, and I had never been to Manchester before so that was fun too. I had no idea the city was so big. Here's the view of maybe 1/5 of the city from the "Cloud 23" bar at the top of the Hilton Deansgate (click the image for a larger version):

Panoramic view of Manchester from the top of the Hilton Deansgate

Which is another great thing about how the LUG events get organized: they tend to move the cities around, to keep the events "fresh" for the attendees and speakers, as well as to draw attendees from different areas who might not be able to travel far to come to the event. It's a great public service for the developer and admin community, and the hard work involved with putting on an event like this is very, very appreciated.

Milkybar (Monday, May 23)
[ permalink ] [ e-mail me ] [ ]

I'll admit, as a guy who was born and raised in America, I've never heard of a Milkybar. But it's one of the many pounds of chocolates, candies, and sugar concoctions that seem to be present in abundance at UKLUG.

With no real explanation, Bill Buchan has been taking pictures of people holding a Milkybar throughout the conference today. Here's my photo, next to a drawing of the original "Milkybar kid":

I am, of course, on the right. Someone made a comment that they thought I looked like an older, grown up version of the Milkybar kid. This is obviously ridiculous, as shown in the annotated version of the pictures below:

I do hope that puts all these Milkybar kid rumours to rest.

UPDATE: apparently it's "Milkybar kid", not "Milkybar boy". The blog entry has been corrected, and sincere apologies to all the non-Americans who grew up with this icon of the candy industry.

New Neal Stephenson Book: Reamde (Wednesday, Mar 16)
[ permalink ] [ e-mail me ] [ ]

The HarperCollins website now has a page for the next Neal Stephenson novel. It's called "Reamde" (not "Readme") and will be out on September 13th. It's already available for pre-order on Amazon too.

I have no idea what it's going to be about, but I can't wait.