"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog

Friday, June 29, 2007

On AIR

From Cringely...

Describing why Adobe bought Macromedia (it was to get Flash) an Adobe employee said, "We tried everything, but we couldn't get Acrobat small enough to work on a cell phone. You can do a Flash interface that's a fraction of the file size."...

Think about anywhere you see a graphical user interface that isn't attached to a PC -- kiosks, high-end TV remote controls, touchscreens, ATMs, cell phones, digital cameras, VCRs, DVRs, GPS systems, set-top boxes, computer monitors, televisions, elevators, the Toyota Prius, medical equipment, Point of Sale systems, the "cash registers" at McDonalds -- everywhere, really.

Thursday, June 28, 2007

Not My Type, Or: Tests As Hypotheses

From the Scala discussion list...

I bet 90% of the type system goes over my head.
Me too. I think I gave Scala a fair shake for a few days. I have programmed a fair bit more than that in Haskell seven years ago.

I "get" functional programming when it comes to lists, recursion, higher-order functions, lazy evaluation, even monads at the "pragmatic" level of state, I/O, etc. in Haskell.

What I don't "get" is thinking in the various type systems. Maybe this could be called "type-first programming" as opposed to "test-first programming".

For this reason I believe, and the discussion thread, with the few posts it has, starts to confirm, that Scala has a tough row to hoe to become significantly more popular. A book is in the works, and perhaps the momentum Scala has gained so far will promote more in the "how to think in Scala" category.

As it stands I am ready to put Scala alongside Haskell, on my shelf for programming languages: interesting, not my cup of tea, nothing I will invest in at this point, but I am willing to be convinced if others do the leg work that makes the case for taking it back off the shelf.

I remain a dynamic language fanatic, especially a test-driven one, where small, incrementally developed tests are my program's hypotheses, as opposed to various type systems.

I would like to see other languages follow Scala's lead in finding fairly simple ways to become significantly more concurrent within a JVM. Either that or abandon the thing for a better platform.

Reliability

We have Greenspun's Tenth Law. We have Zawinski's law of software envelopment.

Another related truth is that all sufficiently large applications begin to resemble an operating system. And so if you are developing a wiki, a blog server, or anything with the term "server" in it, and you find yourself adding "plugin"-like capabilities, you could do worse than to understand Minix 3, especially with respect to reliability. Well, and Erlang, etc.

Actually, what should be on the reading list? One of the first I had to read was on the THE operating system.

Wednesday, June 27, 2007

Whole Team

I am going to bring together two of my loves: baseball and software. Why? Because the College World Series is over, and I am suffering withdrawal. Also because the OSU Beavers won the CWS for the second straight year not because they had any particularly premier individuals, but because they *practice* "whole team".

When you play "small ball" you have to play as a team. OSU often scores runs with two outs, and the just as often prevent other teams from scoring with two outs, and prevent teams from scoring as many as they expect with runners on base with less than two outs. OSU also gets results from up and down the lineup and all around the field. They win on team fundamentals: their luck is too good and consistent to be attributed to luck. Their confidence that flows from their solid *team* fundamentals simply destroys their adversaries from within.

I wish I could draw some fantastic analogy between "small ball" and software development. The best I can do right now is that software development also depends on the whole team *practicing* together the team fundamentals.

...judging by crowd reaction and amount of orange worn in the stands, Oregon State seems the local favorite.

"They play small ball, and they do all the little things right - that's why," said 25-year-old Blake Armanees of Kansas City, Mo. "I didn't go to Oregon State or anything thing like that. But I've watched them for the past few years, and they've been dead-set on doing the little things right." (www.cstv.com)

Part of OSU's success is also keeping the end in mind: knowing where you need to head as a team and dedicating yourselves to getting there. After OSU won their super-regional match...
The Beavers didn't greet the end of the game - on a double play - with the euphoria of a big pile at midfield. They merely walked through their own handshake line, then one with Michigan, and disappeared in the locker room.

"We figure," Canham said. "you only get one dogpile a year. We're not going to waste it until the big one." (Photos below.)

"Whole Team" is an agile software development practice that is given short shrift. Practicing test-driven design is a snap compared to practicing "whole team". The main reason is we don't understand what it means, and so there is little hope of practicing it. The following phrase from "Getting to Whole Team" captures "whole team" better than any other I can recall...
On a good team, a business problem feels like everybody's problem, and a technical problem feels like everybody's problem. Regardless of my individual problems, I can rely on the whole team to help me solve them.
That article concludes...
In the software world, without a Whole Team, we really don't have anything. We're dead on square one. We should treat the creation of a Whole Team as vital and primary. We should get out of the habit of talking abstractly about the nature of a Whole Team, and talk and think about it more concretely, in terms of the practices that produce it, and in terms of how we can measure its quality in the reactivity and equanimity of individuals and groups of programmers and customers.

OSU Dog Pile 2006...

OSU Dog Pile 2007...

Several team members new this year said a signature event that sealed their decision to join the OSU team was seeing the 2006 team's dog pile. And they all noted that during their regular-season slump, they never lost sight of that vision even while those outside the team gave up hope of the team even getting into the 2007 post-season at all. This year's repeat champion is the only team with a losing conference record to win a national championship. They were the last team selected to participate in the post-season. Stumbling along the way may be *good* for your team!

Even after a string of losing seven of nine Pac-10 games late in the regular season, the Beavers maintained a family atmosphere, providing support for one another.

“Everybody doubted us, but we didn’t doubt ourselves,” shortstop Darwin Barney says. “I hope teams in the future can learn from this, that it takes belief to make it happen. This club really showed that.”...

When Oregon State fell behind in the first inning of Sunday’s North Carolina game, it was the first time the Beavers trailed since the second inning at Virginia on June 5. The deficit Sunday lasted for a half-inning, meaning the Beavers were behind for a half-inning over the last 70 they played in the postseason. (portland tribune)

And...
Asked to explain their postseason success after a 10-14 Pac-10 season that left them in sixth place and barely eking out an at-large berth to the NCAA playoffs, both Ogata and Barney pointed to their team’s ability to focus and stay calm.

“We really felt like we were home there, on the field and in the dugout,” said Barney, one of only two returning starters among OSU’s position players on the 2006 World Series championship team. “There was an amazing calmness on our team and throughout our dugout.”

“It was our mindset, that special feeling — we were just going to go and win,” Ogata said. “The guys on this team are people you want to go to war with. You just knew people were going to come through.”

Tuesday, June 26, 2007

Teamwork

Fuzzy wrote about the final game of the College World Series. The Beavers won. I write this in case your corner of the world is not rejoicing as loud as ours. I've got the games on Tivo and I've been going back for the third and fourth time watching the double plays, the throws to home, the clutch scoring with two outs. So many firsts for the Beavers in this series, even more incredible than last year's team, which had a few of its own.

This photo goes back a few games in this year's College World Series, but it's a great shot of a fantastic double play. The kid is a freshman. Look out.
As it turned out I was on the Oregon State campus Monday. I was in a building across the street from the site of the celebration when the team arrived back from Omaha. The people leading the meeting wanted to be at the rally, and so did most of the attendees. So we headed over there, and here I am.

Sunday, June 24, 2007

Ruby Porn (Safe For Work)

Tom Ruminates...

Ruby has many cases in the parser where a construct can be just about anything. Check out this default value abomination...
I don't display pornography on this site. You'll have to follow the link!

Actually, you'll have to decide if it *is*, in fact, safe for work.

Actually, the spec work taking place via the JRuby effort will prove its worth. CRuby may not be strictly compliant when the spec'ing is all done.

Beautiful Vision

I'm assuming you've seen the guided tour. I love this quote...

Try telling your CEO the iPhone doesn't play well with your IT systems.
The design that went into this device is simply beautiful.

I love my company-paid crackberry with unlimited data plan. But, wow, it's hard not to get in line for an iPhone on my own dime. I guess I can let it shake out for a a bit.

Making It Stick

Pivot looks cool, and Joe's kid, creative if not non-violent. :-)

Blog Archive

About Me

Portland, Oregon, United States
I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.