Showing posts with label xmpp. Show all posts
Showing posts with label xmpp. Show all posts

Friday, November 13, 2009

Thoughts on Go

Along with many other people, I've recently run into Go, a new programming language from Google. I think it's got a lot of potential, and I really want to play with the type system and see how it works out in practice.

I got it running on my server, and quickly got down to writing some thought-experiment code. Once I split the code out into packages, I had some initial difficulty getting it to compile. The Go source tree has some Makefile magic for that, but it presumes that you will want to install your packages into the $GOROOT/pkg directory for use after they're built, so I didn't want to use that directly. Luckily, another intrepid blogger saved me the trouble of figuring out how to build Go code manually.

Go is designed to be good for writing highly-concurrent network services. I think I'll try and bootstrap an XMPP server project in the language, if it feels fun to code the first bits.

Friday, April 24, 2009

Welcome

Welcome to Code Think.

Here, I will be chronicling some of my experiences in working on code, mostly open source code. By placing my thoughts on design and implementation in public, I hope to invite some scrutiny and constructive criticism. Ideally, some of this will also be useful to the people reading it. Finally, the blog will act as a record for future reference, so that any mistakes that are made do not get repeated.

A few topics/projects of interest, most of which are likely to get posts of their own at some point:
  • Ways to integrate Python and Vala together. There are two components to this. First, I want to assemble a toolchain for automatically exposing Vala classes as CPython extension types, possibly by taking advantage of PyBank. Second, I want to expose as much of the Python/C API itself to Vala, so that it is possible to write custom extension types with special behavior or performance characteristics in Vala.
  • Working on Concordance XMPP, which I want to see enhanced to the point where it will perform as a basis for an Atom over XMPP Pubsub implementation, among other neat things.
  • Playing with the Strophe JavaScript XMPP client library. There is potential for this to act as the base for some zero-configuration-required dynamic web application stuff, but only if it can do anonymous XMPP login and uses the XHR-via-IFRAME trick or some BOSH session multiplexing magic to allow browsers with small per-domain connection limits to have many tabs/windows open.
All three of the above are vaguely foundational in nature. Until such time as I have useful implementations running, I'll leave it as an exercise for the reader to determine what they might be foundations for.