Libby Hemphill research and posts on social media, collaboration, and related technologies

21Aug/090

danah boyd and Panel at JSB Symposium

Each year the School of Information hosts a John Seeley Brown Symposium on Technology and Society, and danah boyd is this year's keynote speaker. John Seeley Brown, Ed Vielmetti, Cliff Lampe, and I will be on a panel following her talk: "Youth-Generated Culture: Growing Up in an Era of Social Media"

JSB Symposium info
Tuesday, October 13
2pm
Blau Auditorium at the Ross School of Business, Tappan and Monroe Streets

1Jul/090

Seth is wrong

Seth Godin has a post today about how Malcolm Gladwell is wrong about Chris Anderson's book. At least, I think that's what the post is about. As usual, Seth is speaking as a deep insider and assumes I've read everything "Malcolm" and "Chris" have written. I haven't.

Anyway, Seth is responding to and offering some criticisms of Anderson's new book - Free. In his response, Seth writes, "A good book review on Amazon is more reliable and easier to find than a paid-for professional review that used to run in your local newspaper, isn't it?" My goodness, NO!

One of the many reasons I do still read newspapers, albeit usually their digital versions, is to get reliable, easy to find reviews of restaurants and books. I don't want reviews of movies because I don't want to know too much going into the theater. Sites like Amazon and Yelp have many, many book and restaurant reviews. My problem with these reviews is the same thing Seth is pointing out - anyone can write them. Let's face it, most people should not write book reviews. Book reviews on Amazon, much like restaurant reviews on Yelp, are often poorly written, hard to follow, irrelevant, boring, the list goes on. Reading through readers' reviews does not save me any time when decided to buy a book, and it may not even help me make that decision.

For a rather fair example, see the reviews of Heat, a really fun book by Bill Buford. Right on the page you can compare the usefulness of a review by Anthony Bordain and those made by readers. I say the example is fair because the readers' reviews aren't the worst examples I could find. One of the reviews begins, "I don't go to restaurants. I don't watch FOOD Channel. I don't even order take-out. I'm just a pizza and burger guy with an occasional side trip to Taco Bell for my veggies. So why was I reading this book?" Please, why am I reading this review? I read reviews in established publishing sources because I know who the writers are and have some reason to trust them. 270 readers on Amazon thought the review that started with that line, about a cooking book, was helpful. That shows me that both the reviews and the people who rate them are not to be trusted when I'm deciding how to spend my book money.

Amazon's statistics about what people buying books I liked, like Heat, also bought are more helpful. Those stats are about user behavior though, not user contributions. Not all reviews are equal. To have more reviews is not necessarily better - it just makes finding the useful ones harder. I have in the pipeline a site that will address that problem for restaurants by aggregating reliable, professional reviews - Food Pilgrim - but for now, I'll just avoid the reader reviews on Amazon and stick to trusting the reviewers at Salon, the NY Times, and my local library.

Filed under: Cooking, Rant No Comments
26Jun/090

Get Upgraded SVN Working on a Mac OS X Server

Jeremy Whitlock has a great blog post about how to set up your OS X-based Subversion server. His post includes instructions for Apache configs, but not for svn+ssh. When you type

svn+ssh://user@host/repos

you'll likely get an error such as

svn: Expected FS format '2'; found format '4'

which means that you're repository was created in a newer version of SVN than the version you run when you call svn+ssh. Using Jeremy's instructions results in two versions of Subversion being available on your server - one in /usr/local and one in /opt/subversion. In order to use the one in /opt/subversion (the newest one) through an SSH tunnel, you need to make some SSH configuration changes on your server.

Getting svn+ssh to work requires:
1. Set (or uncomment) PermitUserEnvironment Yes in /etc/sshd_config (on server)
2. Add PATH=/opt/subversion/bin:$PATH to ~/.ssh/environment (on server; may have to create the environment file)
3. restart SSH (on server) with sudo /sbin/service ssh stop and sudo /sbin/service ssh start
Ta da!

Thanks for the jumpstart, Jeremy!

Filed under: Code, OS X, Technology No Comments
30May/094

How To: Styles, Templates, and Quick Styles in Word 2007

I'm using Word 2007 and RefWorks, including the Write-N-Cite III Word plug in. I don't want any crap from you LaTeX users. Yes, I know how to use LaTeX. No, I didn't pick it for my dissertation. Moving on.

Rackham, the graduate school at the University of Michigan, has arcane and ugly formatting requirements that my dissertation must meet in order for me to receive my degree. They will not let me graduate if my margins or headers are wrong. That's pretty compelling incentive to get my formatting right. Using the excellent "Using Word 2007 for Your Dissertation" guide provided by the University Library's Knowledge Navigation Center as a starting point, I set off to make sure Word would format my dissertation correctly.

The keys to making your formatting life easy with Word are styles and templates. You can learn more about both at Microsoft's site. I'm a faithful style user, and I assume you can easily become one if you aren't already. All text in my documents is associated with some style - e.g., Normal, Heading 1, Long Quote. You need not worry about the specifics of a style while you write - just make sure all your text is associated with a style. Word does much of that automatically. Once you're done writing and ready to format, you should first open a new blank document and create a template.

Creating a Template

The real purpose of your template is to store the formatting rules you assign to all your different styles. Your template need not have any content, but I find it helpful to write a little something so I can at least see my style changes in action. To create a template, you need to edit the styles so they match your formatting rules and then save the document as a template (*.dotx) instead of a regular document.

Attaching Templates to Files

Once you have defined all your styles and formatting rules in a template, you need to attach the template to your Word document. In Word 2007,

  1. Go to the Office button
  2. Choose "Word Options" from the bottom
  3. Choose "Add Ins" from the side menu
  4. Choose "Templates" from the Manage drop down at the bottom
  5. Click "Go..."
  6. Click "Attach" and navigate to the template file you just created and saved
  7. Make sure "Automatically update document styles" is selected
  8. Click "Ok"

You should see your document change to reflect the formatting rules in your template.

Using Quick Styles

One of my favorite features of Word 2007 is the Quick Styles feature. Quick Styles let you save template rules so they are accessible from the "Change Styles" menu on the Home ribbon. To get your formatting rules into a Quick Style, essentially saving you the hassle of attaching a template:

  1. Open your template file
  2. Click "Change styles" on the Home ribbon
  3. Choose "Style set" and then "Save as Quick Style Set..."
  4. Give your set a name you'll remember and click "Save"

Now, you can apply your template's rules in any document right from the Quick Style menu by click "Change Styles", then "Style Set," and choosing the name you gave your set.

Notes

I wrote this post in part to remind myself of the steps involved. Styles and templates can make working in Word incredibly easy, but you absolutely must always use styles to format your text. If you make changes by hand (e.g., clicking Ctrl+B to make something bold), you'll screw the whole process up. Only when used together (and exclusively) will styles and templates make your writing life easier.

Office 2008 for Mac can do the styles and templates stuff but does not have a useful Quick Styles feature. To attach a template to a document in Office 2008 for Mac:

  1. Open the "Tools" menu
  2. Choose "Templates and Add Ins..."
  3. Click "Attach" and navigate to the template document you created
  4. Make sure "Automatically update document styles" is selected
  5. Click "Ok"

If you're using RefWorks, you should use either Word 2007 or Word 2008 but not both. RefWorks gets confused when you try to add or edit citations with both programs. I do most of my writing in Word 2007 on a virtual machine running Windows 7. I occasionally make edits using Word 2008 natively on my Mac, but I do not make changes to citations in both programs.

Filed under: Technology, Writing 4 Comments
5Apr/090

Why else might RWW be right about Skype?

Bernard Lund wrote a column (article?) for ReadWriteWeb recently that listed 10 reasons Skype is the biggest Web 2.0 winner. "Web 2.0" doesn't even make sense anymore, but let's set that aside. Lund's article is interesting even without the "Web 2.0" buzzword. For instance, he points out that Skype is profitable. Profitable is surely something winners are, right? What he leaves out, though, is even more interesting.

Skype's core business is about connecting people. Unlike Facebook and Twitter, where connections have become almost a side effect of advertising and broadcasting our every thought, when we use Skype, we do so to make a real, timely, engaged connection with another person (or group). Maybe the lesson Skype has to teach us is not that telecom companies are bad but that Web 2.0 companies who don't help us connect to each other, not just us to advertisers, aren't where the money is. At least, I can hope that's part of the lesson.

30Mar/093

Academic writers cannot get writer’s block

At least, that's what Paul J. Silvia, author of How to Write a Lot: A Practical Guide to Productive Academic Writing claims. I'm inclined to believe him. Writer's block seems bogus for us.

I've been reading books on writing while taking breaks from my ever-growing dissertation. Today I read a little of the Howard Becker Gem Writing for Social Scientists: How to Start and Finish Your Thesis, Book, or Article and most of Silvia's book. Here are a couple gems from Silvia's book:

Academic writers cannot get writer’s block. Don’t confuse yourself with your friends teaching creative writing in the fine arts department. You’re not crafting a deep narrative or composing metaphors that expose mysteries of the human heart. The subtlety of your analysis of variance will not move readers to tears, although the tediousness of it might…Novelists and poets are the landscape artists and portrait painters; academic writers are the people with big paint sprayers who repaint your basement. (p. 45)

and

Like their dislike of jocks and the yearbook club, many writers’ distrust of semicolons is a prejudice from high school. … While you’re rebuilding your relationship with the semicolon, reach out and make a new friend – the dash. Good writers are addicted to dashes. (p. 67-68)

I'm proud to say that I a) do not have writer's block and b) use both semicolons and dashes often and appropriately. I have trouble sticking to a writing schedule as Silvia (and many, many other writing guide authors) recommend, but at least I've mastered the dash.

Filed under: Academia, Writing 3 Comments
27Mar/090

The Wrongheadedness of Best Practice Thinking

I’ve come across a gem of a book introduction, and I’m writing to recommend that you read it. Yes, all of you. The introduction is from the book Strategic Procurement in Construction by Andrew Cox and Mike Townsend, published in 1998. The shelves of bookstores are crowded with advice for practitioners and business owners about the latest “best practices” for their business or for business in general. I have contributed to the best practice literature myself, trying to make my onboarding research findings accessible and interesting. I’ve been troubled by the literature before; something about the idea of a “best practice” made me wary, much like a “Truth” did when I spent more time with philosophy. I noticed this frustration most acutely when teaching master’s students in a professional degree program. So many students demanded that I teach them best practices, that I tell them what to do in their next job. I tried to explain to students that I was helping them acquire new tools for meeting the challenges information professionals face, not giving them step-by-step instructions for how to do their eventual jobs.

Cox and Townsend argue in their introduction, and throughout the book, that best practice thinking is wrong-headed and leaves us playing catch up. One of my favorite bits of the introduction reads:

They will be searching for the ‘Holy Grail’ of best practice. By this one means practitioners are looking for the answer that provides the solution to all of the problems which they face managerially. Unfortunately, this desire to discover the single solution (best practice), that will allow the practitioner to avoid the need for thought and risk taking, is an illusion.

They go on to discuss concepts such as appropriateness and leverage and recognize that many practitioners would call their discussions “common sense.” Their response?

Some of the practitioners who read these pages may accept what has been said, and argue that this is just common sense (which it is), and that they already know this. If that is the case then this book may have little to teach them, however, because experience leads the authors to conclude that such a form of sense (in a business context) does not appear to be all that common.

I wish I’d written something like that in the paper Andy and I submitted recently that was rejected for having results that were not surprising enough. The results we found in our onboarding study were surprising because we found them and not necessarily in their content. For instance, it’s surprising that teams still behave as though new employees will be immediately productive even though the sense that onboarding takes time is apparently common. Much like Cox and Townsend find that strategic procurement is not all that common, neither are teams who smoothly onboard their new members.

My questions as I continue to read Cox and Townsend’s book are really about how one encourages strategic, reflective thinking over best practice thinking and how one should present research results that show just how uncommon common sense can be. See, one can learn things by studying construction projects. This message brought to you by my dissertation, a work in progress.

23Mar/092

Chris Hughes in Fast Company

I picked up a discarded Fast Company magazine at the YMCA today, and in it I found a great article about Chris Hughes. Hughes was a Facebook co-founder and left to join the Obama campaign where he was responsible for the innovative social networking tools available on My.BarackObama.com. I don't know much about how Facebook got started beyond the Harvard bit and annoying Mark Zuckerberg. It turns out Hughes was the non-code-writing co-founder, the "people person." Changes to Facebook over the last year or so have been met with remarkable criticism and user outcry, many for good reason. Remember the privacy flare up? The "all your data are ours" nonsense from just recently? How about the thousands of users who dislike the new Facebook homepage (this user included)? Maybe Facebook wouldn't be in those messes if they still had people people. I'm sure Zuckerberg can write some mean code and that his minions can too, but Facebook seems to be turning into a Twitter on steroids, and in the process, losing that ability to connect real people to each other that made it so great. As an Obama supporter, I'm grateful that Hughes joined the team and helped us organize ourselves, so grateful, in fact, that I don't care that Facebook may end up ugly and abandoned without his vision: "If it's real people and real communities, then it's valuable. Otherwise it's just playing around online." (quoted in Fast Company)

14Mar/096

JavaScript date checking

Sometimes we ask users to enter a date range. I wrote some code today to check whether the date a user entered was (1) after today and (2) before some other date she entered. In my situation, I was building a flight search form and wanted to check that the user-entered departure date was before the user-entered return date and that the user wasn't trying to depart in the past. To do this, I needed to turn the user's input into a JavaScript Date and then compare that Date to Today's date. I found a lot of similar code online, but none of it work quite right.

I have a form with text box inputs for dateDepart and dateReturn. This code takes those inputs, turns them in JavaScript dates, compares them to each other and to today, and returns alerts or submits the form, depending on how the comparisons shake out.

Here's my code:

// check to make sure Return date is after Departure date, and both are after today
if ( (the_form.dateDepart.value !="") && (the_form.dateReturn.value !="") )
{
	var strFromDate = the_form.dateDepart.value;
	var dayPartFromDate = parseInt(strFromDate.substring(3,5),10);
	var monPartFromDate = parseInt(strFromDate.substring(0,2),10);
	var yearPartFromDate = parseInt(strFromDate.substring(6,10),10);
	var dtDepart = new Date(yearPartFromDate, monPartFromDate-1, dayPartFromDate);

	var strToDate = the_form.dateReturn.value;
	var dayPartToDate = parseInt(strToDate.substring(3,5),10);
	var monPartToDate = parseInt(strToDate.substring(0,2),10);
	var yearPartToDate = parseInt(strToDate.substring(6,10),10);
	var dtReturn = new Date(yearPartToDate, monPartToDate-1, dayPartToDate);
	var now = new Date();
	var today = new Date(now.getFullYear(),now.getMonth(),now.getDate());	

	if(dtDepart > dtReturn)
	{
		alert('Departure date must be before return date. Please fix and resubmit.');
		return false;
	}
	else if (dtDepart < today)
	{
		alert('Departure date must be after today. Please fix and resubmit.');
		return false;
	}
	else
	{
		the_form.submit();
	}
}

Turn User Input into a JavaScript Date
To turn the user's input into a Date, I needed to parse the input and then pass the pieces to the Date() function.

The JavaScript substr function syntax I used corresponds to dateToChange.substring(start,finish). My users are mostly in the U.S., and they enter dates in the form MM/DD/YYYY, e.g., 03/14/2009. JavaScript starts counting at 0, so the substr functions above grab "14" for the day, "03" for the month, and "2009" for the year and then pass those substrings to the Date()function to be converted in a Date JavaScript understands.

getFullYear(); returns a four-digit year such as "2009" that makes it easy to compare to the default version of today's date that
var now = new Date();
var today = new Date(now.getFullYear(),now.getMonth(),now.getDate());

gives.

Why monPartToDate-1? Remember, JavaScript starts counting at 0, so January is month 0, and December is month 11. That means I need to subtract 1 from what my user entered to get the right month for JavaScript.

Compare Dates
I needed to compare the two dates the user entered to make sure she had departure first, then return. Once I have converted both her inputs to JavaScript dates, the comparison uses a simple "greater than" operator: dtDepart &gt; dtReturn

Calling the Date-checking Function
You'll notice my code doesn't include a function declaration; that's because this date-checking procedure is part of a larger function to validate my form. You could wrap this code in a function declaration such as
function checkDates(the_form){}

In order to call the code when the user submits the form, I like to use something like

<input id="search" onclick="checkDates(this.form);" type="button" value="Submit Form" />

in the HTML.