jordan.terrell
Just trying to make sense of things...

Unit Testing ASP.NET Using Typemock Isolator

Monday, 18 May 2009 14:03 by jordan.terrell

Advertisment for Typemock Isolator ASP.NET Bundle:

Unit Testing ASP.NET? ASP.NET unit testing has never been this easy.


Typemock is launching a new product for ASP.NET developers – the ASP.NET Bundle - and for the launch will be giving out FREE licenses to bloggers and their readers.


The ASP.NET Bundle is the ultimate ASP.NET unit testing solution, and offers both Typemock Isolator, a unit test tool and Ivonna, the Isolator add-on for ASP.NET unit testing, for a bargain price.


Typemock Isolator is a leading .NET unit testing tool (C# and VB.NET) for many ‘hard to test’ technologies such as SharePoint, ASP.NET, MVC, WCF, WPF, Silverlight and more. Note that for unit testing Silverlight there is an open source Isolator add-on called SilverUnit.


The first 60 bloggers who will blog this text in their blog and tell us about it, will get a Free Isolator ASP.NET Bundle license (Typemock Isolator + Ivonna). If you post this in an ASP.NET dedicated blog, you'll get a license automatically (even if more than 60 submit) during the first week of this announcement.


Also 8 bloggers will get an additional 2 licenses (each) to give away to their readers / friends.


Go ahead, click the following link for more information on how to get your free license.

Wolfram|Alpha: Awesome

Monday, 18 May 2009 10:43 by jordan.terrell

A computational knowledge engine.  Very cool.  Besides all the useful information you can extract from it, there is also some humorous knowledge too!

Check out the introduction video!

Tags:  
Categories:   General
Actions:   E-mail | del.icio.us | Permalink | Comments (1) | Comment RSSRSS comment feed

Arduino DHCP Library: Trying To Submit to Arduino

Monday, 18 May 2009 10:15 by jordan.terrell

I want to submit the Arduino DHCP Library that I created to be included in the main Arduino distribution.  I tried asking what the process was on the developer’s mailing list, but I got no response.

Anyone listening out there who can clue me in on how to start the process?

Instructor-Only Materials: Off Limits, For Now

Monday, 18 May 2009 10:09 by jordan.terrell

As I mentioned earlier, I was trying to obtain Instructor-Only materials for an algebra book that I purchased.  I filled out some online forms and sent some emails, but today I got an emailed response telling me that my request was declined.  I called Pearson Education to see if I could change their mind, however, they explained to me that the “Instructor” part of Instructor-Only actually requires you to be a state certified instructor.

At this point it doesn’t look like I’m going to be able to check all of my work.  Disappointing, yes – but also understandable.  I have to admit that Pearson was very kind as they explained why I was unable to obtain these materials, and I can imagine they see all kinds of scams from people trying to cheat on their assignments.  So I can’t argue with their reasons for keeping the materials under lock and key.

Maybe I should think about becoming a state certified instructor in elementary algebra?  Hmmm…

Tags:   ,
Categories:   General
Actions:   E-mail | del.icio.us | Permalink | Comments (1) | Comment RSSRSS comment feed

No, I’m Not Going To Cheat On My Math

Monday, 11 May 2009 13:17 by jordan.terrell

For various reasons, I recently bought a Algebra book as part of a self-directed refresher course.  The book I chose is entitled “Elementary and Intermediate Algebra: Concepts and Applications”.  So far it has been a good purchase (I got a significant discount by purchasing it at a Borders store).

Just like many math textbooks, some of the answers are provided in the back.  This is, in part, to help the student see if they are understanding the math by comparing their answers with the expected answers.  However, it only provides the answers to the odd-numbered question, so that a student attending a school isn’t able to cheat on homework assignments.  This isn’t a concern for me since I’m not attending a formal school right now and I’m acting as both the student and the “instructor”.

As a result, I went to find the complete list of answers for the textbook on the publisher’s web site and I found that, although it is available for download, it is a protected resource.  Not really surprising – I wouldn’t want a student to be able to download the answers and enable them to cheat.  In their words: “We are committed to maintaining the integrity of this instructor-only resource.”

The purpose of this blog post is this: I’m going to request access to these instructor-only resources, and I want to be able to point to this very public blog post to show that I’m not trying to cheat, but rather trying to function as multiple roles for myself: student and instructor.  If I was going to cheat, the last thing I would want to do is let everyone know that I’m trying to get the answers.

Tags:   ,
Categories:   General
Actions:   E-mail | del.icio.us | Permalink | Comments (0) | Comment RSSRSS comment feed

Common/Utility Libraries: Dead?

Monday, 11 May 2009 11:51 by jordan.terrell

Ayende Rahien (of the Rhino Mocks fame) wrote a post on his blog about “burning” Common/Utility libraries.  I have to agree with his reasoning on why his Rhino Commons library should be “burned”.  As I understand from his post it is a “garbage bin” or dumping ground for any random functionality that might be reusable.  He pointed out that his library has very low cohesion, or in other words the library isn’t really focused on a fixed, finite set of responsibilities.  Again, I agree with this reasoning.

However, I’m concerned that this might also encourage the other extreme: never creating common libraries and copying/pasting code from one project to the next!  In my opinion, this is just as bad or even worse that having a common library.

Having a common library can be both useful and powerful, but it needs to be treated as its own project – or shipping product, if you will.  Versioning, backwards-compatibility, proper API design, application of common API patterns, cohesion – these are just some of the things that you need to think of when designing a library.  Designing a library requires at least one, if not more, architectural and design minded developers to really manage and ship a common library throughout its lifecycle.  One thing often overlooked is deleting/obsolescing code, as well as reorganizing (or refactoring – what ever parlance you prefer) code into different namespaces and assemblies.  Also, one must not shy away from moving library code into different Visual Studio solutions (or whatever solution/project system being used) or to different locations in your source code repository.  Reorganizing applies not just to the contents of your library code, but also to how you work with your library code.

This is even the case with .NET itself. Granted, Microsoft doesn’t always get it right, but they’ve done a decent job.  If you look at the Base Class Library shipped with .NET, there is a TON of functionality, broken into assemblies, namespaces, and types.  This I think is very important when you are designing a library or suite of libraries – organization.  How you break functionality apart, especially at the assembly level, can have a huge impact on the usability and perceived maintainability of a library.

I would argue that Common/Utility are not dead, but rather that is something that is difficult to do well and requires practice and disciple.

Categories:   .NET | Programming
Actions:   E-mail | del.icio.us | Permalink | Comments (0) | Comment RSSRSS comment feed

RFID Lock Prototype: Ethernet Enabled

Saturday, 2 May 2009 09:09 by jordan.terrell

Now that the Arduino DHCP library is fairly stable, I’m turning my attention back to my RFID Lock prototype.  I’ve integrated the DHCP library and it’s working perfectly for me.  The next step is to work out a protocol that the lock will respond to.  I’ve decided to use connection-less UDP messages.  I’ve already hacked in the ability to lock and unlock the deadbolt by sending a simple UDP packet – this was just to test connectivity.  I’m working through the protocol in my head (e.g. the data format, different commands, etc).  I think that I want to use the Open Sound Control (OSC) protocol as the format of the messages.  The nice thing about OSC is that it doesn’t tie me to lower level protocols (HTTP, SOAP, REST, TCP, UDP, etc).  As long as I can send and receive OSC messages, I can abstract away the communication details from the RFID Lock firmware.

Once the first draft of the protocol is finalized, I’ll begin working on a secure ASP.NET MVC application that will let me interact with the RFID Lock.  I’ll also be looking for secure ways to have it interact with my cell phone.

Arduino DHCP Library: Version 0.4

Thursday, 30 April 2009 20:48 by jordan.terrell

Update 7/3/2011: This library no longer works with current builds of Arduino.  At some point in the future I *may* decide to create a new revision, but my current focus is not on Arduino development.  I believe there are one or more DHCP stacks based on my initial work.  If you need DHCP support for your Arduino project, I would recommend you search for one of those libraries.

I made a small update to the Arduino DHCP library to calculate the “seconds elapsed” field in the DHCP packet based on when the Arduino starts sending DHCP packets.  This may fix some issues with using a Mac as a DHCP server.  Special thanks to Arduino forum member smartperson for the suggestion.

      Download here: Arduino DHCP Library v0.4
      Previous Versions: v0.3, v0.2, v0.1

Additional instructions can be found on the original DHCP library post.

Arduino DHCP Library: Version 0.3

Saturday, 25 April 2009 08:45 by jordan.terrell

I just finished implementing some improvements to the Arduino DHCP Library as suggested by members of the Arduino forums.  Special thanks to Arduino forum members Nebster, smartperson, and thomsen for their feedback and suggestions.

      Download here: Arduino DHCP Library v0.3
      Previous Versions: v0.2, v0.1

Additional instructions can be found on the original DHCP library post.

Here is a list of the improvements in the v0.3 release:

  • Transaction ID is correctly incremented on DHCP discovery retries
  • Elapsed Seconds is now calculated and transmitted, instead of always being zero
  • You can now retrieve the following data elements:
    • Local MAC Address
    • Local IP Address
    • Subnet Mask
    • Gateway IP Address
    • DHCP Server IP Address
    • DNS Server IP Address
  • The example Arduino sketch has been updated to show:
    • How to determine if an IP address was successfully acquired
    • How to retrieve data elements acquired from the DHCP server (e.g. Local IP Address)

Arduino DHCP Library: Version 0.2

Wednesday, 22 April 2009 22:19 by jordan.terrell

I just finished adding retry capability to the DHCP library.  It will, by default, resend DHCP requests every 2 seconds, and timeout after 60 seconds.  I've also removed the need to declare a Dhcp variable. Take a look at the included example to see how to use the new library.

       Download here: Arduino DHCP Library v0.2

I hope this release solves the outstanding issues I know about.  I'm also looking for feedback on additional enhancements - ARP conflict detection, lease renewal, etc.  If you know of something that doesn't work or you would like to see added, please let me know.

Enjoy!