


Designing systems that can scale to very large sizes is a challenge. The requirements are demanding or become so very quickly. Commercial success of your product is also a two-edged sword.
I put together a slide deck discussing some of these issues for a small-group presentation a few weeks ago. I have posted the slides here because I wanted to share those thoughts.
Cheers!
-Eric
Years ago I put a non-trivial amount of energy into the IP Packet Sniffer tool. There was a "what is happening on my network" thing going on inside my head, driving research into what the Windows OS APIs could give me, and I derived a great deal of fun from the work.
Times change, and although the tool was a great learning experience -- what better way to learn the guts of network protocols than dissecting the bits pulled from the wire -- this tool is way behind serious tools, like Wireshark.
Wireshark is what you should use if you are serious about investigating your network traffic (unless you need something harder core). Wireshark leverages WinPCAP and is therefore far less limited than a raw sockets based method (thanks, Microsoft).
The upshot is that I am freezing work on this tool. I've end-of-lifed a few other tools recently, and removed the download links to those. However, this one still has some life left, if only because it is significantly simpler to start up than Wireshark, so I'll keep making the bits available.
Cheers,
-Eric
I started the MyNetwork program years ago while exploring various Windows APIs providing network-related information. Basically, it was a research project. The tool interface was my quick-and-dirty approach to displaying those data.
Well, MyNetwork was complaining loudly, telling me it felt neglected. In order to stop its whining I've given it a facelift to a more modern UI via MFC version 9.0 (which comes with Visual Studio 2008).
What a difference three MFC versions can make! Now it looks like your Outlook client. :) Everything is in user-movable, dockable panes. Windows with dynamic data are individually refreshable with the obvious button. You can also configure autorefresh for all dynamic-data windows using a ribbon bar toggle.
You can get the new version here. Below are some screenshots. :)
Cheers!
-Eric
This is just a minor update. I had to get the already-completed work out of my hair (figuratively speaking) before starting the facelifting process for the MFC-based tools. :)
Get the latest version here.
Updates include
Regards,
Eric
I've been comparing the old dialog-based user interfaces that I created for the tools and this site to the new capabilities of MFC in visual studio 2008 (VC9) and the newer outlook-style widgets. I think it is time to pamper their (sometimes 8+ year old) user interfaces with a facelift . :)
Stay tuned. :)
Regards,
Eric
Yes, updates for my programming playground are arriving at a rapid pace. I've been having way too much fun adding 3D fly-through via mouse control. :)
Get the latest version here.
-Eric
I have been having a lot of fun with LUA lately, expanding the Flocker program to create a better 3D display experience. :)
Get the latest version here.
Updates and additions in this version include:
Note: the OpenGL Testing tab is just there for fun. You can watch it but not interact with it. :)
-Eric
In order to make some examples of thread and TCP/IP server management clearer I decided to clean up the full, standalone project and post it here for your download. The project files build with Visual Studio 2008 (VC9) for Release and Debug mode on both x86 and x64 systems. Note that this project is simply a demonstration of thread and TCP/IP server management on an MS Windows system. A full-fledged application would have much more in the way of error checking, unit tests, and other infrastructure. :)
These are all plain source code files, not executables, and I'm making them available under the Mozilla trifecta license.
Cheers!
-Eric
I am responsible for the architecture of an "Enterprise Level Product". What does that really mean? The software is big: well over a million lines of code (probably closer to 1.5M) incorporating something like 20 different software technologies. When we need to add a new feature there is rarely a perfect solution. Why? Because the solution needs to fit in with the rest of the product. If we simply chose the best options for that feature in isolation from the rest of the product we would have Frankenstein's Monster. Entropy would take hold, the cost of change would skyrocket, and progress would grind to a halt.
My thoughts on architecture are added to my previous gentle rant about the specific topic of SIMPLICITY and architecture, of course.