{
    "componentChunkName": "component---src-templates-post-js",
    "path": "/a-decade-of-code",
    "result": {"data":{"site":{"siteMetadata":{"title":"your friend Joel's digital garden","description":"Articles and notes from a collaborator at egghead.io. Musings on software, business, and life from a skilled virtual assistant.","author":{"name":"Joel Hooks"},"keywords":["Video Blogger"]}},"mdx":{"excerpt":"Below is a chart that represents 10 years of concentrated effort. I started using Github in 2009, which was also the year that I landed my first full-time coding gig.  robotlegs  was the project I worked on and contributed to heavily for a…","fields":{"github":"https://github.com/joelhooks/joelhooks-com/tree/master/content/blog/2020-01-04--a-decade-of-code~~r7zurcmbF/index.mdx"},"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"id\": \"r7zurcmbF\",\n  \"slug\": \"a-decade-of-code\",\n  \"date\": \"2020-01-04T00:00:00.000Z\",\n  \"title\": \"a decade of code (2009-2019)\",\n  \"published\": false\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Below is a chart that represents 10 years of concentrated effort.\"), mdx(\"p\", null, \"I started using Github in 2009, which was also the year that I landed my first full-time coding gig. \"), mdx(\"p\", null, mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://github.com/robotlegs/robotlegs-framework\"\n  }, \"robotlegs\"), \" was the project I worked on and contributed to heavily for a full year. It was a ton of fun, great tech, and I owe so much to the other amazing people involved in that effort. \\u2764\\uFE0F\"), mdx(\"p\", null, \"Then it all stops and there is a period from 2010 through 2013 where I barely contributed any code to Github. That's when I went to work as a consultant and most of the work was behind corporate firewalls and committed to SVN.\"), mdx(\"p\", null, \"In August of 2013 my contribution graph really heats up! \\uD83D\\uDD25\"), mdx(\"p\", null, \"That's when I started working on \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://egghead.io/s/dtccr\"\n  }, \"egghead.io\"), \" which is what I've been doing for the 6 years since.\"), mdx(\"p\", null, mdx(\"span\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1035px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/e170da011d9bb4548c339bc0df1e46b4/3c492/commit-chart.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"221.6216216216216%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,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')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"heatmap chart of 10 years of contibutions to github\",\n    \"title\": \"heatmap chart of 10 years of contibutions to github\",\n    \"src\": \"/static/e170da011d9bb4548c339bc0df1e46b4/e3189/commit-chart.png\",\n    \"srcSet\": [\"/static/e170da011d9bb4548c339bc0df1e46b4/a2ead/commit-chart.png 259w\", \"/static/e170da011d9bb4548c339bc0df1e46b4/6b9fd/commit-chart.png 518w\", \"/static/e170da011d9bb4548c339bc0df1e46b4/e3189/commit-chart.png 1035w\", \"/static/e170da011d9bb4548c339bc0df1e46b4/3c492/commit-chart.png 1300w\"],\n    \"sizes\": \"(max-width: 1035px) 100vw, 1035px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\",\n    \"decoding\": \"async\"\n  }), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"the chart was created with \", mdx(\"a\", {\n    parentName: \"em\",\n    \"href\": \"https://github-contributions.now.sh/\"\n  }, \"this generator\"))));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"a decade of code (2009-2019)","date":"January 04, 2020","banner":null,"slug":"a-decade-of-code","keywords":null}}},"pageContext":{"id":"306b9724-4249-5ecf-967a-e4f8d07cfc77","prev":{"id":"4d17d7cb-f79b-5e23-afe3-aac362e42c48","parent":{"name":"index","sourceInstanceName":"blog"},"excerpt":"My experience is that people tend to take things literally, want to do too much, and think in binary terms by default. I'm a big fan of  evergreen newsletter sequences  that line up a series of emails that get sent to your email list once a week when…","fields":{"title":"Your Evergreen Newsletter Sequence is a Bonsai Tree","slug":"evergreen-newsletter-bonsai","date":"2020-01-24T00:00:00.000Z"}},"next":{"id":"15b6ae9b-6951-5182-b140-aa8bd37212b5","parent":{"name":"index","sourceInstanceName":"blog"},"excerpt":"I stopped participating in ad tracking in 2019 across most of the sites I have control over.  This means that I removed mixpanel and Google Analytics from those sites and to the extent possible stopped sending them data about how users use my sites…","fields":{"title":"ad tracking","slug":"ad-tracking","date":"2019-12-09T00:00:00.000Z"}}}},
    "staticQueryHashes": ["1045846374"]}