Month: November 2018

Best Dimming Light Bulbs

We purchased a house full of Z-wave dimmers (Leviton VRMX-1LZ and DZSM-1LZ) as a Christmas season special from Leviton two years ago. We were really happy to have dimmers throughout the house — we could use the existing lighting as nightlights, have movie nights with a little pathway lighting … and then we installed a few dimmers and realized the bulbs dimmed. But not DIM dimmed. It was a massive bummer, and significantly diminished the couple hundred bucks we’d dropped on these smart dimmers. 

We even called Leviton & got a paper they publish with how different bulbs dim with their various dimmers. And realized that all of the bulbs that went down to 1 or 2% were discontinued. Another bummer! The paper is updated periodically, but even the early 2018 iteration failed to yield any in-production well-dimming bulbs.

Over the summer, I came across a review of various dimmable LED light bulbs. The guy had an integrating sphere rigged up and was measuring output and colour — seemed like he put a lot of effort into it (and I’d LOVE to find that write-up again!). His write-up indicated that Home Depot’s “house brand” bulbs, EcoSmart, dimmed down to basically nothing. I added EcoSmart 60W bulbs to my “next time you’re at Home Depot” list and finally remembered to pick them up in September. Except there were two types — plastic ones and glass ones that can be used in closed fixtures. The plastic ones dimmed well — way better than any of the Cree, Phillips, or Lighting Science bulbs we’d tried. But the glass ones — they dimmed to the point of being off. We had to go through and change what the dimmers consider zero because these bulbs were TOO dim. And they didn’t hum, buzz, or flicker. I was thrilled — swapped out the downstairs hallway bulbs with these glass EcoSmart LEDs and the light fixtures have become nightlights. 

I wanted to get bulbs for the other hallway, bedrooms, and bathrooms. So I ordered the bulbs online & they showed up. Replaced one set of bedroom bulbs, dimmed them … and they’re about on par with the Cree bulbs we had. Huh? Upon investigation, while the bulbs we got delivered had the exact same part number, they had a different UPC. And a different product code above the UPC. Even odder — the energy draw and estimated annual cost were different. Apparently there are different revisions of the bulbs, and the 02 revision doesn’t dim any better than every other bulb out there. 

We returned the bulbs and checked the light bulb aisle at the store for any with UPC 693690563636 and product code ABA19A60WESD01 — and found a bunch on the shelves. They also had the 02 revision and a 03 revision. Since the 01 ones were a known quantity, we bought them. And they dim down to nothing! It’s been just about two years, but the dimmers we’ve put in are finally PERFECT. 

Off Label Use: Git

I store a lot of code in Git-based systems, and I read through parts of my state’s Revised Code on occasion. But it never occurred to me to store the Revised Code in a Git-based systemWashington, DC has started doing exactly that.

First, some basic terminology from GitHub — a “commit” is a change. In this case, a change to the revised code text. An “Issue” is where someone points out a problem with the existing code or proposes an enhancement — in this case, someone either pointing out a typo or suggesting a new law. And a “Pull Request” (aka a “PR”) is used to accept a commit into the code — in this case, applying the change to the revised code text.

Imagine being able to comment on a pull request and have your commentary considered during the public hearings for the proposed change. Sure, there’s elitism to assuming everyone’s got a computer and time to peruse proposed changes. But not more than assuming everyone’s got an hour to head over to Town Hall and attend the public hearing. And resident-initiated changes could be proxied through a third party — city government staff, for instance.

The process could increase transparency — GitHub users can subscribe to get notifications when issues and PRs are entered into the system. An issue could be created when discussion over a proposed change begins. Links to public meetings and even discussion about the proposed changes could be available online. A pull request created by government officials finalizes the changes and commits them into the online revised code.

The git storage system retains history — a resident who is convinced an auxiliary building was totally in compliance of zoning regs when it was built could run through the history and identify exactly when the setback requirements changed.

Clicking into a specific “commit” will show you what changed — the left-hand column is the old version and the right-hand column is the new version. Something that was removed is highlighted in red; something added is highlighted in green.

From a procedural standpoint, there are some challenges. Their code is now maintained in XML, which isn’t necessarily something that will edit well in your favorite word processing program (Word, as an example, has some limitations when it comes to editing XML and, in my experience, generates really sloppy code — multiple style elements that all cancel each other out). Build automation is now a requirement of legal documents — a process that ingests changes to the XML and spits out an HTML web site or a PDF file. These challenges require someone with technical knowledge to maintain the revised code. 

Logistically, it might be challenging to convince residents — especially those who don’t work as software developers — to use what is a software development tool to interact with local government. Even without citizen interactions, I think having a change history is an incredible advantage to using GitHub to store the revised code. It would be interesting to chat with the people who implemented this in DC and determine if (1) they get a lot of malicious submissions and (2) actually see citizens propose changes through GitHub.

Document retention implications would need to be considered as well — user comments, maliciously entered issues or PRs, etc may be undesired. It’s possible to restrict “interactions” (comments, issue creation, PR creation) to an approved list of individuals. But there’s an advantage to allowing residents to copy edit the code and to propose changes to code.

Did you know …OneNote can extract text from images?

You’ll need to use the application, not the OneNote website. Insert the picture – from the ribbon bar, select “Insert” then “Pictures”. Select the image you want and click OK.

Right-click on the image. “Copy Text from Picture” does exactly that – if your image is low resolution or really blurry, it’ll take a minute for this option to be available. Wait a bit and right-click again.

The text from the image is now in your clipboard. I’m pasting it into the same OneNote page, but you can paste it anywhere.

Voila! Text:

Did you know …OneDrive and SharePoint Online can search for text within images?

It can! Store pictures of business cards and you can search for names. Take pictures of installations and find a set of photos by the business signage. Search through your expense reporting receipts for a specific restaurant. You don’t even to do anything except save an image file on OneDrive for Business to enable this feature.

To find an image containing specific text, open OneDrive from WinAnywhereand use the search dialogue.

In this example, I’m looking for the receipt from a meal –but I haven’t included the restaurant name on the receipt images. But I can search for the restaurant name – type part of the name and hit enter.

The search result set include an image file:

And that’s exactly the receipt I needed!

Text indexing is performed on image files like bmp, png,jpg/jpeg, gif, tiff, and even raw. Slightly blurry out-of-focus pictures snapped in poor lighting are indexed too 😊

* Text is not immediately indexed upon upload – it took about twelve minutes before I was able to search for the image I had uploaded.


It’s just as easy in SharePoint Online, but did you know that the Teams “Files” are SharePoint Online document repositories? This means you can search your Teams files for text contained in images as well. From your Teams channel, select the “Files” tab and click “Open in SharePoint” to see your Files in their SharePoint Online document repository.

Use the SharePoint Online search dialog to search for text contained within images stored in the site.

The search results will include any images that contain the search text.


Did you know … you can use Microsoft Excel to count the number of records within a range?

I’ve been generating reports to track our Microsoft Teams adoption – how many people are using Teams, how many messages are being sent in Teams, how many Teams are there. Some of these metrics have easily visualized count-per-unit-time summaries available. Some, like the number of Teams, do not.

Team Created On
Directory Services 1/19/2017
App Proxy 1/19/2017
LDAP 1/19/2017
ADFS 1/19/2017
Nagios 1/19/2017
File Cluster 1/19/2017
Exchange Online 1/19/2017
Active Directory 1/19/2017
Commvault 1/19/2017

But it’s easy to turn a list of groups and creation dates into visualizable data. Paste the data into Excel. To find the number of items where “Created On” falls in a range, we need to be able to define that range. 01 January 2017 is easy enough, but how do you get the end of January? Excel has a function, EOMONTH, that returns the last day of a month.

Date is any date object. Offset is an integer number of months prior (negative numbers) or after (positive numbers) Date for which you want the last day of the month. I can list the dates to start and end quarters with =EOMonth(Date,2). With 01 January 2017 in cell D2, the last day of January is =EOMonth(D2,0)

 I don’t want to type01 Feb, Mar, April … flash fill and the fill handle need a few values before they can figure out the rest of a sequence. But I can use the last day of the month to get the first day of the next month – just add one! With 31 January 2017 in cell E2, I want =E2 + 1 in cell D3. (Yes, there are other ways to do this – probably dozens.)

Now that we’ve got a formula for the start and end of the month, just fill down to produce the ranges we need to see how many Teams were created each month. Then we just need a formula to do the counting for us. I use the COUNTIFS function.


Counts the number of items in the range $B$2:$B$1000 (the cell range is static as the formula is copied elsewhere, hence the

Fill down – you’ll see the range remains static, and the comparison is to the D and E columns on the current row.

Voila – easily visualized data. And a graph 😊

Did you know … Excel can transpose data?

Have you ever gotten data where the column headers are along the left-hand side and each record is a column? I’m sure there are people who prefer each record to be a column too, and they probably hate my data where the headers run along the top and each row is a record. Did you know Excel can swap between these two formats?

Here I have a spreadsheet where each column is a record. Highlight and copy the records. Yes you can use ctrl-c to copy … but there’s no way to make a screen-print of my keyboard actions.

Click elsewhere – below the data you copied, on a new sheet, even a new spreadsheet. Right-click & expand “Paste Special” – find the icon for Transpose and click it.

Look – now each row is a record, just like I wanted. You can even delete the original data if you want – the pasted information will still be there.

Did you know … there are keyboard shortcuts in Microsoft Teams?

I know modern software is driven by graphical user interfaces, but as an old-school Unix admin (there were loads of interface choices – Bourne shell, c shell, korn shell, bash shell!) it’s weird to take my hand away from my keyboard just to turn a bit of text bold or move to a new field. And Microsoft has done a decent job of standardizing keyboard shortcuts across their applications – ctrl-b will toggle “bold” pretty much anywhere (even Teams!)

But … within your Teams client (even the web client) hold the “Ctrl” key and type a full stop (.) and look – special keyboard shortcuts!

There’s even a link at the bottom for all of the shortcuts on Windows and Mac. I can hit ctrl-shift-1 to flip over to my Activity feed; ctrl-shift-3 puts me back in the Teams chat section.

Just like Helsinki

When Trump first trotted out his hypothesis that logging would have somehow saved the large swaths of construction from forest fires, I rolled my eyes and thought back to his campaign touted secret plan to defeat ISIL … which turned out to be consulting Generals. Which, as far as a military tactic goes is, worked about as well as all of the previous approaches (which, I suppose in his head, did not include this brilliant consulting step). Logging — which generally takes the big solid part of the tree (a.k.a. the trunk) and leaves behind all of the little bits (twigs, branches, leaves, underbrush) seems more apt to promote conflagrations — all of those little twigs, branches, leaves, and whatnot lay around, dry up … insta-kindling.

But yesterday’s proclamation that we’d be fine if we were only cleaning up the forest floor like Finland really bothers me. Not because of the obvious climate differences between a country averaging 27″ of rain (and I believe had an above average precipitation total last year) and an area that got, what, not quite 5″ in the last July-June season? Or the twenty or thirty degree temperature difference. But because of the absolute ignorance of international news. This is the sort of thing people at the White House get paid to keep track of. Finland had an unusual number of fires this last yearSweden too.

Did you know … there’s version history for Microsoft Teams files too?

There is — which is obvious once you start thinking about how Teams data is stored. The “Files” tab is a pretty front end for a SharePoint document library, and document libraries store version history. The problem is I didn’t know a good way to walk an end user through accessing that document library. I’d generally do a screen sharing session with the user & navigate them to the right place myself. And then I saw this — on the Files tab, there is an “Open in SharePoint” button. You don’t need to drill down to find the specific file you want to revert – as long as you are on the proper channel, we’ll be able to get to the document.

Voila! A new tab opens and shows you the SharePoint document library that underpins the Teams Files tab. Now drill down until you find the file for which you are looking.

Click on the not-quite-a hamburger menu – the one between the file name and modify time.

Select “Version History”

To view the previous version, click on the hyperlinked modify timestamp. To restore the previous version, hover your mouse over the modify timestamp of the iteration you want.

On this menu, “View” will show you some information about the file – not actually view the file. Select restore “Restore” to replace the current version (the one that shows up in Teams) with the selected – you’ll be asked to confirm that you want to overwrite the current version.

Once the document has been restored, you’ll have a new entry on the version history pane – so you can even revert your document reversion if needed.


Did you know … Screen Sharing in Teams Chats Is Rolling Out!

I’ve been tracking an RFE for screen sharing in Teams chat — it’s super-simple in Skype, and while it’s possible in Teams (schedule a meeting), it isn’t a one-click simple process. But today, we’ve got a new button in our chat sessions — start sharing your screen!

I don’t see the option in the web client on Firefox or Chrome, but I hope it is coming there too.