Xerdi

Vrije Software

Vrije Software Projecten

Projecten

Xerdi ontwikkelt vrije software voor verschillende doelgroepen. Voor gebruikers van hoogwaardige toepassingen worden projecten paars gekleurd. Projecten gericht op LaTeX-auteurs worden blauw gekleurd. Technische projecten voor ontwikkelaars worden teal gekleurd.

Licensering

Xerdi kiest licenties die de principes van vrije software belichamen en samenwerking bevorderen. Voor LaTeX-projecten neemt Xerdi de LaTeX Project Public License (LPPL) versie 1.3 aan, wat zorgt voor duidelijke richtlijnen voor gebruik, wijziging en distributie binnen de LaTeX-gemeenschap. Voor andere softwareprojecten kiest Xerdi de GNU General Public License (GPL) versie 3, ter bevordering van gebruikersvrijheid en een samenwerkingsmodel voor ontwikkeling door te eisen dat wijzigingen onder dezelfde licentie worden uitgebracht. Deze keuzes sluiten aan bij Xerdi's toewijding aan open samenwerking en transparante, door de gemeenschap gedreven softwareontwikkeling.

Ondersteun Xerdi

Xerdi verwelkomt jouw steun om zich te blijven inzetten voor de ontwikkeling van vrije software en innovatieve projecten. Je kunt bijdragen door een donatie te doen, ofwel voor een specifiek project of om onze algehele missie van het bevorderen van open-source oplossingen te ondersteunen.

Om te doneren voor een specifiek project, scroll dan naar beneden voor een geschikt project en zoek de donatielink. Als je liever Xerdi's algemene ontwikkeling van vrije software wilt ondersteunen, kun je hier een donatie doen.

Jouw bijdragen spelen een cruciale rol in het versterken van individuen en organisaties door middel van technologie. Bedankt dat je deel uitmaakt van de Xerdi-gemeenschap!

Lua [placeholders]

Breng je LaTeX-documentcreatie naar een hoger niveau met Lua Placeholders, een dynamisch pakket op maat gemaakt voor LuaLaTeX. Zeg vaarwel tegen vervelende parameterconfiguraties en omarm een naadloze, programmeerbare aanpak met behulp van YAML-receptbestanden.

Lua Placeholders stelt je in staat om moeiteloos boeiende documenten te maken door naadloos zowel tijdelijke aanduidingen als echte parameterwaarden te integreren. Presenteer je inhoud dynamisch met "voorbeeld" documenten en maak moeiteloos de overgang naar "definitieve" documenten verrijkt met authentieke gegevens.

Waarom Lua Placeholders?

  • Zorgeloos parameters aanbrengen: Maak gebruik van YAML-receptbestanden voor een gestroomlijnde en programmeerbare opzet van parameters.
  • Dynamische documentcreatie: Genereer eenvoudig "voorbeeld" en "definitieve" documenten voor veelzijdige presentatie van inhoud.
  • Naadloze integratie: Integreer Lua Placeholders moeiteloos in je documentworkflow via standaard LaTeX-compilatie.
  • Verhoogde flexibiliteit: Ondersteuning voor meerdere gegevenstypen en opmaak macro's biedt een ongeëvenaarde ontwerpflexibiliteit.

Klaar om je documenten naar een hoger niveau te tillen? Ontdek de volledige mogelijkheden van Lua Placeholders door onze uitgebreide handleiding te verkennen.

Gitinfo Lua

Gitinfo Lua is een LaTeX-pakket ontworpen voor LuaLaTeX, met de vereiste functionaliteit voor shell-escape. Het verbetert LaTeX-documenten door macro's zoals \gitversion en \gitdate te bieden voor het weergeven van versie- en datumgegevens die zijn opgehaald uit Git.

Het pakket is beschikbaar via het Comprehensive TeX Archive Network (CTAN).

Het pakket ondersteunt meerdere auteurs met \dogitauthors en \forgitauthors, waardoor aanpasbare opmaak mogelijk is.

Voor commit-informatie bieden \gitcommit en \forgitcommit veelzijdige opmaakopties.

\forgittag introduceert opmaakopties voor tags met keuzes voor tagtypes, wat het genereren van een changelog vergemakkelijkt.

Voor meer informatie over Gitinfo Lua, lees de gebruikershandleiding.

Regelgevende Documenten

Elk bedrijf kwalificeert in zekere mate met regelgevende documenten. Denk bijvoorbeeld aan algemene voorwaarden, disclaimers of een arbeidsovereenkomst.

Xerdi ontwikkelt alle documentatie met LaTeX, waaronder functionele en technische ontwerpen, facturen, enzovoort. Xerdi beschouwt het als de beste oplossing vanwege het enorme potentieel voor standaardisatie, samenwerking, technische compliance en zelfs in zekere mate voor automatiseringsdoeleinden.

LaTeX blijkt buitengewoon gebruiksvriendelijk voor bepaalde toepassingen; toch wordt effectief gebruik voor specifieke taken uitdagend zonder een grondig begrip van het onderliggende TeX-systeem.

Op 13 april 2022 begon Xerdi met het ontwikkelen van juridische documenten in LaTeX, en vanaf 18 april 2023 is alle ervaring verweven in een LaTeX-pakket — regulatory. Dit pakket is gemaakt om het eenvoudig en beknopt te maken voor juristen.

Lees de gebruikershandleiding voor een beter begrip van wat regulatory biedt.

GinVoice

GinVoice logo

In 2017 maakte ik al facturen met LaTeX. Niet erg gebruiksvriendelijk voor gewone gebruikers, maar de perfecte tool voor mij. Het was in 2020 toen ik mijn toenmalige vriendin zag factuurregels handmatig berekenen in Libre Office, dus besloot ik een GTK-app te maken in combinatie met de kracht van LaTeX.

Na meer dan 2 jaar ontwikkeling van GinVoice is er eindelijk een installeerbaar product beschikbaar voor Ubuntu Jammy Jellyfish. Momenteel is het beschikbaar via mijn Personal Package Archives (PPA).

Om GinVoice via de PPA te installeren, kun je het volgende doen (rootmachtigingen vereist):

                    add-apt-repository ppa:maclotsen/ppa
                    apt update && apt install ginvoice
                

Als alternatief kan je rechtstreeks het .deb-bestand downloaden en het uitvoeren met de Ubuntu Software Center. Download het nieuwste .deb-bestand met deze link.

Typed Lua Wrapping (TLW)

In 2019 zijn Robin Koning en ik gestart met een game-engineproject, NGin. Voor het gebruik van NGin hebben we ervoor gekozen de gebruiker niet op te zadelen met het schrijven van C++, maar met Lua. Lua staat bekend om zijn eenvoudige inbeddingstechnieken tussen C en Lua, en vice versa, waar andere talen zoals Python alleen optimaal werken in één richting.

TLW is gemaakt om concepten van C++ binnen de Lua-context toe te voegen. Denk bijvoorbeeld aan een C++-klasse, geen struct in C. Daarnaast biedt TLW een elegante manier om C++-klassen bloot te stellen aan Lua.

Simpel voorbeeld:
struct entity {
    vec4 position;
    vec4 look_at;
    mat4 model;

    entity() : position(0, 0, 0, 1), look_at(0, 0, -1), model() {}

    explicit entity(vec4 position) : position(std::move(position)), look_at(0, 0, -1), model() {

    }

    explicit entity(mat4 model) : position(0, 0, 0, 1), look_at(0, 0, -1), model(model) {

    }
};

int luaopen_entitylib(lua_State *L) {
    tlw::state l(L);
    tlw::lua lua(l);
    auto lib_entity = tlw::define<entity>("entity")
            .ctor<>()
            .ctor<vec4>()
            .ctor<mat4>()
            .prop("position", &entity::position)
            .prop("lookat", &entity::look_at)
            .prop("model", &entity::model)
            .build();
    lua["entity"] = lib_entity(l);
    return 0;
}