søndag den 28. april 2019

Programmering med Python

Programmeringssproget Python vinder stor udbredelse for tiden, hvilket måske hænger sammen med at det er et programmeringssprog som er open source, og som ikke er afhængig af et bestemt operativsystem. Python er, lige som Java, helt platformsuafhængig. Til gengæld forudsætter afvikling af programmerne, at brugeren har et afviklingsmiljø installeret.

Python bruges i øvrigt som makrosprog i mange open source programmer, f.eks. Inkscape, Gimp og LibreOffice.

Når du downloader og installerer LibreOffice, får du helt automatisk et Python afviklingsmiljø med i pakken.

Python i LibreOffice

Hvis du programmerer makroer i LibreOffice Basic, benytter du den indbyggede IDE (integrated Development Environment), men til Python må du selv vælge hvilket udviklingsmiljø du gerne vil bruge. Der er mange at vælge imellem. Geany, PyCharm og Eclipse er bare eksempler.

Der er tre ting du skal være opmærksom på, inden du går i gang:
  1. Pythonfilen skal være placeret i dit brugerkatalog under user/Scripts/python/ eller en folder derunder. På min PC er det her: /home/leif/.config/libreoffice/4/user/Scripts/python
  2. Den makro (Python-funktion) du gerne vil stille til rådighed i LibreOffice brugergrænsefladen skal "udstilles" ved at tilføje navnet til Tuple-variablen g_exportedScripts.
  3. For at tilgå dokumentobjekter i LibreOffice skal du benytte XSCRIPTCONTEXT ved at kalde en af funktionerne getDocument (), getInvocationContext (), getDesktop (), getComponentContext (). Når først du har gjort det, kan du tilgå LibreOffice ad bagvejen, altså programmere makroer.
Her er et klassisk eksempel (Hello world):

# -*- coding: utf-8 -*-
# !/usr/bin/env python

import uno

def HelloWorld():
    """Write Helo World in Writer"""

    try:
        ctx = remote_ctx                   # use in development
    except:
        ctx = uno.getComponentContext()    # use in production

    # get desktop
    desktop = ctx.getByName("/singletons/com.sun.star.frame.theDesktop")
    # get document
    document = desktop.getCurrentComponent()
    # access the document's text property
    text = document.Text
    # create a cursor
    cursor = text.createTextCursor()
    # insert the text into the document
    text.insertString(cursor, "Hello World", 0)

HelloWorld()

g_exportedScripts = HelloWorld,


Du kan læse mere om Python i LibreOffice her: https://help.libreoffice.org/6.3/en-US/text/sbasic/python/main0000.html

Du kan læse mere om XSCRIPTCONTEXT her: https://wiki.openoffice.org/wiki/Python/Transfer_from_Basic_to_Python

Der er masser af muligheder på internettet for at lære programmering med Python. Du kan f.eks. tage et komplet kursus på Massachusetss Institute of Technology (MIT) helt gratis: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/

Nye regnearksfunktioner

Igennem de seneste mange versioner af LibreOffice er der tilføjet adskillige nye regnearksfunktioner. Der er allerede nu planer om at implementere endnu en funktion i LibreOffice, nemlig Fouriertransformation.

Indrømmet. Det er en af de mere langhårede regnearksfunktioner, og jeg kan ikke lige huske hvornår jeg sidst har haft brug for den. Men den er altså på vej med LibreOffice 6.3.



Wikipedia om FOURIER-funktionen: https://da.wikipedia.org/wiki/Fouriertransformation

torsdag den 25. april 2019

Når 'det offentlige' køber ind

Undertitlen kunne være: "sker det med bind for øjnene".

Det har været fremme at Københavns Kommune antageligt skal have spildt en masse penge på at indkøbe Office-licenser, uden at tage dem i brug med det samme. Hele sagen afvises af Københavns Kommune med forskellige forklaringer.

Det er fair nok.

Citat fra Berlingske:
"Københavns Kommune har anvendt millioner af kroner på IT-software, der blev købt og betalt for så at samle digitalt støv i mange måneder. Millioner ud af vinduet, siger ekspert."
Svaret fra Københavns Kommune (i korte træk):
"Det  er Koncern  IT’s  vurdering,  at  Københavns  Kommune  har  foretaget  det økonomisk mest fordelagtige indkøb af Office 365."
Hele sagen afdækker dog en række forhold, som gør sig gældende når offentlige myndigheder køber software hos Microsoft. Da jeg læste artiklen i Berlinske og efterfølgende svaret (fra Koncern-IT til Økonomiudvalget), faldt det mig ind, at jeg har hørt historien før:

Når det offentlige køber kontorsoftware, sker det helt og aldeles på Microsofts vilkår. Vi talte rigtig meget om det omkring 2006-2009, hvor vi havde diskussionen om de famøse åbne standarder.

Citat fra "Orientering til Økonomiudvalget om Office 365":
"Den benyttede model for indkøb af licenser er således Microsofts markedsmodel, som Koncern IT ikke har kunne finde eksempler på, er blevet fraveget.

Derudover har Koncern IT før anskaffelsen af Office 365 undersøgt markedet for andre produkter som eventuel kunneanvendes som kontorpakke, men reelt fandtes der ikke alternativer til Microsoft. Der er altså tale om, at Microsoft har en monopollignende status på markedet for kontorpakker, hvorfor forhandlingsudgangspunktet som følge deraf er vanskeligt."
og ...
"Den valgte aftale på SKI 02.06-samlet forventet udgift over 6 år ca. 172 mio. Kr."
I 2009 afleverede Konkurrencestyrelsen sin rapport til Folketinget om markedet for kontorsoftware. Den gang var konklussionen, at Microsoft dominerer markedet, og at der reelt ikke findes alternativer.

Nu kommer det så frem, at der i de mellemliggende 10 år, ikke er sket noget som helst. Markedssituationen er fortsat til Microsofts fordel og til vores (skatteydere) ugunt.

Hvordan kan vi fortsætte med at lade stå til og bare lade som om at alt er godt? Hvorfor tager vi ikke fat om problemerne, og bruger de næste 10 år på at slippe af med de såkaldte bindinger? Jeg er sikker på at det godt kan betale sig. Der er simpelthen så mange penge på spil, at der vil være rigeligt til både at fjerne hindringerne og implementere en bedre og billigere løsning.

Citater fra Konkurrencestyrelsens rapport "Markedet for kontorsoftware" fra 2009:
"Microsoft har således en meget dominerende markedsposition. Denne meget do-minerende markedsposition har Microsoft haft i en årrække, hvor Microsofts kontorpakker har været baseret på proprietære formater. "
"Det fremgår fx af analyserne i denne rapport, at Microsoft – ud over at være den dominerende udbyder på markedet for kontorsoftware – også er den domineende udbyder på markederne for styresystemer og serversoftware, dvs. på de produkter, hvor der er tekniske bindinger ift. kontorsoftware,..."
"2006 var omsætningen på kontorsoftware på ca. 800 mio. kr., "
"Markedet er præget af en række markedsbarrierer (netværkseffekter, store udviklingsomkostninger, tekniske og praktiske barrierer), som gennem de seneste 10-15 år har gjort det svært for nye aktører at vinde markedsandele, selv om de anvender en række forskellige forretningsmodeller som fx lavprispakker, abonnementsordninger eller gratispakker. "
Artikel i Berlinske: https://www.berlingske.dk/samfund/koebenhavns-kommune-beskyldes-for-ekstremt-overforbrug-betalte-mere-end-ti

Office 365: Københavns Kommune har indgået den bedst mulige aftale: https://www.kk.dk/nyheder/office-365-koebenhavns-kommune-har-indgaaet-den-bedst-mulige-aftale

Konkurrencestyrelsens rapport "Markedet for kontorsoftware" fra 2009: https://www.kfst.dk/media/3010/markedet-for-kontorsoftware-12082009-analyse.pdf

onsdag den 24. april 2019

En måned for LibreOffice

LibreOffice er udviklet af hundredvis af mennesker over hele verden: frivillige, der arbejder hjemmefra, certificerede udviklere, der er en del af vores kommercielle økosystem og andre tilhængere og brugere. I løbet af årene er der tilføjet mange nye funktioner, tests er blevet gennemført, og mange bidrager til at gøre hver udgivelse poleret og pålidelig. Vi er utrolig taknemmelige for deres indsats!

Hvis du er regelmæssig bruger af LibreOffice, kan du også give os en hånd!

I maj 2019 kører vi En måned for LibreOffice - en kampagne for at belønne bidrag til programmet og fællesskabet. Alle, der hjælper, kan kræve en pakke med klistermærker, og denne gang har vi en ekstra bonus: 10 bidragsydere vil blive valgt tilfældigt ud, og vil modtage et eksklusivt LibreOffice glaskrus.


Din hjælp er vigtig for LibreOffice-projektet, men det er også godt for dig selv! Hvis du er interesseret i en mulig fremtidig karriere inden for software - f.eks. med  programmering, kvalitetssikring, brugergrænsefladedesign, dokumentation, brugersupport og andre emner - er det også en god ide at deltage i En måned for LibreOffice:
  • Opbyg dine færdigheder
  • Få erfaring i et velkendt softwareprojekt
  • Skab nye kontakter
  • Sæt det hele på dit CV!
Så hvad sker der nu? Den 1. maj udsender vi detaljerne om hvordan du kan involvere dig - så hold dig opdateret!

torsdag den 4. april 2019

Tidligere versioner

Leder du efter en helt specifik version af LibreOffice?

Måske fordi du skal teste en given funktion over flere versioner, eller fordi du gerne vil en tur ned ad Memory Lane?

Du kan nu hente samtlige versioner af LibreOffice siden version 3.3.0.4 (04-Oct-2011). Du kan finde alle versionerne her: https://downloadarchive.documentfoundation.org/libreoffice/old/

søndag den 17. marts 2019

Nyhedsbrevet er blandt de mest populære postlister

The Document Foundation har 133 forskellige postlister.

Det danske nyhedsbrev er faktisk nr. 6 på listen over postlister, målt på antal abonnenter. Kigger vi på de lokale postlister er kun en fransk og en tysk postliste mere populære.

Her ses toppen af listen:
  1. announce@documentfoundation.org 4976
  2. users@global.libreoffice.org 1525
  3. users@fr.libreoffice.org 637
  4. announce@de.libreoffice.org 630
  5. discuss@documentfoundation.org 563
  6. nyhedsbrev@da.libreoffice.org 528
  7. users@de.libreoffice.org 512
  8. l10n@global.libreoffice.org 433
  9. usuarios@pt-br.libreoffice.org 392
  10. users@es.libreoffice.org 369
  11. documentation@global.libreoffice.org 346
  12. marketing@global.libreoffice.org 341
  13. users@it.libreoffice.org 309
  14. users@ja.libreoffice.org 287
Hvis du kender nogen der kunne være interesseret i at abonnere på nyhedsbrevet, så hjælp dem med at tilmelde sig. 

Tilmelding:
Skriv en mail til: nyhedsbrev+subscribe@da.libreoffice.org

Afmelding:
Skriv en mail til: nyhedsbrev+unsubscribe@da.libreoffice.org

torsdag den 14. marts 2019

Flere brugerprofiler

Din brugerprofil indeholder en lang række oplysninger om hvordan du har indstillet LibreOffice, og hvordan du har brugt LibreOffice senest. Der findes mere end 56.000 forskellige "indstillinger" i LibreOffice.

Første gang du starter LibreOffice bliver der automatisk oprettet en folder med navnet "user" i dit hjemmekatalog. På min Ubuntu-maskine ligger den i /home/leif/.config/libreoffice/4. På Windows er det i C:\Program Files\LibreOfficeOffice (tror jeg nok) og på en Mac er det i ~/Library/Application Support/LibreOffice/4/user.

Du kan godt have flere brugerprofiler på samme computer.

Du kan f.eks. kopiere hele user-kataloget til et andet sted (i mit eksempel i /home/leif), og starte LibreOffice med parameteren -env:UserInstallation:

/opt/libreoffice6.2/program/soffice -env:UserInstallation=file:////home/leif --nologo

Du kan starte LibreOffice med parametre ved at åbne en terminal (på Linux) eller en kommandoprompt på Windows. Du kan også oprette en ny LibreOffice.desktop (på Linux) eller oprette en genvej på Skrivebordet (i Windows).

Du kan også gøre det uden først at kopiere folderen user, og så vil der blive oprettet en ny "tom" brugerprofil.

Nu kan du ændre indstillingerne i den startede LibreOffice, og når du lukker, vil ændringerne blive lagt i den nye brugerprofil. Du kan f.eks. have en brugerprofil med dit eget navn og e-mail i brugeroplysningerne, og en anden med badmintonklubbens navn og adresse.

I dette eksempel konverterer jeg en fil til PDF med en specifik brugerprofil, hvor alle PDF-filer eksporteres som PDF/A 1a:

/opt/libreoffice6.2/program/soffice --convert-to pdf /home/leif/Dokumenter/LibreOffice/test/Ligatur.odt --outdir //home/leif/Dokumenter/LibreOffice/test -env:UserInstallation=file:////home/leif --nologo

PDF-indstillingerne er en linje i filen registrymodifications.xcu:

<item oor:path="/org.openoffice.Office.Common/Filter/PDF/Export"><prop oor:name="SelectPdfVersion" oor:op="fuse"><value>1</value></prop></item>

Du kan læse mere om LibreOffice parametre her: https://help.libreoffice.org/latest/da/text/shared/guide/start_parameters.html