Chapter 1: Getting to Know MarcEdit

To complete the project, OREStateU Libraries has identified and collected the records that needed to be updated and an electronic copy identifying each of the changes to be made in Excel.  Given the very narrow nature of the problem, I thought that maybe I could provide a more efficient path to completing the project.  Using what I’d learned as a student, I developed a core set of code libraries that I could use in applications like Visual Basic or the Visual Basic Application macro language embedded in Excel.  Working from within Excel, I was able to develop a proof of concept macro that could take a file containing the problem records and modify the data based on the information in Excel.  Working over a couple of days, I tested a random sampling of records needing to be corrected, and when I was finally confident in the process, I approached Kyle Banerjee to talk about my plan.

Having Kyle at the OREStateU Libraries at the time that I was starting out really became the catalyst for the work that I would do in the future.  Kyle was and is a kindred spirit.  He loved to experiment and actively looked for opportunities to utilize new and emerging technology in the library.  He was also the first librarian that I’d ever met that actively was learning how to write code and had no problems breaking as much stuff as he fixed.  He was also a bit of a troublemaker at times, and I have to admit, I often appreciated and adopted his mantra of asking for forgiveness rather than permission.  Working with Kyle, I demonstrated the process I’d developed to correct the records.  And after a little back and forth, I’d completed the project over a couple of hours.  It was at the completion of that work, that Kyle started nudging me to consider developing the project further to make this type of functionality easily available to the larger library community.  Over a couple of months, I would develop a wireframe for the application and then worked with Kyle to test my assumptions and make sure that the tools could be generalized to a larger audience.  Fortunately, Kyle was an excellent beta tester because he didn’t mind if something accidentally went wrong.  As my guinea pig, I think I rendered Kyle’s PC unusable more than a couple of times but he stuck with it, and the final product ended up being MarcEdit 1.0.

I can honestly say, that had it not been for Kyle’s encouragement, MarcEdit never would have became a tool for public consumption and I likely wouldn’t be in libraries today.  He really was the right person at the right time for me — helping to change my perceptions of what libraries and librarians did, and pushed me to move outside of my comfort-zone to start asking my own research questions and building my own research agenda. Kyle became one of my biggest cheerleaders and supporters.  I’d often hear him telling people that MarcEdit was the “greatest thing since sliced bread” and he pushed me to continue developing the program.  He helped me build connections in the field with other catalogers and ultimately, when I decided to go back to school for my MLS — he kept me sane during the process.

MarcEdit through the years

I’ve been working on MarcEdit in some capacity for seventeen years and during that time, the program has gone through a number of significant revisions.  At a source code level, MarcEdit originated as a program written in a combination of Assembly and Visual Basic.  All of the code libraries where written Assembly, and all the user interface components and programmers API were developed or exposed using Visual Basic.  Around 2004, to accommodate the increasing usage of UTF-8 data, I did a 100% rewrite of the MarcEdit code-base, migrating the application into the C# programming language.  The drivers behind this decision really revolved around a desire to provide MarcEdit on multiple platforms, and both a Microsoft sponsored and open source sponsored implementation of the C# language were available.  What’s more, I had hoped that by porting the code to a higher level language, I could open up some of the MarcEdit code-base and potentially, look at opening up the entire MarcEdit code-base. For the most part, this has been what has occurred.  While I haven’t made the decision to open up the entire MarcEdit code-base as of yet, I have released the code for many of the tools and libraries that make up the application.

Leave a Reply

Your email address will not be published. Required fields are marked *