One of a kind, Andrea Pirlo trading card.
Somehow I missed this Hopworks release of Timber Jim IPA that benefits Meals on Wheels People. Jim does not stop doing things for other people. I had shaken his hand a couple times at matches did not really meet him as person until he found out about a patch I made modeled after the Paul Bunyan statue in Kenton. He wanted to use the image for stickers as a fundraiser for restoration efforts. (More on that to follow) It was wonderful to meet him in a non-Timbers context. He is gung-ho about everything he does. Jim’s mother used to drive for Meals on Wheels up until she started needing their services. Watch him talk about it on KPTV. Despite Widmer’s official relationship with he Timbers, this is at least the second collaboration by Hopworks with a Timbers figure.
[Images via @hopworksbeer]
There are some minor additions to the Season Tracker seen at the top of every page. Points Per Game (PPG) have been added to individual games (visible on rollover) as well as the current PPG in the legend under the individual match boxes. On the Standings chart, PPG has been added as well as the individual match result and the opposing team. As a bonus, the data is pulled from the match results the Season Tracker uses. This means the chart is updated the fly as I update a match, and I don’t have to monkey with the embedded javascript in the post. Can you say Data Integrity? Tim will appreciate this.
I made a WordPress plugin to help visualize match results and double as schedule that would allow me to easily see who and when we were playing. If you operate a WordPress-based site you can use it to track the Portland Timbers, or some other, inferior MLS team. Rolling over one of those squares will give you the match date, and if the match is finished, goals, and other results. A running tabulation of the season is kept at the bottom, and you can sort by home or away, conference, and games played, and more.
You can see it under the banner at the top of every page. Those are generated by a function called in the theme template. You can also generate it inline with shortcode in a post. [See below]
2016 Timbers Schedule and Results
Goals For: 2
Goals Against: 1
GP: 1
PPG: 3
Conference: 3
Supporters Shield: 6
MLS Power Ranking: 1
Goals For: 1
Goals Against: 2
GP: 2
PPG: 1.5
Conference: 6
Supporters Shield: 9
MLS Power Ranking: 2
Goals For: 2
Goals Against: 2
GP: 3
PPG: 1.33
Conference: 8
Supporters Shield: 13
MLS Power Ranking: 3
Goals For: 1
Goals Against: 4
GP: 4
PPG: 1
Conference: 9
Supporters Shield: 16
MLS Power Ranking: 8
Goals For: 1
Goals Against: 1
GP: 5
PPG: 1
Conference: 9
Supporters Shield: 17
MLS Power Ranking: 10
Goals For: 1
Goals Against: 3
GP: 6
PPG: 0.83
Conference: 9
Supporters Shield: 17
MLS Power Ranking: 10
Goals For: 3
Goals Against: 1
GP: 7
PPG: 1.14
Conference: 8
Supporters Shield: 14
MLS Power Ranking: 8
Goals For: 1
Goals Against: 1
GP: 8
PPG: 1.13
Conference: 8
Supporters Shield: 13
MLS Power Ranking: 10
Goals For: 2
Goals Against: 1
GP: 9
PPG: 1.33
Conference: 7
Supporters Shield: 9
MLS Power Ranking: 9
Goals For: 1
Goals Against: 2
GP: 10
PPG: 1.2
Conference: 8
Supporters Shield: 10
MLS Power Ranking: 8
Goals For: 1
Goals Against: 2
GP: 11
PPG: 1.09
Conference: 9
Supporters Shield: 13
MLS Power Ranking: 8
Goals For: 1
Goals Against: 2
GP: 12
PPG: 1
Conference: 9
Supporters Shield: 15
MLS Power Ranking: 12
Goals For: 4
Goals Against: 2
GP: 13
PPG: 1.15
Conference: 8
Supporters Shield: 13
MLS Power Ranking: 11
Goals For: 1
Goals Against: 1
GP: 14
PPG: 1.14
Conference: 8
Supporters Shield: 14
MLS Power Ranking: 11
Goals For: 1
Goals Against: 0
GP: 15
PPG: 1.27
Conference: 7
Supporters Shield: 10
MLS Power Ranking: 9
Goals For: 2
Goals Against: 2
GP: 16
PPG: 1.25
Conference: 8
Supporters Shield: 12
MLS Power Ranking: 9
Goals For: 3
Goals Against: 2
GP: 17
PPG: 1.35
Conference: 5
Supporters Shield: 8
MLS Power Ranking: 8
Goals For: 0
Goals Against: 0
GP: 18
PPG: 1.33
Conference: 7
Supporters Shield: 10
MLS Power Ranking: 7
Goals For: 0
Goals Against: 0
GP: 19
PPG: 1.32
Conference: 7
Supporters Shield: 10
MLS Power Ranking: 7
Goals For: 1
Goals Against: 1
GP: 20
PPG: 1.3
Conference: 7
Supporters Shield: 11
MLS Power Ranking: 7
Goals For: 3
Goals Against: 1
GP: 21
PPG: 1.38
Conference: 6
Supporters Shield: 8
MLS Power Ranking: 6
Goals For: 2
Goals Against: 1
GP: 22
PPG: 1.45
Conference: 7
Supporters Shield: 11
MLS Power Ranking: 11
Goals For: 0
Goals Against: 1
GP: 23
PPG: 1.39
Conference: 7
Supporters Shield: 12
MLS Power Ranking: 11
Goals For: 3
Goals Against: 0
GP: 24
PPG: 1.46
Conference: 6
Supporters Shield: 10
MLS Power Ranking: 9
Goals For: 0
Goals Against: 2
GP: 25
PPG: 1.4
Conference: 6
Supporters Shield: 11
MLS Power Ranking: 11
Goals For: 1
Goals Against: 3
GP: 26
PPG: 1.35
Conference: 6
Supporters Shield: 11
MLS Power Ranking: 12
Goals For: 4
Goals Against: 2
GP: 27
PPG: 1.41
Conference: 6
Supporters Shield: 11
MLS Power Ranking: 10
Goals For: 1
Goals Against: 3
GP: 28
PPG: 1.36
Conference: 6
Supporters Shield: 11
MLS Power Ranking: 11
Goals For: 1
Goals Against: 0
GP: 29
PPG: 1.41
Conference: 6
Supporters Shield: 10
MLS Power Ranking: 9
Goals For: 2
Goals Against: 1
GP: 30
PPG: 1.47
Conference: 5
Supporters Shield: 9
MLS Power Ranking: 7
Goals For: 1
Goals Against: 3
GP: 31
PPG: 1.42
Conference: 6
Supporters Shield: 10
MLS Power Ranking: 11
Goals For: 0
Goals Against: 1
GP: 32
PPG: 1.38
Conference: 7
Supporters Shield: 13
MLS Power Ranking: 14
Goals For: 1
Goals Against: 0
GP: 33
PPG: 1.42
Conference: 7
Supporters Shield: 12
MLS Power Ranking: 10
Goals For: 1
Goals Against: 4
GP: 34
PPG: 1.38
Conference: 7
Supporters Shield: 12
MLS Power Ranking: x
The project started last season. Once I figured the basics of how I wanted it to work, I coded up some CSS, Javascript, and PHP to make it work. It’s pretty easy in a one use situation, where you’ve only got one season and you’re only interested in one specific team. Updating results was a matter of editing a text file with serialized information. It was simple, but not simple enough. I wanted to be able to do the whole thing in the backend of WordPress, make it reusable, and not limit it to one team. I imagined a scenario where someone might want to show two different teams on the same page, or the same team in multiple seasons. Simple enough… sort of. It needed to be flexible enough to easily accommodate expansion teams and teams that switch from one conference to another during different seasons. Figuring out the approach to take was the hardest part. It would have been easiest to create my own tables in the MySQL database, but I considered it a challenge rearrange my thinking and make it work with custom post types, taxonomy, and custom meta boxes.
Installing and activating the plugin automatically creates the teams. It’s up to you to create the matches and sign home and away teams to each match. You can do it manually, or you can upload it in a CSV spreadsheet and do it all at once. I used the MLS calendar subscriptions viewed in the Google Calendar, agenda tab. A copy and paste into a text document and some search and replacing made it a pretty quick affair, and one where I didn’t have to worry about typos on match dates. Now that I’ve got it figured out, I might even consider converting some other teams schedules and making them available for others.
Implementing it in a site can be done with a function call in a template, or shortcode in a WordPress post or widget. Of course, if you fail to specify a team, it defaults to the mighty Portland Timbers. After a game is done, you edit the match with the goals and optional information like Conference and Supporters Shield standings. If you’re logged in as an admin you’ll be able to access edit links directly from the match info rollovers.
On the roadmap, I want to submit it to the WordPress Plugin Repository. There are some minor options I’d like to add, and some tweaks to the UI. Once that’s tackled, I want to work on making the CSS more elegant, but I figure that can wait until the mechanics are more or less complete. Also, the interface is based on rollovers, so I need to make it work on touch devices too, because apparently these new-fangled iPhones and iPads are going to stick around…
I’d love to hear feedback. Until it makes it to the official repository, you can download the code here. No, I’m not on Github.
Check out this surreal screen cap of an old CONCACAF video of the Timbers CD Olimpia match. This match made me so very angry. This is right after the CD Olimpia player faked getting kicked in the face. The screen cap caught the video in mid screen transition wipe, and resulted in some vaguely creepy imagery. It reminds me of Munch’s The Scream with a touch of Hieronymus Bosch. (Yes, I keep these things on my hard drive for some reason.)
The Timbers front office response left a lot to be desired, but Dino Costa has finally lost his job in Portland. There are limited number of these patches available. A set of 2 sells for $5, with $4.50 going to the Southern Poverty Law Center.
You’re looking at virtual clothing for avatar’s in the virtual reality world Second Life. Not limited to Timbers supporters, however. You can also buy other (unlicensed) virtual team gear as well.
Two good interviews with Caleb Porter this week. The first on FourFourTwo is quite lengthy, with Caleb about his past coaching experiences at all levels, and what he’s learned. He’s talked about it briefly in other interviews, but not in such detail. The second interview is in actually in the Soccer Made in Portland podcast, which I listen to regularly. Unlike previous SMIP interviews with Porter, this one took place with everyone in the same room instead of being phoned in. (OK, there was a Caleb Porter appearance on the live broadcast of SMIP in 2016.) Porter talks a lot about T2 and development, as well as the first team starting 11 positions as injured players become available. He weighs the benefit of Valentin vs. Powell, and Vytas vs. Miller. What starts out as a cut and dry answer to the question of further moves in the summer transfer window get’s a little interesting. Somebody might be shopped, and there’s a position where Caleb definitely wants an upgrade. Usually the best (and rarest) part of any Caleb Porter interview involves him breaking into laughter. If you only listen to one part, tune into the 17:00 mark to hear Porter on Harold Hanson’s first appearance for the Timbers (in a regular season game).
Caleb Porter, One-on-One: I had it all figured out, then I got punched in the nose
Read it: FourFourTwo
Soccer Made in Portland: 2017 Episode 28 with Caleb Porter
Listen to it: Soccer Made in Portland
X = out due to injury.
Red rectangle = Red card suspension.
Scribble = Unavailable due to international duty.
Out of the 14 guys available to play, 2 of them are backup goalies…
Alternate post title: Rostarmagedon. ( Roster + Armageddon )
[Graphic: Alpha Wilson]

I thought it would be easier to track down the year of this car by the taillights, but I couldn’t figure it out. It would be great if it was a 1975 model, but the taillights seemed closer to 80’s. I spent way too much time looking at Trans Ams and Firebird’s. The minute after I posted this, I realized realized it’s probably a Camaro… 1980 from the looks of it. I’m a Mopar guy myself., but this is pretty sweet. I don’ think I could pull it off though.
[Photo via a friend of Natalie Bleibtrey]








