July 2005 - Posts
AGEIA build a device that accelerates physics computations, getting them off the CPU. An absolutely cool idea, I hope a standard will appear quickly (maybe in DirectX? what about DirectPhysics?) and also a software implementation (based on
Havok for example), so that it will gain mass acceptance.
These people have built a realtime raytracing chip. Supposing it has an OpenGL interface, the device is stunning (the pipeline is programmable also). When will ATI and nVidia switch to raytracing ? Ok, shaders are cool but I'd like a major switch in architecture like this one.
Here is the quickest way to disable that annoying dialog displayed in OLE client applications :
// disable the "server busy" dialog
AfxOleGetMessageFilter()->EnableBusyDialog(FALSE);
AfxOleGetMessageFilter()->EnableNotRespondingDialog(FALSE);
Ok so I'm back from a one-week holiday that involved going to
Vama Veche, a quick trip to Bulgaria for the Deep Purple concert and an expedition in the
Danube Delta.
For about two days I have been messing with some rendering bugs in the OpenGL engine. First of all, some textures appear white under heavy load - I found the low memory to be the cause. It appears that OpenGL need system RAM to load the textures, and doesn't like virtual memory very much (at least on nVidia, because on ATI I managed to upload lots of textures to the pagefile also). The other bug is caused by a visible shift in objects' texture coordinates, that in the beginning occured in memory-full conditions but then appeared when there was plenty of RAM available. Still left to investigate.
I found some problems in the
MFC Grid, first of all the GVN_SELCHANGED notification is not fired when the selection is modified using the keys, also the grid doesn't set itself focused when it's activated by mouse-click (apparently this happens only if the grid is used in an OCX).
Nice link over at
Slashdot about iD loosing the first place in the FPS industry. I completely agree with them, and if some time ago iD was the best company I'd have liked to work for, now I really changed my mind.
Blizzard is now in the top.
Ok so a quick review over today's learned lessons: you shall not remove COleClientItems from the document when they are deleted (because they are kept in the undo structures and thus the OLE connection needs to be active). Also, I had to hack the document closing routine to force the destroy of the OLE items because they had bigger refcounts than they should have had (this happened for some objects only - possible a bug in the server).
I'm talking about building connections over the web (initiated from the webpage) but not packet-based as XMLRequest-based apps are doing. Real, connection-based web apps are currently being built in Flash, however I'm wondering if they can be built on top of http (actually http was never designed for this). A new kind of web-based apps can be developed then, and real-time collaborative software is what I'm primarily interested in. Another problem is whether to use peer-to-peer design or client-server (this may surely be better, because of firewall issues and such).
Did you know that a VB executable registers automatically the components it depends of at startup (if they are not registered) ? So I guess it caches the ocx name along with the GUIDs and if it can't instantiate the component it looks in the current directory for a file named like that - then self-registers it. Could be dangerous though - the wrong component may be registered by mistake. Some official info
here and
here. It appears the components are not actually registered.
Bizarre bugs strike again ! Ok so today when I stepped into a simple constructor call (something like new GeoNode(); ), the XCode debugger instead of going directly in the constructor code it stepped into some __dyld_*** functions (no source code available), then crashed. It never reached the called constructor. In the end, I realized that Mac OS X loads the compiled code lazily - and thus checks for linking errors at run-time!.
I had to port some standard C++ code that compiled well in VC++ 6.0 to Mac (GCC 4.0) and my conclusions are that they have changed the C++ language a lot: operators didn't work without "const" and STL didn't work at all (the iterator is a class not a pointer, so you can't add indexes and so on).
I had a quick look on how Visual Studio 2005 helps testing the projects - it's really nice, a test project is generated that instantiates your class and verifies the methods (well, you have to write code to compute the expected value, for example). There are lots of functions to organize the test sessions and you can use metadata files for defining input values to tests. As you know, unit tests are very important in XP, you have to write the unit test first and then implement the class, so programmers are encouraged to use the IDE functions.
Well it's not officially out but you can use the dll (MSXML6.DLL) as it's shipped with Visual Studio 2005 Beta. From the new features I extract:
the ability to validate a single DOM node as an XML document fragment against the currently loaded DTD, schema, or schema collection
means to clone a node from one DOM document, so it can be added later into another DOM document using the appendChild method
So nVidia launched their latest
graphic card, not a revolutionary one at all (unlike their statement that
is a revolutionary new architecture built from the ground up) but rather a 6800 Ultra with 8 pipelines more and a few new features (like the Trasnparency Supersampling that surely is cool). ATI will strike back in the next few weeks with the chip codenamed R520 (most likely to be named Radeon X900) - we expect really cool new features and advanced performance for it. ATI needs to get the crown back, the Geforce 6 Series really proved it was better in every aspect (well not quite as the R300 - nVidia FX difference but still).
I may switch the blog implementation to
Community Software, the evolution of the .Text framework this site is built. The community license allows hosting personal blogs using the software.
MSDN Blogs uses Community Server also.
Is
developed by Nokia and Apple together, using open-source code also used in Safari. Let's hope it will be backwards-compatible with the existing S60 phones and won't be used only in the new products.
This will mean native speed for Windows apps, well only as long as someone writes an emulation layer for the APIs to translate Win32 calls into Core Foundation and Cocoa (
Darwine is an emulator, but maps to the X11 API). I suppose games will be easier, because of not using complex APIs only DirectX (OpenGL games should be more easier though).