diff --git a/.gitignore b/.gitignore index 8db7a3f..0a0be6b 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ env/ .DS_Store node_modules/ package-lock.json +.ipynb_checkpoints/ diff --git a/README.md b/README.md index a8c85d0..6e363c6 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ You probably want to run ruby from a version manager like `chruby`, see [here](h - add humans.txt https://humanstxt.org/ - fix the OG tags so that https://cards-dev.twitter.com/validator works - consider switching to using pandoc as a markdown renderer - - switch so that the blog is served from the root instead of doing a redirect + - setup webmentions https://aarongustafson.github.io/jekyll-webmention_io/ ## Notes [Installation](https://jekyllrb.com/docs/installation/macos/) diff --git a/_config.yml b/_config.yml index 46ea1d2..147c2e7 100644 --- a/_config.yml +++ b/_config.yml @@ -27,4 +27,4 @@ whitelist: - flexible_include feed: - posts_limit: 20 \ No newline at end of file + posts_limit: 100 \ No newline at end of file diff --git a/_cv_entries/2_msc.md b/_cv_entries/2_msc.md index d1b985b..c8b189f 100644 --- a/_cv_entries/2_msc.md +++ b/_cv_entries/2_msc.md @@ -6,16 +6,103 @@ location: Trinity College, Cambridge subtitle: "Imaging Magnetic Phenomena with Scanning Diamond Magnetometry" image: /assets/images/vector_magnet_angle_view.png -alt: "A vector magnet that I designed." +alt: "A render of vector magnet that I designed in a CAD program." + +image_markup: layout: cv_entry read_more: true +assets: /assets/blog/vector_magnet --- Supervisor: Professor Mete Atatüre

The project centered around the use of a Nitrogen-Vancancy defect in a nanoscale diamond to detect magnetic fields with ultra high resolution. We experimented with mounting such a nano-diamond to the tip of an atomic force microscope in order to produce field images. I built a 3d vector magnetometer in order to determine the axis of a defect in a nano-diamond. -Check out a little interactive model of the magnetometer below. +Check out a little interactive model of the magnetometer below. The device has three pairs of copper Helmholtz coils that generate controlled, linear, magnetic fields in all three directions. - +
+ + + +
+
+
+ +Here's a cutaway view, try zooming out to get your bearing with respect to the above diagram. You can see that in the center of these three pairs of coils there is: + +
+ + +
+
+
+ +**AFM Tip**: The atomic force microscope tip in blue with a nano-diamond attached to the very tip. We want to figure out which was the axis the NV defect in this nano-diamond is pointing. To do that we need to expose it to different directions of magnetic field while also blasting it with light and radio waves. + +**PCB coil** For the radio wave blasting we have a single turn coil made on a PCB. I haven't cut the coil away so that you can see it's whole shape. We'll pump RF power into this tuned to the electronic transitions in the NV defect that we want to probe. + +**Microscope Objective** The microscope objective allows us to optically pump the transitions in the NV defect (much like a laser) in order to keep electrons in excited quantum states that they wouldn't normally sit in. + +By putting in varying currents through the three coils pairs we can create a very well controlled magnetic field in any direction and of varying strength. We can then run a sweep through all the possible field directions while blasting the NV center with light and RF in order to determine it axis with respect to the plastic housing of the tip. + +This is how you would calibrate one of these magnetism sensing AFM tips after first sticking a diamond to the tip. + +Once we know the axis direction this AFM tip could then be transferred back to the AFM to measure magnetic fields at the nanoscale! + +TODO: Explain this in a bit more detail. + + \ No newline at end of file diff --git a/_data/navigation.yml b/_data/navigation.yml index e540749..b44fb10 100644 --- a/_data/navigation.yml +++ b/_data/navigation.yml @@ -1,5 +1,5 @@ - name: Blog - link: /blog/ + link: / - name: CV link: /cv/ - name: Thesis diff --git a/_drafts/auto_screenshot.md b/_drafts/auto_screenshot.md new file mode 100644 index 0000000..5e441ae --- /dev/null +++ b/_drafts/auto_screenshot.md @@ -0,0 +1 @@ +https://gist.github.com/leodutra/d880580f86620915b28a3eadccb81527 \ No newline at end of file diff --git a/_drafts/rpi_selfhosting.md b/_drafts/rpi_selfhosting.md new file mode 100644 index 0000000..4a88dec --- /dev/null +++ b/_drafts/rpi_selfhosting.md @@ -0,0 +1 @@ +https://www.raspberryconnect.com/projects/65-raspberrypi-hotspot-accesspoints/183-raspberry-pi-automatic-hotspot-and-static-hotspot-installer \ No newline at end of file diff --git a/_drafts/running.md b/_drafts/running.md index 8d311a8..64de823 100644 --- a/_drafts/running.md +++ b/_drafts/running.md @@ -1,14 +1,23 @@ --- -title: Building Micropython from source +title: My First Half Marathon layout: post -image: -alt: +image: /assets/blog/running/time_vs_distance.svg +social_image: /assets/blog/running/time_vs_distance.png +alt: A scatter graph of run time vs run distance for all my runs on strava. It shows that I mainly run between 5 and 6 min per kilometer, regardless of distance --- +I just ran my first half marathon. To celebrate the occasion I'm going to have a look at my historical run data. + +
+ +
+
+
+ - download all my runs from strava - scatter them on a (distance, time) plot - plot the (distance, time) curves predicted by the V02 max tables in the running book -- interpolate the table to get a smooth function parametrised by V02max +- interpolate the table to get a smooth function parametrized by V02max - fit that to my data - potentially will need to take only the top 20% of runs or something @@ -16,4 +25,4 @@ alt: Extensions: - download heart rate data and make a histogram per hour of the day -- could map radius to heart rate and angle to hour of day to make a nice figure \ No newline at end of file +- could map radius to heart rate and angle to hour of day to make a nice figure diff --git a/_drafts/test.md b/_drafts/test.md index ef44748..9729e53 100644 --- a/_drafts/test.md +++ b/_drafts/test.md @@ -8,13 +8,18 @@ alt: - - - - \ No newline at end of file + + + + + diff --git a/_includes/default_head_tags.html b/_includes/default_head_tags.html index e50a42e..bdaf1c9 100644 --- a/_includes/default_head_tags.html +++ b/_includes/default_head_tags.html @@ -40,10 +40,14 @@ See: https://developers.google.com/search/docs/advanced/mobile/google-discover?h {% endif %} {% endif %} + + + - + + \n", + "\n", + "\n", + "\n", + "\n", + "
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 103, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "script = \"\"\"\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "\"\"\"\n", + "\n", + "from IPython.display import display, HTML\n", + "HTML(script)" + ] + }, + { + "cell_type": "code", + "execution_count": 219, + "id": "bd19b6de-bdde-40bd-a344-0cd3cbd76f80", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "30.0 [8.5, 9.183333333333334, 17.933333333333334, 19.316666666666666, 30.666666666666668, 63.766666666666666, 98.23333333333333, 141.06666666666666, 289.28333333333336]\n", + "31.0 [8.25, 8.916666666666666, 17.45, 18.8, 29.85, 62.06666666666667, 95.6, 137.35, 281.95]\n", + "32.0 [8.033333333333333, 8.683333333333334, 16.983333333333334, 18.3, 29.083333333333332, 60.43333333333333, 93.11666666666666, 133.81666666666666, 274.98333333333335]\n", + "33.0 [7.816666666666666, 8.45, 16.55, 17.833333333333332, 28.35, 58.9, 90.75, 130.45, 268.3666666666667]\n", + "34.0 [7.616666666666666, 8.233333333333333, 16.15, 17.4, 27.65, 57.43333333333333, 88.5, 127.26666666666667, 262.05]\n", + "35.0 [7.416666666666667, 8.016666666666667, 15.75, 16.966666666666665, 27.0, 56.05, 86.36666666666666, 124.21666666666667, 256.05]\n", + "36.0 [7.233333333333333, 7.816666666666666, 15.383333333333333, 16.566666666666666, 26.366666666666667, 54.733333333333334, 84.33333333333333, 121.31666666666666, 250.31666666666666]\n", + "37.0 [7.066666666666666, 7.633333333333334, 15.016666666666667, 16.183333333333334, 25.766666666666666, 53.483333333333334, 82.4, 118.56666666666666, 244.83333333333334]\n", + "38.0 [6.9, 7.45, 14.683333333333334, 15.816666666666666, 25.2, 52.28333333333333, 80.55, 115.91666666666667, 239.58333333333334]\n" + ] + } + ], + "source": [ + "vdot_table = pd.read_csv(\"vdot.csv\")\n", + "table_dists = [1.5, 1.5609, 3, 2*1.609, 5, 10, 15, 42.195/2, 42.195]\n", + "\n", + "for col in vdot_table.columns[1:]:\n", + " seconds = vdot_table[col].str.split(\":\").apply(lambda s: sum(int(x)*60**i for i,x in enumerate(s[::-1])))\n", + " vdot_table[col] = seconds / 60 #pd.to_timedelta(seconds, unit='s')\n", + "\n", + "for i, row in vdot_table.iterrows():\n", + " vdot, *times = row\n", + " print(vdot, times)" + ] + }, + { + "cell_type": "code", + "execution_count": 234, + "id": "887f7db8-d9b7-47ad-9bb2-538bf1c475e6", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoIAAAEmCAYAAAD2lfFwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACgnElEQVR4nOzdd3iTVfvA8W920nTvRWmZBQq0TBkKCC0OhuJkKAKvgIgKoqg4AF/AraCIg5+KA8HBUHFQRGTI3ksp0AUddO/snN8flbxGZqGljPO5rlw2J0/OcyeW9M55zrmPQgghkCRJkiRJkq45yvoOQJIkSZIkSaofMhGUJEmSJEm6RslEUJIkSZIk6RolE0FJkiRJkqRrlEwEJUmSJEmSrlEyEZQkSZIkSbpGyURQkiRJkiTpGiUTQUmSJEmSpGuUTAQBIQRlZWXI2tqSJEmSJF1LZCIIlJeX4+PjQ3l5eX2HIkmSJEmSdMnIRFCSJEmSJOkaJRNBSZIkSZKka5RMBCVJkiRJkq5RMhGUJEmSJOmqM23aNOLj4+s7jMueTAQlSZIkSbrmpaeno1Ao2L17d632u2HDBrp160ZAQAAGg4HY2FjeeuutU45bsmQJLVu2RKfT0bJlS5YtW3bOvvft20ePHj0wGAxERETw4osv1rgCirpGR0uSJEmSJEnnzWg0Mn78eNq0aYPRaGTDhg2MGTMGo9HI6NGjAdi0aRP33HMP//3vf7n99ttZtmwZd999Nxs2bKBz586n7besrIzExER69erFtm3bSElJ4YEHHsBoNDJp0qTzjk+OCEqSJEmSdNn64IMPiIiIwOl0urUPGDCA4cOHu+6//PLLhISE4OXlxahRozCbzW7HO51OXnzxRSIjI9HpdMTHx/PLL7+4Ho+JiQEgISEBhUJBz549ayX+hIQEBg8eTKtWrYiOjmbYsGH07duX9evXu46ZPXs2iYmJPPPMM8TGxvLMM8/Qu3dvZs+efcZ+Fy5ciNlsZsGCBcTFxTFo0CCmTJnCm2++WaNRwXpNBNetW0f//v0JDw9HoVCwfPnyMx47ZswYFArFKW+KxWLhkUceITAwEKPRyIABAzh+/HjdBi5JkiRJ0iVx1113UVBQwJo1a1xtxcXFrFy5kqFDhwLw9ddfM3XqVGbOnMn27dsJCwtj3rx5bv3MmTOHN954g9dff529e/fSt29fBgwYwOHDhwHYunUrAL/++is5OTksXboUqE64PD09z3pbuHDheb+eXbt2sXHjRnr06OFq27RpE0lJSW7H9e3bl40bN56xn02bNtGjRw90Op3bc7Kzs0lPTz/veOr10nBlZSVt27ZlxIgR3HHHHWc8bvny5WzZsoXw8PBTHpswYQI//PADixcvJiAggEmTJtGvXz927NiBSqWqy/AlSZIkSapj/v7+3HTTTXz55Zf07t0bgG+++QZ/f3/X/dmzZzNy5Ej+85//ADBjxgx+/fVXt1HB119/naeeeop7770XgFdeeYU1a9Ywe/Zs3n33XYKCggAICAggNDTU9bwBAwac8fLsSSEhIed8HZGRkeTn52O325k2bZorVoDc3NxT+ggJCSE3N/eM/eXm5hIdHX3aOHJzc10jnOdSr4ngzTffzM0333zWY7Kyshg/fjwrV67k1ltvdXustLSUjz76iM8//5w+ffoA8MUXX9CgQQN+/fVX+vbtW2exS5IkSdLVSgjBd999h9Vq5e67767vcBg6dCijR49m3rx56HQ6Fi5cyL333usa8Pnzzz8ZO3as23O6dOniGkUsKysjOzubbt26uR3TrVs39uzZc9Zze3l54eXlddGvYf369VRUVLB582aefvppmjRpwuDBg12PKxQKt+OFEKe0/dvpnnO69rO5rOcIOp1O7rvvPp588klatWp1yuM7duzAZrO5DaeGh4cTFxd31uFUi8VCWVmZ202SJEmSpGpfffUVt99+O4899hgmk6m+w6F///44nU5+/PFHjh07xvr16xk2bFiN+7mQZKu2Lg3HxMTQunVrHnzwQSZOnMi0adNcj4WGhp4y+peXl3fWkcYzPQfOb4TypMt61fArr7yCWq3m0UcfPe3jubm5aLVa/Pz83NrPNZz60ksvMX369FqNVZIkSZKuVEIISktL8fX1BWDQoEHExcUxcOBAHA5H/QYHGAwGBg0axMKFCzly5AjNmjWjffv2rsdbtGjB5s2buf/++11tmzdvdv3s7e1NeHg4GzZs4IYbbnC1b9y4kU6dOgGg1WoBTnm9tXVp+J+EEFgsFtf9Ll26sGrVKiZOnOhqS05OpmvXrmfso0uXLkyZMgWr1eqKPTk5mfDw8FMuGZ/NZZsI7tixgzlz5rBz584aDXHCuTP8Z555hscff9x1v6ysjAYNGlxwrJIkSZJ0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s8/y6quvMmLECKB6MYAQos7nAO7fv5+ioiJXwul0OnnggQcYNGgQAwYMOO359xwrYemu42QWVqFUKGgd6cPdHRoQ7nt5zBeUao8sHyNJkiRJdaysrIyCggIWLVrkalMoFHWeBC5ZsoTWrVszZswYnE4nUL345LPPPuO222477fkPnyhn7prDHMwuw0OrRq1Ssi4lnzmrD1NuttVpvLVp2rRpboWhpdOTiaAkSZIk1SKz2cw777zDjh07XG3jxo3js88+46effqrTcwshKC0tdd1PTEzE39+fuLg4t/az+e1QHkUVNhoHeeJt0OBv1NIoyJOjeRVsTy+uq9DrXXp6OgqFwrUTSW3ZsGED3bp1IyAgAIPBQGxsLG+99dYpx5WUlPDwww8TFhaGXq+nRYsW5/x92bdvHz169MBgMBAREcGLL75ITS/0yjmCkiRJklSLnnrqKd5++21uvvlm1x9yDw8P7rvvvjo97+bNmxk7dizR0dEsX74cqK6fl5qaio+Pz3n3k5ZfiVGvditBolFVjxvllplrNeZrgdFoZPz48bRp0waj0ciGDRsYM2YMRqPRtVOM1WolMTGR4OBgvv32WyIjIzl27NhZy9aUlZWRmJhIr1692LZtGykpKTzwwAMYjUYmTZp03vHJEUFJkiRJugg2m43KykrX/UceeYTo6GgGDBhQ49GZi+Hr68vevXv57bffKCgocLXXJAkECPLSYbbZ3dqcQiAAb72mNkKtkQ8++ICIiAjXpe2TBgwYwPDhw133X375Zdeev6NGjcJsdk9anU4nL774IpGRkeh0OuLj4/nll19cj8fExACQkJCAQqE469ZuNZGQkMDgwYNp1aoV0dHRDBs2jL59+7J+/XrXMR9//DFFRUUsX76cbt260bBhQ7p3707btm3P2O/ChQsxm80sWLCAuLg4Bg0axJQpU3jzzTdr9HsnE0FJkiRJukA//vgjzZs358UXX3S1NWnShKNHjzJ27Ng62w2krKyM1157jddff93VFhsby6JFi0hLSyMwMPCC+76+aRAalYqcEhMOp8Bqd5JWUEmIt46O0X61EX6N3HXXXRQUFLj2DQYoLi5m5cqVDB06FICvv/6aqVOnMnPmTLZv305YWBjz5s1z62fOnDm88cYbvP766+zdu5e+ffsyYMAADh8+DFSvpgb49ddfycnJYenSpUDtbTF3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iKqqKld7VlaWsFqtFxXzuZhtdvH1tkyxeEuGWHUg13VbsSdLfLw+VeSWmur0/FL9y87OFoD48ssv6zsU6TQuqI5g3759Wbt2LRUVFVRVVbFhwwaSkpJqNUEF2LRpEwMHDuTWW28lOjqaO++8k6SkJLZv3w78r7r9s88+y6BBg4iLi+PTTz+lqqqKL7/8stbjkSRJstvt2O121/3hw4cTEBBwUYs0ANatW0fjxo0ZNmyYq02v15OSksJnn31W4/l//4wxNDSU/Px8KioqXJ+fUL3PcF2MALrF4RDYHE60avc/N1qVEpvTidUu5wpe7cLCwoiLi5P1BC9TF1VQuqKigrKyMrdbberevTurV68mJSUFgD179rBhwwbXXJm0tDRyc3PdklCdTkePHj3OukLJYrHUadySJF2dvv32W2JjY/n8889dbUlJSWRkZDBhwoSL6jsmJoacnBwOHjzodgnNYDDUqJ+MjAzuvfdeunXr5ioBo1ar+eqrrzh+/DjXX3/9RcVZUwaNigCjlpIq98WEJSYbXjoNvh51m4hKl4ekpCSSk5Ndv5PS5aPGiWBaWhq33norRqMRHx8f/Pz88PPzw9fXFz8/v1oN7qmnnmLw4MHExsai0WhISEhgwoQJDB48GMA1JyckJMTteSEhIW7zdf7tpZdewsfHx3W72G/ykiRdGzIyMjh69CgffPCBq02hUGA0GmvUz8nVw48//rirrUGDBiQnJ5Oenn5Ri0CMRiPfffcdW7duZe/eva726667jsDAwAvu90IplQpahvugUSvIKKqkuMpKdomJkiorsWFeeOllIngtSEpKIisrS5aZuwzVeNXw0KFDAfj4448JCQmp042kv/rqK7744gu+/PJLWrVqxe7du5kwYQLh4eEMHz7cddy/YxDn2OD6mWeecfsALisrk8mgJElubDYbn3/+OfHx8bRr1w6AsWPHolKpePDBBy+q7/T0dD744AP0ej1PPPU0wYGBqFVKevXqVaN+Tpw4wTvvvENJSQlz584Fqreoe//994mPj6dt27YXFWdtaeDvQa/YEA7llFNYaSHQS0fTYE8aB3nWd2jSJXL99dej1WpJTk6mRYsW9R2O9A813mLO09OTHTt20Lx587qKyaVBgwY8/fTTPPzww662GTNm8MUXX/DXX3+RmppK48aN2blzp1vpmoEDB+Lr68unn356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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f, ax = plt.subplots(figsize = (7,3))\n", + "ax.set(ylabel = \"Moving Time (mins)\", xlabel = \"Distance (km)\", xlim = (0,25))\n", + "\n", + "x = runs[\"Distance (m)\"].values/1e3\n", + "y = runs[\"Moving time\"].values/60\n", + "\n", + "\n", + "for i, row in list(vdot_table.iterrows())[:-1:3]:\n", + " vdot, *times = row[:-1]\n", + " ax.plot(table_dists[:-1], times, color = \"black\", linestyle = \"dotted\", label = f\"{i} min/km\")\n", + " ax.text(22.5, times[-1], f\"vdot= {vdot}\", va = \"center\")\n", + "\n", + "ax.annotate(\"Half Marathon!\", (x[0], y[0]-1), (20, 50), arrowprops = dict(arrowstyle = \"->\"))\n", + "\n", + "ax.scatter(x, y, s=20, alpha = 0.6*fade_out_by_date(runs[\"Date\"]))\n", + "ax.spines[['right', 'top']].set_visible(False)\n", + "f.savefig(\"time_vs_distance.svg\", transparent=True)\n", + "f.savefig(\"time_vs_distance.png\", transparent=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e29ea263-ecc8-4109-af51-2498ea65573d", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [conda env:micromamba-iot_ingester]", + "language": "python", + "name": "conda-env-micromamba-iot_ingester-py" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/assets/blog/running/runs.csv b/assets/blog/running/runs.csv new file mode 100644 index 0000000..e3b35f5 --- /dev/null +++ b/assets/blog/running/runs.csv @@ -0,0 +1,197 @@ +Date,Name,Tiles,New Tiles,Moving time,Elapsed time,Average,Distance (m),Elevation (m),Type,Commute,Trainer,Max heartrate,Avg heartrate,Start Lat,Start Long,Gear +2023-07-30 18:34:42,"Heavy rain, grazing on blackberries ",7,4,7455,8206,10.1484,21012.5,47.1,Run,0,0,0,0,51.5555,-0.0805394, +2023-07-27 19:06:27,Evening Run,4,0,1046,1309,11.9772,3479.5,15.3,Run,0,0,0,0,51.5556,-0.080564, +2023-07-26 07:20:46,Morning Run,4,0,3368,4697,9.684,9058.4,40.5,Run,0,0,0,0,51.5556,-0.0804497, +2023-07-23 19:44:19,Evening Run,4,0,1304,2055,10.3716,3757.1,14.9,Run,0,0,0,0,51.5553,-0.0802908, +2023-07-22 20:09:37,Night Run,5,1,4073,5099,10.1772,11514.3,43.8,Run,0,0,0,0,51.5555,-0.0805495, +2023-07-13 17:20:25,Afternoon Run,1,0,1979,2197,11.3832,6258.2,32.2,Run,0,0,0,0,51.5653,-0.0524104, +2023-07-10 17:11:06,Afternoon Run,4,0,1877,3011,11.4912,5990.7,23.1,Run,0,0,0,0,51.5554,-0.0805919, +2023-07-08 19:22:28,Evening Run,4,0,3180,3801,10.3572,9150.4,43.4,Run,0,0,0,0,51.5554,-0.0806102, +2023-07-05 07:56:30,Morning Run,5,4,2563,2994,10.548,7508.7,37.1,Run,0,0,0,0,51.4197,-0.947986, +2023-07-04 08:12:25,Morning Run,2,2,653,1640,10.5192,1908.2,29.4,Run,0,0,0,0,51.4198,-0.949513, +2023-06-30 07:03:15,Morning Run,3,0,1842,3900,10.386,5314.3,10.3,Run,0,0,0,0,51.3425,12.3776, +2023-06-28 07:13:02,Morning Run,3,0,1782,4064,10.7424,5317.2,6.7,Run,0,0,0,0,51.3427,12.3781, +2023-06-27 06:36:40,Morning Run,3,3,1743,2376,11.3148,5478.6,4.8,Run,0,0,0,0,51.3422,12.3781, +2023-06-12 19:26:39,Evening Run,1,0,1240,1630,10.2456,3529,12.7,Run,0,0,0,0,51.5647,-0.046122, +2023-06-06 18:27:57,Evening Run,4,0,1944,2233,11.592,6258.7,23,Run,0,0,0,0,51.5554,-0.0805764, +2023-05-31 18:40:29,Night Run,2,0,1469,12276,8.4384,3443.1,8.9,Run,0,0,0,0,51.5554,-0.0805397, +2023-05-13 17:11:27,Night Run,3,0,2117,19978,10.4796,6162.2,22.9,Run,0,0,0,0,51.5553,-0.0805932, +2023-05-11 17:26:01,Evening Run,3,0,1508,2683,10.2888,4310.5,14.9,Run,0,0,0,0,51.5555,-0.0804862, +2023-05-07 20:04:15,Night Run,3,0,1417,4465,9.4212,3708.5,12.8,Run,0,0,0,0,51.5556,-0.0805553, +2023-04-29 10:18:55,Lunch Run,4,0,1453,4535,8.6256,3482.1,14.1,Run,0,0,0,0,51.5556,-0.0805465, +2023-04-24 19:22:59,Evening Run,4,0,2232,2889,10.1088,6266.9,22.9,Run,0,0,0,0,51.5557,-0.0805353, +2023-04-17 19:09:39,Evening Run,4,0,1975,3051,11.0448,6058.6,23,Run,0,0,0,0,51.5555,-0.0806151, +2023-04-14 18:49:08,Evening Run,4,0,2006,2246,11.0268,6144.3,22.9,Run,0,0,0,0,51.5555,-0.080489, +2023-04-05 17:38:00,Evening Run,3,0,2815,3858,9.4824,7415,32.3,Run,0,0,0,0,51.5556,-0.0804512, +2023-03-30 18:20:11,Evening Run,4,0,1773,2115,10.17,5009.2,22.3,Run,0,0,0,0,51.5554,-0.0805344, +2022-12-22 09:49:00,Morning Run,1,0,1215,2044,10.7748,3636.3,4.8,Run,0,0,0,0,51.5584,-0.0622994, +2022-11-30 17:23:40,Afternoon Run,1,0,1437,2440,9.8496,3931.7,9.1,Run,0,0,0,0,51.5581,-0.0623459, +2022-11-14 17:41:33,Evening Run,2,0,1877,2549,10.6128,5532.8,15.6,Run,0,0,0,0,51.5583,-0.0613758, +2022-10-11 18:07:25,Evening Run,2,1,1397,2949,10.8648,4216.5,14.3,Run,0,0,0,0,51.5584,-0.0626121, +2022-09-29 18:59:54,Evening Run,2,0,2144,2616,10.0548,5988.1,23.2,Run,0,0,0,0,51.5583,-0.0622645, +2022-09-28 18:11:48,Evening Run,1,0,1226,1560,10.854,3697,9.3,Run,0,0,0,0,51.5583,-0.0619869, +2022-09-20 19:29:34,Evening Run,4,1,1824,2133,10.8792,5512.3,24.2,Run,0,0,0,0,51.5584,-0.062278, +2022-09-15 18:43:11,Evening Run,2,1,2189,2613,10.0368,6102.8,16.3,Run,0,0,0,0,51.5584,-0.0620325, +2022-09-13 17:57:06,Evening Run,2,2,1402,1800,10.2204,3979.7,14.1,Run,0,0,0,0,51.5582,-0.0622277, +2022-08-27 20:17:22,Evening Run,2,0,820,1026,10.53,2398.7,48.3,Run,0,0,0,0,43.7697,4.12133, +2022-08-22 19:20:29,Hooooooot,2,0,946,1088,9.5004,2496.2,47.4,Run,0,0,0,0,43.7696,4.12102, +2022-08-03 17:02:43,Afternoon Run,3,0,2090,2494,9.5364,5537.4,62.7,Run,0,0,0,0,51.4709,-0.0849791, +2022-08-02 17:49:17,Evening Run,3,0,1635,1805,9.5508,4338.3,47.5,Run,0,0,0,0,51.4705,-0.0852663, +2022-07-22 18:33:59,Evening Run,3,1,1804,2400,10.8,5412.7,53,Run,0,0,0,0,51.4706,-0.0848732, +2022-07-11 18:02:45,Morning Run,3,0,2496,60579,9.2844,6436.4,13,Run,0,0,0,0,52.7238,-1.79276, +2022-06-27 18:48:14,Evening Run,2,0,1053,3829,11.0448,3230.5,7.2,Run,0,0,0,0,52.7237,-1.79294, +2022-06-16 17:42:05,Afternoon Run,1,0,1016,1140,11.3076,3191.4,11,Run,0,0,0,0,48.1249,11.5498, +2022-06-13 19:03:34,Evening Run,5,0,1516,1814,11.2968,4757.1,47.7,Run,0,0,0,0,48.1248,11.5498, +2022-06-06 19:03:21,Evening Run,5,0,3325,4683,9.7164,8975.4,107.2,Run,0,0,0,0,48.1249,11.5498, +2022-05-30 19:17:53,Evening Run,5,0,2103,2611,10.8252,6324.1,56.7,Run,0,0,0,0,48.1232,11.5259, +2022-05-23 19:02:10,Evening Run,5,2,3248,5919,10.278,9271.4,68.8,Run,0,0,0,0,48.1187,11.5818, +2022-05-18 20:48:40,Night Run,6,0,2301,8775,12.0816,7722.4,39.5,Run,0,0,0,0,48.1186,11.5817, +2022-05-16 20:05:56,Evening Run,4,0,2432,2973,10.5012,7093.8,48,Run,0,0,0,0,48.1185,11.5817, +2022-05-11 07:21:10,Morning Run,3,0,1587,2008,10.2636,4524.3,41.1,Run,0,0,0,0,48.1185,11.5817, +2022-05-02 21:34:33,Night Run,3,0,1631,1689,11.0844,5021.8,8.3,Run,0,0,0,0,48.1524,11.5796, +2022-04-21 08:53:11,Morning Run,4,4,2267,3068,9.36,5895,164.8,Run,0,0,0,0,23.3653,-110.189, +2022-03-22 07:48:23,Morning Run,3,0,1439,4620,10.4616,4182.4,14.2,Run,0,0,0,0,48.1206,11.5581, +2022-03-20 09:25:35,Morning Run,3,3,1435,1737,10.3032,4106.4,13,Run,0,0,0,0,48.1208,11.5587, +2022-03-01 17:16:31,Afternoon Run,3,0,1959,2991,10.5624,5748.3,36.1,Run,0,0,0,0,51.5485,-0.110401, +2022-02-24 18:34:14,Evening Run,5,3,3003,48607,8.6796,7239.9,48.8,Run,0,0,0,0,51.5485,-0.110477, +2022-02-15 19:16:08,Evening Run,3,2,2636,3590,10.6344,7787.4,46.6,Run,0,0,0,0,51.5486,-0.110636, +2022-02-11 18:41:39,Evening Run,4,0,1291,1707,10.098,3620.7,10,Run,0,0,0,0,52.7375,-1.74716, +2022-02-09 18:18:54,Evening Run,5,0,2028,2325,10.6272,5985.7,6.6,Run,0,0,0,0,52.7236,-1.79297, +2022-01-21 17:28:20,Afternoon Run,2,0,1833,3549,10.3968,5294.3,53.5,Run,0,0,0,0,50.8604,4.37734, +2022-01-16 16:51:03,Afternoon Run,2,2,2073,2488,8.55,4922.7,42.4,Run,0,0,0,0,50.8602,4.37721, +2022-01-03 18:58:52,Evening Run,4,0,3056,3308,10.566,8968.3,57.1,Run,0,0,0,0,43.7694,4.12095, +2021-12-29 12:37:57,My first half marathon! (Phone died at 16k),8,4,5391,9744,11.0412,16535.8,71.4,Run,0,0,0,0,43.7703,4.1216, +2021-12-22 18:43:56,Evening Run,4,2,1673,2030,9.4608,4396.7,17.6,Run,0,0,0,0,43.7758,4.16233, +2021-12-10 18:16:18,Evening Run,4,0,2643,2814,10.8504,7965.4,36.2,Run,0,0,0,0,43.7694,4.12112, +2021-12-04 19:05:27,Evening Run,4,0,2954,3577,10.242,8404.4,8.6,Run,0,0,0,0,51.4756,-0.108807, +2021-11-29 18:06:28,Evening Run,4,0,3050,3517,9.8856,8375.7,15.4,Run,0,0,0,0,51.4754,-0.10877, +2021-10-31 19:32:30,Evening Run,4,1,1936,2197,10.476,5633.7,2.6,Run,0,0,0,0,51.4756,-0.108841, +2021-10-25 19:02:51,Evening Run,2,0,2024,2204,10.44,5869.8,12.8,Run,0,0,0,0,51.4755,-0.108554, +2021-10-06 18:35:27,Evening Run,4,1,1817,2187,10.9908,5546.4,12,Run,0,0,0,0,51.4756,-0.108592, +2021-09-16 08:44:34,Morning Run,5,0,2621,2782,9.6192,7004,6.6,Run,0,0,0,0,52.7238,-1.79313, +2021-09-02 10:35:29,Morning Run,3,3,2395,3308,9.3204,6200.4,83.1,Run,0,0,0,0,55.7,14.1047, +2021-08-23 19:38:24,Evening Run,3,3,2646,2832,9.972,7329.9,20.1,Run,0,0,0,0,52.5514,13.3504, +2021-08-17 13:51:30,Afternoon Run,5,0,2868,3753,10.1124,8055.1,15.9,Run,0,0,0,0,52.5058,13.309, +2021-08-10 18:52:03,"Running, walking, talking ",5,5,3043,5036,9.3456,7899.1,9.6,Run,0,0,0,0,52.506,13.309, +2021-07-14 18:54:24,Evening Run,3,0,2281,2573,10.4724,6634.6,53.4,Run,0,0,0,0,48.14,11.5387, +2021-07-08 18:35:03,Evening Run,4,0,2411,2832,10.638,7125.4,45.6,Run,0,0,0,0,48.1398,11.5388, +2021-07-02 18:28:41,Evening Run,6,0,2757,3279,8.6976,6661,64.4,Run,0,0,0,0,48.1392,11.539, +2021-06-29 17:51:37,Afternoon Run,6,0,3225,6333,10.7496,9629.1,89.5,Run,0,0,0,0,48.14,11.5382, +2021-06-14 19:08:31,Tooooo hot,5,0,2287,2527,9.936,6313,61.5,Run,0,0,0,0,48.1271,11.5382, +2021-06-08 18:55:54,Nice phone call and a run ,6,0,3666,3952,10.2708,10458.4,73,Run,0,0,0,0,48.1372,11.5402, +2021-06-02 21:27:52,Night Run,2,0,1720,1883,12.2616,5858.2,16,Run,0,0,0,0,48.1398,11.5387, +2021-05-31 18:47:27,Evening Run,6,0,3971,4434,9.9288,10951.5,87.6,Run,0,0,0,0,48.1399,11.539, +2021-05-24 18:48:45,Evening Run,6,0,3425,3641,10.134,9640.2,58.5,Run,0,0,0,0,48.1398,11.5387, +2021-05-17 19:30:07,Wiggly and hilly ,4,0,2450,3202,10.5876,7204.6,124.3,Run,0,0,0,0,43.7695,4.12127, +2021-05-15 15:08:40,Afternoon Run,4,0,3818,4164,10.458,11089.6,68.2,Run,0,0,0,0,43.7699,4.12157, +2021-05-13 13:03:53,Afternoon Run,3,3,1957,2059,11.1312,6051.1,26.1,Run,0,0,0,0,49.0193,2.08805, +2021-05-03 17:09:06,Afternoon Run,6,0,3077,3142,10.5588,9024.9,71.5,Run,0,0,0,0,48.1398,11.5391, +2021-04-16 17:49:34,Afternoon Run,6,0,2978,3676,10.1988,8437.3,57.8,Run,0,0,0,0,48.1388,11.5391, +2021-04-08 09:27:07,Morning Run,6,0,2869,4730,9.9288,7913.1,53.7,Run,0,0,0,0,48.1338,11.5401, +2021-03-23 19:10:18,Evening Run,4,2,3858,4168,10.6632,11428.8,64.8,Run,0,0,0,0,43.7694,4.12132, +2021-03-22 19:10:15,Evening Run,2,0,1403,1435,10.8576,4232,42.6,Run,0,0,0,0,43.7693,4.12126, +2021-03-15 19:31:28,Evening Run,4,0,2752,2849,10.0908,7714.4,30.5,Run,0,0,0,0,48.1394,11.5392, +2021-03-08 19:39:43,Evening Run,3,0,2440,2528,10.4796,7103.7,43.5,Run,0,0,0,0,48.1401,11.5386, +2021-03-05 08:45:33,Morning Run,3,0,2963,3441,10.1592,8361.1,45.5,Run,0,0,0,0,48.1395,11.5393, +2021-02-03 20:06:33,Evening Run,6,0,2933,3042,11.0664,9016.7,53,Run,0,0,0,0,48.14,11.539, +2021-01-26 16:47:44,Afternoon Run,3,3,2842,3068,11.1996,8842,26.2,Run,0,0,0,0,51.5051,-0.308281, +2021-01-14 08:45:00,"Icy, windy and press-ups :(",7,1,3734,4112,10.8072,11210.8,73.5,Run,0,0,0,0,48.1393,11.539, +2021-01-11 17:05:53,Gentle run on icy paths ,3,0,1829,1998,11.2644,5722.9,22.4,Run,0,0,0,0,48.1399,11.5381, +2021-01-04 17:12:56,Afternoon Run,3,0,1367,1422,13.1976,5011.5,21.8,Run,0,0,0,0,48.1398,11.5391, +2020-12-26 08:59:21,Blowing out the cobwebs...,6,6,3998,4534,10.2204,11350.6,203.8,Run,0,0,0,0,49.1418,9.10928, +2020-12-11 09:19:03,"Gentle Run no pace feedback, 10 press-ups or 5 pull-ups every song change ",6,0,3502,4194,10.836,10541.3,80.1,Run,0,0,0,0,48.1375,11.5411, +2020-12-03 09:56:32,Morning Run,6,0,3759,3876,10.4832,10946.5,68.8,Run,0,0,0,0,48.1374,11.5408, +2020-11-28 18:12:26,Evening Run,6,0,3314,3541,11.4588,10547.8,82.6,Run,0,0,0,0,48.1372,11.5405, +2020-11-15 15:42:04,Afternoon Run,6,0,2432,2488,12.3516,8344.1,57.5,Run,0,0,0,0,48.1372,11.5403, +2020-11-10 19:25:49,Evening Run,3,0,1826,1890,12.2364,6206.5,41.8,Run,0,0,0,0,48.1373,11.5406, +2020-11-06 17:55:46,Afternoon Run,6,6,2521,350731,9.7488,6828.1,70.7,Run,0,0,0,0,48.1373,11.5405, +2020-10-31 15:02:00,Afternoon Run,5,0,4276,6000,11.322,13446.1,72.5,Run,0,0,0,0,48.1228,11.5883, +2020-10-22 18:05:38,Evening Run,5,1,3694,4508,9.7776,10033.5,70.1,Run,0,0,0,0,48.1224,11.5883, +2020-10-20 18:29:02,Evening Run,3,0,3520,3520,10.7604,10520.3,72.2,Run,0,0,0,0,48.1226,11.5886, +2020-10-03 09:04:51,Morning Run,5,2,3815,4015,9.4284,9990.4,70.3,Run,0,0,0,0,48.1227,11.5882, +2020-09-13 09:19:36,Morning Run,4,0,3778,4489,10.4796,10996.9,20.8,Run,0,0,0,0,48.1643,11.5838, +2020-09-05 10:01:27,Morning Run,6,1,3983,4147,9.666,10695.9,22.3,Run,0,0,0,0,48.1643,11.5835, +2020-09-02 10:29:53,Morning Run,2,0,1902,2055,10.3428,5465.1,14.8,Run,0,0,0,0,48.1642,11.5836, +2020-08-14 20:09:25,Evening Run,2,2,1297,1394,11.7396,4229.6,39.2,Run,0,0,0,0,45.941,6.89233, +2020-07-29 19:24:12,Evening Run,4,0,3546,4308,10.1628,10008.9,17.6,Run,0,0,0,0,52.7236,-1.79298, +2020-07-27 18:00:22,Evening Run,4,0,3459,3936,10.8072,10382.3,27.5,Run,0,0,0,0,52.7236,-1.79319, +2020-07-19 19:17:54,Evening Run,3,0,1771,1933,12.2364,6019.4,15.5,Run,0,0,0,0,52.7238,-1.79294, +2020-07-16 20:53:24,6 press-ups per km,3,1,3368,3756,10.6992,10008.6,11.6,Run,0,0,0,0,52.7236,-1.79295, +2020-07-14 19:31:23,6 press-ups per km,4,0,3397,3761,10.6236,10024,26,Run,0,0,0,0,52.7239,-1.79276, +2020-07-13 18:03:30,Evening Run,4,0,4066,5571,10.4112,11759.5,17.4,Run,0,0,0,0,52.7236,-1.79261, +2020-07-02 21:06:56,Night Run,6,2,4584,5831,10.4184,13267.8,30.6,Run,0,0,0,0,52.7235,-1.79278, +2020-06-29 19:58:01,So windy ,5,0,3618,4135,10.512,10566.2,27.3,Run,0,0,0,0,52.7237,-1.79295, +2020-06-25 21:49:16,Night Run,4,0,3601,4086,10.5336,10537.5,27.7,Run,0,0,0,0,52.7235,-1.79245, +2020-06-20 19:35:38,Evening Run,3,1,2660,3502,10.0872,7453.3,15.4,Run,0,0,0,0,52.7234,-1.79207, +2020-06-18 10:08:04,Easing back in ,4,0,1307,1783,11.1312,4040.8,10,Run,0,0,0,0,52.7234,-1.79257, +2020-06-02 18:25:43,Evening Run,5,0,1876,1952,11.6388,6064.7,6.9,Run,0,0,0,0,52.7237,-1.79311, +2020-05-25 19:32:18,Evening Run,4,0,3299,3573,10.944,10027.5,23.2,Run,0,0,0,0,52.7238,-1.79244, +2020-05-22 20:29:09,So windy ,4,0,3331,3585,11.268,10427.6,26.1,Run,0,0,0,0,52.7235,-1.79285, +2020-05-16 18:06:04,Evening Run,4,0,3160,3502,11.4696,10068.1,24.3,Run,0,0,0,0,52.7236,-1.7927, +2020-05-11 19:41:00,Evening Run,4,0,3151,3331,12.0024,10505.9,25.9,Run,0,0,0,0,52.7236,-1.79296, +2020-05-09 07:36:35,Morning Run,5,0,1928,2287,11.1096,5949.5,7.9,Run,0,0,0,0,52.7237,-1.79293, +2020-05-04 18:18:46,Evening Run,4,1,2432,2765,10.7928,7291.1,24,Run,0,0,0,0,52.7236,-1.7929, +2020-05-02 19:47:28,Evening Run,8,1,4868,4872,11.8512,16024.2,7.8,Run,0,0,0,0,52.7237,-1.79298, +2020-04-30 18:16:34,Evening Run,4,0,3152,3223,11.952,10463.5,26.2,Run,0,0,0,0,52.7237,-1.79303, +2020-04-28 19:19:44,Evening Run,6,0,2923,3142,12.4236,10087.5,7.4,Run,0,0,0,0,52.7231,-1.79232, +2020-04-27 19:54:22,Faaaaast,4,0,3206,3707,11.7036,10424.3,26.4,Run,0,0,0,0,52.7236,-1.79292, +2020-04-26 18:40:17,Evening Run,3,0,3200,3327,11.0592,9830.7,19,Run,0,0,0,0,52.7238,-1.79291, +2020-04-25 08:54:20,Morning Run with John,4,0,3407,3661,11.0304,10438.8,26.2,Run,0,0,0,0,52.7239,-1.79291, +2020-04-24 08:58:35,Morning Run,2,0,1961,2289,10.9404,5960.4,14,Run,0,0,0,0,52.7235,-1.79266, +2020-04-23 08:07:33,Morning Run,7,2,3755,4342,10.5768,11031.7,11.1,Run,0,0,0,0,52.7237,-1.79315, +2020-04-22 08:15:06,Morning Run,4,0,3645,4286,10.4976,10629.2,26.3,Run,0,0,0,0,52.7238,-1.79265, +2020-04-15 08:19:59,Morning Run,5,1,2589,3123,11.2176,8068.3,13.2,Run,0,0,0,0,52.7236,-1.79276, +2020-04-14 08:04:11,No dog!,3,0,2683,3252,10.3212,7691.3,19,Run,0,0,0,0,52.7239,-1.79267, +2020-04-08 16:09:40,Afternoon Run,3,0,1683,2081,10.2024,4770,17.9,Run,0,0,0,0,52.7236,-1.79325, +2020-04-07 08:03:23,Morning Run,2,0,1780,1939,10.242,5064.6,7.9,Run,0,0,0,0,52.7236,-1.79284, +2020-04-01 08:29:55,Morning Run,4,0,1047,1354,10.6128,3086.5,8.5,Run,0,0,0,0,52.7237,-1.79346, +2020-03-24 08:49:23,Old dog said “fuck off”,3,0,711,1869,10.368,2047.8,7.1,Run,0,0,0,0,52.7237,-1.79273, +2020-03-23 09:45:23,Morning Run,3,0,2444,3102,10.0512,6824.6,21,Run,0,0,0,0,52.7237,-1.79292, +2020-03-22 09:03:31,2nd run with dog ,3,0,1960,2380,9.2556,5038.9,13,Run,0,0,0,0,52.7236,-1.79295, +2020-03-21 08:08:29,Morning Run,3,0,2243,2464,9.9684,6211.2,19.1,Run,0,0,0,0,52.7237,-1.79305, +2020-03-18 09:53:50,Morning Run,3,0,2506,4499,10.242,7129.7,24.6,Run,0,0,0,0,51.4855,-0.099882, +2020-01-16 07:46:20,Morning Run,2,0,1560,1751,10.6776,4626.7,0,Run,0,0,0,0,51.4854,-0.100159, +2020-01-01 06:54:01,Morning Run,5,2,1332,1339,9.9324,3675.5,0,Run,0,0,0,0,51.509,-0.211662, +2019-12-26 11:53:11,Lunch Run,4,2,1534,1623,10.17,4332.8,8.3,Run,0,0,0,0,52.724,-1.79266, +2019-12-24 08:48:43,Floods floods floods ,4,3,3581,4199,10.8036,10745.4,36.2,Run,0,0,0,0,52.7241,-1.79235, +2019-11-24 11:19:13,Slow before brunch ,3,0,3046,3460,9.756,8253.3,35.5,Run,0,0,0,0,48.1656,11.5786, +2019-11-20 18:38:14,Evening Run,3,0,2465,2620,10.5696,7238.1,36.6,Run,0,0,0,0,48.1658,11.5788, +2019-11-14 19:07:36,Evening Run,2,0,1683,1995,10.2924,4811.3,25.7,Run,0,0,0,0,48.1657,11.5791, +2019-10-27 08:10:05,Morning Run,3,1,1832,1986,10.0296,5103.3,28,Run,0,0,0,0,48.1658,11.5786, +2019-10-22 17:16:12,Trying to up the pace.,3,1,2635,2736,11.5416,8447.3,45.4,Run,0,0,0,0,48.1659,11.5786, +2019-10-16 17:36:59,First run home ,13,13,6549,6827,9.9288,18064.5,92.7,Run,0,0,0,0,48.2666,11.6779, +2019-09-28 07:37:43,Morning Run,12,8,6703,7407,10.4292,19415.7,103.6,Run,0,0,0,0,51.5022,-0.178004, +2019-09-14 08:04:35,Morning Run,4,0,3320,3486,10.7172,9883.5,44.8,Run,0,0,0,0,51.5017,-0.178264, +2019-09-08 07:29:47,Morning Run,3,0,6773,6856,9.612,18083.8,26.3,Run,0,0,0,0,51.4855,-0.100098, +2019-08-27 08:05:54,Morning Run,2,2,1807,1995,9.9576,4998.2,62.5,Run,0,0,0,0,43.7695,4.12122, +2019-08-01 19:06:10,Evening Run,4,0,2262,2410,10.4184,6547.2,8.6,Run,0,0,0,0,51.4855,-0.100036, +2019-07-29 18:06:05,Evening Run,4,0,3083,3184,9.3456,8004.7,3.6,Run,0,0,0,0,51.4854,-0.100064, +2019-07-27 19:17:40,Evening Run,3,0,3405,3405,10.6272,10051.1,8.8,Run,0,0,0,0,51.4855,-0.100043, +2019-07-24 20:52:05,Evening Run,3,0,3763,3822,9.792,10234.3,5.4,Run,0,0,0,0,51.4855,-0.100164, +2019-07-19 06:40:22,Morning Run,3,0,2484,4760,8.9892,6203.1,4.9,Run,0,0,0,0,51.4855,-0.099988, +2019-07-16 07:32:00,Morning Run,2,0,1403,1563,10.9872,4282.4,4.2,Run,0,0,0,0,51.4854,-0.100072, +2019-07-13 07:45:57,Morning Run,4,0,2597,3672,10.2708,7409.1,3,Run,0,0,0,0,51.4854,-0.100068, +2019-07-07 20:33:12,Evening Run,3,0,2670,3068,9.4356,6996.9,3.7,Run,0,0,0,0,51.4852,-0.1, +2019-07-04 07:57:04,Morning Run,4,1,2559,3220,9.8244,6984.3,5.9,Run,0,0,0,0,51.4854,-0.099969, +2019-07-03 21:32:10,Night Run,2,0,1344,1370,11.4876,4288.4,4.2,Run,0,0,0,0,51.4853,-0.099947, +2019-06-22 08:04:48,Morning Run,4,2,4129,7715,9.0252,10353.1,8.4,Run,0,0,0,0,51.4855,-0.100104, +2019-06-18 18:06:07,Evening Run,3,1,1663,1663,11.466,5295.9,28.2,Run,0,0,0,0,51.4996,-0.179553, +2019-06-06 17:09:56,Afternoon Run,4,4,2466,2801,10.7712,7377.4,42.2,Run,0,0,0,0,51.4997,-0.179654, +2019-05-31 20:06:06,Evening Run,2,0,1725,1934,10.7244,5138.7,2.1,Run,0,0,0,0,51.4854,-0.100012, +2019-04-29 17:19:41,Afternoon Run,2,2,2190,2427,9.7308,5919.6,5.3,Run,0,0,0,0,51.4841,-0.096963, +2019-03-18 19:13:37,Evening Run,4,4,3113,3356,11.8512,10247.3,35.5,Run,0,0,0,0,51.4337,-0.20562, +2019-02-27 19:22:14,Evening Run,5,2,3473,3700,10.7604,10381,22.4,Run,0,0,0,0,51.4723,-0.191091, +2019-01-16 20:05:22,Evening Run,3,0,2502,2599,9.9036,6884,9.2,Run,0,0,0,0,51.4724,-0.191177, +2018-12-11 21:15:42,Night Ride,3,1,3624,5868,9.3816,9442.5,9.4,Ride,0,0,0,0,51.4724,-0.191304, +2018-11-14 18:52:29,Evening Run,2,2,1484,1582,9.6732,3987.8,9.1,Run,0,0,0,0,51.4724,-0.190851, +2018-04-13 19:56:26,Evening Run,3,1,1659,1706,8.8236,4066.8,10.5,Run,0,0,0,0,52.2079,0.119915, +2017-11-17 18:37:35,Evening Run,4,0,3336,3507,9.3816,8693.8,17.9,Run,0,0,0,0,52.2079,0.119746, +2017-11-05 19:05:59,Evening Run,4,0,2267,2312,9.5328,6003.3,11.1,Run,0,0,0,0,52.2079,0.119759, +2017-11-03 19:43:21,Evening Run,4,0,2871,2871,10.5084,8379.4,17.6,Run,0,0,0,0,52.208,0.119788, +2017-09-17 18:43:40,Evening Run,3,3,3698,3968,9.558,9818.5,20.2,Run,0,0,0,0,52.7238,-1.79279, +2017-05-03 17:28:45,Afternoon Run,4,0,4390,4469,9.54,11635.6,23.6,Run,0,0,0,0,52.2099,0.120085, +2017-04-23 19:01:35,Evening Run,4,0,2899,2948,10.6128,8547.3,17.8,Run,0,0,0,0,52.208,0.119659, +2017-03-06 18:35:40,Evening Run,4,3,2950,2972,11.3328,9287.6,12,Run,0,0,0,0,52.208,0.119585, +2017-02-14 19:15:36,Evening Run,4,0,3166,3286,9.9144,8717.6,17.7,Run,0,0,0,0,52.2079,0.119709, +2017-01-30 19:10:27,Evening Run,4,0,3059,3172,10.1196,8598,17.7,Run,0,0,0,0,52.2081,0.119615, +2017-01-16 18:19:07,Evening Run,4,4,3216,3478,9.6588,8627.4,17.7,Run,0,0,0,0,52.2078,0.119573, \ No newline at end of file diff --git a/assets/blog/running/time_vs_distance.png b/assets/blog/running/time_vs_distance.png new file mode 100644 index 0000000..bdae8f2 Binary files /dev/null and b/assets/blog/running/time_vs_distance.png differ diff --git a/assets/blog/running/time_vs_distance.svg b/assets/blog/running/time_vs_distance.svg new file mode 100644 index 0000000..bc471f3 --- /dev/null +++ b/assets/blog/running/time_vs_distance.svg @@ -0,0 +1,1528 @@ + + + + + + + + 2023-08-13T16:29:09.322102 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/blog/running/time_vs_distance_plus_hist.svg b/assets/blog/running/time_vs_distance_plus_hist.svg new file mode 100644 index 0000000..7a5b163 --- /dev/null +++ b/assets/blog/running/time_vs_distance_plus_hist.svg @@ -0,0 +1,1998 @@ + + + + + + + + 2023-08-13T16:20:50.140314 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/blog/running/vdot.csv b/assets/blog/running/vdot.csv new file mode 100644 index 0000000..e40c7bf --- /dev/null +++ b/assets/blog/running/vdot.csv @@ -0,0 +1,10 @@ +VDOT, 1500m, mile, 3000, 2_mile, 5000, 10K, 15K, half_marathon, marathon +30, 8:30, 9:11, 17:56, 19:19, 30:40, 63:46, 98:14, 2:21:04, 4:49:17 +31, 8:15, 8:55, 17:27, 18:48, 29:51, 62:04, 95:36, 2:17:21, 4:41:57 +32, 8:02, 8:41, 16:59, 18:18, 29:05, 60:26, 93:07, 2:13:49, 4:34:59 +33, 7:49, 8:27, 16:33, 17:50, 28:21, 58:54, 90:45, 2:10:27, 4:28:22 +34, 7:37, 8:14, 16:09, 17:24, 27:39, 57:26, 88:30, 2:07:16, 4:22:03 +35, 7:25, 8:01, 15:45, 16:58, 27:00, 56:03, 86:22, 2:04:13, 4:16:03 +36, 7:14, 7:49, 15:23, 16:34, 26:22, 54:44, 84:20, 2:01:19, 4:10:19 +37, 7:04, 7:38, 15:01, 16:11, 25:46, 53:29, 82:24, 1:58:34, 4:04:50 +38, 6:54, 7:27, 14:41, 15:49, 25:12, 52:17, 80:33, 1:55:55, 3:59:35 \ No newline at end of file diff --git a/assets/blog/shelves/model/env.jpg b/assets/blog/shelves/model/env.jpg new file mode 100644 index 0000000..c6ec13c Binary files /dev/null and b/assets/blog/shelves/model/env.jpg differ diff --git a/assets/blog/shelves/model/shelves.glb b/assets/blog/shelves/model/shelves.glb new file mode 100644 index 0000000..5b37639 Binary files /dev/null and b/assets/blog/shelves/model/shelves.glb differ diff --git a/assets/blog/shelves/model/shelves.png b/assets/blog/shelves/model/shelves.png new file mode 100644 index 0000000..0348f67 Binary files /dev/null and b/assets/blog/shelves/model/shelves.png differ diff --git a/assets/blog/toothbrush_shelf/crop.jpeg b/assets/blog/toothbrush_shelf/crop.jpeg index bc2708e..6742d1f 100644 Binary files a/assets/blog/toothbrush_shelf/crop.jpeg and b/assets/blog/toothbrush_shelf/crop.jpeg differ diff --git a/assets/blog/toothbrush_shelf/model/toothbrush_shelf.glb b/assets/blog/toothbrush_shelf/model/toothbrush_shelf.glb index 4e246d1..72ecb92 100644 Binary files a/assets/blog/toothbrush_shelf/model/toothbrush_shelf.glb and b/assets/blog/toothbrush_shelf/model/toothbrush_shelf.glb differ diff --git a/assets/blog/toothbrush_shelf/model/poster.webp b/assets/blog/toothbrush_shelf/model/toothbrush_shelf.webp similarity index 100% rename from assets/blog/toothbrush_shelf/model/poster.webp rename to assets/blog/toothbrush_shelf/model/toothbrush_shelf.webp diff --git a/assets/blog/vector_magnet/aircraft_workshop_01_1k.hdr b/assets/blog/vector_magnet/aircraft_workshop_01_1k.hdr new file mode 100644 index 0000000..ee5bdea Binary files /dev/null and b/assets/blog/vector_magnet/aircraft_workshop_01_1k.hdr differ diff --git a/assets/blog/vector_magnet/section_view.png b/assets/blog/vector_magnet/section_view.png new file mode 100644 index 0000000..9d34b99 Binary files /dev/null and b/assets/blog/vector_magnet/section_view.png differ diff --git a/assets/blog/vector_magnet/test_section.glb b/assets/blog/vector_magnet/test_section.glb new file mode 100644 index 0000000..15b4edb Binary files /dev/null and b/assets/blog/vector_magnet/test_section.glb differ diff --git a/assets/blog/vector_magnet/test_whole.glb b/assets/blog/vector_magnet/test_whole.glb new file mode 100644 index 0000000..903511d Binary files /dev/null and b/assets/blog/vector_magnet/test_whole.glb differ diff --git a/assets/blog/vector_magnet/vector_magnet.glb b/assets/blog/vector_magnet/vector_magnet.glb new file mode 100644 index 0000000..dd2bb75 Binary files /dev/null and b/assets/blog/vector_magnet/vector_magnet.glb differ diff --git a/assets/blog/vector_magnet/vector_magnet.png b/assets/blog/vector_magnet/vector_magnet.png new file mode 100644 index 0000000..e46a61d Binary files /dev/null and b/assets/blog/vector_magnet/vector_magnet.png differ diff --git a/assets/blog/vector_magnet/vector_magnet_section.glb b/assets/blog/vector_magnet/vector_magnet_section.glb new file mode 100644 index 0000000..0ba0f8b Binary files /dev/null and b/assets/blog/vector_magnet/vector_magnet_section.glb differ diff --git a/assets/social/pcb_1.png b/assets/social/pcb_1.png index 4a91158..2082172 100644 Binary files a/assets/social/pcb_1.png and b/assets/social/pcb_1.png differ diff --git a/cv.html b/cv.html index f3b46ab..26aabd3 100644 --- a/cv.html +++ b/cv.html @@ -15,6 +15,14 @@ or have a look at my blog. Click any item for a little more {% for entry in work %} + {% if entry.image_markup %} + {% assign image_markup = entry.image_markup %} + {% else %} + {% capture image_markup %} + {{ entry.alt }} + {% endcapture %} + {% endif %} +
@@ -24,7 +32,7 @@ or have a look at my blog. Click any item for a little more
{{entry.excerpt}} diff --git a/index.html b/index.html deleted file mode 100644 index 641c069..0000000 --- a/index.html +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Home -redirect_to: /blog ---- \ No newline at end of file diff --git a/blog.html b/index.md similarity index 91% rename from blog.html rename to index.md index b27b5ef..8981cbf 100644 --- a/blog.html +++ b/index.md @@ -1,7 +1,9 @@ --- -layout: default title: Blog -permalink: /blog/ +layout: default +permalink: / +redirect_from: + - /blog/ --- {% for post in site.posts %}
@@ -10,4 +12,4 @@ permalink: /blog/ {{ post.excerpt | markdownify | remove: '

' | remove: '

' }}
-{% endfor %} +{% endfor %} \ No newline at end of file diff --git a/run.sh b/run.sh index aad51a1..47dce04 100755 --- a/run.sh +++ b/run.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -sleep 3 && open --url http://0.0.0.0:4000 & +sleep 5 && open --url http://0.0.0.0:4000 & bundle exec jekyll serve --draft --future \ No newline at end of file