Sunday 30 July 2017

A new beginning

A lot of things have happened since I last wrote here.

1) I moved to London and started working in a tech startup (www.grakn.ai)
2) I now work with a fantastic team and have learned a lot about software development
3) I have used a bit of Python here and there (mostly for ETL tasks), read code, even done some bits of Java
4) Wrote a lot for work (and that is one reason I abandoned both this and my personal blog)
5) Got back into studying Agile methods
6) Started using git and github a bit more effectively. I still find it confusing, but I know my way around it. At least I have used it enough for being confident with the basic operations. And I have discovered GitKracken, which I highly recommend.

Recently I have also picked up the code of Tesseract and started doing some refactoring.

My first reaction when I picked up the code was "Ewww". There is a lot of duplication, bad code, and, which at my level of experience is the most difficult to get rid of, forced design pattern that do not belong.

I need to refactor. A lot. I decided to not add any feature until I am satisfied with the current codebase. In other words, I will not add features until the current ones are "Done".

Since I also want to start experimenting with Scrum, I decided to hold a Sprint planning session with myself and I. It is totally unnecessary (as I am not a team), and of course it will not be Scrum, but I want to try it anyway.

Here is what happens:
1) My Sprint backlog is on Trello. Once again, it's totally unnecessary, but it scopes my work. Besides, I suck at making user stories and want to look more into it
2) I do not have a real sprint duration as I work on this on my free time. Where free time means no work and no family occupations. I will try to set my sprint so that I can complete them into 5 sessions.
3) Since I am really bad at estimating my work, and I don't have a team to coordinate with, instead of the "Daily" scrum, I will write Mini post documenting what I have done and what I plan to do for next session. Basically a standup with myself. Only at the end of the day instead of the beginning. And with "day" I mean coding session.
4) The objective of my first sprint will be to setup CI on Travis, setup cucumber and unit tests. Possibly writing some acceptance test.

So here we are. Let's see if I can keep up with this.

Stay tuned,

Miko


Sunday 7 February 2016

Tesseract Day 4. It's a Ghost!

I can hardly call this a "Day", since it took me much less than I expected.

I added the ghost piece functionality. As you can see from the screenshot above, now you can see where the piece is going to fall if dropped. One more thing off the Tetris Guideline to do.

It took me less than 20 minutes, including some minor refactoring (starting to put some order in the chaos that is the main loop). Basically I had to add a small loop to compute the vertical position of the ghost piece every time the piece is moved. And now the renderer of the main board also adds the ghost squares every time it has to add a square for the current piece.

I like it.

A presto,

M.

Friday 5 February 2016

Let's play. Making Tesseract (Days 1-3)

I have a devlog, now I should start writing in it, shouldn't I?

My first project? Tetris.

Why? Because of this post, which I like and find very sensible.

Why start with a game? Because why not? I like the idea and have lurked around game development sites, blogs and tutorials for a looong time.

My main objective here is to complete a project from start to finish. Possibly for the first time in my programming life. I have been using Python for years to test some of my mathematical hypotheses and it is by far the language I know best (I do know a couple of others, though), but I never made a full project, simply because I never had to.

You will find the code of this project on this repository. Feel free to have a look around.

Here are the (admittedly arbitrary) rules I set for myself:

Just a little wannabe developer's blog

Hello there.

This first post is to explain a couple of things about me and this blog.

I am an Italian mathematician and theoretical computer scientist who's always had a knack for everything computer. Since I'm a curious guy, in the last 15 years or so I have read tons of material on the most diverse subjects.

But never really used that.

That pretty much describes me: I have tried a lot of things and become better than the average untrained guy in a lot of them, but I cannot really say I am good at them.

In this blog I will describe my experiments with coding, data science and other related stuff, in an attempt to go deeper than my usual level.

I will describe the interesting things I find around and my somewhat unorganized learning process.

So basically this is both for me to try and become a decent programmer and a better geek and so that when I say "I know some [piece-of-computer-related-technology]" I have something to show it instead of having to rely on my listener trust.

One last thing: although I know that my English is not that bad, I am still Italian. So please bear with my writing.

A presto (that's Italian for "see you soon"),

M.