A forgotten MarcEdit Subfield Editing function :)

By reeset / On / In MarcEdit

I was asked the other day at AALL (American Association of Law Libraries) if MarcEdit could be used to move specific data from one field and replace the data currently present in another.  So, an example – the ability to move data from a 260$c to the 008 position 7:4.  You can actually, though its sadly not documented (one of those few hidden gems that have been created either for specific projects I or others have been working on).  So how do we do it.

Open the Edit Subfield Function.  In the Edit subfield function, there is an option called Move Subfield data.  That’s that one we want to check.   Then, we enter the following (using the 260$c-008).

Field: 260 [Enter the field with the data that you wish to move]
Subfield: c
Find: [leave blank – though you can enter data here if you want to find something specific to move]
Replace: 008|7||

Ok, the Replace looks funny and it is.  There are essentially a handful of options you can set here (4) – I’m going to explain two for now (and will update this post when I update the official documentation). 

Each pipe “|? represents a delimiter.  The first two pipes are the most important:

  1. Field to move to
  2. Where to move (replace) the data

In the above example, we are moving data to the 008 and placing the data in position 7.  If I was placing the data into a subfield, I would have entered a subfield (example: c) here.  So, the edit form would look like the following:




Kenny’s 8th Birthday

By reeset / On / In Family

On Aug. 1st, 2001 at 11:29 pm, my wife and I welcomed Kenneth Terry Reese to the world,


and from that day forward, he’s added nothing but joy to our lives.  And from the moment I saw him, I fell in love with him. 


The funny thing about kids, especially your first child, is that they open up an entire new world to you.  We go through life at such a fast pace, living life and missing many of the little things that are going on around us.  However, with kids, that can all change.  Kenny has brought a number of things into our lives, but the thing that I am always surprised by is the excitement that comes from seeing the world through the eyes of a child.

From a first trip to the beach to play in the surf (this is one of my favorite pictures)


having his first birthday cake


or riding your first bike


the world is full of amazing things happening around us all the time – but as we get older, they lose their luster.  When people tell you that having children will make you young again, this is what they mean.  Having Kenny come into our lives brought with it a number of changes – some expected, some unexpected.  Suddenly, you go from being a young married couple with no responsibilities but to those of your spouse to having a tiny little person who depends on you for everything.  Everything changes…your marriage changes, relationships with friends change, how I drove certainly changed and if you are lucky, how you see the world changes.  It’s both an amazing and terrifying experience all at the same time.  And to those that would ask, I wouldn’t change a thing. 


(He still has his black kitty)

I have had the extraordinary privilege to watch my baby growing into a young boy


and have seen him become more confident, adventurous and outgoing every year.  He flourishes in school, is naturally curious and has always accepted that Nathan (his younger brother) idolizes him, and that there is a responsibility that comes with that. 


It’s been an amazing eight years…eight years that have come and gone way too quickly.  But no matter how big he gets, I’ll always be able to remember him as my little boy.



Happy birthday Kenny,

Your Daddy

MarcEdit Z39.50 on ‘Nix

By reeset / On / In MarcEdit

I need to send this out to the 15 or so folks that have agreed to be my first guinea pigs testing out a MarcEdit build on ‘Nix and Mac systems (and btw, Mac UI rendering isn’t good.  That’s not surprising because Mono’s UI changes tend to show up correctly on ‘Nix first, then Mac – so I’m hopefully the planned 2.6 update in Sept. will correct many of the errors) but I wanted to document it here as well so I don’t forget to add it the installation instructions later.

In Windows, MarcEdit includes the yaz install as part of the application installation.  This means that when people install MarcEdit, all the dependencies that they need are installed as well.  With Linux, that won’t be the case.  On Linux, you will need to make sure that you install the yaz and yaz-devel packages.  Once installed, you need to make one more change (and here’s the trick).

In MarcEdit windows, the yaz dll has been marked, renamed as yaz3.dll.  The reason for this is that I don’t want to be accidently over-writing a previous installation of the software (in case other programs on the system are relying on older or newer versions of the library).  This works fine in Windows, but on Linux, the problem is that the yaz components are installed as yaz (not yaz2, yaz3, etc).  So, in Mono, the way that the framework makes calls to native libraries through PInvoke is to look for the linked file and then start checking the following locations for the following file names (using yaz3.dll as the example):

  • Application Path/yaz3.dll
  • Application Path/yaz3.dll.so
  • Application Path/libyaz3.so
  • Application Path/lib/yaz3.dll
  • Application Path/lib/yaz3.dll.so
  • Application Path/lib/libyaz3.so
  • System/lib/yaz3.dll
  • System/lib/yaz3.dll.so
  • System/lib/libyaz3.so

The problem is a simple one – when yaz is built either by source or package manager, you end up with a shared object called: libyaz.so.  So, the simple solution is to setup a symlink from System/lib/libyaz.so to System/lib/libyaz3.so.  So, on my Ubuntu install, that would be creating a symlink in the following path (/usr/lib/) using the following command:

  • ln libyaz.so libyaz3.so

And that’s it.  Once I made that change, the Z39.50 client started working as expected, and now this information has been documented so I can make sure it makes it into the INSTALL.txt file.

Cheers everyone,