[Baypiggies] discrimination etc

Roderick Llewellyn roderick at sanfransystems.com
Sat Jun 6 23:44:57 CEST 2009


Thanks everyone for your warm replies. Perhaps I exaggerated the case with regard to the Keas posting and may have over-reacted. For that I apologize. Now if anybody knows of a good San Francisco position lol .....
I'm trying to modernize my skills, like learning Python, Pylons, MySQL, better my Linux skills, Apache, etc. I've only been studying Python since Apr 24 (that's when I downloaded it anyway) but have quite a bit of working code now, several thousand lines for sure. I've made a few things since that date (all related to the FIX - Financial Information Exchange protocol - see http://www.fixprotocol.org for more about it - in brief, it's an industry standard for communicating securities exchange messages, such as orders, fills, etc - it's much hairier than you might at first think - for example, an order message has over 100 possible fields), all the following stuff written in Python unless otherwise stated:
1. I read in a formal XML based description of the different versions ("dialects") of the protocol, the XML files are those published on the official site.
2. I can parse a FIX message in "wire" format into data structures, i.e., Python classes, guided by the dialect definitions.
3. I can generate a FIX message similarly.
4. I have an HTML generator which uses the dialect defs to create a form for every message type (there are dozens) [but the generation is automated] - you can then enter in values for any or all fields. Fields are partially validated. An interesting twist is that certain fields belong to "repeating groups" which can, well, repeat ... and of course some groups are nested. Their semantics is tricky. My HTML app allows you to insert, delete repeats, move them or exchange them for other repeat instances. The app runs under Apache, using CGI at the moment. This was my first use of Apache.
5. I have a PyTrader simulated trading application. This application lets you enter in a simple buy or sell order thru a command line, for example, "B 100 IBM 23.45" means "buy 100 shares of IBM common stock at a price of $23.45". It then creates the appropriate order message, and sends it to a running instance of a commercial FixEngine (a FixEngine is an application server which is specialized around dealing with the hairy FIX communications protocol - FIX does not assume TCP/IP and does not assume reliable delivery... I was one of the authors of the FIX engine, which is in Java - sockets are used to communicate with it)... meanwhile the Engine sends the order to another Engine (which represents the Broker), which sends it to a Broker simulator app (a pre-existing Java app which comes as a sample with the FixEngine), which sends back 2 fills ("ExecutionReports"), which come back down the pipe to the trader simulator. The trader side logs everything in MySQL, the orders it sent and the fills received. This was my first use of MySQL. The app also allows simple retrievals, for example, typing at its command prompt "C ORDER0010" will retrieve the "order chain" (orders and fills) for those who order ID = 'ORDER0010'.
6. By way of learning Pylons, I am converting the HTML app to use it. I got Pylons to run under Eclipse - I can use Eclipse debugger to set breakpoints in my Python code running under the Pylons web server ("paster")!!!
That's been my last 1.5 months... while still playing a fair amount of World of Warcraft....
Resume provided upon request!!!

It was great to meet the various Pyggies. I will be coming to all meetings I can, you're a great group! I hope to catch Spamalot too. - Rod Llewellyn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/baypiggies/attachments/20090606/d7bb55c0/attachment.htm>


More information about the Baypiggies mailing list