I used to be a big fan of OODefrag. In fact, their version 10 product is very good.
I can't hide the fact, though, that I am a changed man ever since I tried Diskeeper 2008 Pro Premier. Its defragmentation process is really smooth and the background service keeps defragmenting your disks continuously, but only when it detects that your computer is sitting idle (i.e. it doesn't interrupt or slow down your ever-important FSX sessions).
Three thumbs up for Diskeeper 2008!!! You can find it here.
Thursday, December 20, 2007
You know you're getting old when...
Three out of seven of your friends who used to work for the ACES studio are no longer there...
Jason - you and I haven't been chatting much (other than in the bus, at DevCon 2005, going to that smelly brewery), but I always respected your artist's view and kept in touch with all you had to say in your blogs. You have a fan whatever you choose to do next! Keep it up!
(Please follow Jason Waskey's work through his blog here - it's really worth it).
Windows Live Messenger status
(Rant Mode On)
What does it mean when I put my Status as "Busy" on Live Messenger?
Is it perhaps an invitation to say "Talk to me, I am idle"?
Is it a sign that says "Taking a break, I prefer to chat about last night's Heroes episode"?
No. It means I am most likely either looking at a customer's problem, or coding like crazy on the next product or infrastructure.
It most certainly also means that I'd prefer not to be bothered, but I am there in case someone needs help that can't otherwise wait, like for example when our product cart server is offline or experiencing issues that require immediate attention.
I'd respectfully request those of you who have me on their Messenger contacts to please use email instead as I can concentrate better on your issue when I focus my attention to it, rather than when you interrupt me.
(Rant Mode Off)
What does it mean when I put my Status as "Busy" on Live Messenger?
Is it perhaps an invitation to say "Talk to me, I am idle"?
Is it a sign that says "Taking a break, I prefer to chat about last night's Heroes episode"?
No. It means I am most likely either looking at a customer's problem, or coding like crazy on the next product or infrastructure.
It most certainly also means that I'd prefer not to be bothered, but I am there in case someone needs help that can't otherwise wait, like for example when our product cart server is offline or experiencing issues that require immediate attention.
I'd respectfully request those of you who have me on their Messenger contacts to please use email instead as I can concentrate better on your issue when I focus my attention to it, rather than when you interrupt me.
(Rant Mode Off)
Sunday, November 25, 2007
How to get updates to my blog automatically
You may think that I am doing this to increase traffic to my blog but that isn't the exact reason. I was asked by no less than six people last week how it would be possible to receive my posts automatically in their Inbox.
I'll give you examples for Firefox and Thunderbird.
In Firefox, click on the "Atom Feed" link you see on your right. Then, use "Subscribe to this feed using..." and hit "Subscribe Now".
In Thunderbird, if you already have an RSS News & Blogs account, skip this step. To create one, go to Tools->Account Settings, click on "Add Account..." and follow instructions for "RSS News & Blogs".
Then, select "News & Blogs" and click on "Manage Subscriptions". In the popup window, click the "Add" Button and copy/paste "http://lkalamaras.blogspot.com/feeds/posts/default" in the "Feed URL" edit box.
These two methods will allow you to automatically receive an update whenever I have a new article written in my blog (which HAS to be more often :-)).
I'll give you examples for Firefox and Thunderbird.
In Firefox, click on the "Atom Feed" link you see on your right. Then, use "Subscribe to this feed using..." and hit "Subscribe Now".
In Thunderbird, if you already have an RSS News & Blogs account, skip this step. To create one, go to Tools->Account Settings, click on "Add Account..." and follow instructions for "RSS News & Blogs".
Then, select "News & Blogs" and click on "Manage Subscriptions". In the popup window, click the "Add" Button and copy/paste "http://lkalamaras.blogspot.com/feeds/posts/default" in the "Feed URL" edit box.
These two methods will allow you to automatically receive an update whenever I have a new article written in my blog (which HAS to be more often :-)).
Monday, November 19, 2007
Beyond Comparison...
Seems I don't post much, but when I do, it comes in batches... :-)
This post is about a wonderful little utility called "Beyond Compare". As a developer / code writer, it's very hard sometimes to keep track of changes that have occurred between file versions and bugs can creep into our products simply because of a file regression.
Beyond Compare helps prevent such problems by allowing levels of file and folder comparison in an intuitive, productive way that I had wished for a long time, but had never imagined existed.
Here's their web site. Well worth the $30.
This post is about a wonderful little utility called "Beyond Compare". As a developer / code writer, it's very hard sometimes to keep track of changes that have occurred between file versions and bugs can creep into our products simply because of a file regression.
Beyond Compare helps prevent such problems by allowing levels of file and folder comparison in an intuitive, productive way that I had wished for a long time, but had never imagined existed.
Here's their web site. Well worth the $30.
Engauged Shared Cockpit
Susan posted a very interesting article about shared cockpit / multiplayer coding so I will be investing some time on making sure we can take advantage of this in future products (and by "future" I mean AFTER the MD11 ;-)).
The URL is here.
The URL is here.
Back Home!
I am back home after having spent a very interesting week in Seattle. For those who are just catching up with the news, I attended the Microsoft Developers Conference (and I can't say much about it as all that stuff is under NDA) and the AVSIM Fan Conference (and that was NOT under NDA :-)).
While in Seattle, I saw old friends, acquaintances and rival developers (hi Daryl!), some of whom I had met before and some I was getting to meet for the first time and actually talk to (yes, that means you, Lou!).
During the FanCon, PMDG had the pleasure of more publicly revealing the now-in-alpha testing MD-11 (I had shown some of it during the 2006 Aerosoft Conference in Paderborn). Fans and customers had the opportunity to fly it for the first time and comment on usability and new features - I was amazed by how well it was received!!!
Michael Frantzeskakis and Bill Grabowski did a wonderful job in presenting it to the FanCon attendees, showing some of the newly programmed stuff (like the PMDG cursor standardization, variable lighting, overhead panel popups etc) - these guys are truly amazing!
I am now back home, working feverishly on finding a couple pesky problems with the FSX 747-400X and correcting them. After thousands of units sold so far, there's only a very limited number of customers facing issues, so pinning down the problems is hard... but we'll get to them!
Also working on finalizing the bits for our external hardware driver software (GoFlight, Engravity) modules so our customers can get to them too. Be assured, there will be a significant discount for those who've purchased the FS9 versions as well!
I'm getting some feedback from users who own the Aerosoft Australia 747 MCP hardware who wish me to write driver software for FSX. So far, there's only 20 or so users who want this done and unfortunately, it means I can't readily justify time allocation towards that project, however if there are more of you out there, by all means - BE VOCAL! We need to know so we can allocate the time.
While in Seattle, I saw old friends, acquaintances and rival developers (hi Daryl!), some of whom I had met before and some I was getting to meet for the first time and actually talk to (yes, that means you, Lou!).
During the FanCon, PMDG had the pleasure of more publicly revealing the now-in-alpha testing MD-11 (I had shown some of it during the 2006 Aerosoft Conference in Paderborn). Fans and customers had the opportunity to fly it for the first time and comment on usability and new features - I was amazed by how well it was received!!!
Michael Frantzeskakis and Bill Grabowski did a wonderful job in presenting it to the FanCon attendees, showing some of the newly programmed stuff (like the PMDG cursor standardization, variable lighting, overhead panel popups etc) - these guys are truly amazing!
I am now back home, working feverishly on finding a couple pesky problems with the FSX 747-400X and correcting them. After thousands of units sold so far, there's only a very limited number of customers facing issues, so pinning down the problems is hard... but we'll get to them!
Also working on finalizing the bits for our external hardware driver software (GoFlight, Engravity) modules so our customers can get to them too. Be assured, there will be a significant discount for those who've purchased the FS9 versions as well!
I'm getting some feedback from users who own the Aerosoft Australia 747 MCP hardware who wish me to write driver software for FSX. So far, there's only 20 or so users who want this done and unfortunately, it means I can't readily justify time allocation towards that project, however if there are more of you out there, by all means - BE VOCAL! We need to know so we can allocate the time.
Saturday, November 10, 2007
Still in the USA (now on business)
We returned to Athens, of course, after the trip to the USA, so how is it that I am now finding myself back in Seattle?
Well, I attended the Microsoft Flight Simulation Developers Conference and am now attending the AVSIM Fan Con which will last until Sunday (so those of you local in the Seattle area, do come visit our booth - we have some cool stuff on display!).
I met with some very interesting people here in Bellevue, had an opportunity to hook up again with some of the ACES people who I've come to consider good friends through the years (Z, yes, that means you!) and get to see familiar faces once again with whom we've shared some war stories.
A special thank you goes to a (will remain nameless) person who helps out continuously and without regard for those who might have the audacity to consider it favoritism (even though the help we receive goes public immediately afterwards). 'Someone', you know who you are and thank you!
There have been some awesome presentations (unfortunately, all of which are under NDA and as such, I can't disclose anything about), but suffice it to say it's been an eye-opener all around!
I am looking forward to the AVSIM conference - we have some cool stuff to show in our booth as I said already, so I am hoping that people will enjoy the weekend as much as we hope.
Well, I attended the Microsoft Flight Simulation Developers Conference and am now attending the AVSIM Fan Con which will last until Sunday (so those of you local in the Seattle area, do come visit our booth - we have some cool stuff on display!).
I met with some very interesting people here in Bellevue, had an opportunity to hook up again with some of the ACES people who I've come to consider good friends through the years (Z, yes, that means you!) and get to see familiar faces once again with whom we've shared some war stories.
A special thank you goes to a (will remain nameless) person who helps out continuously and without regard for those who might have the audacity to consider it favoritism (even though the help we receive goes public immediately afterwards). 'Someone', you know who you are and thank you!
There have been some awesome presentations (unfortunately, all of which are under NDA and as such, I can't disclose anything about), but suffice it to say it's been an eye-opener all around!
I am looking forward to the AVSIM conference - we have some cool stuff to show in our booth as I said already, so I am hoping that people will enjoy the weekend as much as we hope.
Trip to the USA, part... err... :-)
The terror! I had forgotten I was supposed to keep writing more about our beautiful trip through the USA last summer, so I guess I owe those of you who visit this blog an explanation:
I got preoccupied: PMDG released the long-awaited 747-400x for FSX, so it became a very important priority to get that out the door, and by the time that was done, my blog was stale.
I promise, I'll write more about that - in the meantime, do visit PMDG's site and take a look at our 747-400X product - it has some very cool features!
I got preoccupied: PMDG released the long-awaited 747-400x for FSX, so it became a very important priority to get that out the door, and by the time that was done, my blog was stale.
I promise, I'll write more about that - in the meantime, do visit PMDG's site and take a look at our 747-400X product - it has some very cool features!
Sunday, September 09, 2007
Visual Assist X (by Whole Tomato)
I am hoping that people won't mind a small plug here for a product that I have been using extensively throughout my Visual C++ coding years and I find indispensable. I am talking about Visual Assist, which is now in its tenth iteration (with thousands of in-between builds and continuous support by its creator, Whole Tomato).
It runs within Visual Studio (all versions) and converts a very good product (Visual Studio == a Volkswagen) into a Porsche.
Run, don't walk to your nearest URL site:
http://www.wholetomato.com
It runs within Visual Studio (all versions) and converts a very good product (Visual Studio == a Volkswagen) into a Porsche.
Run, don't walk to your nearest URL site:
http://www.wholetomato.com
Saturday, September 08, 2007
Trip to the USA - Part 1 (Washington DC)
Haven't written much the past month or so, but the reason was simple: I was on the road. Margarita and I decided to take advantage of a couple meetings I had scheduled overseas, so we combined business and pleasure to take a three week long road trip in the USA.
Our flight into the US was uneventful - if one ignores the absurdity of having to go through security measures TWICE while changing planes in London. Heathrow has now quickly climbed to first place in my "places to avoid" list - where else would you be subjected to an hour-long security checkpoint WHILE IN TRANSIT.
The first scheduled stop in the US was Washington DC, home of "I didn't vote for him, but he's still my president" (famous quote by a not so famous acquaintance of ours).
Thankfully, he was away on vacation (again?) together with most of the capital's residents, so there was almost none of the usual traffic that makes DC so likeable to tourists.
DC is always nice to visit, as it offers beautiful walking-distance tours that can be done in a day without that much pain. Starting at the Capitol, a round-trip to the Washington Monument offers a variety of museums and historical site stops which educate and entertain.
My favorite? The Air and Space Museum of course. While there are other significant sites in DC, I always had a soft spot for the place that hosts most of man's attempts to escape gravity, documenting and keeping track of events and vehicles that made it possible for people to realize how beautiful it is to soar in our skies.
We visited the Museum of Natural History as well - always a favorite for children and adults alike, although comparing it to its New York and London equivalents I found it lacking a bit, for no specific reason.
Another favorite spot is Georgetown, with its restaurants and bistros that offer quality for different tastes depending on the mood. Our day trip happened to take place on a Sunday, so we got lucky with a nice Italian restaurant that offered an all-you-can-eat brunch for $14.95 - can't beat that deal!
We left DC for Seattle - which will be part 2 of the trip blog entries.
Our flight into the US was uneventful - if one ignores the absurdity of having to go through security measures TWICE while changing planes in London. Heathrow has now quickly climbed to first place in my "places to avoid" list - where else would you be subjected to an hour-long security checkpoint WHILE IN TRANSIT.
The first scheduled stop in the US was Washington DC, home of "I didn't vote for him, but he's still my president" (famous quote by a not so famous acquaintance of ours).
Thankfully, he was away on vacation (again?) together with most of the capital's residents, so there was almost none of the usual traffic that makes DC so likeable to tourists.
DC is always nice to visit, as it offers beautiful walking-distance tours that can be done in a day without that much pain. Starting at the Capitol, a round-trip to the Washington Monument offers a variety of museums and historical site stops which educate and entertain.
My favorite? The Air and Space Museum of course. While there are other significant sites in DC, I always had a soft spot for the place that hosts most of man's attempts to escape gravity, documenting and keeping track of events and vehicles that made it possible for people to realize how beautiful it is to soar in our skies.
We visited the Museum of Natural History as well - always a favorite for children and adults alike, although comparing it to its New York and London equivalents I found it lacking a bit, for no specific reason.
Another favorite spot is Georgetown, with its restaurants and bistros that offer quality for different tastes depending on the mood. Our day trip happened to take place on a Sunday, so we got lucky with a nice Italian restaurant that offered an all-you-can-eat brunch for $14.95 - can't beat that deal!
We left DC for Seattle - which will be part 2 of the trip blog entries.
Tuesday, July 31, 2007
Jing project... would have been great!
Been getting some good comments from friends regarding The Jing project. So I tried it to see if I could showcase some of our upcoming 747-400 and MD11 for FSX new features. Unfortunately, when I applied it to the FSX window (which was 1024x768 pixels in size), Jing made the entire machine crawl to a halting stop...
Hopefully, newer versions might work better... in the meantime, Jing is benched until something makes me change my mind :-).
Hopefully, newer versions might work better... in the meantime, Jing is benched until something makes me change my mind :-).
Sunday, July 22, 2007
MVP status
It just occurred to me that I neglected to publicly thank Microsoft for awarding me MVP status for 2007 in the PC Games category.
I've always tried to do my best as a professional and as a hobbyist to support Flight Simulator newbies and experienced users alike, as a PMDG developer and as a VATSIM founder and previous Software Development VP, so I am very grateful that Microsoft recognized my contribution through the MVP award.
Thanks to everyone at ACES for pointing my way when selections were made! Hope I can continue helping in the future as well!
I've always tried to do my best as a professional and as a hobbyist to support Flight Simulator newbies and experienced users alike, as a PMDG developer and as a VATSIM founder and previous Software Development VP, so I am very grateful that Microsoft recognized my contribution through the MVP award.
Thanks to everyone at ACES for pointing my way when selections were made! Hope I can continue helping in the future as well!
Huh?
So my kids are spending time at summer camp for three weeks. So we went and bought some supplies for them - the usual: toothbrush, toothpaste, etc. Also bought some kids' shampoo: Johnson's Kids Shampoo, Watermelon flavor.
Imagine my surprise when I read at the back of the Johnson's Kids Shampoo label:
"Please keep out of reach of children".
Hello? Anyone? Buehler?
Imagine my surprise when I read at the back of the Johnson's Kids Shampoo label:
"Please keep out of reach of children".
Hello? Anyone? Buehler?
Monday, July 16, 2007
Select C comments in my code...
So you think hitting Ctrl-Shift-R to record a macro, then Ctrl-F to find "/*" and then something-something, and then Ctrl-F to find "*/" to finish the selection would be enough.
Huh? Let me explain myself.
As we transitioned from FS9 to FSX, one of the most major pieces of the work was to replace all the FSUIPC code in our SimLibrary with SimConnect code. As this wasn't going to happen overnight (or even in a week) but instead took almost a year (yes, that's right - people said it'd be easy), I gradually went ahead and wrote all my SimConnect code snippets below their FSUIPC equivalent, commenting out with /* ... */ in the process, so in case of a bug (and there were a few), I could have easy access to "the older way". That also allowed "mix-and-match" code so we could test without needing to finish the transition first.
The end result was that our .cpp files, when all was said and done, were littered with multi-line comment areas such as this one:
/*
if (theFSUIPC)
{
theFSUIPC->Write(PMDG_CFSUIPC::PMDG_FIRE_CONTROLS_SWITCHES, 1, &val, &m_result);
if (m_processNow)
theFSUIPC->Process(&m_result);
}
*/
m_SimConnectMiscData->setFireControlSystem_Switches_PMDG(val);
I had always thought that it'd be easy to simply delete the commented areas when the transition was over, to clean up our C++ source files. Yes. So easy, he said.
(Disclaimer - I am NOT a VB guy, but I know how to read VB and do tiny bits).
I spent hours trying to figure out if and how I could record a macro that would enable the following in a couple key presses:
1) Find next commented code area
2) Select it
3) Delete it (if old code)
Ideally, I'd like to press "Ctrl-Shift-P" (for Macro Playback) to find the next area, then "delete" if needed or "Ctrl-Shift-P" again if this wasn't a comment to-be-deleted.
Sounds simple? Turns out that there's no way (that I could find) to record a "start-select" / "stop-select" keyboard activity. Instead, after hours of searching the net, I came up with this (admittedly easy) piece of code that I have now placed under a nice macro of my own (using VS2005's nice Macro Editor/Debugger):
Sub TemporaryMacro()
Dim objSel As TextSelection = DTE.ActiveDocument.Selection
objSel.LineDown()
'Look for the beginning
objSel.FindPattern("/*")
Dim lStartLine As Long = objSel.TopPoint.Line
Dim lStartColumn As Long = objSel.TopPoint.LineCharOffset
' Look for the end.
If objSel.FindPattern("*/") Then
' Select the entire section.
objSel.SwapAnchor()
objSel.MoveToLineAndOffset(lStartLine, lStartColumn, True)
End If
End Sub
Soooo simple. And yet, it took me so long to figure it out. Maybe I am getting old(er).
Huh? Let me explain myself.
As we transitioned from FS9 to FSX, one of the most major pieces of the work was to replace all the FSUIPC code in our SimLibrary with SimConnect code. As this wasn't going to happen overnight (or even in a week) but instead took almost a year (yes, that's right - people said it'd be easy), I gradually went ahead and wrote all my SimConnect code snippets below their FSUIPC equivalent, commenting out with /* ... */ in the process, so in case of a bug (and there were a few), I could have easy access to "the older way". That also allowed "mix-and-match" code so we could test without needing to finish the transition first.
The end result was that our .cpp files, when all was said and done, were littered with multi-line comment areas such as this one:
/*
if (theFSUIPC)
{
theFSUIPC->Write(PMDG_CFSUIPC::PMDG_FIRE_CONTROLS_SWITCHES, 1, &val, &m_result);
if (m_processNow)
theFSUIPC->Process(&m_result);
}
*/
m_SimConnectMiscData->setFireControlSystem_Switches_PMDG(val);
I had always thought that it'd be easy to simply delete the commented areas when the transition was over, to clean up our C++ source files. Yes. So easy, he said.
(Disclaimer - I am NOT a VB guy, but I know how to read VB and do tiny bits).
I spent hours trying to figure out if and how I could record a macro that would enable the following in a couple key presses:
1) Find next commented code area
2) Select it
3) Delete it (if old code)
Ideally, I'd like to press "Ctrl-Shift-P" (for Macro Playback) to find the next area, then "delete" if needed or "Ctrl-Shift-P" again if this wasn't a comment to-be-deleted.
Sounds simple? Turns out that there's no way (that I could find) to record a "start-select" / "stop-select" keyboard activity. Instead, after hours of searching the net, I came up with this (admittedly easy) piece of code that I have now placed under a nice macro of my own (using VS2005's nice Macro Editor/Debugger):
Sub TemporaryMacro()
Dim objSel As TextSelection = DTE.ActiveDocument.Selection
objSel.LineDown()
'Look for the beginning
objSel.FindPattern("/*")
Dim lStartLine As Long = objSel.TopPoint.Line
Dim lStartColumn As Long = objSel.TopPoint.LineCharOffset
' Look for the end.
If objSel.FindPattern("*/") Then
' Select the entire section.
objSel.SwapAnchor()
objSel.MoveToLineAndOffset(lStartLine, lStartColumn, True)
End If
End Sub
Soooo simple. And yet, it took me so long to figure it out. Maybe I am getting old(er).
Thursday, July 05, 2007
FSX Load Manager
I've been tinkering...
and results are promising that our aircraft Load Manager can now update pax and cargo payloads on the fly in the upcoming FSX version of the 747-400. I'll make sure that this functionality also finds itself in the MD-11 Load Manager as well.
On to fuel updating!
and results are promising that our aircraft Load Manager can now update pax and cargo payloads on the fly in the upcoming FSX version of the 747-400. I'll make sure that this functionality also finds itself in the MD-11 Load Manager as well.
On to fuel updating!
Tuesday, June 19, 2007
Was this for our own good?
Those of you already using Flight Simulator X will have noticed by now that there's a new concept of authorizing third party DLLs and GAUges before they are loaded into FSX.
The first time a user installs a third party addon, depending on how many of those DLLs the addon uses, a security warning dialog box pops up asking the user if they "want to run this software" with a "Run - Don't Run" button choice. If the software (read: DLL or GAU) is code-signed, there will be information on the software publisher and a "More Options" tab which leads to radio boxes allowing the user to "Always run software from 'Publisher'", "Never run..." or "Ask me every time". This is default behavior by the new Windows Cryptograpy API.
FSX adds another layer after the user has (presumably) selected "Run" which allows them to "designate this module as 'Trusted' software", thus making FSX automatically load this software any time it runs again in the future, without having to go through the security dialog pop up again.
All this is well and good - for normal users. Of course, if the software publisher produces an update, the entire process has to happen once more, since the new DLL versions will be detected as different and the user will need to allow them again.
For us, developers, this is a pain in the butt. We produce new builds of our DLLs and gauges many times daily, so we need to keep "allowing" them each time, because if we "always trust" our own code, we are doing our users a disservice in case something goes wrong when FSX first loads the gauge (and I've already been bitten by that happening - and it wasn't even my fault! - more on that perhaps in another blog entry).
If this pain in the butt wasn't enough, I spent the past two days trying to figure out why FSX suddenly stopped asking about verification and designating modules as 'trusted'. Instead, it refused to load any 3rd party addon.
Two entire days. Wasted. I even tried removing FSUIPC and reinstalling it, thinking that I might have done something to my certification process to cause this, so another addon should surely be OK. Nope. FSX never asked me for that either - it simply failed to load FSUIPC too! OK - go ahead and remove the [Trusted] sector from fsx.cfg? Nope. Still couldn't care less - FSX will not load anything. WHY?
In the meantime, I had noticed that, when running the Certification Manager, it would sometimes give me an error when viewing my code signing certificates about "Cryptographic Operation Failed due to a local security option setting". Hmm... Whah? Huh? I know they're bought and paid for - and checked by a valid Root Authority! What gives? This was surely a mystery... but it led me to goog- I mean search MSDN for any related issues...
I can now thank Steve Patrick (at Spat's Weblog) for providing what turned out to be a very simple solution to this issue. While apparently unrelated, it turns out that something had switched my
registry key to 0x63c00. This value is Microsoft's WinTrust policy selection flags, as described here. The 0x40000 flag means Allow only items in personal trust database and apparently, this clashes with FSX's ability to allow manual authorization of unrecognized DLLs, telling it instead to never trust anything outside the user's personal trust.
Unsetting this flag (putting it back to its default 0x23c00 value) returned all operations to normal and Flight Simulator was once again able to ask me to designate my modules as 'Trusted' software.
I never found who/what changed that registry key... but at least now I can return to my normal schedule of love with Microsoft's code signing necessities!
This is what I do for a living... who said programmers don't have "the life"! ?
The first time a user installs a third party addon, depending on how many of those DLLs the addon uses, a security warning dialog box pops up asking the user if they "want to run this software" with a "Run - Don't Run" button choice. If the software (read: DLL or GAU) is code-signed, there will be information on the software publisher and a "More Options" tab which leads to radio boxes allowing the user to "Always run software from 'Publisher'", "Never run..." or "Ask me every time". This is default behavior by the new Windows Cryptograpy API.
FSX adds another layer after the user has (presumably) selected "Run" which allows them to "designate this module as 'Trusted' software", thus making FSX automatically load this software any time it runs again in the future, without having to go through the security dialog pop up again.
All this is well and good - for normal users. Of course, if the software publisher produces an update, the entire process has to happen once more, since the new DLL versions will be detected as different and the user will need to allow them again.
For us, developers, this is a pain in the butt. We produce new builds of our DLLs and gauges many times daily, so we need to keep "allowing" them each time, because if we "always trust" our own code, we are doing our users a disservice in case something goes wrong when FSX first loads the gauge (and I've already been bitten by that happening - and it wasn't even my fault! - more on that perhaps in another blog entry).
If this pain in the butt wasn't enough, I spent the past two days trying to figure out why FSX suddenly stopped asking about verification and designating modules as 'trusted'. Instead, it refused to load any 3rd party addon.
Two entire days. Wasted. I even tried removing FSUIPC and reinstalling it, thinking that I might have done something to my certification process to cause this, so another addon should surely be OK. Nope. FSX never asked me for that either - it simply failed to load FSUIPC too! OK - go ahead and remove the [Trusted] sector from fsx.cfg? Nope. Still couldn't care less - FSX will not load anything. WHY?
In the meantime, I had noticed that, when running the Certification Manager, it would sometimes give me an error when viewing my code signing certificates about "Cryptographic Operation Failed due to a local security option setting". Hmm... Whah? Huh? I know they're bought and paid for - and checked by a valid Root Authority! What gives? This was surely a mystery... but it led me to goog- I mean search MSDN for any related issues...
I can now thank Steve Patrick (at Spat's Weblog) for providing what turned out to be a very simple solution to this issue. While apparently unrelated, it turns out that something had switched my
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\WinTrust\
Trust Providers\Software Publishing
registry key to 0x63c00. This value is Microsoft's WinTrust policy selection flags, as described here. The 0x40000 flag means Allow only items in personal trust database and apparently, this clashes with FSX's ability to allow manual authorization of unrecognized DLLs, telling it instead to never trust anything outside the user's personal trust.
Unsetting this flag (putting it back to its default 0x23c00 value) returned all operations to normal and Flight Simulator was once again able to ask me to designate my modules as 'Trusted' software.
I never found who/what changed that registry key... but at least now I can return to my normal schedule of love with Microsoft's code signing necessities!
This is what I do for a living... who said programmers don't have "the life"! ?
Monday, June 11, 2007
Code, manifest yourself!
(Warning: Extreme nerdy article to follow - talks about C++ code and Visual Studio 2005) - You've been warned!
You might want to chalk this one up to "lessons that were learnt the hard way"...
I was investigating a report from some users on our PMDGSounds.DLL failing to load entirely. So I thought: I must have screwed something up with the release builds - possibly linking to the wrong SimConnect.DLL version. Nope -that wasn't it.
I discovered (after having to remote-login to a beta tester's PC and after going through all the pains of changing .ini settings so that logs can be created) that it was really an issue with dependencies, but of the wrong kind: I had done my latest build on Vista and VS2005 - which since I am regularly updating my setup, had been updated to include SP1 and the latest Vista patch. As such, all MFC and CRT libraries were now linking with the newer SxS assemblies, rather than the RTM builds that FSX links against. Ergo, the missing dependencies on only some users' PCs, ergo my frustration.
This wasn't the first time I had run into this issue, though, so I went back to my notes... I had discussed this with our friends at Microsoft who had suggested / recommended a flag in the Preprocessor settings: _USE_RTM_VERSION, which supposedly will instruct the linker to embed the RTM version of the CRT and MFC libs in the manifest files...
The hard lesson is (after 4 hours of tests) that this holds true for executables (.EXE files) but NOT for DLLs. As most of our addon code is, well, added on to FSX, it comes as multiple DLLs and thus dependencies fail.
The fix isn't what I consider "beautiful" - rather than depending on the auto-magical way VS2005 embeds manifests, I had to make a manifest file myself with the appropriate versions and include that as an RT_MANIFEST resource in the .rc file.
Seems to work, but what happens if later I'd like to add another library dependency? I'll lose the ability for VS2005 to pick up on the new lib automatically and I'll have to remember to add it in the manifest file now...
So much for progress, I guess...
You might want to chalk this one up to "lessons that were learnt the hard way"...
I was investigating a report from some users on our PMDGSounds.DLL failing to load entirely. So I thought: I must have screwed something up with the release builds - possibly linking to the wrong SimConnect.DLL version. Nope -that wasn't it.
I discovered (after having to remote-login to a beta tester's PC and after going through all the pains of changing .ini settings so that logs can be created) that it was really an issue with dependencies, but of the wrong kind: I had done my latest build on Vista and VS2005 - which since I am regularly updating my setup, had been updated to include SP1 and the latest Vista patch. As such, all MFC and CRT libraries were now linking with the newer SxS assemblies, rather than the RTM builds that FSX links against. Ergo, the missing dependencies on only some users' PCs, ergo my frustration.
This wasn't the first time I had run into this issue, though, so I went back to my notes... I had discussed this with our friends at Microsoft who had suggested / recommended a flag in the Preprocessor settings: _USE_RTM_VERSION, which supposedly will instruct the linker to embed the RTM version of the CRT and MFC libs in the manifest files...
The hard lesson is (after 4 hours of tests) that this holds true for executables (.EXE files) but NOT for DLLs. As most of our addon code is, well, added on to FSX, it comes as multiple DLLs and thus dependencies fail.
The fix isn't what I consider "beautiful" - rather than depending on the auto-magical way VS2005 embeds manifests, I had to make a manifest file myself with the appropriate versions and include that as an RT_MANIFEST resource in the .rc file.
Seems to work, but what happens if later I'd like to add another library dependency? I'll lose the ability for VS2005 to pick up on the new lib automatically and I'll have to remember to add it in the manifest file now...
So much for progress, I guess...
Labels:
_USE_RTM_VERSION,
CRT libraries,
MFC,
RT_MANIFEST,
SxS Assemblies
Saturday, May 19, 2007
PMDG Web Site updated!
Fresh after the release of Flight Simulator X Service Pack 1, we decided it was time to show the world our new looks. Our web site is now completely redesigned, giving more emphasis to the new product line for FSX that is being released in the upcoming months.
Look out for the PMDG 747-400X to arrive first, then the MD-11 and the 737NG-X generation of products.
We're very excited about what the near (and not so near) future holds!
Look out for the PMDG 747-400X to arrive first, then the MD-11 and the 737NG-X generation of products.
We're very excited about what the near (and not so near) future holds!
Wednesday, May 16, 2007
FSX SP1 is out!
We'll be posting a bunch of new information - just as soon as we are ready to :-).
(I had to post this, didn't I? Cheap shot :-)).
(I had to post this, didn't I? Cheap shot :-)).
Friday, May 11, 2007
FSX SP1
It's coming! Very soon! According to a post by Phil Taylor, the ACES group is putting the build in Final Test tomorrow, so it should be released next week.
So - the question everyone keeps asking me is: How's your product development going?
Well- with SP1 out, be assured we'll be posting a lot more pictures of what will be there. This is my blog though, so for more information on our upcoming FSX products, please visit our support forum at AVSIM.
So - the question everyone keeps asking me is: How's your product development going?
Well- with SP1 out, be assured we'll be posting a lot more pictures of what will be there. This is my blog though, so for more information on our upcoming FSX products, please visit our support forum at AVSIM.
Tuesday, February 27, 2007
Bitchin' session...
As some of you may know, we receive lots of customer support requests over our support emails, but from time to time, there are some who post cries for help in our forum over at AVSIM as well.
We try to be very understanding, even though most technical queries have been answered many times in the past and/or exist in our support Wiki (which anyone can add entries to, by the way - just use common sense when posting).
It rubs me the wrong way, though, when we get the occasional
"Hey guys, all of a sudden, my bladiblah.dll has started crashing with no reason asking to send an error report to Microsoft - why?"
Last time I threw the Tarot cards, I still could not predict the future, the Lotto numbers or whether AEK will ever be able to win another Greek Football championship, so I doubt anyone can claim they can give an answer to such a vague and abrupt question.
So - if you read this and you're one of our customers who experience such issues, try the following:
a) Think of what you may have changed "right before" this problem started occuring.
b) Read our Wiki
c) Contact our support, PROVIDING AS MUCH DETAIL AS POSSIBLE on which ones of our products you own, what other stuff you might have installed that could affect them etc.
d) Go to (a) above, as it's the most crucial.
e) When you solve your problem, if it didn't appear in our Wiki, ADD IT YOURSELF so you help others too, or tell us about it and we will!
Sorry about the rant, but... it just gets to me sometimes :-).
We try to be very understanding, even though most technical queries have been answered many times in the past and/or exist in our support Wiki (which anyone can add entries to, by the way - just use common sense when posting).
It rubs me the wrong way, though, when we get the occasional
"Hey guys, all of a sudden, my bladiblah.dll has started crashing with no reason asking to send an error report to Microsoft - why?"
Last time I threw the Tarot cards, I still could not predict the future, the Lotto numbers or whether AEK will ever be able to win another Greek Football championship, so I doubt anyone can claim they can give an answer to such a vague and abrupt question.
So - if you read this and you're one of our customers who experience such issues, try the following:
a) Think of what you may have changed "right before" this problem started occuring.
b) Read our Wiki
c) Contact our support, PROVIDING AS MUCH DETAIL AS POSSIBLE on which ones of our products you own, what other stuff you might have installed that could affect them etc.
d) Go to (a) above, as it's the most crucial.
e) When you solve your problem, if it didn't appear in our Wiki, ADD IT YOURSELF so you help others too, or tell us about it and we will!
Sorry about the rant, but... it just gets to me sometimes :-).
Tuesday, February 20, 2007
Fly a kite? You wish!
The ONE day that everyone in Greece is out flying a kite, we get a seriously CAVOK day - I mean NO winds whatsoever!
And if you think I am desperate, I want to see YOU try to tell the kids that "no, it's not daddy's incompetence that can't get the kite to fly - it's the lack of wind!".
Yeah - they believed THAT!
And if you think I am desperate, I want to see YOU try to tell the kids that "no, it's not daddy's incompetence that can't get the kite to fly - it's the lack of wind!".
Yeah - they believed THAT!
PMDG GoFlight MCPPro Driver released!
It's official!
We released the PMDG GoFlight MCPPro driver interface, finally, after a very long wait. There's still an outstanding issue with the EFIS module support for it, but after a multitude of attempts to get GoFlight's feedback on what exactly they need to fix (most likely in their firmware, as Doyle Nickless mentioned in his emails to us), we didn't want to keep our customers waiting any longer.
So - any and all of you who already own a GoFlight MCP Pro hardware module (and possibly its EFIS accompanying hardware) can now enjoy full compatibility with the PMDG product line for FS2004 (737NG and 747-400 series, that is).
We released the PMDG GoFlight MCPPro driver interface, finally, after a very long wait. There's still an outstanding issue with the EFIS module support for it, but after a multitude of attempts to get GoFlight's feedback on what exactly they need to fix (most likely in their firmware, as Doyle Nickless mentioned in his emails to us), we didn't want to keep our customers waiting any longer.
So - any and all of you who already own a GoFlight MCP Pro hardware module (and possibly its EFIS accompanying hardware) can now enjoy full compatibility with the PMDG product line for FS2004 (737NG and 747-400 series, that is).
Friday, February 16, 2007
"All-in-one" multifunction printers/scanners/faxes...
I love them... they take up 1/4 of the space the equivalent devices used to take back in the old day. (Well, that's if you were required to have a printer, a scanner, a copier and a fax all in your office).
One question though: Did they HAVE to also subscribe to the "we break after a year and a half" category as well? They're almost cheap enough to replace that going through the trouble of crossing half of Athens in morning traffic, paying 80 Euros for service and worrying that they might break again in a year makes it almost not worth it, but... the bitter taste remains that "I am throwing out 4 devices because of a paper jam problem".
Ugh. Brave new world we live in, for sure.
One question though: Did they HAVE to also subscribe to the "we break after a year and a half" category as well? They're almost cheap enough to replace that going through the trouble of crossing half of Athens in morning traffic, paying 80 Euros for service and worrying that they might break again in a year makes it almost not worth it, but... the bitter taste remains that "I am throwing out 4 devices because of a paper jam problem".
Ugh. Brave new world we live in, for sure.
Interesting thoughts...
What SP1 should bring...
While I should probably disclose that we're under NDA and thus not permitted to speak about certain things, it's now common knowledge that the ACES group is coming out with a Service Pack for FSX. It's been mentioned by Phil Taylor, ACES' Senior PM for Graphics and Terrain, in his blog, among other places (I just thought of his as the "most official" for now). To that, I say YEAH! I am glad these guys "get it".
So - what should SP1 deliver that FSX lacks currently? (*My* wish list)
Well, from an end-user's perspective, I'd say performance is top on the list. There's a million reasons why it's really hard to redesign FSX to introduce "true multi-core" programming, so I am sure ACES devs are doing their best to wake the "other CPU dude" up from its deep slumber during FSX process execution.
Still on the end user's perspective, I'd say scenery comes as a close second. I know this is tied into performance, but there are some places in the world (Greece included) that look too much like the Sahara to be seriously considered as "better" from what was there in FS2004.
As a developer, though, I would wish for a more complete SDK, especially where SimConnect is concerned. The developer primarily responsible for SimConnect is a true wizard, in my eyes - I consider myself a "good programmer" and the logic behind the push/pull stuff he produced was simply exceptional, even though a bit hard to conceptualize / visualize and get used to. My wish? That it brings forward some sorely missing functionality where addon products are concerned (ClientData, weather radar functionality, etc.). After all, SimConnect was developed "for addon developers to use", so I am sure SP1 will bring out some new goodies we've been politely requesting for as long as FSX has been out. (Go ACES!)
There are other areas that need attention that I cannot discuss, due to the NDA, but suffice it to say, these guys must have been making strides so I am sure what we'll get come SP1 will make a big difference and everyone will suddenly start crying "FSX? more! gimme more!"
What I think? That I might just simply jump on that simulated MD-11 and fly to Seattle for a day or two when SP1 releases, for a celebratory touch-and-go at the Boeing field. All on VATSIM of course :-). Who knows - perhaps I might see Robert fly his 747-400X around for a couple test runs.
So - what should SP1 deliver that FSX lacks currently? (*My* wish list)
Well, from an end-user's perspective, I'd say performance is top on the list. There's a million reasons why it's really hard to redesign FSX to introduce "true multi-core" programming, so I am sure ACES devs are doing their best to wake the "other CPU dude" up from its deep slumber during FSX process execution.
Still on the end user's perspective, I'd say scenery comes as a close second. I know this is tied into performance, but there are some places in the world (Greece included) that look too much like the Sahara to be seriously considered as "better" from what was there in FS2004.
As a developer, though, I would wish for a more complete SDK, especially where SimConnect is concerned. The developer primarily responsible for SimConnect is a true wizard, in my eyes - I consider myself a "good programmer" and the logic behind the push/pull stuff he produced was simply exceptional, even though a bit hard to conceptualize / visualize and get used to. My wish? That it brings forward some sorely missing functionality where addon products are concerned (ClientData, weather radar functionality, etc.). After all, SimConnect was developed "for addon developers to use", so I am sure SP1 will bring out some new goodies we've been politely requesting for as long as FSX has been out. (Go ACES!)
There are other areas that need attention that I cannot discuss, due to the NDA, but suffice it to say, these guys must have been making strides so I am sure what we'll get come SP1 will make a big difference and everyone will suddenly start crying "FSX? more! gimme more!"
What I think? That I might just simply jump on that simulated MD-11 and fly to Seattle for a day or two when SP1 releases, for a celebratory touch-and-go at the Boeing field. All on VATSIM of course :-). Who knows - perhaps I might see Robert fly his 747-400X around for a couple test runs.
Subscribe to:
Posts (Atom)