Code4lib Day 1: Design for Developers – Some Notes

by Lisa Kurt, University of Nevada

If you can get three things down, you can get a good design:

  • Typography – simple
  • Composition – a lot of white space, conventions
  • Colour – minimal

Study the designs that you love and those that you hate. What works and what doesn’t?

On Photos: If you use clip art, don’t use clip art that looks like clip art.

Look at designs with fresh eyes. Make sure it’s balanced.

Have fun too!

Really know your audience. Beware of decorative typeface: it can become hokey, very quickly because they look more like illustrations.

Designing for Mobile: Sans serif and white background with dark text is easier to read on mobile.

While you need to be careful of branding, you can use it to link different elements together.

Design by committee does not work! Provide three design and be firm that you will not combine them, etc. Usability can help support your design.

For more, check out Lisa’s website and the presentation slides below.

Code4lib Day 1: Kill the Search Button II – The Handheld Devices are Coming

by Michael Poltorak Nielsen, Statsbiblioteket/State and University Library, Aarhus, Denmark

Current Mobile Interaction Paradigm

You do a lot with your hands, everyday. Our hands are a really good tool, but currently, the handheld interaction is based on glass. That is you do functions by sliding your fingers, which means there is no feedback on what it does, i.e. it’s not intuitive.

Take a look at Pictures Under Glass: Transitional Paradigm dictated by technology, not human capabilities by Bret Victor.

An Alternative

  • direct manipulation
  • gesture driven
  • palpable
  • tactile

Smartphone Gestures

The near future may mean combining something like the Wiimote and the iPhone.

Mobile Projects

The idea was to build an HTML5 app that searches library data, favourites, view own items, renew, and request. Currently in beta, but to be published soon.

The search app can be augmented with gestures, gestures combined with multi-touch interactions.

Possible interactions with focus on

  • keyboard – typing
  • microphone speech
  • screen – touch, visuals
  • camera – pattern, movement
  • accelerometer – acceleration
  • gyroscope – rotation
  • compass  – direction
  • GPS – movement, position

Gestures

Might include simple ones using accelerometer data, including

  • tilt
  • flip
  • turn
  • rotate
  • shake
  • throw

The problem is that gestures are only really supported by Firefox, and partially supported by Chrome. Thus, it was decided that development would move to the native iPhone app environment with gestures, and HTML5 web app without gestures (but possibly later when supported). Features that are implemented include:

  • Restart search – face down
  • Scroll – tilt up and down
  • Switch views – tilt
  • Request items – touch and tilt left
  • Favourites – touch and tilt right

Check out the demo:

Challenges

  • no standard mobile gestures
  • gesture maybe individual
  • gesture may not be appropriate at all
  • sophisticated gestures are hard to code
  • Objective-C

Code4lib Day 1 Morning: HTML5, Microdata and Schema.org (and other takeaways)

I did not take notes on everything in part because some of it was very technical and it can be hard to do notes, but here are some takeaways from the morning:

  • Versioning Control: Use it, Git or Mercurial. Doesn’t need to be code, can be data too. – Description and Slides
  • Take library data and make it available to users, can’t expect them to search for it.
  • Linked Data doesn’t need to be a huge project. Start small.
  • Why RDF? It’s flexible with easy addition of new attributes or classes, and works cleanly with an iterative approach.

HTML5 Microdata and Schema.org

by Jason Ronallo

Other than getting good ranking, we need to provide rich results, i.e. rich snippets. Some digital collection have been providing rich snippets already, such as NCSU Libraries.

How do we get this?

  • embedded semantic markup
  • HTML5 Semantics include nav, header, article, section, footer
  • HTML5 Microdata is a syntax for annotating content to communicate meaning of data to machines
  • similar to RDFA, other microdata
  • Microdata comes back as tree based JSON and allows for DOM API

For example:

<div itemscope itemtype=”http://schema.org/Organization” itemref=”logo”>
<a itemprop=”url” href=”http://code4lib.org/”>
<span itemprop=”name”>Code4Lib<\span>
</a>
</div>
where: scope = about something
type = type of item
prop = properties

For the user, there is no difference as display is the same. This provides a complete data model.

Schema.org  is a one-stop shop for vocabulary in describing items on the web.

Apologies, I did not take extensive notes on it, but to read more, check out the slides below or the Code4lib article he wrote.

Code4lib Day 1: Keynote on Code4libcon

Daniel Chudnov from George Washington University was the first Keynote of the conference.

Dan began with a bit of an introduction and then went into a very touching overview of the story of his family and his life. His life lesson was that

things fall apart.

We Blew It

We have turned away too many people: way more than 100 people. That was a terrible mistake. If we don’t address this mistake, this [conference] is not going to last.

Code4lib was inspired by Access, with some key aspects:

  • single track
  • participatory
  • social
  • beer
  • fun

The difference the organizers wanted was a (possibly) geekier version in the USA in Spring (so as not to compete with Access). What might have really pushed this discussion is that

we turned away more people in 2012 than attended in 2007.

Why? The most common answers revolved around the capacity of venue. There were of course, some other concerns about keeping it a small, informal, participatory conference that were expressed, especially in the backchannels (IRC and Twitter).

Nevertheless, Dan asked the key question “Why do you come?” He expressed how he comes to connect with people, and hang out with the attendees, and there are many others that wanted to join, but were turned away.

He went on to talk about how while there is a chasm of techies vs. non-techies, there shouldn’t be. Plenty of people want to learn what coders do, and as a group, we should want to help respond to change constructively. They want to code, and we should connect and work more closely with them. We have one choice to make:

HACK OR DIE

We Must Expand

Dan used PyCon as a possible a good mode to follow. They have:

  • 2 days of pre-conference tutorial days
  • up front training for all levels
  • 4 days post-conference sprint days
  • back-end collaboration for all levels
  • plenary talks, plenary lightning
  • multiple tracks

Dan was against multiple tracks for many years, but not anymore, because

we need to connect or this thing we have will fall out from under us.

His point is that next year people won’t even bother if there is no clear statement to make things work.

Challenges

  • break complacency
  • lack of proposals to host
  • too heavy a burden on local organizers

Possible Solutions

Committees need to be formalized, especially an advisory committee of former hosts to help future hosts. The work needs to be done through the year, and more open like it used to be. Dan also suggested a formal program committee to replace the “diebold-o-tron”, but there was some disagreement because it’s less participatory.

Some other ideas included a multi-core code4lib where each regional group would be 1 hour live streaming on the same day, and the BarCamp approach where there are no pre-planned presentations, which might work for regional code4lib conferences. However, concern was expressed with having too many small conferences organized, burning out possible hosts for the annual code4lib.

The next code4lib conference should aim for 500 people.

Chicago is ready. Are you?

Code4lib Pre-Conference: Microsoft Research (MSR)

Future Technology

So the first half of the tour was the non-disclosure, confidential part but the group that I was part of basically got information on how Microsoft research trends and some of their results. We then got to play with some of the prototypes they have been working on, which is technology they see as coming into the market in 5-10 years. To get a general sense of what might have been included, take a look at the Future Productivity Vision video they released recently:

http://www.youtube.com/watch?v=a6cNdhOKwi0

Microsoft Research (MSR) at Building 99

The research division focuses on core computer science research of fundamental aspects of computing. A lot of the products of their research include papers, patents, and prototypes. They supplement staff and resources with scholarly research by partnering with academia. The focus is mostly on applied projects.

ChronoZoom

  • to be released in March
  • working with Berkeley and a couple of other universities
  • prototype to help in research and teaching cross-discipline
  • no details beyond that as we were told to keep this one under wraps, but check out the link for more information

F#

  • practical, functional-first programming language that allows you to write simple code to solve complex problems
  • in the .NET family, fully supported by Microsoft Visual Studio
  • multi-paradigm: can used different models, e.g. object-oriented
  • interoperable: doesn’t work in isolation, can use all of .NET framework

Simplicity: Functional Data

  • simple code, strongly typed
  • Example 1: let swap (x, y) = (y, x)  vs. (in C#) Tuple<U,T> Swap<T,U>(Tuple<T,U> t) { return new Tuple<U,T>(t.Item2, t.Item1) }
  • Example 2: let reduce f (x, y, z) = f x + f y + f z vs. (in C#) int Reduce<T>(Func<T,int> f,Tuple<T,T,T> t) { return f(t.Item1) + f(t.Item2) + f(t.Item3); }

Simplicity: Functions as Values

  • can define function inline
  • can define own units of measure, and enforce conversions

Example:

  • type Command = Command of (Rover -> unit)
  • let BreakCOmmand = Command(fun rover -> rover.Accelerate(-1.0))
  • let TurnLeftCommand = Command(fun rover -> rover.ROtate(-90.0<degs>))

Some Other Features

  • built-in run parallel and asynchronous
  • can use traditionally, compile and run OR interactively, execute on the fly
  • x |> f – apply f to x

There was more, but I honestly couldn’t copy that quickly and didn’t understand every detail, but if you’re interested you try F# through a browser which includes an interactive tutorial, or download it from tools and resources. To learn more about what people are doing with it, take a look at F# Snippets.

F# 3.0

While 2.0 excels at analytical programming, solving computationally complex problems, 3.0 is an accelerator for data-complex problems by bringing information to your fingertips.

Basically, you can load a database (through URI) and while you program, you can see a full list of all the data elements that are available.

For example, after defining a type by loading the netflix database, in typing “netflix.” you would at this point get a list of the fields (e.g. Movies) from the database

Layerscape

  • geoscience tool
  • can download and run for free
  • have the ability to bring a lot of time-sensitive data and use GPU to create visualization
  • talk to worldwidetelescope (WWT) through API
  • also has a custom ribbon plugin for excel to view in WWT for non-programmers
  • can also create custom tours including text and audio, which then exports into videos. Note: The data is included in the tour so that people can see the data – check out the Seismicity Samoa and Tohoku example video we saw (requires Silverlight)

Microsoft Audio Visual Indexing Service (MAVIS)

  • keyword search in audio/video files with speech
    • speech recognition technologies used to ‘crack’ audio files
  • Microsoft Research technology: world-level lattice indexing
    • 30-60% accuracy improvement over indexing automatic transcripts – right now, 80% of content, 85%+ accuracy
    • can provide closed caption which can also be edited later
    • index word alternatives – robust to recognizer errors
    • index timing – navigate to exact point in video and provides timeline of where the phrase is spoken
    • tune-able – queries from ‘give me something’ to ‘dig deeper to find it’
  • computer intensive speech recognition done in Azure
  • no need to invest in H/W infrastructure
  • front end user search integrated with SQL server
    • search infrastructure is the same as full text indexing in SQL
  • SOAP based API
    • allows integration of media search results in other applications e.g. text search
  • need at least 500 hours of transcribed data in order to train the program for other languages

MAVIS Architecture

Great for library and archives in order to pull content from digitized audio and video of formats becoming obsolete or degrading.

Microsoft Academic Search

  • free academic search engine
  • structure unstructured data
  • 38+ publications including non-public data
  • can search or browse by domain to see top authors, publications, journals, keywords, organizations
  • for recognized terms e.g. Bone Marrow can see term occurrence, definition context from full text indexes, top authors, conferences, journals, etc.
  • can search for person and see their publications, but then with disambiguation, and then a profile with list of publications, citations, visualization of coauthors, citers
  • can see organization profiles and how they compare to others including Venn diagram of publication keywords
  • can pull most of the visualizations and embed into a website
  • RSS feed for each element
  • full API also available and get results in JSON or XML via SOAP
  • site interface allows crowd sourcing to edit information e.g. if disambiguation of publications is wrong (though right now, only with Live account, working on OpenID)

This strikes me as Google Scholar but with more functions, visualizations, and linked data. Right now, not a lot has been indexed, but I can see this as a much better version of Google Scholar.

Being Green > Swag You’ll Probably Throw Away

Finally, at the end of the night, one of the staff presented on why he’s anti-swag, so instead of giving MS swag away, we got the opportunity to take home an epiphyte complete with care package. Unfortunately, I can’t take it home across the border so I found someone to adopt it.

Epiphyte complete with care package