guypaddock
guypaddock
GEP's Development Blog
5 posts
Don't wanna be here? Send us removal request.
guypaddock · 5 years ago
Text
ROFL
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
182K notes · View notes
guypaddock · 5 years ago
Text
Potential Fix for Windows Virtual Desktop: “We couldn’t connect because there are currently no available resources”
Today, several users of our WVD deployment (including me) couldn’t access WVD. We kept getting this error message:
Tumblr media
It turned out that one of our session hosts was stuck in a status of “Upgrading”. Two users -- including me -- had session on the host that was stuck, so WVD didn’t want to route us to other session hosts. But, since this session host wasn’t available to resume our existing sessions, that’s why the error was appearing.
I tried restarting the session host VM through the Azure Portal but that had no effect on the status.
In our case, the reason this host got stuck seems to be that we had “Selective Startup” enabled on the session host as part of troubleshooting a disk performance issue with Microsoft Support. Although the RD agent was not prevented from starting up, my theory is that selective startup disabled another service that is responsible for handling RD Agent upgrades. As a result, the agent couldn’t perform the upgrade and apparently WVD has no mechanism to automatically rollback an upgrade if it was not successful.
I had to remote-in to the session host via another machine that had access to the same virtual subnet on Azure, disable selective startup, and restart the VM. Afterwards, the session host completed the upgrade and came back online.
0 notes
guypaddock · 5 years ago
Text
How to Get Bank Feeds Exports to Still Import into QuickBooks 2017 even in July 2020+ without Upgrading
Tumblr media
In May 2020, despite the COVID-19 pandemic, Intuit still end-of-life’d QuickBooks 2017 on schedule as if it were business as usual. They’ve gotten a lot of backlash in the forums about it, but it seems that they’re standing firm that users have to upgrade -- coronavirus be damned -- because, well, it was “due to expire” in 2020 anyway... and... they want the money just the same? 
Sadly, being able to import transactions manually from a bank-supplied QBO file export is one of the features they disabled in May 2020. There’s no technical reason for it, but they did it anyway.
But... what if I told you there was a way to still use the Bank Feeds import feature without paying Intuit $200 to $300, for free, without modifying the software in any way, and without pirating software? Read on.
Short Version (TL;DR)
Step 1: Install Fiddler
On the machine where you are running QuickBooks 2017, install Telerik Fiddler Everywhere. You will need to create an account to log-in to the software.
Step 2: Enable HTTPS Traffic Capturing
Open the settings for Fiddler, install the trusted root certificate, and configure Fiddler to capture HTTPS traffic:
Tumblr media
Step 3: Set-up an Auto-responder Rule to Redirect to the New API
You need to match: https://ofx-prod-brand.intuit.com/qb2700/fib.dll So that it redirects requests to: https://ofx-prod-brand.intuit.com/qb2800/fib.dll
Tumblr media
Step 4: Enable “Auto Responder” and “Request Capture”
The switches on the “Auto Responder” and “Live Traffic” tabs should be toggled to the right and green. The “Live Traffic” tab should say “Capturing”.  
Tumblr media
Step 5: Launch QuickBooks 2017 and Import Your QBO File(s)
Import the QBO file(s) from your bank(s) just like you would have before May 2020 when QuickBooks 2017 was end-of-life’d.
Tumblr media
Long Version
Why are you doing this?
As a fellow software developer, I can understand why a company would not want to have to keep up with changing APIs, supporting products with older tax laws, etc. It’s tedious to have to answer support questions about problems that are no longer problems in a newer version, but this is QuickBooks we’re talking about.  Many of the features that have been “discontinued” -- including Bank Feeds and QBO file imports -- haven’t substantially changed since QuickBooks 2016. In fact, I would argue that they’ve actually gotten worse in modern versions. QuickBooks 2011 was the sweet spot for me when it came to bank feeds; everything since has just shown how low-quality Intuit’s development and QA process has gotten. I cannot stand it when bank feeds import messes up and accidentally loses track of which rows I’ve checked-off for import OR gives me a cryptic, seemingly fatal-looking error. But I digress.
The point is, I don’t believe in planned obsolescence for hardware or software. If there is no technical reason why a feature has to stop working, and it is merely being forced to stop working to simulate failure so that the vendor can get more money, that is unethical. Disabling the ability to import bank feeds into an expensive product that was legally purchased -- when the format hasn’t actually changed -- is therefore unethical. That is why I am doing this.
How did you learn/how did you know this trick would work?
I had a hunch that there was not a real technical reason why bank feeds no longer works in 2017. After May 2020, when you select a QBO file in QuickBooks 2017, it seems to call out to some network service before returning the error “QuickBooks is unable to verify the financial institution information for this download. Please try again later.″ My hypothesis was that it was actually calling home to Intuit or a related vendor to see if the feature was discontinued or not (read as: whether the product should consider itself obsolete to force an upgrade).
To confirm this hypothesis, I installed Fiddler with HTTPS traffic capture enabled, and checked to see what QuickBooks was doing before returning that error message. As I expected, it was making a POST request to the following URL:
https://ofx-prod-brand.intuit.com/qb2700/fib.dll
The POST request payload appears to be formatted in OFXSGML format, and includes several pieces of information, including:
Header information about the format and version number.
Sign-on authentication, including an “anonymous” user ID, password, and client timestamp.
Some information about the version of QuickBooks being used.
Several unique identifiers (in UUID format) that may be request-specific.
A few unique identifiers referencing the financial institution for which banking import information is required.
In response, it looks like Intuit’s servers respond with:
A confirmation that the sign-on was successful.
Application update/upgrade notifications (”Update:2430″?).
A confirmation about what product version the message is intended for (this appears to just echo back the version that was reported in the request).
Mailing address, name, branding information, and callback URLs for importing data for the financial institution. (this is the important part)
Now, in the URL and the request, the version number being reported is “2700″. Looking at the properties of the QuickBooks application, I can see that the version number my copy of the application reports is 27.0.4014.2702 (see below):
Tumblr media
This made me theorize that the “2700″ represents the major version number of the application with two zeros appended.
Armed with this knowledge, and assuming that Intuit follows a standard naming convention for its endpoints, I modified and replayed the request Fiddler had captured to:
https://ofx-prod-brand.intuit.com/qb2700/fib.dll
...so that instead I sent the same request to:
 https://ofx-prod-brand.intuit.com/qb2800/fib.dll
I then compared the output from the two endpoints and discovered something very interesting (see below -- v27 is on the left, and v28 is on the right). The v27 variant of the endpoint returns back a “INTU.FIPROFILEURL” that points to a message about the feature being disabled, while the v28 variant appears to provide the information necessary for a “Web Connect Only” import. As I suspected, Intuit is simply forcing the older version to disable the Bank Feeds import feature by sabotaging the information it needs to function.
Tumblr media
Interestingly, the v28 endpoint still echoes back the v27 version number if it is provided in the request body. I tried with some and all of the version numbers in the POST body replaced with 2800 and the v28 endpoint will then echo-back 2800 as the version number, so it does not seem that these fields are that important.
The next thing I tried was to setup Fiddler’s “Auto Responder” feature so that it matched requests to the v27 endpoint and redirected them to the v28 endpoint without any changes to the request body. And, surprisingly, that worked fine. So it would seem that all that QuickBooks 2017 needs in order to import bank feeds is the correct endpoint URL. Just as I hypothesized, there is no technical reason why 2017 cannot import bank feeds; this is merely a cash grab on Intuit’s part.
Tumblr media
Is this safe?
It should be. Telerik Fiddler is a well-known, standard item in the toolboxes of thousands of developers and security analysts. There should not be any risk of the information it captures leaving your system. Furthermore, you only need to be running Fiddler during the import of your QBO files (once they’re in, QuickBooks can work with the data without calling home again), and the data that’s submitted to Intuit doesn’t actually include the transactions themselves.
Is this legal, from a license perspective?
As with any software vendor, the license agreement for QuickBooks includes verbiage like this:
You agree not to (and not to permit others to): (x) decompile, disassemble, or otherwise reverse engineer the Software, except as otherwise expressly permitted by applicable law...
So, from a license perspective, bypassing Intuit’s planned obsolescence of this feature of 2017 is in a bit of a gray area. However, given that there is no technical reason why these features should have stopped working, Intuit could very easily land themselves in hot water with a class action lawsuit from users who were forced to upgrade. Consider how much heat Apple got into when it was discovered that iOS updates were slowing down iPhones as they aged to encourage users to upgrade; Apple said this was to ensure that users still got as much talk time on aging batteries as when the batteries were new, but the class action lawsuits argued that this was an unfair way to handicap users’ devices to force them to upgrade. In this case, the evidence against Intuit would be a significantly more clear-cut case of forcing upgrades unnecessarily.
Will Intuit change this feature to prevent this workaround?
Probably in later versions, but it might break current versions. Plus, if the downhill slump that is the quality of the banking feature of QuickBooks Desktop is any indication, Intuit is not really interested in spending development time on things they don’t absolutely have to. I would suspect Intuit will bank on most users of QuickBooks not being tech savvy enough to discover or use this workaround.
0 notes
guypaddock · 9 years ago
Link
0 notes
guypaddock · 9 years ago
Link
0 notes