User talk:Davewa

From OLPC
Revision as of 09:07, 25 April 2008 by Davewa (talk | contribs) (Starcharting!)
Jump to: navigation, search
Hello Davewa, and Welcome to the OLPC wiki!

I hope you enjoy browsing and want to stay. As a first step, you may wish to read our introduction.

If you have any questions, feel free to ask me at my talk page — I'm happy to help. Or, you can ask your question at the main talk page.


Here are some more resources to help you as you explore and contribute to our education project:

Finding your way around:

Need help?

How you can help:

Additional tips...

  • Please sign your messages on talk pages with four tildes (~~~~). This will automatically insert your "signature" (your username and a date stamp).

  • If you would like to play around with your new Wiki skills the Sandbox is for you.

Good luck, and have fun. ----Sj talk 17:47, 24 April 2008 (EDT)

Starcharting!

I'm a fan of the activity myself :) I note via olpcn you're finding development frustrating -- I'd like to know more about what in particular troubles you, particularly with internationalization. I take it you haven't used gettext before for the i18n part... that's the toolchain you want to use to generate pot files that can be localized by others (see pootle for more). --Sj talk 17:53, 24 April 2008 (EDT)

Hi, Sj!

I'm new to just about everything with respect to the XO -- I used UNIX (BSD 4.2) back in the 1980s, but I've never had a Linux box before. Python is a programming language I'd never even heard of until I got into 3D modeling as a hobby (it's used as the scripting language in Poser and Blender) but I'd never written in it or even looked at Python code until last December. I've never had to do any actual i18n and I'm only vaguely aware of what's what in that area. Therefore, I have a really steep learning curve.

Professionally, I program applications for Windows in C++ using the Microsoft Foundation Classes GUI library and in Java using the swing GUI. I'm chief architect and primary developer for a million-line project and I've got nearly 40 years experience as a programmer and hardware designer. I was deeply involved in the Heathkit Users Group community in the 1975 - 1985 period, contributing newsletter articles and programs.

I want to help develop activities for the XO, but I came in in the middle of the third act. The wiki is really hard to use as a learning tool -- it's not organized and a lot of the information seems to be either outdated or proposals for things that are either abandoned or yet to be developed. I find more useful tidbits by clicking on the "random page" link than I do by running down a chain of pages in what appears to be a logical order.

The "beyond hello world" page was really helpful, as was the handbook from OLPC Australia and the article from IBM. But I've yet to find out what an Activity class *is*, for example. Yes, I found the PyDoc pages, so I know what the class's methods ARE. But I don't know what that MEANS. I got my code going by careening off of bugs, not by designing working code.

It's been a real struggle, partly because I had to learn Python as I went, partly because I had to learn GTK as I went but mostly because I had to learn the Activity paradigm by trial and error. Example: I was completely surprised when I finally managed to group my options controls into toolbars to discover that rather than having a set of four rows of controls at the top of my screen I had one row of controls and four tabs. Because NOWHERE did anything say that that was the consequence of a call to ActivityToolbox.add_toolbar(). "What it is" is not the same kind of documentation as "what it does" which is not the same as "when and how to use" -- if you're going to do an open project and expect outsiders to be productive contributors, you need to have all three kinds of documents. (And also "where to find"!)

With respect to i18n -- would it really be that hard to provide an example of developing an internationalized version of "hello world" with the whole i18n infrastructure in it (which means calls to gettext in the code, I guess, but also the changes in the activity subdirectory structure and the translation files)? And an explaination of which files the programmer provides and which ones are part of the l10n process? I think I know what strings in StarChart needs to be translated but I don't have anything to go by for setting up the structure needed for translation.

I'm sorry if I seem to come across as negative and needy. I really want to be able to help this project and about all I am qualified to do is write code. I am an amateur astronomer and have a good grounding in the physical sciences, so activities involving basic astronomy, physics, chemistry or electronics are things I can probably go off and write. I want these activities to be "good citizens" in the Sugar community -- Python as the implementation language and built to look like and work like they were supposed to run under Sugar, not simply Sugar-ized at the last minute. But I need some examples and a lesson plan to get up to speed.

Thanks for your time. Davewa 09:07, 25 April 2008 (EDT)