Archive for the 'OS X Development' Category

BTLSockets Framework Version 1.1 Released

Monday, May 5th, 2008

This weekend I finished up my work on the first publicly-released version of the BTLSockets framework. It can be downloaded at its Google Code page. The BTLSockets framework is a wrapper around the BSD sockets API for Objective-C. It currently supports TCP and UDP connection over IPv4 and IPv6, but can be extended to support other transport-layer protocols and address families.

There are many other socket frameworks for Objective-C, such as AsyncSocket, OmniNetworking and EDCommon, to name a few. Some of these sockets are more simple, and some of them sport features not implemented by BTLSocket. In general, it is probably best to use the simplest solution which will meet your needs, so BTLSocket might not be the best framework for your project. However, BTLSocket offers the following features:

  • TCP and UDP support.
  • IPv4 and IPv6 support.
  • Extensibility to other protocols and address families.
  • Socket handler objects.
  • Portability to UNIX, UNIX-like and Windows systems.

Socket Handler Objects

The BTLSockets framework uses socket handler objects which sit between the socket and the application. These handlers can filter the data before it is read by the delegate or written to the network. This interface can be used, for example to implement encryption schemes (from simple XOR schemes to SSL) or to tokenize incoming network traffic. Socket handlers can be chained together in a list, passing data down the line until it reaches the last handler, and are portable across all applications using the BTLSockets framework.

Portability

The BTLSockets framework is implemented using classes from the Foundation framework. It should compile and run on UNIX, UNIX-like and Windows systems, using GNUStep or Cocotron, though it has not yet been tested on other systems. I hope to provide GNUStep makefiles and binaries for many systems in the future.

Ironcoder V Reflections

Monday, April 9th, 2007

As some of you know, I participated in Ironcoder V last weekend. It was an absolutely fantastic experience. I would have written about it sooner, but this last week was the first week of the new term, and, as it usually is, it was extremely busy.

First and foremost, I should extend my congratulations to Ben Gottlieb for his winning entry WikiPath. Although I was technically in the #macsb channel on irc.freenode.net when the winners were announced, I was also at work, and thus not able to properly congratulate Mr. Gottlieb. I would also like to congratulate the others who made it to the top five: Adam Leonard for Blurred Life, Josh Freeman for CrepuscularLife, Ian Gowen for LifeLike, and Joseph Wardell for Pixure. (I would include a link to each participant’s blog, but I could not find a link for everyone.) I would be tempted to congratulate everyone who completed an entry, as it is not a trivial task, but I do not want to appear to be tooting my own horn.

I am proud of my entry though. For this Ironcoder I submitted an application which implements Conway’s Game of Life using crudely drawn pieces of Life Cereal as cells. I called it Conway’s Game of Life Cereal. I even spent half an hour or so whipping up a custom icon which plays on the ambiguity of the name: Instead of depecting Conway’s Game of Life using cereal pieces, it depicts a box of cereal with pieces shaped like patterns from Conway’s Game of Life.

(more…)