Principles of Marketing

Besides all the marketing theories, there are basic principles to keep in mind:

  1. Your product should create value – otherwise you won’t make money with it.
  2. Marketing is the internal spokesman of your (potential) customers.

These are the implications:

Make sure your software is useful since day one. Focus on usability and stability. Implement functionality that solves daily needs and fight bugs fiercely. Make sure you have at least these processes of product development institutionalized: defining a roadmap for adding or changing features, specifying those features in more detail, implemention, feature freeze, testing + feedback from beta users, bug fixing, roll out.

As a marketing person, think like a customer and be clear and honest to your colleagues. Remember: Though you get paid by the company you do marketing for, your customers don’t. At best, customers tell you what they would like to see optimized in your software. In the worst case, they simply won’t care about your product. Hence, marketing needs to anticipate customer opinions and ensure a product’s usefulness.

Installing Mindquarry from SVN on Mac

With some help from Lars, I managed to get Mindquarry up and running straight from the SVN repository (this is where the development code resides). I did this to have a look at the development status of the upcoming 1.1 release.

It’s a cool feeling to live on the bleeding edge and to see daily improvements to our software immediately. Wanna do the same? Here’s a foolproof how-to which is intended to also help those who are not really familiar with the command line. A much more concise how-to is available in the Mindquarry documentation. Those of you familiar with Java development might want to take look there to switch to the fast lane.

Operating system

I run Mac OS X 10.4.9, but I guess this brief tutorial will also help you on any other unixish operating system.

Terminal aka command line aka shell

Let’s wake up the sleeping monster: the terminal window. You can do so by typing “terminal” into the spotlight window and by choosing the “Terminal” program as displayed in the screenshot below:

Finding Terminal Program via Spotlight

Let the monster relax a bit in the background and proceed with the following tasks.

Installing Subversion client

Install Subversion to access the development code and to download it to your computer. Luckily, Lars pointed me to this easy to install .dmg Subversion package by Martin Ott.

Installing Maven

Below you will see how to download the source code onto your computer with the Subversion client, but first, you must download and install Maven to later be able to build the Mindquarry application from that source code. Installing Maven is actually quite simple.

Get the .zip package from the Maven download page, and place it e.g. in your personal directory. Unzip the archive (I use The Unarchiver) and move it to /usr/local/maven-2.0.6 by issuing the following command in the terminal (the monster you woke up – remember?):


sudo mv ~/maven-2.0.6 /usr/local/maven-2.0.6

That’s all!

Easy access to Maven and Subversion via command line

I made sure that I can conveniently access Subversion on the command line with just typing svn instead of providing the full path to the executive binary. Same goes for Maven with the mvn command.

Type into the terminal window:


nano -w ~/.profile

This will open a simple text editor within the terminal window. There you enter (you can copy&paste from here):


export PATH="/usr/local/maven-2.0.6/bin:/usr/local/bin:$PATH"

Press CTRL+X and confirm with Y that you want to save the file. You can check if all worked out well by issuing the following command in the terminal window:


echo $PATH

… which should display a text containing the above given paths.

Getting the code

Before you type something into the terminal window which should just have popped up, you create the directory where you want to put the Mindquarry SVN code which you will download as the next step. For example, create a directory called mindquarry-code in your Documents folder.

Now, change to the newly created folder in the terminal window. For example by entering


cd ~/Documents/mindquarry-code/

The ~ indicates your home directory, where your personal folders on your Mac reside.
Type the following into the terminal window and execute it by pressing the return key to obtain the Mindquarry source code:


# svn co https://www.mindquarry.org/repos/mindquarry-collaboration-server/trunk/ mindquarry-code

Note the https: Make sure you have it included, otherwise you won’t be able to get the code. You will most likely be asked to accept a SSL certificate after execution – please do so.

Simply wait until all the code has been downloaded, then proceed as follows.

Building Mindquarry with Maven

To build the application with Maven, change to this directory in the terminal window:


cd ~/Documents/mindquarry-code

Issue this command and wait until execution is done (which might take a while):


mvn install

Now you are done with building.

Configuring Mindquarry and your environment

You just need to do one thing to configure Mindquarry properly before running it. Copy the properties file to the folder above. In detail this is in the terminal window:


cd ~/Documents/mindquarry-code/mindquarry-webapp/mindquarry-webapplication

Then:


cp mindquarry-webapplication.properties/config.template .

The cp command – you guessed it right – copies the file to the current directory.

Open the properties file with


nano -w mindquarry-webapplication.properties

and make sure that the following properties are declared as shown


mindquarry.jcr.path=file:/var/mindquarry/jcr

mindquarry.solr.path=/var/mindquarry/solr

mindquarry.repos.path=/var/mindquarry/svn

If you are just building from SVN to try out Mindquarry and do not want to develop the code, then I recommend you let Mindquarry run in production mode, which is much faster. To do so, change the following property:


org.apache.cocoon.mode=prod

Just like before, press CTRL+X and confirm with Y to save the file.

In case you actually plan to develop Mindquarry, then keep this property as it is. When running Mindquarry in development mode, it needs quite some RAM because pages need to be build repeatedly upon request. Hence, to make sure that Mindquarry runs sufficiently fast on your system, raise the amount of memory it has available. To do so, create the respective file by entering to the terminal window:


nano -w ~/.mavenrc

There, add these two lines (copy&paste from here):


#!/bin/sh
MAVEN_OPTS="-Xmx512m $MAVEN_OPTS"

Press CTRL+X and confirm with Y to save the file.

Running Mindquarry

Create the directory /var/mindquarry, because Mindquarry needs it to run properly. Do so by typing into the terminal window:


sudo mkdir /var/mindquarry

You will be prompted for your password and then the folder will be created.

To make sure the folder is accessible for Mindquarry, issue the following command in the terminal:


sudo chmod 777 /var/mindquarry

Now comes the fun part because you will soon be able to play with the hot hot Mindquarry development version. Make sure the terminal is ready for execution in the right folder by issuing this command:


cd ~/Documents/mindquarry-code/mindquarry-webapp/mindquarry-webapplication

Now you can start Mindquarry with:


mvn jetty:run

Wait until you see the following information appear in the terminal window:


[INFO] Started Jetty Server
[INFO] Starting scanner at interval of 15 seconds.

Now open your browser with this URL: http://localhost:8888 and login with username “admin” and password “admin”. Enjoy!

Remember that you are playing with fire, because you installed development code which is usually work in progress and can thus be highly unstable.

Stopping Mindquarry

To stop Mindquarry, press CTRL+C in the terminal window.

Updating from SVN

The good thing is of course that you can now repeatedly update the source code to get the very latest changes and then build and run Mindquarry again. Simply follow these three steps and you’ll be a part of bleeding-edge Mindquarry development:

  1. Issue the command svn up from within the ~/Documents/mindquarry-code/ directory (by now, you know that with cd you can switch to this directory in the terminal window).
  2. Type mvn clean install from within the folder ~/Documents/mindquarry-code
  3. Enter mvn clean package jetty:run from within ~/Documents/mindquarry-code/mindquarry-webapp/mindquarry-webapplication

To really be sure that all the potential JavaScript updates work, empty the cache of your browser.

The Open Source Promise

Panel I attended the panel discussion entitled “The Open Source Promise” at Red Herring Spring 2007 yesterday. Here are the aspects I found most interesting:

Marriage of SaaS and Open Source

Most of the panelists do a mixture of traditional Open Source model (software + services) and Software as a Service (SaaS). Seems like this becomes the mainstream business model for Open Source products that are useful for end users/consumers. At Mindquarry, we’ll offer a hosted solution of our Open Source product as well.

Ranga Rangachari (Groundwork Open Source) sees a general move away from the typical use of self-hosted Open Source software within enterprises towards SaaS.

Bill Soward (Adaptive Planning) described that there’s a successful path for lead generation from those who download and try out the freely available Open Source product and then simply buy a subscription for the SaaS offering to use it in production.

Bob Walters (Untangle) made a highly interesting general comment on the “marriage of Open Source and SaaS”: The central issue here is that e.g. a (the?) major SaaS provider, Google, made several great improvements to the Linux kernel but does not give them back to the community. Here, SaaS works against the community spirit of Open Source. GPL v3 is supposed to help avoid this issue.

Community is your main business

Bob Walters made a good point in saying if you miss attracting a developers community, you miss 75% of your business.

Linux will win the mobile market

Dells recent announcement to ship their computers packaged with Ubuntu lead to the question of Linux on the desktop. Michael Sikorsky (Cambrian House Inc.) stated that Linux will definitely win the mobile market, even if it won’t make it on the desktop.

How to provide support for all Linux distributions

Mike Guiterman (SourceFire, the company behind Snort) made a general comment on what the diversity of available Linux distributions means to his Open Source company: They make sure that their product supports the main distributions and have the community provide solutions and services for all other.

Datamation Lists Mindquarry as Bleeding-Edge Open Source Company

Datamation just published an article entitled Ten Bleeding-Edge Open Source Companies:

Firms that represent the future of open source, from start-ups to established enterprise plays. We look at strategy, funding, and management.

The article also sheds a light on Mindquarry and IMHO, they paint a realistic competitive landscape and identify the main challenges as well as potentials for Mindquarry.

We see a lot of potential in our unique and compelling business model, which can be described as “Web 2.0 meets Open Source”. We (will) offer Mindquarry packaged as

The combination of these is a huge competitive advantage. For example, users of our upcoming SaaS offer can potentially also use Open Source clients for Mindquarry (e.g. to manager their tasks offline) developed by our community (e.g. for their PDA or Mobile Phone).

Sandro and Stephan on Tour in California

01052007116Just uploaded some pictures of our trip to Monterey, LA, SF and our first day.

Stephan already wrote a bit about our trip and I won’t add anything to that, because I really don’t like blog posts where people write about all the problems they had on their plane or train or car or etc. ride.

You can find the pictures in my Flickr collection for this trip. I will be adding some more pictures in the next few days until we’re back home Sunday – just keep an eye on the collection for updates.