• Skip to primary navigation
  • Skip to main content
  • Skip to footer

Digging the Digital

Vol Blogdrift!

  • /Now
  • Nieuw? Start hier
    • Blogroll
    • Tag Index
  • Startgids Mastodon
  • WordPress en Indieweb
    • WordPress en het indieweb
    • Hoe gebruik je IndieAuth met WordPress
    • WordPress en webmentions
    • WordPress en Micropub
    • WordPress en de Post Kind plugin
  • Notities
  • Bookmarks
  • Likes

Script

Het gebeurt me te vaak…

23 June 2022 door Frank Meeuwsen 1 Comment §

Het gebeurt me te vaak dat ik na publicatie van een blogpost nog een typefout zie. Vanochtend ging het ook weer mis bij de reactie naar Sebastiaan door een koppeling tussen mijn feedreader en blog. Gelukkig is het allemaal te tweaken! Ik verwacht dat mijn RSS lezerspubliek genoeg kalmte en geduld heeft om mijn berichten vanaf nu met een vertraging te krijgen. Dankzij een eenvoudig script heb ik nu 30 minuten tijd om beschamende typefouten aan te passen of de uitkomst van een ongehoorzaam script handmatig bij te sturen. Of gewoon wat zinnen aan te passen.

Er leiden meer wegen naar Rome. Dit zou ook prima met een plugin kunnen of een cron-job. En dit werkt net zo goed. Lekker toch.

Deze notitie publiceer ik op 8:55. Als het goed is ontvang je hem dus later in je feedreader. Nu maar hopen dat er geen typefout in staat…

Opgeslagen onder: bloggen Tags: rss, Script, WordPress

An update to the Drummer to WordPress script

14 November 2021 door Frank Meeuwsen 3 Comments

A few weeks ago I published a Drumkit script that lets you publish your post from Drummer to WordPress. It works fine, but I had one small bug I needed to fix and one nice-to-have for myself. I can say I fixed both!
First, in the original Drumkit script I have a few lines with HTML in it. When you have an (inline) image in your post, you want it to show properly on your WordPress blog. So I surrounded it with the basic tags for an image. Unfortunately Drummer, where the script lives, mangles this HTML every now and again. It tries to render the HTML when you open the script and it adds a few characters. It was all kind of weird. An to be honest, using HTML in a script like this never felt good to me.
So when I read about Dave’s plans to include Markdown support an idea hit me. My WordPress blog supports Markdown as well. So why not send the blogpost as Markdown and let WordPress figure it all out? So that’s what I did, especially with the images. Instead of using HTML in the script, I surround the image with the Markdown equivalent.
Since I don’t pay enough attention to filenames, they sometimes can have spaces in them. I had to replace these with %20 so my Markdown processor in WordPress will not choke on it. Thank you for multipleReplaceAll in the Drumkit scripting language.
The second thing I wanted is to add a link back from the WordPress post to my Oldschool blog. I had some great help from Dave and Amit to figure out how to build the URL to my post. This script from Amit was all I needed. It just worked. I added the script to mine, build a small link back to the original blogpost and I can publish it.
Here is my new script to publish from Drummer to WordPress, using Markdown and have a link back to the original!

Eerder gepost op mijn Oldschool Drummer blog

Opgeslagen onder: bloggen Tags: drummer, Script, WordPress

Linke LinkedIn

24 July 2021 door Frank Meeuwsen 1 Comment

Ja verdorie. Mijn hersens schrikken zich een hoedje. Om tijdens mijn vakantie toch nog in een tijdlijn verstrikt te raken op mijn telefoon. Een droomflard en LinkedIn zijn de boosdoeners en mijn fysieke en mentale reactie verrassen me.

Social apps verwijderd

Bij de start van de vakantie nam ik maatregelen om te voorkomen dat ik twee weken lang zou doomscrollen. Ik verander de wachtwoorden van Twitter en Instagram en schrijf deze op mijn laptop die thuisblijft. Daarna log ik uit en verwijder ik de apps. Zo kan ik niet eenvoudig terugvallen op een verloren moment.

Na een week vakantie mis ik beide netwerken totaal niet. Ik heb geen moment het gevoel dat ik iets moet posten of dat ik de ophef van de dag mis. Zelfs de parkactiviteit Instacraft doet me niets. Alsof het maken van “hippe en populaire instagrammable knutsels” mij doet wankelen, ha!

Netwerk

Ik werd vanochtend wakker met een flard van een droom. Daar verscheen iemand in met wie ik vroeger samenwerkte. Ik kon niet op haar naam komen maar wist wel met wie zij weer samenwerkte. En ik wist dat ik haar op LinkedIn vinden. Die app heb ik nog wel ongewijzigd en ingelogd op mijn telefoon staan. Het waren vier klikken en ik wist haar naam weer en waar ze nu aan werkt. Gelukkig, mijn nieuwsgierige brein was weer gerustgesteld.

Alhoewel.

Hé, notificaties.
Hé, een post van een goede vriendin die een nieuwe baan heeft.
Hé, wat een toffe campage.
Hé, goede discussie over een boeiend onderwerp.
Hé, mooie quote, even delen met een collega. Past bij hem.

Hé… nu ben ik al weer een minuut of 10 aan het scrollen door een tijdlijn!

Ik voelde wat schaamte. Hoe kan dit nou? Waarom wil ik zo nodig door een tijdlijn scrollen en korte updates lezen? Toegegeven, het zijn niet allemaal even boeiende verhalen, maar toch scroll je door. In de hoop dat je iets leuks tegenkomt.

En je weet dat het een oneindige scroll is. Dus er is een kans dat je iets leuks tegen gaat komen.

Buikpijn door design

Het zit in het design. Avatar, naam, functie bovenin. Wat nudges dat anderen in je netwerk de post al hebben geliked of zelfs op reageren. Een goede afbeelding, korte intro. Het is vaak gerelateerd aan professionele interesse, wat bij mij een dunne scheidslijn heeft met privé.

Ik voelde zelfs wat buikpijn. Zou ik dan toch niet zonder Twitter en Instagram kunnen? Of kan ik gewoon niet zonder een tijdlijn? Mijn RSS feed is net zo goed een tijdlijn, met een eindstreep.
Maar die feed is Spartaanser, saaier. Ik weet wat ik ongeveer kan verwachten omdat ik elk abonnement zelf heb toegevoegd.
Zou het daar aan liggen? Moet het design van mijn feedreader aantrekklijker worden? Of zou er toch een algoritme in moeten om mij vergelijkbare feeds aan te bieden? Inoreader heeft die mogelijkheden als ik me niet vergis.

Volgen of verbinden

Op LinkedIn ben ik een jaar geleden opnieuw gestart om mijn tijdlijn wat op te frissen. Met een eenvoudig script ontvolgde ik iedereen. Ik krijg geen updates meer in de tijdlijn maar de connectie blijft wel bestaan. En toch krijgt LinkedIn het voor elkaar dat ik weer nieuwe updates zie. Want nieuwe connecties ben ik automatisch gaan volgen in de tijdlijn. Soms is dat interessant maar soms ook niet.

En nu?

Ik merk dat ik al een paar keer makkelijk even switch naar de app om wat te scrollen. Te zien wat mensen in mijn netwerk zoal te vertellen hebben. Ik denk na over een gepast antwoord op Elja’s post over “An Ugly Truth”, het boek over de schandalen bij Facebook. Ik zie wat echt boeiende artikelen die ik opsla voor later. Ik heb me zelfs geabonneerd op de RSS feed van een persoonlijk blog. (Go Herbert!)


Maar ik verwijder de app voor nu. Liever maak ik zelf iets mijn vrije tijd, zoals deze blogposts. Dan dat ik weer vooral consumeer en met werk bezig ben.

Tijd voor het zwembad!

Opgeslagen onder: social Tags: bloggen, linkedin, Script, tijdlijn, vakantie

Werk met de garagedeur open

5 April 2021 door Frank Meeuwsen 10 Comments

In de laatste nieuwsbrief maakte ik er al een opmerking over, ik vind het enorm interessant om andermans werkwijze te zien. Om te zien hoe iets wordt gemaakt, om de werkplaats van een maker te bekijken. Ik ben zelf echt niet handig en mijn schuur is een puinzooi. Ik zoek me altijd een ongeluk naar steeksleutel nr 8 of 10 en elke kruiskopschroevedraaier is bot. Ook digitaal klooi ik maar wat aan. Soms laat ik op de site wel wat work in progress zien. Zo vertelde ik in het verleden over de 72 regels code (Deel 1 en deel 2) die ik maakte om een eigen probleem op te lossen. Ik leg uit hoe je al je Twitter volgers kunt verwijderen opnieuw begint. Jaren geleden zochten we publiekelijk uit hoe je met een community een boek kunt publiceren. In korte notities die ik in de trein schrijf probeer ik webmentions werkend te krijgen. Een Raspberry Pi ombouwen tot een timelapse-machine om een sneeuwstorm vast te leggen.

Zo zijn er talloze voorbeelden die ik door de jaren heen hier deel. Stukjes van ideeën die nog niet af zijn, waar ik iets mee zou willen doen. Wat ik uiteindelijk ook ga gebruiken. Of niet. Maar dat maakt niet zoveel uit.

Frustratie over filesizes

Zo heb ik deze zaterdag zitten puzzelen met ImageMagick. De reden was wederom frustratie. In de nieuwsbrief directory Thanks for Subscribing maak ik gebruik van headerbeelden. Het geeft wat kleur en afwisseling in een verder best kale omgeving. In het begin vond ik het niet zo erg om zelf headerbeelden te maken van nieuwsbrieven. Soms plukte ik iets van de site van de maker, soms een voorbeeld van een nieuwsbrief. Op gegeven moment heb ik bij het aanmeldformulier een veld toegevoegd voor de maker om zijn eigen headerbeeld op te geven. Via een URL. Je moet weten, vanaf de eerste dag heb ik de onderliggende Airtable database zo gemaakt, dat ik er alleen URL’s in opsla en geen daadwerkelijke afbeeldingen. Daarom vraag ik om een URL van de afbeelding. Bij voorkeur heeft de afbeelding een specifiek formaat 600 x 400 pixels. Helaas kan ik door de achterliggende database dat niet checken, dus ik hoopte dat de maker zelf slim genoeg is om een directe URL naar een afbeelding te geven en om deze het juiste formaat te geven.

Je voelt al waar dit heen gaat…

Ik krijg heel veel variaties op het thema “juiste URL en juiste afmetingen”. Zo kom ik tegen:

  • Een link naar de homepage, ofwel, zoek het zelf maar uit
  • Een link naar een Dropbox pagina, waar ik zelf weer de afbeelding uit moet vissen. Veelal in een verkeerde hoogte x breedte
  • Een link naar Google Drive
  • Links naar imagedumps zoals imgur en vergelijkbare sites
  • Headers die te lang zijn
  • Headers die te kort zijn
  • Header die te klein zijn, lees: een icoon

Kortom, gedoe. Ik wilde dat oplossen. Want het zelf maken van de headers houdt me nu tegen om nieuwe titels toe te voegen aan de site. Het is steeds een paar minuten werk, maar met een gemiddelde backlog van 40 – 60 titels die ik nog moet checken, telt dat flink op.

4 uur werk, 2 regels code

Ik had al vaker van ImageMagick gehoord maar had me er nog niet eerder in verdiept. Ik wilde eens uitzoeken of ik van een opgegeven URL automatisch een headerbeeld kan maken in de juiste dimensies. Mijn uitgangspunt was: Kan ik van een te breed en te kort headerbeeld een juiste uitsnede maken? Ofwel, kan ik van dit

Bhupesh Pal via Unsplash

Naar dit formaat gaan?

Vanuit het midden gecropt en op de achtergrond een geblurde versie van hetzelfde beeld. Want dat is een versie die vaak voorkomt. Na een middag puzzelen met de verouderde documentatie en wat voorbeelden uit diverse fora kwam ik langzaam maar zeker ergens. Uiteindelijk kon ik met slechts 2 regels code in een Bash script dit mogelijk maken.

convert $file_name -resize '600x400^' -gravity center -crop 600x400+0+0 -gaussian-blur 20x10 +repage tmp-$file_name

magick composite -gravity center $file_name tmp-$file_name ~/Documents/ThanksForSubscribing/Headers/header.jpg

Als je niet bekend bent met ImageMagick dan zegt bovenstaande je niet veel. Zie het als een conclusie van een denk- en leerproces wat me zeker 4 – 5 uur heeft gekost. Van de eerste stappen in ImageMagick tot het snappen van de documentatie. Vervolgens het uitzoeken van de logica in code en bedenken of dit altijd mijn problemen gaat oplossen.

Want wat er toen gebeurde…

Nee. Het zal niet altijd een oplossing voor mijn probleem zijn. Toen ik bovenstaande regels in een script had gezet om een URL van een header op te halen en het wilde testen, ging het (natuurlijk) direct mis. De header in kwestie in deze

Een te gekke site met bijbehorende nieuwsbrief. Maar een transparante png van een tekstuele header. Daar had ik natuurlijk nog niet over nagedacht. Want als ik die header door dit script laat bewerken dan krijg ik deze header

Niet heel smakelijk om te bekijken… Eigenlijk wil ik met transparante png bestanden weer een andere header maken. Namelijk een witte achtergrond, niet uitgeknipt maar juist geschaald. En dan heb ik het nog niet gehad over headers die hoger dan breed zijn. Of die eigenlijk te klein zijn om te vergroten. Maar goed, de dag zat er wel op en ik was de documentatie van ImageMagick wel even beu. Plus mijn kennis van Bash scripts is zo minimaal dat dit soort als/dan logica me nog even te veel was.

Zo zie je maar, in deze garage staat de deur nog wel even open. Aan de andere kant, de nieuwsbrief directory verhuist hopelijk deze maand naar een nieuwe server met WordPress aan de achterkant. Dan wordt het uploaden en controleren van headerbeelden al een stuk eenvoudiger door de vele plugins die bestaan. Maar ik heb dan toch wel geleerd hoe een mooi gereedschap als ImageMagick werkt.

Opgeslagen onder: indieweb Tags: bash, cli, code, DIY, imagemagick, Script

Hoe zet je automatisch je wifi aan en uit op je Mac?

14 November 2020 door Frank Meeuwsen 11 Comments

Een computer is het ideale instrument om repeterende saaie taken te automatiseren. Een computer wordt niet moe, zeurt niet als een taak opnieuw moet gebeuren en vergeet niet snel iets. Er zijn allerlei manieren om repeterende taken te automatiseren en in dit artikel wil ik jullie laten zien hoe ik er voor zorg dat ik op meerdere werkplekken de beste internetverbinding heb.

Sinds thuiswerken meer de norm is geworden heb ik een werkplek op de bovenste verdieping aan de achterkant van ons huis. Ik ben blij met deze plek, het is ruim, ik heb een mooi tweede scherm, ik kan er muziek draaien en ik heb een ruim uitzicht over de wijk in Utrecht-Oost. Er is wel een nadeel. De plek waar ik werk is precies in de meest verre hoek van onze wifi router vandaan. Die staat namelijk op de benedenverdieping aan de voorkant van het huis.

Netwerkkabel

Ik merkte al snel dat onze wifi-verbinding moeite heeft met alle videocalls in het gezin, met werk, school en sociaal leven dat door elkaar loopt. We hebben een signaalversterker op de eerste verdieping, maar ik merkte dat die met videocalls niet echt lekker werkte. Daarom legde ik al snel een netwerkkabel aan naar boven. Vanaf de modem op de benedenverdieping, door twee verdiepingen naar de andere kant van het huis. Het was een klus, maar ik had wel wat ik wilde: Goed en stabiel internet.

Maar ik werk op een Macbook Pro. Als ik beneden zit, gebruik ik wifi. Als ik boven werk, sluit ik de netwerkkabel aan via een USB-adapter en gebruik ik die. Wat ik alleen steeds vergeet is om de wifi uit te zetten. Dus ik zit boven te werken en halverwege een videocall kom ik er achter dat ik de wifi-verbinding nog aan staat. Het is niet handig om dan de wifi uit te zetten. De verbinding is valt voor een seconde of wat en dat betekent vaak dat het videogesprek stoort. Daar wilde ik een geautomatiseerde oplossing voor. Want ik ken mezelf goed genoeg: Om er steeds aan te denken van verbinding te switchen als ik op mijn werkplek zit, dat gaat niet goed. En waarom zou ik het denkwerk moeten doen als een computer dat veel beter kan?

Triggers en acties

Er zijn meer wegen die naar Rome leiden. Ik kies voor de weg van Keyboard Maestro. Met deze Mac app kan ik op allerlei manieren het gedrag van mijn Mac beïnvloeden, gebaseerd op specifieke triggers. Met die triggers voer ik allerlei acties uit. Ik heb een trigger om tekst die kopieer zonder opmaak elders te plakken, triggers om met mijn toetsenbord snel andere apps te starten en nu dus het wisselen van de netwerkverbinding. Die trigger kan van alles zijn: een toetsaanslag, een specifiek tijdstip, of als een extra monitor wordt aangesloten. Ik wilde het proces zo eenvoudig mogelijk maken. Een toetscombinatie om van netwerkverbinding te wisselen als ik op een andere werkplek zit, dat is iets wat ik zeker vergeet. Omdat ik niet altijd op hetzelfde tijdstip mijn Mac aanzet, is een actie op basis van een tijdstip niet handig. Keyboard Maestro heeft wel een hele interessante trigger, namelijk dat het kan reageren als ik een extra monitor aansluit of juist afkoppel. Hiermee kan ik een specifieke actie uitvoeren. Als ik mijn Mac op mijn werkplek zet, sluit ik standaard zowel het tweede scherm aan als een USB-kabel met de netwerkkabel. Dus als een tweede scherm wordt aangesloten, is de netwerkkabel altijd aanwezig. Met die wetenschap kan ik een scenario maken wat automatisch de wifi uitzet en de netwerkverbinding activeert.

Dat ziet er als volgt uit:

Uitleg Keyboard Maestro scenario

Je ziet hier het volgende gebeuren

  • De trigger wordt geactiveerd als de layout van de displays verandert
  • Ik check dan met de functie SCREENCOUNT() hoeveel schermen er zijn aangesloten
  • Is dat aantal meer dan 1, dan voer ik het eerste script uit. Anders voer ik het tweede script uit.
  • Ik krijg in het scherm te zien hoeveel schermen zijn aangesloten. Dit is een tijdelijke actie zodat ik zelf in de gaten kan houden of alles de komende tijd loopt zoals verwacht.

Wat doet het script exact? Ik zal het stap voor stap uitleggen

Dit is het complete Applescript:

set wifi to (do shell script "networksetup -listallhardwareports | 
grep -A 1 Wi-Fi | 
tail -n 1 | 
cut -b 9-12")
do shell script "networksetup -setairportpower " & wifi & " off"

Allereerst maak ik een variabele genaamd wifi. Ik laat een shellscript zoeken naar het wifi kanaal en haal uit de lijst het specifieke netwerkadres. Vervolgens zet ik dat specifieke netwerkadres aan of uit. Dit gebeurt stap voor stap met de volgende regel

networksetup -listallhardwareports | grep -A 1 Wi-Fi | tail -n 1 | cut -b 9-12

Dit is een keten van commando’s die ik achter elkaar uitvoer met het pipe teken |. Pipes combineren verschillende commando’s, waarbij de output van het ene commando dient als input van het volgende. Dit zijn stap voor stap:

  1. networksetup -listallhardwareports Laat alle netwerkpoorten zien
  2. grep -A 1 Wi-Fi Zoek in al die netwerkpoorten naar de term Wi-Fi en laat die regel plus de volgende regel zien.
  3. tail -n 1 laat alleen de laatste regel zien van de output uit het vorige commando
  4. cut -b 9-12 haalt uit de vorige regel alleen de karakters 9 tot en met 12.

Hiermee heb ik het netwerkadres van mijn wifi kaart. Die kan ik nu aansturen met het volgende commando.

do shell script "networksetup -setairportpower " & wifi & " off"

De variabele wifi is het netwerkadres van mijn wifi poort: en0. Bovenstaande regel zet die poort uit. En dat is het eigenlijk. Omdat de wifi poort uit staat, gaat automatisch de netwerkverbinding aan. De macro activeert weer als ik het tweede scherm afkoppel. Nu zal de functie SCREENCOUNT() op 1 uitkomen, er is immers alleen mijn laptopscherm. Hiermee activeer ik een vergelijkbaar script, maar zet ik juist de wifi poort weer aan.

do shell script "networksetup -setairportpower " & wifi & " on"

Andere oplossingen?

Zoals ik zei, er zijn veel meer wegen die naar Rome leiden. Ik vermoed dat bovenstaande prima mogelijk is met een iets ander script. Je zou dit eveneens met een andere automatiserings-app kunnen doen als Alfred of BetterTouchTool. Misschien is het zelfs native op de Mac mogelijk, zonder een extra app. Ik ben benieuwd hoe anderen dit zouden oplossen met automatisering.

Wil je de macro van Keyboard Maestro zelf testen? Download hem hier (rechtermuisknop, Save As) en importeer hem in je eigen installatie. Laat me weten of het naar behoren werkt voor je, of je nog iets slims er aan toe kunt voegen.

Download Keyboard Maestro Macro

Opgeslagen onder: webtech Tags: keyboard, Script, wifi

Footer

Wat is dit?

Frank MeeuwsenDigging the Digital is de digital garden of commonplace book van Frank Meeuwsen. Onderwerpen variëren van indieweb tot nieuwsbrieven, bloggen, muziek en opvallende gebeurtenissen op het internet.

Meer Frank

Bloghelden - De definitieve geschiedenis van webloggend Nederland

Op deze dag

  • 2 years ago...
    • Niet alle RSS readers zijn hetzelfde
    • Het gedoe met sommige posts
    • No more platforms please
    • Adding Webmention Support from Scratch
  • 3 years ago...
    • Lock Down, Seeking New Normal, Yet Still Tempus Fugit
    • Omdat de rij bij de online boodschapp...
    • I'm not ignoring the pandemic, I'm just not writing about it
  • RSS
  • LinkedIn
  • GitHub
  • Mastodon
← An IndieWeb Webring →

Archives

  • Likes (268)
  • Bookmarks (267)
  • Notes (134)
  • Replies (53)
  • Articles (724)
  • All Posts

Digging the Digital staat op de state of the art server van Servebolt.
De snelste high-performance hosting met een sterke focus op schaalbaarheid en veiligheid.