At Attentive we have all our core code in a single repository. That code is responsible for: Database models, async tasks, API, Serialization,…. Our frontend (in Angular5 is in a different one).

I think building the code as a single repo wasn’t the wrong decision at the time. But now we have growing pains. We started noticing that we can’t just push code on top of each other. If someone has a feature in UAT the others can’t have it until the previous is tested. Everyone’s just always stepping on each others toes.

If we expect to grow the team and the company we need to split our codebase into microservices.

This will allow us to have teams taking care of each service and become autonomous. Microservices will allow us to deploy code with more confidence because one push to production can’t break the entire system.

The road waiting for us won’t be easy.

Read More

Learning PyGame

I’ve started getting a real interest in developing video games. This comes from a need for me to learn new thing every now and then.

To start learning this the first issue I encountered was: which library should I use? After looking around it seems that I don’t have a lot of options when it comes to Python. So I started learning about PyGame.

PyGame is a wrapper around SDL.

I’ve been following tutorials through a channel on youtube called KidsCanCode by [https://github.com/cbscribe](Chris Bradfield). Despite the name the videos are super well explained and the concepts behind game development are clearly laied out.

These video tutorials seem even better than some books I found on PyGame that don’t even use classes to organise the code.

Read More

Migrating from Mezzanine to Wagtail

A few years ago a group of friends (me included) started building a website to make Portugal’s startups known. That website is Novaweb. When I started developing it I looked through Django’s CMS options. At the time I found Django CMS and Mezzanine. This was 6 years ago so I don’t really remember why I chose Mezzanine.

At the time it seemed like a great choice. So right now Novaweb is running Django 1.5.6 (still with South migrations), Mezzanine 1.4.3 and many other outdated packages.

Because the website hasn’t gotten any activity lately I just left it there. But now it’s time to update everything. So I looked through Mezzanine to see what was needed to make this update.

The first thing that jumped out to me is that Mez’s latest version (4.2.3 at the time of writing) only supports Django 1.10. I also found some minor problems when using Python 3 (I wouldn’t start any project right now with Python 2). So with all these problems, I can’t use Mezzanine, no matter how much I like it.

I looked through the options and Django CMS and Wagtail seem the most promising. In the end I chose Wagtail without looking much at any of the other options features because Wagtail supports both Python 3 and Django 2.0. So the choice is obvious.

Read More