

Waarom is Python een van de snelst groeiende programmeertalen ter wereld? En waarom hebben wij Python gekozen als een van onze programmeertalen? Om die vragen te beantwoorden, zullen een aantal van onze experts op dit gebied je door ons verhaal leiden in de volgende blogposts in deze serie:
- Waarom we (ook) voor Python hebben gekozen
- Hoe bedrijven Python gebruiken in de echte wereld
- Waarom Python zo populair is in innovatie
De juiste oplossing op het juiste moment
De traditie en het hart van ACA Group liggen in klantgerichtheid en innovatie. Daarom beperken we ons niet tot één programmeertaal of één specifieke technologie of oplossing. We onderzoeken de markt, experimenteren met nieuwe technologieën en zoeken altijd naar de best mogelijke oplossing voor onze huidige en toekomstige klanten. Dit is precies de reden waarom we Python hebben gekozen als een van onze programmeertalen.
Maar voordat we ons richten op het "waarom Python?", laten we beginnen met het hoe. Hoe is het allemaal begonnen voor Python?
Snelst groeiende programmeertaal ter wereld
Python is eigenlijk begonnen als een hobbyproject van Guido Van Rossum.
Tijdens een lange vakantievakantie in december 1989 begon Guido met het ontwikkelen van een ABC-achtige taal die kon praten met het OS en geschikt zou zijn om snel OS-hulpprogramma's voor Amoeba te ontwikkelen. Hij noemde zijn ontluikende project Python, geïnspireerd op het Monty Python's Flying Circus televisieprogramma. (Bron: Computer - Guido van Rossum: De beginjaren van Python https://www.computer.org/csdl/magazine/co/2015/02/mco2015020007/13rRUy3gmYB)
Flash forward naar 2021: Guido's hobbyproject heeft een ongelooflijke groei doorgemaakt en is uitgegroeid tot een wereldberoemde programmeertaal. En je hoeft mij niet op mijn woord te geloven, talrijke onderzoeken tonen het aan: Python is echt de snelst groeiende programmeertaal ter wereld met meer dan zes miljoen ontwikkelaars. Kijk maar eens naar een van deze populaire en bekende gegevenslinks: RedMonk-rating, Github, Stack Overflow, PYPYL-index, Slashdata en TIOBE-index.
Waarom is Python zo populair?
Hier gaan we: de aanwijzing waar jullie waarschijnlijk allemaal op hebben gewacht. "Waarom is Python zo populair en waarom heeft ACA Python gekozen als een van de programmeertalen?".
- Eenvoud en doeltreffendheid
Python is ontworpen om een zeer leesbare taal te zijn en die eenvoud is een van de belangrijkste redenen waarom het zo populair is.
Python is een krachtige en elegante taal die duidelijk en consistent wil zijn met een eenvoudige syntaxis. Dit betekent dat het zeer toegankelijk is voor beginners en dat het een relatief overzichtelijke visuele lay-out heeft. Omdat het geschreven is in en gelezen kan worden als alledaags Engels (zonder leestekens), is Python snel uitgegroeid tot een van de makkelijkste programmeertalen om te leren. En last but not least, deze eenvoud en consistentie maakt het ook zeer effectief voor programmeurs om te gebruiken, en dus kostenefficiënter om applicaties mee te bouwen.
- Gemeenschap & bibliotheken
Met de Python-gemeenschap aan je zijde sta je er nooit alleen voor.Er zijn veel grote en actieve gemeenschappen over de hele wereld die veel ondersteuning bieden. Het feit dat Python zo wijdverspreid is over verschillende industrieën, bedrijven en mensen, betekent dat er een enorm aantal ontwikkelaars met de taal werkt. Zo'n grote gemeenschap die blijft groeien, resulteert in veel ondersteuningsmateriaal, betrouwbaarheid en vertrouwen.
Ontwikkelaars kunnen niet alleen vertrouwen op de community, maar ook op een uitstekende en uitgebreide lijst van bibliotheken.Deze bibliotheken en frameworks zijn een ongelooflijke bron van informatie en besparen tijd in projecten. Dit maakt zowel de bibliotheken als Python nog populairder.

- Veelzijdigheid en flexibiliteit
Een van de dingen die ontwikkelaars geweldig vinden aan deze programmeertaal is het feit dat het kan worden gebruikt in een verscheidenheid aan projecten en in meerdere industrieën, waaronder data science, machine learning, blockchain en nog veel meer. Met andere woorden, Python beperkt je niet tot een bepaalde toepassing.
Python is niet gemaakt om een specifieke behoefte te beantwoorden, dus het wordt niet gedreven door specifieke templates of API's, wat zowel vrijheid als geschiktheid voor snelle ontwikkeling mogelijk maakt.
Dit zijn de belangrijkste en bekendste redenen achter het succes van Python. Maar hoe zit het met de mogelijke nadelen, de bruikbaarheid en de relatie met innovatie?
Wil je meer weten over Python?
Als je Python al een beetje kent, dan weet je dat we vandaag slechts een tipje van de sluier hebben opgelicht. Geen zorgen! Onze volgende twee blogposts worden binnenkort gelanceerd en onthullen:
- Waar je rekening mee moet houden als je Python kiest of ermee begint
- Waar en hoe bedrijven over de hele wereld Python tegenwoordig gebruiken
- Waarom Python een van de meest gewilde vaardigheden in datawetenschap is
- Waarom Python zo populair is in innovatie
Blijf op de hoogte!

What others have also read


In deze technische blogpost wil ik het hebben over hoe je eenvoudige en flexibele ETL-gebaseerde anonimisering kunt opzetten. Waarom? Wel, ik had onlangs de gelegenheid om een klein proof of concept uit te voeren voor een klant. De klant wilde weten welke opties beschikbaar waren om interne gegevens te nemen, alle persoonlijk identificeerbare informatie (PII) te verwijderen of anonimiseren en deze op een eenvoudige manier en vorm beschikbaar te maken voor externe partijen. Na het verzamelen van verdere vereisten werd de context voor dit proof of concept als volgt gedefinieerd: Welke oplossing dan ook, het moet in staat zijn om gegevens te extraheren uit een on premise Oracle database . Het eindresultaat moet een set CSV-bestanden zijn in een Amazon S3-bucket . Tussen het ophalen van de Oracle-gegevens en het dumpen ervan in CSV-vorm op S3, moet er iets zijn dat PII-gegevens verwijdert/anonimiseert. Indien mogelijk moet de gekozen oplossing cloud native zijn. In deze 3-delige blogreeks leg ik uit hoe je eenvoudige en flexibele ETL-gebaseerde anonimisering opzet: Het onderzoek naar producten die gebruikt zouden kunnen worden om het probleem op te lossen. Controleer ook hoe geschikt ze zijn voor wat de proof of concept moet bereiken. Hoe het gekozen product gebruikt kan worden om een ETL pipeline te maken die aan de eisen voldoet. Daarnaast, hoe je een lokale Oracle database opzet in Docker die gebruikt kan worden als databron voor het data ingestion deel van het proof of concept (gewoon omdat dit zo'n PITA was om te doen). En of dit op een cloud native manier kan worden gedaan. Onderzoek Het onderzoeksdeel van het proof of concept bestaat uit 2 delen: Hoe haal je data uit een Oracle database, anonimiseer je het op de een of andere manier en sla je het op als een stel CSV bestanden in een S3 bucket aka het ETL gedeelte. Uitzoeken wat de beste manier is om de anonimisering uit te voeren. De gegevens extraheren, transformeren en opslaan Het probleem van de klant klonk meteen al opmerkelijk als iets dat je zou kunnen oplossen met een ETL-product: Extract Transform Load . Het onderzoeksgedeelte voor dit deel van het proof of concept zou zich dus concentreren op dit type product. Ik kreeg ook wat input van iemand in mijn team om eens te kijken naar singer.io , omdat dat iets was dat ze in het verleden met succes hadden gebruikt voor dit soort problemen. Als je naar de homepage van Singer kijkt, vallen een aantal dingen meteen op: Singer maakt gegevensextractie en -consolidatie mogelijk voor alle tools van je organisatie. De open-source standaard voor het schrijven van scripts die gegevens verplaatsen. Unix-geïnspireerd: Singer taps en targets zijn eenvoudige applicaties samengesteld met pipes. JSON-gebaseerd: Singer-toepassingen communiceren met JSON, waardoor ze eenvoudig te gebruiken en te implementeren zijn in elke programmeertaal. Singer is dus gewoon een specificatie, zij het geen officiële. Het is een eenvoudig, op JSON gebaseerd dataformaat en je kunt iets in dit formaat produceren (een tap in Singer terminologie) of het formaat consumeren (een target ). Je kunt deze taps en targets aan elkaar koppelen om gegevens van de ene locatie te halen en op een andere locatie op te slaan. Singer wordt standaard geleverd met een heleboel taps (meer dan 100) en targets (10). Deze taps en targets zijn geschreven in Python. Omdat het centrale punt van het systeem slechts een gegevensformaat is, is het vrij eenvoudig om er zelf een te schrijven of een bestaand formaat aan te passen. Bij het controleren van de taps zou de standaard Oracle-tap het Extract-gedeelte van ons proof of concept moeten dekken. Hetzelfde lijkt echter niet het geval te zijn voor het Load gedeelte als we kijken naar de standaard targets. Er is een CSV target , maar deze slaat de resultaten lokaal op, niet in een S3 bucket. Er is een optie om gewoon dit doel te gebruiken en de S3 upload zelf te doen nadat de ETL pijplijn is voltooid. Een andere optie zou zijn om het bestaande CSV target aan te passen en de bestandsopslag te veranderen naar S3. Even Googelen levert een door de gemeenschap gemaakt S3 CSV Singer doel op. Volgens de documentatie zou dit target precies moeten doen wat we willen. Oeps, Singer transformeert niet Met de Extract en Load delen gedekt, blijft alleen het Transform deel van de ETL pijplijn over om uit te zoeken... en dit is waar het een beetje vreemd wordt. Ook al is Singer geclassificeerd als een ETL tool, het lijkt geen ondersteuning te hebben voor het transformatie gedeelte? Toen ik hier verder naar keek, kwam ik deze onheilspellend getitelde post tegen: Why our ETL tool does not do transformations . Als ik dit lees, lijkt het erop dat ze hun JSON specificatie/gegevensformaat beschouwen als het transformatiegedeelte. Dus ze ondersteunen transformatie naar ruwe gegevens en het opslaan ervan, maar ondersteunen geen andere soorten transformaties. Dat deel mag je zelf doen nadat het ergens is opgeslagen door een Singer-doel. Het blijkt dus dat Singer meer lijkt op het EL deel van een ELT product dan op een "old school" ETL product . Op dit punt zou Singer in ieder geval voldoende moeten zijn om de gegevens uit een Oracle database te halen en in CSV-formaat in een S3 bucket te zetten. En omdat Singer vrij eenvoudig, open en uitbreidbaar is, laat ik het hier voorlopig bij. Laten we verder kijken naar de anonimiseringsopties die in deze Singer-context zouden kunnen passen. Gegevens anonimiseren Net als bij het ETL-gedeelte, kreeg ik ook voor dit gedeelte wat input die me wees op Microsoft Presidio . Op de homepage kunnen we het volgende lezen: Het biedt snelle identificatie- en anonimiseringsmodules voor privé-entiteiten in tekst en afbeeldingen , zoals creditcardnummers, namen en meer. Het faciliteert zowel volledig geautomatiseerde als semi-geautomatiseerde PII de-identificatiestromen op meerdere platforms. Aanpasbaarheid in PII-identificatie en -anonimisering. Er staan dus veel veelbelovende dingen in die me zouden kunnen helpen bij het oplossen van mijn anonimiseringsbehoeften. Bij nader onderzoek lijkt het erop dat ik dit product evalueer tijdens een grote transformatie (snap je? 😉 ) van V1 naar V2. V1 bevatte wat ETL-achtige dingen zoals het ophalen van gegevens uit bronnen (hoewel Oracle-ondersteuning in de roadmap nooit lijkt te zijn gerealiseerd ) en het opslaan van geanonimiseerde resultaten in een aantal vormen/locaties. V2 heeft deze aanpak echter volledig losgelaten en concentreert zich puur op het detecteren en vervangen van PII-gegevens. In de kern is Presidio V2 een op Python gebaseerd systeem dat bovenop een AI-model is gebouwd. Dit stelt het in staat om automatisch PII-gegevens te ontdekken in tekst en afbeeldingen en deze te vervangen volgens de regels die je definieert. Ik heb wat tests gedaan met behulp van hun online testtool en het werkt min of meer, maar voor onze specifieke context moet het zeker worden aangepast. Als we kijken naar de meegeleverde testgegevens, lijkt het erop dat het vooral eenvoudige en korte gegevens zijn, maar geen grote tekstblokken of afbeeldingen. Dit roept de vraag op: zelfs als we Presidio kunnen configureren om te doen wat we willen, slaan we misschien kleine spijkers met een grote hamer? Is Presidio te veel? Laten we hier nog eens over nadenken. Als we gemakkelijk kunnen weten en definiëren welke eenvoudige kolommen in welke tabellen moeten worden geanonimiseerd en wanneer gewoon nulling of hashing van de kolomwaarden voldoende is, dan hebben we het autodetectie deel van Presidio niet nodig. We hebben ook geen Presidio-ondersteuning nodig voor volledige tekst of afbeeldingen en we hebben ook geen fancy substitutie-ondersteuning nodig. Presidio zou een krachtige bibliotheek kunnen zijn om een automatische anonimiseringsstap te maken voor onze Singer-gebaseerde pijplijn. Het helpt ook dat Presidio gebaseerd is op Python. Maar mijn gevoel zegt dat ik misschien eerst moet proberen om een iets eenvoudigere oplossing te vinden. Ik begon te zoeken naar iets dat een eenvoudige PII-vervanging kan doen en dat werkt in een Singer tap/target context. Ik vond deze Github repository: pipelinewise-transform-field . In de documentatie staat "Transformatiecomponent tussen Singer taps en targets". Klinkt verdacht veel als het " T " deel dat Singer als een ETL miste! Verderop in de configuratiesectie lezen we zelfs: "Je moet definiëren welke kolommen door welke methode moeten worden getransformeerd en in welke conditie de transformatie moet worden toegepast." en de mogelijke transformatietypes zijn: SET-NULL : transformeert elke invoer naar NULL HASH : transformeert stringinvoer naar hash HASH-SKIP-FIRST-n : Transformeert stringinvoer naar hash waarbij de eerste n tekens worden overgeslagen, bijv. HASH-SKIP-FIRST-2 MASK-DATE : Vervangt de maand- en dagdelen van datumkolommen door 1 jan. MASK-NUMBER : Zet elke numerieke waarde om in nul. MASK-HIDDEN : verandert een willekeurige tekenreeks in 'verborgen'. Dit lijkt volledig te voldoen aan onze eenvoudige anonimiseringseisen! We kunnen zelfs zien hoe we het moeten gebruiken in de context van Singer: some-singer-tap | transform-field --config [config.json] | some-singer-target Standaard Conclusie We hebben nu alle stukjes van de puzzel voor het opzetten van eenvoudige en flexibele ETL-gebaseerde anonimisering. In de volgende blogpost laten we zien hoe ze in elkaar passen en of ze de resultaten opleveren die de klant zoekt.
Lees verder

Enlit is Europa’s grootste event rond energietransitie. Vanuit ACA Group tekenden Tom Claus and Sven Sambaer present. Ze ontmoetten klanten en partners, legden hun oor te luister en hielden hun ogen open voor de laatste trends. Een verslag over het energie-trilemma, de autobatterij als bewaker van de balans in het distributienet en smart metering 2.0.
Lees verder

Maak het concreet voor alle belanghebbenden Data Mesh wordt vaak gezien als iets zeer abstract en theoretisch, waardoor belanghebbenden onzeker zijn over de precieze implicaties en mogelijke oplossingen ervan. Daarom willen we het bij ACA Group zo concreet mogelijk maken voor business stakeholders, technische stakeholders en andere belanghebbenden in de organisatie. Wij raden aan om drie belangrijke uitdagingen tegelijkertijd aan te pakken: IDENTIFICEER BEDRIJFSWAARDE – Definieer hoe Data Mesh exact bijdraagt aan de bedrijfswaarde door data als een product te beschouwen. ORGANISEER TEAMS – Specificeer de rol van elk team, teamlid en persona binnen de context van Data Mesh. BUILD PLATFORM – Laat zien hoe data mesh de technische architectuur beïnvloedt. Uitdaging 1: De bedrijfswaarde van Data Mesh identificeren Een van de eerste uitdagingen bij de introductie van Data Mesh is het uitleggen en bewijzen van de waarde voor de business. Bij ACA Group beginnen we met het identificeren van potentiële dataproducten, domeinen en use cases. Dit proces is gebaseerd op zakelijke input en resulteert in een dataproductlandschap. De figuur hieronder geeft een voorbeeld vanuit een e-commerce bedrijf (rechthoeken zijn applicaties, hexagonen zijn data producten, kleuren geven domeinen die ownership nemen). Dit landschap dient als navigatiekaart, inspireert nieuwe innovatieve zakelijke ideeën en laat de meerwaarde zien die Data Mesh voor de organisatie kan bieden. Door te laten zien hoe Data Mesh nieuwe mogelijkheden kan creëren, verduidelijken we de relevantie ervan voor zakelijke belanghebbenden. Data Mesh Oplossingen Afstemmen op Organisatiedoelen Om het maximale uit Data Mesh te halen, is afstemming op de algemene doelstellingen en strategie van de organisatie van het grootste belang. Het is cruciaal om ervoor te zorgen dat de investering in technologie en processen aansluit bij de bredere bedrijfsdoelstellingen. Door deze afstemming blijft de steun en het momentum behouden, wat cruciaal is voor het succes van een Data Mesh-initiatief. Data Mesh Opportuniteiten Identificeren met Gamestorming Bij ACA Group passen we gamestorming-technieken toe om domeinen en dataproducten te ontdekken. Dit proces begint met de identificatie van business mogelijkheden en datagebruiksscenario's. Dat doen we aan de hand van workshops, zoals het in kaart brengen van de impact. Door Data Mesh op deze aspecten af te stemmen, identificeren we een dataproductlandschap vanuit twee perspectieven. Een inventarisatie van beschikbare data en potentiële dataproducten inspireert en genereert nieuwe zakelijke ideeën, terwijl de gewenste zakelijke impact en doelstellingen helpen bij het identificeren van de benodigde data en dataproducten. Uitdaging 2: Teams Organiseren en Individuen Empoweren Data Mesh gaat niet alleen over technologie; het gaat over het transformeren van de manier waarop teams en teamleden binnen de organisatie opereren. ACA Group gelooft in het effectief organiseren van teams om de kracht van Data Mesh te benutten. We gaan in gesprek met bestaande teams en teamleden en positioneren hun waardevolle rollen en expertise binnen een Data Mesh-teamorganisatie. Meestal zijn hierbij platformteams, domeinteams, faciliterende teams en een gefedereerd governanceteam betrokken. Daarnaast onderzoeken we de verschillende gebruikerstrajecten en ervaringen voor elke persona, om ervoor te zorgen dat Data Mesh een positieve invloed heeft op de organisatie, haar mensen en hun rollen. Uitdaging 3: De technische architectuur opzetten Het invoeren van Data Mesh is een transformerend traject voor elke organisatie. Door de uitdagingen op te splitsen in uitvoerbare stappen, zoals ACA Group doet, kan je Data Mesh tastbaarder maken, de waarde ervan verduidelijken en de oplossing afstemmen op de doelstellingen van je organisatie. Deze incrementele acties dienen om het mysterie weg te nemen rond Data Mesh, waardoor het begrijpelijk wordt voor een breed scala aan stakeholders en het pad wordt geëffend voor goed geïnformeerde beslissingen. Het omarmen van Data Mesh betekent het omarmen van de toekomst van datamanagement, en biedt een scala aan opportuniteiten voor je organisatie. Dit traject gaat over het praktisch realiseren van Data Mesh en tegelijkertijd zorgen voor afstemming op je organisatiedoelstellingen. Conclusie Het invoeren van Data Mesh is een transformerend traject voor elke organisatie. Door de uitdagingen op te splitsen in uitvoerbare stappen, zoals ACA Group doet, kan je Data Mesh tastbaarder maken, de waarde ervan verduidelijken en de oplossing afstemmen op de doelstellingen van je organisatie. Deze incrementele acties dienen om het mysterie weg te nemen rond Data Mesh, waardoor het begrijpelijk wordt voor een breed scala aan stakeholders en het pad wordt geëffend voor goed geïnformeerde beslissingen. Het omarmen van Data Mesh betekent het omarmen van de toekomst van datamanagement, en biedt een scala aan opportuniteiten voor je organisatie. Dit traject gaat over het praktisch realiseren van Data Mesh en tegelijkertijd zorgen voor afstemming op je organisatiedoelstellingen. Nieuwsgierig naar wat Data Mesh nog meer te bieden heeft? Ontdek het hier ✅
Lees verderWant to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!


