Thursday, December 29, 2005

Backbase LiveGrid and DataGrid

Backbase have released version 3.1.1 of their rich internet application framework. It contains a large number of 'web 2.0' goodies. The two big ones are live grid and data grid components.

The live grid is a paging component that lets the user just use a scroll bar to lazily load data frmo the server. Only the items displayed in the grid are actually retrieved from the server (plus some for caching purposes). Scrolling with the scrollbar will automatically pull the requested data from the server. This is very similar to the Open Rico live search example and is something that has been requested in the Backbase forums.

The data grid is a table that can contain rich data, including other backbase controls, which can be presented and edited by the user. It is cell based and has many features, including (from the Backbase whats new document):
  • Editable fields
  • Embedded form controls (text, drop-down, calendar, etc)
  • Context menu
  • Insert and delete rows and columns
  • Row and column headers
  • Column sorting
  • Column resizing
  • Grid resizing
  • Multiple selections
  • Keyboard navigation

There are many other great enhancements in this backbase release. Use the explorer and read the whats new document for more details.

Categories: ,

Real World Haskell Part 2

I mentioned previously that Joel Reymont is using Haskell these days for some of his 'real world' programming systems. I hoped at the time that he would outline some of his stuff on his weblog with comparisons to Erlang.

Since then he has put up a Haskell vs Erlang post where he describes some of the things he's come across while using Haskell to write a distributed testing tool for his poker server. Both his poker server and distributed tester are heavily network oriented products. One of Joels comments on using Haskell vs Erlang is:
Erlang is the language for network programming!

He comments that when writing in Erlang he concentrated mainly on the actual logic of the application rather than the concurrency, network, binary parsing, etc as Erlang handles the latter. With Haskell he has spent most of the time on the infrastructure and very little on the application logic.
I did get my Haskell app to the point where it's about 90% ready and working but most of my attention was spent on... binary packet parsing, serialization, networking and heavy-duty concurrency. Oh, yeah, and minimizing memory usage. Yes, it's working now but it took blood, sweat and tears. It's now two months later and I have yet to see the Haskell app launch thousands of poker clients and run them for hours.

Interestingly he is still continuing with Haskell:
Based on the above, would I continue coding in Haskell or go back to Erlang? Not really! There's a steep learning curve to Haskell but the experience is extremely rewarding. Your code looks neat and if it compiles then it probably works since the type checker has been all over it.

Joel goes further into why he likes Haskell in a later post.

Categories: ,

Factor help system

Slava has been busy with Factor lately. Not only has he done a lot more on the AMD 64 backend, he's writing a help system that runs within Factor.

Categories:

Family History Research

I'm on a break from work over Christmas/New Year so decided to so some more family tree research. It's a subject I got interested in about a year ago when I started my Pitcairn Island news weblog and wanted to find more about my Pitcairn ancestry.

Lately I've had some luck tracking down some UK ancestors so I decided to fire up a new blog on doing family history research from New Zealand - mostly writing about the online services available and eventually some of the software I've written to help manage the genealogy information (in Factor and Erlang mainly). If you're interested in that sort of thing, visit My Genealogy or grab its atom feed. Doing this as a weblog also has the positive side effect of putting the names I'm gathering information about onto the web so that google and other search engines can pick up searches from people looking for the same people.

Categories:

Monday, December 19, 2005

del.icio.us problems

It looks like del.icio.us is down and have been for most of the day. As a result my category links aren't working. Once it comes back up again things should be fine.

Categories:

Saturday, December 17, 2005

Factor website changes

Slava Pestov has moved the main Factor website to a new machine and is running it on the Factor web server. It's also running the Factor code browser. I've retired the browser I was previously running on factor.modalwebserver.co.nz as a result.

Slava is using Linode to host the site. Linode provides 'User Mode Linux' machines within which you can install Linux and use it for whatever purpose you want. This is what I also use for my websites and what I previously hosted the online Factor browser on. I can highly recommend them. Great service and it gives you much more freedom to do what you want - assuming you don't mind setting everything up yourself of course!

Categories:

Porting DUIM to Common Lisp

DUIM is the Dylan User Interface Manager, the GUI library used in the Functional Developer Dylan system. Duncan Rose is porting it to Common Lisp.

DUIM is a nice easy to understand user interface framework. I used it quite a bit to develop a number of Dylan programs. Many of my creatures programs and other things for example. It fills a similar space to the LispWorks CLIM library.

Hopefully Deuce will also be ported. Deuce is the emacs-like text editor for the DUIM framework. Thanks to John Pallister for the heads up.

Categories: ,

Saturday, December 10, 2005

Kempo Bushido Ryu

Around 1977 I started Kempo Bushido Ryu, a style of Karate, when I was aged about seven. The subject of Kempo came up on a forum I frequent recently so I thought I'd embarrass myself by posting a couple of 'home movies' of me doing kata from back then:
These were originally filmed with 'super 8' reel-to-reel film, transferred to VHS a number of years later, and then transferred to the PC, so the quality is not great.

It must be the time of year or something - Last year, just before christmas I posted more 'super 8' from about the same time frame of me on the Bounty to the Pitcairn News blog. Or maybe because it was my birthday today so felt like reminiscing :-)

Categories:

Thursday, December 08, 2005

64bit Factor

Slava has a post about the AMD64 backend he is working on for Factor. There has been quite a bit of interesting progress with Factor recently, including some nice contributions. Someone has even written an X11 window manager in Factor.

Categories:

Wednesday, December 07, 2005

Where did my fitness go?

Not counting the recent seminar, tonight was my first time back grappling in the non-fundamentals class for a while. You know you've been away too long when people look at you and seem amazed that you're actually there! It's interesting what you notice when you come back from a break.

The first, sitting at a desk programming has done nothing for my fitness! What a surprise. I used to be able to last the hour class fine but now I'm gasping for breath after just a couple of rounds.

Next is that everyone has gotten better. Much better. And I haven't. I did alright the first couple of opponents. I was concentrating on using the cuff choke from inside my opponents closed guard. This is a technique I picked up from the Masters of Grappling DVD and at least one GSW member is very good at it so I was keen to learn it. Amazingly I was able to pull it off a few times, and I got some help from said GSW member on how to work around some defences to it.

After that things went downhill and it was pretty much me tapping all night long. I felt very rusty. As they say, there's no such thing as failure, just another learning opportunity. I had much opportunity to learn tonight.

The class was taken by three of the blue belts and they did a great job. One of the drills was to pair up with someone and one person had to do as many submissions as possible in rapid fire, with light resistance from the opponent. That was interesting because it forced me to think about submissions I don't normally do and how to get into position to do them.

Categories: ,

Rewriting Reddit

Aaron Swartz writes about the rewrite of reddit in Python. Apparently the Python framework used, web.py, was written by Aaron.

What I find most interesting is how quickly reddit was developed - and redeveloped. Only one weekend for the rewrite is pretty impressive. One reason for the fast implementation is because it's the second time they've written it and can learn from past design mistakes. They also get to reuse all the HTML design. It's a good case study though of how quickly a very popular site can be developed and maintained.

Categories:

Code replacement in Erlang

From DrXyzzy, a good article on how code replacement is done in Erlang. Code replacing allows replacing code in a running system with new versions, without having to bring that system down.

Categories:

Polyphasic Sleeping

Is it possible to operate on only 90 minutes of sleep a day? Polyphasic Sleeping involves taking multiple naps per day, of about 30 minutes in length, instead of one long 8 hour sleep period.

The theory is your body adapts to the shorter sleep cycles and ensures REM sleep kicks in earlier. It's the REM period of sleep that is the important part to avoid sleep deprivation. So your 30 minute nap is almost entirely REM sleep. With normal sleep patterns you still only get the same amount of REM sleep and the rest of the sleep time is effectively wasted.

Steve Pavlina tried the polyphasic sleeping idea and blogged about it. It's a very interesting read and he's apparently decided to continue with it indefinitely.

Reading through his blog entries he seemed to find the first week the hardest, dealing with 'foggy thinking', and fatigue. But once over the worst of it his energy levels improved and he added many extra hours to his day. His whole concept of time changed.

Link from Keith Devens pointing to Steve's 'early riser' posts.

Categories:

Tuesday, December 06, 2005

Why rewrite reddit?

The reddit blog outlines why they rewrote reddit in Python, from the original Common Lisp.
If Lisp is so great, why did we stop using it? One of the biggest issues was the lack of widely used and tested libraries. Sure, there is a CL library for basically any task, but there is rarely more than one, and often the libraries are not widely used or well documented. Since we're building a site largely by standing on the shoulders of others, this made things a little tougher. There just aren't as many shoulders on which to stand.


Categories:

reddit rewritten in...

reddit, the popular web application written in Common Lisp, will now have to be known as the web application formally written in Common Lisp. It has been rewritten in Python.

Categories:

Obfuscated Erlang

The results of an Obfuscated Erlang competition have been made available. From the announcement on the Erlang mailing list:
The first prize is a splendid contribution by Martin. The program demonstrates that Erlang has indeed an error in its design. The second prize was for an artistic Sudoku solver by Urban. And finally, the judges were forced to add a third prize, the Judge’s prize, as they were unexpectedly confronted with a breathtaking submission that had been used in a live system.


Categories:

Solution Watch reviews DabbleDB

Solution Watch has a review of DabbleDB. It goes into good detail, showing an example 'todo' application being built. The review is very positive. DabbleDB is written using Seaside, a continuation based web framework in Smalltalk.

Categories: