Something that comes up a lot is the lack of key combinations or pathways to using functions in MarcEdit. I’ll admit, the program is very mouse heavy. So, as part of the accessibility work in MarcEdit 7, I’m taking a long look at how access to all functions can be accommodated via the keyboard. This means that for MarcEdit 7, I’m mapping out all keycode combinations (the ALT+[KEY]) paths and the more traditional shortcut key combinations) for each window in MarcEdit. When it’s finished, I’ll make this part of the application documentation. Before I get too far along, I wanted to show what this looks like. Please see: http://marcedit.reeset.net/software/MarcEdit7_KeycodeMap.pdf
I’m continuing to flesh out new wireframes, and one of the areas where I’ll be consolidating some options is in the preferences window. I’ve decided to reorganize the menu and some of the settings. Additionally, I’m adding a new setting: Ease of Access.
Here’s the Initial Wireframes demonstrating the new menu layout
Ease of Use:
This is a new section developed to support Accessibility options. At this point, these are the options that I’m working on:
While MarcEdit will respect the operating system’s accessibility settings (i.e., if you’ve scaled fonts, etc.), but these settings directly affect the MarcEdit application. In this section, you’ll find the themes (and I’m working out a way to provide a wizardry way to create themes and find ones that have been created), feedback options (right now, if this is selected, you’ll get audible clicks letting you know that an action has occurred), and Keyboard options. I’m spending a lot of time mapping the current keyboard options, with the intention that I’ll try to map all actions to some keyboard combination. These settings tell MarcEdit if this information should show up in the Tooltips, as well as rich descriptions about an operation. The last thing that I’ll likely add is a set of links to topics for users looking for accessible friendly fonts, etc.
I think that the reorganization should help to provide some clarity in the settings and will help me in thinking about the first run wizard – and hopefully the currently planned accessibility options will provide users with a wider range of options.
I’ve been working a bit more around this notion of creating “themes” to improve visible accessibility options. This started with an initial implementation that included the default interface and then a High Contrast interface. Over the past few days, I’ve been getting a wide range of feedback, and one of the things that is becoming apparent is that folks would like to have a wide range of preferences. So, this afternoon, I spent time taking the hardcoded default and high contract themes, and rewriting all non-default UI implementations as themes.
When I think about theming, I immediately start thinking about the operating system themes, or themes that you can download for browsers. At this point, we aren’t talking about anything quite so complex. In fact, until I get feedback, I’ll be keeping theming light weight – but I think that in the long run, this might actually make them more useful.
How do they work? Essentially, a theme is going to be the implementation of an XML file. Here’s the dark (high contract) theme written out in the new xml theme structure.
<?xml version=”1.0″ encoding=”utf-8″ ?>
<theme> <name>Dark (High Contrast) Theme</name> <global> <!–Use HTML web color codes for these values–> <font_color>#ffffff</font_color> <background_color>#000000</background_color> </global> <marceditor> <font_color>#000000</font_color> <background_color>#ffffff</background_color> </marceditor> <overrides> <!– Override values <menus> <font_color> <background_color> </menus> <links> <font_color> <visited_font_color> <behavior> [set to always, hover, none] </links> –> </overrides>
As you can see, the initial implementation of theming is very limited. Essentially, users can theme font color and background colors globally, at the MarcEditor level, and override options for menus and links found within the program. This may (and likely) will be extended prior to the release of MarcEdit 7, but I don’t anticipate it being enhanced a lot. While the new GUI rendering engine makes this kind of work easier, I don’t want to develop an entire rendering process around this method until I know there is more than a passing interest.
What this means, however, is that I can quickly create new themes. Right now, I’ve implemented this in the Options dialog. You can see the current line of thinking below:
Using the Main Windows of MarcEdit 7 as the example page, I’ll run through the current themes that I’ve marked up:
Default Theme (hardcoded):
Dark (High Contrast) Theme:
Dark Gray Theme:
All these themes were created using the theming xml files. As I say, if I get feedback, I’ll look to expand this as we move towards the official release.
An interesting request made while reviewing the Wireframes was if MarcEdit 7 could support a kind of high contrast, or “Dark” theme mode. An Example of this would be Office:
Some people find this interface easier on the eyes, especially if you are working on a screen all day.
Since MarcEdit utilizes its own GUI engine to handle font sizing, scaling, and styling – this seems like a pretty easy request. So, I did some experimentation. Here’s MarcEdit 7 using the conventional UI:
And here it is under the “high contrast” theme:
Since theming falls into general accessibility options, I’ve put this in the language section of the options:
However, I should point out that in MarcEdit 7, I will be changing this layout to include a dedicated setting area for Accessibility options, and this will likely move into that area.
I’m not sure this is an option that I’d personally use as the “Dark” theme or High Contrast isn’t my cup of tea, but with the new GUI engine added to MarcEdit 7 with the removal of XP support – supporting this option really took about 5 minutes to turn on.
The changes aren’t big – they are really designed to make the form a little more compact and add common topics to the screen. The big changes are related to integrations. In MarcEdit 6.x, when you run across an error, you have to open the validator, pick the correct validation option, etc. This won’t be the case any longer. When the tool determines that the problem may be related to the record structure – it will just offer you option to check for errors in your file…no opening the validator, not picking options. This should make it easier get immediate feedback regarding any structural processing errors that the tool may run up against.
MARC Tools Window Wireframe #1:
The second write frame collapses the list into an autocomplete/autosuggest options, moves data around and demonstrates some of the potential integration options. I like this one as well – though I’m not sure if having the items in a dropdownlist with autocomplete would be more difficult to use than the current dropdown list. I also use this as an opportunity to get ride of the Input File and Output file labels. I’m not sure these are always necessary, and I honestly hate seeing them. But I know that iconography maybe isn’t the best way to express meeting. I think attaching tooltips to each button and textbox might allow me to finally let these labels go.
MARC Tools Wireframe #2:
Based on feedback, it sounds like the labels are still desired. So here is wireframe #3 with a slight modification to allow for labels in the window.
While I’ve got a couple of clean up things to do with MarcEdit 6.x, I’ve been starting the process of revising MarcEdit 7.0.0.alpha. At this point, there is a version running new code. I’ve spent the past few evenings reorganizing the main window, pulling some things apart, and beginning the process of redoing code. So far, this what’s been completed:
New MarcEdit 7 Main window:
This is what the main window looks like. I’ll be creating a 4 column interface. Scaling works much better than in the previous version of MarcEdit, as I’m using a different layout engine. The topics in the top – those are wide open. These were the ideas I thought of as short cuts to either help pages or parts of the program. In some cases, I’ll be creating “wizards” that answer each of these questions so users get pointed in the correct direction (at least, that’s the plan). In working through this interface, you’ll notice the menus have changed. This means that menu entries have changed a lot (location wise). I’m going to be looking at setting up shortcut keys to everything for keyboard access, but here’s the new layout I’ve drawn up:
You’ll notice many menus now have secondary menus – MARC Processing Tools for example, now includes all items like MARCSplit, MARCJoin, etc. This moves items down a level, and I realize that’s not what you always want to do. I’m hoping that what will help with this is the help textbox on the right hand corner.
This is in MarcEdit 6.3.x, and is being expanded in MarcEdit 7. If you, for example, type the words Join – you will be able to open MARCJoin directly from this window.
Say you want to merge some records…just type – merge records and you get:
An error message you don’t recognize:
Or you just want to know how to get started:
Or maybe, you’ve had a hard day and just want to look at cats:
The help system is being developed to allow for pseudo natural language searching. To start with, it will be English only, but by the time MarcEdit 7 comes out, you should be able to write queries in about any language and hopefully get back useful responses. I’m hoping that users gravitate towards this method of accessing commands or using the keyboard shortcuts, or the new Last Used Tools options so that the menu restructuring doesn’t cause usability issues. But I’m definitely interested in feedback.
The plugin menu works mostly the same as before, with the primary difference being that the plugin manager now is found under plugins (probably should have always have been)
Help menu has been updated significantly. You’ll notice that I’ve moved access to the Hex editor, shorting configuration settings (for when you get a new computer) and the restarting into 32-bit mode to allow for integration with Connexion into this menu. You’ll also notice a new option – the troubleshooting wizard. This is a new tool that walks through a set of questions where you can copy error messages, error numbers, etc. and the tool will point you the right direction or run the correct validation routines for you (so you don’t have to guess). This is something that should improve with feedback, and should be in the first release that I make available to users for testing.
Also, please note that you can see that this version of MarcEdit is being built against .NET 4.6. This means that this version officially won’t run on Windows XP.
The MARCNext and About windows have been dislodged from the main window. This means that if you click MARCNext, it displays in its own window. I did this because it gives me more room to grow this resource a bit easier.
In looking through the program, one of the main activities that I’ll be doing is hopefully addressing UI issues, doing better integration of functionality added during the 4 years MarcEdit was in the 6.x series (from a code perspective, some things are kind of bolted on, rather than integrated) and reduce redundancy. Most folks may not know it, but MarcEdit has 4(!) different z39.50 clients, each using different code, in the program. The Mac version has one, and it does all the things that the 4(!) in the windows version currently does. Those are the kinds of redundancies that I’ll be addressing as I clean the tool.
Oh, and performance. Just moving MarcEdit to the new framework has seen some improvements. Without optimizations, I was testing breaking on a simple file I have of 120,000 random MARC records. After multiple runs and averaging the results, I’m seeing that:
MarcEdit 6.3.x: ~5975 recs / sec.
MarcEdit 7.0.0 ~7213 recs / sec.
Once I start optimizing code, I’m pretty sure we’ll see this continue to improve. The gist here is that by moving the program forward (and dropping XP support), I should be able to finally include a number of tools related to graph processing as well as see a significant speed improvement with the software.
Finally – you’ll notice the icon has changed. I don’t know if this will be a permanent change as I like the current MarcEdit icon (I’ve used it for almost 17 years now). I’ve changed it while I’m developing MarcEdit 7 so that I can tell the difference between the two versions of the software while working on my laptop.
I’ve been thinking about the new UI for MarcEdit 7. I haven’t decided yet if the main window should have the ribbon or keep the menus (menus seem most appropriate for the MARC Tools and Main Window) – but the main thing I wanted to do with the new UI in MarcEdit 7, is to try and find ways to surface tools based on common questions/actions; as well as push the last used tools up. I’ll keep the user defined buttons (I like those, I use them all the time). One of the other things I’ll likely end up doing, presently I keep the MARCNext toolset framed in the main windows (as well as the about window). I’ll be pushing those into their own windows as the way it currently works – it complicates updates. Also, all fonts will be updated from 8.5 point (the default) to 10.5 pt. I’d like to set the default font to the Google Noto Fonts, but distributing the font is out of the question (the font set is 450 mbs in total — but maybe I can include something in the installer to allow users to select this font for download if they want…I’ll have to think about it). With that, I’ll be improving the accessibility functionality so that users can continue to easily update font sizes. In fact, I’ll be changing the window that shows when you first install to be a series of questions (rather than showing the preferences). The questions will be:
Preferred Font/Size: I’ll show current settings and sample of typography
MARC Flavor: You tell me are you using MARC21 or something else
Default Z39.50/SRU servers (you’ll have a list of known servers to select from this way you have servers in the tool at the beginning)
Link to the Tutorials/Help
After this, you’ll have the option to select the preferences and update all of the options. But I’m looking for ways to make this easier so when users install MarcEdit 7 for the first time, you don’t have to look for specific settings (specifically fonts).
Feedback is welcome.
* Note — this wireframe is for the windows/Linux version. Some of these concepts will make it to the MarcEdit Mac version — but I try to keep that development in line with Apples UI recommendations when possible.
As noted this week – I’ve updated MarcEdit 6.3. The updates are as follows:
* Enhancement: Exact Match searching in the Extract, Delete Selected Records tool
* Enhancement: Exact Match searching in the Find/Replace Tool
* Enhancement: Work updates in the Linked data tool to support the new MAC proposal
* Update: Performance improvements in the editor for loading large files faster. This was planned for MarcEdit 7, but I decided to make the change so that the final versions that support XP include this work.
* Update: Context Search additions/improvements
* Bug Fixes including: API updates (streaming function for exporting tab delimited was throwing an error), merge update when using 022$a as a query index, etc.)
* Plugin-framework updates: This requires making a change to the Interfaces that allows plugins and marcedit to speak to each other. I’ll be updating all plugins as a result. Newer versions of MarcEdit will update your plugins automatically
* Accessibility changes (couple forms weren’t scaling correctly with large fonts, large resolutions – this has been corrected)
Please note *you must update any plugins* after this update. If you don’t update, you must *decline* the plugin updates when offered. I had to update the plugin framework, which includes the Interface host file. This should mean anything to anyone, but the gist is, I had to change an assembly signature so once the update happens, you will have to update your plugins. I believe I’ve updated all the plugins that are currently in use. If I’ve missed something, let me know.
I’ll be officially cutting the new branch of MarcEdit 7 for all the code in the project following the next release of MarcEdit 6.3.x. The first thing I’ll be doing is updating all the dependencies to the new version of .NET 4.6.x essentially ending Windows XP support for MarcEdit 7. I’ll be updating namespaces, and prepping the files for a first alpha release. The very early releases will be preview releases for those that code against MarcEdit interested in testing the new namespaces, and for IT folks interested in testing the new installers, as this will also be the first version to include installers that can provide installation either in the current, traditional setup, or as a user. The way I’ll be providing installation will be much the same way google does it. Rather than selecting an download, users will download a single installer (likely an exe). The installer will ask the user if you want to install for everyone (must be an admin) or just for the current user. If you pick everyone, it will check your operating system, and download the appropriate installer. This installer will require that you authenticate as an admin. If you choose just the current user, it will check your operating system and will download the installer to install just within your user space (non-admin). From the users perspective, the program will work exactly the same. I’ll also include some detailed instructions for IT administrators that want to download the MSI files directly – this way folks that manage software via software distribution tools can still do that. Additionally, to make management easier for IT folks, each version of MarcEdit will have its own SKU (or product code). This is important when managing software distribution and one of the reasons most IT folks hate the way Google manages Chrome (all versions share the same ID).
Once MarcEdit 7 alpha is available, I’ll likely post updates to MarcEdit 6.3.x and MarcEdit 7 concurrently until about Sept. 2017. At that point, I’ll freeze 6.3.x. That will be the final version supporting XP, and then will focus on updating MarcEdit 7. Additionally, I’ll likely be posting a few wireframes of how I envision changing MarcEdit 7’s interface. I will be updating the Main Window, the MARC Tools and the MarcEditor. In fact, the MarcEditor will likely shift from the current menus, to the more traditional ribbon interface that you now see in most Windows applications, while the MacOS update will continue to follow Mac UI design guidelines.
Since Summer 2016, troop 73 has known that we would have an opportunity to go to the Philmont Ranch in New Mexico. We had won the lottery, and had 24 spots available to our troop. This means that we had the potential to take 20 kids and 4 adults in two crews out to New Mexico in 2017. And from the moment I found out that we would have the opportunity to travel, I knew that I would go. As one of the Assistant Scout Masters in our troop, I knew that I had the certifications that would be needed to attend…but more importantly, I have a son that would be just the right age to make the trip. At 15, going on 16, my oldest would be the perfect age to really enjoy what this experience had to offer.
Now, I should note, as excited as my son was to make this trip (and he was – he fund-raised nearly all of the $800 camp registration), I was probably more so. Since leaving Oregon, I think I’ve had the hardest time out of my family adjusting to Ohio. I love being outdoors, and while Ohio does have some very nice areas to camp and hike (really, it does), they aren’t the same. I miss the mountains, I miss the forest, I miss the towering fir trees that keep the forests green year round. That was my childhood…it represents some of my favorite memories with my family, with my father. And these were some of the memories that I hoped to build with my son…and hoped to relive a little bit while I spent some time in the mountains.
Preparation for the trip
Over the year, there was a lot of preparation that had to be undertaken. Equipment to be purchased, plans to be made. Some of the preparation was getting the kids ready to carry a backpack for eleven days. Some of the preparation was getting ready to hike for 5 hours every day. Some of the preparation was learning skills that would be required when camping in the back country for eleven days. Lots of preparations.
Then there was personal preparation. I turned 40 this year, and one of the things that I got into my head was that for Philmont, I was going to grow out my beard and hair. Why? Well, it was fun. I haven’t grown a beard in close to 20-25 years, so it would be something different. But it was also somewhat practical. With my hair long, and my beard full, I wouldn’t have to worry about the sun burns that everyone else in my Crew would end up worrying about. So how did it go? Quite nicely. I kept a photo record from Feb. 2017 when I started.
The last picture is in the Chicago Union Station with my son. I was quite pleased with my final Philmont beard.
The trip to and from Philmont ended up taking about 15 days. We travelled to Philmont via the train, travelling by bus from Columbus, OH to Toledo, and then from Toledo, OH to Raton, NM. For many of the kids, this represented the first time that they’d been on a train, crossed the Mississippi River, seen the plains of Kansas….it’s a great way to see the country…particularly the fly over country. On the train, we saw fields of corn, a tremendous lightening storm near Topeka, the snow covered mountains in Colorado, and a bear as we neared Raton. The kids spent a lot of time going to and from the observation train car, and generally enjoying the ride. I took a few pictures of the train trip across the country.
For us, the trip officially started in Raton, NM. This is where the Philmont buses picked us up. When you get to Philmont, everything is crazy. To start with, you have to get registered, there is equipment to pick up…lots of things to get done, including a shakedown with the ranger to make sure that everyone has everything that they will need for the trip. For the kids, this part of the trip is probably the most boring. We spend a lot of time sitting, a lot of time talking to the ranger about bears, bear protocols, snakes, water purification, etc. The ranger spends their time telling us all the terrible things that could happen out in the woods (which is fun, because some of the kids are already worried about bears and snakes) and the adults spend our time trying to keep them from going crazy.
You spend one day in base camp, and then you are on the bus.
For our Philmont trip, we hiked itinerary 9 (http://www.philmontscoutranch.org/filestore/philmont/camping/2017Itinerary/Itinerary/itin_2017_9.jpg). This would take us through Old Abreu, Crags, Beaubien, Black Mountain, the Red Hills, Cyphers Mine, Cimarroncito, Upper Clarks Fork, and then over the Tooth of Time to Base Camp. In all, it was a 61 mile itinerary, though my Fitbit with GPS clocked us way over that mileage. I actually journalled the trip, in part, because I wanted to remember what it was like, and in part, because I wanted to be able to give the parents of the kids in my Crew a taste of what the trip was like for the kids. And it was glorious. We climbed multiple peaks, including Red Hill and Mt. Philips. For almost all the kids, every day represented a new tallest mountain. We camped over 9,000 ft 4 times, over 10,000 ft once. We danced on the Tooth of Time. For many of the kids, it was the first time that they rode a horse, or had an opportunity to rock climb, or walk through an old gold mine. For eleven days, we watched the boys grow, mature, and wonder at the beauty of the New Mexico country-side. And I got to do this with my son – to make stories that only the two of us share through this very unique experience and bond. I know that I’ve been told by every kid in our troop that has done Philmont, that it’s a life changing event. It almost has to be…you are forced to push yourself in ways that you might not have thought possible, and bond with your Crew through this shared experience. But I think that as adults, we get just as much. You can’t help but be transported back to your youth. For me, it took me back to camping with my family, hunting with my dad…it let me slow down and appreciate how lucky I was to be spending this time with my own son.
We took a lot of pictures throughout the trip (hundreds). I pulled a few of our time at the ranch.
Probably my two favorite pictures though happened off the trail. The first is of my crew…
We’d just come off the Tooth of Time, down the Ridge Trail, and into basecamp. We were tired, dehydrated, and excited to be home. We were also a little sad that it was all over. While the kids couldn’t talk enough about what they wanted to eat (trail food definitely gets old and hard to stomach), there was also a realization that we were done and would be going home in a couple of days. It was bittersweet for me as well. While it was nice to have a cot to sleep in, and some real coffee to drink…I really wasn’t ready to be done. Even today, as I write this, I wish more than anything that I could get back out on the trail and just walk in the woods.
The other photo is this one:
This is a picture of me and my son, as soon as we got off the trail. We sent it to my wife…our picture as 2017 Philmont finishers. I’m incredibly proud of him, and what he’s accomplished.
And that pretty much wrapped up our trip. Of course, I’m leaving a lot of things out. I didn’t talk about the poison oak that I got into, and the rash the covered almost my entire body (that was fun), or the numerous trips our crews had to the trail doctors (I did mention, this trip is hard), or the logistics of digging cat holes, or eating trail food and sketchy water for days. No doubt – it’s a challenging trip. I’ve done this kind of hiking before (in the Pacific Northwest), and while Philmont is easier (more controlled), it’s still no joke. But if anyone asks – it is so very worth it. And I’ll be back. I have a date with Philmont in 2020, when I’ll take my youngest son, when he’s 15. And I’m sure the experience will be just as challenging, just as enjoyable, and completely different. And you know what, I can’t wait.