Talk:Software components
Have you considered adding Mono as a software component of the OLPC?
If Sugar was running on Mono, it would make it easier to write Activities in languagues other than Python. For example Java, C#, possible Ruby: http://www.mono-project.com/Languages
IronPython is an implementation of Python that runs on Mono. It is supposed to be faster than CPython. There is a reference to that on the original IronPython page. The current IronPython page is: http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython
I've read that the final version of the OLPC will run Windows (according to this article, that is why the SD slot was added). Will these applications also be on the final Windows version or will they be rewritten?
- You are drawing false conclusions from the article. Microsoft may be trying to get Windows running on the OLPC, but this is an independent effort on their part. If you read the Ask-a-question page, you'll see that the OLPC people are still planning to use a custom, Linux-based solution. Perhaps Negroponte was just ribbing Microsoft when he said that they "added the SD card just for Bill"? Walter outlines the actual reasons for the new slot on the main page. —Joe 14:27, 23 May 2007 (EDT)
Applications that can be looked for integration in the Sugar Environment
- Dr Geo, an interactive geomtery software which allows one to create a geometric figure and manipulate it considering the geometric constraints associated with the figure.
- X-word, a GTK crossword puzzle program that reads and write puzzles in the Acrosslite format used by The New York Times . It has a clock, a word list, options like printing, auto saving and to check and reveal letters of the puzzle.
- Range Software Packages, a software for engineering simulations, finite element analysis and is able to solve problems based on heat transfer , radiation , stress strain , porous media flow and viscous incompressible flow.
- Ascend, an interactive mathematical modelling system for engineering and scientific applications capable of solving non linear systems containing upto 100,000 variables.
- gElemental, a periodic table viewer that provides detailed information on the chemical elements.
- xyz2ila, a little C program to convert earth centred earth fixed(ECEF) cartesian coordinates to latitude, longitude and altitude.
- Lybniz, a simple function graph plotter in Python which can also be made to function as a graphing calculator for the Sugar.
- Scilab, a numerical computation system similar to Matlab or Simulink.
- g3data, a program for extracting data from graphs.
- G Flashcards, a teaching tool for learning vocabulary lists or historical facts.
- Festival, A speech synthesizer to read text to children, increasing their literacy.
- Comix, a pyGTK based user friendly and customizable image viewer specifically designed to handle comic books but can also serve as a generic viewer.
- gretl, an application useful for teaching Economics Stastics.
- Shrinking Man, a diet tracker application that can be used for tracking body weight and the calories consumed per day.
- Electric Form, an application that can be used for calculation purposes in the field of Electricity based on the relationships existing between Power(P), Current(I), Voltage(V) and Resistance(R) that is 'P=I^2*R', 'P=V*I', 'P=V^2/R' and 'V=I*R'.
Games that can be looked for integration in the Sugar Environment
- PyScrabble, an Open Source, online, multiplayer Scrabble game written in Python which supports English, French, German and Serbian languages.
- Python Sudoku, a text and a graphical (GTK interface) program to create or resolve Sudokus which can also print a Sudoku (1 or 4 Sudokus in each page) and write an image (png, jpeg, etc) with a Sudoku.
- Gran Prix, a simple 2D car race game written in Python for 2 to 4 players with three different tracks where you can run on these tracks with four different Formula 1 style cars and can customize their maximum speed and the number of laps to win the race.
- PyXXO, a Tic Tac Toe (or Noughts and Crosses) game for 2 players where the color of the players can be chosen along with the language and the playernames.
- Duo, a Uno-like card game project, the first free Uno game on PC which is a nice and an easy card game written in Python, multilingal and could be played with 1,2 or 3 computer players.
- Pyamb, a dice game also popularly refered to as a gtk version of Yamb written in Python which is a game played in turns with 5 dices and each turn player has three dice throws available. The object of the game is to reach the highest possible score.
- Dragon Hunt, a Graphical Role-playing game which investigates the rumours of monsters attacking a town.
removed
- A basic quizzing web application with around 20 quizzes built by CERTY
In general web applications, while accessible from the laptops, will not be bundled onto the laptop. --Walter 02:50, 4 November 2006 (EST)
The problem with Mono is that it allows too many languages to be used, each of which requires its own support libraries. The OLPC doesn't have the storage to spare for Python libs, Ruby libs, C# libs, etc.
Python has the power to build the type of applications that would be useful in an educational environment. That's why it was chosen. The laptop also supports Javascript in xulrunner and csound. And programs can be written in C as well.
The laptop is not a PC in the conventional sense. It has very limited memory and will be used in a very different networking environment from a PC. Most software will need to be written specifically for OLPC or heavily modified to suit a very different environment. Python is the ideal language for this development work.
C is for Critical
You somehow found room for Python, Javascript, CSound, FORTH, and even Smalltalk (Squeak/Etoys). Smalltalk??? Heck, if Smalltalk makes the grade, throw in COBOL and Ada!
Most of the OS is in C. Even the Python interpreter is in C.
You think you have resource constraints? UNIX had C on the PDP-11 port, which maxed out at 128 kB of RAM and a few MB of disk. Linus started with only 4 MB of RAM and less than 64 MB (probably about 20 MB) of very slow disk space. I used to use gcc on a Linux box with 8 MB of RAM and a 40 MB hard disk. You have a whopping 128 MB of RAM and a 512 MB "disk" that has 0ms seeks and does on-the-fly compression.
If you want small, go with bcc. If you want to treat C files as scripts, use tcc and just put "#!/usr/bin/tcc" at the top of any C files that should be executable. Really though, gcc is best.
By default, modern gcc can be a bit of a pig. This is because it's doing lots of optimization. That can be cut back via the specs file, which is a config file that defines the meaning of "-O2" and similar. One might also compile gcc itself with -Os.
AlbertCahalan 01:51, 28 February 2007 (EST)
Tux Paint needs SDL
This includes SDL_ttf, SDL_image, and SDL_mixer. Those bring in a few other libraries, like libpng and libvorbis.
- I've added SDL and pygame to the list of libraries because it looks like that's what will be used predominantly for games, judging from the discussions on the games mailing list and Game development page. —Joe 13:54, 23 May 2007 (EDT)
- D'oh... I've removed SDL from the list again, as discussion on the games mailing list makes it look like the developers are now leaning towards using PyGame's interface, but backed by GTK instead of SDL. It seems this is to get the scale-independent benefits of Cairo and the internationalization benefits of Pango (although to my knowledge both can be made to work with SDL, too). —Joe 20:20, 1 June 2007 (EDT)
Python 2.4
I've reverted the Python library listed to 2.4, since a mailing list article says that it's still unclear whether 2.5 will be used. —Joe 13:59, 23 May 2007 (EDT)
Java in the form of J2ME
Hi,
I wonder if someone in the system configuration team had thought about using J2ME as an alternative to J2SE. Since J2ME is being
used in many cellphones, the support for resource limited devices and the availabilty of J2ME programmers should be around for a while. Personally, I prefer J2SE as a developer but if we have to choose between J2ME and No Java, I'd vote for J2ME.