WEBVTT
00:00:00.000 -->
00:00:03.040Hey, it's Jason, host of the Code with Jason podcast.
00:00:03.279 -->
00:00:04.160You're a developer.
00:00:04.320 -->
00:00:06.000You like to listen to podcasts.
00:00:06.080 -->
00:00:07.440You're listening to one right now.
00:00:07.679 -->
00:00:13.359Maybe you like to read blogs and subscribe to email newsletters and stuff like that.
00:00:13.599 -->
00:00:14.720Keep in touch.
00:00:15.839 -->
00:00:23.199Email newsletters are a really nice way to keep on top of what's going on in the programming world.
00:00:23.920 -->
00:00:26.559Except they're actually not.
00:00:26.960 -->
00:00:36.159I don't know about you, but the last thing that I want to do after a long day of staring at the screen is sit there and stare at the screen some more.
00:00:36.320 -->
00:00:40.000That's why I started a different kind of newsletter.
00:00:40.079 -->
00:00:43.439It's a snail mail programming newsletter.
00:00:43.679 -->
00:00:44.159That's right.
00:00:44.240 -->
00:00:51.359I send an actual envelope in the mail containing a paper newsletter that you can hold in your hands.
00:00:51.520 -->
00:00:59.039You can read it on your living room couch, at your kitchen table, in your bed, or in someone else's bed.
00:00:59.119 -->
00:01:01.920And when they say, What are you doing in my bed?
00:01:02.079 -->
00:01:04.560You can say, I'm reading Jason's newsletter.
00:01:04.640 -->
00:01:05.840What does it look like?
00:01:06.319 -->
00:01:12.400You might wonder what you might find in this snail mail programming newsletter.
00:01:12.640 -->
00:01:20.239You can read about all kinds of programming topics like object-oriented programming, testing, DevOps, AI.
00:01:20.400 -->
00:01:23.519Most of it's pretty technology agnostic.
00:01:23.920 -->
00:01:41.680You can also read about other non-programming topics like philosophy, evolutionary theory, business, marketing, economics, psychology, music, cooking, history, geology, language, culture, robotics, and farming.
00:01:42.000 -->
00:01:45.760The name of the newsletter is Nonsense Monthly.
00:01:46.319 -->
00:01:50.239Here's what some of my readers are saying about it.
00:01:50.640 -->
00:01:56.879Helmut Kobler from Los Angeles says, Thanks much for sending the newsletter.
00:01:57.040 -->
00:02:00.640I got it about a week ago and read it on my sofa.
00:02:00.799 -->
00:02:06.159It was a totally different experience than reading it on my computer or iPad.
00:02:06.400 -->
00:02:12.159It felt more relaxed, more meaningful, something special and out of the ordinary.
00:02:12.560 -->
00:02:18.639I'm sure that's what you were going for, so just wanted to let you know that you succeeded.
00:02:18.960 -->
00:02:20.479Looking forward to more.
00:02:21.599 -->
00:02:31.280Drew Bragg from Philadelphia says Nonsense Monthly is the only newsletter I deliberately set aside time to read.
00:02:31.520 -->
00:02:43.759I read a lot of great newsletters, but there's just something about receiving a piece of mail, physically opening it, and sitting down to read it on paper that is just so awesome.
00:02:44.240 -->
00:02:45.840Feels like a lost luxury.
00:02:47.120 -->
00:02:57.680Chris Sonnier from Dickinson, Texas, says just finished reading my first nonsense monthly snail mail newsletter and truly enjoyed it.
00:02:58.000 -->
00:03:02.719Something about holding a physical piece of paper that just feels good.
00:03:03.199 -->
00:03:04.159Thank you for this.
00:03:04.400 -->
00:03:05.919Can't wait for the next one.
00:03:06.319 -->
00:03:15.919Dear listener, if you would like to get letters in the mail from yours truly every month, you can go sign up at nonsense monthly dot com.
00:03:16.719 -->
00:03:19.840That's nonsensemonthly dot com.
00:03:20.560 -->
00:03:25.280I'll say it one more time nonsense monthly dot com.
00:03:26.240 -->
00:03:30.000And now without further ado, here is today's episode.
00:03:45.599 -->
00:03:49.919Hey, today I'm here with Mike Bowers, Chief Architect at Faircom.
00:03:50.159 -->
00:03:51.120Mike, welcome.
00:03:51.439 -->
00:03:52.000Thank you.
00:03:52.159 -->
00:03:53.280I'm glad to be here.
00:03:53.680 -->
00:03:55.759So tell us about yourself.
00:03:56.560 -->
00:04:06.159So I've been um doing software development for a long time since I was 14 years old, and uh professionally since I was um in college.
00:04:06.400 -->
00:04:11.039So that's that's way too long, over 40 years of programming.
00:04:11.280 -->
00:04:14.560Um and I've gone through a lot of things in my career.
00:04:14.639 -->
00:04:22.480I've gone, I started out doing uh front-end design um and then front-end development and then backend development.
00:04:22.639 -->
00:04:42.399I focused for a good 20 years of my career on database technologies, and um, and that's where Faircom found me because I presented it, I was a thought, I am a thought leader in the database space and presented at lots of conferences on the NoSQL movement and um SQL and how to bring different kinds of databases together.
00:04:42.639 -->
00:04:44.879And then Faircom is a database company.
00:04:44.959 -->
00:04:51.360So they recruited me to modernize um their ISAM database product, which we did.
00:04:51.519 -->
00:04:54.319We made it turned it into a JSON database.
00:04:54.560 -->
00:05:05.279At the same time, we found that the industrial IoT market um is very interested in JSON databases and integrating factories.
00:05:05.680 -->
00:05:23.120And so we kind of pivoted, or I kind of pivoted at Paracom to leading the company into the industrial IoT space to take our very fast database and combine it with an MQTT broker, the Google V8 JavaScript engine and an app server.
00:05:23.600 -->
00:05:53.600And um so when you combine a database, a JSON database, a broker, an MQTT broker, app server, and the V8 engine, you have a very powerful integration story that can integrate messages and JSON APIs and SQL database calls, JSON database, and then we added industrial protocols that are very strange things like Modbus and Siemens S7 and OPCUA, a lot of protocols.
00:05:53.839 -->
00:05:56.079And uh over the last six years we've been doing that.
00:05:56.160 -->
00:06:16.639We've developed an industrial IoT platform that can pretty much integrate an entire factory with point and click, which is amazing because I used to do that early in my career at Intel and at Motorola and um and agriculture and at Freightliner when it integrated factories.
00:06:16.879 -->
00:06:19.680And it's a ton of code, it's very expensive.
00:06:19.839 -->
00:06:29.759But today, using the Faircombe software, you can integrate a factory with point-click in a user interface and have the data flowing throughout the whole factory very easily.
00:06:30.079 -->
00:06:30.399Okay.
00:06:30.800 -->
00:06:34.879Um so I have to admit there was a lot there that I didn't understand.
00:06:35.120 -->
00:06:41.279So if we can kind of go back through it from the beginning, there's there's a lot that I'm curious about.
00:06:41.519 -->
00:06:47.920Um okay, so Faircom is a database company, I think you said that.
00:06:48.240 -->
00:06:48.639Yeah.
00:06:49.759 -->
00:06:53.759So tell me about that, because it's like uh database company.
00:06:54.000 -->
00:06:55.360We got Postgres QL.
00:06:55.439 -->
00:06:56.399Like, what more could you want?
00:06:56.480 -->
00:06:58.560Like, why do we need a database company?
00:06:59.120 -->
00:06:59.920Totally.
00:07:00.160 -->
00:07:08.319Um, well, databases before SQL, before Postgres or before Oracle, databases were actually ISAM.
00:07:08.480 -->
00:07:13.279It's a protocol IBM invented, it's and it stands for index sequential access method.
00:07:13.519 -->
00:07:20.000But it the point was it's um very low, very um low in the stack.
00:07:20.160 -->
00:07:28.319It's uh there's nothing between you and the data, which means you can get incredibly fast, way faster than anything else.
00:07:28.480 -->
00:07:35.920So Faircom's customers um have tested every other database in the world because everybody always wants to say, is there something better out there?
00:07:36.079 -->
00:07:45.600Because Faircom's been around for 46 years doing this database, and and so customers, every new what has been around for 46 years?
00:07:46.000 -->
00:07:49.519Faircom, the company, uh, and this Faircom technology.
00:07:49.600 -->
00:07:52.240And so it's embedded in everything.
00:07:52.399 -->
00:07:53.839Um you just don't know it.
00:07:53.920 -->
00:08:02.639It's like when you make a phone call on Verizon, you're talking, um, it's logging everything and tracking everything in real time in the Faircom database.
00:08:02.800 -->
00:08:20.959Every stock market transaction is tracked in the Faircom database, and that overnight, massive analytic jobs run on the Faircom database, and then the company that sells stock market analytics to all the investors in the world is their data for for that analysis from the Faircom database.
00:08:21.120 -->
00:08:27.680It's the only database fast enough to do the job because it's so bare metal, so low level.
00:08:28.319 -->
00:08:32.799But you we have to write C code to do all that, and no one wants to write C code anymore.
00:08:33.279 -->
00:08:36.000Okay, so sorry, I want to go even more fundamental.
00:08:36.159 -->
00:08:44.960Um you mentioned ISAM, that's the protocol that that this can can can you kind of say that again for me?
00:08:45.200 -->
00:08:47.600ISAM is a protocol for what exactly?
00:08:47.919 -->
00:09:02.080So it's a way of storing data, it's the way you store data, you store raw bytes in records, and then you can index them, and you can read you can walk the records in index order very quickly.
00:09:02.320 -->
00:09:06.159And so there's nothing between you and your data in a C program.
00:09:06.480 -->
00:09:12.720So you literally take your raw C data, throw it in a record, index it, and then walk it in.
00:09:13.039 -->
00:09:17.919You can index it with hundreds of indexes and walk it in index order incredibly fast.
00:09:18.320 -->
00:09:18.639Okay.
00:09:19.039 -->
00:09:25.600And and let me let me try to uh hook that into my existing knowledge somehow.
00:09:25.919 -->
00:09:29.600So I come from a world of relational databases.
00:09:29.759 -->
00:09:33.360Um, the vast majority of the time I'm using PostgreSQL.
00:09:33.600 -->
00:09:50.320Um and not everybody knows this, but um there are relational database products, but then behind that is relational theory, which is a product-independent um, I don't know, body of theory.
00:09:50.879 -->
00:10:14.799Um and all relational database products implement uh the relational model, although they all implement it uh uh uh not perfectly faithfully, and a lot of them implement it a bit different from the others, and so like from MySQL to PostgreSQL, you'll have some things that differ a little bit.
00:10:15.120 -->
00:10:19.120Anyway, um that's that's what I understand.
00:10:19.600 -->
00:10:23.039Uh I had never heard of ISAM before today.
00:10:23.279 -->
00:10:37.200And is ISAM kind of analogous to relational theory where it's kind of a technology independent um idea and and different products might implement it, or is it a different kind of idea?
00:10:37.840 -->
00:10:56.399So it predates relational theory, it's before all that, and it's very it's basically it's basically a low-level protocol to store data in records and and read them either straight out of the table directly or read them in index order.
00:10:56.879 -->
00:10:59.120So that's that's it's really simple.
00:10:59.200 -->
00:11:07.840And in fact, all the relational databases when they were created used ISAM as the underlying technology on which they're built.
00:11:08.159 -->
00:11:18.320So DB2, Oracle, um, Psybase, they all used ISAM under the hood because that is the quickest, fastest way to work with data.
00:11:18.480 -->
00:11:20.799Then they added the relational theory on top.
00:11:21.600 -->
00:11:31.039Faircom, we we continued whereas all the other database bidders hid ISAM inside um and then just expose the SQL.
00:11:31.279 -->
00:11:35.279Faircom continued to expose the ISAM and added SQL.
00:11:35.440 -->
00:11:41.440So the Faircom database is a SQL database, just like Postgres or Oracle or SQL Server.
00:11:41.679 -->
00:11:54.639Um but un but we also expose our lower level layer so that you when you need to get incredibly fast, way faster than SQL could ever go, you can go down to that layer and do it work at that level.
00:11:54.799 -->
00:12:00.720And of course, when you want the simplicity and the power of SQL with a relational model, you have that too.
00:12:01.120 -->
00:12:01.679Interesting.
00:12:01.840 -->
00:12:09.519Okay, so I I I'm gonna restate some things to check my understanding and maybe you can tell me if I have it right or not.
00:12:09.759 -->
00:12:14.960Um so the relational model is again technology independent.
00:12:15.279 -->
00:12:30.879Um it's in my understanding, the way I view it, um, it exists largely um for purposes of things like data integrity and data structuring and stuff like that.
00:12:31.120 -->
00:12:36.399It doesn't say anything about how to mechanically implement these things.
00:12:36.639 -->
00:12:43.279I guess theoretically, you could implement a relational database any way you want, using any technology you want.
00:12:43.519 -->
00:12:47.759You could implement a relational database using pen and paper, I think.
00:12:48.000 -->
00:12:57.600Um as long as you have like a person doing all the right things, following the right instructions and stuff like that.
00:12:57.759 -->
00:13:03.120Um, but to me, it sounds like ISAM is more the mechanical part of it.
00:13:03.600 -->
00:13:05.120Right, exactly.
00:13:05.279 -->
00:13:24.000It's the lower level engine, so that when when EFCOD created the Redditional Theory and tried to move off of the hierarchical databases on the mainframes to go to something more flexible, the Oracle picked that up and several other vendors picked that up and tried to say, okay, how are we going to implement this?
00:13:24.159 -->
00:13:32.799So they took the ISAM engine, which is which was the main the fastest data access layer on the market at the time, it still is.
00:13:33.039 -->
00:13:37.440And then they built relational models and SQL on top of that.
00:13:37.600 -->
00:13:44.639So you're right, the ISAM is the low-level mechanical bits and bytes flowing through to disk into memory.
00:13:44.960 -->
00:13:49.759And SQL is a higher logical layer that sits on top of all that.
00:13:50.240 -->
00:13:54.080And what makes Faircom different is that we have the SQL.
00:13:54.559 -->
00:14:00.240In fact, I'm on the ANSI, the ISO committee for international standardization of the SQL language.
00:14:00.480 -->
00:14:04.159Um, and so very much I love SQL and I love relational theory.
00:14:04.240 -->
00:14:06.799I'm a strong advocate for that.
00:14:07.200 -->
00:14:13.279And uh Vercom went and built the full SQL Indian, but they kept the ISEM exposed.
00:14:13.440 -->
00:14:25.759So bring the only product on the market that you can actually do all the beautiful SQL things, but when you need to go fast, you can go right down to the bare metal and still be compatible with SQL.
00:14:25.919 -->
00:14:27.600You can just bypass the layers.
00:14:27.679 -->
00:14:29.039There's so many layers in SQL.
00:14:29.200 -->
00:14:32.000You've got optimizers, you've got to parse the SQL statement.
00:14:32.159 -->
00:14:37.759There are there's a half a dozen layers between you and the data that slows all the data access down.
00:14:37.919 -->
00:14:45.600So when you need to get past all the SQL layers to get to the raw data to do very fast processing, VRCom lets you go there.
00:14:45.840 -->
00:14:46.480Hmm.
00:14:47.200 -->
00:14:51.519Okay, so maybe let's talk about that part a little bit.
00:14:51.679 -->
00:14:55.279Um SQL, I say SQL, not SQL.
00:14:55.440 -->
00:15:03.519Um which I seem to be in the great minority for saying that, but I've I've said it for so many years, I'm not gonna change now.
00:15:03.759 -->
00:15:07.759Um so that is kind of a uh layer of abstraction.
00:15:07.919 -->
00:15:13.600Um, you know, some people might say SQL is is hard to understand.
00:15:13.759 -->
00:15:25.840Um, I I guess I wouldn't argue with them if if they think think so, but in a sense, SQL is very easy to understand in the sense that it's much easier to understand than if you were to go way lower level.
00:15:25.919 -->
00:15:28.720Um SQL exists for humans.
00:15:28.960 -->
00:15:58.559Um and so because it's a layer of abstraction created uh uh solely for humans, um, there needs to be something that takes our SQL statements and translates them into something that is executable by the lower layers in the database system so that it actually can retrieve the data or perform the command or whatever.
00:15:58.720 -->
00:16:00.000Do I kind of have that right?
00:16:00.399 -->
00:16:02.159Totally, that's exactly right.
00:16:02.480 -->
00:16:30.320And um the one of the first things I did when I was hired by at by Faircom to be their chief architect was to go, we have the we have the SQL, we have this lower level engine that we expose where you can use an API, get get to the get to the you know, if you if you think a vehicle, uh SQL sort of like the vehicle, but there's an engine inside that vehicle, you know, and so most of the time you just your our interface is the steering wheel, the the pedals, and the gear shifter.
00:16:30.799 -->
00:16:38.639But what if what if you really needed to go down and be in the engine and tweak that engine to do things that the steering wheel couldn't do?
00:16:38.799 -->
00:16:44.480Well, it'd kind of be crazy to drive around like that, but you know, sitting on the engine playing with the engine.
00:16:44.559 -->
00:16:45.919But that's what you can do with Faircom.
00:16:46.159 -->
00:16:58.799You can you can live with the sequel and stay behind the steering wheel, or you can get right down into that engine and and go right into the pistons and tune that thing and make the make it sing and perform like nothing else.
00:16:59.120 -->
00:16:59.600Interesting.
00:17:00.000 -->
00:17:01.919May I offer another metaphor?
00:17:02.080 -->
00:17:07.200Um here here's what I think, and tell me if if this metaphor fits or not.
00:17:07.440 -->
00:17:18.960But most database management systems are a restaurant where you have to order off the menu, but with Faircom, you can actually go into the kitchen and mess with the the dish yourself.
00:17:19.359 -->
00:17:20.720I love that metaphor.
00:17:20.799 -->
00:17:21.599That's great.
00:17:22.000 -->
00:17:22.880That's perfect.
00:17:23.039 -->
00:17:23.519Yeah.
00:17:23.920 -->
00:17:24.960Okay, interesting.
00:17:25.119 -->
00:17:29.279And yeah, um, so you're talking about trading systems and stuff like that.
00:17:29.519 -->
00:18:08.160Uh incidentally, I had Dave Farley on the show a few episodes ago, and we were talking about that very same topic um and how the performance needs are just insane for trading systems because I only have a vague understanding, but I think the idea is basically like it's a race and you have to win, and it doesn't matter by how much you win as long as you, you know, if if you're I I don't I don't even know what unit of time would be appropriate to use, but if you're a tiny amount of time behind and you optimize your system by even just like an insanely small amount, that's the difference between losing and winning.
00:18:08.240 -->
00:18:10.720So those tiny differences matter.
00:18:11.440 -->
00:18:12.160Absolutely.
00:18:12.319 -->
00:18:18.160And that's why the the Paracom database is used in the in a lot of those trading systems.
00:18:18.400 -->
00:18:30.559Um and and then when you get when you collect all that data throughout the day of all the stock tickers, at night the analytics have to be run on that data, and it takes a long time to run those analytics.
00:18:30.720 -->
00:18:40.480So you need a very fast processing system to figure out all the analytics for the previous days to give it to the stock market analysts to do their job.
00:18:40.640 -->
00:18:44.720And the only database that can keep up with those analytics is the Faircom database.
00:18:44.880 -->
00:18:54.480And that's why we're not allowed to say the name of the company, but if you buy a stock market analytics, you're gonna buy it from about a half a dozen firms.
00:18:54.640 -->
00:19:03.279But they all those firms get it from one company, and this one company uses the Faircom database because it's the only one that can get the job done fast enough.
00:19:03.359 -->
00:19:12.799But they do they write C code, they go right to the middle, they bypass the SQL engine, it goes and um to get the analytics processed very quickly.
00:19:13.200 -->
00:19:14.079Interesting.
00:19:14.319 -->
00:19:24.880You know, I find it fascinating all these different bits of technology that the world depends on that most people have no idea about.
00:19:25.119 -->
00:19:26.000I I had no idea.
00:19:26.079 -->
00:19:28.799I've never heard, you know, before you, I've never heard of Faircom.
00:19:29.119 -->
00:19:32.880Um, but it's this uh what do you call it a database management system?
00:19:32.960 -->
00:19:33.680Do you call it something else?
00:19:34.079 -->
00:19:38.000It is, it is because with the SQL, we are really DBMS.
00:19:38.240 -->
00:19:44.880But if you're just ISAM, you're lower level, and so it's not really a full database at that level, it's an engine.
00:19:45.039 -->
00:19:48.480Um or like you said, the kitchen in the back of the restaurant.
00:19:48.720 -->
00:19:52.720But if you got the full restaurant there, then it's a DBMS, yeah.
00:19:53.039 -->
00:19:53.519Got it.
00:19:53.680 -->
00:19:54.000Okay.
00:19:54.960 -->
00:19:59.119Um and you said that you you mentioned something to do with IoT.
00:19:59.279 -->
00:20:01.519So how did how does that come into the picture?
00:20:01.839 -->
00:20:09.039Yeah, so um the factory floor um really cares about a couple of things.
00:20:09.200 -->
00:20:14.079They want their data to move quickly because they they deal in real-time processing of data.
00:20:14.319 -->
00:20:18.880When they're running a piece of equipment, they want to make sure it runs very quickly.
00:20:19.119 -->
00:20:21.440And um that they don't want things slowing it down.
00:20:21.519 -->
00:20:24.960It's not as fast as the stock market, but it needs to be fast.
00:20:25.359 -->
00:20:31.519And it needs to, and it needs to real-time means that when something happens, you process it immediately.
00:20:31.599 -->
00:20:33.359There's no lag time, you know.
00:20:33.519 -->
00:20:37.759Oh, I'll get to it tomorrow, or I'll get to it in five minutes, or even one, or even ten seconds.
00:20:37.920 -->
00:20:39.039It has to be now.
00:20:39.279 -->
00:20:42.240And so you have to have a very fast system that responds.
00:20:42.720 -->
00:20:57.680So because our engine is so fast, uh we knew that we could create we could we could create a new technology in this space that no one else could compete with us because they can't be, they can't run as fast as we can at our low-level engine.
00:20:58.480 -->
00:21:08.480And so what we do is we built um the the new pro there's several new protocols in in the manufacturing world that are really uh taking off.
00:21:08.720 -->
00:21:10.880One of them is called MQTT.
00:21:11.279 -->
00:21:15.119It stands for message queue telemetry transport.
00:21:15.839 -->
00:21:20.319Um it's just a fancy way of saying um Twitter for machines.
00:21:21.279 -->
00:21:29.920So you you know, like Twitter, you you tweet up to it up to an address, you know, and to a handle, and then everyone who subscribed to that handle will get your message.
00:21:30.400 -->
00:21:32.640And that's what MTTT does for machines.
00:21:32.720 -->
00:21:38.000You publish a message to a topic, and everyone who subscribes to the topic will get the message.
00:21:38.559 -->
00:21:44.640And that's really important in the manufacturing world because machines can then publish um telemetry.
00:21:44.799 -->
00:21:48.880And that's a that's an older word back in the NASA days, meaning data.
00:21:49.200 -->
00:21:55.759So machines are publishing data about their processes and alerts and status messages.
00:21:56.319 -->
00:22:03.519And they and then the software wants to subscribe to those alerts and status messages and data so they can do cool things with it.
00:22:04.880 -->
00:22:12.880So um message queues have been used in manufacturing in the silicon industry from the beginning.
00:22:13.119 -->
00:22:20.400And then when I worked in the silicon industry at Mitsubishi, we used message queues to automate all of our factories.
00:22:20.640 -->
00:22:25.920And and so I learned that I was early in my career, and I learned that technique from them and loved it.
00:22:26.160 -->
00:22:45.440And so when when I came to FARICOM and we and we realized that there's a whole new market out here that needs high-speed database processing, but they don't know what databases are, but they really want messaging and they want protocols that are manufactured protocols to automatically gather data.
00:22:45.599 -->
00:22:57.759We put it all together into a package where we lose our use our fast, low-level engine so that every message that comes in from MQTT or comes from a device, no matter how it comes in, is automatically stored in our database.
00:22:58.160 -->
00:23:03.279And since we're so fast at storing and retrieving, that overhead is low for us.
00:23:03.440 -->
00:23:10.720But if you try to use Postgres or see any other SQL database, you'd be 10 times, 20 times slower than what we are.
00:23:11.119 -->
00:23:21.680So our our competitors who try to use MQTT to do the same thing and save messages are way slower than us because they can't keep they can't compete.
00:23:21.839 -->
00:23:23.359SQL can't keep up.
00:23:23.599 -->
00:23:26.799Um and so we gives us a competitive edge.
00:23:27.039 -->
00:23:29.359Plus, our databases lights out.
00:23:30.400 -->
00:23:31.599You don't need a DBA.
00:23:32.160 -->
00:23:37.839You just run it and itself, it tunes itself, it heals itself, it keeps everything running fast.
00:23:38.160 -->
00:23:42.720Whereas if you use Postgres, you've got to vacuum it all the time to tune it.
00:23:42.799 -->
00:23:45.440You really need a DBA to keep that thing running well.
00:23:45.680 -->
00:23:49.519Well, Factory 4, they can't they're not gonna hire a DBA to run a database.
00:23:49.839 -->
00:23:56.240So they won't they're used to just taking a box and a hardware box and plugging it in, and it should just work.
00:23:56.400 -->
00:24:00.799So that's where our product is really well suited as well, because we're lights out.
00:24:01.200 -->
00:24:01.759Interesting.
00:24:02.000 -->
00:24:03.839Okay, so you use that term lights out.
00:24:04.000 -->
00:24:04.880What does that mean?
00:24:05.279 -->
00:24:10.640Well, it means no DBA, no hands-on, no people having to keep it running.
00:24:10.799 -->
00:24:13.920It's just it lives in a black box, it just works.
00:24:14.240 -->
00:24:15.039Okay, got it.
00:24:15.440 -->
00:24:17.759Yeah, it's just it's just a black box to them.
00:24:17.839 -->
00:24:20.400They plug it in and it does magic for them.
00:24:20.559 -->
00:24:23.440And as long as it works, they don't have to mess with it, they're happy.
00:24:23.599 -->
00:24:30.640And they don't want IT guys coming into the factory and rebooting stuff and tuning stuff because it takes the factory down.
00:24:31.119 -->
00:24:34.799And so there's a real divide in the factory world.
00:24:34.880 -->
00:24:37.839They call it operational technology when you're dealing with factories.
00:24:37.920 -->
00:24:38.880That's OT.
00:24:39.119 -->
00:24:43.759And then there's IT information technologies, which is, you know, the IT department.
00:24:44.000 -->
00:24:50.720And sometimes IT and OT get along well, but most of the time the OT guys say stay out of my factory.
00:24:50.799 -->
00:24:56.079You reboot my machines, you break my factory line, I have to have stuff working 24-7.
00:24:56.480 -->
00:24:58.559Every minute I'm down is a million dollars.
00:24:58.799 -->
00:25:02.720You can't come in here and reboot for 20 minutes because you're gonna cost us 20 million bucks.
00:25:03.119 -->
00:25:05.680But you know, on the IT floor, it's like, oh yeah, we can reboot.
00:25:05.759 -->
00:25:08.960We could do, you know, they just have a whole different mentality.
00:25:09.440 -->
00:25:19.279And so our database is really well suited for that world, but uh the uh the factory world doesn't know what a database is, so they're not software developers.
00:25:19.440 -->
00:25:39.839So what we did is we wrapped our database up with all this integration technology that's just automatic, put a user interface on it, they point click, and now the factory floor has something that I never had before a an industrial database to them, but it just works.
00:25:40.160 -->
00:25:47.119And they could they could get data from all these devices and publish all the IT protocols and get data from IT protocols and publish all the devices.
00:25:47.200 -->
00:25:55.279So we create a bridge, a translation bridge from all these protocols so that data can flow freely in a factory without having to write code.
00:25:55.759 -->
00:25:59.279You know, I I really like this uh concept.
00:25:59.440 -->
00:26:08.319Um, it reminds me a bit of the Macintosh computer, where it's like it it just works and it puts again.
00:26:08.400 -->
00:26:16.480I I brought up the idea of a layer of abstraction, it puts a layer of abstraction between you and the things that you shouldn't have to care about.
00:26:16.720 -->
00:26:28.000Um like, for example, even the physicality of it, like looking if computers are different these days, especially because everybody copied uh Apple.
00:26:28.240 -->
00:26:37.680Um but like you know, I remember when I was a kid in the 90s, if you look at a PC versus a Mac, you know, they look completely different.
00:26:37.920 -->
00:26:50.799Um because the other manufacturers kind of they made the external shape uh the external shape was subordinate to the internal components.
00:26:51.119 -->
00:27:03.440Uh and and they they made the shape just, you know, it's like okay, we have these rectangular components uh inside, and it's easy if we just have like these trays where we slot in these cards and stuff like that.
00:27:03.519 -->
00:27:13.440So the whole thing will be one big um, I guess the technical term is rectangular prism, um, and it's just a a box.
00:27:13.680 -->
00:27:16.079Um, but it doesn't look very attractive.
00:27:16.400 -->
00:27:31.119And then a Macintosh, you know, I'm thinking of those ones in the 90s um that were like multicolored, I think they called it like candy shell or something like that, where they were very bulbous and rounded.
00:27:31.359 -->
00:27:42.799That doesn't make anything easier uh as far as the internal components go, but they wanted it to um, you know, what were they going for?
00:27:42.960 -->
00:27:52.319I think they wanted it to be the okay, the the target was the human user of the machine.
00:27:53.200 -->
00:28:09.680They were catering to the not the needs, they were catering to the I don't know, in some way they were catering, catering to the user, the customer, instead of um uh um okay, their North Star was the customer.
00:28:09.839 -->
00:28:12.000Their North Star wasn't their own convenience.
00:28:12.079 -->
00:28:13.359That that's what I'm trying to say.
00:28:13.839 -->
00:28:14.400Yeah.
00:28:14.720 -->
00:28:28.640And so the the reason that I say all that to bring it all back around and tie it together is um if you make this database management system that's self-healing and all that, it'll run 24-7 no matter what.
00:28:28.960 -->
00:28:32.240Um, you know, why wouldn't a database do that?
00:28:32.480 -->
00:28:44.880Well, uh a database management system wouldn't do that if the the producer of that system decided that that's not their problem.
00:28:45.279 -->
00:28:53.200It's well, okay, that would be a huge expense and effort for us to add all these self-healing properties and stuff like that.
00:28:53.279 -->
00:28:54.799So we're not gonna worry about that.
00:28:54.960 -->
00:28:56.880We're gonna let that be your problem.
00:28:57.279 -->
00:29:07.440So I really like the idea of abstracting away all that stuff and saying, hey, you're a manufacturer, you shouldn't have to care about vacuuming the database and stuff like that.
00:29:07.599 -->
00:29:14.400We're just gonna do the, I assume, huge amount of work that makes it so you don't even have to know about that stuff.
00:29:14.720 -->
00:29:15.519Exactly.
00:29:15.759 -->
00:29:16.160Exactly.
00:29:16.319 -->
00:29:21.920And we built our engine, so actually it's not a huge amount of work because the engine was built to do that all along.
00:29:22.079 -->
00:29:27.440Our our original customers want embedded us and still do, they embed us in their product.
00:29:27.599 -->
00:29:28.640So it just had to work.
00:29:28.799 -->
00:29:29.920There were no DBAs.
00:29:30.000 -->
00:29:33.359So we built our product from the beginning with that audience in mind.
00:29:33.599 -->
00:29:42.640Whereas Oracle and Postgres and SQL Server and Psybase and all the others, they they assumed you would have a database administrator.
00:29:42.880 -->
00:29:45.359It was designed for that all for the beginning.
00:29:45.440 -->
00:29:57.200And so and I've been in I've been in Oracle DBA, a SQL Server DBA, and um and uh NoSQL DBAs as well MongoDB, MarkLogic, Couchbase.
00:29:57.759 -->
00:29:59.759And these guys they all assume.
00:30:00.160 -->
00:30:01.279Mark Logic, not so much.
00:30:01.359 -->
00:30:06.400Mark Logic had this idea more like a Mac, you know, just like Faircom, just run and work.
00:30:07.359 -->
00:30:08.640They did all the automation themselves.
00:30:08.720 -->
00:30:13.519But the other ones, you have to do a ton of cleanup and tuning and keep it alive.
00:30:13.759 -->
00:30:23.119So my goal with uh when I came to Faircom was to well, first my goal was was not even this IoT thing.
00:30:23.200 -->
00:30:24.079We that was new.
00:30:24.160 -->
00:30:25.680That came after I got here.
00:30:25.920 -->
00:30:45.519But um when I first was hired, my goal is to bring JSON to the Faircom database and take that ISAM engine, which is so fast, and leverage that to create a JSON database like MongoDB and Couchbase that is super fast but transactional and works like SQL.
00:30:45.599 -->
00:30:52.559And you would have SQL data, JSON data, and the ISAM all at once at the same time.
00:30:52.799 -->
00:31:02.880So you could go to any level of the API, whether you're just doing simple JSON things like you would do in Couchbase or Mongo, or do SQL things like Oracle or SQL Server, or the ISAM like Faircom.
00:31:03.119 -->
00:31:08.880You can do them all at the same time on the same data, and you could that way you get the best of all stories.
00:31:08.960 -->
00:31:14.000You get all the power of SQL, all the simplicity of JSON, and all the speed of ISAM.
00:31:16.000 -->
00:31:21.599And you just you can write code to work in any layer you want to achieve anything you want to do.
00:31:21.759 -->
00:31:22.480So we built that.
00:31:22.559 -->
00:31:26.960That was the first thing I did at Peracom, was design this JSON database out of our product.
00:31:27.039 -->
00:31:29.519So now we have that's also part of the core.
00:31:29.680 -->
00:31:34.960And I brought that up now because you're I love what your analogy with the Mac versus the PC.
00:31:35.920 -->
00:31:40.160Because Apple said, we want things to be easy for the end user.
00:31:40.319 -->
00:31:45.359We want the we want the consumer who doesn't care about big boxes.
00:31:45.519 -->
00:31:47.359They want style, they want an accessory.
00:31:47.519 -->
00:31:52.160They want something cool that just lives in their life, you know, and it's small and compact.
00:31:52.240 -->
00:32:06.000It goes with them and and it's fun and it's it's an accessory and it just enhances your life as opposed to the PC world saying we want a machine, we want an engineer to have a machine that you can customize and get into the engine each week and all that.
00:32:06.160 -->
00:32:08.160Well, Faircon used to be very much like a PC.
00:32:08.319 -->
00:32:13.440You have to get into that engine, go back in the kitchen and you know, and cook the meals instead of just order it.
00:32:13.759 -->
00:32:20.720But uh the the new the cut the new customers today, the new new developers don't want to go in the kitchen and make the you know make it work.
00:32:20.799 -->
00:32:24.640They just want to order the food and have the database serve it up and be done.
00:32:25.119 -->
00:32:30.720So I I've added the JSON engine to the Faircom database to do that very thing.
00:32:30.799 -->
00:32:37.200It's now I could easily I can generally say it's the easiest JSON database in the world.
00:32:37.359 -->
00:32:39.519It's easier than Mongo Couchbase.
00:32:39.599 -->
00:32:41.359It's simpler, it's more fun to use.
00:32:41.440 -->
00:32:43.039It actually is fun to use.
00:32:43.359 -->
00:32:46.559Um the JSON makes things so easy and fun.
00:32:46.799 -->
00:32:49.759And you've got all the power of SQL, even in the JSON.
00:32:49.839 -->
00:32:56.799Um so now I've merged JSON and SQL together in a much better way than Couchbase did um with their nickel language.
00:32:57.039 -->
00:32:59.839And so we've got a really cool product.
00:33:00.079 -->
00:33:07.119Then we later move to the industrial IoT spaces and realize that market wants the same kind of data back.
00:33:07.200 -->
00:33:16.559They just want to get the data flowing in their factories, they don't want to know, they don't want DBAs, they don't want engineers, they just want a point and click, and data should flow everywhere.
00:33:16.880 -->
00:33:26.960Um okay, so um I'm curious why did Faircom feel like it had a JSON database-shaped whole?
00:33:27.200 -->
00:33:29.920What what prompted this endeavor?
00:33:30.480 -->
00:33:38.160Yeah, so uh part of the the NoSQL movement was a movement actually away from SQL to JSON.
00:33:38.319 -->
00:33:41.200Um now not every NoSQL database is JSON.
00:33:41.359 -->
00:33:44.960There's uh Cassandra went to a wide column model.
00:33:45.359 -->
00:33:53.920Um but most of the data, the most successful ones, uh like Mongo and Couchbase, went to the JSON model.
00:33:54.079 -->
00:34:01.440And I was and uh MarkLogic did that as well, and uh a lot of other ones that it never really stayed around, they did the same thing.
00:34:01.519 -->
00:34:09.280And so there's a JSON became is is an easier data format to work with than SQL data formats.
00:34:09.519 -->
00:34:13.519So it's um very powerful, very simple, and human readable.
00:34:13.760 -->
00:34:21.119So um I became a big fan of JSON about well, actually since 2000.
00:34:21.199 -->
00:34:23.920Um I started working with JSON around 2000.
00:34:24.159 -->
00:34:33.599And so and I I and I also worked with XML at the time, but I I love both of those, but JSON is even simpler than XML and it's really nice to work with.
00:34:33.840 -->
00:34:42.400So I I started playing with X JSON and XML in SQL databases since the since the 2000s.
00:34:42.719 -->
00:34:49.440And um back then they didn't databases didn't have anything built in, so I was doing my own stuff with those technologies.
00:34:49.599 -->
00:34:55.840And then um the the NoSQL movement came and MongoDB took the industry by storm.
00:34:55.920 -->
00:35:06.480They're the fifth most popular database, uh went from nothing to the fifth most popular um in a very short period of time, in just a few years.
00:35:06.719 -->
00:35:12.079And they the answer, and I asked myself what cost it, like what shot them to the top so quickly?
00:35:12.320 -->
00:35:13.119It was easy.
00:35:13.280 -->
00:35:15.199It was just like the Mac versus PC.
00:35:15.280 -->
00:35:21.119It was the the developer wants to just get data, and how do they want that data?
00:35:21.280 -->
00:35:24.239Well, every language works best with JSON data.
00:35:24.559 -->
00:35:35.679JSON comes from um the JavaScript language, it stands for JavaScript object notation, but the real part is not the JavaScript part, it's the fact that it's object notation.
00:35:35.920 -->
00:35:43.039And JavaScript is a C family language, just like Java or C sharp or C or C.
00:35:43.760 -->
00:36:01.679And that that way of defining objects in the C object notation, basically, that started with the C language and could carry it all the way through to Java and C sharp, that became the most popular way for developers to think about data is these objects and object-oriented programming.
00:36:01.840 -->
00:36:03.840Well, JSON captures that.
00:36:04.800 -->
00:36:09.039And so JSON is object-oriented, and that's what developers use in all their code.
00:36:09.119 -->
00:36:12.320They write object-oriented code and they want objects.
00:36:12.559 -->
00:36:15.440So they want the database to give them objects.
00:36:15.599 -->
00:36:27.199And JSON is the most natural way to do that because it's human readable, you can debug it, you can see it going across the wire, you can see what it's coming in, and you can troubleshoot it so easily.
00:36:27.760 -->
00:36:31.760And and then JSON maps to every is natural in every language.
00:36:31.840 -->
00:36:36.960Every language works with JSON because all the all the rest services today use JSON.
00:36:37.119 -->
00:36:40.559Um, so JSON's become the ubiquitous way to program.
00:36:41.039 -->
00:36:51.119Well, why the the worst thing you want to do is take all that beautiful JSON code and objects that you have in your code and convert it to SQL, which has nothing to do with objects.
00:36:51.360 -->
00:36:57.199What if you can have a database that does objects flowed in and out of the database naturally and without any effort?
00:36:57.360 -->
00:37:01.119And so that's what Mongo did, and it makes a huge difference.
00:37:01.440 -->
00:37:10.559So what we did at Faircom is I took all those lessons learned, but I've mapped, but I know just like you you talked about earlier, SQL is incredibly powerful.
00:37:10.639 -->
00:37:12.559The relational model is wonderful.
00:37:12.800 -->
00:37:19.199I'm a big fan of the relational world, and and um and I know EFCOD's relational theory very well.
00:37:19.280 -->
00:37:24.320I've studied, I've actually read the original theories and the the I'm a theoretical guy.
00:37:24.400 -->
00:37:28.239I got my PhD in music theory, so I like theory.
00:37:28.400 -->
00:37:30.639So um excuse me.
00:37:30.960 -->
00:37:43.599So I studied the relational theory and I thought, well, we want objects, we want JSON objects to be in a database, but how can we map them to tables and fields in tables?
00:37:43.920 -->
00:37:46.239Because we want the power to join.
00:37:46.480 -->
00:38:00.400EF Cod proved in his in his paper in 1979 that hierarchical hierarchical data uh has problems, and you have to break it out and flatten it out and do you and join it across tables and to solve the problems.
00:38:00.639 -->
00:38:01.840There's really no other way.
00:38:02.079 -->
00:38:03.760Well, JSON is hierarchical.
00:38:04.079 -->
00:38:07.679So are we going back to the old hierarchical database days?
00:38:08.000 -->
00:38:08.320No.
00:38:08.639 -->
00:38:21.360The answer is you want you want hierarchies, but you want them to be within a table, and you want them to represent an entity um like a person or a cuss or a product or a a purchase.
00:38:21.679 -->
00:38:31.840You want uh JSON to be uh real uh real world things, and so you want the hierarchies to be limited to a real world entity, but you want those entities to be flat.
00:38:31.920 -->
00:38:44.239You want them to be in a or rather to be peers, you want purchases and invoices and people and customers and products all to be peers with each other, not nested sub-hierarchical database.
00:38:44.559 -->
00:38:45.840And so that's SQL.
00:38:46.239 -->
00:38:54.159So I merged the concept of limited hierarchies of JSON into the SQL model and combined the two transparently.
00:38:54.320 -->
00:39:02.320So when you work in the Faircom database, you're working with SQL data and JSON data simultaneously without any resistance.
00:39:02.480 -->
00:39:10.800It's not JSON or SQL, it's JSON in SQL and SQL in JSON, naturally combined, invisible to you really.
00:39:10.880 -->
00:39:12.000You don't even have to think about it.
00:39:12.079 -->
00:39:12.880It just works.
00:39:13.119 -->
00:39:19.119And and that is what I brought to Faircom because I worked on that for 20 years to create that model.
00:39:19.280 -->
00:39:29.039And it's a it's a next generation of technology that makes working with databases easier than MOGO and easier than SQL with the benefits of both.
00:39:29.440 -->
00:39:33.119Okay, so I have a whimsical question that I want to ask you.
00:39:33.280 -->
00:39:45.679Um, and it's it's only very tangentially related to any of this stuff, but I have a hunch that it overlaps more than zero with your intellectual interests.
00:39:46.079 -->
00:39:52.159Um, so I've been fascinated with natural language processing forever.
00:39:52.320 -->
00:39:59.920Um, never really dabbled too deeply in it until recently, and even recently, I haven't gone very deep into it.
00:40:00.400 -->
00:40:12.000Um and I've I've been studying the problem of how do you take words and and teach a computer what those words mean?
00:40:12.320 -->
00:40:15.280Because I've talked about this a lot on the show.
00:40:15.360 -->
00:40:18.480Um, LLMs don't have any sense of meaning.
00:40:18.559 -->
00:40:37.440Um they can shuffle around these symbols, and turns out you can get really far by shuffling around symbols, and you can seem to be as smart as a person by um passing uh uh an aptitude test or something like that, but that's not really intelligence, that's just questions and answers.
00:40:37.519 -->
00:40:40.960It's it's kind of in a way just a sophisticated database.
00:40:41.119 -->
00:40:45.280And I'm interested in the question of how do we actually connect the meaning.
00:40:45.519 -->
00:40:50.960Um, and I came across something called the symbol grounding problem.
00:40:51.280 -->
00:40:53.760Would you happen to have seen this before?
00:40:54.159 -->
00:40:57.280I haven't heard of it in that in those terms, so no.
00:40:57.599 -->
00:41:00.079Yeah, so it's called the symbol grounding problem.
00:41:00.400 -->
00:41:12.079Um it occurred to me one day that okay, you want to teach computer uh the meaning of some word, like I don't know, fish or something like that.
00:41:12.320 -->
00:41:13.840Um, it's like, what's a fish?
00:41:14.079 -->
00:41:16.639Well, it's an animal that lives in the water.
00:41:16.800 -->
00:41:19.599Okay, well, what's an animal and what's water?
00:41:19.760 -->
00:41:28.800Um, but it creates a problem of infinite regress because every symbol is just defined in terms of other symbols, yeah.
00:41:29.039 -->
00:41:32.639And you never get the next layer deeper.
00:41:33.519 -->
00:41:43.039Um, and there's there's some people who think that human thought is like language is thought, like they're those two of the same things.
00:41:43.280 -->
00:41:47.440Um, but it's been kind of proven that that's not the case.
00:41:47.679 -->
00:41:57.840Um, we we have this deeper nonverbal form of thought, and it's like you can know what a fish is without knowing the word for fish.
00:41:58.400 -->
00:42:07.039Um, and so my question is like, for one, how does the human brain store that knowledge?
00:42:07.519 -->
00:42:20.079Um and then two, you know, m maybe maybe if we somehow knew the exact answer to how that information is stored, um, then we could just make a computer do the same thing.
00:42:20.239 -->
00:42:21.840But also, maybe we don't need to.
00:42:22.000 -->
00:42:37.920Maybe we can just come up with our own way, which m may or may not match the brain's way of representing information um and um connecting a word to an actual meaning.
00:42:38.079 -->
00:42:53.920Um, and something that I figured out, and I'm feeling more and more confident about this, is that in order to teach a computer language, um, you have to start with an understanding of physical space.
00:42:54.320 -->
00:43:01.599So like up, down, left, right, forward, back, um, all that stuff, I think that's where you need to start.
00:43:01.920 -->
00:43:16.159Because if you think about it, like all of our so much of our language is borrowed from um from uh space, time and space, from from the physical world, you know.
00:43:16.639 -->
00:43:22.400It's like, oh what what did we say um uh back then or whatever, you know?
00:43:22.559 -->
00:43:24.480Uh that's just a metaphor.
00:43:24.719 -->
00:43:30.000Um we're saying back, but it wasn't back, it was just like earlier in time.
00:43:30.079 -->
00:43:34.239It wasn't literally backwards in space, but we use that metaphor.
00:43:35.039 -->
00:43:44.800Um and so this is a question, partly at least, of data representation and storage.
00:43:45.440 -->
00:44:01.280And so I I you know I'm not assuming that uh that your interests overlap with mine, but I have a hunch that maybe this question would interest you at least a little, given that it's a data storage question.
00:44:01.679 -->
00:44:03.440It does interest me a lot.
00:44:03.599 -->
00:44:13.679And I love first, I love your very very first point because people don't understand machine learning and and then and the whole family of technologies that are artificial intelligence.
00:44:13.920 -->
00:44:25.519But as you pointed out, machine learning is statistical probabilities with million with maybe millions of dimensions, especially large language models, have millions of dimensions.
00:44:25.840 -->
00:44:33.679And uh these are just numbers that say if this if you have this string of input, this is the most likely string of output.
00:44:33.840 -->
00:44:39.199Uh and it's statistical, it's statistical um probabilities converting that.
00:44:39.280 -->
00:44:47.280So if you have a whole, you write a whole paragraph and say, hey, rewrite this, statistically, people would rewrite it the way they give it back to you.
00:44:47.440 -->
00:44:50.480And so it's almost machine learning is like a popularity contest.
00:44:50.559 -->
00:44:54.159It's like exactly this is the most popular way that people want to see things.
00:44:54.480 -->
00:44:55.280It's very useful.
00:44:55.440 -->
00:45:00.079Don't get me wrong, I think it's fabulous, but there's no intelligence there, like you pointed out.
00:45:00.159 -->
00:45:04.559There's no cognition, there's no brain thinking about anything.
00:45:04.880 -->
00:45:17.280Um and there's no way to create anything new, it's just statistically, this is what people do, and this is how it should work, with whether it's music, outputting music, or outputting um text or whatever.
00:45:17.920 -->
00:45:32.960And then so in order to get cognition, you have to have uh, you know, the core thinking and what is thinking, you know, and that's and as you pointed out, I love your other point, was language is critical to thinking, but it's not the only way we think.
00:45:33.119 -->
00:45:59.280And I know in music, when I when I do music, uh it's um when I write, I write music and I arrange music, and um I have cognition parts that I'm consciously thinking about, structure, chords, um all all the aspects of music, melodies, rhythm, you know, timbre, um, texture, all those things I'm working together, and my mind is actively thinking about all of that.
00:45:59.440 -->
00:46:02.559But then I turn off that and I listen.
00:46:02.880 -->
00:46:15.920And there's not language and there is not thought, but there is there is well, there's not cognitive thought with language, but there's non-verbal thought, there's non-verbal understanding of the music.
00:46:16.079 -->
00:46:32.239And then when I go to play it on the piano, to to like to get to play all of a sudden all the stuff I wrote on my computer where I thought of it cognitively, and then I listened to it non-cognitively, then I go to the piano and I play with my fingers, and my fingers say, no, no, no, no, no, that's not how it should be played.
00:46:32.320 -->
00:46:32.960You should play this.
00:46:33.039 -->
00:46:36.800And also, my fingers will come up with something better because there's muscle memory.
00:46:36.880 -->
00:46:41.039There's a part of my brain that knows kind of like machine learning.
00:46:41.280 -->
00:46:45.119Probability is this plays better, and my fingers know how to do it.
00:46:45.199 -->
00:46:48.000I can sit down at a piano and improvise and make up stuff.
00:46:48.239 -->
00:46:55.840And I have part of my brain is thinking cognitively, part of my brain is thinking emotionally, and part of my brain is thinking muscularly how to do it all.
00:46:55.920 -->
00:46:58.800And I and I bring it all together and make pieces up.
00:46:59.039 -->
00:47:06.079But there's those are three aspects of thinking that are not, you know, one of them is words, but the other two are not.
00:47:06.159 -->
00:47:11.280One's emotion and one is musculature or muscle memory or kind of like machine learning.
00:47:11.599 -->
00:47:13.760And there's probably a dozen more.
00:47:13.920 -->
00:47:16.559Who knows how many things are in our brain and how they all work together.
00:47:16.719 -->
00:47:21.920I don't I I'm no expert there, but I know those three things are working together because I'll change it when I play it.
00:47:22.079 -->
00:47:29.440Then I go back up to the computer and I'll play that computer play it for me, and then I'll go, oh yeah, but I really like this other thing a little better.
00:47:29.519 -->
00:47:32.960Then I tweak it again, and I go through about six or seven iterations of it.
00:47:33.119 -->
00:47:35.920And when I'm done, all those different things work together.
00:47:36.320 -->
00:47:41.920My hands are happy, my emotions happy, my brain is happy, and I've got like the sound is perfect.
00:47:42.000 -->
00:47:49.760And and so you know what it's a fun process, it takes a long time, but it's yeah, it is fun, and it does take a long time.
00:47:49.920 -->
00:47:52.400I I I compose music also.
00:47:52.960 -->
00:48:08.000Um, and I I I encountered this idea in maybe a year ago that I think is one of the most important ideas in the history of thought, um, which is the idea of conjecture and criticism.
00:48:08.159 -->
00:48:13.039And it has so many um, it it applies so broadly.
00:48:13.280 -->
00:48:35.360Um, okay, so the way that science advances, the way that knowledge advances, is that first we come up with some conjecture uh of an explanation for some um phenomenon in nature, and then we subject that conjecture to criticism, and if it doesn't survive the criticism, then it goes away.
00:48:35.599 -->
00:48:44.159If it does survive the criticism, then it's tentatively accepted as our our best guess at the truth so far.
00:48:44.480 -->
00:48:47.199Um, so that's one way in which it applies.
00:48:47.440 -->
00:49:04.239Um I, you know, 25 years ago when I was like first learning music, um, it occurred to me at one point, I can't really control what comes out of me, but I I can only control what I choose to keep, you know.
00:49:04.480 -->
00:49:11.519So like most of the songs that I come up with, or or the little riffs and stuff like that, most of it is terrible.
00:49:11.599 -->
00:49:12.480I don't like it.
00:49:12.639 -->
00:49:19.599Um, but then every once in a while you're like noodling around and you come up with something you like, and it's like, okay, I'm gonna keep it.
00:49:20.000 -->
00:49:23.360And again, that's that's conjecture and criticism.
00:49:23.599 -->
00:49:34.480Um with politics, um, the question isn't okay, and and by the way, with music, the question isn't how can I make it so I only ever come up with good stuff?
00:49:34.639 -->
00:49:35.760That's not realistic.
00:49:36.000 -->
00:49:38.960The question is, how do I filter out all the bad stuff?
00:49:39.199 -->
00:49:41.199Um, same with politics.
00:49:41.360 -->
00:49:55.519The question isn't how do we make sure we only get good leaders in power, the question is how can we create a system where we can remove bad leaders when they inevitably do sometimes come into power.
00:49:56.159 -->
00:50:02.079Um and so I I think that's an important idea for AI also.
00:50:02.480 -->
00:50:27.039Um like I I think that when um when we see an object uh and we recognize what that object is, um for this is a little bit of a guess, but like I think first we come up with some conjecture of like, oh, I think that's a fox that I that I see in the yard.
00:50:27.280 -->
00:50:35.280Um and then you like look more closely and you're like, yeah, or like I think that's a fox, oh no, that's that's a coyote or whatever.
00:50:36.239 -->
00:51:00.079Um and so the reason I bring that up is because maybe um in order for the the this representation problem to be solved, we have to have an AI that can have a flexible idea of something and it recognizes an object, and it's like, okay, I think that's such and such.
00:51:00.559 -->
00:51:03.599You know, it cycles through a few guesses or something like that.
00:51:03.760 -->
00:51:16.320I'm not sure, but it has to be somewhat fuzzy in order to be able to recognize things because obviously things are a bit different, you assume, from a different angle or whatever.
00:51:16.880 -->
00:51:19.519Um yeah, somehow.
00:51:19.840 -->
00:51:25.280Yeah, and that's the you know, the machine learning world, that's the training that we do as humans.
00:51:25.360 -->
00:51:29.679We train it, we say a human goes in and says, that's a coyote, that's not a fox.
00:51:30.000 -->
00:51:31.440And so the machine, okay.
00:51:31.679 -->
00:51:43.280Then it statistically says this particular set of categorization, you know, it's statistic, this is a statistical model, this particular variation is labeled coyote now.
00:51:43.519 -->
00:51:56.320And then and then you go through more iterations in all that fuzzy area, and if you keep training it, eventually it will come up with a statistical model that will say, yes, that's a coyote, and it'll get it right 99% of the time.
00:51:56.719 -->
00:52:04.159But we still we still have this whole gap in the in this AI world of cognition, consciousness.
00:52:04.480 -->
00:52:08.800Because the machine is just statistically telling you, you've trained me.
00:52:08.960 -->
00:52:09.920Well, it doesn't even think, right?
00:52:10.000 -->
00:52:11.280I think it's a person.
00:52:11.440 -->
00:52:14.000It doesn't think, it just says, here's an input.
00:52:14.159 -->
00:52:16.000Statistically, the output is coyote.
00:52:16.239 -->
00:52:17.679You know, it there is no thought.
00:52:17.840 -->
00:52:20.719There is no, well, but what if it were a fox?
00:52:20.800 -->
00:52:25.599Or or you know, or or then, you know, maybe this is halfway between a fox and a coyote.
00:52:25.840 -->
00:52:27.599Let me come up with my own label for this.
00:52:27.840 -->
00:52:30.719Well, I think let me uh, you know, that's a whole different thing.
00:52:30.880 -->
00:52:32.960I think this is what the crucial difference is.
00:52:33.199 -->
00:52:47.280Um uh the the machine is going off of statistical analysis, whereas a human is maybe sometimes going off of statistical analysis, but we are going off of explanation.
00:52:47.679 -->
00:52:59.440So, like, imagine, for example, if you saw like a um taxidermied fox, but it was like the head of a fox and the body of an elephant or something like that.
00:52:59.599 -->
00:53:00.159Oh, yeah.
00:53:00.400 -->
00:53:05.679And it's like show that to a machine learning algorithm, and you're like, what's that?
00:53:05.840 -->
00:53:15.440It's like, well, I I have like 60% certainty it's an elephant, uh 20% certainty it's a fox, or something like that.
00:53:15.679 -->
00:53:27.920Like it it wouldn't arrive at the explanation of like, oh, this is like some super weird taxidermied uh head on a body type thing, because it wouldn't have the explanation.
00:53:28.400 -->
00:53:28.960Yeah.
00:53:29.199 -->
00:53:34.719And it wouldn't have the awareness, the consciousness to go, this is different.
00:53:34.960 -->
00:53:42.320But I see what makes up the I see the components that made up this weird taxidermy thing, and I can explain it.
00:53:42.559 -->
00:53:58.960Um that's where that's that's why I don't like the term artificial intelligence, because intelligence to me implies well, it depends on how you define the word intelligence, but if you're talking about cognition and awareness and consciousness, yeah, it's not there, there is none.
00:53:59.119 -->
00:54:06.239Um sorry, I didn't I think I'm I I hate to interrupt, but I think I'm making genuine progress in in my thoughts here.
00:54:06.559 -->
00:54:19.760So if you see this elephant with a fox head, um, I think the reason why a person can recognize that for what it is is because of um creativity.
00:54:20.000 -->
00:54:30.239So a lot of these thoughts that I've been sharing just now come from these two books, uh The Fabric of Reality by David Deutsch and Um The Beginning of Infinity by the same author.
00:54:30.400 -->
00:54:33.599Um and he was talking about the origins of creativity.
00:54:34.000 -->
00:54:58.880Um and his uh uh guess for the origin of creativity is um, well, it's a long story, I guess, but it uh in static societies, um, you know, like some hunter-gatherer society that doesn't change for thousands of years, um you you want to conform and you want to behave the same way other people do.
00:54:59.039 -->
00:55:15.039Um but it actually takes creativity to try to figure out how other people are behaving the way they are, and so you exercise your creativity in order to imitate and conform, ironically.
00:55:15.199 -->
00:55:18.800Ironically, it takes creativity to not be different.
00:55:19.119 -->
00:55:39.119Um anyway, seeing an elephant with a fox head and recognizing it for a taxidermide uh monstrosity um requires creativity because you have to see it and be like, okay, let me like reverse engineer this and figure out how this could have been made.
00:55:39.360 -->
00:55:48.480I know that there's you know, an elephant with a fox head would never occur in nature, so this must be some kind of man-made man-made construction.
00:55:48.719 -->
00:55:51.199Um, and it certainly can't be alive.
00:55:51.679 -->
00:56:00.000Uh so it must be some kind of a uh, you know, somebody decapitated a fox and and put it on an elephant's body.
00:56:00.239 -->
00:56:04.400And usually when that happens, it's some kind of you know taxidermy type thing.
00:56:04.480 -->
00:56:06.559So that's my guess for what that is.
00:56:06.880 -->
00:56:10.000Much different process from statistical analysis.
00:56:10.400 -->
00:56:11.039Yeah.
00:56:11.599 -->
00:56:12.239Yeah.
00:56:13.039 -->
00:56:16.320And there's there's a consciousness to it, a thought, you know.
00:56:16.480 -->
00:56:20.480Uh everything you were saying was, well, this you're thinking about it.
00:56:20.559 -->
00:56:23.599You're going, well, it can't be this, it can't be this.
00:56:23.840 -->
00:56:26.480Um, that's not what machine learning does, right?
00:56:26.559 -->
00:56:27.840There's no thinking.
00:56:28.159 -->
00:56:30.480Um it there it's fun.
00:56:30.559 -->
00:56:40.400This is a fun discussion because we eventually, who knows, uh, if you combine enough of the statistics together that a consciousness might emerge.
00:56:40.559 -->
00:56:42.880That's a theory that some people have.
00:56:43.039 -->
00:56:45.039And so who knows?
00:56:45.280 -->
00:56:52.960Uh I can't see any reason why consciousness can't arise in a machine, because it already has.
00:56:53.119 -->
00:56:55.840Humans are machines, and we have consciousness.
00:56:56.079 -->
00:57:02.400So I don't see any reason in principle why consciousness can't arise again in a different machine.
00:57:02.559 -->
00:57:06.639Um, whether the path there is statistics or something else.
00:57:06.719 -->
00:57:08.800I'm skeptical about the statistical path.
00:57:09.119 -->
00:57:10.400Me too, me too.
00:57:10.639 -->
00:57:10.960Yeah.
00:57:11.199 -->
00:57:11.840Yeah.
00:57:12.880 -->
00:57:13.280Yeah.
00:57:13.760 -->
00:57:15.599This is this is I love this conversation.
00:57:15.679 -->
00:57:19.599Of course they have a hard stop in two minutes.
00:57:20.000 -->
00:57:21.199Well, actually, in one minute.
00:57:21.440 -->
00:57:23.280So I can just do that.
00:57:23.440 -->
00:57:26.719Okay, well, I appreciate you you indulging me for at least a few minutes.
00:57:26.880 -->
00:57:30.880Um, and and I really appreciate the database conversation.
00:57:31.039 -->
00:57:32.960Um, if you're up for it sometime.
00:57:33.119 -->
00:57:41.920Again, I would love to have another conversation, but before we go, is there any place um you want to send people to learn more about Faircom, about you, any of that stuff?
00:57:42.320 -->
00:57:42.960Oh, yeah, yeah.
00:57:43.119 -->
00:57:46.400Come to faircom.com, faircom.com.
00:57:46.559 -->
00:57:47.599Two comms in there.
00:57:47.840 -->
00:57:49.280Faircom.com.
00:57:49.679 -->
00:58:00.800And um, and you'll learn about our products and you'll learn about this unique combination of technologies that we have that can make a difference for you for you when you want to differentiate yourself from others.
00:58:00.880 -->
00:58:03.119If you want to be just like everyone else, you know, use Postgres.
00:58:03.280 -->
00:58:08.320But when you want to do something beyond and have fun doing it, give it a shot.
00:58:08.480 -->
00:58:09.519I think you'll like it.
00:58:09.840 -->
00:58:10.079All right.
00:58:10.159 -->
00:58:12.559Well, Mike, thanks so much for coming on the show.
00:58:12.880 -->
00:58:13.440Thank you.
00:58:13.519 -->
00:58:14.559I loved it.