picture home | pixelblog | qt_tools

omino code blog

We need code. Lots of code.
entries for category "people"
David Van Brink // Thu 2011.07.28 06:51 // {people}


Rehi, all.

A couple of months back, I changed jobs. Previous: some ten years for Altera, on embedded drivers, cpu tests, and mostly on Java-based authoring tools. Current: working at Skype in Palo Alto, mostly on Java server-side stuff.

I showed up, and everyone was speaking backwards, with strange customs and habits, and mysterious acronyms. Going on about “artifacts” and “continuous integration” and “maven” and “ivy” and “nexus”.

After not too long I realized the translations were pretty easy:

Artifacts = binaries
Continuous Integration = (You need a word for "keep the build green"??)
Maven = "Yeah... we should have just used Ant."
Ivy = "We have to use it for Nexus"
Nexus = It was the name of his sled.

Anyway, perhaps I’ll check in from time to time with pithy observations about software engineering and testing and such. And occasional technical trivia.

oh, i dont know. what do you think?

David Van Brink // Sat 2006.10.14 07:18 // {java levity people}

The Menu

The other day I was coding. I wasn’t sure if it was afternoon or maybe evening… A single ray of red sunglight (dusk? dawn?) somehow found its way to a patch above my ergonomic chair. And my computer was strange. I had to put scrabble letters and plastic fish onto the screen just right, but they kept falling down. Also, my desk was sloped so the keyboard and mouse kept falling heavily into my lap, if I wasn’t careful to keep holding them up.

I looked around the office, and all my coworkers were happily, frantically typing away. And also, putting scrabble letters onto their screens, and sometimes reaching into the screen to squishily adjust something or other. Far away someone shouted, “101100101!” and was rewarded with scattered polite chuckles.

They were all very old.

I asked, “Should you still be here?”

“Oh yes! We have much work to do! We’re the only ones who understand the Olden Code!” He certainly seemed enthusiastic. “You know, job security, ha ha! In fact, this year I think we’ll be able to add a feature!”

“Yes, yes, a feature!” offered another in a nearby cube.

“But… should you still be here?”

A voice from a yet different cube answered, though he too didn’t turn to look. “Of course! We can’t leave. No no! We owe the Company. But that’s ok! It’s warm here.”

“And we have frozen burritos!” a fourth added.

“I was almost paid off,” another voice contributed, from a row or two over, “but then we got more users, so I had to stay on. Successful product, say what!”

More conversation ensued in this odd fashion, voices chirping from nearby cubes. But I didn’t understand. I wandered the aisles. One cube was decorated with a collection of old action figures, another with tiny bicycles, another with foam palm trees. And then I saw, posted in the break room, The Menu.

Fixed-Priced Items
(These are billed to you just once, regardless of software deployment volume)

  • Using goto: $0.01 per use
  • Using continue: $0.02 per use
  • Extending a class: $1.00
  • Extending an interface: $2.00
  • Extending Vector: $50.00
  • Public static variable: $100 each
  • Reading environment variable: $100 each
  • Duplicated source code file: $1000

Variable-Priced Items
(These items are billed per event on your user’s computer.)

  • Writing a file from the File menu: Free
  • Writing a text file: $0.50
  • Writing a binary file: $5.00
  • Writing a “dot” file: $15.00
  • Writing any file in $HOME: $20.00
  • Cost for file size during installation: $0.0001 per gigabyte
  • Modal dialog with two choices: $0.50
  • Modal dialog with one choice: $1.00
  • User enters illegal value: $10.00
  • Spawning a thread (application): $0.01
  • Spawning a thread (library): $0.99
  • Launching a subprocess: $1.00
  • Launching a Perl subprocess: $10.00
  • Launching a Cygwin subprocess: Two Months’ Salary

Happy Coding! :-) :-) :-)
The Company Needs You!

I was terrified. I would be discovered, and I’d be billed. I knew I’d done all these things. And then I thought, well, it is warm in here… it’s better than being outside, in the rain, without a burrito.

oh, i dont know. what do you think?

David Van Brink // Wed 2006.09.20 23:19 // {levity people}

The Fun Part!

I work in corporate setting, on a large team producing (essentially) a narrow-market shrinkwrap title. And we’re getting very close to our ship-date.

This is the fun part!

This part of the development cycle is full of surprises. The basic code works, it’s been demonstrated now and then to roomfuls of people. But. All the little niggling details you were hoping would just go away shall now come back as a barrage of little crises. (Or do they? I think some of them did just go away.) It’s all about breaking or not breaking the build, urgent interdependencies discovered of a sudden, and… what about documentation.

Tiny details of this or that ripple up and down the directed acyclic org-chart graph as urgent phone calls, frantic emails. Executives suddenly take an interest in the placement of semicolons, recalling their own youths misspent as engineers. They just want to share the fun a little.

And somehow, branching the source tree just never becomes routine. You ever notice that? Every release is just a little different than the last one, and managing the branch is always an innocent experience, a rebirth. Everything old is new again.

The bugs roll in, the bugs roll out. Fixing a well-defined bug is so easy! It’s a task and you can just do it and then it is done. Bug closed. So satisfying. Sure, maybe it’s midnight, but heck, it’s always midnight someplace.

Ah, and the timezone dance, as remote corners of the company you’ve never heard of are suddenly outed as depending on a random bit of code you thought you’d deleted long ago. Thwack+8h! Ok, Europe, those libraries should link OK now. Thwack+8h! Asia calling, they say none of their plugins load any more. Thwack+8h! US of A here. Sorry about the broken build, you see we got this great idea last night about how to rework the class loaders…

And late stage architectural rejiggerings because… well, last chance before you ship. Heck. We’re professionals, we can do it. I bet it’ll work… yeah… I know: we’ll write a unit test first!

This is the home stretch, the relentless passage of hours between Alpha and Beta and Shipping (always known by their local names), the deferred features and misfeatures, the awesome impact of integration. Aah, invigorating, no?

This is the fun part!

Davinator // Thu 2006.09.21 15:163:16 pm

You sound like you’re trying to convince yourself it’s true…

David Van Brink // Thu 2006.09.21 16:574:57 pm

Yes, well… you know. Humor is how we deal with pain. Slapstick and ultraviolence. I’d say more, but I really gotta fix these bugs or Blevins upstairs will have my head.

oh, i dont know. what do you think?

David Van Brink // Thu 2006.08.3 00:08 // {people}

Geometry & Dialog

Some time ago at the recommendation of a friend I perused a book called “On Dialog” by David Bohm. I never did quite figure out what his trip was. Physicist who meandered into the realm of the touchy-feelie later in life.

“On Dialog” was about how to establish and maintain… um… ur… an ongoing dialog. Like I said, wishy-squishy stuff. But one bit did stick with me, perhaps the one bit I was actually equipped to assimilate: Geometry matters.

Here’s where I reveal my ranting cranky self, if it were ever hidden. Have you ever attended a meeting which looked like this:


It’s perhaps slightly exaggerated, but only slightly. It’s infuriating, it makes no sense. This is a bad geometry. Or, in the language of my people, “Geometry gone bad.”

Now, nobody would accuse me of being a master of social discourse and subtlety. And rightly un-so: I’m not. Figuring out how to even barely communicate with my fellow ape has been a conscious lifelong struggle. So you can trust me when I tell you I’ve thought this over and I think it’s right: Mr Bohm claims that the best shape for a meeting is a circle. Amazing!

Hippies figured this out a long time ago, when they, aah, invented hacky sack (in 1972).

I’ve analyzed this carefully, and it turns out that every point on the circle has a line-of-sight to every other point. And I guess that this facilitates communication. (That’s really the only point of this posting. After that, it’s all follow through.)

The concept scales reasonably well.

I vaguely recall something about English Knights sitting in a circle, say what?

The concept can also influence furniture shape. Here’s a quiz question for you, dear reader:

It all becomes so obvious, no? And here’s a situation that King Arthur didn’t have to deal with, but it all falls out quite naturally:

The purpose of those trapezoid tables you sometimes find is at last revealed. They can be assembled in straight lines for standard authoritarian presentations, or arranged in swoops and arcs to facilitate more equal communication.

“So you see, they were all out to get me, with their… their faulty seating arrangements and… badly aimed video projector. Aah, but the strawberries, that’s… that’s where I had them. They laughed at me and made jokes but I proved beyond the shadow of a doubt and with… geometric logic… that a duplicate key to the wardroom icebox DID exist… Convex table layouts… that was the answer.” 1

And this concludes my geometric pet-peeve weakly disguised as an informative posting.

1. The Caine Mutiny, 1951/1954, more or less

Daniel Jalkut // Thu 2006.08.3 21:439:43 pm

Wow – that’s a very fun, and very thought-provoking trip down geometry lane. I’d never quite looked at it that way before. Though, knowing you at least somewhat well, I wonder what it means that I never felt like we had too bad of “fellow ape” communication struggles. Maybe we’re just compatibly debilitated :)

oh, i dont know. what do you think?

(c) 2003-2011 omino.com / contact poly@omino.com