Shared posts

07 Mar 07:37

Git scraping, the five minute lightning talk

I prepared a lightning talk about Git scraping for the NICAR 2021 data journalism conference. In the talk I explain the idea of running scheduled scrapers in GitHub Actions, show some examples and then live code a new scraper for the CDC's vaccination data using the GitHub web interface. Here's the video.

Notes from the talk

Here's the PG&E outage map that I scraped. The trick here is to open the browser developer tools network tab, then order resources by size and see if you can find the JSON resource that contains the most interesting data.

I scraped that outage data into simonw/pge-outages - here's the commit history (over 40,000 commits now!)

The scraper code itself is here. I wrote about the project in detail in Tracking PG&E outages by scraping to a git repo - my database of outages database is at pge-outages.simonwillison.net and the animation I made of outages over time is attached to this tweet.

The much simpler scraper for the www.fire.ca.gov/incidents website is at simonw/ca-fires-history.

In the video I used that as the template to create a new scraper for CDC vaccination data - their website is https://covid.cdc.gov/covid-data-tracker/#vaccinations and the API I found using the browser developer tools is https://covid.cdc.gov/covid-data-tracker/COVIDData/getAjaxData?id=vaccination_data.

The new CDC scraper and the data it has scraped lives in simonw/cdc-vaccination-history.

You can find more examples of Git scraping in the git-scraping GitHub topic.

07 Mar 07:31

Twitter Favorites: [DoerrfeldBill] Webhooks are omnipresent in today's real-time software architectures, and, are now supported in @OpenApiSpec v3.1.… https://t.co/6Ezm2AFXhi

𝙱𝚒𝚕𝚕 𝙳𝚘𝚎𝚛𝚛𝚏𝚎𝚕𝚍 @DoerrfeldBill
Webhooks are omnipresent in today's real-time software architectures, and, are now supported in @OpenApiSpec v3.1.… twitter.com/i/web/status/1…
07 Mar 07:31

Interaction unintended

by Marek Pawlowski
Samsung Galaxy Buds Live and a chicken

Opening the oven released a cloud of steam. I should have been expecting it. It’s hardly the first time I’ve roasted a chicken.

What I most certainly did not expect was that the chicken would start talking to my phone.

As the steam billowed out, the moisture must have brushed against my wireless ear buds, which I was wearing to listen to a podcast while I cooked.

There was something quite disconcerting – spooky, even – about hearing the sound volume rise ever louder in my ears. It took me a moment to work out what was happening.

The moisture from the oven, condensing on the surface of the ear buds had been interpreted as a ‘touch’ event on the capacitive control surface. The buds thought a finger was being pressed to them. With this particular model – Samsung Galaxy Buds Live – that kind of touch event is programmed to increase the volume, transmitting a command via Bluetooth to my paired smartphone to turn up the podcast.

I suspect the sense of disquiet at how this experience unfolded stemmed in part from the feeling that a device I’d trusted to be close to me – almost hard-wired into my auditory sense – had a mind of its own. It was heightened by the two main control mechanisms – touching the buds themselves or interacting with them via my phone – being out of reach. I had my hands full with a hot baking tray and my phone was on the other side of the kitchen.

Ed Maklouf gave a talk at MEX/9 (which you can watch here) about the evolutionary reasons why things which interact with our sense of hearing can feel particularly emotive.

It leaves me thinking about the numerous other day-to-day scenarios where multi-sensory interfaces are popping up. The Incident of Chicken Sorcery – as it shall henceforth be known – was a low stakes event. The consequences didn’t extend beyond my partner giving me a weird look as tried to tell her – my voice having to get louder and louder to compete with the podcast – why I couldn’t hear what she was saying.

What happens, however, when someone spills coffee on the steering wheel touch controls in the latest electric vehicle? What about when your kids are shouting something from the backseat which gets misinterpreted by the voice UI?

Interaction design is nothing if not the modelling of intention. We should think carefully about the failsafes needed to ensure it never strays into the unintended.

P.s. aside from their complicated relationship with chicken, the Samsung Buds have been a great overall user experience. Reliable, quick to re-connect and fantastic cancellation of wind noise for making calls on the move.

Part of MEX User Stories, an ongoing series of tales about digital user experience in the real world.

07 Mar 07:29

Jack Dorsey is so money: What Tidal and banking do for Square

Benjamin Pimentel, Tomio Geron, Janko Roettgers, Protocol, Mar 05, 2021
Icon

Square is an online payment service. Tidal is a music streaming service. They may seem like polar opposites, but what the combination could do is give artists and independent content producers a way to make money that doesn't depend on centralized services publishers and Patreon and other agencies that take an extra-large percentage. Streaming services don't really pay the bills, as any musician will tell you, but direct payments for concerts, merch, donations, and whatever might fill the gap. Educators - especially those aspiring to offer digital learning services - should watch this new offering closely. Meanwhile - is the world ready for an 'OLDaily' sweatshirt? Or how about one that says 'Free learning?'

Web: [Direct Link] [This Post]
07 Mar 07:28

Digital Badges Turn 10. So What?

Noah Geisel, Verses Education, Medium, Mar 05, 2021
Icon

Sometimes it feels to me that innovation in educational technology has been frozen for about ten years. That doesn't mean nothing has happened; quite the opposite, actually. But it feels to me that the idea we're working with today are the ideas we were talking about ten years ago. I think there's a lot behind the scenes that will change this, along with high-profile technology, like Zoom, that have had a wide impact. And of course, Coursera is launching an IPO with a multi-billion-dollar valuation today. So there's that. Still. So here we have digital badges, one of many ten-year old ideas that didn't real;ly take off. Does that mean it's dead. No. But there is, I think, a need to consolidate all these ten-year old ideas into a form where they actually work (p.s., that's not Coursera). As Bryan Mathers makes clear, our industry has a lot of chicken-egg problems right now.

Web: [Direct Link] [This Post]
07 Mar 07:26

On Praxis and the Indieweb

Aaron Davis, Read Write Collect, Mar 05, 2021
Icon

This is a commentary on the Praxis and the Indieweb post we covered here last week. Aaron Davis comments "the cost of connecting people has collapsed. However, what is overlooked is that there is still a cost." I don't think anyone has overlooked that, seeing that we're all paying costs for computers and phones, bandwidth, software, and services. We pay with money, with labour (to get access through our employers), and personal information. And yes, our home on the internet, our domain of our own, looks more like rent than ownership. But this is true generally, including for actual homes (try not paying your rent or your taxes or your utility bills and see what happens). It costs money to live in society, and you can't live outside society, and this leaves us all in a perpetual state of need. The hope of the Indieweb is to reduce that need, but the issue isn't cost. Not really. No, the issues are (as I think the original Praxis post said) design and inclusivity.

Web: [Direct Link] [This Post]
07 Mar 07:23

Meet Our Team: Rasha, Support Developer

by Helen Horstmann-Allen
Meet Our Team: Rasha, Support Developer

Meet Rasha, a Fastmail developer, who untangles customer issues with technical expertise.


Fastmail's support team provides customers with solutions, not just answers. When you need more technical help, our support team needs solutions, tooand here's where they go: Meet Rasha, a developer on Fastmail's team.

Name: Rasha Moumneh
Role: Support Developer

What do you work on?
I'm a support developer, so I work closely with the support and development teams to untangle customer problems that require a high level of technical intervention.

How long have you been working at Fastmail? How did you get involved?
Initially, I joined Fastmail as a customer support agent in 2019. I'm a late in life career changerI had just quit my non-profit job and started learning programming, so I wanted to get my foot in the door in the industry. Customer support was a great entry point for me. When I graduated from my program, our CTO Rik reached out to me with an idea to create a new position that bridged the gap between the development and support teams. It was a perfect fit!

What’s a project that you've worked on that you're proud of?
The interesting thing about being new to the field is that you have the opportunity to figure out what it is you really like doing. Although I trained primarily as a JavaScript developer with a frontend focus, I love doing backend work, too. Fastmail has a good amount of Perl, and it's been a lot of fun learning a new language that makes you think differently about how you approach a problem than you might be used to.

What other projects inspire you?
Two non-profits whose work I really admire and follow closely are the Electronic Frontier Foundation, which advocates for people's rights in the digital world, and the Center for Constitutional Rights, a social justice organization that takes on difficult issues that few others do.

What are your favorite Fastmail features?
I really appreciate Fastmail's focus on privacy. I was always alarmed at the sheer breadth and normalization of the online surveillance industry, but figuring out how to push back against that felt really confusing and overwhelming. Since starting work here I've become empowered to actually take steps to reduce my trackable footprint on the internet. Turns out it's neither impossible nor difficult!

I also think that Fastmail's work to replace IMAP with an open, universal email standardJMAPis immensely cool!

From an app perspective, I love the flexibility and power that Fastmail's rules and filters offer.

What’s your most used piece of technology?
I love my Bose QuietComfort 25 headphones. I wear them pretty much all day, every day when I'm working. A lot of times I don't even listen to anything on them and I just use the noise cancelling feature to help me focus. Putting them on has become a mental cue in the morning that it's time to shift to work mode.

What are you watching and listening to these days?
I watch a lot of different shows, but my most long-standing series is The Walking Dead. Before that it was Game of Thrones, but we don't talk about that show anymore  >_<  .

Right now I'm listening to a lot of Arabic funk and soul from the 70s and 80s. Habibi Funk records is re-releasing a lot of awesome stuff from across the region, and I'm always finding fantastic new music through them.

What do you like to do outside of work?
I'm a hobbyist woodworker, and I have a small woodshop set up in my garage. The things I make are mostly pretty janky, but it's a lot of fun and very meditative.
I also play videogames on my PlayStation, and often code for fun. Right now I'm building a spotify-connected sunrise alarm clock with a Rasbperry Pi.

Do you do any volunteer work?
I've been getting more involved with Code for Philly, which is a fantastic organization of civic minded technologists working on various community oriented projects. Coming from the non-profit world, I love that I can continue to work on social justice issues that are important to me but from a completely different perspective and with an entirely new skillset.

What's your favorite animal?
All of them! I'm a big animal personI have 5 cats and a dog and I can't imagine living without them.

Any Fastmail staffers you want to brag on?
Also all of them! One of the best things about working at Fastmail is the people. Everyone is so open, kind, and generous with their time. It's quite nerve wracking making the jump into a programming career, and imposter syndrome can really mess with your head. But having a supportive team of people who are genuinely invested in my success has made all the difference for me.

What do you like the best about your work at Fastmail?
I'm pretty proud that I was able to make such a huge career shift at this point in my life. It was a scary, uncertain thing, but I'm very glad I took the risk and did it. It's a great feeling to be able to come to work every day with a sense of curiosity and genuine interest in what you do.


At Fastmail, we work on making email better for everyone. Building an incredible team is an important part of our company and our values. Check out our job listings for opportunities to join our team!

07 Mar 07:21

I really like @stoweboyd’s Paradoxes of Engagement series. In this issue, he explores...

I really like @stoweboyd’s Paradoxes of Engagement series. In this issue, he explores...
07 Mar 07:18

Activism Outside and Inside the Institution

by Tara Robertson

Activism inside and outside the institution: Strategies and tactics for increasing diversity, equity and inclusion Tara Robertson Slides: http://bit.ly/KPUactivism

The recording for the talk I did for Kwantlen Polytechnic University’s Digital Pedagogy Webinar Series is up. Here’s the video and the slides.

I submitted the title and abstract 6 months ago and as I wrote the talk I realized that the dichotomy of inside/outside is much messier than the title suggests. It’s a false dichotomy to frame burning it down from the outside or building building new ways of doing things on the inside. Most of us, whether we are inside or outside an institution, do both–we build new things AND destroy barriers and structures that need to go. 

The talk had four parts:

  1. Introducing myself and sharing some context about where I’m from.
  2. Sharing about some of the queer and feminist activism I did in my 20s and 30s, including The Lesbian Avengers, swimming on several International Gay and Lesbian Aquatics teams, The Glasgow Women’s Library, and some of my union involvement especially speaking up for sex workers rights at the Workers Out human rights conference.
  3. Defining what I mean by diversity, equity and inclusion and talking about some of the work I led at Mozilla.
  4. Naming 3 people who I see as possibility models of powerful change agents within their organizations as well as make bigger ripples for change in the world.

Dr. Dori Tunstall, Respectful design + decolonizing hiring @deandori_ocadu

Dr. Dori Tunstall is the Dean of Design at OCADU. She’s leading systems change work at her university. This is visible through her work on respectful design and leading very successful Indigenous and Black faculty cluster hires that are both shifting representation and more importantly changing the culture of the institution. Follow her Instagram account  where she spotlights Black and Indigenous fashion and design and models self-care/repair as a leader.

Dr. Ninan Abraham, What have we been missing in racial equity in academia?

Dr. Ninan Abraham is a professor in the Department of Microbiology and Immunology and the Department of Zoology and the Associate Dean of Equity and Diversity in the Faculty of Science. I tuned into his February 11th webinar titled “What have we been missing in racial equity in academia?” and it was the most robust diversity data analysis I’ve seen in a post-secondary institution. Two things that stuck with me were the observations from the hiring funnel analysis and how the term racialized (and who sees themselves as racialized) isn’t straightforward. Look for these findings in a forthcoming publication with Carola Hibsch-Jetter, Howard Ramos and Minelle Mahtani. 

Annie Jean-Baptiste, Founder of The Equity Army

Annie Jean-Baptiste is the author of Building for Everyone, the Head of Product Inclusion at Google and the Founder of the Equity Army.

The Equity Army is a community of learners, builders, dreamers and doers who are committed to ensuring everyone, especially historically underrepresented people, feel seen in any product or service. The Equity Army meets in an informal cohort model and learns about product inclusion, shares resources, hears from subject matter experts, and most importantly, takes action.

I’m part of the current cohort and it’s the most diverse group of people I’ve ever worked with. I can see the diversity on so many intersectional axes: race, age, gender, disability, geography, education, industry, role and level. I’m sure there’s other dimensions I’m not able to see yet. I’m massively excited to have found a community to learn and take action with.

As we all do the work of diversity, equity and inclusion as activists in community or as activists within our organizations it’s important to have community to learn from, to share courage with, and to be accountable to. What community do you need to do this work?

The post Activism Outside and Inside the Institution appeared first on Tara Robertson Consulting.

07 Mar 07:17

Rail Transit is no guarantee of success in America

by Gordon Price

For the last three decades, American cities have promoted, planned and built Transit-Oriented Developments – predominantly housing projects on land immediately associated with rail transit or adjacent to station areas.  It’s been a record of mixed results.  And even the successes have required significant government investment.

This paper provides some good detailed analysis of case studies:

Some of the cases are well-known successes, others well-known failures, sometimes in the same city – for instance, the success of the Pearl District in Portland along the streetcar line in contrast to the double bankruptcy of The Round along the MAX line to the west.  Or in the Washington DC area, the long-term dynamic growth in the Rosslyn-Ballston corridor compared to the long-term lack of investment around White Flint Metro.

There is still debate on how much rail transit, whether metro-scale or streetcar, has been the primary impetus for urban transformation. In places like North Hollywood or Fruitvale (beyond the Village) in the San Francisco Bay Area, metro rail does not automatically lead to a take-up by the market. In America, tax incentives, subsidies and grants play a much bigger role than in Canada, and even those are insufficient in the face of market weakness for high-density TOD – another cultural difference between our region and most American examples.

Even a single station area on SkyTrain like Brentwood or Lougheed dwarfs almost every US example, and rarely requires any more government support than a rezoning and a commitment to funding non-market housing.  As well, rather than the subsidy by government, the growth in land values and extraction of CACs is expected to help fund the social and physical infrastructure anticipated by the growth itself.

In any event or by any comparison, in the US rail transit does not automatically result in favourable conditions for high-density development, or even any at all.  That is a prayer not always answered.

 

 

07 Mar 07:16

When we show up, we influence the system…

by Nancy White
Stephen Downes wrote something today about educators and journalists that I think we should consider for facilitators and process folks. …we need to get past the idea that an educator is a person who teachers courses, just as we need to get past the idea that a journalist is someone who dispassionately observes.  I have … Continue reading When we show up, we influence the system…

Source

07 Mar 07:15

Raspberry Pi: Reclaim ~1% CPU Usage when SSD/USB Booting

by jamesachambers
SSD Ubuntu 'Top' - FixedNative support for USB mass storage device booting has made it's way to all of the Raspberry Pi 4's firmware release channels! With that exciting development an old issue from the Pi 3 and earlier USB booting days has manifested itself once again in the form of a constant 1-2% CPU draw even with nothing running. This guide will show you an easy config.txt parameter to eliminate this problem and optimize your mass storage boot setups!

Source

07 Mar 07:14

HOWTO: Install Firefox on Chrome OS

by Doug Belshaw
Firefox on Chrome OS

Controversial though it may seem, and despite using Pop!_OS on my main PC, Chrome OS remains my favourite Linux ‘distribution’. I particularly like it on the Chromebook Pixel, a laptop so good I’ve bought three of them, at various times.

One thing I don’t like is having to us the Chrome web browser all the time. Thankfully, because it’s easy to get to the terminal these days in Chrome OS without having to do any kind of hacking, that’s easily fixed.

  1. Enable Linux
  2. Open the new Terminal app and copy/paste: sudo apt update && sudo apt upgrade
  3. Next copy/paste: sudo apt install flatpak
  4. Then: flatpak install flathub org.mozilla.firefox

Success!


This post is Day 90 of my #100DaysToOffload challenge. Want to get involved? Find out more at 100daystooffload.com

The post HOWTO: Install Firefox on Chrome OS first appeared on Open Thinkering.
07 Mar 07:13

Simple Questions that aren’t so Simple

by Jim

“Where did you go to school?”

It’s an innocuous cocktail party question that pops up fairly early. You would think that the answers would be simple. Not necessarily.

In St.Louis, where I grew up, this is actually a question about where you went to high school, not university. The answer slots you pretty precisely along political, religious, and socio-economic dimensions. 

Elsewhere in the U.S. this is, in fact, a question about your university affiliation. For most people, in most situations, the answers are simple; “Michigan”, “MIT”, “Notre Dame.” There are two seemingly evasive answers that I am qualified to and sometimes do use; “in New Jersey” and “in Boston.” These are code phrases for “Princeton” and “Harvard.”

Why dodge a direct answer? Because a straight answer might not provoke a straight reaction. The explicit conversation isn’t always the most relevant conversation underway. What appears to be a simple inquiry and a simple, factual, response may be heavily freighted with hidden assumptions and expectations. 

This layering of conversations is present in most settings. My history may make me a bit more attuned to that. 

Which turns out to be of increasing importance and relevance in knowledge intensive settings. Organizations want to pretend that they are simple, straightforward, places. While I am open to a debate about whether that might once have been true, I wouldn’t operate on any of those assumptions today. 

The complexity is there. You can ignore it or you can accept it and factor it in.

The post Simple Questions that aren’t so Simple appeared first on McGee's Musings.

07 Mar 07:12

cleaning up YouTube

Time for another Internet tip. Hope this is useful, since I think my problem was a pretty common one.

  • I want to be able to share a video link from a business-related event and not have a "lizard people run the Federal Reserve" video auto-play at the end of it.

  • I want my family members to be able to click a video on how to play a game or cook a recipe without constantly having to check the recommended videos for those prolific "Fourteen Words" guys.

  • I don't want to watch an exercise video and then have it roll right over into the miraculous bleach and vinegar diet video.

  • And finally, I want to cut back on how much of my personal or business info is used to target me with ads.

Yes, this means cleaning up YouTube. Ideally there would be just one tool I could install, like Facebook Container, but it's a little more work than that. This is going to take two extensions and a little configuration. But in my opinion it's worth it to do this once instead of having to deal with "oh crap, YouTube is showing WHAT?" over and over. Ready?

Part one: containerize YouTube

First, install Firefox Multi-Account Containers. Containers are a way for users to isolate their online identities and tasks from one another. You will get a new Multi-Account Containers button on the Firefox toolbar. This opens the container menu.

Click the button to open the container menu, click "Manage Containers," then "New Container". Make a container for YouTube. I picked red as the color code for tabs opened in this container. (If you already have Facebook Container, which I recommend, you'll have a blue stripe for Facebook tabs.) You can also pick a small icon for the container.

Now that the container exists, go to the YouTube site, open the container menu, and select "Always Open This Site in..." Pick the YouTube container from the list.

Now when you follow a link to YouTube, the page will open up in the container, with a stripe on the tab showing the color you picked. You shouldn't be logged in to YouTube with your Google account if you have one.

Part one done. This should limit the use of my info from other services to target me for scams and crap in video ads. This should not require any extra clicks after the original setup. You can even customize the Firefox toolbar and move the Multi-Account Containers button to the overflow area, so you don't have to think about it unless you want to do this for another site.

Part two: patch the YouTube rat hole

Time for another extension: Enhancer for YouTube. This one will change some of the creepy "engagement" promoting behaviors of the YouTube site design.

Install, then open up the preferences. Hamburger menu → Add-ons → three dots to the right of the Enhancer for YouTube entry.

This preferences menu has a whole bunch of stuff on it, take your pick. The essentials are:

  • Disable autoplay

  • Hide related videos

I also hide comments and use the Automatically enable YouTube's Theater mode option to make the video bigger and fill in the extra space (that used to be occupied by thumbnails of the flat earth video, the miracle virus cure video, and the video about the dead politician who is secretly alive and is coming back to massacre everybody that some video maker doesn't like).

You can also click around with some of the other options. I haven't messed with this extension since I got things cleaned up. If you like a video channel you can allow autoplay just for playlists, and the extension doesn't interfere with browsing a channel's home page or videos list page.

All done.

Conclusion

YouTube is not in business just to show you the videos you want. The more that viewers pick their own videos, the more market power that popular video creators end up with, and the lower the share of ad revenue that YouTube can capture. The secret of the YouTube model is to commodify the content by artificially driving viewers away from emergent stars...even if that means that the side effect is promoting more bleach-drinking videos or white power videos than viewers actually want.

In the long run, regulation will need to complement the technology here. It will be easy for YouTube to change their site around to make extensions and tips stop working. Drink your bleach and like it, we've got a market to dominate! Right now, there is a lot of focus on the technology and regulation to enforce people's right to block transfers of their data between sites. But there is also going to need to be some protection of the right to turn off automated promotion/commodification of behavior within a site.

Bonus links

‘This could be dangerous’: Why Tim Wu’s appointment has Big Tech rattled

Stop Letting Google Get Away With It

Unpacking Google’s latest blog post on web tracking

Google’s FLoC Is a Terrible Idea

Arizona Bill Offers Major Challenge To Big Tech's Monopoly Power

Introducing State Partitioning

05 Mar 01:45

How We Rearchitected Mobile A/B Testing at The New York Times

by The NYT Open Team

We use A/B tests to make decisions about the products and features we release, but our mobile test allocation wasn’t separating users properly and we had to figure out how to fix it.

Illustration by Patrick Kyle

By Julian Locke and Sameer More

In early 2020, the mobile engineering teams at The New York Times noticed an issue: our A/B tests were separating users at the wrong ratio. Tests that were supposed to allocate users into control and experimental groups were sometimes off by five percent or more. This was a big problem.

The Times uses A/B tests to make decisions about the products and features we release. Our A/B testing system works by separating users into groups that see different variants of the feature we’re testing. We then collect data on user behavior around the feature, and we draw conclusions on the effectiveness of our test.

If a test’s participation ratio is skewed — as we were seeing across many tests on our mobile platforms — it affects our confidence in feature roll-outs. When we test features, it’s important that we have control over how we allocate users into testing groups.

To figure out why this was happening, we turned to our in-house A/B testing library. Our A/B testing SDK was built for simplicity and had a synchronous API that a client could check for a test allocation. However, behind-the-scenes, the library would periodically query for results of A/B allocations and persist them across app sessions. If no result had been found and the network call had not yet returned, each test was hard-coded to fall back to a default variant, which was almost always the control.

Our hunch was that the hard-coded fallback was catching users who were browsing offline or had slow network connections. This was a problem because we needed unbiased allocation to successfully test new features. We had to figure out what was happening.

A Temporary Solution

In order to make our SDK more accurate, we deployed two changes over the next few months.

First, we increased reporting and we added an analytics field to indicate the source of the allocation for a user, server or hard-coded fallback. While this didn’t make allocations more accurate, it did allow us to filter out non-random allocations during data analysis.

Second, we developed an app-side hack for reliable allocations by simply neglecting to configure the test and using native logic to assign a random variant. This was especially useful for UX tests for first-time users that had little chance of being fetched prior to the user reaching them.

Together, these changes allowed teams to continue testing, but each came with downsides. Filtering the non-random allocations from analysis shrunk our pool of testers and biased our tests to measure only users with great network connections. Our app-side hack separated all users fairly, but it limited our ability to make changes to the allocations once the apps shipped. Adding native allocation logic was a less maintainable solution because it created a second source of truth for test configurations. It also duplicated the allocation logic and the configuration validation logic that already existed on the server.

Even with the downsides, we were encouraged by the truly random synchronous allocations afforded by the native logic. We started to investigate whether we could formalize and port the logic into our shared library, while mitigating the inherent issues of the native logic.

How the system was structured

A graph detailing how the old system was structured, with testing allocations happening asyncronously on the server.

From here it’s helpful to go a little more in depth about the constituent parts of the existing system:

  1. First, tests are manually configured in a server-side GitHub repo. For each test, developers specify a name, test variants and proportions and the integration. An integration is similar to an environment, but it also specifies the application, such as `ios-newsreader-production`.
  2. On each change to this repo, server-side tooling creates a new JSON rules object for each integration. It’s a distillation of the latest test configurations for that integration.
  3. On launch, the mobile app sends a list of tests, an integration and targeting parameters to the allocations endpoint, which then returns a dictionary and allocations for each test.
  4. The allocations endpoint computes the testing distribution using a short JavaScript allocation script. The test and targeting parameters from the app, as well as the relevant rules object, are passed into the allocation script. The script returns allocations for each test.
  5. The allocations endpoint call returns the allocations to the mobile app.

Shifting Asynchronicity to Build Time

We use JavaScript alongside native code in our mobile apps at The Times. Sometimes the JavaScript displays web technology-based UIs, and it occasionally executes small chunks of cross-platform logic. With that in mind, we imagined a reconfiguration of the A/B library’s components that was inspired by the JavaScript for event validation work of our colleague Krzysztof Zablocki, who wrote a simple analytics event validator that shared code with our web app. Elements of this work inspired our design here; we were able to adapt portions of it on iOS and implement analogous components on Android.

We envisioned our new configuration as a series of steps:

  1. Teams would their app-side allocation tests to the server-side configurations repo, just as they did for the old system.
  2. At app compile time, the tooling would download both a recent JSONLogic rules object and a recent allocation script, which it would ship to the app.
  3. The tooling would use the rules object and the script to synchronously allocate all tests at app launch. This removed the network call to the allocation endpoint completely out of the picture.

This configuration would mitigate most of the issues with our native logic hack, but it would still inhibit our ability to make changes after an app release. Because our engineering teams needed the options to pull the plug on bad tests or roll them out incrementally, this was a significant roadblock.

[We are hiring! Come work with us.]

We looked back to Krzysztof’s work on JavaScript for event validation, which included a class that served as an abstraction of a remote asset. We created one instance each of the class to represent the JSONLogic rules object and the allocation script. The classes would periodically fetch the latest allocation script or asset, falling back to local versions if needed. This allowed us to update test configurations on an app already in flight.

The one caveat with this approach is that it’s not possible to apply the most up-to-date allocation rules for a user launching the app for the first time. This is because the binary may be stale and there is no time for a server call. Initial allocations rely on the rules that were live when the latest app release was cut, which may be up to two weeks old.

The New System

A graph detailing how the testing allocation was moved to scynchronously happen at build-time.

Android Implementation Details

Finding a JavaScript engine

To implement our new A/B testing library on Android, we had to choose the right JavaScript engine to run the allocations script and we considered WebViews, J2V8 and Duktape-Android. While we had used WebViews before, they were hard to manage and couldn’t execute code synchronously. J2V8 was faster and easier to use, but it would have added about 20MB to our app’s size. We ultimately decided on Duktape-Android because it only added 2MB to our app.

Verifying Allocation Code At Runtime
We added a validation step that stops the library from trying to execute a nonfunctional script. This step reads the JavaScript and attempts to run it in Duktape-Android. However, if an exception occurs, the library will revert to the script it currently has.

Asset Management
For our A/B testing library, we relied on Store4, which brought support for coroutines. Store4 provides a framework to specify a source of truth (which in our case, are the A/B assets stored in the file system). The framework also provides a fetcher for retrieving and validating assets from the network and a reader for processing those assets.

iOS Implementation Details

Finding a JavaScript engine

We decided to use the Apple framework JavaScriptCore to execute the allocation script because it runs in process. While it is slightly slower than other engines we could have chosen, we opted to use it for security reasons.

Asset Management

We adapted a useful abstraction from Krzysztof’s app-side JavaScript work called the `RemoteAssetManager`. For assets like our allocation script or rules object, an instance of this manager can handle all the tricky logic around making the latest version synchronously available. The abstraction reads and materializes the asset out of the app binary, fetches new versions of the asset from the web and writes the version to disk between app runs.

The `RemoteAssetManager` is written to be flexible and capable of handling arbitrary assets. Its initializer takes a few closure arguments that allow the caller to tell it where to access assets, how to materialize assets from data, how to compare and choose the best of these assets, and how often to attempt to fetch new versions.

The core of the app-side allocation code can instantiate one of these managers and from then on synchronously access the latest and greatest possible version of the asset.

Analytics
Because an A/B test would be useless without data, our apps trigger an expose event, which reports the test name and variant at the time a feature is used. The event is our only way to know that an audience is seeing the correct test.

We added additional data including:

  • Metadata for how tests are allocated.
  • An error field for exceptions.
  • The allocation script response.
  • The input parameters to the script.
  • The version of the rules object and the integration that was used.

This information is sent to the analytics service and is made available for our data team. Because of our additional analytics, we no longer need to guess why a test isn’t reaching the target audience.

Testing and Release

In early October, 2020, we integrated this new A/B testing library into the New York Times Beta app and distributed it to a few thousand users. To test it out, our product team organized an A/A test — a 50–50 test that reported user analytics but didn’t vary the experience — and our data analysts verified the results.

Because we didn’t significantly change the SDK API or the server-side test configuration storage location, the update automatically moved all running tests over to the new system. In the beta app, we verified that users who were allocated into one group via the old SDK were allocated into the same group via the new SDK. They were.

We rolled out the release to the main Times apps. Since then, tests have been predictable, analyzable and deterministic, which means that our feature teams can deploy tests knowing that the data they get back is reliable.

Julian Locke is a Senior Software Engineer on the App Platforms team at The New York Times.

Sameer More is a Senior Software Engineer on the App Platforms team at The New York Times.

We’re hiring! Come work with us.


How We Rearchitected Mobile A/B Testing at The New York Times was originally published in NYT Open on Medium, where people are continuing the conversation by highlighting and responding to this story.

05 Mar 01:44

Sleep Deprivation is a Bad Management Strategy

by Jim

It was shortly after midnight. The cast was seated or sprawled in the aisles in the house. I was onstage, clipboard in hand, with the Director, Choreographer, Band Leader, and Tech Director. We had just completed Tech Rehearsal. We opened in four days. We were about to do “Notes”, where the Director and others would walk through all of the things that needed fixing or adjusting. As Production Stage Manager, I was poised to capture all of those to dos on my clipboard. 

Milt Lyons, the Director, had been working with the Triangle Club since 1955, two years after I was born. Scarcely his first rodeo. 

We had worked together before, but I was unprepared for his very first note.

He deputized two of the cast to escort me to my dorm and put me to bed. I turned my clipboard over to my assistant and left with Milt’s deputies. Fifteen hours of sleep later I was back on stage. A bit of quick arithmetic indicated that I had been working on three hours of sleep a night for the preceding week. Nor had any of my professors in any of my classes seen me that week. 

This intervention didn’t lead to any sudden epiphany; I continued to make poor choices about how I managed my time and energy. But it did plant an important seed. A seed that did take root and eventually led to more respect for balance in creative work. We talk about knowledge work in abstract, cerebral, terms. Bodies are simply transport systems for moving brains from place to place. 

When circumstances tempt me to pretend that my brain operates in splendid isolation. I remember that moment. There’s Milt announcing that the health of an entire production needed one foolish young stage manager to go get some sleep.

The post Sleep Deprivation is a Bad Management Strategy appeared first on McGee's Musings.

05 Mar 01:44

Hey Networks! Don't underestimate relationship

by Nancy White
In strolling through the archives of unpublished blogs posts, I came upon one which was simply a link to a great blog post from the Interaction Institute in 2017. And boom, it is still resonant today. The wonderful author, Curtis Ogden, offered 10 principles for thinking like a network. I want to pull out a … Continue reading Hey Networks! Don't underestimate relationship

Source

05 Mar 01:44

Meeting… Natasha Dykes, Senior Software Engineer at The New York Times

by The NYT Open Team

Celebrating Women’s History Month

This March, we are featuring colleagues from across The New York Times in a special Women’s History Month series of ‘Meeting’.

Illustration by Claire Merchlinsky

What are your pronouns?
She/Her

What is your job title and what does it mean?
I’m a Senior Software Engineer on the Messaging Pipeline team. I work on a microservice application that is mainly written in Go, but has a little JavaScript sprinkled in.

How long have you been at The Times?
Since October 2018, so a little over two years.

Most Times employees are working remotely right now. What does working from home these days look like for you?
Working from home has been a rollercoaster. I have enjoyed getting back the time I would usually spend commuting, and I have been able to spend more time with my cats. I set up a little bird feeder on the fire escape so my cats can have some entertainment on the windowsill next to my desk. Turns out, I enjoy bird watching as much as they do!

But, it’s been a challenging time, too. When the pandemic first started in New York, I really struggled to find balance between my work time and my free time. It felt oppressive and I couldn’t really disconnect the same way I was able to when I physically left the office. The idea of being able to make my lunch during lunchtime was quickly thwarted by last-minute meetings or long slack conversations, despite my attempts to reclaim my calendar.

The biggest struggle for me was getting enough movement in the day. I went from going to the gym three to five times a week and walking 20 blocks from the gym to the office in the morning to having walked only 800 steps by 6 p.m. according to my fitness watch. It was bad.

After a year of working from home, I have recalibrated my work-from-home experience and sandwiched my workday with a “commute” around my neighborhood; I have designated work areas to help define the lines of work and home; and although I haven’t unlocked the secret to maintaining a lunch hour, I have leaned on meal prep to ensure I have something good to munch on when lunch time rolls around.

I still watch the birds peck at the seeds on the fire escape while my cats look on with unflinching focus and restless tails.

Tell us about a project you’ve worked on at The Times that you’re especially proud of.
In 2019, my team worked to migrate functionality from a seven-year-old legacy system to our current messaging platform. The system was a PHP application that was responsible for sending push notifications and it had not been actively maintained in some time. My team’s goal was to shut down the application because most of the system’s original authors had left the company and the tech stack did not fit the current skill set on the team.

I had joined The Times a few months earlier with no prior experience working in Go and no professional experience working with back-end systems (other than Node applications). My role was to build functionality that took the payload scheduled for an alert and send it to the respective Android or iOS platform.

I didn’t know what the payload looked like, so I had to do a bit of reverse engineering, while learning Go and building a proof of concept, to verify our assumptions. After I built the proof of concept, I was able to complete the transformations and client setup to allow our current platform to send push notifications. I was especially proud of it because it was pretty intimidating; I never expected to be responsible for this kind of work, but I was able to build and ship it.

What is the biggest challenge you faced in your career and how did you overcome it? Knowing what you know now, would you do things differently.
Learning the language necessary to ask the right questions. It came with experience, as most things do, and being comfortable enough with my teams and my mentors along the way to ask for guidance when I needed it. Knowing what I know now, I would have stuck with my Computer Science degree instead of changing majors! I would have sought help from environments that promote “growth courses” and not “weed-out courses.”

The Times has six core values (Independence, Integrity, Curiosity, Respect, Collaboration and Excellence) by which the company operates. Is there one that you find best describes your work?
Integrity. It’s how I approach development. I come from a QA background, so I tend to think of edge cases first and then I try my best to ensure that I ship sound and stable code. It’s also how I approach the work with my team. It’s also how I approach my extracurricular work with some of The Times’s advocacy groups like Women in Tech, Black and Latinx in Tech and our Architectural Review Board. I believe that honest conversations move us forward.

What is a goal you hope to accomplish this year?
For my personal life, I would like to complete a century bike ride this year.

For my professional life, I would like to commit to putting more of my focus in increasing my technical depth and saying “no” to opportunities that don’t work towards that goal.

As a Software Engineer working on a digital product, how do you approach your work with inclusivity in mind?
I focus on end users. It doesn’t matter if you complete the work outlined in the ticket if the work that gets shipped doesn’t provide value or leaves out a group of people. This involves a lot of conversations with product and team leads, asking questions and most importantly, listening to others.

What change do you hope to see in your community?
I can’t say that there’s any major change that I would like to see specifically in my community. The community I identify with is compassionate, ambitious, resourceful, eager; but there’s only so much one side can do. I’d love to see communities outside of my own be more open, transparent, equitable and compassionate. I’d really like to see more spaces that I occupy as a professional look more like the cities that house them, the clientele they aim to serve and the world at large.

Do you have any favorite life hacks or work shortcuts?
When you want to create a new Google Doc type “docs.new” into your browser and a new Google Doc will load; It’s the same for Sheets. It’s a pretty useful shortcut for my workflow.

What or who are you inspired by?
I’m inspired by engaging and sprawling conversations that leave me with books to read, music to listen to and perspectives to examine.

Fill in the blank: What is the best part of being ______? If you had it your way, what could make it better?
What is the best part of being in quarantine? Some days I really can’t stand it and I want to fast forward to when we can meet up in real life. But, it’s not all bad. In many ways, quarantine has forced me to be more intentional with myself and the people I care about.

I have been able to learn a lot more in my free time, ranging in subjects from algorithms to feminist theory. The pandemic has motivated me to regularly check on friends who I would not have reached out to until we hung out in person, which can be many months for friends in different parts of the country. It has taught me to listen to my body; It’s pretty wild how many mild inconveniences and discomforts a body can accumulate before you realize how garbage you feel. I have been able to try out different meal plans that hit my nutritional goals rather than grab something that’s quick and convenient and I’m feeling much more energized from it.

All of that said, I’m ready for things to get back to what they once were. I plan on taking some of the habits I learned into my post-quarantine life. If I could have it my way, I would have a full vaccine roll-out tomorrow.

Complete this sentence: Over time, I have realized __________.
That the work will still be there tomorrow.

What is your best advice for someone starting to work in your field?
Take time to explore what it is about technology that piques your interest and learn by doing; experience is the best teacher and it doesn’t always come from school or work.

More in ‘Meeting’

Meeting… Corina Aoi, Technical Product Manager at The New York Times
Meeting… Jessie Wu, Software Engineer at The New York Times

Meeting… Angelica Hill, Associate Product Manager at The New York Times


Meeting… Natasha Dykes, Senior Software Engineer at The New York Times was originally published in NYT Open on Medium, where people are continuing the conversation by highlighting and responding to this story.

05 Mar 01:43

Square purchases majority stake in Tidal, pushes out other investors

by Jonathan Lamont

Payment company Square purchased a majority stake in music streaming service Tidal. Square (and Twitter) CEO Jack Dorsey explained in a Twitter thread about the purchase that the deal is about finding artists “new ways of getting paid.”

A press release from Square notes that Square’s purchase adds up to the equivalent of $297 million USD (about $374.5 million CAD) in cash and stock.

Jay-Z will remain involved in the streaming service and will join Square’s board of directors with influence over the company’s other products. Additionally, the purchase will cut out third-party investors, which means only artists will hold Tidal’s remaining shares. Finally, Tidal will operate independently following the deal’s closure, expected in Q2 2021.

Dorsey’s tweet thread about the acquisition indicates the deal will help find “new ways for artists to support their work” and that Square will “start small and focus on the most critical needs of artists and growing their fanbases.”

However, Dorsey hasn’t shared any details about how Square will make this happen. That said, some other recent changes in the streaming industry could provide clues. SoundCloud recently moved some of its streaming to a “fan-powered royalties,” which means that the service pays artists based on how much people stream their content.

Square buying Tidal could indicate that the streaming service intends to move in a similar direction, but that’s little more than speculation at the moment.

Source: Square, Jack Dorsey Via: Engadget

The post Square purchases majority stake in Tidal, pushes out other investors appeared first on MobileSyrup.

05 Mar 01:43

CRTC determines 36-month device financing plans violate the Wireless Code

by Aisha Malik

The Canadian Radio-television and Telecommunications Commission (CRTC) has determined that 36-month device financing plans violate the Wireless Code.

In July 2019, several carriers started offering new device financing plans, which give customers the option to pay for a device in monthly instalments until the device is fully paid for over a certain period of time.

Once carriers such as Rogers and Telus started offering 36-month device financing plans, the CRTC asked the providers to stop offering them until the commission completed its review and determined whether the plans were considered consistent with the Wireless Code.

With this latest decision, the CRTC has determined that the plans are not consistent with the Wireless Code. It’s worth noting that all device financing plans must comply with the Wireless Code to ensure consumers are fully protected.

Wireless service providers have been given one month to update their contracts and documentation to reflect this latest decision.

“One of the core principles of the Wireless Code is the ability of customers to take advantage of competitive offers in the marketplace. We want to ensure that device financing plans are not being used to keep customers with their current provider at the end of their service contract,” said CRTC chairperson Ian Scott in a statement.

The Wireless Code states that providers that sell phones with an upfront subsidy have to make up the cost of the device in equal payments over 24 months and are not allowed to charge a cancellation fee afterwards.

A three-year financing option could force customers to pay off their phones immediately if they switched over to another carrier after two years.

“The Wireless Code requires early cancellation fees to be reduced to zero within 24 months. Within the 24 months, you may need to pay an early cancellation fee and it will be calculated according to the formulas set out in the Wireless Code, the CRTC noted in its decision on March 4th.

The CRTC has also asked the Commission for Complaints for Telecom-television Services (CCTS) to separately track complaints regarding device financing plans.

The post CRTC determines 36-month device financing plans violate the Wireless Code appeared first on MobileSyrup.

05 Mar 01:43

Two views from Estero Americano (2021)

Two views from Estero Americano (2021)

Estero Americano is up the coast from Ocean Beach and down the coast from Timber Cove.

05 Mar 01:43

letter to Consumer Reports

(here's the body of a letter I'm sending to Consumer Reports. Feel free to copy, modify, and send to other public-interest sites or open-source projects.)

I'm writing to ask you to set an HTTP header on the Consumer Reports site to help keep deadly robots from burning people's houses down.

First, here's the header.

Permissions-Policy: interest-cohort=()

I know it's a little overhead on each request, but here's why you're going to need it.

The Google Chrome web browser is going to be coming out with a new feature called Federated Learning of Cohorts (FLoC). FLoC is software that runs in the browser and assigns the user to a group, or cohort, based on the web sites they visit.

Each user would be assigned to one cohort, so the Consumer Reports site visitors will be spread out among several cohorts. In order to use cohorts, sites will have to learn which cohorts correspond to which characteristics about people. For example, Consumer Reports members might be assigned to cohorts that are heavy on "appliance buyers who are concerned about safety." When retail sites are able to analyze the meaning of a visitor's cohort, they'll likely begin to optimize, showing the safest, highest-quality appliances to the users whose cohort shows they're likely to be Consumer Reports members, and showing the lower-quality appliances, more likely to catch on fire, to the members of other cohorts.

In the long run, it's bad for everyone in the market when companies can easily monetize unsafe products. FLoC doesn't require a deliberate decision by anyone to trick any customer into buying a dangerous appliance. The machine learning software on the retail side just "learns" how to optimally move certain SKUs, without ever knowing that they match up to fire hazards for the customers. Cohort training is an important area for ethical AI research, but Google has been abruptly terminating some key people who were responsible for leading research in the field of AI ethics. Until FLoC has been tested for safety, and for other problems such as enabling unlawful discrimination, it seems best to stay opted out of it. That header is the only opt-out method for now.

If you have any questions about how to test the HTTP header, please let me know. A test of FLoC will be starting shortly, and you can learn more at the World Wide Web Consortium's Web Incubator Community Group (WICG).

05 Mar 01:42

The Best Pour-Over Coffee Makers

by Justin Vassallo, Thais Wilson-Soler, and Daniel Varghese
Different kinds of pour-over coffee makers pictured with coffee beans.

There’s a reason pour-over is the preferred brewing method at many high-end cafés: It’s a simple way to make freshly brewed coffee on demand. And pour-over coffee reveals flavors and aromas you might not get from bulk-brewed batches held in thermal carafes.

When you’re using fresh-roasted beans at home, a manual dripper is a great tool for getting the most from your brewing ritual. After making several hundred cups, we found the Kalita Wave 185 Dripper to be both consistent and easy to master.

And we strongly recommend getting a good grinder, kettle, and scale to complete your setup (though they’re not essential). These tools will make it much easier for you to consistently brew a truly great cup.

05 Mar 01:42

Hey Networks! Don't underestimate relationship

Nancy White, Full Circle Associates, Mar 04, 2021
Icon

Nancy White looks back at a 2017 article by Curtis Ogden offering offering 10 principles for thinking like a network. These are good principles, and I think I've endorsed all of them at one time or another. It's important to see the difference between "what is new and different when we call something a network, as opposed to a coalition, collaborative or alliance." White's post is an incomplete link at the ten principles (she has been pulling out and posting incomplete and (hence) unpublished work from her archives, a practice I applaud) so be sure to follow the link to the Ogden article. I think (based on her title) she was going to ask us to think about the interpersonal aspects of networking, and not simply the structural. That would be fair enough, I think - other people in a network aren't just disembodied objects - but there's a need for caution. When it becomes all about the relationship, and when personalities come into play in a significant way, it becomes more like nepotism than networking.

Web: [Direct Link] [This Post]
05 Mar 01:42

A really bad idea

Doug Peterson, doug — off the record, Mar 04, 2021
Icon

Doug Peterson, on reading this post in The 74, seems to be responding to this post from Education Next where Michael J. Petrilli is suggesting that teachers keep the cameras on in their classrooms after the pandemic. In response, he points to this list of 17 teachers whose day could use a serious, serious do-over to illustrate how always being on camera could have unwanted consequences. people sometimes freeze when they're on camera. "Knowing that my camera was capturing every move kept me in one place, and my hands from scratching an itch that had developed about half way through," he says." I don't think it's a good idea, no so much because cameras are inherently something to be feared (seriously, none of the 17 teachers really needs to have worried) but because it's inherently unfair. Petrilli should be suggesting teachers keep their cameras on only after his Fordham Institute offers a live camera feed of its decision-making process and meetings with funders.

Web: [Direct Link] [This Post]
05 Mar 01:41

16 Questions about One Photo with Mark Edwards: “In the Grip of COVID”

by Carol Benovic-Bradley

In this 16 Questions about One Photo interview, we spoke to Flickr member Mark Edwards about his photo “In The Grip Of COVID.” Read on to learn about Mark’s creative process and if you would like to take part in this interview series, let us know!

In The Grip Of COVID (Sawbridgeworth)

1. Please introduce yourself. Who are you? What do you do? How long have you been into photography?
Hello fellow Flickerites, my name is Mark Edwards. I like to think of myself as a ‘photographic artist.’ To some, it may sound a bit pretentious. However, I think it captures for me more accurately my relationship with photography. I am not so concerned about capturing what I see but more on what I feel. My camera and software are the tools that give me the freedom to do that. Weekdays, I earn my living as director of a software mergers and acquisitions company called Boss Equity which I established in 1999. I am also director of a strategic positioning consultancy business called OutSmart which launched last year. I use my photography in both companies but particularly in OutSmart because of the power of images over words to communicate faster.

[I have been into photography] since I was 11 years old when my father gave me his Corfield Periflex camera. He then was told that it might be quite valuable (it wasn’t) so he replaced the Periflex with a Zenit E. It is not a fair swap, you may think if you know both cameras, but both cameras were very manual and forced me to understand the principles of exposure, depth of field and focusing. That proved to be an excellent grounding for me.

2. In one sentence, please describe what you captured in this shot.
This shot, which I have called ‘In The Grip Of COVID’ was taken on Church Street, in the UK, which I intended to be part street scene, part environmental portrait.

3. Why did you select this photo to share?
This image is the first of 20 images that I am creating for my Fellowship (FRPS) Royal Photographic Society. I wanted my FRPS to be a challenge, very different in style and technique to my Associateship (ARPS) panel of images, which was more documentary reportage. Creating the image incorporated quite a few techniques and genres that I thought may be of interest to a wide range of photographers. Landscapers, portrait artists, street photographers and those interested in panoramas and using HDR techniques. This image I felt was expressive and communicated about my emotions and thoughts in regards to the change that has happened in the world due to COVID.

4. What style of photography would you describe this as and do you typically take photographs in this style?
This photograph is partly a street photograph and part environmental portrait, but it has also been created in a semi cinematic style regarding the aspect ratio and colouring within the image. I have chosen a panorama technique to capture the full width of the road. The scene I was capturing had a very high dynamic range, so used an image blending technique using five bracketed shots per angled view.

5. When and where was this photo taken?
The photograph was taken on Church Street in the town of Sawbridgeworth, Herts in the UK during January of 2021.

6. Was anyone with you when you took this photo?
Now you would think that would be an easy question to answer, but in this instance, not as easy as many may think. This image was captured over three different nights all at the same location on precisely the same spot. On the first night, I took a photograph of just the street’s left-hand side plus a little of the right side. The next day as I processed this image, I started to see an idea for a finished photograph, and I went back and captured the right-hand side of the street. This second time it was quite foggy. I liked this atmospheric effect and incorporated the mist into the final image. On my third visit, James came with me, the person in the foreground closest to the camera. James was photographed in the street at the same location. Then I had the job of bringing the images together.

7. What equipment (hardware and software) did you use?
I shot the image using a Canon 5DSr DSLR with a Canon 24mm Prime F1.4. The image was captured in a series of panoramic shots on a tripod with a leveling base to make the set-up easier. I also used a cable release to avoid any movement or camera shake.

8. What drew you to take this photo?
When looking at some of my recent images, I can see elements of this image as my vision for this panel has evolved. This was an image that I had been thinking about and wanting to capture for some time. This particular image is my first interpretation of the feelings I and probably many others have experienced when shopping or walking around in their local neighbourhood during COVID lockdown periods.

While taking this image, many local people seeing me with my camera and tripod were interested in knowing what I was doing. So I posted the final photo on the local Facebook group. It created a lot of interest, and many said that it captured that eerie and somewhat scary feeling they had when out seeing others with their faces covered with their masks.

9. How many attempts did it take to get this shot? How long did it take you to get one that you were satisfied with?
The image was taken over three separate nights but was a composite due to it being a panorama and HDR of over 30 individual shots. Overall including the shooting and processing, I worked on this image on six different days.

10. Did you edit this photo?
The processing took me about three days. Not solid work but on and off over a long weekend. I tend to do some work on the image and then walk away and leave it for my eyes to adjust. Quite often I will come back to the image after a break and see that what I have done does not look right or as I had really intended. I used Photoshop to stitch and merge the HDR panorama. Within Photoshop I created just over 60 layers for the work I did on the various lights sources to create that cinematic and misty look.

11. What encouraged you to share this photo on Flickr? Did you share it anywhere else?
I have been a Flickr Pro member since 2007 and have nearly 2,000 images on the platform. I have never thought of Flickr as a back-up but as a place where I post the photos that I believe are worthy of publishing. I also shared this image on the local town Facebook group and Nextdoor, a platform for neighbours. All three platforms created quite a lot of interest. I also shared this photo in several Flickr groups, including COVID-19 Face Masks, Coronavirus Time, and CV Epoque.

12. Did you learn anything in the process of taking, editing, or sharing this photo?
That is a great question. The answer is most definitely yes, I learnt a lot. I found that this was quite a technical image, which made me really think through my capturing and processing process. I like to get as much done of the technical thinking up-front. That means if I spend time working through the technical aspects and sometimes even practicing in advance then when capturing the image, I have more of my brain on the artistic factors. For instance; to minimize the distortion, I needed to calculate the ‘No Parallax Point’ or ‘Entrance Pupil’ point. This is the point upon which I pivoted my camera and lens to capture the panorama. When you capture landscape panoramas, there are no straight edges or lines. Also, typically with landscape panorama the main subject is usually quite some distance from you. However, there were lots of straight edges and lines and the stitching software needed to bring them all together. There was also my main subject (James) who was just a few feet away. The final image was a series of five bracketed shots for each of the six angles. So 30 images for the complete scene. I soon found out how useful a leveling base is when taking multiple panorama scenes. Especially when moving around. Fortunately, because it was late in the day and due to COVID lockdown, few cars were on the roads. For this particular shot my tripod was positioned in the road, which I would not advise but fortunately, Church Road in Sawbridgeworth is very quiet for traffic.

13. In one of your previous answers, you described yourself as a photographic artist. How do you define ‘photographic artist’?
This is a debate I have had a few times with other photographers. I think primarily I have the desire to be a ‘communicator’ and photography enables me to do that. Although I do use my camera to record reality that is not my main interest. Like a paintbrush for an artist who paints pictures, I want to use my camera and software to communicate ideas, feelings and emotions.

14. What would you like people to take away from this photo?
I hope that people can identify with some aspects of this image from their local community and the effect that COVID has had on communities across the world. I have felt on some occasions a sort of surreal world has been in place. A kind of twilight world where we can only go out for essential food and travel. Instead, we have been living our lives through the television, films, and TV. One of the links I am trying to make in this series of images is the strange loss many of us experience and the mixing of realities.

15. Is there any feedback that you’d like to get on this shot?
Yes, very much so. I think the quotation by Georgia O’Keefe is very appropriate; “I had to create an equivalent for what I felt about what I was looking at – not copy it.”

This was not so much an attempt to accurately record a street scene but convey a feeling. I would very much appreciate it if people viewed this image on Flickr, and then left a comment. Leave a comment and NOT just fave the photo, but tell me how it makes them feel. Have they experienced similar feelings? It has been a difficult time for millions of people throughout the world, and leaving a comment about how COVID makes them feel and just talking about it could be a big help.

16. How can anyone reading this support your work?
I think the best way is to get in touch on Flickr. Leave a comment or even send me a FlickrMail. I will respond to all who reach out to me.

05 Mar 01:41

Friend to the Humanities

by peter@rukavina.net (Peter Rukavina)

On Zoom this afternoon I talked about my 2019 The Government That Swallowed a Pond presentation with Josh MacFadyen’s geospatial humanities class at the University of PEI.

When Josh introduced me, he referred to me as “Friend to the Humanities,” which I thought a lovely way of describing my relationship to academia. I may have to produce business cards with that title.

Josh and his students were uncommonly engaged, and we had as much discussing as I did presenting; I enjoyed that.

05 Mar 01:39

I Didn't See The Checkered Flag

by Eugene Wallingford

A couple of months ago, I missed a major anniversary and almost didn't notice. Not so today, on an even more important personal landmark.

Ten years ago today, I ran for the last time.

According to my running log, it was an ordinary March morning, cold, damp, but no ice on the ground. I ran one of my favorite routes, and 8.25-mile loop I had been running for fifteen years. It was the first route longer than 5.5 miles I ever designed and ran, beginning an ending at the first house we owned in town. It passed only a few hundred feet from the house we moved to in 2008, so I adapted it and kept running. It consisted of small neighborhood streets, some urban trail, and a 2/3-mile passage through a wooded area near our new house. I ran this route on lots of Wednesdays in marathon training and lots of Fridays in the off-season when I was running purely for fun. March 4, 2011, was such a day.

There was nothing remarkable about my run that day. I had been coming down with a cold, so my time was unremarkable, too. I recorded my time when I got home and figured I'd run twelve miles on Sunday, as I usually did at this time of year.

Unfortunately, the cold turned worse, and suddenly I was as sick as I had been in a long time. I can't remember if I ever went to the doctor, but this one knocked me down hard for a week and a half. Just as I was ready to start running again, I felt a twinge in my right knee heading out for a walk with my wife. I became a runner, interrupted. I didn't know at the time, but I would not be running again.

Running had become a big part of my life over the previous 10 or 15 years, and it was a bit of a shock not to be able to enjoy the highs and lows of miles on the road. But we humans are resilient creatures, and I eventually adjusted to the new normal. I occasionally still dream about running, which is, to be honest, glorious. But mostly I get by walking with my wife, riding my bike, and trying to stay fit with other kinds of workout. Nothing feels like running, though, and nothing has ever made me as fit. As much as I like to bike and walk, I have never thought of myself as a walker or a cyclist. Maybe one day I will.

I think, though, that I will always think of myself as a runner. However, my right knee no longer agrees with me, and I am rational enough to weigh benefits and costs and make the right choice. So I don't run.

Ten years on, that still feels a little odd. As with so many things in life, no one waved a checkered flag at the end of my last run. I didn't know it was my last run until six weeks later, so I ended up grieving a loss that had, in a way, already happened.

I realize that, in the grand scheme of things, this is a minor loss. I've been fortunate my entire life, and if not running is the worst thing that ever happens to me, I will have lived an insanely fortunate life. Still I miss it and probably always will.

05 Mar 01:38

Pizza Fight

by peter@rukavina.net (Peter Rukavina)

Receiver Brass Shop, understandably given the snapbacks and lockdowns, cancelled Thursday Pizza Pasta tonight, throwing the responsibility for pizza provision back to me. This pizza fought me all the way, but, somehow, it all worked out.