Author Archive

Postgres ERROR: tuple already updated by self on deleting duplicate rows

Thursday, July 1st, 2010 by Alexander Schöcke

We’ve had some serious hassle with duplicate row issues on some of our PostgreSQL databases.

While simply deleting the rows worked for most of the issues, some of them were just unable to delete. Trying to delete or update them resulted in the curious error message: Postgres ERROR: tuple already updated by self on deleting duplicate rows.

The only way for us to delete these row was to find differences between the rows. Unfortunately, they were completely identical, including oid values. After some search on the internet, we found a solution:

1
2
SELECT ctid, *
FROM TABLE

ctid here holds the block and item number of the file on the hard disk, which contains the table row. This id was different for both of the rows opposed to all the other fields. Thus we were able to delete the row:

1
2
3
DELETE FROM TABLE
WHERE id = 123
AND ctid = '(2134,1234)'

We hope this blog article can help out people who are having the same hard time as we had.

When did mouse inversion die?

Monday, June 21st, 2010 by Alexander Schöcke

Ever had the discussion whether it is “correct” to invert your mouse axis in first person shooters or not? So did we, and we wanted to get a little more science out of it. So we made a little poll to see a) how many people were using mouse inversion, and b) how old these people were.

Here are the results:
a) NOT inverted won by far. There were 7517 people with mouse inversion disabled, only 1154 with mouse inversion enabled.
b) Mouse inversion is old-school:

Age Distribution of mouse inversion

Well, nothing new here then. Mouse inversion is old-school, mouse inversion is elite.
I’m using mouse inversion btw.

Evolution of Post-Its: Layout for work unit tickets in Scrum

Wednesday, June 16th, 2010 by Alexander Schöcke

Since the beginning of 2010, we’re using Scrum to manage our development projects.
Last month we were able to welcome members of other departments to the team – including IT Operations, Community Management and Marketing – for the first time.

The team decided to use Post-Its for their work units in order to easily visualize the progress they were achieving during the sprint.
This lead, among other oddities, to tickets like these here:

Evolution of Post-Its - Step 1

Can’t read anything? You have no clue what you would need to do to finish these work units? That’s what the Scrum team experienced as well.

In the Sprint Retrospective Meeting the team decided to enhance the informative value of the tickets and their readability, by designing a layout for these pieces of paper.
It clearly states what information has to stand on what position on the ticket, and led to a digitally available layout:

Evolution of Post-Its: Part 2

The “Notes/Dependencies” part has been defined as optional, it can get folded behind the main ticket part.

If this is of any help for you, you can download the Open Office Document here (Sorry, file is missing).

My personal opinion: Great team work enhancing the productivity with a simple change of the method after only one single sprint has been finished.