diff options
Diffstat (limited to '')
18 files changed, 128 insertions, 18 deletions
diff --git a/www/photo.causal.agency/2024-08-29/000054970002.txt b/www/photo.causal.agency/2024-08-29/000054970002.txt new file mode 100644 index 00000000..e58bb3c3 --- /dev/null +++ b/www/photo.causal.agency/2024-08-29/000054970002.txt @@ -0,0 +1,3 @@ +reflection of trees and sky +in water with ripples +at early evening. diff --git a/www/photo.causal.agency/2024-08-29/000054970004.txt b/www/photo.causal.agency/2024-08-29/000054970004.txt new file mode 100644 index 00000000..b8ca6fc6 --- /dev/null +++ b/www/photo.causal.agency/2024-08-29/000054970004.txt @@ -0,0 +1,5 @@ +rough concrete blocks +stacked 3 by 3 except +the top right one is missing. +they're heavily weathered +and have trees overhanging them. diff --git a/www/photo.causal.agency/2024-08-29/000054970005.txt b/www/photo.causal.agency/2024-08-29/000054970005.txt new file mode 100644 index 00000000..89cfbe7f --- /dev/null +++ b/www/photo.causal.agency/2024-08-29/000054970005.txt @@ -0,0 +1,3 @@ +Ayla in an orange sweater +pulling her fingers through her hair +and making a squinting face. diff --git a/www/photo.causal.agency/2024-08-29/000054970006.txt b/www/photo.causal.agency/2024-08-29/000054970006.txt new file mode 100644 index 00000000..dcf4b50e --- /dev/null +++ b/www/photo.causal.agency/2024-08-29/000054970006.txt @@ -0,0 +1,2 @@ +Ayla in an orange sweater +looking to the side and smiling. diff --git a/www/photo.causal.agency/2024-08-29/body b/www/photo.causal.agency/2024-08-29/body new file mode 100644 index 00000000..6a2a5ad8 --- /dev/null +++ b/www/photo.causal.agency/2024-08-29/body @@ -0,0 +1 @@ +Yashica FX-2 diff --git a/www/photo.causal.agency/2024-08-29/film b/www/photo.causal.agency/2024-08-29/film new file mode 100644 index 00000000..dd589471 --- /dev/null +++ b/www/photo.causal.agency/2024-08-29/film @@ -0,0 +1 @@ +Harman Phoenix 200 diff --git a/www/photo.causal.agency/2024-08-29/lens b/www/photo.causal.agency/2024-08-29/lens new file mode 100644 index 00000000..13f1fc49 --- /dev/null +++ b/www/photo.causal.agency/2024-08-29/lens @@ -0,0 +1 @@ +Yashica DSB 50mm ƒ/1.9 diff --git a/www/photo.causal.agency/2024-09-02/000054970017.txt b/www/photo.causal.agency/2024-09-02/000054970017.txt new file mode 100644 index 00000000..a90825a9 --- /dev/null +++ b/www/photo.causal.agency/2024-09-02/000054970017.txt @@ -0,0 +1,11 @@ +a block of windows in a school building, +viewed from a slight angle. +the wall of the building is beige brick +and the block of windows +is bordered by grey stone. +there are two rows of windows, +and below each row are panels that appear brown, +though they're orange in person. +the top row of windows +is reflecting some blue sky and clouds, +while the bottom row is reflecting only cloud. diff --git a/www/photo.causal.agency/2024-09-02/000054970018.txt b/www/photo.causal.agency/2024-09-02/000054970018.txt new file mode 100644 index 00000000..db65ac6c --- /dev/null +++ b/www/photo.causal.agency/2024-09-02/000054970018.txt @@ -0,0 +1,7 @@ +a row of three benches on the front lawn of a school building. +each bench is separated by bushes and trees. +they're made up of planks of wood painted blue +bolted to concrete supports. +the school building behind them is beige brick +and there are window AC units installed +in each window of the second floor. diff --git a/www/photo.causal.agency/2024-09-02/000054970019.txt b/www/photo.causal.agency/2024-09-02/000054970019.txt new file mode 100644 index 00000000..18b9c733 --- /dev/null +++ b/www/photo.causal.agency/2024-09-02/000054970019.txt @@ -0,0 +1,6 @@ +numerous stacks of wooden picnic tables +on a lawn of grass in front of some trees. +most of the stacks are piled three high, +some four. +the light coming through the branches and leaves +of the trees in the background is glowing gold. diff --git a/www/photo.causal.agency/2024-09-02/000054970021.txt b/www/photo.causal.agency/2024-09-02/000054970021.txt new file mode 100644 index 00000000..2aac2c6f --- /dev/null +++ b/www/photo.causal.agency/2024-09-02/000054970021.txt @@ -0,0 +1,11 @@ +fancy windows on the side of a school building. +it's a repeating pattern of three windows +in the middle of a house-shaped design +of yellow panels on the second floor. +the middle windows are higher than the other two. +the triangle at the top of the window design +is followed by the profile of the roof. +below that, separated by a row of even short windows, +are red panels. +the upper windows are reflecting blue sky and clouds, +while the lower red panels are reflecting trees and clouds. diff --git a/www/photo.causal.agency/2024-09-02/000054970022.txt b/www/photo.causal.agency/2024-09-02/000054970022.txt new file mode 100644 index 00000000..df959a2c --- /dev/null +++ b/www/photo.causal.agency/2024-09-02/000054970022.txt @@ -0,0 +1,3 @@ +a light brown or beige brick school building +with its rows of windows. +the trim around the windows is sort of red-brown. diff --git a/www/photo.causal.agency/2024-09-02/000054970023.txt b/www/photo.causal.agency/2024-09-02/000054970023.txt new file mode 100644 index 00000000..976a4054 --- /dev/null +++ b/www/photo.causal.agency/2024-09-02/000054970023.txt @@ -0,0 +1,3 @@ +a haphazard pile of broken and discarded park benches. +they're nice ones made of wooden slats and black metal supports. +some are nice warm brown and others are more grey. diff --git a/www/photo.causal.agency/2024-09-02/000054970029.txt b/www/photo.causal.agency/2024-09-02/000054970029.txt new file mode 100644 index 00000000..53907b76 --- /dev/null +++ b/www/photo.causal.agency/2024-09-02/000054970029.txt @@ -0,0 +1,6 @@ +the wall of some kind of concrete structure +surrounding a big white metal tank. +I think the wall is actually metal, +but the outline of the structure is concrete. +it's got a lot of interesting marks and texture on it. +it's very hard to describe. diff --git a/www/photo.causal.agency/2024-09-02/body b/www/photo.causal.agency/2024-09-02/body new file mode 100644 index 00000000..6a2a5ad8 --- /dev/null +++ b/www/photo.causal.agency/2024-09-02/body @@ -0,0 +1 @@ +Yashica FX-2 diff --git a/www/photo.causal.agency/2024-09-02/film b/www/photo.causal.agency/2024-09-02/film new file mode 100644 index 00000000..dd589471 --- /dev/null +++ b/www/photo.causal.agency/2024-09-02/film @@ -0,0 +1 @@ +Harman Phoenix 200 diff --git a/www/photo.causal.agency/2024-09-02/lens b/www/photo.causal.agency/2024-09-02/lens new file mode 100644 index 00000000..13f1fc49 --- /dev/null +++ b/www/photo.causal.agency/2024-09-02/lens @@ -0,0 +1 @@ +Yashica DSB 50mm ƒ/1.9 diff --git a/www/photo.causal.agency/trips.html b/www/photo.causal.agency/trips.html index 6c65b7c0..ddad2adb 100644 --- a/www/photo.causal.agency/trips.html +++ b/www/photo.causal.agency/trips.html @@ -1,10 +1,14 @@ <!DOCTYPE html> -<title>Camera Trips</title> +<title>Photo Trips</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> -body { font-family: sans-serif; line-height: 1.5em; } +body { + font-family: sans-serif; + line-height: 1.5em; + max-width: 52ch; +} input, button, select { font-size: 100%; } form { display: grid; @@ -33,8 +37,12 @@ input[type="number"] { width: 5ch; } <datalist id="films"> <option>Harman Phoenix 200</option> - <option>Ilford HP5 Plus 400</option> <option>Shanghai Color 400</option> + <option>CineStill 800T</option> + <option>Ilford HP5 Plus 400</option> + <option>Ilford FP4 Plus 125</option> + <option>Ilford Delta 100</option> + <option>Fomapan Creative 200</option> <option>Fomapan Action 400</option> </datalist> </section> @@ -114,17 +122,27 @@ let nextId = +localStorage.getItem("nextId") || 1; document.getElementById("trip-date").valueAsDate = new Date(); +function removeButton(onclick) { + let remove = document.createElement("a"); + remove.appendChild(document.createTextNode("⛔")); + remove.onclick = onclick; + return remove; +} + function setBodies() { localStorage.setItem("bodies", JSON.stringify(bodies)); let ul = document.querySelector("#bodies > ul"); let selects = document.querySelectorAll("select.body"); ul.innerHTML = ""; selects.forEach(select => select.innerHTML = ""); - for (body of bodies) { + for (let [index, body] of bodies.entries()) { let li = document.createElement("li"); - li.appendChild(document.createTextNode(`${body.name} (${body.mount})`)); + li.appendChild(document.createTextNode(` + ${body.name} (${body.mount}) + `)); + li.appendChild(removeButton(removeBody.bind(null, index))); ul.appendChild(li); - for (select of selects) { + for (let select of selects) { let option = document.createElement("option"); option.appendChild(document.createTextNode(body.name)); select.appendChild(option); @@ -141,18 +159,19 @@ function lensString(lens) { ${lens.name} ${endashify(lens.focalLength)}mm ƒ/${endashify(lens.aperture)} - `; + `.replace(/\s+/g, " ").trim(); } function setLenses() { localStorage.setItem("lenses", JSON.stringify(lenses)); let ul = document.querySelector("#lenses > ul"); ul.innerHTML = ""; - for (lens of lenses) { + for (let [index, lens] of lenses.entries()) { let li = document.createElement("li"); li.appendChild(document.createTextNode(` ${lensString(lens)} (${lens.mount}) `)); + li.appendChild(removeButton(removeLens.bind(null, index))); ul.appendChild(li); } } @@ -180,20 +199,24 @@ function setTrips() { localStorage.setItem("trips", JSON.stringify(trips)); let ul = document.querySelector("#trips > ul"); ul.innerHTML = ""; + let tripsByRoll = Object.groupBy(trips, trip => trip.rollId); for (let rollId = nextId - 1; rollId > 0; --rollId) { - let rollTrips = trips.filter(trip => trip.rollId == rollId); - if (rollTrips.length == 0) continue; + let rollTrips = tripsByRoll[rollId]; + if (!rollTrips) continue; let rollLi = document.createElement("li"); - rollLi.appendChild(document.createTextNode(` - ${rollTrips[0].film} (${rollTrips[0].body}) - `)); + let rollB = document.createElement("b"); + rollB.appendChild(document.createTextNode(rollTrips[0].film)); + rollLi.appendChild(rollB); + rollLi.appendChild(document.createTextNode(` (${rollTrips[0].body})`)); let rollUl = document.createElement("ul"); - for (trip of rollTrips) { + for (let trip of rollTrips) { let li = document.createElement("li"); - li.appendChild(document.createTextNode(` - ${trip.date}: - ${trip.firstExposure}–${trip.lastExposure} - `)); + let b = document.createElement("b"); + b.appendChild(document.createTextNode(trip.date)); + li.appendChild(b); + li.appendChild(document.createTextNode( + `: ${trip.firstExposure}–${trip.lastExposure}` + )); li.appendChild(document.createElement("br")); li.appendChild(document.createTextNode(trip.lens)); if (trip.note) { @@ -249,6 +272,17 @@ function addBody() { clearForm(form); } +function removeBody(index) { + let body = bodies[index]; + if (!confirm(`Are you sure you want to remove ${body.name}?`)) { + return; + } + bodies.splice(index, 1); + delete rolls[body.name]; + setBodies(); + setRolls(); +} + function addLens() { let form = document.querySelector("#lenses > form"); if (!form.checkValidity()) return; @@ -261,6 +295,16 @@ function addLens() { clearForm(form); } +function removeLens(index) { + let lens = lenses[index]; + if (!confirm(`Are you sure you want to remove ${lensString(lens)}?`)) { + return; + } + lenses.splice(index, 1); + setLenses(); + setTripBody(); +} + function loadRoll() { let form = document.querySelector("#rolls > form"); if (!form.checkValidity()) return; |