I Thought He Came With You is Robert Ellison’s blog about software, marketing, politics, photography and time lapse.

I just want to get rid of Windows 10 Notifications with one click

Updated on Thursday, May 3, 2018

I just want to get rid of Windows 10 Notifications with one click

910 days ago I vented my frustration at Windows 10 notifications.

Well someone in Redmond must be listening. They 'fixed' it.

The problem was that dismissing a notification did not actually get rid of it. Clicking the little x in the corner just sent it to the Action Center where you could enjoy reading it and dismissing it again.

Like some kind of cargo cult Toyota, Microsoft asked the one why, and changed the little x to an arrow. Now it's more obvious that you're just shuffling the notification around the desktop. Ticket closed. But I still have to handle every fucking notification twice.

Which makes the announcement of the April 2018 Update especially ironic:

"With this update, available as a free download today, you get new experiences that help minimize distractions and make the most of every moment by saving you time. Our hope is that you’ll have more time to do what matters most to you whether that’s to create, play, work, or simply do what you love."

I'm guessing they're all on Macs?

The Trust Project, Fake News and a Partial Facebook Uninstall

Updated on Thursday, May 3, 2018

No Facebook app to be found here

The Trust Project is a well meaning but doomed attempt to deal with fake news.

Facebook, Google, Bing and Twitter are all on board because it's important to be seen to be doing something about the problem. Sarah Perez at TechCrunch writes:

"Here’s how this will work in practice: starting today on Facebook, an icon will appear next to articles in the News Feed. When you click on this icon, you can read information the publisher has shared related to their organization’s “ethics and other standards, the journalists’ backgrounds, and how they do their work,” according to an announcement from The Trust Project."

Please take a minute to scroll through the Trust Protocol Phase I MVP. Yes, this is a minimal viable product where your most recent Diversity Staffing Report is required. I don't think they understand what an MVP is. Which would be fine if they understood how to fix the problem. They don't.

Back in January I wrote this about fake news on Facebook:

"The horrible danger is that if you don't fact check every stupid quote on image meme the power of repetition lodges them somewhere in your subconscious where they become that thing that you read somewhere. Which is OK if you only read quality news but deadly if you want to catch up on old friends quickly."

And back in 2010 on cable news and the Fairness Doctrine:

"24-hour news stations are especially bad because most days there just isn’t that much news. This leaves a choice between repeating the news that exists which is boring, or making stuff up which is a lot more fun. Unfortunately It’s also corrosive."

Yes, it would be nice to have a set of standards around more easily vetting the provenance of "news" that you find on the internet. But the problem is with people taking bullshit at face value (myself sometimes included). When you scroll by something that meets the loose standards of your confirmation bias the damage is done. You're not clicking any Trust Project icon and you're sure as fuck not upgrading Acrobat just to read the Breitbart Diversity Staffing Report.

The Trust Project isn't the answer. Facebook just pulled their disputed flag. The Fairness Doctrine isn't coming back. Is there a technology based fix that might work?

"That’s not going to happen, argues Data & Society founder and Microsoft researcher danah boyd. Google, Facebook, Twitter—none of these companies is sitting on a silver-bullet solution. As boyd wrote for us earlier this year, we have more than a technology problem: “[W]e have a cultural problem, one that is shaped by disconnects in values, relationships, and social fabric."

From The Fake News Culprit No One Wants to Identify: You on Backchannel recently. I see. It's up to me. I have to fix it.

I uninstalled Facebook and Twitter from my phone just over a week ago. I'm not abandoning social media entirely (although I toy with this regularly). Just pulling back a bit.

For the first few days I'd regularly find my finger headed to launch Facebook. Every time I had a minute to kill. Facebook has no end (usually) so it works even when my RSS feed is empty. I stocked Feedly up with more wholesome content (Trust Project approved no doubt). By the end of the first week I was sometimes even leaving my phone in my pocket.

Now I catch up on Facebook on my laptop every day or two. It's a much better experience - when you check 200 times a day the feed algorithm gets increasingly desperate to please you. It panics and serves up lame memes from someone who you think must have been a coworker at some point but don't really remember. I get through a few updates from friends that I'm actually interested in and bail before hitting the questionable stuff.

It's up to you too.

Why Microsoft is Likely Doomed Based on one Email Folder

Updated on Wednesday, August 9, 2017

Close up of the useless Junk folder in Microsoft Outlook

When you get a piece of spam in Outlook you move it to Junk or block the sender. And then, even if that junk mail is marked as read, the Junk folder has a BOLD MESSAGE COUNT. It's the only folder that does this. I cannot do any other work while I have a bold message count and so I have to switch to the Junk folder and delete the message to get rid of it.

Regular email: read, file, done.

Junk email: recognize as spam, click block sender, confirm that I really want to block the sender, switch to Junk folder, mark as read, delete.

Something is really wrong with this workflow. It's a lens through which you can view the ultimate demise of the company. Sure, Office isn't going away soon and Azure is growing like crazy and SQL Server runs on Linux. But somewhere in Redmond 5,000 people designed a Junk email folder that is the MOST IMPORTANT folder in Outlook. The rest were presumably too busy making Windows Update worse to stop this.

My Google experience is that I really don't get much spam. The spam that I do get is hidden from me unless I actually need to rifle through it for some reason. On the occasion I actually get legitimate junk I just flag it as such and never have to touch it or it's ilk again.

Reading and Writing Office 365 Excel from a Console app using the Microsoft.Graph C# Client API

Updated on Friday, June 30, 2017

I needed a console app that reads some inputs from an online Excel workbook, does some processing and then writes back the results to a different worksheet. Because I enjoy pain I decided to use the thinly documented new Microsoft.Graph client library. The sample code below assumes that you have a work or education Office 365 subscription.

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Microsoft.Graph;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Newtonsoft.Json.Linq;

namespace Excel365Test
{
    /// <summary>
    /// 1) Install Microsoft.Graph NuGet Package
    /// 2) Install Microsoft.IdentityModel.Clients.ActiveDirectory NuGet Package
    /// 3) Register app at https://portal.azure.com/ - need app ID and redirct URL below
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            TokenCache tokenCache = new TokenCache();

            // load tokens from file 
            string tokenPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Excel365Test");
            if (!Directory.Exists(tokenPath)) { Directory.CreateDirectory(tokenPath); }
            tokenPath = Path.Combine(tokenPath, "tokens.dat");
            if (System.IO.File.Exists(tokenPath))
            {
                tokenCache.Deserialize(System.IO.File.ReadAllBytes(tokenPath));
            }

            // this is the OAUTH 2.0 TOKEN ENDPOINT from https://portal.azure.com/ -> Azure Active Directory -> App Registratuons -> End Points
            var authenticationContext = new AuthenticationContext("https://login.windows.net/your-url-here/", tokenCache);

            // only prompt when needed, you'll get a UI the first time you run
            var platformParametes = new PlatformParameters(PromptBehavior.Auto);

            var authenticationResult = authenticationContext.AcquireTokenAsync("https://graph.microsoft.com/",
                "your-app-id",     // Application ID from https://portal.azure.com/
                new Uri("http://some.redirect.thing/"),         // Made up redirect URL, also from https://portal.azure.com/
                platformParametes).Result;
            string token = authenticationResult.AccessToken;

            // save token so we don't need to re-authorize
            System.IO.File.WriteAllBytes(tokenPath, tokenCache.Serialize());
            
            // use the token with Microsoft.Graph calls
            GraphServiceClient client = new GraphServiceClient(new DelegateAuthenticationProvider(
            (requestMessage) =>
            {
                requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", token);

                return Task.FromResult(0);
            }));

            // test reading from a sheet - in this case I have a test worksheet with a two column table for name/value pairs
            var readSheet = client.Me.Drive.Items["your-workbook-id"].Workbook.Worksheets["test"];
            var readTables = readSheet.Tables.Request().GetAsync().Result;
            string readTableId = readTables[0].Name;
            var table = readSheet.Tables[readTableId].Rows.Request().GetAsync().Result;
            
            // convert page to a dictionary... this doesn't handle pagination
            Dictionary<stringdecimal> tableValues = table.CurrentPage.ToDictionary(r => r.Values.First.First.ToString(), 
                r => Convert.ToDecimal(r.Values.First.Last, CultureInfo.InvariantCulture));

            // test adding a row to a table with four columns
            // sadly it seems you need this exact format, a regular JArray or JObject fails

            WorkbookTableRow newRow = new WorkbookTableRow
            {
                Values = JArray.Parse("[[\"1\",\"2\",\"3\",\"4\"]]")
            };
            
            var outputSheet = client.Me.Drive.Items["your-workbook-id"].Workbook.Worksheets["data"];
            var outputTables = outputSheet.Tables.Request().GetAsync().Result;
            string outputTableId = outputTables[0].Name;
            var outputResult = outputSheet.Tables[outputTableId].Rows.Request().AddAsync(newRow).Result;

            // the excel unit tests seem to be the most useful documentation right now:
            // https://github.com/microsoftgraph/msgraph-sdk-dotnet/blob/dev/tests/Microsoft.Graph.Test/Requests/Functional/ExcelTests.cs
        }
    }
}

Paste the code into a new console project and then follow the instructions at the top to add the necessary NuGet packages. You'll also need to register an application at https://portal.azure.com/. You want a Native application and you'll need the Application ID and the redirect URL (just make up some non-routable URL for this). Under Required Permissions for the app you should add read and write files delegated permissions for the Microsoft Graph API.

Hope this saves you a few hours. Comment below if you need a more detailed explanation for any of the above.

Updates were installed...

Updated on Wednesday, February 22, 2017

Microsoft you are literally killing me. Please tell me there is a reason.

Windows 10 has had a reorg of notifications. People in Redmond have spent quality time thinking about how and when to bother me. User experiences have been imagined, focus grouped, re-imagined, tested, pushed out to beta, revised, polished and finally shipped in a heaping turd of time wasting.

After one of the never ending reboots following some critical update or other I get a nice popup to let me know that updates were installed:

Updates were installed...

I'm not sure this is the most important news I'll read all day but fine, thank you and I click the little x to dismiss.

Windows at this point knows that it's told me about the updates, and it knows that I've seen the message because I took the time to actively dismiss it.

So why is this now in the Action Center:

Updates were installed...

I have to acknowledge my latest helping of updates all over again. It's the sort of double confirmation I'd really value before inadvertently nuking Belgium but for pretty much anything I've ever seen in Action Center it's overkill. It's causing the most anger I've had with an Operating System since I had to Google how to shut down Windows 8.

Windows 10 is on 110 million devices. Assuming a reboot a week and three seconds per device spent dismissing the extra message we're looking at a cost of $28 million a year (at US GDP). Microsoft has said it expects a billion Windows 10 devices in 2-3 years. Even at global average GDP that's $64 million down the drain.

It's not a quirky design decision, it's a class action lawsuit waiting to happen.

Smart people must have spent time on this. Please tell me why?

Leaving Chrome

Updated on Wednesday, February 22, 2017

Leaving Chrome

My Chromebook was stolen over the weekend. The good news is that I didn't lose anything given the cloud only nature of the device. The bad news was that I didn't really want to get a new one.

I loved the cost and the boot speed and being able to do nearly everything I needed to with a browser-in-a-box.

But the nearly was a deal breaker. I sometimes need to VPN and the Chromebook wouldn't. It just wasn't compatible with our flavor of VPN and I didn't want to buy another Chromebook on the off chance that Google would eventually fix this. I also have to use Skype (I'd rather not) and this isn't really possible on the Chromebook either. Imo.im was good while it lasted. IM+ is horrible.

I've abandoned the Chrome dream and picked up a Surface Pro 3.

(Read the full Chromebook adventure: Part 1: Going Chrome, Part 2: Staying Chrome? and Part 3: Leaving Chrome)

Going Chrome

Updated on Thursday, November 12, 2015

Going Chrome

I came to Chrome OS by a circuitous route. Initially I though a browser in a box was a silly, under-powered toy. But then I needed a meeting machine for work.

To start with I decided to use an old Macbook. It was running OSX 10.5 (Leopard) which is a bit out of date so I thought I'd update it to the latest 10.8 (Mountain Lion) goodness. But this turned out to be impossible to do from my desk. Before I could go to 10.8 I'd have to get physical media for 10.6 (Snow Leopard) and patch it up to the point where it would accept an upgrade. This meant shipping a disc or visiting an Apple Store and getting smarmed at. Unacceptable.

So I decided to ditch OSX and install Windows 8. This was a cheap online purchase and a painless install... but Windows 8 is a disaster on a non-touch device. Everything takes an extra few clicks or a half-mile scroll to the right. 

Live tiles seem like a good idea until you realize that you're not looking at the start screen often enough for them to be of any value. If Microsoft had introduced a permanent ticker at the bottom of the screen or a secondary tile screen on all Windows 8 certified devices life could have been more interesting. 

Removing the start button so you have to go into touch and swipe mode to do anything is a pain. A boot to desktop mode would be great for older devices.

The deal breaker though is the increasingly assertive Windows Update. Twice in meetings it decided to reboot the computer. It used to be you could delay updates for hours but Windows 8 just knows that the latest patch is more important that whatever you happen to be working on and cheerfully pulls the plug. 

Admittedly you can figure out how to find the vestigial, non-Windows 8 config for Windows 8 and go to manual mode. And then figure out how to turn off the nagging for not having the recommended Windows Update setting. But but by this point you realize that you've got a operating system that is about updates first and getting work done second. And Windows 8 Windows Update doesn't even update Windows Store apps so you've got a live tile nagging for updates every five seconds as well. 

On top on the Windows 8 horror the Macbook was old, heavy and had a puny battery. Also, after installing Windows 8 the only software I needed to install was Chrome and the office VPN client. Once this sunk in I ordered the new Samsung Chromebook.  

Setup on the Chromebook is: 1. Login to your Google Account (with support for two-factor authentication), 2. Choose a wallpaper (optional). 

I'm not likely to use a Chromebook as my primary machine any time soon. It is however a meeting powerhouse for email, IMs, calendar and note taking. I replaced Skype with imo.im (which I've used on Android for a while). Full Outlook web access took a bit of head scratching - see this post for details. Google Apps and Hangouts work seamlessly as you'd expect. It's light and the battery lasts all day.

The only niggle so far is that Chrome OS doesn't support the flavor of VPN that my company uses. It would be nice to get to the wiki, but it's not a deal breaker (If you have a Cisco VPN that insists on a group name go vote for this bug). 

Microsoft and Apple should be really rather worried.

Updated 2013-07-17 13:54:

Two quick updates.

Providing a group name to use with Cisco VPN devices was added in Chrome 28. Unfortunately it still doesn't work for me. I've filed issue 261241 on the chromium bug tracker for this - you can star this issue if you have the same problem.

Skype has managed to block Imo.im so that no longer works for Skype on a Chromebook. I'm using IM+ for now, but it's not nearly as good - it doesn't remember passwords and it keeps silently losing connectivity so it's easy to miss chats.

(Read the full Chromebook adventure: Part 1: Going Chrome, Part 2: Staying Chrome? and Part 3: Leaving Chrome)

Reviews and Links for May 2012

Updated on Thursday, November 12, 2015

No book reviews this month.

Links

#boarding SFO http://t.co/YLDFpmwF

Penn Jillette's rant against Obama's drug policy http://t.co/Ri5HAqxH

Congratulations @SpaceX -- Dragon arrives at space station in historic 1st http://t.co/91suk4ZV via @sfgate

Why your camera's GPS won't work in China (maybe) http://t.co/FQIFN8wI

Sigh, obvious, invalid, bullshit -- BBC News - Microsoft wins patent fight with Google's Motorola unit http://t.co/0PENWTCV

BBC News the secret links between Star Wars and Wales http://t.co/T8yEulCu (is there any tenuous link with Wales you won't publish?)

:) Hot weather to continue next week http://t.co/izAc2yA1

Not Skip's Tavern any more... http://t.co/dPx1NIj8

Reality rocks in San Francisco earthquake exhibit http://t.co/yo82B38b (Looking forward to this!)

BBC News - In pictures: Annular eclipse http://t.co/YA5F6or2 (Check out the Lemurs checking out the eclipse)

ITHCWY: Annular Eclipse at SFO: The only solar observatory outside the international terminal at SFO (some… http://t.co/ZqMXm8Ec

Beer was near, sadly earlier. http://t.co/2BeMAJZj

America's great divergence - American History - http://t.co/zQcVJIcQ http://t.co/fSdtXSvl

"Why won't you answer me?" - Parenting - http://t.co/zQcVJIcQ http://t.co/Ljzg6vpG (I should stop telling Kate about her 'milk head')

1906 earthquake refugee cottage at The Presidio. http://t.co/pof5LotA

+1 Judge suspends US law that provided for indefinite detention without trial - Boing Boing http://t.co/xsBuLyYb via @BoingBoing

Daniel Raven-Ellison, Guerrilla Geographer Information, Facts, News, Photos -- National Geographic http://t.co/DjgJdvMJ via @NatGeo

ITHCWY: Gopher Snake: Bernal Heights Park http://t.co/OoHYDU0y

Turned out nice... http://t.co/G2pHtgbd

RT @CatfoodSoftware: Blog: Catfood Software on Google+ and a Hangout Pledge: Catfood is now on Google+. Once 50… http://t.co/ZC84h8AN

ITHCWY: Open Immigration: I'm increasingly in favor of opening up immigration. Partly it's a general sense that a… http://t.co/cBLQT2rI

ITHCWY: Snake rests on Toad: At the California Academy of Sciences. http://t.co/YTQh682A

New Golden Gate Visitor center - lots of tat, no food :( http://t.co/vXmZn099

Obama sighting on morning dog walk. #fb http://t.co/wZdwN2Mj

President Obama: 'I Think Same-Sex Couples Should Be Able to Get Married'; http://t.co/CtC6k2A8 (shameful that it has taken this long)

Gaia revisited: http://t.co/sHSeFph7 - I'm still in the extreme camp: http://t.co/6dzIjBy7

Post Doyle Drive detour quite pleasant on the way home tonight. http://t.co/fSK8e4v9

THINKWALKS: http://t.co/ToOZo3KQ #todo in San Francisco @myEN

ITHCWY: Bottled Water: A company called Evive launched this week to battle the evil of bottled water with reusable… http://t.co/5X9e3emO

ITHCWY: Pelicans http://t.co/0xoup7z5

It's @KQED pledge yet again. Throw them a bone public radio freeloaders: http://t.co/00UvTamT

Illegal dumping can now be voted to fix at http://t.co/SsliF12n #bernal-heights!

Yet Another Awful Dumping Incident on Bernal Hill http://t.co/35kLDRdn via @bernalwood

+1 AllClear ID Rolls Out First-Ever Social Security Number Blocking Service For Children's IDs http://t.co/wnRILNzQ via @techcrunch

Rejected and controversial New Yorker cover art (the mentos one is very good) http://t.co/afo9AxZd via @BoingBoing #fb

Reviews and Links for February 2012

Updated on Friday, February 24, 2017

The Snowman by Jo Nesbø

4/5

Very good, enjoying the entire Harry Hole series. Wishing for translations of the first two now!

 

The Devil's Star by Jo Nesbø

3/5

Slightly weaker than the others in the series I've read so far but still knocked it back quickly.

 

The Redbreast by Jo Nesbø

4/5

Best so far on my quest to read through Nesbo...

 

Nemesis by Jo Nesbø

4/5

On a Jo Nesbo binge...

 

The Leopard by Jo Nesbø

4/5

Compelling crime thriller, rather worryingly one of series featuring Harry Hole so I'm going to have to go back to the beginning and read all of them.

 

Links

Catfood.Shapefile 1.51: http://t.co/BKtkx9Zq (ESRI Shapefile Parser, fixed release binary issue).

4 of 5 stars to The Snowman by Jo Nesbø http://t.co/IrvdrDBf

Breaking Good: how to synthesize Pseudoephedrine (Sudafed) From N-Methylamphetamine (crystal meth): http://t.co/fviYaj5P

ITHCWY: Catfood.Shapefile 1.50: I've just released a small update to my C# Shapefile library on Codeplex. Catfood… http://t.co/lXoGoBsY

4 of 5 stars to The Redbreast by Jo Nesbø http://t.co/PqrOQnQL

Epic #Bernal Panorama: http://t.co/zVqZYosG - via @bernalwood

Neal Stephenson on getting big stuff done http://t.co/6PHS1VD1 #todo @myEN

Stop Colbert: http://t.co/kBtSC7NV via @NancyPelosi

Wolfram|Alpha Pro: http://t.co/G88eWq6Y #tools @myEN

A History of the Sky for One Year: http://t.co/UKMjosCK (very cool)

+1: A U.S. appeals court rules Prop. 8 unconstitutional: http://t.co/TZgdKU9k #fb

ITHCWY: Badge Driven Development: Microsoft has released Visual Studio Achievements, an extension that brings… http://t.co/5BOyNF03

ITHCWY: GGNRA Dog Management Plan Update: I love it when making some noise works. The NPS is pushing its dog… http://t.co/fzqaJWM2

Unicode Character 'PILE OF POO' (U+1F4A9): http://t.co/LkGffsvW

http://t.co/NA6TOdQk #todo @myEN

BBC News - Can the US Army embrace atheists? http://t.co/5ubkKT7r

Running an API at HUGE Scale - Webinar: http://t.co/tEnxdRBM #API

4 of 5 stars to The Leopard by Jo Nesbø http://t.co/tIIPs1M5

ITHCWY: Reviews and Links for January 2012: Damned by Chuck Palahniuk 3/5 Very much a vehicle for Palahniuk to rant… http://t.co/6kvApyf1

Reviews and links for August 2011

Updated on Friday, February 24, 2017

RESTful .NET by Jon Flanders

4/5

Great coverage of exposing and consuming a RESTful service using WCF. Note that you'll need the services of a good WCF book, this builds on existing WCF expertise and doesn't try that hard to bring you up to speed. Which isn't a bad thing, it keeps the book relatively short and focused. I'll be referring back to this one often.

 

Rule 34 by Charles Stross

4/5

Stross flips out concepts in a sentence that many SciFi authors would build an entire book around. It's a near-future police procedural set in Edinburgh. Twisted, tongue-in-cheek, profane and most excellent. The only miss is the assumption that people will use Wave in the near-future, let alone now. It's the first book of his that I've read... will be seeking out more soon.

 

The Information: A History, A Theory, A Flood by James Gleick

4/5

Epic. A must read for cybernauts who may have forgotten their roots. Good for anyone else interested in what information actually is, and how pervasive information theory has become.

 

Links

- Password Strength from xkcd.com (Read this now, then change your passwords!).

- Baby sex blood tests 'accurate' from BBC News - Home (Bad news for girls...).

- Are your genes somebody else's property? from All Salon (More patent stupidity, this time genes (@myEV)).

- IE users have lower IQ says study from BBC News - Home (Highest IQ? Telnet to port 80 directly).