P'unk Avenue Window

Archive for January, 2009

What should a modern library’s website be?

January 20th, 2009 by Geoff 16 Comments

Last week, I posted some thoughts on what a modern library should be, and promised to follow it up with a post on how a website could support that mission. In case you didn’t read the previous post, it can be summed up as: learning needs a clubhouse, so why not the library? Of course, libraries have always been a place that supports learning with it resources, but I envision a place where the library community facilitates that pursuit further.

This is where the website comes into play. I envision a library website that has an Ebay reputation system, a Digg voting component, a room reservation system, a Google Books repository, a WorldCat list and notes feature, Amazon reviews and Facebook profiles. (I realize that it can be annoying to read a sentence like that if you do not have intimate knowledge of the way the sites work. However, it is good short-hand for me as I explain what I mean.)

Let me start with the obvious. Everyone assumes that a library website should have digitized information. I do not disagree, and in many ways that part it is a forgone conclusion that sites like Google books will replace the need for extensive physical repositories. Recently, Steven Johnson wrote an inspiring story about how he used Google Books to research his recent book, The Invention of Air:

An amazing number of Priestley’s original writings (along with other texts from that period) are available from Google as downloadable PDFs, with scans of the original page design and typography, along with full-text searching. Many of these are texts that would be very hard to find even in a major research library, and of course, even if you could find them, you wouldn’t be able to search them. (You’d barely be able to turn the pages, given how old the books are.

Online repositories are better in lots of ways. They allow for searching, hyperlinking, multiple displays of the same information, aggregation and calculation to be done on them, and they are more accessible. Libraries should be glad that they can get out of the boring business of maintaining acid-filled pieces of paper and cardboard as a means to preserve human knowledge. If we, as a collective society, can move our stored knowledge to a more searchable and accessible medium, I am all for it. I don’t think it is valuable to be sentimental about the codex book format. At one point, it was the most convenient portal medium for spreading human information, but its day has come.

I think it is fair to say that information that you would formerly access at a library is already online, and that it is only going to get better. With this in mind, I ask once again, what should a modern library’s website be?

Before I answer that, I am going to take another step back to talk about how professors earn their rank and reputation. The basis of the promotion and tenure system for universities is peer review. This process of having other peers read or review your work has a long history, but it is not without fault. At its root the process is intended to provide a mechanism for checking the accuracy of work before it is published. It has been accused of slowing things down and bringing up petty disagreements, but when it is working well it embodies the possibility for mentoring and sharing.

There is no reason why this type of peer-based reputation system could be not be brought over into the library environment. In last week’s post, I brought up the idea of peer learning, mentoring and apprenticing happening at the library in a Barcamp-like style. One way to facilitate that process would be to have an Ebay like reputation system built into the library website. It would provide a publicly accountable way to track the quality and integrity of one’s contributions to this learning community. I see it as a way to bring out the best in people since they know that if they lead a session without doing a little research and preparation in advance, they might get rated poorly. Everyone has the potential to lead a discussion session, so there is less incentive to be malicious. (What comes around goes around in this system.) Pragmatically, these reputation ratings help people make decisions on what sessions to attend or who to approach for information in this community in the same way that people use Ebay reputation ratings to decide to buy an iPod from this seller verses that seller.

Reputation can also be increased by making thoughtful commentary to the online collection. I find the story of marginalia to be romantic and often talk about it. In short, it is the notes that scholars would write in the margins of manuscripts. Other scholars would often travel to certain libraries to read the marginalia of a respected scholar. (In my mind, I envision a scholar making an arduous journey to read the notes of someone that passed away 100 years ago for the sake of sharing in human knowledge pursuit.) A book could exist in multiple places, but the marginalia was only in a specific library. Digital marginalia is much more accessible. (In many ways, the reviews that people write on Amazon products are a commercial cousin to this scholarly practice.) Digital marginalia also has the potential to be voted on. In a Digg-like way, commentary can be rated or voted up so that the well regarded posts rise to the top. If you make a lot of respected comments, your rating would increase (and vice-versa.)

Another component of the system would be a way to track your own progress. WorldCat lets you create public or private lists of books, cds, dvds or articles you recommend, have read/viewed, or any other custom list you determine. It also lets you review it, share it and tag it. Features like this should be folded into your personal profile on the library website. It will allow you to track your progress and also allow people to see what type of interests and expertise that you possess. So for instance, someone may connect with you because they have read the same book. In the course of their interactions they may realize that you have a lot of knowledge to share in the area and then encourage you to lead a session at the library so that people can gather to talk and learn.

You agree and you go over to the room reservation section of the website and reserve a small informal space since it is a more focussed topic. This reservation triggers an announcement to the community of people that have opted in to get notified about this subject. It also goes on the library calendar and shows up on your profile as an upcoming way to connect up with you. If someone signs up in advance to attend, their profile page would also note that they are attending.

I think you get the point.

If you think about it, this proposed website would allow for an alternative university or educational environment to exist. (I discuss this in more detail in my previous post on modern libraries.) The system replaces the functions that the administration at most schools provide. This is not to say that this will replace all formal schools or universities. They certainly have their roles in our society. Much in the same way that vinyl still has a role in the digital music age. (It has a unique sound quality, but it is not a necessary medium for most people that want to listen to music.)

As an aside, I would see this as a positive in terms of quality of experience for those that are part of a traditional university or school environment since only those that want that experience would attend. I could imagine a decrease in the size and number of these institutions, but on the positive side they would be freed from the mission of trying to be everything (job training, scholarly training, coming of age facilitation) for everyone and have the opportunity to focus and refine.

The library would also evolve in new and rich ways. It would provide the physical local gathering hub, the clubhouse, for all of this activity. The website would provide access to information, track reputation and progress, augment the exchange of information and ultimately encourage people to get together in real space.

A couple of things should be noted. These kinds of online interactions can already happen if you have Facebook and WorldCat or other combinations of social media accounts. I know that people are already connecting over shared interests and engaging in peer learning and mentoring. If you are not, I would certainly encourage you do so. Also, there is a good chance that libraries will be able to tap into existing web infrastructures through the use of APIs and plug-in architecture as they build out these modern websites. This will reduce the investment and time necessary to get these websites up and running.

The real value add that the library provides is that physical space that already has a long history with encouraging and supporting self-learning.

There are lots of nuances to the role that the website could provide that I want to delve further into, but I will stop now because I want to hear from you. What do you think? Can we make this happen? What would you add?

____

I wanted to add a quick addendum. We are going to be holding a Junto on rethinking the library on February 5th at 6pm. Hope you can make it to continue the conversation.

Post-Consumerist Waste and the Weapons of Mass Reproduction

January 16th, 2009 by Rick 3 Comments

I won’t bore you with too much of a history lesson, but through a certain sequence of events we (you and I) have taken over the role of industry (since industry totally sucked in 2008).

For the purpose of this post, “media” and “technology” are going to mean the same thing. (Everyone and their mom should totally read Understanding Media, it’s excellent.) They both represent any extension of humans, like a wheel lets us move around quicker and easier, extending our range. Paper, the same thing, you can give a note to a messenger and he or she can deliver your thoughts to someone very far away. All media until the telegraph had an explosive effect on humanity—better roads made for faster travel, the printing press let thoughts travel those roads, money allowed for power transfer and commerce to spread across regions. This explosion facilitated nationalism and shortly thereafter imperialism.

Electric media had the opposite effect, the complete implosion of culture. The telegraph connected people across the atlantic, making global synchronization possible. The radio, telephone, movies, television, cell phone all furthered the trend.

The addition of the Internet to this equation has curbed the implosion, or at least interfered with the trajectory of all those imploding particles. Many of us no longer rely on strictly one-directional broadcast media for news and other information. The internet has facilitated a retribalization of culture, not based on geography, but interest. I can read the hipster pinko news and chat it up with my post-conceptual photographer friends, while someone else can join a vintage rifles of famous assassinations message board.

One more step back before the final step forward. All this media is primarily used for political power, the variable is how it derives influence. Mechanical technology: making war and moving that war around faster. Early electric technology: making sure the war is going well because it’s really far away now. Broadcast electric technology: unify the masses by entertaining them with all the same entertainment, it will create fraternity. Consumerism: the war is over, let’s use all this industry to sell things to people and keep the economy going.

A long long time ago we all made everything we personally needed for survival (or at least someone in the family made everything). Then we got caught up in all that war and imperialism. Then we didn’t know how to make things, but we could go to the store and get everything we need. But we felt a longing for making things. In the last two decades there has been a trend of “creative consumption” or “authentic consumption.” Thinkers like Sharon Zukin posited that we buy the sneakers that express how we feel about ourselves, shopping is a creative act.

More recently this has changed. Buying culture wasn’t enough. We still feel empty. We need to create. We have entered Post-Consumerism. I refuse to buy stuff for the logo, the logos are all crappy. The shoe companies don’t design their own shoes, they have contests to have us design them. The number of tshirts has outnumbered the people buying tshirts.

So, we have in-a-way reentered an age of localized production and mass creation, but not for the same reason. I don’t create out of necessity, I don’t create for the process, I create in order to be consumed. We enter the world of Post-Modernism, scary. We all need a consumer base. We all are that consumer base. I have a flat file full of my friends’ art. Geoff has two. We have taken over the role of industry. I can buy handmade and feel good about it. The authenticity in consumption is restored. But only as long as we keep up both ends of the bargain. We are producer and consumer, so we can’t stop doing either. The economy would collapse.

Thus enter the Weapons of Mass Reproduction. We need factories: magcloud.com,
blurb.com, lulu.com, cafepress.com, threadless.com. We need storefronts: blurb.com, lulu.com, threadless.com, etsy.com, shopify.com, our own wordpresses. We need consumers: us!

The Examined Life

January 15th, 2009 by Alex 1 Comment

The start of a new year allows us all the chance to reflect on all the things we did in the last one. In this age of ubiquitous data collection methods, this habit manifests itself ways that can be exciting and sublime.

Perhaps the most classic example of this is the Feltron Annual Report. This year’s edition is maybe less visually impressive than in years past, but it’s still both a beautiful demonstration of information design and a fascinating look into someone else’s life. Really spend some time going through his data and in your head you might find yourself imagining all those dinner parties, cab rides and drinks out with friends. If a picture is worth a thousand words, how many is a book of statistics worth? Can a year really been distilled into eight pages?

I found myself even more excited about Feltron’s progress with his Daytum project. Still in private beta, it opens up the tools for any user to collect this same kind of data about themselves. Simple and elegant, just like the Feltron report itself. (Mycrocosm is another tool that does this.) And people are into it:

“It’s a natural progression from people sharing things like movies, photos and videos,” says Dennis Crowley, founder of Dodgeball, an early social-networking service for mobile phones which was sold to Google in 2005. “What’s left to share? Basic data.”

Even more: this year, Dopplr is sending personal annual reports to their members that show “data, visualisations and factoids” about their travels for 2008.

For my money, the most beautiful of these long zoom moments come in a form that is a hybrid between this data sharing and those more typical mediums from which it has progressed.

Every day in 2007 my friend Sonja took five seconds of video. She then edited them into a single, linear timeline and exhibited them in a Swiss storefront. The result was wonderfully effective. I can only imagine what kinds of detailed memories will be evoked when she goes back to watch it in a decade or so. Really, who needs a journal anymore? (I’m still waiting on her 2008 montage to be finished.)

For 2009, I have my eye on One Sound Each Day. It’s these tiniest of details that can really snap the bigger picture into focus.

What other year-end recaps have you been enjoying?

What the heck is a front end developer?

January 14th, 2009 by Tom 17 Comments

Refresh Philly is a new organization aiming to bring the local creative community together both to broaden our skills and to work toward the betterment of Philadelphia. Or something. It’s a great mission but it’s a little fuzzy. Narrowing that down is what the other guys’ presentation was about. My presentation, definitely in the first category, was about the Symfony framework.

My slides are available for your amusement. They’re a bit dry by themselves. The presentation itself was definitely on the dry side for the very large percentage of nonprogrammers present. But that’s one of the things we’re still learning as a group. This was our first “real” meeting, not counting the organizing meeting back in December.

I knew there would be quite a few nonprogrammers present. But I pictured designers who work side by side with coders all day and have absorbed some of the lingo and have a need to understand this sort of stuff on the same level a good manager would.

My coworkers have since explained that this is actually a bit uncommon. Many people designing for the web stick purely to design and don’t actually write HTML or CSS, so they are not teetering on the brink of learning PHP by looking over somebody’s shoulder.

Who writes the HTML and CSS code then? Apparently “front end developers” do. “Back end developers” write PHP, ASP, Java or whatever is in vogue on the server side.

You might wonder how I could have lived in ignorance of the distinction until this point. The answer is that I’ve mostly worked in small shops, or with independents. So specialization in pure design wasn’t really an option for most of the designers I’ve known in the past.

I’ve also known a lot of “web designers” who lived in the Bay Area during the dot-com crunch years, and they reported that there was no such thing as a job unless you could plausibly claim to know design, HTML, CSS, and PHP. And possibly reiki as well.

I’m not crazy about the terms “front end developer” and “back end developer.” These terms mean something very different when we start talking about web applications.

A “front end application” is something the public gets to play with. It has to be pretty and bulletproof and fast and easy and generally perfect in every way, requirements that require lots of attention from “front end designers,” but unless it’s a static site it also has moving parts on the server end, requiring plenty of attention from “back end developers.”

Meanwhile a “back end application” is something used by editors, administrators and other power users typically employed by the client you’re developing for. The public can’t see it. It has to be moderately bulletproof, depending on the number of people allowed to play with it and the skill level they are expected to have. It doesn’t have to be pretty. Depending on how frequently used it is, it may or may not need to be super-efficient and easy to use. So “front end developers” are still involved in building it… just to a lesser degree… while “back end developers” are all over it, although they may be using tools like Symfony’s admin generator to create basic, bug-free, boring interfaces in a hurry so they can get back to debugging the publicly visible front end application.

Still, terminology aside, there are far more pure designers in the world than I’d thought. And when I look at the web sites I’ve been involved with professionally in a development role, versus those I’ve attempted to design on my own, I have to admit that makes a lot of sense.

So what could I have done differently, to better address a room in which more than half of my listeners aren’t developers of any stripe? Well, not a whole lot, to be honest. Symfony’s direct relevance to a pure designer is pretty limited. I made as many references to monkeys, kittens, bathtubs and salsa dancing as possible without going completely off the rails. And for my part, I’m cheerfully committed to listening to the occasional presentation on design at future Refresh Philly events. After all, it’s only fair.

But I do ask that they throw in an occasional reference to monkeys.

t-shirt problem

January 13th, 2009 by Johnny 3 Comments

Raise your hands in the air if you love t-shirts.

Now stomp your left foot if you’ve ever rummaged through rack after rack of dusty second hands in a thrift-store-salvation-army-friends-closet to find that perfectly ironic, exquisitely vintage, super soft, one-of-a-kind tee.

Jiggle your arms if you’ve purchased something from Threadless or Busted Tees.

While jiggling your arms and stomping that foot, tap your belly rhythmically if you lust after every color of 50/50 American Apparel t-shirt (dirty sexy filthy mmmm). Keep doing this, don’t stop. This dance is just getting started.

Stick out your tongue and blow a raspberry if you have shirts that are ten plus years old and the armpits have fallen out, the collar has disintegrated, and your nipples are visible in even the darkest out-to-dinner settings. Does simply owning this t-shirt piss off your girlfriend (ex-girlfriend, haha)? – and you are wearing it out anyway!

Bob your head.

Bob your head if you can think of at least three people that refer to you as their friend with too many f*cking t-shirts. Yes! And just between you and me, this can be our secret, because you know we’re dancing together and all – wink at me twice if you bought a shirt online today – maybe it was during your lunch break ;) .

Drop it to the floor if you screen print your own shirts. Buy band shirts. Sell band shirts. Kiss the fans of the bands that sell the shirts. Boutique. unique. limited run. small press. Internet. t-shirts.

Read t-shirt blogs?! Everybody scream!!! Haha.

Point to yourself if you ever said out loud “I wish that was on a shirt.” Now point to your friend if you then Googled it and there it was!

Now stop jiggling those arms, breath in. Slow that foot, relax your mouth, breath out. No longer tapping your belly, break down the head bob, your smallest movements. your sweaty t-shirt – though it’s not the weather for it. Feels good.

I really don’t think I have a t-shirt problem.

The soundtrack for this post is Jerk It by Thunderheist

What should a modern library be?

January 12th, 2009 by Geoff 22 Comments

Last week, Ed Tettemer (formerly of Red Tettemer) gathered together a group of people for a charette to rethink the Free Library of Philadelphia’s website.

A little back story is probably necessary. Ed and I met last year as members of Mayor Nutter’s transition committee for the rebranding of Philadelphia. (Yes, Ed and I seem to do a lot of re-ing.) Nothing really seemed to be making sense in this effort until Ed and I hit upon this idea of Open Source as the brand and also as the mind-set for Philadelphia’s new administration.

With this in mind, Ed brought together a group of people from various interactive and branding agencies, as well as, entrepeneurs and members of the Free Library staff and board to openly discuss, in a blue sky way, the future of the website. As part of the backdrop for our conversation, it was pointed out that the library is in the process of fundraising for a new addition (see above) to house:

a Children’s Library with a Preschool Center and a Craft Room; a first-ever Teen Center; a new 550-seat auditorium; two new Internet Browsing Centers, outfitted with 300 public-access computers; a new Business Department, with presentation space, online resources and a complete curriculum in business development; and a soaring, glass-enclosed pavilion with shops, a cafe and ample space for community gatherings.”

Instantly, our task changed (in my mind, at least) to be more of a rethinking of what a modern library should become.

What should a library be?

Admittedly, I was looking for an excuse to open up the dialogue (as my Twitter post from the day before the session indicates), but nonetheless, I jumped at the opportunity.

Taking a step back, I believe that the post-World War II government-supplemented higher education system that has its origins in the funds of the GI Bill of Rights to be financially unsustainable. Not only that, I think that higher education is becoming less relevant to many people. I come across more and more college drop-outs or those that never attended college working in high tech and traditional white collar jobs. While I appreciate my college experience, I see it as almost a finishing school (in its best sense), and not a job training center.

As colleges become more expensive and government support continues to dwindle, it makes it harder and harder for the average person to take on that expense. (Keep in mind we are talking about graduating with debts in excess of $100,000.) However, the need to be educated has not diminished.

What better institution to fill this gap be than a place like the Free Library of Philadelphia?

If one accepts that conceit that a well-informed populace is vital to the operation of a democracy and considering that Ben Franklin founded the first lending library in North America here in Philadelphia then it is very compelling for the Free Library to be a place that embodies the future of education. (At minimum it makes for a very good story.)

And, I don’t mean as simply a resource (a.k.a. repository) to supplement education pursuits. The library should be a center for learning. In many ways, what I am proposing is an old fashioned idea. I would like the library to be a place of peer learning, apprenticing and mentoring. I am inspired by “unconferences” or open conferences like BarCamp where the attendees lead the sessions. There are no predetermined speakers. It is a great example of peer learning. The library can be the physical place that houses these sessions in an on-going way. Barcamps are usually only a day or two. This type of learning and sharing needs a home if it is to be an effective as a learning hub.

So back to the original point of the charette. What should role should the website of the Free Library play in this scenario?

I want to answer that question in a future post, but let me seed it with this quote from Mark Pesce’s essay Inflection Points:

When broken down to its atomic components, the classroom is an agreement between an instructor and a set of students. The instructor agrees to offer expertise and mentorship, while the students offer their attention and dedication. The question now becomes what role, if any, the educational institution plays in coordinating any of these components. Students can share their ratings online – why wouldn’t they also share their educational goals? Once they’ve pooled their goals, what keeps them from recruiting their own instructor, booking their own classroom, indeed, just doing it all themselves?

Technology can be used to coordinate the logistics of this information exchange in the library of the future.

I will expand on this idea in my next post.

To be continued!

____

Update: The continued post on what a modern library website should be is now live.

A few tenets of Metabolism, maybe one tenet of Essentialism

January 9th, 2009 by Rick 1 Comment

In 1977 the Centre Georges Pompidou opened in Paris. The design of a museum had not previously been approached with such an inverted set of goals: accommodate the public first, then consider the art. The museum was an immediate success as a social institution, an inviting and unpretentious place to engage in art. The chilly distance between viewer and work had been removed conceptually, it seemed to lack all proverbial velvet ropes.

Its success derives from a fusion of its functions and aesthetics. You could say it’s a naked museum, there is no façade, there are no stone columns, there are no imposing Rocky stairs. It is a seven-story metal matrix, wrapped in weaving colorful tubes that contain all the buildings life systems (electric, water, waste). That’s where Metabolism comes in—approaching the museum, you get to see its guts. This novelty has a warming effect on visitors, a trip to the conceptual art museum feels more like a trip to the how-things-work museum, engaging curiosity.

So—here comes the segue—what an interesting approach to designing everything, show them how it works and they’ll want to know more. People often call what we do here at P’unk Ave “minimalist,” but I’m going to be nitpicky and call it “essentialist.” And since that name sounds stodgy, I will not refer to it again. Minimalism implies reducing things until they avoid literal interpretation and take on poetic/interpretive meaning. “These three fluorescent lights represent the Nina, Pinta, and Santa Maria, clearly.” We would rather do design that invites curiosity, gets people exploring, and reduces all those pesky barriers to entry.

We rarely use “design elements” in the way museums have columns and stairs and two-thousand pound front doors. We like our buttons to be round so you feel obligated to click them. We try to make it damn clear where in the site you currently are. We have a “please touch” section in many of our sites where users get to contribute. Marketing sites have no excuse to be static these days and museums should stop shushing.


Above represents the entire /images folder of a site we recently completed. There are little more than icons, buttons, and arrows (and some rounded corners to keep things friendly). We feel it’s possible to use very little, an essential amount perhaps, and still manage to create something friendly and useful.

The Centre Pompidou draws a crowd every day, coming for the art, coming to stare at the building. The public always feeling engaged in the experience, less a faceless part of the throng, that’s what the Louvre is for.

The Invention of Air

January 8th, 2009 by Alex 2 Comments

Generating some excitement at P’unk Ave this week is Steven Johnson’s new book, The Invention of Air. From the cover:

It is the story of Joseph Priestley—scientist and theologian, protégé of Benjamin Franklin, friend of Thomas Jefferson—an eighteenth-century radical thinker who played pivotal roles in the invention of ecosystem science, the discovery of oxygen, the founding of the Unitarian Church, and the intellectual development of the United States.

I am in the middle of it right now and it feels very apropos in light of the energy that has been galvanizing the Philadelphia tech community over the last few years.

Here is a passage from the book that I especially liked:

You can tell the history of the world through the lives of individuals, or groups of individuals, and part of that explanation is no doubt true. But you can also tell that story with the humans in a supporting role, not the lead. You can tell it as the story of flows of energy: growing, subsiding, being captured, being released. Think of those flows as a vast, surging ocean, and the individual human lives of history crowded on a sailboat in that turbulent water. The humans can still steer their vessel, and exploit the waves and wind that happen to be pushing in the direction they wish to go. But the humans are largely subservient to the conditions set by those oceanic forces.

When I read articles like this latest one in the Philadelphia Weekly, I enjoy putting things in the perspective of a similar long zoom view. In this quote, Johnson attempts to illuminate a facet of the entirety of human history, but why can’t we look at more local developments in the same light? No doubt the causes and effects of these conditions are more complicated, and at a much different scale, than something as huge the planet’s carbon cycle. But so much has come from so many serendipitous relationships between people and organizations, connections that only seem to be explainable when you step back to look at these larger flows of energy behind them.

If this is the same kind of energy that helped thinkers like Priestley and Franklin contribute so much to society, then what will we be able to do with it?

Steven Johnson will be speaking at the Franklin Institute tomorrow, January 9, at 7pm. Hope to see you there.

DRY, DRAEE, FDLFRTE

January 7th, 2009 by Tom 3 Comments

Most of P’unk Avenue’s projects are built with Symfony, a web application framework that greatly accelerates the process of developing web sites like the GPTMC Pressroom, DukeLIST and (to be a bit more frivolous) 5seven5.

You’ll note that these sites don’t have that much in common at first glance. The first is a central repository of press releases, photos and video of local interest. The second is a Craigslist-like site for the Duke University community. And the third is a social network for haiku poets.

Under the hood, though: they have something crucial in common: they are highly dynamic sites. The content is ever-changing. Static HTML pages aren’t much use in this situation.

The old-fashioned solution, sprinkling PHP code into HTML pages a little at a time to make them more dynamic, is still a great way for beginners to learn about PHP. But it’s not a good way to go about implementing a large web site with an extensive feature set… unless you like repeating yourself.

Which leads us to a common mantra in the Symfony development community, among others: Don’t Repeat Yourself (DRY).

Avoiding the need for repetitive coding is a big part of the Symfony philosophy. Symfony’s helper functions handle the tedious tasks of inserting common HTML comments like image tags and form elements, and Symfony 1.2’s form classes abstract the problem away even further, allowing you to define forms with a minimum of pain and suffering. The Propel and Doctrine ORMs (Object Relational Mappings) provide ready-to-rock interfaces between SQL databases and object-oriented programming. And Symfony’s modules, actions, routing rules, components and templates put an end to the endless cascades of “if… then… else” statements that decide how to handle the user’s actions in so many PHP scripts. Indeed, they bring back some of the traditional elegance of designing a static site, by allowing URLs to define the structure of the site in a meaningful way with folder-like structures.

Inspired by the high degree of code reuse in Symfony… and by a sense of frustration we experience each time we’re forced to do the same darn thing… we do our best to avoid coding anything twice around here.

But Don’t Repeat Yourself (DRY) is only part of the solution. Don’t Repeat Anybody Else, Either (DRAEE). Symfony’s plugin architecture simplifies the process of reusing code written by others. And that’s where the Symfony community shines, with 392 plugins in the official repository alone. Existing Symfony plugins provide ready-to-go solutions to add blogging, photo management, tagging, and page content management.

One of the more popular recent plugins is sfLucenePlugin, which adds a high-quality search engine to Symfony applications with very little work. sfLucenePlugin itself is a wrapper around Zend Lucene, an open source text search engine, which is a PHP port of Apache Lucene, which implements the same algorithms in Java. Reinventing this stuff is for dummies.

We’re not quite at the end of the story, though. There’s one more chapter: FDLFRTE (Friends Don’t Let Friends Repeat Themselves Either). Do you have code you reuse in your own projects? Good for you. Is it possible that code would benefit others? Sure, but that doesn’t justify the time it takes to release it… or does it?

Consider these selfish motivations for releasing your frequently reused code as open source for others to benefit from:

1. Other people will find your bugs.
2. Other people may even fix your bugs.
3. Shame will motivate you to clean up the code considerably before you release it.
4. With luck, you’ll even be moved to test your code before you let others play with it.
5. You’ll think of ways the code could be more general and more useful to more people, and add features that benefit your own projects as well as a result.

In a nutshell, releasing your code as open source pushes you to increase its quality and brings other people into the quality control process, as well as the development process.

This is why we’ve released quite a few Symfony plugins this year, as you’ll see.

Lots of sites require users to log in. Symfony’s sfGuardPlugin is great for managing user accounts. But if you want to allow users to create accounts, you’re stuck reinventing the wheel… or you were, until we released sfApplyPlugin.

pkAdminQuickCreatePlugin makes it easy to “just add another DJ to the system” while you’re adding a club night to the system, then return without losing your work… if, let’s say, you’re building a site like Salsadelphia. We first went down this road when adding similar features to the GPTMC Pressroom. When I realized I was coding it again, I knew it was time for a plugin to save ourselves and others the trouble.

Symfony’s admin generator (a DRY masterpiece if ever there was one) is great for managing databases of information in a user-friendly way with a minimum of coding on your part. The resulting sites have good sorting features, but not when the column you’re sorting on is actually a reference to another table. sfAdminSortByForeignNamePlugin fills that gap.

This is just the tip of the iceberg. We’ve been very busy releasing Symfony plugins and contributing to existing parts of Symfony, most notably adding features to filter users by category (admins, editors, peons…) to sfGuardUser.

Contributing to open source projects is much easier than you probably think. And the rewards for your own work are considerable. it’s not hard to see the benefit to the bottom line when projects are assembled from better-tested, better-designed components in less time and with less aggravation.

Alert readers might note that two of the sites I’ve linked to here, 5seven5 and Salsadelphia, are projects of my own not built at work. So my use of the pronoun “we” throughout this post might seem a bit strange. But that just points out another benefit of open source: I don’t have to be sneaky about reusing code written at work on my own projects, or indeed vice versa. If I want to use it on my own projects, I let the P’unk gang know I’m intending to release it as a Symfony plug-in, get their buy-in, and do that. Now I’m allowed to use that code anywhere else I see fit as well. And if I want to bring something I’ve built at home (such as sfApplyPlugin) into the office, the same applies in reverse: I open source it as a Symfony plug-in so that everyone, including my coworkers, can benefit.

So for the purposes of this article, “we” refers to “Tom and P’unk Avenue.” But once it’s been released under the MIT License, it’s out there for anyone to benefit and profit from.

I’ll have more to say about Symfony at Refresh Philly this coming Monday night. Check out the Refresh Philly site and be sure to RSVP to attend!

Will 2009 liberate us from Internet Explorer 6?

January 6th, 2009 by Johnny 3 Comments

This is my inaugural post and I am writing about this topic because it has been on my mind a bunch lately. Really, when will this browser die? Will 2009 be the year developers slam their coffees down and say, “No Way Man!” Will Windows 7 and IE8 show up and deliver where IE7 and Vista failed miserably?

I was a PC user for nearly 10 years before buying my first Macintosh. And I rocked my PC and Mac in tandem until the intel chipset and the virtual machine stuff made it possible to own a single computer. I grew up amidst the Netscape and Internet Explorer mayhem of the 90’s and I cut my teeth the first half of the decade tearing apart the ‘net with IE6 as my chariot.

Microsoft Internet Explorer 6.0 was in 2001. And it is long overdue for retirement.

http://ajaxian.com/archives/i-wont-support-ie-6-in-2009

Ajaxian posted a cute article to kick-start the new year, indicating that IE6’s numbers are down further than ever before. (Exciting!) But of course that’s not always the case, especially where building web based  applications for Corporate or Academic institutions are concerned.

How much can javascript hacks bubble gum IE6 into behaving on the modern web?

And How effective is simply denying visitors access to information or services if someone continues to use the old browser?

Basecamp phasing out IE6

Basecamp phasing out IE6

I know there has already been an infinite amount of discussion, griping, moaning, kicking, screaming on this topic so I am going to finish up.

I am just excited for this year and what it could bring – As a web developer, a designer, a user of the vast internet, and a citizen of the world. I love what I do for a living and I have enjoyed my involvement with these technologies as they have matured over the last 14 or so years.

So I’m holding my breath, I’m crossing my fingers. Let’s all plan a massive geek party to celebrate this year, 2009, when Internet Explorer 6 dies.