* Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).
* @param number A numeric value.
declare function isNaN(number: number): Boolean;
Go ahead — stare at it for a bit. Think about what this function is supposed to do. Read the commented description again. Then stare at it some more. At this point, I’m scratching my head and second guessing myself, with a “What the heck?” thrown in for good measure.
If you haven’t figured out my point yet, consider this: A rock doesn’t need proof that it’s a rock. It simply is. So… if logic serves… why would I need to test a number to see if it’s a number? Kind of defeats the whole purpose, don’t you think?
I figure when I get some time I’ll create a pull request to fix this interface and function, because this is just silly. Please, feel free to beat me to it. Because this is not a good reason to use @ts-ignore.
June 25th is a day that will go down in infamy. Several notable things happened at some point in history on this day:
Custer made his last stand in The Battle of Little Bighorn. (1876)
Anne Frank: The Diary of a Young Girl was published. (1947)
North Korea invaded South Korea, sparking the Korean War. (1950)
Prince released Purple Rain. (1984)
A good friend was born. ([redacted])
And now I’m adding “The Odyssey of the Flattened Run Flat”.
To understand where I’m coming from, you’ll need a bit of context. Preeminent of which is the fact that I drive Mercedes-Benz. Am I bourgeoisie? One look at my wardrobe and you’ll know that is not the case. Rather, I simply made the mistake of test driving one during an impressionable time in my life… and that experience stuck. I’m talking “instant convert”. And one of the many platitudes I would have expounded to you as to why the cost was worthwhile was the historical fact that “Mercedes-Benz takes care of its own”. As in if something went wrong with the vehicle while you were relatively near a certified service center, they would move Heaven and earth to get you rolling again. At the very worst, they would set you up for the quickest and most convenient service appointment possible. If advisable, setting up transport for your vehicle to the service center was a given.
So, bourgeoisie? No. Spoiled? Maaaaybe. Now that we have gotten that out of the way — what happened?
Simply put, I got a flat tire. But not just any flat tire. I got a flat on a tire that is designed to not go flat. My tire went flat in less than 10 seconds. I literally watched the pressure fall via the sensor warning. I wasn’t really concerned by that because I get it: Things fail all the time. The part that was concerning was the mitigation — or lack thereof — which happened afterwards.
As I alluded to in the “bit of context”, events like this normally wouldn’t be a thing. Tire goes flat. You call Mercedes-Benz customer service. They come out and change the flat for you. You head in to get the normal tire replaced & rebalanced. And just like that, you’re on your way. Normally, we’re talking maybe 1 to 2 hours of minimal inconvenience. However, I don’t have a spare; vehicles with run flats aren’t equipped with them. “No problem,” I thought. The vehicle even helpfully noted that it detected a breakdown and requested that I allow it to call Mercedes-Benz Roadside Assistance. Of course I said, “Yes, please.”
And then the Odyssey began.
Y’all — my flat occurred right around 5pm, and I didn’t get home until around 1:30am. I ended up having to call AT&T Roadside Assistance. And because of the ensuing, horrific, comedy of errors, I had to pay $321 out of pocket for a late night transport. The confirmed wrecker that was originally supposed to transport my vehicle was cancelled… because AT&T’s own Call Protect app has AT&T’s Roadside Assistance number listed as a severe spam threat. That means my phone never rang while their own app dutifully blocked all inbound attempts to reach me. I had even spoken with the transport company twice after they were confirmed because they had to switch out the originally scheduled driver due to medical issues. AT&T Roadside Assistance assumed I was ignoring them and cancelled the ticket. Which they never informed me of. For about 2 hours. I would still be there waiting to hear back from them if I hadn’t followed up for a status update.
And don’t get me started on that POS app you get shunted to if AT&T Roadside Assistance can’t immediately process your call. At least half of the issues I ran into with AT&T were due to confusion sewn by that app.
The real kicker in all this sordid mess? Mercedes-Benz Roadside Assistance never once answered any of at least 10 calls. Never once. I listened to that utterly annoying “someone will be with you shortly” message and music hundreds of times while I waited for help for more than two cumulative hours. The “service” — the cost of which is built into the vehicle price — completely failed me when I needed it most.
The Mercedes-Benz emergency service which is synonymous with OnStar? They are excellent; that team is on the ball and always respond instantly. Roadside Assistance? Whomever runs that group needs to be publicly tarred, feathered, and then fired for incompetence. Maybe they’re not the person who is supposed to be answering the phones and getting people the help they need. But they’re the person who has fostered an environment where the very customer they’re supposed to serve isn’t.
The day wasn’t a complete wash though. I got to catch up with some folks. The last of which is a good friend I’m eternally grateful for because he sat there with me for most of the Odyssey, AND he was the person who brought me home after the transporter picked up my vehicle.
Yep, me too. I wasn’t able to log into the Teams desktop app for about 2 days because of it. I finally got tired of having to use the browser for this, so I did a bit of sleuthing. I ended up at this tech community post with a successful fix posted by @Arayn_Raje.
The fix for me was to:
Sign out of Teams; if that is not possible then at least fully quit the app using the icon in the System Tray or exit out of it using the Task Manager.
Go to the Teams shortcut on the file system; for me it is at %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs.
Right-click the icon and select Properties.
On the dialog that opens, click the Compatibility tab.
Check the box inside the Compatibility mode section on that tab and make sure the selection is set to Windows 8 (it should be by default).
Open Teams again — it should work now; sign out and sign back in to make sure the change isn’t a fluke.
In Teams, check for updates; there should be one.
VERY IMPORTANT: Be sure to sign out of any other Teams accounts other than the one that just successfully signed in.
The Compatibility mode setting can be removed now.
So, what is going on here? Well, it seems that Microsoft has removed the capability to be simultaneously logged into both work and personal Teams accounts. I can’t definitively say this, but the following statement — visible when you try to use Team’s personal account switcher to get to your other accounts — seems to corroborate my findings:
If you attempt the Sign out here without also signing out of Teams via the desktop application, you WILL get the same error that started this whole mess. << sigh >>
Today, I was back in the ATL — despite Florence trying to make things difficult — talking about one of my favorite subjects and passions: Cortana. I had a small but entirely engaged group in the room — and we had a GREAT TIME — solving a real problem. That wasn’t a simply “Hello World” demo, was it Gerald? 😉
I had the honor of meeting (and in some cases, reconnecting) with a great group of people at Bradenton’s Station 2 Innovation. Spark Growth put on one of their many Tech Talks, inviting subject matter experts to share what new and useful in their fields of passion. Mine, of course, is Cortana. 😉
I earned my MBA from the illustrious School of Business and Industry at Florida A&M University in May 2000. To a large degree, that would not have been possible without Dr. Clyde Ashley. No, he didn’t do me any “favors” (that I’m aware of)… but his constant presence, support and guidance were instrumental in my matriculation there. He was so down to earth that he tried to discourage me from calling him “Dr. Ashley” after about 2010; it didn’t work.
How does one describe Dr. Ashley? I can think of quite a few phrases:
A consumate gentleman
Always demanding excellence
Defender of those under his wings
Encourager of all
Exacting of effort
Exhalter of anyone due credit
Poetic to a fault
Stalwart, without peer
… but none of these do the man justice. Words fail to describe the heart that was his and how he looked after anyone he felt worthy of personal patronage — which was doggone near everyone. I can’t tell you how many times he encouraged me. His method wasn’t empty words though; rather, he challenged you, and challenged you, and challenged you… until you had no choice but to respond. Even still, his method is best described by the following:
“My way is all love and confidence, and I cannot understand those souls who are afraid of so loving a Friend.” – St. Thérèse of Lisieux
Doc, thank you for pouring everything that was you into so many of us. You made an impact on my life that can never be forgotten or erased. You will be missed. Rest well.
This is just crazy. I hate to say it, but I think we’re witnessing the start of Ideaocracy. How? By limiting quality education to the wealthy-ier parts of the population. This is partially achieved by — as the article alludes to — squeezing out quality teachers dedicated to low-income areas. Oh, they’ll still be getting an education… But will it be from people who care about their students and those children’s futures or people who are simply working to collect a check?
Here’s an interesting Times article that boils down to what was done with the data obtained via a Facebook quiz app. Note that Facebook did not create this app, but a third party consultant. The intent? To distill enough information about a given voting segment to create political messaging designed to influence those voters.
Although the title is quite misleading, it does capture the fact that people willingly gave clues regarding their political-psychological leanings while “taking the quiz”. Seems harmless, right?
However, they didn’t know that the author was also scraping their profile to gather more information about them and that of their friends. The app author was paid more than $800,000 to create the app… so I’m going to go out on a limb and guess that they weren’t simply trying to figure out your hair color.
Unfortunately, this article is behind the Times pay wall so you’ll have to use one of your 5 monthly free reads if you don’t have a subscription.
How Trump Consultants Exploited the Facebook Data of Millions
So… a LOT has happened/come out since the last time I stood in front of a group of people. And that’s a good thing. Long story short, you can now create/develop/do for/with Cortana in ways that previous weren’t possible or easily manageable. Now? All that is out the window and you can do pretty much whatever you want — in terms of grabbing and processing data to be displayed via the Cortana Canvas. Which is doggone near the holy grail, neh?
Thanks to the folks who decided to eschew John Papa’s talk and hung out with me and my other favorite girl (after My Queen!) in the early-ish hours of 3/17. Here’s the slide deck… not that there’s a whole lot there for the folks who chose not to attend.
I ran into a myriad of issues with connectivity throughout the presentation. So what should have been easy, bite-sized demos became a tedium of tap-dancing while waiting on connections to be re-established. What it means for the people who were there (and you as well, by the way) is that I felt honor-bound to append more slides to the deck which provide examples of what we couldn’t get to. I also included the source code of my external dll (that is called from within the Azure Function) as well as an offline copy of the Function Bot itself. I recommend that you DO NOT simply try to deploy this bot; if you do, things will not link/sync up correctly and you will get some very frustrating issues. Instead, simply copy and paste the entire BasicLuisDialog.csx file into an Azure Functions Bot that you generate in Azure via the Create Resource workflow. Check the top level read.me file in the archive for more information. Also, don’t forget to get your own Toggl.com account so that you can add your Toggl API key to the External Libray Source\Integrations\Constants.cs file.