Social Undistancing

By Robert Ellison. Updated on Saturday, January 18, 2025.

Social Undistancing

We have to be six feet apart in space but so far there are no rules on time.

The photograph titled "Social Undistancing" captures a candid street scene from an elevated viewpoint. The composition reveals a busy pavement where pedestrians stroll, their varied attire suggesting the layers of human stories coexisting. Parallel to the pedestrians, a street hosts vehicles gliding along, interspersed with cyclists, adding a dynamic flow to the image. The focal point seems unanchored, evoking an everyday tapestry of life's unscripted moments. The small slices of red foliage peeping from the edges add a subtle touch of natural contrast to the urban landscape. The image is bustling yet serene, an intersection of motion and stillness, people and machines, all cohabiting a single frame.

The photograph embraces an overhead angle that imparts a sense of surveillance, a reminder of the connected yet disjointed nature of urban life. The composition follows a horizontal alignment that harmonizes with the planes of the street, creating layers of interest from foreground sidewalk to background architecture. This perspective works well to encapsulate the title's theme—people moving closer, despite societal constraints. The symmetry between the moving vehicles and pedestrians underscores the undercurrent of constant human momentum. However, the presence of utility poles in the middle can act as visual barriers, somewhat interrupting the fluidity and unity of the scene. While the photograph effectively captures the essence of communal bustle, a slight adjustment in angle or depth of field might streamline the viewing experience by minimizing such distractions. Overall, the image cleverly encapsulates urban life's choreography, inviting the viewer into a world that is ever-evolving yet comfortingly familiar.

Add your comment...

Related Posts

(Recent Photos)

(Published to the Fediverse as: Social Undistancing #photo #coronavirus Composite photograph of many people and cars walking past my house during the Coronavirus lockdown. )

Using the Azure Monitor REST API from Google Apps Script

By Robert Ellison. Updated on Saturday, February 12, 2022.

Average Server Response Time in Azure Metrics

This post describes how to get metrics (in this case average response time) from an Azure App Service into a Google Sheet. I’m doing this so I can go from the sheet to a Data Studio dashboard. I already have a report in Data Studio that pulls from Ads, Analytics and other sources. I’d rather spend hours adding Azure there than be forced to have one more tab open. You might have different reasons. Read on. 

  1. Create a Google Sheet and give it a memorable name. Rename the first sheet to AvgResponseTime and put ‘Date’ in A1 and ‘Average Response Time’ in B1.
  2. Create a script (Script editor from the Tools menu) and give that a good name as well.
  3. In the script editor pick Libraries from the Resources menu. Enter 1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF which is the Google OAuth library, pick the latest version and click Save.
  4. Select Project properties from the File menu and make a note of the Script ID.
  5. Log into your Azure Console and then go to https://resources.azure.com/. You are looking for a metricdefinitions node for the resource that you want to monitor. In my case it’s subscriptions / MyName Subscription / resourceGroups / providers / Microsoft.Web / sites / MySite / metricdefintions. Browse through this list to find the id of the metric you’re interested in. For me it’s AverageResponseTime. Finding this was the hardest part. Microsoft’s documentation for resourceUri is literally ‘The identifier of the resource.’ Why even bother Microsoft? Make a note of the id and remove the ‘metricDefinitions/AverageResponseTime’ from the end, because of course the ID isn’t quite right for some reason. Mine looks something like this: /subscriptions/mylongid/resourceGroups/mysomethingResourceGroup/providers/Microsoft.Web/sites/mysiteid
  6. Go back to the Azure Console and open Azure Active Directory. Select App registrations under Manage and create a New registration. Time to come up with another name. You probably want ‘Accounts in this organizational directory only’. The redirect URL is https://script.google.com/macros/d/SCRIPTID/usercallback - replace SCRIPTID with the Script ID you made a note of in step 4.
  7. Click the View API permissions button, then Add a permission and then pick Azure Service Management. I’m using Delegated permissions and the user_impersonation permission. Then click Grant admin consent for Default Directory.
  8. Go to Certificates & secrets (under manage) and create a new client secret. Make a careful note of it.
  9. Go to Authentication (under Manage), check Access tokens under Implicit grant and then click Save at the top of the page.
  10. Go to Overview and make a note of your Application (client) ID and Directory (tennant) ID.
  11. You are getting close! Go to the script editor (from step 2) and paste in the code at the bottom of this post. There are four variables to enter at the top of the script. ClientID and TennantID are from step 10. ClientSecret is from step 8. ResourceID is from step 5. Save the script.
  12. Reload the spreadsheet (back from step 1). You should get an Azure Monitor menu item. Choose Authorize from this menu. Google will ask you to authorize the script, do this for the Google account you’re using. Choose Authorize again, this time a sidebar will appear with a link. Follow the link and authorize against Azure (if you’re logged in this might just go directly to success). If you get authorization errors in the future run this step again. If that does help use Reset Settings and then try again.
  13. You should be ready to get data. Choose Fetch Data from the Azure Monitor menu. If this doesn’t work check through steps 1-12 carefully again!
  14. Last step - automate. Go back to the script editor. Choose Current project’s triggers from the Edit menu. Add a trigger (the small blue button hidden at the bottom right of the screen - not everything needs a floating action button Google!) to run fetchData daily at some reasonable time.
You should now have a daily record of average response time flowing to a Google sheet. This can easily be extended to support other metrics, and other time periods (you could get data by minute and run the script hourly for instance. See the metrics documentation for more ideas. I got this working for an App Service but it should be roughly the same flow for anything that supports metrics, you’ll just need to work on finding the right resourceUri / ID.

Add your comment...

More Google Apps Script Projects

(All Code Posts)

(Published to the Fediverse as: Using the Azure Monitor REST API from Google Apps Script #code #azure #appsscript #gas #google #microsoft How to call the Azure Monitor REST API via OAuth from Google Apps Script. Worked example shows how to log average response time for an Azure App Service. )

Book reviews for March 2020

The Unconsoled by Kazuo Ishiguro

The Unconsoled by Kazuo Ishiguro

5/5

Mostly read this in a deserted nightclub on the roof of a hotel in India with a warm but dirty breeze and some trippy chilled out music. It's the only way to read this strange book. Anywhere else I might not have enjoyed it quite a much after the first few chapters, but in the setting it was transcendental.

 

Add your comment...

Related Posts

(All Reviews)

ITHCWY Newsletter for March 2020

Actual, age weighted and age and life expectancy weighted results of the 2016 Presidential Election

More Bangalore: Timelapse featuring Tipu Sultan's Summer Palace, Lalbagh Botanical Garden, KR flower market, Bangalore Palace and Cubbon Park.

Coastal: an abstract timelapse of the California coast.

Jesse Wegman has written a book, Let the People Pick the President: The Case for Abolishing the Electoral College (review) and a NYT op-ed on switching to a more rational way of electing the President. If you support this idea I have a page on the topic with four concrete things you can do to help.

Hike to Kirby Cove Beach (Marin Headlands near San Francisco).

Tool to backup locked files on Windows 10 - great for XCOPY backups or just grabbing a locked file.

Previously:

Add your comment...

Related Posts

(All Etc Posts)

Great Blue Heron

By Robert Ellison. Updated on Monday, January 20, 2025.

Great Blue Heron

Several photos of Great Blue Herons at Crissy Field in San Francisco.

Updated 2020-05-04 19:32:

Great Blue Heron

Updated 2023-10-01 23:40:

Great Blue Heron at Stow Lake

Great Blue Heron and two turtles at Stow Lake in the Golden Gate Park

The photograph captures the serene elegance of a Great Blue Heron, its poised figure set against a soft green backdrop. The heron stands with graceful composure, its long, slender neck arching delicately as it gazes intently into the distance. The bird’s striking plumage, a harmonious blend of slate blue, soft gray, and hints of rust, is highlighted against the blurred greens and subtle sky tones that fill the background. Long, fine head plumes add a touch of whimsical elegance to its dignified presence, while the golden eye of the heron serves as a focal point, drawing the viewer into the intimate world of this solitary creature.

The photographer employs a shallow depth of field to create an artful separation between the subject and its natural habitat, allowing for a focused and intimate portrayal of the Great Blue Heron. The choice of composition is classical, with the heron placed off-center, directed towards the expanse of negative space, invoking a sense of tranquility and open possibilities. The image is rich in texture and detail, effectively capturing the bird's intricate feathers and sharp beak. However, the muted background, while serving to emphasize the heron, might be perceived as lacking in dynamic interest. Overall, the photograph succeeds in delivering a serene yet powerful moment in nature, encapsulating both the beauty and solitude of the majestic heron.

Updates

Great Blue Heron at Crissy Field

Great Blue Heron at Crissy Field

The photograph captures a serene landscape at Crissy Field, where a Great Blue Heron stands gracefully amidst the wild grasses and brush. The heron, poised and contemplative, is nestled in the foreground, almost camouflaged by the earth tones of the foliage. In the horizon, the iconic red expanse of the Golden Gate Bridge proudly spans across the azure waters of the bay. The bridge serves as a stark contrast to the natural elements, with the undulating hills forming a gentle backdrop against a clear, expansive sky. The scene conveys a harmonious blend of the natural and the man-made, inviting the viewer into a tranquil moment in the midst of an urban marvel.

The composition employs a balanced use of foreground and background, creating depth and intrigue. The placement of the heron in the right foreground draws the eye initially, while leading lines formed by the bridge and its reflection guide the gaze across the expanse. The rule of thirds is effectively applied, with the bridge and horizon line sitting near the upper third, and the heron attracting interest in the lower right third. The vibrant colors of the bridge and the calm blues of the water and sky establish a soothing yet dynamic color palette. While the photograph beautifully captures the coexistence of nature and architecture, the busy foreground foliage could distract slightly from the focal point, making the heron’s presence more understated than it might be. Overall, the image succeeds in evoking a peaceful coexistence and invites contemplation on the interplay between natural and urban environments.

Add your comment...

Related Posts

(Recent Photos)

(Published to the Fediverse as: Great Blue Heron #photo #heron #ggb #stowlake #crissyfield #goldengatepark Photos of Great Blue Heron at Crissy Field (GGNRA) in San Francisco, California. )

Backup locked files on Windows 10: Volume Shadow Copy Update

By Robert Ellison. Updated on Friday, January 13, 2023.

Demo of ShadowTask

The Volume Shadow Copy Service (VSS) can be used to mount a copy of a drive in a crash consistent state (like you just unplugged your computer) as a different drive letter. My shadow task command line tool makes it easy to do this. Here's an example:

ShadowTask64 C V test.bat

This creates a shadow copy of the C: drive, mounts it as V: and then runs test.bat. When test.bat completes the shadow V: drive is removed.

What can you do with this?

The simple case is grabbing a copy of a locked file. In this case test.bat could just run pause and then grab the file you need from V:.

It's also a great way to run a backup. In this case the batch file can run XCOPY (to a network share or portable drive) and you'll get all your files including anything locked like running executables or Outlook PST files.

Grab the latest from GitHub: abfo/shadow/releases. You'll find a ZIP file and source code if you want to use/extend this. There are 32 and 64-bit binaries - you need to use the right one for your computer and you also need to run the tool with administrative privileges. This only works with NTFS drives.

(Previously)

Add your comment...

Related Posts

(All Code Posts)

(Published to the Fediverse as: Backup locked files on Windows 10: Volume Shadow Copy Update #code #vss #backup Command line tool that mounts a shadow copy of any NTFS drive in Windows 10 so you can grab a locked file or run a complete crash-consistent XCOPY backup. )

Vernal (Spring) Equinox 2020

Spring Equinox 2020 rendered in Catfood Earth

Spring starts right now in the Northern Hemisphere (Autumn if you find yourself south of the Equator). Rendered in Catfood Earth.

Add your comment...

Related Posts

(All Code Posts)

Firmware

Firmware update warning

"Please be careful not to update while in riding on vehicles, such as trains, or in environments where 2.4 GHz band radio waves such as Wi-Fi, microwave ovens, cordless phones and many other radio waves are intermingled."

It looks like I need to travel to the United States National Radio Quiet Zone in West Virginia to update the firmware in my headphones, and I don't think that's on the cards for several months so I hope the update isn't important.

Nice touch that they gave an example of a vehicle though, that really helps.

Maybe use a checksum Sony?

Add your comment...

Related Posts

(All Etc Posts)

(Published to the Fediverse as: Firmware #etc #sony What is the worst thing that could happen if you updated your headphone firmware on a train? Possibly Sony should invest in checksums. )

Kirby Cove

Trail to Kirby Cove in the Marin Headlands

Kirby Cove Beach in the Marin Headlands

San Francisco through the Golden Gate Bridge from Kirby Cove

Salesforce Tower framed by the Golden Gate Bridge

A short two mile out and back from the Battery Spencer parking area on Conzelman Road to Kirby Cove.

The Marin Headlands have had a bit of a traffic management change recently so you need to go through the tunnel to get in and Conzelman Road is now one way back to highway 101. The advantage is that there is way more parking then there used to be. I think I've only ever managed to park near Battery Spencer once in 20 years.

The walk is my least favorite profile, downhill to start and uphill on the way back and also not a loop. It's worth it though because it's short and Kirby Cove beach is quiet and has wonderful views of San Francisco through the Golden Gate Bridge. You can also visit Battery Wagner and Battery Kirby on the way back up.

Hike starts at: 37.829459, -122.48401. View in Google Earth.

Add your comment...

Related Posts

(Hike Map)

(Published to the Fediverse as: Kirby Cove #hike #sanfrancisco #ggb #map Two mile hike to Kirby Cove Beach in the Marin Headlands with outstanding views of San Francisco through the Golden Gate Bridge. )

News: We May Be Living in a Simulation, but the Truth Still Matters

By Robert Ellison. Updated on Sunday, October 23, 2022.