TCP/IP Parameter Tuning for Rapid Client Connections
| From : gavaghan.org
Published to Computer programming
Applications that open and close a large number of client TCP/IP sockets run the risk of running out of available socket ports. This can happen in a load and performance testing scenario using a tool like LISA Test from iTKO, or it could happen in a production environment if an active application simply needs to rapidly open and close a large number of outbound connections. On the .NET platform, the exception raised reads "System.Net.Sockets.SocketException: Only one usage of each socket... Read Full Story
The .NET Asynchronous I/O Design Pattern
| From : gavaghan.org
Published to Computer programming
Asynchronous operations allow a program to perform time consuming tasks on a background thread while the main application continues to execute. For example, consider when a program makes a request to a remote system. In a single-threaded scenario, the call is made and the CPU goes idle as the caller waits on the server's processing time and the network latency. If this waiting time can be delegated to a separate thread of execution, the program can complete other tasks until it receives... Read Full Story
The .NET Asynchronous I/O Design Pattern
| From : gavaghan.org
Not yet published.
Asynchronous operations allow a program to perform time consuming tasks on a background thread while the main application continues to execute. For example, consider when a program makes a request to a remote system. In a single-threaded scenario, the call is made and the CPU goes idle as the caller waits on the server's processing time and the network latency. If this waiting time can be delegated to a separate thread of execution, the program can complete other tasks until it receives... Read Full Story
Understanding SSL – Part 1: Certificates and Keys
| From : gavaghan.org
Published to Neil Speight
The technology behind Secure Sockets Layer (SSL) network connections is often perceived as a bit of “black magic” – smoke and mirrors securing our Internet connections from snooping.  When banking and shopping online, even a novice user understands their browser sets up an HTTPS connection (which is simply HTTP over SSL) to protect the transaction.  [...] Read Full Story
Liquid Cooling a PC: Gimmick or Necessity?
| From : gavaghan.org
Early PCs seldom had more than a tiny, weak fan on the back of the case to push out excess heat generated by the internal electronics.  As transistors shrank and chips grew faster and more complex, CPUs began running hotter and reaching dangerous temperatures - so hot, in fact, that the little case fan couldn’t protect [...] Read Full Story
Kill Spam With Real-Time DNS Blacklists
| From : gavaghan.org
Published to Stamp Out SPAM
A great Open Source project for gaining understanding about e-mail systems, including an in-depth look at SMTP and POP3, is the Java-based Apache JAMES Project. Although JAMES has the unfortunate shortcoming of being built around the now defunct and unsupported Apache Avalon Framework, it’s still a fantastic learning tool for understanding email protocols, mail delivery, and spam filtering. Not only that, it’s a fully functional, enterprise-ready mail server that can be up and running with... Read Full Story
Got Requirements? If Not, You’re Doomed
| From : gavaghan.org
Published to Computer programming
Yet another software development disaster is headed for the digital trash heap of failed projects. This time, the casualty is software funded by the U. S. Census Bureau. The Associated Press reports failure to deliver usable software to census enumerators could add as much as $2 billion to the 2010 census. Worse, the AP reports "census officials are considering a return to using paper and pencil to count every man, woman and child in the nation." This is a spectacular train wreck that had... Read Full Story
JUnit Factory Part 3: Improving Code Coverage
| From : gavaghan.org
Published to Java
JUnit Factory is rather clever how it analyzes and executes your code to generate characterization tests. However, legacy Java code was generally not written with testability in mind. This sometimes makes it difficult for JUnit Factory to attain complete coverage of your code due to the need for objects to exist in a complex state or the need to interact with an external resource such as a database. JUnit Factory is often able to generate mock instances automatically for problematic classes... Read Full Story
JUnit Factory Part 2: Finding Regressions
| From : gavaghan.org
Published to Java
Characterization tests provide a safety net for your legacy Java code by helping identify unintended changes in software behavior caused by code maintenance. JUnit Factory (http://www.junitfactory.com) from Agitar Software (http://www.agitar.com) may be used to automatically generate these tests for you. In this post, we’ll take a look at what happens to these characterization tests when a simple code change is made. Read Full Story
JUnit Factory Part 1: Generating Tests
| From : gavaghan.org
Published to Java
JUnit Factory ( http://www.junitfactory.com/ ) is a free Eclipse plug-in from Agitar Software ( http://www.agitar.com/ ) that generates characterization tests for your Java code. For more background on what characterizations tests are, and how you use them, you’ll want read my post “Characterization Tests: How To Deal With Legacy Java Code”. This article describes how to generate tests for a simple Java class and how to read the tests. Not all of your real code will be this simple, and not... Read Full Story