Saturday, February 24, 2007
Tuesday, February 20, 2007
Some of the work in setting up the new system had nothing to do with the new system; it was fixing file paths. I had C: and D: partitions on my old system, with only system files on C: and everything else, including applications, on D:. The logic was that if I needed to rebuild my system, I'd reinstall the operating system on C: but all of my files on D: would be untouched. Of course, I never ended up doing that, and had to live with a relatively small C: partition which required me to clean up every year or so to eliminate out of disk space errors. I decided to stick with a single partition on the new system and put all of the non-application files from the former D: partition into one folder hierarchy so all the relative paths would stay the same. Of course, absolute paths are different, so it took me a while to go through all of my projects, locating all of the files from places like the VFP home directory and FFC folder, and fixing paths to include files in various places.
The other thing that took a while that I wasn't expecting is changing from using Outlook for calendar, Outlook Express for email, and FeedDemon for RSS feeds to using Outlook 2007 for all of that. The hardest part was getting messages out of Outlook Express and into Outlook. There may be an easier way, but I didn't find it after a couple of hours of dorking around. I ended up exporting from Outlook Express and importing into Outlook on the old system, then exporting from that Outlook and importing into Outlook on the new system. I really like Outlook 2007 and don't know why I stuck with Outlook Express for so long.
The only slight glitch so far is that Dell installs a cut-down version of Roxio for CD and DVD burning. One of the drivers that comes with Roxio, the Sonic Solutions DLA driver, isn't compatible with Vista, so at startup, a "this driver is blocked due to compatibility issues" alert comes up, followed by a Program Compatibility Assistant dialog. Clicking OK once is bad enough, but for some reason, the alert and dialog would come up seven times on system start. Even worse, if I stuck a DVD in the drive, the alert/dialog combination would come up continuously until I removed the disc. This quickly became a huge PITA.
Fortunately, Google helped me find the solution at http://forums.support.roxio.com/index.php?showtopic=17098. It does require a couple of restarts, but 10 minutes later, I'm good to go.
Friday, February 09, 2007
- Intel Core 2 Duo T7200 2.0 GHz processor
- 17" widescreen WUXGA display with 256 MB ATI Radeon video card
- 2 GB (667 MHz) RAM
- 100 GB 7200 RPM drive
- DVD burner
- SD card reader and a bazillion other ports
- Two 9-cell batteries
- Vista Business
- Some junk I don't want but Dell feels is necessary to install, like Norton Internet Security one-month trial subscription
I've been playing with Vista on my home system (which is also relatively new; I replaced my aging Compaq with a new Dell desktop a couple of months ago) for about a month and like it a lot (the subject of another posting).
I'm very anal about setting up a new system (those of you who know me would suggest I'm anal about everything), so I spent a couple of hours this morning documenting in great detail exactly how I'm going to set up the new system, with special attention to what comes off my old system and onto my new one. It isn't as easy as you think; obviously, I can simply move files from one to the other, but what about all of the little settings you've configured over the years, like:
- Browser favorites
- Demo themes
- Windows Explorer settings, like whether to display file extensions (yes) and show hidden files (yes)
- Desktop and Taskbar customization
- Network and printer settings
- File associations (I like to associate DLL and OCX files with RegSvr32 so I can just double-click to register them)
and a hundred others. Fortunately, I've been mostly documenting system customization as I go, so I just needed to update the document and go over the various folders on my old system to decide what to move, what to throw away, and what to archive and not move.
I'm also breaking Rick Schummer's law (which I adopted years ago) of never installing or otherwise changing your system a month before a conference. I'm planning on taking the new laptop to OzFox, which is only a couple of weeks away, and you can't get much more "changish" than to replace the whole freakin' system. Normally, I wouldn't do anything so foolhardy, but Rick and I are doing the keynote, part of which is to show the very cool Vista Toolkit Craig Boyd has been working on for Sedna, and it's kind of hard to show it without Vista. However, I do have a couple of ideas to make this work:
- Test the hell out of the new machine, including every part of every presentation (which I would normally do anyway just before a conference) and how it works with a projector.
- Bring my old laptop as well as the new one just in case.
After I finished the documentation, I started the actual configuration stuff. I had some trouble connecting to our domain until I remembered about that #%$^$ Norton Internet Security; disabling it took care of that. I then did all of the other settings stuff and started on the file transfer.
I'm copying files from the old one (which I'm typing this on) to the new one right now; the progress meter says it'll take another 5 hours (yikes, there are 73,063 files to copy), so I guess it's Miller time a little early today. Tomorrow, the really boring job starts: installing all the applications I need. I don't have 100 apps like Rick -- in fact, I have exactly 45 (thus proving the anal attribute) -- but it'll still take a couple of days because some of them, including SQL Server, Office, and Visual Studio, are real heavyweights.
No pain, no gain -- I'm really looking forward to getting this done so I can play with my new toy.
Friday, February 02, 2007
So, how to create a gradient image of the desired size and color? Although I could do it dynamically using the VFPX GDIPlusX library as described by Cesar Chalom in various posting on his excellent blog, I decided to simply create an image file and use it as the Picture property of an Image object.
With some help from Cesar's blog, I created a simple program, CreateGradient.PRG, that generates a gradient image with the specified file name, size, and colors. The code is self-explanatory. Note that it expects the GDIPlusX class libraries are in the VFP path.
lparameters tcFileName, ;Thanks to Craig Boyd, Bo Durban, and Cesar for all the work they've done on this incredible library!
local lnColor1, ;
* Ensure the parameters were passed.
if vartype(tcFileName) <> 'C' or empty(tcFileName) or ;
vartype(tnHeight) <> 'N' or vartype(tnWidth) <> 'N'
endif vartype(tcFileName) <> 'C' ...
* If colors weren't passed, prompt for them.
if pcount() < 4
lnColor2 = getcolor(rgb( 0, 128, 255))
lnColor1 = getcolor(rgb(255, 255, 255))
lnColor1 = tnColor1
lnColor2 = tnColor2
endif pcount() < 4
* This assumes a horizontal gradient. Set lnMode to a different
* value for other types.
lnMode = 0
* Create a GDIPlusX System object.
loSystem = newobject('xfcSystem', 'System.vcx')
* Determine the image type from the file extension.
lcExt = upper(justext(tcFileName))
case lcExt = 'PNG'
lnFormat = .Imaging.ImageFormat.Png
case lcExt = 'BMP'
lnFormat = .Imaging.ImageFormat.Bmp
case lcExt = 'GIF'
lnFormat = .Imaging.ImageFormat.Gif
case inlist(lcExt, 'JPG', 'JPEG')
lnFormat = .Imaging.ImageFormat.Jpeg
case lcExt = 'ICO'
lnFormat = .Imaging.ImageFormat.Icon
case inlist(lcExt, 'TIF', 'TIFF')
lnFormat = .Imaging.ImageFormat.Tiff
case lcExt = 'WMF'
lnFormat = .Imaging.ImageFormat.Wmf
* Create a bitmap and a rectangle of the desired size.
loBitmap = .Bitmap.New(tnWidth, tnHeight)
loRect = .Rectangle.New(0, 0, tnWidth, tnHeight)
* Create a graphics object.
loGfx = .Graphics.FromImage(loBitmap)
* Create a linear gradient brush.
loGradBrush = .Drawing2D.LinearGradientBrush.New(loRect, ;
.Color.FromRgb(lnColor1), .Color.FromRgb(lnColor2), lnMode)
* Fill the rectangle with the gradient brush.
* Save the image to the specified file.
OzFox 2007: Feb 20 - 28 (the conference isn't that long but I'm taking a few days for sightseeing). I'm doing three presentations at this conference (see the conference Web site for details).
Home for 2 days (just enough time for jet lag to really set in!)
Synergy 2007: Mar 3 - 6. This conference is for AccountMate resellers. I'm doing a presentation on Stonefield Query for AccountMate plus Jeff Zinnert and I have a booth there.
Home for 5 days
MVP Summit: Mar 12 - 15. Fortunately, no presentation, but it'll be great meeting with the VFP team again.
Home for 6 weeks or so (whew!)
Advisor DevCon on Microsoft Visual FoxPro: May 5 - 11. Jeff and I will have a booth plus I'm doing four sessions:
- Developing Visual FoxPro Applications for Windows Vista
- Best Practices for Vertical Application Development
- Installing Visual FoxPro Applications Using InnoSetup
- Integrate RSS and Visual FoxPro
Sage Insights: May 14 - 17 (although I'll likely stretch this because it's in Orlando and we're planning a family vacation around the conference). It's the annual conference for resellers of Sage Software. We'll have a 10 x 20 booth with my business partner Mickey Kupchyk and Stonefield Query National Account Managers Jeff Zinnert and Chris Hodgins, showing the following products:
- Stonefield Query for SalesLogix
- Stonefield Query for ACT!
- Stonefield Query for Timberline (a new product we'll be launching at the conference)
- Stonefield Query for Simply Accounting
- ACCPAC Query for Sage Accpac ERP
- ACCPAC Query for Sage Pro ERP
- ACCPAC Query for Sage BusinessVision (another new product)
- Stonefield Query SDK for resellers wanting to customize one of the other products
Wow! Five conferences in a span of about three months. I'll have a ton of air miles before summer even starts.