Category Archives: Tips

Already in love with Snagit, just discovered the icing on top

I have been a very longtime user of Snagit, developed by TechSmith. Although it has taken some questionable directions on its UI since version 13, the core functions (and what was previously hidden but now more easily accessible, gems) is still fantastic. Well, I just found the feature that places the icing on top of the cake!

Recently I have been posting many new articles (like this one) that require many screenshots to support my guides. 90% of the screenshots are nothing special, just a snip of a specific region (or full screen) and insert. WordPress, unfortunately, does not support paste of images inline as well as ease of image manipulation (modify image border for example).

In comes Snagit.

Continue reading


IT Budget Blog Series: Integration of Currency Exchange Rates

As part of the continuing IT Budget Blog Series, we look at how to integrate currency exchange rates.  This is especially important for two points of consideration when creating an IT Budget for international companies:

  1. Acquired Software/Hardware may not all originate where the corporate headquarters reside. This means a collection of budget line items could have more than one currency. To define a solid budget, all budget items need to be standardized to a single currency.
  2. The budget may need to be reviewed/approved by individuals worldwide. To provide a familiar denomination, you need the ability to convert all figures to a preferred currency with accuracy and ease.

This article helps discuss how to insert data from an external source (the web) into your Excel file and how often the data should be refreshed (i.e. never). Steps in this article are in reference to Excel 2016 (Version 1711) on Windows.

Continue reading

IT Budget Blog Series – Introduction

2017 led to many new areas of leadership and discovery. One area I got to play an active role in was IT infrastructure planning and execution.  As part of the many activities I performed and lead, none was more interesting than IT Budget planning. IT budget planning has so many dimensions that need to be considered to establish a reliable budget figure, especially in regards to software development companies. In this series, I will discuss many of the lessons learned, how I designed the budget file, what implications I needed to consider for various roles in the company, and tricks I used in Excel for my final report.

The process all begins with a general assessment of where the company is today, what is the company’s mission/source of revenue, and company target in the near and far term. In my case, when I joined the company they have been in operation for over a year, but no budget has been established previously, so I almost was starting with a clean slate. As the Chief Product Owner (official title: Director of Product Management) I had already a solid idea of what the company’s short and long-term goals and the tools needed to succeed. But if you are not wearing many hats (roles) as I did, your first step is to perform interviews with key stakeholders. Your objective is to answer the following questions:

  • What does the company do?
  • Who are the actors (roles) in the company?
  • What do they need to complete their tasks? (aka software, which in turn results into minimum hardware needed)
  • Is vendor support programs often used or is community-centric support enough (i.e. forums, online articles, senior support)?
  • Which software purchasing programs provide most return on investment (Subscription/Cloud Services vs Perpetual/On-site)

Above is just a start of the questions you want to answer before beginning to develop your budget. My final recommendation is to identify how long you want to forecast your budget. Why do you want to forecast? Well if you come into a young startup (especially in the domain of Software Development) the operating costs can provide a real shell shock to management (get the oxygen tank ready before hitting the send button). Forecasting budget for at least the 2 years that follow will help show how the costs trend south (if team headcount remains constant of course).

In my next couple of posts, I will share

  • How I structured the budget file
  • What Excel magic I used
  • Complexity related to licensing and support with various software vendors (including the massive grey box of Microsoft)
  • Typical Hardware/Software requirements per role

Look forward to your thoughts along the way!

Office 365 (Enterprise) Payment Planning **Updated**

As part of my recent employment, I helped my company transition from on-premise server applications (semi-cloud as we were using Azure as IaaS) to full cloud services for daily operations (i.e. email, applications, and communications). The reasoning behind the change can be debated extensively on all sides (I’ll share my thoughts on another blog) but what we were not prepared for entirely is the complexity of billing, especially for worldwide operations for small organizations. In this post, I’ll highlight some of the lessons learned to help others with their payment planning.

The first topic you need to be aware of when creating a new Office 365 plan is the hosting of the service has huge impacts, not only on where your data sits (what datacenter stores your data) but also how you pay.  When you sign up for Office 365 Business subscription you will be asked to identify what country you want to sign up for.  This is very important, even if you are running a trial, as just like Azure (its built on top of Azure so of course, it has the same painful limitation, right?) you cannot change region after the fact. Even (in our experience) you cannot move any data found on one O365 account to another region. You have to shut down and set up a completely new account and manually move data (luckily in our case we still had data in our on-premise instance of Exchange still backing up the accounts we had on O365 during the trial).

So why did we not use our original O365 account we set up? By mistake, when we first set up the account, we selected the wrong country, not the country which wanted to bill in.  You see, to pay for Office 365 (particularly related to Credit Card, but invoice as well) the billing address of payment method must be in the same country as you registered. You cannot use a credit card with a different country as billing address (NOTE: for an Azure subscription you can, however, you cannot use an Azure subscription to pay for Office 365, this is disappointing for corporations who want to have single invoicing from Microsoft would never be an option).

Now that we established billing country restrictions related to the hosting of O365 in the combination of Credit Card/Invoice location, we now look at Payment Methods.  O365 actually has 2 payment methods available, Credit Card and Invoice, but Invoice is not as straightforward. Invoicing is only enabled if a given order is over a certain threshold, uniquely defined per country. For example, if a given order of Office 365 is over 3800 HKD (about 200 USD) Invoice is not an option. Now I emphasized given order because, in O365, each time you order a license or add-on service (even for the same account), MS O365 views this as a separate order. this means if, for example, you paid 6,000 HKD in first order of say 10 E3 licenses, but you suddenly have a new hire 1 month later and you need to get them an E3 license, that order is only 30 HKD well below the threshold of 3800 HKD thus you need to pay by Credit Card for that one license. If your organization plans to have an aggressive hiring plan in the upcoming year, appropriate planning should be accounted for if Invoicing is a requirement, especially for small and medium-size businesses.

Last note about each order topic. Although O365 aligns all payment renewals on the same day after the first-month order is placed, they are all charged individually on your credit card (you will not see a single charge from MS but an individual charge for each “order” of Office 365 license or add-on you placed at separate times. This makes life pretty interesting for the accounts payable department.

So what has been your experience with your company’s transition to Office 365 services?


One important point I failed to raise earlier when determining the location of your Office 365 account is that you cannot link more than one Office 365 account like you can with Azure. Azure, you can mirror your VMs across many datacenters/regions for an optimal experience, but in Office 365, it is limited to a single datacenter. Any additional location is considered a separate account, thus separate domain needs to be used.

Push Feedly articles to Microsoft Teams

Are you an informationholic? Do you wish you can share interesting stories with your teams to help extend their knowledge as well? Well now there is! After much trial and error, I figured out how to push articles from Feedly (my most favorite digital media aggregation tool) to Microsoft Teams (Microsoft’s answer to Slack with Office 365 subscriptions). For this solution we will use the following services:

  • Feedly Pro or Feedly Teams, sadly, cannot use Feedly Basic as it does not support the next requirement
  • IFTTT (If This, Then That), free, but to link to Feedly service, you need Feedly Pro or Feedly Teams.
  • Microsoft Teams
    • NOTE: you can use a similar configuration below but have output to Office 365 Groups or general email as well if you prefer or do not use Teams in your office. This article, however, focuses primarily on MS Teams.

The general concept is, when you see an article you are interested in, you can add notes and highlights to the article, then finally save the article to a personal board.  These features are actually new to Feedly and you can read more about them here (this is actually what finally got me to buy a subscription to Feedly Pro) –

Once the article is saved to a personal board, the IFTTT service will automatically pick it up, then POST a message immediately to the Microsoft Teams channel of your choosing.  An important note: In IFTTT we will be using Applets which are much easier to build compared to a full recipe which IFTTT provides support for as well. This means we will be limited to creating one applet per channel. If you want a single article to push to many channels, you will need to create separate applets or create a recipe without using the GUI (i.e. developer method, and beyond my current skill :-P)

Ok, let’s dive in and see what we have.

Continue reading

How to hide table borders in Confluence, per page

So I had a recent challenge with page formatting Confluence v.5.9.X and wanted to share how I solved it.


In a Confluence page, I wanted to include multiple Panel Macros, each containing column and row formatted content but without the borders. The goal is to show team member profiles with Image on the left and supporting text content aligned right, example below.

Sample of Table without border


Confluence contains the concept of Sections, but you can not have sections withing a Panel Macro (or within any Macro at that, only macros within a section). Next obvious option is tables, but Confluence tables do not provide the ability to define styling of the table per page, only in the global Space configuration, which as a normal user, I do not have access to.

Table Options


Continue reading

**Updated** Skype misbehaving? Upgrade today! and a helpful tip for the future

UPDATE:  Appears that the Check for Updates in the Skype app is not pushing version 7.18 automatically (i.e. it is not marked as a “recommended update” yet from MS), you have to manually download the update from for now.


So I forgot to post a notice a month ago (shame on me) but at the time, Skype version 7.17.X (for Windows) had 2 crippling issues:

  1. Messages would appear our of order for different individuals, and,
  2. Messages refused to mark as read, unless you manually right click on the contact and select “Mark as read”.

Personally, I saw issue #2, not so much issue #1, but many saw one or the other (or both). At the time, the best solution was to download an older build and go back to 7.16.X.

Continue reading