party hat
( Feb. 9th, 2010 03:35 pm)
There is a tool I look after called ProjectJournal which is used to publish the Metacity Journal posts.  I am considering releasing it, because some people have expressed an interest.

One of the things it does is list all the people who have contributed translations to a project recently.  At the moment, it looks like this (apologies for the old example, but it was the first I found):
  • On branches/gnome-2-22: en_GB by pwithnall, es by jorgegonz
  • On trunk: es by jorgegonz
Things I should perhaps fix about this include
  • writing the translator's full name rather than their username
  • maybe making the translator's name a link to their home page if I had it
  • writing the full name of the language rather than the ISO 639 code
  • alternatively, displaying an icon next to the language-- but it's not obvious what icons to use.  Some people use flags to represent languages, but of course this is rather broken because there's no 1-1 mapping between flags and languages.  Wikipedia uses icons which incorporate the ISO 639 code, which makes it seem hardly worthwhile using icons at all.  I feel this is a bit of a minefield and probably one we should stay out of.
What do you think?
Tags:
There is an idea in literature called the motif of harmful sensation. For example, if you look at Medusa, you will turn to stone from the very experience. If you read a book called The King In Yellow, you will go mad simply from the sensation of reading it. If you hear the joke "Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!" you will die, as long as you understand German.

Well, apparently the Sinatra song My Way should be added to the list. Being around anyone singing this song will apparently get you killed.
Today is Candlemas, also called Imbolc. It reminds me of this poem from the sequence I wrote for Fin a few years ago:

Another green to show you grow, you thrive;
Out from the snow the snowdrop breaks in flower.
Who could have called this sleeping bulb alive?
Yet buried patiently it waits its hour,
Counting the snowflakes slowly settling
Their weight upon the heavy earth above;
One day its Winter changes to its Spring.
Who can predict the power of life and love?
  Hope that at last the final frost is dead.
  Faith that the Winter dies and Spring shall rise.
  Love for the life that up through blades has bled.
  Joy to a hundred children's waiting eyes;
For every hour it slept beneath the ground
A thousand wondering eyes shall gather round.
party hat
( Jan. 30th, 2010 04:46 pm)


Of course now it's a trivial matter to make Firefox in other phonemic scripts; I wonder if Boing Boing would be interested in Firefox in Tengwar...
Tags:
party hat
( Jan. 29th, 2010 10:06 am)
Wearing: Orange fleece, tshirt with Collabora logo (the company I work for), blue jeans, no shoes.
Reading: In the Land of Invented Languages by Arika Okrent, a slightly early birthday present from [profile] floatyfish.
Writing: Current fiction WIP is eight chapters in, about 11,000 words. I really want to see how it turns out. However, it's on one side because I'm supposed to be writing a tech book and I was up until 2am last night finishing a chapter.
Planning: Tomorrow I am 35, but apart from dinner out, I don't think much is planned. On Monday we get to see [profile] floatyfish, which is happy. Other than that I need to tidy the house and write more book. I might play with localising Mozilla as well.
Tags:
What will you do with all that ass
That well your trouser fills?
O I recall the Lord of all
Who made the rounded hills.

What will you do with all that arm
As strong as any faith?
O I recall a Carpenter
Who worked with plane and lathe.

What will you with your bosom fair
So shapely on your chest?
O I recall the Holy Ghost
Who dwells within my breast.

To Father, Son, and Holy Ghost
One God whom we adore;
You got me spending all my days
In praise for ever more.

Amen.

Feeling much better today than yesterday.  Had a doctor's checkup in the morning, which went reasonably well.  Work is being particularly enjoyable.  Later we went to the gym.  And Alex made quesadillas, which are a great talent of his.  I read another chapter of The Neverending Story to Rio.

I have released a reworking of Lingua::EN::Alphabet::Shaw.  It's a great improvement.

I think I will not do the valentinr thing this year.  I probably already know the people who love me, and if after all you want to declare anything, you have my email address. :)

Tags:
party hat
( Jan. 24th, 2010 11:41 am)
The program which will eventually become rfk 1.40 is here, and the source is here. I would like some people to playtest it. Changes:
  • you can move around by tapping parts of the screen, rather than tapping with respect to robot's position; this is more like the iPhone port (which I haven't played); this change suggested by Will Thompson
  • portrait mode
  • kitten is on the front screen
I would like to know
  • whether portrait mode is playable, in general
  • whether it would make more sense to spin the board around 90° instead of pivoting it in place
  • whether there are too few spaces on one axis to make it easily playable in portrait mode
  • why the GtkLabel with the message on it on the front screen does not expand to the full height of the window in portrait mode (I'm sure I'm missing something obvious here)
  • whether you think a picture like this one would be better for the front page
  • anything else you find
Thanks for your help, everyone who is helping.
Tags:
party hat
( Jan. 22nd, 2010 03:59 pm)
If any of you are running Windows 7, with the Aero Snap feature on, and wouldn't mind answering a few questions about it, I 'd like to talk to you.  Some people would like the same functionality in Metacity, and I want to be sure I understand how it works.
This week: Collabora have been supporting me in working on Metacity over the last week or so. I began by trying to get the CSS themes branch merged, but then decided that a better use of my time would be patch review, especially given the impending feature freeze. Here's a partial list of some of the things I've touched; I'll update it for this week when this week's over.

ProjectJournal: Producing the Metacity Journal and other Metacity blog posts has been a helpful record of people's work on the program, but blogging about the project does tend to drive out actual maintenance and development. For this reason, a while ago I wrote a program called ProjectJournal which would prepare Metacity Journal posts automatically.

ProjectJournal used to scan IMAP folders for Bugzilla notifications and svn checkins. It would then output a list of bugs that had been touched, files that had been modified, and translations that had been made, as well as any hits for the name of the project on Google Blog Search, add a photo, and then post it as a draft to blogs.gnome.org. Then a human (me) would come along and tidy it up and write the introduction, resulting in posts like this one. It was a neat hack, and saved a lot of time, but it's rotted because it was never rewritten to work with git. Also, Bugzilla should be queryable directly now, though ours isn't at a version where the API supports queries, so it would have to be done with a screen-scraper. Ugh.

What I'm wondering is whether any of you would be interested in using such a tool for your own projects, if I resurrected and modernised it. Do let me know.

(For several months there was also a daily Bug of the Day post, but although that was fun and got the community discussing the issues, it didn't help the time I had available for coding. Perhaps the project needs someone who likes writing better than coding, a sort of public recorder. Or perhaps I could carry on doing it if there were many other people writing the code.)

Posts that might interest you: In case you're not reading the Metacity blog, here are some interesting posts from the last week:

Feel free to dive in on the discussions. Feel even more free to volunteer to write patches for some of these; I'll try to give you all the help you might need.

Podcast: At one point I used to record myself reading all the Metacity blog posts (such as this one). I'm not sure whether I should bring this feature back, or what should happen to it further if I did.
Today it occurred to me that there is also a fifth option to my pondering of the other day: keep it on the command line, and write it in Perl.  I already have a Shavian transliterator in CPAN which could do with an overhaul.  Most of the file formats it would need to read also have code to read them (although .po support is kind of iffy).  And command-line tools built in Perl can be easily distributed over CPAN, as ack has shown.

The problem of updating the wiki is then easily fixed because we can use CPAN's support for the MediaWiki API, and upload a list of the missing words to a user's userspace on the wiki.

One thing I'd like to get right in my head before I start is where the database would go.  Currently, the CPAN Shavian transliterator keeps it with other Perl data in /usr.  But it would be really useful to be able to check for updates from shavian.org.uk and download them, without constant updates of the CPAN package.  So maybe the data should go in ~/.cache/shavian ?

Someone is apparently already using the name "Sparkle" for a free software project, so maybe I'll rename this to "makeshaw" or something.

Tags:
(written while waiting for a compile; this is me thinking aloud...)

Earlier, I mentioned my existing tool to transliterate into the Shavian alphabet, and my thoughts of doing it as a web tool rather than tidying up and releasing the existing command-line stuff.  There are four ways I can see of doing this:
  1. Make it almost entirely separate from the wiki.  You would upload your translation catalogue, and the page would let you specify how you wanted it transliterated, and then download the result.  The only connection with the wiki would be the ability to specify transliterations of each word which would then be rolled back into the wiki.
  2. Allow people to upload catalogues to the wiki, but then convert it to wiki markup.  In this case, we would have a system which could turn various formats of translation catalogue into standard MediaWiki markup, and another system which would turn them back; then there could be a bot which updated the MediaWiki text.  This would mean that hand-editing would be fairly easy, but brings in the great nuisance of writing the conversion systems.
  3. Allow people to upload catalogues to the wiki, and treat them as files.  MediaWiki allows file storage, which is usually used for images.  It's turned off on the Shavian wiki, but it could be turned on for translation catalogues.  Then all the faff of making the system upload and download things would be done for us.
  4. Allow people to upload catalogues to the wiki, and treat them as text.  After all, they are text.  This idea means that there would be a separate namespace for translation catalogues within wiki pages, such as Translation:Metacity.po.  The system would probably render all these as a message saying "Please view source", at least until I got around to a system to render the various catalogue formats to HTML.  Then a bot controlled from a separate page could easily update them to change the Shavian transliteration, and the files could be hand-edited without too much difficulty.
I think I like the fourth option best.

In other news, part of this journal (the part tagged "nimyad") is now on the conlang aggregator; I am pondering the idea of a "Planet Shavian".
Tags:
  • Androcles and the Lion, Shaw Alphabet Edition (the hardback, not the paperback as in that video)
  • Knuth's Art of Computer Programming
  • Advanced CORBA programming with C++ (not sure what that's doing there)
  • The X Window System, Scheifler & Gettys
  • Elements of New Testament Greek
  • The Sidney Sussex College Annual
  • Thoughtcrime Experiments
  • The Scheme Programming Language
  • Ender's Game
I think I should sort them better.
Tags:
Some people have asked on CONLANG-L whether it's possible to translate free software into constructed languages. I said I would put some instructions together, and people were interested, so here goes.

Caveats:
  1. This is about the free desktop. It will describe how to localise GNOME or KDE. I don't know anything about how to do this on the Mac or on Windows, so my advice to you will consist approximately of "please install Ubuntu".
  2. Be sure you know what you're letting yourself in for. There are about 45,000 strings which need translation in GNOME, although you can get a decent effect by translating only a few thousand. Then there are the applications themselves on top of that.
  3. If you're translating into a language which uses characters which don't appear in Unicode, I'm going to assume you've already made your computer able to display them. Matters such as designing a character set, getting space in CSUR, and building fonts are outside the scope of this tutorial.
  4. This is just enough to get you going; I'll be cutting some corners and waving my hands around some of the difficult bits.
  5. Before we start, you should have both the "gettext" package and the Gimp installed.
  6. What I'm going to say is true for most programs, but a few have their own way of doing things.  Firefox is one of these.
Here's what we're going to do: we'll change the titlebar of the GNU Image Manipulation Program (the Gimp) to display in a conlang. Since I'm writing this, I'll translate the titlebar into my own conlang, Nimyad; work out what it is in yours before you go on. Bear in mind that "GNU" is a proper noun and should not be translated.

The phrase "GNU Image Manipulation Program", rendered in Nimyad, is "dajath GNU camimoth lirinanen", or in the con-script:



Next we'll need an ISO 639 code. These are rather difficult to come by for conlangs (even Toki Pona was rejected), but fortunately the codes between qaa and qtz form a private use area. We'll say that Nimyad is qny; pick one of your own and use it in what follows.

Now you need the translation template for the Gimp. You can get it here; click the green arrow next to "POT file" and it will download. Now rename the gimp.master.pot file to qny.po and open it in a text editor. (Don't use Emacs for this; it tries too hard to be helpful and will confuse you.) Find the lines which say

msgid "GNU Image Manipulation Program"
msgstr ""

This means that the string "GNU Image Manipulation Program" is translated to nothing at all. That's not very useful yet, so put your conlang's translation in there, after the msgstr, between the quotes. Save the file.

Now we need to compile the .po file into a .mo file, which is the format that the programs themselves can read. Run: msgfmt qny.po

If it worked, you will have a file called messages.mo in the current directory. If it didn't, make sure you did in fact install the "gettext" package!

Create the locale directory: sudo mkdir -p /usr/share/locale/qny/LC_MESSAGES
and move the file in: sudo mv messages.mo /usr/share/locale/qny/LC_MESSAGES/gimp20.mo

Finally you'll need to create all the locale data other than the actual language. You can just base that off another locale, such as en_GB, for now: sudo localedef -v -c -i /usr/share/i18n/locales/en_GB -f UTF-8 /usr/lib/locale/qny/

It will probably throw up a lot of errors, which you can ignore at the moment.

When you have a fair number of strings translated, it will make sense to run in the qny locale all the time.  But for now we'll just run it as needed.  So: now at last you're ready to type: LANG=qny gimp&

And you should see:



Well, that's one string down, 45,000 to go.  You see that the strings which haven't yet been translated fall back to US English.

Finally: now that you've seen how easy translation is, if you happen to speak any of these languages, please consider contacting the translation team and offering your help.

Let me know if you have any questions!
Tags:
I have a number of versions of the Shavian transliterator around (a program that can be used to make Shavian-alphabet versions of programs). The most general of them is a tool called Sparkle. It does .po files, and in theory files in Mozilla's formats and .srt subtitles files.

I was thinking of packaging up Sparkle in case anyone else wants to use it, since it's pretty useful to me.

However, there's the question of what happens to words found during translation which aren't in the dictionary. At the moment, it spits out an HTML page with links to the dictionary pages so you can fill them in. That requires you to load the page in your browser and follow each link, which isn't very helpful. I was also thinking of making it able to output a simple XML file, where you could fill in transliterations; then it would have a switch to read the file back and update the wiki using the MediaWiki API. That's kind of clunky, though.

There is another solution: I could just add an HTML front end and make Sparkle into a web tool instead. You'd be able to upload translatable files, press a few buttons, and download them again in Shavian (or another altscript, at your choice); you'd also be given a list of words to fill in which weren't found in the dictionary, and they would be added to the wiki automatically.

I'm not sure who else would use such a tool, though, in either of its possible incarnations. Let me know if it would be interesting to you.
Tags:
Someone was asking about this, so I thought I would write it up here. I apologise in advance if I'm telling people things they already know.

Computers don't deal with letters directly. Instead they give a number to each letter. This number is called a "codepoint". The most famous set of numbers is ASCII, which only contains 127 codepoints. For example, 65 in ASCII is "A", and 90 is "Z".

Not so long ago, computers were only capable of dealing with codepoints between 0 and 255. For that reason, when people wanted to use symbols outside ASCII, they either had to use codepoints between 128 and 255 (which ASCII didn't define), or re-use the ASCII codepoints.

Constructed scripts tended to re-use the ASCII codepoints. For example, 65 was simultaneously the Latin letter A, the Shavian letter Ash, and the Unifon letter At. The problem then was that you had to tell the computer somehow whether you were using the constructed script or ASCII. You can do this by switching the font, but it's a bit of a nuisance, and there is no way to construct a single font containing both the ordinary alphabet and the constructed alphabet.

Scripts from natural languages often used the vacant space between 128 and 255, which wasn't quite as bad, but there were two problems. One: scripts like Chinese don't fit in the space. Two: even for scripts that did fit, you could only use one at once. You couldn't mix Latin-alphabet, Hebrew-alphabet, and Cyrillic-alphabet text in the same document, at least not without changing the font in the middle.

Various solutions were proposed, but eventually everyone got together and invented Unicode, which is a bit like ASCII but hugely larger, with hundreds of thousands of codepoints. Now the Latin, Cyrillic, Hebrew, Chinese, and all the other alphabets could have their own sets of codepoints and there would be space for everyone.

Some constructed scripts were also given their own space in Unicode. For example, Shavian has the codepoints between 66640 and 66687. Other constructed scripts were not given space in Unicode, although perhaps they will one day: there's a lot of space free.

However, there is a space in Unicode, between codepoints 57344 and 63743, which is for "private use". Michael Everson has been allocating space here for constructed scripts, so that nobody steps on one another's toes. (Since Mr Everson is very busy, someone else is also running an addendum to his list.)

In Mr Everson's list, Unifon has been given the codepoints between 59200 and 59239 (U+E740 to U+E767 in hexadecimal notation). Given a font with the correct characters at these codepoints (I have one), an entire page of text can be set in the same font and include both Unifon and Latin-alphabet characters (as well as Shavian, Arabic, Hebrew, Chinese...) Since web pages can now embed fonts which will be downloaded by browsers, this means that everything can be done simply, with a single font.

The disadvantage here is that it is no longer possible to type in the Latin alphabet and pretend it's Unifon (or Shavian, or whatever). Instead, you need to set up an input method on your computer, just as you would if you wanted to type in Greek or Russian. It's like graduating to become a "proper" alphabet within the system.
If anyone would like to test Maemo robotfindskitten 1.40, please let me know.

Changes in v1.40 will include:

1) (done:) kitten is on the front page as well as robot

2) (done:) portrait mode!!


3) (done:) rather than taps on the screen being interpreted with respect to robot's position, the screen is divided into parts as with the iPhone port (which I haven't played). This idea is from Will Thompson.

4) (done:) optification (doesn't affect most users except that they will have slightly more free disk space)

5) (still to be done:) help will be in-process using gtkhtml, rather than launching the browser.

I need to know whether the new controls are usable, and whether portrait mode is easily playable. I also want to know whether it's less disorienting for the board to turn 90° in portrait mode, or to stay as it is but be stretched.

v1.40 will not include the ability to edit non-kitten items, unless someone says they really want this feature.

The current known bug, which will be fixed by release time, is that the front screen is too cramped in portrait mode.
I gave Fin her Valentine's present this morning. The present was a chapbook, a book of 31 of the poems I've written for her over the last few years. They are mostly sonnets and triolets, with a villanelle thrown in at the end.

But you may be wondering why I'm giving Valentine's presents in January. Fin has said that I can sell the book on Lulu and give the royalties to the Haiti relief efforts being run by Médecins Sans Frontières. The book is here; the royalties are $3 per copy, all of which will go to the earthquake relief.

If you would rather all the money went to MSF and none to Lulu or the post office, make a donation directly (in the US, go here; in the UK, go here; otherwise, go here), then tell me about it (marnanel at gmail.com), and I'll send you a PDF.

Please feel free to spread the word, if you have friends who like this kind of thing.

Edit: There is currently a sitewide 20% discount code, CABIN.
.

Profile

party hat
Monument

Syndicate

RSS Atom

Most Popular Tags

Powered by Dreamwidth Studios

Layout Credit

Layout:
[personal profile] phoenix