Johan Ronsse

  • Home
  • Projects
  • Blog
  • Everything must go to shit, KBC edition

    September 3, 2020 - Posted in belgische-problemen design opinie product rant

    Een goed product maken is één ding, het blijvend verbeteren en het goed houden is iets anders. De laatste dagen is er wat discussie rond KBC en zijn “goal alert”.

    Het zit als volgt. KBC heeft twee hoofd-apps: KBC Mobile en KBC Sign.

    KBC Mobile is de banking app en KBC Sign gebruik je om je aan te melden in de desktop app.

    Waarom je daar 2 apps voor nodig hebt is al een vraag op zich, maar wat is nu het punt van discussie? Wel, er was een link van KBC Mobile naar KBC Sign* – en KBC had besloten om die link te vervangen door een of andere knop die leidt naar de voetbaluitslagen van de Jupiler Pro League.

    Je kan dus nu de app gebruiken om notificaties te krijgen over goals in de voetbalcompetitie. Als klant van KBC zat ik hier echt op te wachten (not).

    KBC vind dat ze meer moeten zijn dan een bank en dat je de app ook moet kunnen gebruiken voor het kopen van een treinticket, een busticket, 4411 enzovoort. Een paar marketeers dromen daar van een soort Belgische variant van WeChat-dominantie. One app to rule them all!

    (Dat de schermen die de effectieve functionaliteit herbergen dan gewoon maar een soort website wrappen en redelijk minderwaardig blijken te zijn laten we even buiten beschouwing)

    Nu, die vervanging van de knop hebben ze aangekondigd via een aparte e-mail, met tientallen reacties tot gevolg, vooral van mensen die hier tegen zijn. Dat er een publieke discussie ontstaat rond een user interface beslissing is ongeveer het amusantste dat er kan gebeuren voor een UI designer, dus… popcorn time.

    Michael Jackson Eating Popcorn GIFs | Tenor

    Maar, het verhaal is nog niet voorbij. Vandaag kondigde KBC als reactie op de reactie aan dat ze nu een andere knop in 2 knoppen gaan opdelen.

    Onlangs haalden we de Sign-knop weg van het aanmeldscherm van #KBCMobile. We merkten aan de feedback dat velen die knop erg handig vonden. Daarom wijzigen we in de 2de helft van september de 'MobilePay'-knop naar 'MobilePay & Sign'.

    — KBC Bank&Verzekering (@KBC_BE) September 3, 2020

    Dus: even een recap.

    Eerst zetten ze een knop die niks te maken heeft met de kernfunctionaliteit van de app het hoofdscherm.

    Dan krijgt dat publieke weerslag. In plaats van de knop weg te halen, gaan ze van een andere knop twee knoppen maken.

    Dit is pure design by committee. Dit is geen beslissing durven maken. Dit is iets doen omdat het contractueel bepaald is, niet omdat de gebruiker dat wenste.

    En je moet weten. In het algemeen krijgt de KBC app goeie punten. Maar in mijn ogen is er echt wel ander werk aan.

    Ze hebben een soort nieuwe structuur om je rekeningen te bekijken geïntroduceerd maar de oude nooit durven weghalen.

    Op het moment dat je een sign code moet invullen is het super onduidelijk waar het veld nu eigenlijk staat waar je iets moet invullen.

    Maar in plaats van te werken aan de echte designproblemen in de app, houden ze zich daar bezig met zulke onbenulligheden. En zo kom ik bij mijn statement: everything must go to shit, KBC edition.

    Want het is om te beginnen moeilijk om een goed product te maken. Maar om het dan goed te houden. Ho – dat is een ander paar mouwen.

    *die ik trouwens nooit gebruik… ik gebruik de zoekfunctie om de andere app te vinen

  • Being a UI designer means…

    September 2, 2020 - Posted in design interface - 1 comment

    Last week I gave a talk on understanding UI design, which you can check out on YouTube here.

    A bit related, I found this old note on my computer. I don’t know when I wrote this. But I figured I’d post it to my blog.

    Being a UI designer means…

    1. Discussing the difference between UI and UX at length
    2. Watching science fiction movies and drooling over the interfaces
    3. Reading application update notes
    4. Watching the WWDC keynote to check what changed in Mac OS
    5. Drawing a lot of boxes and arrows
    6. Playing video games using “research” as an excuse
    7. Having multiple phones because you need to research the differences between iPhone and Android
    8. Reading design guides created with the best of intentions and then just doing what you like anyway
    9. Installing betas of operating systems with the risk of damaging your main machine and then complaining about the bugs
    10. Reading typography books even if you can’t really use many fonts in your work
    11. Coding prototypes
    12. Reading up on the latest CSS features
    13. Trying to learn the latest in Javascript but giving up because it’s too intense
    14. Learning about your clients specific domain
    15. Arguing against custom UI while simultaneously loving it
  • Apple doesn’t care about your PWA (and a little rant about holding back the future of computing)

    August 30, 2020 - Posted in apple development rant webdev - 1 comment

    With PWA’s not showing up in the App Library in iOS14, it is once again super clear that Apple has no interest in investing in PWAs.

    I can make a web app that runs full screen in a week, that can provide valuable information and that can run offline.

    But Apple has no interest in promoting that app to be a first-class citizen. They want me to go through the arduous process of rewriting that app as a native iOS app. Of course, because any PWA can bypass the App Store, where they can make money.

    When you try to make a full screen web app that runs on a phone — using a modern Javascript framework — you run into all kinds of OS-related problems.

    The latest problem I have is that whenever I try to click a link in a demo app, I get to see the in-app browser. And there’s just doesn’t seem to be a way way around that. But I don’t want that – I simply want to show my apps UI.

    Bug in action. Notice the in-app browser showing up once I navigate out of the first screen. Anyone knows how to fix this? ?

    Instead of going to try and fix this “bug” I am just not going to. Because I know it’s probably a rabbit hole of trying different things and then coming to the conclusion that the root problem is simply iOS. I’ve been here before. I am not going down that rabbit hole again.

    This isn’t new: for years, Apple has treated web apps as a second class citizen. Why would they invest in it? They make all of their money through the App Store, taking 30% of revenue. If PWAs work too well, people would invest in that instead, providing a way for developers to bypass the App Store.

    So for years Apple has spent zero attention making PWAs work well. Instead of competing with Google’s efforts to make PWA’s first-class citizens, they instead actively work against web apps being a success on mobile.

    Apple is quite invested in letting you design apps for their platform using their rules and their tools. So you can then make apps that only work on their platform.

    And mind you, it’s a good platform. I’ve been a loyal iOS user for years. But it’s also a big walled garden where I think it would be nice if things were a bit more open. The devices are perfectly capable to run great web apps. Why do we have to make a native iOS version of our app, when web technology can give us cross-platform apps with a much easier dev cycle?

    Lately Apple’s 30% cut policy has been under heavy scrutiny and I’m quite happy about that. I think 30% is way too much for the distribution of (native) apps.

    People have discussed this heavily. I am not sure if Apple is in the wrong here – it’s their platform, they can run it the way they want.

    I don’t even really buy any monopoly arguments or antitrust issues. The point I want to make is that Apple should take a close look at themselves and think if they are not hindering the evolution of computing as a whole.

    In their efforts to control everything they have actively made iOS worse.

    Because you can’t buy books on it directly, an iPad is a worse Kindle. Because you can’t sign up for Netflix on the device itself, the UX for new users is worse. And these are just two out of countless examples where Apple doesn’t really put the user first, but rather their business.

    If you think about the user, you can set an evolution in motion. Yesterday I was trying out Playstation Now (which seems to have evolved quite a bit) – and last week I was checking out Stadia. And this idea of just streaming is wonderful.

    But, alas, that’s also something that Apple is not that interested in (or more likely: that they are building their own proprietary tech for).

    I understand Apple’s business decisions, but as a user, and especially as a web designer/developer, they can be frustrating.

  • Als de situatie verandert moet de vorm veranderen

    August 29, 2020 - Posted in nederlands opinie remote

    Gisteren in Ter Zake zat een dame van SD Worx die wat kwam vertellen over telewerken. Wat ze zei klonk als de mening van iemand die het concept van telewerken 6 maanden geleden heeft leren kennen.

    Het ging dan van “je moet je collega’s toch kunnen zien” naar “koffiemoment belangrijk” tot “een tip: zeg ‘s ochtends hallo op de chat, want dan weten de collega’s dat je aan het werk bent” (wauw… pro tip!).

    In dit weekendartikel van dS worden 2 scholen aan het woord gelaten. Eerst een school met heel vernieuwende ideeën, waar ik heel blij van werd (tweet) en dan een traditionele visie.

    Onderaan het artikel van dS staat een stukje gesprek met iemand van de traditionele visie, ik citeer: “In de klas heb je de leerlingen sneller bij de hand.” “

    Dit moet me erg denken aan de bedrijfsleiders die 1 maand na corona kwamen getuigen in actuaprogramma’s dat het werken op afstand niet werkt. Er was een bedrijfsleider die vond dat in een call met 10+ personen hij niet dezelfde dynamiek had als in het echt. Dat hij de kamer niet kon lezen. Dat hij niet kon weten wie wat gehoord had.

    Ik lees daar vooral een autoritaire stem in die niet omkan met een verlies aan controle, maar goed.

    Bovenstaande meningen gaan dan typisch gepaard met anekdotes over waarom het niet gewerkt heeft om iets op afstand te doen. Maar wat je dan ook telkens ziet is dat de partijen die stellen dat “het niet werkt” het proces van het “in het echt doen” één op één hebben getransporteerd naar het digitale.

    Hebben we elke dag een status meeting op kantoor om 9u? OK, dan doen we dat ook online. In het onderwijs: hebben we lesblokken van 50 minuten? OK, dan nemen we dat ook over. Het is verfrissend hoe er in het dS artikel door de eerste school uit Gent wordt nagedacht over hoe ze de vorm van leren kunnen veranderen en daar dan ook effectief mee experimenteren.

    Deze week had ik het met Xavier over hoe het interessant is om voor evenementen de vorm te veranderen. Waarom geen evenement spreiden over meerdere weken? Waarom niet een aantal contactmomenten plannen over een langere tijd? Ere wie ere toekomt, we hadden net de planning gelezen van Namahn’s design thinking camp.

    Als je een conferentie geeft waar mensen real-life bij elkaar komen ben je gelimiteerd door zaalhuur, mensen uit verschillende landen die moeten invliegen, hotelkosten niet te hard laten oplopen enz. Maar in plaats van alles te condenseren op 2 dagen, waarom geen 2 weken? Met sessies van een uur, sessies van 2 uur, verspreid over verschillende momenten. Met 1 op 1 en groepsnetworking opportuniteiten.

    De situatie verandert, dus je kan de vorm veranderen. De restricties liggen anders en je kan daar dus op inspelen.

    Deze week gaf ik een talk met het Hopin platform en daar zaten enkele heel goede ideeën in. Binnen de Svelte community is er weer een nieuw evenement aangekondigd, Svelte Summit. Ik hoop daar nog enige invloed te hebben om het eventueel over meerdere dagen te plannen en officiële, kortere events te houden voor en na de conferentie.

    Nu, al dit zet me wel aan het denken. Ik geef workshops over het designprogramma Figma. Dit is normaal in het echt met een groep van 5-10 mensen. Maar nu is het dus overgeschakeld naar een workshop op afstand.

    Ik heb al gemerkt dat de formule van gewoon lesgeven aan een grote groep van 10 voor 4-6u niet altijd even goed werkt online.

    De deelnemers van de workshops zijn over het algemeen tevreden, maar als leerkracht ben ik niet altijd tevreden met hoe het verlopen is. Ik mis de tools om bepaalde dingen op een goede manier te managen.

    Eén keer is het ook mis gegaan in mijn ogen, met een totaal verkeerde timing en een “disconnect” tussen wat ik wou uitleggen en de mindset van het publiek. Ik heb hier mee ingezeten, want ik wil natuurlijk altijd een goeie workshop geven.

    Ik heb bv. ergens een pauze ingelast. De ene vond de pauze te lang, de andere te kort.

    Wat ook al eens gebeurd is dat niet kan volgen.. Dan moet de hele groep moet kijken hoe die persoon privéles krijgt met 9 toeschouwers. Leuk is anders voor die persoon: die voelt dan een enorme druk.. Als leerkracht kan je tegelijk ook niet niét op die persoon zijn vraag antwoorden.

    In de context van bijleren, denk ik er nu aan om mijn Figma workshop op te delen in modules en leerpaden. Ik wil opnames maken van stukken van de cursus, en er een combinatie van zelf-studie en coaching via video calls van maken, samen met groepslessen.

    Ik moet dus in feite de manier waarop ik een workshop geef fundamenteel herdenken. Als de situatie verandert moet de vorm veranderen. Logisch toch?

  • Een andere mening

    August 26, 2020 - Posted in persoonlijk reflectie

    Ik hecht waarde aan andere meningen. Andere meningen zorgen ervoor dat je je eigen meningen in vraag stelt. Zeker als ze goed onderbouwd zijn, is een andere mening een geschenk. Een andere mening zorgt voor kritisch denken. Een andere mening kan ervoor zorgen dat je eigen mening verandert.

    Het is daarom dat ik eigenlijk een beetje gepikeerd ben dat sommige mensen die een andere mening niet waarderen, een meningbubbeltje creëeren door andere meningen te blokkeren. Door enkel maar mensen toe te laten die jouw mening volgen, krijg je gewoon een hoop ja-knikkers die in een cirkeltje dezelfde mening poneren. Dat kan toch nooit leiden tot enige kritische reflectie?

    Zeker op social media, in combinatie met je natuurlijke filterbubbel, zal je dan slechts 1 kant zien. Zoiets werkt polarisering in de hand.

  • Hey, your API surface is causing unnecessary complexity

    August 20, 2020 - Posted in css rant tailwind webdev - 2 comments

    I’ve been “fighting” against Tailwind for a while, and there’s 4 different kinds of reactions:

    1. Please stfu, Tailwind is awesome, [insert technical argument]
    2. Johan, why do you bore me with these technical things? Can you please tweet about cooking? And where is your new post about sim racing?
    3. If you don’t like it, just don’t use it
    4. Nod – you are right (this is mostly coming from the people from my same “generation” who learned web development around the same time as I did)

    The fighting takes the form of blog posts and tweets. On the Routify Discord channel it’s already a running joke that I’m going to vent when somebody comes in to ask a Tailwind question.

    Yesterday someone reached our privately, basically to challenge me to channel this negative energy into something positive. I agree that would be nice.

    For now you will have to do with this blog post which is still in the rant-o-sphere. But I will take up the challenge to maybe work on something that shows my opinion on how to do it “right”. That’s going to take some time though.

    Why do I get so worked up about Tailwind? Because bad frameworks create problems that shouldn’t exist.

    I help to maintain Routify, at least from a community and docs perspective. Quite a few support questions that come in are about dev pipelines, and some of them about Tailwind. A CSS framework I don’t like creates a support problem for me. I cannot simply ignore it (so that’s a rebuttal against the point to simply ignore the existence of Tailwind).

    What I see is that bad frameworks create a crazy learning path for new devs, where they might waste months learning to work with frameworks with crazy APIs only to find out that they haven’t really learned anything.

    Learning modern web development is already intense. But at this point in time, a lot of modern web development leads you down a path where you might not learn all that much, because you are fighting poor decisions made by other people. Maybe if you’re new to this, you think that’s just the way things have to be.

    One thing that I want to mention is that not everything about Tailwind is bad. I think the visual look is quite solid. The way the framework is promoted is well done, with well-produced video content and blogging that has gone professional. I mean, this team knows their stuff. I just fundamentally disagree with the premise of littering your HTML with classes. I disagree with shipping a framework that has accessibility issues.

    I am often in a position where I am mentoring new hires to our company. A few months ago I pointed someone new to Adam Wathan’s article “CSS Utility Classes and “Separation of Concerns””. This is a great article by the author of Tailwind.

    I guess with the above I just want to point out that I am not blind to the Good Parts of Tailwind (just like there are good parts to React ;) *shields from incoming flames*)

    But overall I am worried that some framework makers live in their own theoretical world and forget about the real world. They are striving for a technically perfect framework but forego the real-life usage. For them the framework is the project and the lens they view things through. The usage and the actual project where their framework is used is just a detail. When it should be the other way around.

    This kind of perspective leads to frameworks that constantly change their mind about what they want to be, leading to work down the line for the users, that often has no real-life value at all.

    In my blog posts taking down Tailwind I am mainly writing from a worry of having to maintain a codebase full of classes.

    Somebody tweeted this screenshot and I’m like: seriously?

    Screen capture showing a VS Code window. Tailwind CSS classes which apply colors have color blocks next to them. There is a panel on the left of the screen which displays your Tailwind config in a tree view.

    If you look really well you can see that this shows a heading and 2 buttons, but it’s a bit hard to see. If you’re interested why this is just a poor way to develop your things you can go back to the blog posts and see what I had to say.

    Today this post is more about a broader perspective. I eventually gave this post the title “Hey, your API surface is causing unnecessary complexity”. This was triggered by Tailwind basically repackaging CSS gradients in their own proprietary syntax and then limiting what you can do with gradient because they don’t support everything. And I’m like: why not simply use CSS? Like, which problem does this solve?

    It just adds to the complexity of Tailwind. It creates something new for a dev to understand when they find this code. It creates a new documentation page that has to be maintained. It creates a new surface area for bugs. I think sometimes you just have to stop developing a framework. Sometimes, things are finished. The problem with Tailwind is that since it basically mirrors CSS, it will simply never be finished as long as CSS keeps adding new features. Which they should also put a stop to, in my opinion.

    I see what I’m talking about – adding unncessary complexity — happening with both SCSS and the CSS working group. In October last year, SCSS modules were announced and literally nobody cared. I love SCSS – I have been working with Sass since the early days and contributed to the first documentation site of Compass. That was my first introduction to open source. But Sass/SCSS has now reached a maturity point that what people are adding is so niche that nobody really cares anymore. Look: SCSS was already done.

    Now the CSS working group is discussing some sort of cascade layering system within CSS itself.

    I applaud the efforts to try and solve problems with CSS, but I also fear that maybe they are in vain. I think CSS is already complex enough. You can read my thoughts in the comment below the linked spec.


    In a discussion with a fellow dev about Svelte 3, he said Svelte 3’s API is nearly perfect. There is not much to add. In a lot of the pull requests about Svelte where people try to add features, there is pushback because it will make the framework more complex. Personally I love this. I want people to be able to attain Svelte mastery. To understand the API in full.

    I don’t want a framework that has a thousand nooks and crannies and that has 2 or 3 ways to do things.

    In React world there is the pre-hooks way and the post-hooks way. In Ember world there is non-Octane and Octane. Vue is moving to Vue 3, but at least that is backwards-compatible.

    Maybe Svelte will go to a transition at some point where there is a Svelte (4?) API that is vastly different; maybe it won’t.

    But I think people should realize they can’t keep adding complexity on top of complexity. People should really stop and think if you really need 500+ Mb worth of node_modules to build a simple website. Developers need to think about the API surface of the tools they are building. There is an optimum point where it’s better to stop instead of cramming in feature after feature.

    We are moving towards a world where people are doing web development where they are purging a 1.4Mb CSS file to 28kb ( for the actual selectors they used) on a CI environment that they don’t control. And then one day AWS goes down, and maybe npm gets hacked, and the poor web dev who hasn’t built up fundamental skills doesn’t really know how to do anything anymore, because they always depended on others (what is SSH anyway?).

    I think people need to know fundamentals. You can’t depend on a few magical incantations on the terminal that you don’t fully understand.

    The same goes for any kind of development. When you write a CSS rule you have to understand what it does and where it is coming from.

    When you deploy a website you have to understand what is happening behind the scenes.

    When you use a framework, you have to work towards understanding it in full. You have to know why it exists and why you use it.

    If somebody wants to use Tailwind and has a set of reasons, that’s fine for me. What I don’t like is people defaulting to things that are popular and then learning a stack that basically abstracts the fundamentals; this leads to a situation where junior web devs work for 3 years but lack fundamental skills because they were too busy trying to fix local problems created by poor frameworks. And that’s what I’m fighting.

  • Using Yalc as an alternative to npm link

    August 17, 2020 - Posted in webdev - 1 comment

    This is mostly a reference for myself. For some technical things I tend to use my own blog if I forget something.

    This is an example of how to use Yalc as an alternative to npm link . I find that npm link doesn’t always do what it should, and I found yalc to work better.

    First, install Yalc:

    npm i yalc -g

    (1) Go to your dependency project’s folder, make a branch, do yalc publish

    (2) Then go to child project where you use the dependency, install it there with yalc add <projectname> (it replaces the version package.json with your local version)

    (3) Restart your project – typically you will have to stop/start the server (Ctrl+C / npm run dev)

    I do this with 3 terminal tabs, juggling between those 3 actions. Yalc puts the packages in a temporary .yalc folder on your local computer.

    (I discovered Yalc through this post. Thanks Viget!)

  • Slimme regels a.u.b. (mondmaskerplicht in de praktijk)

    August 3, 2020 - Posted in politiek - 1 comment

    Wie o wie zit er in dat veiligheidsoverleg en waarom kunnen ze geen slimme regels bedenken?

    Het enige dat ze eigenlijk moeten zeggen is dat je altijd verplicht een mondmasker moet bijhebben, en als je dichter dan 1,5m bij iemand anders in de buurt komt, dat je dat dan opzet. En dat het in elke binnenruimte die niet jouw woning is verplicht is om het mondmasker op te zetten.

    Vanaf vorige week dinsdag werd een mondmasker verplicht “in het gehele publieke domein” in Antwerpen. Met andere woorden, als je gaat lopen, zoals ik tegenwoordig wel regelmatig ga doen, moet je een mondmasker ophebben. Dit is toch niet te begrijpen? Dit is gewoonweg niet gezond.

    Het moeten ophebben van een mondmasker is voor mij goed als het nodig is, maar als het niet nodig is, haalt het ook het plezier weg van bv. een gezond fietsritje op rustige wegen ‘s avonds.

    Mijn voorstel: je moet een mondmasker bijhebben, en het aandoen als je mensen passeert dichter dan 1,5m afstand. De regel in paragraaf 2 covert dit reeds.

    Laten we het zinnig houden. Er is al reeds een coronaregels-moeheid, laten we niet overdrijven met onzinnige regels die echt niet gaan helpen.

  • Cooking channels

    August 1, 2020 - Posted in cooking

    Some recent cooking channels that I like on YouTube:

    • Adam Ragusea
    • Ethan Chlebowski
    • Jimmy’s Kitchen

    If you’re curious about my own cooking exploits, follow me on IG.

  • Pakken wat je kan pakken en sociale fraude

    July 23, 2020 - Posted in belgische-problemen ondernemen opinie politiek

    Ik ben er 100% voor gewonnen om noodlijdende bedrijven uit de crisis te helpen.

    Maar wat ik zie en observeer is dat veel bedrijven — in typische België-stijl — ook gewoon pakken wat ze kunnen pakken.

    Voor sommigen was het niet echt nodig om hun werknemers op een tijdelijke werkloosheid te zetten, maar ze deden het toch, en sommigen bleven zelfs gewoon doorwerken om ondertussen van uitkeringen te genieten.

    Iedereen heeft zijn eigen perspectief op zijn zaak en in België is er vaak de logica dat “aangezien we toch zoveel belastingen betalen, je moet pakken wat je kan pakken”. Maar er zijn daar duidelijke grenzen aan.

    Het laten werken van mensen die op tijdelijke werkloosheid staan is duidelijke sociale fraude. Hier staan grote straffen en boetes op. Helaas loopt het Belgische gerecht achter en is de kans dat iets effectief bestraft wordt mij eigenlijk redelijk klein. En het is net die lage pakkans waar de fraudeurs op rekenen.

    Er is een mop over twee Belgen die op café gaan met een Duitser. De ene Belg schept op tegen de andere Belg hoe hij belasting heeft ontweken. De andere Belg is benieuwd hoe hij dat gedaan heeft. De Duitser belt ondertussen de politie.

    Het begrotingstekort in België stijgt drie keer sneller dan het Europees gemiddelde (bron). Dit heeft vele factoren, maar één ervan is volgens mij alvast de moraal van sommige bedrijfsleiders.

    Dus, neem a.u.b. je verantwoordelijkheid. Maak enkel gebruik van noodmaatregelen als je het effectief nodig hebt. En laten we dit land niet in de afgrond laten storten.

← older
newer →
  • ©2025 Johan Ronsse
  • X
  • Mastodon
  • Portfolio 2024