How'd you like to listen to dot NetRocks with no ads? Easy? Become a patron For just five dollars a month, you get access to a private RSS feed where all the shows have no ads. Twenty dollars a month will get you that and a special dot NetRocks patron mug. Sign up now at Patreon dot dot NetRocks dot com. Hey, Carl and Richard here with your twenty twenty four NDC schedule. Will be at as many NDC conferences as possible
this year, and you should consider attending no matter what. Ndcoslow is happening June tenth through the fourteenth. Get your tickets at ndcoslow dot com. The Copenhagen Developers Festival happens August twenty sixth through the thirtieth. Early bird discount ends April twenty sixth. Tickets at Cphdevfest dot com. Ndcporto is happening October fourteenth through the eighteenth. The early bird discount ends June fourteenth. Tickets at Ndcporto
dot com. And we'll see you there, we hope. Hey, welcome back to dot net rocks. I'm Carl Franklin and I'm Richard Campbell. I'm in my studio and Richard is in Sweden. I am Sweden. I'm at the Castle komf At in Orbro, nice just outside of Stockholm. Very nice.
Yeah, and we're going to have a really good talk today with Gyorgy, but first let's do better no framework awesome in Richard, you probably saw this already, but DARPA revealed that an experimental X sixty two a AI control jet successfully faced the human pilot during an in air dog fight test carried out last year. Fue huh, yeah, you've probably read about it when it happened. But yeah, well and to be clear, and X sixty two
is an F sixteen, Yeah, it's just customized. Yeah, they were already fly by wire, so they just added in this new set of modules to fly itself. And apparently human pilots were on board with controls to disable the AI system, but DARPAS says the pilots didn't need to use the safety switch at any point. So isn't that interesting and a little scary, But you know, just warfare. I guess I would rather have something being flown by wire than flown by a pilot. But you know, for the pilot's
sake. Anyway, Yeah, apparently recently they put the head of the Air Force in the backseat of the F sixteen. They did the same thing. So oh wow, they're bringing to light that this is how good the software is now boys, right, Yeah, it does bring up a little Star Wars the angst, you know, sort of, although you know, curiously
they modeled all the Star Wars battles after World War One air dogfights. So yeah, I was I was thinking of Episode one, you know, where all the all the little drones were flying around so like like little gnats, like little mosquitoes, just shooting darts at people, and I thought, oh my god, that we have to look forward to. Well anyway, yeah, the Air Force has this project called Loyal Wingman, which is unmanned vehicles
that they that the pilots are flying with. So things are getting interesting, Yeah, they certainly are. So anyway, that's what I got. Who's talking to us today, Richard Graby Common top of a show eighteen fifty five, the one we did with Ted Neward back in July last year. We were talking about multiple types of data stores and called it multimodal. It is fun and Andy Perth had this somewhat long comment, but I thought it was relevant to what we were talking about today. Says if RM is the Vietnam
of computer science, And of course we were talking to Ted NewART. That's a reference to an old show, old set a blog posts too, And my repeated trips back to some kind of RM must make me the US State Department that would appreciate my citing that paper When we were discussing how to layer an API on top of an instantly complex XML model back around two thousand and seven, you know, that's the whole complain about n Hybrid eight was that
the XML was out of control. Right, So I have to snark at your comments on the mosing of using XML to describe XML scheme on two grounds. The first is XML bodies first tried non XML formats with DTD. Okay, that did suck more, That's true, yeah it did. And two, slipping even further down the rabbit hole of stuff for XML should be XML.
They went even further to add a programming language called XSLT, which I did some work in, which was written in XML and should cure anyone if ever complaining about mere semicolons as too much punctuation because you were usedckets in your life until you wrote exslt my god. You know. That's why. That's why we had tools to write that stuff, because it was not Yeah,
it was sorry for you the tool for my sins. I used to teach a multi day course on the W three XML schema to geologists and mining engineers. That insanely complex model encompass geos basically located or bodies described as full three D structures somewhere in Australia. Wow. It also included laboratory essay results for a sampling chorus drill if to find such bodies. All that as salted with a dash of Sarbanes Oxley traceability on top. And that experience taught me two
things. One never try to get scientists from different disciplines to agree on a definition. And two, XML camera respect complex object graphs. Liberal use of the ID attribute is the key. Amazing extensible results are possible. So keep the government theme and borrow a sentiment from Winston Churchill. I'd like to romose that XML is the democracy of data structures. Well DBL liked it, but even he backed off eventually. Oh man, yeah, I love it,
but yeah, Andy, you're a true believer. I like it. And so a copy of music Coba is on its way to you. And if you'd like a copy of music, go buy. I write a comment on the website at dot Netwrocks dot com or on the facebooks. We publish every show there, any of the comment there and everything in the show. We'll send your copy of music go by. Hey did I tell you that Code in a Castle is back on this year? I heard rumor. Yeah, so it's going to be the last week of September. Uh and it's in
the same castle in Tuscany. So if you missed out and you've you know you you regretted it, go check it out Code in a Castle. And also the video from last year is up there. So anyway, that's all I want to say about that. So all right, let's bring Georgy on. Giorgi Dala kish Philly is a software developer with more than a decade of experience. He works mainly with c sharp as Peanut, Core rest, Maui,
zamorin and any framework, Core AWS and SQL server. So you know, just a couple of couple of interests here and there, just a couple of things. He has also worked with many other frameworks in systems such as graf ql, aspen at, NBC, as pnut, web API, w CF, Avalonia, wind Forms, Oracle, and others. In short, he doesn't know what he wants to be when he grows up. Nice Giorgi is an open source author and contributor on GitHub and a member of the dot
Net Foundation. Welcome Giorgy, thanks for relining me to NERO. I have been listening to it since ten years, so, Ladie, I think. So it's a pleasure to be on the show. Awesome. Yeah, well you're welcome. It's it's great to have you here. We are really getting used to a lot of the people that spent their career listening to dot net rocks now being guests. So it's very cool. It's very cool to have you. So you're you're here to talk about e F queries and debugging them
visually. So that caught my interest. What do you what do you mean by that? Uh? Yeah, so one of the biggest uh uh well, not not disadvantages, but one of the biggest downsides of using the using an O n uh and any kind of O M probably not just a framework qure is that it's it hides the squirl behind the uh leak queries and uh
m hmm. It's it tries to obstruct or all the database related stuff behind the strongly typed quarries and C sharp which is very comfortable, definitely, but it also can can cause some performance issues if you are not careful biting your queries and uh and some people think that you can just uh learnf core and you don't need to look at the aneratedescul or scular is an old language and
we don't need it anymore. But yeah, it's kind of like if your car is going along fine and then it just starts going very slow and you think, oh, this car stinks. I'm going to bring it into the shop, rather than you know, having a look under the hood and actually trying to see what's going on, you might discover the problem. Yeah, and actually it's not as frightening as some people probably think, so for me
personally. For me personally, when I started programming about fifteen or seventeen years already ago, see, there was no oren so if you needed to interrupt to this database, you've had to write your as an ad hoc ascol in C shop code or storage procedures which was even more in full and ye, so yeah, ants to framework is definitely nice, but you should also definitely understand the s qol behind it, and it will change change the way you
write your framework queries and it will also make your code and your application more performance definitely. So is it easy to discover what SQL or sequel is being created under the hood and sent to the SQL server engine with the NITY framework. Yeah, so even without the extensions that I wrote that we will be talking about in a couple of minutes, it's it's still very easy with ANSTI framework with a nicer I think it's two as quils drink building message in activity
framework. That's to to get the SQL and use the SQL or you can just also logging in your application and when you develop your application, you if I use the generative s q in the output window of visual Studio. Let's go back to to SQL string. Is that extension available on the connection on the dB set on the Yeah, it's it's available on on a on I queriableuble as far as I remember. So you just take your query and call
this too. It's called two query strength. If if I remember it correctly and you will get the query strength programmatically or as I said, you can configure logging and you kind of use all the escubal statements in the output window of visuals to deal right. You also hinted at a tool that you wrote that makes it much easier, so let's talk about that. That sounds fun. Yeah, So so my two goes a little bit beyond just cutting the
squal query. So this is Visuals to Do extension you downloaded and the stop directly from the marketplace. We tend to it tirely inside Visuals Studio without linnk it and just searching for it in the extensions. And essentially it's a debugger visualizer. So a depoper visualizer is a kind of extension that lets you visualize the objects when you have are your mouse pointer on the on the variable nice so just just just like you can we all see string or XML or Jason
in a nicely formatted way in visual Studio. When you when you have your mouth your pointer on the eige qualiable variable inside visual Studio and your items will hear in the over lave or whatever it is called in vigosty and it will
say query plan visualizer. So when you click on it, the extension will actually fetch the query ecution plan from the database and display it in a nice graphical HTML format it inside the web you, so you can use the query itself, and also you can use the plan that's the database it well as you can use the plans that the database generated to your query under the hood. Can you tell us one more time what that visual studio extension is called.
Yeah, it's called theF core dot visualizer, okay, and it is this using your Enerity framework dot exceptions library under the hood. Which is the next thing I'd like to talk about. No, no, it is, It doesn't. It's separately. That's a separate library. Okay. So my experience has been if you've got a problem with an NDY framework call that, you should just rewrite it to call a store procedure like that. That's that's
the work around. Like I really really appreciate what you're doing here that Yeah, I've written an expression in link and that translates into this query and sequel server and it's a table scan So it's sucking. But the I mean, I guess the question is is someone actually going to modify the database to make this perform better, or do we just switch to a store procedure and then the DBA can optimize the store procedure. Well, Richard, you're getting in.
You're opening a can of worms here, man, wouldn't it first time? We're going back to the Ornini versus Ted Neward's SmackDown here? Yeah? What do you think anyway? Kirogi, what do you think? Yeah? Well, well, no, you don't necessarily out of town anything to start to put it, Jude Saint Scott, you can u Well, in most cases it's it's either a missing index from your table, or or your query is just written in a way that can't utilize the existing indexes on the table.
Or maybe in some cases you just have to redesign your table because it's it's not design the most optical way. So your queries are going to be slow nowhere, no no matter how hard and no matter what you try. Yeah, I just question, is I didn't write that query, anity framework wrote it? If it's not utilized my index as well? What are my choices here? Like? What what do you what are you actually able to
do? So the most the most common reasons that I have seen that your playery does not use indexes is for example, so this is there's a term
sargeble or surgeible queries. I think. So if you have a condition like there is a date of purse, for example, in the database table, and you want to find all the records where the year is, for example, two thousands, and if you just uh she just call the date parts function in a school sell or date dot year in C sharp and compare it to two thousands, then it's it's it's impossible for the database to use an existing in depths even if it's there, because for for every record it has
to calculate the year from the dates on the fly, and it can't use the intepts. Yeah. Yeah, so it's now going to process every road to do that for you. Yeah. Whereas if you gave it a range, you know, then it could actually write a better where it could be in it. So yeah, So in this case, for example, the solution will be to find our records where data perse is more end two thousand first January and less oi equal than two thousand December thirty one. And in
this case you don't have any more calpulations on the fly. You just give the range as you said that you want all the records where the data pairth value is from this value until this value, and as long as the indexes on the table, it will use the index ent. It will be a lot faster because it will just scan the subset of zeros that it needs to return your results. That's the most common mistake I think I have seen. And it's also easy to make that mistake because when you are started writing your
query, it's natural to write. It's like I said, if you don't think what's going on under the hood. So that's one of the reasons why it's important to understand what's going when you wright to acquirying c shape which and you can't also blames it develop us always because if you have just one hundred or one thousand dollars in your test database, it is going to be fust so they can't even notice that there's a problem on Dozi quotes no, And
then you have a million rows and you notice right away. Yeah, and you could still blame the developers, let's face it, but I could see.
You know, setting a date range is kind of a nuisance because like, do you really go you know, greater than equal to two thousand and one oh one oh one, and you need time to those zeros zero zero and less than you know, twelve thirty one and twenty three fifty nine fifty nine point nine ninety nine or you know, or that'd be less than equal to Like Richard, we said we weren't going to quote code on this show.
We weren't going to read code. But it's such a dead thing to say, hey, if the year in this date is two two thousand, get it. Yeah, just not understanding that you just defeated all in, Like the index doesn't have a chance because it's not sargable because Georgy pulled that one out today, it's the correct but not everybody knows it. But yeah, okay, but I mean that there lies The point here is you're presumably as a developer, you're also responsible to the database and you're just trying to
figure out why. And so you've assembled all the bits together to say, this is the query that's generated, here's the query plan that it did. Yeah, now go figure it out. Like you've now got the ingredients to say, can I can I write this as an expression that will query more effectively or do I have to go to all the other approaches. Yeah, another thing to consider is if we use this saying example, like, if you're searching for records data versus larger than here two thousands, then it can
I use index even if you write it's quietly. But if see if the condition changes and you want records, for example, from now fifty and it turns out that like ninety five percent of your records in your database have data perse which is higher than ninety fifty or ninety twenty or whatever, then the database may decide that it doesn't make sense to use the indepths because I have to return all the almost all the records that are in the table, So
why bos are with the index. So it will still not use the index because it's faster to just scan the whole table and step the indext So you have to be careful with it because depending on the type of data and depending on the conditions that you are putting in the work close, it may decides to use the indevxce in one situation and not use an index in another situation on a different type of records. Sure, so databases are tricky, Yeah, it always is, And like I love the one where they go you
know, greater than January first and less than December thirty first. It's like, you know, you just left off all of this number thirty first people. Yeah, yeah, so it's probably better to just write less than one Genuary of two thousand and one and you yeah, we have anyone. Noah. I hate date math I hate it. I had a date math bug in one of my in my websites just recently about listing gigs, like the
day before the gig. It disappeared from the site. Like, no, just a plus instead of a minus or less than instead of a greater than. Yeah, I love it. I know it's and it's these are the things we chase around, so, you know, being able to see into the data set and answer a bunch of questions. Did I write the link query wrong, did the actual output query being correct? Or just badly perform it? Like how you have a bunch of choices on how to fix it.
If you tweak the database, you tweak your expression, you could switch over to a different methodology, you know, like you have a bunch of choices, but at least you know, you know that's that's that's that's the problem. Yeah. Yeah, so this this extension supports simple seller and postcus so you can you'll see graphical quaripulin fall for post of these databases. M hmm, it's cool. Yeah, you can see if there are any table
scans which which will make your query slow. Yeah, if it's using indepsies, is its doing in deep scan or indepsy or things like sets like reading and understanding quarduplants is a separate science. Probably don't set of skills. Although the documentation is better than it ever was, it's it's easier now than it used to be used to be. Really, you had to know what query plan statements were. Like, I can sense thousands of document database users listening
now, going, ah, sucks to be you. Yeah, if we don't have to write any four loops there, kiddo. Sometimes you need to look for data in your docum in store too, right. Yeah. Now, if there was one right way to do this, everybody would do it. The reality is there's a bunch of ways to be successful, and there's a bunch of ways to get into trouble, and it's good to have tuling. It will help you go down the right path. True, So I
know you said it before. It's just an extension. But when you were explaining it how to use it, I was thinking, what's the name off it? Again? So can you go over like one more time, just how how you would use this? It shows up as an extension. Where does it manifest itself in visual Studio? Yeah you can. Uh. So once you'll install it, you start debugging your runs debubble as you would in any other case. You power over your equeriable variables. So it's the equery
and police a thins. You can't. You can't use a query plan. You need to have an eye queriable and when you holler your mouse on the ee queriable variable in the in visual Studio, you can. You will see a query plant visualizer under the magnifying class that Visual Studio shows whenever you are trying to inspect variables. Yeah, very cool. And when you click on the quare plant visualizer, it will it will open a new window. It will take a second or two to actually fetch the plan from the database,
and it will render the planning in an imbedded wheew control. That's very cool. If see database connection is slow or the query takes more than five seconds, then it will time out because that's the hard timeout limits by the visuals
to do itself, so that's one thing to keep in mind. That's great, and also it's uh, it's not very helpful for queries where you have first or default dacing or COUNTYCIN or similar queries which just materialize the results immediately and you don't have an equerable because for such queries you don't have an equalable
variable. So's you could remote the calls to the two first and count or some and so on, but it's it's not the same query now because you are fetching the coal least, not just count or some or first titan. So it's nice to be able to debug what you're actually using rather than have to piece the debugger just to see it. That's cool. I guess maybe it's time to take a break. When we come back, can we talk
about the Enterity Framework exceptions library. Yeah, just one thing that I wanted to add is that this extension uses existing libraries to render the cirquel server and postlus quibulence. So I wanted to say thanks to the source of those libraries, because without those products, I wouldn't be able to build this extension. So yeah, good point cents again for buildings, a schools, sever and postcuss visualizer libraries. Cool. Excellent, all right, hold that thought.
We'll be right back after these very important messages. And we're back. It's dot net Rocks. I'm Carl Franklin, that's Richard Campbell there, hey, and that is Georgy Dolla Kish Philly, and we're talking about Nity framework and what's going on under the hood. And he's got a great visual studio extension that you can use to see what's going on with your queries under the hood. And I want to bring up this other a couple other actually really great
GitHub reposts that you have. One is Nity framework exceptions and the other is duc dB dot net. But let's talk about the extensions exceptions right now. A new framework exceptions thing. Tell us about that. So this is a libraries that started. I guess most libraries start from an internal usage because some something that I found copying from one project to another, and I decided, so we're a bit in a library and publish thinking that others would find it
useful. So what it does is, again when using anti framework, and let's say you have a table with a unique constraint, for example, email address is a unique constraint in your table, and you are inserting customers or whatever in your table, and if you try to insert a record with the saying email, the database will throw an error because the unique constraint is violated. And when in anti framework, this means that you will get an t
B updates exception in your c sharp code. That think with that is that TB update exception doesn't really tell you whether this was the unique constraint violation or the save the insert fild because of some other error in the database detail somewhere. Yeah, so you you have to get the iner exception of this TB
update exception and gets the innermost exception, the deepest one. It's the start of the whole thing, right, Like, that's the one that's all the way and is the one with the original error, and then it cascades outwards. Yeah that's that's yeah. Usually that's the most interesting one, which gives you the lowest level. Thank you first, yeah, same time, definitely, now you're back. So yeah, it's the it's the lowest level exception,
the one that started all yeah. Yeah, so the lowest level in the inner exception has h if you are if it's sent a skull several database Senitulian sc exception. If it's a postcast database, it will be entergy or whatever it's called exception. And defending on the on the database, you have to reject either the error number property or the error code property or whatever the library user puts there. And then again depending on the database, the error
number made the different between different database engines. So if you want to find the root cause, and if you want to know that it's a unique constraint violation, we have to dig deeper and write some database specific code in your
anti framework code where you are trying to abstruct over the database implementation. So so what this library does is that it adds an interceptor to your anti framework dep context and whenever there is an exception generated from safe changes, it will dig into the innermost exception and translate the database specific error in a and the
in different type of exceptions that is probably by this library. So you can just change your code to catch unique constraint exception and if your code hits that catch block, you now know for sure that this catch block was caught because this catch block was hit because of the unique constraint violation. In the database.
And even if you switch between databases, and if you go from Siquel Sellers to oralclor myuscule or any other major databases, your trackage stases insane because the database obstructed because the at framework solution's library obstructs it along between all the databases. So you don't have to update your code, and you you you just put your exception handling code in the in the touch block, and the expectation is that all the other stuff that's in the exception handling block is just
residual of the initial error. Yeah, you can. You can show that this email addresses already in use or whatever whatever you need. Yeah. So yes. Apart apart from unique constraints, it handles some other cases like when you exceed the length of the column for example, or you provide a now value for the columns that does not allow now and so on. You you will get a strong type exception in these cases instead of generic w update exception.
Right, Okay, should we move on to duc dB. First of all, what is duc dB and why do we need a duct dB dot net for it? Yeah? Deb is a embedded database just like syquol lights. So you don't you don't need to set up any database sever or uh complex configuration. Now complex configuration is needed. It's relatively new, but it's becoming popular in the data science work, especially in the Python community, I think because Python is uh frequently used for data science and data and mancuation and
things in these types of projects. See The main difference between dough deb andscularity is that uscularity is uh transceptional OLI tip oriented database and stuff. Debe is all of database more peered for analytical queries and analytical processing. It's is it all in in memory or is it can it persist? To imagine if it's a memory can persist, well, it can. It can persist to a
disc as well. It has its own database format. It can also run queries on top of CS three files, which is very cool, very cool. The old old CSV files suddenly become queriable. It can also run queries on top of Parket files. And what's also coool is that you can run
queries on top of Jason files. And you can also run quarryspond files that are stored in S three buckets in AWS, so you don't yeah, and if if you are if you have Parket files in S three, it will just fetch the part of the file that is needed to answer your queries by using the HTTP range headers. How do you pass the S three credentials to It has its own secret store, I think, where you can sell your
credentials and for for development purposes. It can also use your a WS credentials from your home directory where your store the dotaland and the all the temporary credentials that you're using. That's cool. So set's shorts over you of w B. It's it's very fast for analytical queries. And if you compare it to panders, which is very popular library in Python, or ollars, which is also a popular library for data manipulation in r r UH, it's it's lastising,
it's it's very fast compared to them. And so doc TB dot net is an ad O provider for doc TB. Yes, yes, that's right. It's an IDEO dot net provider for f t B. And you can query uh f B databases, uh CSV files, parkt files basically whatever DOTB supports, you can do it from a dot net. You can also write to the B tables and doctor B also has these very helpful commands for exporting
the database to CSV or PARKT or whatever style you need. So you can just use this provider to write to B and then should see copy command and it will copy to CSV or PARKT or whatever formats you specify. That's very
cool. So you have your hands and a lot of different technologies, which is you know, kind of typical of people that you know do open source work and stuff these days, but you also have been doing open source and working on other repos as well, and especially as you remember the dot net foundation. Can you can you tell me what's what's going on in the world of open source as you see it right now? What's hot? Well, I think the usual problem, which is Microsoft in most cases versus the open
source community. Well, well maybe maybe it's really verses, but uh, sometimes people expect Microsofts to provide all the libraries they need. Yeah, sometimes sometimes they they are angry when the Microsoft comes. How is new library beclose? It kills the sound existing open source source library. So the usual the usual complaints, the usual complaints, right, and the usual complaints from users who stepped support for free for open source libraries. How's your experience been with
these? I mean you say in your notes here that you received some sponsorship from AWS dot net for TB dot net. That's pretty cool. Huh yeah, it happened this March, so yeah, it's probably useful library if a w S thinks that it's worth the sponsorship, right, so do they find that people on using it on a WS in the cloud? Actually, one of the members of the committee who picked these libraries was asking on Twitter which
library to consider for sponsorship and I mentioned my projects. It didn't get picked that mass but uh but up to a couple of mass layte got this supprise from a w list So wow, was that a one time payment or is it recurring? So it's the client payment of five hundred dollars uh one, yeah, so twote payments. Wow, that's great. Congratulations, thank you. Yeah no, no, no, you're not gonna retire on that. But it's nice to at least take some conversation for it. That's cool.
But it also shows, like you said, that it's an indication that they find it valuable, right mm hmm. And so my question is, you know, why, why is this like something that AWS wants to put the you know, their support behind, and not because it doesn't deserve it, but do they find that their customers are using it in the cloud, Like, is duc dB something that you would use in the cloud as opposed to I don't know, a SEQL server or document database to save time and money.
Well, it's it's not an alternative for simple server, but it can be UH useful for for example, UH just recently I needed to use it's in my UH in my work projects, so I was I'm a little bit biased, I guess, but one one one of our vendors is UH sending a patch of parpet files UH daily when data changes on their side, which we need to import in our data base. Sure, so so we we set up in a w S lambda which uses f B and there's the codes
to quality parpet files from S three. So they approat the parpet files to shared three bucket and the LAMPTA will run in response to the new file and use aptybus to to read the profit files and safe to potrous database. So so yeah, I think it can be useful in h in different use cases.
And and to be honest, I won't be surprised if one day aws U comes out with a new service which uses doctably under the hood, because they have done it frequently with many different open source projects like elastic search and but this is also I think if I'm not mistaken, and probably some other services as well. Yeah, I know your numbers are excellently clearly you're building stuff that helps people when they're starring and forking and contributing. So that's pretty
cool. Yeah, do you get a lot of contributors on some of these projects. I'm just going to take a peek and think, because you kind of do that one on your own. The visualizer, like they're fairly unique products. Takes work. Yeah, So for TB that net I got, I think it's the project with most contributors. I'm not sure in terms of source code how is it, but I think it's at like ten or fifteen contributors. Some of the contributions may be small, but I remember one or
two contributors who contributed quite a significant portion of the code, right. And it's definite to help because when you are coding alone all the time these projects, it can become boring sometimes or if can become tired, which is obvious, and it's nice to have a person who who helps even from time to time because we get tired. Also, sure, sure. I can't write the same encode every day, you know, gets old after a while. Yeah, indeed, Yeah, that's that's probably one one more reasons why why
the sponsorship is important, because it's it's it's it's a show. It's a way to say same kyoto the person who who spends their own time or people on something for me? Is there anything that we missed in these projects that you'd want to want to mention on? Entity framework exceptances is the most popular project open source projects that I held with h more than a million downloads in case of Siquo, sellulent postcars and more than one thousand stars. Don't get
up. That's great. And what's your role that foundation? Do you sit on some committees? No? No, I just wanted to join it. Remember what was Yeah? What was going on? Remember? But you sound like someone who's you know, doing serious working open source, so you could have some good conversations there. They're all trying to get better. Yeah, well, what are you working on now? Or is there anything new that
that you can share? Uh? In the works, it's uh, it's the sill features to thew dot nets library say they have supports for composite types like leasts and stops and uh net and so on. So currently you can't insert those data types from dot nets and looking towards making it possible to write those types to the database from the dot net code. Nice right, sounds like you're a busy guy. Is it that you You must really love doing this? Do you and do you have a life outside of programming or is
this like your twenty four to seven obsession. It's a lot of projects. Yeah, yeah, yeah. There is this joke when so software engineer goes on vacation and finally I can work on my projects now. Oh yeah, all right, so this is it's been great talking to you, and wow, what a jam. This is great stuff. People need to spend some time in these repositories and take a look around and some tools that can help
you. Absolutely. Yeah. So what one one thing that I I think I found it on Twitter aple a couple of weeks have always sought towards The discussion was why do so engineers write code after work end? But why do they spend their time on something that's uh that they do as a job And and one of the comments was that engineers like solving problems. They enjoy it and they work on h so they spend time after the work. People say
enjoy solving the problems. So they are just doing what they was they enjoy. So yeah, I think that's a good explanation, and it's true, It's absolutely true. And yeah, sometimes I find it hard to explain to other people, like why are you doing a tense I just yeah, yeah, I did too, and I do it for fun, you know, when I'm looking around and saying, you know, I got a little lull here, Shall I like learn some new music on guitar? Yeah, no, I'm going to write some code, Yeah for sure. All right,
Georgie. Great talking to you, and thanks for thanks for sharing the time with us. Thanks again, all right, and we'll talk to you next time on dot net rocks. Dot net Rocks is brought to you by Franklin's Net and produced by Pop Studios, a full service audio, video and post production facility located physically in New London, Connecticut, and of course in the cloud online at pwop dot com. Visit our website at d O T N E t R O c k S dot com for RSS feeds, downloads,
mobile apps, comments, and access to the full archives. Going back to show number one recorded in September two thousand and two. And make sure you check out our sponsors. They keep us in business. Now go write some code. See you next time you got jamdavans to the Nest area.
