Decline online is basically doneWell, as per last week, it turns out I can run python from my server. Once I’ve updated python and installed all the modules which sounds simple right oh my god let me tell you about trying to install pip. I’m on a shared server and their version of Python doesn’t include pip or any of the other things I need so I have to install my own local version. But even a local install of Python won’t include pip. And without pip I can’t install anything. Including pip. The solution was simple, suggested the host's notes, install Python as normal and just include the flag ‘--with-ensurepip=install’ But. I'm a proud man and I outright refused to take ten minutes out of my day to reinstall and so instead spent hours trying to get round the lack of root access to sudo install, uploading packages, scraping archives, wget’ing the hell out of my keyboard. Eventually. Eventually. Eventually. I gave up and reinstalled including the flag. Easy peasy. Look, life’s a learning curve.
- I wanted to do something my way
- That thing was prevented by sensible security
- I was obstinate that my way was how we were going to do it
- I lost
Look at him!
Anyway it works. I had actual tears in my eyes watching my little script run over SSH. So that’s fixed. Actually, it was quite a week after that. I pulled a couple of all-nighters and Decline Online is basically finished and ready to roll out. I followed this example to get some visualisations rolling with quite a bit of tweaking and adapting. The next major problem was trying to dynamically scale the data so that everything fitted in the same canvas. For example, sea level changes may be in the range of -5 to +5 while oil prices are in the range of 1000-1200 so getting them literally on the same page was a bit of a problem. Lucky for me Jonny Thaw here at LCC in the Creative Technology Lab solved the problem in like ten minutes with some JS wizardry after I'd poured a couple of hours into it. I'm eternally grateful to him for fixing that as well as explaining some core concepts to me that really helped.
So I've currently got the Python script churning away grabbing data. I'll come back to the front end in a week or two and see how it handles a larger set of data and if it looks good then I'll put it out there and hope that people find it interesting. I'm still always on the look out for new, interesting data sets which will be the next thing to fix up after launching.
I met with my PhD supervisor last week and we looked over a huge manuscript that I’d pulled together over the summer. There’s about three PhDs in there and I’ve got a lot of work to do to get it into something more manageable, but then my theory on everything is always that it’s more rewarding to overstretch and come back then just to go as far as you need to. He said my writing was really nice and he enjoyed reading it which was great but then I thought more about why I don't enjoy writing.
Having spent a lot of the week doing quite technical activities I realised I get the same kick from them as I do from playing the video games I like (RPGs and city builders generally). There’s a kick in seeing incremental progress towards a larger goal that’s very much present in coding, RPGs and city builders/strategy games. In both working on a bit of code and those games there’s sense of making progress, that I’m trying to achieve something and I’m getting closer all the time and each success is genuinely joyful. Getting the python script to run perfectly on the server was a very similar feeling to what I had when I beat the cleric beast in Bloodborne.
Pictured: me iterating a function over a JSON array.
Writing doesn’t hold that same thrill because there’s nothing concrete about it. There’s no markers of like ‘ok that works, what’s next.’ Writing doesn’t ‘work’ at all, in fact. There’s no teleology (big word, probably used wrong) to it. So there’s no thrill to it for me. You finish it, it goes to someone they go ‘yeah, great, thanks’ maybe they give you money, maybe they don’t and that’s it. You never get to compile, deploy and test it to see how it behaves and whether it achieves what you want. In fact, the objectives, for me of writing are often pretty vague. It just needs to be done so I do it rather than wanting a specific outcome.
It’s not like I’m bad at it. I’m pretty good (maybe not on here) but when I put my mind to it I can pull together a pretty good sentence. Nowhere near Will Self level but certainly better than someone mashing the keyboard in the YouTube comments thread. I need to find a way to enjoy it, I have a lot of it to do.