openoffice-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Damjan Jovanovic <dam...@apache.org>
Subject Re: Where to start?
Date Thu, 11 Feb 2016 18:04:24 GMT
Here are a couple of my development ideas, some quick, some could be
Google of Summer projects, some probably massive research projects:

REDESIGN BASE STARTUP DIALOG
The dialog when Base starts up is confusing, the "Open" button doesn't
open the recently used file right next to it, but instead opens a file
browser for other files. It should be called "Browse", or be "Not
here? Choose another file: [Open]".

DATABASE RECONNECTION
Set I/O timeouts on database connections. If database connection
drops, have the option to reconnect instead of hanging forever like we
currently do.

CSV AND SPREADSHEET DATABASE IMPROVEMENTS
Our CSV and spreadsheet handling in Base is very poor: read-only, no
joins, no nested subqueries, no grouping, no scalar functions, etc.

On the other hand, one of our pre-existing modules, HSQLDB, supports
"text tables", which are tables backed by CSV files. The CSV file is
scanned once to create an index of all rows and their offsets within
the file. Some rows are cached in memory, the rest read from the CSV
file as needed by seeking to the row's offset and parsing it in. When
the table isn't read-only, deletes are implemented by overwriting the
row with spaces, leaving a blank line, and updates by this
space-overwriting of the old row and appending the new row at the end
of the file. In other words it's all reasonably efficient. Pretty much
the full spectrum of HSQLDB's features is supported on text tables:
foreign keys, transactions, joins, nested subqueries, grouping, its
vast number of scalar functions, etc.

The irony is: we both already ship this code to users inside our
HSQLDB, and use HSQLDB for non-CSV databases so the SDBC->HSQLDB part
is already working, but we use our vastly inferior C++ CSV
implementation instead of HSQLDB's :-).

Additionally, logic very similar to what is used to implement queries
on CSV files could be used for spreadsheet databases. HSQDLB would
need a bit of patching to implement a new spreadsheet table type, but
the same idea of one scan to build indexes and caching some maximum
number of rows in memory and reading the rest on demand could be used.
Updates and deletes on spreadsheets work even better than on CSV
files, as we can change their cell contents and delete rows. This way,
advanced SQL queries would be possible on spreadsheets.


BASE LDAP DRIVER
Since we lost it with Mozilla's elimination. Important for
enterprises. JNDI to the rescue?

BASE THUNDERBIRD ADDRESS BOOKS DRIVER
Also lost with Mozilla's elimination and requested by a number of
users. Not sure how?

MACRO SANDBOX
Allow running Basic macros in a sandbox where file access, DLL calls,
running external programs through the shell, access to other
documents, and access to various portions of the UNO API can be
selectively turned off when the document is opened and/or permission
has to be explicitly granted the first time that functionality is
used, effectively securing your system from dangerous macros, the same
way Android and iPhone apps can only do things you grant them access
to. This could also be done for macros in other languages (maybe even
C/C++ using Google's Native Client).

REIMPLEMENT BASIC AS A JVM LANGUAGE
Compile Basic into Java bytecode and run it on a JVM, so it gets JITed
and run at very high speed instead of the current slow interpretation.
It's not clear how to translate Basic's goto statements into Java
which doesn't support them, but I have ideas around converting Basic
procedures into classes, basic blocks into methods, variables into
object instance variables, and having a nextMethod instance variable
in that object which each method can set before returning to a main
method which will then execute that method next, effectively
implementing the goto in Java. Still allowing Basic debugging despite
the JIT, will be more interesting :-), but it's definitely possible
and already been done with other JVM languages like JRuby etc.

LAUNCH AOO THROUGH JAVA WEBSTART
Allow AOO to run without installation by clicking a link on a website.

IMPROVE SVG EXPORT IN DRAW
Draw a vertical connector between 2 objects, press F2 and enter some
text. The text runs vertically, next to the line. Save as SVG. Open
the SVG. The text is horizontal instead.
We could also try using Apache Batik for SVG import/export.

Damjan

On Thu, Feb 11, 2016 at 6:59 PM, Patricia Shanahan <pats@acm.org> wrote:
> I expect to complete my "Building on Windows" project in the next day or so,
> by documenting the results in
> https://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO/Step_by_step#Windows_7
>
> That means it is time to pick another project. Any suggestions?
>
> Here is a brief resume:
>
> Education:
>
> B.Sc. Mathematics, Imperial College London, 1970
> M.Sc. Computer Science, Birkbeck College London University, 1975
> Ph.D. Computer Science, UC San Diego, 2009
>
> Work:
>
> I worked from 1970 to 2002 for NCR, Celerity, FPS, Cray Research, and Sun
> Microsystems. I worked on application software, operating systems,
> compilers, system performance, and server platform architecture. I was
> performance architect for the Sun E10000 and 15K.
>
> Unfortunately, my professional end-user applications development experience
> was writing programs that expected punch card or paper tape input. More
> recently, I have written computer performance models in C++ and Java, and
> did simulations in Java for my dissertation research.
>
> Although my C++ experience is rusty and predates widespread availability of
> the STL, I should be able to get it up to date relatively easily. I have
> used templates and operator overloading.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
> For additional commands, e-mail: dev-help@openoffice.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org


Mime
View raw message