Total Pageviews

Disclaimer

This is a personal web page. The views expressed on this blog are mine and do not necessarily reflect the views of my current employer.

I am currently employed by Morgan Stanley.

October 20, 2010

HoneyCell Drops: Beta 3 and Afterwards

Beta 3 was released last weekend. But we still have more new things to add to the code base.

Currently, I am busy reviewing SNMP RFC documents to better understand the details on message handling. Then all message handlers will be tuned to be standard compliant. It is not an easy task, but since Moq is found and used to build test cases, now the progress is promising. I am pretty sure that we will get high coverage this time.

Though this delays the release day for 6.0 final, I think it worths the while. At least, we can consolidate the code base heavily again to ensure less bugs remain.

If you are interested in the recent changes, you can check out the latest code from here, http://sharpsnmplib.codeplex.com/SourceControl/list/changesets

BTW, there are a lot of tiny breaking changes throughout the code base during the past weeks. I will try to provide a detailed summary once we finish the release. NDepend should be able to provide us all information on breaking changes, and I will make full use of it this time.

October 07, 2010

HoneyCell Drops: Pipeline in Browser

Remember how we turned Agent class to an SNMP pipeline in our 5.x release? It is a nice example to show how our initial design back in 2008 ages through the years, and has to make way for new stuffs who grow and take over the responsibility.

Scenarios on the Manager side are similar now. First, the Manager class is on the verge of being removed (it is officially obsolete). Second, all listener adapters are now obsolete. (It is not easy to migrate, but I will write a post for that.) And definitely the Browser has evolved accordingly.

Because we can no longer use listener adapters, the only choice remains on the table is moving to SnmpDemon and the pipeline. Yes, the same pipeline we use in snmpd. It may sound like a small change, but anything about the pipeline is in fact complex. What will be the output?

Finally support for v3 INFORM in the browser is added because the pipeline provides all necessary elements, such as v3 discovery and security model.

Yes, this change relies on new message handlers (for TRAP and INFORM) implemented and other according changes prepared.

However, v3 TRAP is still missing, as I am not yet sure how to write a proper test case before implementing it, or whether this feature is that critical.

HoneyCell Drops: Ubuntu Support

Last time we tested #SNMP 5 on openSUSE, but this time I use Ubuntu 10.10 Beta to test out #SNMP 6.

Of course, we can see Mono is packaged differently on the two distributions. As a result, I have updated the readme document to mark what extra steps are necessary to make #SNMP compilable.

I think in the next few months, Ubuntu will be my primary Linux distro to test out #SNMP.

Well, Ubuntu 10.10 is going to be released in a few days.

October 05, 2010

HoneyCell Drops: Beta 2 is Out

I just released Beta 2 for our 6.0 release, http://sharpsnmplib.codeplex.com/releases/view/46604

Note that #SNMP repository has been migrated from Team Foundation Server to Mercurial for a few weeks. You will need to use a client such as TortoiseHg to check out latest change sets.

I am preparing the release notes document now and hope to release the final in a few weeks.

Stay tuned.

October 04, 2010

A Custom Gendarme Rule: OverrideToStringMethodRule

I started to use GitHub as I would like to write patches for the software I use the most and love the most. So today I finally checked in a patch for Gendarme,


This new rule named OverrideToStringMethodRule, and it analyzes all classes in your assemblies to see if they override ToString method. 

Well, it can be a very annoying rule for someone. Yes, I confess that for UI related classes it is not critical to do so. But if you ever design a framework for other to use, which is kind of complex, you have to somehow override ToString method. Only in this way when your users try to debug code, they can enjoy the ease you provide because for example Visual Studio can display a lot of information in its tool tip or Watch panel for the objects and they don't even need to expand their members for more details.

I have been using this rule for a long time for #SNMP, and I hope you find it helpful.

October 01, 2010

Revival of LoggingService Functionality

A few years ago, I wrote a class for Code Beautifier Collection named LoggingService (http://blog.csdn.net/lextm/archive/2006/12/20/1451081.aspx). At that time I decided to wrap over log4net.

However, I started to use log4net more directly in the following years, and LoggingService is no longer a convenient way. OK. Then how to make use of those old code again?

1. Extension methods can be added to ILog and then I can use ILog.EnterMethod and ILog.LeaveMethod. http://sharpsnmplib.codeplex.com/SourceControl/changeset/view/4a77cd3e8d39#lib%2fLogExtension.cs

2. In order to add necessary indentation to the log files, I have to hack the appender, http://sharpsnmplib.codeplex.com/SourceControl/changeset/view/4a77cd3e8d39#lib%2fIndentableFileAppender.cs

Well, this becomes something much easier to use.