Tip #1229: Use math to make your chart look good

Multicolored abacus standing upright

It’s Friday afternoon and the management asked you to create a quick chart illustrating your team’s bug handling pipeline. Easy-peasy. Step 1 – extract data from the Squash-A-Bug system Status Count New 4268 Under Review 1921 Planned 516 Completed 229 Step 2 – visualize it as a small dashboard: That…. does not… look… good… (tried […]

Tip #1145: Tracing in Azure Functions MkIII

Tracing

This never ends. Shortly after I finished writing about tracing in Azure Functions, I found Daryl “Always Raising” LaBar explaining how to use ExtendedOrganizationService wrapper to easily capture everything in your plugin: Wouldn’t it be nice for debugging if your plugins automatically traced every IOrganzationService Request, along with the parameters and the time that it […]

Tip #1142: Tracing in Azure Functions MkII

Trace the numbers

When describing tracing  in Azure Functions previously, I dropped almost in passing that to capture .NET traces in Azure Functions is easy – just create your own TraceListener. I also added that the code takes a shortcut with log.Info and requires a bit of tuning like mapping logging levels from Connector to TraceWriter but those […]

Tip #755: Logs grow rapidly if audit is enabled on mailbox entity

Wafer thin mint

Be careful when enabling auditing on the Mailbox entity. As Jukka “Kalsarikännit” Niiranen has discovered after analyzing why one of the instance consumed disproportional storage: “It all looked fine at first, but looks like at some point the sync process had started to update the exchangesyncstatexml field with new data every few minutes. [This] field […]