diff --git a/content/blog/old_texts/csc-blog-post.docx b/content/blog/old_texts/csc-blog-post.docx new file mode 100644 index 00000000..a7bb7530 Binary files /dev/null and b/content/blog/old_texts/csc-blog-post.docx differ diff --git a/content/blog/old_texts/espoo-news-article.md b/content/blog/old_texts/espoo-news-article.md new file mode 100644 index 00000000..2eb1e42c --- /dev/null +++ b/content/blog/old_texts/espoo-news-article.md @@ -0,0 +1,11 @@ +# CodeRefinery workshop in Espoo, Finland + +A key aspect of the CodeRefinery project (http://coderefinery.org/), which was launched last autumn, is to train Nordic research groups to take full advantage of state-of-the-art tools and practices for modern collaborative scientific software development. The CodeRefinery training takes place in the form of interactive three-day workshops involving demonstrations, live coding exercises and type-along types of presentations. The very first CodeRefinery workshop was held in Espoo, Finland, on the 14th-16th of December 2016 in the headquarters of the CSC IT Center for Science. The 24 participants, most of whom were PhD students or postdoctoral researchers, came from various scientific disciplines ranging from mathematics and computer science to the physical and biological sciences, engineering and psychology. Their programming background was similarly diverse: some had extensive experience of software development in C, C++ or Fortran, others were Python or R aficionados, and yet others had less prior coding experience. However they all shared a keen interest in improving their coding practices and learning to use modern software development tools. + +And this is exactly the aim of the CodeRefinery project: helping resarchers to write modular, reusable, maintainable, sustainable, reproducible and robust software, regardless of their academic discipline or preferred programming language. The workshop in Espoo covered collaborative distributed version control, automated testing, code documentation, DevOps, Jupyter Notebooks, CMake, integrated development environments and how to manage code complexity. In most sessions, demonstrations by the teacher were interspersed with tasks to be solved by the students and, after each session, students were encouraged to give feedback using sticky notes on what went well and what could be improved. Overall, the feedback was highly positive - clearly, the core topics covered by CodeRefinery workshops are in high demand by researchers who develop scientific software in their daily work, but may not have received formal training in using modern tools. + +The CodeRefinery project will continue to deliver 3-day interactive workshops over the coming years. The next up is in Stockholm on the 20th-22nd of February, followed by Copenhagen on the 9th-11th of May and Tromsø some time in June. In tandem with delivering these workshops, the project will organize half-day or one-day events focusing on either training in one particular topic (as in the 2017 NeIC conference, http://neic2017.nordforsk.org/) or on general seminars and discussions (as in the April research computing training week in Oslo, http://www.uio.no/english/services/it/research/events/coderefinery-2017-april.html). + + +Anyone interested in attending any of the CodeRefinery events can get the latest news on the project’s website, http://coderefinery.org/, or follow @coderefine on Twitter. Furthermore, CodeRefinery recently launched a web forum where researchers from Nordic universities and research centers can ask questions and take part in discussions on software development topics. To join this forum, visit https://groups.google.com/group/coderefinery. + diff --git a/content/blog/old_texts/newsletter-1.md b/content/blog/old_texts/newsletter-1.md new file mode 100644 index 00000000..ce6526da --- /dev/null +++ b/content/blog/old_texts/newsletter-1.md @@ -0,0 +1,54 @@ +## Email to all former participants to announce newsletter +Dear all, + +We are pleased to announce that we will be starting a CodeRefinery newsletter in the coming weeks! The idea behind this is to keep everyone who signs up updated on what’s happening in the CodeRefinery project. Apart from announcing upcoming workshops, hackathons, and other events, the newsletter will also cover other exciting developments, for example on new training material development, community building activities, general project updates and occasionally some useful tips and tricks. This newsletter is “opt-in” - so visit https://coderefinery.org/outreach/ if you want to sign up, and please share it with colleagues you think might be interested! + +Thanks for reading, and we hope you’ll find the newsletter interesting! +The CodeRefinery team + + +# CodeRefinery Newsletter May 2019 + +Dear reader, + +Welcome to the first CodeRefinery newsletter! The idea behind this is to keep you updated on what’s happening in the CodeRefinery project. Apart from announcing upcoming workshops, hackathons, and other events, the newsletter will also cover other exciting developments, for example on training material development, community building activities, and general project updates. You are receiving this newsletter because (hopefully) you signed up on https://coderefinery.org/outreach. + +You may know since earlier what the CodeRefinery project is all about, and you may have participated in (or even helped out with!) one of our workshops. We nonetheless want to provide here a very short summary of the history and future directions of the project. + +## History and Background + +The CodeRefinery project grew out of two 1-week long courses called “Scientific software development toolbox” given at KTH in Stockholm as part of the Swedish e-Science Education (SeSE) program. Based on the very good experience from these workshops we submitted a project proposal to NeIC (the Nordic e-Infrastructure Collaboration) to bring these workshops to a Nordic-wide audience, and the proposal was granted. +Since 2016, the CodeRefinery project has delivered over 20 workshops and taught over 500 students and researchers how to write better code, along with providing a code repository hosting service to support this. The workshops focus on best practices and modern tools for reproducible and sustainable code development, regardless of participants’ background and experience, academic discipline, or favored programming language. Most workshop participants have been PhD students and postdocs, and as results from our post-workshop survey (https://coderefinery.org/) reveal, workshop participants learn new skills that really help them in their daily research. CodeRefinery is funded by NeIC with co-funding from the national research e-infrastructure providers. + +## The Future + +In October 2018, CodeRefinery entered its second phase with funding until October 2021. After this second phase, the goal is to have established a self-sustainable project organization requiring only little funding for coordination. Our vision is for the lesson material to be maintained by a community of enthusiasts, all workshops to be taught by instructors contributing on in-kind or volunteer basis, and all costs for workshops to be paid by hosting universities. While this may sound like wishful thinking, we are inspired by the successes of related educational initiatives (particularly The Carpentries), and we are actively working on many fronts to make this happen. The future of CodeRefinery will critically depend on establishing a thriving community - and this is where you enter the picture! To read more about what you can do to help us reach sustainability, please read the Getting Involved section below. + +## Upcoming workshops and events + +We have a packed programme ahead of us! Four more workshops will be taught before summer: Gothenburg on May 21-23, Helsinki on May 27-29, Oslo on June 3-5, and Aalborg on June 11-13. However, we have seats remaining only on the Aalborg workshop. See the Aalborg workshop webpage for further information and registration information: https://coderefinery.org/workshops/2019-06-11-aalborg/ + +A tentative workshop schedule for the autumn will be drafted before summer, so make sure to follow our updates if you would like to participate in a workshop as a learner or a helper. Remember also that we have a notify-me list, where you can register your email address and give a list of workshop locations you want to receive updates on. + +## Instructor training workshop and hackathon + +We are pleased to announce that we are planning two back-to-back events in Stockholm this autumn: a 2-day instructor training workshop followed by a 2 day hackathon! Tentative dates are November 5-8, so mark your calendars! + +The instructor training workshop will be for everyone who is interested in learning how to teach technical topics in general and the CodeRefinery material in particular. We will cover best practices when developing new lesson material and some practical pedagogical insights that make a world of difference when teaching technical technical skills. + +The follow-up event will be a hackathon with two main themes - one focusing on brainstorming and development of new CodeRefinery lessons, and the other will be a “bring-your-code” theme were researchers can discuss their technical challenges and receive concrete advice on how to overcome them. + +Of course, a key element of both events will be the networking aspect - meeting like-minded people, making new friends and collaborators and learning cool new skills in a friendly environment. + +## Getting involved + +We use Zulip to discuss within our team and with the community. We discuss in the open and you can join us on https://coderefinery.zulipchat.com - you can listen in, follow certain threads, participate, and influence. If you instead have practical questions about workshops or services or to report issues, write to us at support@coderefinery.org. + +Have you already participated in a CodeRefinery workshop, but would like to attend another one to refresh your memory and share your own knowledge? Or do you already have a solid background in research software engineering and would like to meet like-minded people in a friendly environment? Join us as a helper! Get in touch and let us know which workshop you would like to join. If you would later on like to teach in CodeRefinery workshops, it’s very valuable to have participated once as a helper. + +All our lessons are on GitHub (https://github.com/coderefinery), and contributions to the lesson material are highly welcome. The best way to contribute is via the forking-pull request workflow, which you can learn about in our collaborative version control lesson. You can also contact us via other channels about the material. + +Would you like to host a CodeRefinery workshop at your home institution? We are currently planning the workshop schedule for the autumn. Get in touch if this sounds interesting! + +If you like what we do, please reach out on Twitter (@coderefine) or bring up the project in conversations with your colleagues. + diff --git a/content/blog/old_texts/newsletter-2.md b/content/blog/old_texts/newsletter-2.md new file mode 100644 index 00000000..4d734abf --- /dev/null +++ b/content/blog/old_texts/newsletter-2.md @@ -0,0 +1,93 @@ +# CodeRefinery Newsletter August 2019 + + +POSSIBLE TOPICS: + • Nordic HPC: summary of NeIC2019 workshop, future plans, getting involved + • JupyterHub NeIC2019 workshop summary + • One best-practice guide + • [wait with this until future newsletters] Maybe introduce the core team (both staff and unpaid contributors), who we are + • One or two “interesting links” from recent chat (“how to teach computing” and the paper from 50 years ago about scientific software). + • Have a “request for your least favorite usability issues” to follow up with usability stuff... + + +Dear reader, + +Welcome to the second CodeRefinery newsletter! We had a busy spring - we delivered four workshops within a single month, to over 100 participants! Each workshop requires quite a bit of planning, both for local arrangements and preparation work of the lesson material. It’s fair to say that we pushed the CodeRefinery team to its limits during these four weeks, but all went well and a hundred researchers are now better equipped to develop and maintain their research software. Teaching and discussing was a lot of fun - it is very motivating for us to discuss research software questions during our workshops. + +Over the past few months it’s become clear that CodeRefinery is gaining momentum. We are thrilled to see an increase in the number of contacts from individual researchers as well as organizations with suggestions for collaborations, and at the same time we’re reaching out to a wider audience through articles and blog posts published around the web. In particular, we want to draw your attention to this letter published in Nature Physics by our project leader Radovan Bast (https://www.nature.com/articles/s41567-019-0624-3), and this blog post on the Software Sustainability Institute webpage by Lucy Whalley (https://software.ac.uk/blog/2019-07-30-code-refinery-training-research-software-development). + +Topics covered in this newsletter: + • Some words on our workshop programme for the autumn. + • The instructor training and hackathon events in Stockholm on November 4-7. + • Reflections on our contributions to the NeIC 2019 conference in Copenhagen in May. + • Announcing the NordicHPC initiative. + • New collaboration with INCF. + • “From the web”: a new regular section where we will be sharing links to useful material that we find and discuss on our open chat platform. + • Announcements from related communities. + + +## Upcoming workshops + +The autumn workshop schedule is gradually taking shape. A big part of our efforts this autumn will be devoted to the instructor training workshop and the hackathon (see below), but we will squeeze in a few regular 3-day workshops. A tentative plan for regular workshops and other events is as follows: + • 3-day workshop in Trondheim: October 22-24 + • 2-day instructor training workshop in Stockholm: November 4-5 + • 2-day hackathon in Stockholm: November 6-7 + • 2-day NordicHPC meeting in Helsinki: November 14-15 + • 3-day workshop in Stockholm in collaboration with INCF (see below): November 19-21 + • 3-day workshop in Espoo/Helsinki: December 10-12 + +If you wish to be informed when registrations open for a particular workshop, please sign up to the “notify me” form on https://coderefinery.org/workshops/. + +## Instructor training workshop and hackathon + +The dates are now confirmed for our first instructor training workshop and hackathon. These back-to-back events will take place on the main KTH campus in Stockholm on November 4-5 and November 6-7, respectively, so reserve these dates in your calendars and register as early as possible if you wish to attend! + +The instructor training workshop will be for everyone who is interested in learning how to teach technical topics in general and the CodeRefinery material in particular. We will cover best practices when developing new lesson material and some practical pedagogical insights that make a world of difference when teaching technical skills. + +In the CodeRefinery hackathon event, the first of its kind but surely not the last, the focus will instead be on collaboration, problem solving and learning cool new tricks from like minded people. During the hackathon, you can: +- Bring your own code or data and get suggestions/help on how to better organize, test, + document, and share your code. +- Participate at a “ReproHack” where we try to reproduce a selection of nominated papers and learn how to make software papers better reproducible. You can also nominate your own paper and then you get feedback about how to improve your own work. +- Share your expertise with others and learn many new tricks and tools from others. + +If you’re attending the instructor training workshop before the hackathon, you’re welcome to also work on any type of lesson development, either improving upon or developing new CodeRefinery lessons, or converting other existing material to CodeRefinery format for your own purposes. We will be happy to help out with your efforts! + +Of course, a key element of both events will be the networking aspect - meeting like-minded people, making new friends and collaborators and learning cool new skills in a friendly environment. + +Tentative schedules and registration details of both events are available on the respective workshop webpages: +- https://coderefinery.org/events/2019-11-04-stockholm/ +- https://coderefinery.org/events/2019-11-06-stockholm/ + +## NeIC 2019 Copenhagen +NeIC (the Nordic e-Infrastructure Collaboration), which sponsors the CodeRefinery project, held its biannual conference on May 14-16 at the Tivoli Hotel in Copenhagen. Several of us from the CodeRefinery team (https://coderefinery.org/about/#meet-the-team) were there and contributed to the conference in various ways. First, together with UiO (University of Oslo) colleague Nikolay Vazov, Sabry had a presentation on the Lifeportal (https://lifeportal.uio.no/) interface to HPC resources, which builds on the Galaxy platform (https://galaxyproject.org/) and helps researchers conduct open science by sharing and reusing results, analyses and workflows. Second, Anne presented some of her work at the Department of Geosciences at UiO, focusing in particular on how to make climate data more findable, accessible, interoperable and reusable (FAIR). Finally, Radovan, Sabry, Thor, and Richard organized two back-to-back workshops focusing, respectively, on JupyterHub deployments and how to “reimagine research computing”. In the former, JupyterHub was presented from a sysadmin point of view, and a number of short presentations showed how JupyterHub had been configured and deployed at various centers within and outside the Nordics - more details are found on the workshop webpage https://indico.neic.no/event/18/contributions/168/ and https://nordichpc.github.io/jupyter/. In the “Reimagining research computing” workshop (see https://indico.neic.no/event/18/contributions/170/), the focus was instead on finding common obstacles, “papercuts” and usability issues for users and administrators of HPC resources. After an excellent talk by Jonas Lindemann, director of the LUNARC center in Lund who gave a flavor of how HPC can evolve to meet the needs of existing and emerging groups of HPC users, an “unconference” format followed where participants brainstormed about usability issues and their possible solutions. Outcomes can be found at https://nordichpc.github.io/2019-05-15-neic/. + +To not let all the excellent ideas brought up during both these workshops fade away and be forgotten, we have launched a new Nordic collaboration project: NordicHPC. +NordicHPC - strengthening collaboration and sharing between HPC centers + +NordicHPC is a new initiative to improve computing resources (not just HPC, despite the name) in the Nordics, with a special focus on usability. Think of it as a complement to CodeRefinery: CodeRefinery focuses on training researchers, NordicHPC is focused on making resources easier to use. NordicHPC doesn’t share resources or staff, rather it shares experiences and tricks of existing staff. NordicHPC is targeted towards system administrators and application specialists from large-scale Nordic computing resources, but power users are certainly welcome if interested. The official webpage of the initiative is https://nordichpc.github.io/, and on the GitHub organization page of the project (https://github.com/NordicHPC) we intend to collect tips, tools and workflows for efficiently managing HPC resources. All contributions are welcome! If you have developed any type of tool or workflow which you think might be useful to others than yourself, please consider letting us know so we can fork it or host it under the organization - see https://nordichpc.github.io/repo/ for further information. + +The first NordicHPC meeting will take place in Helsinki on November 14-15 (see https://nordichpc.github.io/2019-11-14-helsinki/), mark your calendar if you want to attend! More details will follow in upcoming newsletters. + +## Collaboration with INCF +We are excited to have established a collaboration with the International Neuroinformatics Coordinating Facility (INCF), which is a non-profit organization developing collaborative neuroinformatics infrastructure and promotes the sharing of data and computing resources to the international research community. Indeed, our Stockholm workshop this autumn will be hosted by INCF at the Karolinska Institute. Apart from helping us to reach new communities of researchers within neuroinformatics, this workshop will be recorded and selected parts will be made into online tutorials to be hosted on the online INCF training space, https://training.incf.org/. + +## From the web +Like everyone else in possession of a computer with internet access, CodeRefiners are constantly looking around for interesting online material. Here we note down a few that have been shared on our open online chat (https://coderefinery.zulipchat.com): + • “How to Help Someone Use a Computer by Phil Agre” (https://www.librarian.net/stax/4965/how-to-help-someone-use-a-computer-by-phil-agre/) + • “Ten quick tips for creating an effective lesson” https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1006915 + • CERN Courier – digital edition of the March/April 2019 issue “The Rise of Open Science”: +http://iopp.fileburst.com/ccr/archive/CERNCourier2019MarApr-digitaledition.pdf + + +## Announcements from related communities +RSE 2019 Conference +A growing number of people in academia combine expertise in programming with an intricate understanding of research. Although this combination of skills is extremely valuable, these people lack a formal place in the academic system. This means there is no easy way to recognise their contribution, to reward them, or to represent their views. Without a name, it is difficult for people to rally around a cause, so we created the term Research Software Engineer [https://rse.ac.uk/]. +On Tuesday 17th September, the RSE Community will reunite at the Fourth Conference of Research Software Engineers at the University of Birmingham, UK. Our sincere hope is that you find your community, learn a new skill, take part in discussions about the future of research software engineering, and get inspired by a talk – all in three days! +For further information, see https://rse.ac.uk/conf2019. +Neuroinformatics 2019 +Welcome to Neuroinformatics 2019 in Warsaw, Poland, on September 1-2! The conference provides a forum for infrastructure providers and developers of tools, standards, and best practices to help define the capabilities of the global network, receive training on how to participate in the Open, FAIR and Citable global network and learn how to provide better services to their constituents. This conference is also a great opportunity to introduce new participants to the field of neuroinformatics and highlight new and innovative tools and approaches. +On August 31, just prior to the main conference, we offer several exciting training activities, organized by The Virtual Brain and The Human Brain Project. + +Join us for keynotes from top neuroscientists, community sessions and poster- and demo sessions. +www.neuroinformatics2019.org + diff --git a/content/blog/old_texts/newsletter-3.md b/content/blog/old_texts/newsletter-3.md new file mode 100644 index 00000000..5dfd4fc0 --- /dev/null +++ b/content/blog/old_texts/newsletter-3.md @@ -0,0 +1,87 @@ +# CodeRefinery Newsletter November 2019 + +Dear reader, + +Welcome to the third CodeRefinery newsletter! It’s been an interesting autumn for the project. Regular workshops were taught in Trondheim, Stockholm and Espoo, but we also organized two new types of events in Stockholm in early November: an instructor training workshop [https://coderefinery.org/events/2019-11-04-stockholm/] followed by a hackathon [https://coderefinery.org/events/2019-11-06-stockholm/]. Around 30 participants joined us in the instructor training workshop - a promising sign for the future of the project which will rely on volunteer instructors organizing and teaching workshops at their home institutions. You will find summaries of these events further down in this newsletter. + +A question we hear from time to time, and which was discussed at the instructor training is: “how do I become a CodeRefinery instructor?” We have been thinking about this question within the project, and although we don’t have any formalized process to certify instructors we do have some ideas about what the recommended steps are to start teaching CodeRefinery material. We summarize these ideas, along with practical tips on running workshops, in the article “Organizing workshops and teaching lessons”. + +Have you heard about the Nordic-RSE network? The idea originates from a brainstorming session at the NeIC all-hands meeting in Norway and the initiative was formally kicked off at a CodeRefinery meeting outside Stockholm. Modeled after initiatives in other countries (including the UK [https://rse.ac.uk/], Germany [https://de-rse.org/de/index.html] and the Netherlands [https://nl-rse.org/]), its purpose is to establish a community for research software engineers (RSEs) working in the Nordics to share knowledge, organize meetings, and raise awareness for the scientific recognition of research software. CodeRefinery contributes to the Nordic-RSE network, and we now have the pleasure to announce the first Nordic-RSE conference to be held during the week October 19-23, 2020! You can read more about this network and the planned conference in the article “Announcing the Nordic-RSE conference”. + +Several CodeRefinery members contribute to the NordicHPC initiative, which aims to establish a community of HPC system administrators, application experts and power users across the Nordics. The first get-together meeting of NordicHPC, which was held at Aalto University in November, brought together experts from all the Nordic countries as well as Estonia. You can read a retrospective of this event along with future plans in an article below. + +CodeRefinery also made its first major excursion outside the Nordics when Radovan was invited to teach a 2-week “low-intensity” workshop (with only morning sessions) in Lille, France. We hope to be able to strengthen our international network further and export both regular workshops and instructor training events to colleagues around the world - read further in “Expanding outside the Nordics”. + +## Hackathon retrospective + +The bread and butter of CodeRefinery are the 3-day workshops on sustainable scientific software development. However, there’s also room for other types of events aimed at networking and sharing of expertise, and in that spirit we organized the first CodeRefinery hackathon on November 6-7 in Stockholm. Thanks to local support from friends at the KTH library, the hackathon took place in two nice seminar rooms located in the library. The event brought together around 20 people with lots of interesting project ideas. One group worked on adapting an existing lesson to CodeRefinery format (with lots of hands-on exercises) while another wrote code to capture commands typed in a terminal and automatically add them to an online Google Drive document - a useful trick to help workshop participants follow type-along sessions! We also had one group working on a ReproHack project where the idea was to attempt to reproduce results reported in a high-profile paper published a few years ago, based on the paper’s methods section, supplementary material and the published data and code. Despite best efforts by the authors to make their results reproducible, this turned out to be quite a challenge due to updated paths in the dataset and evolution of software versions. A valuable lesson learned on the importance of tagging versions of both code and data! + +Our experiences from the hackathon are positive and it would be fun to do it again, but currently it’s not on our agenda for the next semester. But if you’re lamenting over missing this hackathon, and would be willing to help us set up a second hackathon in the new year, we’re all ears! + +## Instructor training workshop + +In this second phase of the CodeRefinery project we are thinking hard about ways to reach sustainability by the end of the project period in 2021. Sustainability means that the CodeRefinery material will be maintained and the workshops continued even after funding stops. Reaching this goal will require that universities are willing to host workshops and fund instructor travel, but more importantly it will require more people to get involved in teaching workshops and contributing to the material. + +To this end, we organized the first CodeRefinery instructor training workshop on November 4-5 at KTH in Stockholm. The interest in this workshop was unexpectedly large - not only were all 30 seats filled well ahead of the workshop, but practically everyone who had registered showed up on the day as well! + +Brand new lesson material was developed from scratch, which you can find at https://coderefinery.github.io/instructor-training/ +On day 1 (half day), we focused on the CodeRefinery teaching philosophy and the teaching approach used in workshops. We also covered some practical advice on giving workshops and tips on developing teaching material following “backwards lesson design”. On day 2 (full day) we split into groups and worked on the CodeRefinery lessons. Each group was led by an experienced instructor and the material of each lesson was discussed in depth. The feedback from participants and their ideas raised during discussions were extremely valuable and we have started implementing changes to the lessons, although much remains to be done due to the busy workshop schedule. + +The instructor training material itself was also discussed and there’s a lot of room for improvement. After all, the material was being piloted. In the next instructor training workshop we will focus less on improving the lessons and more on “teaching how to teach” as well as teaching and discussing how to prepare and organize workshops and events. The accumulated workshop teaching experience within the team is by now quite extensive and this experience needs to be shared! + +## Organizing workshops and teaching lessons + +If you have been following the CodeRefinery project with interest and seen a need in your own professional environment for training in scientific software development, you might be wondering how you can start teaching and organizing CodeRefinery workshops yourself (instead of waiting for us to visit your institution at some time in the future). The short answer is that there are no strict requirements - anyone can use the CodeRefinery lessons in any way they like. But if you’re more interested in the long answer, please read ahead! + +Teaching CodeRefinery lessons is not exactly the same thing as teaching any other university course. CodeRefinery workshops are three day marathons covering a lot of ground. This places demands on both the quality of the teaching and the workshop administration. We believe that in order to teach a CodeRefinery lesson or organize a workshop, you should have attended a workshop in the past either as a learner or helper to see how they’re conducted. It’s also very valuable to have solid experience in using the tools that you wish to teach, but keep in mind that no expertise is needed! As long as you’re comfortable teaching a lesson after carefully studying it, you’re ready to go. Finally, there are the pedagogical aspects and the presentation techniques. These include concrete aspects, like teaching through live coding and type-along sessions, as well as various soft skills, like creating a positive learning environment for everyone. To learn these things we recommend that people attend either a CodeRefinery instructor training workshop, a Carpentry instructor training workshop, or both. Get in touch if you’re interested in attending such workshops! + +Organizing a successful workshop also requires careful planning and preparation. Since the last year and a half we have been trying to document the processes behind organizing and teaching workshops, which has resulted in a series of manuals. While they grew out of our own need to onboard new instructors, standardise workshop operations and ensure that nothing is forgotten, we realized that they might be useful to a wider community, especially people who want to self-organize CodeRefinery workshops without formal involvement of CodeRefinery staff. The manuals are thus licensed permissively to allow reuse and we have also tried to keep the instructions general and understandable to new instructors. Our manuals repository +(https://github.com/coderefinery/manuals/) includes the following: + + • In “Workshop administration” (https://github.com/coderefinery/manuals/blob/master/workshop-administration.md) you will find a step-by-step guide for all the practicals, including instructions for setting up a workshop webpage (https://github.com/coderefinery/template-workshop-webpage) and templates for advertising the workshop and communicating with participants. + • In the “Helper’s guide” (https://github.com/coderefinery/manuals/blob/master/helping-and-teaching.md) you will find tips to workshop helpers (and instructors) on how to create a positive learning environment during workshops. + • The “In-class checklist” (https://github.com/coderefinery/manuals/blob/master/presenting.md) goes through both non-technical presentation hints (e.g. what to say or not say) and technical aspects (e.g. how to set up screencasting) + • The “Lesson design checklist and guide” (https://github.com/coderefinery/manuals/blob/master/lesson-design.md) reviews the backwards lesson design process and other valuable tips for developing new lessons. + • Finally, there is the “Summary of the book Teaching Teach Together” (by Greg Wilson) (https://github.com/coderefinery/manuals/blob/master/teaching-tech-together.md), which is the ultimate handbook for teaching technical topics! + +Feel free to use and adapt these manuals when organizing and teaching your own workshops! Please also reach out if you would like to organize a local event or workshop and would need support from us in the form of feedback, mentoring, or sending an instructor. + +## NordicHPC get-together retrospective +CodeRefinery is about teaching, but it also raises the question: maybe we should also make the things we teach more usable. NordicHPC grew out of CodeRefinery as a result of this idea. The very first NordicHPC get-together meeting was held on Aalto University campus on the outskirts of Helsinki, and it brought together HPC specialists from Denmark, Estonia, Finland, Iceland, Norway and Sweden, around 27 people in total. The meeting was split into short presentations and unconference-style sessions where topics proposed by participants were discussed in detail. + +The program included four pre-planned talks, 10 lightning talks, seven unconference sessions, eleven sites presenting their cool stuff, three meals, and countless discussions. One highlight was the "cool things and problems" talk, where we heard of many novel ideas which should be shared, and how similar our problems were. Second was the "hallway discussions" during breaks, which was one of the first meetings of many of the attendees. + +NordicHPC has decided to adopt a new name indicating a broader role, use the CodeRefinery Zulipchat for communication, and to try to continue meetings in the future. A final report will be available at the meeting page later. + +## Expanding beyond the Nordics + +We typically organize workshops in the Nordics, not because we are solving an intrinsically Nordic problem, but because currently the funding comes from the Nordics. We are convinced that our lesson material is highly relevant also beyond the Nordic borders and we would love to make the material more visible and workshops accessible beyond Iceland, Norway, Sweden, Denmark, Finland, and Estonia. Indeed we have organized two workshops outside of Nordics: a short workshops as part of the RSE 2017 conference in Manchester, and very recently a two-week course “Best practices for research software development” in Lille, France, with 30 participants, funded by the University of Lille as part of an “invited professor” scholarship (https://coderefinery.org/events/2019-11-25-lille/). This workshop was well received and it is encouraging for us to see how much interest and demand there is for similar workshops in future. Together with TU Delft and the Netherlands eScience Center we are preparing a combined instructor training and workshop event to take place April or May 2020 where we hope to increase the visibility of our material and inspire lesson uptake and lesson contributions and grow the CodeRefinery community. We have invitations to other institutions in Europe and we are working on a model to be able to support communities outside of Nordics. + +## Announcing the Nordic-RSE conference + +What is a research software engineer (RSE)? Unbeknownst to you, you might already be one! Regardless of your formal job title, if you answer yes to many of the following questions, you are doing the work of a Research Software Engineer: + + • Are you employed to develop software for research? + • Are you spending more time developing software than conducting research? + • Are you employed as a postdoctoral researcher, even though you predominantly work on software development? + • Are you the “person who does computers” in your research group? + • Are you sometimes not named on research papers despite playing a fundamental part in developing the software used to create them? + • Do you lack the metrics needed to progress your academic career, like papers and conference presentations, despite having made a significant contribution through software? + +RSE networks in the UK (where it all started), Germany, the Netherlands, and the United States are already thriving. Annual conferences are held, smaller meetings and workshops are organized, and communication channels exist for discussing topics related to scientific software development independent of academic disciplines. Moreover, in the UK, “RSE” is now a recognized job title, most of the major universities now have RSE groups that work horizontally to assist research groups develop software or technical infrastructure, and there are prestigious RSE fellowships awarded every year. + +The Nordic-RSE initiative wants to bring this model to the Nordics. Last year we sent out a survey to collect information on how RSE-type work is conducted in the Nordics. From just over 100 answers, the results were similar to what has been found elsewhere: 4 out of 5 conduct own research, 9/10 develop software used by others, 4/5 develop mostly open source projects, 7/10 train other researchers, 4/5 are between 25 and 44 years old, etc. But how can we bring all these people together and build a thriving community? By organizing the first Nordic-RSE conference of course! We are extremely excited to announce that the first Nordic-RSE conference will be held during the week October 19-23, 2020. We haven’t decided on the location yet and if you would like to bring the first Nordic-RSE conference to your city, register your interest through the Venue bid. + +If you want to follow updates about the conference, please sign up for a conference mailing list at https://neic.no/mailman/listinfo/nordic-rse-announcements. This will be a read-only mailing list for announcements. If you would like to take part in discussions around the conference or anything else relating to Nordic-RSE, please sign up for the CodeRefinery Zulipchat (https://coderefinery.zulipchat.com/) and join the “nordic-rse” stream. We are currently looking for people to join the organization committee and the program committee - please get in touch via Zulipchat if you want to participate! As this will be the first conference of its kind in the Nordics, we will also need help to spread the word, so bring this up with your colleagues who you think might be interested! + + +## From the web + +Here are some links to fun, interesting and/or useful resources online which have been discussed in the CodeRefinery Zulipchat: + +- [Visualizing Git](https://git-school.github.io/visualizing-git/): Would you like to get a better mental model of branching, merging, rebasing etc. in Git without the effort of editing files in terminal? Check out this fun game which visualizes Git branches as you type! Just type out “git commit”, “git branch mybranch”, “git merge”, “git rebase” etc. and observe how the tree grows. +- Ever wondered what the perfect Git commit message might look like? Have a look at [this interesting example](https://fatbusinessman.com/2019/my-favourite-git-commit)! +- Are you using GitHub for some of your code? Have a look at this new feature: [GitHub Actions](https://github.com/features/actions). It automates software workflows like building and testing. +- Are you using CMake in your projects? Have a look at the [CMake cookbook](https://www.packtpub.com/application-development/cmake-cookbook) by Radovan Bast and Roberto Di Remigio. All the recipes and code examples used in the book are on GitHub (https://github.com/dev-cafe/cmake-cookbook/). + + diff --git a/content/blog/old_texts/newsletter-4.md b/content/blog/old_texts/newsletter-4.md new file mode 100644 index 00000000..cd21d8b7 --- /dev/null +++ b/content/blog/old_texts/newsletter-4.md @@ -0,0 +1,36 @@ +# CodeRefinery Newsletter April 2020 + +Dear reader, + +Welcome to the fourth CodeRefinery newsletter! The CodeRefinery team would like to wish everyone good health during these challenging times. We are all facing disruptions to our way of life in one way or another, but in the CodeRefinery project we have been fortunate enough to be able to adjust to a new norm of remote work. While all planned in-person workshops this spring have been cancelled, we have been refocusing our efforts to develop an online training programme. In this newsletter we want to tell you more about our efforts to move our workshops online, but we also have other exciting news and announcements, as well as a best-practice guide on a Git topic that often causes confusion! + +## Online workshops + +We delivered our first online workshop on April 7-8 and wrote a “lessons learned” article summarizing our experiences to help us improve future workshops. Hopefully some of these points will be useful for those of you who have also moved to online teaching! Read the full article at [Lessons learned from running our first online workshop](https://coderefinery.org/blog/2020/04/14/first-online-workshop/). + +We are in the process of adjusting the rest of our lesson material to be taught online and are planning many more future online workshops. We have also launched a new “notify-me” form where you can sign up for updates on upcoming online or in-person workshops and even sign up as a helper or instructor for future workshops. Read about these developments at [CodeRefinery workshops moving online](https://coderefinery.org/blog/2020/04/24/online-workshops-update/) + + +## Announcing the first Nordic-RSE conference + +We have the pleasure to announce the first ever Nordic-RSE conference which will take place on December 1-2 in Stockholm! Many of you will have heard about the Nordic-RSE initiative in previous editions of this newsletter or elsewhere, but some of you may not. RSE stands for “research software engineer”, and Nordic-RSE is growing a community of people spread over the Nordics with the aim of sharing knowledge, establishing collaborations, organizing events and starting new RSE groups. Read more about this in the article [Announcing the first Nordic-RSE conference](https://coderefinery.org/blog/2020/04/24/nordic-rse-conference/) + +## Research Software Hour + +Research Software Hour is an online stream/show about scientific computing and research software. It is designed to provide the skills typically picked up via informal networks: each week, we do some combination of exploring new tools, analyzing and improving someone’s research code, and discussion. + +The first broadcast is on Tuesday, April 28, 2020, at 20:30 Central European Time ([convert to your time](https://researchsoftwarehour.github.io/time/)). The stream starts 10 minutes early and you can use this time to ask any questions you may have. + +Read an article about this new initiative in the [Research Software Hour](https://coderefinery.org/blog/2020/04/24/rsh/) article! + + +## CodeRefinery tools in action: NordicHPC + +NordicHPC (https://nordichpc.github.io/) is a loose collaboration of computing facility staff and friends with a special focus on usability and reimagining HPC for the modern age. Most partners are somewhere between application experts or sysadmins of clusters, those who are the front line of supporting research and deal with all of the daily mess. + +A key aim of the initiative is to share solutions and problems across centers and across countries, and collaboratively maintain said solutions. In the article [CodeRefinery tools in action: NordicHPC](https://coderefinery.org/blog/2020/04/27/nordichpc-tools/) you can read more about some of the tools that are being shared via NordicHPC and how they use the lessons of CodeRefinery! + +## Best practice guide: Rebase vs merge + +Have you ever wondered whether you should merge or rebase your branch? Or are you unsure what rebasing is all about? We mention rebasing in CodeRefinery workshops, but don’t really have time to go into any details. Read all about this in our best practice guide [Rebase vs merge](https://coderefinery.org/blog/2020/04/24/rebase-vs-merge/). + diff --git a/content/blog/old_texts/pdc-newsletter-2016.md b/content/blog/old_texts/pdc-newsletter-2016.md new file mode 100644 index 00000000..aab9f01e --- /dev/null +++ b/content/blog/old_texts/pdc-newsletter-2016.md @@ -0,0 +1,8 @@ +# The CodeRefinery Project +Thor Wikfeldt, PDC + +PDC is participating in the new CodeRefinery project (http://coderefinery.org) that was launched this autumn - the project aims to promote better software development practices in scientific communities across the Nordic countries. Funded by the Nordic e-Infrastructure Collaboration (NeIC, https://neic.nordforsk.org), the CodeRefinery project will initially run for a two-year period. Software lies at the heart of research projects across a wide range of disciplines, but many common practices in the development and maintenance of scientific software are inefficient and/or outdated. Core developers have, in many cases, never received training in modern software development methodologies because their main training and interests are in their respective scientific domains. + +Various other similar projects have clearly demonstrated the value of scientific software development training, such as the Software Carpentry (http://software-carpentry.org) project which has taught efficient computing skills, ranging from basic to advanced level, to thousands of researchers since 1998. Drawing inspiration from such projects, CodeRefinery focuses on intermediate-level training and is directly aimed at assisting research groups in the Nordic countries. A major component of the project will be to develop course material and to teach topics such as collaborative distributed version control, managing code complexity, automated testing and code documentation approaches. Workshops based on interactive and type-along types of presentations will be organized in various locations (see map below), starting with a workshop in Espoo, Finland, from the 14th-16th of December 2016, and followed by one at KTH from the 20th-22nd of February 2017. (For further information about the workshops and for registration details, see the CodeRefinery website). In addition to delivering a dozen training workshops in two years, CodeRefinery also aims to provide tools, systems and infrastructure to Nordic researchers for web-based hosting of open source as well as proprietary source code. This hosting service will be connected with an automated testing service. A final aspect of the project will be to build an active and interconnected community of researchers, software developers and application experts, leading to an environment for the exchange of expertise within the Nordic region. + +Follow us on Twitter (@coderefine) and the project website: http://coderefinery.org! diff --git a/content/blog/old_texts/pdc-newsletter-2017.docx b/content/blog/old_texts/pdc-newsletter-2017.docx new file mode 100644 index 00000000..48752345 Binary files /dev/null and b/content/blog/old_texts/pdc-newsletter-2017.docx differ diff --git a/content/blog/old_texts/pdc-newsletter.md b/content/blog/old_texts/pdc-newsletter.md new file mode 100644 index 00000000..ca79e648 --- /dev/null +++ b/content/blog/old_texts/pdc-newsletter.md @@ -0,0 +1,11 @@ +# CodeRefinery Workshops + +A key aspect of the CodeRefinery project (http://coderefinery.org/), which was launched last autumn, is to train Nordic research groups to take full advantage of state-of-the-art tools and practices for modern collaborative scientific software development. The CodeRefinery training takes place in the form of interactive three-day workshops involving demonstrations, live coding exercises and type-along types of presentations. The very first CodeRefinery workshop was held in Espoo, Finland, on the 14th-16th of December 2016 in the headquarters of the CSC IT Center for Science, and the second workshop was held at the KTH Royal Institute of Technology in Stockholm on the 20th-22nd of February 2017. The most recent workshop was held in Copenhagen on the 9th-11th of May 2017. Most of the participants in the workshops were Ph.D. students or postdoctoral researchers who came from various scientific disciplines, ranging from mathematics and computer science to the physical and biological sciences, engineering and psychology. Their programming background was similarly diverse: some had extensive experience of software development in C, C++ or Fortran, others were Python or R aficionados, and yet others had less prior coding experience. However, they all shared a keen interest in improving their coding practices and learning to use modern software development tools. + +This is exactly the aim of the CodeRefinery project: helping researchers to write modular, reusable, maintainable, sustainable, reproducible and robust software, regardless of their academic discipline or preferred programming language. CodeRefinery workshops cover a diverse range of topics including collaborative distributed version control, automated testing, documentation, Jupyter Notebooks, CMake, integrated development environments and how to manage code complexity. Overall, feedback from participants in these first two workshops has been highly positive - the core topics covered by the CodeRefinery workshops are clearly in high demand by researchers who develop scientific software in their daily work, but may not have received any formal training in using modern tools. + +As a further step towards assisting research groups to migrate from ad hoc in-house software development solutions to state of the art collaborative infrastructures, CodeRefinery has recently deployed a web-based source code repository platform for Nordic research projects which offers free unlimited hosting of private repositories. The platform features components for issue tracking and integrated code review and will, in the near future, be connected to a continuous integration platform to automatically build software and test code changes. To sign up for this service, visit https://source.coderefinery.org. +The CodeRefinery project will continue to deliver three-day workshops during the coming years: the next is the “midnight sun workshop” in Tromsø on the 19th-21st of June. (For details of the additional workshops in 2017 and 2018, please see the project website). In tandem with delivering these workshops, the project organizes half-day or one-day events focusing on either training in one particular topic or on general seminars and discussions. An example of the latter is the get-together event that was held in Stockholm on the 19th of May (http://coderefinery.org/workshops/2017-05-19-stockholm/). By bringing together researchers, software developers, CodeRefinery members and SNIC application experts, this meeting was designed to contribute to building a Nordic community of users and developers of research software, as well as providing an environment for those people to communicate and exchange their expertise. + +Anyone interested in attending any of the CodeRefinery events can get the latest news on the project’s website, http://coderefinery.org/, or follow @coderefine on Twitter. Furthermore, CodeRefinery recently launched a web forum where researchers from Nordic universities and research centres can ask questions and take part in discussions on software development topics. To join this forum, visit https://groups.google.com/group/coderefinery. + diff --git a/content/blog/old_texts/pdc-website.md b/content/blog/old_texts/pdc-website.md new file mode 100644 index 00000000..f5e80762 --- /dev/null +++ b/content/blog/old_texts/pdc-website.md @@ -0,0 +1,10 @@ + +CodeRefinery (http://coderefinery.org/), launched in the autumn of 2017, is a project which aims to establish a scientific software development e-infrastructure coupled with necessary technical expertise and extensive training activities in order to address the growing needs of computational communities. It is a project within the Nordic e-Infrastructure Collaboration (NeIC), which in turn is an organisational unit under NordForsk. + +The training aspect of CodeRefinery focuses on teaching how to efficiently use state-of-the-art tools and practices for modern collaborative scientific software development. Standard CodeRefinery training events are in the form of three-day workshops involving interactive demonstrations, live coding exercises and type-along types of presentations. A diverse range of topics are covered, including collaborative distributed version control, automated testing, documentation, Jupyter Notebooks, CMake, integrated development environments and how to manage code complexity. All course material covered in the workshops are open source and available on the project´s GitHub page, https://github.com/coderefinery. Most participants are Ph.D. students or postdoctoral researchers from various scientific disciplines, ranging from mathematics and computer science to the physical and biological sciences, engineering and psychology. The ultimate goal of these workshops is to help researchers write modular, reusable, maintainable, sustainable, reproducible and robust software, regardless of their academic discipline, programming experience or preferred programming language. + +As a further step towards assisting research groups to migrate from ad hoc in-house software development solutions to state of the art collaborative infrastructures, CodeRefinery has deployed a web-based source code repository platform for Nordic research projects which offers free unlimited hosting of private repositories. The platform features components for issue tracking and integrated code review and will, in the near future, be connected to a continuous integration platform to automatically build software and test code changes. To sign up for this service, visit https://source.coderefinery.org. + +The CodeRefinery project will continue to deliver three-day workshops during the coming years. A list of planned future workshops in 2017 and 2018 can be found at http://coderefinery.org/workshops/. In tandem with delivering these workshops, CodeRefinery organizes half-day or one-day events focusing on either training in one particular topic or on general seminars and discussions, bringing together researchers, software developers, CodeRefinery members and application experts. In this way, CodeRefinery aims to contribute to building a Nordic community of users and developers of research software, as well as providing an environment for those people to communicate and exchange their expertise. + +Anyone interested in attending any of the CodeRefinery events can get the latest news on the project’s website, http://coderefinery.org/, or follow @coderefine on Twitter. Furthermore, CodeRefinery recently launched a web forum where researchers from Nordic universities and research centres can ask questions and take part in discussions on software development topics. To join this forum, visit https://groups.google.com/group/coderefinery.