onsdag den 28. september 2016

LibreOffice bliver seks år

Tænk at det allerede er 6 år siden at LibreOffice så dagens lys.

Der er løbet meget vand i åen og mange versioner er langet over skranken i årenes løb.

Jeg glæder mig allerede til de næste seks år.

Blog (engelsk): https://blog.documentfoundation.org/blog/2016/09/28/happy-6th-birthday-libreoffice/

mandag den 26. september 2016

Programmering af makroer

Rigtig mange har prøvet at lave makroer i f.eks. Excel, og det er også tilsvarende muligt at programmere makroer i LibreOffice.

Makroer hører til et af tre steder:
  1. I LibreOffice (installeret sammen med programmet)
  2. På din pc (installeret af dig selv eller vha. en udvidelse)
  3. I det aktuelle dokument
Du kan finde mere information om de forskellige måder i hjælpen (tryk på F1).

Her vil jeg starte forsigtigt med at beskrive hvordan du kan indsætte en tekstværdi et bestemt sted i dit regneark:

Trin 1: Opret makroen
Åbn Calc og gem dit dokument.
Vælg Funktioner - Makroer - Administrer makroer - LibreOffice Basic

Her kan du i venstre side af vinduet se de tre hovedgrupper: Mine makroer, LibreOffice makroer, dit dokument. Det er netop her du vælger placeringen af din makro. Vælg dit dokument ved at klikke på pilen til venstre. Klik på knappen Opret. Klik OK i dialogen (accepter modulnavnet Module1).

Trin 2: Programmering
Du står nu i den indbyggede makroeditor, hvor du i det store vindue i højre side kan se din makrokode. Lige nu er det forholdsvis tomt. Ret Linjen Sub Main til Sub Hej_Verden. Det betyder bare at subrutinen Main nu hedder Hej_Verden:

REM  *****  BASIC  *****

Sub Hej_Verden

End Sub


Det vi skal kigge på nu er koden som skal tilføjes mellem Sub Hej_Verden og End Sub.

Først skal vi deklarere to vigtige variable:

dim document as object
dim dispatcher as object


Vi går straks videre og putter noget indhold i de to variable:

document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")


ThisComponent refererer til det aktuelle dokument. Alt hvad du gør i LibreOffice, f.eks type, farve, indsætte, overvåges af en 'controller'. Controlleren sender derefter ændringerne til dokumentvinduet, altså hovedområdet i Calc. Variablen document dækker med andre ord over dokumentet i Calc.

createUnoService opretter en instans af DispatchHelper. Denne service vil hjælpe os med at afsende de opgaver fra makroen til vinduet. Næsten alle LibreOffice makro-opgaver kan udføres ved hjælp af en dispatcher.

Vores formål er at indsætte "Hej verden" i den første celle. Derfor skal vi bruge to egenskaber, nemlig "ToPoint" og "StringName":

args1(0).Name = "ToPoint"
args1(0).Value = "$A$1"


ToPoint er cellen du ønsker at gøre noget med.

args2(0).Name = "StringName"
args2(0).Value = "Hej verden!"


StringName er den tekst du skal indsætte senere.

Disse to parametre skal vi nu bruge en ad gangen, og få LibreOffice til at udføre to handlinger i rækkefølge:

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())


I dette tilfælde indsætter vi en tekststreng "Hej verden" i cellen. Hvis vi ville, kunne vi indsætte en talværdi, f.eks. "12345", som vil blive indsat i cellen. Men hvis cellen er formateret som tal, vil værdien blive omdannet til tallet 12345.

Trin 3: Afprøv
Øverst i din makroeditor kan du eksekvere (udføre) makroen.

Den komplette makro ser sådan ud:

REM  *****  BASIC  *****
sub Hej_Verden

    dim document   as object
    dim dispatcher as object

    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

    dim args1(0) as new com.sun.star.beans.PropertyValue
    dim args2(0) as new com.sun.star.beans.PropertyValue

    args1(0).Name = "ToPoint"
    args1(0).Value = "$A$1"
    dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

    args2(0).Name = "StringName"
    args2(0).Value = "Hej verden!"
    dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())

end sub



LibreOffice vinder Bossie Award


Hvert år vælger InfoWorlds redaktører og journalister det bedste open source program i forskellige kategorier. LibreOffice er valgt som bedste open source program i kategorien forretningssoftware, samarbejde og middleware.

Kilde: http://www.infoworld.com/article/3122000/open-source-tools/bossie-awards-2016-the-best-open-source-applications.html#slide2

fredag den 23. september 2016

LibreOffice Calc er det sikre valg for videnskabelige artikler

Medier over hele verden har på det seneste omtalt resultatet af en australsk undersøgelse af en lang række videnskabelige artikler, som påstår at regnearksprogrammer fejlagtigt konverterer f.eks. navne på gener til datoer og flydende tal. Undersøgelsen er baseret på resultater fra Microsoft Excel men det påstås at det også gør sig gældende I LibreOffice Calc.

Før vi dykker ned I problemets detaljer, er det vigtigt at understrege at regneark som program ikke er egnet til at håndtere rådata, men derimod er beregnet til at foretage beregninger. Problemets kerne er i virkeligheden, at regneark anvendes til noget som regneark ikke er beregnet til, og de pågældende brugere i stedet burde anvende et mere passende program.

Data som importeres fra fremmede kilder bør håndteres I et databasesystem (som navnet antyder). Regneark er beregnet til at håndtere tal og foretage matematiske beregninger, og reagerer ofte på tekst ved at forsøge at fortolke teksten som tal.

For at gøre en lang historie kort, så konverterer LibreOffice Calc ikke MARCH1 eller SEPT2 til datoer, og det hverken på engelsk eller dansk. Uheldigvis påstår den australske undersøgelse at det modsatte gør sig gældende, og frembringer derved usandfærdige oplysninger.

LibreOffice har indtil version 4.2.4 (april 2014) konverteret MARCH1 til dato, men ikke  SEPT2. Fejlen er rettet i version 4.2.5 (juni 2014).

Omvendt konverterer LibreOffice Calc tallet 2310009E13 korrekt til 2.310009E+019 og ikke til 2.31E+13 som det påstås i undersøgelsen. Denne talgenkendelse er ikke bare forventet men påkrævet af et regnearksprogram, når tallet importeres som rådata.

I tilfælde hvor alle data i et datasæt skal betragtes som ren tekst, bør brugeren anvende LibreOffices specielle typografi-funktioner og oprette en skabelon, hvor alle celler på forhånd er formateret som tekst.

Alternativt kan brugeren anvende en af følgende metoder til korrekt import af rådata:
  1. Tilknytte tekstformat til alle anvendte celler
  2. Indsætte alle data som uformateret tekst i stedet for som HTML (eller hvilket format rådata kommer fra), og anvende tekstformat som kolonnetype i importdialogen.
  3. Anvende et passende dataformat til tabuleret tekst, f.eks. CSV eller TSV, og også her vælge tekstformat som kolonnetype i importdialogen.
Kort fortalt vil LibreOffice Calc, hvis programmet anvendes korrekt, have undgået de fejl som er omtalt i den australske undersøgelse.

tirsdag den 20. september 2016

Konferencen i Brno


Konferencen i Brno er overstået, og denne gang har jeg desværre ikke haft mulighed for at deltage. Jeg kan selvsagt heller ikke referere fra konferencen.

Til gengæld kan du læse alt om konferencen her: http://conference.libreoffice.org/
Du kan se udvalgte billeder her: https://blog.documentfoundation.org/pictures/

Jeg forventer at der kommer video fra alle sessioner inden for de kommende måneder.

mandag den 19. september 2016

Nyt i 5.3: Tabeller

Tabeller i Writer kan formateres på forskellige måder, blandt andet ved at definere kanter, afstande og baggrundsfarve. Det er også muligt at benytte Autoformat.

Det er også muligt at oprette sine egne autoformater, men det er lidt besværligt. F.eks. er det ikke muligt at finpudse enkelte parametre, da et nyt Autofomat altid oprettes ud fra en eksisterende tabel.

Fre version 5.3 bliver det muligt at håndtere tabeller ved hjælp af en ny type typografier; Tabeltypografier.
Vi kan altså se frem til at håndtering af tabellers udseende bliver lettere at arbejde med, og det bliver lettere at lave konsistens udseende af sine tabeller.

LibreOffice 5.3 er planlagt til at blive frigivet i februar 2017.

torsdag den 15. september 2016

Open Office og LibreOffice

Jeg har tidligere skrevet om Open Office, blandt andet i forbindelse med manglende sikkerhedsopdateringer og senest i forbindelse med rygter om lukning. Men hvad betyder Open Office egentlig for LibreOffice?

Naturligvis har Open Office en betydning for LibreOffice, alene af den grund at LibreOffice udspringer af Open Office. Efter forgreningen har LibreOffice arvet enkelte features, heriblandt hele rammesystemet som implementerer sidepanelet. Men de seneste to til tre år, efter IBM trak sig ud af udviklingsarbejdet, har der ikke været noget nævneværdigt at hente.

Den største indflydelse er navnet. Rigtig mange mennesker kender Open Office fra den tid, hvor det var den førende alternative kontorpakke. Mange har naturligvis opdaget at LibreOffice har overtaget pladsen, men så længe Open Office fortsat eksisterer, vil mange fortsætte med at benytte programmet. Det er ikke alle mennesker der læser nyhedsbrevets artikler, eller læser IT-medier. Der er rigtig mange mennesker, som endnu ikke har opdaget, at LibreOffice er meget bedre.
Navnet Open Office har med andre ord fortsat en betydning, og rækker ca. 50% af brugerne væk fra LibreOffice.

Derfor bliver Open Office fortsat downloaded hver dag, også i Danmark.

Jeg har spurgt Google hvad folk i Danmark søger efter, og det viser sig at LibreOffice faktisk har overhalet Open Office. Men også kun lige. Der er dagligt mellem 50 og 100 søgninger efter Open Office fra Danmark.



Den blå linje er søgninger per dag efter LibreOffice og den blå linje tilsvarende antal søgninger efter Open Office. I begge tilfælde bygger analysen på adskillige variationer over stavemåde, og den skulle være renset for alt for meget open office (åbent kontorlandskab).
Derfor: Hvis du møder nogen der bruger Open Office, så tilbyd at hjælpe med at opgradere til LibreOffice.

Set over et lidt længere tidsinterval, ser tendensen sådan ud: