From: Max Value Date: Mon, 18 May 2026 14:05:07 +0000 (+0100) Subject: Big commit X-Git-Url: https://git.ozva.co.uk/?a=commitdiff_plain;h=d640d50274800952f9f74f4256b5dba1c7d0cf08;p=chester-v2 Big commit --- diff --git a/.gitignore b/.gitignore index 1aeddd0..8b4d465 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -/media/photos_*/* +/media/progressive/* +/target/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..54d580c --- /dev/null +++ b/Makefile @@ -0,0 +1,17 @@ +main : .venv/touchfile + -rm -r target + .venv/bin/python build.py + #./resize.sh + + -ln -s $$PWD/assets $$PWD/target/ + -ln -s $$PWD/media $$PWD/target/ + -ln -s $$PWD/fonts $$PWD/target/ + +server : main + cd target; python -m http.server + +.venv/touchfile : requirements.txt + python3 -m venv .venv + .venv/bin/python -m pip install -r requirements.txt + + touch .venv/touchfile diff --git a/about/index.html b/about/index.html deleted file mode 100644 index 0abfd04..0000000 --- a/about/index.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - Demo - - - - - - - - - - -
- - - -

- My name is Chester Jones, and I am a photographer specialising in documentary photography. Over my career, I've gained a broad range of experience from moving image, to mixed media works, to more traditional documentary photography. The latter is best exemplified in my ongoing project taking portraits and documenting the lives of Manchester's hyper-exploited delivery drivers. -

-

- I dabble in various types of photography and video-making, but my real passion lies in the social and political side of things. For the most part, my creative practice has always spoken to social issues, something I plan to keep up throughout my career. My hopes being that I can continue to produce documentary projects working with marginalised communities. Finding ways to be creative whilst working on these topical projects, projects that require sincerity and respect, is a big challenge but something I hope to keep building on. This drive to create unique and engaging work that creates positive representations and counter-narratives of social issues is at the core of my career. -

- - -

-

- -
- - diff --git a/assets/enhance.js b/assets/enhance.js new file mode 100644 index 0000000..725e590 --- /dev/null +++ b/assets/enhance.js @@ -0,0 +1,85 @@ +function setupEnhance () { + + const enhancers = document.querySelectorAll("main .include"); // array of imgage elements triggering enhance + const slideshows = document.querySelectorAll("main .enhanceTrigger"); // array of slideshows triggering an enhance + const dehancer = document.querySelector("#enhance .enhanceTrigger"); // single element triggering a dehance + + // ----- start enhancers onclick + + for (enhancer of enhancers) { + enhancer.addEventListener("click", (e) => { + const image = e.target; // target image + const overlay = document.getElementById("enhance"); // enhance overlay + const slideshow = document.querySelector("#enhance .slideshow"); // enhance slideshow + + overlay.classList.add("activated"); + + let order = image.dataset.order; // img index + let src = image.src.replace(location.origin,''); // image src -> locates in slideshow + + slideshow.dataset.current = order; + + document.querySelector("#enhance .currentSlide") + .classList.remove("currentSlide"); + document.querySelector(`#enhance img[src$="${src}"]`) + .classList.add("currentSlide"); + }) + } + + // ----- end enhancers onclick + + // ----- start slideshows onclick + + for (slideshow of slideshows) { + slideshow.addEventListener("click", (e) => { + const sourceshow = e.target.parentNode.parentNode; // slideshow source of image + const overlay = document.getElementById("enhance"); // enhance overlay + const slideshow = document.querySelector("#enhance .slideshow"); // enhance slideshow + + overlay.classList.add("activated"); + + let order = sourceshow.dataset.current; // img index + slideshow.dataset.current = order; + + document.querySelector("#enhance .currentSlide") + .classList.remove("currentSlide"); + document.querySelector(`#enhance img[id$="${order}"]`) + .classList.add("currentSlide"); + }) + } + + // ----- end enhancers onclick + + // ----- start dehancer onclick + + dehancer.addEventListener("click", (e) => { + const overlay = document.getElementById("enhance"); // enhance overlay + overlay.classList.remove("activated"); + }) + + // ----- end dehancer onclick + + // ------ stylesheet + + const style = new CSSStyleSheet(); + style.replace(` + #enhance { + position: absolute; + top: 0; left: 0; bottom: 0; right: 0; + padding: 30px; + background-color: rgba(0,0,0,0.7); + backdrop-filter: blur(2px); + pointer-events: none; + opacity: 0; transition: opacity 0.2s; + } + #enhance.activated { + opacity: 1; + pointer-events: auto; + } + .enhanceTrigger { cursor: zoom-in; } + .enhanceTrigger, include { cursor: zoom-in; } + #enhance .enhanceTrigger { cursor: zoom-out; } + `).then(_ => {document.adoptedStyleSheets.push(style)}) +} + +setupEnhance(); diff --git a/assets/fonts.css b/assets/fonts.css new file mode 100644 index 0000000..a38c5d0 --- /dev/null +++ b/assets/fonts.css @@ -0,0 +1,28 @@ +@font-face { + font-family: 'Proxima Nova'; + src: url('/fonts/Proxima Nova Extrabold.ttf') format('truetype'); + font-weight: 800; + font-display: swap; + font-style: normal; +} +@font-face { + font-family: 'Proxima Nova'; + src: url('/fonts/Proxima Nova Semibold.ttf') format('truetype'); + font-weight: 600; + font-display: swap; + font-style: normal; +} +@font-face { + font-family: 'Proxima Nova'; + src: url('/fonts/Proxima Nova Regular.ttf') format('truetype'); + font-weight: 400; + font-display: swap; + font-style: normal; +} +@font-face { + font-family: 'Proxima Nova'; + src: url('/fonts/Proxima Nova Light.ttf') format('truetype'); + font-weight: 300; + font-display: swap; + font-style: normal; +} diff --git a/assets/menus.js b/assets/menus.js new file mode 100644 index 0000000..5acca88 --- /dev/null +++ b/assets/menus.js @@ -0,0 +1,58 @@ +function setupMenus() { + const menus = document.getElementsByClassName("smooth"); // get all the smooth menu elements + + for (menu of menus) { + menu.open = true; // default html attribute + + if (window.location.href.split("/")[3] == menu.dataset.location) { + menu.dataset.open = true; // new dataset attribute + } else { + menu.dataset.open = false; + } + + let entries; // number of entries in smooth menu + for (child of menu.children) { + if (child.tagName == "UL") { + entries = child.children.length; + } + } + + menu.style = `--entries: ${entries};` + + // ----- begin event listener + + menu.children[0].addEventListener("click", (e) => { + e.preventDefault(); + let open = e.target.parentNode.dataset.open == "true"; // is the details tag open + + if (open) { e.target.parentNode.dataset.open = "false"; } + else { e.target.parentNode.dataset.open = "true"; } + }); + + // ----- end event listener + } + + // ------ stylesheet + + /* + * depends on --entry-height, with no fallback + * set by the main stylesheet + */ + + const style = new CSSStyleSheet(); + style.replace(` + .smooth ul, .smooth summary { list-style-type: none; } + .smooth { + overflow: clip; + font-size: var(--entry-height); line-height: 2; + height: calc(var(--entry-height) * 2); + margin-bottom: calc(var(--entry-height) * 0.5); + transition: height 0.2s; + } + .smooth[data-open="true"] { + height: calc((var(--entry-height) * (var(--entries) + 1)) * 2); + } + `).then(_ => {document.adoptedStyleSheets.push(style)}) +} + +setupMenus(); diff --git a/assets/mobile.js b/assets/mobile.js new file mode 100644 index 0000000..6c7440a --- /dev/null +++ b/assets/mobile.js @@ -0,0 +1,72 @@ +function setupMenu () { + + // ----- begin open onclick + + const bar = document.getElementById("bar"); + bar.addEventListener("click", (e) => { + document.getElementById("menu").classList.add("activated"); + }) + + // ----- end open onclick + + // ----- begin close onclick + + const back = document.getElementById("back"); + back.addEventListener("click", (e) => { + document.getElementById("menu").classList.remove("activated"); + }) + + // ----- end close onclick + + const style = new CSSStyleSheet(); + style.replace(` + #bar, #back { display: none; } + + #menu { margin-bottom: 100px; } + + @media (orientation: portrait) { + :root { --menu-background: #4c4c4c; } + + #bar, #back { display: block; } + + #back img { height: 100%; } + #back { + height: var(--entry-height); + margin-bottom: calc(var(--entry-height) * 0.5); + } + + #menu { + position: fixed; + top: 0; left: 0; bottom: 0; right: 0; + display: flex; align-items: center; justify-content: center; + transition: opacity 0.2s; opacity: 0; + pointer-events: none; + z-index: 10; + + margin-bottom: 0; + color: white; background-color: var(--menu-background); + } + #menu.activated { + opacity: 1; + pointer-events: auto; + } + + nav { padding-left: 0; padding-right: 0; } + nav > * { padding-left: 25px; padding-right: 25px; } + #bar { + color: white; background-color: var(--menu-background); + padding-top: 25px; padding-bottom: 25px; + } + + /* link styling */ + #menu a:hover { color: var(--lightgray); } + #menu a:link, #menu a:visited, #menu a:focus { + color: white; + text-decoration: none; + } + } + + `).then(_ => {document.adoptedStyleSheets.push(style)}) +} + +setupMenu(); diff --git a/assets/slides.js b/assets/slides.js new file mode 100644 index 0000000..37111e0 --- /dev/null +++ b/assets/slides.js @@ -0,0 +1,151 @@ +function setupSlideshows () { + const slideshows = document.getElementsByClassName("slideshow"); + + for (let s = 0; s < slideshows.length; s++) { + + const slideshow = slideshows[s]; // current slideshow + slideshow.dataset.current = 0; // current slide index + slideshow.id = `show${s}`; + + // ----- agregating begin + + if (slideshow.classList.contains("aggregating")) { + let extras = document.querySelectorAll(".include"); + + for (extra of extras) { + const newSlide = extra.cloneNode(); + newSlide.classList = ""; // remove extra styling classes + slideshow.appendChild(newSlide) + } + } + + // ----- agregating end + + const slides = Array.from(slideshow.children) // Array of all slides + .filter((child) => child.tagName == ["IMG"]); + + for (slide of slides) { + slide.id = `show${s}slide${slide.dataset.order}`; // order slides by given indexes + if (slideshow.dataset.current == slide.dataset.order) { + slide.classList.add("currentSlide"); + } + } + + slideshow.dataset.count = slides.length; // slide count of the slideshow + + // ----- make buttons + + const grid = document.createElement("div"); + const next = document.createElement("div"); + const zoom = document.createElement("div"); + const prev = document.createElement("div"); + + next.innerHTML = "NEXT"; + prev.innerHTML = "PREV"; + + if (!slideshow.classList.contains("noEnhance")) { + zoom.classList.add("enhanceTrigger"); + } + + // ----- start onclick functions + + // ----- prev + + prev.addEventListener("click", (e) => { + const slideshow = e.target.parentNode.parentNode; + + let i = slideshow.dataset.current; // current slideshow index + document.getElementById(`${slideshow.id}slide${i}`) // remove current slide class + .classList.remove("currentSlide"); + + i = Number(i) - 1; + if (i < 0) { i = Number(slideshow.dataset.count) - 1 } + + slideshow.dataset.current = i; + document.getElementById(`${slideshow.id}slide${i}`) // add current slide to new slide + .classList.add("currentSlide"); + }) + + // ----- next + + next.addEventListener("click", (e) => { + const slideshow = e.target.parentNode.parentNode; + + let i = slideshow.dataset.current; // current slideshow index + document.getElementById(`${slideshow.id}slide${i}`) // remove current slide class + .classList.remove("currentSlide"); + + i = Number(i) + 1; + if (i >= Number(slideshow.dataset.count)) { i = 0 } + + slideshow.dataset.current = i; + document.getElementById(`${slideshow.id}slide${i}`) // add current slide to new slide + .classList.add("currentSlide"); + }) + + // ----- end onclick functions + + grid.appendChild(prev); + grid.appendChild(zoom); + grid.appendChild(next); + + slideshow.appendChild(grid); + + } + + // ------ stylesheet + + const style = new CSSStyleSheet(); + style.replace(` + /* slideshow sizing */ + + .slideshow { + overflow: clip; + display: grid; + } + .slideshow:not(.filling) { + width: 100%; + aspect-ratio: 1.5; + } + + /* image and button layout */ + .slideshow > img { + grid-column-start: 1; grid-row-start: 1; + display: none; + width: 100%; height: 100%; object-fit: contain; + } + .slideshow > .currentSlide { display: block; } + + .slideshow > div { + grid-column-start: 1; grid-row-start: 1; + display: grid; grid-template-columns: 1fr 1fr 1fr; + width: 100%; height: 100%; + } + + /* hover overlay */ + .slideshow > div > div { + opacity: 0; transition: opacity 0.3s; + color: rgba(225,255,255,.6); font-weight: 600; + display: flex; align-items: center; justify-content: center; + text-shadow: 0 0 5px black; + + user-select: none; + -webkit-user-select: none; + } + .slideshow > div > div:hover { opacity: 1; } + .slideshow > div > div:first-child { + background: linear-gradient(0.25turn, rgba(225,255,255,.2), rgba(225,255,255,0)); + cursor: w-resize; + } + .slideshow > div > div:last-child { + background: linear-gradient(0.25turn, rgba(225,255,255,0), rgba(225,255,255,.2)); + cursor: e-resize; + } + + @media (orientation: portrait) { + .slideshow:not(.filling) { aspect-ratio: 1; } + } + `).then(_ => {document.adoptedStyleSheets.push(style)}) +} + +setupSlideshows(); diff --git a/assets/style.css b/assets/style.css new file mode 100644 index 0000000..6be5817 --- /dev/null +++ b/assets/style.css @@ -0,0 +1,166 @@ +:root { + --darkgray: #333333; + --mediumgray: #555555; + --lightgray: #EEEEEE; + + font-family: "Proxima Nova", sans-serif; + font-size: 0.9rem; +} + +/* BEGIN SMOOTHMENU STYLING */ + +nav { --entry-height: 1rem; } +nav ul { list-style-type: none; } +nav li > a { + font-size: var(--entry-height); line-height: 2; + height: calc(var(--entry-height) * 2); + margin-bottom: calc(var(--entry-height) * 0.5); +} + +/* END NEW NAV */ + +/* BEGIN MAJOR LAYOUT */ + +body { margin: 0; padding: 0; } + +nav { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 80vw; + + padding: 50px 25px 50px 25px; +} + +main { + position: absolute; + top: 0; + bottom: 0; + left: 20vw; + right: 0; + + padding: 50px 25vw 50px 25px; + overflow: scroll; + overflow-x: hidden; +} + +.filling { + position: fixed; + top: 0; right: 0; bottom: 0; left: 20vw; + padding: 25px; +} +#enhance .filling { + left: 0; +} + +/* END MAJOR LAYOUT */ + +/* BEGIN ELEMENT LAYOUT */ + +aside { + padding: 0 50px 0 50px; + font-style: italic; +} + +iframe { + width: 100%; + aspect-ratio: 1.41; + border: 1px solid var(--mediumgray); +} + +.blockquoteImage { margin: 40px 0 40px 0; width: 113%; } +.blockquoteImage img { display: inline-block; width: 52.5%; } +.blockquoteImage blockquote { + display: inline-block; + vertical-align: top; + width: 32.5%; + margin: 2% 5% 2% 5%; + text-align: right; +} +.blockquoteImage.reversed { margin-left: -3% } +.blockquoteImage.reversed blockquote { text-align: left; } + +.audioNote { margin: 40px 0 40px -3%; width: 113%; } +.audioNote audio { display: inline-block; width: 54%; } +.audioNote aside { + display: inline-block; + vertical-align: top; + width: 40%; + margin: 0 3% 0 3%; + padding: 0; + text-align: right; +} +.audioNote.reversed aside { text-align: left; } +.audioNote audio { width: 60%; } +.audioNote aside { width: 34%; } + +.ref { margin: 20px 5% 20px 5%; } + +.floatLeft { + float: left; + width: 43%; + padding: 0 15px 10px 0; +} +.floatRight { + float: right; + width: 43%; + padding: 0 0 10px 15px; +} + +/* END ELEMENT LAYOUT */ + +@media (orientation: portrait) { + :root { + font-size: 1.6em; + } + + /* BEGIN MAJOR LAYOUT */ + + nav { + position: static; + padding: 50px 25px 50px 25px; + } + main { + position: static; + padding: 50px 25px 50px 25px; + } + + .filling { + position: static; + padding: 0; + + width: 100%; + aspect-ratio: 1 / 1.5; + } + + /* END MAJOR LAYOUT */ + + /* BEGIN ELEMENT LAYOUT */ + + .audioNote { margin: 40px 0 40px 0; width: 100%; } + .audioNote audio { width: 100%; } + .audioNote aside { margin: 20px; width: calc(100% - 40px); } + .audioNote.reversed aside { text-align: left; } + + .blockquoteImage { margin: 40px 0 40px 0; width: 100%; } + .blockquoteImage img { width: 100%; } + .blockquoteImage blockquote { + display: inline-block; + width: 100%; + margin: 40px 0 40px 0; + text-align: right; + } + + .blockquoteImage.reversed { margin-left: 0 } + .blockquoteImage.reversed blockquote { text-align: left; } + + .floatLeft, .floatRight { + float: none; + width: 100% !important; + padding: 0; + } + + /* END ELEMENT LAYOUT */ +} + diff --git a/assets/tweaks.css b/assets/tweaks.css new file mode 100644 index 0000000..19cc747 --- /dev/null +++ b/assets/tweaks.css @@ -0,0 +1,51 @@ +/* non-functional non-layout styling changes */ + +#menu > ul > li > a, /* applies to the top level links and clickable */ +#menu > ul > li > details > summary { font-weight: 600; } +#menu { font-size: 1.1em; } + +.hidden { display: none; } + +/* link styling */ +a:hover { color: var(--mediumgray); } +a:link, a:visited, a:focus { + color: var(--darkgray); + text-decoration: none; +} + +nav > *:first-child, main > *:first-child { margin-top: 0; } + +/* BEGIN TEXT STYLING */ + +h3 { font-size: 1.5em } +h1, h2, h3, h4, h5, h6 { font-weight: 600; } +b { + font-weight: 600; + color: black; +} +p { text-indent: 1.5em; } +h1 + p, h2 + p, h3 + p, h4 + p, h5 + p, h6 + p, +p:first-of-type { text-indent: 0; } + +nav h1 { font-size: 1.3em; } + +main h2 { + text-align: center; + font-size: 3em; +} + +nav h2 { + text-align: center; + font-size: 1em; + font-weight: 600; +} + +dt { font-weight: 600; } +dd { margin-bottom: 1em; } + +blockquote { + color: var(--darkgray); + font-style: italic; +} + +/* END TEXT STYLING */ diff --git a/attribution.js b/attribution.js deleted file mode 100644 index cab14a9..0000000 --- a/attribution.js +++ /dev/null @@ -1,21 +0,0 @@ -function setupAttribution () { - // convert attribution images into figures - const images = document.getElementsByTagName("img"); - for (e of images) { - if ("attribute" in e.dataset) { - const figure = document.createElement("figure"); - const figcaption = document.createElement("figcaption"); - const image = e.cloneNode(); - - figure.classList.add("attributionFigure") - figcaption.innerHTML = e.dataset.attribute; - - figure.append(image); - figure.append(figcaption); - e.before(figure); - e.remove(); - } - } -} - -setupAttribution(); diff --git a/build.py b/build.py new file mode 100644 index 0000000..a7250fe --- /dev/null +++ b/build.py @@ -0,0 +1,14 @@ +from jinja2 import Environment, FileSystemLoader +from os.path import dirname +from os import makedirs +from glob import glob + +env = Environment(loader=FileSystemLoader("templates")) + +for page in glob("templates/pages/**/*.html", recursive=True): + + makedirs(f"target/{dirname(page)[16:]}", exist_ok=True) + + template = env.get_template(page[10:]) + with open(f"target/{page[16:]}", "w") as f: + f.write(template.render()) diff --git a/commercial/groke/index.html b/commercial/groke/index.html deleted file mode 100644 index e841e24..0000000 --- a/commercial/groke/index.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - Demo - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - diff --git a/commercial/le-blanc-fine-art/index.html b/commercial/le-blanc-fine-art/index.html deleted file mode 100644 index 54d7b45..0000000 --- a/commercial/le-blanc-fine-art/index.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - Demo - - - - - - - - - - -
-
- - - - - - - - - - - -
-
- - diff --git a/commercial/live-music/index.html b/commercial/live-music/index.html deleted file mode 100644 index e8357bc..0000000 --- a/commercial/live-music/index.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - Demo - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - diff --git a/commercial/on-set/index.html b/commercial/on-set/index.html deleted file mode 100644 index 66dfc74..0000000 --- a/commercial/on-set/index.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - Demo - - - - - - - - - - -
-
- - - - - - - - - - - - - - -
-
- - diff --git a/contacts/index.html b/contacts/index.html deleted file mode 100644 index 010af74..0000000 --- a/contacts/index.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - Demo - - - - - - - - - - -
-
-
Email
chejones.photos@gmail.com
-
Instagram
@chesterrjones
-
LinkedIn
Chester Jones
-
-
- - diff --git a/cv/index.html b/cv/index.html deleted file mode 100644 index 10e9d7f..0000000 --- a/cv/index.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - Demo - - - - - - - - - -
- -

- Through my BA degree in photography, I have gained experience and confidence in a broad range of creative outputs from moving image, to mixed media works, to more traditional documentary photography. My passion lies in social documentary work, and through this I have gained skills in working in uncontrolled, fast paced environments and in making those I am working with/documenting feel comfortable. Outside of this, I have ample experience organising, curating and installing exhibitions of both my own work and that of others. I am primarily seeking opportunities in photography, art gallery curation and installation, and in socially engaged projects. - - -

Experience

- -
-
Impressions Gallery Bradford 2022
-
Contributor and co-curator of "Through Our Lens" group photography exhibition.
- -
Saan1 Gallery Manchester 2023
-
Contributor and lead organiser of "Mirage" group photography exhibition.
- -
Le Blanc Fine Art Saxby 2024
-
Promotional photographer for sculpture workshop.
- -
Collaboration with GROKE 2024
-
Promotional and behind-the-scenes photographer.
- -
'Earl's Boy' film 2024
-
Promotional and behind-the-scenes photographer.
- -
'Nosebleed' film 2025
-
Co-writer alongside Arthur Whelan.
- -
University of Salford Degree Show Committee 2025
-
Member of the degree show planning committee, helping to organise, plan and fundraise.
-
- -

Education

- -
Further Education
-
University of Salford, Photography BA Hons
- -
Further Education
-
Denys Salt Sixth Form
- -
Religious Studies, Philosophy and Ethics
-
A
- -
Media Studies
-
A
- -
English Language
-
A
- -
- - diff --git a/fonts.css b/fonts.css deleted file mode 100644 index a38c5d0..0000000 --- a/fonts.css +++ /dev/null @@ -1,28 +0,0 @@ -@font-face { - font-family: 'Proxima Nova'; - src: url('/fonts/Proxima Nova Extrabold.ttf') format('truetype'); - font-weight: 800; - font-display: swap; - font-style: normal; -} -@font-face { - font-family: 'Proxima Nova'; - src: url('/fonts/Proxima Nova Semibold.ttf') format('truetype'); - font-weight: 600; - font-display: swap; - font-style: normal; -} -@font-face { - font-family: 'Proxima Nova'; - src: url('/fonts/Proxima Nova Regular.ttf') format('truetype'); - font-weight: 400; - font-display: swap; - font-style: normal; -} -@font-face { - font-family: 'Proxima Nova'; - src: url('/fonts/Proxima Nova Light.ttf') format('truetype'); - font-weight: 300; - font-display: swap; - font-style: normal; -} diff --git a/index.html b/index.html deleted file mode 100644 index c10812b..0000000 --- a/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - Demo - - - - - - - - - - -
-
- - - - - - - - - - - -
- -
- - diff --git a/media/arrow-white.svg b/media/arrow-white.svg deleted file mode 100644 index 6ee1d8c..0000000 --- a/media/arrow-white.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - diff --git a/media/arrow.svg b/media/arrow.svg deleted file mode 100644 index fce5655..0000000 --- a/media/arrow.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - diff --git a/media/back.svg b/media/back.svg new file mode 100644 index 0000000..fc0ebda --- /dev/null +++ b/media/back.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + diff --git a/media/photos/photojournalism1.jpg b/media/photos/photojournalism1.jpg index f034707..8e15947 100644 Binary files a/media/photos/photojournalism1.jpg and b/media/photos/photojournalism1.jpg differ diff --git a/media/photos/photojournalism10.jpg b/media/photos/photojournalism10.jpg new file mode 100644 index 0000000..cd6cb9d Binary files /dev/null and b/media/photos/photojournalism10.jpg differ diff --git a/media/photos/photojournalism11.jpg b/media/photos/photojournalism11.jpg new file mode 100644 index 0000000..afbd70e Binary files /dev/null and b/media/photos/photojournalism11.jpg differ diff --git a/media/photos/photojournalism12.jpg b/media/photos/photojournalism12.jpg new file mode 100644 index 0000000..bfdef4c Binary files /dev/null and b/media/photos/photojournalism12.jpg differ diff --git a/media/photos/photojournalism13.jpg b/media/photos/photojournalism13.jpg new file mode 100644 index 0000000..caf8dfb Binary files /dev/null and b/media/photos/photojournalism13.jpg differ diff --git a/media/photos/photojournalism14.jpg b/media/photos/photojournalism14.jpg new file mode 100644 index 0000000..f034707 Binary files /dev/null and b/media/photos/photojournalism14.jpg differ diff --git a/media/photos/photojournalism15.jpg b/media/photos/photojournalism15.jpg new file mode 100644 index 0000000..39ff1e4 Binary files /dev/null and b/media/photos/photojournalism15.jpg differ diff --git a/media/photos/photojournalism16.jpg b/media/photos/photojournalism16.jpg new file mode 100644 index 0000000..318437e Binary files /dev/null and b/media/photos/photojournalism16.jpg differ diff --git a/media/photos/photojournalism17.jpg b/media/photos/photojournalism17.jpg new file mode 100644 index 0000000..2d95592 Binary files /dev/null and b/media/photos/photojournalism17.jpg differ diff --git a/media/photos/photojournalism18.jpg b/media/photos/photojournalism18.jpg new file mode 100644 index 0000000..1a67c41 Binary files /dev/null and b/media/photos/photojournalism18.jpg differ diff --git a/media/photos/photojournalism19.jpg b/media/photos/photojournalism19.jpg new file mode 100644 index 0000000..2dbf48a Binary files /dev/null and b/media/photos/photojournalism19.jpg differ diff --git a/media/photos/photojournalism2.jpg b/media/photos/photojournalism2.jpg index 39ff1e4..47978da 100644 Binary files a/media/photos/photojournalism2.jpg and b/media/photos/photojournalism2.jpg differ diff --git a/media/photos/photojournalism20.jpg b/media/photos/photojournalism20.jpg new file mode 100644 index 0000000..cca30a5 Binary files /dev/null and b/media/photos/photojournalism20.jpg differ diff --git a/media/photos/photojournalism21.jpg b/media/photos/photojournalism21.jpg new file mode 100644 index 0000000..9c180e1 Binary files /dev/null and b/media/photos/photojournalism21.jpg differ diff --git a/media/photos/photojournalism3.jpg b/media/photos/photojournalism3.jpg index 318437e..db3f6b9 100644 Binary files a/media/photos/photojournalism3.jpg and b/media/photos/photojournalism3.jpg differ diff --git a/media/photos/photojournalism4.jpg b/media/photos/photojournalism4.jpg index 2d95592..c69eb6b 100644 Binary files a/media/photos/photojournalism4.jpg and b/media/photos/photojournalism4.jpg differ diff --git a/media/photos/photojournalism5.jpg b/media/photos/photojournalism5.jpg index 1a67c41..7a5e702 100644 Binary files a/media/photos/photojournalism5.jpg and b/media/photos/photojournalism5.jpg differ diff --git a/media/photos/photojournalism6.jpg b/media/photos/photojournalism6.jpg index 2dbf48a..5c26cfe 100644 Binary files a/media/photos/photojournalism6.jpg and b/media/photos/photojournalism6.jpg differ diff --git a/media/photos/photojournalism7.jpg b/media/photos/photojournalism7.jpg index cca30a5..e0e653d 100644 Binary files a/media/photos/photojournalism7.jpg and b/media/photos/photojournalism7.jpg differ diff --git a/media/photos/photojournalism8.jpg b/media/photos/photojournalism8.jpg index 9c180e1..30f372a 100644 Binary files a/media/photos/photojournalism8.jpg and b/media/photos/photojournalism8.jpg differ diff --git a/media/photos/photojournalism9.jpg b/media/photos/photojournalism9.jpg new file mode 100644 index 0000000..3247119 Binary files /dev/null and b/media/photos/photojournalism9.jpg differ diff --git a/personal/cotton-town/index.html b/personal/cotton-town/index.html deleted file mode 100644 index b487bf4..0000000 --- a/personal/cotton-town/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - Demo - - - - - - - - - - -
-
- - - - - - - - -
-
- - diff --git a/personal/memorabilia/index.html b/personal/memorabilia/index.html deleted file mode 100644 index 230ec26..0000000 --- a/personal/memorabilia/index.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - Demo - - - - - - - - - - -
-
- - - - - - -
-
- - diff --git a/personal/photojournalism/index.html b/personal/photojournalism/index.html deleted file mode 100644 index f08aae1..0000000 --- a/personal/photojournalism/index.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - Demo - - - - - - - - - - -
-
- - - - - - - - -
-
- - diff --git a/personal/riders/index.html b/personal/riders/index.html deleted file mode 100644 index 1f4af46..0000000 --- a/personal/riders/index.html +++ /dev/null @@ -1,300 +0,0 @@ - - - - Demo - - - - - - - - -
- -

Riders

-

The workforce we fail to see.

- -

In Their Own Words

- -

- Making your way through Manchester, or any major city in Britain, it's hard to miss the Riders zipping around on chunky electric bikes with bright, colourful cubes on their backs. No matter the time, no matter the weather, they seem to be on the job. They have a constant presence in the city, yet they somehow slip under the radar, unnoticed by us unless they're in the way of our car or delivering our food. This is what interests me; the place they occupy in our city and in society at large. Out of curiosity I delved into some research and in my own amateur attempt at some political analysis I began to see these people as a newly manufactured and characteristically modern rung below our traditional working class. Workers doubly exploited by tech-corporations, hyper-exploited if you will, as both migrant workers and gig-economy workers; especially vulnerable to predatory business practices, and suffering the detriments of zero-hour employment contracts at the same time. As I began to learn more concretely about concepts such as the 'gig-economy', the 'platform economy', and about food delivery apps' behaviours (which are discussed in the second section of this book), I became very interested in speaking to people myself to learn what life as a Rider is really like. -

- -
-
- Cristian
- "My hope for the future is that finally people, especially the working class people can have the opportunity to understand his role in the history so, can eradicate the idea of borders and banal nationalistic feeling that divides us all around the world. In that way we can build a society free of any kind of discrimination and be able to have societies where the basic needs would not be a obstacle to have free time and develop other capabilities such as art, music, philosophy, etc. and anyone can explore their own happiness without any economical, political or cultural restrain. Then we could have a world free of wars and classes. But my hope in short term is that Palestine and its people could have the opportunity to live in peace and have sovereignty of their own land." -
-
- -

- Over the course of the project, I spoke to a huge array of people from a massive range of social backgrounds. I spoke to foreign students, to refugees who had fled war, to people who came to the UK with dreams of achieving qualifications and building businesses, and to people who couldn't remember why they decided to come to this tiny island in the first place. The common denominator was their kindness. Whilst many were suspicious of me, thinking I must be working for one of their companies, most were very open and happy to speak to an outsider about the reality they're facing. I was offered to share coffee, some Riders offered to show me round their home countries, and whenever I bumped into a Rider I had already spoken to I was greeted warmly. -

- -
- -
- -

Daylight Robbery

- -

- Some told me that they were happy with their jobs. Most of the time these were the younger Riders, relatively new to the job, perhaps working parttime, who seemed to not be as experienced or as worn out as the older Riders. The general consensus amongst those Riders who had been working longer was that the job is "shit." -

- - - -

- On the first day of this project I spoke to a Pakistani man who had come to the UK a few years ago as a business student hoping to start a business here after graduating. He told me about the low pay and dangerous conditions, then summed it all up in one phrase: "bad life." This man had come here with a vision of the UK in his mind that turned out to be very far from the truth. Now, he told me, he feels trapped here in a situation no better than the one he left behind. -

- -

- To make minimum wage, Riders must complete about four deliveries in an hour which is almost impossible due to long distances and fierce competition. As a result, most Riders end up working around eight to twelve hours a day, some working over six days a week. Many of the Riders told me about their families back home, but when I asked if they sent money to them, nearly all of them told me that they could barely make enough to survive themselves. Nearly every person I spoke to told me how difficult it was to make ends meet, many telling me that they're forced to work another job on top of delivering just to get by. Riders told me that it was "daylight robbery", and that they felt they were a "slave for Uber." When I asked them about their hopes for the future, some told me they wanted to go back home, others told me their plans of moving upwards; studying and getting qualifications or saving up for cars so that they could leave e-bike deliveries behind. However, for some Riders the only answer that they could give was that there was no future for them. "There is no future in this job, only deliveries" one guy told me. Another Rider told me he has "no hopes for the future because there's nothing I can do but work." -

- -
-
- Anonymous 2
- "Now I'm living here for like three years, I want to- I don't know. I want to see, because I'm confused. Before it was good, but now I'm confused." -
-
- -

Pray For the Rain

- -

- In this job, the expression that "time is money" becomes a very real and constant concern. Speed becomes your survival, and so Riders are often forced to go as fast as they can. As a result, they are constantly getting into accidents and then have no choice but to continue working. One guy I spoke to had a broken wrist and told me that if he stopped working to let it heal properly, he wouldn't have enough money to live. While I was speaking to a young student from Pakistan who had only been a Rider for a couple of weeks, he said something that was meant to be a bit of a joke, but which actually reflected a dark reality of the job. He told me "normally you pray for the nice sunny weather, but us Riders, we pray for the rain to come." When the weather is bad, people are much more likely to do two things: stay at home and order food, and drive their cars. As a result, business is always best for the Riders when the roads are at their most dangerous, when the tarmac is slick with rainwater, visibility is low, and cars are everywhere. -

- -
-
- Mohit
- "My future, my grand plan, is to quit this job. After four months I will start again in winter, because in winter work is good. Because everybody orders online, in summer everyone comes outside but in winter if the weather is right, work is very busy. In the sun rise, there is no work." -
-
- -

- On one of those busy, rainy nights I spoke to Dawit, a guy who had been working as a Rider for around three years. This conversation was the first time I'd heard about people dying on the job. This fact took me by surprise, but knowing what I now know about the reality of this industry, it seems my shock was somewhat naïve. Dawit also opened up to me about the psychological effects of working as a Rider, telling me that people on the street don't respect them, and neither do most customers or restaurant workers. "I walk into a restaurant, and I feel like shit. Because we look like shit. We're exhausted." He spoke to me about the racism that he endures while working; an issue that I'd heard about from other Riders too. Racist slurs shouted through the windows of passing cars, some Riders even telling me that they'd had things thrown at them by people in cars. One guy summed it up plainly, telling me that eighty percent of people are racist towards them. Its no wonder then that the job can take a huge mental toll, especially when Riders are forced to back down from confrontations due to the apps' built in rating systems. A bad rating can directly impact the algorithm, resulting in less work. Another Rider told me how difficult and humiliating it is to have to hold your tongue when a customer is screaming at you for being late, or if an item is missing from their order. It seems obvious that these things are out of the Riders' control, but this doesn't seem to stop spiteful customers verbally abusing the people that deliver their food. -

- -

Sam

- - - -

- The same night I met Dawit, I also spoke to a man called Sam. I told him he had the same name as my Dad and he smiled. Sam had been working as a Rider for six years and the first thing he said when I asked him about the job was "its shit." He told me about how the pay had gotten dramatically worse over time, especially since the pandemic and that he now has to work between nine and twelve hours a day when he used to only work six to eight. When Sam began to speak about the dangers of the job, his eyes started to shine and well up. He told me, as I'd heard from Dawit, that it was common to have accidents and crashes up to four times a day, and that many people die on the job. But for Sam this fact was incredibly personal; over the six years he'd been working as a rider he told me that three of his friends had died in car crashes. Three people dead, yet the job remained the same he told me, just as dangerous if not more so now that wages are lower, and competition is higher. As far as the platforms are concerned, those people simply logged off and will be replaced by someone else. Sam went on to explain to me that it's not just the roads that are incredibly dangerous. Forced to work such late hours in the city centre, he and his friends constantly face the risk of street crime, from thefts to stabbings. This conversation had a profound impact on me that I would carry through the rest of the project. As I spoke to Sam and saw the emotion in his eyes, the cruelty and disregard of the Riders' companies was made tangible and vivid. I had known already that working for these companies was bad, but this interaction felt like bearing witness to the barbarity myself. -

- -

Permits, Police, and No-Go Zones

- -

- Many of the Riders I spoke to, or who saw me speaking to others and taking their photos, were suspicious that I might be working with the police or with their companies. Having explained the project to them, many didn't want to show their faces or be seen to be involved in what I was trying to do. I learnt from some Riders that this was probably because lots of people work on fake or shared work permits. The reason for this is that so many migrants that come into the UK are unable to obtain legitimate work permits from the government, forcing them to go down illegitimate routes. I spoke to one Rider who expanded on this, referring to a "mafia" from which Riders can buy fake work permits and other papers they might need. With no other options, people are forced into shady deals, paying fees of well over a few hundred pounds to get everything they need to appear as though they are working lawfully. -

- -
- - - - -
- -

- False permits are not the only cause for suspicion and unease. Riders are also constantly facing trouble from the police, with bike seizures being a regular occurrence. Some electric bikes are rented out from legitimate companies. Some, however, are homemade, taped and strapped together with duct tape and bungee cord, built with batteries and motors salvaged or ordered online, some of which happen to be illegal in the UK. Lots of riders told me about the enormous setbacks that police seizures cause, with bikes costing up to a thousand pounds, if not more. Not only could that be months worth of wages gone with no reprieve, it also forces Riders to stop working for however long it takes them to get back up and running again. -

- -

- After taking a photo of a Rider named Muzzamil, we shook hands, and he rode off. A few seconds later, a police car hurtled past me and shouted at him to pull over. A policeman got out of the car and immediately began inquiring about his bike. Muzzamil explained that all the parts of the bike were legal, and that he'd made it himself. The policeman realised he'd made a mistake and walked back to his car. "You scared me, man!" shouted Muzzamil to the officer, clearly having thought his livelihood might've been taken from him a few seconds ago. "That's my job!" the policeman shouted back. -

- -
-
- Haseen
- "I hope to complete my postgraduate research successfully and return to my professional path as a doctor and researcher. My dream is to contribute to the medical field through both clinical practice and academic work. I want to be in a position where I can use my skills to make a difference-not just survive on side jobs. Eventually, I hope to secure a role in healthcare or research here in the UK, where my experience and education are recognized. This phase is difficult, but I believe it's just one chapter in a much bigger story." -
-
- -

- Of course, the police aren't the only ones taking bikes away from Riders. Another harsh reality of the job is bike thefts. A ridiculous amount of Riders told me that they'd had their bikes stolen or that they'd had run ins with bike thieves. Many told me that they had their own personal no-go areas, parts of the city that they had heard bad stories about, or where they'd been targeted themselves. Stories of stabbings, would-be thieves wielding machetes, and gangs of teenagers swarming Riders trying to pull them off their bikes. One Rider, a man called Ahmed, spoke to me about an experience he had riding through Rusholme. He told me about how a group of men had attempted to steal his bike, trying to hit him off with a baseball bat. Ahmed said that he had no choice but to literally fight his way out, saying that he couldn't believe he had managed to escape. This appears to be a reality for many Riders, forced to quite literally fight for their livelihoods, whilst also having to ignore orders from certain neighbourhoods. And those who are especially desperate have no choice but to take those orders, risking great danger. -

- -

- To me, the conditions faced by the people I spoke to over the course of this project, are a sinister manifestation of our modern, neocolonial, capitalist society. A society characterised by algorithmic exploitation, the rise of 'techno-oligarchs', and the exploitative and colonial systems of old taking on new forms. As a result, a new group of workers has arisen. A group that faces constant danger and disregard with very little reward. What seems plainly true to me now is that the Riders are both hyper-exploited and under-appreciated in ways in which most people will never learn about. Even those who do learn will most likely never truly understand what the reality is like for these people. The purpose of this project is to help bring as many people as possible, including myself, closer to understanding that reality. -

- -
- -
- -

The Concrete Reality

- -

- The situation of the Riders really is modern. Over the last twenty-five years, immigration and emigration levels around the world have reached historic highs and as a result, the number of migrant workers in the Global North has increased massively[3]. Migrant workers are especially vulnerable to predatory business practices, the kinds of practices that are used prolifically in another major development over the last couple of decades. The emergence in question is the 'platform economy', an expression that has a variety of definitions. The term 'platform' has been applied to countless digital giants from Facebook to Spotify to Uber, the main connection being their links to the 'gig economy'. This is a domain in which workers aren't necessarily considered workers; earning money from 'gigs' (think anything from voice acting to food deliveries) rather than from wages, a situation that lends itself nicely to the cost-cutting inclinations of big corporations. -

- - - -

- The term 'platform economy' has been refined by some scholars in regard to food delivery platforms such as Uber Eats, Deliveroo and Just Eat, which all operate in a similar way. The systems that these companies use are standards-based, meaning they're constantly collecting and analysing performance data; data that then gets fed into algorithms. These algorithms are used to remotely coordinate workers, centralising and consolidating the companies' control through that coordination, but whilst also positioning themselves as "simply empty vessels for hosting interactions that would otherwise be taking place"[4]. The reality is the opposite. These platforms do not necessarily meet existing needs, rather they are active producers of exchanges who also set the terms of their transactions and draw out extra value from their ever-growing piles of performance data. -

- -

- This level of centralised control is what we must thank for these corporations' massive successes, but it is the promise of freedom that seems to be the platform economy's biggest draw for workers. This must be a big draw, because according to some scholars' estimates, 10% of Europe's workers participate in the platform economy, a large portion of those people working in food delivery. Advocates of this new system argue that platform work offers new, equal and wider opportunities thanks to its casual hiring process i.e. nearly anyone can sign up for platform work. The usual tedious hiring process is made non-existent. On top of this, platform work provides the freedom to choose the location and duration of your labour, no bosses to tell you when and where to work. But is this freedom real or is it merely the illusion of freedom? -

- -

"Be Your Own Boss"

- -

- The idea of being "your own boss" must be appealing, but in tired catchphrase of the platform economy there is a great sense of irony. Because the Riders and other platform workers are, from a legal perspective, contractors rather than workers, they lack a few advantages that typical employees have. For instance, platform workers are not legally entitled to certain benefits such as the minimum wage, sick pay, overtime pay, paid holidays or on-the-job accident insurance. They are also much weaker when it comes to their collective bargaining power due to their independence from each other, this forces them to work in harsher conditions for reduced wages. The reduction in question is about 40% in real terms since 2018[1]. Whilst Riders are able to make certain choices about their work, the reality is a life of income instability, a continuous employment relationship without continuous work. Without a guarantee of continuous work, workers must make themselves continuously available in order to make ends meet. These conditions produce a heightened level of competition between workers which of course only really benefits the platform companies. This competition doesn't just speed up delivery times, it makes the companies' zero-hour contracts seem much more attractive. In reality, these contracts are nothing more than a tool for companies to evade their employer obligations[5]. -

- -
-
- Anonymous
- "This job has no special future. It is very difficult to win ahead" -
-
- -

- Overall, the alleged freedom of platform work appears to be nothing more than a mirage; a gross distortion of the notion of freedom used to draw people in. Manchester's Riders specifically are mostly migrant workers, making them more vulnerable to exploitation by platform companies. These companies are aware of this vulnerability and take advantage of it. It is their understanding that the precarious circumstances of migrants living in the UK make them the perfect candidates for an over-exploited workforce that wouldn't dream of fighting back against their employers. At the same time, the flexibility and the easy sign-up process of platform work makes becoming a Rider the obvious choice for people arriving in the country needing money. It is this drive for survival, and the precarity of citizenship, that gives the platform companies' their ideal workers. Pushed out of their home countries either by the scourge of never-ending wars or by financial uncertainty (both postcolonial effects; the disruptive legacies of Empire) migrants find themselves in the UK with a severe lack of choice, work whatever job you can get, or go home. Their status as migrant workers makes them especially vulnerable to the predatory business practices mentioned above. Without safe channels for whistleblowing or proper opportunities to air grievances, and with the looming fear of unemployment or deportation, migrant workers working food delivery jobs are forced to work several times harder than 'traditional employees', in conditions much more dangerous. Some equivalate these conditions to Modern Day Slavery (Bryson, 2024). Whilst this is a subjective term, and whilst platform companies do tend to operate within technically legal boundaries, it is no doubt that the enormous successes of these companies are hugely thanks to the miserable conditions that their Riders face. - -

Solidarity

-

- Given how bad these conditions already are, it is no wonder that many Riders have made attempts to organise and strike. On February 2nd 2024, the grassroots group Delivery Job UK held its first strike. Ahead of the strike, Delivery Job UK emailed all the companies that were to be targeted. In response, Deliveroo emailed all their Riders a letter from GMB stating that they were the "trade union for delivery drivers" and that they will "fight for the issues that matter to you." One of the organisers of the strike said that the responses from Riders went something like "Who the fuck are these guys? We've never heard of them or been approached by them." On the day of the February 2nd strike, Deliveroo emailed restaurants encouraging them to call the police if "staff or customers feel under threat" or if they "observe loitering or anti-social behaviour", a move that left Riders feeling uneasy and upset. A spokesperson for Deliveroo said that the company "aims to provide riders with the flexible work that riders tell us they value, attractive earning opportunities and protections" and then went on to mention the voluntary partnership with GMB. Similarly, UberEats said that it offers "a flexible way for couriers to earn by using the app when and where they choose" then also claimed that "the vast majority of couriers are satisfied with their experience." Just Eat attested that it takes the "concerns of all couriers on the Just Eat network extremely seriously" and that it "welcomes their feedback" also adding that they offer "regular incentives to help them maximise their earnings." Given these lacklustre responses, Delivery Job UK organised another strike to take place later that month on Valentines Day. News spread through WhatsApp groups and by word-of-mouth among Riders waiting outside restaurants, and when Valentine's Day arrived, thousands came out to defy their companies. Huge convoys of striking Riders rolled through the cold, icy streets on mopeds and electric bikes, chanting and beeping their horns. A bold and moving act of solidarity against a faceless enemy. -

- -
- -
- -

- With such a large strike on such a crucial day for business, along with a platform boycott by the cause's supporters, it was expected that the outcome would be more positive than that of the strike's predecessor. However, the responses to the Valetine's Day strike were unfortunately more or less the same as the responses garnered by the first one. Just as lacklustre and impersonal. Again, the companies hammered home their claims that most of their workers are happy, and again they reasserted their pride in offering flexible work. Neither strike resulted in a pay rise.[2] -

- -

An Invisible Workforce

-

- Political and economic destabilisation, climate change and war have created tens of millions of migrants in the past few years alone. Some of those people come to our country only to find themselves in a situation that is hardly, if at all, an improvement on what they left behind. They find themselves taken advantage of by the same group of people that caused the wars, the climate disasters and the widespread instability to begin with. And on top of that, they face abuse and ignorance from the rest of us. To many people, the Riders don't exist until they're stood on the doorstep. Scholars have written about how the platform economy's demand for homogenous, mind-numbingly repetitive tasks has led to the creation of an interchangeable and invisible workforce, benefitting companies but only isolating and damaging Riders further[5]. The aim of this project is to counteract this effect; to bring Riders into the forefront as individuals, representing them positively and on their own terms. The following ten portraits are of people who were kind enough to help me with this project. I learnt a lot from them, and some were happy for me to record some of what they told me in this book. Hopefully these images convey something about the Riders that you might not have seen elsewhere. -

- - - -

References

- -

- 1. ^ Dempsey, Jemma, and Faarea Masud. (2024). Deliveroo and Uber Eats Riders Strike on Valentine’s Day. BBC News, Retrived 12 Feb. 2024 www.bbc.co.uk/news/business-68274158 -

- -

- 2. ^ Smythe, Polly. (2024). No Love for Deliveroo”: Food Couriers in Massive Valentine’s Day Strike. Novara Media, Accessed 15 Feb. 2024 novaramedia.com/2024/02/15/no-love-for-deliveroo-food-couriers-in-a-massive-valentines-day-strike/ -

- -

- 3. ^ Sturge, G. (2024). Migration Statistics. commonslibrary.parliament.uk. https://commonslibrary.parliament.uk/research-briefings/sn06077/ -

- -

- 4. ^ Timko, P., & van Melik, R. (2021). Being a Deliveroo Rider: Practices of Platform Labor in Nijmegen and Berlin. Journal of Contemporary Ethnography, 50(4), 497-523. https://doi.org/10.1177/0891241621994670 -

- -

- 5. ^ a b Umer, Hamza. (2021). Illusory Freedom of Physical Platform Workers: Insights from Uber Eats in Japan. The Economic and Labour Relations Review, vol. 32(3). https://doi.org/10.1177/1035304621992466 -

- -

Acknowledgements

-

- Mum, for being my biggest supporter
- Arthur Whelan, I couldn't have done it without you, my faithful backdrop boy
- Fin Miller, Lewis Ream, Sully Qureshi, Ben James, and Patrick Naylor, my amazing light-holders and backdrop-boy-stand-ins

- Carolyn Mendelsohn for her mentorship and ideas.
- Charlie Clift for inspiring these images.
- Caroline Edge, Chrystal Cherniwchan, & Caitlin Griffiths, for believing in the project
- John Boothe, for imparting some of your endless editing wisdom onto me
- Craig Tattersall, for helping me build backdrop 1.0
- Dan Pickles, for helping me build backdrop 2.0
- Alex & Liam, for accepting my printing challenge
- The Equipment Store Team, for putting up with me -

- -
- - diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..7f7afbf --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +jinja2 diff --git a/resize.sh b/resize.sh index d72938f..3db2de2 100755 --- a/resize.sh +++ b/resize.sh @@ -1,8 +1,4 @@ -mkdir media/photos_3840 -mkdir media/photos_1920 -mkdir media/photos_960 -mkdir media/photos_480 - +mkdir media/progressive for f in media/photos/*; do @@ -12,14 +8,8 @@ for f in media/photos/*; filename="${filename%.*}" if [[ "$extension" == "jpg" ]]; then - convert -resize 3840 $f -interlace plane "media/photos_3840/${filename}.jpg" - convert -resize 1920 $f -interlace plane "media/photos_1920/${filename}.jpg" - convert -resize 960 $f -interlace plane "media/photos_960/${filename}.jpg" - convert -resize 480 $f -interlace plane "media/photos_480/${filename}.jpg" + convert -resize 3840 $f -interlace plane "media/progressive/${filename}.jpg" else - convert -resize 3840 $f "media/photos_3840/${filename}.png" - convert -resize 1920 $f "media/photos_1920/${filename}.png" - convert -resize 960 $f "media/photos_960/${filename}.png" - convert -resize 480 $f "media/photos_480/${filename}.png" + convert -resize 3840 $f "media/progressive/${filename}.png" fi done diff --git a/script.js b/script.js deleted file mode 100644 index 49a97b1..0000000 --- a/script.js +++ /dev/null @@ -1,247 +0,0 @@ -function setup () { - // setup the details elements - const elements = document.querySelectorAll("nav details summary"); - for (element of elements) { - let parent = element.parentNode; - - parent.dataset.open = parent.open; - parent.open = true; - - let closedHeight = element.offsetHeight; - let openHeight = parent.offsetHeight; - - if (parent.dataset.open === "true") { - parent.style.height = `${openHeight}px`; - } else { - parent.style.height = `${closedHeight}px`; - } - - parent.style.overflow = "hidden"; - - element.addEventListener('click', function(e) { - e.preventDefault(); - let parent = e.target.parentNode; - - if (parent.dataset.open == "true") { - parent.style.height = `${closedHeight}px`; - parent.dataset.open = false; - } - else { - parent.style.height = `${openHeight}px`; - parent.dataset.open = true; - } - }); - } - - const main = document.getElementsByTagName("main")[0]; - - // sets up the dimmer close button - const close = document.createElement("span"); - close.style.pointerEvents = "none"; - close.innerHTML = "Close"; - - const dim = document.createElement("div"); - dim.id = "dim"; - dim.style.pointerEvents = "none"; - dim.style.opacity = 0; - dim.appendChild(close); - main.parentNode.appendChild(dim); - - const copyBox = document.createElement("div"); - copyBox.id = "enlargeCopyBox"; - main.parentNode.appendChild(copyBox); - - close.addEventListener("click", (e) => { - dim.style.backgroundColor = "rgba(51,51,51,0)"; - dim.style.opacity = 0; - dim.style.backdropFilter = "blur(0px)"; - dim.style.pointerEvents = "none"; - close.style.pointerEvents = "none"; - try { - let copy = document.getElementById("enlargeCopy"); - copy.style.opacity = 0; - setTimeout(function () { copy.remove() }, 500); - } catch {} - }); - - dim.addEventListener("click", (e) => { - dim.style.backgroundColor = "rgba(51,51,51,0)"; - dim.style.opacity = 0; - dim.style.backdropFilter = "blur(0px)"; - dim.style.pointerEvents = "none"; - close.style.pointerEvents = "none"; - try { - let copyBox = document.getElementById("enlargeCopyBox"); - copyBox.style.opacity = 0; - setTimeout(function () { - copyBox.style = ""; - copyBox.innerHTML = ""; - }, 200); - } catch {} - }); - - // sets up the image enlarge - const images = document.querySelectorAll("img:not(.menuBack > img)"); - for (image of images) { - image.addEventListener("click", (e) => { - // dim the lights - dim.style.backgroundColor = "rgba(51,51,51,0.7)"; - dim.style.opacity = 1; - dim.style.backdropFilter = "blur(2px)"; - dim.style.pointerEvents = "auto"; - close.style.pointerEvents = "auto"; - - // get origional image position - let rect = e.target.getBoundingClientRect(); - - // check if the image is in a slide show - let filename = e.target.src.split("/").at(-1); - let element = document.querySelector(`.slideshow > img[src$="${filename}"]`); - - let copy = e.target.cloneNode(); - copy.id = "enlargeCopy"; - copyBox.append(copy); - - if (null != null) { // element - const zoomPrev = document.createElement("span"); - zoomPrev.classList.add("prev"); - const zoomPrevImage = document.createElement("img"); - zoomPrevImage.src = "/media/arrow.svg"; - zoomPrev.src = "/media/arrow.svg"; - zoomPrev.addEventListener("click", (e) => { - console.log("previous image"); - }); - - const zoomNext = document.createElement("span"); - zoomNext.classList.add("next"); - const zoomNextImage = document.createElement("img"); - zoomNextImage.src = "/media/arrow.svg"; - zoomNext.addEventListener("click", (e) => { - console.log("next image") - }); - - copyBox.prepend(zoomPrev); - copyBox.append(zoomNext); - } - - copyBox.style.position = "absolute"; - copyBox.style.top = `${rect.top}px`; - copyBox.style.left = `${rect.left}px`; - copyBox.style.width = `${rect.width}px`; - copyBox.style.height = `${rect.height}px`; - - copyBox.style.opacity = 1; - copyBox.style.transition = ` - opacity 0.3s, - top 0.3s, - left 0.3s, - width 0.3s, - height 0.3s - `; - - setTimeout(function () { - copyBox.style.top = "5vh"; - copyBox.style.left = "5vw"; - copyBox.style.width = "90vw"; - copyBox.style.height = "90vh"; - }, 50); - }); - } - - /* - // sets up the closed captions - // adapted from: https://james.cridland.net/blog/2025/html-audio-player-with-captions/ - // Safari needs to be specifically told to show this track, for some reason. - let i = 0; - for (e of document.getElementsByClassName("captionedAudio")) { - e.textTracks[0].mode="showing"; - e.setAttribute('style', `anchor-name: --audio${i};`); - - const caption = document.createElement("span"); - caption.classList.add("caption"); - caption.style; - e.parentNode.insertBefore(caption, e.nextSibling); - - e.textTracks[0].addEventListener('cuechange', (function () { - var el = e; - return function() { - console.log(el); - el.nextElementSibling.innerText = this.activeCues[0].text; - } - })()); - i += 1; - } - - */ - - // setup the mobile menu - // will still be functional without js - - const menuBox = document.getElementsByClassName("menuBox")[0]; - const menuBar = document.createElement("div"); - menuBar.classList.add("menuBar"); - menuBar.innerHTML = "Menu"; - - menuBox.parentNode.insertBefore(menuBar, menuBox); - - const menuBack = document.getElementsByClassName("menuBack")[0]; - menuBack.addEventListener("click", (e) => { - const menuBox = document.getElementsByClassName("menuBox")[0]; - menuBox.style.opacity = 0; - - setTimeout(function () { - menuBox.style.display = "none"; - }, 500); - }); - - menuBar.addEventListener("click", (e) => { - menuBox.style.display = "inline-flex"; - menuBox.style.opacity = 1; - }); - - // add in the change notes chester - - const template = document.createElement('template'); - template.innerHTML = `
- Change notes Chester -

Todo:

- -
`; - - main.parentNode.insertBefore(template.content.childNodes[0], main); -} - -setup(); diff --git a/slideshow.js b/slideshow.js deleted file mode 100644 index 05a3c04..0000000 --- a/slideshow.js +++ /dev/null @@ -1,92 +0,0 @@ -let slideCount = 0; -let slideCurrent = 0 - -function setupSlideshow () { - // setup the slideshow - slideshows = document.getElementsByClassName("slideshow"); - let s = 0; - for (slideshow of slideshows) { - slideshow.dataset.slideCount = 1; - slideshow.dataset.slideCurrent = 0; - - let i = 0; - - for (child of slideshow.children) { - child.style.display = "none"; - child.id = `show${s}slide${i}`; - i++; - } - if (slideshow.classList.contains("aggregating")) { - let selector = "img"; - if (slideshow.classList.contains("includeOnly")) { - selector = "img.include"; - } - - for (image of document.querySelectorAll(selector)) { - const slide = image.cloneNode(false); - slide.style.display = "none"; - slide.id = `show${s}slide${i}`; - - slideshow.appendChild(slide); - - i++; - } - } - - slideshow.dataset.slideCount = i; - slideshow.children[0].style.display = "inline-block"; - - // add slideshow buttons - var si = s; - - const prev = document.createElement("span"); - prev.classList.add("prev"); - const prevImage = document.createElement("img"); - prevImage.src = "/media/arrow.svg"; - prev.src = "/media/arrow.svg"; - prev.addEventListener("click", (e) => { - e.preventDefault(); - - let slideCount = e.target.parentNode.dataset.slideCount; - - document.getElementById(`show${si}slide${e.target.parentNode.dataset.slideCurrent}`) - .style.display = "none"; - e.target.parentNode.dataset.slideCurrent --; - if (e.target.parentNode.dataset.slideCurrent < 0) { - e.target.parentNode.dataset.slideCurrent = slideCount - 1; - } - document.getElementById(`show${si}slide${e.target.parentNode.dataset.slideCurrent}`) - .style.display = "inline-block"; - }); - - const next = document.createElement("span"); - next.classList.add("next"); - const nextImage = document.createElement("img"); - nextImage.src = "/media/arrow.svg"; - next.addEventListener("click", (e) => { - e.preventDefault(); - - let slideCount = e.target.parentNode.dataset.slideCount; - - document.getElementById(`show${si}slide${e.target.parentNode.dataset.slideCurrent}`) - .style.display = "none"; - - e.target.parentNode.dataset.slideCurrent ++; - if (Number(e.target.parentNode.dataset.slideCurrent) >= Number(slideCount)) { - e.target.parentNode.dataset.slideCurrent = 0; - } - document.getElementById(`show${si}slide${e.target.parentNode.dataset.slideCurrent}`) - .style.display = "inline-block"; - }); - - slideshow.prepend(prev); - slideshow.append(next); - - next.append(nextImage); - prev.append(prevImage); - - s++; - } -} - -setupSlideshow(); diff --git a/style.css b/style.css deleted file mode 100644 index 4cc4e8f..0000000 --- a/style.css +++ /dev/null @@ -1,490 +0,0 @@ -:root { - --darkgray: #333333; - --mediumgray: #555555; - --lightgray: #EEEEEE; - - font-family: "Proxima Nova", sans-serif; - font-size: 0.9rem; -} - -body { margin: 0; padding: 0; } - -h3 { font-size: 1.5em } -h1, h2, h3, h4, h5, h6 { font-weight: 600; } -b { - font-weight: 600; - color: black; -} -p { text-indent: 1.5em; } -h1 + p, h2 + p, h3 + p, h4 + p, h5 + p, h6 + p, -p:first-of-type { text-indent: 0; } - -/* - * Within the nav menu: - * Links will be colored dark gray and go a slightly lighter gray when hovered - * to signal that they are links - * dropdowns will be followed by an ellipsis and will be black - */ - -/* clean up lists and the details tag */ -nav ul { - list-style-type: none; - padding-inline-start: 20px; -} -nav > div { margin-bottom: 50px; } -nav > ul { padding-inline-start: 0px; } -nav summary { list-style-type: none; } -nav summary:hover { color: var(--darkgray); } - -.menuBox > ul > li > a, -.menuBox > ul > li > details > summary { font-weight: 600; } -.menuBox { font-size: 1.1em; } - -nav li { margin-top: 10px; } -nav details li:last-child { margin-bottom: 20px; } -nav details { transition: height 0.35s; } - -/* link styling */ -nav a:link, nav a:visited, nav a:focus { - color: var(--darkgray); - text-decoration: none; -} - -nav a:hover { - color: var(--mediumgray); -} - -/* COMMON link styling */ -a:link, a:visited, a:focus { - color: var(--darkgray); - text-decoration: none; -} - -a:hover { - color: var(--mediumgray); -} - -/* hgroup styling */ -nav h1 { - font-size: 1.3em; -} - -/* - * Will be using the nav and the main tags side by side - * - * crj | | - * ----| slideshow | - * nav |--------------| - * | | - * | | - */ - -nav { - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 80vw; - - padding: 50px 25px 50px 25px; - overflow: hidden; -} - -main { - position: absolute; - top: 0; - bottom: 0; - left: 20vw; - right: 0; - - padding: 50px 25vw 50px 25px; - overflow: scroll; - overflow-x: hidden; -} - -nav > *:first-child, main > *:first-child { margin-top: 0; } - -/* heading styling in the body */ - -main h2 { - text-align: center; - font-size: 3em; - /*font-family: "Lust Text";*/ -} - -/* description list styling */ -dt { font-weight: 600; } -dd { margin-bottom: 1em; } - -aside { - padding: 0 50px 0 50px; - font-style: italic; -} - -iframe { - width: 100%; - aspect-ratio: 1.41; - border: 1px solid var(--mediumgray); -} - -blockquote { - color: var(--darkgray); - font-style: italic; -} - -.smallTitle { - text-align: center; - font-weight: bold; -} - -/* slideshow styling */ -.slideshow { - margin: 0; - margin-top: 50px; - margin-bottom: calc(30px + 25px); - width: calc(55vw - 25px); - height: calc((55vw - 25px) / 1.5); - display: flex; - cursor: zoom-in; -} -.slideshow.full { - --full-overhang: 18vw; - margin-right: calc(-1 * var(--full-overhang)); - width: calc(55vw - 25px + var(--full-overhang)); - height: calc(100vh - 100px); -} -.slideshow > *:not(span) { - display: inline-block; - width: 100%; - height: 100%; - object-fit: contain; -} -.slideshow > span { - position: relative; - display: inline-flex; - align-items: center; - vertical-align: top; - width: 27%; - height: 100%; - line-height: 100%; - z-index: 0; - color: var(--darkgray); - flex-wrap: nowrap; - transition: opacity 0.5s; -} -.slideshow > span:hover { opacity: 0.65; } -.slideshow > span > img { - height: 1em; - pointer-events: none; -} -.prev { - justify-content: flex-end; - margin-left: -2%; - margin-right: -25%; - cursor: w-resize; - -webkit-transform: scaleX(-1); - transform: scaleX(-1); -} -.next { - justify-content: flex-end; - margin-left: -25%; - margin-right: -2%; - cursor: e-resize; -} - -.slideshow:first-child { margin-top: 0; } - -.centering { - display: flex; - justify-content: center; - align-items: center; - height: 100%; -} -.centering * { display: inline-block; } - -/* block-quote by image */ -.blockquoteImage { - width: 113%; - margin: 40px 0 40px 0; -} -.blockquoteImage img { - display: inline-block; - width: 52.5%; -} -.blockquoteImage blockquote { - display: inline-block; - vertical-align: top; - width: 32.5%; - margin: 2% 5% 2% 5%; - text-align: right; -} - -.blockquoteImage.reversed { - margin-left: -3% -} -.blockquoteImage.reversed blockquote { - text-align: left; -} - -/* audio player next to text */ -.audioNote { - width: 113%; - margin: 40px 0 40px -3%; -} -.audioNote audio { - display: inline-block; - width: 54%; -} -.audioNote aside { - display: inline-block; - vertical-align: top; - width: 40%; - margin: 0 3% 0 3%; - padding: 0; - text-align: right; -} -.audioNote.reversed aside { text-align: left; } -.audioNote audio { width: 60%; } -.audioNote aside { width: 34%; } - -/* styling the dimmer */ -#dim { - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - background-color: rgba(51,51,51,0); - backdrop-filter: blur(0px); - transition: background-color 0.5s, backdrop-filter 0.5s; - cursor: zoom-out; -} -#dim span { - position: absolute; - top: 20px; - left: 20px; - color: white; - font-size: 1.2em; - cursor: pointer; - opacity: inherit; -} -#dim span:hover { color: lightgray; } -#enlargeCopy { - pointer-events: none; -} - -/* caption styling */ -.caption { - display: block; - color: white; - background-color: black; - padding: 2px; -} -.caption:last-child { -} - -/* reference styling */ -*:target { - background-color: lightgray; -} -.ref { - margin: 20px 5% 20px 5%; -} - -/* attribution figure */ -.attributionFigure { margin-bottom: -1.4em; } -.attributionFigure figcaption { - display: inline-block; - height: 1em; - width: auto; - margin: 0; - margin-bottom: -1.4em; - padding: 0.2em; - transform: translate(20px, calc(-20px - 1em)); - - color: rgba(255,255,255,0.5); - background-color: rgba(0,0,0,0.5); - font-style: italic; -} - -.floatLeft { - float: left; - width: 43%; - padding: 0 15px 10px 0; -} - -.floatRight { - float: right; - width: 43%; - padding: 0 0 10px 15px; -} - -.menuBack { display: none; } -.menuBar { display: none; } - -#enlargeCopyBox { pointer-events: none; } -#enlargeCopy { - width: 100%; - height: 100%; - object-fit: contain; -} -#enlargeCopyBox > span { - position: relative; - display: inline-flex; - align-items: center; - vertical-align: top; - width: 27%; - height: 100%; - line-height: 100%; - z-index: 0; - color: var(--darkgray); - flex-wrap: nowrap; - transition: opacity 0.5s; -} -#enlargeCopyBox .prev { - justify-content: flex-end; - margin-left: -2%; - margin-right: -25%; - cursor: w-resize; - -webkit-transform: scaleX(-1); - transform: scaleX(-1); -} -#enlargeCopyBox .next { - justify-content: flex-end; - margin-left: -25%; - margin-right: -2%; - cursor: e-resize; -} - - -@media (orientation: portrait) { - :root { - font-size: 1.6em; - } - - nav { - position: static; - padding: 50px 25px 50px 25px; - } - main { - position: static; - padding: 50px 25px 50px 25px; - } - - .audioNote { - width: 100%; - margin: 40px 0 40px 0; - } - .audioNote audio { - width: 100%; - } - .audioNote aside { - width: calc(100% - 40px); - margin: 20px; - } - .audioNote.reversed aside { text-align: left; } - - .blockquoteImage { - width: 100%; - margin: 40px 0 40px 0; - } - .blockquoteImage img { - width: 100%; - } - .blockquoteImage blockquote { - display: inline-block; - width: 100%; - margin: 40px 0 40px 0; - text-align: right; - } - - .blockquoteImage.reversed { - margin-left: 0 - } - .blockquoteImage.reversed blockquote { - text-align: left; - } - - .slideshow, .slideshow.full { - margin: 0; - margin-top: 50px; - margin-bottom: calc(30px + 25px); - width: calc(100vw - 50px); - height: calc((100vw - 50px) / 1.5); - } - .slideshow > *:not(span) { - display: inline-block; - width: 92%; - height: 100%; - object-fit: contain; - } - .slideshow > span { - position: relative; - display: inline-flex; - align-items: center; - vertical-align: top; - width: 27%; - height: 100%; - line-height: 100%; - z-index: 0; - cursor: pointer; - color: var(--darkgray) - } - .prev { - margin-left: -2%; - margin-right: -22%; - } - .next { - margin-left: -22%; - margin-right: -2%; - } - - /* MENU RELATED RULES */ - .menuBar { - display: block; - color: white; - background-color: var(--darkgray); - margin: 0 -25px 0 -25px; - padding: 25px 50px 25px 50px; - cursor: pointer; - } - .menuBox { - position: fixed; - top: 0; left: 0; bottom: 0; right: 0; - display: none; - align-items: center; - justify-content: center; - font-size: 2em; - line-height: 2em; - opacity: 0; - z-index: 100; - - color: white; - background-color: var(--darkgray); - transition: opacity 0.5s; - } - .menuBox summary:hover { color: var(--lightgray); } - .menuBox a:link, .menuBox a:visited, .menuBox a:focus { color: var(--lightgray); } - .menuBox a:hover { color: white; } - .menuBack { display: block; } - .menuBack img { - cursor: pointer; - height: 0.75em; - -webkit-transform: scaleX(-1); - transform: scaleX(-1); - } - .slideshow { height: calc(55vw - 25px); } - .slideshow.full { height: calc((55vw - 25px + var(--full-overhang)) * 1.5); } - - .floatLeft, .floatRight { - float: none; - width: 100% !important; - padding: 0; - } -} - -@media (orientation: landscape) { - .scroll { overflow: scroll; } - img:not(.menuBack > img) { cursor: zoom-in; } -} - diff --git a/templates/enhance.html b/templates/enhance.html new file mode 100644 index 0000000..e8f4e24 --- /dev/null +++ b/templates/enhance.html @@ -0,0 +1,4 @@ +
+
+
+
diff --git a/templates/footer.html b/templates/footer.html new file mode 100644 index 0000000..e69de29 diff --git a/templates/head.html b/templates/head.html new file mode 100644 index 0000000..7ba4b06 --- /dev/null +++ b/templates/head.html @@ -0,0 +1,17 @@ + + Chester Robert Jones + + + + + + + + + + + + + + + diff --git a/templates/menu.html b/templates/menu.html new file mode 100644 index 0000000..eb9aa46 --- /dev/null +++ b/templates/menu.html @@ -0,0 +1,40 @@ +

Chester Robert Jones

+
Menu
+ diff --git a/templates/pages/about.html b/templates/pages/about.html new file mode 100644 index 0000000..f2551c7 --- /dev/null +++ b/templates/pages/about.html @@ -0,0 +1,27 @@ + + + {% include 'head.html' %} + + +
+ + + +

+ My name is Chester Jones, and I am a photographer specialising in documentary photography. Over my career, I've gained a broad range of experience from moving image, to mixed media works, to more traditional documentary photography. The latter is best exemplified in my ongoing project taking portraits and documenting the lives of Manchester's hyper-exploited delivery drivers. +

+

+ I dabble in various types of photography and video-making, but my real passion lies in the social and political side of things. For the most part, my creative practice has always spoken to social issues, something I plan to keep up throughout my career. My hopes being that I can continue to produce documentary projects working with marginalised communities. Finding ways to be creative whilst working on these topical projects, projects that require sincerity and respect, is a big challenge but something I hope to keep building on. This drive to create unique and engaging work that creates positive representations and counter-narratives of social issues is at the core of my career. +

+ + +

+

+ +
+ {% include 'footer.html' %} + + diff --git a/templates/pages/commercial/groke.html b/templates/pages/commercial/groke.html new file mode 100644 index 0000000..dc2c0c0 --- /dev/null +++ b/templates/pages/commercial/groke.html @@ -0,0 +1,42 @@ + + + {% include 'head.html' %} + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ {% include 'footer.html' %} + + diff --git a/templates/pages/commercial/le-blanc-fine-art.html b/templates/pages/commercial/le-blanc-fine-art.html new file mode 100644 index 0000000..e1455dd --- /dev/null +++ b/templates/pages/commercial/le-blanc-fine-art.html @@ -0,0 +1,25 @@ + + + {% include 'head.html' %} + + +
+
+ + + + + + + + + + + +
+
+ {% include 'footer.html' %} + + diff --git a/templates/pages/commercial/live-music.html b/templates/pages/commercial/live-music.html new file mode 100644 index 0000000..64da3d0 --- /dev/null +++ b/templates/pages/commercial/live-music.html @@ -0,0 +1,47 @@ + + + {% include 'head.html' %} + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ {% include 'footer.html' %} + + diff --git a/templates/pages/commercial/on-set.html b/templates/pages/commercial/on-set.html new file mode 100644 index 0000000..ee6121a --- /dev/null +++ b/templates/pages/commercial/on-set.html @@ -0,0 +1,28 @@ + + + {% include 'head.html' %} + + +
+
+ + + + + + + + + + + + + + +
+
+ {% include 'footer.html' %} + + diff --git a/templates/pages/contacts.html b/templates/pages/contacts.html new file mode 100644 index 0000000..2a98cc0 --- /dev/null +++ b/templates/pages/contacts.html @@ -0,0 +1,17 @@ + + + {% include 'head.html' %} + + +
+
+
Email
chejones.photos@gmail.com
+
Instagram
@chesterrjones
+
LinkedIn
Chester Jones
+
+
+ {% include 'footer.html' %} + + diff --git a/templates/pages/cv.html b/templates/pages/cv.html new file mode 100644 index 0000000..07105ed --- /dev/null +++ b/templates/pages/cv.html @@ -0,0 +1,59 @@ + + + {% include 'head.html' %} + + +
+ +

+ Through my BA degree in photography, I have gained experience and confidence in a broad range of creative outputs from moving image, to mixed media works, to more traditional documentary photography. My passion lies in social documentary work, and through this I have gained skills in working in uncontrolled, fast paced environments and in making those I am working with/documenting feel comfortable. Outside of this, I have ample experience organising, curating and installing exhibitions of both my own work and that of others. I am primarily seeking opportunities in photography, art gallery curation and installation, and in socially engaged projects. + + +

Experience

+ +
+
Impressions Gallery Bradford 2022
+
Contributor and co-curator of "Through Our Lens" group photography exhibition.
+ +
Saan1 Gallery Manchester 2023
+
Contributor and lead organiser of "Mirage" group photography exhibition.
+ +
Le Blanc Fine Art Saxby 2024
+
Promotional photographer for sculpture workshop.
+ +
Collaboration with GROKE 2024
+
Promotional and behind-the-scenes photographer.
+ +
'Earl's Boy' film 2024
+
Promotional and behind-the-scenes photographer.
+ +
'Nosebleed' film 2025
+
Co-writer alongside Arthur Whelan.
+ +
University of Salford Degree Show Committee 2025
+
Member of the degree show planning committee, helping to organise, plan and fundraise.
+
+ +

Education

+ +
Further Education
+
University of Salford, Photography BA Hons
+ +
Further Education
+
Denys Salt Sixth Form
+ +
Religious Studies, Philosophy and Ethics
+
A
+ +
Media Studies
+
A
+ +
English Language
+
A
+ +
+ {% include 'footer.html' %} + + diff --git a/templates/pages/index.html b/templates/pages/index.html new file mode 100644 index 0000000..f975643 --- /dev/null +++ b/templates/pages/index.html @@ -0,0 +1,30 @@ + + + {% include 'head.html' %} + + +
+
+ + + + + + + + + + + + + + + +
+ +
+ {% include 'footer.html' %} + + diff --git a/templates/pages/personal/cotton-town.html b/templates/pages/personal/cotton-town.html new file mode 100644 index 0000000..0b26852 --- /dev/null +++ b/templates/pages/personal/cotton-town.html @@ -0,0 +1,29 @@ + + + {% include 'head.html' %} + + +
+
+ + + + + + + + +
+
+ {% include 'footer.html' %} + + diff --git a/templates/pages/personal/memorabilia.html b/templates/pages/personal/memorabilia.html new file mode 100644 index 0000000..8333ba0 --- /dev/null +++ b/templates/pages/personal/memorabilia.html @@ -0,0 +1,27 @@ + + + {% include 'head.html' %} + + +
+
+ + + + + + +
+
+ {% include 'footer.html' %} + + diff --git a/templates/pages/personal/photojournalism.html b/templates/pages/personal/photojournalism.html new file mode 100644 index 0000000..c454497 --- /dev/null +++ b/templates/pages/personal/photojournalism.html @@ -0,0 +1,37 @@ + + + {% include 'head.html' %} + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+ {% include 'footer.html' %} + + diff --git a/templates/pages/personal/riders.html b/templates/pages/personal/riders.html new file mode 100644 index 0000000..cd63fc0 --- /dev/null +++ b/templates/pages/personal/riders.html @@ -0,0 +1,271 @@ + + + {% include 'head.html' %} + + +
+ +

Riders

+

The workforce we fail to see.

+ +

In Their Own Words

+ +

+ Making your way through Manchester, or any major city in Britain, it's hard to miss the Riders zipping around on chunky electric bikes with bright, colourful cubes on their backs. No matter the time, no matter the weather, they seem to be on the job. They have a constant presence in the city, yet they somehow slip under the radar, unnoticed by us unless they're in the way of our car or delivering our food. This is what interests me; the place they occupy in our city and in society at large. Out of curiosity I delved into some research and in my own amateur attempt at some political analysis I began to see these people as a newly manufactured and characteristically modern rung below our traditional working class. Workers doubly exploited by tech-corporations, hyper-exploited if you will, as both migrant workers and gig-economy workers; especially vulnerable to predatory business practices, and suffering the detriments of zero-hour employment contracts at the same time. As I began to learn more concretely about concepts such as the 'gig-economy', the 'platform economy', and about food delivery apps' behaviours (which are discussed in the second section of this book), I became very interested in speaking to people myself to learn what life as a Rider is really like. +

+ +
+
+ Cristian
+ "My hope for the future is that finally people, especially the working class people can have the opportunity to understand his role in the history so, can eradicate the idea of borders and banal nationalistic feeling that divides us all around the world. In that way we can build a society free of any kind of discrimination and be able to have societies where the basic needs would not be a obstacle to have free time and develop other capabilities such as art, music, philosophy, etc. and anyone can explore their own happiness without any economical, political or cultural restrain. Then we could have a world free of wars and classes. But my hope in short term is that Palestine and its people could have the opportunity to live in peace and have sovereignty of their own land." +
+
+ +

+ Over the course of the project, I spoke to a huge array of people from a massive range of social backgrounds. I spoke to foreign students, to refugees who had fled war, to people who came to the UK with dreams of achieving qualifications and building businesses, and to people who couldn't remember why they decided to come to this tiny island in the first place. The common denominator was their kindness. Whilst many were suspicious of me, thinking I must be working for one of their companies, most were very open and happy to speak to an outsider about the reality they're facing. I was offered to share coffee, some Riders offered to show me round their home countries, and whenever I bumped into a Rider I had already spoken to I was greeted warmly. +

+ +
+ +

Daylight Robbery

+ +

+ Some told me that they were happy with their jobs. Most of the time these were the younger Riders, relatively new to the job, perhaps working parttime, who seemed to not be as experienced or as worn out as the older Riders. The general consensus amongst those Riders who had been working longer was that the job is "shit." +

+ + + +

+ On the first day of this project I spoke to a Pakistani man who had come to the UK a few years ago as a business student hoping to start a business here after graduating. He told me about the low pay and dangerous conditions, then summed it all up in one phrase: "bad life." This man had come here with a vision of the UK in his mind that turned out to be very far from the truth. Now, he told me, he feels trapped here in a situation no better than the one he left behind. +

+ +

+ To make minimum wage, Riders must complete about four deliveries in an hour which is almost impossible due to long distances and fierce competition. As a result, most Riders end up working around eight to twelve hours a day, some working over six days a week. Many of the Riders told me about their families back home, but when I asked if they sent money to them, nearly all of them told me that they could barely make enough to survive themselves. Nearly every person I spoke to told me how difficult it was to make ends meet, many telling me that they're forced to work another job on top of delivering just to get by. Riders told me that it was "daylight robbery", and that they felt they were a "slave for Uber." When I asked them about their hopes for the future, some told me they wanted to go back home, others told me their plans of moving upwards; studying and getting qualifications or saving up for cars so that they could leave e-bike deliveries behind. However, for some Riders the only answer that they could give was that there was no future for them. "There is no future in this job, only deliveries" one guy told me. Another Rider told me he has "no hopes for the future because there's nothing I can do but work." +

+ +
+
+ Anonymous 2
+ "Now I'm living here for like three years, I want to- I don't know. I want to see, because I'm confused. Before it was good, but now I'm confused." +
+
+ +

Pray For the Rain

+ +

+ In this job, the expression that "time is money" becomes a very real and constant concern. Speed becomes your survival, and so Riders are often forced to go as fast as they can. As a result, they are constantly getting into accidents and then have no choice but to continue working. One guy I spoke to had a broken wrist and told me that if he stopped working to let it heal properly, he wouldn't have enough money to live. While I was speaking to a young student from Pakistan who had only been a Rider for a couple of weeks, he said something that was meant to be a bit of a joke, but which actually reflected a dark reality of the job. He told me "normally you pray for the nice sunny weather, but us Riders, we pray for the rain to come." When the weather is bad, people are much more likely to do two things: stay at home and order food, and drive their cars. As a result, business is always best for the Riders when the roads are at their most dangerous, when the tarmac is slick with rainwater, visibility is low, and cars are everywhere. +

+ +
+
+ Mohit
+ "My future, my grand plan, is to quit this job. After four months I will start again in winter, because in winter work is good. Because everybody orders online, in summer everyone comes outside but in winter if the weather is right, work is very busy. In the sun rise, there is no work." +
+
+ +

+ On one of those busy, rainy nights I spoke to Dawit, a guy who had been working as a Rider for around three years. This conversation was the first time I'd heard about people dying on the job. This fact took me by surprise, but knowing what I now know about the reality of this industry, it seems my shock was somewhat naïve. Dawit also opened up to me about the psychological effects of working as a Rider, telling me that people on the street don't respect them, and neither do most customers or restaurant workers. "I walk into a restaurant, and I feel like shit. Because we look like shit. We're exhausted." He spoke to me about the racism that he endures while working; an issue that I'd heard about from other Riders too. Racist slurs shouted through the windows of passing cars, some Riders even telling me that they'd had things thrown at them by people in cars. One guy summed it up plainly, telling me that eighty percent of people are racist towards them. Its no wonder then that the job can take a huge mental toll, especially when Riders are forced to back down from confrontations due to the apps' built in rating systems. A bad rating can directly impact the algorithm, resulting in less work. Another Rider told me how difficult and humiliating it is to have to hold your tongue when a customer is screaming at you for being late, or if an item is missing from their order. It seems obvious that these things are out of the Riders' control, but this doesn't seem to stop spiteful customers verbally abusing the people that deliver their food. +

+ +

Sam

+ + + +

+ The same night I met Dawit, I also spoke to a man called Sam. I told him he had the same name as my Dad and he smiled. Sam had been working as a Rider for six years and the first thing he said when I asked him about the job was "its shit." He told me about how the pay had gotten dramatically worse over time, especially since the pandemic and that he now has to work between nine and twelve hours a day when he used to only work six to eight. When Sam began to speak about the dangers of the job, his eyes started to shine and well up. He told me, as I'd heard from Dawit, that it was common to have accidents and crashes up to four times a day, and that many people die on the job. But for Sam this fact was incredibly personal; over the six years he'd been working as a rider he told me that three of his friends had died in car crashes. Three people dead, yet the job remained the same he told me, just as dangerous if not more so now that wages are lower, and competition is higher. As far as the platforms are concerned, those people simply logged off and will be replaced by someone else. Sam went on to explain to me that it's not just the roads that are incredibly dangerous. Forced to work such late hours in the city centre, he and his friends constantly face the risk of street crime, from thefts to stabbings. This conversation had a profound impact on me that I would carry through the rest of the project. As I spoke to Sam and saw the emotion in his eyes, the cruelty and disregard of the Riders' companies was made tangible and vivid. I had known already that working for these companies was bad, but this interaction felt like bearing witness to the barbarity myself. +

+ +

Permits, Police, and No-Go Zones

+ +

+ Many of the Riders I spoke to, or who saw me speaking to others and taking their photos, were suspicious that I might be working with the police or with their companies. Having explained the project to them, many didn't want to show their faces or be seen to be involved in what I was trying to do. I learnt from some Riders that this was probably because lots of people work on fake or shared work permits. The reason for this is that so many migrants that come into the UK are unable to obtain legitimate work permits from the government, forcing them to go down illegitimate routes. I spoke to one Rider who expanded on this, referring to a "mafia" from which Riders can buy fake work permits and other papers they might need. With no other options, people are forced into shady deals, paying fees of well over a few hundred pounds to get everything they need to appear as though they are working lawfully. +

+ +{# slideshow bound images #} + + + + +
+
+ +

+ False permits are not the only cause for suspicion and unease. Riders are also constantly facing trouble from the police, with bike seizures being a regular occurrence. Some electric bikes are rented out from legitimate companies. Some, however, are homemade, taped and strapped together with duct tape and bungee cord, built with batteries and motors salvaged or ordered online, some of which happen to be illegal in the UK. Lots of riders told me about the enormous setbacks that police seizures cause, with bikes costing up to a thousand pounds, if not more. Not only could that be months worth of wages gone with no reprieve, it also forces Riders to stop working for however long it takes them to get back up and running again. +

+ +

+ After taking a photo of a Rider named Muzzamil, we shook hands, and he rode off. A few seconds later, a police car hurtled past me and shouted at him to pull over. A policeman got out of the car and immediately began inquiring about his bike. Muzzamil explained that all the parts of the bike were legal, and that he'd made it himself. The policeman realised he'd made a mistake and walked back to his car. "You scared me, man!" shouted Muzzamil to the officer, clearly having thought his livelihood might've been taken from him a few seconds ago. "That's my job!" the policeman shouted back. +

+ +
+
+ Haseen
+ "I hope to complete my postgraduate research successfully and return to my professional path as a doctor and researcher. My dream is to contribute to the medical field through both clinical practice and academic work. I want to be in a position where I can use my skills to make a difference-not just survive on side jobs. Eventually, I hope to secure a role in healthcare or research here in the UK, where my experience and education are recognized. This phase is difficult, but I believe it's just one chapter in a much bigger story." +
+
+ +

+ Of course, the police aren't the only ones taking bikes away from Riders. Another harsh reality of the job is bike thefts. A ridiculous amount of Riders told me that they'd had their bikes stolen or that they'd had run ins with bike thieves. Many told me that they had their own personal no-go areas, parts of the city that they had heard bad stories about, or where they'd been targeted themselves. Stories of stabbings, would-be thieves wielding machetes, and gangs of teenagers swarming Riders trying to pull them off their bikes. One Rider, a man called Ahmed, spoke to me about an experience he had riding through Rusholme. He told me about how a group of men had attempted to steal his bike, trying to hit him off with a baseball bat. Ahmed said that he had no choice but to literally fight his way out, saying that he couldn't believe he had managed to escape. This appears to be a reality for many Riders, forced to quite literally fight for their livelihoods, whilst also having to ignore orders from certain neighbourhoods. And those who are especially desperate have no choice but to take those orders, risking great danger. +

+ +

+ To me, the conditions faced by the people I spoke to over the course of this project, are a sinister manifestation of our modern, neocolonial, capitalist society. A society characterised by algorithmic exploitation, the rise of 'techno-oligarchs', and the exploitative and colonial systems of old taking on new forms. As a result, a new group of workers has arisen. A group that faces constant danger and disregard with very little reward. What seems plainly true to me now is that the Riders are both hyper-exploited and under-appreciated in ways in which most people will never learn about. Even those who do learn will most likely never truly understand what the reality is like for these people. The purpose of this project is to help bring as many people as possible, including myself, closer to understanding that reality. +

+ +
+ +
+ +

The Concrete Reality

+ +

+ The situation of the Riders really is modern. Over the last twenty-five years, immigration and emigration levels around the world have reached historic highs and as a result, the number of migrant workers in the Global North has increased massively[3]. Migrant workers are especially vulnerable to predatory business practices, the kinds of practices that are used prolifically in another major development over the last couple of decades. The emergence in question is the 'platform economy', an expression that has a variety of definitions. The term 'platform' has been applied to countless digital giants from Facebook to Spotify to Uber, the main connection being their links to the 'gig economy'. This is a domain in which workers aren't necessarily considered workers; earning money from 'gigs' (think anything from voice acting to food deliveries) rather than from wages, a situation that lends itself nicely to the cost-cutting inclinations of big corporations. +

+ + + +

+ The term 'platform economy' has been refined by some scholars in regard to food delivery platforms such as Uber Eats, Deliveroo and Just Eat, which all operate in a similar way. The systems that these companies use are standards-based, meaning they're constantly collecting and analysing performance data; data that then gets fed into algorithms. These algorithms are used to remotely coordinate workers, centralising and consolidating the companies' control through that coordination, but whilst also positioning themselves as "simply empty vessels for hosting interactions that would otherwise be taking place"[4]. The reality is the opposite. These platforms do not necessarily meet existing needs, rather they are active producers of exchanges who also set the terms of their transactions and draw out extra value from their ever-growing piles of performance data. +

+ +

+ This level of centralised control is what we must thank for these corporations' massive successes, but it is the promise of freedom that seems to be the platform economy's biggest draw for workers. This must be a big draw, because according to some scholars' estimates, 10% of Europe's workers participate in the platform economy, a large portion of those people working in food delivery. Advocates of this new system argue that platform work offers new, equal and wider opportunities thanks to its casual hiring process i.e. nearly anyone can sign up for platform work. The usual tedious hiring process is made non-existent. On top of this, platform work provides the freedom to choose the location and duration of your labour, no bosses to tell you when and where to work. But is this freedom real or is it merely the illusion of freedom? +

+ +

"Be Your Own Boss"

+ +

+ The idea of being "your own boss" must be appealing, but in tired catchphrase of the platform economy there is a great sense of irony. Because the Riders and other platform workers are, from a legal perspective, contractors rather than workers, they lack a few advantages that typical employees have. For instance, platform workers are not legally entitled to certain benefits such as the minimum wage, sick pay, overtime pay, paid holidays or on-the-job accident insurance. They are also much weaker when it comes to their collective bargaining power due to their independence from each other, this forces them to work in harsher conditions for reduced wages. The reduction in question is about 40% in real terms since 2018[1]. Whilst Riders are able to make certain choices about their work, the reality is a life of income instability, a continuous employment relationship without continuous work. Without a guarantee of continuous work, workers must make themselves continuously available in order to make ends meet. These conditions produce a heightened level of competition between workers which of course only really benefits the platform companies. This competition doesn't just speed up delivery times, it makes the companies' zero-hour contracts seem much more attractive. In reality, these contracts are nothing more than a tool for companies to evade their employer obligations[5]. +

+ +
+
+ Anonymous
+ "This job has no special future. It is very difficult to win ahead" +
+
+ +

+ Overall, the alleged freedom of platform work appears to be nothing more than a mirage; a gross distortion of the notion of freedom used to draw people in. Manchester's Riders specifically are mostly migrant workers, making them more vulnerable to exploitation by platform companies. These companies are aware of this vulnerability and take advantage of it. It is their understanding that the precarious circumstances of migrants living in the UK make them the perfect candidates for an over-exploited workforce that wouldn't dream of fighting back against their employers. At the same time, the flexibility and the easy sign-up process of platform work makes becoming a Rider the obvious choice for people arriving in the country needing money. It is this drive for survival, and the precarity of citizenship, that gives the platform companies' their ideal workers. Pushed out of their home countries either by the scourge of never-ending wars or by financial uncertainty (both postcolonial effects; the disruptive legacies of Empire) migrants find themselves in the UK with a severe lack of choice, work whatever job you can get, or go home. Their status as migrant workers makes them especially vulnerable to the predatory business practices mentioned above. Without safe channels for whistleblowing or proper opportunities to air grievances, and with the looming fear of unemployment or deportation, migrant workers working food delivery jobs are forced to work several times harder than 'traditional employees', in conditions much more dangerous. Some equivalate these conditions to Modern Day Slavery (Bryson, 2024). Whilst this is a subjective term, and whilst platform companies do tend to operate within technically legal boundaries, it is no doubt that the enormous successes of these companies are hugely thanks to the miserable conditions that their Riders face. + +

Solidarity

+

+ Given how bad these conditions already are, it is no wonder that many Riders have made attempts to organise and strike. On February 2nd 2024, the grassroots group Delivery Job UK held its first strike. Ahead of the strike, Delivery Job UK emailed all the companies that were to be targeted. In response, Deliveroo emailed all their Riders a letter from GMB stating that they were the "trade union for delivery drivers" and that they will "fight for the issues that matter to you." One of the organisers of the strike said that the responses from Riders went something like "Who the fuck are these guys? We've never heard of them or been approached by them." On the day of the February 2nd strike, Deliveroo emailed restaurants encouraging them to call the police if "staff or customers feel under threat" or if they "observe loitering or anti-social behaviour", a move that left Riders feeling uneasy and upset. A spokesperson for Deliveroo said that the company "aims to provide riders with the flexible work that riders tell us they value, attractive earning opportunities and protections" and then went on to mention the voluntary partnership with GMB. Similarly, UberEats said that it offers "a flexible way for couriers to earn by using the app when and where they choose" then also claimed that "the vast majority of couriers are satisfied with their experience." Just Eat attested that it takes the "concerns of all couriers on the Just Eat network extremely seriously" and that it "welcomes their feedback" also adding that they offer "regular incentives to help them maximise their earnings." Given these lacklustre responses, Delivery Job UK organised another strike to take place later that month on Valentines Day. News spread through WhatsApp groups and by word-of-mouth among Riders waiting outside restaurants, and when Valentine's Day arrived, thousands came out to defy their companies. Huge convoys of striking Riders rolled through the cold, icy streets on mopeds and electric bikes, chanting and beeping their horns. A bold and moving act of solidarity against a faceless enemy. +

+ +
+ +
+ +

+ With such a large strike on such a crucial day for business, along with a platform boycott by the cause's supporters, it was expected that the outcome would be more positive than that of the strike's predecessor. However, the responses to the Valetine's Day strike were unfortunately more or less the same as the responses garnered by the first one. Just as lacklustre and impersonal. Again, the companies hammered home their claims that most of their workers are happy, and again they reasserted their pride in offering flexible work. Neither strike resulted in a pay rise.[2] +

+ +

An Invisible Workforce

+

+ Political and economic destabilisation, climate change and war have created tens of millions of migrants in the past few years alone. Some of those people come to our country only to find themselves in a situation that is hardly, if at all, an improvement on what they left behind. They find themselves taken advantage of by the same group of people that caused the wars, the climate disasters and the widespread instability to begin with. And on top of that, they face abuse and ignorance from the rest of us. To many people, the Riders don't exist until they're stood on the doorstep. Scholars have written about how the platform economy's demand for homogenous, mind-numbingly repetitive tasks has led to the creation of an interchangeable and invisible workforce, benefitting companies but only isolating and damaging Riders further[5]. The aim of this project is to counteract this effect; to bring Riders into the forefront as individuals, representing them positively and on their own terms. The following ten portraits are of people who were kind enough to help me with this project. I learnt a lot from them, and some were happy for me to record some of what they told me in this book. Hopefully these images convey something about the Riders that you might not have seen elsewhere. +

+ + + +

References

+ +

+ 1. ^ Dempsey, Jemma, and Faarea Masud. (2024). Deliveroo and Uber Eats Riders Strike on Valentine’s Day. BBC News, Retrived 12 Feb. 2024 www.bbc.co.uk/news/business-68274158 +

+ +

+ 2. ^ Smythe, Polly. (2024). No Love for Deliveroo”: Food Couriers in Massive Valentine’s Day Strike. Novara Media, Accessed 15 Feb. 2024 novaramedia.com/2024/02/15/no-love-for-deliveroo-food-couriers-in-a-massive-valentines-day-strike/ +

+ +

+ 3. ^ Sturge, G. (2024). Migration Statistics. commonslibrary.parliament.uk. https://commonslibrary.parliament.uk/research-briefings/sn06077/ +

+ +

+ 4. ^ Timko, P., & van Melik, R. (2021). Being a Deliveroo Rider: Practices of Platform Labor in Nijmegen and Berlin. Journal of Contemporary Ethnography, 50(4), 497-523. https://doi.org/10.1177/0891241621994670 +

+ +

+ 5. ^ a b Umer, Hamza. (2021). Illusory Freedom of Physical Platform Workers: Insights from Uber Eats in Japan. The Economic and Labour Relations Review, vol. 32(3). https://doi.org/10.1177/1035304621992466 +

+ +

Acknowledgements

+

+ Mum, for being my biggest supporter
+ Arthur Whelan, I couldn't have done it without you, my faithful backdrop boy
+ Fin Miller, Lewis Ream, Sully Qureshi, Ben James, and Patrick Naylor, my amazing light-holders and backdrop-boy-stand-ins

+ Carolyn Mendelsohn for her mentorship and ideas.
+ Charlie Clift for inspiring these images.
+ Caroline Edge, Chrystal Cherniwchan, & Caitlin Griffiths, for believing in the project
+ John Boothe, for imparting some of your endless editing wisdom onto me
+ Craig Tattersall, for helping me build backdrop 1.0
+ Dan Pickles, for helping me build backdrop 2.0
+ Alex & Liam, for accepting my printing challenge
+ The Equipment Store Team, for putting up with me +

+ +
+ {% include 'footer.html' %} + {% include 'enhance.html' %} + +