Software and life, mostly life.

30 June 2008

Incredible design process.

Bang & Olufsen design team avoids meetings/process and "sculpts" products little by little - (37signals)
David Lewis, Bang & Olufsen’s chief designer, discusses the company’s unusual approach to design with The Wall Street Journal.

Along the way he reveals the pioneering B&O design team only spends 2-3 days a month at B&O headquarters and works externally the rest of the time, they never meet, they have no fixed process, and they build initial versions of products out of cardboard and paper.
It's amazing to me that a company netting more than 927 million USD in revenue having more than 2500 employees could work this way, but it's becoming less surprising the more I learn about creative companies.

The line from the interview that stuck out to me was this:

This is not just my way of working. All designers for B&O — not
just me and my team of six — are external. The company believes in it.
My six-member team aside, designers for B&O don’t ever meet, we
don’t have any cooperation with one another at all.

Wow, when developers do it, they call them cowboys or lone wolves (with negative connotations), but how much richer would the product be if we approached it as designers crafting something lasting instead of carpenters building something functional? Software can have style in a major way and that style can effect uptake, just look at the beating Apple is giving to Microsoft in the small/independent/open source developer world. There's room for indie, even in the corporate world. Big business doesn't have to mean traditional business.

Not to get too off track, but I've got to point again to Richard Gabriel's admonition that developers be writers of software, not merely coders. An amazing idea if you have a moment to read it. Beauty is possible in code as in life.

13 June 2008

claiming the prize. ignore this.

Technorati Profile

Misdirected attention or misdirected teaching?

Response to The multi-tasking virus by Nicholas Carr

But it was the audience's reaction [to Columbia professor Dennis Dalton's lecture] that left an even greater impression on Waitzkin:
Over the course of a riveting 75-minute discussion of the birth of Gandhian non-violent activism, I found myself becoming increasingly distressed as I watched students cruising Facebook, checking out the NY Times, editing photo collections, texting, reading People Magazine, shopping for jeans, dresses, sweaters, and shoes on Ebay, Urban Outfitters and J. Crew, reorganizing their social calendars, emailing on Gmail and AOL, playing solitaire, doing homework for other classes, chatting on AIM, and buying tickets on Expedia (I made a list because of my disbelief).

There's a very strong possibility that the real takeaway here is not the malaise and malady of multi-tasking and attention direction disorder[1], but a classroom from 20 years ago be reenacted for the benefit of students today.

I can't defend any of the students' actions, what Waitzkin describes is rudeness and wasted tuition for sure. But, I think there is also fault to be found in the situation itself. The same lecture hall style classrooms have been in use for hundreds of years, but only in the last 10 have computers become ubiquitous. I finished college in 2003 and even then there were maybe 1 in 10 students with laptops and no wireless on campus.

There's an opportunity here. I've heard--and it sounds reasonable--that new business thrives at the boundaries. Where there's turbulence and change, there is also opportunity. The image from this story that sticks in my head is a forlorn professor at the edge of retirement looking out at a sea of rectangles where 10 years ago he saw a sea of faces, or at least a sea of tops of heads. The more appropriate maxim (rather than "kids these days") may be "things are changing, and they're changing faster."

Maybe the problem is just with students getting dumber. But maybe the problem is that the screens only have one side. Maybe the problem is that everyone is looking at something different on their personal screens. Maybe the problem is that instead of experiencing the history the teacher is describing in any of the dozens of interactive ways the technology each student obviously had access to allows, they are expected to listen to a single person somewhere down in front talk about it.

There is no silver bullet, the answer is not simply, "make it a video and put it on YouTube." There is however an opportunity here to try out a lot of different answers. My personal vote, is get the heck out of the classroom. However it goes down, I'm excited to see how the world will be different for my children.

[1] quote from the comments: "That's not mind-wandering, it's attention -- just aimed in another direction."

04 June 2008

tags: secure, security, guns, concrete,

Switch | NAP - SECURITY

WWBSS (What would Bruce Schneier Say?) about this setup? I would love to hear the first hand account of the pen test team that gets the first crack at this place.

please note: if you are a quasi-governmental, overly militaristic, self assured, mega-data center operator, your customers are still only as secure as the fat pipe that connects them to the outside world. More bullets != more secure. All eggs in one basket may not be the best idea.

just, wow. also make sure to check out the video of the super datacenter itself.

changed feed location

for my, like, one reader. I've moved my feed over to http://feeds.feedburner.com/ProcessOverContent . Gives me some stats, and whatnot. update your readers accordingly.

that is all.

It's about people

ongoing · Not an OS
I: It’s About People Not Technology · The “Web OS” meme is harmful because it’s about technology. But the Internet’s killer app is people, has always been, will always be. Every single step forward has involved finding new routes and patterns and tools for people to use interacting with other people. No exceptions.


I dropped a comment on this post. I agree with tim so hard it hurts and it seems like a lot of the other commentators were missing the point.

I've heard a glimmer of this same idea in the statement that the internet is not for anonymity (stated in response to some inane comment on reddit). It works very well when you're anonymous, but only because it works very well when any brokenness creeps in. A better explanation might be that even the anonymous seek community, but I prefer to think of anonymity as small scale censorship and we know how well that works on the internet.

We're in a funny place right now with internet technology. It works, many in the know and I'm sure a lot of academics would probably say it could work much better, but it goes. Could this be another case of worse is better? Someone asked the other day why we can't get over Twitter. Why, in the face of it's technical shortcomings and nagging inefficiencies, can't we move to a better platform? Because it's good enough and the people are there.

I don't think "network effects" or "it's viral" are complete enough in their explanation of why these highly connected things become and stay successful. As explanations go, they're still too technical, they kind of make it sound like the reasons for success are new. They're not. The answer is still people. Has been for a really long time and will continue to be when we're all dead and our children (or our robots) are running things.

The moral of this rambling? Don't neglect the people you interact with. Don't neglect the relationships required for your or your company's success. Don't think you are above or outside the need of human contact or cooperation. Right now my wife and I are pondering starting something like a non-profit or foundation to support the kinds of things we're interested in seeing happen in Baltimore. Bread baking/food prep coop and hacker space are the big two and the wall we keep running into is that we're pretty much introverts (INTJ and INTP, respectively). That wall will come down sooner than later, though...

01 June 2008

Baltimore DIY Fest

Here's an event that might roust up some Baltimore makers and hackers: The Balitmore DIY Fest hosted at 2640.

I'll be there with the fam' from 11 till about 3, cutting out at noon-ish for lunch up the street at Chipotle (near 32nd and St Paul). I want to catch the MIDI instruments workshop, and my wife is hoping to see the bicycle repair session. Stuff that's bordering on relevant for us.

Unfortunately we found out about the event a bit too late to get our act together, but next year we hope to have ready a DIY home foodstuffs guide for sale or gift. For goodness sake, tables are only 5$ for the whole day. We do some of our own canning, coffee roasting, sourdough bread baking (all my wife), and beer brewing. "coffee canning beer and bread" has a nice ring to it.

The space is a very cool old (old) church in the midst of refurbishing. I saw a friend's theater company (Run of the Mill Theatre) put on a play there and was very impressed. Right now I'm out in the 'burbs but looking for a place in the city so it'll be easier to get involved with things like this... not that we should let location be any excuse for talking but not walking.

Simple tree using a Python dictionary

What I already have: table with rows containing (NodeId, ParentId, Title) values.

What I need: a simple tree structure mapping Nodes to their parents.

Solution:

# simple tree builder.

# (node, parent, title)
els = (
(1, 0, 'a'),
(2, 1, 'b'),
(3, 1, 'c'),
(4, 0, 'd'),
(5, 4, 'e'),
(6, 5, 'f'),
(7, 4, 'g')
)

class Node:
def __init__(self, n, s):
self.id = n
self.title = s
self.children = []

treeMap = {}
Root = Node(0, "Root")
treeMap[Root.id] = Root
for element in els:
nodeId, parentId, title = element
if not nodeId in treeMap:
treeMap[nodeId] = Node(nodeId, title)
else:
treeMap[nodeId].id = nodeId
treeMap[nodeId].title = title

if not parentId in treeMap:
treeMap[parentId] = Node(0, '')
treeMap[parentId].children.append(treeMap[nodeId])

def print_map(node, lvl=0):
for n in node.children:
print ' ' * lvl + n.title
if len(n.children) > 0:
print_map(n, lvl+1)

print_map(Root)

"""
Output:
a
b
c
d
e
f
g
"""
This works well for my purposes because I want to be able to go back and refer to an element by id without having to write the code to traverse the tree and find it. Keeping a copy of a tree structure and keeping a reference to each element in a dictionary, I get the best of both worlds. Deletions are difficult since I'm not keeping track of parent nodes. But, since the use case is a menu on an ASP.NET page that rebuilds on every load, I'm not storing a copy of the tree in memory long-term (i.e., deletions and insertions are irrelevant).

Unfortunately this is just a sketch to wrap my brain around the idea. In real life I had to implement it in VB.NET. (see http://pastebin.com/f8e9c672)

Subscribe Now

About Me

My Photo
Baltimore, MD, United States
Husband and father, software developer in Baltimore, MD. http://adambachman.org

Blog Archive