On New Year's Eve 2008, George Sodini wrote in his online journal that since he had started going to the gym "my anger and rage is largely gone".
But on Tuesday night, that claim was proven false. Just after 8pm, Sodini, a 48-year-old computer programmer from suburban Pittsburgh, entered a dance class at his fitness club, pulled out two guns from his duffel bag and shot three women dead before turning the guns on himself.
According to Sodini's blog, in which the killer emerges as a troubled, lonely misogynist gripped by an abiding rage towards his family, he had already pulled out of the long-planned indiscriminate shootings twice.
Yesterday, the 5,300-resident town of Bridgeville, where the shooting spree took place, was reeling from the news that he had finally gone through with the attack, in which another nine people were injured, at least three of them seriously.
Stacey Falk, a member of the women-only dance class which Sodini picked for his murderous final act, described the confusion that reigned in the gymnasium after the killer, wearing workout gear, walked in.
After he had stood for about a minute, he switched off the lights, and started firing. "All of us girls were just ducking behind each other," she told the Associated Press. "I was behind a girl, one of the girls in front to get hit."
One of those shot was the class instructor, Mary Primas, who was 10 weeks pregnant and giving her last class before taking maternity leave.
"We turned around to put the lights back on and that's when I heard bullets," she told a local TV station. "I felt the first bullet on my left shoulder and then about 30 seconds later I felt the second in my back. I remember thinking I wanted to hold my breath because if he saw that I was breathing he would shoot again."
The shootings took only a few minutes and by the time police were called, the perpetrator was already dead. There were some reports, unconfirmed by police, that the killings had been intended as revenge on a former girlfriend.
The women who died were named as Heidi Overmier, 46, Elizabeth Gannon, 49, and Jodi Billingsley, 38.
Ms Overmier was a single mother who worked at a theme park. Ms Gannon was a radiology technologist described by a neighbour as "one of the nicest people you'll ever meet", and Ms Billingsley, a saleswoman, was remembered by a friend, Carole Gallo, as a "sweet girl" who would "bend over backwards to help you out".
The existence of Sodini's blog only emerged yesterday, after the attack. The 4,600-word screed begins with the gunman's personal details, including the accurately predicted date of his death and the pointed observation that he was "never married".
"Why do this? To young girls?" Sodini writes. "Just read below."
The first dated entry, on 5 November, says that he had planned to carry out such an attack last summer. He writes again towards the end of December, bemoaning his loneliness at Christmas, adding that he had not had a girlfriend since 1984. Then he sets a firm date, 6 January, for his attack, and talking of a sense of powerlessness over his life.
After a bitter attack against his father, a "useless sperm donor", he writes again on the earmarked day. "I can do this," he posts at 6.40pm. "Leaving work today, I felt like a zombie... my mind is screwed up." But later he comes back online, having apparently gone to the gym but backed out of his plan at the last minute. "It is 8.45pm," he writes. "I chickened out! Shit! I brought the loaded guns, everything. Hell!"
Between January and the beginning of this week, Sodini geared himself up once more. After an unsuccessful date, he writes: "There are 30 million desirable women in the US... and I cannot find one."
He refers to women as "little hoes" and keeps a list of reasons to carry out his planned attack. On his final day, Sodini speculates that he will soon face God. "Eternal life does not depend on works," he wrote. "Christ paid for every sin." After more rambling, he signs off with the exclamation "Death Lives!" and a chilling cry for notoriety: "My voice will speak forever!"
Yesterday, the impact of his actions had cast a pall over his hometown. "He did what he set out to do," the local police superintendent, Charles Moffatt, said. "I don't think anyone could have stopped him."
Join our new commenting forum
Join thought-provoking conversations, follow other Independent readers and see their replies