True, an OSS project *with that management* would have still been a disaster. The thing is, if it was an OSS project there would have been a lot less gravy floating around for the consultants, and that in itself would have meant better management.
If you have too much of something, you don't tend to take as much care of it then if you have a little. I waste water all the time - shower, cook, drink - it just comes out of the taps. Except the day the pipes burst and it stopped. Then my water usage was much more carefully managed by me.
An OSS project doesn't have that kind of cash to give out, or, if it does, it doesn't get handed out like it does in traditional projects. The consultancy doesn't get to be as big as part of it, and that's where the waste occurs.
Still, we can only hope the management are all sacked and better ones put in place.
Do you think big pharma was capable of creating a virus in 1918
given the amount of research that went into chemical weapons back then, I'd have to say yes. Some people might even say the H1N1 virus was a bio-weapon accidentally let out, but they'd be conspiracy nutters:)
true, but there's nothing to stop the journalist verifying the leaker, and then using the 'published' documents directly from the wikileak site. If the leaker doesn't want to be known to the journalist, I suspect every reputable one would have nothing to do with the leak - they want to be protected against being manipulated themselves (or their editors do!)
Yup, but I give it 6 months before the anti-trust lawsuit starts up again and MS is forced to put a 'which brow^H^H^H^HOffice suite do you want to use' the first time you try to run it.
(and have you noticed how they keep trying to force their stuff on you, I installed MSN, and the excellent apatch to remove the really annoying ads, and it pops up a dialog saying 'set Bing as your default search provider and prevent other programs from altering this'. I'm not sure I like that.)
They are ignoring OO.o, this is solely a reaction to Google Docs. See, Microsoft knows its traditional business models of selling bucketloads of Office is on the way out, and they *need* an opportunity for growth (or the shareholders will get even more pissed at them, and Ballmer will not get his bonus... well, won't get as big a bonus as he wants).
So, they see Google just doing what Google does, and making some money from adverts and they see the Google shareprice, ans they think... lets combine the 'cloud', adverts and MS Office and the combination will of course be the perfect storm of money making wonderment. Which, of course, it won't be.
If Google sold Docs so you could run it on a VM inside your corporate firewall, I think they'd destroy the market for Office. Presumably MS are working on this (Sharepoint services for Office or somesuch) that will be taken up, but this current offering is just going to be a footnote on the internet like all the non-Messenger Live tools.
but surely at 2.7K, it wouldn't take much for hydrogen to condense on any surface. To bind to those oxygen molecules would require some heat that just isn't present, not at 2.7K.
Earth is 70% water or so, so that would require one hell of a lot of asteroids handily coming along - like a sorcerer's apprentice of water buckets. I would think water just forms along with all the other complex molecules the earth's made of, and then it floats to the surface where we can see it. Nothing magical about the earth being a block of rock that required outside intervention to make habitable at all.
BTW, IANAAP (astro-physicist), so the above may be complete tosh.
So true, we had a tight deadline, so the boss brought in a couple of cheap offshore workers to assist us, after all +2 bodies meant we'd get it all done that bit quicker. No. I personally had my project extended by 2 weeks simply because they were so incompetent. Add ignorant, inexperienced and unskilled workers and you *extend* the time required.
Managers need to read that Mythical Man-month book again (or be slapped about the head with it until they're harmless).
If the majority of businesses in America were driven by long term result driven reward, only a tiny fraction of CEOs, directors, and managers would be employed today. As is, these failures are constantly rewarded and advanced.
amen. We wouldn't have the economic crisis either, but said managers/bosses wouldn't have been able to award themselves huge pay either. Ultimately the message is 'forget doing a good job, become a manager and award yourself a big bonus'.
As a religious non-Java programmer and a devout Java basher, I'll shoot down the "Not suitable for nuclear reactors" thing
you missed my dig at the Java EULA then.
I also doubt there was a database used in this app, relatively speaking a traditional DB is a terrible performance bottleneck. This kind of app would utilise something different, possibly no sql involved at all.
Might I not suggest teak. whilst I agree its a beautiful wood, its also somewhat dodgy to come by. From the Independant:
TEAK
ORIGIN: Burma and Africa
USES: Construction and furniture
SUSTAINABILITY: Environmentally sound teak is hard to come by. Burma is the only country that still exports teak from natural forests, mostly illegally. Buying anything from Burma provides its brutal military dictatorship with foreign currency. African teak is at risk of becoming endangered
ALTERNATIVES: For Burmese teak try FSC teak, or Jatoba in some cases. Good substitutes for African teak are FSC Favinha, Guariuba and Tatajuba
Partly its a performance issue, partly a reliability one.
The.NET solution didn't scale enough to handle the trading volumes last year, which brought the entire system down. That cost them a lot of money. A lot. More than you can count. Possibly more than you can imagine, just for 1 day of downtime.
The reliability problem was due to performance. As another/. poster says "They are talking about scaling up from 100 million transactions a day to 5-6 billion", so the.NET platform would not cope at all, but the MilleniumIT platform is already being used for larger volumes of transactions.
I'm sure the lure of total ownership is also enough to make this the killer deal, but that's not the overriding factor. Business continuity is.
If you pay enough money, you get access to anything in Microsoft.
Years back, a.com company I worked for had 'partner' status and paid a *lot* of money for support and stuff. We had a bug in COM, so we raised it with MS and they couldn't see the issue, so it got escalated. Apparently it was within a week of being brought to Bill G's attention before we realised it was our CTO's coding error that was causing it.
For something as 'strategic' as the LSE platform, MS would have been writing code for Accenture and showing best practices, and also running performance testing daily. We also had the use of a Microsoft lab for our perf. tests, including a Microsoftie to help us with anything we needed.
I can bet you $1000 that System.Collections.Generic.List will significantly outperform std::list on indexed access on lists of significant size
until you need to insert an element in the middle.... but that's exactly why you choose a list over an array or a vector - you don't choose a list because it has fast random access times.
Incidentally, you could use a shared_ptr and a vector to get the exact same behaviour of your C# list, including the same array-of-ptrs indexing, and the same cache misses for every object access. See, I can bet you a std::vector will outperform a System.Collections.Generic.List, as that's closer to the two collections you're comparing.
because, if you're going to write a trading platform that truly shows just how good.NET is, you'll want to get Microsoft to show you how. They wrote.NET after all, if they can't do it then no-one can.
so true.
In the end the Tradelect platform cost £40m. Buying the entire MilleniumIT company cost $30. note the currency symbols.
The TradElect system was originally developed by Microsoft and Accenture so it was to be a showcase of how excellent.NET was.
Unfortunately, other companies showed how good their stuff was for this kind of work, and MS showed that you cannot polish a turd.
(well, ok,.NET would have created a system that would run your line-of-business apps without problem, but when it comes to very high performance, low latency systems, its simply not suitable, a bit like Java is not suitable for nuclear reactors).
The new system will be written entirely in a lower level language, and MilleniumIT does use C++ - take a look at their jobs board and you'll see the only skill referenced is C++.
It doesn't take a rocket scientist to work out that a GC-based, VM-based language that has layers of intermediate execution is going to be slower than is required for a trading system. What I don;t get is that MS thought they could throw hardware at it until it worked. Don't forget that MilleniumIT also was bought for $30m which is roughly half what the.NET system cost (£40m).
The moral is that you don't want to use the simple-to-code MS platform when you can get a best-of-breed system, based on Linux and good engineering for a lot less. IT managers around the world should be looking at this and thinking what similar lessons their IT departments could learn.
You'll also find that C# doesn't do code generation at all, its the tools around it. Similarly, we've had lexx and yacc for so long I've forgotten how they work, but I know they too are code generation tools.
ah, but even if the right hand doesn't know what the left hand is doing... it will find out eventually, and then you can guarantee they'll take some form of action to stop the anti-corporate work being performed, and probably (knowing Microsoft's past business tactics) do something underhand and potentially illegal to "fix" the problem.
I put it down the the decline of Microsoft, I've been working as a MS dev for the past 15+ years, and since Bill left (a coincidence, I feel) the company has started a steady decline - wasting their money on frippery, attempting to get a new growth market, screwing with established systems in place of selling new stuff, and generally trying desperately to get your money off you. At least in the past, they were also focussed on making good technical stuff too.
sure, but this is a minor update - its like you're trying to run on a machine that has version A.999.0.0 but not A.999.0.1 installed. In this case the version 8.0.50727.762 has been increased to 8.0.50727.4053, and there's no WU for the end-user machines, only those with Visual Studio installed.
because it still doesn't work - I tried that to solve one problem with this update.
Loading dlls now requires manifest files which bind your app to a particular dll version (via some sort of guid), so once you've rebuilt your app, you have to ship the.4053 version of the CRT, ATL and MFC updates to your app's local directory. You might as well install them to the SxS dir, if you have to install them manually anyway.
They just replaced dll hell (which I never suffered from in all my 15 years of windows development) for manifest hell (which I've suffered from 3 times now). MS used to keep things very backward compatible (users may not have been so conscientious, but whenever I've rebuilt an app I rebuild all my user libs too so I don't have to bother being so careful, but MS used to do a good job so the CRT libs were never a problem).
You'll find the same issue will affect you, you'll see it if you try to build using (say).NET with a service pack, but the user doesn't have that update installed. Its only a poorly documented patch that doesn't have the redist package on WU yet, which is why this is such a problem.
With SxS assemblies, your app keeps linking against the old version of the DLL which might never get the patch
that's not the case. With this CRT/MFC/ATL patch, your app will not run at all unless the very latest patched libraries are present. You'll get an application configuration error before it even starts.
True, an OSS project *with that management* would have still been a disaster. The thing is, if it was an OSS project there would have been a lot less gravy floating around for the consultants, and that in itself would have meant better management.
If you have too much of something, you don't tend to take as much care of it then if you have a little. I waste water all the time - shower, cook, drink - it just comes out of the taps. Except the day the pipes burst and it stopped. Then my water usage was much more carefully managed by me.
An OSS project doesn't have that kind of cash to give out, or, if it does, it doesn't get handed out like it does in traditional projects. The consultancy doesn't get to be as big as part of it, and that's where the waste occurs.
Still, we can only hope the management are all sacked and better ones put in place.
Do you think big pharma was capable of creating a virus in 1918
given the amount of research that went into chemical weapons back then, I'd have to say yes. Some people might even say the H1N1 virus was a bio-weapon accidentally let out, but they'd be conspiracy nutters :)
true, but there's nothing to stop the journalist verifying the leaker, and then using the 'published' documents directly from the wikileak site. If the leaker doesn't want to be known to the journalist, I suspect every reputable one would have nothing to do with the leak - they want to be protected against being manipulated themselves (or their editors do!)
That's exactly what I was thinking of, but a VM image would be cheaper and more portable to ship to the customer.
I've seen Windows Live Messenger ads... until I installed APatch and removed them. lovely.
Yup, but I give it 6 months before the anti-trust lawsuit starts up again and MS is forced to put a 'which brow^H^H^H^HOffice suite do you want to use' the first time you try to run it.
(and have you noticed how they keep trying to force their stuff on you, I installed MSN, and the excellent apatch to remove the really annoying ads, and it pops up a dialog saying 'set Bing as your default search provider and prevent other programs from altering this'. I'm not sure I like that.)
It'll be using docx and xlsx files, right?
They are ignoring OO.o, this is solely a reaction to Google Docs. See, Microsoft knows its traditional business models of selling bucketloads of Office is on the way out, and they *need* an opportunity for growth (or the shareholders will get even more pissed at them, and Ballmer will not get his bonus... well, won't get as big a bonus as he wants).
So, they see Google just doing what Google does, and making some money from adverts and they see the Google shareprice, ans they think... lets combine the 'cloud', adverts and MS Office and the combination will of course be the perfect storm of money making wonderment. Which, of course, it won't be.
If Google sold Docs so you could run it on a VM inside your corporate firewall, I think they'd destroy the market for Office. Presumably MS are working on this (Sharepoint services for Office or somesuch) that will be taken up, but this current offering is just going to be a footnote on the internet like all the non-Messenger Live tools.
but surely at 2.7K, it wouldn't take much for hydrogen to condense on any surface. To bind to those oxygen molecules would require some heat that just isn't present, not at 2.7K.
Earth is 70% water or so, so that would require one hell of a lot of asteroids handily coming along - like a sorcerer's apprentice of water buckets. I would think water just forms along with all the other complex molecules the earth's made of, and then it floats to the surface where we can see it. Nothing magical about the earth being a block of rock that required outside intervention to make habitable at all.
BTW, IANAAP (astro-physicist), so the above may be complete tosh.
So true, we had a tight deadline, so the boss brought in a couple of cheap offshore workers to assist us, after all +2 bodies meant we'd get it all done that bit quicker. No. I personally had my project extended by 2 weeks simply because they were so incompetent. Add ignorant, inexperienced and unskilled workers and you *extend* the time required.
Managers need to read that Mythical Man-month book again (or be slapped about the head with it until they're harmless).
If the majority of businesses in America were driven by long term result driven reward, only a tiny fraction of CEOs, directors, and managers would be employed today. As is, these failures are constantly rewarded and advanced.
amen. We wouldn't have the economic crisis either, but said managers/bosses wouldn't have been able to award themselves huge pay either. Ultimately the message is 'forget doing a good job, become a manager and award yourself a big bonus'.
As a religious non-Java programmer and a devout Java basher, I'll shoot down the "Not suitable for nuclear reactors" thing
you missed my dig at the Java EULA then.
I also doubt there was a database used in this app, relatively speaking a traditional DB is a terrible performance bottleneck. This kind of app would utilise something different, possibly no sql involved at all.
There are ways of optimizing .NET further, like writing chunks of the code in C.
So.. the way to optimise .NET is not to use it :):)
Might I not suggest teak. whilst I agree its a beautiful wood, its also somewhat dodgy to come by. From the Independant:
TEAK
ORIGIN: Burma and Africa
USES: Construction and furniture
SUSTAINABILITY: Environmentally sound teak is hard to come by. Burma is the only country that still exports teak from natural forests, mostly illegally. Buying anything from Burma provides its brutal military dictatorship with foreign currency. African teak is at risk of becoming endangered
ALTERNATIVES: For Burmese teak try FSC teak, or Jatoba in some cases. Good substitutes for African teak are FSC Favinha, Guariuba and Tatajuba
Partly its a performance issue, partly a reliability one.
The .NET solution didn't scale enough to handle the trading volumes last year, which brought the entire system down. That cost them a lot of money. A lot. More than you can count. Possibly more than you can imagine, just for 1 day of downtime.
The reliability problem was due to performance. As another /. poster says "They are talking about scaling up from 100 million transactions a day to 5-6 billion", so the .NET platform would not cope at all, but the MilleniumIT platform is already being used for larger volumes of transactions.
I'm sure the lure of total ownership is also enough to make this the killer deal, but that's not the overriding factor. Business continuity is.
If you pay enough money, you get access to anything in Microsoft.
Years back, a .com company I worked for had 'partner' status and paid a *lot* of money for support and stuff. We had a bug in COM, so we raised it with MS and they couldn't see the issue, so it got escalated. Apparently it was within a week of being brought to Bill G's attention before we realised it was our CTO's coding error that was causing it.
For something as 'strategic' as the LSE platform, MS would have been writing code for Accenture and showing best practices, and also running performance testing daily. We also had the use of a Microsoft lab for our perf. tests, including a Microsoftie to help us with anything we needed.
I can bet you $1000 that System.Collections.Generic.List will significantly outperform std::list on indexed access on lists of significant size
until you need to insert an element in the middle.... but that's exactly why you choose a list over an array or a vector - you don't choose a list because it has fast random access times.
Incidentally, you could use a shared_ptr and a vector to get the exact same behaviour of your C# list, including the same array-of-ptrs indexing, and the same cache misses for every object access. See, I can bet you a std::vector will outperform a System.Collections.Generic.List, as that's closer to the two collections you're comparing.
because, if you're going to write a trading platform that truly shows just how good .NET is, you'll want to get Microsoft to show you how. They wrote .NET after all, if they can't do it then no-one can.
so true.
In the end the Tradelect platform cost £40m. Buying the entire MilleniumIT company cost $30. note the currency symbols.
The TradElect system was originally developed by Microsoft and Accenture so it was to be a showcase of how excellent .NET was.
Unfortunately, other companies showed how good their stuff was for this kind of work, and MS showed that you cannot polish a turd.
(well, ok, .NET would have created a system that would run your line-of-business apps without problem, but when it comes to very high performance, low latency systems, its simply not suitable, a bit like Java is not suitable for nuclear reactors).
The new system will be written entirely in a lower level language, and MilleniumIT does use C++ - take a look at their jobs board and you'll see the only skill referenced is C++.
It doesn't take a rocket scientist to work out that a GC-based, VM-based language that has layers of intermediate execution is going to be slower than is required for a trading system. What I don;t get is that MS thought they could throw hardware at it until it worked. Don't forget that MilleniumIT also was bought for $30m which is roughly half what the .NET system cost (£40m).
The moral is that you don't want to use the simple-to-code MS platform when you can get a best-of-breed system, based on Linux and good engineering for a lot less. IT managers around the world should be looking at this and thinking what similar lessons their IT departments could learn.
google this - "C++ expression trees"
I don't know how you found this so wonderful, but its pretty much a basic C++ programming 101 class.
Portable, high-level dynamic code generation.
Portable?
You'll also find that C# doesn't do code generation at all, its the tools around it. Similarly, we've had lexx and yacc for so long I've forgotten how they work, but I know they too are code generation tools.
ah, but even if the right hand doesn't know what the left hand is doing... it will find out eventually, and then you can guarantee they'll take some form of action to stop the anti-corporate work being performed, and probably (knowing Microsoft's past business tactics) do something underhand and potentially illegal to "fix" the problem.
"It works fine for me" said the MS developer.
I put it down the the decline of Microsoft, I've been working as a MS dev for the past 15+ years, and since Bill left (a coincidence, I feel) the company has started a steady decline - wasting their money on frippery, attempting to get a new growth market, screwing with established systems in place of selling new stuff, and generally trying desperately to get your money off you. At least in the past, they were also focussed on making good technical stuff too.
sure, but this is a minor update - its like you're trying to run on a machine that has version A.999.0.0 but not A.999.0.1 installed. In this case the version 8.0.50727.762 has been increased to 8.0.50727.4053, and there's no WU for the end-user machines, only those with Visual Studio installed.
because it still doesn't work - I tried that to solve one problem with this update.
Loading dlls now requires manifest files which bind your app to a particular dll version (via some sort of guid), so once you've rebuilt your app, you have to ship the .4053 version of the CRT, ATL and MFC updates to your app's local directory. You might as well install them to the SxS dir, if you have to install them manually anyway.
They just replaced dll hell (which I never suffered from in all my 15 years of windows development) for manifest hell (which I've suffered from 3 times now). MS used to keep things very backward compatible (users may not have been so conscientious, but whenever I've rebuilt an app I rebuild all my user libs too so I don't have to bother being so careful, but MS used to do a good job so the CRT libs were never a problem).
You'll find the same issue will affect you, you'll see it if you try to build using (say) .NET with a service pack, but the user doesn't have that update installed. Its only a poorly documented patch that doesn't have the redist package on WU yet, which is why this is such a problem.
With SxS assemblies, your app keeps linking against the old version of the DLL which might never get the patch
that's not the case. With this CRT/MFC/ATL patch, your app will not run at all unless the very latest patched libraries are present. You'll get an application configuration error before it even starts.