From eaa745b1d9d9dbe52b910b250f2fc883b0dc3181 Mon Sep 17 00:00:00 2001 From: Jez Cope Date: Fri, 19 Aug 2016 17:08:24 +0100 Subject: [PATCH 1/9] Add topics to post archetype --- archetypes/post.md | 1 + 1 file changed, 1 insertion(+) diff --git a/archetypes/post.md b/archetypes/post.md index 566fdc0..7cb3634 100644 --- a/archetypes/post.md +++ b/archetypes/post.md @@ -3,5 +3,6 @@ type: "post" draft: true author: "Jez" description: "description" +topics: ["Research communication", "Higher Education", "Technology", "Stuff"] tags: ["one", "two"] --- From 7f70ec6141767acc6ed9eb6f3906802e55bd4f58 Mon Sep 17 00:00:00 2001 From: Jez Cope Date: Fri, 19 Aug 2016 17:09:27 +0100 Subject: [PATCH 2/9] Choose syntax highlighting CSS --- config.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config.yaml b/config.yaml index fff61a1..81ee539 100644 --- a/config.yaml +++ b/config.yaml @@ -40,4 +40,6 @@ params: linkedin: jezcope sidebar: left + + highlight: solarized_light ... From 3d4ae1670cf50e6b820046dcc38c094b0d1256b1 Mon Sep 17 00:00:00 2001 From: Jez Cope Date: Fri, 19 Aug 2016 19:15:30 +0100 Subject: [PATCH 3/9] Add tags page to LH menu --- data/Menu.yaml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/data/Menu.yaml b/data/Menu.yaml index 7997572..ae976b0 100644 --- a/data/Menu.yaml +++ b/data/Menu.yaml @@ -1,11 +1,12 @@ 10 about: - Name: "about" + Name: about URL: "/about/" -20 rdm: - Name: "rdm resources" +20 tags: + Name: tags + URL: "/tags/" + +50 rdm: + Name: rdm resources URL: "/rdm-resources/" -90 license: - Name: license - URL: "/license/" From 9ba07b97e8b6f94f3c1d77dcd3fab22ba975d1b5 Mon Sep 17 00:00:00 2001 From: Jez Cope Date: Fri, 19 Aug 2016 19:31:02 +0100 Subject: [PATCH 4/9] Post: SC Build --- content/post/2016-08-sc-build.md | 95 +++++++++++++++++++++++++ content/post/2016-08-swc-archaeology.md | 1 + 2 files changed, 96 insertions(+) create mode 100644 content/post/2016-08-sc-build.md diff --git a/content/post/2016-08-sc-build.md b/content/post/2016-08-sc-build.md new file mode 100644 index 0000000..a9d90e8 --- /dev/null +++ b/content/post/2016-08-sc-build.md @@ -0,0 +1,95 @@ +--- +title: 'Software Carpentry: SC Build; or making a better make' +description: | + Entrants to the SC Build category were invited + to create a replacement for the venerable make tool. + How did they do? +slug: sc-build +date: 2016-08-19T19:30:13+01:00 +draft: false +type: post +topics: +- Technology +tags: +- Software Carpentry +- Web archaeology +- SCons +- Python +- Make +series: swc-archaeology +--- + +> Software tools often grow incrementally from small beginnings into elaborate artefacts. Each increment makes sense, but the final edifice is a mess. make is an excellent example: a simple tool that has grown into a complex domain-specific programming language. I look forward to seeing the improvements we will get from designing the tool afresh, as a whole... +> --- *Simon Peyton-Jones, Microsoft Research (quote taken from [SC Build page][SC Build])* + +Most people who have had to compile an existing software tool +will have come across the venerable [`make`][make] tool +(which usually these days means [GNU Make][]). +It allows the developer to write a declarative set of rules +specifying how the final software should be built +from its component parts, +mostly source code, +allowing the build itself to be carried out +by simply typing `make` at the command line and hitting `Enter`. + +Given a set of rules, +`make` will work out all the dependencies between components +and ensure everything is built in the right order +and nothing that is up-to-date is rebuilt. +Great in principle +but `make` is notoriously difficult for beginners to learn, +as much of the logic for how builds are actually carried out +is hidden beneath the surface. +This also makes it difficult to debug problems +when building large projects. +For these reasons, +the [*SC Build* category][SC Build] called for a replacement build tool +engineered from the ground up to solve these problems. + +The second round winner, ScCons, +is a [Python-based make-like build tool][SCons] +written by Steven Knight. +While I could find no evidence of any of the other shortlisted entries, +this project (now renamed SCons) +continues in active use and development to this day. + +I actually use this one myself from time to time +and to be honest I prefer it in many cases +to trendy new tools like [rake][] or [grunt][] +and the behemoth that is [Apache Ant][]. +Its Python-based `SConstruct` file syntax is remarkably intuitive +and scales nicely from very simple builds +up to big and complicated project, +with good dependency tracking to avoid unnecessary recompiling. +It has a lot of built-in rules for performing common build & compile tasks, +but it's trivial to add your own, +either by combining existing building blocks +or by writing a new builder with the full power of Python. + +A minimal `SConstruct` file looks like this: + +```python +Program('hello.c') +``` + +Couldn't be simpler! +And you have the full power of Python syntax +to keep your build file simple and readable. + +It's interesting that all the entries in this category apart from one +chose to use a Python-derived syntax for describing build steps. +Python was clearly already a language of choice +for flexible multi-purpose computing. +The exception is the entry that chose to use XML instead, +which I think is a horrible idea +(oh how I used to love XML!) +but has been used to great effect in the Java world +by tools like Ant and Maven. + +[make]: https://en.wikipedia.org/wiki/Make_(software) +[GNU make]: https://www.gnu.org/software/make/ +[SC Build]: https://web.archive.org/web/20061116215358/http://www.software-carpentry.com/sc_build/index.html +[SCons]: http://scons.org/ +[rake]: http://rake.rubyforge.org/ +[grunt]: http://gruntjs.com/ +[Apache Ant]: https://ant.apache.org/ diff --git a/content/post/2016-08-swc-archaeology.md b/content/post/2016-08-swc-archaeology.md index 87600e9..7b4fa31 100644 --- a/content/post/2016-08-swc-archaeology.md +++ b/content/post/2016-08-swc-archaeology.md @@ -12,6 +12,7 @@ topics: tags: - Software Carpentry - Web archaeology +series: swc-archaeology --- > "Software Carpentry was originally a competition to design new software tools, From d8c103387edb39f8adc48be610baf1c438657026 Mon Sep 17 00:00:00 2001 From: Jez Cope Date: Sat, 20 Aug 2016 11:37:50 +0100 Subject: [PATCH 5/9] Add series info to posts --- data/Series.yaml | 2 ++ themes/sidmouth | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 data/Series.yaml diff --git a/data/Series.yaml b/data/Series.yaml new file mode 100644 index 0000000..7ab4ec9 --- /dev/null +++ b/data/Series.yaml @@ -0,0 +1,2 @@ +swc-archaeology: | + the origins of [Software Carpentry](http://software-carpentry.org) diff --git a/themes/sidmouth b/themes/sidmouth index 53e664e..c4a7e3b 160000 --- a/themes/sidmouth +++ b/themes/sidmouth @@ -1 +1 @@ -Subproject commit 53e664e9802afeda775087c5788e5c45a82f9e33 +Subproject commit c4a7e3b049a22c2e563edb7ec0a9752cb23773b3 From 334911c1cef83538c2180bce58d482c869bb5158 Mon Sep 17 00:00:00 2001 From: Jez Cope Date: Sat, 20 Aug 2016 11:38:06 +0100 Subject: [PATCH 6/9] Add CNAME file for gh-pages --- static/CNAME | 1 + 1 file changed, 1 insertion(+) create mode 100644 static/CNAME diff --git a/static/CNAME b/static/CNAME new file mode 100644 index 0000000..e8fb665 --- /dev/null +++ b/static/CNAME @@ -0,0 +1 @@ +erambler.co.uk \ No newline at end of file From 3b57523bc872b3b012988ac8666126ff02688b6f Mon Sep 17 00:00:00 2001 From: Jez Cope Date: Sat, 20 Aug 2016 12:02:55 +0100 Subject: [PATCH 7/9] Make inline code style more subtle --- themes/sidmouth | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/sidmouth b/themes/sidmouth index c4a7e3b..5b8fde1 160000 --- a/themes/sidmouth +++ b/themes/sidmouth @@ -1 +1 @@ -Subproject commit c4a7e3b049a22c2e563edb7ec0a9752cb23773b3 +Subproject commit 5b8fde1d7788984f9be987f4bafe53f83a667be1 From 3c5de37f8fe4221d650868dedc39cb22eb8f494a Mon Sep 17 00:00:00 2001 From: Jez Cope Date: Sat, 20 Aug 2016 12:03:33 +0100 Subject: [PATCH 8/9] Make inline code style more subtle --- themes/sidmouth | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/sidmouth b/themes/sidmouth index 5b8fde1..6c4f50a 160000 --- a/themes/sidmouth +++ b/themes/sidmouth @@ -1 +1 @@ -Subproject commit 5b8fde1d7788984f9be987f4bafe53f83a667be1 +Subproject commit 6c4f50adf8b43f1079634c72a19dea207c74a2d7 From 1a8a9ac0db1f6add3aa58e55c599bd2808cbefeb Mon Sep 17 00:00:00 2001 From: Jez Cope Date: Sat, 20 Aug 2016 12:11:28 +0100 Subject: [PATCH 9/9] Don't load Google Analytics when testinglocally --- themes/sidmouth | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/sidmouth b/themes/sidmouth index 6c4f50a..095a36b 160000 --- a/themes/sidmouth +++ b/themes/sidmouth @@ -1 +1 @@ -Subproject commit 6c4f50adf8b43f1079634c72a19dea207c74a2d7 +Subproject commit 095a36b0e3cc970034be7e5d682d8d2720089017