Saturday, June 11, 2011

Looper live jam

The basic problem with live jamming on the net is latency. You play along, hearing yourself in perfect timing, while the people receiving your music hear a delay, because of the time taken for the data to get from your computer to theirs. Unfortunately the delay is twice as big as that lag, because their notes have to get from their PC to yours, and then your notes have to get all the way back again. Not conducive to good jamming.

How about using loops, then? Someone plays a 4-bar section, which everyone receives, along with the timing data. They begin jamming with a delay, and their sections are sent back again to the other player(s). Instead of attempting to play person B's notes with no lag, person A's software plays them at the beginning of the second loop. So the players can now play with no lag, and have their notes heard with no lag.

The price is that the leader has to change to the next pattern on their own.

Since people are receiving each other's notes with this fixed delay, I would expect a layering to happen - B harmonises to A, C to B, and so on. Each gets a different actual rendering of the music, since they are all synchronous with their own notes but offset with respect to everyone else's.

Would be a great experiment...

Friday, April 15, 2011

Lunch hour code jam

Thinking about how I would like to improve my programming in my lunch hour, I had an idea: lunch hour coding as a jam, or a competition.

The format could be: A challenge/puzzle is posted at a given time, competitors sign in, and start coding live in their browsers. Other competitors and spectators can log in and watch the code being written live. Since competitors can see each others' code, they could easily fork someone else's implementation and make their own modifications.

I suppose having a few awards would work: first competitor to produce a correct solution, fastest execution time, most forked, etc. Use unit tests to determine whether a solution succeeds or fails.

Would work quite nicely for recruitment, CV-building, etc.

Thursday, March 24, 2011

PassiveActiveAllThatFlowsInMyMind

I'm sitting at my dersk feeling a bit like a graphic designer - I've got the clean designed specs, the cool thermal mug, a wireless keyboard and I've spent a while scrolling through pages of design blogs. They are heavy on the photos of cool stuff, and my mind is infected with the feel of it, the clean lines, the colours, the indulgence in texture and form and thought. Luxuriating in brass inset in walnut, castigating the endless over-designed-but-clearly-uncomfortable chairs.

If I designed a chair, it would be comfortable. Because a good chair you sit on. A good chair you sit on so much that you can't even see it. A good chair you feel more than you see, except for the bits in the periphery of your vision from your seat.

And a good chair, once you've got past the novelty of its entrance in your life, ceases to be about sitting. No, sitting on a good chair, you can stop worrying about sitting and focus on reading, watching, curling up with your baby, enjoying the warmth of a friendly coffee with someone dear to you.

So once you've got the chair that's so good it leaves your mind, and you've got a table so good that you aren't distracted by it, a PC or a notepad and pen that just works, what do you do?

All things are derivative, all things are a following of what was before, a continuation. Nothing is new that doesn't begin somewhere - all things are a journey, and journeys have a beginning. Having a beginning is nothing to be ashamed of - a trek across the Andes is no less a thing because you didn't invent the mountain range, nor the gear you used or build the town you started from.

Meaning is in the personal, the relational. Wood is better than plastic for making a desktop because the wood has a story and it has tactile meaning to me.

Thursday, December 9, 2010

Idea: A story in Vi commands

The thought occurs that, a bit like hearing one side of a telephone conversation and slowly piecing together the story, a particularly niche storytelling device could be to tell the story using only the vi commands. A series of searches, a replace, perhaps a :q! (runaway!).

Wednesday, December 8, 2010

Idea: An optimally diffusing reflector

In an unlikely twist of events, here's an actual idea, like I intended to be posting.


The problem

I have a consumer digital camera, but I hate the glare of the flash when I take an indoor photo at a family event. So I usually either find a bit of white paper or a spoon and hold it in front of the flash to bounce the flash off the ceiling or a wall behind me. This has its downsides; you look silly, you flash whoever's behind you, it's cumbersome (particularly when shooting vertically) and it doesn't work whenever there's a dark or far away wall or ceiling.


The concept

So I thought it would be good to have a little diffuser I could attach to my camera. But a little piece of plastic would waste a lot of the light by sending it out the sides, more so the larger the diffuser. And so that it actually improves the shot, I'd like the diffuser to be a reasonable size (A6?). So how about using 2 bounces? Firstly, a bounce in front of the flash to redirect it upwards, and then a second above the flash to bounce it forwards. If both of those were made of some kind of semi-diffusing reflector, like shiny paper, or had a bumpy surface like crinkled tin foil, then the light would be diffused without too much loss. I could also just use the first reflector to bounce of the wall or ceiling.


Optimizing the solution

What shape should the two reflectors be? If the first was concave it could focus the flash onto the second reflector, or even (via a paraboloid) create a fairly narrow beam. The second reflector would need to again diffuse the light to create the most diffuse source it could. So could we throw two surfaces of nodes and a light source into an optimising algorithm and see what answer it comes up with? The constraints would be to maximise diffuseness of the resulting light (so a given point in the field of view would be uniformly lit from as wide an angle as possible), minimise size, maximise the intensity within the field of view, etc.

Thursday, December 2, 2010

Visualization: Analysis plus Design

In response to Dave McCandless' post on Data, Information, Knowledge and Wisdom:


I would say that the value visualization brings is not only design but also analysis. First, you must analyse the information, and then you have to communicate that analysis to others. You can generate a very well designed pie chart, but if the useful analysis is better done with a bar chart, you’ve missed the best visualization. That’s why you get mush – not because the design is missing, but because the analysis is.

Wednesday, August 18, 2010

Just out of reach

A wisdom eludes me - just out of reach.

I can feel that there's something there; somehow complexity and the way S types think, the attention to detail and the ability to hold many complex aspects in mind, while N types focus on a few aspects and manipulate them with more ease. I can invent a new thing because I look at the simple set of aspects I see and question them. She can see the straightforward and (to her) obvious way to do it simply, using the existing tools and systems - she doesn't need the invention to deal with the details for her, because she gets them right anyway.

Somehow it's the difference in perception - some kind of slowly built picture of aspects, of richness. So expression and enjoyment is of the rich and the real, rather than the simple and the abstract.

If I could choose to, I would change the world and be content. She would pick up some fresh raspberries and douse them in fresh cream, and in delighted contentment sit in the sunshine and enjoy the experience.

But I'm an N, so I'm looking for the connection, looking for the model that explains the two. But for now it's just out of reach.