 So, okay, so good morning, everyone. My name is Patrick Fitzgerald, CEO of Required Magic. We do a whole bunch of different things, consulting, right software that sometimes doesn't work like we were all experienced on Thursday. I'm here to talk about Firebird, not necessarily its integration with, with LibreOffice, which is a great thing, but my experience with it. And I guess I was very surprised when I discovered it had been integrated. So let's just step through that. So, I mean, really, what's the database? That's going to be the first thing we'll talk about and why it's also great. What's in the base in the first place and where did Firebird come from? They're all related. And what's good about it? Well, it's not, it's not access. And I'll just step you through our use case and why I'm a fan of this particular database. And, yeah, race through that. Any questions, feel free to ask at any point and I'll try and get to them at the end. There's only 15 slides. So, in my experience, I zip through presentations. So what's the database? Well, it's not a big spreadsheet or kind of is. But if someone knows the definition of it, please tell the UK government because that was a massive news item over here in the UK where they had some automated process that was injecting millions of records, not thousands, well, let's just say hundreds of thousands of records and somehow they thought that the ultimate target for this was going to be a spreadsheet. And well, Excel ran out of capacity according to the contractors that built the system. And, yeah, so there are other ways to do things rather than spreadsheets, especially Excel spreadsheets. So what's in the base? In the base is something that I came across in the late 90s. Yes, I'm that old. I'm even older than that. I had a project that was working, we're building a job tracking system. I was a fan of Pascal and object Pascal at that point. So we bought the Borland Delphi Studio Enterprise, which luckily came with this thing called a SQL database, which I had heard of back those back in those days. Microsoft SQL was just starting out with Microsoft having worked with Sybase. Sybase started around the same time as Interbase Corporation started. But Sybase started with millions of dollars worth of venture capital, whereas Interbase was started as a garage startup. So what did this little database actually do? It was incredibly advanced for its time. It had multi-architecture. It ran on just about anything at that time. All written in C. It had API triggers. It had stored procedures. You could call external code, so you could have things that would write stuff directly to the file system if you wanted to. And of course, as I said, it came free with Delphi Enterprise, so we had a license for it, so why not started using it? And it's got a long history. The development started of this particular product started in 1984. And it's got some interesting facts associated with it. Now, apparently, it was designed as a targeting computer for the M1 tank, which now physicists in the audience please correct me, but it was built into the tank because of the targeting system would reset every time the gun was fired. And they had to come back up online immediately or as rapidly as possible and without any database corruption. Now, some people have speculated it was to keep track of the number of rounds fired by the gun, but I think it was actually more sophisticated than that. It would have been something such as some sort of radar readout or something for target sensing. And apparently, the gun would be fired and I would imagine it was just shock, the vibration would probably reset the computer. But I've also been told as an EMP pulse, an electromagnetic pulse that would just basically reset the computer every time the gun was fired because obviously it wasn't adequately shielded. Not sure if that's true, but that's what I've been told. So it was built to be highly reliable, which is the key takeaway. It's compact so the database will fit in a single file. It's accessed via a connection string by the client that's accessing it. The binary sits in three meg or back in those days that in three meg of RAM and three meg of displaces as well. So the entire installation is extremely compact and it builds databases that are highly resilient to power outages, any kind of failure of the infrastructure. It's almost guaranteed that the database will be intact. And that's more than I think can be said for a whole lot of other databases that I've used. Not naming any names, but I think probably a lot of us have gone through database recoveries with varying degrees of joy, shock, horror and tears. But this particular database, we've never had any problems with it. So what's, what's Firebird? And if that's in the base, what's Firebird? Well, there's a big, there's a big, a long, a long history, a little bit like Suzer actually in terms of the different ownerships of the company. And around at some point in the late 90s interface was acquired by Ashton Tate and then Ashton Tate was acquired by Borland and then Borland decided that they were going to spin the interface arm of the business out into a different company, take it public, open source it, do all the trendy things that Linux was just beginning to make possible popular in terms of the investment community. But in year 2000, the bubble burst, the venture capital funding collapsed, IPOs, public offerings of companies collapsed, it was a big problem. And that's partially because mixed up with the build up to year 2000 and possibly what might have happened, which was bringing in lots and lots of consulting dollars. The whole internet had been, as everyone thought, had been overhyped and a lot of companies had been raised and had burst and a lot of companies went down at that point. But for a little while, for a little while at least, the Interbase source code was open to on a repo. And so a bunch of developers, including the lead developers, resigned from Borland and resigned from Interbase Software Corporation as it was about to be, as was named. And basically took all the brains of the business away. And at the same time, they took a copy of the open licensed software, the source code. And they announced the birth of a new company called Firebird, a new project called Firebird in the sequel. And at that point, Interbase went back to closed source. You can still buy Interbase. It's a completely different product now. But Firebird was born from that point. It was just a small window where the source became available. The authors left and created something else new. And they released about six months later, version one of Firebird. And at that point, it supported Linux, Windows, Solaris and HP UX. So why is it so good? What's really good about it? Well, it's very good about it with embedded systems. If you look at the repos on just about any flavor of Raspberry Pi build, you'll see it's there. But it could potentially fit in smaller architectures than that. I guess it could be built. But really now, the smallest possible compute size realistically where you can run Linux fully is Raspberry Pi. I could be wrong there. If you need software that maybe you are delivering to a customer or to a device or as an architecture that you need a maintenance-free data store, you just need to keep your data in there, then Firebird is the perfect choice for it. SQLite is good, but I would say that given that it's designed as a single-user data store and database, whereas Firebird is from the very ground up is multi-user and allows concurrent access. Good for data collection, unattended systems, any other multi-user system where a bigger database, Postgres, MySQL, others, Oracle, whatever, Microsoft are overkill and you just don't want to put the licensing dollars into it or the maintenance into it. So something like a kiosk, a web kiosk would be perfect. And of course it's very good at not being Microsoft Access, which was something that we considered once. And I know other people have and regretted it. So our use case, back in the late 90s had a company called the Ocean Web Digital and we had a drop. We were thinking of a way to track the work we're doing for a number of customers. We were doing a lot of work with a variety of customers in fractions of a day. So we'd be working with a lot of small business and as their outsourced IT department. So I said about designing this system. I thought from the outset that it should be a CGI server that would deliver HTML to wherever people were logged on. So if an engineer was at a customer site, we could build something. We could build it then and there and the engineers could write notes into the job, into the work request or WIR as we call them. And everything would be the time taken to do the work would be tracked. And plus a desktop Windows app, it should say, for accounts that injects invoices into Sage accounts at the month of the end. So in that case it automated the billing process. So all the accountants or the bookkeeper had to press a button and invoices would just be spat out by Sage. So it lasted for about 10 years but it's beginning to need a refresh. We need to put more in it and really looking at that kind of level of code, which is not lines of codes, but each one of those little icons has probably several, you know, hundreds or dozens of lines of code in it. It became a bit of a nightmare. So complexity had taken over as just a fraction of the RD chart. So we came up with a solution called which we found in Django. And I'm not sure if anyone there has had experience with Django. It's a fantastic web front end, back end combination framework. And they had this little command called inspect DB. And what inspect DB would do is it would, you pointed at a database if you've got the driver for it. And Python, some guys had just developed the Python Firebird driver, which was integrated with Django. So I thought, let's take a look at this. Inspect DB looks into a database and creates all the Django models.py files, which for those that don't know Django, the models files are the exact field descriptions of every field and every table in an existing database. So that gave us the picture that we could work from as to what we needed to do to recreate what we needed, what we needed to recreate for the, to modernize the system. But the best thing was we didn't need to migrate data into a new database. We could just leave as is and upgrade it and it's still running version three Firebird at the moment. We can just migrate the client side or the website and keep the Windows accounting application untouched. So that still there has been seen an update for a very, very long time, like I'm talking a decade. And yeah, there's no migration, no new database infrastructure to build, nothing. And the result was something we called WaveSuite, which is this is about 10 years old and the CUI, I think. But it's still functional, still works, still billing customers and it's all, it works a treat and it's easily accessible and all the work you need to do is now in a Python framework that is modernized. So I'm coming to the close, close to the end of my time slot. In fact, I've gone past it. So that's my experience with it. I think Firebird Integration with Liberal Offices is a good thing. If anyone that has out there has got the knowledge behind how it came to be in Liberal Office, I don't know that. I haven't really looked into it, but it's a good thing. And it's already, if you're running Liberal Office, it's already on your machine. So you've already got a high performance database server sitting on your machine. So if you're a developer, if you're a project manager or anyone that's used to dealing with the client problems, you've already got a high performance database server on your machine and it's actively being developed. And it's good for all the reasons I've outlined. Patrick, you actually have 30 minutes so you don't need to rush. Oh, okay. I thought I was 15. No, you're good. Well, I've got 15 minutes for questions. Or I could do it all again a lot more slowly. There's any questions, feel free to ask. So that you had mentioned that the M1 tank. And so basically that it's to reset each round that goes out. Yeah, well, yeah, exactly. Well, now I don't know the, I don't think anyone really knows the history. There was, they were awarded a three and a half million dollar Department of Defense contract. There were rumors that it was not designed to monitoring cleaning systems or something like that. It was, there are rumors that it was actually to do with a development of a targeting computer for the M1 tank. Whether or not that's true, I don't think anyone's going to be able to disclose that with any level of truth because of all the, although, yeah, yeah, yeah. But so apparently, now I don't know. This is why I'm, you know, any physicists can let me know that an EMP pulse is something hugely, usually associated with nuclear weapons. Now, I know that they were, I know the US military had things such as nuclear tip rounds that, you know, in a, in a battlefield situation, like, you know, a nuclear war, then they could, they could use them with low yield. And maybe it was that, maybe it was for that. I don't know. But what I heard is that every, every year round would, would reset the computer. But if it's an EMP pulse, I don't know, you know, for some reason, it'll reset the computer. And that made it, that meant it had to be highly reliable. And I, and a lot of the things that are already built into, into interbase other things that people that other other databases started adding much later in their life. Life span. So, you know, it's not, it's not, it's definitely not the solution for everything, but, you know, as an embedded database that it's fantastic. Sounds interesting. I wouldn't, I would probably rule out the EMP for sure, because you have different. Yeah. And that, that, that wouldn't make sense. Yeah, well, it could be that there's some sort of, there's some, I don't know. And there might be some sort of electronic, electromagnetic wave that happens from firing a large caliber gun that only with the advent of computers inside tanks was ever noticed. And of course, computers inside tanks would have been a fairly recent use case, I'd say. Have you seen Russia's new tank? No. It's interesting. Okay. Well, but I mean, that's, it's way more advanced than Abrams is now. So, right. Well, that I think the Abrams was designed in the late 70s, wasn't it. So. Yeah, it's pretty old. Yeah. I think the history of, of how we got to the point where it was, you know, the multiple different ownerships of the company and the fact that there are a bunch of the developers left just kind of like what happened with them. Then my sequel guys left. And the community followed them. So Firebird has got a large community of very dedicated people. I guess I get much love and it's quite interesting that that it's now included in LibreOffice, but it's definitely a lot more complex, competent and and complete in features than what you'd expect from an open source desktop productivity package. I wonder if we should have asked Florian if he knows any details as to how and why it was included. We ask, is anyone in the audience know how Interbase came to be included into, into LibreOffice? Yes, that's a no. Could be on the chat. Where's the chat? What do you mean by included? I mean, it's embedded into the document. No, it's included in when you install LibreOffice. The first thing is the original inclusion was started one or two years ago or something like that and we had many problems and bug reports about stuff not working. So currently it's back into experimental modes. So you have to explicitly enable experimental features to use it because we thought that the migration from the old database or what is it? AHSQLDB, some Java database, I'm not expert in that. We had problems with migration stuff from people who wanted to migrate to Firebird from the old database and stuff was simply not working. I tried, I ported last month, I ported LibreOffice to Windows ARM 64 and I tried to build Firebird with it and well, it's a cross compilation and at least for me, after a second or third bug I encountered which was something with cross compilation, I simply dropped it currently. So I'm not sure if somebody else already has tried to build Firebird with Windows ARM 64. I mean, it's relatively new. Yeah, it's I mean, if there's a way to get out reach out to the Firebird SQL community that I've never actually seen in any references to them at any of the big events. So it could be that they might have already done it and maybe it's not shared or not shared in the right place or I just tried it for a few minutes and then I said, okay, after the second complaint from Configure, I said, okay, there's so many other stuff I have to port to get to LibreOffice running on this platform. I will just skip it because currently it's experimental anyway and the whole ARM 64 is an experimental build at this moment. I just was wondering what's the best way to build it because LibreOffice has like 10 or 15 patches to it and kind of large windows patch. So I said, okay, there's too much stuff to try to figure out what's going on there and I was just wondering what's going on. And I looked at the home page and couldn't find exactly build instructions. Maybe I was, I was, at least when I had a look in there, I didn't see anything just about foundation stuff and all the other stuff but software about. And so, so currently it's back to experimental. I don't know if somebody from the Firebird community would be interested in looking into stuff and help developing there but it's LibreOffice in basis. It's not well in highly development mode in LibreOffice because main target is definitely Ryta and Kalk. So there are not many people interested in base. It's one of those things that you try and talk to where you try and get Kalk to talk to different databases and a lot of times I've given up. That's probably because I haven't tried hard enough but to see it included, I think is a good thing. I've never got into HxDb at all because I was already using Firebird. So I'm not, I haven't done much with it. I haven't done much with Firebird for a long time but I just, yeah, I think it's a positive thing because it's a very mature code base. It's been around. It's very, very compact and very, and it should be a lot faster than access. Yes, as Peter has just mentioned in the chat. Yeah. So especially if you wanted to run it, of course, because it's a, you can build it or you can run the SQL, the Firebird SQL engine on a different server if you wanted to. And have, so you can build your database locally, take the file and drop it into your Firebird server and have your users access it that way. Because that's the other thing is the access to the database is a connection string username, password connection string and the connection string just specifies the database file. So there are two. Can we wrap it up so that we can go to the next talk? Sure. Okay. So yeah, I thought anyone wants to contact me about it. I'm not necessarily an expert in it, but I've had experience in it. So, yeah. Thank you very much. Next up will be Yoon, if I'm saying that correct. And he's going to be talking about marketing of LibreOffice in Japan. Looking forward to that.