Posts By Mike

Rails views, internationalization, special characters, and testing with Rspec

The problem

File this under small problems that take more time than they should to solve, and I couldn’t find an answer with a web search.

Let’s use a simple example. If you have text like this in your translation file (e.g. en.yml):

users:
  new:
    header: "Let's go!"

And then show it in a view template (e.g. app/views/users/new.html.erb):

<h3><%= t('.header') %></h3>

And then try to match it in an Rspec test, you’ll get an error that it couldn’t be found:

expect(response.body).to include(I18n.t('users.new.header'))

Failure/Error: expected "[...]Let&#39;s go![...]" to include "Let's go!"

This is because in the response.body the single quote character is rendered in the HTML as an html entity (aka a character reference). This is Rails sanitizing the text to prevent injection attacks. That Let&#39;s go! you see above appears as Let's go! in the browser.

Options for solutions

One thing you can’t do is just put Let&#39;s go! in your translation file, as it will be rendered as Let&amp;#39;s go! because Rails is now escaping the html entity itself.

So what can you do? You could:

  1. Declare the text in the translation is html safe – then Rails won’t sanitize it. You can do this by adding _html to the key:

    users:
      new:
        header_html: "Let's go!"
    
  2. Or, call CGI.escapeHTML which will also convert the quote character in the test, so it matches what’s rendered in the view:

    expect(response.body).to include(CGI.escapeHTML(I18n.t('users.liveness_checks.new.header')))

Neither solution is ideal – if the translation content changes at some point in the future you could easily overlook this kind of one-off escaping and leave it in place even though it’s not appropriate anymore. This would make it a likely point of confusion for someone inheriting your code. But I recommend option 2, as you’re dealing with the issue in the test rather than in the actual view rendering, so you’re not introducing any possible future risk in the production environment.

A note on the Faker gem: if you’re using it to generate random names, you will get random failures for these kinds of tests, when Faker gives you a name like O'Hara

Rspec with Rails 7 and System Tests

Hello world! It’s time for my first post in over 4 years.

I recently set up a new Rails 7 project with Rspec and looked online for tips, as one does. I’ve set up many Rails projects before, but not yet with Rails 7, and it’s been a while. The top result in Google for “rails 7 with rspec” is currently Adrian Valenzuela’s Setup RSpec on a fresh Rails 7 project. His post was really helpful for me shaking off the rust. So rather than writing another post that’s 80% the same, I’ll just share a few additional tips. Think of this post as a companion piece to Valenzuela’s.

Running rails.new

Since you’re using Rspec you can add --skip-test since we don’t need the default MiniTest setup:

rails new your-project -d postgresql --skip-test

Note there is also an option for --skip-system-test but after doing some side-by-side comparisons, I found that if you run --skip-test you are also effectively running --skip-system-test. So if you want system test support – and you probably do – there’s some extra setup you have to do yourself. More on that below.

FactoryBot

Valenzuela notes in a comment on his post that his instructions for adding a spec/factories.rb file are incorrect. But the instructions are still there in the post, so look out for that. You will instead want one file per model in the spec/factories directory (and when you use a scaffold generator it will put factory files there).

System Specs

The configuration shown in his post for spec/support/chrome.rb results in running a headless browser for every system spec, which may be fine for a Javascript heavy site, but could be inefficient for other sites. As explained by Harrison Broadbent in Refactoring from feature specs to system specs:

If we didn’t add this config [see below], RSpec would use selenium for everything. There’s nothing wrong with this… it would just be an unnecessary performance slowdown… rack_test runs a lot faster than selenium, but it doesn’t support javascript. By using rack_test as the default driver for our system specs, they run much quicker. Then we tell RSpec to use selenium for tests that require javascript, since selenium emulates a full browser, and we get the best of both worlds — performance by default, and javascript testing when we need it.

So I’ll recommend using the configuration shown in Broadbent’s post:

#spec/rails_helper.rb

RSpec.configure do |config|
  ...
  config.before(:each, type: :system) do
    driven_by :rack_test # rack_test by default, for performance
  end

  config.before(:each, type: :system, js: true) do
    driven_by :selenium_chrome_headless # selenium when we need javascript
  end
end

If you ran rails.new with --skip-test as I recommended above, you will also need to add the gems shown in Broadbent’s post, since --skip-test also skips the system tests setup (which consists solely of adding these gems):

#Gemfile

group :development, :test do
  ...
  gem "capybara"
  gem "selenium-webdriver"
end

Lastly, I recommend Noel Rappin’s post A Quick Guide to Rails System Tests in RSpec as he has a comprehensive overview and also has tips for updates related to Devise and CircleCI.

Terry Toppa, 1939-2021: a remembrance of my father

My father passed away on May 10 last year, after a short and unexpected battle with cancer (aside from some back pain, he was doing fine just a few weeks earlier). I wrote his obituary the next day. There was a short graveside committal service, where I also had the opportunity to say a few words about him. I want to share those words here, and his obituary. Two days ago, March 10, he would have been 83.

My remembrance of him

I want to thank all of you for coming today. It’s a testament to who my father was, and his place in our community, to see so many of you here today. A few days ago, the Newport Daily News columnist Jim Gillis offered a remembrance of my father. He wrote that whenever he saw Terry Toppa, they discussed two topics. One was small businesses in Newport, and the other was the Red Sox. At home I have a collection of about two dozen ticket stubs from all the Red Sox games I went to with my Dad in the late 70s and early 80s. I’ve kept them all these years because they represent some of the happy childhood memories he gave me, and the bond we shared. My father loved all his children and grandchildren, and found a way to share a bond with each of us.

Terry was also an accomplished athlete, and many of you here today know him from the tennis courts, or in earlier years, the basketball courts. As I grew up, my interests took me away from sports, and it was only when I was older that I realized he had never expressed even the slightest hint of disappointment, even though I’m sure he would have loved for me to follow in his footsteps. He loved me for who I am, just as he loved each of his children and step-children for who we are.

In many ways my father was my role model, and I like to think that many of my best qualities as a man and as a father I learned from him. Something my siblings and I all have in common is his work ethic. One of my early memories of him is watching him down on the floor with a hammer stapler, laying a carpet in a hot attic, sweat pouring off him, to start making it into a room for me and my sisters. Growing up in Newport, I was proud of all the different signs in town with the name Toppa on them. My father was the reason for several of them, from the different businesses he started over the years, and all of them were successful. Those accomplishments speak to more than just a work ethic – they also speak to his drive, imagination, and boldness.

Terry was an optimist, never expressed bitterness, and always looked for the best in people. He was known as a man of few words, but he always knew the right thing to say, and wisdom to share, when it mattered most. During his last couple weeks in the hospital, when we still weren’t sure if there might be a treatment for him, he told me this – “I’ve said I love you to all of you more in the past week than I have in my whole life, and I’m not going to stop saying it when this is over.” So the wisdom I’d like to share from him today is to not wait to express your love for each other.

Thank you all again for coming. It means a lot to me and all of Terry’s family that you are here with us today.

His obituary

Terrence Steven Toppa, 82, of Portsmouth, loving husband, father of four children and three step-children, passed away on Monday, May 10, 2021. Terry was born on March 10, 1939 in Newport, RI to Steven and Katherine (Shea) Toppa.

A lifelong Newporter, Terry was a loving husband and father, an accomplished athlete, and a successful entrepreneur. He raised three children, E’loise Tamer, Rebecca Toppa, and Michael Toppa with his former wife Susan Killebrew. He married Patricia (McCarthy) Toppa on May 25, 1980, and together they raised their daughter Nicole Nicodemus (Keith). Terry also helped raise three step-children, Stephanie Pires, Melissa Henry (Rob), and Lewis Abramson (Anita).

In high school he was captain of the basketball, baseball, and football teams at De La Salle academy. He played on the basketball teams for the University of Rhode Island and then Providence College, where he graduated in 1963. He was ambidextrous and was well known for making certain basketball shots with either hand. Later in life he became an avid tennis player and made many friends on the courts at the International Tennis Hall of Fame. He also won their meatball contest two years in a row with his famous meatballs.

In the 1960s Terry taught math at Thompson Junior High for three years and was an assistant football and basketball coach at Roger’s High School. He opened and operated several successful businesses in the Newport area. He opened Toppa’s Food Service (originally named The Toppa Company) in 1966 with his brother Paul. The Toppa’s delivery trucks are a common sight today in Newport. In 1990 he opened Toppa’s Maytag Laundry, and in 1985 he obtained his broker’s license and started Toppa Realty. He continued to work as a real estate broker for Re/Max of Newport for the rest of his career.

Terry was preceded in death by his parents and his brother Paul Toppa. He is survived by his wife Pat, his children and step-children, his sister Pat Olechnowicz, eleven grandchildren, a great grandchild, and numerous cousins, nieces, and nephews.

Ad for Sugar in 1966 Issue of Time

1966 ad for sugar in Time magazine

1966 ad for sugar in Time magazine

In 1995 I photocopied this ad from a 1966 issue of Time magazine. I was in grad school doing some research on the Vietnam war, and couldn’t help but notice it. It’s almost as over the top as the old Saturday Night Live fake ad for speed. I thought I lost the photocopy years ago, but found it in a box in my basement the other day.

If you can’t make out the “Note to Mothers” at the bottom, it says:

Note to Mothers: Exhaustion may be dangerous – especially to children who haven’t learned to avoid it by pacing themselves. Exhaustion opens the door a little wider to the bugs and ailments that are always lying in wait. Sugar puts back energy fast – offsets exhaustion. Synthetic sweeteners put back nothing. Energy is the first requirement of life. Play safe with your young ones – make sure they get sugar every day.

Of course, it’s the exact opposite of the truth:

Studies have shown that downing 75 to 100 grams of a sugar solution (about 20 teaspoons of sugar, or the amount that is contained in two average 12-ounce sodas) can suppress the body’s immune responses. Simple sugars, including glucose, table sugar, fructose, and honey caused a fifty- percent drop in the ability of white blood cells to engulf bacteria…[and] can reduce the ability of white blood cells to kill germs by 40 percent. The immune-suppressing effect of sugar starts less than thirty minutes after ingestion and may last for five hours…[and]…Sugar sours behavior, attention, and learning…

This got me wondering if these unhealthy effects of sugar were known at the time, so I did some looking around online. It seems like they weren’t, but of course, there was no scientific basis for all the claims in the ad, either. In 1972, Prof. John Yudkin published “Pure, White, and Deadly,” about the dangers of sugar, which promptly led to unjustified attacks on him and his work that ultimately led to the end of his career. At the time, the food industry was promoting a low-fat, high-sugar diet, so his research stood in the way of that. He wrote:

“Can you wonder that one sometimes becomes quite despondent about whether it is worthwhile trying to do scientific research in matters of health?” he wrote. “The results may be of great importance in helping people to avoid disease, but you then find they are being misled by propaganda designed to support commercial interests in a way you thought only existed in bad B films.”

I can think of some other areas where this is still the case today…

RubyConf 2018 is about to start, so let’s talk about RubyConf 2017!

RubyConf 2018 starts tomorrow, and just like I did with RailsConf, I’m very belatedly going to share some highlights from RubyConf 2017, which was in New Orleans last November. It was my first time attending RubyConf, and what struck me the most was the really strong sense of community. Here’s what one first-time attendee had to say:

…This conference was so incredibly worth it. I learned about sweet gems, cool projects, and job opportunities. But more importantly, I met SO MANY totally epic and amazing individuals that even after only three short days I happily now consider friends. I cannot wait to follow their coding lives and journeys in the years to come. I am confident that so many of them are going to do great and groundbreaking things. Plus, I cannot WAIT for my next RubyConf.

That’s from the post 31 thoughts I had while attending my first #RubyConf as an Opportunity Scholar. RubyConf’s Opportunity Scholar program provides financial support for folks who wouldn’t be able to attend otherwise, and are getting started with Ruby. The Scholars are then each matched with a Guide – experienced people who can help them navigate the conference, and make connections for professional development and job opportunities. I applied to be a Guide for this year’s RubyConf and I was selected – I’m looking forward to it!

RubyConf has three tracks of talks, so it’s not possible to attend them all, but here are the ones that were my favorites, including links to the videos for each of them:

  • Live Coding Music with Sonic Pi – this was a really fun talk on Sonic Pi, which Sam Aaron live-programmed while DJing the after-party that night. Here’s video of the talk and a short clip of him DJing:
  • There’s Nothing.new under the sun – this talk includes highlights from some of the best conference talks in the history of Ruby, which required a huge research effort by the presenters. It’s also a great introduction to what makes the Ruby community special. The presenters’ resource list includes links to the talks that the highlighted. Video
  • Code Reviews: Honesty, Kindness, Inspiration: Pick Three – this was my favorite talk, as doing code reviews effectively is one of the greatest challenges teams face, and this talk included a number of innovative and fantastic ideas for doing them well. Video
  • You Are Insufficiently Persuasive – Sandi Metz’ keynote – need I say more? It’s an excellent talk on working well with others: why it’s important, how to do it, and how not to do it. Video
  • High Cost Tests and High Value Tests – an excellent overview of the costs and benefits of different types of tests, and slow tests. Slides | Video
  • Deterministic Solutions to Intermittent Failures – almost all large tests suites I’ve seen over the years have at least some challenges with intermittent failures (flaky tests). This talk consists of hard-won – and refreshingly specific – advice on how to address these challenges. Video
  • Git Driven refactoring – this talk showed me ways of using Git that I’d never thought of before, to make your code better, and also a good introduction to the SOLID principles. Slides | Video

And since the conference was in New Orleans, I now have to show you pictures from some of my time spent outside the conference…

Watch Fish Story (フィッシュストーリー), Right Now

Fish Story movie poster

Fish Story movie poster

If you might like a movie that is equal parts…

  • Memento: but instead of the story unfolding in reverse, it unfolds in a completely jumbled sequence, going from 2012, to 1982, to 2009, to 1975, and then back to 2012. If you enjoy a movie that calls for your active mental participation, and you appreciate the movie maker’s attention to detail in making all the seemingly disparate threads of a story mesh together, then Fish Story is for you.
  • Anvil! The Story of Anvil: except instead of a story about a briefly famous band that falls into obscurity, the band in this story, Gekirin, goes from obscurity to oblivion. They write a punk song in 1975 that is ahead of its time, that almost no one appreciates, but ultimately is the key to saving the world (yes, punk rock can save the world, and fortunately, they actually wrote a great track for the movie).
  • Armageddon: in 2012, the destruction of life on earth by asteroid is imminent. Last ditch attempts to save humanity, involving space ships and nuclear warheads, are involved. If you’re wondering what a forgotten punk rock song from the 70s has to do with saving the earth from an asteroid 37 years later, well you’ll just have to watch the movie!
  • The Karate Kid and Power Rangers: a young man who isn’t sure why his father forced him to endlessly practice martial arts as a child finally finds his purpose.
  • High Fidelity: the cool record store owner in this movie has the same encyclopedic knowledge of music as John Cusack’s character, but his sadness does not come from girl troubles.
  • If You Give a Pig a Pancake (which is a children’s book, not a movie): after watching Fish Story, you might start thinking about causality, conditionality, and contingencies, but all I could think of was this book. Each step in the story makes sense by itself, but they all add up to a crazy spectrum of events.
  • …then you will enjoy Fish Story. There’s also a doomsday cult, a bitter old man, a brilliant mathematician, a hostage situation, and a love story, but I ran out of movie analogies. I encourage you to not read any plot summaries before watching it – a lot of the fun is watching the story unfold, as it definitely does not follow a predictable plot line. But I will share with you a bit of the review from Lost Turntable, which explains what makes it a good movie:

    Although the idea of Fish Story is more than a little silly, its conceit is not. At its heart, Fish Story is about how music can connect with people and change their lives in unexpected and amazing ways. It shows how music can give us courage and hope, and challenge us to make ourselves and those around us better. It shows how a song, a stupid little song that almost no one in the world knows about, can drastically affect and change for the better the lives of people who have never even heard it. And when you think of it like that, it’s not hard to imagine that a song could, somehow, actually save the world someday.

    Unlike modern American movie trailers that summarize the whole movie for you, the Japanese trailer for it gives you a sense of the movie without giving away the story (with subtitles).

    View on YouTube

    Unfortunately, it’s currently not available on Netflix streaming, but it used to be, and may come back in the future (here’s the Fish Story streaming page on Netflix if you want to check). Netflix does have it on DVD. It may be on other streaming services – there are several movies with this name, so definitely make sure you’re looking for the Japanese one.

    Originally published March 1, 2012

One Day in Tokyo: Asakusa, and a River Cruise to Odaiba

If you have the misfortune of visiting Tokyo for only a few days, you’ll find it hard to decide where to spend your time in a city that has so many amazing things to see and do. A good way to get a sense of the traditional, slower-paced Tokyo, as well as the modern, fast-paced Tokyo in a single day is to venture to the northeastern district of Asakusa in the morning, with its temples and buildings dating back to the 1950s (Tokyo was essentially leveled in the WWII fire-bombings, so the 50s is considered old for Tokyo architecture). Then take a cruise south on the Sumida river, which will take you under about a dozen architecturally distinct bridges. The cruise ends on the man-made island of Odaiba in Tokyo Bay, which offers endless attractions for modern shopping and hi-tech fun, and even a sandy beach. At the end of the day (or night), head back to the mainland on the Yurikamone line, which does an entirely gratuitous 360° loop as it crosses the river, giving you a panoramic view of eastern Tokyo.

Asakusa

Asakusa is a well known part of Tokyo, and many others have written about it, so I’ll just give you a summary from Wikipedia:

Asakusa is… most famous for the Sensō-ji, a Buddhist temple dedicated to the bodhisattva Kannon. There are several more temples in Asakusa, as well as various festivals… For most of the twentieth century, Asakusa was the major entertainment district in Tokyo… In its role as a pleasure district, it has now been surpassed by Shinjuku and other colorful areas of the city… It is central to the area colloquially referred to as Shitamachi (not an official designation), which literally means “low city,” referring to the low elevation of this old part of Tokyo, on the banks of the Sumida River. As the name suggests, the area has a less frenetic and more traditionally Japanese atmosphere than some other neighborhoods of Tokyo… In keeping with a peculiarly Tokyo tradition, Asakusa hosts a major cluster of domestic kitchenware stores on Kappabashi-dori, which is visited by many Tokyoites for essential supplies. Next to the Sensō-ji temple grounds is a small carnival complex with rides, booths, and games, called Hanayashiki. The neighborhood theaters specialize in showing classic Japanese films, as many of the tourists are elderly Japanese.

Asakusa is a part of Tokyo whose glory days are behind it, but still has a lot of old city charm, and continues to draw tourists as well as Tokyoites looking to spend some time away from the fast-paced modernity that defines most of Tokyo. If you visit during cherry blossom season, the park along the river will be packed with people having picnics to celebrate the start of Spring.

Sumida River Cruise

The river cruise boats depart from the Asakusa wharf. Don’t be shy about asking someone where it is. Plenty of people speak English, and if you’re not too far from it, someone may even walk you right to it. There are multiple destinations so make sure you’re getting on a boat headed to Odaiba! The cruise lasts about an hour, and takes you along the eastern side of Tokyo, so you’ll see a lot of interesting buildings and bridges. japan-guide.com has a helpful overview.

Odaiba

Odaiba is a cross between Disney World and Las Vegas: it has all the lights and dazzle of both, but is more family-friendly than Vegas, and has a lot more fun activities for adults than Disney World. Japan-guide.com has a good overview of Odaiba’s multitude of attractions. It was a frequent destination for the boys and I when we lived there in 2007. From where we lived in Shinagawa, Odaiba was only one stop away on the Rinkai Line. The boys especially loved the Toyota MegaWeb complex, the Palette Town video arcade, and the parks and beaches.

The Yurikamone Line is an attraction itself, and is definitely the way you should depart Odaiba. It’s fully automated – there is no one driving the train – and the tracks run in a loop on the eastern edge of the river, giving you a spectacular view of the city.

I’ve visited Odaiba about 20 times, and I still haven’t seen all of it (although that’s partly because the boys always wanted to do the same things every time we went). I’m recommending it for just a half day visit though, because it really will give you sensory overload. It’s worth a second half-day visit if you have time.

This post includes pictures from 3 visits to Japan, in 1999, 2004, and 2007.

Originally published April 30, 2009

RailsConf 2017 in tweets, and my “Why Do Planes Crash?” lightning talk

RailsConf 2018 starts in exactly one month, and I’m looking forward to it! This means I should probably get around to saying something about RailsConf 2017. The video above is cued to start at the beginning of a lightning talk I gave. The title was “Why Do Planes Crash? Lessons for Junior and Senior Developers.” Analyses of plane crashes show planes actually crash more often when the senior pilot is in the flying seat, often because junior pilots are reticent to speak up when they see problems, while senior pilots don’t hesitate to do so when the junior pilot is flying. There are some great lessons developers can apply from this for how to do mentoring and pair programming.

The lightning talks were at the end of the 2nd day, and I made a last minute decision that morning to sign up and put a talk together. I’ve given a number of conference talks before, but never to a crowd this big, and never with so little time to prepare. Then when it was time to give the talk, there was a technical issue that prevented me from seeing my notes, so I had to wing it. Under the circumstances I think it still turned out ok. Here are my slides (they’re also embedded below) and some tweets about the talk:

I work for ActBlue and we provided Opportunity Scholarships for people who normally wouldn’t be able to attend, for financial or other reasons.

4 of us from ActBlue attended, and my co-worker Braulio gave an impressive full-length talk explaining how our technical infrastructure supports close to 8,000 active organizations, and handles peak traffic like the 2016 New Hampshire primary night, when our traffic peaked at 300,000 requests per minute and 42 credit card transactions per second.

Here are some other highlights from the conference…

Video of Marco Roger’s talk mentioned above.

A group of us took in a Diamondback’s game the night the conference ended, and then the next morning a couple of us headed to the Desert Botanical Garden before flying home.

Lastly, here are the slides from my lightning talk:

Japanese Baseball on the 4th of July

This slideshow requires JavaScript.

As an American attending a Japanese major league baseball game for the first time, it turned out that the most fun part wasn’t watching the game, it was enjoying the highly choreographed, non-stop cacophony of alcohol soaked cheering and singing from the fans. The game itself was good, and was very much like watching two good major league American teams play. It was the Yomiuri Giants vs. the Hanshin Tigers, who have a long-running rivalry like the Yankees and Red Sox. The big difference from American baseball is the rituals the Japanese bring to the game. When you combine Japanese baseball fanaticism with their obsessions over convenience, cleanliness, and group activities involving alcohol, you get a unique experience.

Convenience begins with buying the tickets – I didn’t buy tickets until the morning on the day of the game, so all that was left were standing room only tickets. But I was able to buy them at a convenience store for only 1000 yen (about $11) each. Convenience stores here sell tickets for just about every major event in the city, with no surcharges like those obscene TicketMaster “convenience” fees. Getting to the game is also convenient on the subway, which takes you within a stone’s throw of the Giants’ home stadium, the Tokyo Dome. I didn’t even see a parking lot – if there is one, it must be small.

Cleanliness is apparent the moment you walk in the stadium. You’re allowed to bring in any food and drink you like, including alcohol. However, there are paper cup stations at every entrance, where you are required to give your drinks to a uniformed guard, who will pour them in cups for you, as they want to make sure all the metal cans and plastic bottles are recycled, and to minimize any mess. And there is no mess: every stairwell, hallway, stadium seat, and toilet is spotless. The stadium had an almost antiseptic feel to it, like a hospital: as an American, it felt utterly antithetical to any previous stadium experience of mine. I had to restrain a fit of laughter partway through the game, when a man sitting across the aisle spilled his beer (by then we had snuck into some empty seats in the nosebleed section behind home plate). Not only did he immediately get up and run to report the spill to a stadium attendant, the attendant than grabbed another attendant, and they rushed back to his seat with a pile of paper towels and a plastic bag to frantically clean it up.

Like in the US, beer is the drink of choice for many at baseball games, but hard liquor is also for sale. The people working hardest during the game aren’t the players, it’s the beer girls. They’re all young and pretty (presumably a requirement for being hired), and they carry pony kegs on their backs, so they can serve draught beer. They are in constant motion, huffing up and down the steep stairwells, serving beer and dripping sweat, but always with smiles on their faces. It was like watching marines doing basic training, but high on happiness pills. I felt exhausted just watching them. I noticed none of the same girls were around for more than a few innings, so presumably (hopefully) they were allowed decent breaks.

The most remarkable thing was the choreographed cheering, which started before the first pitch and went on continuously throughout the game (see the video above for a sample). Actually, there were a few brief breaks when the cheerleaders – yes, cheerleaders for baseball – came out to dance (so they should call them dancers instead, since they were definitely not cheerleading). The left outfield seats were occupied exclusively by the Toraki-chi (crazy Tigers fans), and the right outfield was for the Giants, and then fans for both teams were mixed together in the rest of the stadium. Each side had chants they sang when their team was at bat, and the other side mostly would stay deferentially quiet, except for especially good defensive plays. The stadium-wide coordination was impressive. Each team had a specific way to express their enthusiam for home runs. For the Giants, aside from an explosion of cheering, every fan has a small orange towel to wave, and in the center of their fan section were people waving two enormous flags (see the video below). Unlike in the US, nobody brings home-made signs. I thought it was all really a lot of fun for the first few innings, but by around the sixth inning the constant cacophony became numbing. But I wasn’t drinking, so that was probably a big part of my problem.

What also stood out to me was the lack of an announcer. Not a word was ever spoken over a PA system. The name of the current batter was usually incorporated into the crowd’s chant, so everyone was following the state of the game just fine without an announcer. My favorite chant was for the Giants’ American player Edgar Gonzalez, whose name is impossible for the Japanese to pronounce, but they did the best they could, chanting “Ed-o-ga! Ed-o-ga!”

Which reminds me, I did also pay some attention to the game 😉 The Giants clobbered the Tigers 10-2, mainly because the Tigers opening pitcher gave up 7 runs in the first few innings before they finally took him out. Here are the game’s full stats if you’re curious. Since I was still a bit jet lagged, it was a pleasant way to relax on the 4th of July, and have an experience that felt both American and uniquely Japanese.

Originally published July 10, 2012

Big Country’s Stuart Adamson: Underrated

Big Country's Stuart Adamson

Big Country’s Stuart Adamson

Stuart Adamson was the singer, lead guitarist, and primary song writer for Big Country, my favorite band. I’ve always been dazzled by his guitar work, but not being a musician myself, I was never really able to find the right words to describe what I was hearing. When I meet folks who play guitar, I always have to recommend they give a listen to Big Country, as most are not familiar with Adamson’s work, but I’ve never been able to explain exactly why he’s so good. The other day I came across Tom Kercheval’s blog – he’s an independent musician – and not only is he a Big Country fan, he listed Adamson as his primary influence, and unlike me, he’s able to explain Adamson’s talent:

…the thing that always struck me about Stuart’s playing was not so much his lead playing (although it was great) but his rhythm guitar playing, particularly the odd chord structures he came up with. To this day, he’s one of the few guitar players that gives me fits when trying to figure out what he’s playing. His use of droning, open strings when playing chords was so appealling to me, and the Scottish/Celtic sound of the playing as well. He is so underrated. Beyond belief underrated. I still think the album Steeltown is a guitar masterpiece. Listen to that one with headphones and just hear the guitar symphony that is going on on most of those songs – tons of parts interweaving with each other, creating a huge, totally unique sound. Just brilliant. Like no one else.

In regard to Steeltown, I would add that it is also a masterpiece lyrically. Unfortunately, despite a 4-star review from Rolling Stone when it came out, it went nowhere in the pop charts. I think the album was musically too intricate, and lyrically too dense, to stand a chance on pop radio. But those are the qualities that have given it staying power – more than 20 years after it’s release, the opening track Flame of the West can still send chills down my spine.

This bio piece provides a good explanation for what inspired his songwriting, and what gives it the rare quality of being deeply personal yet political at the same time:

My mum and dad also had some great friends who played folk and country music (my mum does a mean Patsy Cline) and they would come to our house after the bars were closed and people would sing through the night. This made me aware of the power of the song and how music was interwoven with the lives of the working class Scots I grew up amongst. I would watch these big rough, hard men declare their love of family and the land — emotions they would be embarrassed to admit to in conversation — in songs old and new. I realised a lot of my schooling was solely aimed at my learning to accept my place in the British class system and railed against it. I believe the measure of a man is in his actions and not his social background (maybe this is why I like the US…another disenfranchised Celt)… A lot of the darkness of the Steeltown album comes from remembering my first experiences of the prejudice of class and nationality and the obvious truths that little had changed in my adulthood. The desire to write initially grew out of just wanting to be a “real” band and then I found I was driven to communicate some of the joy and frustration of the human experience…

Those are the people I grew up amongst and I could see the beauty in such simplicity as well as the anger and beaten acceptance. I think that frustration and learned apathy is the daily bread of the great majority of people in the world and as such represents the greater part of life experience, certainly in the western world and is to me a fertile source of inspiration.

Here’s the opening track from Steeltown, Flame of the West:

Originally published April 12, 2006