summaryrefslogtreecommitdiff
path: root/developers
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2012-07-01 13:18:47 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2012-07-01 13:18:47 +0100
commit5f5fa631013417dd4c9010e3b12084f3bd805895 (patch)
tree30956a49dffdb9382cb37dcec71c36a6feebacad /developers
downloadnetsurf-website-5f5fa631013417dd4c9010e3b12084f3bd805895.tar.gz
netsurf-website-5f5fa631013417dd4c9010e3b12084f3bd805895.tar.bz2
Transfer current state of netsurfweb as a fresh line of history
Diffstat (limited to 'developers')
-rw-r--r--developers/StyleGuide.pdfbin0 -> 48560 bytes
-rw-r--r--developers/contribute.en124
-rw-r--r--developers/gsoc/2008ideas.en235
-rw-r--r--developers/gsoc/2009ideas.en280
-rw-r--r--developers/gsoc/index.en146
-rw-r--r--developers/index.en156
-rw-r--r--developers/publicity.en101
7 files changed, 1042 insertions, 0 deletions
diff --git a/developers/StyleGuide.pdf b/developers/StyleGuide.pdf
new file mode 100644
index 0000000..e03ae50
--- /dev/null
+++ b/developers/StyleGuide.pdf
Binary files differ
diff --git a/developers/contribute.en b/developers/contribute.en
new file mode 100644
index 0000000..3681419
--- /dev/null
+++ b/developers/contribute.en
@@ -0,0 +1,124 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<title>NetSurf | Contribution Guide</title>
+<link rel="stylesheet" type="text/css" href="/netsurf.css">
+<link rel="icon" type="image/png" href="/webimages/favicon.png">
+</head>
+
+<body>
+<p class="banner"><a href="/"><img src="/netsurf.png" alt="NetSurf"></a></p>
+
+<div class="navigation">
+<div class="navsection">
+<ul>
+<li><a href="/about/">About NetSurf</a></li>
+<li><a href="/downloads/">Downloads</a></li>
+<li><a href="/documentation/">Documentation</a></li>
+<li><a href="/developers/">Development area</a>
+<ul>
+<li><a href="/developers/contribute">Contribution</a></li>
+<li><a href="/developers/gsoc">GSoC</a></li>
+</ul>
+</li>
+<li><a href="/webmasters/">Webmaster area</a></li>
+<li><a href="/contact/">Contact</a></li>
+</ul>
+</div>
+
+<div class="navsection">
+<ul class="languages">
+<!--<li><a href="index.de">Deutsch</a></li>-->
+<li>English</li>
+<!--<li><a href="index.fr">Français</a></li>-->
+<!--<li><a href="index.nl">Nederlands</a></li>-->
+</ul>
+</div>
+
+<div class="navsection">
+<ul class="sitelinks">
+<li><a href="http://wiki.netsurf-browser.org/">Development wiki</a></li>
+<li><a href="http://source.netsurf-browser.org/">SVN repository viewer</a></li>
+</ul>
+</div>
+
+</div>
+
+<div class="content">
+
+<p class="breadcrumbs"><a href="/">Home</a> » <a href="/developers/">Developer area</a> » Contribution guide</p>
+
+<h1>Contribution Guide</h1>
+
+<p>People ask us how they can help the NetSurf project. This section of the site is here to help people contribute to the project. You should be able to find all you need here. If not, please <a href="/contact/">contact us</a>!</p>
+
+<h2>Contributing to NetSurf</h2>
+
+<p>NetSurf is open for anyone to contribute to. Everyone is very welcome to help! There are all sorts of ways to contribute to the project. For some ideas, see the list below:</p>
+
+<dl>
+<dt>Publicity</dt>
+<dd>
+<p>Help tell people about NetSurf.</p>
+<ul>
+<li>If you have a web site, you could add a link to the NetSurf page. Such as
+<div class="example"><pre>&lt;a href=&quot;http://www.netsurf-browser.org/&quot;&gt;NetSurf Web Browser&lt;/a&gt;</pre></div>
+Which appears as: <a href="http://www.netsurf-browser.org/">NetSurf Web Browser</a>.</li>
+<li>A selection of adverts are available for use in magazines, pamphlets and on web sites. See the <a href="publicity">publicity page</a> for more information.</li>
+</ul>
+</dd>
+<dt>Provide feedback</dt>
+<dd>
+<p>We need to know what you think about NetSurf, if we are to develop a web browser people enjoy using.</p>
+<ul>
+<li>Report any bugs you find.</li>
+<li>Request the features you want.</li>
+<li>Discuss your opinions of NetSurf on the mailing list.</li>
+<li>Run the bleeding edge version of NetSurf to provide the most helpful feedback to developers.</li>
+</ul>
+</dd>
+<dt>Non-programming contribution</dt>
+<dd>
+<p>If you want to contribute to the project directly but are unable to program, there are still many ways for you to help.</p>
+<ul>
+<li>Translation of NetSurf and the NetSurf web site into other languages.</li>
+<li>Creation of new themes.</li>
+<li>Help with Templates design.</li>
+<li>Help answer peoples questions on the mailing lists, if you know the answer.</li>
+</ul>
+</dd>
+<dt>Programming</dt>
+<dd>
+<p>NetSurf's developers have limited time to work on the project. If you are a capable programmer there are all sorts of ways you could help the project.</p>
+<ul>
+<li>Help with the core of NetSurf: Fetching, Layout, etc.</li>
+<li>Help improve the RISC OS user interface.</li>
+<li>Help improve the GTK user interface.</li>
+<li>Submit patches for bugs.</li>
+<li>Submit patches to implement features you want.</li>
+</ul>
+</dd>
+</dl>
+
+<p>If you want to help, <a href="/contact/">get in touch</a>!</p>
+
+
+
+<div class="footer">
+<p>Copyright 2003 - 2009 The NetSurf Developers</p>
+</div>
+
+</div>
+
+
+<form method="get" action="http://www.google.co.uk/search">
+<div class="searchbox">
+<input type="hidden" name="q" value="site:netsurf-browser.org">
+<input type="text" name="q" maxlength="255"><br>
+<input type="submit" value="Search" name="btnG">
+</div>
+</form>
+
+</body>
+</html> \ No newline at end of file
diff --git a/developers/gsoc/2008ideas.en b/developers/gsoc/2008ideas.en
new file mode 100644
index 0000000..38a1c4e
--- /dev/null
+++ b/developers/gsoc/2008ideas.en
@@ -0,0 +1,235 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<title>NetSurf | Google Summer of Code 2008 Ideas</title>
+<link rel="stylesheet" title="Standard" type="text/css" href="/netsurf.css">
+</head>
+
+<body>
+<p class="banner"><a href="/"><img src="/netsurf.png" alt="NetSurf"></a></p>
+
+<div class="navigation">
+<div class="navsection">
+<ul>
+<li><a href="/about/">About NetSurf</a></li>
+<li><a href="/downloads/">Downloads</a></li>
+<li><a href="/documentation/">Documentation</a></li>
+<li><a href="/developers/">Development area</a>
+<ul>
+<li><a href="/developers/contribute">Contribution</a></li>
+<li><a href="/developers/gsoc">GSoC</a></li>
+</ul>
+</li>
+<li><a href="/webmasters/">Webmaster area</a></li>
+<li><a href="/contact/">Contact</a></li>
+</ul>
+</div>
+
+<div class="navsection">
+<ul class="languages">
+<!--<li><a href="index.de">Deutsch</a></li>-->
+<li>English</li>
+<!--<li><a href="index.fr">Français</a></li>-->
+<!--<li><a href="index.nl">Nederlands</a></li>-->
+</ul>
+</div>
+
+<div class="navsection">
+<ul class="sitelinks">
+<li><a href="http://wiki.netsurf-browser.org/">Development wiki</a></li>
+<li><a href="http://source.netsurf-browser.org/">SVN repository viewer</a></li>
+</ul>
+</div>
+
+</div>
+
+<div class="content">
+
+<p class="breadcrumbs"><a href="/">Home</a> » <a href="/developers/">Developer area</a> » Google Summer of Code</p>
+
+<h1>Google Summer of Code Ideas</h1>
+
+<p>This page lists our project ideas for <strong><a href="http://code.google.com/soc/2008/">Google Summer of Code 2008</a></strong>.</p>
+
+<p>Details of our selected students and their projects can be found on our <a href="/developers/gsoc">GSoC</a> page.</p>
+
+<dl>
+<dt>Before applying for a project<dt>
+<dd>
+<ul>
+<li>Join our IRC channel <code>#netsurf</code> on <a href="http://freenode.net/">Freenode</a> and introduce yourself. Also, subscribe to the <a href="http://www.netsurf-browser.org/lists/netsurf-dev">developer mailing list</a>.</li>
+<li>Have access to a computer with supported OS (RISC OS, Linux, FreeBSD, etc) or an OS relevant for the project you want to apply for (Windows, Mac OS).</li>
+<li>Get up to speed with <a href="http://subversion.tigris.org/">Subversion</a>, as we use this for source control, and get the NetSurf <a href="http://www.netsurf-browser.org/documentation/develop#Subversion">source code</a>.</li>
+<li><a href="http://www.netsurf-browser.org/documentation/develop#Compiling">Build NetSurf</a> and enjoy using it. (Ask if you need help.)</li>
+<li>Get familiarised with the source code &ndash; read the <a href="http://source.netsurf-browser.org/trunk/netsurf/Docs/">code documentation</a>.</li>
+</ul>
+<dd>
+<dt>When applying for a project<dt>
+<dd>
+<ul>
+<li>Create a set of project milestones (ranging from a couple to maximum 10). This will be useful for you as guidance and for us to set our expectations right.</li>
+<li>Include your IRC nick in your application if you've spoken with us on <code>#netsurf</code>, so that we recognise you.</li>
+</ul>
+<dd>
+<dt>During the project</dt>
+<dd>
+<ul>
+<li>Most of NetSurf team communication happens via #netsurf IRC during evenings and nights (<a href="http://en.wikipedia.org/wiki/Central_European_Time">CET</a>). We expect you to join in on a regular basis for help, discussions and project updates. Note that you're not restricted to speaking to your assigned mentor; the whole development team are willing to help wherever they can.</li>
+<li>When improving NetSurf's layout engine, be able to create <a href="http://source.netsurf-browser.org/trunk/netsurftest/">test cases</a> and verify that existing test cases don't get broken.</li>
+<li>Keep NetSurf's <a href="http://www.netsurf-browser.org/about/#ProjectGoals">project goals</a> in mind, especially the first point.</li>
+</ul>
+</dd>
+</dl>
+
+<p>Please <a href="/contact/">get in touch</a> if any of these ideas appeal to you or if you have your own idea for either <a href="/">NetSurf</a> or one of NetSurf's <a href="/projects/">sub-projects</a>. Come and chat to the developers in the NetSurf IRC channel or post to the developer mailing list.</p>
+
+<p>All these ideas require knowledge of C, as NetSurf is entirely written in C.</p>
+
+<p>See the <a href="http://sourceforge.net/tracker/?func=browse&amp;group_id=51719&amp;atid=464315">Feature Requests</a> tracker for more ideas.</p>
+
+<h2>New CSS parser and selector engine</h2>
+<p>NetSurf's current CSS parser and selector engine has several limitations. The existing code could be improved or rewritten. The limitations include:</p>
+<ul>
+<li>All rules within <code>@media { ... }</code> blocks are ignored.</li>
+<li>Handling of invalid CSS does not follow the specification.</li>
+<li>CSS specificity and importance issues</li>
+</ul>
+<p>Improvements here would improve NetSurf's rendering of many web pages, as well as the infamous <strong>acid2</strong> test.</p>
+<div class="details">
+<p>In the long-term, NetSurf will be requiring a DOM StyleSheet and CSS binding. The current CSS parser and selection engine aren't really structured in a manner that permits this to happen. Therefore, this project could take one of two forms:</p>
+<ul>
+ <li>Focus upon and fix the limitations in the current CSS engine</li>
+ <li>Develop an entirely new CSS engine to replace the existing one</li>
+</ul>
+<p>There is an outline description of a <a href="http://source.netsurf-browser.org/trunk/netsurf/Docs/ideas/css-engine.txt">new CSS engine</a>, which may be of interest to those who want to take the second approach to this project. This description is fairly complete from an external API perspective. The implementation details of a new engine are completely negotiable &ndash; we have some idea of what's needed, but the student's input will be highly valued.</p>
+<p>Regardless of which approach is taken, we would expect that testing of the code is performed on a regular basis to ensure that things are still working as expected. New testcases should be written to exercise existing bugs and test out new functionality.</p>
+</div>
+<p><strong>Skills required:</strong> C, CSS, parsing</p>
+<p><strong>Difficulty:</strong> Medium</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/css/">CSS parser and modules</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/Docs/03-css">Documentation</a></p>
+<p><strong>References:</strong> <a href="http://www.w3.org/TR/CSS21/">CSS 2.1 specification</a> <a href="http://www.w3.org/TR/DOM-Level-2-Style/">DOM Level 2 Style specification</a></p>
+
+<h2>Native Windows or Mac OS X ports</h2>
+<p>NetSurf currently has user-interface layers for the RISC OS Window Manager and for GTK (on Linux, FreeBSD, etc.). The GTK interface works on Windows or Mac OS X, but a native interface for these systems would give a better experience.</p>
+<p><strong>Skills required:</strong> C, Windows UI development or Mac OS X UI development</p>
+<p><strong>Difficulty:</strong> Medium</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/desktop/gui.h?view=markup">Declarations of functions that each interface must implement</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/riscos/">RISC OS specific code</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/gtk/">GTK specific code</a></p>
+<p><strong>References:</strong></p>
+
+<h2>Keyboard navigation</h2>
+<p>The browser currently requires a mouse to use. Keyboard shortcuts would move between and activate links, inputs, etc. The document structure is stored in a tree, and algorithms for walking through the tree to find the next link or input would need to be developed. A further improvement would be to take layout position into account and implement moving in 2D.</p>
+<p><strong>Skills required:</strong> C, HTML, CSS, usability</p>
+<p><strong>Difficulty:</strong> Easy</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/desktop/textinput.c?view=markup">Key press handling</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/render/box.h?view=markup">Box tree structures</a></p>
+<p><strong>References:</strong></p>
+
+<h2>Printing improvements</h2>
+<p>Printing is currently only available on RISC OS, and the output is difficult for the user to predict. Work could include implementing printing for GTK, print preview, intelligent paging or reformatting, support for print stylesheets, and user control over what parts of the page are printed. This might include writing a portable base and platform-specific layer.</p>
+<p><strong>Skills required:</strong> C, CSS, GTK, possibly Cairo, possibly Postscript</p>
+<p><strong>Difficulty:</strong> Hard</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/riscos/print.c?view=markup">RISC OS printing implementation</a></p>
+<p><strong>References:</strong></p>
+
+<h2>PDF plotter</h2>
+<p>NetSurf's graphics output is abstracted through &quot;plotters&quot;, which are a set of functions that render output to some destination. For example, there are plotters for RISC OS window, GTK window, and DrawFile (a vector graphics format) output. Implementing a PDF plotter would turn NetSurf into a general HTML to PDF conversion tool.</p>
+<div class="details">
+<p>NetSurf already uses several Open Source libraries (cAres &amp; cURL, IJG JPEG, OpenSSL, libXML2, zlib, etc), so it is likely that an existing PDF write-capable library can be found and used in this project. Firstly, research the possible candidate libraries, based on criteria like: supported programming languages, its platform independence, ease of use, licence and any other possible advantages (like support for writing other vector based file formats, etc). Such research will actually mean writing some test/prototype code using those libraries in order to get familiar with their interfaces.</p>
+<p>It is unlikely that this project will involve developing a PDF writing library from scratch. We won't rule this out for certain, but would require some convincing arguments from you.</p>
+<p>During the evaluation of PDF writing libraries, we expect the student to become familiar with the requirements of the NetSurf plotter interface, figuring out what the issues could be from NetSurf API point view and for the PDF write library candidates. A plan should then be devised to solve these issues.</p>
+<p>After hooking the PDF write library into NetSurf and getting some useful PDF files from web pages, it will be time to come up with a strategy to test your code. As we tend to be lazy, at least sometimes, we won't buy the &quot;Save as...&quot; manual save and view in a PDF viewer approach.</p>
+<p>It could very well be that this project involves working closely together with people assigned for the &quot;Printing improvements&quot; project.</p>
+<p>These project boundaries are not set in stone. We think it is a well defined project but we're happy to hear suggestions from you to enrich the project or redefine certain aspects of it.</p>
+</div>
+<p><strong>Skills required:</strong> C, graphics, PDF</p>
+<p><strong>Difficulty:</strong> Medium</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/desktop/plotters.h?view=markup">Plotter interface</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/riscos/plotters.c?view=markup">RISC OS plotter</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/gtk/gtk_plotters.c?view=markup">GTK plotter</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/riscos/save_draw.c?view=markup">DrawFile plotter</a></p>
+<p><strong>References:</strong></p>
+<p><strong>Mentor:</strong> John Tytgat</p>
+
+<h2>Page reader</h2>
+<p>The web is a vast resource of information and services. Traditional browsers enable its access for people who can see. NetSurf attempts to help partially sighted users with a sophisticated scaling / zoom feature, however it could be improved further with a page reading option. Speech synthesis could be used to render pages as spoken output.</p>
+<p>There are already several libraries for speech synthesis. This project would first involve enabling NetSurf to speak the textual content of a page. Further work would improve the usability of the system by consideration for such factors as:</p>
+<ul>
+<li>Overview mode, which announces the document headings</li>
+<li>Section skipping to allow swift to access to the next part of the document</li>
+<li>Repetition of the current section or skipping back to previous sections</li>
+<li>How to differentiate link text from the rest of the text</li>
+<li>How to handle emphasis tags; &lt;em&gt; and &lt;strong&gt;</li>
+</ul>
+<p><strong>Skills required:</strong> C, accessibility</p>
+<p><strong>Difficulty:</strong> Medium &ndash; Hard</p>
+<p><strong>Existing code:</strong></p>
+<p><strong>References:</strong> <a href="http://espeak.sourceforge.net/">eSpeak text to speech synthesizer</a></p>
+
+<h2>Dynamic pseudo classes</h2>
+<p>NetSurf currently has no support for CSS dynamic pseudo classes (e.g. :hover). The work would involve adding support for these classes to the CSS parser and selection engine and modifying the layout engine to handle dynamic style changes.</p>
+<p><strong>Skills required:</strong> C, HTML, CSS</p>
+<p><strong>Difficulty:</strong> Hard</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/css">CSS parser</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/render">HTML handler and layout engine</a></p>
+<p><strong>References:</strong> <a href="http://www.w3.org/TR/CSS21">CSS 2.1 specification</a></p>
+
+
+<h2>Abstract RISC OS GUI code into a separate library</h2>
+<p>NetSurf's RISC OS user interface is rich and powerful. It supports many features such as editable toolbars, dialogue box handling and menu generation. If the interface code was abstracted into a separate library, other RISC OS applications could benefit from the availability of a sophisticated, tried and tested and style guide compliant GUI toolkit.</p>
+<p><strong>Skills required:</strong> C, RISC OS WIMP, OSLib</p>
+<p><strong>Difficulty:</strong> Medium &ndash; Hard</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/riscos/">RISC OS specific code</a></p>
+<p><strong>References:</strong> <a href="http://ro-oslib.sourceforge.net/">OSLib</a></p>
+
+<h2>Extracting the core into a library</h2>
+<p>NetSurf is currently conceptually split in two &ndash; the front-end (GUI) and the back-end (core):</p>
+<ul>
+<li>The GUI is responsible for providing entry points allowing the back end to open and manipulate browser windows, as well as plotting to them.</li>
+<li>The core does all fetching, parsing and layout. It also handles user preferences.</li>
+</ul>
+<p>These two parts are then statically linked together.</p>
+<p>Ideally, the back-end part of the browser would be abstracted to a stand-alone library, which a front-end could provide a table of entry points to. This allows for more than one program to use NetSurf's abilities efficiently, as well as giving us a chance to rationalise and tidy up the current rather ad-hoc API.</p>
+<p><strong>Skills required:</strong> C</p>
+<p><strong>Difficulty:</strong> Medium &ndash; Hard</p>
+<p><strong>Existing code:</strong> See &quot;Native Windows or Mac OS X ports&quot; and &quot;PDF plotter&quot;. <a href="http://source.netsurf-browser.org/trunk/netsurf/desktop/options.c?view=markup">Options code in back-end</a></p>
+<p><strong>References:</strong></p>
+
+<h2>Improved inline element handling</h2>
+<p>NetSurf's handling of inline elements is particularly incomplete. This task would involve improving the way in which these elements are handled. Particular issues include:</p>
+<ul>
+<li>Borders, margins, and padding</li>
+<li>Backgrounds (colour &amp; image) and background image position</li>
+<li>CSS white-space support (wrapping)</li>
+<li>Unicode line breaking algorithm</li>
+</ul>
+<p><strong>Skills required:</strong> C, HTML, CSS</p>
+<p><strong>Difficulty:</strong> Hard</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/render/layout.c?view=markup">Layout code</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/Docs/02-layout">Documentation</a></p>
+<p><strong>References:</strong> <a href="http://www.w3.org/TR/CSS21/">CSS 2.1 specification</a></p>
+
+<h2>Improved GTK front end; tabs, downloads, etc</h2>
+<p>The GTK port, while capable of navigating the web and displaying web pages, lacks may of the features which would make it suitable for every day browsing. There are lots of features that could be added which would improve the user experience. These include:</p>
+<ul>
+<li>Tabs</li>
+<li>Download implementation</li>
+<li>Text selection, with copy &amp; paste</li>
+<li>Save / export</li>
+</ul>
+<p><strong>Skills required:</strong> C, GTK</p>
+<p><strong>Difficulty:</strong> Medium</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/gtk/">GTK specific code</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/desktop/">Core code for text selection, export, etc</a></p>
+<p><strong>References:</strong></p>
+
+<div class="footer">
+<p>Copyright 2003 - 2009 The NetSurf Developers</p>
+</div>
+
+</div>
+
+
+<form method="get" action="http://www.google.co.uk/search">
+<div class="searchbox">
+<input type="hidden" name="q" value="site:netsurf-browser.org">
+<input type="text" name="q" maxlength="255"><br>
+<input type="submit" value="Search" name="btnG">
+</div>
+</form>
+
+</body>
+</html>
diff --git a/developers/gsoc/2009ideas.en b/developers/gsoc/2009ideas.en
new file mode 100644
index 0000000..d141d2c
--- /dev/null
+++ b/developers/gsoc/2009ideas.en
@@ -0,0 +1,280 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<title>NetSurf | Google Summer of Code 2009 Ideas</title>
+<link rel="stylesheet" title="Standard" type="text/css" href="/netsurf.css">
+</head>
+
+<body>
+<p class="banner"><a href="/"><img src="/netsurf.png" alt="NetSurf"></a></p>
+
+<div class="navigation">
+<div class="navsection">
+<ul>
+<li><a href="/about/">About NetSurf</a></li>
+<li><a href="/downloads/">Downloads</a></li>
+<li><a href="/documentation/">Documentation</a></li>
+<li><a href="/developers/">Development area</a>
+<ul>
+<li><a href="/developers/contribute">Contribution</a></li>
+<li><a href="/developers/gsoc">GSoC</a></li>
+</ul>
+</li>
+<li><a href="/webmasters/">Webmaster area</a></li>
+<li><a href="/contact/">Contact</a></li>
+</ul>
+</div>
+
+<div class="navsection">
+<ul class="languages">
+<!--<li><a href="index.de">Deutsch</a></li>-->
+<li>English</li>
+<!--<li><a href="index.fr">Français</a></li>-->
+<!--<li><a href="index.nl">Nederlands</a></li>-->
+</ul>
+</div>
+
+<div class="navsection">
+<ul class="sitelinks">
+<li><a href="http://wiki.netsurf-browser.org/">Development wiki</a></li>
+<li><a href="http://source.netsurf-browser.org/">SVN repository viewer</a></li>
+</ul>
+</div>
+
+</div>
+
+<div class="content">
+
+<p class="breadcrumbs"><a href="/">Home</a> » <a href="/developers/">Developer area</a> » Google Summer of Code</p>
+
+<h1>Google Summer of Code Ideas</h1>
+
+<p>This page lists our project ideas for <strong><a href="http://code.google.com/soc/">Google Summer of Code 2009</a></strong>.</p>
+
+<dl>
+<dt>Before applying for a project<dt>
+<dd>
+<ul>
+<li>Join our IRC channel <code>#netsurf</code> on <a href="http://freenode.net/">Freenode</a> and introduce yourself. Also, subscribe to the <a href="http://www.netsurf-browser.org/lists/netsurf-dev">developer mailing list</a>.</li>
+<li>Have access to a computer with supported OS (RISC OS, Linux, FreeBSD, BeOS, AmigaOS etc) or an OS relevant for the project you want to apply for (Windows, Mac OS).</li>
+<li>Get up to speed with <a href="http://subversion.tigris.org/">Subversion</a>, as we use this for source control, and get the NetSurf <a href="http://www.netsurf-browser.org/documentation/develop#Subversion">source code</a>.</li>
+<li><a href="http://www.netsurf-browser.org/documentation/develop#Compiling">Build NetSurf</a> and enjoy using it. (Ask if you need help.)</li>
+<li>Get familiarised with the source code &ndash; read the <a href="http://source.netsurf-browser.org/trunk/netsurf/Docs/">code documentation</a>.</li>
+<li>Consider submitting a patch to fix an issue on our <a href="http://sourceforge.net/tracker/?func=browse&group_id=51719&atid=464312">bug tracker</a> or <a href="http://sourceforge.net/tracker/?func=browse&amp;group_id=51719&atid=464315">feature request tracker</a></li>
+</ul>
+<dd>
+<dt>When applying for a project<dt>
+<dd>
+<ul>
+<li>Tell us about yourself, your experience, and why you want to work with us.</li>
+<li>Describe the project you want to do, and how you plan to go about doing it. <strong>Do not simply copy the project description from the ideas page.</strong></li>
+<li>Create a set of project milestones (ranging from a couple to maximum 10) with expected completion dates. This will be useful for you as guidance and for us to set our expectations right.</li>
+<li>Describe how you will test your contributions.</li>
+<li>Include your IRC nick in your application if you've spoken with us on <code>#netsurf</code>, so that we recognise you. <strong>We strongly recommend that you communicate with us before submitting an application.</strong></li>
+<li>We expect GSoC to be mostly equivalent to a full-time job. Therefore, please tell us if you have any other demands on your time.</li>
+</ul>
+<dd>
+<dt>During the project</dt>
+<dd>
+<ul>
+<li>Most of NetSurf team communication happens via #netsurf IRC during evenings and nights (<a href="http://en.wikipedia.org/wiki/Central_European_Time">CET</a>). We expect you to join in on a regular basis for help, discussions and project updates. Note that you're not restricted to speaking to your assigned mentor; the whole development team are willing to help wherever they can.</li>
+<li>When improving NetSurf's layout engine, be able to create <a href="http://source.netsurf-browser.org/trunk/netsurftest/">test cases</a> and verify that existing test cases don't get broken.</li>
+<li>Keep NetSurf's <a href="http://www.netsurf-browser.org/about/#ProjectGoals">project goals</a> in mind, especially the first point.</li>
+</ul>
+</dd>
+</dl>
+
+<p>There is some more information in the <a href="http://wiki.netsurf-browser.org/google-summer-of-code">GSoC section</a> of our wiki. Note particularly the <a href="http://wiki.netsurf-browser.org/gsoc-student-guidelines">student guidelines</a>.</p>
+
+<p>Please <a href="/contact/">get in touch</a> if any of these ideas appeal to you or if you have your own idea for either <a href="/">NetSurf</a> or one of NetSurf's <a href="/projects/">sub-projects</a>. Come and chat to the developers in the NetSurf IRC channel or post to the developer mailing list.</p>
+
+<p><strong>All these ideas require knowledge of C</strong>, as NetSurf is entirely written in C.</p>
+
+<p>See the <a href="http://sourceforge.net/tracker/?func=browse&amp;group_id=51719&amp;atid=464315">Feature Requests</a> tracker for more ideas.</p>
+
+<h2>Keyboard navigation</h2>
+<p>The browser currently requires a mouse to use. Keyboard shortcuts would move between and activate links, inputs, etc. The document structure is stored in a tree, and algorithms for walking through the tree to find the next link or input would need to be developed. A further improvement would be to take layout position into account and implement moving in 2D.</p>
+<p><strong>Skills required:</strong> C, HTML, CSS, usability</p>
+<p><strong>Difficulty:</strong> Easy</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/desktop/textinput.c?view=markup">Key press handling</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/render/box.h?view=markup">Box tree structures</a></p>
+<p><strong>References:</strong></p>
+
+<h2>Page reader</h2>
+<p>The web is a vast resource of information and services. Traditional browsers enable its access for people who can see. NetSurf attempts to help partially sighted users with a sophisticated scaling / zoom feature, however it could be improved further with a page reading option. Speech synthesis could be used to render pages as spoken output.</p>
+<p>There are already several libraries for speech synthesis. This project would first involve enabling NetSurf to speak the textual content of a page. Further work would improve the usability of the system by consideration for such factors as:</p>
+<ul>
+<li>Overview mode, which announces the document headings</li>
+<li>Section skipping to allow swift to access to the next part of the document</li>
+<li>Repetition of the current section or skipping back to previous sections</li>
+<li>How to differentiate link text from the rest of the text</li>
+<li>How to handle emphasis tags; &lt;em&gt; and &lt;strong&gt;</li>
+</ul>
+<p><strong>Skills required:</strong> C, accessibility</p>
+<p><strong>Difficulty:</strong> Medium &ndash; Hard</p>
+<p><strong>Existing code:</strong></p>
+<p><strong>References:</strong> <a href="http://espeak.sourceforge.net/">eSpeak text to speech synthesizer</a></p>
+
+<h2>LibDOM</h2>
+<p>LibDOM is an implementation of the W3C DOM. It currently implements a large proportion of DOM Level 3 Core. It is a work in progress and requires a fairly large number of fixes and additions before it can be integrated into NetSurf. Note that the scope of this project is quite large. We expect you to prioritise the parts you intend to implement.</p>
+<div class="details">
+<p>Things that need doing include:</p>
+<ul>
+<li>
+<p>Use vtables rather than known function names + switching on node type</p>
+<p>A vtable is a structure containing function pointers. Each node type will populate the vtable with the appropriate functions. These may then be called by any client without the client needing to know what the node type is.</p>
+</li>
+<li>
+<p>Implement the rest of DOM 3/2/1/0, primarily:</p>
+<ul>
+<li>Events</li>
+<li>HTML</li>
+<li>Other DOM modules</li>
+</ul>
+</li>
+<li>
+<p>Test suite</p>
+<p>The W3C provide a test suite for DOM implementations. It is stored in an XML format and currently, has transformations from this format to Java and JavaScript source code. Ideally, a transformation into C source code will be written so that LibDOM may be tested automatically.</p>
+</li>
+<li>
+<p>Integration with NetSurf</p>
+</li>
+</ul>
+</div>
+<p><strong>Skills required:</strong> C, DOM, XSLT (for the test suite)</p>
+<p><strong>Difficulty:</strong> Medium &ndash; Hard</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/dom/">LibDOM sources</a></p>
+<p><strong>References:</strong> <a href="http://www.w3.org/DOM/DOMTR">DOM specifications</a></p>
+
+<h2>Layout engine improvements</h2>
+<p>The layout engine forms part of the core of the browser. It is responsible for calculating the position of each part of the page. It currently has a number of deficiencies which should be addressed. These include the following parts of the CSS specification:</p>
+<ul>
+<li>Stacking order (<code style="color:#46a;">z-index</code>)</li>
+<li>Fixed position (<code style="color:#46a;">position: fixed;</code>)</li>
+<li>Fixed backgrounds (<code style="color:#46a;">background-attachment: fixed;</code>)</li>
+<li>Vertical alignment (<code style="color:#46a;">vertical-align</code>)</li>
+<li>Handling of white space and wrapping (<code style="color:#46a;">white-space</code>)</li>
+</ul>
+<p>There are also other layout issues which could be tackled. For example in table layout some CSS properties, like <code style="color:#46a;">height</code>, are not handled for table rows.</p>
+<p><strong>Skills required:</strong> C, HTML, CSS</p>
+<p><strong>Difficulty:</strong> Medium &ndash; Hard</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/render/layout.c?view=markup">layout engine</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/render/html_redraw.c?view=markup">rendering code</a></p>
+<p><strong>References:</strong> <a href="http://www.w3.org/TR/CSS21">CSS 2.1 specification</a>, <a href="http://www.w3.org/TR/CSS21/propidx.html">CSS 2.1 property index</a></p>
+
+<h2>Automated layout test engine</h2>
+<p>When NetSurf's layout engine is modified there is a risk that the change may break other pages. When problems are found, we create test cases which demonstrate the problem and keep them as regression tests once the issue is fixed. Currently, it takes quite a lot of manual effort to test NetSurf against all these test pages manually.</p>
+<div class="details">
+<p>This project will create a tool for automatically testing NetSurf's layout engine for regressions. There are three components that will make up the completed project:</p>
+<dl>
+<dt>Minimal test front end</dt>
+<dd>
+<p>The first task will be to write the code necessary to call NetSurf's core engine to fetch a page, perform layout on it and dump the page's box tree. The box dump specifies the x/y coordinates, width and height of every box in the render tree, as well as other pertinent information.</p>
+<p>This will involve the implementation of a simple test &quot;front end&quot;. Unlike the GTK, RISC OS or BeOS, etc front ends, it is not to be a usable web browser, but a command line tool. The minimal debug and framebuffer front ends can be used as example code.</p>
+</dd>
+<dt>A defined test data format</dt>
+<dd>
+<p>The existing test data is fine for manual testing. However, for automated testing to work, there needs to be some ground truthed comparison data for each test input. There also needs to be a way of determining which comparison data is associated with which test.</p>
+<p>To ensure that the test front end is working correctly, some amount of test input and comparison data will need to be created. The existing test suite can be used as a starting point for this.</p>
+</dd>
+<dt>A test runner</dt>
+<dd>
+<p>This can be some kind of script that runs the NetSurf test code for each page in the test suite and compares the box dump NetSurf produces with the expected data. It can output the test name and then PASS or FAIL.</p>
+</dd>
+</dl>
+</div>
+<p><strong>Skills required:</strong> C, HTML, CSS, scripting</p>
+<p><strong>Difficulty:</strong> Medium</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurftest/">existing test case repository</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/render/box.c?view=markup">box dump code &ndash; box_dump() (note that this is extremely verbose and contains much data that is of little use in automated testing)</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/debug/">debug front end</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/framebuffer/">framebuffer front end</a></p>
+<p><strong>References:</strong></p>
+
+<h2>Core UI enhancements</h2>
+<p>So that NetSurf can draw pages on different platforms, there is an interface between the core cross-platform code and the front end UI code that abstracts plotting. This interface is used to plot everything within the browser's content area.</p>
+<p>There are parts of NetSurf's user interface which are common across platforms. However, each platform frontend has to implement these separately. This results in unnecessary duplication of functionality. Therefore, it would be good to move support for some of the common widgets into the core and draw them using the same plotting interface as used for the content area.</p>
+<p>Initially, this will require:</p>
+<ul>
+<li>A plotter-based treeview for global history, cookie manager and bookmarks.</li>
+<li>A plotter-based (single &amp; multi line) text input widget.</li>
+</ul>
+<p>Further to the above, the way NetSurf's core implements HTML frames is not particularly portable. This could be addressed as an extension.</p>
+<p><strong>Skills required:</strong> C, Usability</p>
+<p><strong>Difficulty:</strong> Easy &ndash; Medium</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/desktop/tree.h?view=markup">Core treeview interface</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/desktop/tree.c?view=markup">Core treeview code</a></p>
+<p><strong>References:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/desktop/plotters.h?view=markup">plotters interface</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/riscos/textarea.c?view=markup">textarea widget code</a></p>
+
+<h2>Native Windows or Mac OS X port</h2>
+<p>NetSurf currently has user-interface layers for several systems including RISC OS, GTK (on Linux, FreeBSD, etc.), AmigaOS and BeOS. The GTK interface works on Windows or Mac OS X, but a native interface for these systems would give a better experience.</p>
+<p>The existing front end implementations can be used as examples. Of these, the framebuffer front end is very self contained and the debug front end is the most minimal. For the rendering of NetSurf's content area, a set of plotters needs to be implemented for drawing primitives such as rectangles, plotting bitmaps and text.</p>
+<p><strong>Skills required:</strong> C, Windows UI development or Mac OS X UI development</p>
+<p><strong>Difficulty:</strong> Medium</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/desktop/gui.h?view=markup">Declarations of functions that each interface must implement</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/desktop/plotters.h?view=markup">plotters interface</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/riscos/">RISC OS specific code</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/gtk/">GTK specific code</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/beos/">BeOS specific code</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/amiga/">AmigaOS specific code</a>, <a href="http://source.netsurf-browser.org/trunk/netsurf/framebuffer/">framebuffer specific code</a></p>
+<p><strong>References:</strong></p>
+
+<h2>Improved GTK front end</h2>
+<p>NetSurf's GTK front end is fairly usable at present, but would benefit from enhancement.</p>
+<p>Outstanding functionality includes:</p>
+<ul>
+<li>Find</li>
+<li>Bookmarks (also see core UI enhancements idea)</li>
+<li>Improved contextual right-click menu (&quot;Save image as...&quot; and &quot;Open in new tab...&quot; for example)</li>
+<li>GUI should adjust to match GTK interface preferences (icons in menu, text under toolbar buttons, etc.)</li>
+<li>File uploads</li>
+<li>View source</li>
+<li>Documentation (user guide)</li>
+<li>Favicons</li>
+</ul>
+<p><strong>Skills required:</strong> C, GTK</p>
+<p><strong>Difficulty:</strong> Easy &ndash; Medium</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/gtk/">GTK specific code</a></p>
+<p><strong>References:</strong></p>
+
+<h2>Improved Haiku/BeOS front end</h2>
+<p>NetSurf's BeOS frontend is reasonably usable, but would benefit from some enhancement.</p>
+<p>Outstanding functionality includes:</p>
+<ul>
+<li>Tabs</li>
+<li>Download window</li>
+<li>Bookmarks, also see core UI enhancements idea</li>
+<li>History, also see core UI enhancements idea</li>
+<li>Fix &lt;frame&gt; support, also see core UI enhancements idea</li>
+<li>Printing</li>
+<li>Preferences window</li>
+</ul>
+<div class="details">
+<p><strong>Note:</strong> Any student interested in working on this front end should apply to both the NetSurf and Haiku organisations. The developer who would mentor this project is also a mentor for the Haiku organisation.</p>
+</div>
+<p><strong>Skills required:</strong> C++, BeOS/Haiku UI toolkits</p>
+<p><strong>Difficulty:</strong> Easy &ndash; Medium</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/beos/">BeOS specific code</a></p>
+<p><strong>References:</strong> <a href="http://www.haiku-os.org/community/gsoc2009/ideas">Haiku organisation ideas</a></p>
+
+<h2>Improved RISC OS front end</h2>
+<p>NetSurf's RISC OS front end is the most feature complete. There are various ways in which it could be improved. These include:</p>
+<ul>
+<li>Tabs</li>
+<li>Better config e.g. web page language choice option</li>
+<li>Richer status bar, perhaps progress bar and icons for SSL, and to indicate what it's doing</li>
+<li>OLE</li>
+<li>Favicons</li>
+</ul>
+<p><strong>Skills required:</strong> C, RISC OS Wimp programming using OSLib</p>
+<p><strong>Difficulty:</strong> Medium</p>
+<p><strong>Existing code:</strong> <a href="http://source.netsurf-browser.org/trunk/netsurf/riscos/">RISC OS specific code</a></p>
+<p><strong>References:</strong> <a href="http://ro-oslib.sourceforge.net/">OSLib</a></p>
+
+<div class="footer">
+<p>Copyright 2003 - 2009 The NetSurf Developers</p>
+</div>
+
+</div>
+
+
+<form method="get" action="http://www.google.co.uk/search">
+<div class="searchbox">
+<input type="hidden" name="q" value="site:netsurf-browser.org">
+<input type="text" name="q" maxlength="255"><br>
+<input type="submit" value="Search" name="btnG">
+</div>
+</form>
+
+</body>
+</html>
diff --git a/developers/gsoc/index.en b/developers/gsoc/index.en
new file mode 100644
index 0000000..5b5e424
--- /dev/null
+++ b/developers/gsoc/index.en
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<title>NetSurf | Google Summer of Code</title>
+<link rel="stylesheet" title="Standard" type="text/css" href="/netsurf.css">
+</head>
+
+<body>
+<p class="banner"><a href="/"><img src="/netsurf.png" alt="NetSurf"></a></p>
+
+<div class="navigation">
+<div class="navsection">
+<ul>
+<li><a href="/about/">About NetSurf</a></li>
+<li><a href="/downloads/">Downloads</a></li>
+<li><a href="/documentation/">Documentation</a></li>
+<li><a href="/developers/">Development area</a>
+<ul>
+<li><a href="/developers/contribute">Contribution</a></li>
+<li><a href="/developers/gsoc">GSoC</a></li>
+</ul>
+</li>
+<li><a href="/webmasters/">Webmaster area</a></li>
+<li><a href="/contact/">Contact</a></li>
+</ul>
+</div>
+
+<div class="navsection">
+<ul class="languages">
+<!--<li><a href="index.de">Deutsch</a></li>-->
+<li>English</li>
+<!--<li><a href="index.fr">Français</a></li>-->
+<!--<li><a href="index.nl">Nederlands</a></li>-->
+</ul>
+</div>
+
+<div class="navsection">
+<ul class="sitelinks">
+<li><a href="http://wiki.netsurf-browser.org/">Development wiki</a></li>
+<li><a href="http://source.netsurf-browser.org/">SVN repository viewer</a></li>
+</ul>
+</div>
+
+</div>
+
+<div class="content">
+
+<p class="breadcrumbs"><a href="/">Home</a> » <a href="/developers/">Developer area</a> » Google Summer of Code</p>
+
+<h1>Google Summer of Code</h1>
+
+<p>The NetSurf project was selected to participate in <a href="http://code.google.com/soc/"> Google Summer of Code 2009</a> as a mentoring organisation. This year we are mentoring three students.</p>
+
+<dl class="gsocstudents">
+<dt>Bo Yang</dt>
+<dd>
+<ul>
+<li><span>Project:</span> Add DOM support to NetSurf</li>
+<li><span>Mentor:</span> John-Mark Bell (jmb)</li>
+<li><span>Details:</span> <a href="http://socghop.appspot.com/student_project/show/google/gsoc2009/netsurf/t124022820965">Abstract</a></li>
+</ul>
+</dd>
+<dt>Paul Blokus</dt>
+<dd>
+<ul>
+<li><span>Project:</span> Core UI enhancements and keyboard navigation</li>
+<li><span>Mentor:</span> Michael Drake (tlsa)</li>
+<li><span>Details:</span> <a href="http://socghop.appspot.com/student_project/show/google/gsoc2009/netsurf/t124022821160">Abstract</a></li>
+</ul>
+</dd>
+<dt>Mark Benjamin</dt>
+<dd>
+<ul>
+<li><span>Project:</span> NetSurf GTK+ interface improvements</li>
+<li><span>Mentor:</span> Rob Kendrick (rjek)</li>
+<li><span>Details:</span> <a href="http://socghop.appspot.com/student_project/show/google/gsoc2009/netsurf/t124022821359">Abstract</a></li>
+</ul>
+</dd>
+</dl>
+
+<!--p>Our students are blogging their progress this summer. You can follow their activities on <a href="http://planet.netsurf-browser.org/">Planet NetSurf</a>.</p-->
+
+<p>Our <a href="2009ideas">project ideas</a> page for Google Summer of Code is still available.</p>
+
+<p>We ask students to keep NetSurf's <a href="http://www.netsurf-browser.org/about/#ProjectGoals">project goals</a> in mind, especially the first point. We also ask them to communicate with the developers as much as possible. More information for students is available on the <a href="http://wiki.netsurf-browser.org/">development wiki</a>.</p>
+
+<h2>Google Summer of Code 2008</h2>
+
+<p>NetSurf participated as a mentoring organisation in <a href="http://code.google.com/soc/2008/">Google Summer of Code 2008</a>. We ran four projects which are listed below.</p>
+
+<dl class="gsocstudents">
+<dt>Adam Blokus</dt>
+<dd>
+<ul>
+<li><span>Project:</span> PDF Plotter and printing improvements</li>
+<li><span>Mentor:</span> John Tytgat (joty)</li>
+<li><span>Details:</span> <a href="http://code.google.com/soc/2008/netsurf/appinfo.html?csaid=8251210CF1E90869">Abstract</a>, <a href="http://vlists.pepperfish.net/pipermail/netsurf-users-netsurf-browser.org/2008-May/007587.html">Introduction</a></li>
+</ul>
+</dd>
+<dt>Sean Fox</dt>
+<dd>
+<ul>
+<li><span>Project:</span> Abstract the Core Functionality to Stand-alone Libraries</li>
+<li><span>Mentor:</span> James Bursa (zamez)</li>
+<li><span>Details:</span> <a href="http://code.google.com/soc/2008/netsurf/appinfo.html?csaid=CF6315FE5AD6B032">Abstract</a></li>
+</ul>
+</dd>
+<dt>Michael Lester</dt>
+<dd>
+<ul>
+<li><span>Project:</span> Improved GTK Frontend</li>
+<li><span>Mentor:</span> Rob Kendrick (rjek)</li>
+<li><span>Details:</span> <a href="http://code.google.com/soc/2008/netsurf/appinfo.html?csaid=2794A7C4A5D222D8">Abstract</a>, <a href="http://vlists.pepperfish.net/pipermail/netsurf-users-netsurf-browser.org/2008-April/007488.html">Introduction</a></li>
+</ul>
+</dd>
+<dt>Andrew Sidwell</dt>
+<dd>
+<ul>
+<li><span>Project:</span> Work on and integrate Hubbub</li>
+<li><span>Mentor:</span> John-Mark Bell (jmb)</li>
+<li><span>Details:</span> <a href="http://code.google.com/soc/2008/netsurf/appinfo.html?csaid=4A19E24A0A8BC7C6">Abstract</a>, <a href="http://vlists.pepperfish.net/pipermail/netsurf-users-netsurf-browser.org/2008-April/007528.html">Introduction</a></li>
+</ul>
+</dd>
+</dl>
+
+<p>Our <a href="2008ideas">2008 GSoC ideas page</a> is still available.</p>
+
+
+<div class="footer">
+<p>Copyright 2003 - 2009 The NetSurf Developers</p>
+</div>
+
+</div>
+
+
+<form method="get" action="http://www.google.co.uk/search">
+<div class="searchbox">
+<input type="hidden" name="q" value="site:netsurf-browser.org">
+<input type="text" name="q" maxlength="255"><br>
+<input type="submit" value="Search" name="btnG">
+</div>
+</form>
+
+</body>
+</html>
diff --git a/developers/index.en b/developers/index.en
new file mode 100644
index 0000000..ad2a712
--- /dev/null
+++ b/developers/index.en
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<title>NetSurf | Developers and Contributors</title>
+<link rel="stylesheet" type="text/css" href="/netsurf.css">
+<link rel="icon" type="image/png" href="/webimages/favicon.png">
+</head>
+
+<body>
+<p class="banner"><a href="/"><img src="/netsurf.png" alt="NetSurf"></a></p>
+
+<div class="navigation">
+<div class="navsection">
+<ul>
+<li><a href="/about/">About NetSurf</a></li>
+<li><a href="/downloads/">Downloads</a></li>
+<li><a href="/documentation/">Documentation</a></li>
+<li><a href="/developers/">Development area</a>
+<ul>
+<li><a href="/developers/contribute">Contribution</a></li>
+<li><a href="/developers/gsoc">GSoC</a></li>
+</ul>
+</li>
+<li><a href="/webmasters/">Webmaster area</a></li>
+<li><a href="/contact/">Contact</a></li>
+</ul>
+</div>
+
+<div class="navsection">
+<ul class="languages">
+<!--<li><a href="index.de">Deutsch</a></li>-->
+<li>English</li>
+<!--<li><a href="index.fr">Français</a></li>-->
+<!--<li><a href="index.nl">Nederlands</a></li>-->
+</ul>
+</div>
+
+<div class="navsection">
+<ul class="sitelinks">
+<li><a href="http://wiki.netsurf-browser.org/">Development wiki</a></li>
+<li><a href="http://source.netsurf-browser.org/">SVN repository viewer</a></li>
+</ul>
+</div>
+
+</div>
+
+<div class="content">
+
+<p class="breadcrumbs"><a href="/">Home</a> » Developer area</p>
+
+<h1>Developer and Contributor Area</h1>
+
+<p>People ask us how they can help the NetSurf project. This section of the site is here to help people contribute to the project. You should be able to find all you need here. If not, please <a href="/contact/">contact us</a>!</p>
+
+<div class="leftcol">
+
+<h2>Contributing to NetSurf</h2>
+
+<p>Everyone is very welcome to help NetSurf! There are all sorts of ways to contribute to the project.</p>
+
+<dl>
+<dt>Publicity</dt>
+<dd>Help spread the word! NetSurf needs user, contributor and developer participation to stay vibrant.</dd>
+<dt>Provide feedback</dt>
+<dd>If you'd like to be involved in the future direction of NetSurf's development you can help by making feature requests and bug reports. Discussion of what you like and dislike about NetSurf is useful to the developers.</dd>
+<dt>Non-programming contribution</dt>
+<dd>If you'd like to contribute directly to the project but can't program, there are still many ways for you to participate. Details in the <a href="contribute">contribution guide</a>.</dd>
+<dt>Programming</dt>
+<dd>If you can program then you are welcome to join the developers! If there's some aspect you'd like to improve, or feature you'd like to implement, contact us via the developer mailing list or on IRC and go from there. Also, see the instructions for <a href="#SubmittingPatches">submitting patches</a>.</dd>
+</dl>
+
+<p>Take a look at the <a href="contribute">contribution guide</a> for more ideas and information.</p>
+
+<h2>Run bleeding edge NetSurf</h2>
+
+<p>The most important way though which NetSurf users can contribute to the NetSurf project is by regularly testing the current development builds and providing feedback.</p>
+
+<p>RISC OS users can download a precompiled test build, which can be installed and run in exactly the same way as NetSurf releases. Users of other platforms can obtain the latest source code and follow the simple compilation instructions.</p>
+
+<p>Once running the latest build you can browse the web as normal and let us know if you run into problems. Does the browser crash? Can you reproduce the crash? Did it crash at a specific site? What was the URL? Do you like the new features of the development build? How could NetSurf's interface be improved? These and more are the sorts of questions we're interested in your answers to. Our goal is to make NetSurf a piece of software everyone loves to use, and to do that we need your input!</p>
+
+<p>The NetSurf documentation contains guidelines for <a href="/documentation/info#FeatureRequests">making feature requests</a> and <a href="/documentation/info#Bugs">reporting bugs</a>.</p>
+
+<h2 id="SubmittingPatches">Submitting patches</h2>
+
+<p>If you've developed a patch for NetSurf you can send it to us by either:</p>
+
+<ol>
+<li>Putting it on the <a href="http://sourceforge.net/tracker/?atid=464314&amp;group_id=51719&amp;func=browse">patch tracker</a>.</li>
+<li>Posting to the <a href="/contact/#MailingLists">NetSurf Development mailing list</a> and attaching the patch.</li>
+<li>Giving the patch to one of the developers in the <a href="/contact/#IRCChannel">NetSurf IRC channel</a>.</li>
+</ol>
+
+<p>If it is a tiny patch, the third option is best. Otherwise use the first or second.</p>
+
+<p>Our pictorial <a href="StyleGuide.pdf">Style Guide</a> (single-page PDF) shows our code style.</p>
+
+<h2>Porting NetSurf</h2>
+
+<p>We are always interested to hear from people porting NetSurf to different hardware or operating systems. If you are keen to port NetSurf to a new platform please get in touch. NetSurf's developers are keen to ensure NetSurf is highly portable, so feedback is appreciated.</p>
+
+<p>We would be especially interested in hearing from anyone who could implement the NetSurf user interface under Windows.</p>
+
+</div>
+
+<div class="rightcol">
+<div>
+
+<h2>Getting NetSurf source code</h2>
+
+<p>The source is kept in a Subversion repository. To check the latest source out use the command provided in the <a href="/documentation/develop#Subversion">developer documentation</a>.</p>
+
+<p>Instructions for <a href="http://source.netsurf-browser.org/*checkout*/trunk/netsurf/Docs/BUILDING-GTK">building the GTK version</a> will be checked out with the source code. A guide to <a href="/documentation/robuild">building NetSurf on RISC OS</a> can be found in the documentation section of the web site.</p>
+
+<p>It is also possible to browse the source online via the <a href="http://source.netsurf-browser.org/trunk/netsurf/">web interface</a>.</p>
+
+<h2>Recent changes</h2>
+
+<p>All times are in UTC.</p>
+<!--#include virtual="/downloads/development/shortlog.txt"-->
+
+<h2>Contact the other developers</h2>
+
+<p>If you want to contribute to NetSurf, the best thing to do is to get in touch with the developers. NetSurf's core development team communicate a great deal via <a href="/contact/#IRCChannel">IRC</a> and also via the <a href="/contact/#MailingLists">developer's mailing list</a>.</p>
+
+<p>If you speak with the developers, you may find someone has already started what you intend to do or already put considerable thought into how to do it.</p>
+
+<h2>General information</h2>
+
+<p>We intend to make new major releases of NetSurf every year or so. These will happen when there are enough new features in the development versions to justify a new release. Prior to releases, addition of new features will be halted, and only bugfixes will occur. Major new releases will be made when NetSurf is sufficiently stable and the development version contains significant features that have not yet been released.</p>
+
+<p>The <a href="/documentation/progress">progress page</a> gives an indication of the current status of NetSurf's features.</p>
+
+</div>
+</div>
+
+
+
+<div class="footer">
+<p>Copyright 2003 - 2009 The NetSurf Developers</p>
+</div>
+
+</div>
+
+
+<form method="get" action="http://www.google.co.uk/search">
+<div class="searchbox">
+<input type="hidden" name="q" value="site:netsurf-browser.org">
+<input type="text" name="q" maxlength="255"><br>
+<input type="submit" value="Search" name="btnG">
+</div>
+</form>
+
+</body>
+</html>
diff --git a/developers/publicity.en b/developers/publicity.en
new file mode 100644
index 0000000..beac060
--- /dev/null
+++ b/developers/publicity.en
@@ -0,0 +1,101 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<title>NetSurf | Publicity</title>
+<link rel="stylesheet" type="text/css" href="/netsurf.css">
+<link rel="icon" type="image/png" href="/webimages/favicon.png">
+</head>
+
+<body>
+<p class="banner"><a href="/"><img src="/netsurf.png" alt="NetSurf"></a></p>
+
+<div class="navigation">
+<div class="navsection">
+<ul>
+<li><a href="/about/">About NetSurf</a></li>
+<li><a href="/downloads/">Downloads</a></li>
+<li><a href="/documentation/">Documentation</a></li>
+<li><a href="/developers/">Development area</a>
+<ul>
+<li><a href="/developers/contribute">Contribution</a></li>
+<li><a href="/developers/gsoc">GSoC</a></li>
+</ul>
+</li>
+<li><a href="/webmasters/">Webmaster area</a></li>
+<li><a href="/contact/">Contact</a></li>
+</ul>
+</div>
+
+<div class="navsection">
+<ul class="languages">
+<!--<li><a href="index.de">Deutsch</a></li>-->
+<li>English</li>
+<!--<li><a href="index.fr">Français</a></li>-->
+<!--<li><a href="index.nl">Nederlands</a></li>-->
+</ul>
+</div>
+
+<div class="navsection">
+<ul class="sitelinks">
+<li><a href="http://wiki.netsurf-browser.org/">Development wiki</a></li>
+<li><a href="http://source.netsurf-browser.org/">SVN repository viewer</a></li>
+</ul>
+</div>
+
+</div>
+
+<div class="content">
+
+<p class="breadcrumbs"><a href="/">Home</a> » <a href="/developers/">Developer area</a> » Publicity</p>
+
+<h1>Publicity</h1>
+
+<p>There isn't much here yet, except the NetSurf logo image in vector format.</p>
+
+<dl>
+<dt>Full NetSurf logo</dt>
+<dd>
+<ul>
+<li><a href="http://source.netsurf-browser.org/trunk/art/logo/full/NetSurf%2Cd94">Original ArtWorks format</a></li>
+<li><a href="http://source.netsurf-browser.org/trunk/art/logo/full/NetSurf.svg">SVG format</a></li>
+</ul>
+</dd>
+<dt>NetSurf emblem (no text)</dt>
+<dd>
+<ul>
+<li><a href="http://source.netsurf-browser.org/trunk/art/logo/emblem/NetSurf%2Cd94">Original ArtWorks format</a></li>
+<li><a href="http://source.netsurf-browser.org/trunk/art/logo/emblem/NetSurf.svg">SVG format</a></li>
+</ul>
+</dd>
+</dl>
+
+<p>More coming soon.</p>
+
+<h2>Web buttons</h2>
+
+<h2>Web banners</h2>
+
+<h2>Magazine adverts</h2>
+
+
+
+
+
+<div class="footer">
+<p>Copyright 2003 - 2009 The NetSurf Developers</p>
+</div>
+
+</div>
+
+
+<form method="get" action="http://www.google.co.uk/search">
+<div class="searchbox">
+<input type="hidden" name="q" value="site:netsurf-browser.org">
+<input type="text" name="q" maxlength="255"><br>
+<input type="submit" value="Search" name="btnG">
+</div>
+</form>
+
+</body>
+</html> \ No newline at end of file