In the first part of this series, I described how to just-in-time load and incrementally render chunks of data. I used React Window, which can render data in windowed chunks, reducing the initial load time and the amount of memory used to store DOM nodes. React Window is often used with a data fetching library […]
On my current project, we’re using just-in-time loading on a grid that might render up to twenty thousand rows. Each of these rows represents a product and is clickable. On row click, the user is redirected to another page (a product detail page). A user might want to check out these product details and then […]
Say you have thousands (or even just hundreds) of rows of data to render. To provide a good experience for the user, you might not want to fetch all the data at once. Instead, you might want to fetch the first hundred, show those, then fetch the next hundred. Alternatively, you could fetch all the data at […]
For my project, we have a Node.js server deployed as an AWS Lambda function. The server’s dependencies (Node modules) are deployed in a Lambda layer. We want an easy process to deploy a new Lambda layer version when we update the Node modules and to update the Lambda function code whenever we update the local […]
Recently, I worked on a project with a lot of complex data relationships. To abstract away some of this complexity, my team defined database views that summarized the information that matters to us. When building up those views in PostgreSQL, I found a couple of patterns particularly useful. I used conditional expressions (CASE and COALESCE) […]
Recursion (solving smaller and smaller sub-problems until arriving at the base case) has always intrigued me. The first recursive function I ever wrote computed the factorial for n, and it looked like this: def recur_factorial(n): if n == 1: return n else: return n*recur_factorial(n-1)
After purchasing a Raspberry Pi and an SD card, you might not feel like going out and buying a display, mouse, and keyboard just to create a simple project. No worries! Together, a laptop and an internet connection are sufficient to get started on your Raspberry Pi. How?
SAML 2.0 is an authentication protocol, an agreed-upon way to transfer authentication information between parties. It was approved as an OASIS standard in 2005, and there are SAML Protocol Documents with details about the protocol. The protocol is complex (the core document alone is 86 pages) and has a wide range of capabilities. In this post, I’ll scratch […]
Once every couple of months, I get an opportunity to teach middle schoolers/high schoolers about computer science. Computer science and software development are very broad disciplines, so I could cover anything from web styling to computer networks. Among all of those possible topics, I find that I like to work on sorting algorithms.
Let’s say you’re creating a feature branch off a master for a new feature you are about to implement. You finish up your work on the feature branch while one of your colleagues is making some changes on the master branch. Before creating a pull request, you might want to make sure you have the most […]