Brian's Blog

items I see across my tribes

Google Corp Apps Email and Godaddy

March 30
by briancarter 30. March 2010 22:47

Have you signed up for Google corporate apps?  If you have a company and URL, you can get this for free:  Google Standard Edition is Free

Now that you have your account setup, you need to setup your MX records in Godaddy: Instructions here 

image

Now setup a CNAME so users have an easy url:  mail.ChipSoftTech.com:

image

Now go to Google and Update to use the CName.  Service Settings –> Email Settings –> web address.

image

Categories: Architecture

SQL Azure free 2 day boot camp

March 13
by briancarter 13. March 2010 09:41

Microsoft is have a free Azure 2 day boot Camp:  http://www.azurebootcamp.com/

For an executive overview, view the video.  Are you currently like this:

image

http://www.microsoft.com/windowsazure/videoPlayerPopup.aspx?w=720&h=480&vid=SQLAzure_720x480_FINAL_101609.wmv

How about this – Nice!

image

I’m trying to attend the Indy – or get Louisville on the tour list :-)

Categories: Development, Architecture

Document inside C# Code

January 10
by briancarter 10. January 2010 17:55

I’ve tried; tried to keep documentation updated in a Word doc or in HTML content site.  It just takes too much time and doco is the last thing I update when in a time pinch (all the time).

So here is what I did on my last project.  Focused on keeping the API documentation in the code.  It was still too much typing.

I found a tool that will generate the headers for the XML comments.  Download and install Ghost Doc.  Select the class, enum, or method – press CTRL-SHIFT-D … the comments are generated.  It does a good job reading the code and adding in a good description along with parameters.

GhostDoc: http://submain.com/products/ghostdoc.aspx

Now that your code has commnets – how do you pull it all together into a nice website.  Website because docs will die on the vine and no one will have access. 

Get CodeDoc.  CodeDoc is a free, shared-source tool from Dwell.Net that helps you generate a documentation set for your C# class libraries. CodeDoc converts XML comments into documentation topics, and lets you add "overview" topics. The output from CodeDoc is browser-based documentation browser with a table of contents and index. The documentation browser works either online (on a Web site) or offline (on a hard disk).

CodeDoc: http://www.dwell.net/

There is an associated Console app that runs to generate a doc folder with all the pages.  You will need to update the CodeDoc.xml so the tool knows where to pull and push everything.  Overview.htm, Sourcefiles.htm, SourceOverview.htm required updating for display messages when on the first few pages.

Run the Console app:

codedoc C:\@Code\iESP.WebServices\iESP.Webservices.Web\CodeDoc.xml

image

Documentation is generated.  Minimum steps to keep your API documented.  Really helps when working with partners or 3rd parties that use your web services.  Saved me some time.

Categories: Development, Architecture

Understanding the cost of Azure

December 07
by briancarter 7. December 2009 08:40

image

I signed up for an Azure account today.  It would be an excellent platform for cross University and Business opportunities.  In the cloud – scalable – increase/decrease resources as needed.

From a small business perspective, I need to look at costs.  My current provider is a shared, single server solution.  I looked at it from a perspective that I maxed out my current totals.  This may not be a fair comparison, since I don’t max them out each month.

My source for the Azure costs: http://www.microsoft.com/windowsazure/pricing/ 

Looking at the numbers, just the disk space is over 3 times the cost.  I’m sure the provider has many customers that don’t even come close to their max limits – thus the reason they can offer such a deal.  I’ve been with my provider for over 4 years with only one downtime (just minutes).  I have two services tracking downtime for me.  SQL Azure has a Web Edition with up to 1 GB for $9.99/month – still more than my current hosting package.

Please review my calculations and let me know if I’m wrong.  Send me your thoughts and any metrics I’m leaving out.  I know… Azure is clustered with guaranteed uptimes; I need to look at usage to get a true result on costs/month. 

I’m going to test out Azure with VS 2010.  Stay tuned for my feedback.

Categories: Architecture

XP: Small, Free Way to Use and Mount Images (ISO files)

December 04
by briancarter 4. December 2009 04:10

Alcohol and Daemon Tools are excellent software packages that allow users to mount ISO files as virtual CD-ROMs. Although I love these tools, Microsoft has a free, 60kb program that does the same thing!

 

Of course, it is not supported… and it’s not as friendly as the software listed above; however, it works and it’s free.

Here’s the download link: winxpvirtualcdcontrolpanel

(link from ChipSoftTech)

Here’s the steps:

    System Requirements
    ===================
    - Windows XP Home or Windows XP Professional

    Installation instructions
    =========================
    1. Run the exe to extract 2 files: VCdRom.sys and VCdControlTool.exe.  Copy VCdRom.sys to your %systemroot%\system32\drivers folder if is not already there.
    2. Execute VCdControlTool.exe
    3. Click “Add Drive” to add a drive to the drive list.
    4. Select an unused drive letter from the drive list and click “Mount”.
    5. Navigate to the image file, select it, and click “OK”.

    You may now use the drive letter as if it were a local CD-ROM device. When you are finished you may unmount, stop, and remove the driver from memory using the driver control.

Categories: Architecture

Is Software Development a batch Industry?

July 23
by briancarter 23. July 2009 07:52

image Strategy and execution in information intensive organizations is hard to handle because the nature of these businesses is abstract. Information is a slippery quantity at the best of times.

If only the software development industry had the hard characteristics of manufacturing industry: visible raw materials and measurable transformation processes. We might then be able to apply some of the wisdom used to reinvent traditional businesses for the modern competitive world.

In fact, software development is not so very different from factories. Manufacturing industry has much to teach us, especially in the area of “batch and flow”. In their classic work on "Lean Thinking" the application of Japanese “lean” techniques, the process describes how altering production processes to single-piece flow improves profitability, productivity, flexibility and time to market for companies large and small.

Can software development looks like a classic batch industry? Developers organized into specialized departments, trained staff process materials in a kind of production line. Workflow techniques make the manufacturing analogy explicit. Internal systems act as a conveyor belt, shifting work from station to station.

From another perspective, software development is also characterized by the most visible inefficiencies of the traditional batch approach: re-handling and holding. In batch manufacturing systems, parts or assemblies are frequently moved, stored, retrieved and reworked. Much of a product's period of creation is in fact spent sitting waiting. The same applies to the product design process. Software industry shares these characteristics, spending much of their time in queue or transit and with much staff and partner time dedicated to querying the current status of items.

Batch manufacturing takes its cue from the supposed scale economics of heavy machinery. If it takes several shifts to reconfigure a machine tool, then it makes sense to produce a large number of items between changeovers. However, the “lean thinking” movement in manufacturing targets faster turnaround of machine changes, reduced inventory and smaller, more frequent, deliveries.

If you know a structured development language, you'll appreciate that the bread-and-butter of the earliest business information systems was moving data items in and out of storage. If you can imagine a world before ubiquitous computing, you'll quickly conjure up a vision of file folders being pushed around in carts, dropped in in-trays and stacked on shelves.

If you could control every single aspect of a piece of business from inception to completion, then there would be no reason to delay that piece of business. It would occur in real time. You might, for example, design an product for a client, built it, and sell it in one continuous action. The reason you don't do this is most likely because you don't own all the pieces of the jigsaw or because you are set up with barriers that block such flows.

A difficult question.  Your software development shop is tooled with heavy machinery (version control software, databases, development tools and existing code, processes).  Is batch better for certain areas?  Can you improve areas of your development shop by removing delay?  How do you retool?

Thank You for listening.

Categories: Architecture

Building a Product

July 23
by briancarter 23. July 2009 07:23

GearsBuilding a product is different than building something only for you to use.  I find this true in many things that I have built.  When building a software application for a single need, you can write the code with specific logic with the known problem at hand.  You know the flow and the parameters.

Sometimes you can get a product by continuing to mature your specific application.  Most often, you need to have the mindset that this will be a product from the beginning.  You need to have a few best practices in mind:  never break old clients, use parameters, new features are turned off by default, and documentation. 

After going through the product development cycle many times, I find that by starting with the vision of a product – is often better in the long run due to change.  Any application that is more than a single run, one off, will need updates.  If you write your application for a specific need, you will break old clients or incur a costly “no going back” scenario.  Also, who knows, you may have the next killer app on your hands.  Sure, it requires more effort and requires you to develop a strategy – but shouldn’t we all strive for this.

So the next time your asked to create a new application, put your product thinking cap on.  Can you add a configuration layer, how about the option to include or not include features, and is there an existing product that I can start from?

Thank You for listening.

Categories: Architecture, Development

CINNUG Findings

June 24
by briancarter 24. June 2009 07:43

mailchimp Thinking like a traveler, I attended the CINNUM users group meeting yesterday.  Estimating was the topic; I did pick up a few items.  At the end of the meeting, the group was introduced to Agile Zen. 


Zen is a project management web tool that resembles a cork board I often use for providing insight to all team members on tasks.  Simple site, very clean.  It provides swim lanes where you manage index cards.  Check back later this month for the site to go live.

From my registration, I notice a nice email that was sent by MailChimp.  Another very clean site and a service that I have been looking to include with one of my products.  I will keep you posted on my findings.

Categories: Development, Architecture

Set theory

June 07
by briancarter 7. June 2009 06:14

0670320703051

Many moons ago, in my first CS classes – I was introduced to set theory.  To me, this is a very natural and logical way of looking at objects.  The theory is applied often in mathematics and is very relevant in many domains.

Then came along my introduction to relational database management systems (DBMS).  I saw the direct correlation between sets and the DBMS.  Again, a very natural way of looking at data.  Over the years, after developing many systems, I once again struggle over set processing and flow processing; where the later refers to writing a program to iterate over the objects or data points.

Why am I telling this story?  I have a great tool that is basically a big set engine.  You configure the engine by defining sets and by using SQL, derive your solution.  It is very dry and simple.  I too like the ability to see operations applied one record at a time – but at this point in my busy schedule – if I don’t need to write custom applications (plus all the time to deploy), using my proven set tool allows me to focus on the business requirements at hand.  Also, I found that by truly understanding the data provides insight into architecting the solution.

To look at the world as a collection of objects in a set, manipulate the set through their relationships, in a relational DBMS may solve 80% of my project trials.  I will take it and use the other 80% of my time on the last 20% that require complex business logical processing.

Thank You for listening.   

Upcoming Microsoft Event May 14th

April 16
by briancarter 16. April 2009 15:15

 

It looks like Microsoft is providing a day packed full of technology learning on May 14th at their Mason office.  Here’s the line up for the day:

  • ArcReady (9:00 AM – 11:45 AM): Architecting for the Client Tier - (Register Here)
  • MSDN Unleashed (1:00 PM – 2:50 PM): IE8 For Developers & Developing for Windows 7 - (Register Here)
  • TechNet Events Unleashed (3:10 PM – 5:00 PM): Windows Server 2008 R2, Windows 7, & IE 8 – (Register Here)

All three events will be at the Microsoft Office in Mason.  Review the content or other cities:

 

Categories: Architecture, Development


 Questions or Feedback, my contact information is located on my About page.


The opinions, thoughts, and comments made in these blog posts are solely my own (unless otherwise stated). They do not reflect the opinions, thoughts or practices of my employer, my universities, my family, or anyone else. Also, I retain the right to change my mind about anything I publish here without having to go back and edit posts that occurred in the past. 

These are my opinions, or just as likely, someone else's opinions that I leveraged for my own.