content: rename articles to reinforce convention of short URLs
The Go blog started out on Blogger
(http://web.archive.org/web/20100325005843/http://blog.golang.org/).
Later, we moved to the current self-hosted blog server
with extra Go-specific functionality like playground snippets.
The old Blogger posts have very long URLs that Blogger chose
for us, such as "go-programming-language-turns-two" or
"two-go-talks-lexical-scanning-in-go-and", predating
the convention of giving posts shorter, more share-friendly,
typeable names.
The conversion of the old Blogger posts also predated
the convention of putting supporting files in a subdirectory.
The result is that although we've established new conventions,
you wouldn't know by listing the directory - the old Blogger
content presents a conflicting picture.
This commit renames the posts with very long names
to have shorter, more share-friendly names, and it moves
all supporting files to subdirectories. It also adds a README
documenting the conventions.
For example, blog.golang.org/go-programming-language-turns-two
is now blog.golang.org/2years, matching our more recent birthday
post URLs, and its supporting files are moved to the new 2years/ directory.
The old URLs redirect to the new ones.
Change-Id: I9f46a790c2c8fab8459aeda73d4e3d2efc86d88f
Reviewed-on: https://go-review.googlesource.com/c/blog/+/223599
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Andrew Bonventre <andybons@golang.org>
diff --git a/content/go-one-year-ago-today.article b/content/1year.article
similarity index 99%
rename from content/go-one-year-ago-today.article
rename to content/1year.article
index 13fac86..cad82c6 100644
--- a/content/go-one-year-ago-today.article
+++ b/content/1year.article
@@ -2,6 +2,7 @@
10 Nov 2010
Tags: birthday
Summary: Happy 1st birthday, Go!
+OldURL: /go-one-year-ago-today
Andrew Gerrand
diff --git a/content/go-programming-language-turns-two.article b/content/2years.article
similarity index 96%
rename from content/go-programming-language-turns-two.article
rename to content/2years.article
index 622942e..6dd1852 100644
--- a/content/go-programming-language-turns-two.article
+++ b/content/2years.article
@@ -2,6 +2,7 @@
10 Nov 2011
Tags: appengine, community, gopher
Summary: Happy 2nd birthday, Go!
+OldURL: /go-programming-language-turns-two
Andrew Gerrand
@@ -66,10 +67,10 @@
I/O and other Go talks) and in vinyl form (received by every attendee at
OSCON and now available at the [Google Store](http://www.googlestore.com/Fun/Go+Gopher+Figurine.axd)).
-.image go-programming-language-turns-two_gophers.jpg
+.image 2years/2years-gophers.jpg
And, most surprisingly, at Halloween he made an appearance with his gopher girlfriend!
-.image go-programming-language-turns-two_costume.jpg
+.image 2years/2years-costume.jpg
Photograph by [Chris Nokleberg](https://plus.google.com/106640494112897458359/posts).
diff --git a/content/go-programming-language-turns-two_costume.jpg b/content/2years/2years-costume.jpg
similarity index 100%
rename from content/go-programming-language-turns-two_costume.jpg
rename to content/2years/2years-costume.jpg
Binary files differ
diff --git a/content/go-programming-language-turns-two_gophers.jpg b/content/2years/2years-gophers.jpg
similarity index 100%
rename from content/go-programming-language-turns-two_gophers.jpg
rename to content/2years/2years-gophers.jpg
Binary files differ
diff --git a/content/go-turns-three.article b/content/3years.article
similarity index 99%
rename from content/go-turns-three.article
rename to content/3years.article
index 9e17300..6183691 100644
--- a/content/go-turns-three.article
+++ b/content/3years.article
@@ -2,6 +2,7 @@
10 Nov 2012
Tags: community, birthday
Summary: Happy 3rd birthday, Go!
+OldURL: /go-turns-three
Russ Cox
diff --git a/content/4years.article b/content/4years.article
index d16e29d..711714d 100644
--- a/content/4years.article
+++ b/content/4years.article
@@ -9,7 +9,7 @@
Today marks the fourth anniversary of Go as an open source project.
-.image 4years-gopher.png
+.image 4years/4years-gopher.png
Rather than talk about our technical progress (there'll be much to talk about
when we release Go 1.2 in a couple of weeks) we thought we would instead take
@@ -17,7 +17,7 @@
Let's start with a chart:
-.image 4years-graph.png
+.image 4years/4years-graph.png
This chart shows the growth of Google searches for the term
"[golang](http://www.google.com/trends/explore?hl=en-US#q=golang&date=10/2009+50m&cmpt=q)"
diff --git a/content/4years-gopher.png b/content/4years/4years-gopher.png
similarity index 100%
rename from content/4years-gopher.png
rename to content/4years/4years-gopher.png
Binary files differ
diff --git a/content/4years-graph.png b/content/4years/4years-graph.png
similarity index 100%
rename from content/4years-graph.png
rename to content/4years/4years-graph.png
Binary files differ
diff --git a/content/6years.article b/content/6years.article
index 408b5ac..fa70b8e 100644
--- a/content/6years.article
+++ b/content/6years.article
@@ -15,7 +15,7 @@
[the](https://blog.golang.org/gouk15)
[world](https://blog.golang.org/gopherchina) with regularity.
-.image 6years-gopher.png
+.image 6years/6years-gopher.png
In August we [released Go 1.5](https://blog.golang.org/go1.5), the most
significant release since Go 1. It features a completely
diff --git a/content/6years-gopher.png b/content/6years/6years-gopher.png
similarity index 100%
rename from content/6years-gopher.png
rename to content/6years/6years-gopher.png
Binary files differ
diff --git a/content/7years.article b/content/7years.article
index d329770..e46cc37 100644
--- a/content/7years.article
+++ b/content/7years.article
@@ -7,7 +7,7 @@
##
-.html gopherbelly.html
+.html 7years/gopherbelly.html
Today marks seven years since we open-sourced our preliminary sketch of Go.
With the help of the open source community, including more than a thousand
diff --git a/content/7years/gopherbelly.html b/content/7years/gopherbelly.html
new file mode 100644
index 0000000..021d550
--- /dev/null
+++ b/content/7years/gopherbelly.html
@@ -0,0 +1 @@
+ <img src="7years/gopherbelly300.jpg" align="right">
diff --git a/content/gopherbelly300.jpg b/content/7years/gopherbelly300.jpg
similarity index 100%
rename from content/gopherbelly300.jpg
rename to content/7years/gopherbelly300.jpg
Binary files differ
diff --git a/content/9years.article b/content/9years.article
index 5795c0d..71b3137 100644
--- a/content/9years.article
+++ b/content/9years.article
@@ -57,7 +57,7 @@
The Go community is truly global.
At GopherCon Europe in Iceland this past summer, gophers literally spanned the gap between the continents.
-.image 9years-iceland.jpg _ 800
+.image 9years/9years-iceland.jpg _ 800
_(Photo by Winter Francia.)_
@@ -85,7 +85,7 @@
The project hit a major milestone in mid-2018 when, for the first time,
we had more contributions coming from the community than the Go team.
-.image 9years-graph.png _ 600
+.image 9years/9years-graph.png _ 600
## Thank You
diff --git a/content/9years-graph.png b/content/9years/9years-graph.png
similarity index 100%
rename from content/9years-graph.png
rename to content/9years/9years-graph.png
Binary files differ
diff --git a/content/9years-iceland.jpg b/content/9years/9years-iceland.jpg
similarity index 100%
rename from content/9years-iceland.jpg
rename to content/9years/9years-iceland.jpg
Binary files differ
diff --git a/content/README b/content/README
new file mode 100644
index 0000000..30e149c
--- /dev/null
+++ b/content/README
@@ -0,0 +1,27 @@
+This directory holds Go blog articles, in *.article.
+See https://pkg.go.dev/golang.org/x/tools/present?tab=doc
+for documentation of the file format or look at any of the
+articles for examples.
+
+Article file names should be short, amenable to being typed by hand in URLs.
+Typically article file names are up to three words, separated by dashes.
+A trailing year in the name typically does not have a dash before it.
+
+All supporting files for an article, even if there's only one, should be
+placed in a directory named for the article (minus the .article suffix).
+
+If your article has code that is meant to be a working program, please use
+.code, or ideally .play, to load the lines from a supporting .go file.
+That way you can easily check that the .go file, and therefore the code
+in your article, still works.
+
+Please use .image and .video to embed images and videos,
+instead of using raw HTML tags. The .image and .video commands
+provide a way to adjust the implementation of those embeddings
+all in one place.
+
+Please use .html when it is necessary to add large blocks of HTML,
+keeping article text in the main .article file. Another important use of
+.html is to factor out an HTML snippet that appears multiple times.
+Short HTML sequences, like <div><center> or </div></center>,
+are fine to put directly in the article files.
diff --git a/content/go-app-engine-sdk-155-released.article b/content/appengine-155.article
similarity index 97%
rename from content/go-app-engine-sdk-155-released.article
rename to content/appengine-155.article
index 8523232..37cf290 100644
--- a/content/go-app-engine-sdk-155-released.article
+++ b/content/appengine-155.article
@@ -2,6 +2,7 @@
11 Oct 2011
Tags: appengine, gofix, release
Summary: Go App Engine SDK 1.5.5 includes Go release.r60.2.
+OldURL: /go-app-engine-sdk-155-released
Andrew Gerrand
diff --git a/content/go-updates-in-app-engine-171.article b/content/appengine-171.article
similarity index 98%
rename from content/go-updates-in-app-engine-171.article
rename to content/appengine-171.article
index a25c7dd..57c047d 100644
--- a/content/go-updates-in-app-engine-171.article
+++ b/content/appengine-171.article
@@ -2,6 +2,7 @@
22 Aug 2012
Tags: appengine, release
Summary: App Engine SDK 1.7.1 adds memcache and other functionality for Go.
+OldURL: /go-updates-in-app-engine-171
Andrew Gerrand
diff --git a/content/go-for-app-engine-is-now-generally.article b/content/appengine-ga.article
similarity index 97%
rename from content/go-for-app-engine-is-now-generally.article
rename to content/appengine-ga.article
index de68b11..964efc1 100644
--- a/content/go-for-app-engine-is-now-generally.article
+++ b/content/appengine-ga.article
@@ -2,6 +2,7 @@
21 Jul 2011
Tags: appengine, release
Summary: You can use Go on App Engine now!
+OldURL: /go-for-app-engine-is-now-generally
Andrew Gerrand
diff --git a/content/the-app-engine-sdk-and-workspaces-gopath.article b/content/appengine-gopath.article
similarity index 98%
rename from content/the-app-engine-sdk-and-workspaces-gopath.article
rename to content/appengine-gopath.article
index 846ae0b..d9f995b 100644
--- a/content/the-app-engine-sdk-and-workspaces-gopath.article
+++ b/content/appengine-gopath.article
@@ -2,6 +2,7 @@
9 Jan 2013
Tags: appengine, tools, gopath
Summary: App Engine SDK 1.7.4 adds support for GOPATH-style workspaces.
+OldURL: /the-app-engine-sdk-and-workspaces-gopath
Andrew Gerrand
diff --git a/content/writing-scalable-app-engine.article b/content/appengine-scalable.article
similarity index 97%
rename from content/writing-scalable-app-engine.article
rename to content/appengine-scalable.article
index 231305c..4a91040 100644
--- a/content/writing-scalable-app-engine.article
+++ b/content/appengine-scalable.article
@@ -2,6 +2,7 @@
1 Nov 2011
Tags: appengine, optimization
Summary: How to build scalable web applications using Go with Google App Engine.
+OldURL: /writing-scalable-app-engine
David Symonds
diff --git a/content/go-and-google-app-engine.article b/content/appengine.article
similarity index 98%
rename from content/go-and-google-app-engine.article
rename to content/appengine.article
index f88b17d..89b8244 100644
--- a/content/go-and-google-app-engine.article
+++ b/content/appengine.article
@@ -2,6 +2,7 @@
10 May 2011
Tags: appengine, release
Summary: Announcing support for Go in Google App Engine.
+OldURL: /go-and-google-app-engine
David Symonds
diff --git a/content/go-wins-2010-bossie-award.article b/content/bossie.article
similarity index 97%
rename from content/go-wins-2010-bossie-award.article
rename to content/bossie.article
index fea692e..bff5a23 100644
--- a/content/go-wins-2010-bossie-award.article
+++ b/content/bossie.article
@@ -1,6 +1,7 @@
# Go Wins 2010 Bossie Award
6 Sep 2010
Summary: Go wins a 2010 Bossie Award for “best open source application development software.”
+OldURL: /go-wins-2010-bossie-award
Andrew Gerrand
diff --git a/content/c-go-cgo.article b/content/cgo.article
similarity index 99%
rename from content/c-go-cgo.article
rename to content/cgo.article
index b344def..0697395 100644
--- a/content/c-go-cgo.article
+++ b/content/cgo.article
@@ -2,6 +2,7 @@
17 Mar 2011
Tags: cgo, technical
Summary: How to use cgo to let Go packages call C code.
+OldURL: /c-go-cgo
Andrew Gerrand
diff --git a/content/share-memory-by-communicating.article b/content/codelab-share.article
similarity index 98%
rename from content/share-memory-by-communicating.article
rename to content/codelab-share.article
index c254ea0..03fbab6 100644
--- a/content/share-memory-by-communicating.article
+++ b/content/codelab-share.article
@@ -2,6 +2,7 @@
13 Jul 2010
Tags: concurrency, technical
Summary: A preview of the new Go codelab, Share Memory by Communicating.
+OldURL: /share-memory-by-communicating
Andrew Gerrand
diff --git a/content/go-concurrency-patterns-timing-out-and.article b/content/concurrency-timeouts.article
similarity index 98%
rename from content/go-concurrency-patterns-timing-out-and.article
rename to content/concurrency-timeouts.article
index 9bdc565..8237e7d 100644
--- a/content/go-concurrency-patterns-timing-out-and.article
+++ b/content/concurrency-timeouts.article
@@ -2,6 +2,7 @@
23 Sep 2010
Tags: concurrency, technical
Summary: How to implement timeouts using Go's concurrency support.
+OldURL: /go-concurrency-patterns-timing-out-and
Andrew Gerrand
diff --git a/content/community-outreach-working-group.article b/content/cwg.article
similarity index 96%
rename from content/community-outreach-working-group.article
rename to content/cwg.article
index 72ae0c4..d38dbf4 100644
--- a/content/community-outreach-working-group.article
+++ b/content/cwg.article
@@ -2,6 +2,7 @@
5 Sep 2017
Tags: community
Summary: Annoucing the Go Community Outreach Working Group (CWG).
+OldURL: /community-outreach-working-group
Steve Francia & Cassandra Salisbury
spf@golang.org
@@ -48,7 +49,7 @@
primary initiatives. Each project has a variety of [issues](https://github.com/golang/cwg/issues) tied to them
with assignees from our Leadership team and [our members](https://github.com/golang/cwg/issues/15).
-.image community-outreach-working-group/project.png
+.image cwg/project.png
If you’d like to get involved, we encourage you to comment on the issue
that interests you or [submit an issue](https://github.com/golang/cwg/issues/new) yourself!
diff --git a/content/community-outreach-working-group/project.png b/content/cwg/project.png
similarity index 100%
rename from content/community-outreach-working-group/project.png
rename to content/cwg/project.png
Binary files differ
diff --git a/content/debugging-go-programs-with-gnu-debugger.article b/content/debug-gdb.article
similarity index 93%
rename from content/debugging-go-programs-with-gnu-debugger.article
rename to content/debug-gdb.article
index e6cfbda..ff24c4f 100644
--- a/content/debugging-go-programs-with-gnu-debugger.article
+++ b/content/debug-gdb.article
@@ -2,6 +2,7 @@
30 Oct 2011
Tags: debug, gdb, technical
Summary: Announcing a new article about debugging Go programs with GDB.
+OldURL: /debugging-go-programs-with-gnu-debugger
Andrew Gerrand
diff --git a/content/debugging-what-you-deploy.article b/content/debug-opt.article
similarity index 98%
rename from content/debugging-what-you-deploy.article
rename to content/debug-opt.article
index 29274cb..002181b 100644
--- a/content/debugging-what-you-deploy.article
+++ b/content/debug-opt.article
@@ -2,6 +2,7 @@
21 Mar 2019
Tags: debug, technical
Summary: Go 1.12 improves support for debugging optimized binaries.
+OldURL: /debugging-what-you-deploy
David Chase
@@ -65,7 +66,7 @@
This shows an example of stepping through a simple function in a debugger in 1.10,
with flaws (skipped and repeated lines) highlighted by red arrows.
-.image debugging-what-you-deploy.svg _ 450
+.image debug-opt/stepping.svg _ 450
Flaws like this make it easy to lose track of where you are when stepping
through a program and interfere with hitting breakpoints.
diff --git a/content/debugging-what-you-deploy.graffle b/content/debug-opt/stepping.graffle
similarity index 100%
rename from content/debugging-what-you-deploy.graffle
rename to content/debug-opt/stepping.graffle
Binary files differ
diff --git a/content/debugging-what-you-deploy.svg b/content/debug-opt/stepping.svg
similarity index 100%
rename from content/debugging-what-you-deploy.svg
rename to content/debug-opt/stepping.svg
diff --git a/content/debugging-go-code-status-report.article b/content/debug-status.article
similarity index 98%
rename from content/debugging-go-code-status-report.article
rename to content/debug-status.article
index 7881bc5..1f5416b 100644
--- a/content/debugging-go-code-status-report.article
+++ b/content/debug-status.article
@@ -2,6 +2,7 @@
2 Nov 2010
Tags: debug, gdb
Summary: What works and what doesn't when debugging Go programs with GDB.
+OldURL: /debugging-go-code-status-report
Luuk van Dijk
diff --git a/content/gos-declaration-syntax.article b/content/declaration-syntax.article
similarity index 99%
rename from content/gos-declaration-syntax.article
rename to content/declaration-syntax.article
index f0eab83..f1d0574 100644
--- a/content/gos-declaration-syntax.article
+++ b/content/declaration-syntax.article
@@ -2,6 +2,7 @@
7 Jul 2010
Tags: c, syntax, ethos
Summary: Why Go's declaration syntax doesn't look like, and is much simpler than, C's.
+OldURL: /gos-declaration-syntax
Rob Pike
diff --git a/content/docker.article b/content/docker.article
index 973b547..d0be85c 100644
--- a/content/docker.article
+++ b/content/docker.article
@@ -93,7 +93,7 @@
With the container running, open `http://localhost:6060/` in a web browser and
you should see something like this:
-.image docker-outyet.png
+.image docker/outyet.png
(If your docker daemon is running on another machine (or in a virtual machine),
you should replace `localhost` with the address of that machine. If you're
diff --git a/content/docker-outyet.png b/content/docker/outyet.png
similarity index 100%
rename from content/docker-outyet.png
rename to content/docker/outyet.png
Binary files differ
diff --git a/content/spotlight-on-external-go-libraries.article b/content/external-libraries.article
similarity index 98%
rename from content/spotlight-on-external-go-libraries.article
rename to content/external-libraries.article
index 6485d3b..fc21c8e 100644
--- a/content/spotlight-on-external-go-libraries.article
+++ b/content/external-libraries.article
@@ -2,6 +2,7 @@
3 Jun 2011
Tags: community, libraries
Summary: Some popular Go libraries and how to use them.
+OldURL: /spotlight-on-external-go-libraries
Andrew Gerrand
diff --git a/content/first-class-functions-in-go-and-new-go.article b/content/functions-codewalk.article
similarity index 88%
rename from content/first-class-functions-in-go-and-new-go.article
rename to content/functions-codewalk.article
index 16f9be1..1ae0b84 100644
--- a/content/first-class-functions-in-go-and-new-go.article
+++ b/content/functions-codewalk.article
@@ -1,7 +1,8 @@
-# "First Class Functions in Go"
+# First Class Functions in Go
30 Jun 2011
Tags: codewalk, function, technical
Summary: Announcing a new Go codewalk, exploring first class functions.
+OldURL: /first-class-functions-in-go-and-new-go
Andrew Gerrand
diff --git a/content/gif-decoder-exercise-in-go-interfaces.article b/content/gif-decoder.article
similarity index 97%
rename from content/gif-decoder-exercise-in-go-interfaces.article
rename to content/gif-decoder.article
index 003d3ed..d848210 100644
--- a/content/gif-decoder-exercise-in-go-interfaces.article
+++ b/content/gif-decoder.article
@@ -2,6 +2,7 @@
25 May 2011
Tags: gif, gopher, image, interface, lagomorph, lzw, moustache, rodent, technical
Summary: How Go's interfaces work nicely in the Go GIF decoder.
+OldURL: /gif-decoder-exercise-in-go-interfaces
Rob Pike
@@ -16,11 +17,11 @@
In that vein, we demonstrated a program called [Moustachio](http://moustach-io.appspot.com/)
that makes it easy to improve a picture such as this one:
-.image gif-decoder-exercise-in-go-interfaces_image00.jpg
+.image gif-decoder/image00.jpg
by adding a moustache and sharing the result:
-.image gif-decoder-exercise-in-go-interfaces_image02.jpg
+.image gif-decoder/image02.jpg
All the graphical processing, including rendering the antialiased moustache,
is done by a Go program running on App Engine.
@@ -60,7 +61,7 @@
The compressed data is then broken into length-delimited blocks with a one-byte
count (0-255) followed by that many bytes:
-.image gif-decoder-exercise-in-go-interfaces_image03.gif
+.image gif-decoder/image03.gif
## Deblocking the pixel data
@@ -208,6 +209,6 @@
That deserves another picture, a GIF this time:
-.image gif-decoder-exercise-in-go-interfaces_image01.gif
+.image gif-decoder/image01.gif
The GIF format is defined at [http://www.w3.org/Graphics/GIF/spec-gif89a.txt](http://www.w3.org/Graphics/GIF/spec-gif89a.txt).
diff --git a/content/gif-decoder-exercise-in-go-interfaces_image00.jpg b/content/gif-decoder/image00.jpg
similarity index 100%
rename from content/gif-decoder-exercise-in-go-interfaces_image00.jpg
rename to content/gif-decoder/image00.jpg
Binary files differ
diff --git a/content/gif-decoder-exercise-in-go-interfaces_image01.gif b/content/gif-decoder/image01.gif
similarity index 100%
rename from content/gif-decoder-exercise-in-go-interfaces_image01.gif
rename to content/gif-decoder/image01.gif
Binary files differ
diff --git a/content/gif-decoder-exercise-in-go-interfaces_image02.jpg b/content/gif-decoder/image02.jpg
similarity index 100%
rename from content/gif-decoder-exercise-in-go-interfaces_image02.jpg
rename to content/gif-decoder/image02.jpg
Binary files differ
diff --git a/content/gif-decoder-exercise-in-go-interfaces_image03.gif b/content/gif-decoder/image03.gif
similarity index 100%
rename from content/gif-decoder-exercise-in-go-interfaces_image03.gif
rename to content/gif-decoder/image03.gif
Binary files differ
diff --git a/content/gcdk-whats-new-in-march-2019.article b/content/go-cloud2019.article
similarity index 98%
rename from content/gcdk-whats-new-in-march-2019.article
rename to content/go-cloud2019.article
index 29496a6..7c22a33 100644
--- a/content/gcdk-whats-new-in-march-2019.article
+++ b/content/go-cloud2019.article
@@ -1,6 +1,7 @@
# What's new in the Go Cloud Development Kit
4 Mar 2019
Summary: Recent changes to the Go Cloud Development Kit (Go CDK).
+OldURL: /gcdk-whats-new-in-march-2019
The Go Cloud Development Kit team at Google
diff --git a/content/the-path-to-go-1.article b/content/go1-path.article
similarity index 97%
rename from content/the-path-to-go-1.article
rename to content/go1-path.article
index 072de3b..ce867ea 100644
--- a/content/the-path-to-go-1.article
+++ b/content/go1-path.article
@@ -2,6 +2,7 @@
14 Mar 2013
Tags: talk, video, go1
Summary: Watch Rob Pike and Andrew Gerrand's talk, The Path to Go 1.
+OldURL: /the-path-to-go-1
Andrew Gerrand
diff --git a/content/preview-of-go-version-1.article b/content/go1-preview.article
similarity index 98%
rename from content/preview-of-go-version-1.article
rename to content/go1-preview.article
index 4cb514d..6e3f474 100644
--- a/content/preview-of-go-version-1.article
+++ b/content/go1-preview.article
@@ -2,6 +2,7 @@
5 Oct 2011
Tags: go1, release
Summary: What the Go team is planning for Go version 1.
+OldURL: /preview-of-go-version-1
Russ Cox
diff --git a/content/go-11-is-released.article b/content/go1.1.article
similarity index 97%
rename from content/go-11-is-released.article
rename to content/go1.1.article
index 9b641b6..f2f26c6 100644
--- a/content/go-11-is-released.article
+++ b/content/go1.1.article
@@ -2,6 +2,7 @@
13 May 2013
Tags: release
Summary: Go 1.1 is faster, less picky about return statements, and adds method expressions.
+OldURL: /go-11-is-released
Andrew Gerrand
@@ -9,7 +10,7 @@
It is our great pleasure to announce the release of Go 1.1.
-.image go-11-is-released_gopherbiplane5.jpg
+.image go1.1/gopherbiplane5.jpg
In March last year we released Go 1.0, and since then we have released three
minor "point releases".
diff --git a/content/go-11-is-released_gopherbiplane5.jpg b/content/go1.1/gopherbiplane5.jpg
similarity index 100%
rename from content/go-11-is-released_gopherbiplane5.jpg
rename to content/go1.1/gopherbiplane5.jpg
Binary files differ
diff --git a/content/go1.7-binary-size.article b/content/go1.7-binary-size.article
index 596c000..0b99a8d 100644
--- a/content/go1.7-binary-size.article
+++ b/content/go1.7-binary-size.article
@@ -82,7 +82,7 @@
When compiled without debugging information the statically
linked binary is now under a megabyte.
-.image go1.7-binary-size.png
+.image go1.7-binary-size/graph.png
A large production program used for testing this cycle, `jujud`, went from 94MB
to 67MB.
diff --git a/content/go1.7-binary-size.png b/content/go1.7-binary-size/graph.png
similarity index 100%
rename from content/go1.7-binary-size.png
rename to content/go1.7-binary-size/graph.png
Binary files differ
diff --git a/content/go-version-1-is-released.article b/content/go1.article
similarity index 98%
rename from content/go-version-1-is-released.article
rename to content/go1.article
index 89a63b1..be06ceb 100644
--- a/content/go-version-1-is-released.article
+++ b/content/go1.article
@@ -7,7 +7,7 @@
##
-.image go-version-1-is-released_gophermega.jpg
+.image go1/gophermega.jpg
Today marks a major milestone in the development of the Go programming language.
We're announcing Go version 1, or Go 1 for short,
diff --git a/content/go-version-1-is-released_gophermega.jpg b/content/go1/gophermega.jpg
similarity index 100%
rename from content/go-version-1-is-released_gophermega.jpg
rename to content/go1/gophermega.jpg
Binary files differ
diff --git a/content/gobs-of-data.article b/content/gob.article
similarity index 99%
rename from content/gobs-of-data.article
rename to content/gob.article
index b361ca6..3b5c405 100644
--- a/content/gobs-of-data.article
+++ b/content/gob.article
@@ -2,6 +2,7 @@
24 Mar 2011
Tags: gob, json, protobuf, xml, technical
Summary: Introducing gob, a high-speed Go-to-Go wire encoding format.
+OldURL: /gobs-of-data
Rob Pike
diff --git a/content/godoc-documenting-go-code.article b/content/godoc.article
similarity index 99%
rename from content/godoc-documenting-go-code.article
rename to content/godoc.article
index 26ff00a..d2a5c82 100644
--- a/content/godoc-documenting-go-code.article
+++ b/content/godoc.article
@@ -2,6 +2,7 @@
31 Mar 2011
Tags: godoc, technical
Summary: How and why to document your Go packages.
+OldURL: /godoc-documenting-go-code
Andrew Gerrand
diff --git a/content/go-fmt-your-code.article b/content/gofmt.article
similarity index 99%
rename from content/go-fmt-your-code.article
rename to content/gofmt.article
index 7f3a350..7aa3428 100644
--- a/content/go-fmt-your-code.article
+++ b/content/gofmt.article
@@ -2,6 +2,7 @@
23 Jan 2013
Tags: gofix, gofmt, technical
Summary: How and why to format your Go code using gofmt.
+OldURL: /go-fmt-your-code
Andrew Gerrand
diff --git a/content/gopherbelly.html b/content/gopherbelly.html
deleted file mode 100644
index a9a4feb..0000000
--- a/content/gopherbelly.html
+++ /dev/null
@@ -1,2 +0,0 @@
- <img src="gopherbelly300.jpg" align="right">
-
\ No newline at end of file
diff --git a/content/gophercon2015.article b/content/gophercon2015.article
index 9c06786..526859c 100644
--- a/content/gophercon2015.article
+++ b/content/gophercon2015.article
@@ -12,8 +12,8 @@
more than 1,250 attendees—nearly double last year's number—and featured 22
talks presented by Go community members.
-.image gophercon2015.jpg _ 550
-.html gophercon2015.caption
+.image gophercon2015/cowboy.jpg _ 550
+.html gophercon2015/cowboy.caption
Today the organizers have posted the videos online so you can now enjoy the
conference from afar:
diff --git a/content/gophercon2015.caption b/content/gophercon2015/cowboy.caption
similarity index 100%
rename from content/gophercon2015.caption
rename to content/gophercon2015/cowboy.caption
diff --git a/content/gophercon2015.jpg b/content/gophercon2015/cowboy.jpg
similarity index 100%
rename from content/gophercon2015.jpg
rename to content/gophercon2015/cowboy.jpg
Binary files differ
diff --git a/content/go-whats-new-in-march-2010.article b/content/hello-world.article
similarity index 98%
rename from content/go-whats-new-in-march-2010.article
rename to content/hello-world.article
index a046f7d..c0438ee 100644
--- a/content/go-whats-new-in-march-2010.article
+++ b/content/hello-world.article
@@ -1,6 +1,7 @@
# Go: What's New in March 2010
18 Mar 2010
Summary: First post!
+OldURL: /go-whats-new-in-march-2010
Andrew Gerrand
diff --git a/content/go-at-heroku.article b/content/heroku.article
similarity index 99%
rename from content/go-at-heroku.article
rename to content/heroku.article
index 7fe67ef..2aa75c2 100644
--- a/content/go-at-heroku.article
+++ b/content/heroku.article
@@ -2,6 +2,7 @@
21 Apr 2011
Tags: guest
Summary: _This week’s blog post is written by_ [_Keith Rarick_](http://xph.us/) _and_ [_Blake Mizerany_](http://itsbonus.heroku.com/), _systems engineers at_ [Heroku](http://www.heroku.com/). _In their own words, they "eat, drink, and sleep distributed systems." Here they discuss their experiences using Go._
+OldURL: /go-at-heroku
Keith Rarick
diff --git a/content/go-imagedraw-package.article b/content/image-draw.article
similarity index 96%
rename from content/go-imagedraw-package.article
rename to content/image-draw.article
index f3a1bc8..aa2f77a 100644
--- a/content/go-imagedraw-package.article
+++ b/content/image-draw.article
@@ -2,6 +2,7 @@
29 Sep 2011
Tags: draw, image, libraries, technical
Summary: An introduction to image compositing in Go using the image/draw package.
+OldURL: /go-imagedraw-package
Nigel Tao
@@ -58,7 +59,7 @@
The effective rectangle is also clipped to each image's bounds in their
respective co-ordinate space.
-.image go-imagedraw-package_20.png
+.image image-draw/20.png
The [`DrawMask`](https://golang.org/pkg/image/draw/#DrawMask) function
takes seven arguments,
@@ -102,7 +103,7 @@
draw.Draw(m, m.Bounds(), image.Transparent, image.ZP, draw.Src)
-.image go-imagedraw-package_2a.png
+.image image-draw/2a.png
## Copying an Image
@@ -120,7 +121,7 @@
To copy the entire source image, use `sr = src.Bounds()`.
-.image go-imagedraw-package_2b.png
+.image image-draw/2b.png
## Scrolling an Image
@@ -137,7 +138,7 @@
draw.Draw(m, b, m, b.Min.Add(p), draw.Src)
dirtyRect := b.Intersect(image.Rect(b.Min.X, b.Max.Y-20, b.Max.X, b.Max.Y))
-.image go-imagedraw-package_2c.png
+.image image-draw/2c.png
## Converting an Image to RGBA
@@ -151,7 +152,7 @@
m := image.NewRGBA(image.Rect(0, 0, b.Dx(), b.Dy()))
draw.Draw(m, m.Bounds(), src, b.Min, draw.Src)
-.image go-imagedraw-package_2d.png
+.image image-draw/2d.png
## Drawing Through a Mask
@@ -180,7 +181,7 @@
draw.DrawMask(dst, dst.Bounds(), src, image.ZP, &circle{p, r}, image.ZP, draw.Over)
-.image go-imagedraw-package_2e.png
+.image image-draw/2e.png
## Drawing Font Glyphs
@@ -194,7 +195,7 @@
mr := theBoundsFor(glyphIndex)
draw.DrawMask(dst, mr.Sub(mr.Min).Add(p), src, image.ZP, mask, mr.Min, draw.Over)
-.image go-imagedraw-package_2f.png
+.image image-draw/2f.png
## Performance
diff --git a/content/go-imagedraw-package_20.png b/content/image-draw/20.png
similarity index 100%
rename from content/go-imagedraw-package_20.png
rename to content/image-draw/20.png
Binary files differ
diff --git a/content/go-imagedraw-package_2a.png b/content/image-draw/2a.png
similarity index 100%
rename from content/go-imagedraw-package_2a.png
rename to content/image-draw/2a.png
Binary files differ
diff --git a/content/go-imagedraw-package_2b.png b/content/image-draw/2b.png
similarity index 100%
rename from content/go-imagedraw-package_2b.png
rename to content/image-draw/2b.png
Binary files differ
diff --git a/content/go-imagedraw-package_2c.png b/content/image-draw/2c.png
similarity index 100%
rename from content/go-imagedraw-package_2c.png
rename to content/image-draw/2c.png
Binary files differ
diff --git a/content/go-imagedraw-package_2d.png b/content/image-draw/2d.png
similarity index 100%
rename from content/go-imagedraw-package_2d.png
rename to content/image-draw/2d.png
Binary files differ
diff --git a/content/go-imagedraw-package_2e.png b/content/image-draw/2e.png
similarity index 100%
rename from content/go-imagedraw-package_2e.png
rename to content/image-draw/2e.png
Binary files differ
diff --git a/content/go-imagedraw-package_2f.png b/content/image-draw/2f.png
similarity index 100%
rename from content/go-imagedraw-package_2f.png
rename to content/image-draw/2f.png
Binary files differ
diff --git a/content/go-image-package.article b/content/image.article
similarity index 97%
rename from content/go-image-package.article
rename to content/image.article
index 2501b7b..875d117 100644
--- a/content/go-image-package.article
+++ b/content/image.article
@@ -2,6 +2,7 @@
21 Sep 2011
Tags: image, libraries, technical
Summary: An introduction to 2-D image processing with the Go image package.
+OldURL: /go-image-package
Nigel Tao
@@ -96,7 +97,7 @@
X, Y int
}
-.image go-image-package_image-package-01.png
+.image image/image-package-01.png
p := image.Point{2, 1}
@@ -121,7 +122,7 @@
and exclusive at the high end.
(Unlike arrays and slices, a `Rectangle` often has a non-zero origin.)
-.image go-image-package_image-package-02.png
+.image image/image-package-02.png
r := image.Rect(2, 1, 5, 5)
// Dx and Dy return a rectangle's width and height.
@@ -130,14 +131,14 @@
Adding a `Point` to a `Rectangle` translates the `Rectangle`.
Points and Rectangles are not restricted to be in the bottom-right quadrant.
-.image go-image-package_image-package-03.png
+.image image/image-package-03.png
r := image.Rect(2, 1, 5, 5).Add(image.Pt(-4, -2))
fmt.Println(r.Dx(), r.Dy(), image.Pt(0, 0).In(r)) // prints 3 4 true
Intersecting two Rectangles yields another Rectangle, which may be empty.
-.image go-image-package_image-package-04.png
+.image image/image-package-04.png
r := image.Rect(0, 0, 4, 3).Intersect(image.Rect(2, 2, 5, 5))
// Size returns a rectangle's width and height, as a Point.
@@ -219,7 +220,7 @@
analogous to how modifying the contents of a sub-slice `s[i0:i1]` will affect
the contents of the original slice `s`.
-.image go-image-package_image-package-05.png
+.image image/image-package-05.png
m0 := image.NewRGBA(image.Rect(0, 0, 8, 5))
m1 := m0.SubImage(image.Rect(1, 2, 5, 5)).(*image.RGBA)
diff --git a/content/go-image-package_image-package-01.png b/content/image/image-package-01.png
similarity index 100%
rename from content/go-image-package_image-package-01.png
rename to content/image/image-package-01.png
Binary files differ
diff --git a/content/go-image-package_image-package-02.png b/content/image/image-package-02.png
similarity index 100%
rename from content/go-image-package_image-package-02.png
rename to content/image/image-package-02.png
Binary files differ
diff --git a/content/go-image-package_image-package-03.png b/content/image/image-package-03.png
similarity index 100%
rename from content/go-image-package_image-package-03.png
rename to content/image/image-package-03.png
Binary files differ
diff --git a/content/go-image-package_image-package-04.png b/content/image/image-package-04.png
similarity index 100%
rename from content/go-image-package_image-package-04.png
rename to content/image/image-package-04.png
Binary files differ
diff --git a/content/go-image-package_image-package-05.png b/content/image/image-package-05.png
similarity index 100%
rename from content/go-image-package_image-package-05.png
rename to content/image/image-package-05.png
Binary files differ
diff --git a/content/go-at-io-frequently-asked-questions.article b/content/io2010-faq.article
similarity index 98%
rename from content/go-at-io-frequently-asked-questions.article
rename to content/io2010-faq.article
index 70d3542..e305fcc 100644
--- a/content/go-at-io-frequently-asked-questions.article
+++ b/content/io2010-faq.article
@@ -2,6 +2,7 @@
27 May 2010
Tags: appengine
Summary: Q&A about Go from Google I/O 2010.
+OldURL: /go-at-io-frequently-asked-questions
Andrew Gerrand
diff --git a/content/upcoming-google-io-go-events.article b/content/io2010-preview.article
similarity index 96%
rename from content/upcoming-google-io-go-events.article
rename to content/io2010-preview.article
index 2a1d21a..1ea1300 100644
--- a/content/upcoming-google-io-go-events.article
+++ b/content/io2010-preview.article
@@ -1,6 +1,7 @@
# Upcoming Google I/O Go Events
12 May 2010
Summary: If you will be at Google I/O 2010, be sure to catch up with the Go team at these events.
+OldURL: /upcoming-google-io-go-events
Andrew Gerrand
diff --git a/content/go-programming-session-video-from.article b/content/io2010.article
similarity index 87%
rename from content/go-programming-session-video-from.article
rename to content/io2010.article
index f5a438f..7fb9484 100644
--- a/content/go-programming-session-video-from.article
+++ b/content/io2010.article
@@ -2,6 +2,7 @@
6 Jun 2010
Tags: video, talk
Summary: A talk by Rob Pike and Russ Cox about Go, from Google I/O 2010.
+OldURL: /go-programming-session-video-from
Andrew Gerrand
diff --git a/content/go-at-google-io-2011-videos.article b/content/io2011.article
similarity index 97%
rename from content/go-at-google-io-2011-videos.article
rename to content/io2011.article
index 3eae57d..a6a356a 100644
--- a/content/go-at-google-io-2011-videos.article
+++ b/content/io2011.article
@@ -2,6 +2,7 @@
23 May 2011
Tags: appengine, gopher, talk, video
Summary: Two talks about Go from Google I/O 2011.
+OldURL: /go-at-google-io-2011-videos
Andrew Gerrand
@@ -31,7 +32,7 @@
Most important, this talk features the debut of the plush gopher.
-.image go-at-google-io-2011-videos_gopher.jpg
+.image io2011/gopher.jpg
For those that didn’t get one at the conference, we hope to make him available for purchase online soon.
diff --git a/content/go-at-google-io-2011-videos_gopher.jpg b/content/io2011/gopher.jpg
similarity index 100%
rename from content/go-at-google-io-2011-videos_gopher.jpg
rename to content/io2011/gopher.jpg
Binary files differ
diff --git a/content/go-videos-from-google-io-2012.article b/content/io2012-videos.article
similarity index 97%
rename from content/go-videos-from-google-io-2012.article
rename to content/io2012-videos.article
index 600b000..4183c06 100644
--- a/content/go-videos-from-google-io-2012.article
+++ b/content/io2012-videos.article
@@ -2,6 +2,7 @@
2 Jul 2012
Tags: talk, video, concurrency, appengine, ethos
Summary: Talks about Go from Google I/O 2012.
+OldURL: /go-videos-from-google-io-2012
Andrew Gerrand
diff --git a/content/a-conversation-with-the-go-team.article b/content/io2013-chat.article
similarity index 99%
rename from content/a-conversation-with-the-go-team.article
rename to content/io2013-chat.article
index 76c0a40..9b031da 100644
--- a/content/a-conversation-with-the-go-team.article
+++ b/content/io2013-chat.article
@@ -1,6 +1,7 @@
# A conversation with the Go team
6 Jun 2013
Summary: At Google I/O 2013, several members of the Go team hosted a "Fireside chat."
+OldURL: /a-conversation-with-the-go-team
##
diff --git a/content/advanced-go-concurrency-patterns.article b/content/io2013-talk-concurrency.article
similarity index 96%
rename from content/advanced-go-concurrency-patterns.article
rename to content/io2013-talk-concurrency.article
index db7b659..9815c93 100644
--- a/content/advanced-go-concurrency-patterns.article
+++ b/content/io2013-talk-concurrency.article
@@ -2,6 +2,7 @@
23 May 2013
Tags: talk, video, concurrency
Summary: Watch Sameer Ajmani's talk, “Advanced Go Concurrency Patterns,” from Google I/O 2013.
+OldURL: /advanced-go-concurrency-patterns
Andrew Gerrand
diff --git a/content/go-and-google-cloud-platform.article b/content/io2013-talks-cloud.article
similarity index 97%
rename from content/go-and-google-cloud-platform.article
rename to content/io2013-talks-cloud.article
index caa69a2..f214ba8 100644
--- a/content/go-and-google-cloud-platform.article
+++ b/content/io2013-talks-cloud.article
@@ -1,6 +1,7 @@
# Go and the Google Cloud Platform
12 Jun 2013
Summary: Two talks about using Go with the Google Cloud Platform, from Google I/O 2013.
+OldURL: /go-and-google-cloud-platform
Andrew Gerrand
diff --git a/content/json-rpc-tale-of-interfaces.article b/content/json-rpc.article
similarity index 98%
rename from content/json-rpc-tale-of-interfaces.article
rename to content/json-rpc.article
index 6afdc8c..fc0541f 100644
--- a/content/json-rpc-tale-of-interfaces.article
+++ b/content/json-rpc.article
@@ -2,6 +2,7 @@
27 Apr 2010
Tags: json, rpc, technical
Summary: How to use the net/rpc package's interfaces to create a JSON-RPC system.
+OldURL: /json-rpc-tale-of-interfaces
Andrew Gerrand
diff --git a/content/json-and-go.article b/content/json.article
similarity index 99%
rename from content/json-and-go.article
rename to content/json.article
index 61cee1e..bedeba6 100644
--- a/content/json-and-go.article
+++ b/content/json.article
@@ -2,6 +2,7 @@
25 Jan 2011
Tags: json, technical
Summary: How to generate and consume JSON-formatted data in Go.
+OldURL: /json-and-go
Andrew Gerrand
diff --git a/content/go-maps-in-action.article b/content/maps.article
similarity index 97%
rename from content/go-maps-in-action.article
rename to content/maps.article
index 8bcda9e..e7b054e 100644
--- a/content/go-maps-in-action.article
+++ b/content/maps.article
@@ -2,6 +2,7 @@
6 Feb 2013
Tags: map, technical
Summary: How and when to use Go maps.
+OldURL: /go-maps-in-action
Andrew Gerrand
@@ -109,7 +110,7 @@
This example traverses a linked list of `Nodes` and prints their values.
It uses a map of `Node` pointers to detect cycles in the list.
-.code go-maps-in-action/list.go /START/,/END/
+.code maps/list.go /START/,/END/
The expression `visited[n]` is `true` if `n` has been visited,
or `false` if `n` is not present.
@@ -124,15 +125,15 @@
Each `Person` has a `Name` and a slice of Likes.
The example creates a map to associate each like with a slice of people that like it.
-.code go-maps-in-action/people.go /START1/,/END1/
+.code maps/people.go /START1/,/END1/
To print a list of people who like cheese:
-.code go-maps-in-action/people.go /START2/,/END2/
+.code maps/people.go /START2/,/END2/
To print the number of people who like bacon:
-.code go-maps-in-action/people.go /bacon/
+.code maps/people.go /bacon/
Note that since both range and len treat a nil slice as a zero-length slice,
these last two examples will work even if nobody likes cheese or bacon (however
diff --git a/content/go-maps-in-action/list.go b/content/maps/list.go
similarity index 100%
rename from content/go-maps-in-action/list.go
rename to content/maps/list.go
diff --git a/content/go-maps-in-action/people.go b/content/maps/people.go
similarity index 100%
rename from content/go-maps-in-action/people.go
rename to content/maps/people.go
diff --git a/content/getthee-to-go-meetup.article b/content/meetups.article
similarity index 97%
rename from content/getthee-to-go-meetup.article
rename to content/meetups.article
index e2a5e49..ba1e0e8 100644
--- a/content/getthee-to-go-meetup.article
+++ b/content/meetups.article
@@ -2,6 +2,7 @@
27 Feb 2013
Tags: community, talk
Summary: How to find or start a local group of gophers.
+OldURL: /getthee-to-go-meetup
Andrew Gerrand
diff --git a/content/introducing-go-playground.article b/content/playground-intro.article
similarity index 95%
rename from content/introducing-go-playground.article
rename to content/playground-intro.article
index bcc6d34..2b3cf1c 100644
--- a/content/introducing-go-playground.article
+++ b/content/playground-intro.article
@@ -2,6 +2,7 @@
15 Sep 2010
Tags: playground
Summary: Announcing the Go Playground, https://play.golang.org/.
+OldURL: /introducing-go-playground
Andrew Gerrand
@@ -14,7 +15,7 @@
the Go documentation tool.
But the real news is a prominent new feature: the [Go Playground](https://golang.org/).
-.image introducing-go-playground_Untitled.png
+.image playground-intro/screenshot.png
The Playground allows anyone with a web browser to write Go code that we
immediately compile,
diff --git a/content/introducing-go-playground_Untitled.png b/content/playground-intro/screenshot.png
similarity index 100%
rename from content/introducing-go-playground_Untitled.png
rename to content/playground-intro/screenshot.png
Binary files differ
diff --git a/content/profiling-go-programs.article b/content/pprof.article
similarity index 98%
rename from content/profiling-go-programs.article
rename to content/pprof.article
index 2485d05..ef79de1 100644
--- a/content/profiling-go-programs.article
+++ b/content/pprof.article
@@ -2,6 +2,7 @@
24 Jun 2011
Tags: benchmark, pprof, profiling, technical
Summary: How to use Go's built-in profiler to understand and optimize your programs.
+OldURL: /profiling-go-programs
Russ Cox, July 2011; updated by Shenghou Ma, May 2013
@@ -188,7 +189,7 @@
A small fragment of
[the full graph](https://rawgit.com/rsc/benchgraffiti/master/havlak/havlak1.svg) looks like:
-.image profiling-go-programs_havlak1a-75.png
+.image pprof/havlak1a-75.png
Each box in the graph corresponds to a single function, and the boxes are sized
according to the number of samples in which the function was running.
@@ -205,7 +206,7 @@
(pprof) web mapaccess1
-.image profiling-go-programs_havlak1-hash_lookup-75.png
+.image pprof/havlak1-hash_lookup-75.png
If we squint, we can see that the calls to `runtime.mapaccess1_fast64` are being
made by `main.FindLoops` and `main.DFS`.
@@ -458,7 +459,7 @@
(pprof) web mallocgc
-.image profiling-go-programs_havlak4a-mallocgc.png
+.image pprof/havlak4a-mallocgc.png
It's hard to tell what's going on in that graph, because there are many nodes with
small sample numbers obscuring the big ones.
@@ -469,7 +470,7 @@
Welcome to pprof! For help, type 'help'.
(pprof) web mallocgc
-.image profiling-go-programs_havlak4a-mallocgc-trim.png
+.image pprof/havlak4a-mallocgc-trim.png
We can follow the thick arrows easily now, to see that `FindLoops` is triggering
most of the garbage collection.
diff --git a/content/profiling-go-programs_havlak1-hash_lookup-75.png b/content/pprof/havlak1-hash_lookup-75.png
similarity index 100%
rename from content/profiling-go-programs_havlak1-hash_lookup-75.png
rename to content/pprof/havlak1-hash_lookup-75.png
Binary files differ
diff --git a/content/profiling-go-programs_havlak1a-75.png b/content/pprof/havlak1a-75.png
similarity index 100%
rename from content/profiling-go-programs_havlak1a-75.png
rename to content/pprof/havlak1a-75.png
Binary files differ
diff --git a/content/profiling-go-programs_havlak4a-mallocgc-trim.png b/content/pprof/havlak4a-mallocgc-trim.png
similarity index 100%
rename from content/profiling-go-programs_havlak4a-mallocgc-trim.png
rename to content/pprof/havlak4a-mallocgc-trim.png
Binary files differ
diff --git a/content/profiling-go-programs_havlak4a-mallocgc.png b/content/pprof/havlak4a-mallocgc.png
similarity index 100%
rename from content/profiling-go-programs_havlak4a-mallocgc.png
rename to content/pprof/havlak4a-mallocgc.png
Binary files differ
diff --git a/content/a-new-go-api-for-protocol-buffers.article b/content/protobuf-apiv2.article
similarity index 98%
rename from content/a-new-go-api-for-protocol-buffers.article
rename to content/protobuf-apiv2.article
index 5c1b1ec..952d73c 100644
--- a/content/a-new-go-api-for-protocol-buffers.article
+++ b/content/protobuf-apiv2.article
@@ -2,8 +2,13 @@
2 Mar 2020
Tags: protobuf, technical
Summary: Announcing a major revision of the Go API for protocol buffers.
+OldURL: /a-new-go-api-for-protocol-buffers
-Joe Tsai, Damien Neil, and Herbie Ong
+Joe Tsai
+
+Damien Neil
+
+Herbie Ong
## Introduction
diff --git a/content/third-party-libraries-goprotobuf-and.article b/content/protobuf.article
similarity index 97%
rename from content/third-party-libraries-goprotobuf-and.article
rename to content/protobuf.article
index bbc83e2..c1726ea 100644
--- a/content/third-party-libraries-goprotobuf-and.article
+++ b/content/protobuf.article
@@ -2,6 +2,7 @@
20 Apr 2010
Tags: protobuf, community
Summary: Announcing Go support for Protocol Buffers, Google's data interchange format.
+OldURL: /third-party-libraries-goprotobuf-and
Andrew Gerrand
diff --git a/content/go-slices-usage-and-internals.article b/content/slices-intro.article
similarity index 97%
rename from content/go-slices-usage-and-internals.article
rename to content/slices-intro.article
index 2f8c74e..7567c43 100644
--- a/content/go-slices-usage-and-internals.article
+++ b/content/slices-intro.article
@@ -2,6 +2,7 @@
5 Jan 2011
Tags: slice, technical
Summary: How to use Go slices, and how they work.
+OldURL: /go-slices-usage-and-internals
Andrew Gerrand
@@ -37,7 +38,7 @@
The in-memory representation of `[4]int` is just four integer values laid out sequentially:
-.image go-slices-usage-and-internals_slice-array.png
+.image slices-intro/slice-array.png
Go's arrays are values. An array variable denotes the entire array;
it is not a pointer to the first array element (as would be the case in C).
@@ -124,11 +125,11 @@
It consists of a pointer to the array, the length of the segment,
and its capacity (the maximum length of the segment).
-.image go-slices-usage-and-internals_slice-struct.png
+.image slices-intro/slice-struct.png
Our variable `s`, created earlier by `make([]byte, 5)`, is structured like this:
-.image go-slices-usage-and-internals_slice-1.png
+.image slices-intro/slice-1.png
The length is the number of elements referred to by the slice.
The capacity is the number of elements in the underlying array (beginning
@@ -140,7 +141,7 @@
s = s[2:4]
-.image go-slices-usage-and-internals_slice-2.png
+.image slices-intro/slice-2.png
Slicing does not copy the slice's data. It creates a new slice value that
points to the original array.
@@ -159,7 +160,7 @@
s = s[:cap(s)]
-.image go-slices-usage-and-internals_slice-3.png
+.image slices-intro/slice-3.png
A slice cannot be grown beyond its capacity.
Attempting to do so will cause a runtime panic,
diff --git a/content/go-slices-usage-and-internals_slice-1.png b/content/slices-intro/slice-1.png
similarity index 100%
rename from content/go-slices-usage-and-internals_slice-1.png
rename to content/slices-intro/slice-1.png
Binary files differ
diff --git a/content/go-slices-usage-and-internals_slice-2.png b/content/slices-intro/slice-2.png
similarity index 100%
rename from content/go-slices-usage-and-internals_slice-2.png
rename to content/slices-intro/slice-2.png
Binary files differ
diff --git a/content/go-slices-usage-and-internals_slice-3.png b/content/slices-intro/slice-3.png
similarity index 100%
rename from content/go-slices-usage-and-internals_slice-3.png
rename to content/slices-intro/slice-3.png
Binary files differ
diff --git a/content/go-slices-usage-and-internals_slice-array.png b/content/slices-intro/slice-array.png
similarity index 100%
rename from content/go-slices-usage-and-internals_slice-array.png
rename to content/slices-intro/slice-array.png
Binary files differ
diff --git a/content/go-slices-usage-and-internals_slice-struct.png b/content/slices-intro/slice-struct.png
similarity index 100%
rename from content/go-slices-usage-and-internals_slice-struct.png
rename to content/slices-intro/slice-struct.png
Binary files differ
diff --git a/content/real-go-projects-smarttwitter-and-webgo.article b/content/smarttwitter.article
similarity index 98%
rename from content/real-go-projects-smarttwitter-and-webgo.article
rename to content/smarttwitter.article
index 7bf7c1d..9bff1c9 100644
--- a/content/real-go-projects-smarttwitter-and-webgo.article
+++ b/content/smarttwitter.article
@@ -2,6 +2,7 @@
19 Oct 2010
Tags: guest
Summary: How Michael Hoisie used Go to build SmartTwitter and web.go.
+OldURL: /real-go-projects-smarttwitter-and-webgo
Michael Hoisie
diff --git a/content/go-becomes-more-stable.article b/content/stable-releases.article
similarity index 98%
rename from content/go-becomes-more-stable.article
rename to content/stable-releases.article
index 74d778f..a7a568c 100644
--- a/content/go-becomes-more-stable.article
+++ b/content/stable-releases.article
@@ -2,6 +2,7 @@
16 Mar 2011
Tags: release
Summary: Moving from weekly unstable Go releases toward less frequent, more stable ones.
+OldURL: /go-becomes-more-stable
Andrew Gerrand
diff --git a/content/building-stathat-with-go.article b/content/stathat.article
similarity index 98%
rename from content/building-stathat-with-go.article
rename to content/stathat.article
index f329582..6d82328 100644
--- a/content/building-stathat-with-go.article
+++ b/content/stathat.article
@@ -2,6 +2,7 @@
19 Dec 2011
Tags: guest
Summary: How StatHat uses Go, and why they chose it.
+OldURL: /building-stathat-with-go
Patrick Crosby
@@ -28,7 +29,7 @@
Here's an example of a StatHat graph of the temperature in NYC, Chicago, and San Francisco:
-.image building-stathat-with-go_weather.png
+.image stathat/weather.png
## Architecture Overview
@@ -41,7 +42,7 @@
different optimization strategies for the API service than a web application
interacting with humans.
-.image building-stathat-with-go_stathat_architecture.png
+.image stathat/architecture.png
The web application service is multi-tiered.
The web server processes all requests and sends them to an interactor layer.
diff --git a/content/building-stathat-with-go_stathat_architecture.png b/content/stathat/architecture.png
similarity index 100%
rename from content/building-stathat-with-go_stathat_architecture.png
rename to content/stathat/architecture.png
Binary files differ
diff --git a/content/building-stathat-with-go_weather.png b/content/stathat/weather.png
similarity index 100%
rename from content/building-stathat-with-go_weather.png
rename to content/stathat/weather.png
Binary files differ
diff --git a/content/getting-to-know-go-community.article b/content/survey2011.article
similarity index 95%
rename from content/getting-to-know-go-community.article
rename to content/survey2011.article
index e7e48f4..ce28b10 100644
--- a/content/getting-to-know-go-community.article
+++ b/content/survey2011.article
@@ -2,6 +2,7 @@
21 Dec 2011
Tags: community
Summary: Please take a Gopher Survey. We want to hear from you!
+OldURL: /getting-to-know-go-community
Andrew Gerrand
diff --git a/content/company-questionnaire2018.article b/content/survey2018-company.article
similarity index 97%
rename from content/company-questionnaire2018.article
rename to content/survey2018-company.article
index 0ae3118..aa9acbe 100644
--- a/content/company-questionnaire2018.article
+++ b/content/survey2018-company.article
@@ -2,6 +2,7 @@
4 Oct 2018
Tags: survey, community
Summary: Please take the 2018 Go Company Questionnaire.
+OldURL: /company-questionnaire2018
Ran Tao, Steve Francia
spf@golang.org
diff --git a/content/two-go-talks-lexical-scanning-in-go-and.article b/content/sydney-gtug.article
similarity index 96%
rename from content/two-go-talks-lexical-scanning-in-go-and.article
rename to content/sydney-gtug.article
index 5e5b731..486c5e6 100644
--- a/content/two-go-talks-lexical-scanning-in-go-and.article
+++ b/content/sydney-gtug.article
@@ -2,6 +2,7 @@
1 Sep 2011
Tags: appengine, lexer, talk, video
Summary: Two talks about Go from the Sydney GTUG: Rob Pike explains lexical scanning, and Andrew Gerrand builds a simple real-time chat using App Engine.
+OldURL: /two-go-talks-lexical-scanning-in-go-and
Andrew Gerrand
diff --git a/content/learn-go-from-your-browser.article b/content/tour.article
similarity index 95%
rename from content/learn-go-from-your-browser.article
rename to content/tour.article
index 1d1576f..a57725e 100644
--- a/content/learn-go-from-your-browser.article
+++ b/content/tour.article
@@ -2,6 +2,7 @@
4 Oct 2011
Tags: playground, tour
Summary: Announcing the Go tour, https://tour.golang.org/.
+OldURL: /learn-go-from-your-browser
Andrew Gerrand
diff --git a/content/from-zero-to-go-launching-on-google.article b/content/turkey-doodle.article
similarity index 97%
rename from content/from-zero-to-go-launching-on-google.article
rename to content/turkey-doodle.article
index 4db4444..8649279 100644
--- a/content/from-zero-to-go-launching-on-google.article
+++ b/content/turkey-doodle.article
@@ -2,6 +2,7 @@
13 Dec 2011
Tags: appengine, google, guest
Summary: How Go helped launch the Google Doodle for Thanksgiving 2011.
+OldURL: /from-zero-to-go-launching-on-google
Reinaldo Aguiar
@@ -18,7 +19,7 @@
This interactivity is implemented in the browser by a combination of JavaScript,
CSS and of course HTML, creating turkeys on the fly.
-.image from-zero-to-go-launching-on-google_image00.png
+.image turkey-doodle/image00.png
Once the user has created a personalized turkey it can be shared with friends
and family by posting to Google+.
@@ -62,7 +63,7 @@
The base for every doodle is the background:
-.image from-zero-to-go-launching-on-google_image01.jpg
+.image turkey-doodle/image01.jpg
A valid request URL might look like this:
`http://google-turkey.appspot.com/thumb/20332620][http://google-turkey.appspot.com/thumb/20332620`
@@ -71,7 +72,7 @@
which choice to draw for each layout element,
as illustrated by this image:
-.image from-zero-to-go-launching-on-google_image03.png
+.image turkey-doodle/image03.png
The program's request handler parses the URL to determine which element
is selected for each component,
@@ -232,7 +233,7 @@
## Performance
-.image from-zero-to-go-launching-on-google_image02.png
+.image turkey-doodle/image02.png
This chart - taken directly from the App Engine dashboard - shows average
request latency during launch.
diff --git a/content/from-zero-to-go-launching-on-google_image00.png b/content/turkey-doodle/image00.png
similarity index 100%
rename from content/from-zero-to-go-launching-on-google_image00.png
rename to content/turkey-doodle/image00.png
Binary files differ
diff --git a/content/from-zero-to-go-launching-on-google_image01.jpg b/content/turkey-doodle/image01.jpg
similarity index 100%
rename from content/from-zero-to-go-launching-on-google_image01.jpg
rename to content/turkey-doodle/image01.jpg
Binary files differ
diff --git a/content/from-zero-to-go-launching-on-google_image02.png b/content/turkey-doodle/image02.png
similarity index 100%
rename from content/from-zero-to-go-launching-on-google_image02.png
rename to content/turkey-doodle/image02.png
Binary files differ
diff --git a/content/from-zero-to-go-launching-on-google_image03.png b/content/turkey-doodle/image03.png
similarity index 100%
rename from content/from-zero-to-go-launching-on-google_image03.png
rename to content/turkey-doodle/image03.png
Binary files differ
diff --git a/content/concurrency-is-not-parallelism.article b/content/waza-talk.article
similarity index 96%
rename from content/concurrency-is-not-parallelism.article
rename to content/waza-talk.article
index 38bb9e7..5bf1895 100644
--- a/content/concurrency-is-not-parallelism.article
+++ b/content/waza-talk.article
@@ -2,6 +2,7 @@
16 Jan 2013
Tags: concurrency, talk, video
Summary: Watch Rob Pike's talk, _Concurrency is not parallelism._
+OldURL: /concurrency-is-not-parallelism
Andrew Gerrand