#1651: Hoe om te gaan met tekenreeksen in spreadsheets die met nullen beginnen, advertentie-tracking verwijderen uit ckbk
Nadat een kerstkaart onbestelbaar terugkwam wegens een onbedoeld afgekapte postcode onderzocht Adam Engst het weerbarstige probleem hoe spreadsheets omgaan met tekenreeksen die beginnen met &eaccute;én of meer nullen. Hij deelt ook het verhaal hoe een discussie met een TidBITS lezende ontwikkelaar ertoe leidde dat het bedrijf van deze ontwikkelaar ad tracking verwijderde uit zijn iOS-app. Belangrijke nieuwe versies van Mac-apps deze week zijn Carbon Copy Cloner 6.1.5, Cardhop 2.2.6, Agenda 17, Camo Studio 2.0.1, Tinderbox 9.5.2 en Lunar 6.0.
- Cckbk helpen bij het verwijderen van advertentie-tracking
- Hoe om te gaan met tekenreeksen in spreadsheets die met nullen beginnen
- Volglijst: Mac app-updates
De Nederlandse editie van TidBITS is een letterlijke vertaling van de oorspronkelijke Engelse versie. Daarom is het mogelijk dat een deel van de inhoud niet geldt in bepaalde landen buiten de VS.
Dit nummer werd uit het Engels vertaald door:
• Henk Verhaar
• Nico Seine
• Joek Roex
• Thierry Kumps
• Dirk Paul Flach
Verder werkten mee:
• Coördinatie: Renate Wesselingh
• Montage: Elmar Düren
• Eindredactie: Renate Wesselingh, Sander Lam & Elmar Düren
Hoe je ons kunt bereiken kun je lezen op <de contactpagina>
Cckbk helpen bij het verwijderen van advertentie-tracking
[vertaling: NS, JR, TK]
In dit anonieme tijdperk van schaalvergroting, doelgroepen en bekeken worden, loont het nog steeds om persoonlijk te worden. Vorige maand ontving ik een e-mail van Matthew Cockerill, die zichzelf voorstelde op een manier die vergelijkbaar is met die van veel TidBITS-lezers die mij voor het eerst schrijven.
Als iemand die TidBITS 30 jaar geleden begon te volgen als een Mac-gebruikende PhD-student in de vroege jaren 90, was het heel gaaf om te zien hoe je één van je nieuwste stukken begon: "Ik houd van kookboeken" 🙂
Matt verwees naar “Gebruik Livetekst om je kookboeken te digitaliseren” (5 januari 2023), en hij wilde me vertellen over zijn dienst ckbk, die de volledige tekst van ongeveer 700 kookboeken aan abonnees levert. Ik betrok Jeff Carlson, die “Gebruik het web om met je boeken te koken” (17 maart 2022) voor ons schreef, in het gesprek, en als alles goed gaat hebben we over een maand of zo weer een artikel over het onderwerp. (Een snelle zoektocht in mijn e-mail onthulde ook dat Matt en ik allebei op een mailinglijst uit de uitgeverij stonden, waar ik hoorde dat hij, na zijn doctoraat te hebben behaald in de moleculaire biologie, mede-oprichter was van de open-access wetenschappelijke uitgeverij BioMed Central en hij is verder gegaan in adviseren over ontwerpen en innovatie.)
Maar daar wilde ik vandaag niet over schrijven. Nadat Matt contact had opgenomen, downloadde ik de ckbk-app naar mijn iPhone en ontdekte tot mijn ontzetting dat deze meeslepend klinkende service me blijkbaar wilde volgen. En dit van iemand met wie ik het persoonlijk waarschijnlijk prima zou kunnen vinden,.
Telkens wanneer ik dat dialoogvenster zie, word ik onmiddellijk achterdochtig over het bedrijf en zijn product en ik tik altijd op 'Vraag de app om niet te tracken' terwijl ik tegelijkertijd obsceniteiten mompel. Vervolgens maak ik een screenshot van de app, zodat ik gemakkelijk kan documenteren welke bedrijven dubieuze bedrijfsmodellen en verontrustende ethiek hebben door te zoeken op de afbeeldingstekst 'Vraag de app om niet te tracken' in Foto's. (De volledige lijst staat in Instellingen > Privacy en beveiliging > Tracking.)
In antwoord op het bericht van Matt had ik vragen over de dienst en liet ik blijken teleurgesteld te zijn dat de app vroeg om mij te volgen. Hij antwoordde:
Voor wat betreft het feit dat de app je vraagt om te “tracken”: ik begrijp wat je bedoelt maar het is niet zo sinister als je denkt … Zolang “tracking” niet aanstaat, kunnen de app en de App store zelfs de meest elementaire informatie niet verstrekken: we kunnen dus niet te weten komen welk reclame-uitgave of samenwerkingsverband gebruikers naar de ckbk-app gebracht hebben en welke daarvan, bijvoorbeeld, pure geldverspilling zijn geweest. Om een beeld te krijgen van de effectiviteit van onze marketing hebben we dus blijkbaar geen andere keuze dan tracken. Het is teleurstellend dat Apple geen onderscheid maakt tussen deze en andere manieren van tracken door derden.
Dat stelde me wel iets gerust maar nog niet genoeg om tracken volledig toe te staan, hoewel ik begrijp dat je met het doorklikken vanuit advertenties partners wil koppelen aan acties. Wij hebben dat met Take Control Books steeds gedaan om er achter te komen waar een klant vandaan komt maar we verzamelden geen andere gegevens over die klant. De volgende e-mail van Matt gaf me een nog beter gevoel:
Ik moet je wel bedanken voor het duwtje in de rug: ik ben hier nog wat dieper ingedoken en er zit blijkbaar schot in deze kwestie, met een aantal nieuwe privacybeschermende maatregelen waarmee we nu downloads kunnen volgen die niet van ons verlangen dat we naar tracken moeten vragen en of gebruikers er belangstelling voor hebben. We gaan hier dan ook werk van maken en wat veranderingen aanbrengen, zodat we nieuwe gebruikers niet meer dat ontmoedigende “track”-verzoek hoeven te sturen …
Twee weken later was het klaar:
We wilden je even laten weten dat we je feedback ter harte hebben genomen en dat we "tracking" uit de ckbk app hebben kunnen verwijderen. (Eigenlijk trackten we al niet maar we moesten de metadata bijwerken en bepaalde bibliotheken verwijderen die ervoor zorgen dat tracking wordt gemarkeerd.)
Het blijkt dat dit *veel* moeilijker was dan verwacht, want er lijkt een een belangrijke App Store-bug te zijn. Dat zou een Catch-22 zijn en Apple weigert apps die niet meer tracken vanwege 'niet overeenkomende metadata', en er is geen manier om ze te laten tracken totdat je nieuwe app live is. Waardoor die Catch-22 ontstaat. De enige manier om het te omzeilen is een beroep te doen op de App Store. Maar we zijn erin geslaagd…
Daar is het bewijs van persoonlijke connecties maken. De volkomen terechte introductie van Matt betekent dat we waarschijnlijk over ckbk zullen schrijven en mijn beleefd geformuleerde teleurstelling over tracking heeft ertoe geleid dat ckbk het dialoogvenster uit de app verwijderde, wat een betere ervaring zal opleveren voor nieuwe ckbk-gebruikers, waaronder mogelijk TidBITS-lezers. Iedereen wint.
Ik heb ook geleerd dat de App Tracking Transparency van Apple misschien een beetje meer een bot instrument is dan ik eerder had gedacht. Zoals je in de schermafbeelding hierboven kon zien, gebruik ik nog steeds een behoorlijk aantal apps die hebben gevraagd om mij te volgen en misschien zijn ze niet zo slecht als ik had gedacht. Maar ik ga ze nog steeds geen toestemming geven. En zwijg me over Facebook en Instagram, die ik ver van mijn iPhone houd.
Hoe om te gaan met tekenreeksen in spreadsheets die met nullen beginnen
[vertaling: HV, DPF, NS]
Je mag ons ouderwets noemen, maar Tonya en ik scheppen er nog steeds genoegen in om rond de jaarwisseling familie en vrienden fysieke kerstkaarten te sturen om het afgelopen jaar te memoreren. Het lukt ons niet altijd om dat in december al voor elkaar te krijgen - het is zelfs wel eens voorgekomen dat onze nieuwjaarswensen vermomd als Valentijnskaarten halverwege februari pas de deur uitgingen. Grappig genoeg leidden die verlate kaarten vaak tot meer respons van vrienden, omdat Valentijnskaarten meer opvallen dan kerst- of nieuwjaarskaarten.
Maar waarom heb ik het nu, half maart, over kerstkaarten? Omdat twee maanden nadat we onze stapel kaarten verstuurden er ééntje onbestelbaar terug kwam. En hoewel we verbaasd waren dat dat zo lang had geduurd, waren we meer verstoord om het feit dat we kennelijk niet het juiste adres gebruikt hadden. Pas na een aantal minuten staren naar de kaart zag Tonya wat eraan schortte. En toen ging er een lampje branden.
De meeste staten in het noordoosten hebben ZIP-codes die beginnen met nullen: Connecticut, Maine, Massachusetts, New Hampshire, New Jersey, New York, Rhode Island en Vermont, maar ook Puerto Rico en de postcodes voor Amerikaanse militairen in APO/FPO Europa. Na wat echtelijke onenigheid over het etiketteren van de kaarten had Tonya afgelopen jaar die taak van me overgenomen, waarbij ze ervoor koos om in plaats van mijn aanpak, met Contacten en Swift Publisher van Belight Software, aan de slag te gaan met het Avery Design & Print Online-hulpprogramma. Om adressen te exporteren van Contacten naar Avery's webapp, moest Tonya ze in Excel- (XLS of XLSX) of CSV (tekst gescheiden door comma's)-formaat aanleveren. Helaas kan Contacten geen CSV exporteren, alleen VCF (ook bekend als vCard) en zijn eigen ABBU-formaat (dat het een Contacten-archief noemt).
Tonya haalde de gegevens uit Contacten door alle kaarten in haar Kerstkaarten-groep te selecteren en deze selectie in een leeg Numbers-spreadsheet te slepen. Ze had geen idee hoe ze de gegevens in Numbers zodanig kon bewerken zodat ze er uit kwamen zoals ze wou, dus kopieerde ze ze naar Microsoft Word. Na een jarenlange ervaring met het ondersteunen van Word bij Microsoft begin jaren '90, gebruikt ze het bijna overal voor. Ik kan en mag daar niks van zeggen: mijn standaard-gereedschappen zijn BBEdit en grep.
Het probleem ontstond waarschijnlijk bij het kopiëren van de gegevens van Word naar Excel om ze vervolgens te kunnen exporteren naar een bestand dat Avery zou kunnen importeren. Excel classificeert kolommen geplakte of geïmporteerde gegevens als 'Standaard', een numeriek formaat. In numerieke formaten hebben nullen aan het begin van een tekenreeks geen betekenis — 007 is hetzelfde als 7, Mr. Bond — en Excel gooit ze dus gewoon weg, waarbij een ZIP-code met vijf tekens gewijzigd wordt in een ongeldige code met vier tekens. (ZIP-codes kunnen zelfs uit slechts drie tekens bestaan: Holtsville, NY heeft 00501!) Als zo'n kolom met ZIP-codes vervolgens weer tot 'tekst' wordt getransformeerd, levert dat niets op, omdat Excel de inhoud als getallen ziet, en zo ook zo behandelt. Numbers van Apple beschouwt de meeste gegevens - afgezien van gegevens die vanuit Contacten worden gekopieerd of gesleept - op een vergelijkbare manier. (Met dank aan Alan Forkosh die ons er na eerste publicatie op wees dat Excel feitelijk een ZIP-codeformaat heeft - weggestopt in Opmaak > Cellen > Getal > Speciaal. Een wijziging naar dat formaat zou het probleem hebben opgelost.)
Omdat we zeker wisten dat we de ZIP-codes goed in Contacten hadden staan en de ZIP-codes van onze vrienden niet uit het hoofd kennen, zagen we de postcodes met maar 4 tekens over het hoofd bij het controleren van de adresetiketten - wie kijkt er nu aandachtig naar postcodes? Erger nog, bij de eerste twee kaarten die terugkwamen hadden we überhaupt niet in de gaten wat er aan de hand was — sorry, Paul en Andy! (Opmerkelijk genoeg zijn niet alle kaarten met ZIP-codes van 4 tekens of minder al teruggekomen - wellicht zijn er nog meer vertragingen, of misschien hebben sommige postkantoren scanners die hier wel mee om kunnen gaan. Gedrukte adressen en de meeste met de hand geschreven adressen worden automatisch uitgelezen en verwerkt.)
Dus als je ooit Amerikaanse adressen - of willekeurig wat voor andere gegevens die tekenreeksen bevatten die met nullen beginnen, zoals UPC- of SKU-nummers — in een spreadsheet zet, verdient het aanbeveling om te checken dat die nullen niet stiekem worden 'weggegooid'. Ik heb een paar dingen uitgeprobeerd en ontdekte twee opties die nullen aan het begin van een postcode bewaren als die gegevens uit Contacten geëxporteerd worden. Ook heb ik nog wat tips over hoe om te gaan met andere soorten gegevens.
Contacten > Numbers > CSV
Als je binnen het ecosysteem van Apple blijft, werkt alles gewoon, zolang je maar onthoudt dat het verslepen of plakken van gegevens uit Contacten in Numbers alles meeneemt, inclusief voorafgaande nullen in postcodes. Dus:
- Selecteer de gewenste contacten in Contacten. Dit gaat het makkelijkst als ze in een groep staan, want dan kan dat met Command-A.
- Druk vervolgens op Command-C om ze te kopiëren.
- Schakel dan over op Numbers, maak een nieuw leeg werkblad aan en plak de gegevens erin met Command-V.
Met andere woorden, het is een kwestie van een paar klikken en toetsaanslagen. Vervolgens kan je onnodige kolommen verwijderen en de gegevens naar CSV exporteren.
De zaken worden complexer als je gegevens met voorafgaande spaties in Numbers wil invoegen van een andere bron. In dat geval lijkt de oplossing te zijn dat je de gegevens tussen dubbele aanhalingstekens zet en ze vooraf laat gaan door een isgelijkteken. Als je dus een postcode hebt van 07470 moet je de brontekst veranderen in ="07470"
voordat je de gegevens naar Numbers verplaatst. (Het eerdere advies om de getallen tussen enkele aanhalingstekens te zetten lijkt niet meer te werken.)
Ik laat de oefening om een gehele kolom van dergelijke ZIP-codes in een CSV-bestand te bewerken aan de lezer, maar het is eenvoudig te doen in een tekstverwerker die grep begrijpt, zoals BBEdit of Nisus Writer Pro: zoek op ,([0-9\-]{5,10}),
en vervang door ,="\1",
.
Contacten > VCF > CSV > Excel > CSV
Iedere Mac gebruiker zou vanuit Contacten moeten kunnen kopiëren en de gegevens in Numbers plakken - dit pakket kun je gratis downloaden uit de Mac App Store. Laten we echter ook even kijken naar het theoretische geval dat je gegevens uit Contacten naar Excel moet kopiëren zonder dat je daarbij Numbers gebruikt. Gelukkig is het converteren van een geĂ«xporteerd VCF-bestand naar CSV makkelijk.
- In Contacten selecteer je de gewenste personen.
- Kies Archief > Exporteer > Exporteer vCard en sla het bestand op een handige plaats op.
- Ga naar de vCard to LDIF/CSV Converter-website, klik op Choose File en selecteer je bestand.
- Kies CSV uit het menu Format en klik op Convert. Het geconverteerde bestand wordt automatisch gedownload.
Zodra je een CSV-bestand met adressen hebt of andere gegevens om te importeren, volg je deze stappen om het bestand te importeren in Excel met behoud van de nullen vooraan in een code:
- In Excel maak je een nieuw bestand aan.
- Kies Archief > Importeren.
- In de Importeren-dialoog, kies je CSV-bestand and klik je op Importeren.
- Selecteer jouw bestand in het venster dat vervolgens verschijnt.
- In stap 1 van de Wizard Tekst importeren moet je erop letten dat 'Gescheiden' is geselecteerd en klik op Volgende.
- In step 2 vam de wizard haal je het vinkje weg bij Tab en selecteer je Komma. Let er op hoe de regels met gegevens dan netjes in kolommen getoond worden. Klik weer op Volgende.
- Stap 3 vam de wizard is de sleutel tot succes. Houd hier de eerste kolom geselecteerd (zodat hij zwart getoond wordt). Swipe vervolgens met twee vingers of scroll horizontaal naar de kolom die het meest rechs staat (als je een scrollwiel hebt, houd dan de Shift toets ingedrukt om horizontaal te scrollen) en klik vervolgens met Shift ingedrukt om die kolom te selecteren met alles er tussenin. Alle kolommen worden nu zwart.
- Klik op de radioknop naast Tekst en zie hoe alle kolomkoppen veranderen van Standaard naar Tekst. Klik vervolgens op Voltooien.
- In de laatste stap van het importeren kies je de bestemming van de gegevens. Daarna kun je op Importeren klikken.
Als je van plan bent om ook in de toekomst met dit document te werken, raden we aan om het in XLSX-formaat op te slaan in plaats van CSV. CSV is een type tekstbestand en onthoudt geen lay-out, wat betekent dat de nullen aan het begin van een postcode alsnog verdwijnen als je het bestand weer in Excel opent zonder dat je Wizard Tekst importeren gebruikt.
De truc van gegevens tussen dubbele aanhalingstekens zetten en vooraf laten gaan door een isgelijkteken werkt ook Excel.
Het is teleurstellend dat, in 35 jaar ontwikkeling voor Excel en 16 voor Numbers, beide pakketten nog steeds niet om kunnen gaan met codes die beginnen met een nul zonder dat extra werk nodig is. Hoe moeilijk kan het zijn om te signaleren dat er codes met nullen beginnen om dan de gebruiker te vragen of je deze wel of niet wil behouden? Zelfs bij Google Sheets kun je hiervoor een vinkje zetten in de importeerdialoog - haal dit vinkje weg en postcodes worden perfect geïmporteerd.
Natuurlijk zou dit allemaal ook niet nodig zijn geweest als Contacten een redelijke mogelijkheid gekend had voor het printen van labels. We hebben eigenlijk maar twee mogelijkheden nodig om ervoor te zorgen dat onze kaarten naar stellen op de juiste manier geadresseerd worden:
- Als het stel dezelfde achternaam deelt, zou de eerste regel van het label moeten luiden
Voornaam & Partner
. Dat zou er bijvoorbeeld voor zorgen datAdam
uit de kaart gehaald wordt en& Tonya Engst
van het veld voor Echtgenoot, zodat erAdam & Tonya Engst
zou komen te staan. - Voor stellen met verschillende achternamen zou de eerste regel
Voornaam Achternaam & Partner
moeten luiden. Als Tonya nog steeds haar meisjesnaam zou gebruiken zou het resultaatAdam Engst & Tonya Byard
zijn.
In beide gevallen zorgen we ervoor dat het Echtgenoot-veld de volledige naam van de partner bevat.
Swift Publisher kan dit, maar hun verbinding met Contacten kan lastig zijn. Ik ken geen andere apps die dergelijke opmaakopties bieden met gegevens uit Contacten, maar als je er eentje kent, laat het ons dan weten in de reacties!
Wij leggen uit wat je weten moet over Apple-technologie. |
Vorige aflevering | TidBITS Nederlands | Volgende aflevering