Posted by rick
Thu, 20 Mar 2008 13:44:00 GMT
‘Tis the season again: March Madness 2008 is just about to kick off. In preparation for the High Holiday we’ve once again done way too much analysis work, gargled with way too many stats, to pick the bracket of 64 winners. For those playing along at home, here’s our notes on how we see the games unfolding:
Round I
Indiana vs. Arkansas:
Indiana should be able to beat Arkansas, during the normal season; the coaching question is hard to call; if Indiana gets to the line (which Arkansas has a tendency to give to opponents) they will make free throws. Almost too close to call. Given the latest history (IU 3-3 under new coach; Arkansas has decent recent wins). Final nod to Arkansas.
UNLV vs. Kent State:
UNLV will not turn over the ball, and you can’t steal from them. Both teams are strongly defensive. Kent State is a better shooting team and will get to the free throw line more often. Based on this, Kent State.
Mississippi State vs. Oregon:
Mississippi State is our highest-ranked #8, Oregon our 3rd-ranked #9. The game is played in Little Rock, which slightly favors Mississippi State. Statistically Mississippi State dominates the inside (rebounding and blocking #6, #2 in the country), Oregon is a great shooting team, but plays almost no defense. Oregon can shoot over Mississippi State’s inside game, and Oregon can put up points efficiently. Miss. St. is a horrible free-throw shooting team, though neither team lives at the line; Miss. St. tends not to foul. Quality of schedule gives it to Miss. St.
BYU vs. Texas A&M:
Both games are both great rebounding teams. Texas A&M on the road plays very poorly (vast difference in the ability to put up points). BYU is a much better shooting team and a great passing team. Both are decent % defensive teams, BYU much better @ 3pt% defense. We see BYU outshooting a low-scoring A&M road team.
Butler vs. South Alabama:
Butler will not turn the ball over. Butler shoots and makes lots of 3’s. South Alabama doesn’t appear to be playing teams which shoot the 3. Butler refuses to rebound, while South Alabama will rebound pretty well. Butler plays basically the slowest ball in the country (hence the rebound #s). South Alabama gets to the free throw line. Butler lost to Drake, played noone else in the 64. Butler is senior-loaded and has been to the tournament a lot. Game is being played in Birmingham. Looks like Butler (even given locale, though we might like to see it go the other way, and it’s a hard call).
Gonzaga vs. Davidson:
Game is being played in Raleigh, NC. Davidson #1 10, Gonzaga #4 7. Both teams have some close losses, some strange losses, a number of easy wins, etc. Davidson will not go to the free-throw line and will not turn over the line. Many of the team stats are similar. Both teams have been to the tournament a number of times. Based upon past Gonzaga history (other than the Munson coached year), Davidson looks marginally better.
Miami vs. St. Mary’s:
St. Mary’s has the best assist defense in the country :-) St. Mary’s defends the 3 very well, and has better points-per-posession and ppp defense. Miami plays a better schedule. Miami shoots great free throws, much better than St. Mary’s. Miami has better (Pomeroy) adjusted offense, St. Mary’s has better defense. Miami can’t seem to win a road game. This is a close call, but the road record is the deciding factor.
West Virginia vs. Arizona:
Arizona shoots free throws well, and Thuggins will put Arizona on the line. Both teams are fairly low-possessions, so a low-possession game. WV blocks a lot, but shoots poor free throws. WV plays an inside game. AZ will shoot the three and get fouled. WV will outrebound AZ. AZ’s defense is horrible. Arizona’s Pomeroy SoS is unbeatable, and they came out of a tough non-conference with only 2 losses (Memphis & Kansas). WV has performed better recently and in their conference. Slight advantage to WV due to locale. Push to WV.
St. Joseph’s vs. Oklahoma:
St. Joe’s is #2 11, Oklahoma #4 6. They play essentially an identical pace, a slow one. Oklahoma defends, St. Joe’s offends. Pomeroy gives Oklahoma a tougher schedule than St. Joe. Game is at a neutral location. Both teams played Gonzaga (St. Joe’s lost, Oklahoma won)—both early. St. Joe’s gets to the foul line and tends to make them. Oklahoma played a tougher schedule. Slight edge to Oklahoma.
USC vs. Kansas State:
Kansas St. has devastating rebound stats. Same points-per-possession stats. Kansas State plays a fast game, USC more down-tempo. USC has a stronger Pomeroy schedule (see also, PAC-10 inflation). Most stats, other than seed, favor Kansas State. Game is being played in Omaha, NE. USC will hit the 3 and Kansas State doesn’t defend that. Kansas State will take it inside. This looks more like and 8-9 instead of a 6-11. Kansas State.
Marquette vs. Kentucky:
Kentucky is playing without Patrick Patterson. Kentucky is prone to turn the ball over, and Marquette is prone to steal the ball. Kentucky has serious problems with point production. No real reason to pick UK.
Baylor vs. Purdue:
Purdue defends, plays slow; Baylor offensive, plays fast. Baylor wins on points-per-possession. Purdue causes lots of turnovers. Baylor gets to the line and shoots better. Purdue is very pesky. Baylor appears to have trouble with slower inside-bound teams (aka Purdue), and Baylor seems to struggle away from home.
Notre Dame vs. George Mason:
Notre Dame will get every rebound. ND our 2nd #5, GM our worst 12. GM played very few notable teams, won their tournament. ND wins on Pomeroy numbers, SoS, and most stats. ND.
Clemson vs. Villanova:
Clemson cannot shoot free throws wroth a damn. Clemson plays a fast ballgame. Clemson’s stats (other than free throws) dominate Villanova’s.
Michigan St. vs. Temple:
Michigan State will outrebound, has comparable offensive stats, and defends better than Temple. Mich. St.
Drake vs. Western Kentucky:
Western shoots well and defends well, playing a pretty fast game. Drake slows the hell out of the game, won’t turn it over. Western commits 20+ fouls a game and Drake is the #8 FT% team in the country. Neither team is playing a strong schedule. Definitely the closest of the 5-12 matchups. Drake’s FT w/ WKU’s fouling gives Drake the win.
Washington State vs. Winthrop:
Winthrop will not hit a free throw, Wash. St. does OK. Both shoot the 3 fairly well, Winthrop defends it well. Wash. St. plays incredibly slow ball. Wash. St. doesn’t rebound; Winthrop does ok on rebounding. Washington State will not turn the ball over. Winthrop has low adjusted Pomeroy offensive efficiencly, won’t play a fast game. Washington State has good off/def Pomeroy numbers, but is in the PAC-10. This will be a slow-ass ballgame. Winthrop’s offense seems anemic, and they rely on a streaky shooter. Washington State’s offense seems limited as well. Game will be close; unlikely to beat Notre Dame. Winthrop’s defense could slump Washington State, so push for Winthrop win.
Vanderbilt vs. Siena:
Siena wants to steal the ball, and refuses to turn it over. Points per possession is similar. Vanderbilt’s defensive PPP is worse than Siena’s. Siena doesn’t foul (question about strength of schedule). Siena doesn’t defend the 3 well, while Vanderbilt is a great 3-point team. This will be an up-tempo game. Both teams give up a lot of offensive rebounds. Siena will steal the ball. Vanderbilt’s adjusted Pomeroy stats are better than Siena’s. Vanderbilt’s SoS numbers look significantly better. Vanderbilt has trouble on the road. Could be a close game. Siena’s center doesn’t score much and they look to be smaller inside (Pomeroy height). Looks like Vanderbilt will take it inside if they have trouble from the permiter. Vanderbilt for the win.
Pitt vs. Oral Roberts:
Pitt is offensively stronger, Oral Roberts is comparably defensively strong. Both teams are comparable in a lot of statistical areas, playing a similar pace of game. Pitt has better SoS. Pitt is on a recent good run and seems to scrap it out in the tournament. Oral Roberts hasn’t got anything compelling to overcome Pitt’s rebounding skill, scrapping, etc.
Connecticutt vs. San Diego:
Statistically there’s really no contest here. UConn. :-(
Louisville vs. Boise State:
Location slightly favors Louisville (Birmingham). Boise St. plays an uptempo game with strong shooting. Louisville defends the shot well. Boise State passes well, though so does Louisville. Adjusting for opponents Louisville’s O/D stats look much better than Boise State’s. Louisville has more tournament experience. I think Pitino will bring Louisville through over a team in a down conference year.
Wisconsin vs. Cal. State Fullerton:
Wisconsin slows it down, plays strong defense, Fullerton plays more offensively. Only Duke seems to have gotten Wisconsin out of their game. Wisconsin gets opponents to foul them and then lives at the line. Fullerton will foul. Wisconsin’s adjusted stats strongly favor Wisconsin (including #1 in defense in the country). Wisconsin’s schedule is vastly stronger than Fullerton’s. It’ll still be a close-scoring game due to the pace, but Wisconsin should prevail.
Stanford vs. Cornell:
Stanford rebounds well, Cornell doesn’t rebound at all. Cornell shoots very very well (5, 6, 11 in country wise) .. 76.27 from the line, though they don’t tend to get to the line (presumably due to the Ivy League competition). Stanford play a bit better offense than Cornell does defense. Game is being played in Anaheim. :/ Cornell’s opposing offense strength sucks. Stanfords adjusted #s look vastly better (even given PAC-10 inflation). Cornell does have an inside presence (7-footer) and strong 3-point shooting, played strong against Duke and beat Siena. It will be a closer game than people probably expect. Cornell is going to play a faster pace than Stanford. Don’t see Cornell winning in Anaheim though.
Georgia vs. Xavier:
Georgia is on a run. :-) hahahah. Georgia’s Gaines and recent home wins shouldn’t be enough to overcome Xavier’s statistical dominance.
Tennessee vs. American:
American turns the ball over a lot esp. given their slow pace. UT will get you to turn the ball over. American shoots 4th 3pt % in the country, but UT defends @ 20th against the 3. UT will outrebound American. Birmingham location favors UT. UT.
Georgetown vs. UMBC:
UMBC is very efficient at scoring, but plays little defense. UMBC never turns over the ball. UMBC is in a bad conference. Georgetown plays good defense. Another slow-ass game. UMBC never turns over the ball, though Georgetown does. Don’t really see how UMBC can be bad on defense in a bad conference and defeat Georgetown.
Texas vs. Austin Peay:
Texas has the #1 TO and TO rate stats in the country. Austin Peay steals a lot but Texas never lets that happen. Austin Peay doesn’t rebound. Texas doesn’t pass the ball. Texas is strong offensively against strong defenses, Austin Peay has horrible SoS numbers. Don’t see them stopping Texas.
Duke vs. Belmont:
Both teams run up and down the floor. Belmont’s defensive stats are too weak to keep up with Duke.
Round II
Notre Dame vs. Winthrop:
Notre Dame is better offensively, while Winthrop is stronger defensively. Notre Dame is a great 3pt% team (#3 in the country) and passes great. Winthrop’s defense is possibly strong enough to pose a challenge to Notre Dame’s offense. Notre Dame is a great rebounding team, Winthrop is decent, especially considering how slow of a game they place. The game will probably be a good one. Doesn’t appear as if Winthrop has the offensive guns to make it past ND.
Clemson vs. Vanderbilt:
A lot of stats are very similar. Clemson will clean up on the boards, but Vanderbilt may kill them on the free-throw line. Clemson defends the three very well, while Vanderbilt relies a lot on the three. Could be matched up pretty well, guards vs. inside game. Clemson will steal the ball. Vanderbilt has trouble on the road. It’s a close close call, but Vanderbilt probably loses on the road.
Pitt vs. Michigan State:
Tiny mile-high edge to Pitt playing in Denver. Mich. St. shoots better and defends shots better than Pitt. Both have great Orp stats. The game will be on the slower side. Nietzel is an unknown quantity, though usually shows up in the tourney. Mich. St. shoots much better free throws. Mich St.’s Pomerowy adjusted numbers are better than Pitt’s. Pitt will probably outrebound Mich. St. Mich. St. seems to be more likely to prevail.
Drake vs. UConn:
Drake beats UConn in both points-per-position (offense/defense) categories. Drake plays slow, doesn’t turn it over. Drake has good Pomeroy adjusted numbers, wrapping around UConn’s. Drake shoots great free throws but doesn’t necessarily get to the line, and UConn isn’t inclined to send anyone to the FT line. UConn gets lots of fouls, but Drake doesn’t tend to commit fouls. Drake is playing outside ball, UConn playing inside ball, blocking every thing that comes into the paint. We see Drake winning on the outside.
Oklahoma vs. Louisville:
Both teams are bad at the free throw line; UL puts other teams there, but it might not make much difference in this game. UL is slightly better defensively. Louisville shoots better, slightly. UL’s Pomeroy adjusted numbers are a little better, while Oklahoma’s SoS is a little better. OK has Griffin and Longar Longar in the middle. UL has Padgett distributing the ball. UL has been pressing lately. It may well be a close game, but we give Louisville the edge.
Kansas St. vs Wisconsin:
This will be Wisconsin’s slow ball against KS’s fast ball. Can Kansas State get to the inside against Wisconsin. Points-per-possession are dead equal, but Wisconsin’s Ppp defense is spectacular. KS rebounds incredibly well, Wisconsin well. Omaha slightly favors Kansas State. Again a question of whether Bo Ryan ball can overcome a skilled fast-paced opponent. No matter how Allen picks this it will be wrong, because Wisconsin is involved. Wisc. hasn’t played a fast-paced game since January. We give the edge to Kansas State.
Marquette vs. Stanford:
Both teams get offensive rebounds, but Marquette allows the other team to get them, significantly. Marquette shuts down the 3, but Stanford doesn’t really shoot it. Marquette will steal the ball, but Stanford doesn’t allow too many steals. Ppp (both offense and defense) are pretty much identical. Pomeroy adjusted numbers are virtually identical. SoS is pretty much the same too. Only one common foe (Sacramento State) that they both beat about the same. Offensive stats are pretty identical. Steals vs. blocks, w/ t-o’s end up averaging out to be about the same. This is a very close statistical matchup. Stanford plays slower, Marquette faster. Marquette beat Wisconsin (@ Wisconsin), which is stylistically similar to Wisconsin (close game, made a few more shots, a couple more free throws). The game is being played in Anaheim, which favors Stanford. Marquette is 7-3 in last 10, Stanford is 6-4. Marquette’s wins are maybe slightly better more recently. This game is pretty much a dead heat. Given that, we pick Stanford for local court advantage.
Purdue vs. Xavier:
Pomeroy adjusted stats favor Xavier offensively, fairly close defensively. Purdue had a rough pre-season. Xavier will outrebound. Purdue is forcing lots of turnovers, and Xavier will turn the ball over. Purdue is going to send Xavier to the line where they are very good. Xavier has good shooting %s. Will Purdue’s forcing turnovers, stealing and blocking overcome their tendency to foul and put Xavier on the line (+ Xavier’s good general shooting)? This is a hard-ass game to pick. The consideration of fouls called is reduced, generally, in the tournament, by fewer calls. We call this an OT game. Seth Davis picks Xavier to go far. We choose Purdue.
Butler vs. Tennessee:
Butler never turns over the ball, plays a slow pace, doesn’t rebound well, defends the 3 well. Butler shoots the 3 better, gets to the free-throw line more. UT relies on turning over the other team, running the ball and hitting the 3, as well as bringing some inside (if Chism, etc., aren’t in foul trouble). Pomeroy numbers for TN are somewhat better, and TN played a hard schedule. Butler is a vastly better free-throw shooting team. TN commits a lot of fouls, though fewer are probably called in the tourney. TN passes the ball better than Butler, somewhat. Not clear that Butler has played anyone who wants to score a lot of points. Tennessee seems to sometimes be able to win against a slower opponent, but not clear they’ve played a team like Butler. Pick Butler.
Davidson vs. Georgetown:
Georgetown passes very well (esp. for a slow possession team), Davidson also passes pretty well, but not as well. Georgetown scores in the paint very well. Hibbert is overrated. Ppp Davidson is right with Georgetown. The Pomeroy adjusted efficiencies favor Georgetown somewhat. Davidson played Duke & UNC tough @ neutral sites, played a tough schedule but didn’t put in a lot of wins; beat Winthrop decisively late in the season. Georgetown plays a tougher schedule, seems to occasionally get a ref on their side ;-) Georgetown shoots poorly from free throw, Davidson better; but Davidson doesn’t send people too often, and Georgetown even less. Raleigh location somewhat favors Davidson. Davidson could do it… it’s a somewhat bold pick.
Saint Mary’s vs. Texas:
Texas beat them soundly @ home earlier in the year. In that game apparently St. Mary’s tried to take it inside and got stomped and were forced to go outside where they didn’t convert. Rick Barnes is a shithead coach, but, still, is he going to lose this one? Texas.
Duke vs. West Virginia:
Duke wants steals & 3’s. WV won’t turn it over but doesn’t defend the 3 well. Duke is very fast-paced, while WV is significantly slower. Duke gets a lot of rebounds (they shoot well, but play a fast tempo). WV doesn’t shoot well. Duke probably cannot put Demarcus Nelson (6’4”) on Joe Alexander (6’8”). Neither team is shooting great free throws. Duke has better Ppp numbers (including adjusted Pomery numbers). Not clear what WV can do to overcome Duke here.
UNC vs. Arkansas:
Arkansas defends a bit better than UNC, but: UNC has Orp rank #1, offensively great stats. Hill & Townes aren’t capable of stopping Hansbrough inside. UNC.
Kansas vs. Kent State:
Kansas is the #1 Ppp offense, adjusted Pomeroy offense, #2 national assists, #21 Orp @ a #119 rank possession pace. Neither team is a stellar free throw % team. Kent plays very slow ball. Kansas puts up a lot of points. Kent’s strategy should be: foul early, foul often. Playing in Omaha, an adjusted 30 minute drive from Lawrence. Kansas.
Memphis vs. Mississippi State:
Rick Stansbury—moron; Dorsey, head case. Miss. St. will turn the ball over, while Memphis will not. Some major shot blocking (a “block party”, in fact). If Dorsey gets in trouble, Memphis is in trouble; and Dorsey is often in foul trouble. Memphis didn’t play much lately (C-USA), other than UT, which was a complete collapse of discipline, and they lost @ home. Memphis has only had one loss; only played UConn, OK, Gtown, w/ big men. Big men vs. Big men. Both teams shoot poorly from the line, but neither really fouls a lot. Miss. St. turns the ball over a lot, while Memphis looks to steal it. Question: if Memphis gets challenged for the first time in a long while, how do they respond to it? Based on the turnovers, probably see Memphis coming out of this.
UCLA vs. BYU:
Have identical points rankings, though different tempos (BYU much faster). UCLA doesn’t shoot the 3, while BYU will do inside or outside. UCLA’s Mbah Moute is maybe injured (maybe just nonsense). BYU rebounds defensively pretty well, but doesn’t do much offensive rebounding at all. They’re playing in Anaheim. UCLA is vastly better at the line than BYU. UCLA dominates the adjusted Pomeroy stats (including PAC-10 inflation). Can’t see BYU making this happen.
Round III
Louisville vs. Butler:
Butler plays slow ball, Louisville significantly faster. Butler will not going to turn it over, nor rebound the ball. Louisville shoots 65.5% free throws, Butler 73%. Louisville defends the three very well, while Butler takes a shit-ton of threes. The question seems to be can Louisville defend the 3 well enough while not getting stuck on the line bricking free throws. We don’t see Butler pulling it off, as we think Louisville will shut down the 3.
Davidson vs. Kansas State:
Kansas State outrebounds, but will turn over the ball a lot more often. Davidson never goes to the free throw line, though they shoot there decently. Davidson shoots better, and Kansas State doesn’t seem to be defending all that well. Kansas State fouls a lot. Questions about Beazley’s health. Picked Davidson.
Stanford vs. Texas:
Playing in Houston. Texas never turns the ball over. TX plays poorly against the Big-10 (Rick Barnes in effect). Common foes—TX beat UCLA @ UCLA (Stanford lost to them 3 times). By transitivity, Big-10 > PAC-10 (see Ballman for a proof that exceeds the margin space). Stanford outrebounds Texas, gets to the line a lot better, both shoot about 69% from the line. TX shoots the 3 better, though Stanford doesn’t really shoot the 3. Can Stanford stop Augustin/Abram? Q: Does Rick Barnes foot-shooting outweigh playing in Houston? Can’t see TX doing this, if they couldn’t do it last year with Durant. Stanford.
Purdue vs. Duke:
Duke is fast-tempo; Purdue down-tempo. Duke shoots 3’s well, Purdue doesn’t really defend it well. Purdue shoots slightly better free throws, defends slightly better. Purdue is slightly better defensive Ppp, but much worse offensively. Otherwise, Duke beats them in pretty much every statistical category. Duke doesn’t have a big guy, but neither does Purdue.
UNC vs. Notre Dame:
Once again, UNC doesn’t leave the greater Tarheel Metro Area (Charlotte). Harangody vs. Hansbrough. UNC plays a fast pace, somewhat faster than ND. They both have great offense #s. UNC shoots inside better, ND shoots the 3 better. Both shoot free throws well, rebound well. TO’s are a push, but UNC gets more steals. UNC plays against better defenses than ND, opposing offenses are basically identical. If any team in this quadrant is going to beat UNC, it’s ND. Probably one hell of a ballgame, but UNC probably wins it.
Kansas vs. Clemson:
Clemson bricks free throws. Kansas rebounds great and has an incredible offense. The few games KU lost one was a rivalry, one was OK St. slowing the game down, and the other was really won at the foul line. Don’t see Clemson doing it.
Memphis vs. Michigan State:
Michigan State passes the ball very well. Izz in the houzze. According to Ballman, Izzo hasn’t had a recruiting class that hasn’t been to the Final Four… this would be the first (update: this stat is a year off, they have one more year). Michigan State is rebounding much better than Memphis. Memphis’ Ppp’s are better. Memphis is almost the worst free throw shooting team in the country, Michigan State is much better. If Memphis’s Dorsey is committing fouls, Memphis will suffer for it. Memphis is defensively stronger. RIMBoy has been feeling the Memphis. Dead heat. We call it for Memphis still.
Drake vs. UCLA:
Phoenix anti-UCLA sentiment in effect. Both shoot free throws well. Drake doesn’t offensively rebound as well. UCLA & Drake are both playing pretty slow pace. UCLA is much more balanced than the UConn team we picked Drake beating. UCLA.
Round IV
Memphis vs. Stanford:
Questions as to the tree’s probation status and sobriety. The Lopezes vs. the Dorsey. Q: does the free throw shooting finally catch up with Memphis? Memphis defends the three very well. See Lopezes getting over on Dorsey, making it up on the line and winning.
Davidson vs. Kansas:
Can’t see Davidson going any further.
Duke vs. UCLA:
Playing in Phoenix. Duke’s tempo is a lot faster. Duke will shoot the three, and UCLA probably won’t defend it. Neither team will turn over much. Ppp numbers (Pomeroy adjusted) are both in the upper echelon; SoS comparable; so dead heat on Pomeroy once PAC-10 inflation taken into account. See Duke coming out of there.
UNC vs. Louisville:
Can Padgett + Caracter take out Lawson & Hansborough in Charlotte? What would UL have to do? UL can’t shoot free throws either. UNC comes out of this one.
Round V
UNC vs. Kansas:
Roy Williams vs. the ghost of Roy Williams, in San Antonio… This will be an awesome ballgame. Kansas has better stats than UNC, generally, though they are both dominant teams. Pomeroy generally favors Kansas. Both teams shoot > 70% from the line (UNC has the advantage there). UNC’s first away game since, what, February. Kansas plays defense, how novel. Kansas.
Duke vs. Stanford:
Both play reasonable defense, Duke has slightly better offense. Duke has no inside game, against Stanford’s twins. Stanford owns offensive rebounding. Turnover rate is comparable. Both are kind of crappy FT shooters. Coach K is too good of a coach. Duke shoots the 3 and steals the ball.
Championship
Kansas vs. Duke:
Duke fouls more; they both shoot about 70% free throws. Kansas rebounds better; they shoot the 3 about the same, Duke defends the 3 a bit better. Bill Self vs. Roy Williams. There’s a first time for everything.
Tags bracket, hoops, output | no comments
Posted by rick
Tue, 27 Nov 2007 15:14:00 GMT
I’m posting at a new site (b.logi.cx) ... more news on that later. The first article is about a new piece of software I’m developing called Object Daddy, meant to do away with the need for Ruby on Rails fixtures and to greatly ease ActiveRecord model testing. The article about it is LONG, but don’t let that scare you, it’s all in good fun.
Tags daddy, flawed, logic, logicx, object, ogconsulting, output, rails, ruby, testing | no comments
Posted by rick
Wed, 29 Aug 2007 17:54:00 GMT
Check it out—our art show this weekend is listed as the Critics’ Pick.
“CONNECT 12 This exhibit, curated by Ben Vitualla, features the diverse works of 12 of Nashville’s longtime arts warriors. The goal of the exhibit is to educate the viewer about the history and continued growth of our local arts community. Painter Andee Rudloff has exhibited with Untitled Artists and Plowhaus Artists’ Cooperative, in addition to being involved with the successful Arts in the Airport program. Her dreamy landscapes are meant to reflect a sense of memory. Untitled’s husband-and-wife teams are also included in the September exhibit. Alesandra Bellos is “giving away her dreams” in a performance art piece at the opening reception. Her husband, Rick Bradley, is doing an interactive piece featuring monitors showing repeated imagery that explores the idea of machines expressing emotions. Eric Denton will exhibit his quirky photographs in the show alongside wife Tiffany Denton’s fiber collages. Audience participation is encouraged in three installations and one performance art piece. With the majority of Art at the Arcade spaces having stellar shows opening this month and the McKay Otto/Monica Cook show at TAG, downtown is the place to be this Saturday night. Opening reception 6 to 9 p.m. Sept. 1 at Dangenart Gallery; runs through Sept. 28. —BRITTANY CONNER”
See ya there!
Tags 12, ali, art, connect, output, rick | no comments
Posted by rick
Tue, 28 Aug 2007 19:04:00 GMT
Called “Connect 12”. From one of my friend Ben’s press releases:
Connect 12 exhibition at Dangenart Gallery: From September 1 through September 30 Twelve Nashville artists will showcase their work at
Dangenart Gallery.
Curator Ben Vitualla has invited Eric Denton, Jimi Benedict, Erika Johnson, Daniel Lai,Samantha Callahan, Sean Jewett, Rick Bradley, Alesandra Bellos, Tiffany Denton, Chris Hill, Andee Rudloff, and Shana Kohnstamm to present work of their own choosing alongside work of his own.
“As curator of this exhibition, my goal is to showcase local artists who have been a fixture in the Nashville visual arts community. This exhibition is an example of the importance of community in the Nashville visual art scene. As a result of years of exhibiting in Nashville, I have been impressed and surprised by the development and direction of local artists’ work. I have compiled a group of artists with varying disciplines, working in varied media. The first exhibition representing these diverse talents in city of Nashville will be called Connect 12,” Vitualla states.
The Nashville visual arts community has been steadily growing since 2000, partly because of the support of individual artists and privately owned galleries. Individual artists’ willingness to help each other with projects and exhibitions in Nashville have kept the visual arts community moving in an upward direction.
A group that was founded in 1991 and resurrected in 2002, the Untitled Artist Group, has given local artists opportunities to show their work in a welcoming and uncensored setting. Creative ideas are shared within this artist-run collective and many relationships formed between talented individuals with diverse backgrounds. Included in the group are painters, sculptors, mixed media artists, installation artists, and photographers. These individuals have worked together with varying degrees of experience from professional working artists to emerging artists paving their own way into the Nashville gallery scene.
Much like the Untitled Artist Group, the Connect 12 exhibition will consist of a diverse group of artists, ranging from a multi media artist who uses monitors, repetitive imagery and viewer participation; an installation artist whose work explores the female gender and topics in female relationships through photography and ephemera; a painter who creates beautiful paintings based on pain and healing; to a graphic designer who continues to work in an effort to make something the public will love and buy; a mixed media artist who reverts back to objects from childhood to capture back the lost youth and to relate the object to the problem of today; and an artist with a long family tradition of working with textile who create expressive fabric collages. Six additional artists working in diverse media round out
the show.
“Creating an exhibition with twelve artists who work with various media will be a great undertaking and challenge because each artist has his or her own specific requirements and themes. I will take this challenge and create a show that will educate the viewer and define the visual artist as well as the visual arts community in Nashville,” says Vitualla.
For more information about Connect 12, the artists featured in the show, or Dangenart Gallery, please contact Ben Vitualla at connect.twelve@gmail.com or visit Dangenart.com
PRESS:
TENNESSEAN: Downtown Dangenart Gallery celebrates friendship, growth
Connect 12
Exhibition runs September 1, 2007 to September 30,2007
Dangenart Gallery, Nashville, TN
224 – 234 5th Ave. N.
Suite 83 The Arcade
Nashville TN 37219
Tags 12, ali, art, ben, connect, output, show | no comments
Posted by rick
Mon, 23 Jul 2007 13:29:00 GMT
Our data migration problem
At my day job (large mental healthcare non-profit) we’re pushing out a Rails-based electronic health record. We have a number of
partners who will be using the same system, hosted separately, and contributing data into a common anonymized warehouse of clinical research data. Every installation
will end up with not only a production database for day-to-day transaction use, but also a read-only reporting database to offload longer-running report queries onto.
Of course current and ongoing development requires database instances for developers, for testing, and for staging prior to production release. Some of the data which
feeds the production and development instances comes from static sources (fixture files or similar), while other data comes from conversion of data from a legacy
database with significantly (bizarrely, some (e.g., I) might say) different layouts. All of this constitutes a significant data management problem (each of the arrows
in the below diagram comprises a data migration task that varies in some way from each of the others).

We have been converting data on a nightly basis for well over a year now, but a couple of months ago, the multiplication of data sources and sinks, along with schema
migrations, began to get overwhelming enough that we couldn’t keep up and the ball was, as they say, “dropped”. Realizing the scope of the data management problem, we
sketched out what it would take to manage our data if we had to write a tool to do it ourselves. We took a look around at what products (open source and proprietary)
were available for data migration (or as the martketroids call it, “ETL”—“extract, transform, and load”). In the midst of all this a few of us went to RailsConf,
where I was able to sit in on Anthony Eden’s talk Data Warehouses with
ActiveWarehouse. Part of ActiveWarehouse is an ETL tool, ActiveWarehouse-ETL, which
looked interesting from we come from (Ruby development). If we had to write our own we would’ve written it in Ruby, with an eye towards testing, automation,
reproducibility, and version control of the ETL specs, so finding a Ruby tool for ETL already out there seemed like a step in the right direction.
Learning via reproducible data migration
In doing our research on ActiveWarehouse-ETL we noticed that the documentation is a bit weak but getting
better. After grovelling around the web for a while we decided that it was unclear whether AW-ETL
was mature enough to handle the data migration work we wanted to throw at it, and we had questions as to whether the ETL tool was too geared for data warehousing
to do data migration in a mostly transaction database environment. That is, only one of the many databases with which we’ll be working will have any data warehouse
“cubes”, “dimensions”, “facts”, etc. The rest are Rails-ish or reporting-ish standard databases. With this in mind we set out to evaluate AW-ETL systematically.
Thought there’s been some talk of how to unit test an AW-ETL transformation (specified
as a “control file”), nothing sufficiently concrete was available. We set about writing an automation tool to allow us to try different types of data migrations. We
have gone TDD (and some might say we are sometimes BDD) on our project, so we wanted to be able to specify the behavior of the migration via tests before writing our
control files. We mocked something up with some shell scripts and then quickly moved to a Rakefile which would manage our databases and run our tests for ETL, throwing
an exception whenever we have a test failure.
We group our tests into “scenarios”, which are simply directories with enough information to specify database schemas, table data, the ETL transformation(s) to use,
and the tests we are trying to satisfy:

(If you are interested in downloading and playing with/using this little AW-ETL testing framework, you can find a tarball
here)
This turned out to be a valuable methodology, as the documentation was even weaker than it appeared at first glance. While some areas are sufficiently documented, when
we would need an example most none were easy to find. We did a lot of spelunking through the AW-ETL code to get us by. We covered some of the basic ground over the
course of a day of testing, but ultimately were stumped when it came to figuring out how to preserve a foreign key relationship in a migration. We contacted the AW
mailing list, which seems to be responsive, judging from the archives, but so far haven’t made any progress towards figuring out how to specify a foreign key
relationship in an AW-ETL control file.
How do we represent a foreign key relationship?
Here’s the core problem ,which is pretty critical for us to be able to solve if we are going to be able to add new “core data” to systems which have been running in
production for some time already. Given two tables in a source database and the same two tables in a destination database, where one of the source tables has a column
which references the primary key (“id” column in a normal Rails table schema) of the other table, we want to copy our source records into the destination database, but
we want to make sure the foreign key relationship between the two tables remains intact, even if the primary keys on the destination database vary wildly. Maybe a
picture would help:

So, put a couple of records for each table in the source database, as well as putting an existing record in the destination database. What we want to see after the ETL
process is the following:

That is, the source database stays the same, but the destination database now has 5 records in total: the existing 1 record that we started with, and the 4 new records
we brought over from the source database.
In our little framework we can specify this with a test like so:
require File.dirname(__FILE__) + '/../test_helper.rb'
class ConversionTest < Test::Unit::TestCase
def test_conversion_should_copy_data_from_source_to_destination
with_db 'data_destination_development' do
assert_equal 2, ActiveRecord::Base.connection.select_value("select count(*) from foos").to_i
assert_equal 3, ActiveRecord::Base.connection.select_value("select count(*) from bars").to_i
end
end
def test_conversion_should_leave_source_data_intact
with_db 'data_source_development' do
assert_equal 2, ActiveRecord::Base.connection.select_value("select count(*) from foos").to_i
assert_equal 2, ActiveRecord::Base.connection.select_value("select count(*) from bars").to_i
end
end
def test_primary_keys_should_be_distinct
with_db 'data_destination_development' do
assert_equal [1, 2], ActiveRecord::Base.connection.select_values("select id from foos").sort.map(&:to_i)
assert_equal [1, 2, 3], ActiveRecord::Base.connection.select_values("select id from bars").sort.map(&:to_i)
end
end
def test_additional_data_should_be_converted
with_db 'data_destination_development' do
assert_equal ['chronic', 'buddha', 'four twenty'], ActiveRecord::Base.connection.select_values("select name from bars order by id")
end
end
def test_foreign_key_relationship_should_be_preserved
with_db 'data_destination_development' do
assert_equal [3, 2], ActiveRecord::Base.connection.select_values("select bar_id from foos order by id").to_i
end
end
end
After extensive code groveling and experimentation (the documentation is weak in this particular area), the best we’ve been able to get is the following:

Which, isn’t going to suffice since the foreign key references are now misdirected. What we want is to be able to say “hey, the natural key to look up the bar on the
other end of this foo.bar_id is the bar.name column, so when you find a matching record with that key, use its id for the foo.bar_id” ... but, we’ve been unable to
figure out how to do that in AW-ETL, or if it can be done.
Why bother with all this?
We’re in the processing of choosing a tool for our data migration needs. During the development process (which, as long as the application is in use, will never truly
end) developers are highly concerned with issues relating to data—ultimately they want to know what “buckets” data falls into, what are the steps they need to
follow to make sure they don’t trash development or production data, and how do we minimize the complexity of the data we have to manage.
The organization is concerned with a bigger issue—with this system running in many instances, how do we have confidence that our data is correct, that reporting
and warehousing have clearly defined (and well optimized) schemas, that the data we have can answer the questions we ask, and that we won’t suffer downtime due to
data migration problems.
These two perspectives are related but have differing priorities, and different needs which may even be irreconcilable. We’re finding it difficult, in surveying the ETL tools on the market, to find a tool which is usable by the developers on a daily basis, but which is also usable at
the organization level in a comprehensible way. Or, put another way, the way that a decent-sized organization (> 1000 employees) tends to use data tools is very
different from the way a development team of a dozen tends to use data tools.
What am I talking about? We’ve seen something about how we can take a tool like AW-ETL (whether or not it can handle a foreign key relationship properly—my guess
is that it can but the documentation is too sparse and the code base too unfamiliar for us to find it) and subject it to modern agile methodologies: test-driven
development, version control, pairing, continuous integration (after all, we have a single command that we can use to launch all our ETL tasks: rake). Given that
AW-ETL’s control files are essentially code, and most likely, can even be generated by code in an appropriate ActiveRecord-aware Ruby DSL, we can apply all the techniques
we have adopted for the management of code in our team. Productivity and reproducibility are clear benefits.
On the other hand, when we examine other ETL tools on the market we find a different set of features and tradeoffs. Of the general-purpose ETL tools we can find we
quickly rule out database-specific tools that tie us to a single vendor’s database technology. In the next pass we curb those which are clearly immature or unworkable
after a quick evaluation. Remaining are the set of ETL products which typically support a wide range of extractions (XML, database tables from any number of different
databases, various file formats, HTTP requests, SOA services, etc.), a wide range of transformations, and a wide range of load targets (including various non-database
targets). Some of these tools have various automation concepts built in, ranging from job sequencing to load clustering to script execution. In other words, they are
leagues ahead in terms of overall ETL functionality than anything we would write ourselves, as well as anything AW-ETL is likely to have in the near future, just due
to the disparity in the number of paid developers working on these bigger tools (these tools are typically part of a suite of other “business intelligence” (heh),
reporting or data mining tools, and there’s mad loot at stake in there somewhere).
But, as we look at how these tools can be used, we tend to find the same things over and over. The primary interface is an all-powerful GUI, sometimes a Windows-only
interface, but usually a Java interface that runs on a number of platforms, including the Linux/FreeBSD/OSX platforms we use in-house. There will sometimes be some
sort of scripting interface built into the GUI, which suffers from the same problems scripting interfaces tend to suffer from: the authors think Visual Basic is
frikkin’ HOT, their language is completely home-grown, there are no good editors, no good testing or version-control tools, the libraries you must draw on are weird
and subject to change at every release, etc. These tools will typically have some sort of “automation” functionality, either built into the GUI itself (which presumes
you run a server somewhere on your network and let the ETL beast run its own little kingdom), or a very limited “start me as a batch script / cron job” hook
somewhere. Here is one of the more compelling (in a “please don’t let Zeldman or Jason Fried see this” sort of way) scheduling interfaces I ran across last week:

That’s what I’m talking about.
Anyway, most of the tools are written in Java, and therefore some of them expose a “Java API”. Downsides: the APIs are typically horrible, the APIs are brittle (i.e.,
when version 5.3 comes out the stuff you used in 5.2 doesn’t typically work—hope you had a test suite, thx), and often the gap between the basic concepts you’d
want to automate and how they are represented in the GUI is so large as to be impassible. Here’s an example from one of the better
APIs, and maybe I’m just spoiled by Ruby, but doesn’t it seem like that should be, oh, 5 lines in a decent Ruby DSL?
Back to the point (and you thought there wasn’t one!)... The tools we find, if they have the functionality necessary to handle non-trivial migrations, are geared
towards an obsolete, unworkable, and unproductive process of managing data. Enterprise(y) data management is geared around a very small number (ideally, 1) of “experts”
using a GUI interface to manage large amounts of data graphically. This means that, without massive effort, the migration definitions are mostly invisible, the
process is mostly unmeasurable, and the migrations are mostly untestable (before running, and after running). Without massive effort, the user of the tool has little
knowledge of state: what the current state of data is, what would happen if we ran a migration, and what happened the last time we ran one. The changes between one
migration set and the next (i.e., the output of the user’s work) are not version-controlled, which means that errors go undetected, it is nearly impossible to “branch”
the migration sets for releases or other purposes, rollback is a snapshot-at-best process (a friend of ours calls this “save-game”/”load-game” functionality, and
we’ve considered giving a PlayStation + joystick interface to any tools we encounter which have this level of quality assurance).
In short, without applying massive effort, using these tools in your organization has the warm and fuzzy feel of adopting the 1995-era “let’s bet our company’s future
on having our file clerks hack our workflow out in a gnarly Visual Basic app that will one day hang like a lead albatross around our collective necks” so-called
“strategy”. It should go without saying that an organization willing to grab such a tool and run with it is not typically the organization which sees the point in
applying massive additional effort to data migration.
What we’re looking to do is to find a sweet spot, some middle ground. How can we apply modern software methodologies to the process of data management, while using a
tool which is powerful enough to do the job, but affords us the ability to actually run it in a lightweight manner and to write a data migration specification that is
short, visible, and readable? Perhaps this is too tall an order. If I have good news I’ll let you know :-/
Tags activewarehouse, data, etl, migration, output, testing, work | no comments
Posted by rick
Wed, 11 Jul 2007 12:08:00 GMT

We took a 2-week (plus a couple of days) vacation to Italy at the end of June. Pictures are up! More words to follow.
Tags italy, output, photos, vacation, visual | no comments
Posted by rick
Thu, 03 May 2007 18:32:00 GMT
In what seems to be an instance of an increasingly common problem, the DC cable on my MacBook’s power brick wore out and wires were visible. Not so good. I called the Apple Store to see if they’d replace it (I’m still in the first year so it might be covered under the limited warranty… I don’t play AppleCare because friends have advised me that the things they tried to get fixed under AppleCare weren’t actually covered, and since those were the sorts of things I’d expect to go wrong I kept my money). The lady asked if wires were visible (aka “we’ve seen this a bunch”) and I said “yes”, to which she replied that it’s up to the discretion of the tech as to whether they would do anything about it, oh, and the next remotely possible available appointment would be Friday. Since I use this computer about 16 hours a day, 6-7 days a week, it’s not so easy for me to let it run down and not boot up again until Friday, over a part they probably would take one look at and say “yeah, here’s a new one” or “oh, you’ll wanna fork over $85”.
So I did what any self-respecting human would do. I got a soldering iron, tore open the power brick (clearly never meant to be opened: the $85 disposable accessory/necessity), made a new connection, and then built myself a new casing. Out of Lego’s, duh.
Enjoy.
Tags brick, casemod, mac, output, power | 2 comments
Posted by rick
Fri, 27 Apr 2007 04:29:00 GMT
Hey, today I can officially run for Presidente del Republica Banana de los Estados Unidos, or something like that. I think I’ll start an exploratory committee.
I can remember when 35 was incomparably old. I mean, my dad was 35 back then.
I wonder what my 8- or 12- or 18-year old self would think about me now.
When I was 8 I had just gotten over being on a baseball team, pretty much for the last time ever. I had just gotten my first cassette or so. I was learning about fractions I think.
When I was 12, I frankly can’t remember much from being 12. What was that, 7th grade? Maybe a girl at the swimming pool who was my age and looked about 18, having sproinged out in all the right/wrong places. 6th and 7th grade were a social pain in the ass, and everything was about to go upside down for everyone over the next few years. Shit we didn’t care about before was about to become almost all that was “important”, and the dice were starting to roll—what nice people were about to become cool, or vain, or superficial, or neglected, or mean, or “unpopular”?
At that point I’d also just about decided that the whole Catholic Church and whatever they were calling “God”, “Jesus”, “faith”, and “religion” were basically full of it. That would cause some fun in the following year. I suppose I’m still not supposed to let my grandmother in on that secret (hope she isn’t reading my RSS feed). I got my first computer at age 12, having won a $2 bet on a horse race at 99:1 odds (the same grandmother placed the bet for me). How’s that for mixed transcendental signals?
When I was 18, I spent all my time in school and in clubs and the like, staying away from home a lot of the time, enjoying myself, and really really looking to get out of small town Kentucky. I listened to a lot of music, but in hindsight it wasn’t a very wide selection. I was seemingly always fighting with my father, and I knew everything (right?). I’d had a lot of girlfriends, and had even once been in love. One of my teachers told me that, by the time I got to 30 I’d either be a millionaire or in prison.
So, now, I’m 5 years past (well outside the margin-of-error I’d say on my teacher’s prediction) and have been neither rich nor in jail.
If I’d stayed at that hedge fund until now, and somehow found a way to keep from jumping in front of a train living on Long Island I’d definitely be a millionaire by now. I knew that when I left there back in 1997, I mean the mathematical inevitability of it, and let it go. And that wasn’t a mistake. Instead I went out on my own and spent my money down for a few years as I reapprenticed myself and learned a shit-ton that I’m still building on. Best investment I ever made, though it cost me most of a million bucks.
If I’d gotten unlucky a few times I’d probably gone to jail too. Too many crazy ideas, too many wild nights (and days), too many impulses to see what in the hell would happen if I do this. During the crazy years the accomplices were absolute nut-cases, and I think the crazy years had a high high tide. Most of those guys have settled down a bit too.
Now, I have maybe half a dozen computers (down from a high of around 15 or so running at one point a few years back) and I can do almost anything imaginable with them without too much effort. I can get any music I want other than a few exceptionally hard to find pieces, for free, on demand. I’ve got an unbelievably beautiful and wonderful wife. We have our own house that we just bought. We have only one debt: the mortgage. We make more than we need and we have lots of interests. I think my younger selves would be happy with all those things, though I think they would misunderstand some of them in a lot of ways.
Back in December I had some major revelations that fundamentally changed my outlook on life and how I live it. I finally accepted that I’m a Buddhist, rather than just being interested and inclined in that direction. I cut my hair, gave up alcohol, became a vegetarian (again, though this time more strict than ever before), and took the Boddhisatva vow. Of course, I live in the world, and the world is often too much with me, and it’s hard often to hold on to those realizations, but I know it’s important. It’s changed how I think about many things and it colors how I live day-to-day. It lets me know, deep down, that “everything will be alright.”
It’s not necessarily been rosy, though. Some people take change personally, or more than others. I don’t do all the things I used to and so that puts me aside or outside or less alongside a lot of social circles, which is ok, though I hope people understand that it’s not because of their personalities that I’ve changed. There have been a few times when people have pushed and asked what’s the deal, “why don’t you eat meat?”, “why don’t you drink booze?”, “don’t you believe in God? you don’t go to church…”. A lot of times I haven’t really given the straight dope, because a lot of those people know me to some degree and I’ve already seen a few people comment to others, “looks like he crossed over” or “looks like we lost one”. Someone recently kept pushing and I told them about the changes in December and they just didn’t know how to take it. But some people do, and some people are excited and interested and helpful. The most surprising thing, I’m finding, is which people are which way.
Anyway, what’s threatening? Maybe the things I believe. I believe we are all One, we are all Divine. I believe that time and space are an illusion, and that it is an illusion that we are separate beings. I believe that love and beauty and truth are objective and that they are identical with the Divine, and suffering is their mirror image, and is the product of distance from the Divine. Finally, the universe is All, is consciousness, is divine, and it contains both love and suffering. The whole is both yin and yang, in infinite complexity and unity. As Bill Hicks noted, it’s pretty dangerous to think this way, after all “what’s going to happen to the Economy when we realize that we’re all One?”
Anyway, back to the State of the Union… I’ve got a very interesting job. We are building a large software system for a mental healthcare non-profit. The team of people we have drawn in is unbelievable. They are the best team I’ve seen since working at that hedge fund, and in some ways are better. We are also helping people. Every thing we accomplish will help thousands, perhaps tens or hundreds of thousands of people to live better lives. That’s seriously awesome, and I now see that as a real benefit to the work we’re doing. What we’re doing is hard as shit, though. I’ve been working 60-hour weeks since about October of last year, and it looks like it’ll be another couple months of that—and I’m not the only one. It’s not a death march but we’re all on a long-ass sprint and hoping to “get there” soon. But the thing is big, even with using Rails. We’ve got ~15,000 lines of code, which in any other language would seriously be at least 125,000 lines of code, but you can’t escape coupling and interaction between components, which is really what kills you as systems grow. Anyway, it’s almost ready to launch and people are really pushing for it and getting antsy. Noone outside the team has a real conception of what it takes to build a system this large, and it’s impossible to fully “manage expectations” to make that happen. So, every so often I find myself talking to someone who is agitated but gives us great feedback as they begin to talk, and we do everything we can to take that in and use it and thank them and let them know, “it will be alright.”
But, every week these days I have a day or two where I wake up in the morning, or come home in the evening, or go to bed at night thinking “jesus h. motherfucking christ this shit just ain’t worth it”, and of the people who’d rather I come work for them, without the long hours nor a “customer” unaware of what they want or get; or of simply doing part-time work and hiking and gardening instead. And then I think maybe of buddhist sand art which takes months for a monk to make, placing a grain of sand at a time (only to wipe it all away at the end); or perhaps of some of the guys in my team who have had talks with me and who have stepped up to make things better for us and the people we’re serving; or perhaps I just go to bed and let sleep make it better. Regardless I keep going, somehow so far.
If I sent this back in time as a letter to my 18- or 12- or 8-year old self how would they feel? I think probably the 8- and 12-year olds would see it as some sort of science fiction and maybe would distort it as part of the chimeric personal mythology I carry around in my head still. But I think the 18-year old self would mostly see that it’s been good, with one caveat, that he’d advise me, could he write back, to have more fun and fuck with things quite a bit more, because there’s really no downside, and there’s no point in working all the time and not purely enjoying it.
Maybe I should listen to that self a bit more. I think he’ll be the first appointee to my exploratory committee.
Tags banana, birthday, output, presidente, republic | 5 comments
Posted by rick
Thu, 12 Apr 2007 13:28:00 GMT
You’ve probably seen this already, but if you haven’t you’ll want to set aside 30 minutes or so to take it in: Pearls before Breakfast.
Tags beauty | no comments
Posted by rick
Thu, 12 Apr 2007 13:16:00 GMT
You can read it for yourself. To my mind it is not beautiful because it is singular, it is beautiful because it is something we all understand, something we all see as beautiful, something which lifts the corner of the curtain to show us again that we are all one.
Tags beauty | no comments
Posted by rick
Thu, 12 Apr 2007 00:36:00 GMT
| Comic dude Jimmy Kimmel |
and |
New University of Kentucky Basketball Coach Billy Gillispie |
|
|
|
I’m just sayin’...
Tags at, birth, gillispie, hoops, jimmy, kimmel, separated, uk | no comments
Posted by rick
Sat, 07 Apr 2007 17:15:00 GMT
The website for Miranda July’s book Noone Belongs Here More Than You.
Tags beauty | no comments
Posted by rick
Wed, 21 Mar 2007 15:33:00 GMT
Another song, this time via my friend Kevin, by Brett Dennen entitled There is So Much More (YouTube movie of live performance at link), lyrics follow:
"There Is So Much More"
When I heard the news
My heart fell on the floor
I was on a plane on my way to Baltimore
In these troubled times its hard enough as it is
My soul has known a better life than this
I wondered how so many could be in so much pain
While others don't seem to feel a thing
Then I curse my wiseness and I get so damned depressed
In a world of suffering why should I be so blessed
I heard about a woman who lives in Colorado
She built a monument of sorts behind her garage door
Where everyday she prays for all whom are born and all whose souls have passed on
Sometimes my trouble gets so thick
I can't see how I'm going to get through it
But then I would rather be stuck up in a tree
Than be tied to it
Do do do do do
I know
There is so much more
I don't feel comfortable with the way my clothes fit
I can't get used to my body's limits
I got some fancy shoes to try and kick away these blues
They cost a lot of money but they aren't worth a thing
I want to free my feet from the broken glass and concrete
I need to get out of this city
Lay upon the ground and stare a hole in the sky
Wondering where I go when I die
When I die
Tags beauty | no comments
Posted by rick
Tue, 20 Mar 2007 01:42:00 GMT
Haruki Murakami’s Kafka on the Shore
Go. Read. You will want to read more of his fiction (even in translation)!
Tags beauty | 4 comments
Posted by rick
Sun, 18 Mar 2007 16:00:00 GMT
Yep, here comes the bracket meltdown… One of our two teams picked to go to the finals exited on a coaching meltdown. Quick question: You’re the coach and your team is 2 points down with 41 seconds on the game clock and a full shot clock and the other team has the ball; do you (a) let them dribble for 30 seconds and then run a play, or (b) do you foul them immediately? If you picked (a) you’re in the august company of NCAA Championship winner Gary Williams, coach of the Maryland Terrapins. You would also probably be riding the bus back home just like Gary and his team. Oh well :-)
We had also picked Louisville to win in Rupp Arena, but that slipped away in the final seconds of a great contest.
We picked Washington State to beat Vanderbilt, but were happily surprised to see Derrick Byars step up and bring the Commodores through an overtime to the win (Conquer and Prevail indeed).
Finally, though we picked UNC to win at home (er, at Winston-Salem, which is basically the same), I would like to lodge a vocal protest about their game with Michigan State. The media coverage was so biased that we finally just shut off the audio to escape the Tyler Hansbrough circle-jerk, but the worst of is was that the officiating essentially gave the game to UNC: Hansbrough travelled or fouled nearly every time he touched the ball but was almost never called on it, while Michigan State was relentlessly called by the referees for anything that might remotely be an infraction. Such comes from not wearing the white jerseys I suppose. ...OK, enough grousing from me.
For those following along at home, here’s the latest snapshot in our slow decline down the ESPN tourney challenge bell curve:
Tags hoops | no comments
Posted by rick
Sat, 17 Mar 2007 14:42:00 GMT
Well, as promised, the 2nd day didn’t go as well as the first :-) We didn’t do so poorly though. One thing that is striking is that this tournament has gone almost completely by the numbers (fwiw, a 9-seed beating an 8-seed is actually historically more frequent than the numerical seed matchup). Where did we make mistakes?
- We presumed that a 12-seed would beat a 5-seed as has happened nearly every year in the past decade, and for some reason decided that Arkansas was the strongest 12 playing USC (PAC-10, come on) the weakest 5. I had forgotten—don’t bet on Arkansas. They probably belonged in the NIT this year, frankly.
- Creighton vs. Nevada (and we took Creight to the Elite 8… ouch). We struggled over this pick but the deciding factor for us was that Shiloh was going to be out for the game, meaning Creighton could handle Nevada on the inside and then Nate Funk would be the edge. Well, we had faulty information. Turns out Shiloh was playing. Still, an OT game is basically a coin toss, so not so bad. I’d call this The Right Pick with the info we had.
- Texas vs. New Mexico State. This was our boldest pick, but it was based on 3 things: (1) New Mexico State ranks at the top of the nation in getting to the free-throw line, (2) Texas Coach Rick Barnes is a horrible coach and will lose just about any close game, and (3) Kevin Durant is the backbone of Texas’ team, and there’s not much to rely on if he struggles. We knew it would be a scrap, but believed that there’s no way to stop NM St. from getting to the line, which would keep the game close, which would put it in “Rick Barnes is playing for the opponent” territory, so NM St. for the win. The only thing which would stop that is a Carmelo Anthony-style 35-40-pt. assault by Durant. We believed NM St. could contain him enough to let the line do the rest. I’ll let the box score speak. The best team in the country at getting to the free-throw line had 12 free-throw attempts, while Texas had 26 (Durant alone had 16). The game was indeed won at the line, but (and here’s where I’ll temper my real sentiments for public consumption) the officials gave Texas the game by refusing to call any but the most blatant fouls on Texas while calling every possible contact on New Mexico State. I’ll let you draw your conclusions, but this is the game this year (I’m trying to recall the fiasco from last year that made me feel the same) that I walked away saying “this *&%$ is rigged.”
UPDATE: Actually, I forgot about the other mistake we made. We were working under the assumption in the Kentucky vs. Villanova game that Nardi was out with an injury. That had been the deciding factor for us in giving the game to Kentucky. Turns out Nardi was playing (misinformation to confuse the opposing coaches? who knows). I’m a huge Kentucky fan, but we might have given the game to Villanova had Nardi been scheduled to play, which would’ve been a mistake, as Kentucky pulled the win (which makes me very happy :-)
Despite all that Texas business, it was a good day of games, even though there weren’t enough upsets for my liking, Today should be even better given some of the great matchups. For your continued distraction, here’s the bracket after yesterday’s set of games:
Tags hoops | no comments
Posted by rick
Fri, 16 Mar 2007 04:33:00 GMT
In our notes I hadn’t written down the final pick we made in one game—while the notes still said Gonzaga we wrote down (and entered in the ESPN bracket picking contest) that the winner of that game would be Indiana. So, we’re at 15-1 for the first 16 games, including correctly picking VCU to upset Duke in the first round. The only mistake we made today: picking Bobby Knight to coach his Texas Tech Red Raiders to a first-round win. Oh well. We were pretty worried this morning that we hadn’t picked a lot of upsets, even though we spent quite a bit of time looking at the matchups. Turned out that today there were very few upsets, so that’s just the way it went. I suppose that means the seeding committee did a good job.
Anyway, the VCU upset over Duke was a great game. I’m glad to say that Vanderbilt (my alma mater and the team Sean and I had season tickets to this year—a great year to have Vanderbilt season tickets) put on one of the most impressive clinics of the day, thoroughly schooling George Washington, even giving David Rodriguez (known for being the walk-on who led his frat intramural team to the intramural hoops championship) a point in the NCAA tournament (though he did double his turnovers on the year to 2). Congrats to the Commodores.
Since this may be the high point of our hoops-picking success this year, I’ll post a screenshot of our bracket for your distraction. Enjoy (“Ballman” is my friend Allen Ballman with whom I do the annual stats-combing and game picking):
Tags hoops | no comments
Posted by rick
Thu, 15 Mar 2007 15:13:00 GMT
As you may or may not know, I get together with friends every year and watch the first 4 rounds of the ncaa division I men’s basketball tournament. We collect an absurd amount of stats and then go through our picks for every game. Here’s the notes we drew up as we considered each game. Enjoy :-)
- Arizona vs. Purdue: arizona will get to the line (#1/#2 in various foul-line stats); PAC-10 doesn’t play defense, especially on 3-pt game, which show’s in Arizona’s stats; Purdue is more capable of playing that defense; Question: will PAC-10-style ball prevail in a tournament setting with a team willing to play defense? Purdue has 3 players that average 2.5+ fouls per game: Watt Gordon (7.44 pts/game), Carl Landry (18.88 pts/game), Keaton Grant (4.53 pts/game). Get Landry in foul trouble early ? Purdue is about 8 deep. Purdue has more flexibility in strategy, will probably rotate through guys,
- butler vs. old dominion: butler will not give up the ball; butler will hit the 3s, but odu isn’t likely to defend them as well as is needed; looking at opponent ft% it looks like butler is playing a higher quality opponent; we don’t see odu overcoming butler
- maryland vs. davidson: common foes (Duke), which Maryland beat twice, but davidson drilled; they both have good stats, though and it might be a close game; maryland blocks and defends the 3; davidson has no strong opponents
- notre dame v. winthrop: winthrop has ironically played a stronger schedule, few losses, only seem to lose when they can’t get to the free-throw line at all; we give this one to winthrop
- oregon v. miami (oh): oregon played a vastly more difficult schedule, and miami lost lots of games
- UNLV v. ga tech: for ga tech, if they play a shoddy opponent they will usually beat them with fgs, otherwise they live or die @ the line; ga tech has worse recent record and worse record against tourney teams; seeing ga tech play, I was not impressed
- wisc v. corpus christi: game is a home game (in Chicago) for Wisconsin; wisconsin has played a stronger schedule; TAMCC has great numbers offensively, and wisconsin has great defensive numbers; it will be a matter of who can impose their will; this will be a much closer game than people expect.
- kentucky v. villanova: villanova may not have access to Nardi; villanova wants to get to the free-throw line; they have two main free-throw shooters, nardi and one other; nardi appears to be not in shape for the game, so we give kentucky the edge
- va. tech v. illinois: most stats point to VAT, the only positive factor for ILL is the location (Columbus); Ill just lost 2 players, however, which seals the deal for us.
- so. ill vs. holy cross: numbers are very similar, both teams have strong defenses, both teams will hold the ball, slow the game down. final score prediction: 13-12. Location slightly favors So. Ill. So Ill. has had some decent wins and has a bigger tourney record; we believe they might pull it off, but it’ll be close.
- duke v. vcu: vcu’s numbers look a lot better than duke’s; duke is in a slump (and has had recent slumps), has lost to some bad teams; duke has K, but might not be enough. We predict a close game but a Duke loss in 1.
- pitt v. wright st.: pitt has lost some games at the line and on cold shooting nights, otherwise they seem to win; numbers are way better than wright state; game is in buffalo as well; don’t see pitt losing this one
- indiana v. gonzaga: game is in sacramento; indiana is 5-5 in last 10 (including losses to michigan and illinois); while gonzaga’s numbers in the past are inflated due to competition, it would appear they could probably win this one
- ucla v. weber st.: nothing in numbers, schedule, or location favors weber
- marquette v. mich. st: this is a very tough game to call; ultimately we decided for michigan state on the basis of their defense versus marquette’s poorer shooting; mich. st. is a young team though, and not very deep
- USC v. Arkansas: looking at numbers, in some ways neither is a clear winner, but looking over schedules, looks like Arkansas can do this
- texas vs new mex. st.: we went to sleep on this one; kevin durant, if he is allowed to run the game, could win it for Texas; otherwise NM State could win this one; in a close game Rick Barnes will screw it up. NMST.
- vanderbilt v. george washington: can VU play away from home; GW didn’t play many good teams, but their defence numbers look good; pick vanderbilt based on schedule
- wash. st. v. oral roberts: stats are similar, but oral roberts doesn’t play much of anyone, give to wash st.
- boston college v. texas tech: who sucks worse? do you go against bob knight? TT doesn’t shoot as many 3s but they shoot them well, they lose games by not shooting well FG, but BC has poor defense; bob knight FTW
- belmont v. georgetown: not much of a contest on any axis; gt
- BYU v. xavier: xavier’s schedule is stronger; stats are competitive; xavier is playing 85 miles from home, fyi
- TN v. long beach state: LBC doesn’t play anyone; they put a lot of points up but neither team plays defense; UT wins
- Virginia v. Albany: neither team is particularly impressive; virginia’s schedule is a bit better; give it to virginia
- Louisville v. Stanford: numbers are similar; stanford plays in the pac-10; stanford 4-6 of last 10 only beat Tex Tech otherwise, lost to air force; lousiville stronger later, may have caracter working out; louisville; also, playing in lexington, ky!
- texas A&M v. penn: no contest: texas A&M
- nevada v. creighton: nevada is missing one dude, but has 3 stars; nevada plays a weaker schedule; creighton’s conference is stronger than is given credit for by the committee evidently; this is a very close game; as the RIMBoy said “he slipped on a WAC logo.”; creighton
- memphis v. north texas: memphis sucks, but north texas sucks worse.
- memphis v. creighton: creighton is a better team.
- unc v. mich. st.: yeah, um, mich. st. doesn’t have but 1 guy worth thinking about, so UNC ftw.
- butler vs. maryland: this is a contest of tempo (butler, down; maryland, up)—can maryland get the game fast enough to beat Butler?
- winthrop vs. oregon: in Spokane(!), but winthrop defends the 3 well and oregon lives/dies by it; plus this is a PAC-10 team
- unlv vs. wisconsin: wisconsin is missing butch; wisconsin’s slow-down pace may catch up with them finally; recent Wisc. play has been a struggle; Lon is back. UNLV
- Kentucky v. Kansas: kansas is better in nearly every statistical category (except related to free-throws); kansas is 10-0 in last 10 but hasn’t played anyone (‘cept TX, and came back from 25 down in both cases); kentucky hasn’t beaten a ranked team all year; kentucky has not been playing well as of late—kansas wins
- va tech v. so. ill: both teams playing well; they have played in the past and So Ill won; no location benefit; both senior-laden; so ill shoots better free-throws; so… so ill.
- VCU v. Pitt: pittsburgh is closer to buffalo; VCU shoots better free throws; can Pitt defend against them? VCU shoots better, but hasn’t played as tough a schedule as Pitt; Pitt probably prevails
- Indiana v. UCLA: indiana hasn’t won much on the road; indiana shoots better free throws and 3s; but road losses may overcome them; we take UCLA
- arkansas v. new mexico st.: this is pretty much a toss-up; arkansas has played a tougher schedule, with some big losses; we end up taking NM State.
- vandy v. wash. st.: wash st has a better defense; vanderbilt has trouble on the road; wash st.
- texas tech v. georgetown: georgetown
- ohio st. vs. xavier: both down the road from lexington; can xavier stop oden? doubtful; we take ohio st.
- tenn v. virginia: question: will lofton show up; tn’s free throws will kill them; virginia FTW
- louisville v. texas A&M: we don’t know how A&M wins still; Louisville is playing in Lexingon, even though A&M has great numbers; Louisville still playing well late; A&M can’t come into Lexington and win; Louisville
- louisville v. creighton: both teams playing well late; both have good wins; louisville factor later in the tourney; no longer in lex.; creighton FTW
- oh st. v. virginia: don’t see va. stopping oden
- oh st. v. creighton: ohio st.
- wash st. v. georgetown: playing in NJ (a few timezones from wash st); georgetown better numbers; georgetown
- unc v. new mexico st: unc
- unc v. georgetown: numbers are similar; other minor considerations: georgetown
- pitt v. ucla: pitt—even in San Jose
- so ill v. kansas: kansas.
- kansas v. pitt: big east > big 12—> pitt
- winthrop v. unlv: at this point you need to hit free throws; unlv.
- florida v. maryland: this will be a scrap; give it to maryland
- maryland v. unlv: maryland
- maryland v. pitt: maryland
- georgetown v. ohio st.: georgetown
- maryland v. georgetown: georgetown (this would be a coin-flip just about)
Tags hoops | 2 comments
Posted by rick
Mon, 12 Mar 2007 13:20:00 GMT
Another song, by Jason Molina (aka the guy behind Songs: Ohia), Just Be Simple (youtube video at link). The album version sounds vastly better, but the song is still great. Lyrics:
You never hear me talk about one day getting out
Why put a new address on the same old loneliness
Everybody knows where that is
We built that house of his
And when he's not home
Someone else you know always is
If Heaven's really coming back
I hope it has a heart attack
When they see how dangerous it is for guys like that
The night has always known when it's time to get going
When it's really been so long that it starts showing
It's always had that ghost who always almost
Tells me the Secret
How there's really no difference in who he was once
And who he's become
Everything you hated me for... Honey there was so much more
I just didn't get busted.
But I'm not looking for an easy way out
This whole life it's been about
Try and try and try
And try and try and try
To be simple again
Tags beauty | no comments
Posted by rick
Mon, 12 Mar 2007 11:51:00 GMT
More artwork, this time from Steve Barbash, this time an etching from his “Images as Flowers” series. This particular crysanthemum, against a dark background, hung in our last bedroom and (once we’re unpacked again) will hang in our house again:
Tags beauty | no comments
Posted by rick
Sat, 10 Mar 2007 17:39:00 GMT
Since the days are few and far between when a cashier justifiably asks you, “What, are you joining the army?” it’s fitting to make the best of those times when they come.
Tags output | no comments
Posted by rick
Thu, 08 Mar 2007 20:55:00 GMT
This is a programmer thing, but I can’t tell you how wonderful test-driven development becomes in Ruby when you have Autotest. Ryan Davis has made something elegant and beautiful.
Tags beauty | 1 comment
Posted by rick
Thu, 08 Mar 2007 06:40:00 GMT
Art by Mat Daly of the bird machine including prints such as ‘Winter 2001’ below.
Tags beauty | 1 comment
Posted by rick
Tue, 06 Mar 2007 00:05:00 GMT
Another beautiful song, Wilco’s Hummingbird, lyrics:
His goal in life was to be an echo
Riding alone, town after town, toll after toll
A fixed bayonet through the great southwest to forget her
She appears in his dreams
But in his car and in his arms
A dream can mean anything
A cheap sunset on a television set can upset her
But he never could
Remember to remember me
Standing still in your past
Floating fast like a hummingbird
His goal in life was to be an echo
The type of sound that floats around and then back down
Like a feather
But in the deep chrome canyons of the loudest Manhattans
No one could hear him
Or anything
So he slept on a mountain
In a sleeping bag underneath the stars
He would lie awake and count them
And the gray fountain spray of the great Milky Way
Would never let him
Die alone
Remember to remember me
Standing still in your past
Floating fast like a hummingbird
Remember to remember me
Standing still in your past
Floating fast like a hummingbird
A hummingbird
A hummingbird
Tags beauty | no comments
Posted by rick
Sun, 04 Mar 2007 16:27:00 GMT
Not having really been a listener to Bright Eyes until recently I never heard this song of theirs until very recently. Here are the lyrics to First Day of My Life (YouTube video at the link):
This is the first day of my life
I swear I was born right in the doorway
I went out in the rain suddenly everything changed
They're spreading blankets on the beach
Yours is the first face that I saw
I think I was blind before I met you
Now I don’t know where I am
I don’t know where I’ve been
But I know where I want to go
And so I thought I’d let you know
That these things take forever
I especially am slow
But I realize that I need you
And I wondered if I could come home
Remember the time you drove all night
Just to meet me in the morning
And I thought it was strange you said everything changed
You felt as if you'd just woke up
And you said “this is the first day of my life
I’m glad I didn’t die before I met you
But now I don’t care I could go anywhere with you
And I’d probably be happy”
So if you want to be with me
With these things there’s no telling
We just have to wait and see
But I’d rather be working for a paycheck
Than waiting to win the lottery
Besides maybe this time is different
I mean I really think you like me
Tags beauty | no comments
Posted by rick
Sun, 04 Mar 2007 15:39:00 GMT
I’ve decided to start posting about beatiful things that I encounter. When I find something beautiful and have the time to make a post I will. You can find them all tagged with “beauty” (so you should be able to click here to see them all. The first post will be in just a moment.
Tags beauty | no comments
Posted by rick
Tue, 06 Feb 2007 00:32:00 GMT
(by atmos, me, and Kevin Barnes)
Once your application grows larger than the trivial twelve model system that everyone seems to be writing in rails, your test suite (if you’re diligently writing one) can really start to slow down. Slower tests mean that fewer people run them and fewer people have faith in them. We work on a large healthcare application where we currently have 168 models and thousands of tests.
As the app has grown our test runs have gone from chill to completely insane. We develop against Postgres on our personal machines, but our continuous integration server tests against both Oracle and Postgres. It had reached the point where it took almost 15 minutes to run all of our tests against postgres, and nearly an hour on Oracle. The feedback lag on our CI server was really hurting us: if someone broke the build it might be an hour before anyone would be tipped off. By that point we had often shifted focus to something else, and it was always frustrating to stop what we were working on and fix that Oracle oddity. Not only was the CI run long, but the builds on our personal machines were long too and our developers were starting to run tests less and less frequently—which would eventually end up meaning they’d be writing fewer tests. So this week we went digging to see how we could alleviate some of the pain.
Eric Hodel posted something recently about a technique he has used to speed up his tests: he is profiling by lines logged. We ran this the other day before our epiphany and it actually tipped us off to two beefy controller methods.
We all know fixtures suck, but we could find very little information out there about speeding up your unit tests other than Jay Field’s No DB Unit Testing. He bypasses all database access and uses mocks to decouple his unit tests (he’s also got some good advice on unit testing). Everyone loves their mocks these days, so we tried getting our Mock On a little more (yes we were using mocks for various things already). The problem is we have a lot of models and even more relations, so stubbing/mocking things out was going to take a lot more time than we wanted to invest. We also noticed that the majority of the slow down in the oracle adapter was in the schema dumper/loader. It was actually spending more time dumping and loading the schema than it was actually testing our code.
We noticed a huge speedup in some of our unit tests by omitting calls to that evil ‘fixtures’ class method. Since we are using transactional tests, we only needed to populate the database before the test run. Giddy like schoolgirls we started pulling fixtures definitions left and right, but we’d set ourselves up for failure months earlier. We heavily used the dreaded fixtures accessor methods, the stuff that gives you parties(:first) when you declare ‘fixtures :parties’ in your test. This was gonna be a nightmare to overhaul because we were using it all over our unit tests, and without a “fixtures” call in the test the accessors wouldn’t work.
The approach we ended up taking was to pre-load a database with our full set of testing fixture data, then remove calls in our tests to fixture functionality. This means not only eliminating fixture accessor calls and “fixtures” declarations in tests, but updating the standard Rails rake tasks to preload our database, as well as stopping rake from wiping the database out before our test runs.
First, we needed to remove the db:test:prepare from all of the tests prerequisites, otherwise db:test:prepare will wipe out our preloaded fixture data (see a discussion on this). We weren’t aware of a way to remove Rake task prerequisites, so we added this monkey patch to Rake::Task in our Rakefile that lets you prune them:
class Rake::Task
def detract(prerequisite)
@prerequisites.delete(prerequisite)
end
end
%w(units functionals integration recent uncommitted).each do |task|
Rake::Task["test:#{task}"].detract('db:test:prepare')
Rake::Task["test:#{task}"].enhance(['environment'])
end
Next, our tests were littered with calls to fixture accessor methods, and without getting rid of those we couldn’t sever our dependency on loading fixtures at test time. Turns out it’s not too hard to automatically convert those accessors to something cleaner, (going from “some_model(:foo_1)” to “SomeModel.find(1)”). We wrote a script to remove fixture accessor methods. It looks for accessor calls, culling out the false positives (like “assigns(:foo)” which is not a fixture accessor) and rewriting them in place by actually loading the fixture file and mapping the fixture handle to a model id. If you place this in your Rails app’s script/ directory it will cull the accessor calls from your tests when run:
require File.dirname(__FILE__) + '/../config/boot'
require File.dirname(__FILE__) + '/../config/environment'
require 'erb'
require 'yaml'
stopwords = ['expects', 'assert_assigns', 'to_formatted_s', 'delete', 'on', 'stubs', 'find', 'assigns']
fixtures = {}
Dir[File.dirname(__FILE__) + '/../test/**/*.yml'].each do |file|
begin
base = File.basename(file, '.yml')
fixture = YAML.load(ERB.new(IO.read(file)).result)
(fixture || {}).each_pair do |handle, struct|
fixtures["#{base}(:#{handle})"] = "#{base.classify}.find(#{struct['id']})"
end
rescue Exception => e
raise "ERROR converting fixture data in #{file}: #{e}"
end
end
accessor = Regexp.new(/([a-z_]+)\(:[A-Za-z0-9_]+\)/)
Dir[File.dirname(__FILE__) + '/../test/**/*_test.rb'].each do |file|
File.open(file) do |f|
File.open(file + '.clean', 'w') do |out|
f.readlines.each do |l|
l.gsub!(accessor) do |match|
if stopwords.include?(match.sub(/\(.*$/, ''))
match
else
raise "Error: no match for [#{match}] in fixture data.
|