[Last] [Up] [Next] gerph.org - Diary


Diary (February 2011)

No summary has been written for this month, yet. Probably I've forgotten to, or this is the current month so I cannot summarise what hasn't happened yet.

28
Feb
2011
Monday
  • First useful service.

I've got a useful service running in CATS now. It's still a bit rudimentary, but I can query the film collection and return results based on a basic query. Ideally I'll be able to use this to generate graphs and tables dynamically without having to go to the disc. Of course, part of the same behaviour could be acheived by just sticking everything in a database and querying it. The niceness is that this abstracts the operations slightly, and means that I could query the service from other systems. Not that I have any that could usefully do that. But in any case, it tests that CATS is working, albeit at a simple level. I still need to get the server jobs to work so that things are a little less naff.


27
Feb
2011
Sunday
  • Coke Float.

I made an exciting discovery yesterday... I can put coke and ice-cream together and make a Coke Float! Not just that that's now it's made, but I can do that <smile>.

I'm working my way through a series called [Series banner]Fringe (2008, FOX)Action and Adventure/Drama/Science-FictionTeleportation. Mind control. Invisibility. Astral projection. Mutation. Reanimation. Phenomena that exist on the Fringe of science unleash their strange powers in this thrilling series, co-created by J.J. Abrams (Lost, Alias), combining the grit of the police procedural with the excitement of the unknown. The story revolves around three unlikely colleagues - a beautiful young FBI agent, a brilliant scientist who's spent the last 17 years in a mental institution and the scientist's sardonic son - who investigate a series of bizarre deaths and disasters known as "the pattern." Someone is using our world as an experimental lab. And all clues lead to Massive Dynamic, a shadowy global corporation that may be more powerful than any nation.Fringe at the moment, awhich a friend had recommended to me. It's quite [Series banner]X-Files (1993, FOX)Drama/Science-FictionThis long running FOX drama lasted nine seasons and focused on the exploits of FBI Agents Fox Mulder, Dana Scully, John Doggett and Monica Reyes and their investigations into the paranormal. From genetic mutants and killer insects to a global conspiracy concerning the colonization of Earth by an alien species, this mind-boggling, humorous and occasionally frightening series created by Chris Carter has been one of the world's most popular sci-fi/drama shows since its humble beginnings in 1993.X-Files-y, with the exception of being a bit icky at times. It's quite good.


24
Feb
2011
Thursday
  • Achey and tired.
  • Honey Cheerios.

I'm very achey and tired today. I was in early 'cos I wanted to make sure that stuff worked after last night's power outage. And left at 7pm, so it seemed like a long day.

Instead of tea tonight, 'cos I'm too lazy, I tried the Honey Cheerios. They're ok, but they're a bit light and not quite as nice as Honey Loops.


22
Feb
2011
Tuesday
  • Dreams of theatres.
  • Chrisopher Chance.
  • LoveFilm glows!

I didn't sleep so well last night. But I did dream a little. I don't remember too much; I think there were at least two parts. In one I was moving in with someone and we were watching telly on a matress in the downstairs room, because the rest of the house was filled with boxes. The other one was in a lecture theatre, where we were seeing something or other. I don't remember much but I do remember that Joan of Arc was there and was distinctly annoyed at being burnt and wasn't going to let that happen, so ran through the audience (which was packed) throwing incendiary grenades and yelling at everyone. It was a little chaotic but the lecture ended and we went to the next lecture, which was for some English course. The lecturer picked on one girl in front of me and belittled her because this wasn't one of her courses and sent her out - I snuck out with her, went down the stairs - a lovely curved staircase that curled around and met another one in the middle at the next floor down before continuing on to the ground floor. It was all a bit strange - which I guess is a given for dreams.

A friend of mine has recommended [Series banner]Fringe (2008, FOX)Action and Adventure/Drama/Science-FictionTeleportation. Mind control. Invisibility. Astral projection. Mutation. Reanimation. Phenomena that exist on the Fringe of science unleash their strange powers in this thrilling series, co-created by J.J. Abrams (Lost, Alias), combining the grit of the police procedural with the excitement of the unknown. The story revolves around three unlikely colleagues - a beautiful young FBI agent, a brilliant scientist who's spent the last 17 years in a mental institution and the scientist's sardonic son - who investigate a series of bizarre deaths and disasters known as "the pattern." Someone is using our world as an experimental lab. And all clues lead to Massive Dynamic, a shadowy global corporation that may be more powerful than any nation.Fringe to me, so I thought I'd try it out. I was quite amused to spot Mark Valley playing one of the first characters I see as it starts - he's Christopher Chance in [Series banner]Human Target (2010, FOX)Action and Adventure/DramaIt takes a brave, selfless man to make himself a "human target" in order to save the lives of those in danger. Christopher Chance is a unique private security guard hired to protect. Call him what you like, because for Chance, it's about one thing only: saving his clients' lives. He puts himself directly in the line of fire as he races against time to save his client, while unraveling the truth behind the mission. With every new danger, Chance's dark history will also unravel. Does anyone know who Christopher Chance really is, or what secrets lay buried in his past? What would make a man willingly become a human target?Human Target. <laugh> Oooh! And he's a baddy! It's a bit camera-wavey at times, but just about bareable if it slows itself down a bit. I've only seen the pilot, so I'm not sure how it'll go afterwards - the pilot's usually a little different to the rest of the series, but we'll see how it goes.

The other cool and exciting thing today... I was opening my LoveFilm DVD envelope this evening whilst walking up the stairs, in the dark, and noticed that as you open it, peeling away the outside of the envelope, the sticky glue glows. I guess it's giving up a little of its stored energy as you unstick it as light, but... that's just cute! I'm going to always try to open it in the dark now, just for that <laugh>


20
Feb
2011
Sunday
  • The A-Team.

I had a kinda strange dream last night about being in [Series banner]The A-Team (1983, NBC)Action and Adventure"If you have a problem, if no one else can help, and if you can find them, maybe you can hire: THE A-TEAM." These words open one of the most famous TV series of all time. The A-Team was about 4 escaped fugitives from a crime they did not commit: Col. John "Hannibal" Smith, their heroic leader, in charge of making the plans, Lt. Templeton "Face" Peck, the team's conman and womanizer, Cpt. H.M. "Howlin' Mad" Murdock, an insane pilot who acts as a comedy relief, and Sgt. B.A. Barracus, played by Mr. T in his role of a lifetime. Together, they fight evildoers, escape the military, and create catchphrases in the process. A classic for all ages, The A-Team should be watch by everyone.The A-Team. I don't remember much of it now, this evening, but it quite fun. I was thinking I'd watch the film this evening, but it's got so late that I'm thinking it'd be a bad idea.

I'm still, very slowly, adding bits to the CATS system. I've got the server shutdown working reasonably nicely now. It's reasonably simple and should clients know properly, giving them a chance to shut down. They can even communicate with one another for a short period before the connection is completely severed. The idea is that the shutdown notification gives everyone a chance to send clean notifications and to (maybe) pass back any information to the clients which requested jobs to say what the result was. I don't think there's all that much use for the feature as organising which clients should just exit and which ones can (usefully) send notifications that the system is dying is tricky. But the functionality is there, should it be needed.


19
Feb
2011
Saturday
  • Sore head.

I've had a sore head since early this morning. About 5-ish I woke up with a headache, with pain along the top of my head in little flashes, like a spider. Um, I mean imagine that your head's got lots of little wiggly bits all wound around one another and when something hurts the pain shoots down those wiggly bits, fading as it goes. Like a spiders legs. So that's how my head felt. And I didn't get up to get tablets for another hour because I thought it was just a routing problem at work so I couldn't do anything from here (yeah, seriously... I wasn't really all that awake except that it hurt).

So that was sore. And pink. In my mind the pain was around the pink tubes. Anyhow, a couple of headache tablets later I got to sleep, and then a couple more when I got up a few hours later, seemed to have helped. It's been back again on and off through the day, and seems to be heading back this evening. It's usually pretty brief, but when it's bad it's painful every 5 or 10 seconds and no fun at all.

I'm quite glad that it's not so bad right now, though.

I also found What-the-what which is kinda neat.


17
Feb
2011
Thursday
  • Tired.

I've been really tired again today, and my eyes have been stinging all day. My head's not really stopped hurting. <sigh> oh well. Fortunately it's bed time now.


13
Feb
2011
Sunday
  • Today.
  • Break.
  • Blue dreams.
  • CATS server.

What's there to say about today ? It started. It dragged on. It's ending. I'm in need of a break, so I've got Friday off. Ok, it's not a big break. Sort of a token break - a nod in the right direction. I'd like to say that I've got big plans and can get some stuff done, but in reality I'll probably just be tired and fail to rest, whilst at the same time feeling that I ought to acheive something.

Don't really remember last night's dream too well. I remember there being a coach trip with Caroline. And I remember there being a robotic spy involved, too... and the coach getting lost. And, in a rare departure from the norm, a blue digger working in a scrap heap made of diamond and glass. Colour isn't usually that memorable.

The basic server now implements pings properly, and the SimpleClient responds to them automatically. I've also started adding some rudimentary statistics, which I'm not using yet, but should be useful when I can actually see things running properly. In theory it's a doddle to create a logger for the statistics from the clients, but I've not sorted out the database access yet; and in any case, there's still some more fundamental bits to sort out. Reference checking's still not working. Broadcasts are written, but they're not tested yet. Oh, and client enumeration's been tidieid up so that I can use it to locate clients. I've started on the presentation layer as well - not that it does much at the moment because the only presentation is stdio based, so it's just simple ASCII. I'll work out the HTML later - and at that time I'll work out control sequences as well.

I did end up watching a lot of telly. A little [Series banner]Caroline In The City (1995, NBC)ComedyA situation comedy centered on Caroline Duffy, a young cartoonist living in the Tribeca neighborhood of New York City. Each episode begins with a brief animated sequence reflecting the autobiographical nature of her syndicated newspaper cartoon strip Caroline in the City, explicitly compared with the real comic strip Cathy in several episodes.Caroline In The City, some other bits and pieces, and then some Not Going Out (2006, BBC)ComedyLee is a childish northerner who lives in a fancy penthouse apartment in London. Going through a variety of jobs such as a janitor and a ice cream man as well as attempting relationships with flat mates Kate (Series 1) and Lucy (Series 2 & 3). His best mate, Daily Mail reading, middle class citizen Tim is always there to stop Lee from getting in trouble or not? Mayhem is never far away with cleaner Barbara who has never done a honest days work in her life. Not Going Out. It's a bit lonely when the telly's off.

Sometimes I just hope that something will happen. Not really expecting it to, but wondering what I'd do if it did. Whether it's getting run over by a car ("what would be the coolest thing to say before passing out?" - I mean, you've got to have these things prepared because those important seconds before you pass out won't give you much time for anything more than 'ouch' and 'where'd he come from'), winning the lottery ("is there a way to appear to spend money frivolously whilst actually being careful ?"), or work or other stuff... it's never really useful. But it provides a distraction from the inevitability of death. Which, of course, reminds me that the possibility of faking your own death so that you can find out what people say about you also comes into that list. Although usually in the form of 'who bothers to turn up', rather than 'what do they say'.

I think maybe it's sleepy times now. My head's going fuzzy. Like spider webs, and with the same degree of connectedness.


12
Feb
2011
Saturday
  • Let Me In?

I was skimming through a Love Film page about overlooked films and saw a reference to "Let Me In" , and reading the bits around it thought "hang on... that's the wrong title - it's meant to be "Let The Right One In (2008)Drama, Fantasy, RomanceOskar, a bullied 12-year old, dreams of revenge. He falls in love with Eli, a peculiar girl. She can't stand the sun or food and to come into a room she needs to be invited. Eli gives Oskar the strength to hit back but when he realizes that Eli needs to drink other people's blood to live he's faced with a choice. How much can love forgive? Set in the Stockholm suburb of Blackeberg in 1982.Let The Right One In" ". It turns out, though, that they're right - it's just that (amazingly) I know the original Swedish film rather than the remake. Surprised me, anyhow <laugh>.


10
Feb
2011
Thursday
  • Picsel Reviews.
  • Hole In My Bucket.
  • Palindrome Day.
  • Code flexibility vs learning curve.

Ok, now here's something I miss about Picsel - the review system and process. Maybe it's because I'm set in my ways and I'm simple enough that having things set out clearly made my life easier. Basically the review system was a parent-child hierarchy. It enforced that things be reviewed and tested through the automated test system before commit. Reviewees are at the whim of the reviewer, and coding standards, and the things to look for in reviews as a process were laid out - such as being explicit about what you were changing and why. Leaving it to the code is not acceptable to explain things is not accepted. Similarly for the testing, it's required that you explain what you did and what you found, even if it's just to say that you ran the automated tests and a few local ones and they worked.

The thing is that it doesn't really make things any more difficult if you're used to it. Particularly if you're taking a single review through many iterations in order and writing what you did found as you go - many things can be investigations, especially if they're bug fixing. Isolating the review (the change) from the bug report means that you can diagnose in one place and explain in another (although it's important to at least summarise the reasoning for the review, otherwise your reviewer has to hunt around a lot).

Having a hierarchy of reviews, leading from the Feature/Change Request, through Design Documents to the Code review means that if as a reviewer you're stuck on what's going on, you can go back through the hierarchy and find things (usually). Bug fixes hung off the code that was broken means that it's easier to trace problems.

But, more than all this, when you find something that makes no sense, or come to a new section of code that you don't understand, you can (usually) just find any review that changes it and search back up the hierarchy to get a wealth of information about what was changed, why, and all the discussions around it which help to understand the problems at that time. Design decisions documented at either the design stage (shock!) or at coding time (horror!) are still captured, because the reviewer demands them - how can you review the code if you don't know what they meant it to do ?

I'm pretty certain that such things improved the quality of the code, reduced the number of breakages and massively reduced the learning curve for sections of code that were new to me. And at the same time reduced the need for as much documentation elsewhere - it was all kept in the relevant area, by the code.

As I said before, it's always possible that this is due to my being set in my ways, or not able to pick things up quite as quickly as other people without them being spelt out. I like to think I'm pretty reasonable when presented with undocumented or unspecified stuff, but that doesn't mean that I want to suffer that way.

Anyhow, I miss it. Not specifically from work - just a general thing.

I had [Track]There's a hole in my bucket[Track] going around my head earlier today, which was quite frustrating. Not sure where that came from.

Oooh, a friend's just pointed out that it's a special day that I'm going to call Palindrome Day! (11/02/2011)

A reasonably simple truth has occurred to me about development. It's not too difficult to see. When you start out, you tend to write very flat code, with simple defined operations and a flow that you can follow - I'll assume that you've not been damaged by languages that encourage 'goto' <smile>. The learning curve is low because there's no hidden complexity and you don't have to search around too much to find how things function.

As your code requirements increase there tends to be an introduction of code references, function pointers, dispatch tables or similar in order to make the code more flexible. Flexibility increases, but learning curve also gets steeper because the indirection is greater - you have to hunt to find how control passes between different parts of the system.

If the language allows it, inheritance might be used to hide this, maybe even multiple inheritance. Increasing further the flexibility, but making the learning curve even steeper as there is more to learn about and less you can see. Possibly you can say that this is also a factor of the larger code base that requires such things, but I've seen cases where such things have been done in very small programs (doesn't mean they're wrong and larger programs need inheritance, just that the learning curve tends to be much greater).

This also (in my experience) is exacerbated by not having strongly defined API boundaries which mean you can trust that what's declared by the API boundary is what it does - you have to wander through all the code in order to follow it, without regard for what the API boundary tells you it should do.

Beyond this, code can be made more 'flexible' (in a certain sense) by placing it as an RPC service or behind a web-service or similar. Whilst these tend to introduce more solid API boundaries, they also increase the learning curve a bit. Fortunately (in my experience) the greater solidity of the API boundary usually drops the learning curve significantly, meaning that much of the complexity of the inner implementation is removed (which you'd hope) and you're just left with the complexity of the operation you're trying to perform (which is what you'd like to see) and how you do it.

The flexibility gain tends to be outright lost (again, in my experience) to complexity if such services need to be bundled into multiple related operations without state between them. The complexity of making such stateless operations safe whilst at the same time relating the operations increases the learning curve again, even if the method of doing so (cookies, tokens, session ids, etc) is well known.

Each of the stages above is a simplification of what tends to happen, and each stage provides distinct benefits - usually to the authors of the code. The authors understand the intrinsic structure and 'design' (even if it might be said that there is no design), and generally this is poorly communicated. Without the foundation in how things are structured and the concepts on which they're based, attempting to follow a complex code path becomes increasingly hard.

So the conclusion I can draw from this - and one that I've generally followed without quite articulating it in this way - is to make things as simple as possible, but no more (yeah, I know that's a quote... a quick search around implies it's from Einstein - just because it's a quote doesn't mean it's still not valid). Obviously if you need to use a more complex way of representing things, that's fine to use it... but it shouldn't be necessary to use it if you don't need it and "that's the way you do it in this code / language x" isn't really a good enough reason. Obviously there are (as always) other factors, such as consistency with other code, or the anticipation of future requirements.

Anyhow, that'll do for now... I've been tired all week and somehow it's ended up being really late again.

Oh, and it looks like Tesco online have stopped selling Honey Loops, just after I decided 'yum, they're nice' <sigh>.


8
Feb
2011
Tuesday
  • Successful day.

After the previous server going bad the first time around, the upgrade this time went smoothly with no issues. I think I'll put that down to good planning on my part. Because that must be the reason and not the fact that the upgrade this time was simple and well provided for by the supplier. <laugh> I have the greatest of respect for people that manage to make these things run smoothly for me. Plus Jeremy was here again to help me should anything screw up - not that I expected it to, but that doesn't mean that it wasn't very reassuring to have him around.

[Note]
It's getting harder,
just keeping life and soul together.
I'm sick of fighting,
even though I know I should.
The cold is biting
through each and every nerve and fibre.
My broken spirit is frozen to the core.
Don't wanna be here no more.

[ [Track]Wouldn't It Be Good[Track], from [Album]Best Of Nik Kershaw[Album], by [Artist]Nik Kershaw[Artist] ]

[Note]

It beats having [Artist]Tom Jones[Artist] going around my head as I had last week. I didn't even know what track it was that was going around my head - it was mostly a 'whoa-a-whoa' section... after a little searching today, I've found that it was [Track]What's New Pussy Cat[Track]. That said, every morning and every evening I've had ...

[Note]
Day after day,
Love turns grey,
Like the skin on the dying man.
And night after night
We pretend it's all right
But I have grown older
And you have grown colder
And nothing is very much fun, anymore
And I can feel,
One of all my turns coming on
I feel...
Cold as a razor blade
Tight as a tourniquet
Dry as a funeral drum.....
Pink Floyd - The Wall

[ [Track]Young Lust[Track], from [Album]The Wall[Album], by [Artist]Pink Floyd[Artist] ]

[Note]

6
Feb
2011
Sunday
  • Server rewrite.

My server re-write is coming along slowly. I've got a 'lsclients' tool that works now, albeit that's all it can do. I managed to get that working yesterday evening and today I've spent a little while re-working my example code so that the common bits are all packaged away in a little SimpleClient library.

My eyes are tired tonight. Well, the right one more than the left.


4
Feb
2011
Friday
  • Christina.

I got a mail from Christina this evening which was great to hear - I'm so glad she's ok. Not a lot else to say tonight. I'm tired and it's incredibly windy outside. Somehow it's nearly 1am, too.


2
Feb
2011
Wednesday
  • Giana.
  • Work.

I spoke briefly to my aunt today, to see how my cousin's been getting on. She's out of hospital, apparently, and at home again. She's got Kawasaki Syndrome they believe and are treating her for it. She's apparently a bit uncomfortable with things but they hope she'll be back at school for half days soon. Good luck to her!

I've had a very stressful day at work, what with lots of things failing and problems with other systems. It's all just a bit frustrating - there's always a lot to do and somehow I've managed to not get a lot done today. <sigh> Oh well.

Frustratingly I also got home this evening and then realised that I needed more milk. Doh. So I had to pop out and get some.

Minor re-write of my parser function this evening. Now returns a hashref rather than 7 return values, which is a whole lot less icky. And makes the code a little tidier and clearer to read as well. Still haven't managed to put together any sort of test case for it, though. That will have to come soon, because it'd be frustrating to break.


1
Feb
2011
Tuesday
  • Dreams.
  • Bad APIs.

Last night's dream was rather intense. I was working for an Intelligence group, and visiting the FCO on a personal matter and heard that the Nigerian President was coming - which I knew was a bad thing. So I couldn't be there - I ran out, calling the office to say what was happening, but the President was shot at the bottom of the stairs whilst I looked down on them. I managed to hide in the back of a bathroom behind a load of laundry until night, and then left via the roof.

I went home, to my girlfriend's place, and rang in, explaining what had happened. I was told to lay low for a few days. My girlfriend and I had a couple of days relaxing - to a limited degree, as her brother had vanished and we didn't know where he'd gone. She didn't seem so concerned though. On the third day, we took her daughter to a creche for the afternoon, going the long way around because of traffic problems. Her husband came along too for a little while, having dropped her off, and we had ice creams and chatted. We left the little girl with him and went home - there was a balloon flying over the town, and I was surprised the my girlfriend brought out a gun and shot at it until it dropped into the river.

We left by the balcony to the river's edge (we overlooked the river) and met her brother who swam out. Got him some dry clothes and he left. As we returned into the house, though, I noticed a hidden area where there was someone else hiding in the house. I guessed they were after the brother. We left quickly with him and he vanished into the crowds. When we returned to the house, the person hiding had gone, but I shut out all the lights and hid us both in a corner of a box room. I tried calling my box, all the while trying to keep my girlfriend quiet - and not playing with her phone. I rang my friend, and he whispered that he knew about the balloon and understood. I said that there was someone coming for us, and then noticed through a gap in the door that the hallway light was on, and someone had just come up the stairs. I squeezed my girlfriends hand and we sat very very still. The door opened and someone with a gun and a torch shone right at us in the corner. I closed my eyes and waited for the shot... and waited... and waited... wondered why I wasn't dead, and that maybe the killer was amazed by how beautiful my girlfriend was and wouldn't shoot... and waited... and then woke up.

So that was kinda fun and hasn't left me feeling at all on edge today.

It's a little worse than the dream a few days ago where I returned home from holiday to find that the house had had everything stolen from it. <sigh>

I've been tinkering some more with a simple nested log writer and parser which I wrote yesterday. It started out all simple and obvious, but has quickly grown to be a bit awkward. A function which takes one parameter and returns seven is (in general) the definition of wrong. On the other hand it does do what it needs, and it's flexible. It's just not nice, and it's worse when some of the return values are undef at times. I think it might be better to return a hashref with named parameters. It would certainly make the code seem a lot clearer.


[Last] [Up] [Next]


This page is maintained by Justin Fletcher (gerph@gerph.org).
Last modified on 02 February, 2012.
This site is copyright Justin Fletcher. The accuracy of anything on this site is entirely limited by his belief system and memory at the time of publication - neither of which should be relied on. The opinions are entirely his, except where he's changed his mind. Quotations are copyright their respective authors and whereever possible attributions have been included.