Wednesday, August 1, 2007

Weekly Update

Last week:
- Finished implementing the history auto-completion model on top of the sqlite3 backend.
- Started writing a simple prototype to test the auto-completion model (thanks tko for the code!)
- Created Python bindings for the backend API.
- As a test case for the bindings, wrote a Python script to import existing history.xml file into the sqlite3 backend.
- Discussed project deadlines with Xan: the goal is to get auto-completion working by the 10th of this month and have the new history backend merged into the SoC Epiphany branch by the end of month. Bookmarks will have to wait.
- Made couple of minor patches to ephy.

Planned this week:
- Test the auto-completion prototype with simulated history item added/removed/changed signals.
- Integrate it with ephy.
- Onward to ephy-history-window!

Thursday, July 26, 2007

Building Epiphany with the WebKit backend

I recently built Epiphany with the experimental WebKit backend as per Xan's instructions here. These are few notes that might be helpful to others:
- Once you get the patch, apply it with this command in the Ephy source directory:
patch -p1 < ephy-webkit.patch
- Make sure you have the pre-requisite packages before you build WebKit. This page is a good reference on building WebKit with Gdk. Refer to this page for common build errors.
- Test your WebKit build by running the simple test browser: WebKit/WebKitBuild/Debug/WebKitTools/GdkLauncher/GdkLauncher
- To build Epiphany from svn, you will need GLib-2 2.13.4 or higher and GTK+-2 2.11.6 or higher. You can get them using JHBuild:
jhbuild buildone glib gtk+

Wednesday, July 25, 2007

Weekly Update

Last Week:
- Started working on integrating history with the SQLite3 backend
- Moved the auto-completion model to the new backend

Planned this Week:
- Move the history-window/ephy-tab/etc. stuff to the new backend
- Test the integrated build

Wednesday, July 18, 2007

Weekly Update

Last week:
- Implemented the GObject-based EphyHistoryNode classes for storing query results.
- Implemented the ephy-history API under the SQLite prototype.

Planned this week:
- Swap out the current ephy-history implementation with the SQLite prototype in Epiphany
- Discuss use cases with Reinouts and Xan for UI and API design

Wednesday, July 11, 2007

Weekly Update

Last Week:
- Severely distracted, not very productive.
- Based on the History UI use cases and design, designed the Data Types (and queries) for storing the results from the backend API.
- Started implementing the GObject hierarchy for the backend data-types (EphyHistoryNode->EphyHistoryPageNode, ...)
- Fore more info and lots of updates, see the project wiki page

Planned this week:
- Finish implementing the ephy-history API for the prototype
- Start merging the code into Ephy so that we can have a History window (and auto-completion) working with a SQLite backend!
- SoC mid-term review!

Tuesday, July 3, 2007

Weekly Update

Last week:
- Travelled for school work
- Implemented most of the ephy-history API in the prototype
- Redefined the next project deliverable with Xan: the goal is now to merge the history prototype with Ephy and get it working under Ephy.

This week:
- Finish off the ephy-history prototype and test it.
- Merge the prototype with Epiphany (in a separate git/svn branch of Ephy)

Monday, June 11, 2007

Weekly Update

Last week:
- Started implementing the prototype for Ephy History based on the current ephy-history API
- Implemented the nsIGlobalHistory2 interface for the prototype
- Identified couple of milestones for the project with Xan:
1. 11th June - 25th June: Finish the SQLite3 backend prototype for history, bookmark and favicon services.
2. 26th June - 9th July: Test the prototype for correctness and performance, fine-tune the design. Rinse. Repeat. Merge the prototype with Epiphany (create a separate svn branch)
3. 9th July: Checkin the code for SoC mid-term evaluation.

Planned this week:
- Complete the ephy-history prototype
- Write Python GObject wrappers for ephy-history

Tuesday, June 5, 2007

Weekly Update

Last week:
- Decided to implement the prototype using the SQLite C API instead of using mozStorage. There are two reasons for this: the Sqlite C API is better documented and I code much faster in C. Once the initial prototype is ready and refined, it should be easy to write a mozStorage backend.
- Studied the current ephy-history.[ch] API and its usage within the Ephy codebase.
- Started implementing the prototype for "history" as a GObject style library. Currently, it can create a database connection, create the schema (tables) and run simple queries. The plan is to create Python bindings for the library once it is completed. We can then test the prototype using Python code.
- Studied the SQLite3 and GObject/Glib APIs.

Planned next week:
- More prototype hacking.
- Update the library API and the DB schema based on feedback.

Tuesday, May 29, 2007

Weekly Update

Last week:
- Got the GNOME svn account.
- Checked out and built Ephy from trunk.
- Created a project wiki and this blog.
- Proposed a simple database schema for the Ephy bookmark+history store. The schema is heavily inspired by the Places bookmarking system used in Firefox.
- Proposed development of an initial prototype of the SQLite backend using the mozStorage system. Ephy already embeds Mozilla and mozStorage comes for free with it. Places is also available in the Mozilla runtime but Ephy's bookmarking system has a different design so re-using Places might not be a good idea.
- Checked out and built XULRunner from trunk with mozStorage (and Places) enabled.

Planned this week:
- Figure out the prototype design e.g. how to exercise/drive queries.
- Develop the prototype.
- Refine the schema for efficiency based on "use cases" - both of the users and of Ephy's other components that depend on history/bookmarks.

Sunday, May 27, 2007

Hello, World!

This blog will provide updates about the Google Summer of Code 2007 project for the GNOME Epiphany browser. Occasionally, it will also provide uninformed opinion, incoherent ramblings and foolish rants.