Wrapping Mocha Tests With A Custom Retry Handler

When writing integration tests for interactions with external services, it can be difficult to predict the amount of time that these processes will take. As a result, it is tempting to add large timeouts to ensure that the side effects of each network call have completed before moving on to the next step of the test.

Read More

Working with WebViews in React Native

Sometimes it is too resource-intensive to recreate the interface and business logic of a complex web application in React Native. For those instances, the framework allows us to simply embed existing web pages in our apps with the WebView component. Let’s look at some of the functionality exposed through the WebView API.

Read More

Making React and D3 get along

D3.js is a powerful data visualization library, but it’s not always the easiest to integrate with React. Both libraries handle changes to application state by making updates to the DOM behind the scenes, and when these node mutations are combined they can produce some unexpected side effects. However, by using only selected functions from D3 in our React projects we can achieve compelling results.

Read More

Weekly schedule layouts with React and CSS Grid

Before CSS Grid came along, the task of defining the layout for a web page to display a weekly schedule was a daunting one. Unless you were willing to throw best practices out the window and just jam everything into a big ol’ table element, the floats and positioning needed to display days and times in a grid would have made for some pretty complex code. Let’s look at how the CSS Grid specification can significantly reduce this pain point.

Read More

Web scraping with Selenium and Beautiful Soup

Scraping a dynamic website from behind a login page can be accomplished using Selenium with the Webdriver API, and pulling out the needed data with Python’s Beautiful Soup library. In this post I’ll show you how I did just that on my school’s registration page, so I could start to build a better timetable for myself and my classmates.

Read More