Copyright 2017-2018 Jason Ross, All Rights Reserved

HTML5 Logo

User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active

Google will give you this advice when you rely on a web font; by default when a web font is downloading, the browser will display nothing. Once the font has downloaded, the text will appear, but until then any text using that font is invisible. A better behaviour is to display the text immediately using a system font, download the web font, and then reformat the text using the downloaded web font. This allows the viewer to start reading the text immediately, and will minimize the amount of reformatting that the browser has to do. So how do you actually do this?

HTML5 Logo
Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

Now that it’s been a while since I last made any performance-related changes to my HTML web site (Updating An Old Web Site To HTML5 - Part 3 - Responsive Web Image Layout With srcset And CSS was published in January 2019) I decided to take another look and see what Google thinks of it now. Google Analytics made several suggestions that were common to many of the pages on my site, so I decided to work my way through them one at a time and see what effect they had.

Lambda, A Greek Letter
Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

AWS Lambda is an event-driven, serverless platform allowing you to produce anything from small, simple routines to larger, complex systems that run in an environment with their resources automatically managed by AWS.

You can write lambdas in most languages. The code is run on a Linux platform and can be configured to have access to any of your other AWS resources. Recently I’ve been writing some lambdas in Python, and they have some dependencies on external packages. It’s not immediately obvious how to make this work, so that’s the source of the problems covered by this article.

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

Using the requests-oauthlib package in Python to obtain an OAuth2 token doesn’t always work. If you’re using the standard back-end example code and calling some APIs then you may receive an error that simply states:

“invalid_client”

The solution to this problem is fairly simple but can be hard to find, so how do you fix it?

User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active

Recently I started getting spam emails from my own web site’s enquiry page; a regular delivery of emails from a variety of email addresses. I decided to look into the best way of stopping them.

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

There are many way to gauge the quality of software – some are scientific, like cyclic complexity, and others less so. One of the less scientific methods is to look through the comments and see how many times TODO, HACK and similar tags appear. The more they appear, the lower the probable quality of the software.

You might wonder why I think this – after all, surely TODO is just an indication that the developer(s) were being forward-looking and planning for the future, leaving suggestions for themselves or other developers when the time comes to make changes. Similarly HACK is an admission by a conscientious developer that the code works, but could be improved upon; a humble gesture by a developer who knows that they’re not perfect, and a promise that they’ll return at some time in the future.

It might appear to be the case, but the reality is almost the complete opposite.

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

If you’re using AWS Cognito User Pools for user authentication in your application, there’s a good chance that eventually you’ll want to start using social identity logins. This will let your users log in to your application using their social media accounts, or their corporate credentials. In turn this means users don’t have to worry about creating another account for your system. You can also work with corporate clients to use their access control processes allowing only authorized staff access to your systems.

This can all make things much more convenient for your users, but it means there are some things you need to consider when you’re developing your system.