Introduction
Mike Lester
element3260 at gmail.com
Tue Apr 22 21:57:52 BST 2008
Hello everyone, I'm a GSoC student under NetSurf this year and I just
thought I would post a little introduction about myself and my project.
My name is Michael Lester (mikeL on IRC) and I will be studying Computer
Science as a freshman next year at the Rose-Hulman Institute of Technology
in Indiana, US. For my project I will be improving the GTK port of Netsurf
with the help of my mentor, Rob Kendrick. For more information on my project
(and future updates) you can visit my progress log
here<http://mikelgsoc.blogspot.com/>.
My application:
Improved GTK Frontend
Benefits to the Community
Improving the GTK interface of the NetSurf browser will bring its low
footprint and high speed capabilities to a larger, more diverse community;
this will help to fulfill Netsurf's goal of Portability. Since there are
currently no other fully functional, small-footprint browsers available for
GNOME, and because NetSurf was previously only available for RISC OS based
systems, this project will open the door for many more users to join the
NetSurf community. This project also aims to fulfill another of NetSurf's
goals, that of a Superior User Experience. Combining the tried and tested
GNOME interface with NetSurf will provide the perfect mix of usability and
speed. Improving upon nsgtk will ensure that any GNOME user who adopts
NetSurf will find it completely usable and consistent with the rest of his
(or her) desktop environment.
Deliverables Summary
* Improved GTK UI that is completely GNOME standards compliant
* Fully functional browser for *nix based systems (and BSD)
Motivation
Perhaps the most important component of a GSoC project is the students
motivation to complete it. I know that this will not be an issue because
having already met and talked with most of the development team, I am
already very excited to contribute to the NetSurf project. UI development
has always interested me, and I look forward to applying the knowledge I
gained from my recent reading of Andrew Krause's "Foundations of GTK+
Development". Furthermore, I will be perpetually motivated by the fact that
I myself have also been looking for a less resource intensive browser, so in
a way I am working on NetSurf GTK for myself. (Which anyone can tell you is
almost always the best motivation).
Project Details
My first goal is to bring NetSurf GTK up to the standards detailed in the
GNOME Human Interface Guidelines 2.0 [1]. Next I plan on implementing all
(or most) of the features required for nsgtk to be considered fully
functional. Any remaining time will be spent improving the UI and adding
extra features such as tabs and customizable toolbars.
A more specific outline is detailed here:
* Various GUI Fixes
Fix the about and preferences dialogs to comply with Gnome Interface
Guidelines[1]. Provide options to show toolbar buttons as text, graphics or
both. Also provide an option to return all toolbars to the control center
default for this setting. Fix right click menu so that it displays only the
most often used actions (But if the menu bar is disabled it will remain the
same as it is now). For accessibility purposes, make sure every toolbar
action has an equivalent menu item.
* Text Selection and "Find" toolbar (Early June)
Implement the text selection functionality from the core code. Add ability
to copy/cut/paste selected text. Add find ability via toolbar, with live
search (if its not too expensive), similar to Firefox.
* Downloads Capability (Late June)
Implement downloads using the current "mock-up" design. Once working,
redesign downloads dialog perhaps using the Transmission torrent client as
inspiration.
* Bookmarks (Early July)
Implement by using folders and tree view. Add "Bookmarks" menu and create
"Edit Bookmarks" and "Add Bookmark" dialogs. If enough time remains,
reorganize using tags (similar to Epiphany) or investigate other ways of
bookmark organization.
* Save/Export (Mid July)
Save page as index file with CSS, Java, and images. Export as text, HTML,
and PDF (among other formats). This will most likely involve rewriting the
GTK plotters to rely entirely on Cairo rather than GDK, which will present
the most elegant solution as Cairo can plot to SVG and PDF easily.
* Simple Printing (Late July)
Setup a working printing dialog that is able to print both the full page
or text only. Attempt to add more advanced options such as "Print background
images/colors" and selection-only printing.
* More GUI features (Remaining Time / Post GSoC)
Tabbed browsing is an often requested feature and should not take long to
implement. Add extra functionality to the location entry by making it double
as a bookmark/web search. For instance, if one enters "burgers" as the
location, it should first check if it is the name of a bookmark, but if not
then query DNS (as usual, to check for local hostnames), but if nothing is
returned query the default search engine (to be specified in preferences).
Implementing customizable toolbars will open the door to other features like
a bookmarks toolbar. I would also like to add a contextual right-click menu
(right clicking on an image gives the option to "Save Image As"). If no one
else picks up the project, Keyboard Navigation (mostly tabbing between
forms) is a definite (but perhaps optimistic) goal.
By the end of the summer I will deliver a fully functional and desktop
standards compliant browser.
Project Schedule
I will be maintaining a daily log of my activity, not only what additions
and fixes I make, but also what I learn and the problems I'm having. This
will help me keep clear track of my goals as well as allow my mentor to know
exactly where I am in the process.
Biography
I will be (most likely) attending Purdue university next year to pursue my
undergraduate degree in Computer Science. I discovered Linux when I was 14
and began programming in C that same year during a summer program at
Vanderbilt University. My first chance to contribute to the open-source
community which had fostered my curiosity all throughout high school came
this past winter with the advent of GHOPC, the Google Highly Open
Participation Contest. During GHOPC I worked under the GNOME Project to
develop several patches for programs such as gThumb. I concluded the program
with a new appreciation for what open-source meant, as I had never had
anyone that I was able to study programming/computer science under. Although
while in high school my programming interests were centered mostly around
games, I programmed a remake of Asteroids for my AP Java class which earned
me AP computer science student of the year, I have lately become more
interested in UI development, especially since my participation in GHOPC and
my reading of "Foundations in GTK+ Development". Since this winter I have
been eagerly searching for an outlet to further develop my abilities.
Closing Note
Although I am young, I do not doubt my ability to complete this project
and look forward instead to the vast amount of experience that it will
afford me. One thing is for sure, gentlemen, my skills will pay the bills. I
look forward to continuing my work with the most excellent community of
NetSurf developers that I have come to know over the past few weeks. Thank
you for your time, and I hope this application has earned your serious
consideration.
Best regards,
Michael Lester
(It should also be noted that I do plan on continuing to work on nsgtk well
after GSoC has ended)
Links to Further Information
[1] http://library.gnome.org/devel/hig-book/stable/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://vlists.pepperfish.net/pipermail/netsurf-users-netsurf-browser.o=
rg/attachments/20080422/a2fa6623/attachment.htm
More information about the netsurf-users
mailing list