Saturday, February 25, 2006

Alan Kay on Lisp

Alan Kay, inventor of Smalltalk, apparently gave some interesting talks at the University of Utah recently. Bill Clementson has a post about the talks and some of the comments Alan has made about Lisp in the past.
"Most people who graduate with CS degrees don't understand the significance of Lisp. Lisp is the most important idea in computer science. Alan's breakthrough in object oriented programming, wasn't objects, it was the realizing that the Lisp metasystem was what we needed."

Categories:

Rodney King's Crazy Monkey - Non Attribute Based Boxing

With a group of fellow martial artists I've been working on training Rodney King's Crazy Monkey standup fighting method and have been finding it very useful.

Rodney King is the creator of a fighting method known as as 'Crazy Monkey' or non attribute based boxing.

The approach CM takes is to teach a primarily defence based system so that a person can gain confidence in their standup fighting to know they won't get hurt and from their launch an effective attack.

The 'non attribute' label is to differentiate between other boxing styles where to be effective takes a fairly long time as you need to become highly skilled and develop excellent attributes to be able to apply the technqiues without getting hit.

CM really becomes useful at the close range where your opponent can 'fire all guns' and you are in most danger of getting hit. It involves keeping the hands up high, on top of the head, and using arm and body movement to block and deflect the incoming punches using the forearms. By not getting hit you gain more confidence at that range to be able to fire back without getting hit, escape out to a longer range or to close to the clinch to take the fight to the ground. There's more to it than that of course but that's the basic idea.

So far I've found it to have greatly improved my confidence in handling an attack at that range. It's similar to learning grappling. I found that grappling improved my confidence in knowing that if the fight went to the ground I had more options, or I could take it to the ground if I was struggling standing. Rodney King's system has provided a similar confidence in me for the close range of standup in knowing that I can survive the flurry of attacks at that range and choose to fight back or change - making it my choice rather than the opponent forcing the choice upon me.

While I'm still a beginner at learning this stuff and still getting knocked around on occasion, I'm certainly doing better than in the past where I had no response whatsoever for this range. Hopefully as I continue to train it things will get even better.

If you're studying a martial art for self defence purposes I think it's very important to train at the different ranges. And specialist styles like BJJ to cover the ground work and CM for the close range standing make good options for covering those areas.

In the traditional martial art I do I've found that senior belts can sometimes be not very confident in the ranges we don't cover and even just a little training in the other areas can give a huge help. I encourage them to go out and try the specialist schools for doing this, for example the Grappling Studio in Wellington which does BJJ is excellent.

But for Rodney King's stuff there's no training center in NZ (that I'm aware of) so the options have been primarily DVD's in the past. This is what I've been working off. His Streetboxing and Sparring 101 DVD's are very good.

Recently Rodney has started a website, mymalife.com, which contains downloadable videos and information covering all you need to know about CM as well as a forum for discussing it. Registration for the forum is free and Rodney posts there giving lots of advice. Some of the information is available as free downloads but paid membership is required for the instructional videos. There's a wealth of information there and so far it's been very worth it.

Categories:

Friday, February 24, 2006

Blackdog competition winner

Remember the Blackdog? A small linux server that fits in the palm of your hand, automatically turning on when plugged into the usb port of a host machine.

Realm Systems, the makers of the Blackdog, held a competition for people to implement innovative ways of using the device with a grand prize of $50,000. The winner was recently announced:
Realm Systems has announced that Terry Bayne is the Grand Prize winner of the Project BlackDog Skills contest. He won $50,000 for his work on "Kibble," a tool for building integration solutions between the host PC and the BlackDog device using a SOAP-based RPC mechanism to send arbitrary (LUA) code to be executed on the host PC from the BlackDog. A panel of judges from such firms as HP, Dell, and Avaya determined that Kibble won for its originality, value, and functionality.

Categories:

Wednesday, February 22, 2006

Free hosting for Seaside web applications

Looking for free hosting for your Seaside application? An announcement on the Seaside mailing list says that free hosting is available from Seaside-Hosting.
Seaside-Hosting is a free hosting service for non-commercial Seaside applications. This service provides a simple to use web interface with FTP access to set up and run your Seaside applications. It allows you to put your own application online within minutes. The service is a Seaside application and is itself running on Seaside-Hosting too.


Categories: ,

Tuesday, February 21, 2006

Javascript and Generators

Could Javascript be getting generators, iterators and list comprehensions? This post from Brendan Eich is a status update about the future of Javascript that mentions the possibility (From Ajaxian).
js> function count(n) {
for (var i = 0; i < n; i++)
yield i;
}
js> g = count(10)
[object Generator]
js> g.next()
0
js> g.next()
1
js> two_to_nine = [i for i in g]
2,3,4,5,6,7,8,9
js> squares_to_20 = [i * i for i in count(20)]
0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361

Categories:

Jaws Erlang Web Framework

Joe Armstrong posted on the Erlang mailing list about Jaws, a web framework he is developing in Erlang.

Jaws has a template language for the Yaws web server that allows mixing HTML and Erlang similar to PHP, JSP, etc. Multiple pages can be specified in a single file and it provides Ajax functionality.

It looks very interesting, hopefully a release will be available sometime soon.

Categories:

Wednesday, February 15, 2006

Concurrency

Bill Clementson has been posting about concurrency in programming languages and linked to me about my use of Erlang.

I've been using Erlang for a personal project for the last few months and I've found it very easy to use. The ability to spawn processes without the need to worry about any practical limits is quite interesting. I've found that I've started thinking about concurrent solutions to problems rather than strictly OO or functional solutions.

Some people ask 'why would anyone need thousands of threads'. My answer is 'why not'? If it makes the program easier to write, maintain and understand, why should a programming language or implementation create an arbitary restriction?

It is especially useful for network applications. I'm using the Yaws webserver written in Erlang with a library I wrote to do server side push of events from the webserver to web browser clients. This results in a large number of server connections and Erlang models this easily with one process per connection with a low overhead compared to native threads.

The common objection related to not being able to use SMP machines will be addressed with an upcoming Erlang release that uses native thread pools to distribute the process load.

I also continue to maintain and extend the concurrency library I wrote for Factor. Currently I'm adding binary serialisation (based on the Pickler Combinators paper). The intent of this is to allow serializing Factor continuations and thus provide migrating processes and distributed concurrency. I use this as a means to explore concurrency methods at a lower level which gives me a greater understanding of how to use it in systems like Erlang. And ultimately I'd like it to become a productive and usable system in its own right.

Categories: ,