SIL LSDev Linux Development

Language software for Linux and Mac OS X

Translation Editor running on Linux!

TE Draft View of Jonah in Sena

Today was a milestone. We demonstrated the Linux version of FieldWorks TE to a group of people at the office chapel time. It worked well enough for the demo, in that it wasn’t slow and didn’t crash, and the people were impressed :-)

Progress has been very rapid in the past month or two, for several reasons, but today was the first time that we felt TE was ready to show to others. It was helpful to have the extra incentive of a scheduled demo for the final push to get things working on a non-developer machine.

Read the rest of this post…

A significant milestone

As a result of the breakthrough described in the last post, Brent was able to get a sample application running (HelloView.Net). It’s written in C#, runs on Mono, and uses the FieldWorks infrastructure packaged as COM objects. In particular, it uses the Views component of FieldWorks, one of the key pieces of the infrastructure, and this is the first time that Views has ever run on a non-Windows platform.

Read the rest of this post…

A long-awaited breakthrough

Our porting work depends on having a link from C# to C++ using COM. This is a fundamental requirement, and without it we cannot proceed. Although we’ve had this working in small test programs for a long time, it would crash badly when we tried it with our application (WorldPad, part of FieldWorks). We were fairly sure it was something we were doing wrong, but could never pin it down. Well, now Tom and Brent have found the solution!

Read the rest of this post…

Graphite and OLPC

It may not have been obvious from the last two posts, but we are taking steps towards getting Graphite working on the OLPC. Read the rest of this post…

Our own OLPC

We’ve just received our own OLPC hardware, through the beta programme. It is an XO B2. The hardware is really nifty, although surprisingly heavy. The software is still a little rough in places, but continues to improve at an amazing rate.

We’ll be experimenting with it in all kinds of ways, but the real reason for having it is so that we can try porting various pieces of our software to it and see how well they work on it. In particular, we’d like to see how Graphite performs there.

Linux Developers’ Conference

This coming week (May 14-18) we are holding a conference in Calgary for Linux and Mac developers involved with language software development in SIL.

We have 14 people attending, 9 of them from out of town. There are quite a number of others doing Linux and Mac language software development in SIL who were extended an invitation but were unable to come.

Our list of discussion topics for the week is here.

How to avoid being prompted for your ssh passphrase all the time

We use ssh a lot, especially for access to our source code repository (currently CVS). We use a public key system with ssh, and most of our server accounts don’t have a password at all; they can be accessed only with a key.

For security, we ask people to protect their key with a passphrase. However, it is very inconvenient to have to type in the passphrase on every single access to the repository. The solution to this is to use an ssh agent, but finding out the best way to do this isn’t all that clear from the documentation.

Read the rest of this post…

Makefiles that use build products from other Makefiles

I’ve found what I think is the best way to use build products from another Makefile (”remote dependencies”). You want two things:

  1. To rebuild the current target if the remote dependency has changed
  2. To rebuild the remote dependency whenever this is needed

For example, suppose you are writing a test program for a library, libFoo.a, and that the test program is in a subdirectory of the directory where libFoo is built. Read the rest of this post…

Updating the nVidia kernel module when upgrading your Debian kernel

I’ve found it a big pain that Debian typically upgrades its kernels without upgrading commonly-used kernel modules at the same time. The result is that I have only a text login after the next reboot. Now I’ve found a relatively painless solution that works well every time.

Read the rest of this post…

The look and feel of cross-platform user interfaces

Someone just asked me,

What’s the best way to do a cross-platform product that has the native XXX look and feel?

It depends on exactly what you mean by native look and feel. There are several GUI toolkits that produce the right pixels, so that in a screen shot it would look just like an XXX application, but which still don’t produce an application that feels right. For example, on Mac, if you select a range of text and then press right-arrow, what happens? The insertion point should move to the right boundary of the previous selection. However, on Windows, it typically moves one character beyond that point. I find this inconsistency very frustrating in several of the cross-platform apps that I use regularly.

Also, applications may have the right pixels for all the individual controls, but the overall layout of their UI doesn’t feel comfortable for an XXX user. The classic example is the relative ordering of OK and Cancel buttons in dialogs. Most toolkits now take care of this transparently, but there are other things, such as the extent to which toolbars are used, that can be uncomfortable for users. For example, Mac applications typically use toolbars very sparingly, and Windows apps use them extensively.

Read the rest of this post…

« Previous Entries