 Hello, my name is Julien de Soif. I'm an artist designer from Brussels, Belgium And I'm here to talk to you about my project called design with Git. Actually, design with Git could be rephrased as I want to integrate distributed version control systems into a designer's workflow. For those of you who don't know what a version control system is, it's actually a piece of software which helps you keep track of the version of text mainly that you write. So for example, if you want to write a novel, an essay or a resume or whatever, you usually start by writing parts of it and then come back later and after a while you have many files in your folder, which are called text version 1, version 2, version 3, version 3b or version 3 ready to print, ready to print corrected and so on. So which is a mess, especially if you come back months later and want to start working on that project again. So version control systems help you keep track of these versions, so you only have to write one file and version control system takes care of all the changes you apply to to the file you are writing. You do that by giving a little text or writing a little text, describing the changes you made every time you want to save different version of your text. It's also really interesting to use this system if you want to write different versions of your project and if you want to especially collaborate with other people because it's easier than to see the differences between your version and the version of someone else and to integrate them together and merge them. This is a system that has been used for years now by programmers and this helped a lot the open-source community to work on the open-source software we're using. What I think is I want to help designers, graphic designers, were not much into code to use version control systems and the benefits from that in their workflow. So I've chosen Git because it's the trending distributed version control system of today. It's a software that has been created by Linus Torvalds, which is also the creator of Linux. Why Git and not another version control system is one of the big advantages. It's distributed and it's quite easy to start with, even if it's a really complicated piece of software. Distributed means that you don't have a central server to keep track of your or to start versioning your files. And every time, I mean, I know a lot of people who've started using Git that every time they start a project they start versioning versioning it, versioning it. Sorry. It's a trending version control system of today, especially because of websites like GitHub and Gatorious. I don't know if you heard about those websites, but GitHub is really popular right now because it has a nice interface and it also has pushed a lot of the social side of versioning. So you will find web designers and fund designers also that have invested GitHub to share their project and to share the things they're working on. So version control systems are great with text files and graphic designers don't usually work with text files, but they can save their work in a textual file format. And these are some examples of textual file formats you can use in design design practices. So SVG, which we had a presentation yesterday about it, is for scalable vector graphics. ODG is Open Document Graphics, which is used by OpenOffice. DXF OBG is for 3D files. STL is also a file format quite now widely used in 3D printing and so on. UF4 is a file for font creation. Those are file formats that are written in plain text. So you can open them with a text editor and actually read how the design is saved into the text file in a position to a binary file format. Version control systems are very good with textual format because they can spot the difference between one version of the text and another one and say, okay, this lines of text has been changed and so on, which is impossible with binary files. So to encourage designers to use version control systems, I've decided to implement those functionalities into Inkscape. Why Inkscape? Inkscape is a piece of software, free software, which is used to create vector-based join. It's really well-known, widely used by different kind of people, be it font designer, logo, illustrators. In-depth, it's also usable for interface mock-ups for web designers. I mean, many people use this piece of software for many uses and it uses SVG as its base file format and SVG is quite old already. It's more than 10 years old. XML-based standard file format developed by the W3C. It's right now SVG also widely used pretty much all latest browsers open it easily and pretty much every graphic program you can find can at least open it. So how designers use Git? I talked about the web design community. They use GitHub, especially to share I would say libraries or templates or other things like Bootstrap, boilerplate, Roots Team, if you heard those names. If you Google GitHub icons as VG or Google GitHub fonts, you'll find plenty of repositories of files that are available for you to download and start and work on it and share. There is also this group which is present here at Mediala Prado and LibroGraphics meeting, which is open source publishing and they actually share all their work online through a Git repository. So here it is, their Git repository that I can browse and you can actually download all the work they've been working on and and actually start your, I mean, working on them or look at them to see how they've done it. So they're a group of designers who were actively already using Git to keep track of the work and encourage collaboration and then there is nope. Well, this was a video obviously we don't have the networking idea worst. This was a bad idea. Is internet working? Anybody? We'll see. Well, this, I don't know why it doesn't work, but it was a video on YouTube. Actually, there's a there's a group called EPT Comics if you Google them, you'll find them. They use, they've used a Git for versioning the creation of comic book and actually they're showing a video where they've actually gone back through all the history of the commits and they've animated it into a video. So it's also a great way of seeing what might go through a creator's mind and the way he works by going back to the history of the creation of the project. It could be interesting to, I mean, drive a piece of work into a different direction. So this is an idea that has been going on in my mind for a while now and when I see the open call for interactivists, I thought it would fit right in. So that's why I'm here to present it and I'm glad I've been selected, but I mean, I have nothing to show yet and I'm happy to be here to discuss with any interested people how to implement this, but this is maybe how we could do it. I would like to add, as a form of a plugin in Inkscape, first the basic Git commands to help a designer just do the basic use of a version control system. So it would be init, commit, branch. I won't go into detail of what those commands would do, but there would be an easy interface to start that. That could be also part of the interface of Inkscape, if we add it, is a way to go through the commit history. So the history of the different changes you've made to a file. So you could go back in time and say, okay, I want to see the first commit I did or a branch and would display exactly what you did at that point in time, and maybe start working from that point and create a branch from there. And then there is this visual diff, which is kind of like a holy grail I've come to realize, is that for a couple years now I've seen discussions on the Internet about how to actually visualize differences between two versions of a file or between two files. So right now, the way they do it, even in commercially products like Adobe version Q or Plethora, or there's many versions systems for graphic designers, they actually take a screenshot of the state of the project you have, and you can compare two screenshots of your project, and you have to visually find what are the differences if you can spot them. The thing that I want to do is, since I'm using SVG, which is XML based, I think we can go down and compare two XML files and compare where are the nodes that have been changed, and only display that, for example. This would give more information and more, I think, useful information to graphic designers about the changes between two versions of a project. This could help, I mean, I've seen discussions about this on the Wikimedia mailing list, because Wikipedia has SVG files as visual descriptions of their definitions, and they also do versioning of their files, so they might benefit from that too. Well, it's a trending topic since a couple years, but it seems that nobody has managed to come to a workable solution for that, so I'd be happy to, I mean, think and work and think, and come to a solution maybe during the 15 days of Interactivos. So extending, this is maybe exaggerating already, but if we come with a solution for Inkscape and for XML and for SVG, maybe this will inspire other people in the font design area or 3D area or any other area of design to think the same way and to find a solution to also integrate versioning system into their project, because versioning systems like Git and distributed versioning systems are great for collaboration. Really, the open source movement has been benefiting from this, and I think that visual designers need to actually jump in that chain and benefit from that too, and we don't really know what this could lead if we all share the same files and could all share the history of creation of those files. So I'm ready for questions, and I'll try to answer them. Okay, that's really interesting, but what's happened if you use a big raster image as the version control? Say one image is waiting 100 megawatt, you do five commits and your hard drive is full, so what do you imagine to manage this? It's a good question. I think it's part of the extending part of my talk, because that's why I concentrated on SVG. It's because it's a light file format, and especially it's hard to do versioning with raster images, because you can almost consider them as binary files. You would only be able to maybe version the changed pixels. I have no idea how, for example, Photoshop or Adobe does it, but it's an interesting question. And I would love to have, there is a raster text file format, like XNBPM, I don't remember, so you can actually open raster images into a text editor and edit it by hand if you want, but that's as far as I've gone. Anyone? Welcome to join at Interactive, we'll have work on this here. Yeah, you mentioned collaboration. At the moment, do you find designers use components that are built by other people, such as you have a poster and you want to put in a font from one producer and a particular graphic image from another? So at the moment, the work of a designer, are you often using other people's modules? Yeah, in my practice, that's what I do a lot. For example, using web design, because it's part of my job, I really use stuff like Bootstrap or take, I never start from scratch. For example, the Roots theme is a WordPress theme that you can start from as a designer, or I use also web fonts, open source web fonts to integrate in my design. Rarely starts from scratch, except if I have to design a logo or something like that, but for other projects, I always use stuff. So I would be, sometimes, especially when I use different projects from other people, sometimes I want to change a little bit of this, a little bit of that, because it's not exactly how I wanted. And maybe if I have access to the whole commit history of that person's file, I could maybe go back in time to a version that is better for me to start from and to change a little bit according to what I want to do, and then share back with other people. So that's what I'm interested in. So more questions during the workshops. Last slide. This is my name, and you can contact me on Twitter and the address of the project.