In these days I was working on tracking down a bug causing a service of ours to stop processing data. It didn't happen often, and was not simple to reproduce - it may take hours or days to appear, and was easir to see it on test/production machine than on my own development PC. Inspecting a system with SysInternals ProcessExplorer (after configuring it to download Windows symbols), showed in all processing threads a call stak like this:
Eventually, after a long agony, Borland died. Actually, it was acquired by Micro Focus, and I do not believe the brand will survive. Especially now that all of its product portfolio is made up by product born elsewhere and acquired in the past few years. The products that made the Borland name were already sold in the past. When the development tools division was bought one year ago by Embarcadero, it was clear that the Borland saga was at the end. I just wish it happened while really fighting back, instead of the slow decay of the past years, when flagship products like Delphi were sacrified to a new "business model" that led to nowhere.
It is true, that at the end of the '80, when the Borland Barbarians looked unstoppable, so much they were so bold to take on Microsoft, something changed, and a long queue of mistakes began. The useless Ashton-Tate acquisition, the ill-fated alliance with WordPerfect to sell an office suite, the inability to understand user segments and manage their product portfolio - Paradox users were not TurboPascal/C++ users, OOP was too complex for the former, SideKick could have been turned into a PIM/messaging application but didn't -, and time/resources wasted in products like ObjectVision instead of pursuing Visual Basic RAD approach immediately. Perhaps Borland became already too much complacent, and like many other Microsoft competitors, undervalued Windows and kept on to invest too much resources in DOS products. Users switched to Windows (and the ready Microsoft applications) much faster than most Microsoft competitors did - Borland was not alone, Lotus and Wordperfect made the same mistake - the few who understood in time, say Adobe, are still alive.
In the past days I hit another DCOM issue: callbacks do not work if "Simple file sharing" is enabled (Settings → Control Panel → Folder Options → View). That's because the full name of that option is "Simple file sharing and ForceGuest". When enabled, Windows will ignore incoming calls credentials and will authenticate everybody as "guests". And of course a DCOM callback won't work properly this way unless permissions allow such kind of access (dangerous!).
While trying to undestand why a Delphi DCOM server was properly instantiated while set up to run as "launching user", but hung when run using "this user", I found out - comparing the setup on a machine where it works and one where it doesn't - that if the server exectable name is longer than eight character the server may get registered with a mix of long and short filenames in the registry.
While trying to install the Virtual Machine Additions in Windows 7 beta running in Virtual PC 2007, I found out that Virtual PC 2007 has two service pack 1 - the older one upgrades it to 6.0.156, the newer one to 6.0.192. If you try to install the VMA that came with the older SP1, at reboot you will be greated by a BSOD telling:
A problem has been detected and Windows has been shutdown to prevent damage to your computer.
The driver mistakenly marked a part of it's image pagable instead of nonpagable
In the past few days I had many troubles making our application work when the client was installed on a PC outside the application domain. It was due to several Delphi 2007 issues with DCOM.
Microsoft announced that Aces Studio, the publisher of Flight Simulator, has been closed. Right now, the future of the simulator is very unclear. The announcement says MS "remain committed to the Flight Simulator franchise", but also "will provide more synergy with our ongoing investments in Games for Windows - LIVE as well as other Windows entertainment technologies" - what it really means is yet to be seen, but it's not promising.
More and more in the past weeks while working with Delphi on the next release of out main applications, I started to ask myself if Delphi can still be considered an "enterprise" level development tool. Codegear's site says the "enterprise" features are:
One of my christmas presents was a Wacom Bonsai pen tablet. It was a bit disappointing to see that the driver installation got blocked in the middle. Downloaded the latest driver from Wacom site, but same result.
While enabling a Delphi application to connect to its remote server using a TSocketConnection and not only a TDCOMConnection, I found ian ssue while I was returning Int64 data. It worked flawlessy via DCOM, but not via the easier-to-setup socket connection. What was happening? Well, in SConnect.pas there is this declaration:
[delphi]VariantSize: array[0..varLongWord] of Word = (...)[/delphi]
It is used in TDataBlockInterpreter.ReadVariant() to get the data size to be read from the stream the socket connection uses to pass data around: