Subscribe: NetFlings Developer Blog
http://geekswithblogs.net/davidl/rss.aspx
Preview: NetFlings Developer Blog

NetFlings Developer Blog



What does not kill me makes me better (yeah right)



Copyright: David Lattimore-Gay
 



Debugging

Mon, 01 May 2006 21:03:00 GMT

Originally posted on: http://geekswithblogs.net/davidl/archive/2006/05/01/76900.aspx

Check out the new capabilities in VS 2005

http://msdn.microsoft.com/msdnmag/issues/06/05/BugBash/default.aspx

 

(image)



Hedge Fund's and Integration

Fri, 24 Feb 2006 11:14:00 GMT

Originally posted on: http://geekswithblogs.net/davidl/archive/2006/02/24/70598.aspx

With any buisness solutions these days, it requires the integration of multiple vendors, services and products, Hedge funds are no different.  I have now worked for Hedge Fund Administrators (Citco), worked with Hedge Fund Administrators (globeop) and had dealings with a number of prime brokers ( Goldman Sachs, Morgan Stanley, Bank of America to name but a few ) and also those all important order entry systems, Bloomberg, TradeWeb , Kondor, and others.

Each of the above have their advantages and disadvantages, which is not the subject of this post, all of them have one thing in common, they stand alone, as products and services, i.e. their connectivity is limited or non existant between them.

So, a day in the life of a hedge fund on the operational side (approx and no comment here on trading stratgey, analytics, etc ) is as follows

1. Trade is booked into an Order Entry System, there may be multiple order entry systems, depending on the product mix of the Hedge Fund and the capability of the products being used.

2. Orders are submitted to Prime Broker where appropriate, there may be more than one prime broker involved.  If no Prime Broker, then need to deal with the Dealer's directly.

3. Orders are submitted to a Fund Administrator, like Citco, or depending on the needs of the hedge fund there may be multiple Fund administrators involved, for example think Managed Accounts.

4. End of Day, each system that has a record of the trade needs to send enough information back out so that each system can the reconcile between each other, this activity is usually thje responsibility of the Hedge Fund, not of the ssystems/products that you are using.  This is crazy

So much of my day to day life is spent discussing file formats with each vendor, and testing the process, i.e. generating the data, deliverying the data, and reconcilling the data, and for each system you interact with it is the same process.

I have seen FPML file formats, all kinds of delimited text files, even Database dumps from systems.

Each vendor assures me that they are trying to improve the process, i.e. some are looking to offer Web Services as a way to deliver information, others are wanting to standardize on FpML format, and others are just trying to keep up with the volume of clients that they are servicing.

What it sounds like to me is that there should be a service offering that removes the integration effort from the Hedge Fund, more to come ... 

 

 

(image)



PDC 2005 Keynote

Thu, 15 Sep 2005 00:36:00 GMT

Originally posted on: http://geekswithblogs.net/davidl/archive/2005/09/14/53877.aspx

The atmosphere was electric, charged by the thumping of rock/rap and dance music. The audience sat with anticipation as they waited for the Keynote to start. The lights dimmed and a hushed silence swepted across the audience, as we where now only seconds away from the entrance of the man himself.

Bill Gates entered with a thunderous applause from the awaiting audience, the PDC had now official started. Check out the KeyNote online at PDC 2005 KeyNote

Bill gave a quick history lesson, where we were 30 years ago, when Microsoft first started, and now where we are today. When you compare it is amazing the progress that has been made in such a relatively short period of time, about half a developer’s career. Very impressive. He thanked the audience for their continued support of the .Net platform, and even went as far to say that the .Net framework is the most popular development environment today, (this I will take with a pitch of salt). A key comment in his speech was ‘Software is an Enabler’, to make the best usage of improvements in hardware and telecommunications infrastructure, software is a key element, as this enables users to make the most out of these improvements, better ways to communicate, richer user interfaces.

We got to see a quick demo of Vista, nothing blow away here, we have seen this all before, but still impressive when the 3d Task List was demonstrated. We also got to See a demo of the new Office 12 offering, the changes are manly user interface related, there is currently 1500 functions in the current Office product, most of which users never knew exist, so the new interface concentrates on making those functions more readily available.

Jim Allchin was the second speaker; he introduced some interesting things, AJAX, ATLAS and LINQ. AJAX and ATLAS are aiming squarely at providing much richer user experiences via the browser, some cool demos here. The more interesting topic is LINQ; the idea here is to provide tighter binding between the database and .Net, so ultimately you would no longer need to write SQL to access the database, and that this will all be done via your favorite .Net Language.

So what do we have to look forward to, Longhorn has been renamed to Vista, Avalon to Windows Presentation Framework, Indigo to Windows Communication Framework, so this is so far somewhat of a rehash from the last PDC in 2003, with a couple of juicy toolkits thrown in, but I will defer final comment until the end of the conference, as many of the session look very interesting. Tomorrows Keynote will be interesting.

A couple of additional items, it was good to see that subtitles where provided, in real-time. The audience is still very male dominated, whilst there are women in the audience, it is a small fraction of the overall attendee population, and this I hope in future PDC’s will change.
(image)



XP & Hedge Funds

Tue, 19 Jul 2005 22:02:00 GMT

Originally posted on: http://geekswithblogs.net/davidl/archive/2005/07/19/47697.aspxMuch of my work these days is with small to medium sized Hedge Funds, and I have been using a subset of the 12 XP Practices check http://www.extremeprogramming.org/rules.html for a more detailed view of these practices. I would like to share which of the 12 are being used, and the value that it has added to the business. Small Releases. An important aspect of working with the client, is to provide continuous feedback to the users, this is necessary as it provides the client with visibility into the progress of the team, and builds confidence with the business that the efforts of the team are focused to the good of the business. We push out new releases into production on average twice a week, some of the changes are minor other fairly sizable, but each is an important increment of functionality that resolves a business need. Simple Design. The client has a small group of developers, with varied skill sets, so a key concern is that the design of the system needs to be understood by the entire team, so simple is good, as it allows full participation by all team members. The team participates on a daily basis with regards to ensuring that we all obey this practice. Refactoring. Once business functionality has been added to the system, we review and refactor, this has allowed the team to keep the code base small and compact and has allowed for additional requirements to be added very quickly with fewer defects. This has benefited the client, by the team being able to move quickly on many new requirements. Testing. We are using NUnit in conjunction with CruiseControl to allow for automated test sweeps of the system, each time a build is performed. Each programmer is responsible for developing the appropriate test suites for the components that they are primarily responsible for. Many of the tests that are run, correspond to the verification of analytical calculations, this is highly visible to the client, and the continually testing that is provided has built confidence with the business that releases are of a good quality, this being key when your business relies on the results of the analytical calculations. Collective Ownership. The team is collectively responsible for the system, there is a primary contact person for operational issues, this is only to aid the business users. All of the code belongs to the team, this has allowed the team to move very quickly, without impedance from external forces. The client sees that the team as a whole is responsive to business demands, and no one individual is seen as a bottleneck, or as a hero. The team is seen as the hero. There is a notable practice that’s missing from the above list and it is 40-hour Week. This is one of the XP practices that is not followed, the reasons are many, primarily the team is very small, and acts as both developers and operational support for the business. The business will start to see a reduction in quality, as the system grows and more functionality is added and needs to be supported, more and more of the time that the team spends will be dedicated to operational support. Hence fewer new features will added with the same level of quality as they are today. This becomes a vicious circle that can only be broken by investing in additional resources that can provide the necessary operational support. Summary. The XP practices that we have employed at our Hedge Fund clients have allowed the client to start seeing results within the first two weeks, and continue to see results on a regular basis. This has built confidence with the business that has allowed a very good working relationship between the IT staff and the business users, there is trust and mutual respect that re-enforces the relationship between the two groups. [...]



Yet Another Space

Fri, 24 Jun 2005 17:03:00 GMT

Originally posted on: http://geekswithblogs.net/davidl/archive/2005/06/24/44647.aspx

check me out at MSN Spaces A different slant on my job (image)



Smart Client and unmanaged Dll's Part II

Thu, 19 May 2005 20:34:00 GMT

Originally posted on: http://geekswithblogs.net/davidl/archive/2005/05/19/40056.aspx

After some thouht, I have come up with a solution that works very nicely in the environment that I am currently working in. 

DETAILS TO FOLLOW

(image)



Smart Client and unmanaged Dll's Part I

Fri, 13 May 2005 18:39:00 GMT

Originally posted on: http://geekswithblogs.net/davidl/archive/2005/05/13/39624.aspx

I love the smart Client ability in .Net where I can deploy full scale managed applications over the web.  But in some of my more recent .Net applications I have found the need to integrate with legacy unmanaged code, in most cases this unmanaged Dll's are Excel Addins that I want to reuse in my managed world.  But try as I might I am unable to find any reference on the web to how I might avoid the need to install the unmanaged dll's thru a installation application before I make my app available, and I do not want to tell my users, 'By the way before you can use this you need to install this stuff'

So does anyone have any ideas or thoughts, or even code that would allow me to get the same benefit with unmanaged code, as I do with managed code, i.e. the ability to build smart clients that require no additional step for deployment of the unmanaged code?

Thanks

(image)



Something Completely Different

Tue, 12 Apr 2005 14:47:00 GMT

Originally posted on: http://geekswithblogs.net/davidl/archive/2005/04/12/32622.aspx

I am an avid photographer, and have a Canon Digital rebel, which I love.  I may one day actually post some of my pictures here, but for the time being I am in awe of the following photographer  Rodney Lough Jr, check out his web site, the images are spectacular. (image)



Setting Dependancies between Services in Windows

Thu, 24 Mar 2005 23:04:00 GMT

Originally posted on: http://geekswithblogs.net/davidl/archive/2005/03/24/27223.aspx

I am currently creating a set of Windows Services in C#, that need to be loaded in order, for example, Service A needs to be running before Service B.  I notice that in the .Net framework there is a distinct lack of provision for achieving this in C#.  I see that I can use Interop and call the Win32 function, ChangeServiceConfig, but I have not found an example written in C# that allows me to set the Dependancies.

Has anyone got a code snippet / example that I can use, otherwise I have to write this myself, and I hate having to write this type of plumbing logic

Thanks

(image)



VB to C# Conversion

Tue, 01 Feb 2005 18:47:00 GMT

Originally posted on: http://geekswithblogs.net/davidl/archive/2005/02/01/21690.aspx

I am looking for a tool that will convert a legacy Visual Basic 6.0 code base to C#, has anyone out there know of anything that will help me in this task.

Any help would be appreciated.

(image)



First Week at Job

Fri, 21 Jan 2005 20:12:00 GMT

Originally posted on: http://geekswithblogs.net/davidl/archive/2005/01/21/20615.aspx

I have just started a new project, where I feel as though I have been transported back in time several years.  The project is using Visual Basic 6, Oracle 9i using a two tier approach, all of the buisness logic sits in the database hidden inside hundreds of stored procedures, and the Visual Basic Code is well, visual Basic.  I say this after several projects where I have been using .Net and N-Tier approaches to application archetecture and development, so have become accustomed to a more sophisticated approach to application development.

There are changes a foot, i.e. converting the VB Code base to C# and cleaning up the database access layer, so that much of the code will be replaced with ADO.Net, reducing the code base significantly, as far as the Oracle database, not sure what will be done there yet.

More to come

(image)






.Net and J2EE

Wed, 12 Jan 2005 03:11:00 GMT

Originally posted on: http://geekswithblogs.net/davidl/archive/2005/01/11/19753.aspx

I have started to review the functionality that the Janeva production from borland offers, has any one out there deployed Janeva out into a production environment, if so can you share ?

 

(image)



Is the Singleton Question such a difficult one to answer

Thu, 30 Dec 2004 15:59:00 GMT

Originally posted on: http://geekswithblogs.net/davidl/archive/2004/12/30/18849.aspx

I do a lot of interviewing in my role, and one of the first questions I ask when interviewing a candidate is

What is a Singleton?

Most candidates get it right, A class where only a single instance can be created, if the candidate does not get the right answer, I explain what it is, as not eveyone is a pattern geek, even though this is one of the most common and well known patterns.

What I ask next, is to provide a minimal implementation, in the language of choice ( most cases its one of the following, Java, C# or C++ ), now this is where it starts to get interesting.  The following is an example of one recent candidates answer, they wrote this on the board with a straight face

class Singleton {

public int count;

}

This caused much discussion between the candidate and myself, obviously they did not understand anything about the C# language at all, and the concept of a private constructor was completly foreign, I then had some fun for the rest of the interview watching the candidates facial expressions as I asked more simple questions, about his implementation.

FYI

Nice Solution to the Singleton question using C#

(image)



DataSet's .Net, Java and Hibernate

Wed, 29 Dec 2004 13:55:00 GMT

Originally posted on: http://geekswithblogs.net/davidl/archive/2004/12/29/18737.aspx

I will be starting a new project in the near future, that will most likely be a mix of Java and C# technologies.  As with many projects recently, the lure of rich user interfaces, that operate well on the Windows platform, has prompted many projects to go with a .Net Presentation layer, and leverage an existing/robust J2EE backend.

Given this new bred of mixed technology development, the use of an Service Oriented Archtecture suites this paradym very well, offer up Web Services ( implemented in J2EE ) to the Gui, and you are off and running.  A C# Gui, can be just pointed to the WSDL and the appropriate pumping code will be written for you, and you are blisfully unaware of the fact that the GUI is using a WebService.

The DataSet in .Net rocks, it provides so much functionality for free, that it makes it the prefered data transport mechanism between the presentation layer and the buisiness layer, when dealing with a pure .Net technology stack then DataSet's are the way to go.  The question now is how does loved C# class fit into the Mixed technology SOA.  J2EE does not have a direct binding to this type, and hence code will need to be wrtitten, if this type is to be incorporated into this environment.  Is it worth the effort I ask. ( Comments welcome )

Hibernate is a java framework providing Object Relational Mapping, this is part of the EJB 3.0 specification now, and there is also a .Net version called NHibernate, so is it better to just consider using POJO's and PONO's (Plain Old Java Objects, Plain Old .Net Objects)

Still thinking about this at the moment, so have not come to any conclusion myself, part of my bias towards DataSet's is their flexibility when it comes to binding the data to UI Controls, like the Data Grid, which is the cornerstone of pretty much all User Interfaces these days.  But I can also bind Arrays of PONO's to a DataGrid as well, but I loose the relational aspect of the DataSet, that provides me with drill down functionality with minimal of effort.

As mixed technology projects become the norm, rather than the exception, there will be, I hope, a growth in the appropriate glue technology that allows the two technolgies to talk to each other.  WebServices is a start, but lacks some of the functionality required to build trading systems, i.e. Realtime data feeds direct to the desktop ( this requires push, not pull ). Janeva is another technology that allows C# objects to talk directly to J2EE objects, this is acheived by providing an alternative Remoting implementation that supports this communication ( worth a look ).

More to come later .....

 

(image)