reTrumplation, a Twitter bot experiment

A few years ago, somebody introduced me to Translation Party, a website which automatically translates a sentence back and forth until further translations produce the same English text. The results are mostly funny nonsense.

Recently at work we were talking about automatic translations, so I thought it could be funny to use the same principle for a Twitter bot which works on Donald Trump’s many tweets. The result is @reTrumplation.

@reTrumplation, first example

@reTrumplation, second example

Markoshiki

Lately, I’ve been working on a web app to learn more about JavaScript, jQuery and other technologies that web developers use. This app is available as a web app, on iPhones/iPads and on Android.

Markoshiki is a logic puzzle game, similar to Sudoku, Futoshiki, etc. The user needs to fill the numbers missing from a board, split in four quadrants, which already has some numbers in it.
The rules are simple:

  • Numbers grow in a clockwise direction following the arrows.
  • Consecutive numbers are in the same row or column as the previous number, but in different quadrants.
  • The numbers that are already in the board when you start the game cannot be modified.

Markoshiki with an empty board  Markoshiki with a partially filled board

For the next version I will focus on making the iOS and Android apps look more native, improve the flow of inserting notes (it’s a bit cumbersome now) and use better the available screen space (including support for landscape mode).

Please play online or install the apps.
If you have any feedback, please let me know at markoshiki@markoshiki.com.

Bye bye Bromium, hello Undo

In March 2015, I joined Bromium to work on a very cool security product. Unfortunately, my project was put on hold and I was not really interested in the new one, so I decided to leave.

In a couple of weeks, I will start working for Undo on their reversible debugger.
Imagine how cool it is to just wait to reproduce a bug and then step backwards to see what caused it instead of spending hours in a debugger hoping for a bug to happen! And all of this without affecting performance much!

Smart home?

I recently moved into a new home and I started to get it renovated. The first two steps were fixing the heating (I installed a evohome system and I’m very happy with it) and get some old roof Velux windows replaced as one wouldn’t open any more and another had some other problems.

Two of the windows are in the master bedroom close to the bed and the other one is in what will be the study, just on top of where a desk will be. Considering the unpredictable weather in England, I was worried that sudden rain would damage my bed and the stuff on the desk (probably a laptop).
Velux makes some automated roof windows, called Integra, that can close by themselves in case of rain, plus you can control them with a remote, you can set the blinds to open at a certain time of the day, etc.
The cost of the automated feature is small compared to the very expensive windows (roof windows are shockingly expensive compared to normal ones) and to the cost of replacing a laptop and mattress in case they get damaged by rain.

The windows seemed to work fine except from automated programs with a timer (for instance to wake you up by raising the blinds), but I assumed Velux could tell me how to fix this.
Today I came home from work and I discovered that all of the windows opened by themselves! And it was even raining!
Moreover, one of the windows damaged the insect net I got installed (mainly to keep my cat inside) by opening too much.
After this, one of the windows stopped responding to the remote control completely, see the picture below.

Velux Integra failure
The right window stopped working, the left one still works
(click for a bigger image)

Welcome to the glorious and shiny future of home automation!

Update: After spending some time resetting all the windows and controllers, I found out that probably the problem was due to a misbehaving remote controller that would just do things on its own (I watched while it was randomly and repeatedly clicking buttons on its own). The customer support at Velux was good and efficient and sent me a replacement controller.

Bye bye Collabora

Seven years ago, immediately after finishing my master’s degree, I visited Cambridge for an “interview” with Collabora. I was hired and, shortly afterwards, I moved to Cambridge.

It has been seven great years since then, even if there were some low points, like when Nokia cancelled some of their projects.
At Collabora I had the opportunity to learn a lot of new things and to work with a lot of incredibly competent and smart people. Despite this, after all this time, I felt like I wanted some little change, but not enough to start looking for another job and risk losing all the good things I had here at Collabora.

Recently, another company got in touch with me and offered me a job. The projects they work on are very interesting and the people there seem great (and, in many ways, similar to the people at Collabora). It was a difficult decision, but I decided to accept.

Today was my last day at Collabora. Thanks to everybody that I’ve met while working there! It was great!
Next week I will start working for Bromium!

(By the way, Collabora is hiring.)

What’s happening in Italy?

I read a few good articles in English about the latest elections in Italy, but they all seemed a bit unclear about what can actually happen and what cannot happen.

I hope this post can be easy to understand, not too boring and not too imprecise (I’m trying to simplify a few things and I didn’t study law).

A brief introduction

Italy is a parliamentary republic. The parliament is formed by two separate houses, the chamber of deputies and the senate. The two houses have the same powers to make laws and to pass votes of confidence for the government.
The cabinet is usually formed by members of the parliament, but this is not a requirement. The prime minister is not particularly powerful, for instance the prime minister cannot dismiss ministers or call for new elections.
The president of Italy is the head of state. The president is mainly a figurehead with limited powers, but becomes very important when it’s time to form a new government or to dissolve the parliament.
The president is elected by a joint session of the two houses of the parliament plus 58 local representatives for a 7-year term.

How is the parliament elected?

The current electoral law, disliked by almost everybody, was used for the first time in 2006 and was designed to make it difficult for the left to get a stable majority. Parties can form coalitions or stand on their own.
For the lower house, the coalition or party with the most votes automatically gets 55% of the seats. The rest of the seats are assigned to the other coalitions or parties on a proportional basis.
The senate is elected in a similar way, but on a regional basis (Italy is formed by 20 regions). This means that the party or coalition that gets most of the votes in a region gets 55% of the seats assigned to that region. It means that, at a national level, it’s possible that nobody will have a majority.

What are the main parties/coalitions in Italy?

The left is formed mainly by the Democratic Party (a center-left social democratic party) and by Left Ecology Freedom (a communist-ish/green party).
The centre is a mix of Christian and economically liberal parties. Its leader is Mario Monti, the current technocrat prime minister.
The right is formed by Silvio Berlusconi‘s People of Freedom and by the Northern League (they want more independence for the North of Italy and they are a bit populist and racist).
The new entry at the latest elections was Beppe Grillo‘s Five Star Movement. Their policies are a mix of environmentalism, anti-corruption and euroscepticism. While most of their goals are laudable, they are very populist with huge holes in their policies; basically it’s not clear where they could get the money for any of their policies. While they claim to value direct democracy, it’s Beppe Grillo who actually completely controls the party, even if he was not a candidate at the elections.

Why isn’t Beppe Grillo in the parliament?

Beppe Grillo says he is just the spokesperson of his party. Moreover, the Five Star Movement is against electing people that were found guilty of any crime in the past and Beppe Grillo was found guilty of manslaughter for a car accident in which three passengers died.

Who won the elections?

Nobody. The left has a majority in the lower house, but no current coalition has a majority in the senate.

Who voted for the 5 Star Movement?

Apparently one third of their voters used to vote for the left, one third for the right and one third didn’t vote in the past.

What is going to happen now?

The new parliament’s term will start in a couple of weeks. At that point the two houses need to vote for their presidents/speakers. Then the Italian president will hold meetings with the various political leaders and try to find a prime minister that has good chances of creating a cabinet that could pass a confidence vote by both houses of the parliament. This is the problem as there is no majority at the moment.

Is a broader coalition possible?

In theory yes. Any coalition will have to include the left because they control the lower house.

  • A coalition of the left and the centre is what most people expected before the elections, but Monti didn’t get as many votes as expected, so this coalition would not have a majority in the senate.
  • A coalition of the left and the 5 Star Movement would have a majority, but Beppe Grillo doesn’t want to form alliances with anybody. The 5 stars are against traditional politics and want a deep renovation of the Italian political class; if they decided to form an alliance with a traditional party they would lose a lot of their voters.
  • A coalition of the left and the right is possible too, but unlikely. The current technocrat government was, after all, a coalition of left, centre and right, but Berlusconi decided to stop supporting it, so why should he be trusted again? Moreover, I think that a coalition of left and right would disgust a lot of their voters.

Is a minority government possible?

It would be very unstable but yes, it would be possible to have a minority government formed by the left and, maybe, the centre with external support by the 5 stars. The problem is that this cabinet would still need to pass a vote of confidence in the lower house (easy) and in the senate (not so easy as the 5 stars don’t want to vote for it).

But the 5 star senators could just abstain, right?

No. Abstentions in the senate count as no, so the government would not get the parliament’s confidence.

But the 5 star senators could just leave the senate during the confidence vote!

No. Votes in the senate are only valid if the majority of senators are present. The right would not have enough votes to block the confidence vote, but they could just leave before the vote, making the vote invalid.

Can’t you just vote again?

Usually the president, when it’s clear that there is no chance to form a cabinet, calls for elections, but this time it’s not possible.
The authors of our constitution were worried that a president could dissolve the parliament just before the end of the presidential term in the hope of getting a more favourable parliament that would elect the current president for another term.
The term of the current president will end in a few months, so he cannot dissolve the parliament now.

How about another technocrat government?

It would be possible (and it would be very different from the current one!) but it would be very difficult to get the left and the 5 stars to agree on much.

Could the new parliament elect another president that would then dissolve the parliament?

Yes, but finding an agreement to make this happen is going to be complicated and take time. In the meantime, Italy won’t have a stable government (the current Monti government will be in charge until a new government is found, but with very limited powers).

So, what is going to happen?

Good question. I have no idea.