We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Fun with Firebird

00:00

Formal Metadata

Title
Fun with Firebird
Title of Series
Number of Parts
45
Author
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
With 20 years of experience in Firebird, let me take you through it's history (rumours and fact) and the varying use-cases that we've discovered for it at my company, i-Layer over that time. It really is the battle-proven database that is compact, fast, extremely reliable, and now, installed as part of LibreOffice. From managing a company-wide CRM and work tracking system to an embedded database system that controls mass Linux roll-outs - it's the RDBMS that's got it all.
DatabaseArchitectureMultiplicationEnterprise architectureBinary fileEvent horizonCodePersonal area networkMIDISystem programmingData recoveryRoundingError messageSound effectCompact spaceString (computer science)Client (computing)SoftwareCASE <Informatik>INTEGRALRow (database)SpreadsheetProcess (computing)Interface (computing)Point (geometry)Hand fanNeuroinformatikMultiplication signNumberQuicksortMassChannel capacityDatabaseWritingDifferent (Kate Ryan album)Goodness of fitRelational databasePhysical systemTrailDegree (graph theory)Term (mathematics)BitArmString (computer science)Roundness (object)Client (computing)Pulse (signal processing)VibrationConnected spaceComputer filePower (physics)Data recoveryProjective planeFile systemEnterprise architectureObject PASCALCodeOpen sourceSoftware developerSingle-precision floating-point formatKey (cryptography)SpacetimeMiniDiscProcedural programmingProduct (business)Object (grammar)Pascal's triangleVirtualizationOSI modelSlide rulePresentation of a groupComputer animation
Open setInternetworkingSource codeQuantumSoftware maintenanceClient (computing)SoftwareSystem programmingMultiplicationExecution unitCASE <Informatik>Physical systemVideo trackingTrailBinary fileComputer-generated imageryWeb pageServer (computing)Office suiteProcess (computing)Human migrationTable (information)Data storage deviceInternetworkingDrop (liquid)Source codeDigitizingDatabaseSoftwareVariety (linguistics)MehrplatzsystemNumberResultantPhysical systemProjective planeFraction (mathematics)Computer architectureInteractive kioskWeb 2.0Perfect groupMusical ensembleWindowComputer fileSoftware repositoryAxiom of choiceDescriptive statisticsFreewareField (computer science)Table (information)Moment (mathematics)Revision controlCartesian coordinate systemBuildingAuthorizationPoint (geometry)Software developerSequelMultiplication signProduct (business)Complex (psychology)Front and back endsSoftware frameworkCombinational logicEndliche ModelltheorieHuman migrationClient (computing)Interface (computing)Software maintenanceComputer iconCodeComputer-generated imageryBitCASE <Informatik>Line (geometry)Server (computing)CodeProcess (computing)WebsiteLevel (video gaming)Flow separationWeb-DesignerComputer animation
MIDIPersonal identification numberVirtual machineDisintegrationSource codeInformationInformation managementResultantWaveSuite (music)DatabaseServer (computing)Software developerINTEGRALProjective planeGoodness of fitVirtual machineData managementClient (computing)Software frameworkClosed setOpen sourceMultiplication signOffice suiteComputer animation
System programmingString (computer science)DatabaseData recoveryError messageRoundingSound effectClient (computing)Execution unitInclusion mapMaxima and minimaMIDIComputer wormUniform resource nameLemma (mathematics)CNNGamma functionInternetworkingOpen setSource codePulse (signal processing)Compilation albumNeuroinformatikWindowDatabaseDifferent (Kate Ryan album)Video gameQuicksortWaveJava appletReal numberOffice suitePoint (geometry)CASE <Informatik>Arithmetic meanHuman migrationSequelSoftware developerInclusion mapDesign by contractPhysicistTraffic reportingLevel (video gaming)Software bugExistential quantificationAsynchronous Transfer ModeRoundness (object)Open sourcePhysical systemElectromagnetic radiationRight angleInterface (computing)Information securityArmBuildingNuclear spaceOnline chatComputer animation
Source codeInformationDisintegrationVirtual machineConnected spaceString (computer science)Online chatWindowPasswordEvent horizonComputer fileArm2 (number)Right angleDatabaseServer (computing)Multiplication signCapability Maturity ModelPosition operatorPatch (Unix)Moment (mathematics)Software developerBasis <Mathematik>SoftwareCodeAsynchronous Transfer ModeHome pageExpert systemConfiguration spaceComputing platformCAN busCalculusSource codeComputer animation
Transcript: English(auto-generated)
So, okay, so good morning, everyone. My name is Patrick Fitzgerald, CEO of Required Magic. We do a whole bunch of different things, consulting, write 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 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 gonna be the first thing we'll talk about and why it's all so 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 access.
And I'll just step you through our use case and why I'm a fan of this particular database. And we'll, 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 a database? Well, it's not a big spreadsheet, although it 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, for what, 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? Interface 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 ball and Delphi studio enterprise, which luckily came with this thing called a SQL database, which I had heard of back in those days,
Microsoft SQL was just starting out with Microsoft having worked with Sybase and 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 its 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 was free. It came free with the 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 it would, I would imagine it was just shock. The vibration would probably reset the computer, but I've also been told there's 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, sat in three meg of RAM and three meg of diskbases
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 could 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 come 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 Firebird then? If that's the interface, what's Firebird? Well, there's a big, a long history, a little bit like SUSE actually, in terms of the different ownerships of the company.
And around at some point in the late 90s, Interbase 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. That's partially because mixed up with the build up to year 2000 and possibly what might've happened which was bringing in lots and lots of consulting dollars,
the whole internet had been, as everyone thought, had been over-hyped and a lot of, 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 it 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 SQL. And at that point, Interbase went back to closed source. You can still buy Interbase there, it's a completely different product now.
But Firebird was born from that point. And 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
is realistically where you can run Linux fully is the Raspberry Pi. I could be wrong there. If you need a software that maybe you're 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 a perfect choice for it. SQLite is good, but I would say that given that it's not really, it's designed
as a single user data store or database, whereas Firebird is from the very ground up is a 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 wanna, A, 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 regretted it. So our use case, back in the late 90s,
had a company called Ocean Wave Digital and 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 the outsourced IT department. So I said about designing this system, thought from the outset that it should be a CGI server
that would deliver HTML to wherever people were logged on. So the customer, so if an engineer was at a customer site, we could build something, we could bill it then and there and the engineers could write notes into the job, into the work requests or WR as we call them. And everything would be,
the time taken to do the work would be tracked. And plus a desktop Windows app, I should say, for accounts that injects invoices into Sage accounts at the end. So in that case, it automated the billing process.
So all the accountants, all the bookkeepers press a button and invoices would just be spat out by Sage. But from 19, 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 hundreds of 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 ID 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 or that we could work from as to what we needed to do to recreate 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, it's running a 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's still there. It's 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 this is a UI, I think. But it's still functional, still works, it's 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 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 LibreOffice is a good thing. If anyone that has out there has got the, you know, the knowledge behind how it came to be in LibreOffice, 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 LibreOffice, 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 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. Oh, 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.
If there's any questions, feel free to ask. So, you had mentioned that the M1- Tank, yeah.
And so, basically that's to reset or well, each round that goes out. Yeah, well, no, well, yeah, exactly. Well, now I don't know the, I don't think anyone really knows the history. There 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 gonna be able to disclose that with any level of truth because of all the- Security aspects, yeah, sure.
Yeah, yeah, but so apparently, now I don't know, this is why I'm, any physicists can let me know that an EMP pulse is something that's hugely, usually associated with nuclear weapons. Now, I know that they were, I know the US military had things
such as nuclear-tipped rounds that in a battlefield situation like nuclear war, then 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 year around
would reset the computer. But if it's an EMP pulse, I don't know. For some reason, it'll reset the computer. And that meant it had to be highly reliable. And a lot of the things that are already built into interface are the things that other databases
started adding much later in their life's span. So, it's definitely not the solution for everything, but as an embedded database, it is fantastic. Sounds interesting.
I would probably rule out the EMP for sure because you have different- Yeah. And that wouldn't make sense. I mean, in my view, so. Yeah, well, it could be that there's some sort of, there's some, I don't know. 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. Yeah, okay. Well, but I mean, that's, it's way more advanced than the Abrams is now, so. Right. Well, that, I think the Abrams was designed in the late seventies, wasn't it?
So. Yeah, it's pretty old. Yeah. So yeah, I think the history of how we got to the point where it was, you know, the multiple different ownerships of the company
and the fact that 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.
They just don't get much love and it's quite interesting that it's now included in LibreOffice, but it's definitely a lot more competent and complete in features than what you'd expect from an open source desktop productivity package.
I wonder if, I probably should've asked Florian if he knows any details as to how and why it was included. We ask, does anyone in the audience know how Interbase came to be included 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, something like that. And we had many problems in back 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, what is it? HSQLDB, some Java database.
I'm not expert in that. We had problems with the migration stuff from people who wanted to migrate to Firebird from the old database and stuff was simply not working. Yeah, I mean, 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 the 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 a Firebird with Windows ARM 64. I mean, it's relatively new, so. 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've already done it and maybe it's not shared or not shared
in the right place or. Yeah, 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, and 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 homepage and couldn't find exactly build instructions. Maybe 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 currently it's, yeah, 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.
Main target is definitely writer and calc. So there are not many people interested in base. Yeah, it's one of those things that you try and talk to where you try and get the calc 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 just seeing it included, I think is a good thing. I've never got into H SQL DB at all because I was already using Firebird. So 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 it should be a lot faster than access as Peter's just mentioned in the chat.
So, especially if you wanted to run it, you could of course, because you can build it or you can run 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, if 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. Thanks, Peter. Next up will be Yoon if I'm saying that correct and he's gonna be talking about marketing of LibreOffice in Japan.
Looking forward to that.