Code4Lib 2013: Reflection & Thoughts

After almost a week since Code4Lib 2013, I’m still not sure it’s all sunk in. Every year I look at the conference program, I wonder if the sessions will actually interest me, but I go anyway and get blown away. Regardless, I was more excited this year since I was the program committee lead this year, helped with sponsorship, prepared a lightning talk and decided to be the opening MC. Continue reading “Code4Lib 2013: Reflection & Thoughts”

Code4Lib Day 3: Morning Notes

Hands off! Best Practices and Top Ten Lists for Code Handoffs

  • Naomi Dushay, Stanford University Library

Code handoffs are never smooth. Ever.

Ratio of time spend reading vs. writing code, 10:1.

The Truck Test

  • what if you were run over a truck and someone else had to take over?
  • need to code so a stranger can read it and understand it

The Boy Scout Rule

  • “Leave the code cleaner than you found it”
  • need to maintain your code
  • otherwise you’re part of the problem

It’s More Than Code

  • naming should make sense: servers, scripts, everything
  • config files should not point to boxes
  • tools chosen can be the problem
  • should you be rolling this on your own?
  • probably something been done before
  • some think if you write code really well, then you don’t need to comment. Not true.
  • Documentation and comments are there to inform, explain, clarify, warn, need maintenance
  • readme’s should make sense
  • tests are code, should also think about readability of these
  • failures should be addressed ASAP
  • KISS – Keep It Simple Stupid
  • DRY – don’t repeat yourself

Readable Code

  • follow conventions
  • meaningful names: variable, method, class, file
  • small, single purpose methods

Cleverness that reduces readability isn’t clever.

Sources

  • Clean Code: A Handbook of Agile Software Craftsmanship by Robert Martin
  • Refactoring: Improving the Design of Existing Code by Martin Folwer et al.

The Care and Feeding of a Crowd

  • Shawn Averkamp, University of Iowa
  • Matthew Butler, University of Iowa

Presentation Slides

DIY History

  • transcribe items in collection
  • omeka + scripto + mediawiki
  • still in development: want to add social media aspects/integration
  • err sorry, brain temporarily sort of died. See slides and I’ll go get a cookie to recharge

How to be an effective evangelist for your open source project Creating a Commons

  • Bess Sadler, Stanford University Library

Full Write Up by Bess herself

Lost a member of our community this year: Aaron Swartz

  • helped to define Creative Commons licenses
  • 3 versions: machine, human, and lawyer readable
  • code4lib should do the same principle
  • shared engineering practices are becoming more and more important
  • investment that’s worth it
  • please get code contributors to sign a contributor license agreement
  • can determine whether contract allows participation
  • don’t want to lose informal sharing, but law cases have happened and we need to protect ourselves

Building Code

  • what are we building?
  • we are building a culture, a commons
  • Fedora4lib – came early and rented a house together
  • Hydra = a community
  • cultivate a place where we can
  • teaching at Ruby on Rails workshops – too big a job to leave to a small group of people

Hacker Epistemology

  • how is knowledge acquired?
  • how do we decide what’s true?
  • collaboration with disregard of conventional mental thinking

Building the Community

  • need to expand and include everyone who wants to join
  • more steps in building a more inclusive community
  • adopted a code of conduct, because it was a good idea and making an explicit statement
  • need to let other people to know that we’re trying
  • “We are all imposters.” – just acknowledge it, we all feel that way, but bolster ourselves
  • allow ourselves to be seen even when there’s no guarantee of success
  • we can support each other
  • cannot be accomplished alone
  • want to craft a process for submitting issues

Thank you, code4lib!

The End

And that’s it! Until 2014.

nuzzling red pandas
Feel the Love. Happy Valentine’s Day

Code4Lib Day 2: Lightning Talks

Demian Katz – gamebooks.org, Geeby-Deeby, and the Dime Novel Bibliography Project.

  • interactive fiction books
  • Made a really big bibliography
  • people sending in more
  • put it in a big database
  • open-source project to adapt backend
  • MySQL db that models various types of entities, relationships
  • backend system to edit entities, enter data, edit relationships

Rachel Frick – LODLAM Summit 2013 and Challenge

  • linked open data in library, archive, and museum
  • had challenge to win cash prize
  • can still submit, just fill out form and make/submit video

Kenny Ketner – Occam’s Reader

  • allow libraries to lend ebooks to each other using document delivery model
  • compatible with IILiad
  • no training, no workflow change
  • can add formats incrementally (started with PDF)
  • basic interface that discourages abuse
  • access previously unaccessible resources
  • in alpha testing
  • Slides

Al Cornish – Orbis Cascade Alliance Shared ILS Project

  • primary service is consortial services
  • move to new system beyond traditional ILS
  • single shared system (vs. currently 37)
  • explore collaborative technical services, collection development
  • Alma + Primo selected, migration in progress

Makoto Okamoto – Crowd Funding for Library in Japan

  • culture of donation changed a lot after 3.11
  • share experience and metrics
  • key to success is setting up appropriate ticket

William Denton – Code4Lib 2013 Augmented Reality View in Layar

  • picking points of interest from two spots
  • 1: Google Places map
  • 2: Twitter search API – of the ones that are geolocated
  • Web service in Ruby and Sinatra, hosted on Heroku
  • Rainbows End by Vernor Vinge – go read it.
  • Slides

Rosalyn Metz – What I learned while I was away

  • learned about planning, budget, and time
  • time is the most important thing
  • track your time, might be spending too much time on things e.g. don’t spend more than 10 mins on a single email
  • can demonstrate where need help
  • Slides

Nettie Lagace – Recent Cool Fun NISO Activities

  • ResourceSync Framework Specification
  • Bibligraphic Roadmap Initiative
  • Slides

Chuck Koscher – Fundref

  • list of funders
  • what articles given certain funding

Andromeda Yelton – Five Conversations About Coding

  • computer science majors in 1995: yardstick of who is cooler than who dependent on the most arcane knowledge
  • boston python workshop 2012: women friendly course. Expecting to be judged.
  • chad nelson, monday night. It’s not free
  • bess sadler, yesterday. We have a problem with insecurity
  • important to recognized our limitations, but have this imaginary yardstick
  • ever done coding? majority. think coder? 1/2

Jeremy Morse – mPach: Publishing directly into HathiTrust

  • sorry, didn’t quite get this one

Rob Dumas – Git in Five Minutes

That’s all for today.

sleeping owl
How I Feel

Code4Lib Day 1: Opening Keynote – Leslie Johnston

Want to talk about communities and community building. It was a partial contextual shift as to her place in a number of communities.

Thought a lot about where she fits in. Have had a lot of identities, and thinks of herself as: nerd, geek, wonk, curator, archivist, woman, leader. Originally thought of herself as just another person, but everyone in this room should take on the role of leader.

Everything we do is part of the community, everywhere. Everyone in code4lib is part of a

community that succeeds through relationships.

Take the ethos of code4lib back to each organization.

leslie johnston doing the opening keynote

Software Development

Every software requires a community. Each person is part of it cares. Sustaining software requires a community of people who really care. We need to think about who uses our software. This

community is not just about people who write code,

it’s also about people use the software.

The most important thing is to work with those groups of users.

Communications

These communities are built using communication, inclusiveness, consideration, even more communication, and sense of ownership.

Need to think about users, stakeholders, researchers.

Everyone should read this blog post on backchannel conference talk.

Seen projects fail because they’re shared with the world but no one really takes ownership. Ownership goes both ways. Owning what you release, but also helping other projects be a success. Not everything fails, but it needs a community to thrive.

This is what we’re looking for in our communities and in our projects.

That they thrive.

You want a community that participates, looks out for each other.

What Defines a Successful Community or Project?

Participation. One project was a massive failure because no one participated.

Enthusiasm. Who would even want to fund it?

A sense of pride. ‘I’m part of that, made it happen, succeeded in part because of me.’

Learn from the history and the people who can be your mentors. Look at what you’re doing and what came before. Part of inclusiveness is acknowledging that you’re not the only person who has ever worked on the problem, who can work on the problem.

Adoption. A sign of success is that they’ve take it, use it, and contribute to it.

Now we will discuss.

Q&A Session

This supposedly not shy group, but is actually shy a lot of time.

Do we not think we’re not ‘real’ coders? Have the self imposter syndrome. But actually, she is a coder too.

Why does this community has to self-organize? Actually, awesome that this community has self-organized. Used to think every collection is unique and not doing the same thing, but we’re seeing emergence of communities that are realizing this is not true. For example, linked data community cross-fertilizing regardless of the type of collections they had. We self-organized was a sense of shared problem and shared passion.

No one organization can do it alone. We all need to work on it together.

Two most attributes to fail projects. One person thought it was a good idea, but no one else knew they were working on it. It didn’t succeed because there was no sense of participation, because no one was invited to participate. No one should work alone. We fail because we don’t collaborate.

How do you convince someone that they are a leader? Tell them that they are a success.

How do you adopt something when the leaders are not on board? ‘But everyone else is doing it, dad.’ Adoption by others. It’s really hard to be the first one though, we know.

Data-Driven Documents: Visualizing library data with D3.js

Bret Davidson, North Carolina State University Libraries