The Server and the Client

The name of the server for CoffeeTalk is cttpd, the CoffeeTalk Transport Protocol Daemon. This is an obvious take from httpd, the Hyper Text Transport Protocol Daemon.

Web servers, generally, send html files. CoffeeTalk servers send outlines.

Web server connections, generally, are not persistent. CoffeeTalk connections are persistent. Always on.

Always connected clients presents some interesting issues, not the least of which is scalability. There has been a lot of focus and coding put into cttpd to solve the scalability problem. The solutions to this and other problems will be talked about in later posts.

Enough for now…


Super Caffeinated Object Oriented Outline-based Programming

Let’s start with the project I’ll be working on, and coincidentally, the project I’ll be talking the most about: CoffeeTalk. I don’t have a quick 30-second elevator pitch, or even an extended version that can fully explain it. Yet.

I’m still not sure how CoffeeTalk will turn out. The title of this post is one way to look at it. Another is “a scalable network application framework.”

The key points of CoffeeTalk:

– Outline based. This brings inherent organization to applications.

– Object oriented. No explanation needed.

– Network based. No machine is an island. Or “The Network is the computer”

– Client-Server topology. Buzzword compliant, but true.

I’ve already built 2 versions. Version 1 was a pretty bad proof of concept, but it works. It is currently in use.

I’ve released version 2 as an internal test release and it is a significant improvement over version 1.0. The code is much cleaner, there’s actually some documentation, and it mostly works. There are some show-stopper bugs that need to be fixed. I’m not going to fix the bugs in version 2.0, instead I’m going to fix them in 2.1 which will also include a complete rewrite of the networking code.

All of this is currently being written in Python 2.5 using the PyDev plug-in for Eclipse. Quite possibly the best Python development environment I’ve ever used. Makes me feel productive.

More later…

Second verse, Same as the first

This is the first post in a long strange journey. I’ll be getting into some kind of rhythm for posting, but that will take some time. I’ve never been good at writing on a consistent basis. So we’ll just have to start with this short post and go from here. A million steps from now maybe we’ll have something cool to talk about, maybe not. Only one way to find out. *Step*