Skip to content

Commit 42e1d50

Browse files
Merge pull request #455 from NLeSC/431-broken-links
chore: fix broken links and replace HTTP URLs with HTTPS
2 parents fc1d7e4 + 07dd73d commit 42e1d50

9 files changed

Lines changed: 72 additions & 73 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ We also provide [technology guides](/technology/technology_overview.md) on digit
3232
All of the text in this guide is backed by our own experiences in developing high quality research software.
3333
However, we also learn from and share knowledge with other community-driven research software guides.
3434
The two most important of these are [The Turing Way](https://book.the-turing-way.org/index.html) and the
35-
[Research Software Quality Kit](http://everse.software/RSQKit/).
35+
[Research Software Quality Kit](https://everse.software/RSQKit/).
3636
Their scope is slightly different, but we collaborate with them when we can.
3737

3838
## Contributing

best_practices.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Great examples can be found via [FAIR Software NL](https://fair-software.nl/reco
1212

1313
Use a version control tool like `git` to track changes in your codebase.
1414
This allows you to retrace your steps when debugging, keep your repository clean, easily collaborate with others asynchronously and more.
15-
More info: [The Turing Way chapter on Version Control](https://book.the-turing-way.org/reproducible-research/vcs), [RSQkit chapter on Version Control](http://everse.software/RSQKit/using_version_control).
15+
More info: [The Turing Way chapter on Version Control](https://book.the-turing-way.org/reproducible-research/vcs), [RSQkit chapter on Version Control](https://everse.software/RSQKit/using_version_control).
1616

1717
**At the Netherlands eScience Center:** we always use version control and we preferably use GitHub as our online repository and collaboration platform (see the [Project Management Protocol of the Netherlands eScience Center](https://doi.org/10.5281/zenodo.17117777).
1818

@@ -58,7 +58,7 @@ Examples include exchange formats like Unicode, NetCDF, and W3C web standards, a
5858
## Licensing
5959

6060
Since source code is protected by copyright, to allow people to use your code it needs a license.
61-
For more information, see [The Turing Way chapter on licensing](https://the-turing-way.netlify.app/reproducible-research/licensing) or the [RSQkit Licensing software task](http://everse.software/RSQKit/licensing_software).
61+
For more information, see [The Turing Way chapter on licensing](https://the-turing-way.netlify.app/reproducible-research/licensing) or the [RSQkit Licensing software task](https://everse.software/RSQKit/licensing_software).
6262

6363
**At the Netherlands eScience Center:** our first choice is the Apache v2 license.
6464
See the [our Project Management Protocol](https://doi.org/10.5281/zenodo.17117777) for more details on licensing and our intellectual property policies.
@@ -74,7 +74,7 @@ For more information you can also [read here](https://github.com/the-turing-way/
7474
Releases are a way to mark or point to a particular milestone in software development.
7575
This is useful for users and collaborators, e.g. I found a bug running version x.
7676
For publications that refer to software, refering to a specific release enhances the reproducability.
77-
See [the RSQkit task on Creating code releases](http://everse.software/RSQKit/releasing_software) for the most essential guidelines.
77+
See [the RSQkit task on Creating code releases](https://everse.software/RSQKit/releasing_software) for the most essential guidelines.
7878
The Turing Way offers many related tips in their [chapter on Making Research Objects Citable](https://book.the-turing-way.org/communication/citable), like how to make code citable with CITATION.CFF files.
7979

8080
## Packaging

language_guides/ccpp.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ The latest ratified standard of C++ is C++17. The first standardised version of
1515
There are two main-stream open-source C++ compilers.
1616

1717
- [GCC](https://gcc.gnu.org/)
18-
- [LLVM - CLANG](http://llvm.org/)
18+
- [LLVM - CLANG](https://llvm.org/)
1919

2020
Overall, these compilers are more or less similar in terms of features, language support, compile times and (perhaps most importantly) performance of the generated binaries.
2121
The generated binary performance does differ for specific algorithms.
@@ -44,16 +44,16 @@ And linker flags:
4444

4545
### Interpreter
4646

47-
There **is** a C++ interpreter called [Cling](https://rawgit.com/vgvassilev/cling/master/www/index.html).
48-
This also comes with a [Jupyter notebook kernel](http://jupyter.org/try).
47+
There **is** a C++ interpreter called [Cling](https://rawcdn.githack.com/root-project/cling/master/www/index.html).
48+
This also comes with a [Jupyter notebook kernel](https://jupyter.org/try).
4949

5050
### Build systems
5151

5252
There are several build systems that handle C/C++.
5353
Currently, [the CMake system is most popular](https://www.jetbrains.com/research/devecosystem-2018/cpp/).
5454
It is not actually a build system itself; it generates build files based on (in theory) platform-independent and compiler-independent configuration files.
5555
It can generate Makefiles, but also [Ninja](https://ninja-build.org/) files, which gives much faster build times, NMake files for Windows and more.
56-
Some popular IDEs keep automatic count for CMake, or are even completely built around it ([CLion](http://www.jetbrains.com/clion/)).
56+
Some popular IDEs keep automatic count for CMake, or are even completely built around it ([CLion](https://www.jetbrains.com/clion/)).
5757
The major drawback of CMake is the confusing documentation, but this is generally made up for in terms of community support.
5858
When Googling for ways to write your CMake files, make sure you look for "modern CMake", which is a style that has been gaining traction in the last few years and makes everything better (e.g. dependency management, but also just the CMake files themselves).
5959

@@ -70,7 +70,7 @@ With either one of these two (CMake or Autotools), any moderately experienced us
7070
There are many other systems.
7171
Microsoft Visual Studio has its own project model / build system and a library like Qt also forces its own build system on you.
7272
We do not recommend these if you don't also supply an option for building with CMake or Autotools.
73-
Another modern alternative that has been gaining attention mainly in the GNU/Gnome/Linux world is [Meson](http://mesonbuild.com/), which is also based on [Ninja](https://ninja-build.org/).
73+
Another modern alternative that has been gaining attention mainly in the GNU/Gnome/Linux world is [Meson](https://mesonbuild.com/), which is also based on [Ninja](https://ninja-build.org/).
7474

7575
### Package management
7676

@@ -111,7 +111,7 @@ You can point `pkg-config` to your additional libraries by setting the `PKG_CONF
111111
This also helps for instance when trying to automatically locate dependencies from CMake, which has `pkg-config` support as a fallback for when libraries don't support CMake's `find_package`.
112112

113113
If you want to keep things organized on systems where you use multiple versions of the same software for different projects, a simple solution is to use something like `xstow`.
114-
[XStow](http://xstow.sourceforge.net/) is a poor-mans package manager.
114+
[XStow](https://xstow.sourceforge.net/) is a poor-mans package manager.
115115
You install each library in its own directory (`~/.local/pkg/<package>` for instance), then running `xstow` will create symlinks to the files in the `~/.local` directory (one above the XStow package directory).
116116
Using XStow in this way alows you to keep a single additional search path when compiling your next library.
117117

@@ -168,7 +168,7 @@ People of this persuasion would usually recommend any of the following editors:
168168
- [editorconfig](https://github.com/editorconfig/editorconfig-vim)
169169
- [stl.vim](https://www.vim.org/scripts/script.php?script_id=4293) adds STL to syntax highlighting
170170
- [Syntastic](https://github.com/scrooloose/syntastic)
171-
- Integrated debugging using [Clewn](http://clewn.sourceforge.net/)
171+
- Integrated debugging using [Clewn](https://clewn.sourceforge.net/)
172172
- Emacs:
173173
- Has GDB mode for debugging.
174174
- More modern editors: Atom / Sublime Text / VS Code
@@ -190,7 +190,7 @@ C++ (and C) compilers come with built in linters and tools to check that your pr
190190

191191
#### Automatic Formatting with clang-format
192192

193-
While most IDEs and some editors offer automatic formatting of files, [clang-format](http://clang.llvm.org/docs/ClangFormat.html) is a standalone tool, which offers sensible defaults and a huge range of customisation options. Integrating it into the CI workflow guarantees that checked in code adheres to formatting guidelines.
193+
While most IDEs and some editors offer automatic formatting of files, [clang-format](https://clang.llvm.org/docs/ClangFormat.html) is a standalone tool, which offers sensible defaults and a huge range of customisation options. Integrating it into the CI workflow guarantees that checked in code adheres to formatting guidelines.
194194

195195
#### Static code analysis with GCC
196196

@@ -240,7 +240,7 @@ which is a fast memory error detector. There are also other options available li
240240

241241
#### Dynamic program analysis using the valgrind suite of tools
242242

243-
The [valgrind suite of tools](http://valgrind.org/info/tools.html) has tools similar to what is provided by the `-fsanitize` compiler flag as well as various profiling tools. Using the valgrind tool memcheck to detect memory errors is typically slower than using compiler provided option, so this might be something you will want to do less often. You will probably want to compile your code with debug symbols enabled (`-g`) in order to get useful output with memcheck. When using the profilers, keep in mind that a [statistical profiler](https://en.wikipedia.org/wiki/Profiling_%28computer_programming%29#Statistical_profilers) may give you more realistic results.
243+
The [valgrind suite of tools](https://valgrind.org/info/tools.html) has tools similar to what is provided by the `-fsanitize` compiler flag as well as various profiling tools. Using the valgrind tool memcheck to detect memory errors is typically slower than using compiler provided option, so this might be something you will want to do less often. You will probably want to compile your code with debug symbols enabled (`-g`) in order to get useful output with memcheck. When using the profilers, keep in mind that a [statistical profiler](https://en.wikipedia.org/wiki/Profiling_%28computer_programming%29#Statistical_profilers) may give you more realistic results.
244244

245245
### Automated code refactoring
246246

@@ -273,7 +273,7 @@ These can typically be installed from a wide range of [package managers](#packag
273273
These scientific libraries are well known, widely used and have a lot of good online documentation.
274274

275275
- [GNU Scientific library (GSL)](https://www.gnu.org/software/gsl/doc/html/index.html)
276-
- [FFTW](http://www.fftw.org): Fastest Fourier Transform in the West
276+
- [FFTW](https://www.fftw.org/): Fastest Fourier Transform in the West
277277
- [OpenMPI](https://www.open-mpi.org). Use with caution, since it will strongly define the structure of your code, which may or may not be desirable.
278278

279279
### Boost
@@ -288,7 +288,7 @@ As a general rule, don't use Boost when there is equivalent STL functionality.
288288

289289
### xtensor
290290

291-
[xtensor](http://github.com/xtensor-stack/xtensor) is a modern (C++14) N-dimensional tensor (array, matrix, etc) library for numerical work in the style of Python's NumPy.
291+
[xtensor](https://github.com/xtensor-stack/xtensor) is a modern (C++14) N-dimensional tensor (array, matrix, etc) library for numerical work in the style of Python's NumPy.
292292
It aims for maximum performance (and in most cases it succeeds) and has an active development community.
293293
This library features, among other things:
294294

@@ -313,15 +313,15 @@ This library features, among other things:
313313
### Parallel processing
314314

315315
- [oneAPI Threading Building Blocks](https://oneapi-src.github.io/oneTBB/) (oneTBB): template library for task parallelism
316-
- [ZeroMQ](http://zeromq.org): lower level flexible communication library with a unified interface for message passing between threads and processes, but also between separate machines via TCP.
316+
- [ZeroMQ](https://zeromq.org/): lower level flexible communication library with a unified interface for message passing between threads and processes, but also between separate machines via TCP.
317317

318318
## Style
319319

320320
### Style guides
321321

322322
Good style is not just about layout and linting on trailing whitespace. It will mean the difference between a blazing fast code and a broken one.
323323

324-
- [C++ Core Guidelines](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)
324+
- [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)
325325
- [Guidelines Support Library](https://github.com/Microsoft/GSL)
326326
- [Google Style Guide](https://google.github.io/styleguide/cppguide.html)
327327
- [Google Style Guide - github](https://github.com/google/styleguide) Contains the CppLint linter.
@@ -343,18 +343,18 @@ IDE.
343343

344344
### Documentation
345345

346-
Use [Doxygen](http://www.doxygen.nl/). It is the de-facto standard way of inlining documentation into comment sections of your code. The output is very ugly. Mini-tutorial: run `doxygen -g` (preferably inside a `doc` folder) in a new project to set things up, from then on, run `doxygen` to (re-)generate the documentation.
346+
Use [Doxygen](https://www.doxygen.nl/). It is the de-facto standard way of inlining documentation into comment sections of your code. The output is very ugly. Mini-tutorial: run `doxygen -g` (preferably inside a `doc` folder) in a new project to set things up, from then on, run `doxygen` to (re-)generate the documentation.
347347

348-
A newer but less mature option is [cldoc](http://jessevdk.github.io/cldoc/).
348+
A newer but less mature option is [cldoc](https://jessevdk.github.io/cldoc/).
349349

350350
## Resources
351351

352352
### Online
353353

354354
- [CppCon videos](https://www.youtube.com/user/CppCon): Many really good talks recorded at the various CppCon meetings.
355-
- [CppReference.com](http://en.cppreference.com/w/)
355+
- [CppReference.com](https://en.cppreference.com/w/)
356356
- [C++ Annotations](http://www.icce.rug.nl/documents/cplusplus/)
357-
- [CPlusPlus.com](http://www.cplusplus.com/)
357+
- [CPlusPlus.com](https://cplusplus.com/)
358358
- [Modern C++, according to Microsoft](https://msdn.microsoft.com/en-us/library/hh279654.aspx)
359359

360360
### Books

language_guides/fortran.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ numerical compute workloads, with no existing alternative. In this case it is re
1010
## Recommended sources of information
1111

1212
- [Fortran90 best practices](https://github.com/certik/fortran90.org/blob/master/src/best-practices.rst).
13-
- [Fortran wiki](http://fortranwiki.org/fortran/show/HomePage)
14-
- [Fortran90 handbook](http://micro.ustc.edu.cn/Fortran/Fortran%2090%20Handbook.pdf)
13+
- [Fortran wiki](https://fortranwiki.org/fortran/show/HomePage)
14+
- [Fortran90 handbook](https://micro.ustc.edu.cn/Fortran/Fortran%2090%20Handbook.pdf)
1515

1616
## Compilers
1717

@@ -30,12 +30,12 @@ There exist many commercial performance profiling tools by Intel and the Portlan
3030
## Editors and IDEs
3131

3232
Most lightweight editors provide Fortran syntax highlighting. Vim and emacs are most widely used, but for code
33-
completion and refactoring tools one might consider the [CBFortran](http://cbfortran.sourceforge.net/) distribution of Code::Blocks.
33+
completion and refactoring tools one might consider the [CBFortran](https://cbfortran.sourceforge.io/) distribution of Code::Blocks.
3434

3535
## Coding style conventions
3636

3737
If working on an existing code base, adopt the existing conventions. Otherwise we recommend the
38-
standard conventions, described in the [official documentation](https://github.com/certik/fortran90.org/blob/master/src/best-practices.rst#fortran-style-guide) and the [Fortran company style guide](http://www.fortran.com/). We would like to add the following advice:
38+
standard conventions, described in the [official documentation](https://github.com/certik/fortran90.org/blob/master/src/best-practices.rst#fortran-style-guide) and the [Fortran company style guide](https://www.fortran.com/). We would like to add the following advice:
3939

4040
- Use free-form text input style (the default), with a maximal line width well below the 132 characters imposed by the Fortran90 standard.
4141
- When a method does not need to alter any data in any module and returns a single value, use a function for it, otherwise use a subroutine. Minimize the latter to reasonable extent.

language_guides/javascript.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Solid has a meta-framework called [SolidStart](https://start.solidjs.com/).
7474

7575
Most JavaScript is run in web browsers, but if you want to run it outside of a browser (e.g. as a server or to run a script locally), you'll need a JavaScript **runtime**. These are the main runtimes available:
7676

77-
- [Node.js](https://nodejs.org) is the most used runtime, mainly for being the only available runtime for a long time. This gives the advantage that there is a lot of documentation available (official and unofficial, e.g. forums) and that many tools are available for Node.js. It comes with a [package manager (npm)](https://www.npmjs.com/) that allows you to install packages from a huge library. Its installation instructions can be found [here](https://nodejs.org/en/learn/getting-started/how-to-install-nodejs).
77+
- [Node.js](https://nodejs.org) is the most used runtime, mainly for being the only available runtime for a long time. This gives the advantage that there is a lot of documentation available (official and unofficial, e.g. forums) and that many tools are available for Node.js. It comes with a [package manager (npm)](https://www.npmjs.com/) that allows you to install packages from a huge library. Its installation instructions can be found [here](https://nodejs.org/en/download).
7878
- [Deno](https://deno.com/) can be seen as a successor to Node.js and tries to improve on it in a few ways, most notably:
7979
- [built-in support](https://docs.deno.com/runtime/fundamentals/typescript/) for TypeScript
8080
- a better [security model](https://docs.deno.com/runtime/fundamentals/typescript/)

0 commit comments

Comments
 (0)