WikiBrowse: Difference between revisions

From OLPC
Jump to navigation Jump to search
m (New page: {{subst:Template:Project|projecttitle = Wiki server|startedby = cjb}})
 
Line 1: Line 1:


__NOTOC__
__NOTOC__


Line 18: Line 16:
=== Help wanted ===
=== Help wanted ===


[[User:cjb|Chris Ball]] is the person to contact if you're unsure of how to get started.
If you are interested in helping, you can help! We need people from all disciplines and experiences. If, after reading this page, you're still unsure of how to get involved, contact [[User:cjb]].


==== Porting server code from Ruby to Python ====
If you want help with your part of this project, you can post specific tasks below. Please detail what kind of help you are looking for here, a timeframe or expiration date for the posting, along with contact information or how people who are interested should get involved.


We need a Python programmer (or a small team of Python programmers working together) to start the project off by porting the server code from Ruby to Python so it'll be easier to run on the XO. Ruby's quite easy to read and you don't have to be a Ruby programmer to do this (but it helps if you know Python). The code is very simple and short (less than 300 lines), so this should take no more than a weekend. Here's a suggested how-to-do-it procedure.
==== Improve this page! ====


# Read this page to get an idea of what we're trying to do.
We are looking for volunteers to help improve this project page and keep it up to date. If you see how you can make something more coherent or organized, please jump in and edit; if there's a resource you think would be useful to this project, please add it. If there's something about the project itself you have ideas about, you can add it to this page directly, or start a discussion on the [[Talk:Wiki server|talk page]]. You do not need to contact anyone about this job - just do it! This posting never expires.
# Read the [http://collison.ie/wikipedia-iphone/ project homepage] to get an overview of what the app does. Also see the [http://code.google.com/p/wikipedia-iphone/ google code project].
# [http://collison.ie/wikipedia-iphone/wikipedia-iphone-0.1.tar.bz2 Download the source code] and take a look around. Notice how most of the code is either shell scripts or C, but there's a folder of ruby (rb) code. This is the stuff we want to port.
# (Optional but recommended): Download and install [http://ruby-lang.org Ruby] and test out the existing code so you can see the app in action. Follow the instructions in the "Getting Started" section of the README file (in the source code you just downloaded) to get a wikipedia datafile parsed and the web server running. We'd recommend using a smaller wikipedia than the English language one.
# Take a look at the files in the rb folder. There are four main ones to port to Python (the rest are very short "helper" files and should take just a few minutes to rewrite).
## '''bzipreader.rb''' (ruby interface to c/bzipreader.c; supports streaming bz2 files) - probably the most difficult, since you'll have to interface your python code with C (bzipreader.c). If someone has a tutorial or resources on how to do this, please post the link here.
## '''index.rb''' (generate an article-to-block index using bzipreader.rb)
## '''server.rb''' (Mongrel-based server for using WP dumps with a web browser) - we'd suggest using the built-in Python webserver, [http://docs.python.org/lib/module-BaseHTTPServer.html BaseHTTPServer], for this.
## '''xmlprocess.rb''' (generate stripped, XML-less file from a vanilla WP dump)
# Put the new files (bzipreader.py, index.py, server.py... etc) in a "py" folder and delete the "rb" one when you're done porting.
# Remember to license your work under the GPL (you must, since the original code is GPL) by putting a copy of the license in your folder (or just leaving the COPYING file from the original source in).
# Write a README on how to run your ported code and include it in the bundle.
# When you have the first hint of functional progress (and ''definitely'' when you finish), let [[User:Cjb|Chris Ball]], the [http://lists.laptop.org/listinfo/library library] list, and the [http://lists.laptop.org/listinfo/wikireader wikireader] list know! (It would also be super nice to contact Patrick, the original "wikipedia on the iphone" developer, and work with that community to integrate your code into theirs.) This would also be a good time to apply for [[Project hosting]].


== Events ==
== Events ==

Revision as of 17:03, 2 May 2008


Olpc logo.jpg
Wiki server

Introduction

Summary and motivations/goals of this project coming soon - if you're adding the project summary, make sure that you give enough detail for others to add their suggestions and edits, and note where in the summary more detail/revision is needed.

How to help

This project is a collaboratively organized undertaking, so the best way to get started is to just dive in and introduce yourself.

If there is a project mailing list, IRC channel, or other form of communication that is not this wikipage, please list it here.

Help wanted

Chris Ball is the person to contact if you're unsure of how to get started.

Porting server code from Ruby to Python

We need a Python programmer (or a small team of Python programmers working together) to start the project off by porting the server code from Ruby to Python so it'll be easier to run on the XO. Ruby's quite easy to read and you don't have to be a Ruby programmer to do this (but it helps if you know Python). The code is very simple and short (less than 300 lines), so this should take no more than a weekend. Here's a suggested how-to-do-it procedure.

  1. Read this page to get an idea of what we're trying to do.
  2. Read the project homepage to get an overview of what the app does. Also see the google code project.
  3. Download the source code and take a look around. Notice how most of the code is either shell scripts or C, but there's a folder of ruby (rb) code. This is the stuff we want to port.
  4. (Optional but recommended): Download and install Ruby and test out the existing code so you can see the app in action. Follow the instructions in the "Getting Started" section of the README file (in the source code you just downloaded) to get a wikipedia datafile parsed and the web server running. We'd recommend using a smaller wikipedia than the English language one.
  5. Take a look at the files in the rb folder. There are four main ones to port to Python (the rest are very short "helper" files and should take just a few minutes to rewrite).
    1. bzipreader.rb (ruby interface to c/bzipreader.c; supports streaming bz2 files) - probably the most difficult, since you'll have to interface your python code with C (bzipreader.c). If someone has a tutorial or resources on how to do this, please post the link here.
    2. index.rb (generate an article-to-block index using bzipreader.rb)
    3. server.rb (Mongrel-based server for using WP dumps with a web browser) - we'd suggest using the built-in Python webserver, BaseHTTPServer, for this.
    4. xmlprocess.rb (generate stripped, XML-less file from a vanilla WP dump)
  6. Put the new files (bzipreader.py, index.py, server.py... etc) in a "py" folder and delete the "rb" one when you're done porting.
  7. Remember to license your work under the GPL (you must, since the original code is GPL) by putting a copy of the license in your folder (or just leaving the COPYING file from the original source in).
  8. Write a README on how to run your ported code and include it in the bundle.
  9. When you have the first hint of functional progress (and definitely when you finish), let Chris Ball, the library list, and the wikireader list know! (It would also be super nice to contact Patrick, the original "wikipedia on the iphone" developer, and work with that community to integrate your code into theirs.) This would also be a good time to apply for Project hosting.

Events

Upcoming

If you have an upcoming event (meeting, hackathon, etc.) related to this project, please list it here along with details of how to participate. Once an event is over, please move it to the Past Events section, below.

Past

Activities related to this project that have already occurred, for archival purposes.