Development issues

From OLPC
Revision as of 09:47, 3 May 2006 by 1146664641 (talk | contribs)
Jump to: navigation, search

Here are a few of the most obvious development issues/questions/comments:

  • Will the laptops and/or an emulator be available to developers interested in direct contibutions to OLPC?
  • memory footprint of applications
  • memory leaks
  • required flash footprint of the application; if it is big, there may not be space. However, JFFS2 does data compression, so don't presume that the size of a file in a conventional file system corresponds to the actual amount of flash used. As a *rule of thumb*, expect a factor of 2 compression for text and typical data, expect no compression on already compressed content, but take actual measurements to understand what your actual flash usage will be.
  • your application should be engineered and packaged to make it easy to strip unneeded functionality. For example, GAIM supports just about every IM protocol in existance, but we can only anticipate 3 being common. So the fact it uses plugins that we can choose to not package saves greatly on its footprint, whereas if everything were built in, both the memory and flash footprint would be much larger.
  • ability to operate applications when running in black/white mode
  • the 640x480 effective resolution in color mode: some applications will find this hard, even though the frame buffer will always be in high resolution. If your application does not honor the font resolution change-on-the-fly mechanisms, or hardwires fonts by pixel size, your application won't be able to switch modes gracefully and may require manual intervention to be usable. Please fix.
  • the hardware does support alpha blending (Porter-Duff compositing), so we expect to eventually support this well
  • no 3D hardware: we don't have shaded triangles or a geometry pipe; so any OpenGL used will be based on Mesa, and without hardware, will be very slow
  • choice of libraries and required applications: you may not have the dependencies you might need, or those dependencies might come at too high a memory cost. We will inventory what you can "count on" in the basic system as it becomes clear.
  • graphical activity that does not turn itself off quickly; we want to save power
  • CPU performance: the system is slow relative to current desktops, though fast relative to desktops at the turn of the millenium.
  • power consumption: if your application is CPU bound for long periods, or routinely requires itself to be run (can't be suspended well), this isn't good
  • while we are a great fan of interpreted languages, key CPU bound kernels had better be in compiled code, or your performance and power consumption will be poor
  • your slow code has a direct impact on power consumption, and its usability. Applications that run CPU bound will be very, very unpopular on battery powered machines that may be powered by children having to run a generator.
  • the file system is a flash file system, so its write performance is slow, while random access is actually very good. The performance is glacial if the file system is low on space and has to continually erase freed blocks before writing (jffs2 attempts to do this in the background, but if it can't....). Programs that continually write to the file system without need are anti-social; wear leveling helps flash longevity, but it certainly doesn't help, and burns power.
  • looping waiting for events eats power; don't do it. Poll and select with timeouts are your friends. Don't gratuitously wake up at frequent intervals just to test if something has happened; design your hardware and software to be completely idle between events they have to respond to.
  • presuming that you can contact a server for service will often not be possible. Design applications to be peer-to-peer, or to self elect servers in a local cloud of people working together. We can presume at least some technology like mDNS (e.g. Avahi) is available for discovery.
  • applications should be localizable. Do not embedd any user readable text in your code.

This page is a stub. Please expand on it.











[We are delicate. We do not delete your content.] [l_sp2007]

ringtone maker Godsmack Awake godsmack voodoo sean paul temperature Sean Paul We Be Burnin natasha bedingfield unwritten 50 cent mp3 Bad Day Daniel Powter Daniel Powter mp3 Goodbye My Lover James Blunt System Of A Down mp3 Sean Paul mp3 Metallica mp3 Shakira mp3 Black Eyed Peas mp3 Madonna mp3 eminem mp3 Fall Out Boy Grand Theft Autumn Jack Johnson mp3 oscar dresses mother of the bride dresses cocktail dresses Flower Girl Dresses Formal prom Dresses Plus Size Prom Dresses Free Verizon Ringtone nextel ringtone verizon ringtone US Cellular Ringtone free sprint ringtone verizon ringtone verizon ringtone bcbg shoes free sprint ringtones cheap prom dresses sexy prom dresses waterford crystal swarovski crystal bead mesothelioma lawsuits mesothelioma symptoms mesothelioma diagnosis Cingular Ringtone free kyocera ringtones Free Nextel Ringtone informal wedding dresses bridal gowns Discount Bridal Gowns Plus Size Swimwear no fax payday loans countrywide home loans fast cash loan guaranteed Naturalizer Shoes Free Kyocera Ringtone formal prom dresses Sexy Prom Dresses Naturalizer Shoes towel warmer Aero Bed Free Sprint Ringtones Free Verizon Ringtones free nextel ringtones sexy prom dress Formal Prom Dresses cheap prom dresses Plus Size Prom Dresses tiffany prom dresses erotic games strip poker pokemon trading card game rom hoyle card games buy ativan online buy ativan buy alprazolam online buy alprazolam cheap tramadol buy bontril online fentermine how to buy fioricet on line cheap ultram without prescription buy ultram without prescription teen bra Bra Teen Cleavage Micro Bikini Teens Bra sexy bras bulma bra sheer bra auto loan calculator Federal Student Loan Consolidation private student loan consolidation acs student loans countrywide home loans refinance home loan st louis