Scalability through client-driven workflows

This post discusses a way to increase a service architecture's scalability by removing any communication paths between services and instead burdening clients with that communication.Bureaucracy in real life is a trade-off between ease of work for the applicant vs. ease of work for officers  In "Les 12 travaux d'Astérix" [1], Asterix and Obelix are on … Continue reading Scalability through client-driven workflows

Of Babylonian kings or why technical users in user stories are OK

Every time a technical system impersonates a human in a user story, God drowns a kitten in an agile waterfall.-- Unknown User stories are supposed to advocate the user's view on a system's behaviour. Whatever technical systems which interface with "our" system think or do does not interest us. But why then is it so … Continue reading Of Babylonian kings or why technical users in user stories are OK

Controlling the TP-LINK HS100 Wi-Fi smart plug

[update 27 January 2017] TP-LINK HS100 project on github: https://github.com/ggeorgovassilis/linuxscripts%5Bupdate 24 October 2016] TL;DR; This is about a shell script which controls the TP-LINK HS100, HS110, HS200 Wi-Fi smart power plugs.  I was scurrying down the home automation isle at the local electronics discounter, firm in my determination to make it without distractions to the … Continue reading Controlling the TP-LINK HS100 Wi-Fi smart plug

Debugging Spring REST bad request 400 codes

This happens way too often: you POST or PUT something to a Spring @RestController and Spring only tells you that there is a bad request, HTTP 400 code; no further explanations, no logs, no exceptions.Spring logs the error cause under the category "org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod" so you can enable logging for that in your log4j.properties:log4j.logger.org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod=DEBUG,stdout[1] Debugging “HTTP … Continue reading Debugging Spring REST bad request 400 codes

Ansible local_action privilege de-escalation or: how to wait for a reboot

I increasingly use Ansible not only for glorious tasks like setting up my various VMs I use for prototyping but also for mundane things like resetting my personal laptop every time I get a new one or break it (dedicated readers of this blog will know me to do that a lot [2],[3],[4]).Most of these … Continue reading Ansible local_action privilege de-escalation or: how to wait for a reboot

End-to-end testing Java web applications with an embedded Tomcat

 In this instalment on assembly testing [1] I'll talk about how automated system tests run over my Java web applications. The set-up is rather cheap, not very labour-intensive and can incrementally evolve from a simple assembly test (aka smoke test) to a full-fledged system test. Since this post is rather concrete naming tools and frameworks, … Continue reading End-to-end testing Java web applications with an embedded Tomcat