Software Ideas

From OLPC
Revision as of 19:57, 24 April 2006 by Raffy (talk | contribs) (Operating System Selection)
Jump to: navigation, search

Software Ideas

System Software

A version of Touch Typing software to teach these kids to touch type, the faster you can work with a keyboard whatever age you are then the faster you can get on with solving the worlds problems and letting the world know about your solutions... ' eg unjustified government spending on military budgets that will eventully only lead to one thing, more War to justify more spending etc..."

And does someone not need to make clearer in your marketing for support of this project that it does not have to be the same person who turns the crank as types at the keyboard, that there is a shortage of electricity in developing nations not hands to turn cranks?

Operating System Selection

I would like to seriously question using Linux as the basis of the laptop. It's a path of constant tweaking and tuning. Linux is also further away from the "pure" microkernel architectures than the BSDs. In short Linux is like a F1 tuned for racing - but not as reliable. When working on a familiar hardware platform the BSDs become very robust and nice platform to work with. And more importantly without the horrible quality problems of the Linux kernel. FreeBSD kernel is also magnitudes more secure - it just is cleaner and better thought and developed with the focus first on stability and reliablity. Unlike Linux.. The bottom line is that the project has got the possibility to choose from others than just Linux as well. I'd go for Frisbee or mentioned reasons but there are others too.

  • (While I agree that *BSD might be a better option -- perhaps OpenBSD in particular for reasons of stability, et cetera -- I think the disparaging remarks about Linux-based operating systems were poorly conceived, exaggerated, and unnecessary as presented. - Chad Perrin)
  • Indeed: BSD is a good alternative. Another alternative may be an older Linux kernel. The 2.4 kernel line is pretty stable and good also. The current Linux kernel version is 2.6
  • (User-contributed) Yes, the older the Linux kernel is, the more stable it becomes. For example, the current 1.08 version of PuppyLinux is based on the 2.4 kernel, and can confidently deliver satisfactory GUI experience despite the resource constraints in the OLPC machine.


Why UNIX(like) at all?
Recently Negroponte stated that a "slimmer Linux" is needed for the $100 laptop. Like others here, I question why it has to be Linux. But I'll take that notion even further: Why does the OS even need to be Unix or a Unix work alike? Why is Negroponte so bent on Linux? There are other FOSS options that are much more focused on the desktop, yet still have Posix compliance.

  • Haiku-OS is an FOSS implementation of the BeOS tool kits with a FOSS kernel. It maintains binary and source level compatibility with BeOS R5, so all pre-existing free R5 software will work on it. (There is quite a bit)
  • Syllable OS Is a lot like BeOS. (But it's not BeOS) It's getting pretty mature.

Both these options are FOSS. If you really want the Unixy goodness, both also happen to have Posix compliant shells, so much of the Unix CLI stuff is portable. Both have fast native GUI systems and very modern design behind the internals. Both are extremely light weight compared to BSD or Linux + X + desktop env. And if one was really concerned with the stability of the kernel, it might be possible to run one of these alternative environments on top of a BSD or Linux kernel instead of their native kernels.

It might also be possible to buy out the BeOS R5 codebase from Palm Inc. or have them donate it to the project. They don't seem interested in doing anything with it. Then the OLPC project could release the the source under GPL and get help from the Haiku and Yellow Tab guys to whip it into shape for the $100 laptop. I really can't convey how great BeOS or Haiku would be project. It's a perfect match for a system with the $100 laptops specs.

Peer To Peer Distribution, for Electronic Text, Software, Email

Extending the original idea from below... this is more general then just about electronic text, though. In lack of a better term, let me call it "built-in support for non-real-time Internet connectivity", provided as shared service and usable by apps.

For example, I myself often read some web pages that I had downloaded while on the network at home while traveling, disconnected from a network, and of course when clicking on a link you get some stupid technical error message. Why can't the thing remember I want to read the linked page later and "queue" it somewhere? This idea is probably more much more relevant in some OLPC scenarios than it is for myself; what if you are connected to the "Internet by Motorbike" say only once every two weeks, as in the Motoman project in Cambodia?

This applies to many forms of data, from electronic content be it a complete ebook, HTML page, Email or some software to download - or publishing of content such as homepage or blog updates, etc. (I think OneWorld has an XML-based publishing along those lines; but could be confusing it with something else.) Making it possible (and easy!) to request, and publish, data from one device, which then forwards the reqest to another, and ultimately forward to Internet when connected. Doesn't it make you feel like good ol' FIDO Net is back?

Vorburger 20:06, 9 February 2006 (EST)

I believe one of the most useful purposes of the laptop will be to distribute electronic text (i.e. e-books). The distribution of any information without a persistent network connection will be difficult. I imagine a situation where 1 out of 100 or 1000 kids may have access to a network connection. The peer to peer network could be used to distribute e-books from that single network connection to 1000 kids. I'd like to propose the design of a peer-to-peer network client designed specifically for this purpose.

A simple, graphical language-localized client would be designed to present a catalog of e-books. The client would pull down a listing of books available in a certain age-range for a targeted language. The student would pick texts that he or she has interest in. This list of requests would consist of a very small packet of data, perhaps a unique identifier of the device and a unique identifier of the text. When the device sees another device, it would off load it's packet to the peer device and vice-versa. Each device would contain a listing of requests from all of the peers that it came in contact with. The next time a device connects to the Internet, it would pull as many texts as allowable by pre-defined memory limits (say 3-5 meg). As the device comes into contact with other devices, it would deliver the texts to the other devices. Hopefully, over time, the requestor would be delivered some of the texts originally requested. As each text is delivered, a delivery or cancellation notice would be sent back through the peer network.

The peer to peer network should gather performance intelligence over time. It should be able to guess which routes have better chances of making a request and returning a delivery.

If a proof of concept proves to work well, the peer to peer network would be extended to handle two-way communication for interaction such as email or the submission and grading of assignments.

--65.7.133.163 04:41, 27 January 2006 (EST) Jason Hoekstra - jason@solexinc.com


To continue on with what Jason and Volburger said, there is a fundamental conflict in OLPC. On one hand, you need to keep costs down and must therefore have small persistent storage. On the other hand, the purpose of the laptop is for learning, and learning requires the storage of information. What a child needs to learn with is really nothing more than an encyclopaedia and a simple way to navigate it, but it is probably not feasible to store an entire encyclopaedia in the available space, especially if you include multimedia, which you definitely should.

The approach suggested by Jason, which is not a bad one at all, is to retrieve information based on interest. I have some experience in mobile, ad hoc, sensor, and peer to peer networking, and what he's proposing is something similar to rumor routing and directed diffusion. There are a couple of problems with the suggestion, though. The first is that you will likely have a lot more requests for books than space to keep them. In a store and forward network with limited space and unpredicatable mobility, you are unlikely to hang onto enough books that you will be able to satisfy the requests. The second problem is that in all likelihood, some children will have far more Internet access than others, due to geographical location, being able to afford transport, or whatever the case may be. This may form a book distribution tree rooted at a few children with many children as leaves, which will cause significant distribution problems. Basically, a few children will need to store and forward books for a large number of children, and will quickly fill up their space without satisfying many requests. This depends on the particular country and situation of course, but in general, the branching factor and depth of the distribution tree can have serious repercussions on how many of the requests are satisfied.

I personally agree with Jason that a distributed, peer to peer filesystem is necessary. You may only have half a gigabyte of space, but there are a lot of half gigabytes running around, hopefully within a few hops of each other. So step one is that you need a routing protocol to form multihop ad hoc networks. There is a lot of literature on this; look at MobiHoc if you need a starting point. Step two is that you need a discovery protocol to learn what books are available and who has them, the aforementioned catalogue. Note that this catalogue needs to be updated as well, but the updates can be distributed using controlled flooding. And the reason I'm writing this whole thing is that I think you need a decent data (book) dissemination protocol. You are dealing with a sparsely connected network of resource starved nodes, with intermittent connectivity and esoteric mobility patterns. I believe you need some sort of centralised logic, such as a tracker in the Bittorrent protocol. If the computers belonging to the children that have Internet access can cooperate on which books to download and store, and if the computers themselves can try to form a rough topology of who is connected to who (in terms of the books they want), then you are in a much better position to allocate your resources to satisfy the most requests.

I hope this helps and I wish you the very best of luck in your endeavours.

Emerson Farrugia (emerson AolpcT runelands D0T net) - March 17th, 2006


E-mail client application

Perhaps will the project prefer to use a website like GMail for e-mail purposes. If not, as the author of tinymail, I'm willing to make sure tinymail will be suitable for the device. Tinymail is a project that aims to create a E-mail client development infrastructure for creating E-mail clients for small devices. At this moment it can show large IMAP and POP folders using less than 5 megabytes of memory. Tinymail is licensed as LGPL.

https://svn.cronos.be/svn/tinymail/trunk

-- Philip Van Hoof <pvanhoof at gnome dot org>

Distributed Filesystem?

Will the Wikipedia Offline fit into 512 MB (or even 1 GB) ? Even if it does, how about some software and other textbooks loaded at the same time? Clearly, the storage on one device is very limited... but: What if data could be spread over several laptops, a sort of built-in distributed filesystem like Coda or MogileFS - do these make any sense on a device like this, with the goal of enhancing storage capacity through distribution? In a school, every of say 100 children has 1/100th of Wikipedia - instead of clogging each device with a complete copy.

Vorburger 20:06, 9 February 2006 (EST) .

Grid computing

It would be interesting if software were included to allow meshed machines to create an ad-hoc grid/cluster computer. It would be useful for things like compiling software, rendering and other CPU intensive tasks. (Stuff that I imagine some of the more advanced users, High School age, might want to do) A distributed file system would be a central part of that.

Better-performing Flash Filesystem

The proposed JFFS2 filesystem was designed for NOR-type Flash memory, which has very different timing characteristics from the cheaper NAND-type Flash memory used in USB thumb drives and, presumably, the laptop. YAFFS is a GPL'ed open-source journalling filesystem designed specifically for NAND Flash memory that is claimed to use less RAM for its tables and generally outperform JFFS2, and they are working on YAFFS2, which is tweaked to be faster and to work with the new larger, 2KB-page-size NAND devices.

YAFFS has the following technical advantages over JFFS2:

  • It uses NAND Flash memory better, making it faster (about 2X), more space-efficient and wearing the memory chips out less quickly
  • It is faster at mounting a filesystem: a hand-waving example of startup time for a 128MB device is 3 seconds instead of 25
  • It uses far less RAM for its internal tables
  • It scales better: JFFS2 is said to fall apart above 256MB because its internal data structures get too big while YAFFS is known to work well up to 2GB (the laptop currently aims at 512MB)
  • It stores error-correcting codes for all data, which is essential since NAND Flash is supplied not 100% perfect and degrades over time
  • YAFFS provides some features lacking from JFFS2 (hard links, memory mapped file writing)

JFFS2 has the following advantages over YAFFS:

  • It has built-in write-time data compression
  • It is included in the standard Linux kernel

YAFFS has a home page and a there is a technical article which goes into depth on the differences between NOR and NAND flash memory and the drawbacks of using JFFS2 with the NAND type.

It would be worth running comparative performance tests on the two filesystems, because there are big potential performance wins on several fronts. In-filesystem compression isn't everything, slows all file operations down and, when used without error correcting codes onto an unreliable medium, risks major data loss.

Martin Guy 4 March 2006

Jörn Engel is currently working on a new flash file system called logfs. It is not yet clear if it will hit the mainline kernel in time for consideration for the first generation laptop, but it is progressing fast. It should combine all the advantages listed for either for the two file systems above with a new clean design. In particular, the mount time and memory footprint is independent from the device size, unlike the existing file systems.

I don't think that YAFFS can be considered an option for OLPC at this point because of missing compression and the quality of the code.

arnd 12 March 2006

3d software rendering

As the system does not include hardware accelerated 3d rendering, a software rendering library may be included to wrap the OpenGL (OGL/ES maybe) API and create rendering code on the fly. This, even on a machine with limited clock speed can provide a rendering performance paragonable to that of some integrated 3d chipsets, especially if the resolution is kept low. There are some existing tools that can be leveraged for this; for example, Vincent is an OpenGL/ES implementation that provides software rendering for constrained devices like cell phones; SwShader, precursor of transgamings' SwiftShader and many others. Having (limited) OpenGL capability does add some capabilities to the device without requiring additional hardware.

Software Installation, Package Manager, Central Repository

How relevant is a polished end-user friendly Package Manager? With limited memory, are you more likely to uninstall and try another application and install back one? In the beginning, how important is it to be able to very easily get patched new versions of the software? Underlying question: Is a central repository of applications desirable? Completely open, anybody can submit their (pre-compiled) package?

Vorburger

Should there be an easy way to install and remove applications from the device without corrupting the system image? I am thinking of something like klik (http://klik.atekon.de/). -- DPalmerJr

I am on a team developing a deeply embedded losely connected ARM-based Linux system (64 MiB RAM, 512 MiB disc). We have discovered the hard way that it's best to support in-field upgrades -- right from day 1. Even with an effective release management + testing/validation team, specs will change, improvements will be made, bugs will slip through. Our devices are connected via slow satellite links and connect to our infrastructure as infrequently as once per month. We cannot feed a lot of data through the link without blowing our power budget. Even if/when we are willing to risk an over-the-air in-field upgrade, we may not have the bandwidth/power budget. We have found conventional package managers (dpkg, rpm) are too coarse-grained when dealing with skinny pipes and power budgets. A package manager supporting deltas would be preferable. We have even considered downloading source patches and re-compiling on the embedded device. Your network will be faster than ours, so YMMV.

System development + testing will benefit from a slick patch/upgrade mechanism too.

I don't think it's unreasonable to expect to upgrade the devices via the mesh cluster - upgrade one device and the rest can upgrade from it. Use public-key-encryption to sign 'blessed' packages.

I consider a well-thought-out, secure, trustable, user-controlable package management system to be critical to system stability, extensibility, maintainability, and ultimately to the success of this project. -- BCL

Laptop as USB-Drive

It would probably be useful if the laptop could be accessed as a USB-Drive, like a digital camera.. In the Software Development context hackers could probably also configure File Sharing via the WiFi... but simple "USB cross cabling" could be interesting to end-users because it's: a) most simple, b) secure, probably OK to give access to entire filesystem, if locally attached, c) doesn't need Wifi; the nearest Internet Cafe in a bigger town will let children/teacher USB-connect their laptop to one of their stations to copy over a newly downloaded application, but not have a Wifi basestation; at least not where I have travelled in India.

Vorburger

Maybe a software can be developed for this. Since the system is going to be "Linux Based", just accesing the filesystem should allow to configure almost everything. A software that gives access to the filesystem (and emulate a camera or an USB thumb), could be included. Or maybe, a special cable provided with the laptop (that uses one special of the 3 USB ports) could allow direct access to filesystem. (or with a switch somewhere in the laptop that even without power makes it work as a USB-Drive, even with the posibility of charging batteries while connected).

Gandolfi

Hard-Reset built-in

Curious kids will certainly easily manage to screw up the software side of the device - and they should! A built-in hard-reset that can re-initialize the OS etc. from ROM; sort of like some modern laptops have a hidden partition on the HDD that can re-install without the usual Recovery CD, could be useful.

You always have the problem of personal data, files, and configuration settings. Some solution for that would have to be provided; e.g. easily copy to your friend's device over the wireless network?

Vorburger

There's a problem in the Microsoft Windows world with newly-installed systems. You have to go on-line to get the latest security patches from Microsoft. But as soon as you go on-line with an unpatched system you're at risk of infection from viruses.

The reset operation could be integrated with the patch/upgrade mechanism whereby the system will only install secure signed OS-level packages until either the system or the user decides it's OK to open the doors for business. -- BCL

Font technology

Which font technology is to be used?

The character encoding will be Unicode. In that case it is important that an advanced font technology such as OpenType or Graphite is available. It is also necessary to have rendering software for screen and printer that can intelligently combine glyphs from fonts. The choices are Uniscribe (Windows), ATSUI (Macintosh), SIL Graphite (Linux or Windows), Pango (Linux and any other system that can run Free Software), or TrollTech Scribe (Linux or compatible). Of these, Graphite is the most powerful, but it is not yet in widespread use. Pango is the most widely deployed rendering engine for Linux.

The best, of course :-). Fontconfig does fonts substitution on a linguistic level, beyond what Windows and the Mac does. Pango is probably the most advanced layout library around, though further work for some scripts is needed. The graphite description says that Sil is working on integrating it with Pango. - jg

For European languages such as French and Spanish an ordinary font technology such as TrueType is fine. For languages using Latin script yet using accented characters which do not each have a precomposed Unicode character, including many in Africa, an advanced font format is necessary. This is so that glyph substitution can take place to convert a sequence of a base character followed by a combining accent into a "looks right" display. Any rendering engine with any font containing the appropriate glyphs can put an accent mark over a character, but only OpenType can specify exactly where the mark should go for best appearance.

Freetype, used by almost everything these days on open source formats, handles a plethora of font types, from Type 1, to TrueType, to OpenType; note that anyone wanting to introduce yet another font format had best be examining how to do it as a Freetype plugin - jg

Arabic script systems (Arabic, Farsi, Urdu, etc.) need an advanced font technology and an advanced rendering engine. Chinese does not need an advanced font technology system. For languages of the Indian subcontinent typewriter-like displays can be achieved without an advanced font technology. For full support of conjunct ligatures an advanced font technology is needed, and similarly for other Asian alphabets (Sinhalese, Lao, Khmer, Myanmar, Tibetan, Mongolian, etc.).

We know of some open issues with Thai & pango, but believe that they can be solved and that Pango handles most languages already (e.g. Arabic, the Indic languages. Please help determine where further work may be needed. - jg

The eutofont font format

Some time ago William Overington devised a font format using character codes from the Unicode Private Use Area.

(Note by Ed Cherlin: Every font format allows the use of PUA codes. They are used for writing systems not encoded in Unicode, such as Klingon.)

(Note by William Overington: Ed Cherlin states "Every font format allows the use of PUA codes." Yes. Yet that is an item different from what I was trying to say. I was trying to say that the eutofont font format actually uses Unicode Private Use Area code points in the font format itself with the effect that a font is expressible as a sequence of Unicode Private Use Area characters. So, if the eutofont format were used to produce a font of just the twenty-six letters of the English alphabet, all of them regular Unicode characters, the font would be a string of Unicode characters, most of them from the Private Use Area. An end user need not be aware that Private Use Area codes have been used in the producing of the font and the end user does not need to use the Private Use Area codes directly.)

As far as I know it has never been implemented. However, I mention it here in case readers might like to have a look at the documents and decide whether it might be of any use for the laptop project.

I named it the eutofont font format.

http://www.users.globalnet.co.uk/~ngo/eutofont.htm

The eutofont font format has glyph substitution facilities and also has chromatic font capability.

The system could be extended if font technology needs are required which the eutofont font format presently described does not support.

Please note the use of Fontconfig on open source systems for font naming and substitution - jg

Regarding the use of Private Use Area codes: by using them a compactness of font size would be possible which an XML based font system might not be able to achieve: in due course, if the eutofont font system were successful, maybe codes would be added to regular Unicode, though that would lose some compactness as the codes would not be in plane zero; however, in the short term the Private Use Area codes would be needed.

William Overington

11 March 2006

Automated Language Localization of some Preset Sentences

I have for some time been interested in whether it would be of practical use (rather than just fun in researching what can and cannot be done) to have a collection of sentences and part sentences defined and translated into many languages, each sentence or part sentence having a code number, with the idea that an author may construct a message using one such code number or a sequence of such code numbers and then the code numbers could be used by a software system in the computer of a recipient of the message in conjunction with a small database of code numbers and the text of the sentences in a chosen language so as to produce a localized message displayed for the recipient.

For example, suppose that there were only two sentences from which to choose and that these have been encoded as sentences 21011 and 21012.

The English database would contain the following.

21011 It is raining.

21012 It is snowing.

The French database would contain the following.

21011 Il pleut.

21012 Il neige.

The database could be translated into as many languages as desired and possible.

So, if someone whose preferred language is English is authoring a message and wishes to send the message "It is raining." then he or she looks throgh the database using whatever search tools that are available at his or her location and encodes the message as 21011 and then sends it.

So, if someone whose preferred language is French receives the message then the text "Il pleut." can be displayed automatically.

So, if there were more sentences than that and also sentences with a parameter such as for "The temperature here is P1 degrees Celsius." where the value of parameter 1 is sent as a digit string (possibly including a decimal point) to accompany the 21852 code of the parameterized sentence, and that list of sentences were available in many languages, then, for example, weather information could be broadcast on a pan-European basis on an interactive television channel and localized automatically in interactive televisions in, for example, England, France, Italy, Finland and Latvia.

As to how to encode such a system, well there are various possibilities. I started off using a deliberately unusual yet valid sequence of regular Unicode characters to act as a key that would be most unlikely to occur in any other use context, namely a comet, a circumflex accent and an enclosing keycap design. I have also looked at using Unicode Private Use Area characters. It has been suggested to me that XML would be the best approach, though I have reservations as I would like a system where a short sequence could be added into a plain text file without having to restructure the whole document, however I am unsure of that so it is possible that XML would be the way to go.

I am wondering whether the technique, whether using the key or the Private Use Area codes, or using XML, or otherwise, could be useful for autolocalizing some part of the education process. For example, a sentence such as "Please tell your teacher that you have now completed the task." and such as "You have chosen the correct answer." and "Well done.".

I did a little with the idea theoretically some time ago.

http://www.users.globalnet.co.uk/~ngo/c_c00000.htm

I never got it beyond English!

A later development was to incorporate the LOCODE concept so as to specify names of places that were to be localized, such as the way Firenze is expressed as Florence in English and London is expressed as Londres in French.

http://www.unece.org/cefact/locode/service/main.htm

William Overington

17 March 2006

Email Client requirements

Email is the only well known internet application that doesn't depend on a working TCP/IP connection to the internet. It's model is the paper postal service where there are only one or two connections per day, when the postie visits the letterbox.

It is very likely that these laptops will be in the situation where the link to the outside world will be a fragile connection running at very low speeds. If it's a modem line it's likely that the quality is so poor that echo cancellation will fail; this will limit the speed to 2400bps duplex (higher if half duplex). This is not enough for a shared web connection for thirty kids.

This is okay for email with some rules:

  • The email client must be self contained.
  • The MTA must be light and capable of very versatile store and forward without help from DNS.
  • The MTA on the client must be capable of ad-hoc forwarding. ie the child can tell it to give their mail to another client, one who's going to school today.
  • The client must have good facilities for splitting files into multiple emails (and joining) so a maximum message size of say 16kb would not be a problem.
  • The ability to put the mail on a USB key. The bandwidth of a real postie with a pocket full of USB keys could be rather high.

A good model for this might be the old FidoNet networks, though a cleaner addressing scheme would be nice.

Having just email is not as limiting as you might imagine you can access most of the internet by email.

-- Robert de Bath -- March 2006

PS: I just did the math, I've got a 1Gbyte flash key so my bandwidth on the daily commute to work is 99kbps!

End-user Application-level Software

Graphing Calculator

A Graphing Calculator software should be added as well as these devices are quite costly and not widely available. An example would be the TVH-72g Graphing Calculator for mobile phones, see One Graphing Calculator Per Student


VOIP

Availability of a well-working SIP-based VOIP client on this device could prove popular (when when always-on connectivity and sufficient bandwidth is available through the set up of some satellite IP link in a remote region) Vorburger

Recording & Sending Voice Messages

Recording and subsequently listening to voice messages - this is not very big in "our" world, other than the voice mail on your phone; few people seem to record and attach voice messages to typed emails. But if you don't have phones at all, and no always-on for VOIP, maybe recording a voice clip and sending it could prove to be a popular usage - particularly for the parents of the kid that the laptop belongs to, who may be unable to read and write much?

Vorburger

Recording is VERY important - say in Ogg format. The main application perhaps is taking 'Voice Notes in class. There is need for software to support Voice Note synchronized typed or handwritten (a pen interface is important in many settings, including education) text (typed), sketched and Webcam captured content - and thus capture the flow of information in a class and fuse it with student notes. This would define a new type of "Notebook". Students who missed class would find this invaluable. Should be possible to store Note books on a class or school sever and periodically burn them onto CD/DVD. L Pfeffer

Totally transparent gif files

The following web page has some totally transparent gif files available.

http://www.users.globalnet.co.uk/~ngo/spec0001.htm

The idea is that such a gif file may be included in a web page without disrupting the display, yet the ALT tag for the gif within an HTML page may include information useful to a speech synthesiser system. The totally transparent gif files could perhaps be helpful in making the content of web pages more easily accesible to students with visual problems.

William Overington

16 March 2006

Fonts

What sort of fonts is the laptop to use?

The Gentium font has support for lots of languages which use latin characters.

http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=Gentium

The above page includes the following.

quote

Gentium is freely available and may be used by anyone at no cost. It is now released under the SIL Open Font License, a free and open source license that permits modification and redistribution. Our hope is that it will stimulate literature production and elevate extended Latin alphabets to greater parity with the basic Latin alphabet. We also hope it will encourage other type designers to appreciate and support those fascinating and beautiful extra letters.

end quote

William Overington

18 March 2006

Game Console Emulators

Make some Nintendo and Sega console emulators (NES, SNES, GG, MS), try to ask Nintendo and Sega if they agree to let you load onto the machine a selection of hundreds of the best console games from the 80'ies and 90'ies for the children to have fun with.

You could maybe even ask Nintendo and Sega join the OLPC as corporate members, they could provide their games, and provide upgraded wireless mesh-networking gameplay functionality for some of those games.


I have not seen, many educational games in Nintendo or Saga

I don´t believe it is a PC to play with, but a PC to LEARN with. I don´t see the the "what for" in the proposal. --Dagoflores 00:24, 4 April 2006 (EDT)

Obiouslly you have never played SESAME STREET COUNTING CAFE, an execllent game for saga, I actually played it far more than I care to admit. Educational games tend to have poor sales and little media attention so it is not suprising that you haven't heard of them. Futhermore even games that are not strictlly educational have value too, they can help kids develop abstract problem solving skills, pattern reconition, and the ability to experiment. And any ways what is wrong with letting kids have so fun? Or is that only allowed in first world countries. Lout april 5

Video-On-Demand (torrent RSS aggregator)

For subscribing to feeds of video from the internet, as well as amoung students and teachers to be able to send videos to each other, and have all students be able to watch the latest recorded lessons, video-messages from the teacher, video-messages from other students (using a webcam).. There should be a Torrent RSS aggregator software like http://getdemocracy.com so users can browse a channel guide and they can download video from channels, and they can start their own channel and easilly publish videos to channels.

Video Conferencing

With a 10$ usb webcam add-on, the student attach it onto his 100$ laptop, that can be used with video conferencing software over mesh-WiFi and over the internet.

Instant/SMS Messaging

To buddies in the mesh.

Education

Seymourt Papert developed a lot of work around teaching kids programming. What could an updated version of Logo be? ...maybe logo scripting for kids (instead of php or java) :-)

Opinion: Logo could be an excellent way to introduce programming and logic. I started with it!! I think this should be an starter way, but definitely and impreved new version (with more than one "turtle" at least). Today's children can understand easily and faster everything related to computers. And could be some kind of art too if are given the propers tools. (filling closed shapes, or maybe object oriented). Could be a very nice piece of soft!!

Gandolfi

LOGO is certainly a fun way to learn programming and/or to just play with a computer. Many modern implementations have multiple screen turtles. Perghaps at its simplest this can be found in MSWLogo (for Windows). - FREE. Newer flavors of LOGO are StarLogo and NetLogo. They offer powerful ways of controlling large swarms of turtles and their environment - the great benefit being to encourage truly distributed ways of thinking and programming. L Pfeffer

Squeak

Squeak is an open source version of the Smalltalk programming language / environment. It can be used by children at the eToys level to program graphically by assembling objects and scripts; ( http://squeakland.org/ ) . Logo type graphics, learning and applications can be done in eToys as well, including the programming of multiple turtles for simulating complex behavior. Squeak can also be used by developers to write professional programs. The image runs identically on Linux, MS and Apple OS's; there is a separate virtual machine for each OS.

Connectors are one of the built in features of Squeak. Connectors allow you to easily create concept maps, flow charts, etc. with boxes and connecting links.

Active essays can be developed in Squeak. These are similar to books where each page can contain simulations running in real time. Active essays combine a written essay, live simulations, and the programs that make them work in order to provide a deep explanation of a dynamic system. The reader works directly with multiple ways of representing the concepts under discussion. By “playing with” the simulations and code, the reader gets some hands-on experience with the topic.

Scratch is a scripting environment for children being developed at MIT which is built on top of Squeak; http://weblogs.media.mit.edu/llk/scratch/

3D Communication

Sketchup is a very powerful 3D modeling program that is very intuitive and easy to use. After watching me for only an hour, my little 6 year old sister was making some pretty cool looking houses with rooms, stairs and such with absolutely no help. This ability to communicate in 3D is a very useful skill. The creators of the product have shown a deep commitment to helping advance education, (E.G. software is free for students and educators), and might be interested in this project if someone contacted them.

But is there a Linux version? --Walter

It is closed software. Sketchup was bought by Google recently. It is unlikely (but not impossible) to have this software under a free license. -- Mathias Schindler 02:30, 4 April 2006 (EDT)

Concept Mapping Tools

Something like Inspiration/Kidspiration but with better networkability for collaborative editing. I like the concept of CMapTools, but its a a big java app.

Mind Manager Smart is a discontinued mindmapping product for elementary school children from Mindjet (www.mindjet.com). It is very well done application and is a pleasure to use. It is useful for adults too. Perhaps Mindjet would consider donating this product to the OLPC effort. It could get them some free advertising for their commercial product. --DaveRaftery

The Connectors package in Squeak (see above) allow easy creation of concept maps, flow charts, and directed graphs, with boxes and connecting links.

Touch Typing Software

A version of some Touch Typing software and typing games to teach these kids to touch type, the faster you can work with a keyboard whatever age you are then the faster you can get on with solving the worlds problems and letting the world know about your solutions... ' eg unjustified government spending on military budgets that will eventully only lead to one thing, more War to justify more spending etc..."

It should be noted that many keyboards are laid out far more logically than the Latin-alphabet QWERTY and its near relatives in France (AZERTY), Germany (QWERTZ), and elsewhere. Indic-alphabet keyboards have all the vowel signs on one hand and all the consonants on the other, and have the consonants grouped logically by sound type--for example t, th, d, dh, in one column. Also, the spelling rules are much simpler. So it is much easier to learn typing in languages that use these alphabets.

Also someone thing that is not clear but you don't need to be cranking the computer while you use it. Some one else could or if nobody else is available, you can crank for a while, and then type. Or you could use batteries charged from solar power arrays.


I found the follwoing list of Touch typing software that exists already, there are also a number of other existing companies that provide Typing Tutor Software (Mavis Beacon etc) and I would hope that for a project such as this the companies would be able to provide opensource alternatives. http://www.google.com/Top/Computers/Software/Educational/Typing/

Cameron 23 March 2006

ViOS-like information indexing system

In early 2001 I saw an illustrated post in the alt.binaries.education.distance newsgroup about the ViOS system.

The system offered a third party view virtual world 3d landscape as a way of indexing the web.

A description remains on the web.

http://www.howstuffworks.com/vios1.htm

There are also some notes on ViOS in the following document,

http://jlombardi.blogspot.com/2004_10_01_jlombardi_archive.html

I wonder if I may please suggest that the ViOS look is worth considering as a way of indexing information sources for the users of the $100 laptop.

It might perhaps be possible to have the display done by a relatively small program and the data in blocks which could be fetched from a server as needed.

William Overington

9 March 2006

The "ready-to-test" concept

In February 2002 I wrote the following.

http://www.users.globalnet.co.uk/~ngo/ast02800.htm

This was one of a series of documents indexed at the following web page, though the others in the series are on different topics, so the above document is complete in itself.

http://www.users.globalnet.co.uk/~ngo/ast00000.htm

I do not know if the idea would be of any use to the laptop project but I am thinking that it might be, so I thought that I would post the idea here in the hope that it could be assessed by the experts.

William Overington

10 March 2006

Virtual Manipulatives (for math learning)

One argument for the design of virtual manipulatives has been saving money (physical manipulatives can be expensive, can be lost, can come in limited quantities). There is a library of virtual manipulatives available online http://nlvm.usu.edu/en/nav/vlibrary.html that provides a variety of activities and manipulatives for learning different math concepts.

(Shameless plug) I am also working on creating a new kind of virtual manipulative - one that attempts to build a bridge between artistic design efforts and mathematical learning. My desire to do this partially stems form the fact that I think some learners are more comfortable in either art or math, and that through this bridge they can step a little bit outside their comfort zones into the realm with which they are less comfortable (but still in a context they like). So, if you are very excited about art, you can try some math through your design activities, and if you like math but don't feel like you are very good at art, you can create some neat patterns that solve challenges posed from the mathematical perspective. I am interested in working with this laptop project.

I think that whatever (virtual) math manipulatives are available should be considered for this project. I would also like to see more of these virtual manipulatives developed for general use, but it seems like instances where money matters so much, this solution does not add any cost and would be useful.

K.K. Lamberty

5 April 2006

Commoditization or ALSO New Concepts?

Perhaps the major challenge for the initiative is to decide if it is to be a commoditizer or innovator and provider of new capabilities/paradigms. With all the creative capital available in and around the project (e.g. Alan Kay, Prof. Negroponte and others affiliated with the MIT Media Lab) it is hoped that the answer is BOTH - and that the device will include important new hardware, software, communication and media features/concepts. The initiative can take on the spirit of the French Minitel project (and of the peripherally related Centre Mondial) or of the Xerox PARC "Alto" project. The first initiative's central idea was to give away under $100 terminals in France as phone book replacements and it had no significant innovative impact. The latter redefined the industry and created today's Apples, Microsofts, Suns, Logitecs, etc. and made computing and communication approachable to everyone.

L Pfeffer March 18, 2006


Using User-Friendly Linux (GUI)

If the Laptop is supposed to use Linux, then the bigest hurdle will be making kids learn Linux. Thus we need to use user friendly Linux. In short some basic softwares like media players to play MP3 music files or Video players like M Player or Caffeine should be in built with the Linux and in ready to use condition. Thus don't make kids compile the binary files, rpms,tar files etc. Kid will love his education on Laptop only if he can enjoy music on his Laptop.

Parag Kalra (Nagpur, Maharashtra, India) --59.95.67.16 07:17, 21 March 2006 (EST)

Okay it looks like you aren't a programmer from your terminallogy and that you think compiling from source is prohbitivlly hard. Typically all you have to do is type

$>tar xvzf file.tar.gz
$>cd file
$>./configure
$>make install

Four lines and that is it your computer dose the rest. And most places repeate these instructions for you in much greater detail. However, dispite how informative or usefull it is to compile your own software it is eaiser if is already installed. That can be done under linux just like Open Office is already installed and set up. The reason that mplayer and the like arn't typically installed is copyright infringment. To play certin files under linux requires you to comit copy right infriengment or atleast something that looks a lot like it to some people, so the big distros chosse not to install a media player so they can't be sued under the DMCA or what not. Lotu

Yes, there are a nummber of sound players for Linux. It would be no great task to set one up in the laptop image so that it would be ready to run out of the box. The Simputer, for example, had an mp3 player built in.

Per Country Web Portal

For each country that is buying these laptops, a form of educational body within each country submits and updates its own web portal of web links covering the following and this is the default page for the webrowser included on the machines;

Educational Topics http:/... http:/... Practice Exercises http:/... http:/... Things to Do http:/... http:/...

Forum Technical FAQ chat web search eg google Etc...