<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>TAG Lens Journal</title>
  <link href="https://taglens.net/journal.html"/>
  <link rel="self" type="application/atom+xml" href="https://taglens.net/feed.xml"/>
  <id>tag:taglens.net,2026:journal</id>
  <updated>2026-08-11T00:00:00Z</updated>
  <author><name>Andy Wells</name></author>
  <entry>
    <title type="html">Twenty-five cuts, one confession</title>
    <link href="https://taglens.net/journal.html"/>
    <id>tag:taglens.net,2026:diary-2026-08-11</id>
    <updated>2026-08-11T00:00:00Z</updated>
    <content type="html">
&lt;article class="diary"&gt;
&lt;h3&gt;&lt;span class="date"&gt;August 11, 2026&lt;/span&gt; — Twenty-five cuts, one confession&lt;/h3&gt;
&lt;p&gt;Yesterday was the biggest day this app has had. Twenty-five changes landed, each one suite-green before it merged, and the shape of the thing is different this morning. The worst file in the codebase spent months as a four-thousand-line junk drawer; its verbs live in named rooms now — rating, culling, committing your typed words — and what still sits in the old file sits there on purpose. We wrote the ruling down: the hub stays a hub. Extracting it would have been surgery for the surgeon's sake.&lt;/p&gt;
&lt;p&gt;The film work grew its best trick yet. Midtones by roll reads your scans on your Mac and tells you, in numbers, how each roll's midtones sit against your whole library — stops, not grades, and never the word underexposed. And rolls learn their year now: date two frames of a scanned roll by hand and the app offers that year to the frames still wearing the scanner's stamp. Unanimous or silent. Your own assertion always outranks the inference. Same discipline on people and pets — record that Winston lived 2004 to 2016 and an undated photo he's in can earn a decade tag, but only when the window truly fits one decade. The math abstains more than it speaks. That's the point.&lt;/p&gt;
&lt;p&gt;Two doors opened. Subjects — a pane listing every person, pet, and thing you've recorded years and places for, including the orphans whose tags you deleted long ago; they were unreachable on disk before, and now they have an edit door, a forget door, and a quiet badge instead of a warning color, because an orphaned memory is not an error. And the story page finally says who: Kate · 1948–2022 · 46 in these photos. Facts side by side. The sentence stays yours to write.&lt;/p&gt;
&lt;p&gt;The confession. Our help pages ship with a mirror on this site, and a gate is supposed to catch the mirror going stale. It caught it — and then sat red for four pushes because the alarm rang in a room nobody was standing in. Fixed the drift, then fixed the habit: every push now gets its verdict checked, by rule. And last night's build never uploaded — the build machine hung for a day and everything queued behind it silently. Kicked it loose this morning; today's build comes late and honest rather than on time and imaginary. Also new since yesterday: your taxonomy packs export as files a colleague can import, the Help menu grew a door to the discussion board, and this journal grew a feed you can subscribe to.&lt;/p&gt;
&lt;/article&gt;
    </content>
  </entry>
  <entry>
    <title type="html">The loop runs both ways</title>
    <link href="https://taglens.net/journal.html"/>
    <id>tag:taglens.net,2026:diary-2026-08-10</id>
    <updated>2026-08-10T00:00:00Z</updated>
    <content type="html">
&lt;article class="diary"&gt;
&lt;h3&gt;&lt;span class="date"&gt;August 10, 2026&lt;/span&gt; — The loop runs both ways&lt;/h3&gt;
&lt;p&gt;Yesterday the app grew its first real bridge to somewhere else, and I spent the whole day making sure the bridge can't lie. Publish to Flickr went in before lunch: mark photos, run the command, they land on your own Flickr account wearing your titles, captions, tags, and license. The part I care about is what it refuses to do. Every upload states its visibility, its safety level, its license — outright, every batch, chosen on a sheet you confirm. Nothing inherits from whatever your Flickr account settings happen to be. Your named people's tags stay home, held by the same fence that keeps them out of every online lookup. I wrote that fence before I wrote the upload button, which is the only order that never leaks.&lt;/p&gt;
&lt;p&gt;By evening the bridge carried traffic back. Check Flickr for Updates asks Flickr — your ids only, nothing else travels — what your published photos picked up over there, and hands the answers to you as a list you tick. Tags you typed on Flickr come back checked. Titles and captions come back unchecked, because an empty field here might be a deletion you meant, and because Flickr auto-titles untitled uploads from filenames — the app now says "looks like a filename, probably not a real title" right on the row instead of letting IMG_0042 dress up as a suggestion. And in tonight's build: Match Flickr Archive, for the photos you uploaded years before this app existed. It reads your photostream list page by page, matches on your Mac by two signals — the title that is your filename, the taken-time that agrees to the minute — and refuses everything ambiguous. A wrong link would poison every future suggestion, so when the evidence argues, the answer is silence.&lt;/p&gt;
&lt;p&gt;One save worth confessing. The Japanese pass over the new screens nearly localized the copyright sentence the app embeds in exported files — Lightroom and Flickr expect that sentence in English, and a Japanese UI would have quietly changed what your files say to the world. The sweep's own audit caught it before it shipped. The fix isn't a note saying don't; the file-writing path now composes from English by construction, and the interface labels translate freely above it. Make the careful thing structural, again.&lt;/p&gt;
&lt;p&gt;The unglamorous work: took the app's worst file — four thousand lines of everything — down to twenty-six hundred across twelve careful cuts, each one proven to change nothing a keystroke does. Suite green thirty-some times yesterday. The app reads thinner tonight. It behaves exactly the same, which was the entire point. In tonight's build.&lt;/p&gt;
&lt;/article&gt;
    </content>
  </entry>
  <entry>
    <title type="html">Stopped guessing and asked Photos</title>
    <link href="https://taglens.net/journal.html"/>
    <id>tag:taglens.net,2026:diary-2026-08-09</id>
    <updated>2026-08-09T00:00:00Z</updated>
    <content type="html">
&lt;article class="diary"&gt;
&lt;h3&gt;&lt;span class="date"&gt;August 9, 2026&lt;/span&gt; — Stopped guessing and asked Photos&lt;/h3&gt;
&lt;p&gt;The app had a rule I was proud of. Rename a keyword to a spelling Photos can't tell from the old one — cafe to Café — and the rewrite would delete the keyword outright, add and remove cancelling each other on photos that can't hold both. So the rule skipped the write and told you why. Careful, protective, tested. Built on a fact nobody had checked.&lt;/p&gt;
&lt;p&gt;Because the code deciding "Photos can't tell these apart" also decided ガ is カ wearing an accent. It isn't. That mark changes the word — カード is card, ガード is guard — and a Japanese user renaming one to the other got a toast saying Photos treats them as the same keyword. False, and delivered in the one market this app aims at. Ticket sat there flagged unverifiable, needs a Mac with live Photos. I have a Mac with live Photos. Tagged a control frame カード, then ガード, asked Photos what it held: both. Distinct. No folding. Asked about cafe and Café while I was in there — also distinct, which means the original fact under the whole gate was wrong too, shipped by me, tested by me, verified by nobody. Kana renames go through now. The accent skip stays, harmless either way. Cost of the actual experiment: four minutes (&lt;a href="https://github.com/wells01440/taglens/issues/1988"&gt;#1988&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Other thing today is a fence for a thing that doesn't exist yet. Publishing straight to Flickr is coming, and the app knows names — your kid's name is a keyword because you tagged their face once. Day the upload button exists, that keyword wants to ride along with the rest. So the plumbing now refuses: any publish to a third party drops your named people from what leaves, and the code physically can't be written without answering who stays home. Your own folder exports keep every word — your disk, your names. Built the refusal before the button, which is the only order that never leaks (&lt;a href="https://github.com/wells01440/taglens/issues/1965"&gt;#1965&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Friday I ran the whole app past six hard graders — store rules, privacy law both sides of the Pacific, crash discipline, brand. Three findings. All fixed by dinner. I'd feel better about that if one of them hadn't been an App Store rejection waiting in a Settings pane I'd forgotten was visible. In tonight's build.&lt;/p&gt;
&lt;/article&gt;
    </content>
  </entry>
  <entry>
    <title type="html">The app kept doing quiet harm</title>
    <link href="https://taglens.net/journal.html"/>
    <id>tag:taglens.net,2026:diary-2026-08-07</id>
    <updated>2026-08-07T00:00:00Z</updated>
    <content type="html">
&lt;article class="diary"&gt;
&lt;h3&gt;&lt;span class="date"&gt;August 7, 2026&lt;/span&gt; — The app kept doing quiet harm&lt;/h3&gt;
&lt;p&gt;Spent the day reading my own code back and not liking what it did when I wasn't watching. Two things, same shape: the app helping itself to something it had no business touching.&lt;/p&gt;
&lt;p&gt;First one's the bad one. Type a caption on your iPhone — the real kind, the sentence you'll want back in ten years — let it sync to the Mac, then open that photo here mid-session and the caption field shows empty. Not because the caption's gone. Because I never read it: the app cached the title, decided that was enough, and left the caption sitting there unread, looking like nothing. You type over the nothing. Worst part waits for ⌘Z — undo had nothing to put back either, so it wrote empty over your sentence and called it a reversal. The memoir field. The one thing this whole app is an apology for losing in the first place. Fixed now: before it overwrites a caption it can't see, it goes and reads it, so undo always has the real thing to hand you. Single photos and batches both (&lt;a href="https://github.com/wells01440/taglens/issues/1921"&gt;#1921&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Second one costs money instead of memory. Click a photo iCloud had quietly evicted off your Mac and the app would reach up and pull the whole original back down — not to show you, just to squint at it for a tag or crop out a face. Megabytes you never asked for, on whatever connection you're on, for a job that didn't need the original at all. Every one of those background looks stays local now, by default — a new one can't forget the rule, because the rule is the default. If the app wants your original down from the cloud it has to say so out loud, and nothing that runs on its own gets to (&lt;a href="https://github.com/wells01440/taglens/issues/1922"&gt;#1922&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Both were mine. Both shipped quiet and stayed quiet until I went looking. Same lesson I keep relearning: make the careful thing the thing that happens when nobody's paying attention. In tonight's build.&lt;/p&gt;
&lt;/article&gt;
    </content>
  </entry>
  <entry>
    <title type="html">The garbage-tags confession</title>
    <link href="https://taglens.net/journal.html"/>
    <id>tag:taglens.net,2026:diary-2026-08-06</id>
    <updated>2026-08-06T00:00:00Z</updated>
    <content type="html">
&lt;article class="diary"&gt;
&lt;h3&gt;&lt;span class="date"&gt;August 6, 2026&lt;/span&gt; — The garbage-tags confession&lt;/h3&gt;
&lt;p&gt;Complaint was mine to begin with, so confession may as well be too. A week of live testing spent staring at a library where the AI had spelled the one egret three separate wrong ways and filed all three, pleased with itself, and eventually I stopped pretending that was anyone's mess but the tool's — which is to say mine, since I built the tool. So tonight it quits shrugging at the garbage it makes. Off by default, because a program that leans over your shoulder correcting your spelling uninvited is a program people uninstall, but flip it on and TAG Lens runs your tags past the same macOS dictionary that's underlining half of what I'm typing right now — already on your Mac, nothing sent anywhere — and the solitary typo that never had a twin to merge against, the one Consolidate Tags could never touch because there was nothing to consolidate it with, finally gets caught (&lt;a href="https://github.com/wells01440/taglens/issues/823"&gt;#823&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;The fence, because I have a well-documented habit of promising more than a keystroke can pay back: it only opens its mouth when the dictionary is certain and it can point at exactly one fix a single edit away, so the word you misspelled on purpose stays the word you misspelled on purpose, and your people's names and every term you imported yourself sit walled off, never "corrected" at. It all lands in the Consolidate Tags sheet you already know, each fix switched off until you say otherwise, and ⌘Z hauls the whole lot back the second I've guessed wrong. It's the thin end of a slower idea — an offline queue for spelling and dates and the rest of the small lies metadata tells (&lt;a href="https://github.com/wells01440/taglens/issues/1904"&gt;#1904&lt;/a&gt;) — but the spelling half is real, and it's in tomorrow's build.&lt;/p&gt;
&lt;p&gt;I pitched this months ago and let myself get talked out of it. The man who needed overruling, it turns out, was me.&lt;/p&gt;
&lt;p&gt;The rest of the night was the unglamorous sort of work that actually holds the thing upright. Story suggestions had gone quiet, and for once it wasn't the grouper — it was me again: I'd made a resolved place a hard requirement before the app would pull the rest of an outing into a story, and since I don't geocode by default there was usually no place to resolve, so the offer just sat there saying nothing, very politely, indefinitely. Place refines the offer now; it doesn't get a veto (&lt;a href="https://github.com/wells01440/taglens/issues/1900"&gt;#1900&lt;/a&gt;). The undo bug I've cursed at more times than I'll put in writing — I bolted a test to the exact point it fails, so the next time it tries to crawl back the build goes red instead of me (&lt;a href="https://github.com/wells01440/taglens/issues/1762"&gt;#1762&lt;/a&gt;). And the perennial question of how big an Apple Photos library can actually get finally stopped being me waving my arms and became numbers I can point at — TAG Lens's own overhead runs flat past a hundred thousand photos, one manual pass is the only thing that climbs, and I know by how much now, which is progress, or at least arithmetic (&lt;a href="https://github.com/wells01440/taglens/issues/1909"&gt;#1909&lt;/a&gt;). Somewhere in there the app crossed over into speaking Japanese for most of itself, with a gate that fails the build outright the moment a translation would hand a screen the wrong placeholder and take it down along with it.&lt;/p&gt;
&lt;p&gt;The afternoon went to building the thing all that clean data was always for. TAG Lens can now hand your library back to you as numbers — which cameras and lenses you actually reach for, where your apertures and shutters and ISO really sit, the fact that you shoot the Rollei a third of a stop under without ever once deciding to. No opinions in it, just counts; a page you go and look at, not a nag that leans into the tagging. I nearly shipped it lying — it would freeze on whatever fraction of your library had downloaded and cheerfully call that the whole truth while the rest crawled in from iCloud behind it — but I read my own work back before I trusted it and caught the fib, which is turning into the whole personality of this project. Every camera and lens is a link now too: click one and your own browser opens a lookup, the app itself saying nothing (&lt;a href="https://github.com/wells01440/taglens/issues/1908"&gt;#1908&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;And the film half of the same idea, because a shelf of scans has its own kind of lie: the dust. Point TAG Lens at a roll and it hunts for the mark that sits in the exact same spot on frame after frame — the speck on the scanner glass, the hair on the film — the one flaw that can't be anything you photographed, because nothing you actually photograph holds still across a whole roll. What it will not do is touch the picture. It finds the frames, it shows you the frames, and then it gets out of the way, because the day this app starts retouching your negatives is the day it stops being the thing I built and turns into one more editor I'd have to argue with. It won't bluff, either — under eight frames it hasn't seen enough to be sure and admits it, and it tells you straight when half the roll is still up in iCloud instead of pretending it checked the lot (&lt;a href="https://github.com/wells01440/taglens/issues/1908"&gt;#1908&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Two more before the day gave out, both about handing control back to whoever actually knows the domain. If a plankton biologist wants to teach the app plankton, they shouldn't have to wait for me to learn plankton — so tag packs are a thing you author and drop in yourself now, as many as you like, and the app tells you to your face which of your terms overrule its own and what new categories you're bringing, because a taxonomy that silently rewrites itself is how you end up trusting none of it (&lt;a href="https://github.com/wells01440/taglens/issues/1899"&gt;#1899&lt;/a&gt;). And the archival half: Export to Folder will give you one clean box of JPEGs instead of a rummage-drawer of formats — except your RAW, which it will not touch, because the entire point of a negative is that nobody re-encodes it. It copies those through untouched into their own folder and renders the viewable JPEG beside them. I wrote the honest version of that label about three times before it stopped quietly implying the copies were originals — which is, at this point, just what the work is (&lt;a href="https://github.com/wells01440/taglens/issues/1907"&gt;#1907&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;And the other half of that slow idea grew a second axis before the night was out, because the small lies metadata tells aren't only about people. I'd given the app a place to keep what it knows about a person — born, died, where they lived — and then remembered that the man who tells it his grandmother was born in 1931 is the same man with four thousand photographs of a dog. Winston has no face the clustering will ever group; he's a name I typed onto a keyword. But he was born and he died and he spent his whole life at one lake, and until tonight the app had nowhere to put any of that — so a photo dated two years after he was gone sailed past wearing his name, unquestioned. Now it flags it, gently, as a thing to look at, never a date rewritten behind my back. And if I tell it where Winston lived and most of the located photos of him already sit at that lake, it offers the lake for the ones carrying no place at all — and stays quiet if my own photos don't already vouch for it. It writes nothing on its own. It asks. That keeps turning out to be the only rule this app has: it can know things and it can offer, but the pictures are yours, and it keeps its hands in its pockets until you say otherwise (&lt;a href="https://github.com/wells01440/taglens/issues/1904"&gt;#1904&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;And the back half of a promise I'd been dodging: you can finally get your &lt;em&gt;originals&lt;/em&gt; out. Not the tidy JPEGs the upload path makes — the actual masters, RAW and all, copied byte-for-byte into a folder with a plain-text list of everything you tagged them, so a person can shelve a real archive instead of a box of flattened negatives. I got about as far as inventing a sidecar file before I remembered I'd signed a document a year and a half ago explaining, at some length and to myself, precisely why not to. And a second read caught that a collapsed burst would have quietly exported the one frame you can see and dropped the rest into nowhere — exactly the silent little lie an archive is the one place that can't tell. Both caught before either shipped. The most useful thing I do lately, it turns out, is disagree with myself in writing (&lt;a href="https://github.com/wells01440/taglens/issues/1907"&gt;#1907&lt;/a&gt;).&lt;/p&gt;
&lt;/article&gt;
    </content>
  </entry>
  <entry>
    <title type="html">The species test, and everybody wrote "plant"</title>
    <link href="https://taglens.net/journal.html"/>
    <id>tag:taglens.net,2026:diary-2026-08-05</id>
    <updated>2026-08-05T00:00:00Z</updated>
    <content type="html">
&lt;article class="diary"&gt;
&lt;h3&gt;&lt;span class="date"&gt;August 5, 2026&lt;/span&gt; — The species test, and everybody wrote "plant"&lt;/h3&gt;
&lt;p&gt;I built a grader whose only job is to ask an AI what species is actually in the photo and then check whether it committed to a real name (&lt;a href="https://github.com/wells01440/taglens/issues/1137"&gt;#1137&lt;/a&gt;). Across the whole benchmark, the answer came back the same: they don't. They'll say "a kind of thistle," they'll say "flower," the good ones climb as far as the genus and stop — but not one of them looked at Blossfeldt's &lt;em&gt;Acanthus mollis&lt;/em&gt; and said &lt;em&gt;Acanthus mollis&lt;/em&gt;. Which matters, because "flower" is not the memory. The bear's breeches by your grandmother's back step is the memory. So I've decided to go get a model that can actually tell them apart — an opt-in download, the first real weight file this app has ever asked to pull, and I'm going to make it earn every megabyte against that grader before it ships.&lt;/p&gt;
&lt;p&gt;Meanwhile the app started speaking Japanese for real — the core surfaces and every one of the taxonomy pack names (軍装品, 貨幣・古銭), which nobody will ever read and I localized anyway (&lt;a href="https://github.com/wells01440/taglens/issues/1035"&gt;#1035&lt;/a&gt;). It is not all the way there — the long tail of toasts and counters is still landing, and I'm tracking every last string so I can't lie to myself about "done" (&lt;a href="https://github.com/wells01440/taglens/issues/1897"&gt;#1897&lt;/a&gt;). It was supposed to be a Tokyo app from the beginning. It's finally started sounding like one.&lt;/p&gt;
&lt;p&gt;And a quieter fix I'm not proud it took this long to find: if you use the app by ear — VoiceOver reading the screen to you — you could not set a location on a photo. At all. The rows looked like buttons and announced themselves like buttons and then did nothing when you asked (&lt;a href="https://github.com/wells01440/taglens/issues/1860"&gt;#1860&lt;/a&gt;). That's fixed now, along with nine other places the app was talking to sighted people only. The whole point of this thing is that everybody gets their photos back, and "everybody" is load-bearing. A build ships every day; if you're in the beta and something's locking you out, say so — it becomes a line item you can watch move.&lt;/p&gt;
&lt;/article&gt;
    </content>
  </entry>
  <entry>
    <title type="html">The AI named the overlook and I got homesick</title>
    <link href="https://taglens.net/journal.html"/>
    <id>tag:taglens.net,2026:diary-2026-08-04</id>
    <updated>2026-08-04T00:00:00Z</updated>
    <content type="html">
&lt;article class="diary"&gt;
&lt;h3&gt;&lt;span class="date"&gt;August 4, 2026&lt;/span&gt; — The AI named the overlook and I got homesick&lt;/h3&gt;
&lt;p&gt;Last night I fed the benchmark a famous Ansel Adams — the Tetons with the Snake River doing its silver S-curve — mostly to check the grading was fair. One of the frontier models didn't just say "mountains, river, Wyoming." It walked the whole ladder down to &lt;em&gt;Snake River Overlook&lt;/em&gt;. The exact pull-off. I haven't stood there in years and a language model just gave me directions back. I sat with that one for a minute. Then I wrote the result into a JSON file, because apparently that's how I process feelings now (&lt;a href="https://github.com/wells01440/taglens/issues/1874"&gt;#1874&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;The same bake-off produced my favorite line item ever: a correct tag from the budget model costs one-fifth of a cent, and the fancy model's correct tags cost twenty times that — because the fancy one &lt;em&gt;knows too much&lt;/em&gt;. Ask it for plain descriptions and it blurts out photographer names and dates like the kid in class who read ahead. Recognition is its actual gift: 31 of 44 famous photographs identified cold. So that's the plan now — cheap model describes, smart model remembers. Meanwhile Apple's new on-device model benchmarked fast, free, private… and refused to look at five of history's most important war photographs. For an app whose whole soul is old family photos from complicated decades, "may contain unsafe content" is going in the design notes as a warning label on the future, not a feature (&lt;a href="https://github.com/wells01440/taglens/issues/1843"&gt;#1843&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;And for the film people: the roll workbench shipped overnight (&lt;a href="https://github.com/wells01440/taglens/issues/1831"&gt;#1831&lt;/a&gt;). Name a roll, tell the truth about what shot it — my D3300 scans finally admit the AE-1 took the picture — and the app marks it &lt;em&gt;asserted&lt;/em&gt;, because it came from your memory, not the file. The scanner can't lie anymore either; the app now recognizes scanner names in the camera field and offers to fix the dates the scan stamped over your history. Repairing what the metadata got wrong about your own life: that's the whole product, really. The rest is keyboard shortcuts.&lt;/p&gt;
&lt;/article&gt;
    </content>
  </entry>
  <entry>
    <title type="html">The duct tape and I have history</title>
    <link href="https://taglens.net/journal.html"/>
    <id>tag:taglens.net,2026:diary-2026-08-03</id>
    <updated>2026-08-03T00:00:00Z</updated>
    <content type="html">
&lt;article class="diary"&gt;
&lt;h3&gt;&lt;span class="date"&gt;August 3, 2026&lt;/span&gt; — The duct tape and I have history&lt;/h3&gt;
&lt;p&gt;This week I taught a computer that the Pillars of Creation are not fireworks. It took a graded test to make it stick. There is now a permanent entry in this project's benchmark suite whose entire job is to fail loudly if any AI ever again looks at a nebula — interstellar dust, seven thousand light-years away, photographed by a space telescope — and says "ooh, fireworks." This is my life now, and honestly it still beats developing film in a bathroom with a towel shoved under the door.&lt;/p&gt;
&lt;p&gt;Bigger news, and I'm still deciding how to feel about it: macOS 27 will finally let apps write keywords, captions, and ratings into Photos the &lt;em&gt;official&lt;/em&gt; way (&lt;a href="https://github.com/wells01440/taglens/issues/1835"&gt;#1835&lt;/a&gt;). TAG Lens has been doing this for months over AppleScript, which is the engineering equivalent of passing notes through a mail slot and listening for the thud to confirm delivery. Come September the mail slot becomes the fallback and I get an actual front door. I should be thrilled. I am, mostly. But the duct tape and I have history, and it never once had a merge conflict.&lt;/p&gt;
&lt;p&gt;Also: there's a build shipping every day now. That's the mandate — one build a day until the backlog runs dry, and if the backlog runs dry, the robots get a stern talking-to. If you're in the beta, complain early and often; everything below this diary is generated straight from the real tracker, so your gripe becomes a line item you can watch move. And remember the keywords you write here travel with your exports — Flickr reads them on upload. Your photos can arrive on the internet pre-labeled, which is more organized than I have ever arrived anywhere.&lt;/p&gt;
&lt;/article&gt;
    </content>
  </entry>
</feed>
