Make : Nothing to do.
 
December 16th, 2009

Five Teenagers

J-School students have been doing amazing work this semester on a trio of hyperlocal news sites: Mission Loc@l, Richmond Confidential, and Oakland North. I’m particularly moved by their multimedia feature piece, Five Teenagers, which takes a look at “Teens On Target or TNT, an after-school program based at East Oakland’s Castlemont High School. TNT trains students to teach violence prevention in the city’s middle schools.”

The video above is excerpted from the piece, but be sure to visit and check out the whole package, which interviews five teens, breaks down some chilling numbers, and provides an embedded map of regional homicides thanks to Oakland Crimespotting.

I was also impressed by the lack of Flash in this piece – everything is done with JQuery. Multimedia journalism and Flash go hand-in-hand (just surf through the projects listed at Interactive Narratives and count how many are done in Flash vs. standard methods). But slowly, multimedia journalists are beginning to realize that the downsides of Flash that we web standards geeks rant about are real, not just theoretical. At the same time, the quality, reliability, and ease-of-use of Javascript libraries like JQuery really are making it possible for non-programmers to put packages like this together.

Great work, guys!

September 7th, 2009

Populate Mailman Lists from Django Projects

I spent much of the summer building an intranet in Django for Miles’ school. Since the school is a co-op, we need to keep track a lot of stuff – charges, credits, and obligations, parents, students, teachers, family jobs, committee membership, the board, etc. etc. I’m happy with how the site came out, but unfortunately can’t share it here, since it’s a private site.

One of the goals of the rebuild was to put an end to the laborious manual process of maintaining the school’s multiple overlapping mailing lists. Since all of those relationships, people types, and groups were already stored in the intranet’s database, I figured it should be possible to run various queries and populate Mailman mailing lists from them directly. Due to the messy nature of the real world, the process was a lot trickier than it sounds on paper, but I eventually did get a smoothly working list generation system up and running, talking to our Django system and working with virtually no manual intervention. Members can update their own profiles and find that their mailing list subscription address has changed automatically a few hours later. Administrators can give someone a new family job or board position and that person will find themselves subscribed to the right mailing list for it later that day.

Since there isn’t much published out there on making these two systems (Django and Mailman) play nicely together, I decided to publish the scripts and document the recipe I used to get it all working. Hope someone finds the system useful.

May 20th, 2009

Webcasting with Django

The Knight Digital Media Center, which runs on Django, hosts week-long workshops for working journalists who come from around the country to learn multimedia and internet technology skills. We fill many of our lunch and dinner sessions with talks by journalism industry experts and pundits, and webcast their presentations live. After workshops are over, we post the archived video for posterity. There’s more to handling multi-day, multi-part live and archived video with Django and a genuine streaming server than meets the eye, so thought I’d break it down.

An “event” can last any number of days, and can include any number of presentations, each of which may or may not include a webcast. While the event is in progress, you want the ability to advertise a single URL, where all of the live webcasts will happen. But for the archives, which is where the vast majority of viewing happens over the course of time, you want a separate page/URL for each presentation. Presentation pages include details on that speaker, summaries of what was presented, and optional downloads of PowerPoint or Keynote presentations. Our Presentation model is foreign-keyed to a master Event model (or, in our case, the Workshop model).

Because they’re time-based, synchronous events, webcasts are different from typical web pages. There are five possible “states” a webcast page can be in at any given time, all of which require different things to be inserted into the view:

Upcoming: The event is announced but there’s nothing yet to show. Tell user that webcast will be live at posted time (along with schedule).

In progress: The event is occurring. Insert appropriate object code to embed live QuickTime stream.

Concluded: The live webcast has ended, but the archives haven’t yet been prepared and posted (this can take us a few days). Tell user to come back soon.

Archive: The archived video is prepared and available on the streaming server for posterity. Insert appropriate object code to display streamed archive file from QuickTime Streaming Server.

External: We sometimes host events at other locations on campus, in which case UC Berkeley handles the webcasting rather than us. If so, we need to link from our events database to theirs. Insert appropriate message and link.

In Django, we represent these choices with the typical CHOICES construct:

1
webcast_state = models.CharField(max_length=4,choices=WEBCAST_STATE_CHOICES)

… which ends up looking like this in the Django admin:

webcast_state

Depending on the current state, different content (text or object/embed code) is inserted into the page in real time (using simple conditionals in Django templates). The Django admin thus becomes a handy tool our student helpers can use to make the master workshop page embed the right thing in the right place at the right time without requiring tech skills. Remember, during the course of a workshop week, all video is happening in the master Workshop page – later, streaming video archives will go into separate Presentation pages and be automatically linked to from the parent Workshop page.

Stream Handles

At the J-School, we use QuickTime Streaming Server, in part because it’s free, and in part because all of our  workstations and most of our servers are Macs. We’ve contemplated switching to Flash streaming, but the simplicity of keeping everything Mac-native keeps us on QTSS for now.

Embedding a stream from an external QTSS server is not quite as straightforward as embedding a typical QuickTime movie. Video comes from QTSS over the rtsp:// protocol, rather than http://. And there’s the catch: You can’t embed an rtsp stream directly into a web page — instead, you need to embed a fake QuickTime movie (a “reference movie”), which is actually a text file with the .mov extension. That text file simply references the full URL of the rtsp stream coming from QTSS. The contents of a reference movie file might look like this:

1
2
3
<?xml version="1.0"?>
<?quicktime type="application/x-quicktime-media-link"?>
<embed src="rtsp://streamer.domain.edu/events/131.humanity_2.0.mov" />

Here’s where things get interesting as far as Django is concerned. We don’t want to have to create a physical reference movie for every single stream we serve. And yet, at the HTML level, we have to embed something that looks like a reference to a physically external movie file, e.g.:

1
2
3
4
5
6
7
8
9
10
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" 
 width="480" height="376" 
  codebase="http://www.apple.com/qtactivex/qtplugin.cab">
 <param name="SRC" value="/presentations/webcast-archive.227.ref.mov">
 <param name="AUTOPLAY" value="true">
 <param name="CONTROLLER" value="true">
 <embed src="/presentations/webcast-archive.227.ref.mov" 
  width="480" height="376" autoplay="true" controller="true" 
  pluginspage="http://www.apple.com/quicktime/download/">
</object>

So how can we make Django think that /presentations/webcast-archive.227.ref.mov is an actual file on the server, which in turn contains the correct reference to the rtsp stream coming from the streaming server? In effect, it’s a “view within a view.”

webcast_setup
Click for larger version

Displaying the presentation page is straightforward Django – I won’t get into that here. But here’s how the “view within a view” stuff works. In the object section of the presentation page template there is a reference to:

1
<param name="SRC" value="/presentations/webcast-archive.{{object.id}}.ref.mov">

which resolves to something like:

1
<param name="SRC" value="/presentations/webcast-archive.267.ref.mov">

When the browser hits that line, it requests /presentations/webcast-archive.267.ref.mov from the server, which in turn triggers this entry in urls.py:

1
2
3
url(r'^presentations/webcast-archive.(?P<pres_id>\d+).ref.mov$',
'workshops.views.presentation_webcast_archive',
name='workshops_presentation_webcast_archive'),

So after the presentation page has been rendered by Django and sent to the browser, a second (very simple) view, presentation_webcast_archive, is called, which is simply:

1
2
3
4
5
6
7
8
9
10
11
12
13
def presentation_webcast_archive(request, pres_id):
    """
    Generate a virtual QuickTime reference movie on the fly,
    to be embedded in presentation webcast pages.
    """
 
    pres = get_object_or_404(Presentation,id=pres_id) 
 
    return render_to_response( 'workshops/presentation_webcast_archive.txt',
        {
            'p': pres,
        }, context_instance=RequestContext(request),
    )

That view spits out the same presentation object to a different template, presentation_webcast_archive.txt, which consists of:

1
2
3
<?xml version="1.0"?>
<?quicktime type="application/x-quicktime-media-link"?>
<embed src="rtsp://domain.edu/events/{{p.webcast_path}}/{{p.webcast_filename}}" />

Where webcast_path and webcast_filename are fields on the model representing the physical location of the QuickTime media on the streaming server (not the web server). After a workshop week is over, staff only need to hint the saved archive files, upload them to a directory and filename on the streaming server, enter those paths in the Django admin, and check the “Has Webcast” box. The rest is automatic.

In a previous, PHP-based version of this system, we had to prepare an actual reference movie for every archive stream we hosted. By using this “view within a view” technique, Django has let us remove that part of the workflow.

December 31st, 2008

The End – 2008 Recap

Perfect for the last day of the year – Dill Pixels’ Flickr collection of “The End” screens from famous movies:

The-End

Quick recap of 2008 for the Hacker/Kubes family:

Sprinkler Miles started 1st grade and is barreling full-steam ahead into an amazing childhood. Watching a child go from knowing his letters to being able to read full-on books aloud is a delightful experience. His ideas are still mind-bending, his physicality still awesome. He doesn’t just ride a two-wheeler — he rides it long distance (he and Amy surprised me on bikes at work one day – a five mile trip each direction). Two days after getting a pogo stick for Christmas, Miles logged a record-breaking 23 hops (love that recovery at the very end of the clip). He’s sweet and thoughtful and loving and every minute with him is a joy.

In sadder news, Plato – our family cat of 17 years – finally reached the end of his comfortable life. We had him put down late summer after he could no longer move comfortably or hold his bladder. Plato’s been a staple of my life with Amy since I’ve known her, long before we were married. And he was the cat Miles was born with – his first relationship with an animal. Losing him was tough.

On the work front, I’ve transitioned from webmaster for the UC Berkeley Graduate School of Journalism to webmaster for the Knight Digital Media Center, while staying in the same chair (and realized I’d been sitting in the exact same chair for seven years running). Taking that job meant spending a few months learning Python and Django. A long ramp-up, but absolutely loving Django now, and using it for more and more side projects as well. Birdhouse Hosting also started offering Django this year.

With the Knight Center, I’ve been involved with a mission to help newsrooms across the country figure out how to address the challenges of crumbling revenues and massive layoffs, as the distributed web continues to threaten the traditional/localized newspaper. News organizations are going through massive mental shifts, becoming increasingly technology focused. The center runs week-long workshops for visiting journalists, who come to have their heads crammed with ideas for ways to create innovative and compelling content online. Year after year, my association with the J-School proves challenging and rewarding, and never sits still for long. I feel extremely lucky to have job security as this ugly recession settles in.

Other misc: I’ve been writing occasional music-related pieces for Stuck Between Stations, which I run with a few friends. When time allows or the weather/mood command it, I’ve been strumming away on the ukulele. And, perhaps a bit sadly, Twitter all but killed my urge to blog. I feel bittersweet about that – on one hand, Twitter is a much more fluid experience than blogging, and can be done in the margins of life without requiring big chunks of time. On the other hand, I do miss the more in-depth expressive capacity of the real thing. But writing regularly is important; I promise not to let the blog die, no matter how much more convenient Twitter may be.

Amy too has a new job. After a year of being a regular parent participator at Miles’ school, Amy applied for – and got – the job of 2nd/3rd grade classroom assistant. And just a few weeks into that gig, she was asked to be the official math teacher for the 3rd grade class. On Fridays she teaches visual arts to the combined class. She’s jumped in with both feet and is loving being with the kids. I built a brand-new web site for Miles’ school this year.

Also in 2008, I made several trips to Morro Bay to help my mother move out of my boyhood home and into a new life with my father in the mountains. The change was a long time coming, went smoothly, and had a happy ending, though it was tough to say goodbye to my childhood home. But the change is all for the better, and has brought new unity to our family.

Looking back, 2008 has been a year of small revolutions and grand plans, satisfaction and warmth. Life is good. Love and best wishes to all Birdhouse readers, and to my extended families on both sides.

Lou Reed :: Move Your Heart
November 19th, 2008

Notes on a Django Migration

Powered by Django. Earlier this year, I inherited responsibility for the website of the Knight Digital Media Center at UC Berkeley’s Graduate School of Journalism. The site is built with Django, a web application framework written in Python. The J-School has primarily been a PHP shop, using a mixture of open-source apps — lots of WordPress, Smarty templates and piles of home-brew code. Because it’s grown organically over time with no clear underlying architecture and a constantly changing array of publications to support, the organization sits on top of dozens of unrelated databases.

These are my notes and observations on how the J-School got into this mess, why we’ve fallen in love with Django, and how we plan to dig ourselves out.

(more…)

June 8th, 2008

Digital Media Lecture Series, June

Gearing up for another big week of webcasting, as we prepare to guide another group of visiting journalists through a week-long new media technology bootcamp. As always, we’ll have a bunch of great speakers during lunches and dinners, and those presentations are open to the public. Can’t make it to Berkeley? Check out the live webcasts. Especially Looking forward this week to Chad Dickerson of the Yahoo! Developer Network, and Richard Koci Hernandez, deputy director of photography for the San Jose Mercury News.

Music: Marva Whitney :: Unwind Yourself
May 9th, 2008

Gross Negligence

The new J-School server has arrived! Spent half the day developing a migration strategy to transition sites and services for the school off of OS X Server and onto a Linux/cPanel solution more tuned to the security ravages and configuration needs of pure web hosting (if cPanel ran on OS X Server we’d be sticking with it). The next month will be an interesting challenge as we get that project off the ground.

Sun-Package

In the middle of putting the strategy together, the server itself arrived. Along with it, a separate box, very light. Inside that box, two more boxes. And inside those… ye gods! One power cable each. Power cables that don’t require damage protection at all, and that could have been stuffed into a single padded envelope. Better yet, they could have been thrown into the server’s own box – there was plenty of room.

This kind of thing makes my blood boil. Why do so many people/organizations behave as if their actions don’t matter? It’s not just one box. Multiply this kind of apathy by millions and you get… the world as it is. Talked to a Safeway employee last night who was foisting plastic bags on me unrequested. Asked her whether management was talking about banning plastic bags from the store any time soon. Her answer floored me: “No. In fact, we’re not even allowed to ask ‘Paper or plastic.’”

My boss warned me that if I blogged about this, certain perqs would be revoked. This is a test.

Music: Muhal Richard Abrams :: Bloodline
April 14th, 2008

Tech Training for Reporters

Another big week of podcasting coming up as we (the Knight Digital Media Center at UC Berkeley) launch a week of training for working journalists in “new media / digital media” internet technologies. This week will be a variant of last month’s workshop – we’ll be working with reporters rather than editors this time around, and tuning the training to suit. As always, the workshop will be peppered with panels and conversations with fascinating experts, and those sessions are open to the public.

Can’t make it to the J-School? Tune in to the podcast series live, or catch archived versions the following week. I’m especially interested in “100 Megabits across the Digital Divide,” with Brewster Kahle of the Internet Archive, but all of the sessions are bound to be worthwhile.

Knight Digital Media Center April 2008 Lecture Series

Music: Thomas Chapin :: Golgotham
April 13th, 2008

WP-Create

My WP-Mass-Upgrade script has saved me countless hours over the past year. Making sure all Birdhouse and J-School WordPress installations are managed via subversion has meant I’ve been able to wrap them all in a single shell script. When new releases emerge, I’m able to upgrade 50+ installs in a few minutes. The most time consuming part remaining was creating new installations when customers needed them. I had the process down to around five minutes, but knew the repetitive steps could be distilled into a script, so recently wrote WP-Create:

Super fast (~30 second) way to install WordPress for clients, via subversion. Yes, users can often self-install via Fantastico or similar programs, but what guarantee do you have that they’ll upgrade as soon as new releases become available? Letting users run old versions of web software is a great way to get hacked. Take control of users’ installations by checking them out via svn (with this script) and managing them with wp-mass-upgrade.

This script performs the following tasks:

  • Gather installation info
  • Create install dir and check out a copy of WordPress
  • Create database, db user, set db privs via external .sql file
  • Create WP config file
  • Create upload dir and set filesystem permissions
  • Generate array line for wp-mass-upgrade.sh

Final setup is done via browser.

Added these tools to the WordPress codex section on managing WordPress via subversion.

Music: The Staple Singers :: For What It’s Worth
March 24th, 2008

Tech Training for Journalists

The Knight Digital Media Center has been running workshops providing multimedia skills training to journalists for a while now, but this week marks the start of a program expansion, as we offer our first Tech Training for Editors workshop. Rather than Photoshop, Sound Track Pro, and Flash, we’ll be teaching RSS, podcasting, map mashups, and other essential internet technologies to editors looking to expand the web savvy of struggling newspapers.

I’ve been busy setting up WPMU as a mock CMS for the editors to work on, relying heavily on the PodPress, Twitter Tools, and WP-Flickr plugins. I’ve also got the new Prologue theme installed, to demonstrate how publications can provide Twitter-like services of their own (I’ll be demonstrating it in a mini-session on microblogging).

The mid-day and evening sessions will be webcast as usual, but this time we’re adding a new element to the mix — rather than panning the camera to a screen displaying output from the presenter’s laptop, we’ll be using Vara Software’s Desktop Presenter to mix output from the speaker’s laptop with camera output, directly into our webcast software (knock wood). Tune in!

February 7th, 2008

Notes on a Massive WordPress Migration

Cdthome At the UC Berkeley Graduate School of Journalism, we use WordPress heavily as a content management system for student and organization publications, knowledge bases, student handbooks, podcast publishing systems, online magazines, etc. Over the past couple of years, I’ve found again and again that WP is not only up to the task of serving as far more than a blogging platform, it’s a great content management system for many types of sites, once you learn a few tricks.

Just wrapped up a marathon coding session, converting one of the J-School’s most popular sites, China Digital Times (CDT), from Movable Type to WordPress. We launched the new site (with a new design by Devigal) a few days ago. This was by far the most complex WordPress installation I’ve worked on, involving around 16,000 posts and 6,000 tags. As with every site launch, I learned a few things in the process. Thought I’d post some notes here for the sake of others going through a similar process.

Nutshell version: Though SixApart (who make Movable Type) claim that their static page generation approach is great for high-performance sites, we’ve reduced the time it takes to publish a new article from almost 15 minutes to a few seconds by moving from Movable Type to WordPress.
(more…)

January 30th, 2008

Technology Training for Editors and Reporters

Traditional news media is struggling to retain readership, and it’s all hands on deck to train working journalists in digital media technologies so they can reach the next generation of news consumers where they live (online). That means doing a lot more than shoveling newspapers onto the web, and the Berkeley J-School – in conjunction with the Knight Digital Media Center – has been at the forefront of multimedia training for journalists.

We’re expanding our popular multimedia training program to include training tracks on a broader ranger of internet technologies – map mash-ups, wikis, RSS, widgets, blogs, podcasting, FaceBook, etc. We’ve got two great new workshops in the queue for March and April – one for editors and one for reporters.

The workshops are free to qualified journalists (with stipulations). Click through for application details.

(more…)

January 13th, 2008

Death and Underachievement

Technically a few weeks late for a new year’s resolution, but better late than… whatever. Just stumbled across an incredible essay by Ryan Norbauer of 43 Folders: Death and Underachievement: A Guide to Happiness in Work

Norbauer chips away at the notion that productivity and achievement are pathways to happiness, and in so doing opens up a Pandora’s box of existential questions for the workplace. For those of us driven like rats to sip from the sugar-water spouts sticking through our cage walls looking for one more rush, one more minor achievement to fool our impatient selves into thinking we’ve found a scrap of meaning in our lives, Norbauer says it’s time to step back and take a close look at ultimate motivations:

The essential point that we must confront here is that the achievements which seem so important and for the pursuit of which we perpetually torture ourselves are on the one hand futile and the other utterly insignificant. What is the ultimate summit we expect to reach? And if we can’t answer this question, why do we exert ourselves as if we’re heading towards one?

His observations are in part triggered by the release of The Underachiever’s Manifesto: The Guide to Accomplishing Little and Feeling Great, which rests upon these core principles:

  • Life’s too short.
  • Control is an illustion.
  • Expectations lead to misery.
  • Great expectations lead to great misery.
  • Achievement creates expectations.
  • The law of diminishing returns applies everywhere.
  • Perfect is the enemy of good.
  • The tallest blade of grass is the surest to be cut.
  • Accomplishment is in the eye of the beholder.

It’s a powerful piece, and one I needed badly to see. I’ve been feeling all of this for a while now, but blaming it on the wrong things: ennui, exhaustion, a fragmentated work environment, my own stupidity. But maybe the problem is that I’m looking for love satisfaction in all the wrong places.

My (fittingly late) New Year’s resolution is to chill more, back off the treadmill, and to remember to breathe.

via Weblogsky

December 16th, 2007

New Media Webcasts

Another week of interesting webcasts coming up at the J-School, mostly focused on questions surrounding the evolution of newsrooms – the integration and embrace of new and alien techniques and technology in the news gathering process.

The talks represent the public component of another digital media training workshop sponsored by the J-School and the Knight Foundation. We’ve greatly ramped up the number of workshops held each year – this topic is becoming critical to struggling newsrooms around the world.

Tune in live, or check back for archived versions.

Music: Wilco :: At Least That’s What You Said
November 21st, 2007

Cheap Thrills is Back

A student happened across this blog today, and nailed me on it.

“Didn’t you tell us that light text on dark backgrounds was fatiguing to read?”

“Do as I say, not as I do” doesn’t work on 20-somethings.

I knew when I tried that Darkwater thing that it was naughty. But something about the water compelled me. And now a combination of fatigue and public humiliation has compelled me back to Cheap Thrills, with a few mods, including a wider content area. And a rare foray into the red spectrum for the bg.

Feel like my old self again.

Music: Junior Kimbrough & Charlie Feathers :: I Feel Good Again
September 19th, 2007

Knight Digital Media Center, New J-School Webmaster

Posted a while ago that I was going through some transitions at work, and that we were looking for a web developer. Here’s what’s going on, in a nutshell:

The J-School runs an aggressive program of multimedia training for journalists — both for students and for working journalists. We do semester-long classes in multimedia storytelling using Photoshop, Dreamweaver, Final Cut Pro, Sound Track Pro, and a range of cameras and audio equipment. Students working in teams produce multimedia feature stories by the end of the semester — most of them excellent. We also do a compressed, one-week version of that class for working journalists who come from all over the country for training, as part of a program funded by the Knight Foundation. The program has been so successful that we’ve had trouble keeping up with its expansion.

On Monday, the Knight Foundation awarded a large grant to the J-School to build the program out into new directions and begin a new channel in internet technology training for editors and managers. And while they were at it, we also became responsible for training 600 NPR journalists in multimedia skills over the next couple of years.

On September 17, the John S. and James L. Knight Foundation unveiled a $6.7 million initiative to assist news organizations facing the daunting transition to the digital world (press release). Two Knight grants – $2.8 million to the UC Berkeley Graduate School of Journalism and $2.4 million to USC’s Annenberg School for Communications – were awarded to fund the expansion of the Knight Digital Media Center’s training program for mid-career journalists. National Public Radio was awarded a two-year grant for $1.5 million to work with the Knight Digital Media Center to fund the training of roughly 600 staff members, including executives, reporters, producers and editors.

The program is accompanied by a web site containing dozens of tutorials on multimedia production software and techniques (this is the Django-based site I mentioned a few months ago). That site is slated for a huge build-out, with tons more tutorials, social networking additions, and other goodies to come, as well as a redesign that’s just getting underway now.

The short version is that I was asked to transition from my current job as webmaster for the J-School and all of its satellite sites to working nearly full-time for the Knight multimedia site. Over the summer, my office was expanded and revamped, and I’m now sharing the space with a growing group of staffers and directors of the Knight program overall.

So that’s the summary version – all very exciting :) The rub now is in finding the right person to take my previous/current job as webmaster/manager of the J-School sites. It’s an interesting mix: PHP/HTML/CSS development of custom applications and utilities, building and maintaining content management systems for student publications (mostly with WordPress, but we use other systems as well), working closely with faculty, staff and students on special projects, training, helping out in classrooms, administering an OS X Server (which I hope to move to a cPanel system before long, but that’s another story), etc. etc. It’s a jack-of-all-things-web sort of position, and we’re still looking for the just-right person. UC benefits are great, the physical environment is great, there’s access to lots of intellectual stimulation (if you can find the time, which I never can), lots of good food nearby, and a ton of variety (but look out – all that variety may kill you).

The position is still open and we’d love to hear from qualified devs who also have strong communication skills and don’t mind spreading themselves thin. If you’re burned out on the private sector and feel ready to burn yourself out on the very different – but still amazing in its own way – academic life, give it some serious thought. If not you, please pass this on to anyone you think might be a good fit!

I can’t start my new job in earnest until the role is filled — help me out here :)

P.S.: We’re an all-Mac shop — servers too — so Mac/*nix geeks are especially encouraged.

Music: Devendra Banhart :: Owl Eyes
August 21st, 2007

J-School Web Dev, Tech Training Positions

Want to work with me? We have openings at the UC Berkeley Graduate School of Journalism for a technology training instructor and a pair of web developers. The technology training instructor runs workshops for mid-career journalists on new technologies reporters and editors should be using, as part of our growing Knight Digital Media Center (more on that another day). The two web developers work on the various web sites run by the school and its affiliated programs. Job links:

Technology Training Instructor

Web Developers

Music: Louis Quatorze :: (I Feel Like) Cleopatra
August 2nd, 2007

God, Sex, and Family

Posted a while ago about the Moral Compass produced by some of our recently graduated students as part of the News 21 Initiative on the Future of Journalism (News21 is a collaborative effort between four J-Schools). This year’s theme is “Faces of Faith in America,” and the Berkeley piece of that is called “God, Sex, and Family.” Most of the content from all four schools is in now, and the project has shaped up as an extremely well-rounded snapshot of the myriad ways religion plays out in American life.

So much at the site I’m not sure what to point to (and I haven’t begun to read it all). The tent city multi-religion conference inside Second Life was incredibly ambitious (catch a full video snapshot of the event here), and the Data Road Trip provides some fascinating perspectives into everything from Bronx abortions to Arkansas divorce rates. I appreciated this brief interview with atheist Sam Harris, who (to my surprise) says he prefers not to be called an atheist: “atheism is not a good term because it requires defining oneself in opposition to an arbitrary group.” I really appreciated that he made the point that atheism does not imply not having a spiritual life.

Anyway, there’s tons there – dig in. And leave comments if you got ‘em – the fellows would love to hear your feedback.

Music: Black Heat :: Wanaoh
July 20th, 2007

New WordPress Sites

This is becoming (for me) the summer of pushing the envelope with WordPress – bending it to become a full content management system, rather than just a blogging tool. Between work and home, have been converting a couple of sites over the past few weeks – one from an old-school static site, and another from Movable Type to WordPress.

landwater.com represents the environmental and historic preservation law firm Rossmann and Moore – I’ve been working with them since forever. Their old static site (originally designed by baald, who comments here sometimes) has stood up to the years amazingly well, but it was time to move on. Now in WordPress, office assistants there can finally update the site without having to learn Dreamweaver or FTP. I love the way WP pages can become children of other pages. By nesting them, you get a hierarchal URL structure automatically, and can use the workhorse wp_list_pages() function to generate structured HTML lists, which in turn can be styled as CSS fly-out menus. Throw in the My Page Order plugin and non-tech editors can rearrange the hiearchy (and thus the menu system) via drag-and-drop. So elegant.

At work, have been on a mission to get all Movable Type sites converted to WordPress by the end of summer. The first of the two largest projects is pretty much done. North Gate News Online is the publishing arm of J-200, the journalism bootcamp all first-year students endure. The site has been a CPU-sucking Movable Type hog with a hideous design (my fault!) for years; as of today it’s majorly multimedia-enabled WordPress site with its own podcast feed (nothing there yet). This is a soft-launch; all the tech is ready and waiting for the next crop of J-200 students. OK, we’re showing too much roof, but the design is leaps and bounds beyond the old site. Using a ton of plugins to handle Flash, QuickTime movies, embedded audio, image pop-ups, etc. But most impressive is WP-Cache, which gives you the static page performance of MT combined with the dynamic page behavior of WordPress. Poetry.

The biggest WP challenge of the summer starts on Monday – total rebuild of China Digital Times, which has much more sophisticated needs. Looking forward to the challenge.

Music: Leo Kottke :: Blimp
July 19th, 2007

Moral Compass

Very proud of our News21 (News Initiative for the Future of Journalism) team for the work they did on the Moral Compass, which asks the question “How do different religions view certain issues on sex and morality?” Spin the wheel and get answers on a host of questions covering masturbation, homosexuality, premarital sex, etc. from representatives of faiths including Catholicism, Judaism, Muslim, Buddhism, Methodist, Baptist, and more. Video interviews with clergy and others included. Nice work on the Flash interface!

The Moral Compass is part of Berkeley’s contribution to this year’s News21 project, Faces of Faith in America.

Music: Mungo Jerry :: Open Up
June 4th, 2007

10 Obvious Things About the Future of Newspapers

Ryan Sholin knocks one out of the park: “10 obvious things about the future of newspapers you need to get through your head“. Pretty much mirrors a lot of lunchtime conversation at the J-School over the past few years, with the discussion seeming somewhat more urgent lately (because the writing is on the wall for dead-tree distribution). I liked #7 especially:

Bloggers aren’t an uneducated lynch mob unconcerned by facts. They’re your readers and your neighbors and if you play your cards right, your sources and your community moderators. If you really play it right, bloggers are the leaders of your networked reporting projects. Get over the whole bloggers vs. journalists thing, which has been pretty much settled since long before you stopped calling it a “Web blog” in your stories.

… though all of his points are spot-on. John Battelle has some interesting commentary in a similar vein. On where newspapers are falling down (this was directed at the SF Chronicle, but could be applied to many/most municipal papers):

400 reporters and what is the paper DOING with them? Not much, I’m afraid. The paper should OWN the Valley Tech story. Does it? No. It should OWN the biotech story. Does it? No. It should OWN the real estate/development story. Does it? No. It should OWN the California political story. Does it? No! … I agree that Google and others should be more engaged in helping shore up and – GASP – evolve the fourth estate. But assuming the way to do it is to support more of the same – the approach that gave us a bloated newsroom that puts out a product fewer and fewer people want to read each year – is to ask for tenure over evolution.
Music: Ry Cooder :: Train To Florida
May 19th, 2007

Spring New Media Lecture Series (May 2007)

Another big week of multimedia training for mid-career journalists coming up at the J-School, with a heaping handful of great speakers discussing the intersection of “new media” and journalism. These talks are open to the public, and will be webcast live (and archived).

Featured speakers are Tom Mallory, Chuck Scott, Alexa Capeloto, Nicole Vargas of the San Diego Tribune; Seth Gitner and Lindsey Nair of Roanoke.com; Brian Storm of MediaStorm.org; Richard Koci Hernandez of the San Jose Murcury News; Rob Curley of Washingtonpost, Newsweek Interactive, and Colin Crawford of IDG Communications.

Rob Curley’s talks are always dynamite. I’ve decided QuickTime 7 has been out long enough that it’s safe to switch to the h.264 codec. Upgrade your QuickTime if necessary, and look for a nice bump in quality this time around.

Music: Amy Winehouse :: Rehab
April 18th, 2007

Buzzword Enabled

BeOS used to market itself as the “Buzzword Enabled Operating System.”

Got a call from someone recently who was going to be speaking at a public event, wanting to make sure I could set them up with a “Web 2.0-capable laptop.” And so I did. Wasn’t hard, neither.

Music: Nick Drake :: Saturday Sun
March 25th, 2007

Spring New Media Lecture Series

Gearing up for another big week at the J-School, as we compress our semester-long multimedia training program into a single week for mid-career journalists from around the country. As always, lunches and evenings are filled with great speakers, which we’ll be webcasting live. If you’re in the Berkeley area, the conversations are open to the public – come on by!

Featured speakers are Joe Howry, Anthony Plascencia, Colleen Cason, Tom Kisken, Ventura County Star; Lisa Stone, Blog Her; Kevin Sites, Yahoo!; Sean Connelley and Katy Newton, Oakland Tribune; Rob Curley, Washingtonpost. Newsweek Interactive; Matt McAlister, Yahoo!

The Kevin Sites presentation last year was riveting, and Curley is a must-see for anyone interested in pushing old-school media properties in new directions.

Music: Jonathon Edwards :: Sunshine
February 9th, 2007

Dirt Floors

J-School student David Gelles writes for the New York Times about green homeowners deploying mud, rather than wood, bamboo, or carpeting for their home flooring.

It is hardly a new or chic movement: millions of poor people around the globe use natural materials like dirt for their homes whether they want to or not. But with the growing environmental awareness in this country, Mr. Kahn said, there is greater interest in natural building materials like dirt.

Not without their problems, but can be made moisture resistant with beeswax and linseed oil, and more crack-resistant by adding paper pulp or fiber. They do sound gorgeous and comforting.

Music: Smog :: I Was A Stranger