Skip to main content

Posts

Showing posts from August, 2009

Effective C++, Third Edition

"...much as in real life, friends are often more trouble than they're worth."
- Scott Meyers

The C++ type definition that declares an external function of a class as one that can access private or protected data members also defines an individual in which one confides. But are programming books less trouble than friends? I'd like to think so.

This book opened my eyes to angles of C++ that I had not considered in the past. In a summarized list, here were the parts I found most useful:

RAII (Resource Acquisition Is Initialization), defined in Item 13, states that it is easier to allocate resources simply by allowing their critical work to occur in the constructor/destructor rather than their functions. The example is the Mutex class, which is defined at the top of critical section functions, and that's it. It's easier than a call to it's lock() function and will clean itself up when the function completes.

Smart pointers, like std::auto_ptr or tr1::shared_…

Robots!

I finally managed to get my Google Wave Robot up:

http://rabidrunner.appspot.com

Of course, this is just the hello world example written in Python. I am trying to come up with less trivial examples, but first I want to use this application to try out a database access, a file upload, a headline capture (RSS reader), and some other nifty little tricks that will prove to be useful.

Google Wave still looks like it has a way to go. Using the sandbox build, it still is a bit slow, but that may be due to the massive amount of posting and replying that is going on. I kind of wish there was an easier way to filter out certain waves instead of loading the most recent.

I'm also anxiously looking forward to these items once the real build comes out:
- Google Wave server
- Robots from places other than AppEngine
- Integration with other databases besides GQL
- Security features