Code structures help fit code into your head Every programming course starts with showing a "hello world", moves on to computations, I/O, control structures, data structures and code structures. The necessity for data and code structures doesn't become obvious until one has written a larger programme. Until then (and often even then) it feels like … Continue reading The art of copy & paste in programming
Author: George Georgovassilis
Controlling the TP-LINK HS100 Wi-Fi smart plug
[update 7 June 2020] Available now on Docker: https://hub.docker.com/repository/docker/georgovassilis/hs100 [update 27 January 2017] TP-LINK HS100 project on github: https://github.com/ggeorgovassilis/linuxscripts [update December 2020] TL;DR; This is about a shell script which controls the TP-LINK HS100, HS103s, HS110, HS200 and KP105 Wi-Fi smart power plugs. Other models in that product line may also work (the tplink-smarthome-api project uses … Continue reading Controlling the TP-LINK HS100 Wi-Fi smart plug
Ubuntu 16.04 LTS on the Acer Aspire E15
I have been moderately content [1] with Ubuntu 14.04 on the Acer Aspire E15 for about a year. Ubuntu 16.04 LTS, another long term support release, has recently been published and of course I had to try it out! Installing the live image on a USB stick: bring some patience The first obstacle is that … Continue reading Ubuntu 16.04 LTS on the Acer Aspire E15
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 … 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 … Continue reading Ansible local_action privilege de-escalation or: how to wait for a reboot
