More kiting

Location: Parliament Hill, Hamstead Heath
Wind: gusting 0 to 29km/h
Kite : HQ Symphony 2.2m

Outing 2 was pretty much a non starter. Arrived at ‘the kite hill’ on Hamstead Heath mid afternoon, there were a couple of kiters out flying and the rest of the field was full of people sat picnicking. Managed to carve out space next to a couple of kiters, they had two decent sized 4 line kites which they couldn’t fly. Their method appeared to be: launch kite, then sit on the floor and occasionally see if they could get pulled up to standing by the kite. They also had a smaller 2 line that a small boy would fly occasionally, when he felt like it. Overall, they monopolised the space to fly all their kites, but rarely even had one in the air. They launched whenever they felt the need, no matter what anyone around them was doing, and I was pushed over too close to the pathway.

Also I was teaching my lovely wife (buyer of kite toys) how to help with launching kites. This was harder than I had thought 😀 I had made basic assumptions about how easy it was to know which end of the kite was up, and where it was safe to stand once the kite was airborne. I get overly distracted by people standing or walking under my kite, particularly if I’m hoping to be on speaking terms later 🙂

Eventually decided that I was being forced over to where I was a danger to other people on the hill, so called it a day.

Not much to take away from this except: get on the hill early!

First Kite Outing

Location: Parliament Hill, Hamstead Heath
Wind: gusting 0 to 35 km/h
Kite : HQ Symphony 2.2m

Went out around 14:30, not sure quite where to go, but when I got to the bottom of Parliament Hill, I could see a kite flying at the top. Thought I would be able to ask whoever it was for advice.

Wandered up the hill, turned out to be a couple of guys with a 3.5m quadline. Watched them for a while and decided that there was little they could teach me. They were trying and failing to launch along the main footpath, and over a bench which they kept getting tangled on. Much shouting and little flying.

I managed to find some space and started to unpack my new kite. Took a while to get the lines laid out straight, had planned to weigh the kite down with plastic bags filled with something I found in the park…. didn’t find anything in the park…. fail! Tried laying out the kite really low in the grass, but it kept getting picked up before I could get back to the handles. Homemade stake failed, couldn’t get enough purchase to hold the lines. Eventually weighed it down with my bottle of water, worked well as when I pull the kite upright, it just rolls off.

Take off success! Spent about an hour flying, totally blown away by the power of what I thought was a reasonably small kite. Quite quickly got a feel for bracing myself through the power-zone and getting up to the zenith, or out to the side when the gusts came. First crash caught me totally by surprise, sudden gust and it flipped and dove straight down to the ground. Soon taught myself to relaunch off the grass.

Afterwards really aching in trapezius and abs, hamstrings very tight too. Some pain from old ankle injury as well.

Issues:

  • Unexpected gusts cause kite to pull me across the park
  • kite goes very fast in the power-zone
  • if steering when gust hits, unable to predict effect – usually straight into ground
  • When lull hits, kite deforms and falls fast. sometimes folds so that cannot reform
  • self launching strategy not yet dependable
  • Lessons learned:

  • Got a good feel for where the power-zone is, both by feel, and visualisation
  • kite weights from small water bottles in socks
  • practised figure eights in both directions
  • Kitesurfing!

    While on a short holiday in Italy, I got to sit by the beach watching a bunch of kitesurfers…. I was instantly hooked, so on return home I set about finding out more.

    I’m going to try an blog the process, for personal intrest and hopefully to help others who are bitten by this bug and don’t know where to start. There is a wealth of information on the internet, and I’ll try and credit the places that I’ve been lurking, and maybe even join up on some of the forums that have been most useful.

    My kite flying experience left of as a mid teenager with a basic stunt kite… actually found one for sale on ebay titled ‘vintage’. Here it is I had no real idea about modern kites. So I did some research…

    First discovery, to buy the kit new is going to cost well over £1k probably closer to £2k. I was imagining I would need to shell out £500-600. Also, its not really the kind of sport that you just buy the kit and jump in the water and go. So the sensible plan seemed to be to find a school / instructor and have a go using their equipment. This stops me wasting money on the wrong stuff, or deciding it wasn’t something I wanted to do (unlikely). As a bonus, it would significantly decrease the chances of me killing myself or someone else.

    Having been involved in dingy sailing and teaching for many years, I wanted to find a recognised school. The British Kite Surfing Association (BKSA) is the national body, and they have instructor certification.

    Second, there’s no inland kitesurfing to be found near London. The closest sites are Brighton/Lancing/Worthing, Camber Sands, or Southend. My sister lives in Brighton, so I started to look there. Found a couple of schools that operator off Lancing Beach, and discovered that an ex co-worker is a kite surfer who lives in Brighton. I tapped him up for some advice, which was basically : ‘learn to fly a kite’.

    So Amazon.co.uk and lovely wife conspired to buy me an HQ Symphony 2.2m dual line kite. Its a nice bit of kit. All I need now is to fly it.

    GWT RPC AsyncCallback testing using Mockito

    Been working with GWT a lot recently. MVP allows easier unit testing of the client logic, but those asynchronous RPC callbacks are usually implemented as anonymous inner classes which are a bitch to test.

    However, they can be mocked out and tested with a custom stubber like this.

       public static class AsyncMockStubber {
            private static <T> Stubber callSuccessWith(final T data) {
                return Mockito.doAnswer(new Answer<T>() {
                    @Override
                    @SuppressWarnings("unchecked")
                    public T answer(InvocationOnMock invocationOnMock) throws Throwable {
                        final Object[] args = invocationOnMock.getArguments();
                        ((AsyncCallback) args[args.length - 1]).onSuccess(data);
                        return null;
                    }
                });
            }
        }
    

    Its nice that the async interface always has the callback as the last parameter, so one size fits all.

        AsyncMockStubber.callSuccessWith(data).when(armorService).getData(any(AsyncCallback.class));
    

    Hibernate Annotations for a class containing a Map

    Hibernate annotations for a class containing a field that is a map. Enumeration as key, with a class as the data.

    Had to look this up twice in the last four weeks, documentation is sparse to say the least.

    Key point is the inverseJoinColumns on the JoinTable, and using the hibernate annotation for MapKey over the JPA.

    public class Parent {
        @Id
        @Column(name = "parent_id", nullable = false, updatable = false, length = 19)
        @GeneratedValue(generator = "parentSequence")
        @SequenceGenerator(name = "parentSequence", sequenceName = "PARENT_ID_SEQ")
        private Long parentId;
    
        @CollectionOfElements
        @JoinTable(name = "PARENT_TO_CHILD_HASH_TABLE",
                joinColumns = {@JoinColumn(name = "PARENT_ID")},
                inverseJoinColumns = @JoinColumn(name = "CHILD_ID"))
        @org.hibernate.annotations.MapKey(columns = {@Column(name = "ID_TYPE")}, 
                type = @Type(type = "path.to.user.type.for.IdType"))
        private Map<IdCode, Child > childMapping;
    
        ....
    }
    

    The join table… manually created.

    CREATE TABLE PARENT_TO_CHILD_HASH_TABLE 
        (
        PARENT_ID NUMBER(9),
        ID_TYPE VARCHAR2(50),
        CHILD_ID NUMBER(9)
        );
    

    If you’re having trouble, make sure to turn show_sql to true and debug by running the query.

    Little Big Planet

    Pure Genius!

    So here’s a game on the PS3, that is 95% game play. Its a side scrolling, platform/puzzle game featuring the infinitely endearing ‘sackboy’, a small sackcloth puppet character that you can customise with rewards won by completing levels. My current creation has vampire teeth, oversized sunglasses and cat ears, topped off with a pirates outfit. I forced him to wear an Elizabethan dress for a while, but that seemed too cruel.

    The greatest value is to be found in the multi-player aspect of the game, whether locally or over the internet. The game give you control of sackboy’s facial expressions via various degrees of : happiness, sadness, anger or fear. The sixaxis can be used to angle head (or hips) and his arms can controlled independently. I’m expecting to see a group performance of YMCA on youtube any second now. Personally, I favour dances from Grease or Saturday Night Fever with a maniacal grin.

    The key feature is a level editor, with which you can create your own levels which are published so the whole PS3 LBP community can play and rate your work. The materials for level building are also won as rewards in the preset levels. I’m not sure if you can design your own building blocks, but look forward to finding out.

    A key diversion from typical platform levels is that ‘machines’ can be built into the game, using any bounds of imagination from rocking horses to flying dogs. There’s already some interesting user built levels out there, ranging from a truck that plays Rock songs, to a rocket sled that zooms around the screen at break neck speeds. There is an ongoing battle for the publisher to prevent breach of copyright that will keep the lawyers employed for several years.

    I’m hoping that plenty of diverse and imaginative stuff will come out of this, building levels with humour and ingenuity, rather than using the biggest machine that can be built.

    Apparently, if you wish to knit your own sackboy, a knitting magazine has already published an approved pattern. Get your knitting needles out boys!

    Bully – Scholarship Edition

    I’ve been playing this on and off for a couple of weeks. Dated graphics and long load times feature highly, but the game is extremely playable and good fun. As a huge fan of sandbox games, its perhaps not surprising that I like Bully.

    Its clearly a GTA extension, right down to the artwork on the loading screens (yes, I said loading screens – you’ll see enough of them to last a while).

    Overall, perhaps its a little on the easy side, but the narative is acceptable and the plot twists and turns enough to keep you interested. Plus its a great GTA style sandpit with mini-games from go-kart driving to carnival shooting range.

    Open-top London Tourbuses in the rain

    I’ve never been on an open-top bus, come to think of it, I’ve never been on any London tour bus. Its possible it could be quite fun, but only if its sunny and the bus stops off at pubs frequently.

    What happens when it rains, aside from no-one getting on? Is there some sort of door to stop the rain running down the stairs or is the whole bus awash with rainwater?

    What I have noticed, as a cyclist, is something to watch out for. The top floor clearly starts to fill up with rain water, which then drains out of holes at several points in the side of the bus. When the bus is stationary, this is fine and the water just dribbles down the side of the bus to the ground.

    When the bus is moving, however, it gets more fun. As the driver brakes, the water on the floor all ‘swooshes’ to the front of the bus increasing the pressure on the front drain holes, so that what was a constant trickle becomes a small jet, gushing out a several feet from the side of the bus… right onto any unfortunate cyclist.

    Be warned… Be amused. 😉

    Hello world!

    Its a blog…..

    Content will be added shortly