Hi everyone, thanks very much for joining me in this meeting room and to discuss building truly platform agnostic graphical user interfaces with fine My name is Andrew Williams. You might know me from previous projects such as the maven build system or the Enlightenment Foundation libraries and window manager, but if not, that's okay I've been a software engineer for nearly 20 years. We're working in open source and recently got into Entrepreneurship being an author on the topic of GraphQL user interfaces, and I've been developing fine and go since 2018 I have a bit of a confession. This is the first time that I've spoken open source summit That was really helpful really exciting to be here. It'd be helpful to gauge for this talk People's familiarity with things. So is there anybody in the room that knows the go programming language? No, that's cool That's great. Yeah, absolutely some familiarity is helpful, but it's not essential Has anybody built a GraphQL user interface for any applications? Excellent. Okay. Yeah, that's cool. So you'll understand some of the things some of the directions that I'm coming from and Does anybody who doesn't say yes to either of those have familiarity with C or some other programming language that might be utilized? Okay, awesome. So there might be a couple of things in here that aren't Super familiar, but I'll try and explain this as we as we go along so the concept of building a GraphQL user interface is complicated and it sits in a legacy of 25 30 years of history about how things came around They're complicated for a lot of people coming in first time based in the C programming language Which is not let's face it the easiest one to build with you have to think about memory management And thread handling is my code running in the right location at the right time if I cleared the memory Am I handing it to somebody else? All sorts of things that aren't really a problem if you start building with web technologies and other approaches And so you can see why perhaps native application development has been left a little bit in the past And when you compare that to modern programming languages We don't even have think things like good string handling or templates Think that can really help us to put together a more complicated user interface Now, of course, there's plenty of languages that have come since but they are not all really embracing. Let's build this correctly There's plenty of opportunities to access graphics in other programming languages But they're commonly building on bindings from existing technologies Which means we get the nice programming language on top, but we don't really get a new way of thinking about things Building in this way and on top of legacy technologies or existing libraries can be difficult to learn There's a lot of complicated things and the API you're interacting with might not match your understanding of how the programming language is set up Which is going to add a lot of overhead to the learning and to maintaining the code And the excellent tool kits that are out there, they've tried to solve this in the past Do come along with this 2025 year of baggage, which makes them really featureful But it does mean it's a little bit difficult to get started I'm not going to name any names, but you might find that the downloaded 10 gigabytes you need 40 gigabytes on your hard drive That's going to take a while to do anything before you can get started And then there's a lot of setup required as well So actually, I'm here to tell you that the Go programming language is a really fantastic fit here It may not have built-in tool kits, but it happens to be a really great fit The applications that you build are designed to be written once and run anywhere The compiler just understands all of the different operating systems that you can target The apps are single binaries, which means when you put them onto a system, they're going to run You don't need to find that DLL or the library that you're missing or do a system update for anything like this to be possible You're getting native performance So everything that I've said right up to now might be possible to do through HTML, some JavaScript, if you got the right libraries installed But it might not be a good performance, it might not be the user experience you're looking for So we're talking about native applications that run as though they were written dedicated to the platform you're running on It's built using best practice in techniques and language setup So you feel productive, you have a great time from the offset And really, this is lowering the barrier to building graphical user interfaces And we get to promote good engineering principles at the same time It makes me feel warm and fuzzy inside And I think it really helps people come into this for the first time to learn how things can be done well And so this is where the Find project comes in I started it four and a half years ago with all of these design principles in mind Giving folk a chance to get started and get started fast Our underlying aim is to be the simplest toolkit for building beautiful and usable native graphical applications for desktop and beyond And these are applications that you will write once and will be able to run on any device If you've not heard about the Find toolkit, which is understandable, especially if you've not been working with Go You can see here it has been growing faster than anything for Go before It's more popular than any of the competing projects out there And so if you're thinking about doing anything in this area, Find is absolutely where you want to be at Now I'm going to step you through a whole bunch of codes I hope most of it makes sense, but it will show you with a limited number of lines how you can get up and running super fast I've got a few images in here Apart from this one, all of the photos have come from Unsplash And I don't know if they're all truly Gophers, but I know this one is, he's called Gophie And if you've ever gone to a Go meet-up or conference, you'll have seen a ton of these around Most people have a collection of them, but he is mine and he supervises This time he's going to show us how to build a Hello World application Now if you're getting started for the first time on your computer, you will need a Go compiler They've just released, I think, 119, but we work back to 114 Mostly because it supports some older devices and it's in all the Linux distributions by default And we're working with graphics, so you're going to need a C compiler, I'm afraid If you're a developer and you're at an open source conference, there's a good chance you have all of this setup and running already It's just to be aware that some platforms have restrictions on how they build And you might need other tools available, but I will come back to what that means shortly So we can set up our first project I could live code this, but I'm just not that brave So you would create a directory for the appropriate name Go into it, call Go mod init in the name of your project And that's just setting up essentially a module file It's a new feature, but it allows us to keep track of our dependencies And then you go get find.io slash find slash v2 And that is you up and running And so now, assuming that Vim is your favourite text editor Others are available, I also recommend IDs, but they don't look so good on the command line We'll open our first Go file Now this should be pretty straightforward to follow We have our packages called main that's your entry point for any Go program We're importing the app and widget sub packages from the find project And the main function is all that we need to create We're starting a new application, assigning it to the variable a We're opening a new window We're calling it hello This might be displayed on a title bar or some window decorations depending on your operating systems It's a good one to get right And then we're setting the content of the window Pretty straightforward here, we're creating a new label widget And we're saying hello find And then we're calling the show and run method on window Which is just a little helper for window show and application run We can run this simply using the standard Go tools Go run and this project And you'll see perhaps unsurprisingly a window appears with hello find written in there The title bar would say what you asked it to But this window is very small because we're going to by default display Just the right size to fit the content when you're on the desktop system Because that's the way that things are typically set up So there we go, it's in a light theme Because as you can see the operating system is currently in light But it will adapt to your user configuration theme font size, those sorts of things So that was simple, straightforward The application will work on any device that you have the compiler for But our gopher expected more I don't imagine you came all the way up or down two or three flights of stairs To see how to write hello world Especially not if you want the air conditioning for another 25 minutes So instead I thought let's build a text editor I mean everybody's got to build a text editor right It's the first step towards building an IDE Is the ambition of surely any user interface developer And so we're going to put all of the code necessary to build this application And I'm going to do so in the next 10 minutes We'll start with something very familiar It's our main package, it's got an entry point called main We have similar imports This time we've not touched widgets yet But we are importing the root package The one that looks like it's called v2 But that's just a versioning semantic The package is actually called fine as you can see in the path before it And so we're creating an app This time we're setting the window to be called text edit Because I am just feeling that uniquely inspired We're creating user interface in a function that we've not defined yet Called make UI And we're assigning it to the UI variable and passing that into set content Nothing to see here really The big change in this function is that we're calling resize on the window With years of experience and reflecting We probably should have called that request resize or request size Because some operating systems like your mobile device are going to say Nope, it needs to be bigger or it needs to be smaller But in this case, we're going to ask for that size Because it feels about right for a text editor And these are device independent coordinates Sorry, dimensions And on a platform that won't resize to that size If you ask for huge and the screen's only so small It will do the best to adapt So let's look at the user interface itself Everything that you saw there was a standard widget And from the widget package that we used before The main area that we're editing We're going to create a variable called entry And it is a new multi-line entry I don't have prices to give away But somebody would probably get that that is an entry line That has multiple lines in it For the status bar at the bottom We've got two fields that we want to update The row and the column So we're creating two labels there They both have one as the default content And we're going to add a toolbar as well So we're going to create a function called build toolbar Probably wouldn't have got any prizes For getting what this is going to do either And here we're just simply returning a new toolbar Again from the standard widget package Each item in the toolbar is in action It has an icon and it has a function call And with go we can simply tell the name of the function And it will invoke that later So when the toolbar button is pressed The action invokes And we'll look at the details of some of those actions later And we're putting a little separator in there as well So that's perhaps a few lines more Than you would want on the Hello World But I think you can clearly see that each line of this Is doing one thing and it's doing it quite clearly And that's how we're aiming to keep the API clean And simple for the entire toolkit So to complete the definition of this user interface We need to build a layout And this comes in two parts So our status bar at the bottom is an independent layout It wants to flow horizontally along We're using an H box, a horizontal box Which is designed to pack the widgets tightly together But of equal height so we get a nice uniform feel So we're creating some anonymous labels here Because we don't need to interact with them We're saying cursor row is then the label for cursor row And the column is going to be that label that we created earlier For representing the column And then lastly we use what is probably the most powerful And sometimes overlooked container and layout for fine And that is the border So we can set items around the edges And then something in the center The label bar at the top The status bar at the bottom We have nothing left and right And because Go doesn't really do name parameters to construct We just pass nil And then we pass a new scroll for the entry And that's going to mean that the content can be scrolled And as I look at it I think Ah, but we put scrolling into the multi-line entry Only in the last release So this code is out of date And we could have just passed that multi-line entry widget And you run it and you get this It's something that looks like a working text editor And I did in fact work This is, right, this is a working text editor Into the multi-line entry there You can see the cursor row and column Haven't been updated And that's not a surprise we haven't wired them up But it looks like an application that we designed earlier And running on our Mac This is probably what you would expect But then I thought, well, let me put it on my iPhone With no changes to the code And just on a platform that Apple has agreed Is licensed to install onto an iOS device Because sometimes people own the platforms That you want to deploy to We were able to build that application and install it And I'll show you how to do that shortly as well But there you go, that's the same UI Adapted, as you would expect To a different modality of device But what about that data? It technically works But it's not going to really be a functional application Until we're able to work with files on the system Now there's a fair bit of code in here And I don't really want to step into the details of it Especially if you're not avid Go developers want me to justify Why I've taken a certain path But what you can see Is the first section there Is opening a dialogue, is this file Sorry, it's a show file open call So it's going to create a file open dialogue And show it The function that we pass in Is a callback for when the user has finished interacting So we check that there was no error Occurred in opening the file that the user requested It can happen So we would then use another help or show error In the dialogue package, which is going to Again, no prizes Show an error to the user If there was no error, we'll continue But if there was no reader The user could have cancelled it, changed their mind So we need to make sure that we're not forcing them To open a file So we can return there if nothing has happened The rest of it is just a little bit of go code That's reading all the data from a stream If there is no error doing so We will make sure to close it because we're done But we're just setting the text By the string representation of the data that was read I'm not going to go into that But as you can see, it's fairly straightforward And we're going to save the URI The resource identifier for the file that we opened for later And if anything went wrong, we'll show another error Because we're not doing Particularly sophisticated error handling here Pretty straightforward opening in general Save as, kind of the same but inverse We take the content of the widgets Which is entry.txt And we write that out to a file that the user has requested And then we have save, which is just a small Improvement over save as Because like I showed before, we were remembering The URI of the file that we opened And saved URI So we're just going to try and write the data out To that same location again Of course, if any error has happened, we'll show an error dialogue Now, this is going to result in a file dialogue Such as this, this is the fine provided fallback We don't have a platform-specific dialogue That we think we should be opening And it's particularly functional The users can browse their files and pick something to open and save Now, you might be thinking, goodness, that was a strange amount of work To go and just read a file I've used fopen in the past, for example But we're doing this for a reason Because file systems are actually a fairly rigid definition And not necessarily present on every operating system Your phone may have a file system But when you write an app for it, you're not really getting access To all of that data in the traditional format So the approach that we took using URIs Instead of file paths Means that we can interact with data That's been selected by the user That might not be a file system So the same app on my iPhone When I say open a file I'm going into iOS's native picker And it's allowing me to choose files on the file system Or on my cloud drive And in the same way, you can ask for data Or be passed it from another application So I could be interacting with a file In my Dropbox app That's been temporarily made available to the application So once again, we're just solving complicated challenges Before you realize that they're going to be a problem for you And lastly, let's just wire up the callbacks there So we want to update the cursor row and column We create a little function called update status Which does that It sets the text for each of those labels And the text is just an integer to string conversion From properties on the entry It knows where the cursor is And apart from being zero indexed It's pretty simply just copying the data into the user interface And when the user has changed their cursor There is an uncursor changed callback So you'll find many widgets have on something And you can set functions in there To be executed when these events occur All of this is completely thread safe as well We haven't mentioned threading once And you really don't need to All of this is going to work And you can then add your own background Handling or complex things Happening alongside the user interface And one last thing I really wanted to add to this application To make it feel complete The title bar should clearly show an asterisk If you're editing a file and you haven't saved it In the future you might wire that into a Don't exit, don't close the window Are you sure here's an opportunity to save But we don't want to be using global variables And saving state and interacting with it So we've introduced data binding So this is like a piece of a variable in memory That you then can monitor for changes And passing around the handle Different parts of the application can respond So we set up a new boolean A true or false state with binding And in our main method underneath the code But before we run the application We've added this listener It's just a simple anonymous data listener That's going to say what is the current value And if this has been edited Because that's the state we're representing We'll put a little asterisk at the name At the end of the title for our title bar That's all the setup we need in the place that owns How the window is presented We have the code that manages it And in the state of the application Where we're actually making changes And reading data, we can set the value Of this data binding So if somebody changes something The on change is called We set true into the data binding And when they save, we set false We don't need to know that the window Is responding to that event We just pass that new data And so there we have it Our complete text editor application All of this running completely On any platform that you choose We're done We added a question mark The asterisk went on But we could have done more Time is a little limited So I'm not going to just go ahead And do this right now But we could have put a main menu in there It's similar to toolbars You pass some metadata in Some actions And it will populate on a macOS It will appear right at the top As part of the native bar Of the systems It will appear in the window And on a mobile There's what's called the burger bun I guess Pops in from the side It's doing the right thing for the platform We could set up a system tray menu Maybe overkill this case But it could be useful If you want to see more About what the toolkit can do And all of the widgets available Rather than have me slide show all of them You can check it out There's a fine demo application As part of the repository And if you've done the prerequisites You can install that line there Which is in the slide Which is shared I'm not going to read it out For the folk at home Now I said this was easy To get out there And put on any devices So let's just touch briefly On the testing and distribution Of these applications I think these are gophers And they're clearly sharing something So we're good I mentioned at the beginning That Go has unit testing baked right in This is hugely beneficial To the robustness of the software That it creates And we thought it needs to be embraced In the user interface as well And so next time Somebody says Well the test coverage is low there Because it's a graphical user interface You can say whoa Let's just put that assumption aside And think are we using the right tools Because building with Appropriate technologies and techniques We can have unit testing baked right into Everything that we build At the front end as well Now there's some Boiler plate here Which is setting up a unit test in Go We have a Some imports up there I like to use Testifies a cert package Because the built-in one feels a little bit Weak But other than that It's a standard unit test with no add-ons We have a method called TestTextSelectIt So any function In a code package That starts with test And takes a parameter of the testing.t Which is a context For test handling again It's a little boiler platey But it's pretty easy to learn Basically the only thing you need to know To make a unit test So we're going to test that the text Is selected appropriately So we're creating An entry widget This would probably be part of the application A variable that you've saved into the state Like we did before But here we're just setting it For a simple standalone test And we have a test package And fine That helps to simulate certain user input If you're wanting to Have it appear that the user took actions Rather than do it all in literal code And so we're having it type The word hello into the entry Then we can use the assert package To check that the text of the entry Is in fact the text hello No surprises there That's probably going to pass But then we can do a little bit more We can say well The user is now going to double tap on the entry What's going to happen here The text should be selected Because they've indicated That they want the current word And so then we say Is the selected text Now hello And it is if the test is passing And we can also check that the cursor Moved on to the end of the word By checking that five is now the cursor column Now that might not seem fundamentally huge But it's clearly validating certain behaviors That we might just have coded into This entry widget What's really important is that this text Test can be run using the same Go standard tools We've edited our test file And we've run it with Go test Really straightforward Now if anybody's been building user interfaces With the web or other technologies Where you have a test driver It loads the application And takes control of your mouse and keyboard And you sit there while somebody Freakishly fast Moves around your screen You'll be reassured to know That this is completely running in memory There's no user interface popping up There is nothing that's taking control of your screen This knows how things should work How they should render But it doesn't need to present it to you We have a driver in there That is going to run what is called headless The application runs completely But in memory You can take snapshots of the state If it's important to your testing But you don't need to relinquish control Of your computer Now let's get into packaging and distribution So we have a helpful tool called fine It's in addition to the library It's a little command line tool That you can install And that's just the parameters there For getting the latest version of it And if you're using fine And building your applications over time Do keep this up to date That can be very helpful sometimes New functionality might need The helper tool up to date As well as the library Now we're going to run fine package Now we've run the code already It's appeared on screen And we've had a window But it might not look like An application that you're familiar with Because it's essentially running A command line tool like any other Go application might be Fine package on the other hand Is going to create an application bundle Or whatever is appropriate For your operating system So that you can drag and drop icons Double click them And it has all of the metadata That you would expect By default that's working For the current operating system If you want to build for somebody else's Then just specify the operating system You're targeting Because fine, because Go Understands all of these Different compiling targets Most of this is completely automatic Most of this is completely automatic And so here we could Build a Linux bundle instead That's probably going to be a target With all of the metadata appropriate To install onto a computer But if you're just doing it for yourself Packaging, yeah, I mean it's nice But then I have to go and drag it And do something So we added a command called install And so if you call install It's just going to take the application Bundle it and then put it Into the right place for your OS Which here on my Mac It is put it into the applications folder I did this with fine settings So then if I search set It's going to find the application You can see the metadata and the version Icon and so forth is present With my iOS device plugged in And appropriate Apple certificate signed I can do exactly the same for my iPhone I just install dash OS iOS And it's going to push that down the cable Onto my device And here you can broadly See that there is a group of apps Called fine that has got a bunch Of my favorite applications And they've all just been coded In exactly the way that you've seen before The metadata is bundled The app is something that iOS understands Natively and it's going to install Like any other application Now I mentioned most of this Happens automatically and earlier I mentioned that C compilers are Required to connect to graphic stack And if you want to build for iOS you need X code And if you want to build for Android You need the Android SDK setup If that sounds a little bit difficult But you're quite happy to have Docker installed Then we have a containerized solution As well called fine cross That was very generously donated to the community By one of our team And that is going to have Essentially the same commands But instead of looking at local tools It's going to download an image Run it in a Docker instance It's going to take your code Mount it into the developer tools Container Do the work Put your application back onto your file system And shut it down So you don't have to manage the installs But you get the same benefit So it's worth looking at if you're not so familiar With managing compilers and versions And so forth Distribution is a little bit more complex The package that I just showed you Can be shared with your friends It can be copied onto other computers It's relocatable and independent In the way that a single binary application From go is as well But sometimes you want to work with Who don't know what to do with that icon Or you might want to have it on the store So here we're looking at How would we then set up an application For release I'm demonstrating that sometimes There's a little bit more metadata needed Such as an app ID If we're sending this out to Windows Or Mac OS or iOS They need a little bit more metadata That they can use to uniquely Identify your software When it goes into the store So we pass that into the release command Which is often going to generate Something similar to package But with a little bit more data Perhaps a different format structure Certification It's just going to do the right thing On iOS we can do exactly that But we need to say Apple has given me this certificate This is the profile that's been set up To allow me to distribute I'm not going to go into What either of those things mean Suffice to say there's documentation And if you're getting into Building and shipping onto iOS You will be able to find lots about it And that will mean something By the time you get there On Android we could do the same We just need to tell it where our password was stored Some of these things are repetitive Potentially the command line arguments Would lead to issues When being replicated again and again So we added a file format here A little toml file called find app And so you can store these Put it into your repository And it means that these then Become optional parameters That you could override Or you can just omit completely And then your build number Will just get incremented by the tooling as well To help you out just a little bit With the release process Finance in the world Sorry, I find him very intense there Gets me motivated to show All of the amazing things that people Have been doing with fine Sadly I can't show you everything That people have been doing with fine There's too much Which is an amazing problem But none the less we have to live with App.find.io is the place to go For a showcase of all of the open source Apps that are currently known And people want to share There's a selection of some here We have a file sharing secure platform Up on the top left Bottom left It's one of my favourites actually It's a little medical imaging viewer This is running on a raspberry pi And a $50 touchscreen off Amazon But you wouldn't know it From the performance that you get From something that's built natively From the ground up to be Efficient in this way So that's pretty cool A music player in the centre there By one of our collaborator Core contributor sorry Which I just completely love the look of And somebody contributed to Gordle A wordle clone for go In case that wasn't quite fitting Into your pun mindset That's pretty cool actually So I got back into wordle After somebody contributed that Very faithful clone I think of the original Top right there There's a little version of the Text editor that I showed you today It's taken out the toolbar And the status bar So it's a little bit simpler But actually that entire application Is simply done with under 20 lines of code Because we understand markdown As a definition of rich text And so the two are connected With the data callback Much like I showed you before When somebody changes the text We parse the markdown So that's another great example In fact there's a seven minute Lightning talk of going from nothing To a markdown editor in the store At goforcon last year I believe And then I was working on a Cross-platform chat application With a cross-platform GUI technology And that is showing WhatsApp, Telegram, Discord All connected to one system That is going to, as you might guess Run on any device that you Choose to build it for I wouldn't recommend using that Every day it's a proof of concept QR code security systems And some improvements to be made Show that it's a technology preview really Of course this is just the stuff That's open source There's so much more right there In the wild People have been using this in production There are remote desktop companies That have used it as a streaming solution And so many more that I wish that I could go into But people get to keep this to themselves They build internal tools And they keep them there But true to being at LinuxCon In the open source summit We have a desktop environment It's called Find Desk Like I said Complete genius with naming And that has all the functionality You'd expect to manage your applications Menus and in the screenshot On the right there We also have an application For discovering these applications Built in fine as you might expect And it will allow you to install All of the applications That you can find on that website At the moment it requires developer tools Installed We're working on a binary distribution system For that And we have a terminal Any guesses on its name? Fine term Exactly Yeah, I named that one too A terminal emulator That's going to work on everything It may not be the most Elegant up-performance terminal in the world yet But it works on anything And so I wanted to build An SSH client So I put an SSH wrapper In between the user interface And the shell Packaged a login screen with it And it works on iOS and Android And it's available in the stores The terminal widget Is just another widget in fine It's not in the core repository It's in identitions But because Go Just allows you to import code From anywhere that's open source You say I would like a terminal in here And it's in your code with one line And you have a terminal Embedded in your user interface And up on the top left there I did actually get created with this one It's called FIN It's the fine login manager Occasionally these things You know they just come to you Anyway, I think that's probably An old version now But it's allowing you to have A fully fine experience From booting your graphics Through to your full desktop environment And there is an early days Linux distribution called FISHOS Spelled with a Y Okay, the story of that name Is probably a little bit older But it's aiming to have A Linux experience That doesn't rely on the presence Of the libraries for Qt Or GTK And all of their dependencies Because these are single binary Applications with no dependencies So we're pushing towards A really, really lightweight desktop But because we haven't Reimplemented your Wi-Fi Chooser and your file manager Yet there are still a few things That we're trying to get out of there But it's coming along nicely Thank you so much for your attention If you would like to know more Because there is plenty more You can go to our main documentation It's at developer.find.io Or we have a YouTube channel Which is full of getting started Tutorials And all sorts of random things That we've thrown in there That folks are enjoying And we have an annual conference That's been online until this year And we put all of our videos up there As well so you can get to see The State of the Union over the years I did write a book Building cross-platform GUI applications With FINE It's available in many good bookstores I'm quite surprised But that's an opportunity there To step through from the very beginning All the way to distributing your applications In an awful lot more detail Than I was able to give you here Depending on your platform It will step through the installation steps There's appendices for managing Those build tools that I completely Glossed over today Which will be helpful if you're getting started For the very first time There was a precursor to this book Which was looking at all of the different ways You can build Graph Collapse with GO I wrote that one too And you might not be surprised to say that To find that I found that Our platform was the easiest to use So you can skip over that one But if you're looking for a comparison About Qt, GTK and other Go specific technologies There's another book out there We absolutely would love more contributions People getting involved in the community However it is Just come along The main project is at that URL On GitHub All of our websites are open source On projects on GitHub We have contributors From all over the world I think 120 people so far Are getting involved One more is always a big deal And we're loving contributions Of code, new tests That keep us honest For a graphical platform We're pretty proud to have a test Coverage of about 68% Which is pretty great Considering the low level stuff that we're doing I wish it could be higher And it will over time But it's getting there Design, documentation Anything you think you can contribute In fact at the moment We're working on the next release Which has a graphic designer Influenced design improvements So the stuff I've showed you Is older It's current But it's a little out of date We're going to release that In a few weeks Or within the next month or so It still looks very similar But it's polished And looks honestly Like somebody designed it Everything to this date Has been material design With some engineer tweaks And over time That gets worse Not better As I'm sure you can imagine Oh sorry We also do have plenty of channels Pick your favourite server essentially We're on the Gophers Slack On the Gophers Discord We have our own Discord server Linked from the website And from the Gophers one I believe we're on Matrix But you might need to ping me If you want an answer on that one Because it's a little quiet And last of all Please do consider Either sponsoring us yourselves Telling your work Or your friends About the great work we're doing When people see how much time And angst can be removed Or made more effective, efficient And just happier Using these tools They love to feed But love to give back Of course sponsorship makes it all possible And so do your contributions We love everybody in the community And it's such a nice place to be We see folk building their first graphical app We see folk building their first piece of software Wherever they come in They have a chat and they are Well the conversations that you're part of When somebody says I've never coded before And I've got a phone app running I was only doing this for two days It's amazing to see those things Do consider being part of the community Or reach out to me directly I'd be happy to take your questions Thoughts, all of these things But thank you so much for your attention And enjoy the rest of OSS Summit as well If I don't get a chance to speak to you Thank you Yeah please So do you have So there's lots of widgets there What's the situation if There isn't a widget that does what you need? Right, yeah absolutely So there's a good chance There isn't because there's all sorts of things That people are dreaming of doing The standard widget package should Capture the basics There's all sorts of different Inputs, manipulators Ways to lay out your user interface I recommend having a look at that Find demo app if you're curious We also have an extensions repository That the community have contributed to Which is easier to put things into But doesn't necessarily have the same Production level code guarantees And that has things like the A map widget, graphing capabilities I can't remember if the terminal is in there Or if it's a third party repository But actually the terminal is one of those examples Where I just decided it would be A really helpful thing to do And you can build any widget that you want Out of canvas primitives Which I didn't really speak about today But all of those widgets are built Using a public API that you can use To build your own Underlying the entire thing is a separate package Called canvas And that defines things like your text Lines, boxes, gradients Anything that should be All that you need to build any widget And a piece of code that fulfills An interface definition of widget Is a widget And that simply says I am a canvas object Which is the base level I could be drawn By the fine toolkit And here's my renderer Because we encourage the separation Of state and rendering Which is why you have a clean API on a widget But a complex potential setup For how it would be displayed So you put your canvas manipulation code Into the renderer And your widget state into the widget object And then you use it like anything else So instead of widget.newLabel You would say my awesome widget package Dot fantastic widget And then that gets dropped straight Into your user interface like anything else And it will lay out according to the same rules And you can customize A widget can say how big it must be But beyond that the context it's in Is going to be told hey you can fill this space So yeah, there is actually nothing That can't be done in your own code That I've shown on screen If you get into the depths You might find some private packages But they are purely optimizations Ways that we have avoided duplication Of code in the system It's not because there's certain Things you can't do Thanks Well I think I'm probably Standing between you and lunch then Have a fantastic rest of the day Thanks so much


So welcome everybody to today's webinar called Open Source Software and Open Data for Integrated Water Resources Management. My name is Leneke Knope and I'm from the Water Channel and this is the first webinar in a series of IHG Delft alumni online seminars organized in cooperation with the Water Channel. So very warm welcome to all IHG Delft alumni and as the webinar is open to all we also very much welcome our partners, professionals and everybody who is already inside. Before introducing and handing over to the speaker which is Hans von der Kost today I would like to mention that we are in an interactive webinar room. So on your right bottom corner you see a chat box and this chat box can be used for two things. So I would like to invite you to mention your name, your expertise and your organization so that we have an idea of who is in this room and secondly you can post your questions in this chat box throughout the whole webinar. So we will collect the questions during the webinar and then we post them to the presenter after his presentation then the questions will be addressed at that point. So today we are very happy to have Hans von der Kost and Hans is going to tell us a bit more about open data, the use of it and the importance of open data for organizations working in the water sector. Hans finished his PhD at Utrecht University already quite some time ago in which remote sensing was central to his research and after that he went to the Flemish Institute for Technological Research. He carried out more research on spatial, dynamical, environmental modeling and currently Hans is a senior lecturer at IHE Delft in Eco-Hydrological Modeling. Hans will also ask you a few questions during his presentation in which you are encouraged to participate. These will be poll questions. So that's it for my side. Let's start and enjoy the webinar. Hans, I'm handing over to you. Thank you. So I would like to thank the water channel and IHE Delft and alumni officer to give me this opportunity to present about my work on open source software, open data for integrated water resources management. So let's get started. First of all, yeah, we see this road here and as being in the Netherlands in the Institute we have students that use a lot of bicycles and especially old bicycle and we know that with an old bicycle we can reach the valley which we see on the picture but we are not sure with the breaks that are failing and the tires that are not good if we could face the challenges on the horizon, the mountains that we see. But we can be clever than just always using our old bicycle. We can also look around in the community and see if there are people with good parts that we can use to maybe combine it with our own knowledge on how a bicycle should work to create a super bicycle. Of course this metaphor is not related to bicycles and roads but it's related to the way we work. So the challenges on the horizon are in fact the main drivers that challenge our work in the water sector. It's climate change and population growth mainly and the different sectors have to deal with it and the problem is often that these sectors are not well connected. They don't share data and information in the best way and that is needed if we want to do integrated water resources management. So this presentation will be about how we can use open data and open source software and even open courseware to share better the knowledge that we have to deal with these drivers that affect the water sector. The first question is what does open exactly mean? Well by definition a piece of software or data or information or even a course can be called open if anyone is free to use it but also reuse it and redistribute it and you can only put two restrictions to it. You can give the requirement to attribute to the person who originally created the code or the software or the data or to share it alike. Share alike is a type of license where if you give that license to your product it means that everybody has to put the same license on it so people can use it and reuse it do whatever they want but they also have to give it open away to others to also reuse it again. And then it also we often deal with publicly funded data that is funded through our projects or funded by governments and we need to think about how we offer that data back to the society who in fact paid for it. So publicly funded data are public good and they are produced in the interest of the public and should be freely available to a maximum extent possible. Of course we can argue about how this would work and I hope this presentation will help you to understand that there are different ways to deal with sharing the data. So the first question I have for the audience is you will see a list of data types files and which ones if you download it from a portal cannot be considered as open data. So please use the interactive option on your screen to choose an answer. So is a shape file, PDF, an Excel sheet or GeoTiff which one can we not consider as open data. We see the answers coming in it's really nice to see it interactively and we see that most people give the right answer it's a PDF file. A PDF file is of course very nice and we can have maps in PDF format but the problem is we cannot reuse it so it does not apply to the definition. Well data in Excel sheet although Excel is not open source software but the data in it is in fact open if you can download it you just need to buy the software or have other software to open it. A shape file is open well not really an open format but can be read by all open source software and same for GeoTiff. So PDF is not the right way to share scientific data. It is a great way to share open access papers because then we don't need the data but the text and we can read it. Thank you for your participation this works great. So but what are the benefits then of open access it's all about not reinventing the wheel. So for organizations it is to more efficiently collected data and process it and reduce the duplicate efforts and for scientists they need a lot of data to feed their models and tools so if their data is more openly available we can link more data to our models and tools and give a better service to public administrations but also citizens and businesses. If we have more open data we can also have entrepreneurs and scientists working together to make new innovative products and apps. In this era of mobile apps there's a lot of opportunity for innovation through open data. There are lots of examples a few I will show. In the end it's also about the greater democratic accountability. If we make more transparent what data is collected with tax money and be more open about it even if the quality is sometimes not good enough then we can look for collaboration and projects to even increase the quality and to do better things with the data. And in the end we all want a better management of the environment so ultimately this would lead to better dealing with environmental issues and the drivers that I showed in the first slides. Why should water sector organizations and universities use open source open access? Well currently there's a lot of inequality and access to data and knowledge. As here at IHE a lot of lecturers work in capacity development projects abroad we face often challenges that students abroad cannot easily access the same journal papers that we read. The cost of education is often very high for software a lot of correct versions are used so that also introduces problems and especially the access to data from your own country is very difficult because the governments don't all are eager to open up the basic data that is needed to good integrated water resources management and develop the right tools for it. For the more it is the transparency on impact of your work so by opening up other people can see better what you do and if you are a public organization and a university then the best way to do it is through opening up your results to a wider audience. How does IHE DELF deal with open data or with the concept of open? Well our MSC thesis and PhD thesis are online accessible open access and with publications from me and my colleagues we try more and more to to have them also in open access journals where possible and we hope that funding organizations also promote that because it often comes at a cost but the cost of open access publications is for the authors and the organization of the author and not for the reader so it moves in fact the responsibility for paying to the authors and the organization while many more people can download the articles and do interesting things with it and learn more about environmental management. OpenCourseWare is another way that we deal with it. We have a website ocw.unihg.org where you can find all our OpenCourseWare courses. I have a few on open source GIS using QGIS and on data management for the water sector. The other thing that we work on is SDI spatial data infrastructures. I will talk more about that in this presentation and we have a DOPC 200 project to set up more and more of these spatial data infrastructures and also from different capacity development projects we set up more SDIs. Another thing you might have heard of is IATI. Some of our programs are implementing IATI. It's not yet for all projects that we have in the Institute but IATI is a way of in a standard way reporting your impact through the projects that you have in especially in AID projects. What we all like to do more and more is to promote the use of free and open source software which is called FOSS. It's also very important to acknowledge that our MSC and PhD participants but also people who join us in projects are the agents of change. If we give a good example here we hope that also this is taken up in the countries where we work and to have more like a global change on dealing with open data. Sometimes we encounter things that we think that are open but are not so PDF is an example but often when we publish papers we can read that the code is available upon a request from the authors and it was a nice discussion a few weeks ago on Twitter where a person responds to this phrase like okay but not everybody can make clear code and is it not the results that count for science and then the person who posted this also responded to it and I agree with her that well if you cannot replicate those results then the results in fact are maybe not so valuable and can be considered just as an anecdote so we need to do better our best to be transparent also if you write code to put it in open source languages and to make sure that other people can run it and verify your results. That's the only way that we can prevent all kinds of fake news hoaxes that we have to deal with nowadays so put your code on github and share it. That brings me to three examples that I want to show most attention will go to sharing of open data and then I'll touch in the end the open courseware and the business models behind it and free and open source software how it can be used. So spatial data infrastructures are called SDIs and in the 90s it was very popular to set up databases and repositories and clearing houses and people that I speak nowadays who were doing those kind of projects in the past they say ah that all didn't work and don't try it again but we live in a completely different era this is the era where everybody has or many people have a smartphone internet connection is very high the use of internet is more interactive like things that we do now in this online seminar so more and more people are used to working with interactive tools to the web and an SDI is therefore not just a simple database that we put somewhere but it is a whole infrastructure and it is used to discover the data we need to enable people to find the data so it's more like an interactive search engine with a catalog behind it people before they want to use the data they want to visualize it and play around with it before they decide to download it and people want to evaluate the quality which is put in a meta data I will explain what meta data is also in a bit and we also want that people have access to the data it can be access for free it can be access paid we can decide on that based on our business model and policies but we can access it also through different means like in the 90s we were quite limited but now it can be through web-based portals to apps and services on the mobile phone in the classroom so there are multiple ways to access the data now most of you might be familiar with GIS a GIS is a system about an information system containing of hardware and software that we used to deal with spatial data but eventually many people use this on their own desktop computer even in your own organization your department and when other people want your data these days they come with a USB stick and you get a copy the risk is that we get proliferation of versions and we don't know anymore who is the authority of the data and SDI changes this because we link many GIS's together that can be at a department level it can be in an organization can be in a water sector it can be in a country or it can be internationally the skill doesn't matter but it's a better way of managing your data I'm not strictly speaking only about open data but about better management and transfer of data between people who need to cooperate on the same data set so from the one of the first slides you saw that these sectors are often very much not cooperating with each other and through an SDI we can link them to to a central system and infrastructure where they can share the data with their own colleagues in their own sector or with other sectors so if we have health problems related to factor-borne diseases which are also related to water then they can get in touch to get the right data from the other departments that have data on on water for example if this data is shared more openly then entrepreneurs and researchers can use the data to develop added value products these can be mobile phone apps and models or decision support systems many governments don't have the money to have in-house development of models and tools and apps and decision support systems so by opening up their data it's the IT sector and the researchers that can take up this function and then in the end it is cheaper for the society because then the government can buy it back or have an agreement with the providers of these services and tools and it gets a wider use and paid added value services that are good for the whole economy it creates employment when we have a spatial data infrastructure we can also decide to to work in a broader way together so traditionally every project has its own website and tries to disseminate information but we can also put one up for a region or a river basin and share it among different actors in the region so here's an example from the MAMASA Sustainable Water Initiative in Kenya where we have such an infrastructure and that many actors can link to it also with their own GIS system that they have and they share not only data also metadata you can use it for sharing the documents for example your open access papers but also it's a social network where you can find out who does what in the region and get in touch with them and discuss the data sets so I don't say you have to work in a completely different way it is about working smarter and not harder and we can consider an SDI not just as a database as I said but as an infrastructure which is comparable with a road I can give you a very silly example if you want to go from your home to your work you use a road it's not you who constructed the road from your house to your work and if everybody does it becomes a mess it is a common investment from the tax money that we all pay that the government constructs roads or some companies constructed based on a group of people who want a road and then there are some rules to drive on the road for an SDI it is the same so the road does not determine that you have to drive on it with only a car you can use it in different ways the same for a spatial data infrastructure you can use it to in an efficient way move data from one place to the other and the rules are the open standards the standards that make it possible that we can share data through different means of use different applications or services and it's all about reuse to share data skills knowledge and the investments to do that and it's about learning from each other now for a second interactive question for you have you ever used open data from a web portal from your own country the question will come soon on the screen there it is and try to answer good to see already that many people have used open data from a web portal there's a few people who don't know if the data that they don't download it was indeed open that can happen of course so that also needs to be clear from the portal side great to have these answers thank you so it all sounds fantastic and great to do but we are not all doing it although i see that many people use open data but it's still not enough and like a road we also face some speed bumps that slow down this process so why don't we share it is because many gis users tend to develop their own data sets on their computers which become silos and they use their own software systems their own data structures their own file types and that makes it really difficult to to share the data with others they also don't know often that other people work in the same topic and need the same data so there's not much collaboration and we also know that nowadays the data collection cost the human resources are much higher than the cost of gis hardware and software so especially with open source software we can do a better job to reduce those costs and increase the fieldwork and the capacity to get data from the field so there are there's a lot of duplicate efforts going on now there are three reasons posted by the sdi handbook for africa from unica and the funny thing is these arguments are used by the same people so first of all there's a a priori suspicion to use data from others it can't be good it's from others especially if it's free if it's free it can't be good that's what people even say to me uh why is your software that you're using classes free is it is there something wrong with it so that's a bit the spirit that is there on the other hand these people they uh presume that their own institutions data is is of high quality but if they give it away other people will use it wrongly so they're scared of sharing it but the same people also fear that if they share it that people will find that the data is very poor and that it causes all kinds of problems that they use lose their face well in the next slide i will explain solutions for these kind of fears that people have about opening up their data but first um yeah one way to prevent it the classical way is to sell your data and then hope that people pay a lot and not many people will use it but what is uh in fact the value of data well it has not a very high value at the moment you collect it from the field especially if it's government or project data it's already paid for and uh when we add uh a validation to the data and we aggregate the data and we package it into products and services and models then we add value to the data and then you can ask more and more money and there are people willing to pay for the added value services i will give some nice examples later about that so in the ideal situation a public body uses the public money to collect the data provides it as open data and then the public and or private sector can add value and then users will be paying for for this and make interesting services and products to to add value even more value to the data in order to do so of course you cannot just open up your data that's not the easy process not at the country level but also not at an institutional level so you need to have a data policy and also link the data policy to a business model so there's some great data policies in countries also in Africa where here we have an example from Rwanda the national data revolution policy a great title and I really hope that that we succeed in that and in Europe for some years we have the inspired directive which is a law that says that all European countries need to share their data the government data and there are protocols for that so we need commitment from all the stakeholders it doesn't necessarily have to be open but you need to choose a proper license and you need a policy that is linked to a business model people also often forget that there's a cost for selling the data because if you want to sell data you need the administration to keep track of to who you sell it you need to do sales and marketing which has a cost you need to develop restriction you need to sue people who misuse the data so a lot of administrative costs that we forget and then the benefits are are quite large there are benefits for governments in the past also in the Netherlands one administration had to buy the data from another administration nowadays because the inspired directive these transactional costs are not existing anymore so we gain a lot of money or we save a lot of money on the transactional costs but also jobs are moving more and more towards using and adding value to this data so lots of jobs are created and as you know for many years we can freely download satellite images from NASA and I don't have the idea that United States get poor of it and we know that it gives a lot of benefits on development of nice tools and many of you use it and we use it also here in the classroom and for companies similar things they also have less transactional costs and more opportunities to create tools and services and they can also make money with that so it's good for the economy in the end to open up the data now people also with digital data don't always want to pay for the data I could have a poll question who of you listens to music that is not paid for or watches movies but that's a bit tricky because you might get sued but I know most of you are just downloading this from the internet but so there's a low willingness to pay and then creative people started Spotify and Netflix so you pay a little bit and you get access to a lot of things and by many people paying a little bit you have more access the other thing is that there is competition from what is already open so you can release your data at a cost but maybe it exists already openly a great example of that is open street map so the third question I want to ask the audience is have you ever used open street map data we have a lot of my students participating today there's a short course on open source GIS going on this week and they all played with with open street map so they know it so it gives maybe a little bit of bias but when I first asked the class if they know open street map then the response was very low so we see indeed that many people know it but also many people don't know it or didn't use it thank you for your answers now we can compare open street map with google maps for example now open street map is a community driven collection of of topographical data topographical maps made by the community well google has another business model and with google you get a nice service that many of us use to navigate but these are pictures and we pay with our privacy so if we look for a shoe shop for example then the next day in our gmail we get a lot of advertisements about shoe shops with open street map you don't get advertisements and it's communities working on on the mapping and this data is not just a picture we can download it into our GIS and use it further we do map atons and one of I will talk more about what it is later but in one of the map atons we mapped the Mara river basin in Kenya and here on the left on the picture you see older Kessie community in the Outback where Maasai live in their manyatas and if we compare with this comparison website the same area on google we say you see a gray square with no data and some copyright message so you can have some copyrighted data of a gray square on the left side the copyright is at all the users and it has a lot of data that we can use for further analysis or for humanitarian aid so we can do in fact the same but more data for many places available in open street map so you always need to compare now open street map have has some nice tools a very nice tool that it starts with if we want to do a map aton like the one we have tonight at IHE uh is many areas are empty there's forests or swamps where people don't live and during map atons we are going to map houses buildings and with map swipe a lot of users can use their smartphone from the public transport or while they're waiting for an airplane to help preparing a map aton so with map swipe you can look it up it's a free app it's also open source so the other apps are built on top of it University of Heidelberg is doing a lot on this we are asked users to to select a tile which has a house and all these this data is then collected and passed through to the humanitarian open street map task manager where we only give out tasks for mapping where there are settlements so it creates a settlement layer and when we do a map aton our participants get a tile and they will work on that tile to digitize it so here we see a tile that has been mapped quite extensively and even the change of our name is is there you see here a piece of delft that our alumni will recognize it's our building it's also highlighted here and everybody can edit and contribute to this map and I edited all the information on IHE delft and put our website and contact information also there so companies can also use this platform to distribute their information because more and more people use this open street map also in apps to navigate and do other nice things so tonight we have a mapping party it's I think already the fourth one that we organized here at IHE delft normally related to to the actual things happening in the world so this time we will map Bangladesh and Malawi a lot related to flooding so we provide drinks and pizzas and our participants enthusiastically map and often it is so popular that at the closing time of the building it's very hard to to get people again out of the building so I hope it will be fun again tonight and I hope when you are near that you can join or other or another time and we do this in cooperation with Red Cross who can use the data but we can also use the data as water people we need a lot of data to come up with solutions this is an example that in QGS an open source GIS that we are teaching at IHE delft that you can simply import the data from the net of the same area and get all the points lines and polygons this is not possible with with google maps it has an attribute table and we can do all kinds of analysis with this now you're not alone when you map in a mapathon there are lots of communities worldwide and here you see a map of all the open street map communities in Africa so if you're interested in this type of work and you want to do voluntary things on OpenStreetMap in your free time then yeah look for the community in your neighborhood and join the difference between orange and gray on this picture is just how you can access them so some are more accessible through social networks and others more by email or don't have a website so check them out now let's get back to the problems with sharing I always present this iceberg because the problem is not technical every hydroinformatics student here at IHE can implement the spatial data infrastructure that doesn't mean that it's used it's all about culture it's about people process and culture it's about changing behavior it's about people accepting it it's about dealing with resistance so that's what we try to do in our projects to deal with this iceberg and I don't only want to talk about problems so I pose a few solutions to the problem so solution one is that much data is not digitally available I could have put here a real picture from my work but I don't want to embarrass people but this is still what I encounter at departments that I visit and yeah the thing is that we need to digitize this data especially if we want to take care with disasters in an urgent manner then yeah we cannot simply look for the paper where the data is so but digitizing is not enough this is also not good to put it on a hard disk or a cd or a usb disk and put it in a cupboard because then we have a data nakumat nakumat is a supermarket in Kenya and like all supermarkets they want you to walk around and buy as much as possible so there's not much organization in the goods and services that you get there online shopping might be a easier way so the solution is that you organize it in sdi and you categorize it like an online shop solution number two is standardization you can only share and connect things when you use standards to share the data so we don't say that you have to buy new software that is confirming to this but it's about using the things that you already use but preferably open source but make sure it uses open standards to interface how a mobile phone connects to a web service with the map or how your gis package communicates with with the web with web services that's very important there's an organization that takes care of that that's the open geo spatial consortium and they maintain all the standards so i don't go into the technical details which i normally do in class but just that you know about it well interoperable standards so what well very important because that means you are looking here at the same data set very actual it is the cyclone worldwide cyclone data set where you see all the hurricanes in the world and their path and we can visualize it in different platforms because it's open data and using open standards so we can open it in qgis we can open it on our web page and feature it and we can visualize it in google earth which also supports these open standards so open standards are very useful for interoperability we can even simply view it on an app and ideally if many people use open standards we can connect so you can set up a spatial data infrastructure for your water sector organization at your institute level you can connect different institutes in a sector for example the water sector that's what we did in benin there we have the a national water infrastructure it's the system national the information so low at the end of my presentation you can find some links to the things that i presented and the water sector there is already using it to share the data and we need to to train more people in it and to create more awareness that that's more use so it can connect to a national sdi there are already continental ones for europe we have the inspire portal the national level in nedlands we have the the national portal for the nedlands and they all connect to this higher level ones so very useful solution number three is metadata very strange slide we see some beer bottles so if you are going to to a pub and if you like beers then you want to get your favorite brand of beer but when what happens if the bar keeper gives you a bottle without a label yeah well then you can taste it but maybe you're you're not sure still if it's the right beer that you want so you try another one and another one and after five beers it doesn't matter anymore if you have the one that you wanted so this is not the right way you have to try and try an error a lot and run into problems a better way is to do it with a bottle with a label so our alumni recognize my colleagues here on the terrace i was sitting of course at the place where we were taking the picture and here we are enjoying our favorite tusker beer in in kenya and we choose tusker because it has this label with the elephant it says us how much the bottle contains how many milliliters or centiliters the alcohol percentage it says us that we better not drive after drinking and should also not drink it when we are pregnant it gives us the ingredients and the expiry date based on all that information we decide to drink uh something from that bottle it's not the bottle telling us to drink well they try but the bottle can still fortunately not talk to us so the point of course is to translate this to your data meta data should clarify the terms of use of data and then it is the responsibility of the user to drink from the bottle and drive and get an accident so all these arguments of yeah users will do stupid things with our data it's nonsense if you just are clear in the meta data that the data is generated from a bachelor student or from a national water authority that makes a big difference and people can have more trust maybe in the data from the water authority there's much more metadata that you can add so like what is the projection the units how was the data created preferably link it to a paper or to a journal or sorry to a thesis so people can get more information and decide themselves if the data is useful or not so meta data is really the key now there are some challenges that we face especially in our work abroad that sometimes the internet connection is very low oh maybe the moderator can move the screen back thank you so internet bandwidth is an issue but of course it is improving through time a lot so more and more networks are being rolled out and the private sector is doing more for that so it is it is currently a serious problem but we hope in the future we can cope with it what we try is to make our websites to deal with sdi light and responsive to the platform another challenge is skills so setting up all these servers so we can help you with our projects to do that we can we also work with companies in the south to set up sdi's it companies and we we can also calculate the benefits and the costs of it and look at outsourcing we can help you with building the skills to to administer it to use it and and we can help with awareness for this so lots of opportunities what is not the right way forward is to have silos and projects so project-based sdi's look nice for the project but as we know these websites go into some hibernation after the project and nobody will use it anymore nobody is reachable so preferably like with our dupc 2 project we want to distribute the knowledge about sdi in in a region or a basin or a country and that many people connect to the system like with a road you don't want to share it only with your neighbors you also want that your visitors from a long way can use the road to reach your house so that's also part of being open not in a project silo it will close down after the project but have many people connecting and have local ownership very important and that everybody is responsible for keep it going on and in the end when you have more and more people interested also the cost is lower now the last few slides are about the other topic so the why choosing open source software so the sdi's that we built are completely based on open source software so you don't have any license costs the costs go into skills into trainings and workshops but not in the software it is because this open source software is is meant to work with other software in a in a good way so they have they're good in interoperability if you buy software from a proprietary company commercial they want to lock you into their software and you get the classic vendor lock in and this vendor lock in is very tricky because they want you to use more and more of your of their software and to sell more and more I can give many examples from the water sector fortunately in the Netherlands the towers went completely open source so all their models are open source and they also link very well to this sdi so also as the Netherlands we try to compete with with other companies and countries to make a difference to not sell our source code or our software but to work on yeah let's also the proprietary tools connect to our infrastructures and let more and more people use our tools because we are there to help you with projects and we earn our money more with projects than by selling software it's a willingness to pay how many clients do you have to to pay so we want to prevent a vendor lock in and we do that with the international standards now for you there are also great opportunities when you use open source software because it's based on a community and these communities are very nice to work with very open they help each other on the internet by posing questions and answers you don't have to call this company I'm stuck and normally when I have a GIS question and I call such company the question is too difficult and after two weeks they call me back and say do you already have the answer with open source software I never had it I always find somebody with a similar problem and and that really helps so you can participate actively in the community we can also help with development of the software packages so that's by contributing with our own projects and for companies in in all countries if it's Netherlands or or a country in Africa it doesn't matter it is an opportunity for innovation all the modules are that you need to connect it and you can do a lot of scientific innovation but also yeah create nice products for the market oh yeah there's a little link here but the presentation will be also distributed here are some myths about open source I can talk of course hours about it but you can read here some of these things but I'm also open to answer questions afterwards so we want to promote the use of open source software at IHE Delft FOSS software because license costs are often too high for our target group but we often get the argument back yeah so what we use a crack sorry it's not my in my interest that you use cracks and I know they are available but cracks are unethical to use and especially if you have an alternative that is as good as the as the expensive software and it is also that the cracked versions they come with all kind of risks and with viruses and they don't have all the functionality and where is that phone number that you can call when you have a question if you have a crack better not call it because you'll get sued and we also have the problem that campus licenses give a buyer so if we provide you some expensive software through a campus license at IHE Delft then you come back home and you can't afford it in some cases and then you will use a crack so there's also some bias that we give and where we have to work on for many software there are alternatives so if you use photoshop you might have a look at GIMP for ArcGIS use QGIS there's a open courseware for me on the internet you don't have to pay you just follow the course if you need help you you choose for a paid course or you ask for tailor made training and we get the experts together and for working with references you can work with mandalay instead of end note it's completely free and has all the functionality but the list is very long now getting back to open courseware you might find it a ridiculous idea to give all your courses for free to the to the outside world but I can tell you if you have a good business model you don't get poor of that it increases the equal access to the educational materials so if you look at my QGIS open coursework course that all the materials are there it has all the slides in youtube clips it has all the exercises results in youtube clips all the exercise data and the manuals are there but still people are coming for paid courses or we do tailor made trainings abroad so it's good marketing because people can see what we do but many people get stuck and need guidance so when we have paid courses we offer added value it's the same as for data it's all about added value with face-to-face contact we can answer dedicated questions we can offer certificates which are often important and please follow the news on friday we have some surprise on this friday on related to certificates there is extra materials that we give in the class and there is a that we can tailor it directly to the participants there's some economic theory this is the curve where we see on the y-axis the amount of participants you can also think about the amount of paying participants and here we see the price of the product so if it approaches zero we have of course our open courseware and if we go down the line we see here our online courses that are paid for it's in fact can be very similar to the open courseware so it's much not much investment but you need a bit more administration and you can provide certificates then there are short courses where people come to delft to learn more about the topic these are funded either by scholarships or or self-payers or their company pays they're very useful because we have face-to-face contact and you also get to learn the institute and other people around but you you're of course more willing to pay for that tailor made trainings that is of course very nice then we come to your organization or company and help you with tailoring the course to your needs you you request us the things and we we make the course together with you and then a very nice thing is if you want to do more than just that then you come here and spend 18 months like many of you alumni did following an msc so that's a bit the business model behind it so that was my last slide I see in the in the discussion a lot of questions posted so maybe we can have a q&a session for the the rest of the time and here on the last slide there are some examples of international sdis that are used and the ones that I mentioned from mama say from kenya and the national water information system in in benin so I hope you enjoyed it and I'll give the word back to the moderator hi Hans thank you very much for your very interesting presentation indeed we had quite some questions coming in through the chat book so I will not waste any time and immediately continue by starting with the first question the first question so I put them here on the left is from Adriano he asks is the progress towards open data and open software taking into account the challenges of low bandwidth or slow internet that researchers in many countries face could you share examples now you just said that there are no technical issues but that all has to do with the person so could you react to this question a bit more it's an interesting question and we have to deal a lot with it I don't think the solution is that we provide all the data also in those places on DVDs and USB sticks because then the data is frozen and we also do not stimulate that the local organizations and SMEs take up the problem because we facilitated too much it is a business opportunity in those countries to have the private sector taking up that people need internet it is almost like a necessary thing like food and water so what we can do is stimulate it and negotiate also with the private sector that's also what we do and make our tools light and compatible with the bandwidth that we have and in our workshops and sessions we always have a second and a third network available but that's as much as we can do but I have really good faith if we look at the curves I left it out of the presentation about how the internet connection grows in the different continents and countries then there's a very good hope for everybody that that it really increases in next years oh I can't hear you can you hear me so I have a second question this is from McDelary so she asks and it may be easy to validate and secure data from big companies but how does it apply on individual level how can we make sure that data from individual research is accurate and valid yeah that's also a question that often comes back and I hope it is like I see often not used as an excuse not to disseminate the data through portals so first of all what I said is needed you need to be very clear about the quality so other people if you give it out openly can help you to improve the quality of the data so they can find you know you worked on it maybe other people collected similar data and they can help develop projects but also the funding agencies can see it and our embassies and develop projects to do data validation and add more data to it there are also existing international platforms like with open street map where we have validators tonight there will also be validators around that will validate the data these are people who consider themselves a bit more expert in in the team and validate but essentially it is if the data is from an individual that is citizen data there we use the power of the masses and like with Wikipedia peer correction if it's about working for an organization then it's the responsibility and the policy of the organization to do the question at the quality control but also to communicate clearly about the quality yeah just more to say about it if I want to leave it like that yeah no thank you I had also put up the question of Benjamin which was very much related to this you answered that now you just mentioned the event of tonight and one of the questions from the participants was about tonight so maybe this is a good moment to explain a bit more on the map a song could you tell us a bit how it works and is everybody who is in enabled to join can you explain us something thank you for the question which corresponds with the letter that I just got under my eyes here from my colleague um indeed we have tonight the special event a map a ton we organize it quite often uh you can find the information on our website so ouchy un-itchy.org maybe somebody can post the the link and register for the event online so we know how many people we can expect so also to have enough food and drinks for you so you are free to come it's open to the outside world and there you will be one of the volunteers I have a colleague from a geo company here from Delft who always helps and makes a makes it a very nice session he moderates it and a lot of people joined the previous sessions so we help each other to map these parts of the world and the things that you learn in a map a ton are also how to apply this to your own area so hopefully after the map a ton you will also contribute to the project in in your free time the only thing you need to bring is a laptop charger for your laptop and a mouse if you are a special requirements for the laptop uh no you just need a web browser and you need to connect to the internet what is also interesting for guests from abroad who cannot come here is you can get in touch with me and I can share the tasks the task numbers from the map a ton that we are doing tonight so you can also help from abroad especially if you're from Bangladesh or Malawi it would be nice that yeah that you work probably the time zone is not so for Bangladesh a bit difficult but maybe you want to contribute then yeah get in touch with me and I will provide you the details thank you for that invitation then I have a new question so you showed us the map with the numbers and showing the economical benefits now related to that slide could you give some examples of jobs that open data creates and explain how that happens could you give us a bit more info on that yeah thank you for that question it all has to do with the value chain so opening up data which is paid by projects and the government in itself does not create much employment but to add value to this data can create employment so if you have an IT company or you are in science you can do much more with that data when more data is available a great example is an IT company from Kenya that I work with it's they will also assist tonight in the map and they gave yesterday a very nice lecture on how they use open data and sdi to do business and this company is yeah it's growing based on this principle of adding value to the data so what they do is make nice absent services for water companies not only Kenya but also in in other countries they work a lot for our projects that are funded by the european commission or the dutch ministry of foreign affairs and so you can see that by just opening up the data clever people who are educated in creating absent services can that those companies can increase and their impact can increase well that's for an SME but it's also for a university if you have more data you can have more research and you can attract more PSD students postdocs to do the job on projects and it increases the innovation power and the creativity so that's the way you make money and the Lansat project of NASA is really a big example there's a there's really good evidence that yeah USA didn't get poor of opening up that data thank you for that example thanks then one of the final questions I have and in the meantime there is nice music outside our windows if you hear that that's just our office so for me to ask like could you mention some more examples of the standards of sdis and then there was already some reaction going on in the chat box that would also like to hear from you if you can give some advice on this thank you also for the reaction that is a mark from a panda that I just mentioned so open standards in technically the ones from the open geospatial consortium ogc they are wms wcs etc that is for how different platforms communicate with each other so there are many of those standards so for example if a sensor in the field needs to communicate with the web you can make your own it tool for that but then if there are other sensors from other producers they cannot connect to the sensor network and your site if you all use the same standard so sensor enablement for the web that is one ogc standard then you can link more and more sensors to your network and your web service now mark mentions that is the dutch a data provider of open data where our service online service and it has a very nice plug-in for qgis you can now access more than seven and a half thousand open data sets including aerial photographs if you live in the Netherlands you can easily find aerial photographs of different dates find your house and but also elevation model the ahn version 350 centimeter resolution of the whole of the Netherlands well is that luxury and it's all open and free because of the inspire and also because the Netherlands wants to follow this open data movement and you can imagine if you have an elevation model of 50 centimeter resolution that a lot of nice things can be done so it's up to your creativity to come up with a service there's already a app in the Netherlands yeah but the problem is that people don't adapt easily they learn something I also at university in Utrecht I learned ArcGIS and the government here is using ArcGIS so it becomes a de facto standard and people think that it's good you pay a lot for it and it's good but if there's alternative alternative even with a user base of maybe millions like qgis which can offer the same then we have to work very hard to even overcompensate for for the paid software which everybody accepts that it's good so that is some work we have to do and also with google everybody is used to google nobody fears that their privacy is on the street we use gmail addresses but if I say set up an sdi and we put it in the cloud in the amazon cloud and everybody is in shock because you put your data in the cloud and then I ask okay you're from the ministry of water or water company and I see your email addresses it sold gmail so apparently you have no problem with it that google reach your company data so there's a lot of work to be done in explaining so therefore I'm very happy to have a presentation like this there's a lot of misconceptions and the behavior of people is very hard to change because people are just used to use what they want one final example is if you want to get a package of milk from the supermarket you can use your old bicycle or you can use your Porsche yeah and people prefer to use the Porsche to get the package of milk but it does not change the package of milk yeah so keep that in mind if we only had a Porsche thank you very much for this nice answer and all the information that you gave now I see there are still some questions coming in and some are quiet specific on certain topics I've also seen that Maria has shared your email address in the chat box so I would like to ask the participants if the some of your specific questions could be directed directly towards Hans then I would like to take the opportunity at this moment to thank you Hans very much for your presentation and the next presentation or the next webinar in this series will be done in the first week of December now the announcements will be shared on the watergennel.tv slash webinars where also the recordings are and at UNESCO IH sorry at IHG Delft also the announcements will be shared so for this thank you very much and we hope to see you soon thank you all everybody who is in the webinar room for all your questions and your active involvement during the poll questions as well thank you and we're looking forward to see you soon online