<commit_before>After working as a bartender for nine years while doing some programming in my spare time I wanted to take it to the next level.
I had learned a lot through Google and some online courses, but learning didn't really go fast enough.
Furthermore, working and learning all by yourself is just a bit boring...
When I found Codaisseur it looked quite promising to give me a slingshot into the wonderful world of development.
And boy did it. Working in teams and learning a lot ridiculously quick. It was a blast.
But enough about me! Lets talk c0de!

We had an assignment to create a game using a React + Redux frontend, combined with a FeathersJS backend.
The awesome starter kit we used allowed us to relatively easily set up a game with realtime events communicating to all players.
It turned out laggy, but cool. I had used a basic html canvas and had not really touched on React and Redux that much.
Because I wanted to dive in to React + Redux some more I made GitView.

As many developers do, we used GitHub. GitHub is awesome.
It is an unmissable collaboration tool for coding projects.
What's also pretty cool is that you can follow users. just like you would on a social network.
And that works. Kind of...

[github image]

My problem with it is that it only displays big events, like when a user create a new repo for example.
But I wanted to see more! Especially a better overview of commits.
When was the latest commit made? By who? How many repos does he or she have? Etc.
Luckily GitHub provides an API we can call to fetch the data we need and display it as we please.
There is a catch though. To make a lot of calls to the API we need to authenticate ourselves.
Also not a big problem! We can just use OAuth and use the well known 'login with ...' pattern.
Oh dear... It turned out that implementing OAuth with Feathers and React was a bit more difficult than I had expected.
For three days I struggled. I just could not get it to work. I kept hammering on it but I was getting nowhere.
Eventually I just let it rest and started actual coding. GitHub allows a few calls to their API without logging in.

I wanted to use a list-detail pattern.
A list with all the users I'm following with some basic user info.
And a detail view with their latest commits.
Working with React and Redux was a bit daunting at first. But after a few epiphanies it got easier and easier.


When the list view is loaded we get all the users we're following
```
// client/containers/GHList.js
componentWillMount() {
  const { needsUpdate, getFollowing, currentUser } = this.props
  if(!needsUpdate) return<commit_msg>Refactoring<commit_after>I had been working as a bartender for nine years and doing some programming in my spare time.
But wanted to take it to the next level.
I had learned a lot through Google and some online courses, but learning didn't really go fast enough.
Furthermore, working and learning all by yourself is just a bit boring...
When I found Codaisseur it looked quite promising to give me a slingshot into the wonderful world of development.
And boy did it. Working in teams and learning a lot ridiculously quick. It was a blast.
But enough about me! Lets talk c0de!

We had an assignment to create a game using a React + Redux frontend, combined with a FeathersJS backend.
The awesome starter kit we used allowed us to relatively easily set up a multiplayer game.
The game turned out laggy when not runnig locally, but still cool.
Because I had used an html \<canvas> I had not really touched on React and Redux that much.
I wanted to dive in to React + Redux some more. So for the final project I made GitView.

As many developers do, we used GitHub. GitHub is awesome.
It is an unmissable collaboration tool for coding projects.
What's also pretty cool is that you can follow users. just like you would on a social network.
And that works. Kind of...

[github image]

My problem with it is that it only displays big events, like when a user create a new repo for example.
But I wanted to see more! Especially a better overview of commits.
When was the latest commit made? By who? How many repos does he or she have? Etc.
Luckily GitHub provides an API we can call to fetch the data we need and display it as we please.
There is a catch though. To make a lot of calls to the API we need to authenticate ourselves.
Also not a big problem! We can just use OAuth and use the well known 'login with ...' pattern.
Oh dear... It turned out that implementing OAuth with Feathers and React was a bit more difficult than I had expected.
For three days I struggled. I just could not get it to work. I kept hammering on it but I was getting nowhere.
Eventually I just let it rest and started actual coding. GitHub allows a few calls to their API without logging in.

I wanted to use a list-detail pattern.
A list with all the users I'm following with some basic user info.
And a detail view with their latest commits.
Working with React and Redux was a bit daunting at first. But after a few epiphanies it got easier and easier.


When the list view is loaded we get all the users we're following
```
// client/containers/GHList.js
componentWillMount() {
  const { needsUpdate, getFollowing, currentUser } = this.props
  if(!needsUpdate) return
{'fraction_non_alphanumeric': 0.03666413373860183, 'fraction_numerical': 0.00037993920972644377, 'mean_word_length': 3.8659889094269873, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2037612', 'n_tokens_mistral': 1347, 'n_tokens_neox': 1293, 'n_words': 931}