Archive for March, 2010

Open Sourcing REPTON for iPhone

Sunday, March 28th, 2010

Why not? Next question, what license? Since I have copyright on the whole thing, I can license as I like. Which means, might as well go with the GPL. But, it looks like there are some concern, so.

  1. Re-Read the Developers Agreement
  2. Re-Read the GPL v3 and v2
  3. Remember, I own the copyright on the whole of the source code
  4.  If nothing else, I would expect the BSD license would be fine
  5. Is the BSD considered an open license?

ActiveMQ

Thursday, March 25th, 2010

I am using ActiveMQ 5.x on my current project. Initial integration was quite easy. Getting a broker running and some messages going around between a few clients took several days, much of which had to do with groking Spring configuration rules. I have to say Spring is pretty nice. But the initial ease with which I had request/reply messages being dispatched to Competing Consumers belied the rapidly increasing complexity of the system. Since it was so easy to get three clients and two services running, we loosened our design and now have nine different services and five clients. Six queues have become something like 22. It is still invigorating to  have the system work, but of course when it doesn’t work diagnoses is rather more challenging.

Initially global setting were enough for timeouts and prefetch and queue memory size, but no more. Now the work is in getting regression tests running. I should look at the test suite in ActiveMQ itself for ideas on setting up multiple machines for inter node tests.

Prefetch is one configuration item that needs to be per channel.  CompetingConsumers need a prefetch of 1 to work. Most of the other channels should be between 10 an 1000 I would think.

Timeouts is another one to think about. You don’t want to long a timout, if the request is going to fail then better to get it over with so appropriate action can then be taken.

Today I am having trouble understanding the behavior of a topic with producer flow control. One producer is getting block due to a slow consumer, but killing the consumer does not seem to end the block and I don’t know if it is a bug or correct behavior, or if there is yet another configuration option to consider.

DG after 6 months

Wednesday, March 24th, 2010

I have been working on a DARPA project for the last 6 months, and am really enjoying the work. We have a very cool client application that takes speech and sketch input and does semantic recognition. The client enables real-time collaborative editing.

Netperf on OS X

Wednesday, March 24th, 2010
[drew@g5]$ ./configure --prefix=/Users/drew/sandbox/netperf/install --enable-histogram --enable-unixdomain

[drew@g5]$ make

[drew@g5]$ make install

[drew@g5]$ ./netserver -p 9999 -4 -v 1

[drew@g5]$ ./netperf -p 9999 -L localhost,inet



[drew@g5]$ ./configure --prefix=/Users/drew/sandbox/netperf/install  --enable-unixdomain=yes

[drew@g5]$ ./netperf -f G -p 12865  -t STREAM_STREAM -d -- -s 100000 -S 100000