Category Archives: Technology

Windows 10 1809 Install + Threadripper 2 + x399 + Intel 9260 = BSOD Perfect Disaster

In the Fall of 2018 I built an epic PC for gaming / machine learning.  It was based on the latest technology and included a number of high end parts but not limited to an AMD Threadripper 2950x, ASRock Taichi x399 motherboard, 2x NVIDIA GeForce RTX 2080 TI in SLI and a Samsung 970 Evo M.2 SSD (full parts list @ pcpartpicker).  When I built the machine in the fall, I loaded it with Windows 10 ( I think version 1803 ) and everything pretty much worked great.  I was even able to have a 3DMark Score in the top 50 or 20 for a few days until the serious overclockers took over, with their custom voltage regulators and LN2.  Now, I’m not even in the top 100.

full parts list @ pcpartpicker
19th for a few days 😉 Now, I’m not even in the top 100.

So, a few weeks ago I wanted to refresh the system, clear out any possible malware, and start fresh.  I didn’t remember which version of windows I had, or what was on what USB key and before I knew it – I had created a new USB Installer key over the old with Windows 10 1809, little did I know that this is where my problems and headache would begin.

When I went to install a fresh copy of Windows 10 1809, I started to run into a BSOD ( blue screen of death ) with a BUGCODE NDIS_DRIVER error.


BSOD ( blue screen of death ) with a Stop code: BUGCODE NDIS_DRIVER

Then the system would restart and produce a new “Install Windows” error in a dialog box.  This error reads:


The computer restarted unexpectedly or encountered an
unexpected error. Windows installation cannot proceed.  To install
Windows, click “OK” to restart the computer, and then restart the
installation.

I must have tried 4 or 5 times to just start over, then I tried to locate a different version of the OS.  The best I could find ( from microsoft ) was an ISO of 19H1, but this was much worse as I didn’t even get the dialog.

TLDR; Eventually I found a workaround that didn’t work ( and broke windows update ) before discovering the actual solution ( on an MSI forum) to install the correct and updated Intel 9260 Drivers.

The first work around I tried was on Windows 10 version 1809, where I used a registry hack I found to continue the installation process, which seemed to work.  I got the OS booted and everything seemed fine at first, but after I started installing software I noticed that Windows Update was stuck and wouldn’t load any more updates; some of which I knew were critical to the work I wanted to do.  The machine also seemed clunky, don’t get me wrong it was still blazing fast on 3DMark, but little things like window and mouse jitter seemed odd for such a fast new machine.

After a week of waiting for it to fix it myself I started to investigate the problem further.  I tried a few fixes that end up not working and tried to “upgrade” windows. I tried 19H1, and even tried to “upgrade” to 1809 both of which failed, BSOD’ed, and then restored me to a somewhat working OS without windows updates.

I continued to try various things, none of which worked, and many of which worried me that I was making my Windows 10 Install more unstable.

It was time to get help.

I started with the Windows 10 Troubleshooter, but it reported that it couldn’t find anything wrong.  Then I went on to use the “Get help” link on the Windows Update panel. This led me down the path of what seemed like several solutions, but again anytime I got to the critical point of manually installing the critical update pack, it would fail, or stall.

I scheduled a call with Microsoft Tech Support and a level 1 tech answered the phone.  She remoted into my machine, and walked me through a few things but soon realized that none of those things were going to help and then she recommended that we try “upgrading” or “re-installing”.  I told her that is how I got here and that wasn’t going to help. She then scheduled me for a Level 2 tech call 3-4 days later; and since my machine was mostly working I patiently waited.

8:00am, … 8:15am — missed call from Belleview, WA — It must have been the Level 2 tech trying to call me while I was on my phone (I still have no idea why it didn’t ring).  Eventually by 8:20/30 am we had finally connected. My 2 year old daughter was now awake and playing in the background.

At this point the Level 2 tech had now remoted into my machine ( after i gave permission of course ) and we were trying more advanced stuff.  She was clicking and typing confidently through my OS shutting down services trying to restart them, and trying to get windows update working again.  After several attempts of trying to use her ninja skills to force manual updates, and or get the windows update service working, she said, we need to try to reinstall.  I informed her that I had tried this before and showed her what I did to get the OS working in the first place, but nevertheless she persisted. We tried the “upgrade/install” process like she insisted and again it kicked us back to the saved restore point.  She couldn’t see the BSOD, but I told her what I saw. After a few variants of this, she insisted we try a fresh install.

At this point I was still full of hope that she would resolve my issue, and since all of my data is on a 2nd HD.  I disconnected that SATA drive from the machine, and followed her lead. She made a custom install USB and we secure wiped the SSD and did a fresh install.  Again BSOD, and the error message! I was devastated but still hopeful, but from here on out there was no restore point. I was eagerly awaiting the Level 2 tech to tell me what to do next, but then I realized that she had given up too.  I was so mad that I started the call with a somewhat working PC and now I had a machine that didn’t even have an OS on it.  Hours of set up time wasted again!

She talked me off the ledge, and scheduled me for an in store ( yes the Microsoft Store, in the mall ) visit.  I was a little offended to say the least because she was implying, but never said, there was an “issue between the chair and the keyboard” ( an old tech saying ) for when they think the operator is in error.  She kept blaming my hardware too, scapegoating hardware that was working just an hour ago.  I insisted it was a software/ OS issue, but she held her ground and scheduled a follow up call with me.

I was pissed, because Now I would most likely have to visit an MS store with an even less experienced tech.

When I got to the store after carrying my practically 30-40lbs “copper” brick through the mall I arrived at the counter.  They wanted to check-in my box and tried to tell me that I’d have to leave my PC with them for at least 3-5 days.  I was struck with shock and annoyed, the Level 2 tech didn’t warn me of this at all.  I tried to find out what they were going to do to resolve the issue, and after about an hour of debating with them I realized that they were basically going to try the same stuff, monkey with the BIOS randomly, and then blame it on the hardware (which has always been working).

We exchanged emails and parted ways.  They told me based on the images I had sent them that if they found out anything the would send it along.

Later that night I did get an email from the Microsoft Store.

Hello Justin,

Here is communication I received from our team member in Redmond that he suggested. If you have any questions please let us know.

“I would advise the customer look at this thread: https://www.reddit.com/r/Amd/comments/721s6z/threadripperasrock_x399_taichi_windows_10_needs/

It appears that IOMMU (Input–output memory management unit) needs to be disabled in the North Bridge EFI settings in the UEFI as it can cause issues with the installation. If issues persist I would point the customer to the motherboard manufacturer for support as each of his parts in his custom build have their own unique OEM warranty. “

I followed the suggestion and tried a few combinations of changing the IOMMU and virtualization settings in the BIOS.  I had no luck, and in fact changing some of these settings resulted in me having to reset my CMOS settings to default. When they did work, the BSOD and the error message would inevitably appear again.

This got me thinking to search the ASRock forums and support pages.  It was at this point that I noticed that there was a new BIOS, v3.50, which is odd because I had been checking for weeks for one with the ASRock APP Shop which just a day ago didn’t report the new BIOS.  I downloaded the new v3.50 BIOS from 1/9/2019 and flashed the MB. ( I don’t think the new BIOS helped, as the ultimate solution wasn’t in the change log). I then again tried the MS Store advise and ran into the same problems.

After again scouring the web for new solutions, I happened upon an MSI x399 thread that offered new hope ( HELP. Can’t install Win10 Keeping getting blue screen and “STOPCODE BUGCODE NDIS DRIVER ).  It was at this point that I realized that it wasn’t a problem unique to my Taichi board, but affected other MBs as well.

I found a few posts mirroring the concern over the IOMMU, the NVM M.2 SSD interface, the 10+ core count in the Threadripper line, and just blaming Windows 10 v1809 as the problem.  Some people even recommended a few sites to download 1709 and 1703 and claimed that they were able to get around the issue that way.

I don’t think you should do any of these solutions.  IOMMU support is actually critically important to Threadripper because it has a NUMA ( non uniform memory architecture ) where blocks of RAM are accessible through different CPUs.  I think disabling this can cause huge issues. Even if you could install the OS on a SATA disk, why would you want to when you have an M.2 SSD? Underclocking with your core count might be possible on the MSI BIOS but it didn’t work on my ASRock Taichi x399, and who knows maybe windows if it did install will think you have two different PCs trying to use that license once you change the core count.  Finally, why use an older version of the OS if you can get 1809 working.

I eventual found this post MSI MEG X399 Creation, Blue Screen during Win10 Install (and a fix!), which points out that this is a Intel 9260 driver issue with Windows 10 1809.

Normally this error might not affect the ASRock Taichi x399, as it comes with an Intel 3168 Wireless-AC module, however, I replaced mine with something faster and with BT 5.0 ( the Intel Wireless-AC 9260 ). The default 3168 Taichi wireless module is actually pretty slow, so, you can see why I would replace it with the 9260.

Since all of the MSI MEG x399 boards come with this module, this explains why I wasn’t able to find a solution when I was limiting my scope to ASRock MBs which come with the 3168 instead.

TLDR; Once I downloaded the driver I copied the unzipped folder to a 2nd USB stick in the root dir ( even though you might be able to have it on the windows install usb ).  When you get to installing the OS, and your selecting your install location (disk/ partition/ drive), you have the option to format, etc…, and to load a driver.  It’s at this time that you load that driver, if you try to wait, you’ll get a BSOD, corrupted install and have to start over.  ( I installed v20.120.1, win10 64 bit only, 3/6/2019 )

Windows threw up a dialog about not finding any valid drivers, close this, you’ll have a few windows to close before you can browse for your driver.  Locate the directory of your 9260 drivers and install. After this it was smooth sailing for me, and the machine felt smoother and more responsive than it did before all of this started.  It however didn’t have any faster 3DMark scores, so don’t expect any miracles.

Summary

While the Microsoft staff was friendly, I found it incredibly frustrating that ultimately they couldn’t help me.

This is a huge failing on their part, especially since Mac OS and Linux are free by comparison, the hardware was supported and functioning, so you’d expect a certain level of support, especially when you buy the Retail Full Version of the OS, for $200.

It’s a 2nd major failing on MS Support Scripts that they so willingly blame the hardware.  All of the hardware is from major brands and have stated that they have compatibility support for Windows 10 64bit.  It was a 3rd failing of MS that the installer of 1809 fails so bruitilly for such a minor issue, even if earlier versions of the Intel 9260 driver BSOD the installer fail, then there are plenty of mitigation strategies that MS could employ.  It was a 4th fail on MSs part that the 19H1 release still does not correct this issue when it’s only a driver issue and Intel has had a new working driver for 6-months. Their 5th fail was that none of their staff or KB ( Knowledge Base ) was aware of the issue, when this affected ALL MSI x399 Creators edition boards, the Level 2 tech ( the highest MS has ) didn’t even try this approach before giving up.

In the process of trying to solve this problem, I saw a lot of issues with 1809, and the 1803 installers.  On top of that Windows 10 has had a number of issues with Threadripper since it’s release. However, this is to be expected with new platforms AMD is probably as much to blame as MS on this one.  AMD needs to better support it’s driver teams and get these issued worked out as early as possible, this is one thing that NVIDIA and Intel still do better than AMD. With all that said someone Intel’s latest driver didn’t make it to the installer.

Now that my PC is working with 1809, and it’s not that bad to reinstall, I’m a happy customer, but I had wished this whole process would have been a lot easier.  I hoping that anyone reading this article can help apply pressure to MS, Intel, and AMD to make this better, because they are not going to do this on their own, especially if 19H1 is any indication.

Crossposted to medium

Is Facebook Fingerprinting Chrome extensions?

This morning I noticed something new in my Chrome Console while working on a Chrome Extension. It looks like Facebook is now looking to see if you have a set of Chrome extensions installed in your browser. Most of the extensions I looked up on Google’s web store and via their search engine and they look like they are Malware of some sort, but a few of them look like they are much less harmless. It’s hard to see what the extensions actually do because they have been pulled from the Chrome Web Store, but some of these look like they modified the appearance of Facebook intentionally.

Some users don’t like being forced to see walmart colors all over the web and have used various tactics to customize the web to their liking. Some other users might do it for usability reasons or just plain augmentation of the web.

Does Facebook have the right to do this? It feels like an invasion of my privacy. I think the latest version of Chrome protects us from this sort of attack but that does not mean that Facebook won’t invest in other ways to discover this information or that they won’t lobby google to discover it. Some extensions also have the ability to open up channels to other extensions so if facebook had it’s own extension it might still try to fingerprint which extensions are there.

This isn’t all bad, in fact it really depends on how it’s being used. If it’s only used to defend our privacy and security then it seems fine, but if this little trick is being abused this could really sour things.

I guess I am mostly just surprised that Facebook is doing this.

Screen Shot 2012-09-05 at 10.30.49 AM

To get this to occur in your own browser you will need to be a bit sneaky and use a private session. Once Facebook runs the finger print they don’t do it all of the time, I think they only do it on auth and then they cache the result in some way. In fact since some extensions have access to the cookies I wonder if one could ‘skip’ the finger printing by setting the proper cookies or localstorage setting.

Finger Printed Extension IDs

kjafndplmofcedgddaoceenkcbfankem
kincjchfokkeneeofpeefomkikfkiedl
iejbljbhhoclgfiapmomcpkpkcmihfib
lkfhadffdnjnogmgjfihlcmmjhcfchaj
afnnkheojlgkipfabekmdkngocfhegck
hkpibllecmidllaojdmkcmfnoinmejco
gpllafflnmgjjcakjloknldkndnkmcpi
pkhidkonipdjidjglnkfcfhnkfnlefbk
kjafndplmofcedgddaoceenkcbfankem
kincjchfokkeneeofpeefomkikfkiedl
iejbljbhhoclgfiapmomcpkpkcmihfib
lkfhadffdnjnogmgjfihlcmmjhcfchaj
afnnkheojlgkipfabekmdkngocfhegck
hkpibllecmidllaojdmkcmfnoinmejco
gpllafflnmgjjcakjloknldkndnkmcpi

If not a MacBook Pro, what Laptop should I buy?

I did this research for a friend, so I thought I would share with everyone else.

The HP laptops have the highest performance to cost ratio with that said there are a few sacrifices for each model.

In your shopping you will want an Intel i5, Intel i7 or one of the AMD A6 or A8 processors. Do not get an Intel i3 processor. The Intel i5 or i7 should be fairly no fuss and I have enjoyed them. It’s the same processor found in the new Macs. The A6/A8 processors from AMD are really new and fewer computers have them, however they have a graphics card built right into the processor and in theory offer really low power operation, although this is the more darring choice.

For price performance, i’d probably choose an i5 or the AMD A8.

Here are list of graphics cards and their frame rates.

The HP models found below are really good, but you will need to choose the upgraded graphics processor. These are the fastest graphics processors in a Laptop in your price range. I also have one of these notebooks if you would like to see how it feels. We could even try your software on it to see how it runs.

HP High Performance Laptops

The other option is the Sony S series Viao. While it’s graphics card is not as fast as the HP, and the Sony has a semi-gloss-anti glare screen while the HP can be ordered with a matte screen. The Sony S series also have a really neet battery system and can last up to 15 hours with the extra battery ( *according to the site ), however, it’s probably more like 7 or 8hours with wifi on. The Sony’s should also feel better or feel more like a Mac.

Sony S series, stylish performance

I would also recommend that you upgrade to Windows 7 professional rather than just sticking with the Windows 7 home version. The professional version allows you to run software in a Windows XP mode and is more compatible with older software. I have used this mode on at least 3 different applications to get them to work.

The HP will be the fastest, but the Sony will feel nicer. HP also has a nice warranty program that can be upgraded over time, and they are the largest PC manufacturer. With the HP warranty I bought the 1 year plan and at the end of the year you have the option to extend it. I do have to say that even though the HP is very fast and it was a great bargin, it does feel quite different than working on a Mac, which is what I am used to.

I loaded up my HP and got i7 Quad core with 2GB of Graphics memory and 8GB of system memory, and a bluray drive to watch movies on planes. ( the Sony S, also can play bluray )

If the timing was a bit different, I might want to sell mine and get a Mac Book Pro 15 inch instead.

Let me know what you decide.

JSLint-Feature – Error Severity

Hi Douglas,
I have been to a good number of your talks, and I love the idea behind JSLint. I even don’t mind it when JSLint makes me cry every now and then, however, I feel like the priority of JSLint should be around launch successful code early and often.

Here at Kabam we build games that run as HMTL5 apps, and recently we have started to use JSLint as part of our build process. In a few cases it has caught some minor errors and we were later able to resolve them.

Our build process uses Jenkins, which is an open source version of Hanson. These continuous build automation tools make use of another wrapper library you might be familiar with. http://code.google.com/p/jslint4java/

So in this sense let’s say a develop wants to add a new piece of code, and this code causes a problem.

JSLint reacts in the following ways,
– it has a an error limit and stops reporting erros after a certain amount
– errors are not prioritized based on ‘newness’ – because that would be hard
– errors are not prioritized based on priority.

The end result is that a team must fix all errors to get the maximum value out of JSLint.

I propose a 2 part solution.
1. JSLint should not set error priority, unless it sets sensible defaults
2. JSLint should report an error code so that a wrapper like jslint4java could use a config file set an error priority.

This would allow teams to triage error types as part of their build/ development process.

On line 1326 you have a function warn() defined I propose it’s written something like so, including a new warning property, defining an error.type property using the bundle[] accessor name as the error code.

If you think of some other change that could get to the spirit of what I am looking for that would be great too. If I get the time I might try to implement a prototype. Hudson and Jenkins have 3 levels of errors, High, Medium, and Low.

Would you have some suggestions as to what would make good defaults for each of the error.types?

I feel like this change would better support agile development and continuous integration, and would allow teams to prioritize their development efforts.

Thank you for being a beacon and leader in the community.

function warn(message, offender, a, b, c, d) {

        var character, line, warning;

        offender  = offender || next_token;  // `~
        line      = offender.line || 0;
        character = offender.from || 0;

        warning = {
            id: '(error)',
            raw: bundle[message] || message,
            type: message,
            evidence: lines[line - 1] || '',
            line: line,
            character: character,
            a: a || (offender.id === '(number)'
                ? String(offender.number)
                : offender.string),
            b: b,
            c: c,
            d: d
        };

        warning.reason = warning.raw.supplant(warning);

        JSLINT.errors.push(warning);

        if (option.passfail) {
            quit(bundle.stopping, line, character);
        }

        warnings += 1;

        if (warnings >= option.maxerr) {
            quit(bundle.too_many, line, character);
        }

        return warning;
    }

Netflix, Rushing Roulette?

Like many of us you might be wondering why Reed Hastings is tearing a great company in two. The company had had a solid decade of growth and now it seems to be faltering at every step. In the past decade Netflix has gone from ~$3 a share to ~$300 a share a 100x return, so investing $100 in the company would have made you $10,000, not bad. In fact that return is so good that you would find it hard to find a bet in Vegas that would give you a return like that. Roulette only nets a 35x return if you bet on a single number, and in Craps you can make an unlikely bet to earn 30x, by betting either on a 2 or a 12, both requiring a pair of doubles to come up.

In the case of Netflix though there are a number of pressures bearing down on them. Content providers see Netflix’s 25 million customers and feel like DVD/ BluRays are more secure and feel like they can turn content on and off to A/B test how consumers view content. The US Postal Service is thinking about cutting 238 offices nation wide, cutting out up to 5 post offices per state, or more likely up to 10 offices per metro region. Netflix has had to adjust content pricing to afford them the ability to bring in new content, while, other long standing partners have decided to take their content libraries elsewhere. And then add to that that there are Trillions of dollars of investment, yes Trillions, invested in the group of company’s competing with Netflix over the content war brewing in your living room and you might start to see why Netflix is being brash about this.

As a Netflix subsriber, I have been more than happy to have items sitting both in my streaming que, and in my dvd que, and honestly if everything on Netflix was available via streaming or download, I would opt for that format. The kicker however is that so much good content is left on disc for one reason or another. I have seen content appear on various outlets, like Netflix, XBox Live, Hulu, and Amazon to name a few, but rarely is all of the content in one place. This is probably why Google feels the need to provide a TV with a search bar, and why Apple has been trying to figure out how to own the channel as well. However in the end, the customer still looses. I think in this case, right or wrong Netflix is just tired of talking to content providers about what format the content will be available. I think the re-brand is more of a point of discussion in contracts, and negotiations than it is a consumer feature.

The next chamber of risk brings us to the pending demise of the post office. Currently the US government has been looking for ways to trim the budget and the US Postal Service has been operating at a loss for as long as I can remember, however, today they are preparing for being on their own. There are a few bills in the House and Senate that might require the Post Office to be profitable, and so the Post office has proposed a plan that will cut 7% ( 38,000 ) of it’s workers, and 1% ( 238 ) of it’s offices from it’s budget just before Christmas. I think Netflix, which is one of the largest users of the post office next to Amazon is probably concerned that the cost to ship DVDs this winter will increase, and the delivery times will too. Right now I get my DVDs in about 1 day, sometimes 2. Imagine now that those discs now take 2 days or maybe 3. How much more pressure will there be to stream. The odd part is that all of the disc rental sites will have the same problem. And for a 2hour film waiting 2 days for a film, and the having to wait another 2 days for it to get back to Netflix/Qwikster might cut the number of DVDs you have cycling through by half. I would expect Qwikster to play with pricing over the next year to account for that. Splitting the two companies means that while Qwikster finds it’s groove Netflix can focus on getting content.

On top of all that, Netflix is a 12 Billion, strike that 8 Billion dollar company that is competing with Google, Apple, Microsoft, Amazon, Comcast, Time Warner Fox, NBC, ShowTime, HBO, TNT, Viacom, Disney, etc… I think the market cap of their competition is near 2 Trillion dollars. Netflix needs to be more nimble than is competitors and if by doing this they can even gain a month or two on these companies it might be worth it. iPad beat several company’s by only 6 months, but by that time they had already sold enough devices to make it very expensive for other’s to compete there.

Finally companies like to manage their investors expectations and if the news was already bad, they have this habit of pilling on bad news or announcing bad news right before really good news. So if Netflix stock is already taking a hit, and you were going to separate the companies in q4, but now you can just do it in q3, you can write those numbers off earlier, you can push your bad books down into q3, and then you can set your self up for a decent q4. If Netflix wants to compare q4 of this year to q4 of next year, doing this now helps. I also thing that Netflix’s gross margins will skyrocket right now Netflix has a P/E of 40 at $150 a share, and it probably was a P/E of 80 at $300 a share which was probably a bit over priced with a gross margin of 15%, but let’s say that Netflix drops it’s DVD rental service, and it’s gross margins go from 15% to 50%? Even if the company looses customers it probably is better for the stock, and the company. The company would be cash rich and able to better acquire content. Right now Qwikster is expensive to run and competes on costs, and is probably constrained to 10-20% gross margins.

Netflix on the other hand has been experimenting with buying their own custom content and this may allow the company to do that more. I would love to know what the insider trading is doing with Netflix.

Using Cellular Atomata as a Design Principal for ‘Natural Design’

I read this really thought provoking article using Cellular Atomata, prime numbers, and layered images to create seemingly random backgrounds for web pages. Yes, backgrounds for web pages.

The problem is that on so many web pages, load time is an issue and so is screen size, so it’s really hard to avoid those lines or patterns that seem to repeat and distract from the content on a variety of devices.

It’s actually a great design principal to accommodate randomness, so the eye can focus on the structured content. It’s kinda like having a great forest in the background to an architectural monument. If done right the monument and surrounding garden will really pop against the scene.

In any case the author, Alex Walker, discusses how to uses geometric patterns based on prime numbers to create a sort of randomness in the background. The examples he gives are a much more understandable explanation than say Stephan Wolfram gives about the value of cellular automata in creating natural systems.

I think this better illustrates what Stephan Wolfram was talking about with cellular automata.

It’s clearly brilliant to use it as a graphic design principle.

Maybe Cellular Atomata (CA) rules could be used to generate layout width & height rather than typical asymmetrical patterns? An app like Flipbook could benefit from it, to keep the page layouts feeling designed and fresh.

I think Alex is on to something here using CA (Cellular Atomata) as a design pattern.

I would love to see it in designing UX and Architecture. I would love to see CA being used as a way to generate dynamic, but structured design.

It’s brilliant. Imagine what Santiago Calatrava could do with such a pattern.

Paypal IPN Validation Fails with Adaptive Payments and PHP query/ post parameters

If you are looking for a solution you can find it here.
Thank you Gleb ( http://www.memberwing.com/ )

https://www.x.com/message/158509#158509

The problem comes in how the API is designed, and it takes advantage of a little known feature of query parameters and their allowed characters. Paypal uses array’ed parameters like:

&transaction[0].status=value

The problem is that PHP does not know how to parse the query parameter and either skips it or stops processing the list. ( i can’t remember which ).

Paypal’s Adaptive Payments API is neat and freshens up their functionality, and additionally uses JSON as a communication layer, so I think it’s clearly their future, however, there are a number of little problems like this as you walk through getting up to speed on the API. I hope this helps anyone in the future by saving them an hour to day.

It kinda reminds me of some of the problems we had getting the MySpaceID API up and polished so I guess this is a nod to all of those APIs that do it right the first time.

Cheers.

Getting VerifyStatus API working in Sandbox

There are a few caviots to getting the API working.
I hope this saves someone a few hours/ days.

  • CallerServices.php has a small bug
  • Only Sandbox email accounts work in the sandbox. Thanks for confiming @ppalavilli
  • ALL Sandbox accounts have the First Name: Test Thanks @ppalavilli
  • ALL Sandbox accounts have the Last Name: User Thanks @ppalavilli

If you get a

PHP Warning: Missing argument 3 for CallerServices::callWebService()

On line 101 of CallerServices.php you have:

function callWebService($request,$serviceName,$simpleXML)

It should read: //(most of the calls that use callWebService are parent::callWebService( $request,$serviceName ) anyways.

function callWebService($request,$serviceName,$simpleXML=NULL)
{
$response = null;
try {
    $endpoint=API_BASE_ENDPOINT.$serviceName;
    $response = call($request, $endpoint, $this->sandBoxEmailAddress,$simpleXML);
}
catch(Exception $ex) {
throw new FatalException('Error occurred in call method');
}
   return $response;
}

Here is the code I used. Replace {email} with one of your sandbox email addresses.

public function verify_email($params){
$VstatusRequest = new GetVerifiedStatusRequest();
 
$VstatusRequest->emailAddress = '{email}';
$VstatusRequest->matchCriteria = 'NAME';
$VstatusRequest->firstName = 'Test';
$VstatusRequest->lastName = 'User';
 
$rEnvelope = new RequestEnvelope();
$rEnvelope->errorLanguage = "en_US";
$VstatusRequest->requestEnvelope = $rEnvelope ;
 
$aa = new AdaptiveAccounts();
$response = $aa->GetVerifiedStatus($VstatusRequest);
 
echo json_encode($response);
  }

The JSON encoded object looks like such:

{"responseEnvelope":{
    "timestamp":"2011-03-25T15:37:32.44307:00",
    "ack":"Success",
    "correlationId":"42bce847aebc9",
    "build":"1772158"
},
"accountStatus":"VERIFIED"
}

@jdavid

Paypal X Adaptive Pay FundingConstraint for PHP

The following code is an example of adding the FundingConstraint objects for a payRequest with Paypals new Adaptive Payments. I hope this helps.

$payRequest->fundingConstraint = new FundingConstraint();

//$payRequest
//    ->fundingConstraint
//    ->allowedFundingType
//    ->fundingTypeInfo
//    ->fundingType = "BALANCE";

$payRequest
    ->fundingConstraint
    ->allowedFundingType
    ->fundingTypeInfo
    ->fundingType = "ECHECK";

tumblr

I just started a tumblr account. As I test it out I may push more and more content there. It seems that tumblr has a crazy growth rate, and really provides some advantages for sharing ideas. Maybe wordpress just is not social enough to keep up.

If you have a tumblr account let me know, my tumblr account is http://jdavidnet.tumblr.com