Part 7: Creating the Source Code

Mon Mar 21 14:29:15 2016

Precis

This is a bit of a story, a bit of a history, a bit of a documentary, and hopefully a lot of entertainment and theatre about Shadowcat Systems.

We are ten years old and to celebrate that fact I want to write ten unique little pieces about Shadowcat that hold as a memory of our first ten years and a celebration of that decade down. All of these pieces are scheduled to be released throughout the whole of our 10th year.

An Open Source Consultancy?

We have always prided ourselves on being a good Open Source Consultancy, but what does that actually mean to us?

  • It might mean that we primarily use Open Source, which we do, in order to reduce costs to our clients.
  • It might mean that we use Open Source Tools as they represent the best of breed in a modern world, as proprietary software is often seen as sluggish, de-innovative and filled with protections that prevent adaptability and evolution.
  • It might mean that we engage with the philosophical concept enshrined by libre, that free software allows the sharing of not just work, but ideas, concepts, that it inspires instead of restricts.
  • It might be that we love communities and contributors.

The truth is that it is of course all of these. One element we pride ourselves on the most is that we are upstanding members of the community. Being part of Open Source isn’t just using the tools or agreeing with the methodology, it is contributing to the projects.

Over the years Shadowcat has created, or contributed, to a large number of projects, but some of the most memorable are:

  • Dbic (DBIx::Class) (http://www.dbix-class.org/) (https://metacpan.org/pod/DBIx::Class)
  • Moo (https://metacpan.org/pod/Moo)
  • Local::Lib (https://metacpan.org/pod/local::lib)
  • Fat::Packer (https://metacpan.org/pod/App::FatPacker)
  • Devel Declare (https://metacpan.org/pod/Devel::Declare)
  • Reaction (https://metacpan.org/pod/Reaction::Manual)
  • TAK (https://metacpan.org/pod/Tak)
  • Object Remote (https://metacpan.org/pod/Object::Remote)
  • Web Simple (https://metacpan.org/pod/Web::Simple)
  • Catalyst (http://www.catalystframework.org/) (https://metacpan.org/pod/distribution/Catalyst-Runtime/script/catalyst.pl)
  • Dancer (http://perldancer.org/) (https://metacpan.org/pod/distribution/Dancer/bin/dancer)
  • Moose (http://moose.iinteractive.com/en/) (https://metacpan.org/pod/Moose)

… there are many more

You Possibly Used our Software Already!

So this is an anecdote that I like to use, mostly to non-technical people, as it shows the influence of developing and engaging with community software. The conversation goes something like this:

  • Me: So you have probably already used some of the software we originally developed.
  • Them: I doubt it.
  • Me: Have you ever used the iPlayer?
  • Them: Yes.
  • Me: In the UK?
  • Them: Yes.
  • Me: So we created a piece of software called DBIx::Class and that was used by the iPlayer team at the BBC to power some of calls to databases on servers.
  • Them: Really?
  • Me: Yes, so there is a good chance that you used some software that we created and contributed for free.
  • Them: Wow.

Or sometimes…

  • Them: I bet you wish you had charged for it now?

Which is really missing the point. However to my knowledge there are still parts of the iPlayer substructure that use Perl and more specifically Dbic as an ORM, so even today there is a good chance that a large number of people have used some software that Shadowcat (more specifically Matt S. Trout) originally created. The project has now over 200 contributors and is a standard module for many people working with Perl and databases.

That’s one of the beautiful elements of working with Open Source and being an OS Consultancy, you never know what big thing you are going to be a part of and a whole lot of people are willing to help you create that just because it seems like a good idea to them as well.

Previous Articles

[Don't forget that you can join in this conversation by using the comments form or by tweeting at @shadowcat_mdk]





Notes





comments powered by Disqus

    *