Hi! I'm Daniel
he / him
I'm part web developer, part librarian.
Over the years I've gained experience working with a wide range of front-end and back-end web technologies. And honestly, the constant need to learn is one thing I love about the discipline.
Whether it's evaluating an existing system or sketching out the plans for something brand new, figuring out how everything fits together and what tools will be best for the job is one of my favorite things.
I like to make websites for libraries because I know my work is making everyone's life a little bit better.
I'm also a bit of a nerd and an aspiring author. Favorite color: green!
Work Experience
Web and Database Development Librarian
NC LIVE. September 2017 - Present
- Developer for the NC LIVE website and supporting systems
- Created API for integration of Salesforce CRM data and local databases
- Set up and helped manage EZproxy for member libraries
- Liaison to Website Advisory Committee to determine needs of member libraries
- Worked on implementation of LibGuides templates
Emerging Media Developer
IU Communications (now IU Creative and Web Team). March 2010 - January 2015
- Worked on websites and digital services for university clients
- Used web services to help data creation, maintenance, and migration
- Developed and converted HTML/CSS front-end into templates (XSLT, PHP)
- Programmed back-end PHP applications
Mark-Up Technician / Digitization Technician
Indiana University Maurer School of Law. October 2008 - November 2009
- Worked on the digitization of the Brevier Legislative Reports
- Encoded XML volumes according to TEI standards
- Prepared encoded documents for ingestion into digital library collection
- Scanned in documents and made adjustments to ensure images were archive-ready
- Used OCR software to read in text and make corrections
Education
Master of Information Science
Indiana University Bloomington. August 2008 - May 2010
Specialization in Digital Libraries. Coursework on digitization of materials, information architecture, metadata schemes, programming, and user experience.
Post-Baccalaureate Studies
Western Washington University. September 2007 - June 2008
Courses in C++/Ada programming, statistics, U.S. history, and education.
Bachelor of Arts in History
Whitman College. August 2003 - May 2007
Minor in Education. Graduated cum laude.
Skills
Learning has been critical to my growth as a developer. Whether it's honing my knowledge of HTML and CSS, or learning new programming patterns, or working with templates and content types in a new content management system, there is always something new to learn.
Here are some of the technologies I've built projects with over the years:
Back-end Web and Programming Languages
- PHP
- Laravel
- MySQL
- Python
- C#
Front-end Web
- HTML
- CSS
- Javascript
- Bootstrap
- Foundation
- Jekyll
- Liquid
Content Management Systems
- Drupal
- WordPress
- Salesforce
- LibGuides
- Cascade Server
Metadata Schemas
- XML
- XSLT
- Dublin Core
- MODS
- TEI
My Favorite Projects
NC LIVE Website and API
My primary responsibility at NC LIVE (North Carolina's library consortium with over 200 member libraries) is managing the main NC LIVE website. Patrons from all across North Carolina can log in and access the full NC LIVE collection as well as resources licensed by their own library. Librarians can get information about resource training opportunities, view their EZproxy configuration, check the status of NC LIVE resources, and learn about NC LIVE's services.
Most of the website is powered by Drupal, but there is also an API that I developed, built off of Laravel. The API ties together several disparate systems that NC LIVE had been using and allows for better data integration. For instance, NC LIVE staff can edit a library's information in Salesforce and immediately see their changes on the website and on the library's EZproxy server.
We redesigned the whole website in 2021-2022. This update included a brand-new graphic design, site data structure changes, and a move from Drupal 7 to Drupal 9.
IUPUI Website and new framework
One of my final projects for Indiana University was a redesign of the IUPUI website. The IUPUI site was exciting because we had the chance to re-engineer all of the templates we had been using for several years. The entire team was building from the ground up to make all of our future websites as flexible as possible.
My task was to build the XSLT templates in Cascade Server to manage all of the new content types we were creating. Each content type (such as a block of text, a slide shows, or a video) had its own module that could be overridden on a site-by-site basis depending on the needs of the client. Discrete content blocks were then put together and arranged by content creators to build each webpage.
Brevier Legislative Reports
The Brevier Legislative Reports are a series of documents chronicling the business of the Indiana General Assembly from 1858 to 1887. The reports are incredibly rare (several volumes having never been published at all), and they provide a rare glimpse into the politics of a turbulent time in American history.
The digitization project was started in an effort to increase access to the reports via an online Internet portal. The markup allows for researchers to search the volumes more effectively and in ways that are not possible with analog media.
Whitehead Digital Slide Collection
This project involved the creation of a small digital library collection as a test of my digitization technique and knowledge of best practices. I wanted to do something personal, so I chose to digitize sixty images my parents had taken while on my grandparents' farm in Payette, Idaho in 1975 and 1976.
The images captured life on the farm: from milking animals to mowing the lawn to playing in the snow. Each 35mm slide was digitized and the resulting image stored in an uncompressed TIFF format. This TIFF file was used to create derivatives for use on the website.
To complement the images I created metadata records for five of the images as a test set using MODS and Dublin Core. I also digitized a journal my grandmother had been keeping at the time into TEI.
Finally, I wrapped all of this together into a simple web portal that allows for browsing and downloading of the images.
The goal for this project is to take advantage of the two main facets of digitization: accessibility and preservation. Prior to the start of this project, the slides were placed in large boxes in a single location in my family's home. By creating a digital access portal for these images, not only can dispersed family members or other interested individuals view the materials, but they are more likely to be preserved as well.
Projects for Work
Center of Excellence for Women in Technology (CEWiT)
CEWiT is an initiative across Indiana University Bloomington whose goal is to increase women's excitement about technology. A big drive of the initiative is to get women thinking about technology and how pervasive it is in many fields, not just the usual suspects such as Computer Science and Informatics.
My main task for the CEWiT site was the construction of a mini-course repository. This repository allowed our client to pull in course information from Indiana University's central course repository and supplement that data with their own CEWiT-specific information.
This aggregation makes it so that the client does not have to manage all of the data for each course (as that can be managed by an external entity keeping track of IU courses), but they can also attach their own information as well.
President's Challenge
The President's Challenge was a government initiative promoting physical fitness for everyone, but especially for youth. The website consisted of three main components: the static website, detailing the various programs offered; an online store; and an online activity tracker where users could log in and record their various physical activities to earn virtual medals.
My responsibilities for this project included doing some of the front-end development, implementation of the static website into a content management system (Cascade Server), and working on the back-end for the activity tracker. I also served as a liaison with the client after the site had been launched.
IU Cinema
The IU Cinema provides a place on campus for the showing of a wide range of films, from small indie films to blockbusters, and everything inbetween. Our client wanted a website that would stand out and provide a platform for contextualizing the films and series featured at the new theatre.
IU Health Center
The Health Center provides health services for Indiana University students, faculty, and staff. This redesign was undertaken to advertise the Health Center's services and promote a more personal brand message.
Projects for School
Interactive Fiction Metadata Schema
For my final project in my metadata course I chose to build a metadata schema for describing works of interactive fiction (IF). These works are fascinating as they combine elements from traditional literature with elements from video games and computer systems.
The metadata about a particular work of IF might have fields familiar to librarians such as author and publish date, but also elements such as control method and perspective.
My metadata schema attempted to meld these elements into a single comprehensive structure. I extended some of the basic elements from Dublin Core elements but also created a number new elements as well. The schema is defined in RDF, as are a set of ten records that I tested it on.
Boston School Forest Digital Herbarium Grant Proposal
For this project I worked with a group to write a grant proposal for the Boston School Forest. The proposal was for the creation of a digital herbarium to complement the school's analog herbarium. The digital herbarium would house images and metadata for the several hundred species of plants. The images plants will then be accessible from the Boston School Forest website.
I concentrated on writing the technical requirements portion of the proposal, but also was involved with general editing. In addition, I was responsible for creating the wire-frames and mock-ups, to show how the interface for the new system might work.
Disk Collection Library
I wanted to create an interface for browsing my CD and DVD collections for the final project of my XML workshop class. The purpose of the collection would be to have a (theoretical) list of all my music, movies, and video games. Each item in the collection has an associated set of metadata.
The metadata for the different types of media are different based upon the user (i.e., me) and how the library would be used. For instance, a Game has a field for the number of times that I've beaten it; whereas a Movie has a list of the lead actors.
The XML was generated, tagged, and validated against a DTD that I created. I also wrote an XML schema to validate the documents as well, but chose to use the DTD for the sake of simplicity in the final iteration. Once the XML was finalized, I wrote XSLT to produce a simple webpage. The entire project was completed within about a week (hence the ridiculous design) and incompleteness of the list.
Concert Book
My final assignment for the AJAX workshop was a mash-up project for tracking an artist’s concerts around the world. The user would be able to select a few criteria--such as the dates, state, and the maximum amount that they were willing to pay for tickets--and then select if they wanted to see the data in a timeline, on a map, or both.
After the search, the webpage would read in the data (dummy data in JSON format, as though it were generated by a database) and display the concerts that met those criteria.
Each concert matching the criteria was displayed on the table on the left-hand side of the screen, which listed the date, time and the name of the venue. The concerts pinned on the map could be clicked for additional information, such as the ticket price, city, state, and three links that were dynamically generated that would search for hotels in that city. Finally, the concerts were all present on timeline, as we had trouble filtering through the XML sourced timeline data.
Epic Ride
The Epic Ride project was to be an interface for sharing information about biking trails. Information about particular trails or circuits would be provided by users and stored in a flat XML file. Users could then capture videos of riding the paths and share them with the community, with competitions to see who would complete the circuit most quickly, or who could capture the most beautiful scenery, and so forth.
One hiccup in the project was that I had trouble getting Flex to display the .mpg encoded videos supplied by my brother. Because of this, combined with the short-time frame of the course, I only had the time to implement placeholder videos of motor racing.
The whole interface is more practice at using MXML for layout than anything, as it many elements are for placement only.
Word Search CGI
This final project of the Perl workshop was a word hunting program. The user enters a block of text into a field and a target word in a separate field. The program then checks to make sure that the string is not too long and does some pattern matching to make sure that the input was a word.
The program then runs through the block of text and singles out the word when it appears. The program also keeps track of the number of times that the word has occurred, and does a small amount of styling (by adding bold tags around the word) when it is found.
While it is a relatively simple program to do conceptually, I found it useful to gain the experience using GET and POST to pass the data from one page to the next.
Projects for Fun!
Nerdsworth Academy
I have always had a deep passion for video games and one way I enjoyed sharing this passion is through my writing on my blog and my YouTube channel: Nerdsworth Academy. My goal was to be a bit more analytical than the average gaming perspective, balancing a casual and intellectual tone.
A few of my favorite articles include a breakdown of the contentious Mass Effect 3 ending (and the subsequent controversy), the use of sex in video games and why it can be so awkward, how I built my very own Zergling hat, and an article trying to answer the question, What happens to games when they die?.
I found managing a blog a valuable experience since it forced me to consider things I didn't consider when building websites at work. For instance, I had to set up the hosting service, make sure that the content stays fresh, make design decisions, customize the theme, and think about new features I wanted to add.
Blackleaf
I have always loved to read (what librarian doesn't?) and have always wanted to write a book. I've completed National Novel Writing Month a number of times, winning and losing both, but never had gone further than the 50,000 words. The last couple of years I did the challenge though, I've felt like I'm onto something with my manuscripts.
I loved Redwall and Watership Down as a teenager, and wanted to write something that would be similar, with animal characters having heroic adventures, but with a darker and more pessimistic tone.
Blackleaf is my fantasy story, with the action centered on the dense and forboding Blackleaf Forest. The Hunter's Children have been overthrown leading to the dawn of a new age of peace, but wolves aren't the only dangers in the forest...
Splatterfield
Splatterfield is a game idea that I have been thinking about since I played XCOM: Enemy Unknown.
The basic premise of the game is that it is a turn-based tactical combat game like XCOM, but in addition to just firing at the enemy and blowing them up, you can also modify the block-based game world in a similar manner to Minecraft. Each turn you have to decide if you want to shoot, move, or build some kind of cover for yourself.
Quadril
Quadril is the brainchild of my brother, Matthew Whitehead. The idea behind the game was to create a multiplayer FPS game that focused on cooperation, customization, and a limitless world. We wanted to create a world where you could pick up a weapon and just keep running in any direction, and there would always be something new to fight and something new to see.
While my contribution was less involved than Matthew's, I still had an important part to play: I implemented the algorithms to generate all of the terrain in the world. This included two main components: the terrain's height and its color. The height was achieved through a diamond-square algorithm, whereas the color is applied as a function of the height (and some noise for good measure).
Storypiece
Although Indiana University's Master’s in Information Science does not require a final project or thesis, I have taken some time to develop an idea for a final project that I feel would test extend my abilities in design, architecture, and development.
The idea for the final project would be a website where users create stories by putting together individual pieces of communal content (text, audio, and images), which I call storypieces, into discrete pages. The pages can then be arranged into stories, which can follow the standard linear structure as books do, or the user can take advantage hyper links to have certain pages be optional, or have "multi-path" structures, as one might see in a "Choose Your Own Adventure" story.
The inspiration for this project came from my desire to have a way of telling complicated and interactive stories. I also wanted to experiment with managing metadata that was supplied by users.