Saturday, April 28, 2007

CASTrader Blog

Came upon this while following blog links:

http://www.castrader.com

(Chris, you probably know about this one already...)


©2007 Marc Adler - All Rights Reserved

Any impressions of the Microsoft FinDev Conference?

I was on vacation with the family this past week, hiking in Moab (Utah), Ouray (Colorado) and the Great Sand Dunes (Alamosa, Co). Therefore, I sadly missed the Microsoft Financial Developer's Conference.

Anyone care to leave their impressions of the conference?

©2007 Marc Adler - All Rights Reserved

Airplane Boarding and Messaging

Interesting discussion on Marc Jacobs' blog on the airplane boarding process and some parallels to distributed programming. Also, one of the commenters on the blog gave this link:

http://www.math.duke.edu/news/awards/MCM2007lmw.pdf

At the airport, I always fantasize myself with a Jedi light sabre in hand, lopping off the heads of those people who block the aisles for ten minutes, trying to shove some ridiculously-sized carry-on into the overhead bin.

Of course, my solution is to equip everyone with their own private jets, ala The Jetsons. However, the New York Times threw cold water on this idea.


©2007 Marc Adler - All Rights Reserved

The Boss and Blogging




©2007 Marc Adler - All Rights Reserved

Friday, April 27, 2007

KDB+ Architect Needed

I need a KDB+ architect to work in my group. Please email me at magmasystems at yahoo dot com if yiu are interested.

©2007 Marc Adler - All Rights Reserved

Wednesday, April 25, 2007

Finetix and Sungard - It's Official

As pointed out by Matt:
http://biz.yahoo.com/bw/070425/20070425005824.html?.v=1

Funny thing that no comments from the owners of the acquired company was made in the press release, going against the tradition of each party stroking eachother's backs.

This acquisition harkens back to the 2001 buyout of PriceWaterhouse Consulting (PWC) by IBM Business Consulting Services (BCS). The consultants of PWC were paid about 40% more than the equivalent consultants at BCS. Immediately, many of the PWC consultants experienced "downwards salary adjustments". For several years after that, the BCS consultants got no merit increases, nor did they get anything that resembled a bonus. Many of the best PWC consultants left.

I know for a fact that SunGard does not pay the same excellent salaries that Finetix paid. (I have been contacted many times by recruiters for product and project management positions at Sungard, and the total comp was about 2/3 of the Finetix comp.... maybe the technical consulting positions pay better?) It will be an interesting next few years for the Finetix employees that decided to stay with the new SunGard organization. I know that, when I was hiring for Finetix, I received resumes from a number of people who were employed by SunGard. I cannot help but see how this cycle will not repeat itself.

Best of luck to all of my old colleagues from Finetix! You know where to reach me. My group has a number of openings.....

©2007 Marc Adler - All Rights Reserved

Thursday, April 19, 2007

Resharper Suggestions from a Colleague

From a colleague...

(from Tim)

- A way to split all the classes in a file into their own files (e.g. I’ve refactored one class into several, I’m happy with my new class hierarchy, and I want to now make sure I have one class per file)

- A way to copy XML documentation from the base class or interface (it will do this if you ask it to implement interface members, but after that you have to copy & paste)


©2007 Marc Adler - All Rights Reserved

Wednesday, April 18, 2007

TopCoder.com

A Thoughtworker who is with my group was saddened to find out that, for some reason, Google Code is blocked by our corporate firewall. I suggested that, in addition to the usual suspects, he check out the software at TopCoder.com.

There are more components and apps written for Java, but the .NEt world is well represented on that site.

I have also heard that some of the financial companies are starting to recruit from TopCoder. It's a good way of examining a candidates coding technique and architectural insight. It's a better way of screening a candidate, rather than going through the same old "Describe Polymorphism to Me" questions.

©2007 Marc Adler - All Rights Reserved

Help Improve Resharper

Jetbrains is soliciting feedback and feature requests for their next version of Resharper. Fill out the questionaire here

Off the bat, I would like:

1) A way to tell Resharper to fix an entire file in one fell swoop, without having to navigate to each error or warning.... especially when resolving Redundant Qualifier warnings.

2) A way to Encapsulate all local variables in one fell swoop without having to navigate to each variable, right-clicking, and choosing Encapsulate Field.




©2007 Marc Adler - All Rights Reserved

Thursday, April 12, 2007

Sunguard Consulting Services

People have been coming to me with news of a new consulting company ... Sunguard Consulting Company (I thought that Sunguard already had a consulting company).

Looks like Chris Conte saw some value in my old employer, and made an offer. But, according to my various sources, the only catch is that 50% of the consultants have to stay in order for the deal to go through.

Are Lab49 and Infusion next? They would certainly make a tasty snack for Larry Ellison.


©2007 Marc Adler - All Rights Reserved

Wednesday, April 04, 2007

Street#Grid

Anyone going to the Street#Grid conference on April 16 at the W Hotel in New York City?

Maybe meet up for a drink afterwards?

©2007 Marc Adler - All Rights Reserved

QuickFix and Parsing

I am amazed that, in the .NET API that QuickFix offers, there is no method or MessageFactory that will take an arbitrary FIX string and return a FIX message object of the proper type. Am I missing something?

I believe that FIX4NET has this functionality, but they do not support FIX 4.4.

We have to petition Mike Roberts to get a .NET version of the TTConnect FIX Engine.

©2007 Marc Adler - All Rights Reserved

Sunday, April 01, 2007

Solution: QuickFix to Enums

To convert a QuickFix type that has const int's or const char's that represent values into a enum, you can do this:



        static public Type EnumOrdType = new ConstCharsToEnumCreator<OrdType, char>().Convert();


        static public Type EnumProduct = new ConstCharsToEnumCreator<Product, int>().Convert();




Now, if we want to fill a combo box with the values of these objects,


            this.cmbOrdType.Items.AddRange(Enum.GetNames(OrderBO.EnumOrdType));


            this.cmbProduct.Items.AddRange(Enum.GetNames(OrderBO.EnumProduct));




The definition of the helper class is:



    public class ConstCharsToEnumCreator<TQuickFixType, TEnumBaseType>


    {


        static private AssemblyBuilder m_assemblyBuilder;


        static private ModuleBuilder m_moduleBuilder;


        private EnumBuilder m_enumBuilder;


        private Type m_createdEnum;


 


        private Type m_typeThatHasConstChars;


 


        public ConstCharsToEnumCreator()


        {


            this.m_typeThatHasConstChars = typeof(TQuickFixType);


 


            if (m_moduleBuilder == null)


            {


                CreateCallee(Thread.GetDomain());


            }


        }


 


        public Type Convert()


        {


            CreateEnumBuilder();


 


            FieldInfo[] fields = this.m_typeThatHasConstChars.GetFields();


            foreach (FieldInfo field in fields)


            {


                if (field.IsStatic && field.IsLiteral && field.IsPublic && field.FieldType == typeof(TEnumBaseType))


                    m_enumBuilder.DefineLiteral(field.Name, field.GetRawConstantValue());


            }


 


            m_createdEnum = m_enumBuilder.CreateType();


            return m_createdEnum;


        }


 


        private void CreateCallee(AppDomain myAppDomain)


        {


            // Create a name for the assembly.


            AssemblyName myAssemblyName = new AssemblyName();


            myAssemblyName.Name = "EmittedAssembly";


 


            // Create the dynamic assembly.


            m_assemblyBuilder = myAppDomain.DefineDynamicAssembly(myAssemblyName, AssemblyBuilderAccess.Save);


 


            // Create a dynamic module.


            m_moduleBuilder = m_assemblyBuilder.DefineDynamicModule("EmittedModule", "EmittedModule.mod");


        }


 


        private void CreateEnumBuilder()


        {


            // Create a dynamic Enum.


            string enumTypeName = string.Format("{0}.{1}Enum", this.GetType().Namespace, this.m_typeThatHasConstChars.Name);


            m_enumBuilder = m_moduleBuilder.DefineEnum(enumTypeName, TypeAttributes.Public, typeof(TEnumBaseType));


        }


    }





©2007 Marc Adler - All Rights Reserved