Skip to main content


Showing posts from January, 2006

Information Overload, Needles, and Haystacks: Part One

So this is a little more subjective than most posts I want to make here, but it still fits better than on either of my other blogs. Do I have too many blogs? That will have to do, until I get around to utilizing more proper and tag-supporting blog software. Anyway...

The internet is a amazing. The myriad of information is just fascinating, and would be overwhelming, if it were possible for any one person to truely grasp just how much data there really is out there. Not only can we not possibly grasp it, but there is no way to really utilize it. We make baby steps, every day, to obtaining more and more of that information. Or, rather, we make steps in obtaining more specialized and exact pieces over a wider selection of that information. The ammount of information we can take in has pretty much maxed, I think. All we can do now, is utilize that limit by being more intelligently selective of what is available for us to take in.

The Needle is something you want, and maybe you know it, or m…

pyx Introducing NevowPavel

I just found NevowPavel, Donovan Prestons year-long-so-far project that really takes everything Nevow has been reaching for to another level. JotLive has always been a pretty cool thing, but I honestly found it more gimmicky than anything else, and couldn't see myself finding it all that useful. Pavel, however, is jaw-dropping.

Go and watch the webcast, as it is really the best way to see what this is capable of. I would love to play with this sometime soon, and maybe try my hand at creating some object types to play with in Pavel. I'm already formulating ideas to pitch to Donovan, including container types (which I imagine might be anticipated already) and possibly configurable handlers for incoming objects passed through portals within certain containers. Just think of the usefullness of a "Reviews Pending" space that had a portal configured to toss everything coming in into a container that listed everything for review. What about one-to-many portals? I don't k…

Recursion Bites with Complex Nevow Pages

There is a recently discovered issue with Nevow's Athena LivePages. LiveFragment nesting fails if the nesting gets too deep, due to repeated cloning of the contexts, including the full chain of parents back to the root of the document. This was hitting the call depth limits in some tests idnar was working on. I found this to be a little worrysome, as my designs for the current project included some relatively deep nesting of LiveFragments; at least, as deep as the tests that found the error. Eventually, contexts are to be removed from nevow entirely, as I understand it, but this is far down the road. A temporary solution was needed, besides just not using so much nesting. I decided that instead of redesigning the system I was building, I would fix the bug, and I have. I posted Trac Ticket #602 along with a patch that fixes it.

Recursion is a very useful software construct, but sometimes it can bite you in the end when you don't even expect it to. There is usually a way around i…

You are 100% accountable for your source code

You are 100% accountable for your source code: "It is just amazing how the mainstream software development industry is behind the times in comparison to other more advanced disciplines; the below fragment by Mary Poppendieck summarizes what I am writing about."

Caught this through the feed of MSDN blogs and it hits a good point. Specifically, every line counts and every line is one more line of source you need to keep correct in relation to every change made anywhere else in the code. Now, this has some other points to consider, such as private constructs being a little less dependant on other code, but on the whole it is a pretty true and simple statement. Keep your source code lean, and don't add what you don't need, because every line you write is another line you need to worry about when you make any change anywhere. Of course, this is well known in most senses, and nearly all techniques of intelligent code design revolves around keeping all these increasing lines…

Nevow: Post-Render Injection of LiveFragments

In part of my current project, I've tried to make things very spiffy and use that nice AJAX stuff we all hear so much about. I do this through the wonderful Nevow, which makes much of the work a breeze. Some of the things I wanted to do, however, it isn't there on yet, so I had some more work on. Here is a story.

Nevow has a concept of a LiveFragment, which is a piece of a dynamic webpage that can be placed into a LivePage and attached to a counter class in JavaScript. The Python and JavaScript classes on either side of the pool are able to call methods between one-another, to facilitate anything you want that can be done in either language. All of this works through the transport system of the LivePage to communicate back and forth. Some recent changes allow easier post-render initialization of new LiveFragments, but it isn't perfect yet.

This is how is basically works, and some of this may change soon, as Nevow is a work in progress.

First, we need to take our LiveFragment …

Teaching a Friend: Can Twisted be a good First Impression?

A friend of mine has expressed an interest in learning to program, to dive into the dream of creating the next great video game. I've decided to tutor him, and teach him some things, as we make a small game for his first jump into code. I've made a decision to go about this differently than most.

I'm teaching him using Twisted.

Twisted is an asycronous programming framework, and while it works great for games, some would question my use of it on a newbie. I actually think that the fresh mind might absorb the concepts easier than an otherwise tainted programmer's mind. We'll see, I suppose.

New Programming-Centric Blog

I've decided to start a second blog, where I will post only about programming-related topics, and I will leave my other blog ( for any of my non-programming posts. I think this will help me in the long run. Too often, when I want to post something, I wonder if its too geeky or too non-geeky, so obviously there is an issue there.

So, I'm trying to make a career move. I'm tired of programming being a hobby; I want it to be a career. Right now, I don't even have a career. I only have a job. This choice comes at an interesting time with a reason that both gives me more reason for this Big Move, and more to worry over about doing so. My wife is pregnant, and our first child is due in May. When Caelan is born, I want to be here with my wife and my son! Of course, that means I will be worrying about supporting a child, now. Although I can make more money doing this, the stability of it is not as secure as a normal job. I've got my first cont…