Register for my free workshop next week – The Continuum of Modular Architecture

Next week, I am giving a free afternoon workshop at the Microsoft office in Austin, TX.  This is a free workshop, and it is one in the series of free monthly workshops that Headspring hosts in conjunction with Microsoft.

I am the speaker for this month, and my topic is below.  Please head on over and register now.  Please ensure your seat.

Title:  The Continuum of Modular Architecture

Abstract:

Modularity is a concept applicable to all types of systems.  In software systems, the term "modular" is often used to apply to coding practices all the way to deployment techniques.  There are varying degrees of modularity.  In this interactive workshop, you will learn about the continuum of modularity as it relates to software architecture and design.  After attending the workshop, you will be able to analyze and select a degree of modularity appropriate to your situation and apply it.  Techniques will also be shared in areas such as how to partially deploy a system, version parts of a system independently, and methods for choosing different libraries, languages, and platforms within a system.  Modularity is not an all-or-nothing decision.  Come learn about the full continuum so that you can apply the appropriate design to your system.

More info:  http://www.headspringsystems.com/community/workshop/

Adobe AIR web browser with Flex 4.1 sample application available

At Headspring, we have to work with a variety of technologies.  While our greatest strength is .Net, all technologies and platforms are on the table while serving clients.  In the past we have worked with SAP, Windows, Linux, PHP, ADOBE Flash/Flex, CRMs, Java, Ruby, etc.

Being a “.Net” shop isn’t really a workable solution for a company looking to serve customers while meeting all of their needs.

One technology that compliments .Net really well is Flash built with the Flex framework.

Flex 4 was release in March of 2010, and 4.1 was released this summer.  Similar to Silverlight, one can build data-driven interactive applications that interact with any back-end server, such as an ASP.NET application.

image If you would like to see how an Adobe Flex app is put together, you can take a look at a sample we have available for download.

It is a simple, non-fully-featured web browser (using an embedded HTML control).  You can get the application directly with this link.  All the files are text, but you do need Adobe Flash Builder to open up the project correctly.  Flash Builder is a custom-configured Eclipse application, so it is running Java.

image

Without a doubt, new programmer we bring on board are versed in some, but not all of the technologies we might have to use on client projects (and the list of technologies keeps on changing and growing).  When hiring, I’m not so concerned about what technologies programmers are an “expert” in as their aptitude for learning.  In a consulting company, learning the the ticket to the game.

Quality assurance is not testing

We at Headspring have just posted our Quality Assurance article over at http://blogs.headspring.com.

I’ll give a summary here of our view of QA.  Here are the main points:

  1. Move QA before coding
    That’s right.  We are assuring quality of the whole result, not just the code.  If we code the whole thing, but the quality of the design or analysis wasn’t spot-on, we have a problem.  QA starts with analysis and goes through deployment and operations.
  2. Unit testing vs. Full system testing
    Everyone is so caught up with unit testing and TDD, but full-system testing is the only type of testing that gives close to the coverage the system will experience in a production environment.  If you aren’t doing any type of automated testing, start with full-system testing, not unit tests.
  3. Get to production quick, before the software is finished (ok, this is a point I wish were in the article)
    I’m actually expanding on it right here, but you will never have as clear a picture of whether something works until it it goes to production.  Until then, there is a risk that it will fail.  Get to production quick.  Sometimes, it seems that the type of problem or system just won’t work with an incremental rollout.  The hard problem to solve is how to not solve the whole problem right away.  How do we solve a piece of it quickly, but fully solve it.  In some cases, an incremental production rollout might be incremental by feature.  In others, it may be incremental by user group.  Still in other cases, live pilots may be appropriate.  In any case, old and new systems will need to be integrated.

Go check out the article here.

What is the difference in <%: variable%> and <%= variable%> in ASP.NET MVC?

With many folks adopting ASP.NET MVC as well as Visual Studio 2010, there is a fairly confusing change if you are one of those people who doesn’t engage in the alpha and beta phases of new product releases from Microsoft or any other vendor, for that matter.

The issue of <%: vs. <%= has had a great deal of discussion around it in the years leading up to the Visual Studio 2010 release.  This new expression syntax, or code nugget, is a new feature of ASP.NET 4.  It applies equally to ASP.NET Web Forms and ASP.NET MVC applications that are using the Web Forms view engine (ASPX).

In short, <%: ViewData["Message"] %> does the same thing as <%= Html.Encode(ViewData["Message"]) %>.

When creating a new ASP.NET MVC web application in Visual Studio 2010, you will see that the default Home/Index.aspx view is as follows.

image

However, if you create an ASP.NET MVC 2 web application in Visual Studio 2008, you see that ViewData[“Message”] is printed using the syntax that heralds back to the IDC/HTX technology of IIS 2.

image

I hope this tidbit helps in sorting through code samples online.  If you see <%: %>, you know that the code sample was produced for ASP.NET 4 or later.

Plugged in, not charging Windows 7 solution

I recently had the popular problem of Windows 7 battery manager malfunctioning and not charging my battery when plugged in.  The battery was fine, the power supply was fine, and the motherboard was fine (I have enough laptops with the same specs in the Clear Measure office, and I was able to swap out parts to isolate the problem).

I also searched for this problem online, and many folks are having this problem with all makes of laptop computers.  I found the steps that solved my problem here on the TechNet forums.

There are multiple solutions proposed, and here are the steps that fixed it for me:

  1. Disconnect AC
  2. Shutdown
  3. Remove battery
  4. Connect AC
  5. Startup
  6. Under the Batteries category, right-click all of the Microsoft ACPI Compliant Control Method Battery listings, and select Uninstall (it’s ok if you only have 1).
  7. Shutdown
  8. Disconnect AC
  9. Insert battery
  10. Connect AC
  11. Startup

Please comment if this fixes your problem so that others can solve their problem sooner.  I was surprised at how many people were having this problem with Windows 7.

Version Control & Build Systems – free Headspring on 5/18

Headspring is putting on another free workshop at the Austin Microsoft office.  This one will be led by Senior Consultant, Eric Anderson.  Here are the details:

Headspring Presents:

Version Control and Build Systems for Growing Teams a workshop by Eric Anderson on:

Does your team run into frequent conflicts with source control? Has your build system become a broken window with little hope of repair? Do you struggle to deploy minor changes and bug fixes while keeping the system stable? If so, perhaps this session is for you. Come learn how Headspring tackles these problems with source control strategies and continuous integration systems. This session will start at an introductory level and move on to more advanced tips and tricks for generally making your development life easier with version control and continuous integration.

Topics to be covered include:

  • Branching strategies in Subversion
  • Branching strategies in DVCS with Mercurial
  • Continuous Integration with Hudson
  • Continuous Integration with CruiseControl.Net

Tuesday, May 18, 2010
2:00 PM to 4:00 PM

Microsoft hosts Headspring at:
Microsoft Technology Center
9606 N Mo Pac Expy
Austin, TX 78759
(map)

Headspring training: What would you like to see?

Since January of 2008, Headspring has offered small, very advanced boot camp trainings.  These have been 3 days long and very fast-paced.  Everyone who has come through these training classes has proclaimed that they are the best organized courses they have ever taken.  Our approach to any of the boot camps is to team the practices that we employ while creating software for our clients.

We have an ASP.NET MVC Boot Camp coming up on 5/26 as well as an Agile Boot Camp on 5/19.

First and foremost, Headspring does deliverable-based project work.  We don’t do staff-augmentation, and we don’t sell our curriculum to training companies (mostly because we are always improving it).  These classes teach what we have learned regarding technologies and development practices via software projects with client.  Regarding ASP.NET MVC, four of our employees are authors on a book by Manning Publications on the topic.

If you would like to know more about our worldview of software and consulting, you can read our whitepapers, which are available via our website at http://headspring.com

Lastly, I ask, what would you like to see from Headspring to help you be better at your job?  I’m mostly asking programmers and people who manage programmers here.  We try to be an open book regarding our methods, so sharing is important.  There are many technologies and methods in which we are experts.  What offerings would you take part in?  Specifically, what offerings would you or your company be willing to invest in (with dollars)?  Let me know, and I’ll see what I can do to make them available.