A friend pointed me to this page today, which has some really awesome business card designs on it. I thought I’d choose a few of my favourites to post here.
In a similar vein to my previous post, here’s my 2009 in Twitter updates (although I only joined twitter in February).
I thought about using the application, but it’s a bit lame, so I thought I’d do my own (this is obviously a subset of my statuses…). Enjoy!
James ‘Griff’ Griffin…
Not long ago, I attended a seminar by Chris Date at Warwick Uni DCS on the topic on the advantages of the Closed World Assumption as opposed to the Open World Assumption. I wont be talking about these here, but I’ll just give a quick introduction. In the closed world assumption, if a set of data exists in a database, then it is assumed to be true (for example, Employee Steve has ID 1 and earns 20K). If a set of data could exist in the database, but doesn’t, then it is assumed to be false. In the open world assumption, however, this data can be either true or false – the assumption is that it doesn’t exist in the database because we don’t know if it’s true or not. It’s a very interesting topic, perhaps I’ll talk about it some other time.
The talk was incredibly interesting, but there was one thing he said which really struck a chord, and that was:
The most important property a database can have is that its data is correct.
This struck me in particular as a result of a number of issues I’ve had with recent projects whereby the entire website was crippled because of a couple of bit of incorrect data in the database. Could this have been avoided? Definitely. I could have added lots of constraints to the database, and I could have performed more unit tests on the code itself (I’d only just gotten into doing unit tests at this time, so they weren’t quite as robust as they could have been). It got me wondering, however, whether it would be useful to unit test that database design itself. It’s all good having “correct” code, but if the underlying database will allow inconsistencies, then there’s still a risk that the system can break. I’m not sure if unit testing the database design at a level below the code would be worthwhile, but it’s something to think about!
I’ve recently finished the first term of my final year of university, and for probably the first time, I’m actually sad to have completed one of my modules. The module was entitled “Research Directions”, and is (apparently) fairly unique to Warwick University. It’s organised as a series of graduate seminars, meaning the module as a whole covers a wide range of subjects, mainly being taught by guest lecturers who are experts in their particular fields. This meant that we were given decent groundings in areas including Quantum Computing, Bioinformatics and Trading Algorithms. Each member of the group presented a topic taken from the Communications of the ACM, which gave us brief introductions to more topics such as Smoothed Complexity, Probabilistic Databases and Model Checking.
What made this module great? It was relaxed, free-flowing and interesting. What more can you ask for? If only all modules were like this.
The degree I do at Warwick is very theory-heavy, in that we learn a lot of algorithms, techniques and equations, but put very little of it into practice. I quite enjoy the theory part of it, but it’s always fun to do the implementation (after all, isn’t the general perception of Computer Science that it’s a degree in programming?). Today, I got one of those wonderful moments where the theory is put into practice outside of the modules, when I had to implement Bresenham’s line drawing algorithm as part of our group project. For some reason, I found this really exciting! Of course, I had to look up how to do it, even though the module was only last year…
So, once again, I’ve redesigned the site. The concept is very simple: reducing complexity. This is something I’m really keen on at the moment – as Einstein says, everything should be as simple as possible, but no simpler. So the main site itself is incredibly minimal, and all the things are hosted separately. This blog now uses WordPress, which is fantastic, and the majority of the other content is available through other sites such as Twitter, LinkedIn and Flickr.
The portfolio was something I thought about for a bit. Traditionally, portfolios show all your work with quick descriptions on one page. But, as a web developer, the websites itself should act as their portfolio entry, so it makes sense for the portfolio to be just a list of links. Simple, see!
I’ve got a load of things I’d like to blog about soon, so watch this space!
I just wanted to say how much I freakin’ love LaTeX. As far as I’m concerned there is nothing else you can feasibly use for academic document preparation, and the output is just so beautiful. I can’t quite explain it, but I find the aesthetics of a LaTeX prepared document just incredibly attractive. Check it out for yourself.
I just found a review of Cat or Cactus?! on Mon Da Dientes which made me laugh. According to Google Translate, it says:
Cat or cactus is an exciting game blends real time strategy, third-degree differential equations and guess if the photo is half covered by a cat or a cactus. A real challenge.
Thanks, Mon Da Dientes!
I did some work on a CakePHP site earlier today, and I pretty much hated every minute of it. Somehow, I’ve gone from the kind of person who does everything in PHP, to one of those fanatical Ruby on Rails developers. There’s only one thing for it: I must re-write everything I’ve ever done in RoR! OK, maybe I won’t go that far. Yet…