Showing posts with label Windows 7. Show all posts
Showing posts with label Windows 7. Show all posts

Tuesday, November 08, 2011

Southwest Fox 2011, Day 3

After breakfast, I presented my session on creating ActiveX controls for VFP using .Net. This was a fun session to do because it shows some cool techniques for greatly expanding the list of controls available to VFP applications. This session is pretty complex, so I started by suggesting folks not worry about the details (the white paper has cookbook-like instructions) but focus more on the overview. The session has a lot of complex steps, and sure enough, I missed a step a couple of times and got myself into a little demo trouble. I figured out the first one myself but thank goodness Paul Mrozowski was there to point out the problem with the second one. The audience was very gracious with my gaffes, and someone even pointed out later that they were glad I’d done that so they could see what to do if they missed a step. Of course, I planned that!

I next went to see Kevin Ragsdale’s UI session. I was a little late because, as usual, I was chatting with folks between sessions. Wow, another great session by Kevin. He showed some UI problems common to VFP applications and then showed how to fix them, resulting in a more comprehensible and easier-to-use application. I have a strong feeling I’ll be handing the Best Speaker trophy to Kevin at next year’s conference.

I then went to see Jim Nelson’s session on Thor. If you haven’t seen Thor, a new VFPX project, you’re missing a huge productivity boost in your development efforts. Thor provides a framework for IDE tools, but even more importantly, provides a huge set of such tools to do things such as rename objects, change base classes, and go to the definition of a class, method, procedure, or constant. Jim did a nice job of showing how to install Thor, how the UI works, how some of the included tools work, and how to add your own tools to Thor.

After a nice lunch of hamburgers and hotdogs with all the fixings, I went to Rick Borup’s session on Mercurial. I don’t think Rick knows this, but we call him “The Professor” because his sessions are incredibly well-researched, prepared, and presented. I was thinking later on about how I would’ve done this session and I wouldn’t have done half as well as he did. I’ve been using Mercurial for about six months so I went to this session hoping to have some gaps filled and wasn’t disappointed. Afterward, Toni Feltman expressed amazement that I was finally using a version control system, because she’s been after me for years about it. I think Rick also inspired Tamar to give Mercurial a shot.

Next up was the repeat of my Windows 7 session. Like the first session, I spent some time going over why virtualization (a misnamed term: it refers to redirecting reads and writes to protected locations to “virtual stores” rather than virtual machines as the term is commonly known today) is bad for your health. This led to one of the most gratifying parts of the conference: helping someone resolve a problem. Steve Bodnar mentioned to me after the session that he had a huge problem with a customer system crashing whenever they tried to output to PDF. He suspected the FFC Report Listener class library had somehow become corrupted but replacing it with a fresh version didn’t resolve the problem. During my discussion of virtualization, he realized that it wasn’t the FFC version of the library that was corrupted but the virtualized copy. Sure enough, as soon as he deleted the copy, the application worked as expected. Steve was so happy he Tweeted that he was going to kiss me full on the lips, so I ducked him the rest of the day and evening (just kidding, Steve).

I was beat, so rather than attending a session during the last timeslot of the day, I hung out at the Servoy booth drinking wine with Yvo Boom and Jon Madden of Servoy, Ken Levy, Chick Bornheim of MicroMega, and Chick’s friend Gary, who was attending his first SWFox.

Next it was time for the conference dinner party. Last year, we’d planned on holding the party out on the veranda but a sudden dust storm forced us to quickly move indoors. Fortunately, the weather was in our favor this year, and the dinner was magnificent: superb food and a really nice dark atmosphere. (I would’ve called it “romantic” except my wife wasn’t there and I don’t think Walt Krzystek and the guys from Matrix would’ve appreciated my expressing that point of view.)

At 8:30, the bonus sessions started. I attended the Show Us Your Apps session, which featured six VFP developers showing the crowd an application they’ve developed that they’re proud of. And proud they should be—there were some very cool apps and techniques on display! I was especially impressed by the fact that for several of the presenters, English was not their native language. It takes a lot of courage to get up and speak before a group of technical people, but even more so in a foreign language! Kudos to all those who took the time to show us what VFP is capable of.

The other bonus session was for independent developers, an idea that Rick Borup came up with a few months ago. I heard a lot of great comments about this session, so we may have to do it again next year.

We once again ended up at the hotel bar, this time enjoying some of the leftover cake and champagne from last night’s celebration.

Southwest Fox 2011, Day 2

Thursday started at my usual time of 5 am. After setting out sign boards for the session rooms and registering a few newly-arrived attendees, I had breakfast and went to the first session, Eric Selje’s Lightswitch for VFP Developers. Eric did a great job explaining what Lightswitch is (a tool for rapidly developing Silverlight applications) and showing the basics of developing a Lightswitch application.

I was going to go to Steve Bodnar’s jQueryUI session next but ended up chatting with a couple of the new exhibitors, Basis and Alpha Five, about their products. Fortunately, I’d seen Steve present this session in January. In fact, his presentation inspired me to add new features to the SWFox web site, including the menu and the accordion control on the session pages.

My Developing VFP Applications for Windows 7 session was next. The first half of the session was similar to the Windows Vista session I presented four years earlier, but updated for Windows 7 and with more things I’ve learned about Windows security and virtualization since then. The second half focused on how to implement Windows 7 features in your VFP application, especially related to the Windows 7 Taskbar. I showed how I’ve implemented these features in a real-world application (Stonefield Query) using Steve Ellenoff’s Win7TLib VFPX project, including the actual code to implement those features.

After a very tasty lunch (the food at the Legado is so good, several people commented on Twitter recently about how much weight they gained!), I went to Steve Black’s Looking Back session. Although I don’t work on the type of applications Steve does, it was still interesting hearing his perspective on software development and process management techniques.

At every conference, a common phrase you’ll hear is “that session (or tip) paid for my conference”. Last year, it was Steve Ellenoff’s Win7TLib session for me. This year, it was Kevin Ragsdale’s Easy Multi-Threading session. Kevin is a great speaker: funny, great examples, and well-paced. He showed how to use a DLL created by Christof Wollenhaupt to add multi-threading to VFP applications. Like Steve’s session last year, my mind was abuzz with ideas about where in my applications I can make use of this technique. I know others felt the same way because that was a major point of discussion at every meal I had for the rest of the conference, and even on the taxi ride back to the airport on Sunday. You know you struck a chord when someone as advanced as Rick Strahl is inspired!

By a very happy coincidence, Jody Meyer’s session on ParallelFox immediately followed Kevin’s session. ParallelFox uses a different technique—out-of-process EXE servers rather than in-process COM objects—but has a similar purpose: allowing multiple tasks to be performed simultaneously to take advantage of multi-core processors common in today’s computers. The combination of these two techniques was on everyone’s mind and I saw a lot of very excited people after seeing these two sessions.

The speaker dinner was Thursday night. It’s our small way of thanking the speakers for the enormous amount of time and effort they put into preparing sessions and white papers. As Tamar pointed out at both the keynote and closing sessions, without them, there would be no conference. I had the pleasure of sitting with Rick Borup and his wife, Eric Selje, Menachem Bazian, Steve Ellenoff, and Kevin Ragsdale. Kevin was uncharacteristically quiet; I think he was still in a daze after the dynamite presentation he did in the afternoon. Menachem and Steve were like a tag-team comedy duo; rumor has it they’ll be playing Vegas soon. The food at the Gordon Biersch Brewery at the San Tan Mall was outstanding, as was the hand-crafted beer I tried. Good company, good food, good times.

As usual, we headed back to the hotel bar. Toni Feltman had planned an informal party to celebrate Cathy Pountney marrying Jim Knight this summer. However, she also found out that Alan Griver had recently married Allie (hope that’s the correct spelling) so she quickly picked up a second cake. There was tons of champagne and apple cider to celebrate with. I had an 8:30 session to present in the morning so I headed up just before midnight.

Wednesday, February 02, 2011

Running Network Applications on Windows 7

Like many developers, I like using Windows Virtual PC for testing applications. Today I needed to test running Stonefield Query from a network share, so I started a virtual machine (VM), connected it to the drive on my host system, ran the Stonefield Query workstation installer to install just required runtime files on the VM, and then ran SFQuery.exe from the “server”. I immediately got a “The application failed to initialize properly (0xc000000F)” error. At first I thought something wasn’t installed properly, but a search found this Microsoft KnowledgeBase article:

Error message when you try to open a network-shared application on a client computer that is running Windows 7 or Windows Server 2008 R2: 0xc000000f

Apparently this is a known issue and you can request a hotfix to resolve it. After installing it, all was well.

Thursday, December 09, 2010

Another Windows Virtual PC Gotcha

Microsoft Virtual PC, for Windows Vista and earlier, automatically writes changes from the undo disk (VUD file) to the main drive (VHD file) when you shut a virtual machine (VM) down. So, when you’re setting up a VM or otherwise want to make permanent the changes you made while using it, you just shut it down and tell it to save the changes. When you do something where you don’t want the changes saved, such as doing a test install, you shut it down and tell it to discard the changes. Very straightforward.

Windows Virtual PC, for Windows 7, doesn’t automatically write changes from the VUD to the VHD. When you shut a VM down and don’t tell it to discard changes, it continues to build up changes you make over various sessions to the VUD file. When you want to write the changes to the VHD, you have to specifically edit the settings for the VM, choose the Undo Disks page, and click Apply.

Until I realized this, I couldn’t understand why a VM I had set up kept reverting to an earlier state. I started the VM, made some changes I wanted permanent, then shut it down, thinking that the changes would be written to the VHD (although I did notice that the shutdown process was a LOT faster than I was expecting). I then fired it up again, did a test install, and shut it down, discarding changes. When I started it back up again, it was at the original state, without the changes I thought I’d made permanent. I also noticed that the datetime stamp on the VHD file hadn’t changed.

After a couple of rounds of this, I started poking around to see what I had to do to write changes to the VHD. That’s when I discovered the Apply button in the Undo Disks pages of the Settings dialog. Hopefully my pointing this out will save someone else some time.

Updating Integration Components in a Windows Virtual PC VM

I’ve been using Microsoft Virtual PC for several years. It’s great for testing installs, installing applications you don’t want polluting your host system, and lots of other things. I recently bought a new laptop with Windows 7, so I installed the latest version of Virtual PC, renamed to Windows Virtual PC.

When starting some of my existing virtual machines (VMs), I was prompted to upgrade the integration components. Integration components make it easier to work with a VM because they allow access to resources of the host system including (new to the Windows 7 version) USB devices. In Windows XP VMs, it’s easy: choose Yes when asked and follow the prompts. In Windows Vista and Windows 7 VMs, however, it’s a little tricky:

  • Choose Yes when asked to update.
  • In the dialog that appears allowing you to either run Setup.exe or open a folder, choose Open folder.
  • In the Windows Explorer folder that appears, right-click Setup.exe and choose Run as Administrator.
  • Follow the prompts until you get a dialog telling you that certain files are in use. Note the process ID for each one.

image

  • Click Ctrl+Alt+Del in the VM menu and choose Start Task Manager and select the Processes page.
  • If you don’t see a PID column, select the Select Columns function from the View menu, turn on PID, and click OK.
  • Click the PID column to sort on process ID.
  • Click the Show processes from all users button.
  • Select each of the process IDs for the files in use and click End Process.
  • Carry on with the rest of the installation process (it’ll require a couple of restarts for your VM).

One thing I don’t like about Windows Virtual PC is that it doesn’t support dragging and dropping files from your host system to the VM window and vice versa. Instead, with integration enabled, you have to open Windows Explorer, navigate to the appropriate drive on your host system, and copy files to and from that way. Not a huge problem but more work than with the older Virtual PC.

Wednesday, December 08, 2010

Microsoft Office 2010 Gotcha

I have a nice new shiny toy: an Asus G73JW laptop with an Intel i7-740QM quad core processor, Windows 7 Pro (64-bit), 17.3” LED display, 8 GB of RAM, a 80 GB solid state primary drive, and a 500 GB secondary drive. Of course, the bad thing about getting a new system is the time it takes to get it set up just so, but I have a checklist I work from to make the setup straightforward. Things were going great until today. Emailing from Stonefield Query using MAPI (which means it goes through Outlook) and reading Excel spreadsheets using the Excel ODBC driver no longer work.

Rick Schummer blogged about issues with a client who upgraded to Windows 7 and Microsoft Office 2010. My issues aren’t the same, but are related: I foolishly chose to install the 64-bit version of Office rather than the 32-bit version, and now my 32-bit apps no longer work with it. I guess this falls into the DOH! category. Hopefully if you’re setting up a new system or upgrading an existing one, you’ll be a little smarter than me.