Skip navigation.

Open Life

Opendocuments, Web Office, Office suites

Posts tagged with "openoffice.org"

Parsing XML with OOoBasic

, , ,

OpenOffice.org is loaded with a full IDE and a language that even if it looks like a toy language. This weekend I have been reviweing a lot of code on OOoBasic and found that OOoBasic is a powerful script. One of the things that show the power of a very high level OOoBasic is parsing an XML file. Since OOo is made from XML it seems glorious that OOo could autoconfigure itself.

First is the powerful UNO framework which is lives in the inner pieces of OpenOffice.org. The UNO interface is conformed by interfaces, services and methods. The cool thing is the wide array of interfaces that OOoBasic can use and manipulate.

OOoBasic can parse XML on different ways, from SAX which is a smaller and simpler stream parser to a DOM parsing which will be a more indepth parsing based on the Document Object Model. This are both on the XML Module with hundred of tools that will be able to configure and reconfigure the code.

So here is the code that I was working with. First I needed to get an XML file, the file was a simple employee document.
<Employees>
   <Employee id="101">
       <Name>
          <First>John</First>
          <Last>Smith</Last>
       </Name>
       <Phone type="Home">785-555-1234</Phone>
   </Employee>
</Employees>


Then here is the first stage of the code, we basically load the XML by the first interface which is the one that deals with external file manipulation:
Sub Main
   cXmlFile = "/home/user/tmp/test.xml"
   
   cXmlUrl = ConvertToURL( cXmlFile )
   
   ReadXmlFromUrl( cXmlUrl )
End Sub


We first create the ConverToURL function that will basically make the path to the file get used like a URL and then execute the function ReadXmlFromUrl that we will show next:

Sub ReadXmlFromUrl( cUrl )
   oSFA = createUnoService( "com.sun.star.ucb.SimpleFileAccess" )
   oInputStream = oSFA.openFileRead( cUrl )
   ReadXmlFromInputStream( oInputStream )
   oInputStream.closeInput()
End Sub


This function use the SimplefileAccess to generate a Service using the createUnoSerive using the interface from the API. Then we will execute one of the methods called openFileRead this will get the file and to a variable and then implement the ReadXmlFromInputStream. Finally we close the the file using closeUput.

The next function is the ReadXmlFromInputStream, this is the one in charge of reading the XML.

Sub ReadXmlFromInputStream( oInputStream )
   oSaxParser = createUnoService( "com.sun.star.xml.sax.Parser" )
   oDocEventsHandler = CreateDocumentHandler()
   oSaxParser.setDocumentHandler( oDocEventsHandler )
   oInputSource = createUnoStruct( "com.sun.star.xml.sax.InputSource" )
   With oInputSource
      .aInputStream = oInputStream 
   End With
   oSaxParser.parseStream( oInputSource )
End Sub


This is the second function that is supposed to read the XML and will execute the parser itself. First we call the Parser service into a variable called oSaxParser. Then we have the CreateDocumentHandler then the parser will get the setDocumentHandler function.

Private goLocator As Object
Private glLocatorSet As Boolean


We build an object as goLocator and make it as a boolean object, we later assign it to false under the DocumentHandler. We need to create the service for XDocumentHandler first.

Function CreateDocumentHandler()
   oDocHandler = CreateUnoListener( "DocHandler_",_
                                    "com.sun.star.xml.sax.XDocumentHandler" )
   glLocatorSet = False
   CreateDocumentHandler() = oDocHandler
End Function


Finally we have a series of functions where we specified the DocumentHandler to print out on the different elements of the XML. By default I comment all this handlers except for the character which is the one that specified the content. Unfortunately print will not just report the visible content such as John but all the invisible characters such as spaces, end of line and tab keys..


Sub DocHandler_startDocument()
'   Print "Start document"
End Sub

Sub DocHandler_endDocument()
'   Print "End document"
End Sub

Sub DocHandler_startElement( cName As String, oAttributes As _
                             com.sun.star.xml.sax.XAttributeList )
'    Print cName
'Print oAttributes.Length
End Sub

Sub DocHandler_endElement( cName As String )
'   Print "End element", cName
End Sub

Sub DocHandler_characters( cChars As String )
Print "Contenido:",cChars
End Sub 

Sub DocHandler_ignorableWhitespace( cWhitespace As String )
'Print cWhitespace
End Sub

Sub DocHandler_processingInstruction( cTarget As String, cData As String )
End Sub


Sub DocHandler_setDocumentLocator( oLocator As com.sun.star.xml.sax.XLocator )
   goLocator = oLocator
   glLocatorSet = True
End Sub

Debo admitir que el proceso no es muy claro todavia pero haciendo una revision se puede ver que queremos 3 cosas:
  1. Invocar el servicio de parseo de XML
  2. Enviar nuestro llamado a una ventana dentro de OOo

Automating work with Basic II

, , ,

So this is the second part of my blog where I explain the logic used and how I got my script to run in OpenOffice.org.

The first thing I did was take a look and search on Andrew Pitonyak Macro book, to find a code that will come close to do what I have in mind.

The code is simple, this time I found a snippet that was able to select a cell. The original code was the following:
  Dim oCell
  Dim oSheet

  REM Get the first sheet.
  oSheet = ThisComponent.getSheets().getByIndex(0)
  REM Get cell A2
  oCell = oSheet.GetCellbyPosition( 0, 1 )
  REM Move the selection to cell A2
  ThisComponent.CurrentController.Select(oCell)


We can see in this snippet that the process is simple, simply get the sheet from the document and position the cursor on the sheet. Finally call on the CurrentController and use the native function of select.

Here we can see how this script go and how will it fit with our original design. My script needed to switch pages and go incrementally through the ammount of sheets in the spreadsheet.

What I did was obvious, I did a loop, my only concern was, what kind of loop. So far I found the for...next however there are the Do while, and Do Loop. I also needed a range since the loop can't go forever, and finally a way where it can get the data for the population of such things like the title.

I was going in a way to recreate the mail merge for spreads, the data however would be store in an array. The book also came handy at this point since I didn't exactly how to create arrays in OOoBasic.

The samples showed me the path and I was able to make a script that will look like this:
  firstDoc = ThisComponent
  for x = 0 to 14
  y= x
  oSheet= firstDoc.getSheets().getByIndex(y)
  
REM GetCellbyPosition will indicate the cell of the title 
REM SetString will insert the text into the cell
  
  oCell=oSheet.GetCellbyPosition( 1,2 )
  firstDoc.CurrentController.Select(oCell)
  oCell.SetString(title(x))

REM for additional modification include the following:
REM    Position of the cell -> GetCellPosition
REM    Content of the cell  -> SetString
  
  oCell2=oSheet.GetCellbyPosition( 0,1 )
  firstDoc.CurrentController.Select(oCell2)
  oCell2.SetString("Account 1")
  
  
  Next x


Of course that was not all their script and I also need to expand the script to not just label the first array but also static cell content that will be reapeated without major changes. In my script, this was the case with the title of the account, this required no datasource as the content should stay in place.

I also didn't show here the datasource but you can see how the datasource is handled, the array 'title' was able to have a counter instead of their values so the loop registration worked sequensially.

This script is extremely simple since you dont really need any UNO components and is basic loops will go through the created sheets, position on their cells and finally populate it with the infrmation of the array.

In the end the script looked like this:
REM  *****  BASIC  *****
REM
REM Script to insert sequencially the list of servers
REM to execute you need to select the starting page +1
REM and then select the ending page on the 'for Loop'
REM

'Load all the variables including the array
Sub LabelSheet
Dim oCell as Variant
Dim firstDoc as Variant
Dim oSheet as Variant
Dim title() as Variant
Dim titulo()
Dim x
REM title array takes the list from a CSV dump
title=Array("otherhost1",_
"otherhost2",_
"otherhost3",_
"otherhost4",_
"otherhost5",_
"otherhost6")


REM x works as a range, it start from the begining of the ARRAY
REM y is used to put the final starting page adding the value of
REM the "first page"

  firstDoc = ThisComponent
  for x = 0 to 6
  y= x
  oSheet= firstDoc.getSheets().getByIndex(y)
  
REM GetCellbyPosition will indicate the cell of the title 
REM SetString will insert the text into the cell
  
  oCell=oSheet.GetCellbyPosition( 1,2 )
  firstDoc.CurrentController.Select(oCell)
  oCell.SetString(title(x))

REM for additional modification include the following:
REM    Position of the cell -> GetCellPosition
REM    Content of the cell  -> SetString
  
  oCell2=oSheet.GetCellbyPosition( 0,1 )
  firstDoc.CurrentController.Select(oCell2)
  oCell2.SetString("Server")
  
  Next x
End Sub


So lets have an overview of the script:
  • Select a variable
  • Populate the array
  • get the document
  • for loop with the start of the number of array data
  • y variable was put in case you need to start in a document other than 0
  • oSheet selects the sheet in the document
  • oCell gets in the cell
  • Select the cell
  • Insert value with set string from the Array
  • Repeat the process but this time with static as opposed to the loopy title array
  • finish the sub

Automating work with Basic

, , , ...

Ok let's get this first stated: I am not a developer. I am a blood sucking leach feeding on the work of others. I don't produce code, I just modify it enough to fit my needs.

Once that said, you can argue that I am just in learning mode so eventually I will be part of the producting part of the FLOSS society and produce code from my own. Meanwhile I know enough to use code from other people to rearange my work and automate it.

I currently work in an enviroment full of hardcore techies, they love their bash scripts. However just like any other techie, they run away from documentation. I have been the only brave one to come up with some backbone and get on the challenge to document each of our 200 servers.

This however become easier task as I made an OpenOffice.org script to automate the task of scripting. However if you put attention earlier, I am not a programmer, however I only know enough to get the core code I need to get to my goal.

This is when I went to one of my community buddy's website Pitonyak.org and took a look at his cookbook which is full of snippet of code to do almost anything in OpenOffice.org through the use of OOoBasic.

This code include very interesting stuff such as:
  • Variable, Arrays and functions
  • UNO and Interfaces
  • Printing documents
  • Changing language of OOo
  • Load a document from a URL
  • Graphic manipulation, etc

This is just the begining of a 500pages long document with all kind of snippets. So how did this help me? Well I just start gluing this snippets and create the script I needed to automate my work.

The Document
The documentation consisted on a s series of spreadsheet documents full of data. Each sheet will be dedicated to each server, and each file will be dedicated for each account. The whole documentation consisted on at least 4 accounts.

Fortunately the servers were somewhat the same, they had the same profile and just duplicating the page will be enough. However, there was a problem.

The duplication of pages took too much, a series of clicks were needed and in the end the sheet still needed to be update for the righ server.

A mail merge will be so good in this case however the way the documentation was worked on, mail merge was not obvious.

Here is where OOoBasic came and Andrew's Pitonyak book was fundamental.

The script
The script language that OpenOffice.org uses by default is OpenOffice.org Basic. This language is similar to Microsoft VBScript, however it uses OpenOffice.org native API called UNO.

So first I needed to do is put a set of goals that the script needed to achieve and separate it into steps:
  • Select all the document
  • Being able to copy it
  • Generate a new document
  • Paste into the document
  • Generating a new sheet
  • Make the sheet name consistant

The next step beside duplicating the sheet was generating another script to what I called 'labeling the sheets'. This label process also had different steps that will follow another logic, similar in esence but the script actually change a lot.
  • Being able to select a specific cells
  • Insert a text into the cell
  • Load the data into a datasource just like an array
  • being able to extract that data from another spreadsheet which listed the server names.


Lets get to work
Ok boys and girls, the first step is to open the OOoBasic IDE. To open this, you need to go to Tools > Macros > Organize Macros > OpenOffice.org Basic. That will open the IDE and start to write the code.

First I went to Andrew's script on duplicating a file. This was not the code I needed exactly but it got close enough. This script will generate a new document. The topic number 6.18.1 Copy entire sheet to a new document.

'Author: Stephan Wunderlich [stephan.wunderlich@sun.com] 
Sub CopySpreadsheet
  firstDoc = ThisComponent
  selectSheetByName(firstDoc, "Sheet2")
  dispatchURL(firstDoc,".uno:SelectAll")
  dispatchURL(firstDoc,".uno:Copy")
  secondDoc = StarDesktop.loadComponentFromUrl("private:factory/scalc","_blank",0,dimArray())
  secondDoc.getSheets().insertNewByName("inserted",0)
  selectSheetByName(secondDoc, "inserted")
  dispatchURL(secondDoc,".uno:Paste")
End Sub

Sub selectSheetByName(document, sheetName)
  document.getCurrentController.select(document.getSheets().getByName(sheetName))
End Sub

Sub dispatchURL(document, aURL)
  Dim noProps()
  Dim URL As New com.sun.star.util.URL

  frame = document.getCurrentController().getFrame()
  URL.Complete = aURL
  transf = createUnoService("com.sun.star.util.URLTransformer")
 transf.parseStrict(URL)

  disp = frame.queryDispatch(URL, "", com.sun.star.frame.FrameSearchFlag.SELF _
         OR com.sun.star.frame.FrameSearchFlag.CHILDREN)
  disp.dispatch(URL, noProps())
End Sub


So lets analyze this script, first thing to see is divide this code into the different processes. Here we see 3 different subprocesses, first is CopySheet, SelectSheetByName and dispatchURL.
  • CopySheet - this is the logic of the script that will use the other two functions.
  • SelectSheetByName - this is just a function that will encapsulate the UNO components and put the parameters such as sheetname and getsheet.
  • dispatchURL - Also encapsulated uno method such as the URLTransformer to generate new documents and also the 'frame' object.


Having figure out this two functions is obvious we need to focus on the first sub process. First we need to get rid of the 'new document' and direct everything to the first document. So first thing was replacing the secondDoc with firstDoc so that there is no new document being created.

Second thing I did was playing around with the options on getByName into the actual sheet name. This was just for my specific document because I need specific names. The next was creating a loop.

This loop was a way to achieve a serialized number of copies, in the end my code look like this:
Sub CopySpreadsheet
  firstDoc = ThisComponent
  selectSheetByName(firstDoc, "Hoja1")
  dispatchURL(firstDoc,".uno:SelectAll")
  dispatchURL(firstDoc,".uno:Copy")
 for i = 1 To 14
  aNewSheetName = "Acceptance_Checklist_" & Format(i, "00")
  firstDoc.getSheets().insertNewByName(aNewSheetName,0)
  selectSheetByName(firstDoc, aNewSheetName)
  dispatchURL(firstDoc,".uno:Paste")
Next i
End Sub


I had to go several times into the book to get tips on how to build a loop. I even went to the OOoForum in order to get this question answered. Once it was answered, it was just logical processes. I got a loop on the aNewSheetName so that the label was Acceptance_Checklist and concatenated with the format(i, "00"), the i was the variable assigned by the For which continusly incremet the value of i until it reached 14.

The next line used the insertNew ByName function to generate that new sheet with the aNewSheetName label.

Finally we used the dispatchURL which use the UNO API to send the PASTE instruction.

The dispatcher is an interesting function because it let us send a command with less hassle. So instead of having to enumarte ALL the compoinents to get to the paste action we just need to call uno: PASTE. Same was done on Select and Copy early in that script.

Using a For enabled me to select a range, meaning that the sheet will be copied to a defined value which also protect the document from growing too big or crashing.

The script is not perfect however because the insertion takes place on a non-sequensial manner. That means the pages were inserted infront instead o the back of the list. This make me have a disjoined numeration such as:

109, 108, 107, 106.....4, 1, 2, 3


This clearly broke the order of the numeration, my guess is that this can be solved with a reverse loop.

on the next post I will talk about the label script to help me configure the content acording with the list of servers and how I got the datasource to connect with the script.

Managing Python extensions part II

, , , ...

This second part of Python extensions we will run some of the sample extensions in OpenOffice.org and how some of the more complex code happens in OOo. And how you can work it through.

First we will locate where the Python samples live in OpenOffice.org and how to get them to run in the OOo.

Running OOo Sample Macros
OpenOffice.org scripting framework support different languages, the menu also coordinate and manage different languages on different options. The Macros item located under Tools will give you options to record macros, execute macros as well as just view the macros acording to a specific language. This can be either:
  • OpenOffice.org BASIC
  • Python
  • Beanshell
  • Javascript
When you select any of this options you get a dialog that filter your macros by the language and just show you the language you got. Once you select the language you can just select the macros and click on execute.

If we want to select the HelloWorld.py we would do the following:
  1. Select Tools from the main menu
  2. Choose Macros and then decide what to choose
  3. You can select Execute macros and choose between the different macro languages
  4. Or select Organize Macros > Python and just choose between the python macros
  5. On any of the methods you will get a dialog and you will have 3 choices including: My Macros, OpenOffice.org Macros and the name of the file you are currently open.
  6. We want to select the OpenOffice.org Macros and you will see HelloWorld, choose it and u will expand it and display HelloWorldPython
  7. Once executed it will insert the legend Hello World (in Python) in your opendocument text.

You can experimenting running other samples:
  • Capitalize - This will change the capitalization of the text
  • MsgBox - This will open a dialog box which will ask for data and return one in exchange of the option
  • pythonSamples - TableSample - createTable - This will generate a document with text, headers and a rich format table populated with numbers and sum formula.

Editing OOo Macros
OpenOffice.org have different ways to edit the macros depending on the language. For OOoBasic OpenOffice.org includes an internal IDE which is in charge of editing the Macros.
For Javascript it uses the Rhyno Javascript Debugger, this debugger is brought from the mozilla community.

Finally the Beanshell scripts are also done with the Beanshell debugger, for more information check on the Openoffice.org website.

Finally our language for this session is Python, which doesn't has a native IDE and which scripting will not be able to edit within openoffice.org but on external editors. Please look on the previous blog entry to learn about how to install python scripts on OpenOffice.org.

Managing Python Extensions in OpenOffice.org I

, , , ...

For all Python fans out there, you might not know that OpenOffice.org can be run on Python. This is great because OpenOffice.org is a very interesting application but is hard to modify or develop on top of it. However extensions has been the way to go when you want to implement something new in OpenOffice.org. So here is a mini tour oriented to the way OpenOffice.org manage Python, which is different to the way OpenOffice.org handles the native OOoBasic. One thing is that OOoBasic is compatible with OpenOffice.org IDE that you get when you go to Tools > Macros > Manage Macros > OpenOffice.org Basic.

How Macros are handled.
Macros are usually handled on 3 stages, it can be either file based, user based, or application base.
  • The file based it means that the macros are stored in the file, this files will have the python source code within the document.
  • User based is that the macros are saved on the user preferences, this is usually stored in linux on the dot folders, in windows under the Application data folder.
  • Application base are stored in the applications folder which in linux is under /opt folder and on windows is under the Program Files folder.


The difference between this thre methods are the accesibility that you will get, for example document macros gain the portability of sending OpenDocument files and transporting the macro to other people on different computers.

The user-centric affect just the individual user account and might not be transferable to other users, for that you will want the application base. This also gain the availability since you can use the macro regardless of the document you are working on and it lives in OpenOffice.org. The global one lives in OOo and affect all users, this is the best one if you want to make large deployments.

What about Python
As I said before, Python is not a native language to OpenOffice.org, however you will be happy to know that python is included by default under OpenOffice.org. Is stored at openoffice.org2.2/program/python-core-2.3.4/ (versions might change); so you are able to use this macros on every openoffice.org installation.

As I mention before, the 3 layers that OOo can store macros will affect the installation of new macros developed in Python.

The easiest one is to have python saved in your application, so let say that you have the file MyScript.py. To load it to your OpenOffice.org application will be:
$ su
$ cp MyScript.py /opt/openoffice.org2.2/share/Scripts/ptyhon/
.

The user account level will be similar nad will execute by just doing the following:
$ cp MyScript ~/.openoffice.org2.2/user/Scripts/python/

* Be careful since the python folder is not created by default you will need to do create a folder under the Script folder.

The last one -- the document level is actually quite hard and might just put it here for reference but is more complicated than just coping the script inside the document. You will actually have to edit an XML file in order to manually register the file inside the document.

As you may know OpenDocuments are Zip files containing other files. They also have a file structure which will include:
meta.xml
content.xml
style.xml
mimetype
current.xml
Configuration2/
   accelerator
   images
   popmenu
   ...
META-INF/
   manifest.xml
Thumbnails/
   file.png

You will actually need to unzip and create a new folder called Scripts and inside create the python folder. Only then you will be able to copy your script MyScript.py inside the python folder.

Here is where you will need to edit the registry which is in the META-INF/manifest file and add 3 lines (before the final tag manifest:manifest].
 <manifest:file-entry manifest:media-type="" manifest:full-path="Scripts/python/MsgBox.py"/>
 <manifest:file-entry manifest:media-type="application/binary" manifest:full-path="Scripts/python/"/>
 <manifest:file-entry manifest:media-type="application/binary" manifest:full-path="Scripts/"/>


This will register the path of the script "Scripts/python/MsgBox.py" , the path of the scripting folders one for "Scripts/python" and other just for the "Scripts" folder.

Next post I will put some sample script so you can run and test your scripts meanwhile I will like to point to some default Python scripts already in OpenOffice.org.

Please go to Tools > Macros > Administer Macros > Python select the main application labeled as OpenOffice.org Macros and expand. You will see many sample codes that might look familiar to the ones you found at openoffice.org2.2/share/Scripts/python/HelloWorld.py you might also find Capitalized and the folder pythonSamples.

Later I will suggest you some useful sites to download some Python components.

My talk in Oaxaca, Mixteca

, , , ...

So about 2 weeks ago I had a talk at the 2nd Linux Simposium at Universidad de la Mixteca in Oaxaca. I recently found some of the pictures from the event and here are some of pictures from me giving the talk. The overal talk was awesome got a lot of good feedback from it. Everyone seemed very interested and they all had great comments on it.

I also did a workshop which had some issues at the beginning but end spending a great time with the office suite and the task we try to do. The main point was haivng a mailmerge using a mysql database, however the people from the event didnt download either java or mysql or the openoffice.org from the site. We did it using hsqldb and then did the task but it was somehow incomplete. However I spend time giving them a tour throught he OpenOffice.org suite, the IDE, the change recording and versioning etc.

So the talk was mainly about the way the community is structured, the way that OpenOffice.org community is divided, and how to contribute back depending on your speciality. If you become a developer or an artist or a marketer or just want advocate or support fellow users.

The second part of my talk also included a test case from Universidad de Murcia and the Softcatala project. It was a no so hidden scheme on how that speciality university could migrate to a free software environment.

OOo on OSX

, , , ...

OpenOffice.org on OSX, is not new, but what it is new is the animation that is pushing Otto to new heights. The author is Ben Bois (ben-at-hooboo-dot-com). This announcements also works as a work for action, they need a C/C++ programmer to work on the port.

They have an IRC at server irc.freenode.net / channel #ooo_macport.

OpenOffice.org on CeBIT

, , , ...

Three years in a row now, the German OpenOffice.org chapter again made it to represent the project at the CeBIT trade fair in Hannover, Germany. This year, they are sharing the booth with OpenOffice.org supporters and services providers: we from Sun present StarOffice and our slick x86 Solaris on a dual-core Opteron (and, of course, the Sun weblog extension for OOo), standing in line with the heroic OOo volunteers to answer helpdesk questions from the hundreds of visitors.

Apart from that, lots of fruitful discussions, ideas, bug hunting, and, of course, partying is going on here.

Thanks to Jacqueline, Thomas, Joost, Florian, Georg, Andreas, Karsten, Markus, Andre et al. - here's a mugshot of the merry OOo crowd, in our "conference lounge":

GOOogle y OpenOffice.org

, , , ...

GOOogle has been having a lot of relationship lately with the OpenOffice.org community. Recently the announcement of the inclusion of the OpenOffice.org projects into Google Summer of Code.

A Special page was created to hold this projects within the openoffice.org site.

On other news OpenDocument Text format are now recognized by Gmail, this is a strong initiative saying that this company is really backing up open standards.

Finally a lil tip for all you OpenOffice.org users to google search a word within OpenOffice.org.

  • The next step is to have the right search engine configured. You do this by going to Tools > Options > Internet >Search. The search option will help you choose the search engine to use. So now we will be choosing the search engine we want. If you want a custom engine like Wikipedia you can choose to add it.
  • Once we choose the engine and click OK we can open a document select a term and then with the text marked we can click on Search. This will open a browser and show the result of the text.

An Update on OOoCon2007 organization

, , , ...

This email was posted today by Jordi, lead of the OpenOffice.org conference for 2007 event:

Yesterday we had the first meeting to organise the Openoffice.org conference. I'm sending
the minutes of the meeting and next steps to the list.

Regards,

Attendants: Jordi Matas (UB), Isabel Àlvarez (UB), Josep Figols (Sun), Critina Montserrat
(Sun), Jesús Corrius (Softcatalà/Openoffice.org), Jordi Mas (Softcatalà) i Anna Grau
(Softcatalà).

UB stands for Universitat de Barcelona

Ignasi Labastida (could not attend)

Issues discussed

Organisation team

The organisation team are UB, Sun, Openoffice.org and Softcatalà.

UB assigns Ignasi Labastida and Isabel Àlvarez to coordinate the efforts with the
university.

Sun assigns Joan Carles Agusti (was not in the meeting) to coordinate the efforts with
Sun Microystems.

Jesús Corrius will keep leading the effort from Softcatalà with help from Anna Grau and
Jordi Mas.

Fix the dates for the conference
  • Final dates are 19th, 20th and 21th of September
  • The 23rd of September is bank holiday in Barcelona. There is a very extensive program
    or cultural activities for the day.
  • 20th of September inauguration with local authorities


Classrooms requirements
The following classrooms have been requested:
  • A classroom for the keynotes. Capacity: 180 people (Aula Magna)
  • Two smaller classrooms with capacity for 50 people
  • Also we have the classrom "Ramón y Cajal" (for 15/30 people) available.

All the classrooms must have Wifi Internet connection and a projector.

Meals and coffee
  • Request budget to the local University Cafeteria for the conference. Basically Coffe
    and some pastry. Twice a day (breakfast and afternoon snack).
  • What to do with meals? People can have lunch on their own and then we can have
    sponsored dinners (e.g. Novell is interested in sponsoring one).
  • Define requirements for inauguration day (cava, pastry, etc). It is possible to
    celebrate it in the garden (nice weather and environment).


Posters
  • We can have posters (DIN A3 size) during the conference days indicating who to get into
    the classrooms. Same posters can be used for promoting the days before the conference
    between students.
  • We can have a large poster in the frontdoor of the building. 13 meters by 1.5. Its cost
    is around 800 euros.


*** Next steps

Softcatalà
  • Get a name of an international coordinator of the Openoffice.org Conference and also is
    a Sun employee. (Jesús Corrius).
  • Get the exact number of people that attended to the conference last year and the number
    of people that required cheap lodging.
  • We all agree that having stands makes no much sense. Find out who is interested in the
    stands and if they were successful in previous conferences. May me make sense to change
    them for commercial presentations of the companies and their efforts regarding
    Openoffice.org or success cases. (Jesús Corrius)
  • Get the Wiki at Openoffcie.org linked in Softcatalà (Jordi) and also in Openoffice.org
    (Jesus Corrius).
  • Write the Drupal Conference folks and inform them of the final dates for the conference
    (Jesus Corrius)
  • Talk to Vilaweb and offer them to cover the event using a special bloc (Jordi). Also
    talk to la Malla ràdio if they want to do the program from the event one day (Jordi)
  • Make an initial budget for the event (Jordi)
  • Create a list of tasks to do and a assign a person to them (Anna)
  • Contact Ignasi Labastida (Anna)
  • Phone CSIC hall of residence to ask for accomodation (Anna)
  • Check the total cost of Kiberpipa (Jordi / Jesús)
  • Look after the budget and also sponsors (Jordi Mas).
  • Look after posters and the printed version of the program (Anna Grau).


Sun
Give us the e-mail address of Joan Carles Agusti

UB (Isabel Àlvarez)
  • List of nearby restaurants ordered by prices
  • Reserve rooms for those days (aula magna is already reserved).
  • Request budget to the local University Cafeteria for the conference. Basically Coffe
    and some pastry for threee days (twice a day).
  • Give us the name of their last manufacturer for the posters.
  • Ask if it is possible to lodge some people in its halls of residence. How many people?
    Where?
  • Ask prices and disponibility for their Audiovisual services


Jordi
December 2009
S M T W T F S
November 2009January 2010
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31