| from David Bolton It's sometimes easy to forget the pace of progress that impacts our lives. Ten years ago C# didn't exist, seven years ago no Facebook, five years ago there was no Google Maps and the iPhone is only three years old. That was quite a decade for innovation. I just wonder what the next ten years will bring. One thing for sure, people will still be learning C/C++ and C# as well as all the other useful technologies. Anyway don't forget Challenge 30's deadline is next weekend. I'm away until then, have a great week and a Happy New Year! I will still be posting while I'm away... | ![]() | In the Spotlight | Optimizing C++ - an E-Book by Agner Fog Continuing yesterday's theme on improving C++, here is a 155 page PDF E-Book by Agner Fog of the Copenhagen University College of Engineering on Optimizing software in C++. It's intended to do one thing and that's help speed up your code if it's 32 or 64 bit running on a standard PC platform, irrespective of the OS, be it Windows, Mac or Linux. The author also provides an open source library of fast assembly language routines which are replacements for standard library functions or add extra functionality such as rounding. The download link is on page 13 of the pdf. Although the E-Book is aimed at experienced developers, because of his occasional use of template classes I reckon anyone would benefit from reading it as it's chock full of optimization tips, I know I did and I highly recommend it. | | An Alternative STL - EASTL Electronic Arts as a publisher of many games recognized that the STL isn't ideal for their needs so they developed an alternative- EASTL. Though the code for that isn't available, Paul Pedriana of EA has written a very comprehensive document about their version of the STL and why they did it and it's excellent. He justifies this so: "Most significantly, game software requires large amounts of memory but has a limited amount to work with. Gaming software is also faced with other limitations such as weaker processor caches, weaker CPUs, and non-default memory alignment requirements." Changes were done to give higher performance with greater control of allocators, added validation of all containers and allocators made it easier to debug, tagged memory allocations plus lots more, much too much to cover in a quick overview like this. If you code in C++ this is fascinating reading, and don't miss out the appendices. Significant is the fact that they don't use exceptions (same as Google) unless really necessary. Plus there are some improvements which they recommend to STL, eg adding push_back(void) to containers to add an extra (empty) element, ie increase the capacity. A final note on this, they say this about C++. "C++ isn't taught much any more in college. It's hard enough finding people who know C++, and harder finding people who understand templates of the kind you find in STL.". Now there's a big hint to learn C++ if you want to create games! | Git, Mercurial or ... A mate of mine who I've been helping with C# visited last weekend and I suggested to him that we use a distributed VCS so he and I could maintain the code base. Though I've showed him Subversion, it really needs something that he has to use so distributed is better that way. Over a 15 year period, we have developed a program for managing dog shows (in the UK- Kennel Club standards) that started in Turbo Pascal then moved to Delphi and is now C#. I've not done much with any distributed version control system, being a Subversion fan so was keen to try out both Git and Mercurial. Git I found very powerful but it needs to be used from the command line really as the GUI tools provided are distinctly minimal. Mercurial though works with TortoiseHG, similar to Tortoise that I know and love with Subversion. It adds extra commands into Windows Explorer so you just right click on files. I have used command line tools for version control for years and it's easy to make mistakes, miss files etc. On occasions I was checking in 60 odd files and tracking and committing that could easily take 15-30 minutes! Moving to Subversion was an enormous increase in productivity as you could see which files had been changed and folders of files could be selected and checked in en masse in one go. However I've just discovered Git Extensions which provide a Tortoise like experience (in Windows) and also an plugin for Visual Studio. It's a tough choice! And there's also Bazaar (thanks to Pedro for the tip), so it's not settled yet. | Sponsored Links | ![]() |  | | C / C++ / C# Ads Advertisement |  |
No comments:
Post a Comment