 Hello, thank you for coming. I realised I fit a fit like I'm on the jazz stage and radio had just come on down at the pyramid. So thank you for being here. I realised I'm up against Simon Singh and the internet machine. So I'll let you talk about a stupid thing I did that turned into a massively over-engineering product that was actually a lot of fun. Who am I? I work at the Open Data Institute. I'm a head of robots, which means I don't know a lot of automation stuff. But I'm also, I like to download code, because code is fun, right? We can make amazing things just because we can. So, I guess if you're here, you can put me down to hear how it is, and you want to be guessing. This is the typical contribution of the last year. The darker the squares are, the more contributions are on that day. And these are essentially adjustable pixels. You just need to know how to construct the annotations to write them. Now it turns out I'm not supposed to have thought of this. About a year ago I came across this simple kit fitting, which is really good fun. This is all you can see over there. Now I'm not sure if this is up. And I think this is amazing, right? But it's written in Python, which is not really my thing. But I started digging into it, and actually, at the bottom, what it does, is to construct a whole load of blank documents. It's just a line of fashion. This is easy, right? However, let's push down on the start for a moment. Who knows what this is? This is my crowd. Right. There's a lot of spectrum stuff there. There's a lot of spectrum stuff. It's good to see. You know what that is? Then you know what this is. This font is a, this is syringe to my soul. If I ever get a tattoo, it will probably be in this font. It might even be in that message. And it's just a list of bikes, right? It's just this. The font is just these. This is very dark. A long time ago, I was on Composite Sinclair and Newsnet, young people asking Dad. And somebody said this list, right? This is very easy. This is probably copyrighted or something. I'll probably just put the file below. Because I've written this a long time ago. I've written this in PHP. I don't review Python because I thought learning Python would be a thing to do. I have, I said, seen the light. So let's build it as a web service. Because why wouldn't we do this? Right. Does everybody know who this is? This, this is Dr. Jay-Z. She's my boss at the early age. She sits on the W3 tag with Tim. If I don't do this properly, she'll be very upset she'll be able to speak to me again. So, we do content negotiation, right? If you request, as Jay-Z on it, it comes back as a lot of pages. If you sweep, you probably see, this says something like 1882. A series of 1s and 0s, right? And I realize you're all thinking, why did you do this? And we'll get to that. You ask for the text, it comes back like this. You ask for the HTML, it brings it as a table in HTML. And there's more. It compresses it using one link encoding because that's really easy to do using HTML call spans. As I explained this, I realized it sounds more and more loose. But you want to say, you're the next, I'm the client, I'm the Roku. It's a lot of fun. That kind of just pulls up what's happening, so I can just take a moment to realize. I realized a lot of this I'm taking because I actually mean this. I'm sitting around at my house on Saturday afternoon. I can bring up Q-Com, just genital Q-Com and start building test-first software. Using Sonata, which if you're not familiar with Sonata, you can check it out. It's an awesome, awesome, very simple web framework. I'm going to do this stuff, an absolute goal. I can put the code on GitHub, so you can see it in sharing. I can put it there, maybe. I can build it. I can run the tests on Travis. And then I can deploy it to Roku. And this is all free, and it's all available to me from my laptop in my flat. This, the future is a weird place. So, we have these two things. We can write in the spectrum font, because we can render it using JSON. And we can write on the GitHub code in Canada. Almost. There's floor, the spectrum font is 8 units high. There are 7 days in a week, the calendar is only 7 units high. This is our fortune, sometimes we have to chop out some rows. So we have rules. If it's on the top row, take that out of my bottom row, otherwise we remove the 4, yeah, row number 4. Turns out there are only 2 characters. It's actually the effect, the full height, the at symbol, and the copyright symbol. And of course, the copyright symbol is the one you want to write when you want to write copyright 1982. So this is important. I know it's important. So it turns out that Git is valid in Git to make a commit in the past. This presumably makes sense as opposed to, I presume you know what it's doing. He does some other stuff, you may have heard of it. It's still, let's write this video. So we look at the contributions history on GitHub, which here is just a piece of JSON. You can look this up as it's entirely open. You look at the business data in the past year, that would be the greenest pixel currently. And you then add some more on to that, and you write that many commits for the days you want to be dark. And you make a whole lot of them to commit. Which is just this. What you do, basically you see the fake date in here, which you've got that, the pictures you want to write. You can see this on bakroski.herokuapp.com. Please, I encourage you to go and do it. You make an empty git repo. You basically run a call to this, a package from bash with curl. And it makes a git repo and pushes it up. And it writes all over your commit history. However, I discovered the soft moon do not use undocumented GitHub APIs. Because I was writing the talk, I needed to get some sample data. And a thing I was relying on, return the 404. And this is at three o'clock. I didn't forget that time. My friend James gave us a hand to stop me freaking out. And we looked, and the API could have changed slightly. I could have just been deprecated. Our Gmail account was not supposed to be using. So don't do that. But more importantly, if you're going to use something like VCR, VCR is a box request to APIs together to make the call every time, which is not to the VM. Which makes your tests run really fast and it's very convenient. If the API changes, and you're still using the old VCR assets, you're getting a lot of trouble. So watch out for that if you're doing something stupid. And this is what happens again. So I can write all my GitHub, I can write it out. Which is an awful lot of effort for that. However, so now I've got two web services. The thing that does the thing for F1, I've got the thing that actually utilizes GitHub. However, because I had to do the conversion from 8 characters to 10, 8 minutes to 7 minutes, I had an extra bit on a Google Play API, and it was inelegant and ugly. And that would never do for something as important as this. So it turns out, I got a great test first, and I actually used design patterns. There are formatters and decorators in this. Right? This is the poll. Really, really easy to do. If I really wrote a bit of tests, I basically extracted one formatter into a third look, so there are three web services involved in this. This one's from the front row. Some of you may know what this means, if you've got a spectrum and you're old enough, if you don't, come and see me after you've been talking about it. So what's next, I would like, I would genuinely like to make some of this into a gem or two. Some of you may find it useful. And I would very much like to be able to, as well as generating JSON text and the HTML table, generate a pin. And for some reason, this isn't the sort of thing that should be easy. Though I used to do this, and I wouldn't have thought, I've cut and pasted so much stuff and stuck overflow. It turns out I have no idea what I'm doing. But I can't believe it. If anyone knows how this works, please speak to me afterwards. And that's that. And then we're going to the questions. Questions? If anyone has a question, stick your hand up or I'll answer it. I've got a question. Go on. I presume that the font is essentially ASCII. It doesn't support anything outside that level. Can you do funky? No. This is not an attitude, no. OK. Maybe you've done something with that. No. That's as good as it gets. I mean, there are lots of, you know, there is a, you may have seen the isometric commit thing, which turns the graph. Sorry, I wasn't projecting. There's a lot more than four colors. So if you analyze that, you get a lot more creative, you do a lot more things other than just writing EFI. That plug-in isn't working. I suspect that guy got kicked by the same pub that bit me this afternoon. Don't use undocumented APIs, kids. Anymore? OK. Thank you very much.