How to choose a versioning scheme for your software

As a developer, there comes the time were you think about how to version your software. One approach is “Semantic Versioning” which leverages the level of change on your public API. Depending on what you changed in your code, Semantic Versioning proposes different version numbers:

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards-compatible manner, and
  3. PATCH version when you make backwards-compatible bug fixes.

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

Seems to be an appropriate scheme on versioning software. Which other schemes do you think about? Leave me a comment then I’m going to update this post accordingly.

Forbes Magazine features the Austrian Startup Scene

Forbes is one of the top magazines on business related topics. It published an interesting article called “Scaling Alpine Heights: Austria’s Startup Scene“on the Austrian Startup Scene. The following statement attracted my attention:

“The country is enjoying something of an entrepreneurial renaissance, driven largely by the return of some highly successful founders whose presence has awoken its capital Vienna from a start-up winter sleep.” [by Forbes]

The Austrian startups that made it to the article are the following ones (details on the startups can be found in the article and on their corresponding website):

Although Austria offers quite some support for starting a business (e.g. by granting loans, issuing bank guarantees and R&D grants, availability of cloud services such as AWS and Google App Engine) it is still not as startup friendly as it should be. High labour costs, high payroll-taxes and high health insurance costs not to forget the lack of real tax incentives for startups and startup investors to give some examples.

Florian Dorfbauer, CEO and co-founder of Austrian website feedback startup Usersnap states:

“I expect that Vienna will be the number one start-up hub of Central and Eastern Europe (CEE) – other CEE capitals like Budapest or Bratislava are within a few hours’ travel time – and I expect the dogma ‘Move to Silicon Valley or Die’ to shift towards ‘move some people to Silicon Valley and keep the core-team in Austria’, as there is little reason to expose an early- to mid stage start-up to Silicon Valley cost structures.

“And of course I expect a string of successes from my fellow start-up colleagues, so yes, I am feeling very optimistic about Vienna.”

If this is the future of Austrian Startup Scene then I’m looking forward to it. What do you think about the Austrian Startup Scene? Leave me a comment or drop me a note on @hmuehlburger.

(via forbes.com)

 

Eight elementary Skills every Entrepreneur should have

Do you think about starting your own company? Then you should think carefully about the elementary skills you need to do so. What are the eight elementary skills every entrepreneur needs? Thomas H. Byers et. al. compiled the following list in his book on “Technology Ventures – From Idea to Enterprise”:

  • Entrepreneurs initiate and operate a purposeful enterprise.
  • Entrepreneurs operate within the context and industrial environment at the time of initiation.
  • Entrepreneurs identify and screen timely opportunities.
  • Entrepreneurs accumulate and manage knowledge and technology.
  • Entrepreneurs mobilize resources (financial, physical, and human).
  • Entrepreneurs assess and mitigate uncertainty and risk associated within the initiation of the enterprise.
  • Entrepreneurs provide an innovative contribution or at least a contribution that encompasses novelty or originality.
  • Entrepreneurs enable and encourage a collaborative team of people who have the capabilities and knowledge necessary for success.

I encourage everyone to have a look at this great textbook. It contains a lot of useful information on starting your own enterprise.

(via Technology Ventures – From Idea to Enterprise by Thomas Byers, Richard Dorf, and Andrew Nelson)

Talk on Infrastructure at Scale: Apache Kafka, Storm and Elastic Search

The following talk gives a good overview on the technologies used by Loggly.com to build their scalable real-time-search log-processing infrastructure.

The slides of the talk can be found here:

Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303) | AWS re:Invent 2013 from Amazon Web Services

Stanford Large Network Dataset Collection

Stanford Large Network Dataset Collection
Stanford Large Network Dataset Collection

The Stanford Large Network Dataset Collection was published as part of the Stanford Network Analysis Project (SNAP). It consists of an interesting collection of large networks. The aim of SNAP is provide a general purpose network analysis and graph mining library.

The SNAP Collection contains datasets from various domains such as:

It is definitely worth of having a look at the different datasets. What dataset are you missing? What would you like to be added to the collection? Leave a comment below!

(via Hacker News)

Nine Building Blocks of Business Models

In Alexander Osterwalder’s business model generation canvas every organization’s business model can be described using 9 building blocks:

Customer Segments

This are all the people and organizations for which you are creating value. This includes simple users and paying customers.

Value Proposition

This are products and services that create value for each of your customer segments.

Channels

Channels describe through which touch points you are interacting with your customers and delivering value.

Customer Relationships

Customer Relationships outline the type of relationship you establish with your customers.

Revenue Streams

The Revenue Streams make clear how and through which pricing mechanisms your business model is capturing value.

Key Resources

Key Resources describe the infrastructure through which you create, deliver, and capture value. The Key Resources show which assets are in dispense of your business model.

Key Activities

Key Activities show which things you really need to perform well in order to succeed with your business model.

Key Partnerships

Key Partnerships describe which partners could leverage your business model, since you won’t own all of your Key Resources and you won’t perform all of your Key Activities by yourself.

Cost Structure

Having knowledge of your business model infrastructure helps you in describing your Cost Structure.

On YouTube you find the following video titled: ” Alexander Osterwalder: The Business Model Canvas” which shows you the building blocks:

(via Business Models and Technology Entrepreneurship – Part 1)

How to get Skype running on Ubuntu 13.10

I got Skype running on Ubuntu 13.10 using the following commands:

[code lang=”bash”]
sudo -s
mv /usr/bin/skype /usr/bin/skype-bin
emacs /usr/bin/skype
[/code]

Filling the file with the following content:

[code lang=”bash”]
#!/bin/sh
export LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1
exec skype-bin
[/code]

Don’t forget to change the file mode:
[code lang=”bash”]
chmod 0755 /usr/bin/skype
[/code]

(via timgood)

How to mount Novell directory in Ubuntu

First you have to install ncpfs using apt-get:

[code language=”bash”]
sudo apt-get install ncpfs
[/code]

Then mount your novell directories using the following commands:

[code language=”bash”]
mkdir /media/novell
sudo chown <localuser>:<localgroup> /media/novell
sudo ncpmount -S <name-of-netware-server> -A <fully-qualified-name-of-server-or-ip-address> -U <novellusername-using-dot-notation> -u <localusername> -g <localgroup> -o nfsextras,symlinks,tcp,rw /media/novell -p cp850 -y utf8
[/code]

This will mount all of the volumes. If you wish to mount a specific volume use the -V option.

Having issues? Just drop me a line.

Enable HTTPS everywhere

SSL-Report for blog.muehlburger.at
SSL-Report for blog.muehlburger.at

Finally I finished to configure my HTTPS protocol support for blog.muehlburger.at. Supporting encrypted communication is an important part of the internet today. Everybody should support encrypted communication on the web. A good resource on how to select strong cypher suites and to configure your web server to support encryption properly is bettercrypto.org.

There is also a great video covering the current state of the art in crypto held by security researchers at 30C3:

I configured nginx to support encrypted communication exclusively for my WordPress installation. The PDF guide from bettercrypto.org was a great resource for selecting the cypher suits and some additional parameters.

If you would like to configure your nginx webserver and WordPress installation to support https just drop me a message. I am pleased to help you with my experiences.

(via A year in Crypto)

Making Location completely unimportant

Working remote becomes more and more important to many people. Remote: Office Not Required written by Jason Fried (co-founder of 37signals) and David Heinemeier Hansson (original creator of Ruby on Rails) is a great book dealing with this topic. It describes in detail the benefits and problems of building a software company having employees working from remote locations spread all over the world. This gives them great flexibility and enables to recruit talents without being tied to a specific location.

Technology is thus enabling arbitrary numbers of people from around the world to assemble in remote locations, without interrupting their ability to work or communicate with existing networks. In this sense, the future of technology is not really location-based apps; it is about making location completely unimportant. (via Software Is Reorganizing the World by Balaji Srinivasan and ma.tt)

I like this notion of how technology creates new ways of working together finding solutions to real problems. I work remotely almost 100 percent of my time as a developer supporting our customers onsite. What about you? Do you work remotely as well?