Redux made easy with Redux Toolkit and Typescript

By Matt Button |  Jan 20, 2020  | react, redux, typescript

Using Redux with React can be incredibly challenging for people to get their head around; while the core principles of Redux itself are fairly straightforward and don’t take too long to grasp, a lot of people struggle with using Redux in React apps. Partly because there are so many damn things to integrate:

  1. Redux
  2. React Redux
  3. Redux Thunk
  4. Typescript (getting more common in recent years)
  5. Redux Saga / Redux Observable (in more complex apps)

I spotted this quote which summed it up for me:

Redux was such a mental overhead for me when I started out with it. The amount of boilerplate code that I had to write for the project I worked on was very frustrating.

I struggled with that stuff too, even after I became familiar with the concepts, I often found it difficult to understand the flow of data and events within React Redux apps. This is not uncommon, even the original author of Redux had this to say:

Yup. Can totally relate.

Then I found Redux Toolkit, written by the maintainers of Redux, and recommended by the Redux style guide.

Continue Reading...

How to scrape stock upgrades and downgrades from Yahoo Finance

By Matt Button |  Dec 2, 2019  | yahoo-finance, python, beautiful-soup, web-scraping, pandas

In this blog post I’ll show you how to scrape stock upgrade and downgrade data from Yahoo Finance using Python, Beautiful Soup, json, and a bit of regular expression magic.

This technique can be applied to any stock symbol on Yahoo Finance, but for this blog post we’ll be scraping data for Apple (AAPL).

I’ll be guiding you through the process, describing my thought processes and techiques, and if you follow along, by the end of this blog post, you’ll have extracted stock upgrade and downgrade data in a Pandas dataframe which will look something like this:

From there, you can easily export the data into an Excel file, or if you’re a more advanced Python user, host the code in a Web API which can be accessed by Google Sheets, or your own custom code.

Continue Reading...

Accelerate - Building and Scaling High Performing Technology Organisations

By Matt Button |  Sep 19, 2019  | book-notes

I first read Accelerate by Nicole Forsgren, Jez Humble, Gene Kim back in 2018 when it was a hot topic in the office; only an hour or two would go by between overhearing somebody talk about it, internal blog posts were being written, and we’d receive emails about following the findings.

One of the goals behind the book was to run a series of surveys, gathering 23000 responses across 2000 organizations, then using statistical methods on the results in order to find a way to measure software delivery performance, and to find out what drives it. One of the most impressive things about the book is that it not only presents the research findings, but also goes into detail about why the findings are trustworthy, meaning that they not only tell us what they learned, but how they learned it.

I recently read through the book again and took a bunch of notes which cover the main points.

Continue Reading...

5 things that you need to consider before becoming a mentor

By Matt Button |  Aug 3, 2019  |

As your career progresses, you’ll discover an increasing number of opportunities for mentoring others, and being an effective mentor will become increasingly important.

This blog post covers 5 things that you need to consider before becoming a mentor, along with some tips on how to select a mentee, and some pitfalls to watch out for.

Continue Reading...

This Week: Ryan Holiday's 32 Thoughts From a 32-Year-Old

By Matt Button |  Jul 20, 2019  | product-development

A collection of 5 things from the week that I found interesting, am enjoying, or am working on.

This week:

  • I’ve been amazed by: Photopea - an advanced image editor, which looks and behaves a lot like Photoshop, and runs entirely in your browser
  • I’ve been experimenting with: CSS Grid. It makes my layout life easier, and it’ll make yours easier too.
  • I’ve been watching: Keep Betting on Javascript by Kyle Simpson
  • I’ve been reading: Ryan Holiday’s 32 Thoughts From a 32-Year-Old
  • I’ve been thinking about: How important it is to write online
Continue Reading...

13 years ago we were rallying against nested HTML tables - Notes from Webstock 2019

By Matt Button |  Jun 29, 2019  | webstock, notes

I’m not sure why it’s taken so long, but after 13 years of Webstock existing, this year was the first time that I attended.

While I haven’t attended Webstock until now, I have watched many of the recordings which are usually available a few months after each event was held, and it’s been interesting to see how the event, and the industry in general has changed over the years.

None of this year’s talks were technical, and all were about the human side of the industry - topics such as ethics, personal experiences, psychology, communication, and team health.

One of the original organisers stood up on stage at the end of the event, and said it best:

13 years ago we were rallying against nested HTML tables

Continue Reading...

This Week: I've been playing The Witness, and Webstock is back!

By Matt Button |  Apr 13, 2019  | product-development

A collection of 5 things from the week that I found interesting, am enjoying, or am working on.

This week:

  • I’ve been learning about: Single Sign-On and Sign-Out in .NET Core with OpenID Connect and IdentityServer4
  • I’ve been watching: Andrew Tokeley’s talk on High Performance Product Leadership
  • I’ve been happy to see that: Webstock is back on this year
  • I’ve been thinking about: Lambda School sounds great
  • I’ve been playing: The Witness
Continue Reading...

Using Git on Windows

By Matt Button |  Mar 24, 2019  | git

Using Git on Windows is way easier once you find a combination of tools that you’re comfortable with.

In this blog post you’ll learn about:

  • Using Git via the command line on Windows
  • A great Git GUI client for Windows and Mac
  • The tool that I use for diffs, and resolving any Git merge conflict that may occur (including 3-way merges)
  • Using Git with SSH authentication on Windows via .bashrc and Bash shell
  • My .gitconfig
Continue Reading...