Wednesday, February 2, 2005

Update time

I've not updated in a while, because I've not really felt like it. I've been incredibly busy, kinda broke, and in a snow coma.


My generally busy state is a result of the annual zero1tek/TSG financial crunch in January (tax time, and many of our clients roll over their financial year - so we have to work extra hard to get ANY money in), and a new project. The new project is 99% finalized now, so I can talk about it. I'm a 50% partner in Thoth Data Systems, LLC, a software development company specializing in n-tier line-of-business apps. Our first clients are in the mental health industry (Horizons), but the system is flexible enough that it could apply to almost any client document tracking and billing system. I've been doing a lot of the back-end programming in my own time, so as to minimize what we have to pay once the company is final, and minimize time-to-product for our clients. Currently, I have a system that:


  • Runs under Linux (with Mono) on the server, using MaxDB (formerly SAPDB) for the database.
  • Uses my Persist.NET (which may have to change name, someone released a product with that name before I could get mine out) library for abstract database access, straight into business objects. One-To-One, One-To-Many, Many-To-Many, Hashtable/Dictionary/SortedList collections, optimistic locking, and thread safety are all working properly now. It'll be on Sourceforge and CSharpNinja.com as LGPL, very soon.
  • A remoting sink system provides transparent syncrhronous Rijaendel (spelling?) encryption between client and server with rotating keys, and asynchronous encrypted key exchange.
  • A generic "Business Process Objects" system lets us write modules for a generic server that can be loaded, unloaded and replaced in realtime without stopping clients - and without changing client code.
  • A generic scheduling system lets business processes run on a schedule at the server if required, rather than at a client's request.
  • A two-part validation engine that performs strict validation at the server, and loose validation at the client before saving anything. Basic validation rules are stored in an XML file, generated from Persist's configuration.
  • A generic GUI system that loads/displays components based upon a client's access rights.
  • (Incomplete) a LaTeX-based reporting system that spits out clean PDF files.

So, as you can see, I've been really busy! I'm working with Steve (partner in Thoth) to see about open sourcing as much of our base technologies as possible, and documenting what I've created in howto-guides on csharpninja.com. We don't have any huge secrets here (we mainly sell expertise customizing software, implementing specific processes, and consulting), so we're an ideal candidate for an open-source friendly company.


Snow coma is my term for what happens when it snows: I sleep.


I picked up Knights of the Old Republic for $20. I'm about 8 hours into it, and so far - it's the best RPG I've played since Deus Ex. Very well executed (even if it is Baldur's Gate in Space), engagingly written - I like it. I've also been playing Temple of Elemental Evil - I think I run it better, but it's a lot of fun. With the latest patchset, it's even stable!
Mood: happy
Music: None

No comments: