incubator-ooo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ksch...@apache.org
Subject svn commit: r1204746 [2/8] - in /incubator/ooo/ooo-site/trunk/content/dba: FAQ/ QA/ QA/pics/ QA/testfolder/ QA/testfolder/ooQAReloaded/ __modules/ bugs/ css/ development/ downloads/ drivers/ drivers/mdb/ drivers/postgresql/ drivers/sqlite/ howto/ image...
Date Mon, 21 Nov 2011 23:16:13 GMT
Added: incubator/ooo/ooo-site/trunk/content/dba/development/projects.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/dba/development/projects.html?rev=1204746&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/dba/development/projects.html (added)
+++ incubator/ooo/ooo-site/trunk/content/dba/development/projects.html Mon Nov 21 23:15:57
2011
@@ -0,0 +1,499 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+  <head>
+    <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+    <meta content="text/css" http-equiv="Content-Style-Type">
+    <style type="text/css">@import url("/css/dba.css");</style>
+    <style type="text/css">.effort_header { font-weight:bold; }</style>
+    <title>Developer projects</title>
+    <script type="text/javascript" src="/js/dba_default.js"></script>
+  </head>
+  <body>
+    <b>Project Sections</b>:
+        <a href="../index.html">Home</a>
+      | <a href="../specifications/index.html">Specifications</a>
+      | <a href="../QA/index.html">QA</a>
+      | <a href="./index.html"><b>Development</b></a>
+      | <a href="../drivers/index.html">Database Drivers</a><br/>
+        <b>Development Sections</b>:
+            <a href="../development/projects.html"><b>Developer Projects</b></a>
+          | <a href="./project_structure.html">Project Structure</a>
+    <hr/>
+    <div class="dba">
+      <h1 id="dba_dev_projects">Developer Projects</h1>
+      <p>Below is a list of projects which could be implemented by interested developers.
+      Most of these projects are relatively self-contained, and do not require too much knowledge
+      about OOo's code infrastructure.</p>
+      <p>Note that this list doesn't claim to be a complete repository of what will
be
+      done in the near/medium future. There may be items on the list which will never
+      be realized, and there definately are items which are not on the list, but will
+      be implemented.</p>
+      <p>If you are interested in anything from the list, please speak at
+        <a href="mailto:dev@dba.openoffice.org">dev@dba.openoffice.org</a>. We'll
gladly
+        help you to get started on this.</p>
+
+      <p>Also, make sure you don't miss <a href="http://development.openoffice.org/todo.html">OpenOffice.org's
global TODO list</a>,
+      which also contains interesting projects for developers.</p>
+
+      <p>Here is what you'll find below:
+      <ol>
+        <li>
+          <a href="#dbase_joins">Joins in dBase queries</a></li>
+        <li>
+          <a href="#ldap">SDBC driver for LDAP directories</a></li>
+        <li>
+          <a href="#form_controls">New/Enhanced Form Controls</a></li>
+        <li>
+          <a href="#form_dialogs">Dialogs with Form Functionality</a></li>
+        <li>
+          <a href="#driver_modules">Database driver UI modularization</a></li>
+        <li>
+          <a href="#single_file_backend">HSQLDB: single-file backend</a></li>
+        <li>
+          <a href="#embed_derby">Embed Derby into OpenOffice.org databases</a></li>
+        <li>
+          <a href="#cross_access">native, cross-platform access to MS Access databases</a></li>
+        <li>
+          <a href="#vcards">SDBC driver for vCards</a></li>
+        <li>
+          <a href="#new_filter">New Filter Dialog</a></li>
+      </ol></p>
+
+      <h3>General Notes</h3>
+      <p>Whenever we talk about user interface work, this implies working with VCL,
the
+      Visual Class Library in OpenOffice.org. If you are not familar with it, you
+      will curse it, since especially some of the older parts never heard the word
+      "documentation". On the other hand: In opposite to the native platform
+      controls, everything is there as source code, so if you like "learning by
+      debugging", you will love VCL
+      <img src="../images/smile.gif" alt="smile" style="width: 19px; height: 19px;" class="vertically_centerred"/>.</p>
+
+      <p>Additionally, be aware of the fact that feature implementations in
+      OpenOffice.org require a specification (you may visit
+      <a href="http://specs.openoffice.org">the specifications project</a> for
more
+      information). There's a rule that nothing is checked into the master branch
+      which doesn't have a specification which all stakeholders agreed upon - so
+      unlike other open source projects you may know, the specification really is
+      an important part. Stakeholders are: the documentation team, the user experience
+      team, the quality assurance team, and development. Usually, one representative
+      from every team needs to accept your specification.</p>
+
+      <p>Well, don't let this hinder you in starting. Just be aware that there will
be a
+      time when a specification is finally needed. Most developers don't like writing such
documents
+      (and some people even claim that <a href="http://www.joelonsoftware.com/articles/fog0000000034.html">they
shouldn't</a>).
+      Thus, you need to clarify who will take this for you, if you can't/don't want.</p>
+
+      <p>A note about the effort: This is a rather rough guess at the moment. In
+      general, it may be a good idea to add two or more weeks or so simply for
+      becoming familar with the code and some concepts, so if it is "2 weeks", don't
+      expect to start today and finish it in 14 days ...</p>
+
+      <!-- ====================== -->
+      <!-- Joins in dBase queries -->
+      <h3><a name="dbase_joins"></a>Joins in dBase queries</h3>
+
+      <p>The descirption of this project has been moved to
+      <a href="http://wiki.services.openoffice.org/wiki/Base_To-Do/Joins_in_dBase_queries"
target="_blank">our
+      Wiki</a>.</p>
+
+      <!-- ================================ -->
+      <!-- SDBC driver for LDAP directories -->
+      <h3><a name="ldap"></a>SDBC driver for LDAP directories</h3>
+      <p>The descirption of this project has been moved to
+      <a href="http://wiki.services.openoffice.org/wiki/Base_To-Do/SDBC_driver_for_LDAP_directories"
target="_blank">our
+      Wiki</a>.</p>
+
+      <!-- ========================== -->
+      <!-- New/Enhanced Form Controls -->
+      <h3><a name="form_controls"></a>New/Enhanced Form Controls</h3>
+      <p>The descirption of this project has been moved to
+      <a href="http://wiki.services.openoffice.org/wiki/Base_To-Do/New+Enhanced_Form_Controls"
target="_blank">our
+      Wiki</a>.</p>
+
+      <!-- =============================== -->
+      <!-- Dialogs with Form Functionality -->
+      <h3><a name="form_dialogs"></a>Dialogs with Form Functionality</h3>
+      <h4>description</h4>
+      <p>When creating a form, the user always needs to bother with a writer (or calc
or
+      draw) document. Very often, this is much too oversized. It would be sufficient
+      to have a simple dialog which contains all the data access controls. Now that
+      we have UNO-based dialogs (in the Basic IDE), this is possible in general, as
+      there already are some basics for doing this. There still would be a lot of
+      work to be done (not mentioning the concrete design), but since some months,
+      it's at least possible.</p>
+
+      <p>The advantage would be to not slay the user with things she does not bother
+      &#8211; a writer document offers a lot of possibilities which are not relevant
+      for a form. In some cases, a full writer document does even contradict to what
+      users expect from a form &#8211; one thing to mention here is that documents
+      are always freely sizable (and even do autosizing according to the previous
+      instance of the same document type, the screen resolution, whatever), which is
+      nothing you expect from a carefully designed form, where controls are placed at
+      concrete positions and have a fixed size.</p>
+
+      <table style="text-align: left;" cellspacing="0">
+        <tbody>
+          <tr>
+            <td class="effort_header" width="200px">required skills</td>
+            <td>
+              <ul>
+                <li>C++</li>
+                <li>UNO</li>
+              </ul>
+            </td>
+          </tr>
+          <tr>
+            <td class="effort_header">useful skills</td>
+            <td>
+              <ul>
+                <li>familarity with OOo's database access and form API</li>
+                <li>familarity with OOo's toolkit API (module com.sun.star.awt)</li>
+              </ul>
+            </td>
+          </tr>
+          <tr>
+            <td class="effort_header">estimated effort</td>
+            <td>3 months</td>
+          </tr>
+          <tr>
+            <td class="effort_header">difficulty</td>
+            <td>high</td>
+          </tr>
+        </tbody>
+      </table>
+      <br/>
+      <hr style="width: 100%; height: 2px;">
+
+      <!-- =============================== -->
+      <!-- Database driver UI modularization -->
+      <h3><a name="driver_modules"></a>Database driver UI modularization</h3>
+      <h4>description</h4>
+
+      <p>OpenOffice.org Base follows a component-oriented approach for enabling
+      database access. For this, database drivers are installed in
+      OpenOffice.org which provide access to a certain (class of) database(s).</p>
+
+      <p>While at the driver level, the implementation is pretty good
+      modularized, the UI implementation can be improved. Currently, there are
+      a lot of places in the code with hard-coded information, such as
+      "database X requires UI option Y".</p>
+
+      <p>The goal of this project is to design and implement a reasonable
+      architecture for bringing a driver to the UI. The existing
+      implementation needs to be migrated to this new architecture. As a proof
+      of concept, an existing currently-external driver (e.g. the
+      <a href="http://dba.openoffice.org/drivers/postgresql/index.html" title="http://dba.openoffice.org/drivers/postgresql/index.html">native
PostgreSQL driver</a>)
+      should be modified so that it can be deployed into an OOo installation and makes
+      use of the features of the new architecture.</p>
+
+      <table style="text-align: left;" cellspacing="0">
+        <tbody>
+          <tr>
+            <td class="effort_header" width="200px">required skills</td>
+            <td>
+              <ul>
+                <li>C++</li>
+              </ul>
+            </td>
+          </tr>
+          <tr>
+            <td class="effort_header">useful skills</td>
+            <td>
+              <ul>
+                <li>OOo's component technology (UNO)</li>
+                <li>OOo's configuration concepts</li>
+              </ul>
+            </td>
+          </tr>
+          <tr>
+            <td class="effort_header">estimated effort</td>
+            <td>2 months</td>
+          </tr>
+          <tr>
+            <td class="effort_header">difficulty</td>
+            <td>high</td>
+          </tr>
+        </tbody>
+      </table>
+      <br/>
+      <hr style="width: 100%; height: 2px;">
+
+      <!-- =============================== -->
+      <!-- HSQLDB: single-file backend -->
+      <h3><a name="single_file_backend"></a>HSQLDB: single-file backend</h3>
+      <h4>description</h4>
+
+      <p><a href="http:///hsqldb.org" title="http:///hsqldb.org">HSQLDB</a>
is the default database
+      engine used by OpenOffice.org Base.</p>
+
+      <p>HSQLDB currently creates a number of adjacent files to store its data,
+      where all files together comprise the whole database. To allow the user
+      of OpenOffice.org Base to have a "all-in-one-file" database experience,
+      those HSQL files are currently embedded in some OOo-specific
+      container-file (the .odb file).</p>
+
+      <p>To overcome various disadvantages of this approach, it is desirable that
+      HSQL stores its data in a single, large file. Preliminary code and
+      concepts exist for this, but no final implementation.</p>
+
+      <p><i>The following project description was provided by Fred Toussi, HSQLDB
project owner:</i>
+
+      <p>Currently, HSQLDB stores the database information in four separate files.
These files are
+      written to using different API’s. Streams are used for some while random access is
used for others.</p>
+
+      <p>The project’s aim is to allow a single file to be used for all permanent
data (temporary session
+      data, or file locking may still use a separate file). So existing files that need to
be integrated
+      into one are the .properties, .log, .data and .backup files. The new single file will
be accessed
+      only as a random access file.</p>
+
+      <p>The project consists of developing an interface between exsisting code. At
the low level, there is
+      already an implementation of a random access file, org.hsqldb.persist.ScaledRAFile.
The new interfaces
+      will allow existing file services to use the single random access file.</p>
+
+      <p>All the files in the org.hsqldb.persist package should be studied, with the
understanding that the
+      funtionality of many of these files, including lock and property saving functionality,
will become
+      redundant with the introduction of single file persistence.</p>
+
+      <p>The student is expected to study and become proficient in the Java IO packages
and the API calls to
+      these packages currently made from HSQLDB, and write the code and test packages.</p>
+
+      <p>The mentor will provide regular guidance and help on the design of required
interfaces and supervise
+      their implementation.</p>
+
+      <p>As this is considered an essential development for HSQLDB, all the work done
by the student will be
+      used, and if necessary, modified or improved by other project developers. The student
will get due credit
+      and will be provided with work references by the HSQLDB Project Maintainer upon successful
completion of
+      the project.</p>
+
+      <table style="text-align: left;" cellspacing="0">
+        <tbody>
+          <tr>
+            <td class="effort_header" width="200px">required skills</td>
+            <td>
+              <ul>
+                <li>Java expertise</li>
+                <li>relational databases</li>
+              </ul>
+            </td>
+          </tr>
+          <tr>
+            <td class="effort_header">useful skills</td>
+            <td>
+              <ul>
+                <li>HSQLDB architecture</li>
+              </ul>
+            </td>
+          </tr>
+          <tr>
+            <td class="effort_header">estimated effort</td>
+            <td>2 months</td>
+          </tr>
+          <tr>
+            <td class="effort_header">difficulty</td>
+            <td>high</td>
+          </tr>
+        </tbody>
+      </table>
+      <br/>
+      <hr style="width: 100%; height: 2px;">
+
+      <!-- =============================== -->
+      <!-- Embed Derby into OpenOffice.org databases -->
+      <h3><a name="embed_derby"></a>Embed Derby into OpenOffice.org databases</h3>
+
+      <p>The descirption of this project has been moved to
+      <a href="http://wiki.services.openoffice.org/wiki/Base_To-Do#Embed_Derby_into_OpenOffice.org_databases"
target="_blank">our
+      Wiki</a>.</p>
+
+      <!-- ==================================================== -->
+      <!-- Native, cross-platform access to MS Access databases -->
+      <h3><a name="cross_access"></a>Native, cross-platform access to MS
Access
+        databases</h3>
+      <h4>description</h4>
+      <p><em>preliminary note</em>: In the meantime, there is an alpha
version of a driver for this.
+      It's an OOo database driver which uses <a href="http://mdbtools.sourceforge.net">MDB
Tools</a> to
+      read MS Access databases. See <a href="../drivers/mdb/index.html">it's home page</a>
for more info.</p>
+
+      <p>A major goal of OpenOffice.org is interoperability with other office
+      applications, especially with a certain office suite which currently has some greater
market share than
+      OpenOffice.org has :).</p>
+
+      <p>Unfortunately, currently OOo users, as long as they don't work on Windows,
are not able <em>at all</em>
+      to access the databases of this office suite - we cannot read MDB files on platforms
other than Windows
+      (where we can use Microsofts own API).</p>
+
+      <p>So the goal here is to allow Linux users to at least read the data from MDB
files, using OOo.</p>
+
+      <p>There are several ways how this could be done.<br/>
+      One is to use MDB Tools, and wrap them in OOo. Since the SQL capabilities of the MDB
Tools parser are
+      limited (e.g., no OR conditions in WHERE clauses are allowed), this requires work in
either MDB Tools
+      itself (by improving their parser), or it would be used as provider for raw data, and
OOo would faciliate
+      it's own parser/query engine (which unfortunately is also limited) to process this
data.<br/>
+      Another current disadvantage of MDB Tools is that it doesn't handle UTF8, and since
jet4 databases
+      stored their data in UTF8, this implies that it cannot be used for jet4 databases containing
non-ASCII
+      characters (well, probably a little bit more that ASCII, but it's a serious limitation
for an product as
+      international as OpenOffice.org).</p>
+
+      <p>Another way would be to re-engineer the MDB format ourself, and write a native
SDBC driver (which could
+      be in C++ or probably even in Java) which provides the data. This is similar to the
first approach, where
+      MDB Tools would have been used as the provider of raw data.</p>
+
+      <table style="text-align: left;" cellspacing="0">
+        <tbody>
+          <tr>
+            <td class="effort_header" width="200px">required skills</td>
+            <td>
+              <ul>
+                <li>C++</li>
+              </ul>
+            </td>
+          </tr>
+          <tr>
+            <td class="effort_header">useful skills</td>
+            <td>
+              <ul>
+                <li>familarity with OOo's database access API</li>
+              </ul>
+            </td>
+          </tr>
+          <tr>
+            <td class="effort_header">estimated effort</td>
+            <td>2 months</td>
+          </tr>
+          <tr>
+            <td class="effort_header">difficulty</td>
+            <td>medium</td>
+          </tr>
+        </tbody>
+      </table>
+      <br/>
+      <hr style="width: 100%; height: 2px;">
+
+      <!-- ====================== -->
+      <!-- SDBC driver for vCards -->
+      <h3><a name="vcards"></a>SDBC driver for vCards</h3>
+      <h4>description</h4>
+
+      <p>OpenOffice.org has it's own open database access API called <a href="http://api.openoffice.org/docs/common/ref/com/sun/star/sdbc/module-ix.html">SDBC</a>
+      which is modeled on the architecture of <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/package-summary.html">Java's
+      JDBC</a>. SDBC supports several databases and
+      database-like API's via an extensible provider architecture; ODBC 3.0, JDBC,
+      ADO, dBase and CSV are among the databases and database management systems
+      currently supported. Each SDBC provider is implemented as a UNO component.</p>
+
+      <p>It could be useful to have a dedicated driver for accessign vCards.
+      There is an infrastructure in the existing SDBC implementations for file-based
+      databases, which could be relatively easily specialized for vCard access. This would
+      broaden the range of address book data which can be used in OpenOffice.org.</p>
+
+      <table style="text-align: left;" cellspacing="0">
+        <tbody>
+          <tr>
+            <td class="effort_header" width="200px">required skills</td>
+            <td>
+              <ul>
+                <li>C++</li>
+                <li>familarity with UNO</li>
+              </ul>
+            </td>
+          </tr>
+          <tr>
+            <td class="effort_header">useful skills</td>
+            <td>
+              <ul>
+                <li>familarity with OOo's database access API</li>
+              </ul>
+            </td>
+          </tr>
+          <tr>
+            <td class="effort_header">estimated effort</td>
+            <td>2 weeks</td>
+          </tr>
+          <tr>
+            <td class="effort_header">difficulty</td>
+            <td>medium</td>
+          </tr>
+        </tbody>
+      </table>
+      <br/>
+      <hr style="width: 100%; height: 2px;">
+
+      <!-- ================= -->
+      <!-- New Filter Dialog -->
+      <h3><a name="new_filter"></a>New Filter Dialog</h3>
+      <h4>description</h4>
+      <p>Similar to the Sort Dialog, there is a dialog which allows to filter queries
+      and tables &#8211; it can be reached the same way as the sort dialog, by using
+      the "Default Filter..." button in the toolbox of the data source browser.</p>
+      <p>This dialog suffers from some disadvantages:
+      <ul>
+        <li>
+          it's not dynamic, three filter criterions are the maximum</li>
+        <li>
+          The dialog does not really clearly distinguish between ORing and ANDing
+          filters. Though there the user can make a choice for AND or OR, it's not clear
+          what is the result if these are
+          <span style="font-style: italic;">mixed</span>. This UI is simply not
+          intuitive.<br/>
+        </li>
+      </ul>
+      This dialog should be re-implemented, so that it's functionality is extended
+      and it's more intuitive. Design (before implementation) is an important part of
+      this project.</p>
+      <p>One other place where a similar functionality is available is the
+      <span style="font-style: italic;">filter navigator</span>
+      in the
+      <span style="font-style: italic;">form based filter</span>.</p>
+      <p>This will show the so-called filter navigator, which uses a tree view to
+      represent the currently used filter for the form. It has other disadvantages
+      <ul>
+        <li>
+          it's impossible to add a filter with two AND criterions for the same column,
+          such as "name LIKE '%Foo%" and "name LIKE '%Bar%'".</li>
+        <li>
+          it's not intuitive, too (well, this is personal taste :)</li>
+        <li>
+          some functionality cannot be accessed from within the navigator, but only by
+          entering text in the form fields (for instance, try creating a new filter in a
+          form which previously does not have any filter<br/>
+        </li>
+      </ul></p>
+      <p>If the interface of the new implementation of the filter control in the new
+      filter dialog is abstract enough, then on the long term we can use it for the
+      filter navigator, too. This would require some discipline in designing the
+      classes for the new implementations, and some abstraction capabilities.
+      However, this is not the primary goal of this implementaton.</p>
+
+      <table style="text-align: left;" cellspacing="0">
+        <tbody>
+          <tr>
+            <td class="effort_header" width="200px">required skills</td>
+            <td>
+              <ul>
+                <li>C++</li>
+              </ul>
+            </td>
+          </tr>
+          <tr>
+            <td class="effort_header">useful skills</td>
+            <td>
+              <ul>
+                <li>familarity with VCL (OpenOffice.org's visual toolkit)</li>
+              </ul>
+            </td>
+          </tr>
+          <tr>
+            <td class="effort_header">estimated effort</td>
+            <td>1 month for an experienced developer</td>
+          </tr>
+          <tr>
+            <td class="effort_header">difficulty</td>
+            <td>medium - high</td>
+          </tr>
+        </tbody>
+      </table>
+      <hr style="width: 100%; height: 2px;">
+
+    </div>
+  </body>
+</html>

Propchange: incubator/ooo/ooo-site/trunk/content/dba/development/projects.html
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message