Blue Theme Green Theme Red Theme
RSS Feeds:
Posts
Comments

Calendar

December 2008
M T W T F S S
« Sep    
1234567
891011121314
15161718192021
22232425262728
293031  

Rss

The Russian Expansion

The recent conflict between Russia and Georgia certainly seems to have deep roots.  I have been watching this conflict carefully, as a U.S. solider during the 80s I have certain hard coded reservations about Russian expansion.

As I’m sure many people have figured out - the timing of the attack in Georgia seemed unlikely to be circumstance.  Why attack now, after what? 15 years or so of tension between Georgia and the two breakaway regions of South Ossetia and Abkhazia?  In all that time, no other suitable reason could be found or made?  Unlikely.

A Stratfor analysist explains the timing nicely in an article in Geopolitical Weekly entitled, “The Medvedev Doctrine and America”.

Here is the text of the article (Reproduced with Permission).

Continue Reading »

A common task in development is serializing objects to and from various storage or transmission mediums, and another is exposing those objects to scripting engines, command and debug windows, and other user interfaces. This article addresses these issues through the use of a generic attribute management system. Every object can be identified by one or more attributes. Once registered with an attribute manager, these attributes can be serialized or exposed, and each can be queried to read or modify its value at any time.
Unlike C#/CLI properties, this implementation does not require that a change be made to the underlying object type. The attribute system can be expanded to support any type of object, including containers of objects, with minimal programming. Furthermore, it provides a means of querying for all registered attributes and provides a policy based approach to object serialization.
The attribute library can be downloaded here, and a solution file providing examples from here.

C++ MD5 Library

According to the “Executive Summary” of RFC 1321,

“The MD5 algorithm takes as input a message of arbitrary length and produces as output a 128-bit “fingerprint” or “message digest” of the input. It is conjectured that it is computationally infeasible to produce two messages having the same message digest, or to produce any message having a given prespecified target message digest. The MD5 algorithm is intended for digital signature applications, where a large file must be “compressed” in a secure manner before being encrypted with a private (secret) key under a public-key cryptosystem such as RSA.”

This algorithm was developed by Professor Ronald L. Rivest of MIT and can be found presented in several languages. What I provide to you here is a C++ derivative of the original C implementation of Professor Rivets.

The library code itself is platform-independant and has been tested in Redhat Linux. I’ve included the sample code and makefile that I used for the Linux test. The demo, however, was written with Visual C++ 6 on a Windows 2000 platform.

The screenshot here is of the MFC demo projects that I’ve included to show how to make use of the library calls. With this, you can genereate MD5 fingerprints of text phrases or files.

KeyGen screenshot

Using the library is as easy as:

std::string md5Str = MD5String("Some string you want to generate an MD5 key for.");


You can download the library source here:
MD5 C++ Library

and an example of it’s use here:
MD5KeyGen: MD5 Generator


It is not the critic who counts; not the man who points out how the strong man stumbles, or where the doer of deeds could have done them better. The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood, who strives valiantly; who errs and comes short again and again; because there is not effort without error and shortcomings; but who does actually strive to do the deed; who knows the great enthusiasm, the great devotion, who spends himself in a worthy cause, who at the best knows in the end the triumph of high achievement and who at the worst, if he fails, at least he fails while daring greatly. So that his place shall never be with those cold and timid souls who know neither victory nor defeat.

Theodore Roosevelt (1858 - 1919), “Man in the Arena” Speech given April 23, 1910