Home Blog Page 233

6 Erie Region Wines That Merit National Attention

0
The hand of a man wearing a blue jacket touching a bunch of white wine grapes on the vine
Bob Mazza, founder of Mazza Vineyards, showed Jeff Swensen some of his carefully tended grapes as they near harvest time.

Mario Mazza, VP and general manager of Mazza Wines, recommends a handful of Erie region wines that merit national attention. Given his steadfast support of his fellow growers, it’s no surprise that he includes many of his neighbors.

6 Erie Region Wines That Merit National Attention

21 Brix: Dry Riesling

A clean and refreshing Riesling whose flavors can be enjoyed now or allowed to develop with careful aging. Riesling thrives along Lake Erie and this is a great example of a top-class dry style.

Presque Isle Wine Cellars: Grüner Veltliner

A personal favorite variety that is wonderfully suited to growing along Lake Erie. This selection exhibits fragrant varietal characteristics, balanced mouthfeel, and a crisp acidity that makes it versatile with food.

Johnson Estate Winery: Brut

A delightful example of sparkling wine from the shores of Lake Erie that shows a wonderful balance of fruit and sur lees character. One of several local sparkling wines that stand up to both domestic and imported sparklings.

Courtyard Winery: Noiret

This is a grape specific to the Lake Erie region, with tasting notes of raspberry, blackberry, cocoa powder, cherry, and strong espresso. It’s close to a Syrah, but with a hint of regional terroir.

M Cellars Winery: Reserve Cabernet Franc

A noble red grape that produces great cool-climate styles in the right sites along Lake Erie. This wine shows how elegant and delicious cool-climate reds can be.

Mazza Wines: Perfect Rosé

A bright and refreshing pale rosé that shows beautiful fruit and clean acidity—a year-round, dry rosé. The name says it all as to why it deserves a taste!

Story by Mario Mazza / Photography by Jeff Swensen

Subscribe to TABLE Magazine’s print edition.

3 Colorful Murals Always on View in Pittsburgh

0
Rainbow blocks on a wall in a Pittsburgh Mural titled “Over the Rainbow” by Typoe by Elisa Cevallos
“Over the Rainbow” by Typoe, Photo by Elisa Cevallos

Anneliese Martinez, senior director of The Andy Warhol Museum’s Pop District program, shares three colorful murals always on view in Pittsburgh.

Over The Rainbow by Typoe

117 Sandusky Street
Located on the exterior of The Andy Warhol Museum, facing Rose Way, Miami-based artist Typoe calls the site specific mural “an opportunity to engage the public with a selection of playful forms,” allowing “room for individuals to discover and interpret the composition.” Even without visiting the museum, Over the Rainbow is an opportunity to exercise the imagination.

Rainbow Road

Strawberry Way
It’s hard not to smile strolling down the bright and eye-catching Strawberry Way. The rotating street mural, currently in its third manifestation, now features the work of local artists Shane Pilster and Max Gonzales alongside PDP and Pittsburgh CAPA students. With a glance down the vivid pedestrian walkway, it’s easy to see why the students who completed the project dubbed it “Rainbow Road.”

City of Asylum Alleyway

400 Sampsonia Way
The City of Asylum serves as a sanctuary for endangered writers, bringing together a community of readers, authors, poets, and more from around the world. Take a little walk on the street, which houses those in the nonprofit’s residency program, and you’ll discover that the creativity extends beyond the art of language. Homes donning colorful murals, hand-drawn illustrations, and 3D art mark the dwellings of the exiled writers.

Recommendations by Anneliese Martinez / Story by Jordan Snowden

Pittsburgh’s Taco Scene Thrives Beyond Tuesday

0
Four soft tacos on a dark tray and rice and beans with a paper wrapped burrito on a plate and a glass of beer
Edgar's Tacos

Local blogger Lisa Theuer shares her Pittsburgh taco faves with TABLE readers. The layers of flavor and craft represented here will tickle the taste buds and intrigue the palate.

Edgar’s Best Tacos

108 19th Street
Edgar’s Best speaks for itself: it really is the best! Some of the most authentic tacos around and always made with a smile on Edgar’s face. Edgar’s best, by far, is the barbacoa. It’s made with lamb shoulder, chilies, and lots of citrus and served on corn tortillas with your choice of salsas. Hard to beat a stop at Edgar’s Best on a nice day in the Strip District.

La Palapa

2224 E. Carson Street
Don’t be intimidated by the lengua! These beef tongue tacos are insanely delicious at La Palapa. The lengua is tender and juicy, and comes across like a nice cut of steak. I love it Mexican-style with cilantro, onion, and a lime wedge. The menu has so many options, but I still find myself always ordering the tacos de lengua when I visit.

Tepache

926 Sheraton Drive, Mars
A must-order at Tepache, Cochinita Pibil is a traditional dish from the Yucatán Peninsula. It involves marinating pork in an acidic, peppery sauce and then slow-roasting it for hours. These tacos at Tepache are incredibly tender and flavorful and are served on their fresh tortillas with pickled red onions.

Las Palmas Tacos

Brookline, Beechview, Oakland
You may not look twice at the little stand in front of the Las Palmas grocery stores, but you do not want to underestimate these tacos. My preferred taco there is the Al Pastor, a sweet-and-savory combination of pork and pineapple. Las Palmas gives you a generous serving of protein in each taco and loads on the toppings. They have multiple locations throughout the city and the price point can’t be beat.

Tocayo

810 Ivy Street
If you want to try something different, the octopus taco is the perfect option at Tocayo. The grilled octopus is super tender and is paired with the chile de árbol for some nutty and smoky flavor. Octopus can be tricky to not overcook, and Tocayo nails it every time.

Story by Lisa Theuer, @lmt_eats / Styling by Anna Calabrese / Photography by Laura Petrilla

Subscribe to TABLE Magazine’s print edition.

5 Burgers for Pittsburghers

0
a hamburger with fixings on a bun made of ramen noodles with a bamboo pick holding it all together
Blue Sparrow Ramen Burger

Local blogger Alex Goodstein provides you with his favorite burgers, each of which has its unique virtues… though all are united in their embrace of the classic all-beef patty, sometimes more than one per bun!

Poulet Bleu

3517 Butler Street
The Bistro Burger is a classic cheeseburger taken to the next level. It’s a juicy beef patty cooked perfectly on an everything-seasoned brioche bun with house-made pickles, American cheese, and dijonnaise. They’re temporarily closed, but it’s definitely what I’m ordering the first time I dine there after they reopen.

Jamison’s Bar & Grill

3113 W. Liberty Avenue
Their award-winning Stout & Straw Burger is a flavor overload, featuring lots of house-made quality ingredients. It has all the best savory items taken to another level like bacon straws instead of bacon strips, crispy onions, sautéed mushrooms, and beer cheese. This burger is so large and indulgent that it almost got the best of me.

Moonlit Burgers

1426 Potomac Avenue
This was the first smashburger I’ve had in Pittsburgh that sported really thin smashed patties with crispy edges and griddled onions. It creates a caramelized flavor that is enhanced with melted American cheese, pickles, and their moon sauce.

Pittsburgh Sandwich Society  

501 E. Ohio Street
The In-N-Aht Burger is a little bit of the West Coast in Pittsburgh, but better. Having had the original, this is a top-notch recreation. It’s two smashed patties with American cheese, mixed greens, tomato, onion jam, and Society Sauce.

Blue Sparrow

1025 Main Street
This is Pittsburgh’s original Ramen Burger and after years of only being available occasionally, it is now available all the time. The Bacon Pickle Ramen Burger is topped with bacon jam, pickles, and mozzarella, but the most unique part is the ramen bun. The ramen is cooked and then fried so it holds together, creating a spongy texture and a flavor different from any other buns.

Story by Alex Goodstein / Photography by Matt Dayak

Subscribe to TABLE Magazine’s print edition.

Visual Drama: These 3 CMoA Paintings Have Stood the Test of Time

0
Carnegie Museum of Art painting, CMoA paintings

Hamilton College professor of art Katharine Kuharic honed her prodigious skills as a painter at Carnegie Mellon University. Visits just down Forbes Avenue to the Carnegie Museum of Art played a role, too. She looks back to three dramatic CMoA paintings that intrigued her 40 years ago, and continue to influence her today.

Thunderstorm at the Shore, C. 1870-1871 Martin Johnson Heade, American, 1819–1904

Carnegie Museum of Art, Pittsburgh: Howard N. Eavenson Memorial Fund for the Howard N. Eavenson Americana Collection, 72.54
Visually, Heade’s Thunderstorm at the Shore strikes the viewer with its diagonal composition and its sharp division between light and dark. The motif of an approaching storm speaks to the destructive potential of nature, threatening anything humankind might strive to build. This framing of nature is in direct contrast to Heade’s Hudson River School contemporaries, who tended to emphasize the sublime landscapes of the New World.

As a college student in the early 1980s, with the storm of AIDS threatening to sweep us all away, this painting captured something important about our precarious position in the vast arc of the natural world, as well as the position of LGBT people at the edges of a relatively intolerant society. The existential fear of the impending storm felt all too relevant. As it does again today.

While it may not be fashionable these days to speak about artistic technique, it is worth calling out Heade’s restrained use of closely modulated colors, as well as his ability to bring light and depth to a flat medium. He makes you feel the wetness of the rain moving towards you. Decades later, I still think about Heade’s combination of carefully observed natural detail and imagined drama.

Martin Johnson Heade
American, 1819–1904
Thunderstorm at the Shore, c. 1870-1871
oil on paper mounted on canvas attached to panel
H: 9 5/8 in. x W: 18 1/2 in. (24.45 x 46.99 cm)
Carnegie Museum of Art, Pittsburgh: Howard N. Eavenson Memorial Fund for the Howard N.
Eavenson Americana Collection, 72.54

Deer in a Pine Forest (Vosges) (Biches dans une forêt de sapins [Vosges]), C. 1865 Gustave Doré, French, 1832–1883

Carnegie Museum of Art, Pittsburgh: Gift of the family of Tillie S. Speyer in her memory, 80.9
At a time when I was enamored of the heroic pyrotechnics of Anselm Kiefer and Gerhard Richter, it struck me that Doré managed to create an equally rich narrative within the constraints of a fairly simple composition. Here, a single, idealized male figure faces the depth and darkness of a forest. Beautiful? Yes … but it’s also a vision of isolation and vulnerability. Did the image resonate within my 20-year-old self because I saw adulthood, with all of its opportunities, and its threats, looming ahead? Was I thinking, again, about the AIDS crisis? Whatever the reason, this dark fairy tale got under my skin and stayed there.

As a practicing painter, the image’s layered greens, ranging from sparkling highlights to submerged darks, awakens a hunger for green in me. I am thinking a lot right now about the greens of Doré, Carpaccio, Giorgione, and others. It’s a color relatively neglected by contemporary painters, and I am fascinated by the hopscotch of poetry and musicality that can exist within a single hue.


Edwin Austin Abbey
American, 1852–1911
The Penance of Eleanor, Duchess of Gloucester, 1900
oil on canvas
H: 49 in. x W: 85 in. (124.50 x 215.90 cm) Carnegie Museum of Art, Pittsburgh: Purchase, 02.1

The Penance of Eleanor, Duchess of Gloucester, 1900 Edwin Austin Abbey, American, 1852–1911

Carnegie Museum of Art, Pittsburgh: Purchase, 02.1
A first glance at this creepy painting draws you to the temperature of skin: the female and male protagonists are clearly in a heightened state, evidenced by their pallor as well as the crimson flush of blood in lips and ears. Connected emotionally, they are the focus of the piece, in contrast to stone-faced officials and in opposition to the crazed crowd.

The painting tells the story of Eleanor, Duchess of Gloucester, a 15th-century English noblewoman who was convicted of “treasonable necromancy” because her astrologer predicted the death of her brother-in-law, King Henry VI. She was forced to divorce her husband, Humphrey, the man she is looking at in the painting, and spent the last nine years of her life as a prisoner. The charges, trial, and public humiliation (she was forced to walk barefoot through three towns wrapped in nothing but a sheet) were likely motivated only by court intrigue.

The painting speaks of the misogynistic division of the sexes, and of the fraught, complex connections between people, where vulnerability and aggression muddy alreadymurky waters. Much like human life itself, the people within this painting are trapped side by side in events out of their control.

Featured image credit:
Gustave Doré
French, 1832–1883
Deer in a Pine Forest (Vosges) (Biches dans une forêt de sapins [Vosges]), c. 1865
oil on canvas
H: 76 7/8 in. x W: 51 3/8 in. (195.26 x 130.49 cm)
Carnegie Museum of Art, Pittsburgh: Gift of the family of Tillie S. Speyer in her memory, 80.9

Story by Katharine Kuharic

Satisfy Your Pizza Cravings with These 4 Pittsburgh Pizza Joints

0
corner of a square pizza with jalapeño peppers, cheese and sauce
East End Chewing Jalapeño Popper Pizza

When the moon hits your eye like a big pizza… you know the rest! Sheryl Johnston, chef and kitchen manager at East End Chewing inside East End Brewing, feels the love for these favorite spots.

East End Chewing

147 Julius Street
Longtime food connoisseur Sheryl Johnston — veteran of Conflict Kitchen and Quiet Storm — now serves up inventive specials at East End Brewing. Sheryl’s is favorite the Jalapeño Popper. Most pies can be made vegan. Best of all? Less than $20 for a full pie.

Jioio’s Restaurant 

939 Carbon Road, Greensburg
It’s not technically Pittsburgh, and it’s been years since I’ve actually had it, but that sweet, sweet sauce will live forever in my memory. I tried to model my sauce after it, and people often say my sauce is their favorite thing about the pizza at East End, so I feel like I got it right. Get a classic pepperoni to really appreciate the interplay of the sweet sauce and the salty meat and cheese.

Spak Brothers

5107 Penn Avenue
Gotta shout-out friends from the olden times when Quiet Storm and Spak were holding it down with vegetarian and vegan options on Penn Avenue in Garfield. Spak outlasted us, and at least part of the reason is their excellent house-made seitan and dedication to making pizza that omnivores and vegans can all enjoy. Plus, their Pickle Pizza is the bomb, and I kinda copied it.

Spirit

242 51st Street
I recently had a Sunday off and spent the afternoon in the gloriously dark and cavernous Spirit basement bar, sipping cocktails and eating fantastic pizza topped with smoked sausage and gouda. Their crust is just thick enough with plenty of crisp and char, and they are fearless and creative with the toppings. Highly recommend the whole dark-quiet-bar-on-a-Sunday-afternoon vibe, but I have fond memories of enjoying their pizza in the sun on the patio, too. I think the Lemon Pizza World is a regular item and a great showcase for their creative flavors.

Story by Sheryl Johnston 

Subscribe to TABLE Magazine’s print edition.

Roasted Radishes and Farro with Mint Lime Vinaigrette

0
Roasted Radishes & Farro with Mint Lime Vinaigrette sits on a green plate with a gold fork positioned to the left. A farro dish

Farro, is as complex as it is rich in flavor and nutrients. Its natural nutty flavor is a great addition to soup for texture, or in this case, the main feature of a fresh spring salad with roasted radish.

What is Farro?

Farro is an ancient grain that has been cultivated for centuries in the Mediterranean region. It’s a type of hulled wheat, meaning the outer husk has been removed, but the bran layer remains intact. This gives farro a distinct nutty flavor and a chewy texture that makes it a delightful addition to various dishes. Farro is incredibly versatile and can be used in soups, salads, pilafs, and even as a side dish. It’s also a nutritional powerhouse, packed with fiber, protein, and essential vitamins and minerals, making it a healthy and satisfying addition to any diet.

Print

clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon

Roasted radishes and farro salad with mint lime vinaigrette served on a light green ceramic plate with a fork on the left side. A smaller half-cut green plate on the top-left with side salad and a half cut glass of water to the right

Roasted Radishes and Farro with Mint Lime Vinaigrette


5 Stars 4 Stars 3 Stars 2 Stars 1 Star


  • Author:
    Veda Sankaran

Description

If you haven’t tried farro as a part of your diet, here’s your chance with the combination of delicious roasted radishes.


Ingredients


Scale

  • 10 oz of quick-cooking farro
  • 1 lb radishes, roots, and leaves trimmed
  • Olive oil
  • Salt
  • 2 tbsp red onions, finely diced
  • Feta cheese
  • Pomegranate seeds

For the vinaigrette:

  • 2 tbsp red wine vinegar
  • 6 tbsp olive oil
  • ¾ tsp finely minced garlic
  • 3 ½ tsp finely minced mint
  • 3 tsp honey
  • 1 small lime, juice
  • Salt and pepper to taste


Instructions

  1. Preheat the oven to 400 degrees. After trimming off the leaves and roots, cut the radishes in half, leaving a few of the smaller ones whole. Rub with some olive oil and season with salt.
  2. Place the cut radishes cut side down and roast for 12-15 minutes or longer if you prefer softer roasted radishes.
  3. Boil the quick-cooking farro for 10 minutes and drain in a colander.
  4. To make the vinaigrette, add the olive oil to the vinegar, beating rapidly with a small whisk or fork. Then add the remaining ingredients and stir together.
  5. Pour the vinaigrette over the cooked farro and mix it together. Then add the finely chopped red onion, pomegranate seeds, and crumbled feta and gently toss together.
  6. Plate by arranging the roasted radishes around a mound of the farro mixture and serve immediately.

window.trCommon={“minRating”:6,”ajaxurl”:”https://www.tablemagazine.com/wp-admin/admin-ajax.php”,”ratingNonce”:”70e0d6828f”,”postId”:4492};
window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.smoothScroll = {
init() {
document.addEventListener( ‘click’, ( e ) => {
let anchor = e.target;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}

if ( ! anchor || ! anchor.classList.contains( ‘tasty-recipes-scrollto’ ) ) {
return;
}

const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}

e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const element = document.querySelector( selector );
if ( ! element ) {
return;
}
element.scrollIntoView( { behavior: ‘smooth’ } );
}
};

document.addEventListener(
‘DOMContentLoaded’,
() => window.TastyRecipes.smoothScroll.init()
);

(function(){

var bothEquals = function( d1, d2, D ) {
var ret = 0;
if (d1<=D) {
ret++;
}
if (d2<=D) {
ret++;
}
return ret === 2;
};

var frac =function frac(x,D,mixed){var n1=Math.floor(x),d1=1;var n2=n1+1,d2=1;if(x!==n1)while(bothEquals(d1,d2,D)){var m=(n1+n2)/(d1+d2);if(x===m){if(d1+d2d2)d2=D+1;else d1=D+1;break}else if(xD){d1=d2;n1=n2}if(!mixed)return[0,n1,d1];var q=Math.floor(n1/d1);return[q,n1-q*d1,d1]};frac.cont=function cont(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1<D){A=Math.floor(B);P=A*P_1+P_2;Q=A*Q_1+Q_2;if(B-AD){if(Q_1>D){Q=Q_2;P=P_2}else{Q=Q_1;P=P_1}}if(!mixed)return[0,sgn*P,Q];var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]};

window.tastyRecipesVulgarFractions = JSON.parse(decodeURIComponent(“%7B%22%C2%BC%22%3A%221%2F4%22%2C%22%C2%BD%22%3A%221%2F2%22%2C%22%C2%BE%22%3A%223%2F4%22%2C%22%E2%85%93%22%3A%221%2F3%22%2C%22%E2%85%94%22%3A%222%2F3%22%2C%22%E2%85%95%22%3A%221%2F5%22%2C%22%E2%85%96%22%3A%222%2F5%22%2C%22%E2%85%97%22%3A%223%2F5%22%2C%22%E2%85%98%22%3A%224%2F5%22%2C%22%E2%85%99%22%3A%221%2F6%22%2C%22%E2%85%9A%22%3A%225%2F6%22%2C%22%E2%85%9B%22%3A%221%2F8%22%2C%22%E2%85%9C%22%3A%223%2F8%22%2C%22%E2%85%9D%22%3A%225%2F8%22%2C%22%E2%85%9E%22%3A%227%2F8%22%7D”));

window.tastyRecipesFormatAmount = function(amount, el) {
if ( parseFloat( amount ) === parseInt( amount ) ) {
return amount;
}
var roundType = ‘frac’;
if (typeof el.dataset.amountShouldRound !== ‘undefined’) {
if (‘false’ !== el.dataset.amountShouldRound) {
if ( ‘number’ === el.dataset.amountShouldRound ) {
roundType = ‘number’;
} else if (‘frac’ === el.dataset.amountShouldRound) {
roundType = ‘frac’;
} else if (‘vulgar’ === el.dataset.amountShouldRound) {
roundType = ‘vulgar’;
} else {
roundType = ‘integer’;
}
}
}
if (‘number’ === roundType) {
amount = Number.parseFloat(amount).toPrecision(2);
} else if (‘integer’ === roundType) {
amount = Math.round(amount);
} else if (‘frac’ === roundType || ‘vulgar’ === roundType) {
var denom = 8;
if (typeof el.dataset.unit !== ‘undefined’) {
var unit = el.dataset.unit;
if ([‘cups’,’cup’,’c’].includes(unit)) {
denom = 4;
if (0.125 === amount) {
denom = 8;
}
if (“0.1667″ === Number.parseFloat( amount ).toPrecision(4)) {
denom = 6;
}
}
if ([‘tablespoons’,’tablespoon’,’tbsp’].includes(unit)) {
denom = 2;
}
if ([‘teaspoons’,’teaspoon’,’tsp’].includes(unit)) {
denom = 8;
}
}
var amountArray = frac.cont( amount, denom, true );
var newAmount = ”;
if ( amountArray[1] !== 0 ) {
newAmount = amountArray[1] + ‘/’ + amountArray[2];
if (‘vulgar’ === roundType) {
Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {
if (newAmount === window.tastyRecipesVulgarFractions[vulgar]) {
newAmount = vulgar;
}
});
}
}
if ( newAmount ) {
newAmount = ‘ ‘ + newAmount;
}
if ( amountArray[0] ) {
newAmount = amountArray[0] + newAmount;
}
amount = newAmount;
}
return amount;
};

window.tastyRecipesUpdatePrintLink = () => {

const printButton = document.querySelector( ‘.tasty-recipes-print-button’ );

if ( ! printButton ) {
return;
}

const printURL = new URL( printButton.href );
const searchParams = new URLSearchParams( printURL.search );

const unitButton = document.querySelector( ‘.tasty-recipes-convert-button-active’ );
const scaleButton = document.querySelector( ‘.tasty-recipes-scale-button-active’ );

let unit = ”;
let scale = ”;

if ( unitButton ) {
unit = unitButton.dataset.unitType;
searchParams.delete(‘unit’);
searchParams.set( ‘unit’, unit );
}

if ( scaleButton ) {
scale = scaleButton.dataset.amount;
searchParams.set( ‘scale’, scale );
}

const paramString = searchParams.toString();
const newURL = ” === paramString ? printURL.href : printURL.origin + printURL.pathname + ‘?’ + paramString;
const printLinks = document.querySelectorAll( ‘.tasty-recipes-print-link’ );

printLinks.forEach( ( el ) => {
el.href = newURL;
});

const printButtons = document.querySelectorAll( ‘.tasty-recipes-print-button’ );
printButtons.forEach( ( el ) => {
el.href = newURL;
});
};

document.addEventListener( ‘DOMContentLoaded’, () => {

if ( ! window.location.href.includes( ‘/print/’ ) ) {
return;
}

const searchParams = new URLSearchParams( window.location.search );

const unit = searchParams.get( ‘unit’ );
const scale = searchParams.get( ‘scale’ );

if ( unit && ( ‘metric’ === unit || ‘usc’ === unit ) ) {
document.querySelector( ‘.tasty-recipes-convert-button[data-unit-type=”‘ + unit + ‘”]’ ).click();
}

if ( scale && Number(scale) > 0 ) {
document.querySelector( ‘.tasty-recipes-scale-button[data-amount=”‘ + Number(scale) + ‘”]’ ).click();
}
});
}());

(function(){
var buttonClass = ‘tasty-recipes-scale-button’,
buttonActiveClass = ‘tasty-recipes-scale-button-active’,
buttons = document.querySelectorAll(‘.tasty-recipes-scale-button’);
if ( ! buttons ) {
return;
}

buttons.forEach(function(button){
button.addEventListener(‘click’, function(event){
event.preventDefault();
var recipe = event.target.closest(‘.tasty-recipes’);
if ( ! recipe ) {
return;
}
var otherButtons = recipe.querySelectorAll(‘.’ + buttonClass);
otherButtons.forEach(function(bt){
bt.classList.remove(buttonActiveClass);
});
button.classList.add(buttonActiveClass);

var scalables = recipe.querySelectorAll(‘span[data-amount]’);
var buttonAmount = parseFloat( button.dataset.amount );
scalables.forEach(function(scalable){
if (typeof scalable.dataset.amountOriginalType === ‘undefined’
&& typeof scalable.dataset.nfOriginal === ‘undefined’) {
if (-1 !== scalable.innerText.indexOf(‘/’)) {
scalable.dataset.amountOriginalType = ‘frac’;
}
if (-1 !== scalable.innerText.indexOf(‘.’)) {
scalable.dataset.amountOriginalType = ‘number’;
}
Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {
if (-1 !== scalable.innerText.indexOf(vulgar)) {
scalable.dataset.amountOriginalType = ‘vulgar’;
}
});
if (typeof scalable.dataset.amountOriginalType !== ‘undefined’) {
scalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType;
}
}
var amount = parseFloat( scalable.dataset.amount ) * buttonAmount;
amount = window.tastyRecipesFormatAmount(amount, scalable);
if ( typeof scalable.dataset.unit !== ‘undefined’ ) {
if ( ! scalable.classList.contains(‘nutrifox-quantity’) ) {
if ( ! scalable.classList.contains(‘nutrifox-second-quantity’) ) {
amount += ‘ ‘ + scalable.dataset.unit;
}
}
}
scalable.innerText = amount;
});

var nonNumerics = recipe.querySelectorAll(‘[data-has-non-numeric-amount]’);
nonNumerics.forEach(function(nonNumeric){
var indicator = nonNumeric.querySelector(‘span[data-non-numeric-label]’);
if ( indicator ) {
nonNumeric.removeChild(indicator);
}
if ( 1 !== buttonAmount ) {
indicator = document.createElement(‘span’);
indicator.setAttribute(‘data-non-numeric-label’, true);
var text = document.createTextNode(‘ (x’ + buttonAmount + ‘)’);
indicator.appendChild(text);
nonNumeric.appendChild(indicator);
}
});

window.tastyRecipesUpdatePrintLink();
});
});
}());

window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if (“wakeLock” in navigator && “request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}

const cookModes = document.querySelectorAll(this.cookModeSelector);

if (cookModes.length > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘input[type=”checkbox”]’).addEventListener(“change”, event => {
this.checkboxChange(event.target);
}, false);
} else {
cookMode.style.display = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = document.querySelectorAll(this.cookModeSelector + ‘ input[type=”checkbox”]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
try {
this.wakeLock = await this.wakeLockApi.request(“screen”);
this.wakeLock.addEventListener(“release”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
document.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});

window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.staticTooltip = {
element: null,
tooltipElement: null,
deleting: false,
init( element ) {
if ( this.deleting ) {
return;
}
this.element = element;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}

this.deleting = true;
this.tooltipElement.classList.remove( ‘opened’ );

setTimeout( () => {
this.tooltipElement.remove();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = document.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );

const currentTooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
document.body.replaceChild( tooltipElement, currentTooltipElement );
} else {
document.body.appendChild( tooltipElement );
}

this.tooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
},
show() {
if ( ! this.tooltipElement ) {
return;
}

const tooltipTop = this.element.getBoundingClientRect().top
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().height;
const tooltipLeft = this.element.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.element.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );

this.tooltipElement.setAttribute( ‘style’, ‘top:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );

},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.remove( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};

window.TastyRecipes.ajax = {
sendPostRequest( url, data, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.send( this.preparePostData( data ) );

xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.status === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}

failure( xhr );
};

xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( data ) {
const formData = new FormData();

for ( const key in data ) {
formData.append( key, data[key] );
}
return formData;
},
};

window.TastyRecipes.ratings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;

this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const ratings = document.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’);
if ( ratings.length {
event.preventDefault();
this.defaultRating = event.target.closest( ‘.checked’ ).dataset.rating;
this.setCheckedStar( event.target );
this.maybeSendRating( this.defaultRating, event.target );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click’, e => {
// Bailout (don’t remove the tooltip) when the clicked element is a rating star, or it’s the tooltip itself.
if ( e.target.closest( ‘.tasty-recipes-rating’ ) || e.target.classList.contains( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}

window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( rating ) {
const ratingInput = document.querySelector( ‘#respond .tasty-recipes-rating[value=”‘ + rating + ‘”]’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = document.querySelectorAll( ‘input.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click’, currentEvent => {
const selectedRating = currentEvent.target.getAttribute( ‘value’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( rating ) {
if ( rating < this.minRating ) {
document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );
return;
}
document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( rating ) {
const commentTextarea = document.getElementById( 'comment' );
if ( ! commentTextarea ) {
return;
}

if ( rating {
window.TastyRecipes.staticTooltip.changeMessage( response.data.message );
window.TastyRecipes.staticTooltip.show();
this.updateAverageText( response.data, recipeCardElement );
this.maybeFillCommentForm( response.data );

// Hide the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.data, rating );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( data, recipeCardElement ) {
if ( ! data.average ) {
return;
}
this.setRatingPercent( data );

if ( ! data.count ) {
return;
}

const quickLink = document.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, data );
this.setPartialStar( quickLink );
}

const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = data.average;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), data );
},
setTextInContainer( container, data ) {
if ( ! container ) {
return;
}

if ( data.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = data.label;
}
return;
}

const averageElement = container.querySelector( ‘.average’ );
if ( averageElement ) {
averageElement.textContent = data.average;
}

const countElement = container.querySelector( ‘.count’ );
if ( countElement ) {
countElement.textContent = data.count;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( data ) {
this.defaultRating = data.average.toFixed( 1 );
const parts = data.average.toFixed( 2 ).toString().split( ‘.’ );
this.currentRatingPercentage = parts[1] ? parts[1] : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( target ) {
const cardRatingContainer = target.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}

const thisStar = target.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = 100;
},
maybeFillCommentForm( data ) {
if ( ! data.comment || ! data.comment.content ) {
return;
}

const commentForm = document.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}

const commentBox = commentForm.querySelector( ‘[name=comment]’ );
if ( ! commentBox || commentBox.value ) {
return;
}

// Add comment details for editing.
commentBox.innerHTML = data.comment.content;
if ( data.comment.name ) {
commentForm.querySelector( ‘[name=author]’ ).value = data.comment.name;
commentForm.querySelector( ‘[name=email]’ ).value = data.comment.email;
}
},
maybeResetTooltip( recipeCardElement, data, rating ) {
if ( this.savingRating === rating ) {
this.resetTooltip( recipeCardElement, data );
}
},
resetTooltip( recipeCardElement, data ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;

// Reset the default rating.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;

this.resetSelectedStar( cardRatingContainer, data );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}

const previousSelectedElement= cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘[data-rating]’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = document.querySelector( ‘#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.display.includes( ‘flex’ ) ) {
ratingsButtons.style.direction = ‘rtl’;
}

if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Select the rating that was previously selected in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating[value=”‘ + tastyRecipesRating + ‘”]’ ).checked = true;
}

const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click’, event => {
if ( ratingSpan === event.target ) {
return;
}
ratingSpan.previousElementSibling.click();
} );
}
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );
});

Recipe by Veda Sankaran
Photography by Dave Bryce 

Subscribe to TABLE Magazine‘s print edition.

Surprising Finds: Important Works at 3 Pittsburgh Arts Institutions

0
important art found at a local Pittsburgh Arts Institution
Greer Lankton, It’s All About ME, not you, 1996. Courtesy of Mattress Factory.

David Oresick, executive director of the Mattress Factory, suggests a visit to three Pittsburgh arts institutions to dive into important works on view.

On Kawara, Feb. 29, 1988, 1988

Carnegie Museum of Art, 4400 Forbes Avenue
As a native Pittsburgher, I’ve loved this painting since I was a teenager. It’s a piece that opened my mind to what painting and art was or could be, in part because it is an ongoing meditation on the present, travel, creation, and time. I’m always inspired by CMoA’s collection.

Andy Warhol, Sprite Heads Playing Violins, 1948

The Andy Warhol Museum, 117 Sandusky Street
I’m always drawn to Warhol’s very early works. There is something I find compelling about the work of artists who are still learning how to speak in their own voice. This drawing is warm, funny, and playful, and it just pulls me in right away.

Greer Lankton, It’s All About ME, not you, 1996

Mattress Factory, 500 Sampsonia Way
Lankton’s incredible It’s All About ME, not you is one of my favorite works in our collection. It’s so raw, heartbreaking, and honest, but profoundly beautiful and moving to me. The apartment Greer created is so real and clearly lived in. The density of material provides me something new to discover, no matter how many times I go through it.

Story by David Oresick

5 Must-See Artworks in Pittsburgh

0
must-see artworks in pittsburgh
Gavin Benjamin, Cynsere, Jeannette, PA, from the series Museum Pictures, 2021. Courtesy the artist © Gavin Benjamin.

Patrick Moore, director of The Andy Warhol Museum, lists five artworks held in Pittsburgh-area museums that we all need to see in 2023.

Nicole Eisenman, Prince of Swords, 2013

Carnegie Museum of Art, 4400 Forbes Avenue
Eisenman’s work combines schoolboy humor with a deeply personal depiction of the queer communities to which she belongs. Her sculptural practice, rendered in lumpy white plaster, updates classical statuary with determined, everyday figures. Prince of Swords at first disappears into the line of classical figures lining the mezzanine of the museum’s Hall of Sculpture. It is only on closer inspection that the form reveals itself as the prototypical contemporary figure, slumped over and gazing at a cell phone.

Bruce Conner, Crossroads, 1976

Carnegie Museum of Art, 4400 Forbes Avenue
Conner’s hypnotic loops of found film depict the slow-motion horror and beauty of atomic weapons being detonated over the Pacific. The installation at the Carnegie is particularly beautiful as it can be glimpsed through a window from the permanent collection galleries. Before entering the gallery dedicated to the film, one experiences its terror even while being surrounded by serenity in the larger painting galleries.

Andy Warhol, Skulls, 1976

The Andy Warhol Museum, 117 Sandusky Street
The Andy Warhol Museum celebrates every aspect of Warhol’s wildly prolific career, showing both the fascination with fame and glamour alongside a darker side that relates to the fragility of life as informed by these monumental memento mori, or reminders of death. Warhol’s Skulls are indeed a reminder that we live in this world for only a moment. However, they are also relentlessly cool and rebellious, serving as the backdrop for a recent Calvin Klein underwear campaign and countless selfies taken by museum visitors.

acrylic and silkscreen ink on linen, artworks in pittsburgh
Andy Warhol, Skull, 1976, © The Andy Warhol Foundation for the Visual Arts, Inc.

 

Keith Haring, Untitled, 1981

Carnegie Museum of Art, 4400 Forbes Avenue
This massive work on tarpaulin echoes the streets and subways where Haring first made his reputation as a graffiti artist who would pass into the larger popular culture through his relentlessly cheerful figures that were perfectly suited to hats and t-shirts. However, being at the center of the New York art world during the 1980s, Haring’s work is inevitably shot through with reminders of the AIDS crisis. As an active participant in groups such as ACT UP, Haring utilized his art to urge others to “take direct collective action to end the AIDS crisis.”

Gavin Benjamin, Cynsere, Jeannette, PA, From the Series Museum Picture, 2021

The Westmoreland Museum of American Art, 221 N. Main Street, Greensburg
Benjamin set out to demonstrate that communities of color are intertwined into the daily life of a seemingly white and conservative area. The artist not only documented these Westmoreland residents but invited them into the dark paneled formality of the museum to be photographed.

Story by Patrick Moore

Visual Nourishment: 6 Must-Visit Pittsburgh Art Galleries

0
Chuck Olson, 'The Royal Cup,' acrylic and collage on canvas. Courtesy of James Gallery.

While the following Pittsburgh art galleries haven’t posted their full 2023-24 exhibition schedules yet, they’re assets to our community and worth a visit.

Space Gallery

812 Liberty Avenue

This free contemporary Downtown gallery frequently celebrates local artists with exciting exhibits easily viewed through its large, front-facing windows.

BOOM Concepts

5139 Penn Avenue

This Black-led community organization advocates for local artists with an impressive artist residency program. Previous exhibits have been held both in-house and in remote locations.

Installation view, James Gallery.

 

Wood Street Galleries

601 Wood Street

Contemporary art gallery focused on technology, often featuring interactive installations involving film, video, and robotics.

James Gallery

413 S. Main Street 

This West End gallery aims to both surprise and delight visitors with exhibits intentionally curated to challenge the public’s preconceived idea of art.

Photo by Tom Little. From ‘thump, whoosh, rumble: CMU MFA Exhibition.’ Courtesy of Miller ICA at Carnegie Mellon University’s Facebook.

 

937 Liberty Gallery

937 Liberty Avenue

This intimate gallery space in Pittsburgh’s Cultural District offers modern exhibits largely revolving around current issues.

Miller Institue for Contemporary Art

Purnell Center for the Arts 5000 Forbes Avenue 

This Carnegie Mellon University gallery showcases impressive exhibits throughout the school year and is both free and open to the public.

Story by Lisa Cunningham