Friday, January 22, 2010
A cloud-based document sharing service that should be on your radar
I have been using box.net for a long time. They started out as another "me too" file sharing service. Over time they have adapted to the changing landscape and now have an incredibly compelling set of cloud-based document editing capabilities. I'm testing it out now and I'm very impressed. If you're in the market for cloud-based document sharing, box.net has an excellent toolset.
Tuesday, January 19, 2010
Finding the cluster size on Windows iSCSI targets
We're preparing to extend our SAN at work and use the new space as an opportunity to clean up our earlier sins. We are using an HP AiO 1200R iSCSI SAN, which runs Windows Storage Server 2003. This is connected to our HP BLc-3000 via iSCSI. The BLc-3000 has six blades all running VMware ESX 3.5.
As we start the process of rearranging our storage, we need to figure out was how the AiO presents the storage to VMware. We can see the RAID volumes on the AiO, but they aren't assigned drive letters. This makes it difficult to work with them because most of the Windows disk management tools assume there are drive letters.
After a lot of fiddling around we finally found it:

You'll notice there is an entry in Disk Management called Data Volume but nothing with that name in C:\Data Volumes\. If you look at the leftmost dialog showing the disk space you can see this is a 1.93TB volume with the name Data Volume, which means it is mapped through C:\Data Volumes\Data Volume 2. I know it is confusing and it may be unique to our environment, but it caused us some frustration so I wanted to mention it. To match up the volume names you need to right-click the folder in C:\Data Volumes\ and select Properties, then click the Properties button beside Type: Mounted Volume to show the iSCSI disk properties. This will show you the volume name as it appears in Disk Management and let you match the volume names to C:\Data Volumes\ mount points. Just to be clear, it is the folder name in C:\Data Volumes that you want to feed into fsutil. Here is the output from my server:
As we start the process of rearranging our storage, we need to figure out was how the AiO presents the storage to VMware. We can see the RAID volumes on the AiO, but they aren't assigned drive letters. This makes it difficult to work with them because most of the Windows disk management tools assume there are drive letters.
After a lot of fiddling around we finally found it:
fsutil fsinfo ntfsinfo "c:\data volumes\This syntax is necessary because the iSCSI volumes are mounted through junctions that are defined in the C:\Data Volumes\ path. There are two key things to note here. First, the folder names listed in the C:\Data Volumes\ folder have nothing at all to do with the volume names you'll find in Disk Management or diskpart. They are simply mount points and could be called anything. In the following image I have Disk Management open as well as the properties of one of my C:\Data Volumes\ entries.[volume name]"

You'll notice there is an entry in Disk Management called Data Volume but nothing with that name in C:\Data Volumes\. If you look at the leftmost dialog showing the disk space you can see this is a 1.93TB volume with the name Data Volume, which means it is mapped through C:\Data Volumes\Data Volume 2. I know it is confusing and it may be unique to our environment, but it caused us some frustration so I wanted to mention it. To match up the volume names you need to right-click the folder in C:\Data Volumes\ and select Properties, then click the Properties button beside Type: Mounted Volume to show the iSCSI disk properties. This will show you the volume name as it appears in Disk Management and let you match the volume names to C:\Data Volumes\ mount points. Just to be clear, it is the folder name in C:\Data Volumes that you want to feed into fsutil. Here is the output from my server:
Secondly, and this is a lot simpler, don't use a trailing slash on the volume name.C:\>fsutil fsinfo ntfsinfo "c:\data volumes\data volume 2"
NTFS Volume Serial Number : 0xe0b404f1b404cc4a
Version : 3.1
Number Sectors : 0x00000000f85df672
Total Clusters : 0x000000001f0bbece
Free Clusters : 0x0000000006823dee
Total Reserved : 0x0000000000000000
Bytes Per Sector : 512
Bytes Per Cluster : 4096
Bytes Per FileRecord Segment : 1024
Clusters Per FileRecord Segment : 0
Mft Valid Data Length : 0x000000002b358000
Mft Start Lcn : 0x00000000000c0000
Mft2 Start Lcn : 0x000000000f85df67
Mft Zone Start : 0x00000000000ea960
Mft Zone End : 0x0000000003ed77e0
Wednesday, January 13, 2010
Recent cooking experiments
After the 42 hour pot roast I did two more. These were sirloin instead of chuck (they're from a different part of the cow). Sirloin has less connective tissue and is much leaner so it's often ground to mix with fattier cuts or cut up to use as stew meat.
The first sirloin roast went in for 21 hours and we ate about half of it, but it didn't have the texture I wanted. It was "done" but a little tough. I put the other half back in the bag and let it cook for another 24 hours, for a grand total of 45 hours. It came out with a texture like pastrami, which was great, but it was a little dry. Here were the final results:


After all this I finally decided that pot roast is just better done in a conventional oven so those experiments are over. Last night I put a chunk of boneless pork loin in at 58C and left it until I got home tonight. The total cooking time was about 20 hours. This was one of the best pieces of pork I've ever had. It was tender and succulent and had an incredible flavor. I browned it in a cast iron skillet after it was done to give it a bit of texture, and spooned some reduced apple juice over the top to serve. It was divine!


Right now I have some chicken breast cooking at 63.5C. I'll be sure to share how those go. I will be moving my cooking posts to a new site shortly and return this one to technical content. That way the people only interested in one or the other won't have to sift through the rest. Stay tuned!
The first sirloin roast went in for 21 hours and we ate about half of it, but it didn't have the texture I wanted. It was "done" but a little tough. I put the other half back in the bag and let it cook for another 24 hours, for a grand total of 45 hours. It came out with a texture like pastrami, which was great, but it was a little dry. Here were the final results:


After all this I finally decided that pot roast is just better done in a conventional oven so those experiments are over. Last night I put a chunk of boneless pork loin in at 58C and left it until I got home tonight. The total cooking time was about 20 hours. This was one of the best pieces of pork I've ever had. It was tender and succulent and had an incredible flavor. I browned it in a cast iron skillet after it was done to give it a bit of texture, and spooned some reduced apple juice over the top to serve. It was divine!


Right now I have some chicken breast cooking at 63.5C. I'll be sure to share how those go. I will be moving my cooking posts to a new site shortly and return this one to technical content. That way the people only interested in one or the other won't have to sift through the rest. Stay tuned!
Saturday, January 02, 2010
How to cook pot roast in 42 short hours!
I did my osso bucco experiment this past Thursday. After I pulled that out, in went a 6 pound chuck roast. I put some salt and pepper on it, and thinly sliced a stalk of celery to go with it. I read online that said a beef roast should be cooked at 58C to 64C for four to 18 hours. I set the temperature at 58C, put in the chuck roast at 6PM on Thursday, and checked on it around midnight. It was still tough so I left it until noon on Friday. That was 18 hours, and it was still tough.
Frustrated I turned to the Internet to find out the why piece of the failure puzzle. I finally came up with what seemed like reliable sources that said you had to cook tough cuts between 64C and 68C for 12 to 18 hours. I set my cooker to 68C at about noon on Friday, and left it alone until noon on Saturday. Here are the results.

This was after cooking for 18 hours. The pot roast is in a regular non-vacuum-sealed Zip-Lock bag. I squeezed as much air out as possible, then inserted a straw to suck the rest out. It's kind of gross and I probably won't be using that technique again. We use the double-layer bags to prevent freezer burn and the two layers have air between them, so it kept floating. I weighed it down with some small plates to keep it submerged.

The final product after a total of 42 hours cook time.

Breaking it down for plating. You can see that there is still a bit of fat marbled in the roast, but it wasn't cooked at such a high temperature that it all melted out. It created a succulent and delicious flavor.

The definition of fork tender.

The final plate. Corn bread, hoppin john, whipped sweet potatoes, and pot roast with brown gravy.
The score is now tied 1 to 1. :-) Next up: poached pears.
Frustrated I turned to the Internet to find out the why piece of the failure puzzle. I finally came up with what seemed like reliable sources that said you had to cook tough cuts between 64C and 68C for 12 to 18 hours. I set my cooker to 68C at about noon on Friday, and left it alone until noon on Saturday. Here are the results.

This was after cooking for 18 hours. The pot roast is in a regular non-vacuum-sealed Zip-Lock bag. I squeezed as much air out as possible, then inserted a straw to suck the rest out. It's kind of gross and I probably won't be using that technique again. We use the double-layer bags to prevent freezer burn and the two layers have air between them, so it kept floating. I weighed it down with some small plates to keep it submerged.

The final product after a total of 42 hours cook time.

Breaking it down for plating. You can see that there is still a bit of fat marbled in the roast, but it wasn't cooked at such a high temperature that it all melted out. It created a succulent and delicious flavor.

The definition of fork tender.

The final plate. Corn bread, hoppin john, whipped sweet potatoes, and pot roast with brown gravy.
The score is now tied 1 to 1. :-) Next up: poached pears.
Friday, January 01, 2010
My first experiment with my Sous Vide Supreme
For Christmas Myron got me a Sous Vide Supreme. The idea is you put food in vacuum sealed bags, then let them slowly cook to the proper temperature in a very precisely controlled water bath. It is widely used in high end restaurants because you can cook food to the desired temperature and it just stays at that temperature. You can cook a perfectly medium rare steak and leave it for days without hurting it.
My first experiment was veal osso bucco. This is a cross-section of the lower leg, and typically you braise it for two to three hours in the oven. The closest thing I could find in the cookbook that came with the Sous Vide Supreme was bone in pork, which said 58C to 60C for four to six hours.
I put a little salt and pepper and a small pinch of saffron on each piece of osso bucco, put two per bag, and sealed them. Then I set the temperature on the Sous Vide Supreme to 58C and dropped them in and left them for six hours. Here is how it looked before I pulled it out of the cooker. Yes, it is done at this point and yes, I know it looks like brains.

I made a sauce from sauteed onions and celery with a touch of browned butter, chicken stock and heavy cream, and served the osso bucco with honey glazed carrots with pine nuts and green beans with sherry vinegar. Here are the results:

So, how did it taste? The flavor was okay, but the texture was weird. Sous vide cooking doesn't create crispness or browning, so you have to try to get that after the fact. You run the risk of overcooking it, though, since it's already completely cooked. The other issue is osso bucco has a lot of connective tissue. After doing more research I have learned that 58C just isn't hot enough to dissolve it, you need at least 60C.
One experiment, one mediocre result. I have a chuck roast cooking now, and I'll follow up after I pull it out. I already know I started out totally wrong so now I'm hoping to salvage it. The joys of experimentation. :-)
My first experiment was veal osso bucco. This is a cross-section of the lower leg, and typically you braise it for two to three hours in the oven. The closest thing I could find in the cookbook that came with the Sous Vide Supreme was bone in pork, which said 58C to 60C for four to six hours.
I put a little salt and pepper and a small pinch of saffron on each piece of osso bucco, put two per bag, and sealed them. Then I set the temperature on the Sous Vide Supreme to 58C and dropped them in and left them for six hours. Here is how it looked before I pulled it out of the cooker. Yes, it is done at this point and yes, I know it looks like brains.

I made a sauce from sauteed onions and celery with a touch of browned butter, chicken stock and heavy cream, and served the osso bucco with honey glazed carrots with pine nuts and green beans with sherry vinegar. Here are the results:

So, how did it taste? The flavor was okay, but the texture was weird. Sous vide cooking doesn't create crispness or browning, so you have to try to get that after the fact. You run the risk of overcooking it, though, since it's already completely cooked. The other issue is osso bucco has a lot of connective tissue. After doing more research I have learned that 58C just isn't hot enough to dissolve it, you need at least 60C.
One experiment, one mediocre result. I have a chuck roast cooking now, and I'll follow up after I pull it out. I already know I started out totally wrong so now I'm hoping to salvage it. The joys of experimentation. :-)
Tuesday, December 15, 2009
Problem with Acrobat Reader Active X control on a Notes 8.5.1 Form
Whenever I add an Adobe Acrobat Reader ActiveX control to a Notes form, save the form, then try to open it, I get an error. I can't actually use the control. I get the same error if I load the database in the Notes 8.5.1 client and try to create or load a document based on the form. No other ActiveX control gives me this problem. Anyone have any suggestions?UPDATE: I can use the Acrobat Reader control from Access 2003, VB 6, VB.Net and C#. I am working on setting up Notes 7 so I can see if this problem is specific to 8.5.1.
UPDATE #2: Confirmed it is also a problem on 7.0.4. Opening a PMR now.
Thursday, November 05, 2009
SnTT: tracking down space hogs in Notes
You all have them. People who keep every stinking e-mail they ever received for the past 10 years. They can't possibly delete that e-mail response that simply says "thanks" because it would destroy their CYA audit trail. Your storage budget looks like the national deficit so finally management is asking why you need that much space. You want to give them a clean report showing who is using their mail as a vast garbage dump.
Creating a Notes agent to loop through the mail directory, open each database, and extract the space used and percent free is trivial. But on your server with 1000+ mail databases and dozens or hundreds that are over a gig, it takes a while to run and bogs down the server. So what can you do?
Enter the Lotus C API. Notes doesn't use the same entry point you do when it's working with databases. Notes uses the spiffy C API, which runs at a lower level. LotusScript code has to be interpreted, so there is some lag. And once it's interpreted it ends up calling the C API. You can bypass the middle man and hit the C API directly.
In this case you only need three C API calls: NSFDbOpen, NSFDbClose and NSFDbSpaceUsed. Add in a NotesDBDirectory and a loop and you're good to go. The following will create documents and put them into a view that has the first column set to "# in view". The second column is the dbsize. It then walks the view to write the position in the view to each record.
This LotusScript was converted to HTML using the ls2html routine,
provided by Julian Robichaux at nsftools.com.
[UPDATED 11/5/2009 9:25 AM to include the NSFDbClose code to prevent a memory leak.]
Creating a Notes agent to loop through the mail directory, open each database, and extract the space used and percent free is trivial. But on your server with 1000+ mail databases and dozens or hundreds that are over a gig, it takes a while to run and bogs down the server. So what can you do?
Enter the Lotus C API. Notes doesn't use the same entry point you do when it's working with databases. Notes uses the spiffy C API, which runs at a lower level. LotusScript code has to be interpreted, so there is some lag. And once it's interpreted it ends up calling the C API. You can bypass the middle man and hit the C API directly.
In this case you only need three C API calls: NSFDbOpen, NSFDbClose and NSFDbSpaceUsed. Add in a NotesDBDirectory and a loop and you're good to go. The following will create documents and put them into a view that has the first column set to "# in view". The second column is the dbsize. It then walks the view to write the position in the view to each record.
(Declarations)
Declare Function NSFDbOpen Lib "nnotes.dll" Alias "NSFDbOpen" (Byval dbName As String, hDb As Long) As Integer
Declare Function NSFDbClose Lib "nnotes.dll" Alias "NSFDbClose" (hDb As Long) As Integer
Declare Function NSFDbSpaceUsage Lib "nnotes.dll" Alias "NSFDbSpaceUsage" (ByVal hDB As Long, retAllocatedBytes As Long, retFreeBytes As Long) As Integer
Sub Initialize
Dim s As New NotesSession
Dim rdoc As NotesDocument
Dim mfile As String
Dim success As Variant
Dim pmail As String
Dim dbdir As New NotesDbDirectory("server/domain")
Dim db As NotesDatabase
Dim thisDb As NotesDatabase
Dim view As NotesView
Dim nvec As NotesViewEntryCollection
Dim eOne As NotesViewEntry
Dim eTWo As NotesViewEntry
Dim dbHandle As Long
Dim usedBytes As Long
Dim freeBytes As Long
'Using NotesDBDirectory gives us a handle to the database
'and limited information about it. The rest of the
'information, such as PercentUsed, won't be populated until
'db.Open is called, which we don't want to do because
'that's what drags the server down. Instead we'll combine
'information from the closed database and some Notes C API
'calls to get the specific information we want.
Set db = dbdir.GetFirstDatabase(DATABASE)
While Not db Is Nothing
mfile = db.FilePath
'Only get databases in the mail subdirectory
If Left$(mfile, 4) = "mail" Then
'Get a handle to the database. The NotesDatabase object
'has a LotusScript handle, we need a C API handle.
Call NSFDbOpen ("server/domain!!" + mfile, dbHandle)
If dbHandle <> 0 Then
'Peek inside and get the used bytes and free bytes
Call NSFDbSpaceUsage(dbHandle, usedBytes, freeBytes)
'We have what we need so close the C API handle to prevent a memory leak
Call NSFDbClose(dbHandle)
End If
Set rdoc = New NotesDocument(s.CurrentDatabase)
rdoc.form = "EmailRecord"
rdoc.dbFilename = FilePath
rdoc.title = db.title
rdoc.mailfile = db.FilePath
rdoc.dbsize = db.size
rdoc.pctused = Round((usedBytes / db.size, 2) * 100
rdoc.server = db.Server
rdoc.Username = db.Title
Call rdoc.Save(True,False)
mfile = ""
End If
Set db = dbdir.GetNextDatabase
Wend
' Next we walk the all docs view and write the user's ranking to their document
Set thisDB = s.CurrentDatabase
Set view = thisDb.GetView("AllDocs")
Set nvec = view.AllEntries
Set eOne = nvec.GetFirstEntry
Do Until eOne Is Nothing
Set doc = eOne.Document
Print "On doc " + Cstr( eOne.GetPosition("."))
doc.Ranking = Cstr( eOne.GetPosition("."))
Call doc.Save(True, False)
Set eTwo = eOne
Set eOne = nvec.GetNextEntry( eTwo )
Loop
End Sub
provided by Julian Robichaux at nsftools.com.
[UPDATED 11/5/2009 9:25 AM to include the NSFDbClose code to prevent a memory leak.]
Wednesday, November 04, 2009
Another resource for the Notes community
There are several online communities for the Notes community: developerWorks forums, BleedYellow Sametime, PlanetLotus, and IdeaJam just to name a few. There is another one that not as many people visit, the #notes channel on IRC. Consider this your invitation to join the discussion there. In case you don't have an IRC client or even know what IRC is, here is a widget that will get you going quickly
Chat here
This is all AJAX, no Java or ActiveX required. Just open the link, enter a nickname, and join the conversation. If it looks like nobody is active just say hi or ask a question. Someone will probably respond. :-)
Chat here
This is all AJAX, no Java or ActiveX required. Just open the link, enter a nickname, and join the conversation. If it looks like nobody is active just say hi or ask a question. Someone will probably respond. :-)
Tuesday, November 03, 2009
What do you do when Notes 8.5.1 just won't install?
My friend Adam has a problem. He can't install Notes 8.5.1. Every time he tries he gets the following error:
It is documented as SPR# DDES7L9SEV, and IBM thought they had it fixed in 8.0.2 FP2 and 8.5 FP1. SPR #TONN7WTQQE was opened based on reports this is happening in 8.5.1, which I can confirm it really is.
Adam called Lotus support and they had him uninstall Notes, manually remove all the directories and Registry entries, and try again. It still failed with the same error. He sent in NSD's and other logs and there was no resolution. The final response he received was that it is under investigation. At this point he is stuck not being able to install 8.5.1 at all on his computer, which means he can't test his applications for compatibility.
This morning the same thing happened to me. I upgraded a test VM from 8.5 FP1 to 8.5.1 and got the same 0x1B1 error as Adam. I tried the same cleanup he did but it didn't help me, either. I'm writing this while I'm waiting for Windows to install in a new VM so I can see if it was just a fluke. Whether it is or not, this hardly inspires confidence.
0x1B1 - Version mismatch between executable and preexisting shared memory versions! EXITING. You may need to stop RTVSCAN or reboot.
It is documented as SPR# DDES7L9SEV, and IBM thought they had it fixed in 8.0.2 FP2 and 8.5 FP1. SPR #TONN7WTQQE was opened based on reports this is happening in 8.5.1, which I can confirm it really is.
Adam called Lotus support and they had him uninstall Notes, manually remove all the directories and Registry entries, and try again. It still failed with the same error. He sent in NSD's and other logs and there was no resolution. The final response he received was that it is under investigation. At this point he is stuck not being able to install 8.5.1 at all on his computer, which means he can't test his applications for compatibility.
This morning the same thing happened to me. I upgraded a test VM from 8.5 FP1 to 8.5.1 and got the same 0x1B1 error as Adam. I tried the same cleanup he did but it didn't help me, either. I'm writing this while I'm waiting for Windows to install in a new VM so I can see if it was just a fluke. Whether it is or not, this hardly inspires confidence.
Thursday, October 29, 2009
Lotus Center for Advanced Collaboration
IBM opened one in Pune, India. Is there one in the US? I'm not being snarky, I'm genuinely curious. I have never heard of such a thing from IBM. I know other vendors, such as Avaya and Cisco, have customer-focused campuses, but I am not aware of anything like that from IBM.
Monday, October 19, 2009
Thursday, October 01, 2009
SnTT: How to tell if the Notes client is Standard or Basic
A lot of people have been asking on the forums lately how to tell whether the Notes client is running in Basic or Standard configuration. You can use @IsEmbeddedInsideWCT or NotesUIWorkspace.IsEmbeddedInsideWCT. The Workplace Client the help refers to morphed into Lotus Expeditor, which is the framework for the Notes 8 Standard client.
Saturday, September 19, 2009
Windows 7 Enterprise first look
Those of you who are Facebook friends might recall me talking about problems with my home computer's motherboard. In particular the audio drivers would crash and I'd have to reboot to restore sound. I also could not get it to recognize 4GB RAM, and I had to do all sorts of strange things just to get Windows XP to install.
A few weeks ago I finally bought an open box Asus M3N-HT. It was about this time that Microsoft offered a 90-day trial license of Windows 7 Enterprise for IT professionals. I have two Western Digital 1TB drives and one was mostly empty, so I decided to go for it.
I swapped out the motherboard rather easily, with only three small problems. First, while I was pulling the CPU out of my old motherboard I smeared CPU thermal grease across the pins on one side. I wasn't sure if it was conductive or not, but to be on the safe side a toothbrush and some rubbing alcohol took care of that. The second was figuring out which SATA port was #1. I needed to know because the #1 port is where you connect the boot drive. The six SATA ports are on the edge of the motherboard, in three columns of two ports each. Was the bottom #1 or the top? It turns out it's the top.
Finally, many new motherboards have what's called AHCI mode, which is used to enable some advanced features including more SATA ports. My motherboard has 6 SATA ports total, but I can only use 4 of them unless I enable AHCI or RAID mode. When did this I could not get my computer to boot from my SATA DVD drive. It turns out that this is not a supported configuration for this motherboard. If I want to install an OS with AHCI enabled from the start I would have to boot from an IDE optical drive. I'm not particularly concerned because I'm only using 4 SATA ports right now amd Windows Vista and Windows 7 support enabling AHCI later.
I had already burned the Windows 7 Enterprise 64-bit ISO to a DVD, so after I had all the above sorted out I popped that in and fired up the installer. It was completely painless. The installer loads in a graphical screen instead of the old DOS style like Windows XP used, and it loads much faster. I deleted the partition already on the drive I was installing to and let the installer recreate it. It added a 100MB system partition whose purpose I don't know yet, then created the primary partition on the remainder of the drive. The entire installation process took about 30 - 45 minutes. I left it running while I loaded the dishwasher so I'm not sure of the exact time. I heard my computer reboot twice during the process, and I came back and it was at a login screen.
The very first thing I noticed was Windows had automatically set itself to my monitors' native resolution, which is 1440x900, and both monitors were working. That was interesting. When I logged in my computer made a noise and I had to ask Myron if that was my computer or his. It was mine, so apparently my sound was working, too. With Windows XP I always had to install video and audio drivers before anything worked, so I wondered what else had the Windows 7 installation done automatically?
I finally tracked down the device manager and was stunned to see that everything had a driver. My audio worked, my video worked, and my network worked. I didn't have to install a single driver. It listed my video card as an nVidia GeForce 9800GTX+, my keyboard as a Saitek Eclipse and my mouse as a Logitech TrackMan Marble. It even loaded the nVidia Control Panel software.
The first thing I did from here was install Thunderbird so I could get to my e-mail. IE8 prompted me to make sure I wanted to download the file, then Windows prompted me again when I ran the installer. This was the first time I had gotten any security prompts. Thunderbird installed fine, I copied the contents of my Thunderbird profile to the clipboard... then couldn't find where to put it. A quick search (using Bing) showed they had moved it to a folder called Roaming in my user profile. I found the Thunderbird folder there, pasted in my old profile, loaded Thunderbird, and e-mail started flowing in.
While I was working with the new Windows Explorer I noticed it wasn't showing me file extensions. And I didn't have toolbars. I tried right-clicking the area where the toolbars should be and nothing happened. Another Internet search and I learn I have to go through the Control Panel to set folder options. I changed those and they took place immediately in my open Explorer window.
As you may have guessed, I haven't worked with Windows Vista yet, so there is going to be a bit of a learning curve. So far I really like Windows 7. It's fast, it looks nice, andit's not so different that I want to scream in frustration (yet). My initial impression is Windows 7 is to Windows Vista what Notes 8.5.1 is to Notes 8: what it should have been from the beginning.
Motherboardectomy
A few weeks ago I finally bought an open box Asus M3N-HT. It was about this time that Microsoft offered a 90-day trial license of Windows 7 Enterprise for IT professionals. I have two Western Digital 1TB drives and one was mostly empty, so I decided to go for it.
I swapped out the motherboard rather easily, with only three small problems. First, while I was pulling the CPU out of my old motherboard I smeared CPU thermal grease across the pins on one side. I wasn't sure if it was conductive or not, but to be on the safe side a toothbrush and some rubbing alcohol took care of that. The second was figuring out which SATA port was #1. I needed to know because the #1 port is where you connect the boot drive. The six SATA ports are on the edge of the motherboard, in three columns of two ports each. Was the bottom #1 or the top? It turns out it's the top.
Finally, many new motherboards have what's called AHCI mode, which is used to enable some advanced features including more SATA ports. My motherboard has 6 SATA ports total, but I can only use 4 of them unless I enable AHCI or RAID mode. When did this I could not get my computer to boot from my SATA DVD drive. It turns out that this is not a supported configuration for this motherboard. If I want to install an OS with AHCI enabled from the start I would have to boot from an IDE optical drive. I'm not particularly concerned because I'm only using 4 SATA ports right now amd Windows Vista and Windows 7 support enabling AHCI later.
GO!
I had already burned the Windows 7 Enterprise 64-bit ISO to a DVD, so after I had all the above sorted out I popped that in and fired up the installer. It was completely painless. The installer loads in a graphical screen instead of the old DOS style like Windows XP used, and it loads much faster. I deleted the partition already on the drive I was installing to and let the installer recreate it. It added a 100MB system partition whose purpose I don't know yet, then created the primary partition on the remainder of the drive. The entire installation process took about 30 - 45 minutes. I left it running while I loaded the dishwasher so I'm not sure of the exact time. I heard my computer reboot twice during the process, and I came back and it was at a login screen.
Finishing Installation
The very first thing I noticed was Windows had automatically set itself to my monitors' native resolution, which is 1440x900, and both monitors were working. That was interesting. When I logged in my computer made a noise and I had to ask Myron if that was my computer or his. It was mine, so apparently my sound was working, too. With Windows XP I always had to install video and audio drivers before anything worked, so I wondered what else had the Windows 7 installation done automatically?
I finally tracked down the device manager and was stunned to see that everything had a driver. My audio worked, my video worked, and my network worked. I didn't have to install a single driver. It listed my video card as an nVidia GeForce 9800GTX+, my keyboard as a Saitek Eclipse and my mouse as a Logitech TrackMan Marble. It even loaded the nVidia Control Panel software.
First impressions
The first thing I did from here was install Thunderbird so I could get to my e-mail. IE8 prompted me to make sure I wanted to download the file, then Windows prompted me again when I ran the installer. This was the first time I had gotten any security prompts. Thunderbird installed fine, I copied the contents of my Thunderbird profile to the clipboard... then couldn't find where to put it. A quick search (using Bing) showed they had moved it to a folder called Roaming in my user profile. I found the Thunderbird folder there, pasted in my old profile, loaded Thunderbird, and e-mail started flowing in.
While I was working with the new Windows Explorer I noticed it wasn't showing me file extensions. And I didn't have toolbars. I tried right-clicking the area where the toolbars should be and nothing happened. Another Internet search and I learn I have to go through the Control Panel to set folder options. I changed those and they took place immediately in my open Explorer window.
Wrap up
As you may have guessed, I haven't worked with Windows Vista yet, so there is going to be a bit of a learning curve. So far I really like Windows 7. It's fast, it looks nice, andit's not so different that I want to scream in frustration (yet). My initial impression is Windows 7 is to Windows Vista what Notes 8.5.1 is to Notes 8: what it should have been from the beginning.
Sunday, September 06, 2009
My impressions of Lotus Notes and Domino 8.5.1 beta
For those of you looking for my food-oriented writing, keep moving. This isn't going to make much sense. :-)
It is no secret that in my day job I work with Visual Studio, Access and SQL Server and we use Outlook and Exchange for e-mail. But we don't have a collaboration platform. We tried Sharepoint and it became apparent it wasn't for us when I couldn't even get a demo environment set up in a reasonable amount of time. I tried out Notes and Domino 8, but I have been very disappointed with the performance and overall build quality of every release so far.
The worst bugs were in Domino Designer, and I happen to be a developer. Since the other user populations -- end users and administrators -- were getting lots of new features that actually mostly worked, I finally decided that IBM simply didn't care. Here's how the cycle would go: we would yell at them at Lotusphere and they'd make a promise to do better and we'd cheer. Several months later they'd give us something half-baked, we'd yell, they'd make a promise to do better at Lotusphere and we'd cheer. Lather, rinse, repeat.
As if to prove this point, the first Domino Designer in Eclipse is an atrocity. It just doesn't work. Period. There are scores of regression bugs and much of the new functionality is not complete. Things that were promised and demoed at Lotusphere 2008 were not shipped in this release, which came out in January 2009. I had participated in usability sessions during which I was told the functionality I was working with would be in 8.5, but it wasn't. I took it very personally. I felt like Lotus looked me in the eye and lied.
So when I heard that supposedly one of the primary goals in 8.5.1 was to fix was was left undone in 8.5 and to finally make Domino Designer a usable development environment, my first reaction was look back at the long history of broken promises and broken software and be dismissive. I finally decided that after harping about this for the better part of a decade I had to see if they were really doing it or just giving more lip service. I requested to participate in the 8.5.1 managed beta. I had to know.
Working with mail, calendar, to-do's, and follow-up items is smooth and efficient. In previous releases I had pauses of up to 20 seconds while the calendar or e-mail loaded, but that's completely gone. Now it's a second or two and it's loaded. I really like the new UI for mail and the improvements made to the icons and visual clutter since 8.0. I have not had any weird errors or application hangs and so far the toolbars haven't been moving around randomly like they used to. I haven't had a single crash yet, either. The performance and stability of the Notes client by itself has improved tremendously across the board.
I do have a list of issues with 8.5.1, some of which are quite serious. Originally I started writing a vitriolic exposé of these as well as what's been left on the cutting room floor. The license on the latest beta build dropped the secrecy requirement, so I could do that. After taking a step back and looking at the whole picture, I came to the conclusion that ultimately there is more good than bad in 8.5.1. Sure there are problems, but after screwing around for two years IBM/Lotus finally came up with something that doesn't make baby Jesus cry.
And let's not forget this is beta software and there are several weeks of development between the last beta release and the final gold build. Some of the problems I have reported may be resolved. There are a few things I already know are being deferred or simply aren't going to be available, so you can be sure a more critical writeup is coming.
Disclaimer: IBM Lotus Notes/Domino and Lotus Notes Traveler 8.5.1 is prerelease code and there are no guarantees from IBM that the functionality presented or discussed will be in the final shipping product.
Why Am I Here?
You might be thinking "Hey... I know you... aren't you that formerly relevant guy who hates Notes and Domino and now just pokes fun at Ed Brill and taunts Nathan?"It is no secret that in my day job I work with Visual Studio, Access and SQL Server and we use Outlook and Exchange for e-mail. But we don't have a collaboration platform. We tried Sharepoint and it became apparent it wasn't for us when I couldn't even get a demo environment set up in a reasonable amount of time. I tried out Notes and Domino 8, but I have been very disappointed with the performance and overall build quality of every release so far.
The worst bugs were in Domino Designer, and I happen to be a developer. Since the other user populations -- end users and administrators -- were getting lots of new features that actually mostly worked, I finally decided that IBM simply didn't care. Here's how the cycle would go: we would yell at them at Lotusphere and they'd make a promise to do better and we'd cheer. Several months later they'd give us something half-baked, we'd yell, they'd make a promise to do better at Lotusphere and we'd cheer. Lather, rinse, repeat.
As if to prove this point, the first Domino Designer in Eclipse is an atrocity. It just doesn't work. Period. There are scores of regression bugs and much of the new functionality is not complete. Things that were promised and demoed at Lotusphere 2008 were not shipped in this release, which came out in January 2009. I had participated in usability sessions during which I was told the functionality I was working with would be in 8.5, but it wasn't. I took it very personally. I felt like Lotus looked me in the eye and lied.
So when I heard that supposedly one of the primary goals in 8.5.1 was to fix was was left undone in 8.5 and to finally make Domino Designer a usable development environment, my first reaction was look back at the long history of broken promises and broken software and be dismissive. I finally decided that after harping about this for the better part of a decade I had to see if they were really doing it or just giving more lip service. I requested to participate in the 8.5.1 managed beta. I had to know.
Notes Client
The first thing I noticed is performance is much improved. From the time I double-click the Lotus Notes icon until I get the password prompt is consistently 3 - 5 seconds. After I enter my password the time to load my "My Work" home page is another 15 - 20 seconds. I used to have startup times of over 45 seconds so this is a huge improvement.Working with mail, calendar, to-do's, and follow-up items is smooth and efficient. In previous releases I had pauses of up to 20 seconds while the calendar or e-mail loaded, but that's completely gone. Now it's a second or two and it's loaded. I really like the new UI for mail and the improvements made to the icons and visual clutter since 8.0. I have not had any weird errors or application hangs and so far the toolbars haven't been moving around randomly like they used to. I haven't had a single crash yet, either. The performance and stability of the Notes client by itself has improved tremendously across the board.
Domino Designer
How about Domino Designer, the application I hated so much I changed jobs to get away from it? DDE 8.5.1 is much more responsive and much more stable than 8.5. It's still not as speedy as the old Domino Designer, but it also doesn't make me want to claw my eyes out (yet). I haven't had code go missing, and I have only had one crash. The Eclipse LotusScript editor is a little quirky and isn't what was promised, but still an improvement over what was available in previous releases. Code assist works for custom classes and will autocomplete method and property names. You can type out a function or object name, hover your mouse over it, and help pops up in a little window. I'm definitely impressed. This is close to what I expected when release 8.0 came out in August 2007.What? No Sturm and Drang?
Some of you may be shocked to see me saying mostly positive things about Notes and Domino. I've always liked the idea of the products, I just haven't liked the implementation. 8.5.1 is a game changer. It's showing the promise of the platform and is a great jumping off point. Sure it's two years late, but at least it's finally here.I do have a list of issues with 8.5.1, some of which are quite serious. Originally I started writing a vitriolic exposé of these as well as what's been left on the cutting room floor.
And let's not forget this is beta software and there are several weeks of development between the last beta release and the final gold build.
Final Thoughts
Coming full circle, the reason I'm writing this is because I am shocked by what I have seen in 8.5.1. I have been one of the harshest critics of R8 and I'm not a raving fan yet, but there is finally hope. I wrote off R8 as a lost release, one that was basically an entire beta cycle between 7 and 9. I never expected any R8 release to be usable. If you did the same you owe it to yourself to give 8.5.1 a try. It has issues and there is a lot left to be done, but is head and shoulders above any previous R8 release.Disclaimer: IBM Lotus Notes/Domino and Lotus Notes Traveler 8.5.1 is prerelease code and there are no guarantees from IBM that the functionality presented or discussed will be in the final shipping product.
Thursday, September 03, 2009
Problem with Windows Server 2003 NIC's after running VMware Converter
When you convert a physical machine to virtual, VMware Converter will create VMware-compatible network interfaces. It does not delete the old hardware interfaces that are no longer used, it simply hides them from Device Manager. When you try to assign an IP address to the new interface, you may find yourself in one of these situations:
If the first one happens it's pretty shocking because you can't give your server the IP address you want, and you can't find the interface that has it assigned. In the second case it doesn't hurt anything because it still works, it's just inconsistent and can cause some issues when troubleshooting.
To fix this follow these steps:
- You get the error "The IP address is assigned to another adapter which is hidden. In order to allocate the actual IP address of the server to the network adapter/s you'll need to remove the hidden adapters."
- You can assign the IP address, but the Network Properties dialog shows it is DHCP. ipconfig will show the static IP. Resetting the static IP in the Network Properties doesn't stick.
If the first one happens it's pretty shocking because you can't give your server the IP address you want, and you can't find the interface that has it assigned. In the second case it doesn't hurt anything because it still works, it's just inconsistent and can cause some issues when troubleshooting.
To fix this follow these steps:
- Open a command prompt on the affected VM
- Type set devmgr_show_nonpresent_devices=1 and press Enter
- Open Device Manager by typing devmgmt.msc and pressing Enter from the same command prompt
- In Device Manager click View > Show Hidden Devices
- Find the old devices and delete them
- Restart the server
Tuesday, July 21, 2009
Dining With Friends 2009 Recipes
For your reading pleasure, here are most of the recipes from this year's Dining With Friends party. If you were at the dinner, try to figure out which ones are not posted. :-) Enjoy!
And here are two more dishes that I meant to make but ran out of time.
- Black-Eyed Peas
- Vegetarian Collard Greens
- Creamy Shrimp and Grits
- Double-dipped Fried Chicken
- English Pea Salad
- Mac-n-Cheese
- Potato Salad
- Oven Roasted Pulled Pork
- Stewed Okra and Tomatoes
- Succotash
- Vinegar Coleslaw
And here are two more dishes that I meant to make but ran out of time.
Monday, June 15, 2009
Lotus Support is clearly overwhelmed
My friend Ninke logs PMR's with Lotus Support on an almost weekly basis. He checked one of his PMR's today and found this note:
There are two things this brings to mind. First, Ed Brill keeps saying that there have been fewer issues reported for R8 than previous releases. That being the case it's odd that both I and the four Domino admins I talk to almost daily, including Ninke, have all opened more PMR's for R8 than they did for any others. I'm sure Ed's statistics are more representative than my limited sample, but it's still hard for me to reconcile the official reports with what I see firsthand.
Second, why would one customer having a large number of PMR's open slow down resolution on all their PMR's? I didn't think IBM dedicated staff to resolving individual customers' problems. Even if they did that should speed things up, not slow it down. If they don't, why would the volume of open PMR's have any impact on resolution? Something seems to be broken besides Notes and Domino 8.x.
Called client and explained the reason for the delay. Enormous
amount of PMR's currently opened and ongoing, impacting
unfortunately all, especially lower prior/sev 4/4.
There are two things this brings to mind. First, Ed Brill keeps saying that there have been fewer issues reported for R8 than previous releases. That being the case it's odd that both I and the four Domino admins I talk to almost daily, including Ninke, have all opened more PMR's for R8 than they did for any others. I'm sure Ed's statistics are more representative than my limited sample, but it's still hard for me to reconcile the official reports with what I see firsthand.
Second, why would one customer having a large number of PMR's open slow down resolution on all their PMR's? I didn't think IBM dedicated staff to resolving individual customers' problems. Even if they did that should speed things up, not slow it down. If they don't, why would the volume of open PMR's have any impact on resolution? Something seems to be broken besides Notes and Domino 8.x.
Monday, April 27, 2009
VMWare ESX, virtualized DNS and an ISCI SAN
Since the fire we had last year we have replaced all our old servers with a new virtualized infrastructure. We're running VMware ESX 3.5, an HP BLc-3000 blade chassis with six blades, and an HP AiO1200R ISCSI SAN. It is working great and I have a writeup about that decision-making process that I will be publishing shortly.
Today I wanted to bring up one of the potential pitfalls when you're creating a fully virtualized environment. This past weekend we had to cut building power for an extended period of time, so the network administrator brought down everything in our server room. As he brought everything back online he realized that Virtual Center, the control console for VMware ESX, could not talk to the SAN because it required DNS resolution.
It took him a while to realize that DNS was the issue. The logs on the SAN side simply said "Could not connect ISCSI LUN". On the VMware side the virtual machines said "storage not available". Figuring out why the two were unable to connect took some careful analysis. Solving it proved difficult because our departmental wiki also used SAN storage, so he had no access to our documentation. In a flash he found himself back in the same situation he was in after the fire, when he could not access critical documentation because the servers with it were not available.
We have opted for the last option. Our VMware host environment is fairly static, so maintaining hosts files will be a minimal maintenance issue. The resilience we gain from it make it very worthwhile. Oh, and we printed a copy of our wiki page that has all the hostnames and IP addresses of every server we have, and put it in the safe. :-) You do have a similar list, and a fireproof safe... right?
Today I wanted to bring up one of the potential pitfalls when you're creating a fully virtualized environment. This past weekend we had to cut building power for an extended period of time, so the network administrator brought down everything in our server room. As he brought everything back online he realized that Virtual Center, the control console for VMware ESX, could not talk to the SAN because it required DNS resolution.
The Problem
Our DNS servers are virtualized with storage on the SAN. He ran into a chicken-and-egg situation where he had dependent services that relied on each other.It took him a while to realize that DNS was the issue. The logs on the SAN side simply said "Could not connect ISCSI LUN". On the VMware side the virtual machines said "storage not available". Figuring out why the two were unable to connect took some careful analysis. Solving it proved difficult because our departmental wiki also used SAN storage, so he had no access to our documentation. In a flash he found himself back in the same situation he was in after the fire, when he could not access critical documentation because the servers with it were not available.
The Solution
So how did he solve it? Luckily he still had the old primary domain controller hanging out, which had all the DNS information. He was extremely lucky, and he knows it. To keep from having to rely on luck, how should you configure your VMware environment so this doesn't happen to you? There are a couple of ways to tackle it.Use local storage for your virtualized name servers.
Pros- Name servers will load without SAN access.
- Resilient to SAN outages.
- Cannot mix guest VM's that require SAN storage. The ISCSI initiator in VMware ESX loads when ESX boots. By having your DNS server on the same physical host as another VM that requires SAN storage, the guest on SAN storage will not be able to start.
Use a non-virtualized DNS server.
Pros- Resilient to SAN outages.
- If using a Windows server, also requires you run Active Directory services.
Use hosts files.
Pros- Resilient to SAN outages.
- May improve performance slightly since lookups will always be from local cache.
- Requires you add hosts files to the Virtual Center server, SAN server, and every ESX host server.
- Can be a maintenance burden if your environment changes frequently and you have to constantly add/remove ESX hosts.
We have opted for the last option. Our VMware host environment is fairly static, so maintaining hosts files will be a minimal maintenance issue. The resilience we gain from it make it very worthwhile. Oh, and we printed a copy of our wiki page that has all the hostnames and IP addresses of every server we have, and put it in the safe. :-) You do have a similar list, and a fireproof safe... right?
Monday, April 20, 2009
A script to check remote computers for directories
At work we needed a way to check servers to see if certain software had been installed. The easiest way was to check for the software's installation directory. There isn't an easy way to do this remotely, though, so I wrote a script to take care of it: dircheck.vbs.
While I was writing this tool I learned a lot about VBScript. For starters, you can't interact with stdin or stdout using the default VBS command interpreter. If you try to write information to the user's console it will display everything in a popup. To fix this, you can use the special cscript interpreter:
cscript dircheck.vbs
If you execute the above command you will get command line help for the utility. Full source code is obviously included, so please feel free to use it however you need to.
While I was writing this tool I learned a lot about VBScript. For starters, you can't interact with stdin or stdout using the default VBS command interpreter. If you try to write information to the user's console it will display everything in a popup. To fix this, you can use the special cscript interpreter:
cscript dircheck.vbs
If you execute the above command you will get command line help for the utility. Full source code is obviously included, so please feel free to use it however you need to.
Subscribe to:
Posts (Atom)
