Hacking

OpenOffice.org

Michael Meeks

<michael@ximian.com>

“Stand at the crossroads and look; ask for the ancient paths, ask where the good way is, and walk in it, and you will find rest for your souls...” - Jeremiah 6:16

Overview

OO.o – it rocks

power, depth, features

Sun / the background

Getting started hacking

ooo-build

going around a development iteration

making a real difference

Desktop integration work

Interesting development avenues

Conclusions

To try and demonstrate I planned this talk, and it has some vague structure

OpenOffice.org rocks !

OpenOffice.org rocks !

OpenOffice.org rocks !

OpenOffice.org rocks !

Full help in:

French,

Spanish,

Italian,

Swedish,

Japanese,

Korean,

2x Chinese

English

(and German)

An example ... [ Demo ]

Why I think OO.o kicks the backside of any other free Office component out there

Other Free suites ...

Gnome Office

libole2/libgsf – basis of KDE & Gnome interop

libwv – basis of AbiWord/KWriter word import

gnumeric - a lovely spreadsheet

KOffice

no export -> no interoperability

But XYZ feature is better in ABC !?!!?

doubtless, any 1 feature may be better a <-> b

not a reasonable comparison

Where is Freedom better served ?

Still interesting research test-beds though.

Do real work, for real users, now: really.

StarOffice/OpenOffice.org

Sun is doing it right

OO.o CVS is the authoritative base source

A few other packages plugged in externally for SO.

fonts / icons / clipart / Adabas etc.

Sun is now offering support for OO.o

Legal bits

JCA – shared copyright, minimal asymmetry

Source under LGPL / SISSL

SISSL: X11 + ~LGPL for ABI / file-format changes

How the two relate to each other a small and shrinking difference

Community ? / problems

Scheduling problems 18 month releases ...

Get your teeth pulled to experience up-streaming

vacillation, re-writing, 'in our plan'

ooo-build

patch holding ground for up-streaming

collaborative effort between Linux distros:

Ximian, Debian, Red Hat, SuSE, Ark, PLD, [ Win32 ]

Easy to commit to / get involved with

Ask for JCA in the post

Hack here ...

~300 patches, sub-setted several ways.

The things that are wrong under the sun ...

ooo-build - http://ooo.ximian.com/

Building made easy

Wraps the existing OO.o build system

configure

download

make

make install

Used for the 1st build, & packaging

Development iteration more cunning

Hackers guide:

http://ooo.ximian.com/hackers-guide.html

Prerequisites:

~4Gb+ spare space

~512Mb RAM

~1Ghz processor

Final result: after 'linkoo'

ooo-build/

build/

OOO_1_1_2/

sw/

unxlngi4.pro/

lib/

libsw645li.so

LinuxIntelEnv.Set.sh

/opt/

OpenOffice/

program/

libsw645li.so

[ Install ]

[ Build – Tree ]

Simply run 'build debug=true', run OO.o

Demo: 'My first hack'.

Where to hack

http://ooo.ximian.com/lxr

UI string -> freetext search -> SID

SID -> identifier search -> case SID_...:

Ignore the build – but don't despair

Do NOT try to 'fix' the build, don't even try

Lost too many good hackers down that hole

Fix the things Sun does not: ergonomics ?

The customer is [almost] always right

eg. Word count.

Bite sized tasks – don't re-write everything

Zoom combo box, X session slaved quick-starter

Emacs key-bindings ?, just sniff around

How to grapple with the beast, and find what you're looking for

Making a difference

OO.o is a comprehensible code-base

Different != Wrong

User base affects impact

substantially larger for OO.o than anything else

Windows users need to hear about Free software

You count:

Gnome: 2000+ CVS accounts

OO.o: 15+ (external) CVS accounts

Get in now – I'm hoping for 3 new hackers.

Sensible not to have got involved yet

No better time to start than now; sign the JCA today

The grass is greener on the other side of the fence...

Developing with plugins ...

Uno Developers Kit (UDK)

allows 3rd party components

eg. libwpd – Will Lachance

http://libwpd.sf.net

Imports WordPerfect files into OO.o ( & AbiWord)

Pretty unusably bad

portability, exposed API

Scripting – lots of API exposed by UNO

an exciting scripting framework

Python, StarBasic, [ Java: non-free ], Mono ?

more language bindings appreciated; Perl etc.

Templates / artwork for non-hackers.

You too could be famous:

There was time to shoe-horn several other easter eggs into OO.o too ...

Source code also shows signs of a StarWars game:

LXR: ScGame

The OO.o hackers are a bright, and fun bunch

Don't start something new, join the team ...

OO.o the future: 2.0 and beyond

The world out there from an OO.o perspective

Google for OpenOffice:

Lots of new features in 2.0

Startup speed ...

Improved Calc

row-limit, forms, interop.

Improved Writer

tables, interop etc.

NWF

Evolution / addressbook bits

[Lindows]

Aesthetic beauty - Icons

Tigert / Jimmac – they rock.

Many hundreds of hours of high quality artistic output

(a calculator apparently)

Hundreds of new industrial strength icons

[ 24bit + alpha

gives some major

advantages ]

Ximian OpenOffice.org 1.1.x

The amazing way a little rendering can hide those cracks:

pretty AA UI font

32 bit 24x, alpha blended, high-color art

Once seen – not forgotten cf. Typography.

more sensible menu layout

Samba / NFS integration

The real world is (sadly) not a homogeneous Unix environment – Interoperability is key

Full gnome-vfs integration

authentication

seekability

Integrated printing ...

CUPS – the unpleasant truth of the Unix printing standard

Integration with system / network printer discovery

and properties

Native Widgets ...

Making everything look that much more friendly ....

gtk+ - Dan Williams / Philipp / Stephan

Qt – Jan Holesovsky: Keramic:

Interesting things ...

VBA / macro interoperability

Translation – not an interoperable solution

Have the nasty file format problems cracked

Some re-factoring required there

Work needed expanding / mapping the OO.o API & improving StarBasic

Can't wait for Mono / .Net - ~2006

Excel API more intuitive / understood anyway

Lots of useful, bite-sized work here.

File format / filters – plenty of work here

Ergonomic cleanups all over the shop

Improving the beauty: layout

We need a GUI design tool too – an area I want to work on.

Positional layout can look no better than auto layout

Conclusions / Thanks

OpenOffice.org substantially the best

Work on OO.o:

Lots of polish required

Lots of small, easy, big-hitting changes left

Amazing the documents you'll get sent

Make a difference for Freedom

Sign the JCA today ...

What I spent the last minutes saying – nudge your neighbour it's nearly over

Oh, that my words were recorded, that they were written on a scroll, that they were inscribed with an iron tool on lead, or engraved in rock for ever! I know that my Redeemer lives, and that in the end he will stand upon the earth. And though this body has been destroyed yet in my flesh I will see God, I myself will see him, with my own eyes - I and not another. How my heart yearns within me. - Job 19: 23-27

2003-04-02T15:18:38