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 <[email protected]> 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: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
