Play to Grow Your DSpace Development Skills

Fri, 2015-02-20 09:33 -- kristi

From Ignace Deroost, @mire  When looking at the Github language statistics for the DSpace project, one could easily assume that a solid background in Java is all it takes to tackle most DSpace development challenges. It is still true that most of the database access and business logic resides in the Java part of DSpace. However, over the years the platform has been enriched with new technologies, standards and practices for a variety of different purposes. Today this means the “perfect” DSpace developer juggles Javascript just as well as Java, two entirely different languages. She also knows just enough about Linux servers to be able to update and deploy the platform while deciphering cryptic error messages that pop up once in a while.

The @mire boot camp for new employees takes a full month and touches upon all of these facets. Still, it is very rare to find all of these capacities in a single person. In our team, a Maven wizard can rely on a CSS ninja and vice versa.

Nobody wakes up one morning with all of these skills readily acquired. For this article we have selected a few fun and useful tutorials on skills that come in very handy during DSpace development.

Dine with CSS

As an acronym for Cascading Style Sheets, you should consider CSS the stylistic rules for your content. In a CSS file you address which items have to get which markup. This makes adding content that also looks good very easy. You just have to select the kind of content (or element) you want to add and it automatically gets the right markup when applying a certain CSS class to it.

Becoming familiar with the CSS spec that allows you to select the right elements is a fundamental skill you need to acquire. At first this might seem rather difficult, but once you are used to the commands you will start gaining your CSS skills. On this page you can start getting to know CSS by learning how selectors work. Each time you will have to select the right trays on the diner to proceed to the next level. Definitely worth trying!

Learn Git (or play with octocats)

When multiple people are working on the same project it’s important to make sure everyone is contributing to the latest version and people are not writing conflicting code. In other words; you want to have control over the versions people are contributing to. In technical terms this is called ‘version control’. Git is a powerful tool and protocol for distributed version control, adopted by the DSpace community in 2012. For that reason, you might have already used the Github platform when downloading DSpace. Even if you are not interested in contributing to the DSpace Open Source codebase, managing your own local customizations in a Git repository is highly recommended and can save you a lot of time.

Git works with branches. Each new development takes place in a separate branch, which is in fact an identical copy of the most recent version’s source code. Each formal contribution to such a branch is called a ‘commit’. When the coding work on a branch is done, it is added to the current main version (referred to as ‘master’). The process during which the total contribution is added to the main version is called a ‘merge’. By working on different branches developers are able to work alongside each other without conflicting. After separate developments are finished all of them are merged into each other. This version will eventually become the new master.

The previous paragraph might be somewhat difficult to understand if you are unfamiliar with the main concepts of version control. To get a first taste of how it works in practice, we recommend Github’s interactive tutorial.

Learn Git Branching is a more sophisticated game that goes deep into the details of the Git branching model and advanced features including “rebasing”. Try it out now and see if you can make it until the end without help.

Getting past the Shell Shock

Some developers regard any interaction with the Linux shell as a burden that adds just another layer of complexity to their jobs. In line with the DevOps movement, @mire firmly believes that a certain versatility with the linux shell is a requirement, not a nice to have. These skills have the potential of dramatically increasing developer productivity and enabling you to do things that are just not possible without going through the shell.

Playing Bandit is a good introduction to some of the most common shell commands. Similar to the previous games, the goal is to manage to get through each level so you will receive information on how to proceed to the next one. Start out with opening your terminal. Because contrary to the latter two games, you will be executing the commands on your own computer. So the whole thing isn’t simulated. Instead you are doing it in real life.

@mire’s DSpace training

As a registered Duraspace service provider, @mire offers specialized training sessions for repository administrators and developers. Contact us today to learn more about our training offering.

RSS Feeds: