[{"date":"19 September, 2025","subtitle":"\u003cp\u003eToday is \u003cem\u003eInternational Talk Like a Pirate Day\u003c/em\u003e — that wonderfully ridiculous holiday\nborn out of a racquetball match in the mid-90s and later popularized by Dave Barry’s\ncolumn. For most people, it’s a once-a-year excuse to growl “Arrr!” and make a joke\nabout parrots at the office.\u003c/p\u003e\n\u003cp\u003eFor me, though, it always raises a different association: piracy in the digital sense.\nAnd this year, more than ever, it struck me just how deeply corporations themselves\nhave recreated the conditions for piracy to thrive again.\u003c/p\u003e","tags":"pirate social commentary streaming","title":"Ahoy There! How Corporate Greed Made Pirates of Us All","url":"/posts/international-speak-like-a-pirate-day/"},{"date":"10 September, 2025","subtitle":"\u003ch1 id=\"chairing-the-opencommit-foundation\"\u003eChairing the OpenCommit Foundation\u003ca class=\"anchorjs-link\" href=\"#chairing-the-opencommit-foundation\"\u003e\u003c/a\u003e\u003c/h1\u003e\u003cp\u003eI’m happy to share that I’ve taken on the role of \u003cstrong\u003eChair of the Board\u003c/strong\u003e at the\n\u003cstrong\u003e\u003ca href=\"https://www.opencommit.eu\" target=\"_blank\"\u003eOpenCommit Foundation\u003c/a\u003e\u003c/strong\u003e.\u003c/p\u003e\n\u003cimg src=\"/img/logo-opencommit.png\" alt=\"OpenCommit Logo\" style=\"width: auto; height: auto; max-width: none;\" /\u003e\n\u003cp\u003eIf you know me or followed me here or elsewhere, you’ll know that open source has\nbeen a big part of my life for decades. From writing tools and libraries for fun,\nto contributing to projects like Forgejo, to running self-hosted experiments in my\nhomelab — FLOSS has always been where my curiosity and community meet.\u003c/p\u003e","tags":"open source opencommit openfork non-profit","title":"Boardmember of the OpenCommit Foundation","url":"/posts/boardmember-of-opencommit/"},{"date":"16 June, 2024","subtitle":"A first stable release of Forgejo SDK","tags":"open source forgejo sdk go","title":"Releasing Forgejo SDK","url":"/posts/releasing-forgejo-sdk/"},{"date":"10 June, 2024","subtitle":"\u003ch1 id=\"backfilling\"\u003eBackfilling\u003ca class=\"anchorjs-link\" href=\"#backfilling\"\u003e\u003c/a\u003e\u003c/h1\u003e\u003cp\u003eJust wanted to let people know that I\u0026rsquo;ve been backfilling my site with old(er) posts\nthat were posted before the migration to Hugo.\u003c/p\u003e\n\u003cp\u003eBackfills mostly concern some old fiction that was once posted here and on Elfwood as well as a few generic posts.\u003c/p\u003e","tags":"","title":"Backfilling old posts","url":"/posts/backfilled-old-posts/"},{"date":"23 January, 2024","subtitle":"\u003ch1 id=\"homedash\"\u003eHomeDash\u003ca class=\"anchorjs-link\" href=\"#homedash\"\u003e\u003c/a\u003e\u003c/h1\u003e\u003cp\u003eHomeDash is a simplistic, centralized \u0026amp; dynamic dashboard application for your container based home network.\nIt provides a REST API endpoint that allows you to add applications to the dashboard.\u003c/p\u003e\n\u003cp\u003eSee my \u003ca href=\"/posts/homedash/\"\u003eoriginal post\u003c/a\u003e or the \u003ca href=\"https://github.com/mvdkleijn/homedash\" target=\"_blank\"\u003efull readme\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2 id=\"update-to-v120\"\u003eUpdate to v1.2.0\u003ca class=\"anchorjs-link\" href=\"#update-to-v120\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003cp\u003eThis release mostly adds support for statically defined applications.\u003c/p\u003e\n\u003cp\u003eApart from that, code was shifted around, cleaned up, etc. I also replaced the logrus\npackage with the zerolog package for logging.\u003c/p\u003e","tags":"homedash dashboard self-hosted homelab containers docker open source go","title":"HomeDash v1.2.0","url":"/posts/homedash-v1.2.0/"},{"date":"15 January, 2024","subtitle":"\u003ch1 id=\"dutch-php-conference-24\"\u003eDutch PHP Conference \u0026lsquo;24\u003ca class=\"anchorjs-link\" href=\"#dutch-php-conference-24\"\u003e\u003c/a\u003e\u003c/h1\u003e\u003cp\u003eIt\u0026rsquo;s official: I will be giving \u003ca href=\"https://phpconference.nl/session/tools-over-processes-over-people-or-not/\" target=\"_blank\"\u003emy agile talk\u003c/a\u003e to the good people over at the Dutch PHP Conference 2024 in Amsterdam as \u003ca href=\"https://phpconference.nl/speaker/martijn-van-der-kleijn/\" target=\"_blank\"\u003eone\u003c/a\u003e of \u003ca href=\"https://phpconference.nl/speakers/\" target=\"_blank\"\u003etheir speakers\u003c/a\u003e on Friday.\u003c/p\u003e\n\u003cp\u003eThe Schedule just went live over at \u003ca href=\"https://phpconference.nl/schedule-2024/\" target=\"_blank\"\u003ehttps://phpconference.nl/schedule-2024/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cfigure\u003e\n  \u003ca class=\"paragraph-image\"\u003e\n    \u003cimg data-src=\"/img/dpc24/dpc24-wide-attendees.png\" data-action=\"zoom\" alt=\"Conference attendees\"  class=\"lazyload\"\u003e\n  \u003c/a\u003e\n  \n\u003c/figure\u003e\u003c/p\u003e\n\u003cp\u003eThe Dutch PHP Conference is an annual web technology conference around PHP technology. The conference is completely in English and is focused on mobile- and web development related to PHP technology. However, it also has two sister conferences: Appdevcon and Webdevcon.\u003c/p\u003e","tags":"speaker conference php agile","title":"Speaker at DPC24","url":"/posts/phpconference-talk/"},{"date":"15 January, 2024","subtitle":"\u003ch1 id=\"go-simplequeue\"\u003eGo-simplequeue\u003ca class=\"anchorjs-link\" href=\"#go-simplequeue\"\u003e\u003c/a\u003e\u003c/h1\u003e\u003ch2 id=\"release-v110\"\u003eRelease v1.1.0\u003ca class=\"anchorjs-link\" href=\"#release-v110\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eSupport for Go 1.21.x\u003c/li\u003e\n\u003cli\u003eDropped support for Go 1.19\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"more-information-and-support\"\u003eMore information and support\u003ca class=\"anchorjs-link\" href=\"#more-information-and-support\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eGithub: \u003ca href=\"https://github.com/mvdkleijn/go-simplequeue\" target=\"_blank\"\u003ehttps://github.com/mvdkleijn/go-simplequeue\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGenerated Go packages info: \u003ca href=\"https://pkg.go.dev/github.com/mvdkleijn/go-simplequeue\" target=\"_blank\"\u003ehttps://pkg.go.dev/github.com/mvdkleijn/go-simplequeue\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"licensing\"\u003eLicensing\u003ca class=\"anchorjs-link\" href=\"#licensing\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003cp\u003eThe go-simplequeue is made available under the MPL-2.0 license.\u003c/p\u003e\n\u003cp\u003eA slightly easier to read format can be found at \u003ca href=\"https://choosealicense.com/licenses/mpl-2.0/\" target=\"_blank\"\u003ehttps://choosealicense.com/licenses/mpl-2.0/\u003c/a\u003e\u003c/p\u003e","tags":"open source project library go go-simplequeue","title":"go-simplequeue v1.1.0","url":"/posts/go-simplequeue-v1.1.0/"},{"date":"13 January, 2024","subtitle":"\u003ch1 id=\"healthchecker-release-v110\"\u003eHealthchecker release v1.1.0\u003ca class=\"anchorjs-link\" href=\"#healthchecker-release-v110\"\u003e\u003c/a\u003e\u003c/h1\u003e\u003cul\u003e\n\u003cli\u003eBumped supported Go version to 1.21\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"support-and-details\"\u003eSupport and details\u003ca class=\"anchorjs-link\" href=\"#support-and-details\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eGo versions, see: \u003ca href=\"https://endoflife.date/go\" target=\"_blank\"\u003ehttps://endoflife.date/go\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eArchitectures: amd64, arm64 on Windows and Linux\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSource code and issues: \u003ca href=\"https://github.com/mvdkleijn/healthchecker\" target=\"_blank\"\u003ehttps://github.com/mvdkleijn/healthchecker\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBlog post original release: \u003ca href=\"/posts/healthchecker/\" target=\"_blank\"\u003ehttps://vanderkleijn.net/posts/healthchecker/\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"licensing\"\u003eLicensing\u003ca class=\"anchorjs-link\" href=\"#licensing\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003cp\u003e\u003cstrong\u003eThe healthchecker utility is made available under the MPL-2.0 license.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eFor more information on what that means in detail, you can read the license in full here: \u003ca href=\"https://www.mozilla.org/en-US/MPL/\" target=\"_blank\"\u003ehttps://www.mozilla.org/en-US/MPL/\u003c/a\u003e\u003c/p\u003e","tags":"open source project distroless go healthcheck docker container","title":"Healthchecker v1.1.0","url":"/posts/healthchecker-v1.1.0/"},{"date":"12 January, 2024","subtitle":"\u003ch1 id=\"homedash-sidecar\"\u003eHomedash sidecar\u003ca class=\"anchorjs-link\" href=\"#homedash-sidecar\"\u003e\u003c/a\u003e\u003c/h1\u003e\u003cp\u003eHomedash sidecar is the sidecar application that reports running containers to the Homedash server.\u003c/p\u003e\n\u003ch2 id=\"update-to-v120\"\u003eUpdate to v1.2.0\u003ca class=\"anchorjs-link\" href=\"#update-to-v120\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003cp\u003eThis release add support for a new environment variable named \u003ccode\u003eHOMEDASH_SIDECAR_UUID\u003c/code\u003e. It can be used to make the\nUUID of the sidecar persistent.\u003c/p\u003e\n\u003cp\u003eThe sidecar will still work fine without it, it will simple (re)generate a new UUID upon restart.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://github.com/mvdkleijn/homedash-sidecar\" target=\"_blank\"\u003eREADME.md\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2 id=\"previous-releases\"\u003ePrevious releases\u003ca class=\"anchorjs-link\" href=\"#previous-releases\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003ch3 id=\"v110\"\u003ev1.1.0\u003ca class=\"anchorjs-link\" href=\"#v110\"\u003e\u003c/a\u003e\u003c/h3\u003e\u003cp\u003eA maintenance release that:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdds support for Go 1.21.x;\u003c/li\u003e\n\u003cli\u003eUpdates the dependencies to the latest versions;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"getting-support\"\u003eGetting support\u003ca class=\"anchorjs-link\" href=\"#getting-support\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003cp\u003eYou can find the Github repositories at:\u003c/p\u003e","tags":"homedash sidecar dashboard self-hosted homelab containers docker open source go","title":"Homedash sidecar v1.2.0","url":"/posts/homedash-sidecar-v1.2.0/"},{"date":"12 January, 2024","subtitle":"\u003ch1 id=\"homedash-sidecar\"\u003eHomeDash sidecar\u003ca class=\"anchorjs-link\" href=\"#homedash-sidecar\"\u003e\u003c/a\u003e\u003c/h1\u003e\u003cp\u003eHomeDash sidecar is the sidecar application that reports running containers to the HomeDash server.\u003c/p\u003e\n\u003ch2 id=\"update-to-v110\"\u003eUpdate to v1.1.0\u003ca class=\"anchorjs-link\" href=\"#update-to-v110\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003cp\u003eA maintenance release that:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdds support for Go 1.21.x;\u003c/li\u003e\n\u003cli\u003eUpdates the dependencies to the latest versions;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"getting-support\"\u003eGetting support\u003ca class=\"anchorjs-link\" href=\"#getting-support\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003cp\u003eYou can find the Github repositories at:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvdkleijn/homedash\" target=\"_blank\"\u003ehttps://github.com/mvdkleijn/homedash\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvdkleijn/homedash-sidecar\" target=\"_blank\"\u003ehttps://github.com/mvdkleijn/homedash-sidecar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThere you can read more details in the README files, report issues and/or collaborate in its development.\u003c/p\u003e\n\u003cp\u003eCurrently supported stack:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGo versions, see: \u003ca href=\"https://endoflife.date/go\" target=\"_blank\"\u003ehttps://endoflife.date/go\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eArchitectures: amd64, arm64\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"licensing\"\u003eLicensing\u003ca class=\"anchorjs-link\" href=\"#licensing\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003cp\u003eHomeDash is made available under the \u003ca href=\"https://choosealicense.com/licenses/mpl-2.0/\" target=\"_blank\"\u003eMPL-2.0\u003c/a\u003e\nlicense. The full details are available from the \u003ca href=\"/LICENSE\"\u003eLICENSE\u003c/a\u003e file.\u003c/p\u003e","tags":"homedash sidecar dashboard self-hosted homelab containers docker open source go","title":"Homedash sidecar v1.1.0","url":"/posts/homedash-sidecar-v1.1.0/"},{"date":"10 June, 2023","subtitle":"A simplistic, centralized \u0026 dynamic dashboard application for your container based home network.","tags":"homedash dashboard self-hosted homelab containers docker open source go","title":"HomeDash","url":"/posts/homedash/"},{"date":"5 June, 2023","subtitle":"\u003ch1 id=\"healthchecker\"\u003eHealthchecker\u003ca class=\"anchorjs-link\" href=\"#healthchecker\"\u003e\u003c/a\u003e\u003c/h1\u003e\u003cp\u003eI made a simplistic Go utility that does a HTTP HEAD check to see if a server app is alive.\nIdeal for in distroless containers in my opinion.\u003c/p\u003e\n\u003cp\u003eAll it does (and likely will ever do) is:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSend HTTP HEAD request to a specified URL;\u003c/li\u003e\n\u003cli\u003eOn return of HTTP status code 200, exit with value 0;\u003c/li\u003e\n\u003cli\u003eElse exit with value 1;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"usage\"\u003eUsage\u003ca class=\"anchorjs-link\" href=\"#usage\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eBuild it yourself or download a pre-built release.\u003c/li\u003e\n\u003cli\u003ePoint it to your server\u0026rsquo;s URL.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"examples\"\u003eExamples\u003ca class=\"anchorjs-link\" href=\"#examples\"\u003e\u003c/a\u003e\u003c/h3\u003e\u003cp\u003eOn the commandline:\u003c/p\u003e","tags":"open source project distroless go","title":"Healthchecker utility","url":"/posts/healthchecker/"},{"date":"15 March, 2023","subtitle":"\u003ch1 id=\"go-simplequeue\"\u003eGo-simplequeue\u003ca class=\"anchorjs-link\" href=\"#go-simplequeue\"\u003e\u003c/a\u003e\u003c/h1\u003e\u003cp\u003eSince I had need for a simple queueing system and it seemed like a fun project to quickly hack out, I built it.\u003c/p\u003e\n\u003cp\u003eIts a simple locking queue system with workers, written in Go. It served my needs, maybe it\ncan serve yours.\u003c/p\u003e\n\u003cp\u003eI\u0026rsquo;m making it available as an Open Source library as I stongly believe in FOSS and giving\nback to the community.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGithub: \u003ca href=\"https://github.com/mvdkleijn/go-simplequeue\" target=\"_blank\"\u003ehttps://github.com/mvdkleijn/go-simplequeue\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGenerated Go packages info: \u003ca href=\"https://pkg.go.dev/github.com/mvdkleijn/go-simplequeue\" target=\"_blank\"\u003ehttps://pkg.go.dev/github.com/mvdkleijn/go-simplequeue\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"example-of-usage\"\u003eExample of usage\u003ca class=\"anchorjs-link\" href=\"#example-of-usage\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-golang\" data-lang=\"golang\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 1\u003c/span\u003e\u003cspan\u003e\u003cspan style=\"color:#6272a4\"\u003e// Define a job that conforms to the simplequeue.Job interface\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 2\u003c/span\u003e\u003cspan\u003e\u003cspan style=\"color:#8be9fd;font-style:italic\"\u003etype\u003c/span\u003e MyJob \u003cspan style=\"color:#8be9fd;font-style:italic\"\u003estruct\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 3\u003c/span\u003e\u003cspan\u003e    id \u003cspan style=\"color:#8be9fd\"\u003eint\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 4\u003c/span\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 5\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 6\u003c/span\u003e\u003cspan\u003e\u003cspan style=\"color:#8be9fd;font-style:italic\"\u003efunc\u003c/span\u003e (mj \u003cspan style=\"color:#ff79c6\"\u003e*\u003c/span\u003eMyJob) \u003cspan style=\"color:#50fa7b\"\u003eID\u003c/span\u003e() \u003cspan style=\"color:#8be9fd\"\u003eint64\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 7\u003c/span\u003e\u003cspan\u003e    \u003cspan style=\"color:#ff79c6\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#8be9fd;font-style:italic\"\u003eint64\u003c/span\u003e(mj.id)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 8\u003c/span\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 9\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e10\u003c/span\u003e\u003cspan\u003e\u003cspan style=\"color:#8be9fd;font-style:italic\"\u003efunc\u003c/span\u003e (mj \u003cspan style=\"color:#ff79c6\"\u003e*\u003c/span\u003eMyJob) \u003cspan style=\"color:#50fa7b\"\u003eDo\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e11\u003c/span\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e// Lets just pause the job for a little time\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e12\u003c/span\u003e\u003cspan\u003e    ms \u003cspan style=\"color:#ff79c6\"\u003e:=\u003c/span\u003e time.\u003cspan style=\"color:#50fa7b\"\u003eDuration\u003c/span\u003e(rand.\u003cspan style=\"color:#50fa7b\"\u003eIntn\u003c/span\u003e(\u003cspan style=\"color:#bd93f9\"\u003e1000\u003c/span\u003e)\u003cspan style=\"color:#ff79c6\"\u003e+\u003c/span\u003e\u003cspan style=\"color:#bd93f9\"\u003e1\u003c/span\u003e) \u003cspan style=\"color:#ff79c6\"\u003e*\u003c/span\u003e time.Millisecond\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e13\u003c/span\u003e\u003cspan\u003e    time.\u003cspan style=\"color:#50fa7b\"\u003eSleep\u003c/span\u003e(ms)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e14\u003c/span\u003e\u003cspan\u003e    fmt.\u003cspan style=\"color:#50fa7b\"\u003ePrintf\u003c/span\u003e(\u003cspan style=\"color:#f1fa8c\"\u003e\u0026#34;Job %d executing\\n\u0026#34;\u003c/span\u003e, mj.\u003cspan style=\"color:#50fa7b\"\u003eID\u003c/span\u003e())\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e15\u003c/span\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e16\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e17\u003c/span\u003e\u003cspan\u003e\u003cspan style=\"color:#6272a4\"\u003e// Create some jobs for our test\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e18\u003c/span\u003e\u003cspan\u003e\u003cspan style=\"color:#8be9fd;font-style:italic\"\u003efunc\u003c/span\u003e \u003cspan style=\"color:#50fa7b\"\u003ecreateJobs\u003c/span\u003e(number \u003cspan style=\"color:#8be9fd\"\u003eint\u003c/span\u003e) []\u003cspan style=\"color:#ff79c6\"\u003e*\u003c/span\u003eMyJob {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e19\u003c/span\u003e\u003cspan\u003e    jobs \u003cspan style=\"color:#ff79c6\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#8be9fd;font-style:italic\"\u003emake\u003c/span\u003e([]\u003cspan style=\"color:#ff79c6\"\u003e*\u003c/span\u003eMyJob, \u003cspan style=\"color:#bd93f9\"\u003e0\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e20\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e21\u003c/span\u003e\u003cspan\u003e    \u003cspan style=\"color:#ff79c6\"\u003efor\u003c/span\u003e i \u003cspan style=\"color:#ff79c6\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#bd93f9\"\u003e1\u003c/span\u003e; i \u003cspan style=\"color:#ff79c6\"\u003e\u0026lt;=\u003c/span\u003e number; i\u003cspan style=\"color:#ff79c6\"\u003e++\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e22\u003c/span\u003e\u003cspan\u003e        jobs = \u003cspan style=\"color:#8be9fd;font-style:italic\"\u003eappend\u003c/span\u003e(jobs, \u003cspan style=\"color:#ff79c6\"\u003e\u0026amp;\u003c/span\u003eMyJob{id: i})\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e23\u003c/span\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e24\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e25\u003c/span\u003e\u003cspan\u003e    \u003cspan style=\"color:#ff79c6\"\u003ereturn\u003c/span\u003e jobs\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e26\u003c/span\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e27\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e28\u003c/span\u003e\u003cspan\u003e\u003cspan style=\"color:#6272a4\"\u003e// Run our program\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e29\u003c/span\u003e\u003cspan\u003e\u003cspan style=\"color:#8be9fd;font-style:italic\"\u003efunc\u003c/span\u003e \u003cspan style=\"color:#50fa7b\"\u003emain\u003c/span\u003e() {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e30\u003c/span\u003e\u003cspan\u003e    ctx \u003cspan style=\"color:#ff79c6\"\u003e:=\u003c/span\u003e context.\u003cspan style=\"color:#50fa7b\"\u003eBackground\u003c/span\u003e()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e31\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e32\u003c/span\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e// How much we want of each\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e33\u003c/span\u003e\u003cspan\u003e    numWorkers \u003cspan style=\"color:#ff79c6\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#bd93f9\"\u003e15\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e34\u003c/span\u003e\u003cspan\u003e    numJobs \u003cspan style=\"color:#ff79c6\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#bd93f9\"\u003e200\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e35\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e36\u003c/span\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e// Create some jobs with a helper function\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e37\u003c/span\u003e\u003cspan\u003e    jobs \u003cspan style=\"color:#ff79c6\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#50fa7b\"\u003ecreateJobs\u003c/span\u003e(numJobs)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e38\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e39\u003c/span\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e// Create a queue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e40\u003c/span\u003e\u003cspan\u003e    q \u003cspan style=\"color:#ff79c6\"\u003e:=\u003c/span\u003e sq.\u003cspan style=\"color:#50fa7b\"\u003eCreateQueue\u003c/span\u003e(ctx)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e41\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e42\u003c/span\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e// Initialize the workers\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e43\u003c/span\u003e\u003cspan\u003e    workers \u003cspan style=\"color:#ff79c6\"\u003e:=\u003c/span\u003e sq.\u003cspan style=\"color:#50fa7b\"\u003eInitializeWorkers\u003c/span\u003e(ctx, numWorkers)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e44\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e45\u003c/span\u003e\u003cspan\u003e    fmt.\u003cspan style=\"color:#50fa7b\"\u003ePrintf\u003c/span\u003e(\u003cspan style=\"color:#f1fa8c\"\u003e\u0026#34;Number of workers in pool: %d\\n\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#8be9fd;font-style:italic\"\u003elen\u003c/span\u003e(workers))\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e46\u003c/span\u003e\u003cspan\u003e    fmt.\u003cspan style=\"color:#50fa7b\"\u003ePrintf\u003c/span\u003e(\u003cspan style=\"color:#f1fa8c\"\u003e\u0026#34;Number of jobs for queue: %d\\n\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#8be9fd;font-style:italic\"\u003elen\u003c/span\u003e(jobs))\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e47\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e48\u003c/span\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e// Push the jobs onto the Queue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e49\u003c/span\u003e\u003cspan\u003e    \u003cspan style=\"color:#ff79c6\"\u003efor\u003c/span\u003e _, job \u003cspan style=\"color:#ff79c6\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#ff79c6\"\u003erange\u003c/span\u003e jobs {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e50\u003c/span\u003e\u003cspan\u003e        q.\u003cspan style=\"color:#50fa7b\"\u003ePush\u003c/span\u003e(job)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e51\u003c/span\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e52\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e53\u003c/span\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e// Process the queue with some workers\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e54\u003c/span\u003e\u003cspan\u003e    q.\u003cspan style=\"color:#50fa7b\"\u003eProcess\u003c/span\u003e(ctx, workers)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e55\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e56\u003c/span\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e// Show some stats afterwards\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e57\u003c/span\u003e\u003cspan\u003e    \u003cspan style=\"color:#8be9fd;font-style:italic\"\u003evar\u003c/span\u003e totalJobsHandled \u003cspan style=\"color:#8be9fd\"\u003eint64\u003c/span\u003e = \u003cspan style=\"color:#bd93f9\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e58\u003c/span\u003e\u003cspan\u003e    \u003cspan style=\"color:#ff79c6\"\u003efor\u003c/span\u003e _, w \u003cspan style=\"color:#ff79c6\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#ff79c6\"\u003erange\u003c/span\u003e workers {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e59\u003c/span\u003e\u003cspan\u003e        totalJobsHandled \u003cspan style=\"color:#ff79c6\"\u003e+=\u003c/span\u003e w.\u003cspan style=\"color:#50fa7b\"\u003eHandled\u003c/span\u003e()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e60\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e61\u003c/span\u003e\u003cspan\u003e        fmt.\u003cspan style=\"color:#50fa7b\"\u003ePrintf\u003c/span\u003e(\u003cspan style=\"color:#f1fa8c\"\u003e\u0026#34;Worker %d processed a total of %d jobs\\n\u0026#34;\u003c/span\u003e, w.\u003cspan style=\"color:#50fa7b\"\u003eID\u003c/span\u003e(), w.\u003cspan style=\"color:#50fa7b\"\u003eHandled\u003c/span\u003e())\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e62\u003c/span\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e63\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e64\u003c/span\u003e\u003cspan\u003e    fmt.\u003cspan style=\"color:#50fa7b\"\u003ePrintf\u003c/span\u003e(\u003cspan style=\"color:#f1fa8c\"\u003e\u0026#34;Total jobs handled: %d\\n\u0026#34;\u003c/span\u003e, totalJobsHandled)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e65\u003c/span\u003e\u003cspan\u003e    fmt.\u003cspan style=\"color:#50fa7b\"\u003ePrintf\u003c/span\u003e(\u003cspan style=\"color:#f1fa8c\"\u003e\u0026#34;Total workers: %d\\n\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#8be9fd;font-style:italic\"\u003elen\u003c/span\u003e(workers))\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e66\u003c/span\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"licensing\"\u003eLicensing\u003ca class=\"anchorjs-link\" href=\"#licensing\"\u003e\u003c/a\u003e\u003c/h2\u003e\u003cp\u003eAlways a difficult topic. \u003cstrong\u003eThe go-simplequeue is made available under the MPL-2.0 license.\u003c/strong\u003e\u003c/p\u003e","tags":"open source project library go go-simplequeue","title":"A small library called go-simplequeue","url":"/posts/announcing-go-simplequeue/"},{"date":"18 October, 2022","subtitle":"Planting trees at a conference","tags":"agile reforestation climatechange speaker conference","title":"Replanting forests","url":"/posts/treenation/"},{"date":"12 October, 2022","subtitle":"\u003ch1 id=\"let-me-explain\"\u003eLet me explain..\u003ca class=\"anchorjs-link\" href=\"#let-me-explain\"\u003e\u003c/a\u003e\u003c/h1\u003e\u003cp\u003eI\u0026rsquo;ve finally managed to find some time to setup a new site. The intention is for me to semi-regularly fill it with content\nof both technical as well as non-technical nature. Some possible future topics could include articles about the agile mindset\nwriting Golang software or about home automation for example.\u003c/p\u003e\n\u003cp\u003eMy intent is also to include some of my original fiction and articles that could be considered more as thought experiments\non various topics such as economics or the UBI. More on that later though.\u003c/p\u003e","tags":"roadmap","title":"What's happening here?","url":"/posts/my-first-post/"},{"date":"8 November, 2010","subtitle":"\u003cdiv class=\"typewriter-page\"\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\nThe story of the S.S. Useless\u003cbr/\u003e\n\u003csup\u003eby Martijn van der Kleijn\u003c/sup\u003e\n\u003c/div\u003e\nThis is a story about the intrepid crew of the S.S. Useless. The Useless is a Nonexistent class vessel and is the first and only vessel of its class to ever reach completion. Soon after completing the Useless, some of its leftover parts were used in building a planetary shield, plunging the planet into perpetual Nonexistence almost immediately.\n\u003cp\u003eThis, of course, rather worried the crew of the S.S. Useless since they were now faced with the annoyingly difficult task of finding the Nonexistent planet. Fortunately, as everyone knows, Nonexistence doesn’t actually remove an object from existence. It more or less congeals around it, temporarily removing the item from detection by any means. Several esteemed Nonexistent scientists noted that this didn’t matter, since Nonexistence is quite something else from nonexistence.\u003c/p\u003e","tags":"fiction snippet","title":"The story of the S.S. Useless","url":"/fiction/ssuseless/"},{"date":"8 August, 2010","subtitle":"\u003cp\u003eIn November of 2010 I\u0026rsquo;ll be taking a break from my main project, Wolf CMS, to spend time on a new project: NanoWrimo 2010. It is an online writing competition that anyone can enter. You can\u0026rsquo;t really win anything as its just for the fun of it. The intention is to write a novel in one month.\u003c/p\u003e\n\u003cp\u003eAs its 50,000 words at least that I need to write, I\u0026rsquo;m giving no guarantees if I\u0026rsquo;ll make it. But I\u0026rsquo;ll sure be trying!\u003c/p\u003e","tags":"fiction nanowrimo","title":"Writing a book","url":"/posts/writing-a-book/"},{"date":"27 January, 2010","subtitle":"\u003cp\u003e\u003cfigure\u003e\n  \u003ca class=\"paragraph-image\"\u003e\n    \u003cimg data-src=\"/img/going-to-fosdem-2010.png\" data-action=\"zoom\" alt=\"/img/going-to-fosdem-2010.png\"  class=\"lazyload\"\u003e\n  \u003c/a\u003e\n  \n\u003c/figure\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUpdate:\u003c/strong\u003e yep, I\u0026rsquo;ll be there. The first session I\u0026rsquo;m planning to attend is \u0026ldquo;Evil on the Internet\u0026rdquo; @ 11:45 on Saturday.\u003c/p\u003e\n\u003cp\u003e\u003cdel\u003eAt least, that\u0026rsquo;s my intention. I still need to work out a few kinks but since Wolf CMS 0.6.0 final is planned for January 31st, I should be safe.\u003c/del\u003e\u003c/p\u003e\n\u003cp\u003eThe FOSDEM conference is entirely free (no registration required) and is held in Brussels, Belgium. If you\u0026rsquo;ll be there and want to talk about Wolf CMS for example, maybe we can hook up.\u003c/p\u003e","tags":"fosdem conference","title":"Going to FOSDEM 2010","url":"/posts/going-to-fosdem-2010/"},{"date":"14 April, 2008","subtitle":"\u003cp\u003eDear Dutchies,\u003c/p\u003e\n\u003cp\u003eI\u0026rsquo;d love to propose some changes to the Dutch education system.\u003c/p\u003e\n\u003cp\u003eThe study finance, college registration costs and mandatory parental contributions should be removed. This would prevent a lot of money from being needlessly being \u0026ldquo;pumped around\u0026rdquo;.\u003c/p\u003e\n\u003cp\u003eOnly a single set of schoolbooks should be used throughout the country. The book that\u0026rsquo;s used to study English in Leiden, should also be used in Franeker (for example).\u003c/p\u003e\n\u003cp\u003eSchoolbooks should remain useable for at least three consecutive years.\u003c/p\u003e","tags":"education","title":"Education in The Netherlands","url":"/posts/letters-education-in-nl/"},{"date":"2 April, 2008","subtitle":"\u003cp\u003eDoes capitalism work? I always wonder what would happen if people were not obligated to work. If they were provided with free housing, electricity and food. It would leave them free to do whatever they wanted.\u003c/p\u003e\n\u003cp\u003ePersonally I feel that many people would simply still work. They would probably switch jobs much quicker and would probably be much happier doing it. Would people no longer be nurses, teachers or even street cleaners? Maybe, maybe not. There are plenty of people out there who love to do simple things like sweeping the street.\u003c/p\u003e","tags":"capitalism","title":"Does capitalism work?","url":"/posts/letters-does-capitalism-work/"},{"date":"19 November, 2007","subtitle":"\u003cp\u003eAnother JavaPolis conference will be held from december 10th - 14th in Antwerp, Belgium. Since I heard a lot of good stuff about the last JavaPolis sessions, I\u0026rsquo;ve decided to take a look.\u003c/p\u003e\n\u003cp\u003eFor a relatively small pricetag of € 410,- for five full days, you get a large number of interesting presentations to attend.\u003c/p\u003e\n\u003cp\u003eI\u0026rsquo;ve noted some which I find interesting and will probably attend:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.javapolis.com/confluence/display/JP07/Spring\u0026#43;2.5%2C\u0026#43;an\u0026#43;Update\" target=\"_blank\"\u003eSpring 2.5, an Update\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.javapolis.com/confluence/display/JP07/Task-focused\u0026#43;programming\u0026#43;with\u0026#43;Mylyn\" target=\"_blank\"\u003eTask-focused programming with Mylyn\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.javapolis.com/confluence/display/JP07/OpenJDK\u0026#43;BOF%2C\u0026#43;get\u0026#43;involved\" target=\"_blank\"\u003eOpenJDK BOF, get involved\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.javapolis.com/confluence/display/JP07/New\u0026#43;Java\u0026#43;Language\u0026#43;Features\" target=\"_blank\"\u003eNew Java Language Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe State of the Java Universe by James Gosling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.javapolis.com/confluence/display/JP07/The\u0026#43;future\u0026#43;of\u0026#43;Computing\" target=\"_blank\"\u003eThe Future of Computing\u003c/a\u003e panel with James Gosling, Neal Gafter, Joshua Bloch \u0026amp; Martin Odersky\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.javapolis.com/confluence/display/JP07/Effective\u0026#43;Java\u0026#43;Reloaded\" target=\"_blank\"\u003eEffective Java Reloaded\u003c/a\u003e by Joshua Bloch\u003c/li\u003e\n\u003cli\u003eAnd lots more!\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor those who are interested, I\u0026rsquo;ll also be meeting up with \u003ca href=\"http://www.vqwiki.org/\" target=\"_blank\"\u003eVQWiki\u003c/a\u003e users during the conference to talk about the up and coming version 3.0 of VQWiki. If you\u0026rsquo;d like to be there as well, drop a note on the \u003ca href=\"http://vqwiki.org/wiki/jsp/Wiki?JavaPolis2007\" target=\"_blank\"\u003eVQWiki wiki\u003c/a\u003e about it.\u003c/p\u003e","tags":"conference","title":"See you at JavaPolis 2007","url":"/posts/see-you-at-javapolis/"},{"date":"20 December, 2005","subtitle":"\u003cdiv class=\"typewriter-page\"\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\nFlora - scene 5\u003cbr/\u003e\n\u003csup\u003eby Martijn van der Kleijn\u003c/sup\u003e\n\u003c/div\u003e\nIt had been a couple of days now since the attack on her family by the soldiers. They had taken her and murdered her family though why they had spared her she did not know. At first, she had assumed the worst. After all, she was a pretty and young girl captured by a bunch of ruff necked mercenary soldiers. Though the soldiers hadn't treated her kindly in any way, they hadn't hurt her either. She wondered where they were taking her.\n\u003cp\u003eTheir group had turned onto a well traveled road that morning and had been traveling hard all day. From the pace the mecenaries were keeping to, Flora guessed they must be getting close to their destination. It was getting crowded on the road. More people than she was accustumed to were arround her and she started to feel uncomfortable. A mere twenty minutes later they rounded a hill and she saw it.\u003c/p\u003e","tags":"fiction","title":"Flora - scene 5","url":"/fiction/flora-scene-5/"},{"date":"21 April, 2002","subtitle":"\u003cdiv class=\"typewriter-page\"\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\nPriest Dun - II\u003cbr/\u003e\n\u003csup\u003eby Martijn van der Kleijn\u003c/sup\u003e\n\u003c/div\u003e\nWhen we left our good-humored priest last time, he was just heading out from the small village of Erisgate quietly cursing under his breath because, as usual, his god had played another trick on him. There was a small rain cloud over his head, following his every move. It’s probably a good thing that our priest Dun recognized the fact that he couldn’t do anything about it, otherwise he might have gotten the impression that he could quit his job. And that wouldn’t please his god at all.\n\u003cp\u003eWell, priest Dun was traveling to a distant Lord’s manner this time. Somehow a small artifact of tremendous power had accidentally found its way into priest Dun’s hands, despite him trying to avoid touching anything for this exact reason. He wasn’t at all convinced his god had nothing to do with it. This small artifact had turned out to have, rather conveniently he thought, the owner’s name and address on the bottom. Not an everyday sight and he felt that it would be prudent to make the long journey to the owner and return the item. Otherwise he’d probably wouldn’t get any rest until he did anyway.\u003c/p\u003e","tags":"fiction","title":"Priest Dun - II","url":"/fiction/priest-dun-part2/"},{"date":"24 June, 2001","subtitle":"\u003cdiv class=\"typewriter-page\"\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\nThe people of the dust\u003cbr/\u003e\n\u003csup\u003eby Martijn van der Kleijn\u003c/sup\u003e\n\u003c/div\u003e\nIn a house not far from here, there is big room. On a sunny day, when the sun sends bright rays of light through the windows of that room, one might see the many particles of dust that float around that very room.\n\u003cp\u003eHave you noticed that it is always very quiet in such a room? One might use that quiet and really listen to the sounds of a room, for in every such room, it is never completely silent. Now, try to imagine the room. It is a sitting room with wooden floors and comfortable chairs, big windows facing the south with colorful panes of glass in the top, a clock softly ticking away time and dust floating through the air, clearly visible in the bright sun light.\u003c/p\u003e","tags":"fiction snippet","title":"The people of the dust","url":"/fiction/people-of-the-dust/"},{"date":"19 February, 2001","subtitle":"\u003cdiv class=\"typewriter-page\"\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\nMidwinter\u003cbr/\u003e\n\u003csup\u003eby Martijn van der Kleijn\u003c/sup\u003e\n\u003c/div\u003e\nA white satin blanket of snow covered the ground. The guard looked up at the moon. Almost two by his estimate. His watch would be over soon. It was midwinter today and he never liked winter anyways. Turning his gaze around, he noticed a small red light from the east side of the camp. Easing his sword in its scabbard, he moved to get a better view of the tiny spek of light. From out of nowhere appeared another red dot, hovering about five meters apart from the first. Feeling some apprehensions about the whole situation, he moved towards one of the sleeping figures closer to the center of the encampment.\n\u003cp\u003e‘Baldor\u0026hellip; Baldor\u0026hellip; I think we might have trouble.’ He whispered whilst gently rousing his comrade.\u003c/p\u003e","tags":"fiction snippet","title":"Midwinter","url":"/fiction/midwinter/"},{"date":"29 August, 2000","subtitle":"\u003cdiv class=\"typewriter-page\"\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\nChronicles of Dawn\u003cbr/\u003e\n\u003csup\u003eby Martijn van der Kleijn\u003c/sup\u003e\n\u003c/div\u003e\n‘Show him in.’  The double doors swung open.  In strode a man with an air of confidence.  He looked brave yet strangely awed.  He stopped, looked around for a moment and spoke.\n\u003cp\u003e‘Lord Dragon, I would ask of you to keep under control you own.’\u003c/p\u003e\n\u003cp\u003e‘What do you mean, human?  You know very well that the dragons of Tir harm none.’ Ser Gilliam took a step backwards to look the dragon in it’s eye.  Something about that black hole made him shiver.\u003c/p\u003e","tags":"fiction snippet","title":"Chronicles of Dawn","url":"/fiction/chronicles-of-dawn/"},{"date":"1 June, 2000","subtitle":"\u003cdiv class=\"typewriter-page\" style=\"text-align: center;\"\u003e\n\u003cstrong\u003eMy Heart\u003c/strong\u003e\n\u003cp\u003eMy heart, it is made of stone.\u003cbr/\u003e\nIt has walled itself in, my heart.\u003cbr/\u003e\nFew have made those walls shudder.\u003cbr/\u003e\nAnd none have made them sunder.\u003cbr/\u003e\nMy heart, how foolish is my heart.\u003c/p\u003e\n\u003cp\u003e\u003csub\u003emarch, 1999\u003c/sub\u003e\u003c/p\u003e\n\u003c/div\u003e\u003cbr/\u003e\n\u003cdiv class=\"typewriter-page\" style=\"text-align: center;\"\u003e\n\u003cstrong\u003eSpring\u003c/strong\u003e\n\u003cp\u003eA new spring,\u003cbr/\u003e\nBirds take to wing.\u003c/p\u003e\n\u003cp\u003eNew grass grows,\u003cbr/\u003e\nNew water flows.\u003c/p\u003e\n\u003cp\u003eAll things blossom,\u003cbr/\u003e\nIn Mother Nature\u0026rsquo;s bosom.\u003c/p\u003e\n\u003cp\u003e\u003csub\u003emarch, 1999\u003c/sub\u003e\u003c/p\u003e\n\u003c/div\u003e\u003cbr/\u003e\n\u003cdiv class=\"typewriter-page\" style=\"text-align: center;\"\u003e\n\u003cstrong\u003eThe Wellspring\u003c/strong\u003e\n\u003cp\u003eFrom a creative wellspring\u003cbr/\u003e\nCome one by one,\u003cbr/\u003e\nFishes called story and song.\u003cbr/\u003e\u003c/p\u003e","tags":"fiction excercise elfwood","title":"A small collection of poems","url":"/fiction/poems/"},{"date":"1 October, 1999","subtitle":"\u003cdiv class=\"typewriter-page\"\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\nElf?\u003cbr/\u003e\n\u003csup\u003eby Martijn van der Kleijn\u003c/sup\u003e\n\u003c/div\u003e\n\u003cp\u003eWalking in the mist, I suddenly came upon her. At first she seemed frightened, yet green fire jumped out at me from her eyes, telling me to tred carefully. Her long golden hair waved in the wind when she turned. She strode off into the mist.\u003c/p\u003e\n\u003cp\u003eAt first I couldn’t find her. I walked on aimlessly for a while trying to find that girl. Without warning I cleared the fog and found myself standing on top of a cliff. The girl looked at me with those teasing eyes as if she was saying ‘Will you follow me even if I jump?’.\u003c/p\u003e","tags":"fiction snippet elfwood","title":"Elf?","url":"/fiction/elf/"},{"date":"10 August, 1999","subtitle":"\u003cdiv class=\"typewriter-page\"\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\nPriest Dun\u003cbr/\u003e\n\u003csup\u003eby Martijn van der Kleijn\u003c/sup\u003e\n\u003c/div\u003e\n\u003cp\u003ePulling along his cart, the farmer reached the small village of Erisgate just before nightfall.\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;Good\u0026rdquo;, he thought, \u0026ldquo;I\u0026rsquo;ll be just in time for the evening meal.\u0026rdquo;\u003c/p\u003e\n\u003cp\u003eThe farmer, a somewhat older man with a nasty looking scar across his face, heaved for a last time and pushed his cart into place. Dropping the handles, he moved towards the local inn.\u003c/p\u003e\n\u003cp\u003eUpon opening the Inn’s door, a strong odor filled his nostrils. Meat. The smell of freshly roasted meat wafted out the kitchen door. The sound and smell of ale drifted over from the bar. Tobacco smoke you could cut with a knife hung in the air and conversations floated across it. The farmer’s attention fell upon a man in the center of the room.\u003c/p\u003e","tags":"fiction excercise elfwood","title":"Priest Dun","url":"/fiction/priest-dun/"},{"date":"1 August, 1999","subtitle":"\u003cdiv class=\"typewriter-page\"\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\nDead by claw\u003cbr/\u003e\n\u003csup\u003eby Martijn van der Kleijn\u003c/sup\u003e\n\u003c/div\u003e\n\u003cp\u003eDarkness descended onto the land and evil lurked everywhere. Or so it seemed, at least, in the imagination of the small boy wielding his sword. It was a simple wooden sword, one every small boy would have. One day however he would inherit his fathers sword and Dukedom.\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;How are you feeling, my boy?\u0026rdquo; the man walking up to him said. \u0026ldquo;Practicing your sword again? I’ll ask your father tomorrow if we can’t start real lessons.\u0026rdquo; The man ruffled his hair and moved towards the doorway leading out of the small courtyard. Rounding the corner, he walked down the corridor. Upon passing a statue, he heard faint clicking. He stopped. Looking around, he didn’t notice anything out of place.\u003c/p\u003e","tags":"fiction excercise elfwood","title":"Dead by claw","url":"/fiction/dead-by-claw/"},{"date":"29 July, 1999","subtitle":"\u003cdiv class=\"typewriter-page\"\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\nThe Storyteller\u003cbr/\u003e\n\u003csup\u003eby Martijn van der Kleijn\u003c/sup\u003e\n\u003c/div\u003e\nA large, sprawling palace complex lies overlooking a green valley and a winding river. The valley is covered with huge palm trees, smaller shade giving trees and shrubs of all kinds. Further out to the east, across the slowly moving river farm fields can be seen, with farmers driving their oxen to plow them. The palace complex itself is home to the royal family of this land.\n\u003cp\u003eThough it counts less than fifteen towers in all, the complex is so large that it is a small city unto itself. There are many palace court yards which contain gardens with flowers of all variety. Like small green islands, these courtyards are the hub of palace life. Ringed by beautiful stone arches and covered walkways, many of these gardens are visited only by the palace staff.\u003c/p\u003e","tags":"fiction","title":"The Storyteller","url":"/fiction/the-storyteller/"},{"date":"10 July, 1999","subtitle":"\u003cdiv class=\"typewriter-page\"\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\nThe Fallen\u003cbr/\u003e\n\u003csup\u003eby Martijn van der Kleijn\u003c/sup\u003e\n\u003c/div\u003e\n\u003cp\u003eA man walking down the street. People swirving to avoid him. He looks sad and at the same time menacing. Black hair and black eyes, he stalks the street. People push back against the wall, cowering in fear as he passes by, yet why they do not know. This stranger dressed all in black invokes fear and screams of terror fill their minds. A big, killer of a dog regards the man but a bearest moment before yelping a plea for help and hurrying away.\u003c/p\u003e","tags":"fiction excercise elfwood","title":"The Fallen","url":"/fiction/fallen/"},{"date":"1 June, 1999","subtitle":"\u003cdiv class=\"typewriter-page\"\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\nBetrayed\u003cbr/\u003e\n\u003csup\u003eby Martijn van der Kleijn\u003c/sup\u003e\n\u003c/div\u003e\n\u003cp\u003eThe man shifted uncomfortably around his cushion. Perhaps his master would forgive his failure and allow him to live. Gloom set in. His master was not of the forgiving type. He done his best though, more he could not do. The empty room, in which he awaited his master looked like it always did, sparsely decorated yet extremely beautiful and elegant in its simplicity. His master’s love for flowers was evident. On the raised platform a small vase stood to one side containing a few delicate blossoms.\u003c/p\u003e","tags":"fiction snippet excercise elfwood","title":"Betrayed","url":"/fiction/betrayed/"},{"date":"1 March, 1999","subtitle":"\u003cdiv class=\"typewriter-page\"\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\nAsking Questions\u003cbr/\u003e\n\u003csup\u003eby Martijn van der Kleijn\u003c/sup\u003e\n\u003c/div\u003e\n\u003cp\u003eTurning away from his practice partner, with which he was practicing his fencing, he looks you over for a moment. The young man then says,\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;Him? He just moves me, literally. That\u0026rsquo;s just \u0026lsquo;bout as much as I know about him.\u0026rdquo;\u003c/p\u003e\n\u003cp\u003eThe young man turns back toward his fencing with a smile. Wouldn\u0026rsquo;t do to let the Duke know he\u0026rsquo;d been neglecting his combat skills.\u003c/p\u003e","tags":"fiction excercise elfwood","title":"Asking questions","url":"/fiction/asking-questions/"},{"date":"30 September, 1997","subtitle":"\u003cdiv class=\"typewriter-page\"\u003e\n\u003cdiv style=\"text-align: center;\"\u003e\nThe fronteer\u003cbr/\u003e\n\u003csup\u003eby Martijn van der Kleijn\u003c/sup\u003e\n\u003c/div\u003e\nComing out of hyper-space, the ship bucked like a wild horse.  From the side window where he was sitting, Roger had an excellent view of the planet they were headed to. The planet Darnak looked like any other Terran class planet.\n\u003cp\u003e‘Incomprehensible’ he thought.\u003c/p\u003e\n\u003cp\u003e‘How could such a beautiful planet be so dangerous?’  For a long time now, he had wanted to visit Darnak.  Hearing all of the stories about this place, he just couldn’t believe that it was as bad as it sounded. One day he had met a woman who claimed to come from this planet and who had begged him to go there and use his newspaper column to expose the terrors the planetary council was committing.\u003c/p\u003e","tags":"fiction excercise","title":"The fronteer","url":"/fiction/the-fronteer/"}]