Teaching FLEx in Malaysia

In October, Becky and I were invited to present FLEx at the Universiti of Malaysia, Sabah as part of a workshop for compiling native dictionaries and managing cultural data. I learned a lot about dictionaries, about using FLEx to organize dictionary data, about Webonary and about Malaysia.

One of the things this workshop helped me to clearly articulate was that there are four knowledge content areas which dictionary creators need:

  1. Knowledge about Theoretical Linguistics to understand the language being described and the categories possible in the dictionary.
  2. Knowledge about the language being analyzed and described so that they can apply the appropriate options available to this situation.
  3. Knowledge about how to manage the editorial process for the dictionary (including entry submission).
  4. Knowledge about how to use the software to implement the editorial process.

This workshop’s focus was only on the software used to implement the editorial process (mostly the data collection part of the editorial process). So in some ways it felt like we weren’t giving the participants all the tools they will need (or even showing them all the tools they will need). But we had to realize that it is not our responsibility to give them all the tools they need or to expose them to these issues. They need local contacts for that. Regardless of these issue we were still ecstatic that there were about 80 people in attendance.

About 80 people

Opening Cerimonies at UMS

Becky took most of the sessions on FLEx. She presented on using FLEx as a tool for collecting words and various things about words. We covered several input methods and features in the application.

Becky talking about FLEx as a tool

Becky helping people doing exercises

I presented a session on explaining how to get data out of FLEx. We talked about putting dictionary data on the web and turning it into .epub files.

Hugh presenting on getting things out of FLEx

I think one of the more interesting things that I learned was about expectations, culture and photographs.
Many people wanted photographs with us (or of us). This is not totally unexpected. What was unexpected was that rather than taking one photo and sharing it (passing it around), everyone wanted their own picture. Not their own picture with us but a picture with us made with their own camera! It was in that moment that I had an epiphany. Having training in Language Documentation I am aware and concerned with rules and laws concerning privacy. In the U.S. when dealing with issues of informed consent and intellectual property, it can not be assumed that if I want to take a picture of you that I, the owner of the camera, own the picture. Furthermore it can not be assumed that I have the right to do with that picture as I please. i.e. Post it to the internet. This may be in part that our laws are based on our semantics. It may be in part our culture. But there I realized that if the photo is taken with your camera you own the photo. You can do with it as you please. The asking for permission is that you have asked for permission to take the photo.

Taking our picture

Taking their picture, while they were taking a picture of us. Since he who owns the camera, owns the picture...

I took this last picture at about the same time I had the epiphany.

Presentation version vs. Archival version of Digital Audio files

What is an archival version of an audio file?

An archival version of an audio file is a file which represents the original sound faithfully. In archiving we want to keep a version of the audio which can be used to make other products and also be used directly itself if needed. This is usually done through PCM. There are several file types which are associated with PCM or RAW uncompressed faithful (to the original signal) digital audio. These are:

  • Standard Wave
  • AIFF
  • Wave 64
  • Broadcast Wave Format (BWF)One way to understand the difference between audio file formats is understanding how different format are used. One place which has been helpful to me has been the DOBBIN website as they explain their software and how it can change audio from one PCM based format to another.

Each one of these file types has the flexibility to have various kinds of components. i.e. several channels of audio can be in the same file. Or one can have .wav files with different bit depths or sampling rates. But they are each a archive friendly format. Before one says that a file is suitable for archiving simply based on its file format one must also consider things like sample rates, bit depth, embedded metadata, channels in the file, etc. I was introduced to DOBBIN as an application resource for audio archivists by a presentation by Rob Poretti. One additional thing that is worth noting in terms of archival versions of digital audio pertains to born digital materials. Sometimes audio is recored directly to a lossy compressed audio format. It would be entirely appropriate to archive a born-digital filetype based on the content. However it should be noted that in this case the recordings should have been done in a PCM file format.

What is a presentation version? (of an audio file)

A presentation version is a file created with a content use in mind. There are several general characteristics of this kind of file:

  1. It is one that does not retain the whole PCM content.
  2. It is usually designed for a specific application. (Use on a portable device, or personal audio player)
  3. It can be thought of as a derivative product from an original audio or video stream.

In terms of file formats, there is not just one file format which is a presentation format. There are many formats. This is because there are many ways to use audio. For instance there are special audio file types optimized for various kinds of applications like:

  • 3G and WiFi Audio and A/V services
  • Internet audio for streaming and download
  • Digital Radio
  • Digital Satellite and Cable
  • Portable playersA brief look a an explanation by Cube-Tec might help to get the gears moving. It is part of the inspiration for this post.

This means there is a long list of potential audio formats for the presentation form.

  • AAC (aac)
  • AC3 (ac3)
  • Amiga IFF/SVX8/SV16 (iff)
  • Apple/SGI (aiff/aifc)
  • Audio Visual Research (avr)
  • Berkeley/IRCAM/CARL (irca)
  • CDXA, like Video-CD (dat)
  • DTS (dts)
  • DVD-Video (ifo)
  • Ensoniq PARIS (paf)
  • FastTracker2 Extended (xi)
  • Flac (flac)
  • Matlab (mat)
  • Matroska (mkv/mka/mks)
  • Midi Sample dump Format (sds)
  • Monkey’s Audio (ape/mac)
  • Mpeg 1&2 container (mpeg/mpg/vob)
  • Mpeg 4 container (mp4)
  • Mpeg audio specific (mp2/mp3)
  • Mpeg video specific (mpgv/mpv/m1v/m2v)
  • Ogg (ogg/ogm)
  • Portable Voice format (pvf)
  • Quicktime (qt/mov)
  • Real (rm/rmvb/ra)
  • Riff (avi/wav)
  • Sound Designer 2 (sd2)
  • Sun/NeXT (au)
  • Windows Media (asf/wma/wmv)

Aside from just the file format difference in media files (.wav vs. .mp3) there are three other differences to be aware of:

  1. Media stream quality variations
  2. Media container formats
  3. Possibilities with embedded metadata

Media stream quality variations

Within the same file type there might be a variation of quality of audio. For instance Mp3 files can have a variable rate encoding or they can have a steady rate of encoding. When they have a steady rate of encoding they can have a High or a low rate of encoding. WAV files can also have a high or a low bit depth and a high or a low sample rate. Some file types can have more channels than others. For instance AAC files can have up to 48 channels where as Mp3 files can only have up to 5.1 channels.

One argument I have heard in favor of saving disk space is to use lossless compression rather than WAV files for archive quality (and as archive version) recordings. As far as archiving is concerned, these lossless compression formats are still product oriented file formats. One thing to realize is that not every file format can hold the same kind of audio. Some formats have limits on the bit depth of the samples they can contain, or they have a limit on the number of audio channels they can have in a file. This is demonstrated in the table below, taken from wikipedia. This is where understanding the relationship between a file format, a file extension and a media container format is really important.

Audio compression formatAlgorithmSample RateBits per sampleLatencyStereoMultichannel
ALACLossless44.1 kHz to 192 kHz16, 24[41]?YesYes
FLACLossless1 Hz to 655350 Hz8, 16, 20, 24, (32)4.3ms - 92ms (46.4ms typical)YesYes: Up to 8 channels
Monkey's AudioLossless8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48 kHz??YesNo
RealAudio LosslessLosslessVaries (see article)Varies (see article)VariesYesYes: Up to 6 channels
True AudioLossless0–4 GHz1 to > 64?YesYes: Up to 65535 channels
WavPack LosslessLossless, Hybrid1 Hz to 16.777216 MHzvaries in lossless mode; 2.2 minimum in lossy mode?YesYes: Up to 256 channels
Windows Media Audio LosslessLossless8, 11.025, 16, 22.05, 32, 44.1, 48, 88.2, 96 kHz16, 24>100msYesYes:Up to 6 channels

Media container formats

Media container formats can look like file types but they really are containers of file types (think like a folder with an extension). Often they allow for the bundling of audio and video files with metadata and then enable this set of data to act like a single file. On wikipedia there is a really nicecomparison of container formats.

MP4 is one such container format. Apple Lossless data is stored within an MP4 container with the filename extension .m4a – this extension is also used by Apple for AAC audio data in an MP4 container (same container, different audio encoding). However, Apple Lossless is not a variant of AAC (which is a lossy format), but rather a distinct lossless format that uses linear prediction similar to other lossless codecs such as FLAC and Shorten. Files with a .m4a generally do not have a video stream even though MP4 containers can also have a video stream.

MP4 can contain:

  • Video: MPEG-4 Part 10 (H.264) and MPEG-4 Part 2
    Other compression formats are less used: MPEG-2 and MPEG-1
  • Audio: Advanced Audio Coding (AAC)
    Also MPEG-4 Part 3 audio objects, such as Audio Lossless Coding (ALS), Scalable Lossless Coding (SLS), MP3, MPEG-1 Audio Layer II (MP2), MPEG-1 Audio Layer I (MP1), CELP, HVXC (speech), TwinVQ, Text To Speech Interface (TTSI) and Structured Audio Orchestra Language (SAOL)
    Other compression formats are less used: Apple Lossless
  • Subtitles: MPEG-4 Timed Text (also known as 3GPP Timed Text).
    Nero Digital uses DVD Video subtitles in MP4 files

This means that an .mp3 file can be contained inside of an .mp4 file. This also means that audio files are not always what they seem to be on the surface. This is why I advocate for an archive of digital files which archives for a digital publishing house to also use technical metadata as discovery metadata. Filetype is not enough to know about a file.

Possibilities with embedded metadata

Audio files also very greatly on what kinds of embedded metadata and metadata formats they support. MPEG-7, BWF and MP4 all support embedded metadata. But this does not mean that audio players in the consumer market or prosumer market respect this embedded metadata. ARSC has in interesting report on the support for embedded metadata in audio recording software. Aside from this disregard for embedded metadata there are various metadata formats which are embedded in different file types, one common type ID3, is popular with .mp3 files. But even ID3 comes in different versions.

In archiving Language and Culture Materials our complete package often includes audio but rarely is just audio. However, understanding the audio components of the complete package help us understand what it needs to look like in the archive. In my experience in working with the Language and Culture Archive most contributors are not aware of the difference between Archival and Presentation versions of audio formats and those who think they do, generally are not aware of the differences in codecs used (sometimes with the same file extension). From the archive’s perspective this is a continual point of user/submitter education. This past week have taken the time to listen to a few presentations by Audio Archivist from the 2011 ARSC convention. These in general show that the kinds of issues that I have been dealing with in the Language and Culture Archive are not unique to our context.

The Complete Audio Package

The Complete Audio Package

Working on a Dynamic Left Menu Bar

It seems to be that the logical place to have a context based and role based menu would be on the left side. That being the assumption, the question is how to go about it, what does it contain, why does it need to change, when should it change.

I have been looking at several widgets and custom field plugins. Some of these deserve a deeper look. We might even should take a deeper look at how we are implementing custom fields and our plugin so that we have an abstraction layer.

Layering for custom fields in plugin

Here are some plugin in options which seemed to be able to handle some of this complexity.

There are really three places that custom field need to be used: so this post is not just about a dynamic left side bar. It is about a dynamic left sidebar that is run off of values in custom fields in the main post. So this post is talking about approaching custom fields with the best strategy.

  • Just Custom Fields for WordPress plugin: This plugin adds custom fields for standard and custom post types in WordPress. After installation you will see simple settings page which is self-explanatory to use.

    I found two Posts about this plugin to be really helpful: http://justcoded.com/just-labs/just-custom-fields-for-wordpress-plugin, and http://justcoded.com/implementation/wordpress-3-vs-drupal-cck/.

  • One of the ideas for the left side bar is to have a listing of related content. Related content could be all the files which belong in a single audio package, or all the digital files belonging to a physical item.
    This is where Related Widgets Plugin For WordPress comes in. The Related Widgets plugin for WordPress introduces multi-use widgets that allow you to list related posts or pages. To use the plugin, browse Appearance / Widgets, insert a Related Widget where you want it to be, and configure it as appropriate. You can optionally filter the results by category or section.
  • List Related Attachments: List Related Attachments is a sidebar widget that will display a list of filtered attachments related to the current post. This might be useful in one of two ways: listing associated content, depending on how we implement it. Or listing the photos on the right-hand sidebar.
  • Custom Field Template: This plugin adds the default custom fields on the Write Post/Page.
  • Custom Field List Widget: This plugin creates sidebar widgets with lists of the values of custom fields. The listed values can be (hyper-)linked in different ways. One possibility is to create a list of all values of a custom field, which will be groupped by their post (or page) and (hyper-)linked automatically to this post (or page). Another possibility is that you can create a list of all unique values of a custom field and specify links as you like (or not).
  • Get Custom Field Values:
    Get Custom Field Values allows the admin to use widgets, shortcodes, and/or template tags to easily retrieve and display custom field values for posts or pages.
  • Advanced Custom Fields:
    Advanced Custom Fields is the perfect solution for any wordpress website which needs more flexible data like other Content Management Systems.
  • Easy Custom Fields:This is a set of extendable classes to allow easy handling of custom post fields. https://wordpress.org/extend/plugins/easy-custom-fields/
  • Advanced Custom Field Widget: The Advanced Custom Field Widget is an extension of the Custom Field Widget by Scott Wallick, and displays values of custom field keys, allowing post- and page-specific meta sidebar content.
  • Custom Post Template: Provides a drop-down to select different templates for posts from the post edit screen. The templates replace single.php for the specified post.https://wordpress.org/extend/plugins/custom-post-template/

WordPress Custom Fields, Part I: The Basics : http://perishablepress.com/press/2008/12/17/wordpress-custom-fields-tutorial/

Custom Post Type UI: Admin UI for creating custom post types and custom taxonomies in WordPress.
https://wordpress.org/extend/plugins/custom-post-type-ui/

Plugins Awry

On Oct 24th I updated some plugins and then I could not access the back end of my WordPress install. Some sort of plugin in conflict. I posted a request for help to the forums. Some one pointed me where to go and I was able find my way into fixing my site. (Server 500 Error and blank pages when I tried to load the back end. But the font end loaded just fine.) I wanted to grab the code that I deleted from the database before I deleted it forever. So I thought I would post it here as a record of what I had running when I encountered the problem. (Something like 76 plugins running…) This was really the most detailed work I have done with PHPMyAdmin… I am shocked how comfortable I have become with the app.

a:76:{i:0;s:37:"wp-system-health/wp-system-health.php";i:1;s:25:"activelink/activelink.php";i:2;s:45:"add-link-to-facebook/add-link-to-facebook.php";i:3;s:37:"admin-ip-watcher/admin-ip-watcher.php";i:4;s:19:"akismet/akismet.php";i:5;s:57:"better-extended-live-archive/af-extended-live-archive.php";i:6;s:29:"better_links/better_links.php";i:7;s:31:"blogcopyright/BlogCopyright.php";i:8;s:17:"cforms/cforms.php";i:9;s:41:"comment-connection/comment-connection.php";i:10;s:39:"custom-taxonomies/custom-taxonomies.php";i:11;s:40:"download-monitor/wp-download_monitor.php";i:12;s:23:"email-log/email-log.php";i:13;s:21:"exec-php/exec-php.php";i:14;s:35:"exploit-scanner/exploit-scanner.php";i:15;s:37:"extended-profile/extended-profile.php";i:16;s:49:"facebook-status-for-wordpress/facebook_status.php";i:17;s:35:"fancybox-for-wordpress/fancybox.php";i:18;s:25:"find-me-on/find-me-on.php";i:19;s:33:"flickr-gallery/flickr-gallery.php";i:20;s:23:"footnotes/footnotes.php";i:21;s:21:"fotobook/fotobook.php";i:22;s:49:"genki-youtube-comments/genki_youtube_comments.php";i:23;s:50:"google-analytics-for-wordpress/googleanalytics.php";i:24;s:36:"google-sitemap-generator/sitemap.php";i:25;s:37:"hcard-commenting/hcard-commenting.php";i:26;s:19:"hrecipe/hrecipe.php";i:27;s:38:"hreview-support-for-editor/hreview.php";i:28;s:27:"in-the-loop/in-the-loop.php";i:29;s:22:"infolinks/infolink.php";i:30;s:35:"inline-tag-thing/InlineTagThing.php";i:31;s:19:"jetpack/jetpack.php";i:32;s:44:"jquery-collapse-o-matic/collapse-o-matic.php";i:33;s:25:"k2-hook-up/k2-hook-up.php";i:34;s:47:"mappress-google-maps-for-wordpress/mappress.php";i:35;s:30:"mendeleyplugin/wp-mendeley.php";i:36;s:32:"micro-anywhere/microAnywhere.php";i:37;s:15:"mycss/mycss.php";i:38;s:23:"net_bible/net_bible.php";i:39;s:30:"no-self-ping/no-self-pings.php";i:40;s:27:"php-code-widget/execphp.php";i:41;s:29:"plugin-notes/plugin-notes.php";i:42;s:55:"query-multiple-taxonomies/query-multiple-taxonomies.php";i:43;s:21:"raw-html/raw_html.php";i:44;s:27:"redirection/redirection.php";i:45;s:27:"role-scoper/role-scoper.php";i:46;s:27:"root-cookie/root-cookie.php";i:47;s:27:"simple-tags/simple-tags.php";i:48;s:38:"simplemodal-contact-form-smcf/smcf.php";i:49;s:30:"smart-youtube/smartyoutube.php";i:50;s:29:"stp-importer/stp-importer.php";i:51;s:47:"subscribe-to-comments/subscribe-to-comments.php";i:52;s:25:"subscribe2/subscribe2.php";i:53;s:61:"syntax-highlighter-and-code-prettifier/syntax-highlighter.php";i:54;s:39:"syntaxhighlighter/syntaxhighlighter.php";i:55;s:33:"tabbed-widgets/tabbed-widgets.php";i:56;s:38:"tags-2-meta-generator/em-tags2meta.php";i:57;s:47:"term-management-tools/term-management-tools.php";i:58;s:27:"theme-check/theme-check.php";i:59;s:35:"tinymcecomments/tinyMCEComments.php";i:60;s:23:"tpc-vcard/tpc-vcard.php";i:61;s:37:"twitter-importer/twitter-importer.php";i:62;s:37:"twitter-mentions-as-comments/tmac.php";i:63;s:31:"twitter-tools/twitter-tools.php";i:64;s:47:"wikindx-macro-plug-in-for-wordpress/wikindx.php";i:65;s:35:"wikipedia-autolink/cf_wikipedia.php";i:66;s:38:"wordpress-mobile-edition/wp-mobile.php";i:67;s:26:"wp-footnotes/footnotes.php";i:68;s:21:"wp-hresume/wphres.php";i:69;s:27:"wp-paginate/wp-paginate.php";i:70;s:25:"wp-recipes/wp-recipes.php";i:71;s:23:"wp-resume/wp_resume.php";i:72;s:33:"wp-security-scan/securityscan.php";i:73;s:35:"wp-social-links/wp-social-links.php";i:74;s:39:"wp-table-reloaded/wp-table-reloaded.php";i:75;s:42:"yet-another-related-posts-plugin/yarpp.php";}

This tutorial show how to use a SQL statement to access the needed table.

Criticism Persistence

A few weeks ago I found a few really helpful tips on how to avoid being criticized. To think that all these years I could have lived without being criticized.

Nine Easy Rules to Avoid Being Criticized

  • Rule 1: Always strive to please others and agree with everybody
  • Rule 2: Do not attempt to change people’s minds
  • Rule 3: Do not try a new idea or pursue any worthwhile goal
  • Rule 4a: Conform to established ways of doing everything
  • Rule 4b: Never step a foot away from the path of convention
  • Rule 5: Follow the crowd; stand for nothing unique
  • Rule 6: Let the world shape you; be who others want you to be
  • Rule 7a: Accept life “as is” and never examine the status quo
  • Rule 7b: Believe whatever you are told without checking evidence
  • Rule 8: Do not say, attempt, or do anything contentious or imaginative
  • Rule 9: Do not say, attempt, or accomplish anything at all

As I read these I was reminded of the Think Different campaign by Apple, Inc a few years back. I have always been inspired by the comercial. Perhaps I have always identified with not giving into the status quo. I think my Dad instilled in me a desire for excellence and doing better. This was something that Steve Jobs talked about too. He said we don’t ship junk. It makes a lot of sense: Be profitable, be honorable. Love what you do. Do what is right. Never stop learning.

Here’s to the crazy ones.
The misfits.
The rebels.
The troublemakers.
The round pegs in the square holes.
The ones who see things differently.
They’re not fond of rules.
And they have no respect for the status quo.
You can praise them, disagree with them, quote them,
disbelieve them, glorify or vilify them.
About the only thing you can’t do is ignore them.
Because they change things.
They invent. They imagine. They heal.
They explore. They create. They inspire.
They push the human race forward.
Maybe they have to be crazy.
How else can you stare at an empty canvas and see a work of art?
Or sit in silence and hear a song that’s never been written?
Or gaze at a red planet and see a laboratory on wheels?
We make tools for these kinds of people.
While some see them as the crazy ones,
we see genius.
Because the people who are crazy enough to think
they can change the world, are the ones who do.

Using Time Machine Buddy to solve Error 11

Time Machine is a life saver. I was backing up a machine recently and error was thrown. Indicated in a form like this message (this message occurs on a machine running Lion and I am running Snow Leopard 10.6.5).

Error From Time Machine

Due to the suggestions by James Pond , I found that there was a widget called Time Machine Buddy . I downloaded the widget and it told me what the offending file was. I deleted the file and happily backed up the rest of my drive. I don’t know what caused Error 11 or exactly what that is but, the deletion of the file, which was not crucial to keep, allowed me to continue.

Admin Panel of the Plugin

Needs to be able to:

  1. Define the Metadata Values
    • Do they have controlled vocabularies?
    • What kind of input will they use?
  2. Define the work Stages
    • Including sub-work stages
  3. What are the Metadata Values in each Stage
  4. What are the help texts for each Metadata question
  5. What is the Part shown for the Keys?
  6. Does the Plugin create a special Browse Page?

Wire Frame of plugin in admin panel