Sep 7 2007

MarcEdit 5.1 posted

Yikes!  This has been a long time coming.  I’ve had MarcEdit 5.1 ready for quite a while but responsiblitlies with LibraryFind and other projects has pushed this off my plate for a little bit.  However, I’ve finally got this out.  So what’s been done. 

  • Biggest change: MarcEdit now uses .NET 2.0.  This was a big change that allowed me to take advantage of a much more robust XML parser in the .NET framework.  It’s much faster on larger files, though is slightly slower on smaller files (given some of the additional overhead). 
  • New interface changes.  I’ve been trying to find a way to make the menuing easier.  Hopefully this will be the start of some of those changes.
  • XML API Changes:  This was an interesting change.  The new .NET 2.0 framework utilizes a parser that takes an xslt file and compiles it to code.  This means that some XSLT functions cannot be used given the necessity of the compiler to optimize the xslt code.  The main element that cannot be used is the xsl:strip command.  Fortunately, it’s not one that I seen made use of often within XSLT crosswalks. 
  • 64-bit windows support: There are some quirks in how the .NET framework handles api interactions between 64 and 32 bit systems.  In previous versions of MarcEdit, the program would crash out openning files in the MarcEditor (differencies between the sendmessage api between the two systems) and the Z39.50 client (the yaz dll which MarcEdit uses is a 32 bit component so cannot be loaded by a 64-bit process).
  • Regular expression support for more functions (Find for example)
  • Lots of code changes to let MarcEdit run better with Mono.  BTW, for those wanting to take a crack and running MarcEdit through Mono (understanding that there are lots of windowing issues) please find the post here.
  • Looser licensing.  I’ve always wanted MarcEdit to be used by pretty much anyone for development without restriction.  The license reflects that. 

Anyway, you can download the new version of MarcEdit from the following locations:

Anyway, now that I have some free time again, I’ll be spending some more time working on MarcEdit again adding requested items that didn’t make it into this build.  One thing I’m considering is adding formalized support for UNIMARC conversions (i.e., the ability to move data seemlessly between UNIMARC and MARC21), though I’ll have to see if there’s any interest.  So if you have any requests, let me know.

 

–TR


Sep 7 2007

MarcEdit 5.1 + Linux (and Mac) Part II

So, I’ve been doing a bit of house cleaning over the past week going through the code and making sure that no windowism remain in the codebase (i.e., stupid things, like directory slashes, assumptions as to how programs execute (obviously, with mono I need to get path information, creating an “installer” to set application/folder paths after “installation”).  So far, so good.  I would say that I’m 99 percent where I want to be.  I have everything working (including the Z39.50 client) though the window redrawing issues are a real pain.

Known Issues:

  • Window sizes:  The status window, some textboxes, etc.  Things that are redrawn depending on window sizes are sometimes slightly off on linux (maybe Mac).  Using windows-based Mono, everything works like a peach.  Using non-Windows mono and things get wonky.  I’m not sure if it’s because I’m using an older version of Cairo (the graphics engine) or not.  Anyway, I think that Mono and .NET use slightly different values for pixels because the grids should be the same.  It’s cosmetic, but certainly is annoying.
  • Z39.50 — this will work – but you need to set some environmental variables.  I should create an sh file.  Maybe next update. 
  • Threading differences:  MarcEdit 5 uses a thread pump to allow process to be run in the background so most things (not all) won’t freeze up the application (or interface).  Mono seems to work a little differently.  The pump works — but not as well.  So you might see more occasions where the window becomes unresponsive until the task finishes.  It doesn’t appear to be a big deal, but its something I’m paying attention to.
  • Icons — I honestly am not quite sure how Mac and Linux do their shortcuts.  I’m going to do a quick web search and if I find the info quickly, I’ll make sure they get created on the user desktop.  If not, users will need to create their own shortcuts.

I think that’s it.  Everything seems to be 100% functional — though I notice screen redrawing is occasionally wonky.  Also, you will want to take advantage of the preview mode in the Editor — in Windows, the Richtextbox has a streaming interface which greatly improves speed and memory footprint.  Mono may have something equivalent, but I haven’t figured it out yet.  Lastly, I’ve started testing Mono 1.2.5 (tests had been conducted on 1.2.4).  It seems to fix some of the window redrawing problems, so hopefully this will continue to be true during my testing. 

Anyway, if you want to try it, feel free.  I don’t really consider this completely ready for prime time mostly due to the redrawing issues and some fragility – but I’m sure this will improve as MONO continues to improve.

 

–TR