WeSay, Palaso, and Linux

Author cambell | 29.05.2009 | Category WeSay

Feeling in somewhat of a reflective mood I thought I'd write about the current state of our work with Linux, and have a look at where we hope to go in the next few months.

Over the last few months (er year) we've been working on getting our applications to run on the Ubuntu Linux platform.  We are hoping that this will enable our applications to be well used on the new breed of net books and other lesser specified machines.  The main work has been centered around the mono project which enables .Net Winforms applications (most commonly a Windows technology) to run on Linux.  So, where are we now?

  • The http://packages.palaso.org repository has been launched to make our software available to you all.
  • WeSay 0.4 (stable) is available from packages.palaso.org.  Install details are on the WeSay Wiki on  projects.palaso.org.  This is an early release and has a number of issues that we know about.  Have a look at the for further information.
  • Automatic USB stick detection now works.  That means in WeSay, you can click backup and expect it to wait for you to put a USB stick into your computer and the backup will 'just work'.

There are a few significant issues that we've noticed and we're working on fixing these up over the next month or two.

  • Keyboard switching doesn't work.  In WeSay we make extensive use of keyboard switching.  If you're editing a field that's say IPA they keyboard should be set to IPA for you.  When you tab to another field with a different writing system the keyboard should change automatically.  We are fixing this by contributing to the SCIM project.  We're extending it's capability to support our Keyboard Switching component.  We expect to have this available very soon.
  • Non Roman Script rendering using Mono doesn't work.  We're fixing this in Mono, by re-writing large chunks of the Text Control.  This will take some time to filter through and become available – perhaps some time in the next three months.
  • The WeSay development branch (0.5.x) doesn't currently work with Mono.  We're working on bringing that up to date so that we can release on Windows and Ubuntu simultaneously.

Once we've finished these issues, we'll be back to focusing on core features of our products rather than enabling Linux to run them.  At that time we'll leave the improvement of Mono and Linux to others.

Well, enough reflecting.  Time to go get a coffee and carry on with the work.

Further details can be found on our various projects at http://projects.palaso.org

More Quick Fixing For SOLID

Author John Hatton | 16.04.2009 | Category Solid

Yes, I'm WALLOWING in a swamp of Standard Format files this week.  Soon we're doing a Lexicography workshop here in PNG, and in preparation, several of the participants are wanting to switch their 20 year-old dictionaries to FieldWorks Language Explorer.  I've offered to get their old SFM dictionaries in, and, Boy am I glad we have SOLID. Since we find it hard to prioritize work on SOLID over our other projects, like WeSay, I decided I should stay sane through this awful job by hacking on SOLID a bit as I go.  I wrote about my first steps yesterday.  Today, with version 0.9.302, we have a few more nice things:

  • Improved QuickFix: MoveUp capability to handle multiple root targets, not just \lx
  • Do alphabetic sort on markers when rebuilding the list.
  • Add “remove empty” quickfix
  • Ask user about saving when they exit.
  • Show marker that is the focus of the filter in bold, to make them easier to find.

Here's a screenshot of the QuickFix dialog at the moment… I know it's ugly, but I'm aiming at making my life easier here…




This last one might make more sense if you only specified which markers to *not* delete.  What would they be?  \sn? \rf?  David Coward, do you read this blog?

You may notice, there's little rhyme or reason to the default options here… it would be a nice contribution if someone in the community would compile a good set for us.  Send 'um  in, and we'll add it to the program.

New Quick Fix for SOLID

Author cambell | 15.04.2009 | Category Solid

One of the most painful parts of cleaning up a dictionary is this kind of situation:

\lx foo

\ps n

\ge blah

\bw German

\gr wanem

Here, the problem is the \bw(borrowed word) is an entry field, but it”s sitting in the middle of the sense fields.

SOLID 0.9.297 adds a minimal “quick fix” which can grab these kinds of fields and pull them up to the top of the entry.  You specify the marker, and the quick fix does it for all the entries.  As the quick fix dialog box says, this is dangerous, and I personally use it only because I also use Mecurial to take snapshots of my changes to files in between actions like this, in case something goes wrong.  But that”s a whole “nother post…

Other changes:

  • You can now click on the “count” table header to sort by marker frequency.
  • Uses the new Palaso system for defining writing systems.
  • Removed the mapping to FLEx, since nowadays, there”s no point.  If you want to use FLEx, either directly import the cleaned-up MDF (preferred), or export a LIFT file and import that into FLEx.

Art Of Reading comes to WeSay

Author John Hatton | 08.04.2009 | Category WeSay

Illustrations always cheer up an otherwise drab dictionary. Until now, you had to put in a lot of work to find or create illustrations, get the rights to them, and hook them into your dictionary. With the latest release of our 0.5 line (build 1917), adding illustrations is a lot more fun.

First, let’s have a visual tour of the new feature. Then I’ll explain about “Art Of Reading”.

To add an illustration, you just go to the Picture field and click “Search Gallery…”:

(Notice that the old “Choose Image File…” is still there. Eventually, we should make that button hidden by default, as it violates our desire to not send the WeSay user into the confusing depths of the file system.)

WeSay looks in the English meaning and uses it to search the gallery for matching illustrations:

Search Dialog

If that doesn’t show you the pictures you’re looking for, you can change the search terms and try again. Once you find the one you want, you double click on it. This closes the dialog and inserts the illustration:

Art of Reading 2.0 is a CD put out by SIL; ask around, someone near you may already have it. If not, you can order it here. From that page:

International Illustrations is the second artwork CD-ROM produced by the International Literacy Department of SIL International. This expanded, enhanced collection is the follow-up to Art of Reading 1.0 and contains over 11,000 indexed images collected from SIL and national artists around the world. Searchable by keywords.

Black and white line drawings (in compressed TIF format for Windows and Mac) are suitable for use in a wide variety of literacy materials, newsletters, bulletin board displays, and other cultural awareness materials.

Images come from Brazil, Cambodia, Cameroon, Canada, Colombia, D.R. of Congo, India, Indonesia, Kenya, Mexico, Nigeria, Papua New Guinea, Peru, Philippines, Senegal, Sudan, Thailand, USA

I’m told there’s a version 3 in the works, which will be a DVD with even more illustrations and an Indonesian index. If/when anyone produces indices for French, Spanish, Portuguese, etc., tell us and we’ll add them to WeSay, too (I suspect you could use a computer translator to generate something useful, quickly). Notice, some of the description of how the package works is irrelevant. The included software is too unwieldy for a WeSay audience. WeSay bypasses that software, keeping the process as simple as you see above.

Get the latest WeSay here. As always, we rely on your feedback here on the blog, on the Google Group, or (if you have a problem) via email: issues at wesay.org.

Thanks to René van den Berg for inspiring this new feature.

Technical Details

  • Instead of leaving the CD in the machine, I recommend you copy it to the user’s hard drive. On Windows, WeSay will look for it at “C:\Art of Reading”. You don’t need anything but the “images” folder, which would be at “C:\Art Of Reading\Images”. When we ship this feature for Linux (soon), we’ll update this page with the corresponding location there.
  • I do not know if WeSay’s index of this package works with Art Of Reading 1.0. It works with 2.0, and should work fine for the forthcoming 3.0.
  • If you have a different image library which you think would be widely used, let us know. It would be great to have one which could be downloaded for free.
  • This feature is the latest (and last) major addition to WeSay 0.5, our “development” release. Projects created or edited in 0.5 cannot be opened with WeSay 0.4, our “stable” release as of the date of this posting.

Collecting audio with WeSay

Author John Hatton | 07.01.2009 | Category WeSay

For a long time, I’ve had the crazy idea that audio should be just another kind of “writing system”. I’m happy to say that now, crazy or not, you can set up a project to like this:

Notice the circles there? They’re trying to be unobtrusive. When you move the mouse near, they light up:

As long as you hold the mouse button down, your voice is recorded. Like a walkie-talkie. Then, the symbol changes:

and when you go near that, you have a play and a delete button:

How is this useful? For one thing, as electronic dictionaries become more common, wouldn’t it be nice to hear the word or example sentence? This might also be helpful for language learning, by gleaning the sounds and dictionary file to create listening exercises.

How to set it up

In the configuration tool, go to Writing Systems and make a new one called “voice”. Then set the “is audio” switch to “true”.

Now go the Fields section, and tick “voice” next to any field you want to include this voice capability.

Note, you could have multiple voice writing systems, carrying different accents, genders, whatever.

Please, let us know if you have a chance to play around with this, and any experiences you have using it with a native speaker.

This is currently available in our 0.5 line, for Windows only. Linux could follow soon, especially if we hear from you.

Technical Details

All sounds are saved as .wav files under a new “audio” subfolder of your WeSay project. Their names are a bit unwieldy at the moment, largely to keep the code simple as long as this is still a proof-of-concept. Files are named as the form of the word a time stamp, so that multiple recordings in the same word (or homograph) don’t step on each other.

Single Click Printing

Author John Hatton | 07.01.2009 | Category WeSay

In my last post, I mentioned that three levels of printing WeSay dictionaries are taking shape:

  1. Useful for everyday WeSay users, with no training.
  2. Good enough for final publication of many projects, with a little training or computer savvy.
  3. Powerful enough for any project, perhaps needing a specialist.

In that post, we covered #2, at least for Windows users. Now I’m pleased to announce a big step towards #1:

Click this, and a few moments later your PDF reader (e.g. Acrobat) opens with a dictionary:

Our aims for this feature are limited:

1) provide a Linux (as well as Windows) way to get simple printouts. (Lexique Pro is Windows only).

2) provide a very simple way to get printout when no computer-savvy advisor is available to run a more extensive set of applications (like Lexique Pro Microsoft Word).

Currently, the fields that this outputs are limited to:

  • Headword (from Lexeme Form and Citation Form). Multiple writing-system headword are supported.
  • Definition
  • Part of Speech
  • Top level senses (not sub senses)
  • Example sentences, and translations of them
  • Illustrations, auto-captioned to the headword of the entry
  • Cross references

We can easily add to the capabilities here, at you request. But we may be resistant to any enhancements which involve wizards, dialogs, etc. For that kind of control, you really need to use Lexique Pro, FLEx, or MDF. In other words, the request “I need to get borrowed words” would be implemented quickly, whereas “I want control over the placement of the illustrations” will not.

Future Work

Depending on feedback from you, gentle reader, we could do more interesting things here. These include

  • automatically ordering pages for booklet printing
  • a title page
  • a section of words categorized by semantic-domain
  • a reversal section
Technical details

As with Lexique Pro export, WeSay begins by producing a PLIFT file, which is a simplified copy of your LIFT dictionary file. It then converts this to html (like web pages use), and produces style sheets (industry standard css3 ones). Finally, it uses a terrific page-layout engine named PrinceXml to produce the pdf. The stylesheets are:

  • autoLayout.css
  • autoFonts.css
  • customLayout.css
  • customFonts.css

If you are so inclined, you can edit the to “custom” ones. This has the effect of overriding the styles in the “auto” ones. In this way, the technical user has full control. You can also setup the dictionary the way you want using FieldWorks Language Explorer’s dictionary export function, which gives you extensive control over many aspects of the layout. WeSay’s html uses the same style names as FLEx, so you can grab the css that FLEx creates and use that for your “customLayout.css” when using WeSay. If you do any of this kind of thing, please let us know. We really need to know what people are using, and what they aren’t.

Have you read this far? Leave a comment. I’m not clear if folks in the language documentation community actually read blogs.

Open In Lexique Pro

Author John Hatton | 06.01.2009 | Category WeSay

WeSay really wants to focus on gathering data. It really doesn’t want to become a full-powered dictionary layout system. Ideally, there would be an invisible, friction-free means of getting a simple dictionary printout at the click of a button, and customized one with a couple clicks. And perhaps a 3rd, ultra flexible, standards based, high-end dictionary publisher where that is called for.

So we’d have

  1. Useful for everyday WeSay users, with no training.
  2. Good enough for final publication of many projects, with a little training or computer savvy.
  3. Powerful enough for any project, perhaps needing a specialist.

These three scenarios are all now in the works from various SIL software teams, and I’ll blog about them as they become available to WeSay users.

Today, I’m please to update you on #2, the growing interoperability of WeSay and Lexique Pro. Lexique Pro is a high-regarded, free dictionary tool for MS Windows. From the LP web site:

Lexique Pro is an interactive lexicon viewer and editor, with hyperlinks between entries, category views, dictionary reversal, search, and export tools. It’s designed to display your data in a user-friendly format so you can distribute it to others.

Starting with version 3, LP can directly read the LIFT-standard xml files which WeSay uses. No need to go through the “standard format” or “MDF” first.

Starting with version 0.5 (our current development track), opening your dictionary with Lexique Pro got really easy:

You can get the latest WeSay here. Lexique Pro 3.0 is currently a beta, available here. With the 31 Oct beta of LP, at least, there are a number of things still to be worked out, but I expect we’ll see first-rate LIFT-based printing in LP this year.

Technical details

When you click this button, WeSay actually writes out a modified form of your LIFT file to the “exports” subdirectory of you WeSay project. While it is still compliant LIFT, some preprocessing is done to help printing programs show the right things. For example, homograph numbers are computed, headwords calculated, and any fields you have turned off for the current user are stripped from this file. We refer to this kind of file as “PLIFT” for “publication” lift.

Which WeSay?

Author John Hatton | 06.01.2009 | Category WeSay

Our approach to software development requires that we “ship early, ship often”. We listen carefully to you, and try to quickly respond to your requests (though at this point, we’re way behind on many requests for new capabilities).

The down-side of this approach was that the newest version is not always the safest. We don’t have any “testers”, so if a release had great, sweeping new features, it could come with related bugs.

This has now changed. We now make two versions available to you. One is the safest (”stable release”). The other has the latest stuff (”development release”). If you are checking out WeSay’s capabilities or willing to help guide us, you want the dev release. If you are deploying WeSay to less computer-savvy or less network-connected users, you want the stable release.

When we hear of a serious bug, we will normally fix it on both releases. New features and non-serious bugs only get added to the development release. Make sense?

To make it easier to track which is which, we use the old Linux-kernel numbering approach. The stable track uses even numbers, the development track uses odd ones.

Our current “stable” releases are 0.4, and the “dev” releases are 0.5. And remember, there are new versions, especially of dev releases, several times a week. So if it’s not too inconvenient, it helps if you can check with a recent release before reporting problems. Thanks!

New Dashboard

Author John Hatton | 05.01.2009 | Category WeSay

It’s been a wild year for our team, and if all you do is follow this blog, you’d think we disappeared.  Eric has moved to Microsoft (lucky them!), I’ve moved from Thailand to the USA and then Papua New Guinea, and two new guys have joined our team in Thailand.  Amidst all that, I’ve fallen behind in blogging about our progress.  In this post and others which should follow shortly, I’ll try to catch up.

Starting with version 0.4, we’ve changed the “dashboard” you see when WeSay opens up.  With this change, we get more on the screen, lessening the need to scroll down.  Also, the new design organizes tasks into groups so that users can have a sense of the workflow.   Some of this will become more clear as we add tasks to the various sections.

You can see from this screenshot that we have some work to do on this still… the Word List task should display a “progress indicator” like we see in the second row.  “Review” and “refine” are two more sections, which I hope to see populated in the future.

WeSay on the Eee 900

Author John Hatton | 26.08.2008 | Category WeSay

The Eee is, so far, the best selling of the new wave of “4P” computers; laptops which are characterized by low Price, adequate Performance, portability, and low electrical Power requirements.  Now, this is no OLPC; it costs around $500 and isn’t as rugged. It does not aim at the same ultra-low power usage. But it does have two things over the OLPC today: you can buy them on Amazon and you can get them with Windows XP.  (Yes, sadly we’re still waiting on some open source pieces to mature on the Linux side before we can get WeSay running on the OLPC and other Linux boxes).

So, how would WeSay run on this relatively slow (900 Mhz), relatively low-wattage machine?  Getting Windows installed and running, the Eee felt very sluggish.  Because of delays, I found it easy to make errors when using a web browser.  Very slowly, I grabbed .net 3.5 sp1, then WeSay build 1451.  Very slowly, I ran the installer.  By this time, I wasn’t expecting to have a happy WeSay experience.

To my surprise, WeSay runs GREAT on this box! Changing records, finding words, and bringing up new tasks were all pretty snappy.

WeSay on an Eee PC 900

Note: I only did a quick walk-through using the sample data, so please don’t go out and purchase a hundred Eee’s to run WeSay based on this blog post.