Me and an open house

March 31st, 2007

Well last night and today saw me performing a similar feat as last saturday, except I was wielding pencils, inks, gouache and brushes this time around. I’m part of an open house for the fringe festival in May and given it’s April tomorrow I thought I’d best get working. There are a few previous pieces I’ll use, but I felt I needed to get some more up-to-date work out there.

I have still been managing to do some drawing over the past two years, but it’s mainly been limited to birthday cards and presents. Whereas during my MSc I managed to get quite a bit done. So being involved in an open house is a good motivation to get drawing.

Firstly, I finished off one illustration I’d been working on. I mainly tweaked the line work last night. (Some of the leaves are painted in gold, which doesn’t show up too well on a scan…)


records.jpg

Yesterday I started on my first proper gouache painting and finished it off today. It’s of Richard Feynman whom I’ve always had an admiration for (mainly from reading about his antics during the Manhatten Project). Quite happy with how it turned out – it is really only a copy of a photo, but it’s nice to just concentrate on the paint for a bit. (credit to Shardcore for some of the inspiration behind painting Feynman)


feynman.jpg

Next we have a collection of monster illustrations. Been doing similar ones for birthday cards and they always turned out pretty well.


monsterhat.jpg monstershake.jpg monstertea.jpg monstertrampoline.jpg

I’d like to get quite a good collection of pictures finished, so I have plenty to choose from for the final showing. Given there’s only a few weeks to go I’ve not got too much time, but at least now I’ve made a proper start.

chrss update 6

March 30th, 2007

So I’ve now uploaded the results of the saturday morning code-a-thon. This means that you can now browse all of the previous moves and they also have a convenient URL. So if you want to show someone a move that you thought was particularly good/bad you can just send them the link. e.g. in this pretty amazing (fun at least) game against Kennon, I was particularly proud of this move:

http://psychicorigami.com/chrss/game/9/browse/29

Pretty happy with what I’ve got implemented for chrss now. This features take it slightly past the core ability to “just play chess”. Hopefully I can start leveraging the fact that everything is being recorded in the database and is now “just data” that can be manipulated and viewed in different ways. Though I think I might spend a bit of time on some of the more mundane aspects first (like being able to reset your password).

On a more technical note, starting to feel a lot more like I really know my SQL now. Been proficient at it for a while, but I was quite proud of this:


alter table move add column move_num int;

-- temp table for calculating the move numbers
create table tmp_move (moveid int,movenum int);
-- insert move numbers into tmp table
insert into tmp_move (moveid,movenum) select id as moveid, (select count(*) from move m2 where m2.id <= m.id and m2.game_id = m.game_id) as movenum from move m;
-- then update moves from tmp table
update move set move.move_num = (select movenum from tmp_move where tmp_move.moveid = move.id);
-- remove tmp table
drop table tmp_move;

-- increase constraints on the move_num values
alter table move modify column move_num int not null;

alter table move add unique game_move_num_index (game_id, move_num);
alter table move add index move_num_index (move_num);

Which basically adds a “move_num” column to the move table and the calculates the correct value for each move (i.e. whether a move is move 9, 10 etc. in a particular game). Previously I was calculating this on the fly, but that was forcing me to always read all of the moves for a game. This should make things a bit simpler for me down the line. Just a shame I couldn’t do it without a temporary table.

post £5 app

March 28th, 2007

So last night I presented chrss to the people gathered for the inaugural £5 app meet. We had a reasonable number turn up – thanks to everyone who came along. I probably didn’t talk to everyone, but it was a good crowd.

As is fairly normal I did feel rather nervous before hand, but felt better once I got going. Pretty happy with how my presentation went. I maybe spoke for a bit longer than I’d planned (waffling a bit when it came to the technical side), but managed to field quite a few questions so worked well.


IMG_4220

After my presentation, Ian talked about ShowMeDo. Ian focussed more on things like how to grow a community and that seemed to resonate well – sparking a fair bit of conversation. He did a really good job of getting across what he and Kyran had done to get ShowMeDo to the point it is now.

As well as the planned talks from Ian and myself we also had artwork on display from shardcore (including Edison and Topsy):


IMG_4223

So all in all it went well. It will be interesting to see how this meetup progresses from here. The next one should be in about a month.

[edit: Ian's got a post up too: http://ianozsvald.com/2007/03/28/£5-app-great-inaugral-night/ ]

saturday morning code-a-thon

March 24th, 2007

For some reason I seem to be getting up early at the moment and coding. Just had a pretty good intense coding session and managed to get a whole load of stuff done to chrss. So good when you get that feeling of “flow”.

So needs testing before I deploy the new version, but in principal the following are now done:

  • move confirmation
  • browse moves (see what the board looked like at every point in the game)
  • RESTful style URLs
  • 301 redirects for old URLs to new URLs
  • unit tests

The last one will be increasingly important, as it means I can be increasingly certain that everything is working properly. Most of the unit tests so far are for the “model” part of the app. In this case that means I’m mostly testing the actual chess part of the code.

I based the REST code on this recipe for turbogears and tweaked it a little.

The RESTful URLs also help me organise my code better and just seem friendlier in general. One other side effect is that you will be able to/can browse the potential moves as normal links and don’t have to be logged in to do so. So for example you would click on a piece to see the available moves, then on the move you want and you’d see something like this in the browser address bar:

  1. http://psychicorigami.com/chrss/game/11
  2. http://psychicorigami.com/chrss/game/11/14
  3. http://psychicorigami.com/chrss/game/11/1423

Where 11 is the game #, 14 is the position of the piece and 1423 is the final move you want to make (in ICCF notation).

So hopefully I’ll get this online next week (probably after the £5 app meet).

£5 App at Brunswick Square

March 23rd, 2007

Well yesterday we actually went and looked at the venue for the £5 App meet. Lovely regency era house that’s being slowly renovated. Should prove to be an interesting place – just hope it’s not too chilly on the night.

In terms of presenting my talk on chrss I’ve been investigating the actual tech I’ll need. Not having powerpoint and running a mac has led me to the following:

  • S5 for the presentation/powerpoint alternative
  • Shiira for displaying the S5 presentation in true full-screen

S5 has the advantage of being “based entirely on XHTML, CSS, and JavaScript”, so nothing new to learn there. Plus I can then easily have the slides online later.

Shiira is a Webkit based browser for OS X that I’m only really using for the full-screen functionality. As it’s basically using the same rendering engine as Safari it seems to work very well with S5.

Think I’ll be keeping the presentation fairly short. In general I’ll just touch on the overall idea behind chrss, then an overview and highlights of the underlying tech. I’ll probably tack on a “what next…” slide to discuss some of the features I might add later. That should bring it up to a reasonable duration, without getting bogged down in detail.

£5 App Meet – 27th of March

March 15th, 2007

It’s now called the “£5 App Meet” (rather than the $5 app meet) and if you want to attend please go on over to http://upcoming.org/event/163252/ and sign up.

It’s being held at 13 Brunswick Square in Brighton on the 27th of March (which is a Tuesday). More details are available at http://upcoming.org/event/163252/.

Longer logins

March 14th, 2007

Just tweaked some settings, so logins to chrss shouldn’t expire for a couple of days – instead of after twenty minutes. It was getting annoying having to log in all the time…

Class of the day: ConcurrentHashMap

March 12th, 2007

Well today at work involved me using ConcurrentHashMap and in particular putIfAbsent to severely reduce the need for old-school synchronized blocks.

Just a shame that you can’t pass in arbitrary expressions/blocks that will only be evaluated if the value isn’t present when you call putIfAbsent. Might become feasible if Java gets closures. There’s definitely some power in the java.util.concurrent package though.

Still it’s been a while since I’ve had that kind of satisfaction writing Java code.

Chrss update 5

March 8th, 2007

Another minor update to chrss. Changes:

  • captured pieces are displayed in a summary next to the user’s name
  • rounded corners (thanks to MochiKit)

Other than that my losing streak continues. That game contained a move I immediately saw as being wrong after I did it, so I think one of the next features to add will be a “preview” screen. Hopefully the changes needed to do that will also make it easy to do an action replay of the moves in a game.

Chess Enlightenment

March 7th, 2007

Chess Enlightenment at xkcd.