wiki:GSoC2012/Node.js/Journal

Community Bonding Period Week 1: April 23-April 29

  • wrote a draft for the APi - here
  • designed Enquire to have a single set method
  • designed a Query spec structured as a JS object

Community Bonding Period Week 2: April 30–May 6

  • read the V8 API docs
  • read and understood the current binding
  • found testing framework to use - http://vowsjs.org

Community Bonding Period Week 3: May 7–May 13

  • started work on finding a way to provide sync & async variants from the same code
  • started work on isolating libeio code to easily switch to node 0.6+

Community Bonding Period Week 4: May 14–May 20

  • worked with Liam to improve the method of providing sync & async variants from the same code

Coding Week 1: May 21-May 27

  • worked with Liam to improve the method of providing sync & async variants from the same code

Coding Week 2: May 28-June 3

  • worked with Liam to improve the method of providing sync & async variants from the same code

Coding Week 3: June 4-June 10

  • worked with Liam to improve the method of providing sync & async variants from the same code
  • researched the way Events are emitted differently in node 0.6
  • reimplemented (sync+async):
    • Database - New, open
    • WritableDatabase - New, replace_document, commit, begin_transaction, commit_transaction
  • implemented:

Coding Week 4: June 11-June 17

  • started to implemented a JS QueryObject to include all the Query constructors:
    • string
    • {tname: string, wqf: uint32=1, pos: uint32=0}
    • {op: string, queries: [QueryObject, ...], parameter: number=0}
    • {op: string, left: string, right: string}

Coding Week 5: June 18-June 24

  • finished implementing the JS QueryObject to include all the Query constructors:
    • {op: string, query: QueryObject, parameter: number}
    • {op: string, slot: uint32, begin: string, end: string}
    • {op: string, slot: uint32, value: string}
  • reimplemented:
    • Document - get_data
  • implemented:
    • Document - add_value, get_value, remove_value, clear_values, set_data, add_posting, add_term, add_boolean_term, remove_posting, remove_term, clear_terms, termlist_count, values_count, get_docid, serialise, get_description
  • created a function to parse the JS arguments of a method and return an error string with the correct format here

Coding Week 6: June 26-July 1

  • out of town for 3 days
  • started work on a testing framework
  • implemented:
    • Document - unserialise, termlist, values
    • Database - get_document

Coding Week 7: July 2-July 8

  • reimplemented:
  • implemented:
    • Database - close, keep_alive, get_description, has_position, get_doccount, get_lastdocid, get_avlength, get_termfreq, term_exists, get_collection_freq, get_value_freq, get_value_lower_bound, get_value_upper_bound, get_doclength_lower_bound, get_doclength_upper_bound, get_wdf_upper_bound, get_doclength, get_spelling_suggestion, get_metadata, get_uuid
  • added a basic testing framework
  • tests:
    • added the Document tests from the perl binding

Coding Week 8: July 9-July 15 (Midterm deadline July 13)

  • bugfixes:
    • Document#termlist
  • reimplemented:
  • tests:
    • updated the testing framework
    • added tests for all the methods in the Document class
  • out of town for 2 days

Coding Week 9: July 16-July 22

  • implemented:
    • WritableDatabase - cancel_transaction, delete_document, add_spelling, remove_spelling, add_synonym, remove_synonym, clear_synonyms, set_metadata, get_description
    • Database - termlist
  • bugfixes
    • Document::Termlist_process - fixed segfault
  • improved the testing framework

Coding Week 10: July 23-July 29

  • implemented:
    • Database - allterms, spellings, synonyms, synonym_keys, metadata_keys, postlist, positionlist, valuestream
  • created a GenericData class to be used by multiple generic methods and updated methods to use it
  • tests:

Coding Week 11: July 30-August 5

  • implemented:
    • Query - serialise, unserialise, get_description, get_length, empty, get_terms, match_all, match_none
  • tests
    • basic Query tests

Coding Week 12: August 6-August 12

  • implemented:
    • Enquire - set_parameters, set_query, get_query, get_description
    • Stem - get_description, get_available_languages
    • RSet - get_description, size, empty, add_document, remove_document, contains
    • TermGenerator - set_database, set_stemmer, set_document, get_document, index_text, index_text_without_position, increase_termpos, get_termpos, set_termpos
  • bugfixes
    • serialise and unserialise on Document and Query use Buffer instead of String

Coding Week 13: August 13-August 20 (Final evaluation based on work up to August 20)

  • bugfixes
    • added assignment operator on GenericData::Item
    • fixed segfault caused by Query constructor
  • tests
  • implemented:
    • Enquire - get_mset (with RSet)
Last modified 12 years ago Last modified on 17/08/12 17:32:36
Note: See TracWiki for help on using the wiki.