260
I walked into the Borders in the airport and picked up a copy of Saturday, the book I read when I last went to New York City, and read again about lone and strange and poignant times. Then, Theresa SMSed me say that she had missed her flight and I put the book back on the shelf and went to meet her.
Simple and flexible permissions
At my day job, I’m working on a prototype of a community site. To support the development of experimental features, I’ve been building a flexible permissions system which can be summaried thus:
user -has-an-> ability -for-an-> item
So, users have abilities for items. That’s it. An item is something that needs to have its permissions controlled, a user is a site user and an ability is something the user can do upon the item. Some examples:
Johnny owns Johnny’s Diary
Jenny is friends with Johnny
Jenny can edit Johnny’s Diary
To determine the permissions for something on the site, three questions can be asked: does this user have any of these abilities for this item? which of these items does this user have any of these abilities for? and which users have any of these abilities for this item? Note the permissiveness of letting any one of a list of abilities allow permission to be granted.
The prototype has been coded in Ruby on Rails. The table that stores relationships has columns for an id, a user id, an ability and an item id. All very straightforward. However, there is one extra column: item type. Because items of different types are stored in different tables, the item type column is required to identify the name of the class of which the item is an instance. When any of the above questions are asked, the relationships table is interrogated by matching the class of the items involved with the values in the item type column.
What makes the system simple and flexible? First, it only consists of one small database table for holding relationships, four methods and 75 lines of code. Second, the system makes no assumptions about the site - all the semantics of relationships are in the item types and ability names used. Third, the relationships table can be understood by humans. Fourth, though it is not recommended, more complex structures can be modelled: relationships between items1, reflexive relationships2, neuter relationships3 and state relationships4.
1 Where an item has an ability for another item.
2 Where an item or user can have an ability for itself. For example: ownership.
3 Where a user (or item) just has an ability, but no item upon which it can act.
4 A special type of neuter relationship which models a state of being for a user.
262
On the train to Stansted to pick up Theresa, with Weiner’s history of the CIA for company. I love little trips like this.
264
sitting in the carpark of Taunton station waiting for the coach and playing spot the ATP-goer. Its not a difficult game. A bit like playing count the Converse.
265
My housemate, Cathryn, got granted a proper account by the banking gods yesterday. In celebration, she and I have decided to go to New York City in early February. I am jolly excited.
Berlin
The important things are those that happen between the lines. I can write the most tangible descriptions, but you will not dream of them, you will not reminisce, because you don’t know all the details.
Sunday
Matthew and I sat in Victoria station and ate two Krispy Kreme doughnuts each.
Three hours later, Theresa, looking cooel in her little lace-ups and red anorak, met Matthew and I at Schodenfeld airport. We took a cold walk to the underground railway and then videoed each other as we went back into the centre of Berlin.
We arrived at Theresa’s beautiful apartment in Latte-Machiatto-land and hung out and drank Yorkshire tea in the kitchen, off-white fridge buzzing in the corner. I got Theresa to talk to the camera about the venues we would be playing at.
Monday
Matthew and Theresa set off early in the morning, he to interview a prominent architect about shrinking cities, she to her Musicology tutorials at Uni.
I struggled out of bed at noon and then, without map, without directions, without any kind of a grasp of ze Deutsch, I set off to meet Theresa at the Perkammonmuseum. I asked my way there, making progress street by street, speaking to nice couples and sour-faced women, handsome boys and American tourists.
By some miracle, I arrived on time and hugged Theresa in gladness. We walked through the streets, passing huge, ruined buildings being renovated, beach-hut coloured apartment blocks. We walked on broken-up flint pavements and granite paving, went into shops that subsist on disposable incomes and grocers full of old women. We ate vaffles and swung on swings near a graffiti wall Theresa likes and then went back home and sat on the sofa.
The first gig was at A, a sort of tavern with huge windows that looked out onto quiet streets. Matthew and I met some of Theresa’s friends - Olga, Hauden, Andreas, his housemate Andrea - and we talked about the art scene and short films and plagiarism and squats.
I played first, each song bookended with muted applause and successively quieter “Danke”s. Theresa then came on and played a wonderful set, complete with demonic, crawling cat robot, toy guitar riffs and alternately ebullient and mournful video projections.
We got very drunk and finally took a cab home at three a.m.
Tuesday
The three of us took a tour of posh boutiques, ate delicious falafel in floury pancakes at a Turkish place, drank coffee and then, in a highly caffeinated haze, we rushed out onto the street, Theresa saved me from getting hit by a tram, we flagged a taxi, picked up the car and the Golden Disko Ship music stuff, filmed a Ronin-esque journey across Berlin out of the front of the car, picked up the beamer (projector) and arrived at venue two.
The place was a concrete shell with a lamp-post in the centre of the room (complete with yellow bin), a kiosk for beer, a stage (the front representing a window looking into a house). Sauvern took Theresa and I through our sound-checks and then we drank beer and composed impromptu songs on the piano. Matt and I discussed the fact that we had begun to speak English like foreigners. Apostrophes had disappeared from our words and sentences. Further, we were veering towards German - our “yeah”s had become “ja”s, “hello”s “hallo”s, “pardon”s “was”es
I played first and bellowed my way through the set. People seemed to enjoy it and when I came off stage, I stood in the corner of the room and hung my head as I withstood a minute’s worth of applause and embarrassment. It struck me that the expression I wear when singing is much the same as the one I wear when kissing.
Theresa suffered through numerous equipment malfunctions and sound problems. She weathered it, though, and for the first time the sadness of her songs came through live.
For the rest of the evening, we all stood around and talked and drank beer. Theresa and I played an improvised duet on the piano that stood behind her video projection screen on the stage.
Then we packed up and left.
Wednesday
A lovely, lazy day. Matthew went to the airport and Theresa and I went to a little cafe in Latte-Machiatto land and ate waffles and ice-cream as Jose Gonzalez played in the background.
We drove to the Soviet monument - a park of statues and granite - and stood on the steps of the main building. The cold bit at our noses and cheeks. It started to rain, and we stood there in the orange, unheated glow of the stone building.
We ate a Bolivian supper, spent the evening jamming in a rehearsal room and then went home.
Thursday
Theresa lent me her Sonic Youth “Confusion is Sex” t-shirt. We ate breakfast. We went to the airport.
270
I keep on looking up at my iPhone and smiling, the way you look up from a book and smile as you read next to your lover.
You snake
Sunset Rubdown were started by Spencer Krug, more famous for his less good band, Wolf Parade.
Sunset Rubdown’s second record, Shut Up I Am Dreaming, is a wonderful collection of sad songs that have unexpected melody falls that rip your heart out. The most upsetting is where, on The Empty Threats Of Little Lord, Krug sings, “You snake,” with such venom that you can hear the curl of his lip. That part of the song affects me so much that I have been, unsuccessfully, trying to work out who I am associating it with.
Maybe I am thinking of myself.