64 bit Windows: WTF: 64 bit dlls live in System32 dir, 32 bit dlls’s are in SysWow64

June 30, 2008

Here at Buildmasters, we have now moved all our development vm’s and other servers to 64 bit editions of Windows.

The 4GB memory limit is gone, and no more recycling IIS app pools and running out of virtual memory.

One thing to note however: The \System32 directory contains 64 bit dlls, and the legacy 32 bit emulation dll’s live in the \SysWow64 directory.

The is all done for backwards compatibilty, but it is very confusing.

Have a look at http://en.wikipedia.org/wiki/WOW64
for more info.

SqlServer2005: Move From TSQL To SQLCLR And Save Your Project

June 24, 2008

Many organisations have lots of business rules in TSQL stored procedures.
You’re right, that’s crazy but that’s what we see all the time, and our current project in Sydney, Australia using the Eagle PACE product is no different. Eagle PACE is an Opertaional Data Store for the financial services industry, in our case the Funds Management sector. At it’s heart is an enterprise database with a relational data model appropriate to the industry, and is surrounded by data feed mechanisms which in basic terms are a series of Stored Procedures.

Whilst a TSQL stored procedure is good for simple logic, eg stringing together a couple of selects and inserts, it is simply not up to the task of handling complex business rules and workflow.

I would say that a TSQL stored proc of more than 200 lines is just to complex to debug, enhance and test.

TSQL falls short in the following areas:

1) Code reuse.
There isn’t any.
No classes, no rowtypes, no inheritance of stored procs or functions.
No way to encapsulate functionality - the only way is, that’s right, you have to write another stored proc and have nested calls - yuk!
Absolutely awesome when you have 133 parameters to pass around.
[Dont laugh - we have this many parameters and more in the stored proc interfaces we have to maintain] Read more

Eagle PACE Development

June 21, 2008

The Buildmasters development Team has two years of Eagle PACE development experience having built the Operational Data Store (ODS) components of a massive front and middle office change program at one of Autralia’s biggest funds management companies. We have applied our Continuous Integration and SCRUM development methodology to great effect, delivering an incredibly robust solution, which includes over 1000 unit tests and a build/deploy environment that compiles, tests and deploys our solution on average 10 times a day.

This implementation of Eagle PACE involved over 80 data interfaces between the ODS, the internal trading, performance and rec systems, external data providers (Charles River, Bloomberg, Factset, S&P) and our outsources back-office service providers (one in Sydney and one in Shanghai).

We have refined the development of Eagle PACE uploader and exporter components to reduce lines-of-code and provide a robust suite of unit tests to ensure effective QA. We have also built a comprehensive ETL framework, allowing us to build generic re-useable interfaces to Eagle PACE.

Though the project has been a considerable challenge due to complex requirements and dependencies, the resulting system is now running in production 24/7 processing market data, portfolio positions and transactions and security details for an increasing volume of investment portfolios.

Custom Development

June 19, 2008

Custom Web and Windows application is our bread and butter. Each of our consultants has over 10 years of experience in the many areas of software development, specializing in the Microsoft technology stack (.Net, SQL Server, SSIS, SSAS) as the core and utilizing numerous open source tools around the periphery as part of our ‘Continuous Build and Deploy’ approach.

Perhaps the most important aspect of our development approach is our ‘Keep It Simple’ principle. Adhering to this has enabled us to deliver supportable and maintainable solutions over and over again.

Our toolset allows us to deploy a team in-house with our clients and be productive within hours, or operate offsite and deliver daily releases that can be tried and tested by the client in a shared ’Integration’ environment.

Our ability to integrate continuously via regular deployments of unit tested code are at the heart of our methodology - read more here

 If you would like to discuss your development requirements with us, complete our CONTACT FORM.

 

My cool new box

June 18, 2008

I’ve recently upgraded my main box to this quad core 8G ram triple raid 0 hd bling beauty.
It features a 36cm side fan that pumps in heaps of air to keep temperatures to around 40C.
It’s suprisingly quiet too, as the video card and power supply are fanless.

the beast

But cool hardware is useless without an awesome operating system. My OS of choice is 64bit Debian GNU/Linux Lenny - it’s super easy to install, has the best package management out there [apt], and IMHO is the real developers’ Linux distribution [ok with the possible exception of Gentoo which is sooo awesome I must admit]. Windoze development I do in developer image vm’s powered by vmware and kvm. [Other posts on this blog will discuss developer vm's].

compiz rocks

The screenshot shows my compiz-fusion 3D OpenGL desktop, with digital tv playing on the left and a Martika video playing on the right face of the 5-workspace cube. Also note the sharks and dolphins swimming in the center of the cube.

Scrum Secret #1 - take the furniture out of the office

June 16, 2008

Having your daily scrum stand-up in a dev team “scrum room”  has its advantages.

You can be more honest and talk more openly, have robust discussions and generally not have to worry about being overheard, as well as use of a whiteboard for planning sessions and nutting things out.

In our experience, dev teams tend to lose their office first, as competing business teams and managers are almost always deamed to be more “important” than the dev team.

So we have some simple psychology for keeping your scrum room - take out the furntiure. That’s right - have the office empty, no desks, no computers, nada. Even better, put in a couple of empty computer boxes in there for effect.

We are currently working in a very busy office, yet we have kept our scrum room for several months so far, and no one has challenged our use of the room, yet in the adjoining office we have seen a rotatiing door of occupants come and go.

Stay tuned for more scrum secrets.

The solution to sibling rivalry!

June 15, 2008

This certainly isn’t the first time anyone has mounted a video camera to an RC car and taken it for a spin, but the new system from Fat Shark to do so is certainly the most comprehensive yet. A set of wireless VR goggles provide the display, and there’s a built-in accelerometer in the goggles to control the tilt and pan of the camera installed on the car. You can buy the system with the car, or purchase the components separately to hook onto a plane or for some other nefarious purpose. No word on price, but we would’ve traded our NES and two good tubs of Legos for a shot at this growing up. Somebody has to keep that up-to-no-good sister of ours and her dastardly playmates in check. Video is after the break.

Quality Assurance - QA all the way!

June 15, 2008

I am amazed at how often organisations will not place a strong enough focus on QA. For the small amount of time spent on this task there are a number of major benefits. These include:

  • Bugs can be found earlier, where it is much cheaper and quicker to fix them
  • It is easier to enforce coding standards to give the code base a common style and pattern usage.
  • Poor programming techniques or inadequacies such as not sufficient unit tests can be fixed earlier.

Whilst it is probably a good idea to not go too overboard with extremely strict QA enforcement, I believe that every line of code developed should be reviewed, or walked through with someone other than the developer of that code.  To help with this goal, our SRUM methodology again comes in very handy. This is due to the short 2 week sprints in which we develop. It means QA’s are occuring frequently thoroughout the development cycle, and prevents it all having to occur at then end, with the various issues that that entails.

Software Coding Standards

June 15, 2008

Coding standards are a very important aspect of software development. Coding standards is not just about naming standards, but also includes using a standard pre tested and robust set of common core libraries, where appropriate using simple tested and tried design patterns, and quality control, to ensure standards are enforced.

Some of the main benefits of using set of coding standards, is to improve the quality of software delivered and uniformity of code which assist with maintainability. It is often said that if you cannot tell who has written code in an applications code base then that is a good start. Defining standards early, appropriate to the specific project and software and tools used, is important to help reduce the amount of refactoring that will need to be done later in the project at a greater cost.

There are many pre-defined examples of coding standards, which can be used as a starting point for your own standards, applicable to your own specific project. Tools can assist in implementing standards, such as Resharper and to enforce these standards, such as FXCop.

Beyond Compare

June 15, 2008

In any serious development project you generally have at least two branches, (production support and development), of the code being worked on at once.  Branching and merging can become a real pain.  We use subversion and tortoise svn as out version control software that handles a lot of cases.  Sometimes the tortoise merge tool is not up to the task or developers just prefer the extra functionality in beyond compare.

Beyond compare make comparing files/folders a simple task and allows you to merge changes.  It is a must have tool and is also just as good comparing code or data files.

http://www.scootersoftware.com/

Next Page »