From 427bfca17e04dc8e508eb0482fac2d147b074058 Mon Sep 17 00:00:00 2001
From: "Uwe Jandt (DESY)" <uwe.jandt@desy.de>
Date: Tue, 1 Dec 2020 16:32:16 +0100
Subject: [PATCH] added software news posts 2020

---
 ...20-01-07-contributing-in-4-simple-steps.md | 225 ++++++++++++++++++
 .../01/2020-01-28-software-policy-template.md |  76 ++++++
 .../2020-11-07-survey-results-language-vcs.md | 149 ++++++++++++
 3 files changed, 450 insertions(+)
 create mode 100644 _posts/2020/01/2020-01-07-contributing-in-4-simple-steps.md
 create mode 100644 _posts/2020/01/2020-01-28-software-policy-template.md
 create mode 100644 _posts/2020/11/2020-11-07-survey-results-language-vcs.md

diff --git a/_posts/2020/01/2020-01-07-contributing-in-4-simple-steps.md b/_posts/2020/01/2020-01-07-contributing-in-4-simple-steps.md
new file mode 100644
index 000000000..36e5acf8f
--- /dev/null
+++ b/_posts/2020/01/2020-01-07-contributing-in-4-simple-steps.md
@@ -0,0 +1,225 @@
+---
+title: Contributing in 4 Simple Steps
+date: 2020-01-07
+authors:
+  - erxleben
+layout: blogpost
+title_image: default
+categories:
+  - tutorial
+tags:
+  - example
+  - markdown
+excerpt:
+  Want to contribute? No time to read long tutorials?
+  Then this contribution quickstart guide is for <em>you</em>.
+additional_css:
+  - 2020-01-07-contributing-in-4-simple-steps/button-link.css
+---
+
+# What This Guide will (not) Cover
+
+This tutorial will teach you a quick way to get a basic blog post set up and
+published on [software.hifis.net](https://software.hifis.net).
+If you plan to write something bigger that might take several days to write up
+and refine, [Christian's Guide][ref1] is the better choice for you.
+
+The guide will not go into the details of fancy formatting and styling,
+however you might want to check the [Template Blog Post][ref2] for
+examples of common blogging tasks.
+Additionally, the [Kramdown Quick Reference][ref3] may prove helpful.
+
+_Okay, enough chit-chat, let's write a blog post!_
+
+# Step 1: Create an Issue
+
+By opening an issue you let the core team know what you are planning
+(which is a nice thing to do).
+It helps to gather the important information right from the start.
+
+{: .button-link}
+[Open a new issue on the HZDR Gitlab now][issue-link]
+
+Fill out the information as requested in the
+
+```
+>>>
+  Quotation blocks
+>>>
+```
+
+There is no need to set anything else, so you may now click the `Submit Issue`
+button.
+You will get redirected to the **issue page** that was just set up.
+Here you can lead a discussion with other contributors and the core team about
+your ideas or ask questions you have beforehand.
+It might be a good idea to bookmark it for later reference.
+Also note that your new issue has been assigned a unique **issue number** to
+identify it.
+
+On this **issue page** you will find the `Create merge request` button.
+Click it to continue to the next step.
+
+# Step 2: Set up the Basis
+
+_Gitlab_ now has set up a **merge request page** for you and — even more
+important — created a new _branch_ for your issue.
+
+> If you are not familiar with _git_ think of a _branch_ like your own version
+> of the project, where you can do whatever you like without worrying about
+> breaking anything on the live system.
+
+To avoid chaos and confusion, specific ordering and naming conventions have been
+established, dictating which files go into which folders.
+
+For that purpose you can click the `Open in Web IDE` button on the
+**merge request page**.
+This _Web IDE_ is like a small file browser and editor in one and all you need
+for the rest of the tutorial.
+
+## Everything in the Right Place
+
+Your blog post must be put into the folder `/_posts/YYYY/MM/` where `YYYY`
+is the 4-digit year, `MM` is the 2-digit month (and later we need `DD` for the
+2-digit day).
+If this path does not fully exist, you should now create it.
+
+{:.treat-as-figure}
+{: .float-left}
+![Dropdown Menu example]({{ site.directory.images | relative_url }}/posts/2020-01-07-contributing-in-4-simple-steps/create_folder.png)
+The dropdown-menu to create a new sub-folder becomes visible on hovering the
+parent folder.
+
+This is the folder in which your blog-post _per se_ will be located.
+If you want to include images, formulas or external resources a bit more has to
+be done.
+Please either refer to the [Blog post template][ref2] or ask
+`@software-hifis-net` for help in a comment on the **merge request page**.
+
+## Files
+
+Within your (probably newly created) folder you now create a file with your blog
+post.
+The file must be named after the pattern `YYYY-MM-DD-title-slug.md` where
+`YYYY`, `MM`, `DD` is the same as above and the `title-slug` is — surprise — a
+slugified version of your blog post title.
+
+> If you do not know, what _slugification_ is, do not despair: There is an
+> [online generator][slug-generator] that can do that for you.
+
+For comparison, the full path of this blog post looks like this:
+
+```
+/_posts/2020/01/2020-01-07-contributing-in-4-simple-steps.md
+```
+
+## Frontmatter
+
+When you select your newly created file in the _Web IDE_ it will instantly open.
+Copy the following block into the first lines and replace the parts in brackets.
+The lines with a leading `#` are comments and can safely be removed.
+
+```yml
+---
+title:  <Your post title as it appears on the website>
+date:   <Desired shown publication date as YYYY-MM-DD>
+authors:
+  - <Your team member ID (usually the last name in lower case)>
+# - <Repeat for each author>
+layout: blogpost
+title_image: default
+categories:
+  - <choose one of "blog", "announcement", "tutorial", "report">
+# You can come up with a new category if none of the above fits,
+# but please consult the team beforehand
+tags:
+  - <Short free text>
+# - <Repeat for each tag>
+excerpt:
+  <One or two lines that serve as a preview text in the blog post overview>
+---
+```
+
+This chunk of text is called the _frontmatter_ and helps our website backend to
+recognize the following text as a blog post and generate all the nice things
+around it.
+
+# Step 3: Add Content
+
+Leave an empty line behind the _frontmatter_ and then write to your heart's
+content.
+While the _gitlab_ _Web IDE_ only highlights the vanilla _Markdown_ syntax, our
+blog system actually understands the far mightier _Kramdown_ dialect, so you can
+use everything in [The Kramdown Quick Reference][ref3].
+
+Once you started to make changes the `Commit` button appears.
+If you click it, the view changes:
+
+* The _Unstaged Changes_ and _Staged Changes_ appear on the left side
+* A comparison view occupies the center and right side
+
+{: .float-left}
+{% include video.html
+    path="2020-01-07-contributing-in-4-simple-steps/commit_demo.webm"
+    caption="Making a <em>commit</em> on the WebIDE.<br/>
+    Note the two clicks on the <em>commit</em> button."
+%}
+
+1. Your file appears in the _unstaged changes_.
+2. Double click it to move it to _staged changes_
+(Double clicking it again will move it back to _unstaged changes_).
+3. Click `Commit` once more and enter a meaningful message what your last
+changes were.
+4. Click `Commit` a final time.
+
+Your changes are now stored as a _commit_ (think of it as a permanent checkpoint) on your _branch_ in the _repository_.
+
+### Side Notes
+
+> If you want to continue editing (or abort making a commit), you can switch
+> back to the _editing view_ with the button on the far left side under the
+> project logo.
+
+> The whole _staging changes_ mechanic seems a bit excessive if there is only
+> one file involved, but becomes a boon in more complex scenarios.
+> You can abbreviate the process a bit by leaving out step 2.
+> The button for step 3 then is called `Stage & Commit`.
+
+> Please end your document with one(!) empty line.
+> It will not show up in the final result, but makes a lot of tools involved in
+> the review process very happy.
+
+# Step 4: Get it Reviewed
+
+So you finished your work, and now it is time for it to be presented to the
+whole wide world.
+
+But wait! Have you missed anything? Is everything as it should be?
+
+To make sure, it is customary to have your blog post reviewed beforehand.
+You can start by going to the **merge request page**.
+
+The super-fast way of triggering the process is to simply leave the
+following magic comment:
+
+```
+@software-hifis-net: Review please.
+/label ~"Progress::Can review"
+/assign @software-hifis-net 
+/wip
+```
+
+Adding Emojis for accelerated response time is optional.
+
+A core team member will get back to you and start looking into the matter.
+They might suggest changes and will help getting the visual appearance right.
+Your blog post will soon see the light of day.
+
+Well done!
+
+[ref1]: {% post_url /2019/11/2019-11-22-How-to-Create-a-new-Blog-Post %}
+[ref2]: {% post_url /2019/10/2019-10-29-Blog-Post-Features %}
+[ref3]: https://kramdown.gettalong.org/quickref.html
+
+[issue-link]: https://gitlab.hzdr.de/hifis/software.hifis.net/issues/new?issuable_template=blog-post
+[slug-generator]: https://blog.tersmitten.nl/slugify/
diff --git a/_posts/2020/01/2020-01-28-software-policy-template.md b/_posts/2020/01/2020-01-28-software-policy-template.md
new file mode 100644
index 000000000..b2040110f
--- /dev/null
+++ b/_posts/2020/01/2020-01-28-software-policy-template.md
@@ -0,0 +1,76 @@
+---
+title: The Software Policy Template
+date: 2020-01-28
+authors:
+  - huste
+layout: blogpost
+title_image: mountains-nature-arrow-guide-66100.jpg
+excerpt:
+  <p>In a joint effort of the <em>Task Group Research Software</em> 
+  within the scope of the <em>Helmholtz Open Science Office</em> 
+  a software policy template was created.</p>
+  <p>This model policy should serve as a guideline and reusable blueprint for
+  the creation of regulations for a sustainable use and development of
+  research software in the individual Helmholtz centers.</p>
+categories:
+  - guidelines
+tags:
+  - general
+---
+
+In a joint effort of the [Task Group Research Software][taskgroup] within the
+scope of [Helmholtz Open Science][openscience] a
+[software policy template][policy][^1] was created and published.
+This model policy should serve as a guideline and reusable template for the
+creation of regulations for a sustainable use and development of research
+software in the individual Helmholtz centers.
+The template is accompanied by a [position paper][recommendations][^2] providing
+recommendations for the implementation of these guidelines for the treatment of
+research software at the Helmholtz centers.
+
+## How Do These Guidelines Help Me as a Researcher?
+The processing of research data and the acquisition of scientific knowledge
+require the development and use of high-quality and sustainable software
+solutions. 
+
+It is clear that the verifiability and reproducibility of scientific
+results can only be guaranteed if research software is treated under
+defined conditions.
+
+Such software is to be considered a central and independent scientific
+product. 
+It needs to be handled according to similar high-level standards that
+is already applied for other scientific methods.
+
+The software policy template is here to help your research center to define
+standards, guidelines, best practices as well as affirmative actions to give
+sustainable research software development the significance it deserves.
+At the same time it supports _you_ by defining guidelines and rules that you can
+rely upon.
+It also aids in promoting the use of software development best practices by
+providing you with the appreciation you deserve.
+
+## How Will HIFIS Support the Implementation of This Template?
+HIFIS will provide practical information for you, as a researcher, on how to
+implement the requirements in your research projects.
+At the same time, the educational program will also be aligned with the
+requirements defined in this template.
+HIFIS would also be happy to guide the individual centers in transforming the
+template into local guidelines.
+
+## Referenced Documents
+[^1]: The Software Policy Template;
+      [<i class="fas fa-file-pdf"></i> 10.2312/os.helmholtz.007][policy-doi]
+      (currently only available in German)
+
+[^2]: The position paper "Recommendations for the Implementation of Guidelines
+      for the Treatment of Research Software at the Helmholtz Centres";
+      [<i class="fas fa-file-pdf"></i> 10.2312/os.helmholtz.008][recommendations-doi]
+      (currently only available in German)
+
+[taskgroup]: https://os.helmholtz.de/de/open-science-in-der-helmholtz-gemeinschaft/akteure-und-ihre-rollen/arbeitskreis-open-science/task-group-forschungssoftware/
+[openscience]: https://os.helmholtz.de
+[policy]: https://os.helmholtz.de/index.php?id=3951
+[policy-doi]: https://doi.org/10.2312/os.helmholtz.007
+[recommendations]: https://os.helmholtz.de/index.php?id=3197
+[recommendations-doi]: https://doi.org/10.2312/os.helmholtz.008
diff --git a/_posts/2020/11/2020-11-07-survey-results-language-vcs.md b/_posts/2020/11/2020-11-07-survey-results-language-vcs.md
new file mode 100644
index 000000000..e93c5527e
--- /dev/null
+++ b/_posts/2020/11/2020-11-07-survey-results-language-vcs.md
@@ -0,0 +1,149 @@
+---
+layout: blogpost
+title: "HIFIS Survey 2020: Programming, CI and VCS"
+date: 2020-11-27
+authors:
+    - erxleben
+title_image: default
+categories:
+    - report
+---
+
+## Introduction
+In the beginning of 2020 the HIFIS team conducted a survey among Helmholtz
+scientists with the goals of learning more about the current practices
+concerning research software development and identifying future challenges.
+
+This blog post will present a glimpse into the survey's results and our take
+on the gathered data.
+Specifically, we will take a look at the distribution of programming languages
+across the different research fields as well as the utilization of
+_Version Control Systems_ (VCS) in the same context.
+Last, a short insight into the prevalence of various
+_Continuous Integration_ (CI) systems will be given to round out this blog
+post.
+
+## Programming Languages
+
+We asked the survey participants which programming languages they regularly
+used for writing research software.
+The following heatmap displays the relative usage of the most predominant programming languages for each research field
+
+{:.treat-as-figure}
+![Plot: Languages by Research field]({{ site.directory.images | relative_url }}/posts/2020-11-07-survey-results-language-vcs/plot_language_by_field_normalized.svg)
+
+All presented numbers are the relative usage of a given language in a given
+field.
+They might not always add up to exactly 1.00 per field or per language due to
+multiple factors:
+
+* Some participants did not answer both questions.
+  These answers are not represented in the plot.
+* Languages that had not at least a _5%_ share in at least one field were
+  omitted to focus on the most prominent ones and make the graphic easier to
+  read.
+
+### What can We Learn?
+
+The first thing that catches the eye is that Python seems to be very dominant
+in every research field.
+We have to take this appearance with a slight grain of salt since the survey did
+not distinguish between the outdated, but generally popular, Python 2 and
+the current Python 3.
+The popularity of the language amongst researchers is not very surprising:
+They are well suited for quickly creating small scale scripts, combined with
+an extensive choice of libraries for many use cases.
+
+Consequently, our education and training efforts will continue to provide
+offers regarding programming in Python and create appropriate courses and
+materials to further the knowledge and best practices in this language amongst
+scientists and research software developers.
+
+Regarding consultations we expect the team to receive requests regarding the
+porting of older Python 2 applications to Python 3, as well as support
+requests for dealing with the variance of virtual environments and package
+management for this language.
+
+A second language often selected was C++ which often is a popular choice in
+high performance computing and larger applications.
+
+This indicates a potential demand for supporting this language in the future as
+well, especially in the context of training as well as consulting.
+
+Notable further mentions would be the the strong presence of the statistics
+language R in the _Health_ and _Earth and Environment_  research fields,
+which implies the opportunity for education and consulting being tailored and
+advertised more towards these areas.
+
+## Version Control systems
+
+Similarly to the question above, a second question was analyzed, concerning the
+usage of _Version Control Systems_ (VCS) amongst the participants related to
+specific fields of research.
+
+{:.treat-as-figure}
+![Plot: VCS Usage by Research field]({{ site.directory.images | relative_url }}/posts/2020-11-07-survey-results-language-vcs/plot_vcs_per_field.svg)
+
+The strong prevalence of Git is apparent at first glance.
+As a runner-up there are still some projects out there based on SVN for
+version control, which - together with a few mentions of CVS - might be an
+indicator for older, longer living projects.
+The amount of projects not using any version control at all is comparatively
+low, which points toward the usage of VCS being an established step in setting
+up projects across all research fields.
+
+From an education perspective it appears to be the right way to continue to
+focus on basic and advanced Git-courses and promote version control as one of
+the standard practices in every scientists toolbox.
+It can be expected that the consulting team might face requests for help with
+migrating projects from SVN or CVS to Git in the future.
+
+## Continuous Integration
+
+As a third question we wanted to know which _Continuous Integration_ (CI)
+services the participants use to automate tasks surrounding their projects.
+This, again, was a multiple choice question and the following plot shows the
+relative distribution of the given answers:
+
+{:.treat-as-figure}
+![Plot: Overall CI Usage]({{ site.directory.images | relative_url }}/posts/2020-11-07-survey-results-language-vcs/plot_ci_service_usage.svg)
+
+One very prominent outcome is that over half of the participants did claim to
+not use any CI at all.
+Several possible reasons for this finding come to mind:
+* The question was not clear enough and participants who actually use CI were
+  not aware of that fact.
+* Participants are not aware that CI exists.
+* Participants do not see any potential benefit of CI for their projects.
+* Participants do not know how to set up and use CI.
+
+Given that practically any project can benefit from employing
+_Continuous Integration_ services by automating at least the mundane management
+tasks like license checking, documentation generation, style checks, etc. all
+four given reasons can be assumed to be a lack in awareness and education.
+
+Further, the plot reveals that the currently used CI solutions are (in
+descending order of percentage) _GitLab CI_ which holds over a quarter of all
+shares, _Jenkins_ and _Travis CI_ with all other services being barely
+represented.
+
+Building on the insights from this analysis, three actions clearly stand out to
+improve CI usage across all projects:
+* The education team will have to increase their portfolio and offer more
+  courses centered around CI usage.
+* The popularity of _GitLab CI_ will likely increase the demand to migrate
+  other projects to this system. It will fall to the consulting branch to be
+  prepared to deal with such requests.
+* The technology team has already begun to offer pre-made recipes for CI
+  pipelines and has an incentive to grow the collection of ready-to-use solutions
+  for popular scenarios.
+
+## Conclusion
+
+Thanks to the participants of the HIFIS survey in 2020 it was possible to gain
+a first glimpse into the status quo of research software engineering within the
+Helmholtz centers. With this data, the needs of the scientists could be assessed
+from a birds-eye perspective and it is possible to determine concrete steps to
+offer better support for the scientists at Helmholtz.
+
+
-- 
GitLab