 Okay, awesome, thanks, thanks for waiting. Okay, so I'm presenting pie-assessing and I only have 10 minutes, and theoretically after all this rebooting maybe less. But anyway, I'm gonna try and be quick. And first I'd like to start with motivation rather than telling you what it is, I'm gonna tell you why I made it. And so this is, if you can forgive me, being a little bit nostalgic, this is the TI-99 made by Texas Instruments. This was not this exact photo, but this model of computer was the first computer I had when I was, I don't know, like five, six years old. We had one of these, it was hooked up to an old black and white TV, and it was great. We could play Space Invaders and Parsec and all these games. And the way it worked, it was really immediate. You took a cartridge and this thing, to the right of the keyboard, that was a cartridge slot, so you slid it in there and you would put it in and then within, I don't know, a few seconds you would be playing the game. Sort of the same immediacy that people expect these days from the apps on their phones and things like that. The thing though is if you didn't stick a cartridge in, when you turned it on, within a few seconds you would get to a basic prompt. And basic, I mean I know that probably there's no one in this room who would actually say basic was a great programming language, but the really great thing about it was that a six year old kid who could barely read could within about 60 seconds get some blocky colors on the screen or he could print his name in an endless loop or something like that, but it was so nice that you could get this immediate response. And I don't know, I mean I quickly got bored with it after a year or so and then I was more interested in playing football or other things, but it had this, it was this introduction that was really satisfying in a way and it worked for a six year old kid. So let's look at what the kids these days have, okay? On the left, this is Eclipse, alright this is maybe slightly exaggerated, but this is an actual screenshot that somebody uses and you not only have this crazy system, and then on the right you have your whatever device, which is in terms of the CPU, the graphics, the capacities of the thing, the device is thousands of times more powerful than this PC I had, but if this little kid wants to do anything other than play angry turkeys or whatever on his parents' thing, he's out of luck. I mean he can buy apps, maybe he learns how to buy apps quickly, but if he actually just wants to make little blocky shapes that move around the screen and play around with this stuff, he needs to learn a huge library and a fancy IDE and this whole thing and it seems kind of sad to me. So this is my motivation is essentially to get us to something that has the approachability of this and I'm interested in building systems where people who are maybe non-programmers or artists or graphic designers or six-year-old kids or people who maybe want to program once a month, not every day, they just want to sit down and write some little experiments. That's what I'm interested in getting at. So, and there's a second problem for me. There's a lot of programming languages and for every programming language, there's a bunch of people who are religious about its superiority and I'm also one of those. But I have some experience teaching programming because I've spent the last six or seven years teaching in design schools and I have an engineering background and so I've taught HTML, CSS, processing JavaScript, PHP, a lot of different languages and the problem with any teaching program to anyone who has maybe a slight deficiency of patience or higher expectations in terms of usability, what they come to rely on in terms of usability. They get really frustrated with syntax and a lot of this sort of C style syntax is really tough, all these semicolons. Why do I need a semicolon? It's obvious, I hit return at the end of the line and or why should I indent my code if I have semicolons? I can put it all on one line or I can just sort of let my editor float around. And so once you, my experience is that if you teach people Python where it's all based on white space, this may, especially for graphic designers, but it visually makes sense that there's this relationship. So for me that saves a lot of time teaching people to program is when you go to this type of syntax and there are a lot of other principles in Python that I find are easier to grasp. Now I realize this is an opinion more than some rational argument that I can make but that's my experience and there's a problem though is that Python doesn't have a simple system where you can just get started, where you can just download one thing, double click on it and you have this prompt where you can start typing in little bits of code. So I mean I copied this, I'll be fully honest. Somebody else came up with this idea first, it was called processing, but this was with Java and Java still had this problem that you have all these semicolons and curly braces and so I wanted to do the same thing with Python because I thought it was easier to learn, it's easier to teach people with Python. So I made this simple IDE, which you can see on the left where you have a little edit window, you have a button on the upper left where you can play and stop your program and then on the right side you have a help browser and you can browse around the basic core functions and eventually, I don't know, I wanted to hook in the website and forums and all this stuff but for now that's what it is and then you have, you can see behind this, there's a little window, you can also run it full screen but it gives you the output of the program you've written and it uses, so I've wrapped a lot of these fancy libraries which have a lot of capabilities but they don't necessarily, it may take you a week to figure out how to draw the circle on the screen so I've made functions where I've sort of wrapped this up in the style of processing where you have a function that's just called circle and it draws a circle. So to go into a little bit more detail about the current features, we've got 2D vector drawing, you have 2D raster images so you can import all of your GIFs, JPEGs, whatever. You've got transformations, also for 2D vector stuff you have basic sets of standard transformations, rotate, scaling, et cetera. Performance is, it's not amazing, I mean it's not, it all optimized but it's decent enough I find for most of the sort of standard stuff that I'm doing and for teaching purposes it's fine. Typography, there's some things that are missing but I finally got it to a semi-serious level. I don't know if Pierre Marchand is here but he gave me this good impetus last year to get that recoded and it's now more or less on track to having full capacities. Then you have mouse keyboard and joystick input so if you want to play around with games or some sort of interactive stuff you can do that and then there's also some basic sound where you can play samples and even do a little bit of recording stuff. Okay, in terms of the experience, what, it's not widely spread, it's not a lot of people using it, mostly it's me and a few people that I can convince to try it. But I've done several workshops that worked out, we made a bunch of fun stuff and people were fairly satisfied with it. I recently, about a month and a half ago, had a gig at the German Transport Museum in Nuremberg where they have the big old trains and stuff. They built a new children's exhibition and I built several projects using pie-cessing and so far they haven't crashed so you could say that it's more or less ready for serious service and then I use it for other little gags, birthday presents, mock-ups and experiments. So here's a picture of the German train museum. You can see this young gentleman here, he's putting, this is the diesel locomotive simulator so he puts the little plastic gas thing in and there's a screen that shows the tank filling up and then he can push the button and then it shows a video of the train driving. Yeah, this kind of stuff. And some ideas, some things that are missing. 3D video, some kind of physics engine might be nice. HTML5 canvas output that may be kind of crazy but that seems to be where a lot of stuff's going and kind of interesting and PDF output. That one is not that hard but somebody needs to do it. And so since I'm here and there's a lot of people who might be able to help me and give me some advice here, basically this is a project that I work on when I have time. I don't have any kind of structure or funding or anything that lets me work on this really regularly but I have had, there's a few people here who've helped me on bits and pieces and those are really encouraging but since I'm here and I know there's a lot of people who have more experience in this than I do, I have two questions for you guys. Feel free to talk to me afterward but one is how do I get more devs involved even just for one or two features? This isn't a huge project, this isn't gonna be a million lines of code, it's a few thousand but there's some things that I don't have enough experience to really do myself. So it would be cool to get one or two people involved, maybe it's the kind of thing where they do a one-off contribution or they do, I don't know, like once a month, one or two little things but I'm interested in how for people who have bigger, more evolved projects, how do you keep this ball rolling and how do you get it going beyond the one person? And then secondly, the biggest nightmare and the thing that I think is kind of holding this back from being more successful is I can't build packages for Windows, Mac, those are the two big ones and then XYZ distros. It would be nice if somebody could help me put together, there's lots of things that are great now for sharing your code but I would like to put together the end user stuff. So yeah, that's it, thank you.