Archive for the ‘tools’ Category

AgileDash Business Plan

Friday, May 28th, 2010

AgileDash, our flagship product which is an Agile project management tool which we be capable of running in multiple platforms.  The first platform AgileDash will be available on is Microsoft SharePoint, which we are naming AgileDash SP.  AgileDash SP was originally planned to be released for the new and powerful Microsoft SharePoint 2010 platform.  However, as much as I want to develop against SharePoint 2010, most people and potential customers are still using 2007 and they will be for the near future.  There are several reasons for this, the main reason is that SharePoint 2010 is 64 bit only.  This is a good thing since it gives 2010 the ability to be more powerful by being able to scale vertically as well as horizontally.  This also comes with a price to pay that a lot of customers are running 32 bit hardware still, they have heavy investments in this hardware and it will take time for them to convert over.

Now with all of that said, this was not a light decision on our part.  SharePoint 2010 offered a rich client API for us to develop against with Silverlight and jQuery.  SharePoint 2007 however does not offer this, and its extremely difficult to develop against when it comes to client side applications, in particular rich interface applications such as Silverlight.  I ran across something that changed my decision drastically, Marc D Anderson has been working on a jQuery framework called SPServices that acts as a proxy to the SharePoint 2007 web services that lets you easily and naturally program against.  He is actively developing this framework and it supports a large degree of functionality.  I plan on working closely with Marc to develop and get this framework working in Silverlight.

I plan to start testing several scenarios in Silverlight calling out to the SPService jQuery library immediately.   I will be posting about my findings on how this is working, what the performance is like, etc.

Domain Model and MongoDB – The perfect couple?

Tuesday, May 4th, 2010

I have been researching the best way to store data for our main application, and I ran into the NoSQL movement.  Not sure how I missed this movement, it has been going on for a while now, and it makes perfect sense.  The gist of it is, most people take the typical RDBMS for granted and just use it because its the de-facto standard.  Well thats what the NoSQL movement is all about: do I need all the features an RDBMS has? Do I need strong relationships? Do I need strong ATOMICITY?  In recent years most people have been using OR/M solutions to shield their Data Domain from such complexities.  A very popular OR/M solution and framework is Hibernate.  But why take a domain model and map it out into a normalized database, and then do the reverse when its time to read?  The only reason I can think of is if you need a high level of ATOMICITY, because Document Databases – which is what NoSQL is pushing have come a long way.  They are faster in nearly all cases than traditional RDBMS such as MySQL, MSSQL, and Oracle, and they are very lightweight reducing overall footprint.

The DocumentDB that I chose is a very popular one called MongoDB,  there are others such as CouchDB, and DB4O.  MongoDB stores all of its data in a binary form of JSON commonly referred to as BSON (Binary JSON), it also stores off these objects using MemCache techniques to improve overall performance.  It uses drivers, to communicate with the DB over TCP/IP, they also have a REST based driver if you want to query it using REST.  The .NET driver that I prefer to use is NoRM because it offers a very transparent ability to take c# objects and save them straight off without having to write any JSON statements yourself.

Using a DocumentDB gives you the ability to store your composite aggregate domain objects “as is” in the database. What this means is that I do not create a schema on the database, I do not create relationships.  I create my domain aggregates with their complex types, and then save them into the document DB (sometimes referred to as deflating).  When it is time, I query for that aggregate, and it comes back and inflates my object with all the data in all its composites.

So What is a Domain Model Aggregate?  An aggregate is a set of classes that defines a grouping of related data.  In example:

pseudo code:

class Person
string firstName;
string lastName;
Address address;
Person[] references;

class Address
string address1;
string address2;
string state;

In this simple example. Person is an aggregate because it is the root level object that will always be used to access its child objects.  That’s not to say that those objects will never be used independently, but it is to say that in the context of your domain, Person represents a root object.  This comes in very handy with Document DB’s because when you store this, you store it “as is” with all the data in Person, Address, and References.  So when you retrieve it, it’s one single query.  It also lets you create a more” true” Domain Model because performance for creating deep composition is less of  an issue.

You can read more about the topics I have discussed at MongoDB, Ayende posted a good article about this which explains how a DocumentDB is not relational.

S#arp Architecture 1.5 Beta 1 Released

Thursday, March 18th, 2010

S#arp Architecture 1.5 Beta 1 has been released, this is big news for anyone wanting to use a solid ASP.NET MVC 2 architecture built on NHibernate, NHibernate Fluent using all best practices.  You can read more on their mailing list and on Allec Wittingtons’ blog.

Here are the release notes via Allec Wittingtons’ blog:

  • Built on top of ASP.NET MVC 2 RTM release
  • Use of built in areas to replace the original home grown ones
  • Updated ModelBinders
  • Jquery updated to 1.4.2
  • Addition of ‘Enterprise’ CRUD generation based on Application Services and CQS
  • Addition of Database project to go along with above
  • Updated NHibernate to 2.1.2.4
  • Updated Fluent NHibernate to 1.0.0.629
  • Updated Castle
    • Core – 1.2
    • Dynamic Proxy – 2.2
    • MicroKernel – 2.1
    • Windsor – 2.1
  • various bug fixes

I will be converting over immediately, so hopefully all goes smooth!

Balsamiq Mockups vs. Microsoft Sketchflow

Tuesday, February 16th, 2010

I have been a long time Balsamiq Mockups user & fan, having used it for as long as I can remember it existing (about 1.5 years now), and I have to say it’s the best in it’s category.  Today, I did some training with Microsoft Sketchflow for Silverlight using Expression Blend 3. This gave me the opportunity to do a comparison between the two products.  First off, I might mention that Sketchflow is most certainly an afterthought on Microsoft’s part– it utilizes the complex UI of Expression Blend, without being a seemingly competitive product, as is typical.  As I understand, it comes with Expression Studio 3 for free.

While Microsoft Sketchflow is designed for WPF, as well as Silverlight sketching & prototyping, Balsamiq’s design is geared more towards mockups.  Does this matter?  Is prototyping with mockups (or sketches as Microsoft calls them) more effective than static mockups?  Honestly, I don’t think so– I think in a very large, high risk project it might make a difference when considering specific points.  First, is the time spent designing this prototype using sketches, which happens to offer zero return when you start the actual development.  Prototypes will buy you customer clarity– you can demonstrate animations, workflows, and user interface interaction much better than utilizing static images.  However, as I mentioned previously, I believe the amount of projects this applies to is minimal, geared more towards the larger, high risk implementations.

So why is Balsamiq Mockups better? Well, I don’t think the two products are exclusive.  They could certainly compliment each other, however, they do compete at similar goals.  From my experience with both, in generating mockups quickly & efficiently, Balsamiq Mockups is hands down the winner.  Even with ZERO training, you can generate mockups in seconds, provide them to the customer, present them for feedback, or utilize them in a meeting with the customer making the changes.  Balsamiq truly is that easy to use, especially considering the ability to make changes to your mockup in near real-time with the customer present!  This alone makes Microsoft Sketchflow not worthy of the time required for training and basic use of it.

For instance, I did 4 hours of training with video based tutorials before I could efficiently use Microsoft Sketchflow, while with Balsamiq Mockups I did zero training, yet was able to create both complicated & detailed mockups the first time.  That is an important point to consider, especially when running your own business.  Overall, Sketchflow looks powerful, but also seems to miss the target… or perhaps I am not the type of audience Microsoft was aiming for.

Check out Microsoft Sketchflow or Balsamiq Mockups, and compare it yourself.  They both offer free trials, and I personally recommend Balsamiq Mockups…

Micro-ISV Backup Strategy

Saturday, February 6th, 2010

A backup strategy for a micro-ISV is one of the most important things you could have, you are not typically working in an enterprise environment, you do not have the hardware, tools, or money to afford expensive backup solutions.  You also need a solution that is more redundant and automatic than the typical home user backup strategies.  I am going to discuss a couple of solutions, and ultimately the solution I chose to take, and future plans I intend to take.

On Site Backup (keeping it simple, and free)

First and foremost, getting a backup solution in place is very simple.  If you are using Windows you can simply use the built in back up tool, point it at a USB drive and be on your way. If you are using OSX you can use Time Machine.  I have a pretty good experience with Time Machine,  but a horrible experience with the Windows Backup Utility, even the one that comes with Windows 7 fails for me about 75% of the time.  So I chose not to use it, I still use my Time Machine for my mac computers.

On Site Backup (keeping it moderately simple)

The next choice is to use a server setup, you can buy a very cheap Windows Home Server for around 400 bucks, about 1TB of space.  It has an easy to use web interface, allows you to plugin more hard drives that it will automatically add to its virtual disk space.  It also comes with a nice set of backup tools, I have many friends that use this solution and it works great for them.  I however, do not have enough space at the moment to use it but I plan to implement this shortly.

Read more about Windows Home Server

HP EX475 MediaSmart Home Server 1TB (Amazon.com)

Off Site Backup

Next up is off site backup strategies, these are often used by enterprises in the event of a catastrophe, such as a fire, etc.  For a micro-ISV this is essential to have mainly because the hardware you are using to do your backups on is not going to be very redundant.  Redundancy is expensive, not only in hardware but in electricity to power all the extra hardware to implement it.  That is why it is more cost effective, in fact free in some cases to use an online backup strategy.

I chose a very popular online backup company to do this, that offers 2 GB for free.  They also encrypt your data using 448 bit encryption before it gets sent up the wire to protected your intellectual property.  They have a tool that you can download, it will run a backup every 12 hours and sync with their server.

They also have a Pro version that lets you get more involved, backing up servers, multiple computers, etc.

Read more about Mozy

Online File Storage

Not really a backup solution, but a way to protect your important documents.  Using an online file storage mechanism will let you keep your files on a server in the cloud that is running on redundant hardware, they also tend to have pretty serious disaster recovery plans in place to protect your data.  The most popular one I use is called DropBox, not only does it protect your file but it lets you keep these files in sync on all of your computers.  It installed a folder on your computer, you put file in it, and they get synced automatically to the cloud, and to any other computers you have DropBox installed.  It works seamlessly behind the scenes, and its awesome!

Read more about DropBox

Protecting Non-Documents

Last but least, and something that is often overlooked in backup strategies is notes.  Lets say you jot down a note, a phone number or something important.  This information is often lost by getting tossed, misplaced, or if you use your computer to save your notes off you may overlook that location when doing backups.  The best way to protect this is to store them in the cloud, much like DropBox, but more focused on less formal documents.  I use Evernote for this process, its easy, simple and they have support for it in multiple forms.  They have an iPhone Application, OSX App, Windows App, WebApp, etc.  so that at any time, any place, you can quickly save a note into the cloud.  These notes also get synced to all your other devices that have Evernote installed so its a seamless experience.

Read more about EverNote

Additionally if you need to protect your email, calendars, and documents in one central place you can use Google Apps for Business.  They offer GMail, Google Calendar, Google Docs, and more for your domain.  There is a free and a pay version, the free version is a little bit difficult to find on their site but its there with a couple of small limitations.  The pro version offers much more space, among other things.

Read more about Google Apps for Business

Time Management for a micro-ISV

Friday, January 29th, 2010

Your pushing hard to release your new product, you have a mortgage bill, an electricity bill, you need to spend time with your family, etc.  How do you manage all of this successfully?  Well there are entire books written on that topic, and I am going down this path right now. As you know starting a micro-ISV is no easy task.  Today my 18 hour work days caught up with me,which made me very ill earlier in the day.  I should have no excuse, I did not follow my time guide.  What is this time guide?  Well over at the MentalProcreation Blog, Tarek Demiat, the owner of Sun Softworks has come up with an excel spreadsheet that will slice your time up and show you how a typical day is broken down.

Funding a micro-ISV is typically done through a full time job, working for somebody else, this is not uncommon.  This obviously puts quite a strain on your life, so it is essential to learn how this time is being used, and to schedule time for the micro-ISV.   This is the pitfall I ran into, I tried to work too many hours, and my body told me I needed some rest.

My Time

As you can see it’s not too bad, and in reality I do actually work more than what is sliced up in the chart.  Now that may be the problem, because I will burn myself out and then take a whole day off.  If I sustain a constant stream of time towards the micro-ISV instead of going overboard and burning myself out and losing 8-12 hours from that whole day then I may be able to get more done.  I will continue to do some self improvement on this, work on my schedule some more.  I already have my iPhone tell me to do work from 8pm – 12am every workday, that gives me about 2 hours to eat, and wind down after my job.

I recommend you download the excel sheet from Tareks’ blog and give it try yourself.  I would be interested in how others compare to my own.

Beginning The Journey

Sunday, January 24th, 2010

As a philosopher once said:

A journey of a thousand miles must begin with a single step

- Lao Tzu

So it begins, the journey of starting a micro-ISV and getting it off the ground.  To say the least this is definitely an audacious endeavor for myself, and I am going to blog my journey as it progresses through the tough and the good.  I know I am not alone on this journey, and there are many resources at my disposal.  If anyone else is starting their micro-ISV I highly recommend reading any of the books written by Bob Walsh.  Additionally Bob Walsh has started a new site that is designed to guide a micro-ISV down the path of success.  It is called StartUpToDo (S2D), be sure to check it out.

Also would like to reference a blog of another micro-ISV, one that develops software I use passionately and absolutely love.  The Balsamiq Mockup software, Peldi Guilizzoni is a great guy and his software is the absolute best for doing Mockups without a single doubt.  A mockup should be quick, rough, and easy to change and annotate.  You should check it out if you are interested in that type of thing.

The first product that I have been working on will be announced when it reaches alpha stages and is almost ready for testing.  Lets just say it involves Agile project management methodologies, and as a Certified ScrumMaster this is a passionate area of mine, and one of which I believe has a particular pain point for lots of Microsoft customers in the enterprise world.  I have many years of experience in this field, working with Microsoft consultants, consulting for Microsoft and their projects.  Working with other vendors integrating these Microsoft components into their environment and trying to utilize the tools they have at their disposal to work with their management style.

THINGS ACCOMPLISHED

  • Identity branding (Elucidsoft), a play on words based on Euclid a greek Mathematician from back around 300 BC, known as Euclid of Alexandria. It is also an additional play on words, with the words Electronic, and Lucid.
  • Legalizing the LLC with the federal, state, and county governments.  Many methods could have been taken here, I chose to use LegalZoom for the convenience and their reputation.
  • TradeMark the company names, this one is optional but worth while if you plan on sticking around.
  • Creating a EULA, and Privacy Agreement
  • Identifying the pain point and product idea.
  • Get and register any/all domain names, protect the domains with domain locking and privacy features, as well as domain parking. I chose to use GoDaddy for this and let me tell you, I do not regret spending the extra money in any way.  The deep control of the DNS and MX records is reason enough to go with their service, not to mention their excellent support.
  • Get an affordable host, I chose DreamHost for a couple of reasons.  They are very affordable, offer source code repository, offer a multitude of installable applications such as WordPress.  Now you may be thinking, I am a Microsoft guy, why am I using Linux and OSS? Well my philosophy in life has always been, use what works for you at the time of need.  At this time I can not afford Microsoft hosting, my ultimate goal however is to get to that point for a couple of reasons I will mention when that time arrives (not because of any negatives against Linux or OSS, they are great platforms).
  • Setup your Domain email and calendars, which I chose to use Google Business Applications.  They offer free Gmail, and Google Calendar among many other Google applications for your domain name.

THINGS IN PROGRESS

  • Website Logo, I chose Logo Design Guru for this, I have never used this company before nor has anyone I know used them.  I got this from doing some web searching, and research.  I will let you know how it turns out.
  • Website Design, I still have no decided on how to go about this, I am more than capable of doing this myself.  However, time is of essence and I would rather focus my time on developing the product than the website.  I will most likely choose someone to do this for me, Bob Walsh recommended a designer to me and I will contact them shortly to inquiry about the work.
  • Source control, getting my SVN up and running with DreamHost, or if I decide to use an in house solution
  • Many more things…