• 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

creativiteit

72 regels code als oplossing

28 April 2018 door Frank Meeuwsen 4 Comments

Een van de principes in het Indieweb-denken is “selfdogfood”, het idee dat je bouwt wat je zelf nodig hebt en gebruikt wat je zelf bouwt. Dit in tegenstelling tot de vele diensten die het werk uit handen nemen in de vorm van plugins, betaalde SaaS oplossingen of software waarvan je eigenlijk niet exact weet wat er achter de schermen gebeurt.

Mijn eigen vertaling van dit principe is om te proberen eigen oplossingen te bedenken voor relatief kleine vraagstukken. Als die dan leiden tot de goedkeuring van de godfather of blogging, dan is mijn week al weer goed!

Bouw op wat er al is

Vorige week beschreef ik het proces hoe ik een eigen oplossing wilde maken om op dit blog links te delen zonder de overhead van het maken van een complete blogpost in een editor. Het zou bijna zo eenvoudig moeten zijn als het delen van een link op Twitter. Om het geheugen nog eens op te frissen, mijn idee bestaat uit vier stappen:

  1. Ik deel iets op Pinboard of Inoreader met een speciale tag en tekst
  2. Op een eigen server hou ik deze RSS feeds bij
  3. Als er een nieuw item verschijnt in de feeds, zorg ik dat deze omgezet wordt in een artikel voor dit blog
  4. Op gezette tijden publiceer ik automatisch een nieuw link-item op dit blog.

Stap 1 had ik al in orde, stap 2 en 3 kan ik eveneens afvinken nu! Sinds gisteren heb ik werkende code op Github staan die voortborduurt op de ideeën van de vorige post. Het interessante van het complete proces is dat de hoeveelheid code die ik zelf heb geschreven minder is geworden omdat een hoop van het harde werk is verdwenen achter de schermen. Ik schreef vorige week al:

Dus ga ik dan toch overstag en hack ik mijn eigen ideeën in de DaveReader of ga ik nog even door met mijn eigen oplossing?

Ik ben uiteindelijk overstag gegaan. Omdat het simpelweg de beste oplossing was. Ik kwam er al puzzelend achter dat ik in de vorige versie van dit script veel werk reproduceerde wat al aanwezig was in de broncode van de DaveReader package. Toen ik een avond wat zat te spelen met de River5 code van Winer, waar de genoemde reader in zit, vielen er ineens wat puzzelstukjes op hun plek. River5 is een consumentenproduct volgens Dave, al durf ik dat wel tegen te spreken. Het is niet een app die je even installeert en it just works. Echter, als ontwikkelplatform is het best interessant kwam ik achter. River 5 is een simpele River of news applicatie, waar je nieuwe blogposts en ander nieuws als een stroom voorbij ziet komen. Inderdaad, zoals Twitter en Facebook werken, maar dan in eigen beheer en met bronnen die je zelf in beheer hebt. Zie hier een voorbeeld.

De applicatie komt met een aantal ingebouwde mogelijkheden om zelf iets te kunnen doen met nieuwe items die vanuit een RSS feed binnenkomen. In de code van de reader zit een voorbeeld van Dave, waar binnenkomende items in een feed lokaal worden opgeslagen in JSON formaat. Toen vielen er plots wat puzzelstukjes in elkaar.

72 regels code

Ik bedacht me dat ik de River 5 applicatie prima kan gebruiken zonder de webinterface die je hierboven ziet. In de River 5 applicatie zit eigenlijk alles wat ik nodig heb:

  • Het kan de feeds opslaan die ik wil bijhouden voor mijn links
  • Het kan periodiek de laatste items ophalen
  • Het heeft ingebouwde functies om iets met die nieuwe items te doen

Zoals Dave al zegt in zijn tweet en blogpost, ik gebruik River 5 niet als product, maar als API voor RSS feeds.

Zo’n helder moment zorgt er dan voor dat ik binnen een avond de code kon maken die doet wat ik wil. Ik hergebruikte oudere code om het Markdown template te vullen, dat had ik eerder deze week al als losse functie geschreven en getest. Ik wist alleen nog niet wáár in de logica ik het moest gebruiken. Nu vielen in een paar uur alle stukjes in elkaar. De 72 regels code die je hier ziet zijn niet op die ene avond geschreven. Maar het is het voorlopige eindpunt van een week puzzelen, proberen, leren en fouten maken. Ze doen het dubbele dan de 75 regels van een week eerder en ze hebben me weer meer geleerd waarom bepaalde code iets doet.

Volgende stappen

Inmiddels werkt de code en worden er templates weggeschreven met links die ik nog eens wil delen op mijn blog. Nu is het tijd voor twee nieuwe vraagstukken:

  1. Kan ik een Node JS applicatie draaien op dezelfde server als mijn blog?
  2. Hoe ga ik er voor zorgen dat de concept-posts daadwerkelijk op gezette tijden worden gepost en welke logica ga ik hiervoor gebruiken?

Voor beiden ben ik al iets verder in mijn denken dan alleen de vraag stellen.

Node op Github

Mijn blog draait op Github Pages. Dit is gratis webruimte die je krijgt bij een Github account. Heel mooi en prima om een compleet statische blog op te draaien. Maar Github Pages komt begrijpelijk met een aantal beperkingen. Zo kun je er niet alle plugins gebruiken die in de Jekyll-community aanwezig zijn. En het is niet mogelijk om een NodeJS applicatie permanent te laten draaien op de server. Nu kan ik twee kanten op, ik zet het Node script op een andere server bij Digital Ocean, waar ik eveneens mijn statistieken onderbreng en ik zorg voor een koppeling tussen die server en Github Pages. Of ik ga alles bij Digital Ocean onderbrengen.

De keuze valt logischerwijs op de laatste. Het is eenvoudiger om alles op één locatie te hebben in mijn optiek, al betekent dat wel weer een nieuw project. De migratie naar Digital Ocean.

Logica

Voor mijn tweede vraag, hoe zorg ik dat concept-posts netjes over de dag heen worden gepubliceerd, daar ben ik nog niet helemaal zeker van. Als ik het goed begrijp kan Jekyll de concepten op het juiste moment publiceren als de datum in de post in de toekomst ligt (de zogenaamde frontmatter). Ik heb dat echter nog niet goed genoeg getest om er zeker van te zijn dat het zo werkt. Ik kan dan concepten maken met een datum en tijdstempel die steeds verder in de toekomst ligt.
Een ander scenario is om concept-posts te maken zonder datum en tijd en door middel van een cronjob op de server steeds de oudste post te kiezen, de datum in de frontmatter te herschrijven naar de huidige datum en tijd en dan te publiceren.
Kortom: Zit de publicatie-logica bij het opslaan van het concept of bij het publiceren van het concept?

Beiden zijn volgens mij valide wegen die naar het einddoel gaan, de vraag is welke weg de minste beren heeft. Ik vermoed de laatste, omdat ik dan geen routine hoef te schrijven om steeds een datum in de toekomst te selecteren. Een cronjob is relatief eenvoudig te schrijven met sites als Crontab Guru, waarna ik me alleen maar hoef te concentreren op het kopieren van een bestaand bestand naar een andere map en het vervangen van de datum in dat bestand. Dat hoeft niet heel lastig te zijn.

Conclusies

Een paar eerste conclusies na deze eerste stappen in de wereld van NodeJS:

  • Het is geen enorm moeilijke taal. Omdat het Javascript is, waar ik al wat eerdere ervaring mee heb, kan ik relatief makkelijk instappen en de code lezen.
  • Voor mij nieuwe concepten als asynchrone en synchrone functies, promises en callbacks zijn nog lastig te doorgronden. Ik maak soms wat leaps of faith in mijn code en ik vertrouw er op dat het klopt wat ik doe
  • Wat ik interessant vind in mijn leercurve is dat ik van een behoorlijke berg code uiteindelijk weer ben teruggegaan naar het uitbesteden van relevante stappen in mijn project. Het ophalen van de feed en het bepalen wat er moet gebeuren als er iets nieuws binnen is gekomen, dat bestaat al. De creativiteit zit in wát er moet gebeuren.
  • Aan de zijlijn van dit ontwikkeltraject heb ik ontdekt dat ik nog veel heb te leren over het opzetten van een goede ontwikkelomgeving. Met software, plugins en instrumenten die het ontwikkelen en testen van scripts een stuk eenvoudiger maken. Daar mag ik nog wel meer tijd en onderzoek aan besteden.

Binnenkort meer over dit nieuwe avontuur wat weer is gestart!

Opgeslagen onder: webtech Tags: cheatsheet, code, creativiteit, github, indieweb, nodejs, pinboard

Rodney Mullen over creativiteit

19 April 2018 door Frank Meeuwsen Leave a Comment

In een ver verleden speelde ik dagelijks Tony Hawk Pro Skater op mijn Playstation. Eén van meest bijzondere skaters die je daar kon unlocken was Rodney Mullen. Door velen de godfather van het street skaten genoemd. Hij was onderdeel van de beroemde Powell Peralta Bones Brigade en uitvinder van veel innovatieve en bizarre tricks. Hij zorgde voor een revolutie in het street skaten. Dus toen ik op Youtube een TED Talk zag met Mullen was ik benieuwd.
Hij begint met zijn levensverhaal maar al snel schakelt hij over naar zijn zienswijze op skateboarden. Hoe het een kunstvorm is. Hoe hij door de komst van het streetskaten anders ging kijken naar de omgeving die hij zo goed kende. De context veranderde van zijn omgeving, waardoor hij nieuwe creativiteit vond. Wat zorgde voor genoemde revolutie. Zijn verhaal springt op momenten van de hak op de tak maar met name zijn sprong naar de open source en hacking community en de verwantschap met skateboarders is interessant om te horen.

Pop an ollie and innovate!

Opgeslagen onder: links Tags: creativiteit, video

Het ritme en het archief van Frankipedia

21 February 2018 door Frank Meeuwsen Leave a Comment

Lieve lezers, vreest niet! Ik ben er nog steeds en ik ben nog altijd online. Echter, het leven haalt me soms in en het schrijven van een blogpost schiet er dan bij in. Zoals een recente lezer me al eens mailde, “Je schrijft voor je lezer” en hoezeer ik daar het niet 100% mee eens ben spookt het wel steeds in mijn hoofd. Deze plaats dient meer te zijn dan alleen een stortplaats voor losse links, kleine gedachten en halfbakken verhalen.

Toch maakt dat een blog juist persoonlijk. Juist die losse gedachten. Die links die ik her en der plaats. Cory Doctorow, auteur van menig geweldig sci-fi book en auteur op BoingBoing, een van de langstlopende blogs, schreef hier in 2002 al het volgende over

The upshot is that operating Boing Boing has not only given me a central repository of all of the fruits of my labors in the information fields, but it also has increased the volume and quality of the yield. I know more, find more, and understand better than I ever have, all because of Boing Boing.
The nuggets I’ve mined are at my instant disposal. I can use Blogger’s search interface to retrieve the stories I’ve posted with just a few keywords. While prepping a speech, writing a column, or working on a story, I will usually work with a browser window open to Blogger’s “Edit Your Blog” screen, cursor tabbed into the search field. I flip back and forth between my browser and my editor, entering a few keywords and instantly retrieving the details of some salient point – it’s my personal knowledge management system, annotated and augmented by my readers.

(Bron: Kottke)

Zojuist las ik een oudere post van Austin Kleon over ongeveer hetzelfde onderwerp.

I had forgotten how wonderful blogging is as a mode of thinking. Blogging is, for me, more about discovering what I have to say, and tweeting more about having a thought, then saying it the right way. It’s also great to be able to go as long or as short as you want to go.

Het is de val waar ik zelf al jaren in trap en velen met mij die een blog bijhouden. In de dagelijkse mallemolen is het lastig om steeds dat moment te vinden en je gedachten weer even aan het scherm toe te vertrouwen. Enerzijds wil je voorkomen dat het een moetje wordt en je je er makkelijk vanaf maakt met een vlugschrift over wat-dan-ook-die-dag-er-toe-doet. Maar anderzijds kan je zorgvuldig uitgekiende timeslot volledig opgeslokt worden door andere zaken. Ik denk vaak genoeg “als de kinderen op bed liggen dan ga ik eens wat schrijven” om er dan achter te komen dat die aflevering van Altered Carbon zo lekker wegkijkt of je toch wel erg veel artikelen van je favoriete blogs hebt gemist. Dus zit ik weer te consumeren in plaats van te produceren.

Ritme

Dat ritme is dus zo belangrijk en ik denk dat het geen kwaad kan om me er zelf continu op te wijzen dat, hoe klein of hoe simpel ook, elke blogpost is er weer een. Ik bladerde dit weekend eens door het archief van mijn allereerste blog die liep van 2000 – 2005. Ik kwam veel nonsens tegen, maar eigenlijk zag ik een bekende uit het verleden die zichzelf online ontdekt. Van een groot aantal posts wist ik niet eens meer dat ik ze had geschreven. Kijkend door mijn oogharen zag ik dat archief ontstaan, de wegen door de informatie overdaad die ik al 25 jaar op mijn scherm zie. Alles wat ik maar een beetje interessant vond plaatste ik op dat blog. Logisch, want er was niets anders. Maar zoals bij velen is gebeurd, de meeste van dat soort posts zijn de afgelopen 10 jaar verplaatst naar Twitter. Gelukkig heb ik dat archief nog. Het zou toch prachtig zijn als ik al die archieven (punkey.com, Twitter, Lifehacking, Frank-ly etc) kan combineren en ontsluiten op één centrale plaats online. Een soort Frankipedia. Waar je door alle publieke blogposts en tweets kunt bladeren die ik ooit heb gepubliceerd. In dat archief kun je dan het ritme van mijn online leven ontdekken.

Nu is het zaak dat ritme weer op te pakken. De vrijheid en onbevangenheid die ik had op punkey.com om over alles wat ik tegenkwam in korte en bondige posts te bloggen, dat moet er weer in komen. Het is tegelijk een vorm van het IndieWeb denken, het POSSE-principe: Publish on Own Site, Syndicate Elsewhere. Dus als ik weer een interessant artikel zie wat ik op Twitter zou delen, dan moet de route eerder zijn dat ik het eerst hier plaats, als tweet, en vervolgens op Twitter deel. Daarbij hoef je als lezer niet per se hier te komen via Twitter, de tweet kan nog net zo goed direct naar de link gaan die ik wil delen. Maar zo krijg ik op deze plaats wél alle relevante links bij elkaar.

Er zijn genoeg mogelijkheden om dat te bewerkstelligen, maar inmiddels zit ik al weer tot mijn oren in allerlei projectjes om dit domein weer te vullen. Zo ben ik nog steeds bezig om punkey.com weer goed lopend te krijgen. En ik zat vanavond te werken aan een manier om mijn bookmark-archief op Pinboard te ontsluiten op deze blog, een beetje zoals Brett Terpstra doet met zijn Web Excursions. Maar dan op mijn manier. Al met al blijft het een leuke hobby en ben ik wederom blij dat ik er geen inkomsten uit hoef te halen.

Opgeslagen onder: bloggen Tags: bloggen, creativiteit, helden, indieweb, pinboard

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...
    • Je notities zichtbaar verbonden in Obsidian
  • 3 years ago...
    • The Breakfast Club is jarig
  • 4 years ago...
    • The Breakfast Club 1984
    • Communities op de Dutch Comic Con
  • 10 years ago...
    • Hoe bepaal je de prijs van je eigen e-book?
  • 13 years ago...
    • Social Warfare tussen Nestl en Greenpeace
  • 20 years ago...
    • The hippie period of the Web is over
  • RSS
  • LinkedIn
  • GitHub
  • Mastodon
← An IndieWeb Webring →

Archives

  • Likes (268)
  • Bookmarks (267)
  • Notes (134)
  • Replies (53)
  • Articles (722)
  • 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.