Friday, February 29, 2008

thanks Volker!

He took a great picture of me. Hey, if I can't be vain on my own blog, where can I? :-)

Volker took this in the Dolphin rotunda on Sunday during Lotusphere. I had just met Francie and was trying to talk to her, and Volker was very persistently trying to get pictures of everyone who was standing around. I finally shut up long enough for him to do it, and after he checked it on his camera he said "You really like yourself". I thought that was hilarious.


Tuesday, February 26, 2008

Using SQL Server 2000 DTS packages on SQL Server 2005 -- without SSIS

SQL Server 2005's Integration Services is a pain to get going. Most people agree that SQL Server 2000's Data Transformation Services (DTS) were much easier to work with. So maybe you inherited an existing infrastructure that uses SQL Server 2000 and you want to upgrade it to SQL Server 2005 but you hesitate because of SSIS. Or maybe you have a DTS package that runs perfectly fine, so you keep around a SQL Server 2000 box just for that purpose.

Bridge the gap with the Feature Pack for Microsoft SQL Server 2005 - April 2006. Specifically you want the Microsoft SQL Server 2000 DTS Designer Components. After installing this on a computer with SQL Server Management Studio 2005 you will be able to edit and run DTS packages.

Friday, February 22, 2008

C18XMEN?!

Let's see... I collected X-Men comics for about 160 issues, surely I can come up with the first 18 members:

  1. Angel
  2. Beast
  3. Marvel Girl
  4. Cyclops
  5. Iceman
  6. Mimic
  7. Havok
  8. Polaris
  9. Colossus
  10. Nightcrawler
  11. Storm
  12. Thunderbird
  13. Banshee
  14. Sunfire
  15. Wolverine
  16. Rogue
  17. Phoenix
  18. Kitty Pryde

I wonder if anyone at IBM ever thought that there might be comic geeks out there that would take a part number to extremes? So what is C18XMEN, besides the only IBM part number I will ever remember?

IBM Lotus Notes, Designer and Administrator 8.0.1 Clients basic configuration for Windows XP and Vista English(C18XMEN)

Thursday, February 21, 2008

did you know you can use Delta SkyMiles on Continental?

Sometimes a little digging can uncover a real gem.

Flying out of my hometown is usually an expensive proposition. We don't have a lot of carriers, and we always have to fly through some other city to get to our final destination. Getting from here to Dublin has been running between $1000 and $1200 per person. If it were just me I would probably have sucked it up and paid it, but Myron is going too and there's no way we were going to spend that kind of money on airfare so we started looking at other options.

We use both our Delta SkyMiles American Express cards for everything we can, so we can accumulate miles to cover the airfare for trips. It's worked well for us; we haven't paid for a flight to go skiing in Tahoe in years, and we're going to Anguilla in August (for my birthday) using airline miles. Delta wants 100,000 miles per international ticket, so that would have been 200,000 miles. I only have about 60,000 and Myron had about 180,000. It would have cost $230 for me to transfer 20,000 miles to him so he could book both tickets, and there were additional transaction fees on top of that. All told it would have been nearly $350.

That sounded like a deal to me but Myron thought it was a little steep, and he didn't want to give up all our miles in one go. Being the obsessive travel junkie that he is, he started looking at Delta partners to see what they offered. He was surprised to discover that you can use Delta miles with Continental. That's awesome because Continental only charges 75,000 miles per international ticket! Myron had enough miles to cover everything and we ended up only paying $50 apiece in transaction fees. Just by doing some digging Myron saved us a total of 50,000 miles, which is enough for two domestic round-trip tickets.

We're flying out on Saturday, May 31st and returning on Saturday, June 7th. We'll see you in Dublin.

Wednesday, February 20, 2008

DreamSpark - free Microsoft software for students

Yesterday Microsoft announced the new DreamSpark program, which promises to provide free software to up to 1 billion college and high school students worldwide. It's currently available to over 35 million students in the US, Europe and Asia, and will be expanding rapidly. And it It includes not only the software, but classroom curriculum to go along with it.

I'm not mentioning this because I'm an alarmist and think this is the end of civilization. It's an incredible investment that goes a step beyond the old academic licensing. I paid my own way through college and having to spend even more money on software made it much more difficult. I would have welcomed a program like this, and I applaud Microsoft for stepping up to the plate.

Here's an excerpt of what Bill Gates says about DreamSpark in a video interview on channel8:
I've always believed in getting developers at as young an age as possible. These are the tools that people can build a career around or they can just build fun software for themselves. The basics of understanding how good architecture works, the data structures ... those have been the same for the last 30 years. Fundamentally, the skills of design, of knowing what good code looks like -- that is going to be valuable for at least the next three decades.

Regardless of what your personal opinion is, the man has a point. My first development language was Apple BASIC, and I still use BASIC-like languages in Microsoft Access, Visual Basic, and Lotus Notes. Apple got me hooked at an early age and now I'm loathe to step away from my comfort zone.

It will be interesting to see how this plays out, and whether there is a sharp uptick in the number of Microsoft-oriented developers in the next few years.

via Computerworld

8.0.1 is on Passport Advantage

It just seems to be missing 17 files...



I tried signing out and coming back in, but it's till only showing the DOLS pre-installer.

Tuesday, February 19, 2008

Embeddable RDBMS options, and some other cool tools

I'm in the middle of rearchitecting a massive Access 2003 application into something that can be used offline, replicate data back to a central database, and is modular. Notes and Domino aren't an option since the target platform is a Windows Mobile device I work in a Microsoft shop, but in the process of tracking down what we need I found some pretty cool tools. The best thing about all these is they're all F R E E !!

Microsoft SQL Server Compact 3.5

Stand-alone Microsoft SQL Server running in 2MB RAM. Really! It supports native replication with SQL Server 2005.

SQLite

Another small embeddable database that features snapshot replication with any ODBC data source.

Firebird RDBMS

The third embeddable database I tested. It does not support replication out of the box, which is why I couldn't use it.

AnySQL Maestro

It's an admin tool somewhat like TOAD or SQL Server Management Studio, but a little scaled back. One thing it's missing is viewing/editing stored procedures, but I'm using it mostly for the visual query builder.

XXCOPY

Have you ever started copying a directory of files and something craps out so you have to restart it? You don't want to have to hit "No" to the overwrite prompt eleventy billion times so you end up just overwriting everything. XXCOPY will handle copying only files that don't already exist, as well a huge amount of other things that overwhelmed me.

TeraCopy

It's like an Internet download manager for Windows. You can pause a long-running file transfer and resume it later, it has error recovery in case it can't write a file, and it does asynchronous copies so it's faster than normal Windows copy routines. It has Windows shell integration so it can be configured to replace the default Windows copy routines.

Jing Project

Desktop capture software for Windows and OS X from TechSmith, the makers of CamtasiaStudio and Snagit. Look for some video demos soon. :-)

Monday, February 18, 2008

Mission Impossible - From Single Domino Windows Server to Linux Cluster

You hear people say "oh clustering Domino is easy, just [click] [click] and you're done" and "moving Domino to a new platform is easy, just copy the Data directory". But have you actually seen it done at a conference? Come to ILUG 2008 and you will.

Not sure how to give your single Domino server a (cluster) mate without affecting your users? Ever wanted to find out what exactly is involved in migrating a live Domino server from Windows to Linux? Come watch Charles Robinson and Franziska Whitlock not only explain the whole process but also DEMO it live in 60 minutes.


Should I ask Paul to let us work on the production servers? ;-)

P.S. This is why I dropped the hint that I do admin as well as development.

Thursday, February 07, 2008

another Lotusphere theme: pimping yourself

Having people see my badge at Lotusphere and ask "are you the Charles Robinson who blogs" was a little surreal. Having at least half a dozen people at Lotusphere tell me I have a moderate level of name recognition and I need to build on it was just plain weird to me. They were saying I need to market myself, build my brand, and get my name out there so I can take things to the next level. In short, I need to pimp myself.

pimp (pmp)
n. One who finds customers for a prostitute; a procurer.
intr.v. pimped, pimp·ing, pimps To serve as a procurer of prostitutes.

The interesting part about this is I had already considered going down that path. I had business cards printed and I was planning to hand them out at Lotusphere and try to get some consulting gigs, or maybe even a permanent job. From the start it just felt wrong, though. While getting to the bottom of my reluctance I started thinking about why I participate in the community. Did I want to turn it into a money-making venture by soliciting consulting work or a job? Did I want to use it to build name recognition so I can join the pantheon of the elite in our little fishbowl? In short, did I want to capitalize on it in any way?

After mulling it over I finally came to the conclusion that I'm not here to prostitute myself. I never joined in with the idea that I'll get anything other than personal satisfaction out of it. I'm here to share information and participate in discussions, plain and simple. For me to try to turn that into anything else just seemed wrong.

When the subject came up at Lotusphere I was honestly offended. What I found offensive was the prevalent idea that everyone wants to go that route, and the vehemence with which most people presented it. It was like there was no consideration that not everyone had the same goals. I expect to catch some heat for saying that, but I want to be clear that I'm not at all opposed to people who use their participation in the community for some amount of personal gain. I support capitalism and I fully understand that the people who blog are known among the community at large because we are the ones willing to put ourselves out there on display, regardless of our motivation. It is a lot of work and you do attract some unwanted attention so if you want to capitalize on your efforts I say go for it.

There is no doubt that I have benefited from my community participation, but I have never asked for it and it wasn't monetary. For the past two years at Lotusphere I was invited to participate in a special Q&A session with Mike Rhodin. Last year my blog was shown in both the opening and closing sessions. I know if I am eventually accepted as a speaker at a conference (I've submitted sessions for the past two Lotusphere's and I have my fingers crossed for ILUG) it will be at least partially because people know me from blogging.

The difference between my approach and some others is this is the real me, not some sanitized version with an eye toward being as acceptable to as many potential customers as possible. Recognition is great and if it works out that my efforts are rewarded in some way I'll be ecstatic, but I'm not doing any of this with the idea that I will eventually benefit from it in a material way. It's a difference of intent.

The reason I'm saying all this is 1) I fully expect to be eviscerated so I want to defend myself up front and 2) I I know I'm not the only one who believes participation in the community is its own reward and 3) I want to let people joining the community now know that you can do it for purely altruistic reasons. There is room for everyone. All you have to do is be honest with yourself and the community and you'll get the returns you want. That may be a warm feeling from a heartfelt "thank you" in a blog comment, or it could be a new job. The choice is yours. You may end up with some amount of name recognition, but that doesn't automatically make you an attention seeking whore. And you certainly don't have to pimp or prostitute yourself if you don't want to.

Tuesday, February 05, 2008

art imitating life



I've decided Dilbert isn't as funny when it hits that close to the truth.

Monday, February 04, 2008

rocking the dual propeller beanie

Pretty much everyone knows that I do development: Lotus Notes, Microsoft Access, Visual Basic and even some ASP.Net. Over the weekend I realized that not many people know I'm also an admin. I'm not a guru, but I can generally bludgeon Domino, Windows, Linux (Red Hat) and even an AS/400 into submission.

In the next couple of weeks I'll be moving the last two Domino partitions from a client's AS/400 over to a Linux server. The last time I did this it was a nearly retrograde learning curve since there is very little documentation out there. I learned a lot so I'll be sure to share some tips.

Saturday, February 02, 2008

Lotusphere 2008 - Day 5: Thursday, January 24th

This was my latest start all week. And no, it's not because Myron was with me so get your minds out of the gutter. I had stopped by the UX labs the previous day and the only time they had for me to test drive Domino Designer 8.5 was 9:00 AM.

9:00 - UX Labs - Domino Designer 8.5

Margo Ezekiel

One of the coolest things was when I walked up and introduced myself and Margo remembered that I had commented on the design persona for Raj. They are paying attention! There were several sessions at Lotusphere about Domino Designer, and Maureen Leland has posted some pictures on her blog. You may want to review those as you read along here, since I wasn't able to take any screenshots of my own.

At first glance Domino Designer in Eclipse is really familiar. The biggest change is the Bookmark bar is gone. For the.. um.. none?... of you who used Bookmarks in Designer, you'll have to get over it. As for the rest of the layout, you have your database navigator on the left and the currently selected design element displays on the right. One great enhancement is you no longer are limited to seeing only five of a certain design element at a time in the navigator. If you expand Forms, you get a list of ALL the forms.

One thing that threw me a little was the property page that is at the bottom of the screen. It is a series of tabs that shows the properties of the currently selected item. The first tab, which I think is labeled General, is always visible, and other tabs appear or disappear depending on what you have selected. What it doesn't do, though, is tell you what you have selected. Today when you select a Form, the Infobox says "Form", or if you select a database it says "Database". The new property pages don't do that, and as you'll see when this lack of information is coupled with some of Eclipse's features it creates a massive usability issue.

I really like that you can move around anything in the UI, so you could move the properties to the side or float them, and you can resize it. I didn't find an easy way to recall the properties if you float them then close them. Something new here is that you can copy out of the property window, which means you can finally copy a replica ID. Yay!

A totally new concept is Work Sets. You can group databases together so when you select a particular Work Set, it clears the navigator and shows the databases in that Work Set. This is particularly handy when doing multi-database work, or when working with databases from multiple clients. You can create as many Work Sets as you like to arrange your application development efforts however you want. Of course you don't have to use Work Sets, so you can continue just using the standard navigator you've always used.

In the 8.5 Beta I was using creating a Work Set was a little awkward. When you brought up the list of databases to select from it was a rather unattractive list that showed the filename and the database title, like this:

hr_database.nsf;HR Database
it_tickets.nsf;IT Trouble Tickets

With a few dozen databases in the list it was difficult to navigate. I suggested that they show the database title first, and they put it into a grid so it's easier to read. After all, who really remembers the filename of a database? You see the title most often, so that's what should be visible first. Having the filename is important, but not the most important thing.

An interesting thing about Work Sets is you could end up with the same design element in multiple databases. I wasn't clear on whether it was simply name matching ("Customer" form could be in two different databases in the same Work Set but actually be completely different) or based on inheritance or design note ID's. Anyway, the reason I'm bringing this up is because the way it is currently implemented if you have a design element open in the editor it will show a selection focus around all the databases that contain it. Since I'm not clear on how this is determined I'm not sure what that's supposed to do for me. I think I would rather just have it highlight the one database I'm currently working in (like Designer does today) and have a separate Inheritance Hierarchy navigator to show me where the current design element will end up.

I'll cover more about XPages shortly, but I wanted to talk about the XPage editor for a minute. You can drag controls onto the page and bind them to a datasource, which you can create on the fly. Your data can come from Notes, an RDBMS, an XML file or even a web service. You can have multiple datasources represented on a single page. When you open up the dialog to select a Notes database as your datasource it's identical to the one to add a database to a Work Set. That is, it's hugely unappealing and difficult to navigate. It also doesn't start with the databases you currently have open in your Database Navigator or Work Set. I suggested that as a start, as well as separating it into a grid.

While editing an XPage you learn that a lot of the properties of the controls on the page are computable. For example, you can compute the values in a combobox based on the value entered into a field, or the selection in another combobox. Margo asked me to compute the value for any property I could, which brought up the question: How do I know what is computable? At first glance I couldn't figure it out. I scoured the screen, I looked at multiple control types, and I even tried searching the help. I finally started clicking on everything I could find on the screen. Margo eventually had pity on me and told me that any property with a blue diamond beside it is computable. Not the most intuitive mnemonic, but I could learn it. I was told this is a holdover from Workplace Forms and Lotus Component Designer, and they're working on the right mnemonics for Notes. She said they were considering an @ sign or perhaps a graphical "fn" designation, both of which were more immediately obvious in other tests they had done. If you see any preliminary screenshots just know that the blue diamonds mean you can enter formula or Javascript to compute the value.

While working with Designer 8.5 I got annoyed by two things. First, you have to double-click in the database navigator to open a design element. Margo said every single person she had worked with during usability sessions, both before Lotusphere and at the conference, had the same reaction: click the design element once and wait for something to happen. Either they would ask if it's broken or they would try double-clicking.

Thinking that it was insane for every single person she had ever seen to have the same usability issue, I questioned why this was left this way. She said they had intentionally made the decision that it would be better to retrain Notes developers for some features of Eclipse rather than make Eclipse more like Domino Designer. I pointed out that this was Domino Designer, not Eclipse. She started to argue with me, but after that sank in for a few minutes she reacted like she had never considered that point of view before. Yes, you can use Domino Designer 8.5 for both Notes, Java and Expeditor development. I truly don't care. It's Domino Designer, and making every Notes developer learn the Eclipse way just because Domino Designer is fronted by Eclipse is ridiculous.

Te second thing that got confusing was figuring out what had the focus. Consider the following picture (from Maureen's blog):


The Save button obviously has the focus so what is the property window showing? If you look at the navigator on the left you can see the qt1a XPage is selected, so it's the properties of the XPage design element. But the Save button is selected... how is that possible?

Simply put, you can have multiple things selected at once. Each Eclipse view maintains its own selection focus. Your only indication of what is selected is the property window, but the property window doesn't clearly tell you what you currently have selected. You have to derive it based on what properties are visible. At one point I had as many as four different things on the screen with focus highlights but I couldn't tell what had the focus. This really needs to be addressed.

I love the functionality that is coming with Domino Designer in Eclipse, but I sincerely hope that IBM doesn't try to change 15+ years of naming conventions and 10+ years of usability overnight. I'll be the first in line to set fire to the old Domino Designer (sorry Andre, Maureen, et al.), but there are parts that work and changing them for no good reason would be a tremendous mistake. Designer 8.5 in Eclipse should just be another release of Designer. It shouldn't try to turn Notes developers into Eclipse developers.

I'll go on the record saying I'm not a fan of Eclipse. I have downloaded it multiple times and tried to use it for HTML, CSS and Java. I've even tried using it for Ruby, Perl and PHP. In every case I have found it confusing and downright bad from a usability point of view. My biggest issue is it introduces a wholly new naming system that has absolutely nothing to do with anything else you've ever seen, and I don't understand why that was necessary.

It's not a design window, it's an editor. It's not a property window or database navigator, it's a view. The combination of editors and views creates a perspective, which you can supposedly somehow save together. And somehow perspectives relate to workbenches, but that one is just too obtuse for me to fully grasp. The Eclipse terminology was peppered throughout my UX session, and it quickly got annoying having to translate everything. I would be asked to "use the Navigator view" and I'd go to the database navigator, expand Views, and look for "Navigator".

[Note: I don't intend to open a discussion about Eclipse terminology here. I'm simply pointing out that it's totally foreign for the majority of Notes developers, and IBM's slavish adherence to it creates a cognitive gap for their customers. From what I saw IBM is trying to ram this down Notes developers' throats in Designer 8.5 and I don't like it one bit.]

11:15 - Advanced LotusScript: Design Programming using XML and DXL

Andre Guirard

DXL can be used to update many design elements in Notes. This involves exporting a design element, making changes, and reimporting it. You can also export design elements, apply an XML style sheet (XSLT) using NotesXMLTransformer, and then get information about your design elements.

To get DXL out of a database you use NotesDXLExporter. To get it back in you use NotesDXLImporter. There is a menu in Domino Designer to kick off the Exporter, but not one for the Importer. You'll have to code that yourself. Anyone with Reader access or higher can export a NotesDocument, but you will need Designer or Manager to import any DXL.

DXL is just a text file, so you can parse that manually if you like. Notes has two built-in objects to help you work with DXL, NotesDOMParser and NotesSAX Parser. The difference between the two is NotesDOMParser simply takes an XML document (it doesn't have to be DXL) and presents it as a document map. You can either iterate through this manually and parse the XML, or you can hook the NotesDOMParser into a NotesSAXParser. The SAXParser will trigger events based on the tags you specify.

Andre Guirard has published the Design Element Finder application which uses DXL to locate a design element.