Linux - NewsThis forum is for original Linux News. If you'd like to write content for LQ, feel free to contact us.
All threads in the forum need to be approved before they will appear.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
First off, a big thanks to Jeremy at linuxquestions.org and the folks at O'Reilly for allowing me to attend this year's OSCON event in Portland, Oregon. As you may or may not know, a drawing was held in early May of this year, and I ended up with the lucky conference pass.
So, I thought I'd start my ramblings with that linuxquestions.org forum post, as it should give you a little insight into who am I, and whether you should care to read much further beyond the end of these next few sentences:
I moved to the Seattle area in 1989 to work at a then-unknown and relatively small company called Microsoft. As a newly-minted graduate of the University of Illinois, I was pretty familiar with software development (though, at the time, a degree in liberal arts degree in pure computer science didn't even exist: it was a math degree that used computers to help solve difficult problems). But, software development at a fundamental, commercial level was very new indeed. My first project was Word for Windows 1.0 (code-named Opus). At the time, the Word application shipped with an OS called Microsoft Windows, since no one ran the Windows OS natively: there simply was no reason to do so.
Fast-forwarding through these past 19 years, and I've learned a great deal about software development from many different angles. I was a very lucky kid who just happened to be in the right place at the right time to witness this incredible technological shift. Very lucky indeed.
Today, I'm no longer a Microsoft employee. Times have changed, and so has what it means to develop software. To me, the future of software has tended more towards community-based development practices that foster openness and success through merit. That success, to me, is exemplified in Linux and its derivatives.
What a great time to be a part of the software development world. Truly amazing changes are taking place... once again...
Technology is very cool.
So, there it is. To be completely honest, I had really hoped to post a bit more on the whys and wherefores of the world of open source, what dynasties would topple and who might soon reign as our supreme open source overlord to guide us all forward into the golden light that is software goodness... but my wife yelled to me from the car that I was going to be late for lunch, and so had to wrap things up in very short order.
So, instead, I was forced to end with the statement: "technology is very cool." Which, if I were to ever have a signature line dripping off the bottom of my email--and I don't--it would be that very same "technology is very cool." It is the very essence of what I believe.
That's just about all you need to know about who am I. At least the relevant stuff.
Oh yeah, I really have to pass this along as a public service message (or a personal pet peeve of mine, however you see fit to accept it): I absolutely hate the term "back in the day." Really. No, really. It's like dirty, unclipped fingernails scraping over a chalkboard. It makes my brain itch and my tongue loll. Please don't use that phrase ever again. Please.
Okay then, we have an understanding.
Onward then, to OSCON 2008.
Well, here I am, sitting quietly in my hotel room in Portland, Oregon. Not much is unpacked quite yet, as I wanted to make sure that I had a reasonable net tap available before doing anything domestic. How odd it is that in such a relatively short period of time, my travels--whether for work or personal relaxation--pretty much expect that I have the ability to mainline the net. With no Internet, I feel cut off, void and unworthy, like an errant anchovy cut out of it's bristling school of silver fins and unblinking eyes. How unnaturally unsettling and Neanderthal.
The good news: WiFi is available, albeit only 802.11b (go figure?). The bad news: my laptop battery is reporting total rigor mortis: 0% charge after charging it up this morning before leaving for Portland. Figures. Now my laptop is really just a desktop machine in very poor disguise. Wasn't I the one who just exclaimed "technology is very cool?" Hmmm. Very cool when it works well. Cool if it just works. Not so cool when my battery craps out at a conference far from home. I mean, couldn't it have died a polite and more appropriate death a day or two earlier? Sheesh.
Anyway, the drive down from Seattle to Portland was essential without incident or high-point. And without a high-point, there really can't be a low-point, so that's good. Just an unusually well-trafficked Interstate-5 dotted with hulking semi-trailer trucks that seemed to bumble a little too often from lane to lane, one awkwardly following the other as if I were participating in a circus parade of elephants, each clutching with its trunk the tail of the dottering creature ahead of it. Taking that image a bit further (and I'm not sure if I really should, but, let's just say if), if those semis were circus elephants, then I most certainly was a grey circus mouse, skittering in my Jeep Wrangler between each lurching and lumbering vehicle as I picked my way southward.
But, as I said, really not much fanfare otherwise, not really.
And now I'm here, in my hotel room with crappy, old WiFi and a laptop that thinks it's a desktop.
I see you've noticed that I use a 24-hour time format. You want to know why (he asked rhetorically)? It's because it's efficient and the rest of the world (besides the U.S. and Canada, with the intelligent exception of Quebec, of course) uses it. None of this "a.m." or "p.m." crap to think about. It's also ISO compliant (ISO 8601), although these days, it might be more appropriate to use a 12-hour format just to spite ISO. But, I digress.
Besides, it's a much easier string to parse whenever pressed to do so.
Where was I? Ah yes...
Arrived at the Oregon Convention Center about 30 minutes in advance of the opening keynote. Picked up my badge (nicely managed: just plug in your 6-character code that was sent to you via email and you're registered), and received the requisite bag o' tschoskes. This years bag had a nice blue-black theme (a la Intel) going on, but turned out to be difficult to carry around over my shoulder, so I resorted to using my laptop (errr... desktop) bag instead. Last year's bag was more akin to those swanky low-slung bike messenger-carrier type bags (though technically this is my first time to OSCON, I ended up with last year's OSCON bag when I participated in the locally-famous and wildly-popular Bellingham LinuxFEST in Washington State earlier in the year). As for the contents of said chic-but-not-so-functional tschoske bags: an assortment of Firefox pins, a sheet of Ubuntu decals, a foam-plastic rocket that you can launch at reasonably high velocities and dent hotel lampshades with a largish, built-in red rubber band, and a shrink-wrapped DVD from IBM that initially appeared to be of great worth, but upon inspection, contained a number of time-limited demo applications. Bummer. Also included in the bag was a sheaf of product literature. Oh yeah, and a special foldy map of the downtown Portland area. I'm sure that I'm leaving out other bits of marginal value, but those were the more memorable things.
With badge in full view (there were a surprising number of friendly-but-stern gate-keeping folks around every corner) and ad-emblazoned tote in hand, I hustled over to the foyer of where the opening keynote was to be held. I milled around between tables piled with colorful crudite (not exactly sure how to do this, but imagine an accent over the e) and random pasty-faced attendees--kids-cum-adults--dressed in black. Presumably the black is worn in deference and homage to the custom of wearing black on more eloquent and formal social occasions.
Although, contrast that with a youngish gal (of which, very few such types were present) swimming in bright red and yellow clothing-like garments with vividly blue-shining hair. At first, I thought she was a rather largish tschoske I had caught out of the corner of my eye, but then she moved and so, I was forced to rethink my original classification of what, or who she really was.
My choice of the word "milling" as in "to mill," as in "to wander with calculation" is appropriate here. For most developer-types like myself, the world is an awkward one, where human-human interaction is tangibly avoided. Such acts of communication can be both painful and uncomfortable. As a software developer, what if I happened to co-mingle with someone of like interests and discovered that I knew very little indeed? Or what I did know was just outright wrong? I would be subject to ridicule and the pronouncement that I was much less than who--in my own mind, a beautiful world of pink-and-blue skies, unicorns and perfect geometries--I had previously thought I was. It would be a mighty soul-rending realization, the likes from which I, and many others like myself, might never recover.
No. No, thank you. I choose life. And so, social networking is generally deemed strictly accidental and best left both undiscovered and wholly ignored. Hence, the milling around.
The level of activity in the foyer has suddenly increased. The milling around is paused. Heads turn towards the doors of the ballroom.
There is movement behind the great ballroom doors. The doors shudder. People are now casually drifting towards the doors so as not to attract undue attention, the kind that could very quickly presage a full-on, good ol' fashioned rodeo stampede. Instead... careful, metered actions. Calculated steps made to look unintentional as everyone carefully, slowly jockeys for position in front of the shuddering ballroom doors.
"Who me? I've been standing here all along, really."
"Oh gosh, I didn't realize that I was standing right here in front of this particular ballroom door, which is about to open. Hehehe."
Social doctrine is truly delicate in instances such as these. We are walking a truly fine line here. The tension is palpable.
One conference attendee unknowingly drops his carrot stick as all attention is now keenly focused on the shuddering doors.
Ahhh... the keynote doors are opening now. Wait for it!
People file in with certain anxiety. Their jockeying for the choicest ballroom door position must be parlayed into precisely where to sit in the yawning cavern now before them.
Must think fast and in realtime now! Too close and it might be too hard to see everything. Too far away, and it becomes a reliance on whether the visuals and auditorium acoustics are good enough. It is pure chaos in action and it's beautiful.
I choose a corner aisle seat about mid-cavern, selected for my purposes of observation. As I settle in, I am duly aware of the number of enormous backpacks (of the non-Intel type) and ponytails (of myriad sizes) present. They are statistically well outside the standard distribution curve for the typical (closed source?) software developer. And, a preponderance of Garfield stuffed animals hang innumerably from these backpack-toting, be-ponytailed brethren. I am both bewildered and agog.
Ah... and yes, there is the rare fedora settling down over there. And for this I am solaced.
The room is still filling in with attendees. Less chaotically now, and more deliberately, like spilled paint on a brick driveway. Characteristic "buffer" seats are now being utilized as the auditorium is nearly full now.
Many individuals are now lit by the soft bluish glow of their laptops. I'd guess there's a 10 - 20% distribution of these folks scattered rather coarsely throughout the room, keyboards clattering just below the din. From the stage, I imagine it must be a rather unnerving sight: peering into a darkly lit auditorium, and seeing these ghostly blue and expressionless floating heads flickering back.
As for myself, I am only lightly encumbered, carrying my recently-acquired Intel-flavored OSCON tote, a spiral-bound notebook of quad-ruled paper, and a pen, courtesy of O'Reilly (thank you). Very analog. Very organic. I am living the moment through the written word, however anachronistic and surprisingly unwieldy.
Oddly, I just now realized that the quad-ruled squares on the front side of the sheets are a slightly different size than the squares on the back side of the sheets. It's subtle, but just different enough that for a minute there, I thought that I had gone quietly insane and that this is how my last, final gasp of reality choose to exhibit itself. I will duly endeavor to remind myself of this panic-inducing experience the next time I buy a quad-ruled spiral-bound notepad. Phew!
Looking up from those oddly-sized quad-ruled pages, it appears that we are very close to the start of the keynote address. I see that there's a slide presentation running on several walls around the room. Ironically, methinks we are witnessing a classic PowerPoint slide presentation in action. I could be wrong here, as I just caught the tail-end of someone firing up the presentation from an application harboring that funky aneurysm-provoking ribbon thingy. Of course, I had just had a brush with an extreme psychotic episode, so my reality might still be warped, so please, don't quote me on this. It really would be ironic, though.
As for the slide presentation, for posterity (and since this is an OSCON trip report, marginally, of sorts), I should note that the slogan for this year's OSCON is "Open Your Mind." How's that for journalistic reporting at its very finest? Factual and eminently concise.
The keynote has officially begun with a "State of the Snake" presentation by Steve Holden. He spend a very few minutes cranking through the state of the Python programming language, with much hand-waving and redirection as various releases of Python are imminent (2.6 is beta, yet 3.0 is beta as well?). Honestly, I'm not sure why this year's OSCON keynote has kicked off with the development status of Python. I mean, pretty good language, but seems to me to be just a wee bit out of context here. Clearly, I'm missed some kind of deeply subliminal message. Perhaps it was something in those PowerPoint slides just a few minutes ago. Or maybe somebody made some announcement while I was in the midst of my wild quad-ruled notepad freak-out. I'm just not connecting the dots here. And from the mutterings in this cavernous hall lit with an eerie soft blue glow, I am not alone here.
In any case, Mr. Holden has completed his speech, and fellow Pythonians, or Pythonites, or Pythonae are cheerfully applauding him, or the language, or both, or some... or... I don't know.
Mark Shuttleworth speaks. His presentation focuses on how open source can drive innovation. By developing software that emulates the kind of global participation and collaboration that exists on the Internet, we naturally gravitate towards an architecture that encourages modularity and extensibility. Instead of monolithic software stacks, we are liberated into keeping just the pieces that we want, and continue to build "upon the shoulders of giants."
Mr. Shuttleworth also talked of synchronizes Linux platform releases in an effort to force what he calls a cadence of progress, where each metronomic beat set within the industry can be used as a metric for measuring change and improvement.
Shuttleworth also predicted that, going forward, the Ubuntu product (which his company, Canonical, underwrites) will segue from a "not so pretty" operating system (term used loosely here) to one of great art and beauty. Such beautiful, elegant software, Shuttleworth continues, that it should "help users get laid," referencing a popular meme from Jamie Zawinski (http://www.jwz.org/doc/groupware.html). A lot of tittering here.
Shuttleworth ends his keynote here. Overall, a notable experience. This was the first time I had heard Shuttleworth speak, and I found his ideas good in that they help set a direction, or a target at which the developer community can aim.
Of course, any reference to getting laid--however vague or wafer-thin the reasoning--would garner the interest of even the most contentious open source antagonist. Hey, we all have our priorities and intercourse of the sexual kind (must there be any other?) is a very honorable end to all our means, indeed.
I'm up early, awakened by the throngs of Portland commuters droning past my hotel room window. I stand by the window for a minute, and wonder what it would be like to be one of those passing motorists, on their busy way to their busy work when they happen to glance up a some tiny hotel window and see this solitary individual staring back down at them, wearing not more than a t-shirt and... errr... WAIT!
Hardly a prosaic image, however philosophical or well intentioned.
Enough of the meta-pondering and time to wash up and head out to OSCON.
Continental breakfast is served.
What is "continental breakfast," anyway, short of a pompous, self-aggrandizing euphemism for breakfast without the good, hearty stuff like eggs or sausage or bacon? Who are they kidding when "the they" are hospitality food vendors, and "the who" are people like you and me who expect a reasonably well-rounded and even marginally-nutritious breakfast? Yeah, sure, it sounds elegant and regal--a proper meal served on white linen with the finest of silverware--but in my vast and varied travels, a continental breakfast is coffee and doughnuts, or some close derivative thereof. How about coffee and a sweet roll? Or juice and a sweet roll? Or an orange and coffee? Or coffee, a doughnut, and coffee?
Oddly, something is missing here: anything but more carbohydrates, please.
A little protein would go a long way here, folks (and when I say folks, I direct my diatribe to those active in furthering the advancement of breakfast sciences). There's nothing worse than chowing down on a tableful of carbs, chasing that with a couple of mugfuls of hot steaming sugar, and then expecting to stay sentient 30 minutes into the next hour-long session. My academic career is pocked with intellectual potholes and lost learning potential, courtesy of the innocent, savory sweetroll and a cup of joe.
I am convinced that the downfall of our entire educational system is directly related to the seeming ubiquity of the continental breakfast.
All of this, all of it--one must presume--because carbs are cheap eats. But, please, we mustn't call this early morning gustatory sojourn a meal of cheap eats. Oh, heavens, no. We must call this something grandiose, and sweeping and interminable. It shall be called the CON-TI-NEN-TAL breakfast!
And they saw it was good! And there was much rejoicing!
And then... they slept. Right through calculus. For most of the semester.
Perhaps the carbo-loading has already taken its grim toll on this morning's zombie-mob of attendees. Hanging out in front of those auditorium doors this morning is most certainly more subdued than yesterday morning.
People are literally scattered up and down the long arching hallway like an odd assortment of tattered clothing at a discount factory-seconds shop the morning after a fire sale. Most are draped over some flavor of notebook, either around large round tables or--more comfortably--in the nooks and crannies of door frames and deeply set window sills. Those with computers rake over keys with ragged fingers, quietly busied with something completely irrelevant to the world about them.
Those sans machina complacently direct their gaze out windows and onto the street below, or into empty corners, safe corners where their eyes cannot inadvertently encounter a return gaze, fearful of being caught in the act of willfully staring.
It's a delicate ballet of subtle communication as the eyes sweep and hold--for a brief solitary moment--one another's gaze, and sweep and hold again from window sill to doorway to safe place. Only on very rare occasion is there ever a stumble or misstep that requires the equally subtle and non-verbal look of "whoops, sorry. I really wasn't staring at you. I was staring at that empty corner." Such are the risks of placid gazing.
Starbucks coffee cups are randomly distributed amongst all zombie-mob participants, and little apparent selectivity is exercised.
The large conference doors push open and the processional begins.
Some folks moved quickly and with the crystalline intent on being first. I've always come to believe that this reaction to queue-forming stems from something deeply rooted in the development of the "me first" child, where being first in line--regardless of for what--bestowed upon that child some subtle affirmation that he or she is "better" than everyone else, however intangibly or fleeting that sense of being "better" might really be.
I mean, first in line for getting a drink of water at the water fountain is really great, until you take that drink of water and step away from the water fountain. Then, it's all over, and the next person in line now reigns--however briefly--superior (perhaps even lauding that position over all others in line, time permitting of course). And so on. In fact, really, everyone is first in line at some point along this great continuum called time, right? At least the logic is there.
Of course, being first in line is ALL ABOUT the time. It's a temporal thing, man. Sure, you can be "first in line" 15 minutes from now, but by then, all the "me first" kids are outside playing at recess, and you're still waiting to "be first" at the water fountain (yeah, long line, really need to question whether it was worth standing here for so long just to get a drink of water). So clearly, there is some impalpable, yet highly intrinsic value to being first, whatever the cost.
To wit, witness the beauty that is the adult male or adult female who is, just this moment, "taking cuts" across the steady stream of now-animated carbo-loaded zombies and rushing over all manner of sedentary obstacle--accidentally on purpose--all in a vain attempt to be first. Numero uno. Top dog.
And thus, the cavernous conference room seats are filled, one by one.
The OSCON Welcome talk begins, hosted by Allison Randal (who also hosted last night's keynote, but I don't think I formally acknowledged this bit of keen observation). I'm confused that this is a "welcome" keynote, but we're right smack in the middle of the week, and more relevantly, we're right smack in the middle of the OSCON Convention. Perhaps this is an OSCON cultural thing, like eating everything on your plate or else having it shipped to some starving kid who'd very gladly eat everything put down in front of you, so you'd better stop your complaining and start eating right now, little mister!
Uh... okay. So the welcome keynote is happening right now, on Wednesday, in the middle of the week, in the middle of OSCON. Period.
Ooo... this year's diamond sponsors are Intel and Microsoft. I wasn't aware that the folks running OSCON had such a fabulous fashion sense. I wonder if those diamonds will go into designing a nice brooch pin or a more classically-stated princess solitaire pendant. I can't wait to find out.
Tim O'Reilly speaks. His presentation was something of a retrospective on the past ten years of OSCON (yes, this year is the ten year anniversary of the convention). Interestingly, OSCON evolved out of a conference directed specifically at Perl users (hence the name of the conference back in 1997, "The O'Reilly Perl Conference"). So, I'm still not sure why yesterday's first keynote was a state of the state address on Python. I'm so confused.
Mr. O'Reilly also spoke on the status of open source development, providing some easy-to-digest slides (charts and pretty pictures) that suggest that open source software development clearly does exist. Of the 2.3% of IT (Information Technology) jobs available (per Bureau of Labor statistics), 1.8% of that 2.3% are open source jobs in technology companies that use open source software. In companies that are decidedly (at least, according to the Bureau of Labor) non-tech, .25% of that 2.3% are open source jobs. So, that's really great news (I think... maybe not?). Clearly, I have paid too much attention to the easily-digested charts and pretty pictures.
Looking forward, Mr. O'Reilly spoke of three significant trends in the world of open source: cloud computing, an open (programmable) web, and open mobile.
Cloud computing is all about moving application services off your local machine(s) and hosting them on the web (errr... cloud). The great benefits here are scalability and virtualization, usually offered up as a pay-per-use or subscription-based service. Some references that Mr. O'Reilly mentioned include amazon.com, google.com, engineyard.com, 10gen.com, reasonablysmart.com, and rightscale.com.
The open (programmable) web topic was really an underscore to Mr. O'Reilly's original claim to fame of the term "web 2.0." The programmable web is a way to understand the Internet not so much as a series of destination sites (or tubes... wait!... who said tubes?), but as a platform for extensible services, an "Internet operating system," where data is the key focal point (a notable quotable: "data is the 'Intel Inside'"). References included dopplr.com and... wait for it... programmableweb.com.
And finally, Mr. O'Reilly spoke briefly on the topic of the open mobile platform. With the success of Apple's iPhone, there will be an increasing expectation for the access of information via mobile device. Some thought will need to go into how to split user activities between their mobile device with a physically limited interface and the more mature interface of the desktop (Apple's iTunes service is an example of how to split some functionality between the web and a local host), but there is clearly a move in that direction. Examples include openmoko.com and Google's Android mobile platform.
Christine Peterson, from the Foresight Nanotech Institute ("Advancing Beneficial Nanotechnology," try to turn that into a catchy ad jingle), and credited with inventing the term "open source," spoke on the topic of the future of nanotechnology. Honestly, it was pretty gloom-and-doom stuff, laden with some heavy-duty conspiracy theory anecdotes. I mean, who am I to argue that our municipal sewers aren't regularly monitored by the government in an effort to locate communities harboring illicit drug users? So, I guess if the feds can't catch you red-handed the moment you bought those illegal drugs, they'll get you long after you've used the drugs, presumably just about the time when you really could care less--about much of anything, man--particularly some noisy dudes banging at your door after you've just taken a nice long pee.
Ah well, evidently big brother is alive and well and is making use of the same sweet technologies that you and I have been using to create pretty pictures on websites. Are we supposed to be surprised by any of this?
Ms. Peterson did make a very interesting observation about how the government (she refers to the government as "DC") handles issues of, in this case, surveillance. In her view, the DC bureaucracy creates surveillance tools that are top-down in nature: large, monolithic, centralized systems of rules and processes that, by their very nature, generate vast datasets intended for limited and privileged audiences. Conversely, some DC security issues, such as terrorism, tend to operate from the bottom up, using decentralized thinking and toolsets that are specifically intended to solve (or create) very targeted problems. My own personal interpretation on all of this is to rehash the old idiom: a solution in search of a problem vs. a problem in search of a solution.
Overall, an interesting, albeit spooky, presentation.
Dirk Hohndel of Intel spoke next. Originally, it was supposed to have been Imad Sousou, the Director of Intel Open Source Technology Center, but he was unable to attend at the last minute. Interestingly, it turns out that it was Dirk all along who had written the presentation to be given by Imad, so the world has managed to careen back into a delicate, watch-precision balance.
Mr. Hohndel's presentation, entitled "Linux for the Next Generation Mobile Internet" was a quick status on Intel's mobile Linux project called Moblin (mobile + Linux = Moblin). Unfortunately, the project was supposed to have been released in time for OSCON, but appears to be three to four weeks behind schedule. Honestly, I wish I could convey additional information to you about a potentially cool project, but I must've nodded off, as I have paltry few notes scribbled here on my solid-state, always-on, quad-ruled notepad. Damn that continental breakfast!
Break time. Time to wander around the Expo Hall a bit before my first session begins in a half hour.
At any conference, there are typically any number of exhibits to meander through. These are the vendors who pay good money to set up kiosks and booths so that they may proselytize and pontificate on the hows and whys their product is better than the other guy, ironically and uncomfortably set up in a nearly identical booth two feet to their left or right, or both ("Brand X, I'd like to you meet your neighbor, Brand Y"). The beauty here is that we, the meanderers, are unleashed into this competitively-charged environment to roam free and are--in the end--the real reason why the vendors are here: to entice us to buy stuff, their stuff, and oftentimes, cool stuff. Effectively, we are kids in a candy store, and the candymen (and all-too-rare) candywomen are giving away free samples. A lot of free stuff: enough to rot right out the teeth of even the most ardent tooth-brushing, dental flossing three-times-a-day-and-after-every-meal fanatic. Reminds me of a quote from the movie Willie Wonka and the Chocolate Factory:
"Inside this room, all of my dreams become realities, and some of my realities become dreams, and almost everything you'll see is eatable... edible."
And so I am unleashed (did I mention that I'm the first in line?), in search of candy and free stuff.
But not all candy is desired so equally. Some is much tastier than others. Clearly, we all have our favorites, our sweet tooths. Free hardware of any sort is worth binging on with nary a second thought. Such succulence is rare indeed: a new mouse; a new video board; a USB stick. All a tasty delight. A jot down from hardware and it becomes a mixed bag of treats. I, personally, crave polos and t-shirts. Good ones. Colorful. Cool-looking. Embroidered logos if 'ya got 'em. White undershirts with one-color logos? Bland. Bleech! Please! Marginally worth the effort of stopping to look them over, much less carry them around for the duration of my candyland spree. And what was the name of your product again?
And so I grab for all the goodies I can stuff into my Intel-flavored tote. T-shirts, magazines (one with a brilliant Skittles-candy-fruit-chew-yellow cover), a stuffed-animal octopus (each leg symbolic of that vendor's different application suite... huh?), drink koozies, bottle openers, a little LED light for... finding... stuff... at night... when it's dark. All of it, into the tote. Candy. Free candy. All mine mine mine.
Hours later, I will have a belly-ache and will question why I stuffed my tote so full of free stuff. I will be remorseful. I will wonder why I grabbed for that shiny grape-colored mini-carabiner. What the hell am I supposed to do with a grape-colored mini-carabiner? I will determine then that my eyes were too big for my tote. And I will groan in quiet, shameful agony, and swear under my breath... never again.
Session: "Rebuilding Linux for the Desktop," Keith Packard
Okay, I now stand at a crossroads with you, the reader.
It's 1044, and I'm heading in to my first session entitled "Rebuilding Linux for the Desktop." And that presents a bit of a problem.
You see, what I've written so far (ergo, what you've read so far) is what might be construed by some (by a very, very few, but still some) to be a trip report. In fact, I may have accidentally made reference to this narrative as a trip report earlier on. Well, suffice to say, it really isn't. Or rather, it shouldn't be. Because, if it really were a trip report, I mean... a real trip report... with all the formal trappings and correctness and detail and eminent value of a trip report, well then, I would have missed that mark very early on indeed. Seriously, I'm not sure what this has become, but I know what it isn't, and it isn't a trip report.
I'm telling you this now because I'm heading into my first session, and I won't be taking the kind of notes that you'd otherwise expect from a trip report. I'm not planning on taking any notes at all. I'm planning on just sitting in these sessions and listening to what will be said, and I will profit from those spoken words. But, I'm not going to reveal this knowledge to you, kind and gentle reader. What I will do, though, is pass along some keen observations, like I've been doing so far, so that we may all chuckle a bit, or roll our eyes with mutual understanding.
But, learn something? No, sorry. That's too heavy a responsibility for me. I mean, we've managed to get this far along with learning absolutely nothing of value. I'm on a roll here. I'm not your man. Pick someone else. I'm not that good, really. Pay no attention to that man behind the curtain. Please.
Now, for completeness, and no other reason, here's my day's session agenda, just in case someone asks, even after I've told them this isn't a trip report:
1045 - "Rebuilding Linux for the Desktop," Keith Packard
1135 - "What Makes a Modern Linux Desktop, and Why Do You Care?," Matthew Garrett
1345 - "How I Learned to Love Revision Control," David Gray
1435 - "Full-stack Introspection Crash Course," Theo Schlossnagle
1630 - "Web Frameworks of the Future: Flex, GWT, Grail, and Rails," Matt Raible
1720 - "An Illustrated History of Failure," Paul Fenwick
Two minutes into Keith Packard's talk entitled "Rebuilding Linux for the Desktop," and there's this kid a couple rows ahead of me and a few columns over, and he's hunched over, curled up in a ball, and playing Crysis on his laptop, right in the middle of the lecture. WTF? Are we at the very pinnacle of our society as multi-taskers when we can attend technically-rich presentations and yet, preoccupy our idle time careening through gorgeously-renders, killer FPS jungles on a quest so abstract that it makes the inanity of this very moment seem completely mundane? Who does this kid think he is... some sort of uber-kinter-nerd, beyond reproach? What if there's a quiz at the end of this session? A pop quiz? What then? How will he be prepared for the real world? Does he know where he is? Who are you? And why are YOU here? Hey kid! Quit it, kid!
Crap, now I've gone and missed the opening two minutes of Keith's talk.
Session: "What Makes a Modern Linux Desktop, and Why Do You Care?," Matthew Garrett
Hmmm... not much meat on the bone. from the session description, I was expecting a big picture understanding of X server (as in X.org) with a look forward on the future of X. Instead, this talk was really a discussion of some of the better known bugs in X, and when and what fixes will be made.
Time for some lunch.
Now, I'm not exactly an exuberant and extroverted guy (I can be in a pinch, when I see the need, but my steady-state is certainly more subdued). I generally subscribe to the rule that less is more. And so, with conversation of any reasonable sort, I'll chime in when I feel like I can add some value, or correct a wrong, or praise someone for passing along some wisdom or knowledge of particularly grand value.
But lunch today was outright painful. Painful in that I single-handedly managed to hold an entire chicken-breast-and-salad-with-green-beans-and-water conversation with asymptotically zero interaction with the folks seated at the table around me.
I felt like I was playing a raucous game of ping-pong, but never managed to get much more than a ping. Ping... ping... ping... Nothing.
Oh, why bother?
Session: "How I Learned to Love Revision Control," David Gray
Meh. A quick rundown of what revision control is, with a bias towards subversion (which is fine, but various subversion commands tended to be focal point of the talk, when the larger concepts of what those commands do would've been more enlightening). The use cases provided as examples didn't really demonstrate a real need for revision control, rather that certain company practices are pretty dubious indeed. I don't think even revision control would've saved them. In any case, I was left desirous for just a little bit more love for revision control.
Note to self: wow, there are a lot of Macs here. I mean, I'm seeing a majority of Macs here. If I were shoved up against a wall and asked to guess what percentage of Macs I was seeing, I'd croak out well over 60%. Maybe 70%. Maybe more, if you pushed me down and twisted my arm.
These are Macs. Pricey. Closed architecture. Closed... everything. Shiny and white. Like over-zealously-brushed teeth.
And yet. Here they are. Legions of them. All smiling and white white white.
Session: "Full-stack Introspection Crash Course," Theo Schlossnagle
Not sure which came first, the excellent session or the excellent speaker, but this was an exceptional session. Mr. Schlossnagle walked us through an overview of DTrace, a debugging framework developed by Sun, and then proceeded to give the class a demonstration on several live servers. Very cool stuff. Highly recommended. Too bad DTrace doesn't run on Linux boxes... I was all excited to go home and break something just to attempt to fix it with the genie-in-a-bottle magic that is DTrace.
This is, hands down, the best session I've attended so far.
Session: "Web Frameworks of the Future: Flex, GWT, Grail, and Rails," Matt Raible
An overview of some of the more popular web frameworks very well presented with both pros and cons, and some benchmarks comparing various scripting languages. Hint: don't use scripting languages if speed is important. Ummm... okay.
Session: "An Illustrated History of Failure," Paul Fenwick
Well, the session title says it all. Mr. Fenwick's presentation walks through some of the better known technology failures caused by humankind, culminating in the Northeast Blackout of 2003. Clearly, he is at ease with his presentation, and is great at timing his humor. The take-away from this session: don't make mistakes, and if you can't guarantee that, try to make very small mistakes instead.
The morning kicked off rather uneventfully, spinning up with a warm, comfortable hum. Oh wait... that's the air conditioner kicking on.
Quick breakfast at McDonald's to pre-protein-load before heading over to the convention center for that sumptuous continental breakfast.
Continental breakfast of eggs, bacon, ham... wait... no, that can't be right. Strike that. Continental breakfast of a sweet roll and a cup of coffee.
I decided to premix my sugar and creamer before pouring the coffee and in doing so, managed to avoid using one of those little wooden mixing sticks. Success. I'm feeling very good about myself this morning.
Today's plan of attack:
1045 - "Ubuntu Desktop Technologies," Ted Gould
1135 - "Just Enough C for Open Source Projects," Andy Lester
1345 - "Do You Believe in the Users?," Ben Collins-Sussman & Brian Fitzpatrick
1435 - "Top 10 Scalability Mistakes," John Coggeshall
1630 - "Wonderful World of MySQL Storage Engines," Peter Zaitsev
So it seems to me that the world of coding has gone through a sea change. Not so much in terms of any sort of language favoritism, which changes about as often as it (usually) rains here in Seattle, but with an emphasis on coding fundamentals: what it means when someone blurts out "I code!" The tip-off is a session offered here called "Learning Enough C to Barely Get By" (the title has no doubt been horribly disfigured, as I'm too lazy to skip over to the website and look it up; besides that would possibly enough diminish the vibrant colors of the world of fiction in which I live and write). The only conclusion I can draw from this (of course, this is wild speculation as my own speculation is all happening well before the session is actually offered [edit from the future: liar!]) is that there's evidently a real need for something like this within the ranks of modern-day coders, and if that's true, then my observation is quite correct (ahhh, the wonder of circular logic never ceases to placate me into comfortable righteousness).
In any case, to add some meat to my bone of speculation, I can say that over the past decade or so, the advent of the web has clearly moved our notion of coding from monolithic, compiled binaries--chock full of niggling hardware assumptions--intended to run on very specific machines, towards the inclusion of a more distributed environment where the target hardware can be nothing more than a twinkle in some virtual iron's eye. Nothing surprising at that level. But, what comes out of this lack of specificity in hardware is the natural need to abstract away data type dependencies. So instead of declaring an integer variable, which could be 8, 16 or even 32 bits, a variable can be defined outright without a whiff of care as to its size or even declaration: just gimme' a hunk of memory and I'll pour whatever I damn well please into it, thank you very much. And so, the dynamic, relatively loosely-typed language is belched forth. Long live the likes of PHP, Perl, and Python to name a few (well, at least a few that start with the letter P). And with these high-brow newcomers, comes the esoterica of no longer having to declare types, allocate, initialize, manage, and (phew!) deallocate memory. Welcome, young Bodhisatva, you have achieved programming Nirvana!
Ahhh... but not so fast. We've all idyllically skipped down the well-sculptured paths through such Gardens of Eden before. When was the last time you wrote anything in longhand (that's cursive, you know, the curly stuff)? Or performed long division with paper and pencil (or even sharpened a pencil to perform said activity... you know, those octagonal orangey wooden things that are really sharp at one end and, conversely, really soft at the other)? Or changed the oil in your car (assuming that you can even locate the oil filter without removing something of extreme bulk)? Or even ordered brewed coffee instead of a triple-dry-extra-foam-doppio-Nutrasweet-cap-with-room-and-a-twist... uh... to go? Yeah, well, you get my point. It's all about change, stupid.
Maybe the painful days and hair-rending nights of matching up malloc()s with free()s are supposed to be over. Maybe I shouldn't care that I've just accidentally cast a long to a short, and won't discover this nuance for another week and untold sessions wading waist-deep through the debugger looking at really really small numbers. Maybe these spiffy high-level scripting languages really are the shit. I mean, really.
Yeah... but... there's a problem here, methinks. These grace-saving languages are written in something, right? I mean, unless they were gifted to us by the Gods of all things right-shifted (or sometimes left-shifted), it's kinda' important to understand what makes things tick.
Now, granted, in my lifetime compilers have gotten so good at optimization that most hand-cranked assembly will hardly add value. And, I personally can't remember the last time that I had to write assembly (well, that's not true, but let's just say that it was long before there was such a thing as good compiler optimization). But, one (well, me... errr... I) could argue that it's always a "good thing" to be able to jump down into a codebase with a pretty good understanding of what's going on. And when I say "a pretty good understanding of what's going on," I mean a fundamental, core understanding. So, if you're high-level language happens to be coded in a strongly-typed language like C or Java, it makes sense to have that fundamental understanding of what's going on in case something goes cock-eyed, right?
And so, after countless (no really, I didn't count, ergo countless) paragraphs, I have just now arrived at my point, which is why I think there is this session called "Learning Enough C to Barely Get By" (still going with that one). I suspect it's because there are quite a few folks out there these days coding up a storm with very little fundamental understanding of what's really going on under the covers. And, maybe that's okay, maybe not. But it most certainly is change.
We shall see.
Getting settled for this morning's round of keynotes. Folks this morning are less chatty today. A little more fuzzy, sedate, placated. More slow-moving and leisure. Seems like we've all fallen into a familiar pattern now: eat, hang out, listen; eat, hang out, listen; rinse and repeat. A comfortable feeling, like slipping into those ratty old gym shoes that fit so perfectly: they don't make you run faster or jump higher anymore, but still, they're familiar and feel good.
A R.E.M video? Huh? I don't get it? I'm not comfortable anymore. This is not familiar. I feel displaced. Why am I watching a R.E.M. video? I can't seem to connect the dots. Is there anyone else here who's getting this?
This video is still going. Am I in the wrong conference room? Is this MTV? Or worse still, VH1? Do these channels still do videos, even? Where am I? I'm so confused.
Thank God. The video is finally over. Not that I'm not an R.E.M. fan (which, I'm not), but it just wasn't making much sense as to why I'm watching an MTV (or VH1) video.
Ahhh... hold on... AHHH!... the dots are now connected. That R.E.M. video was an "open content" video, an open source policy called Artistic License 2.0, handiwork of the OSI (Open Source Initiative).
It's all clear to me now. I can finally settle back into my comfortable, warm state of fuzzy and sedate.
Let the keynotes begin in earnest.
Keith Bergelt from the OIN (Open Invention Network) speaks on the state of intellectual property and patents as they apply to open source. Interestingly, from his point of view the concept of open source will likely be the most important invention in post-modern industry. Wow, that got my attention. Just think, the random stuff that we're doing for fun (and sometimes, but not often enough, for profit) is historic. Never really thought about that. Kinda' cool.
Mr. Bergelt also indicated that the art of patent-trolling is on the increase, given the downfall of our economy. Bad folks without jobs are looking to make a quick buck, and if that can be done without doing any real work, so much the better. Greed might be good; but graft most certainly is not.
Dr. Peter Salus speaks on the history of computing, specifically how the Internet came to be. He has written a new book entitled The Daemon, the Gnu, and the Penguin. Oddly, while Dr. Salus held up a copy of this book, murmuring in the audience suggests that this particular book is only available online, as it's released under the Creative Commons 2.0 license.
David Recordon of Six Apart speaks on the evolution of the term "open web." Not much to note here, as... uh... I have no notes. Evidently, I am not moved.
Danese Cooper of Intel and the OSI speaks on the topic of "Why Whinging Doesn't Work."* Now, originally I had written down "Why Whining Doesn't Work," thinking that Ms. Cooper probably had a typo in her slide, or that maybe there's an alternative way to spell out the verb "to whine," as "to whinge." Clearly, I'm clutching at straws here. What is this "whinge" concept to which she is constantly referring? Ah... then it's explained to me (and the audience) that whinging is a type of whining--British in derivative--which in turn, is a type of complaining. Well, now it's all clear to me. So what? I guess I missed to point of the talk.
Session: "Ubuntu Desktop Technologies," Ted Gould
Another excellent presentation by an excellent speaker. Mr. Gould walked through some of the more common elements of the Ubuntu desktop stack, including:
GTK - the Gimp Toolkit, a set of tools for developing dialog boxes and user interface elements
GConf - a type of globally available preferences database, similar to the Windows registry (for those readers who are familiar with that particular OS)
GStreamer - a multimedia framework (or API, though I'm not sure if that's technically accurate) that allows applications to easily make use of available multimedia libraries
DBus - a method for permitting applications to communicate between one another
Telepathy - Similar to DBus (Telepathy actually uses DBus), but focuses primarily on real-time communication between applications
Session: "Just Enough C for Open Source Projects," Andy Lester
Well, if you've already read through my diatribe earlier this morning (at 0815), you'll get the idea of why I'm sitting in on this session. It's mostly out of curiosity. The session doesn't seem as full as I would've expected, although it's also being held in a larger room, so there's that. Folks here seem a little sheepish too. Embarrassed to be seen here? To admit their interest in something that is presumed of so many of us developer types? I don't know, and I really don't want to go back down that oh-so-recently-trodden path again.
As for the presentation itself, I can't help feel that Mr. Lester is presenting the C language as dangerous and almost reckless in nature, stripped of all courtesies and horribly, disfiguringly loosely typed. The unspoken question repeatedly seems to be "why are you thinking of coding in C... can't you see you'll cut your fingers off or poke out an eye just looking at it?"
It's really not that bad, really. It's fundamental stuff, and critically so. It's good to know. Of course, I learned to code in C, so I am one seriously biased dude.
Whoops, someone just found a bug in Mr. Lester's code example... damn those pointer dereferences... .
Session: "Do You Believe in the Users?," Ben Collins-Sussman & Brian Fitzpatrick
This the first (and only?) session that is team taught, and works. I'm reminded of the old slapstick bit by Abbott & Costello. Never heard of them? Look them up. Good stuff. In any case, the session focused on the consideration that should be made for the type of users that will be using your software, and how to respect them through honesty in marketing, good customer service, and most of all.. trust.
A great notable quotable from Mr. Collins-Sussman (I believe), referring to the act of learning something as a "head compile." Brilliant.
Coming into the home stretch now. Things are getting a bit tiring and a little frazzled (perhaps because things are getting tiring). I just overheard someone while gathering in front of the schedule board in the common area that they were planning to go crash in a corner for a while.
In an attempt to stay focussed, I've accidentally managed to drink an entire bottle of Sobe because of its pretty color before realizing that it's chock full of pretty-colored sugar (hence the pretty color, as logic would have it). I fear that I might regret this act of desperation, much as a long-distance runner might start their last half-mile all-out sprint several miles before the finish line.
But it was such a pretty, appetizing color.
Session: "Top 10 Scalability Mistakes," John Coggeshall
Mr. Coggeshall, CTO of Automotive Computer Services, speaks on some of the ways to prevent problems when developing applications for your clients. His talk is focussed primarily around PHP (his native tongue), but can be generalized out to just about anything else. Big focus on planning and awareness of all pertinent issues long before coding begins. Make sure revision control systems are in place. And make sure that both developer and the customer are aware of when performance goals are acceptable, and when they are not. And, of course, always be proactive instead of reactive (mantra of the new millennia, isn't it?).
Session: "Wonderful World of MySQL Storage Engines," Peter Zaitsev
Peter Zaitsev of Percona, Inc., speaks on the current state of various MySQL database engines. I must admit here that while Mr. Zaitsev's presentation was excellent, I did have a difficult time understanding most of it, as he has a very thick Russian accent.
Mr. Zaitsev walked the audience through some of the more active MySQL database projects, including MyISAM, InnoDB, Falcon, PBXT, and Maria. He discussed some pros and cons of each, and when (or whether) to use them.
One particular highlight of the talk was when Mr. Zaitsev--during his overview of the history of MySQL--directed a question from the audience to a gentleman sitting at the back of the room. Turns out that it was one of the co-founders of MySQL, Monty Widenius. Who better to answer a question on MySQL than the inventor himself?
Evidently, Mr. Widenius is currently working on a project called Maria, which is intended to replace InnoDB (which was acquired by Oracle Corporation several years ago, the future of which is somewhat unknown). According to Mr. Zaitsev's benchmarking analyses, and confirmed by Mr. Widenius, Maria isn't quite ready for primetime, but will be very soon.
Ahhh... the final day has come. Everything is just a bit less than it was the day before. Shirts seem to be a bit less crisp. Badges are dog-earred and hang askew, now only an afterthought and more souvenir than a hoped-for introduction. The idle chatter is all but gone. The staticky high-tension wires of the social networking power grid are all but silent now: all but a resistant few are back in front of the familiar bluish glow of their laptops.
Clearly too, there are many fewer people here this morning.
The Expo Hall is gone, reduced to a crumbling landscape of concrete blocks, paper streamers, and aluminum poles. The bleak aisles are like city streets in miniature; the broken kiosks: tiny crushed buildings. The colorful candyland metropolis of just one day ago, bustling with candymen and candywomen has been reduced to the set of a low-budget Godzilla movie. Nothing remains, except for... remains.
Today's keynotes are not so key. The great ballroom doors have opened to reveal a space much smaller and much less cavern-like than prior days. The room has been rearranged and is about a third the size of its former self. Attendees, those of us who remain, unenthusiastically shuffle in. Melancholy hangs like a low fog in the room giving everyone a deep sense that the end of a great experience is close at hand.
Of course, it could be the Van Morrison music playing over the loudspeakers.
Dress code is lax this final morning. Folks wear odd combinations of clothing that initially would not have been a first choice. They are those familiar articles of clothing that you push to the side of your suitcase when you first excitedly arrive at your travel destination, favoring the really nice, coordinated, stuff first. Now that the nice stuff has been worn, it's back to the odd stuff: the jeans that don't quite fit; the shirt that buttons a little too high or a little too low, or has a little hole in it that you didn't realize until it was too late. The most resourceful of these remaining attendees make use of their crisply folded, never-been-washed t-shirt tschoskes acquired (with delight) over the preceding week.
This morning's first keynote is from Benjamin Mako Hill of MIT (Massachusetts Institute of Technology), entitled "Advocating Software Freedom by Revealing Errors." It's a thoughtful discussion on how we can better understand technology by exploring how and when errors occur, and how users react in consequence. In effect, errors are the tip of the iceberg of any underlying technology and should be studied with that understanding in mind. One interesting quote, taken from a member of Xerox PARC, states that "a good tool is an invisible tool."
Mr. Mako Hill suggests that those interested in further understanding his research go to revealingerrors.com.
Dawn Nafus, an anthropologist from Intel speaks on the topic of the implications of a society awash in datasets. Ms. Nafus states that we have become an "audit culture," exposing our every move, our entire existence to anyone interested in viewing that data. Ms. Nafus also makes a distinction between generating and viewing data both in and out of context, using the ubiquitous GPS as an example. I think the point is that using GPS data to locate a friend would be a good thing, while providing GPS coordinates of everyone to anyone interested in that data takes the data out of context, thus making it a bad thing.
Ms. Nafus' second of three challenges (the first being awash in datasets) is that there is a global crisis in food and water. I couldn't make the connection between... well, anything here. Her third challenge is that we must strengthen global growth in technology producers, not just technology consumers. This point is interesting, but there really is no follow-up, so I'll speculate that Ms. Nafus' final point correlates with her opening point that data must have context to be of value, and so, by enabling producers of technology, we are also educating them, and increasingly giving context to the that that is produced. I'm guessing here.
Sam Ramji of Microsoft speaks on the state of open source, and how Microsoft is helping the cause.
Honestly, I was surprised by the respectful reception of Mr. Ramji, both when he stood up to speak, and at the end of his discussion. Unfortunately for me, however, I really didn't get a warm fuzzy from his attitude, which seemed a teetering balance of defensiveness and arrogance. Particularly uncomfortable was when Mr. Ramji announced the collaboration between Microsoft and the Apache Foundation: it felt entirely too condescending, as if the audience were witnessing a lamb being led to the slaughter. I wish I could have felt otherwise, as Mr. Ramji honestly seemed to believe that he was doing all the right things in the eyes of the open source community. And perhaps, at least in a relative way, he was. Alas, it was what it was, and I don't know why it felt so wrong.
But I must say again, that I was surprised at how respectful the audience was toward Mr. Ramji. After his talk had ended, there was a palpable sense of relaxation that spread through the audience, as if we all had narrowly avoided some great calamity.
As a postscript to this talk, however, I was evidently not alone in my discomfort for what (or perhaps how) Mr. Ramji had said in his talk. In the Q&A session after the keynotes, Mr. Ramji was accosted by numerous attendees with questions aimed at the corporate stance of his company (Microsoft) as it affects intellect property, patent litigation and the liberally-discussed OOXML/ISO debacle. It got to the point where the keynotes moderator, Allison Randal, had to urge audience members to direct their questions at panel members besides Mr. Ramji. The Q&A politely ended soon thereafter.
Tim Bray of Sun speaks, rather quickly and chaotically, on the state of dynamic languages. In a nutshell, the debate between dynamic vs. static languages is ongoing (not very prophetic, methinks). Mr. Bray did mention some potential upstarts to watch in the programming community which include OCaml, Erlang, and Scala.
Must check into these out of curiosity...
Session: "Open Architecture at REST," Roy Fielding
My only session today, and so also my last, is also one of the best. While the title of the session suggests a focus on RESTful (Representational State Transfer, a method for designing software architectures) development, it actually steps back a bit and covers a much broader topic.
Mr. Fielding makes use of his roommate's doctoral dissertation, entitled "Open Architecture Software: A Flexible Approach to Decentralized Software Evolution." That title is much closer to Mr. Fielding's talk, as it's all about building software in smaller, more discrete pieces so that--together--they can appeal to a much greater diversity of users. Where software development on the desktop when there was no distributed computing, was developed as monolithic in nature, software in today's age of the Internet must conform to the structure of the Internet, which by definition, is distributed. Mr. Fielding points out that this move of echoing the structure of communication (be it at a single desktop, or on a the web) in the design of a system is known as Conway's Law.
So, to take advantage of this shift in software development towards a more distributed, modular approach, developers must design in APIs and hooks that permit extensibility and growth well beyond what might initially have been conceived. Perhaps one of the most well-known examples of this type of thinking is Mozilla Firefox, which--at its core--is a vanilla HTML browser, but has grown well beyond its original design because of the modular, plug-in, nature of its extensibility
Overall, a fascinating session, and perhaps also the session that will resonate with me long after I am back in Seattle.
Well, I've just turned in my badge for recycling, so for me, this year's OSCON event has now officially come to a close. As I sit here in the hallway with my bags packed up, I see just a handful of attendees racing to make their final session. And then, for them too, OSCON 2008 will be over.
I'm back in my Jeep Wrangler and winding my way north out of Portland, and back to Seattle. In a few hours, I'll be back home. Already, I'm anxious to review my notes and research some of the incredible ideas put forth so openly this past week. It really is an exciting time of change in the software industry. And I am both lucky and proud to be a part of it.
When we exist in the present and do what it is that we are really passionate about, we can never expect to be an important part of what will, one day, become history.
But this past week at OSCON 2008, just hours ago, is gone now.
And already, it and all the people who have participated in it and made it what it is, have made history.