Love to welcome everybody back to the Independent Investor Channel. We have a very special guest, a returning guest, Mr. Kyle Floyd. He is the CEO of Vox Royalty. We are proud to have him on for an extra special update on the company's progress here as we enter into 2022. Vox Royalty has got to the ball rolling. Kyle, good evening to you, my friend. Thank you so much for your time. Please let the viewers know what we've got here coming down the pike here for Q1. Yeah. Well, Ryan, thanks first off for having us back on the program. Always a privilege to be with you. Really excited to come on and announce Record Q1 Revenue for Vox Royalty Corp. Really a result that exceeded our lofty expectations internally. Excited to deliver this news to the market and really what is a continuance of the strength of our business and what is obviously a very volatile market. The macroeconomic backdrop is certainly uncertain. But for Vox, I've yet to see a stronger market for our business and for the fundamentals of our business. And so we continue to execute this quarter just to put it in perspective. This quarter alone was our initial guidance for the entire year of 2021. We ended up obviously raising that guidance and handing some pretty lofty expectations for 2021. But that puts in perspective how significant this quarterly revenue is. And it's really our business model harnessing what's available to us based on our competitive advantages and what in the broader markets is obviously very difficult for us right now. We find ourselves in a very opportunistic state. Dilip, I think Kyle, you hit it on the head and I think you're one of the biggest best kept secrets in the market. I think it's going to be very difficult to keep a lid on this. Okay, we're talking just shy of $1.5 million in the US, just shy of $1.9 million CAD for the quarter alone. I looked at this, Kyle, I thought it was a typo. But I've done a self-study on your company. I've been intimately following you guys and you guys have got all the pedigree. From your business plan, your team and your execution, it's second to none compared to the landscape. Can you give us some idea of where that revenue came from in Q1 in 2022? Yeah, it wasn't just one factor that was driving this revenue. I think that's what's great and something for investors to keep in mind when they're considering other investments and Vox is diversification of revenue streams. So we have five producing assets and this quarter saw a full quarter from our royalty over the segment of Goldmine. And so that was really significant in that they sustained higher production levels and we're seeing a very high Gold price and what people lose sight of is $1,800, $1,900 Gold is fantastic. Our business model is priced in backwardation. Our business model is priced in lower metal prices in the future, not higher metal prices or not even flat metal prices. So when that happens, that's tremendously productive for a business like Vox. That's atypical. Most of our peers in the industry and comps in the industry, they have a tendency, I think sometimes to get caught up in that Gold's going to $10,000 or $5,000. That's not our business model. Our business model is limiting risk but increasing positive exposure for our shareholders. And so that was a big driver. Also, we saw production increases in our producing iron ore royalty in Western Australia and sustained higher prices in iron ore. So really it is the benefit of, I would say not just one asset, but multiple assets achieving higher production numbers and sustained high metal prices, which is what our business was built to capture for investors. Yeah, absolutely. And just for anybody that's not familiar with Vox royalty, I'm going to leave all the information in the description below. You're going to want to kick over. Vox royalty has provided their entire suite of their entire portfolio from their exploration piece of their portfolio up to their development stage and what Kyle was alluding to the five net producing assets, the Segolola and the Kulia Knobbing. As we look forward into the future, are these assets going to continue to be the payoff from quarter to quarter? Or are we going to look to some other assets to supplement the revenue as we look forward into 2022, Kyle? Yeah, again, it's a really exciting period of time for us in that what's already in the portfolio, that's not counting what we'll be able to go acquire and bring in at great value. So new royalties that we can go acquire. What we call the organic growth, what we've already got in the portfolio doesn't require any more capital from us for those assets. They're performing exceedingly well. So yes, these two assets we expect to be a mainstay of our portfolio over the next couple of years. However, we're expecting to go from five production stage assets to eight production stage assets by the end of this year. So that's significant growth. And if you recall when we went public, we had one producing asset that was back in May 2020. So we're buying most of these assets pre-production. And then our mining engineers and geologists have done the hard work to project these assets out. And we're realizing the benefits of that in a very material way. And so the other major catalyst is the Janet IV royalty, which we bought last year. That is undergoing a $400 million expansion process that makes it the largest Heaplease Gold project in all of Australia. This revenue is not factoring that in at all. So that is expected to kick in the back half of this year. So really, all cylinders are firing well. We're expecting to bring in more deals beyond what we already have in the portfolio. But if we didn't bring in anything else, we're trading at such a tremendous discount to our peers. And the business we expect, we have current revenue, we have a huge stable of development stage assets that we cherry-picked and hand-selected to bring into our portfolio that we believe is going to create this kind of growth for years and years to come for our shareholders. And again, we don't have to supply operational cash to keep these assets running. And we're not exposed to the inflationary pressures they're eating away at the margins of mining companies. So we're in a very nuanced, I think, beneficial position to keep realizing shareholder games.  And your execution is top notch. You guys are the number one royalty company that I cover. And compared to the peers, what Kyle's talking about is the net asset value. You guys trade as low compared to your peers as any that I've seen. Last I checked, you guys were 0.7 nav, which is absolutely a nevig. So for your fundamental investors that are looking at the opportunity here with Vox, listen to what Kyle's talking about coming off of a record-breaking quarter, moving into 2022 with all things firing. Can you talk a little bit, Kyle, about you talked a little bit about the gold price being high right now. Are you sensing that these results are going to be exclusive to Vox royalty, or are you sensing that there is some widespread success across the commodities market as a whole? Well, it's a complex matrix really for investors right now to be considering, because the mining companies themselves, yes, metal prices are very buoyant, but metal prices have been kind of where they are now for over a year. And the problem is inflation is really a disease that's not slowing down right now. And so that's eating away at the margins of mining companies. I think you're going to see that more acutely affecting their income statements over the coming quarters. And so I can't speak broadly for the sector. It does typically perform well in inflationary regimes, but I would have to say the royalty companies that are showing that they can grow their revenue, grow their profitability metrics, and really endure the benefit of expanding margins, I think are going to be the royalty companies that really outperform as a subset of the commodity sector. And so we've done a very good job of diversifying our business, yet we're a small cap company trading in a discount with tremendous growth. And in terms of return on invested capital, nobody in the sector is matching with Vox Royalty Corp was doing. And I think that's a really key metric that doesn't get talked about a lot, but it's showing and it's validating that our ability to find great royalties at great value and have that value really materialized for our shareholders is happening and is paying off. And so we expect that to continue to be the case.  But in terms of the broader market, where should investors be looking at? I think there's a certain class of royalty company that's presenting a really unique opportunity right now for investors. And amazingly, I don't think the market is entirely woken up to that yet, but I think that it will. No, I agree with you. And I think the sky's the limit for you guys.  All right, I look at the top five of your net producing assets, three out of the five are out of Australia. So if you can just kind of summarize the quality of the top end of your portfolio, Kyle, please understand what's driving a lot of this value at the top end of your net asset producing, please. Yeah, this is an exciting topic to touch on for Vox and that we really focused on Australia. We had competitive advantage in Australia and we executed on those advantages really, really well. And so we have the second largest holding of hard rock mining royalties in Australia, only after Franco Nevada, which is the largest royalty company in the sector at over a $30 billion market cap. So we made a lot of progress in a very short period of time, accumulating a fantastic portfolio there. And so almost 80% of our portfolio is either in Australia, Canada, the US, but it's mainly dominated Western Australia. And Western Australia was just named the best mining jurisdiction by the Fraser Institute for 2021. We've been telling people for years, if you want to bring particularly a gold mine, but it just isn't exclusive to gold, but if you want to bring a gold mine into production and have that, I would say, stability of rule, of rule of law, of regulations, of quality people operating, quality operations, doing things the right way, Western Australia is almost like no other place on earth. And so we are enjoying the benefit of that exposure and in a really tremendous way. So a lot of the growth is due to what's happening in Western Australia and us buying royalties that are now coming into production and increasing their production numbers and realizing high metal prices. And two of the assets that we expect to come online this year out of the three, so that will take us from five to eight producing assets are in Western Australia. And the very significant expansion of Janet Ivy that we touched on, that's also a Western Australian asset. So really, we're in the right mining jurisdiction, realizing the right kind of results for our investors. I can't find any fault in your company, you have no debt, you've got cash, you've got a wide swath, one of the most healthy portfolios of assets, as deep as your database of over 8,000, we've touched on that previously. But I do want to, I can't talk to you, Kyle, without giving ample credit to your team and your strategic business plan and vision for how you identify these royalties and how you bring them under the Vox umbrella. Can you speak a little bit about the team, your strategy and how they deserve some of this credit and kudos for a record-breaking quarter? Yeah, and I appreciate that question, Ryan, because we have systematically built a business with the benefit of very patient shareholders at the outset that allowed us to create a true competitive advantage for our shareholders and for our company that we continue to be able to execute on. And it really started with finding a technical team that was very experienced in the world of royalties and royalty acquisition. So it's a team of mining engineers and geologists that had decades of experience in royalties, understanding the technical elements that mining engineering, the geological risks, the metallurgy and bringing that skill set mixed in with their tremendous experience around royalties under one roof and then adding on to that team continuously over the last couple of years to create this engine. And then this engine is centered around what is the world's largest proprietary database of third-party royalties. And so having the people that are able to really extract the value from this database and find interesting opportunities and then be able to bring those opportunities into the portfolio is somewhat unprecedented in our sector and is obviously enabling a lot of the value that we're creating. You guys are top tier player in this space, there's no doubt about it. I'm investing most of my life 25 years plus and it's a treat for me to review your company. You guys are just knocking it out of the park. For investors out there that are interested in more information, you need to kick over to www.voxroyalty.com. They've got a phenomenal website, their entire suite of the portfolio news releases as well as the investor presentation. If you want to email info at www.voxroyalty.com and just want to congratulate you and the team on the quarter, I'll give you the last word, Kyle. Well, thank you, Ryan. It's really been a tremendous quarter. We are in such a fantastic position. I understand and sympathetic to many investors out there that are struggling with the market today and the uncertainty that it presents. But what I will say is, if you're looking for businesses that are thriving in the current market environment, continue to take advantage of the market environment. Vox is really in good position to keep doing that and we are doing that. This past record revenue quarter for us is really just the validation of our ability to continue executing. I'm excited about what we have in front of us. These types of markets create a lot of opportunity for us to find new royalties at great value and bring those into the portfolio. Really, all facets of our business are in fantastic shape. It's exciting for us as the management. It's a privilege to work for our shareholders and excited that we could share this news with your audience, Ryan. So, thank you. Absolutely. As we close it out here, record breaking Q1 earnings for Vox Royalty well deserved. It's a breadth of many hands that go into a result like that and highest congratulations to you and the Vox Royalty team. Keep us posted. Going into 2022, we're going to be tracking your progress very closely. Kyle, again, congratulations and thank you so much for coming on and sharing your breaking news with our independent investor audience. Thanks, Ryan. It's always my privilege. I appreciate it. You bet. Take it easy.


All right. I'll go ahead and get started here. Welcome, everybody. I'm Jim Rennie, and this is Licensing Agreements 101, the Creative Commons license. And if anybody here doesn't know what the Creative Commons license is, basically it allows content creators to license their content, but reserves some rights in addition. We're going to get into all that in just a second. But before we do, because we're going to be talking about the law and legal theories, copyright, we have to have a disclaimer. All right. This presentation is for educational purposes only. It is not legal advice, only my opinion on what the law is. I am not a lawyer yet. All right. Entertainment. I don't know if you're going to be entertained by this, but you could be. All right. And if you require legal advice, you should talk to a lawyer who's licensed to practice law where you live, either your state or your country, if you don't live in the US. All right. Now we can get on to the show. Here's what we're going to be doing over the next 45 minutes or so. I'll have a quick introduction, a little more about who I am and why I'm here, and then short background on the Creative Commons license, who created it, why it was created, and then we're going to walk through the license section by section. But don't worry, I'm not actually going to read the license to you. You should read it yourself. And it would be terribly, terribly boring for me to stand up here and read the license to you. But we are going to go through section by section. So after the con, if you want to go back and compare the actual license to what we talked about here, you could probably teach yourself a little more about the law. And then we're going to have how to maximize your protection under the license, which is really short. There's like two things you need to know to be fully covered under the Creative Commons license. And if we have time at the end, we will have question and answer, although I'm not promising anything, but hopefully we will have time. All right, first of all, like I said, my name is Jim, and I'm not affiliated with the Creative Commons in any way. You can take that as a plus or a minus. I am a law student currently studying law in New York City, so like I said, I'm not a lawyer yet. Hopefully I will be. And why am I talking about the Creative Commons license? And that breaks down into two sections. First, it's because a lot of people all across the internet are starting to use the Creative Commons license for their content. There's a lot of commercial services that utilize the Creative Commons license. And on the other hand, why am I talking about Creative Commons license instead of, say, the GPL? And the answer to that is because the Creative Commons license is a little easier to understand, easier to get through in 50 minutes. And because a lot of what I'm talking about today will apply to the GPL and other licensing agreements. So you can take what you've learned and apply it to other licenses, hopefully. And I'm talking about the Creative Commons because it's really important to know your rights. And you'll see, basically, you are giving up your rights to the public when you license your content under this license. And you really need to know how to protect yourself, what to expect. And if you're a user of the content, you need to make sure that you follow the license correctly so that you don't breach the license and could end up in a lawsuit, which nobody wants. OK. So what kind of people use the Creative Commons license? Mostly people who are creating content, not so much coders and programmers, lots of writers and bloggers, et cetera. And these commercial services have built in Creative Commons licensing, like movable type, type pad for bloggers, Flickr, you can go search for Creative Commons photos. And even Yahoo and LimeWire have searches specifically for Creative Commons license material. And I'm sure the number of commercial services that utilize Creative Commons is going to grow as the years go on. So the Creative Commons itself is a nonprofit organization. And they're originally founded at Harvard in 2001 by such notable people as Lawrence Lessig, who is on the board. And it's currently at Stanford Law School, center for internet law and society, which is run by Jennifer Granick, who is going to be speaking here, I think, in about an hour and 45 minutes. Now, the Creative Commons license, why was it created? Well, first of all, it really was meant to be a non-coder counterpart to the GPL. And there was the perceived need. What was the need? Well, under federal and state law, originally, there was full copyright control and public domain on the other side, full copyright control, meaning the creator of the content had full control over who could use it, when they could use it, why they could use it, except for fair use. All right, thank you. But in general, the creator of the content dictated the terms when anybody could use it. On the other hand, there was public domain, which meant the public could use it any time they wanted to. And the original creator had no control over their content. And so there was a need in the community for an in between point. And that's what the Creative Commons license really is, in between copyright control and public domain. And of course, there's the free software ideals that information wants to be free. We want to share our content with others so that we can all be more creative, build on each other's content. We don't want to hide our content. Just use it ourselves. So when you select a Creative Commons license, there are actually several options you can choose from. And attribution is always required. You have to have the attribution clause in your Creative Commons license. But the non-commercial use requirement and share like requirement, also known as copy left, those are optional. But we're going to go through those today. And today we're going through the version 2.5 license, which I found pretty interesting. Because my personal blog, I think, is still under version 1.0. I didn't actually realize Creative Commons revs their licenses occasionally. So you should go home and check if your content, what version is licensed under. The Creative Commons still keeps the old versions up and on the web, so you're not in any danger if you have an old version of it. The license not being valid, but they do update the legal language from time to time. All right. Before we get into the actual wording of the Creative Commons license, we have to go through over some basic legal terms concerning licensing agreements. And the first is, what exactly is a license? A license is basically giving some of your rights or privileges to someone else who doesn't have them. So for example, we're all sitting here in the parking lot of the Alexis Park today, but this is private property. And normally, if you're on someone's private property without permission, you can be arrested for trespassing. So the Alexis Park has granted a license to DefCon and basically to us to be here without trespassing. So that's what a license is. They're granting the right of use of the property to us for a limited amount of time. All right. I know this is called licensing agreements, but the Creative Commons license is actually a contract. And so we have to define what's a contract. A contract is an agreement between at least two parties and you have to exchange something for there to be a valid contract. If it's only one person giving something to someone else that's a gift and not a contract. So there has to be an exchange going on. And the parties have to act as if they're under the contract. You do not have to sign a contract for it to be valid. You just have to act as though you modify your behavior so that you fall under the contract. Act as though you're using the content as if you're under the contract and you will be bound to the contract. And contracts are governed by state law. This is very important. This is why I said at the beginning you need to talk to lawyers who live in your state if you have questions about the law. Because all contract law is governed by state law and varies from state to state. So to be sure, you always have to talk to a lawyer in your state. So all right, we combine those two, a contract and a license, and we get a licensing agreement. And under the Creative Commons, what the agreement is, is the creator of the content allows people to use that content, how they wish, with certain restrictions. And the content user agrees to those restrictions and has to follow them, which is called a legal detriment. Because they're obeying additional rules that they wouldn't have had to obey otherwise. And so that creates a licensing agreement. Sorry, just a second. OK. So I know a lot of you are sitting out there, or maybe some of you, and you're thinking, well, this is all about copyright and what is copyright. And copyright is under federal law. Why does he keep talking about state law, and why state law is important? This goes back to what I said before. Basically, federal copyright law creates this bundle of rights that you have any time you create your content. And your content is copyrighted the instant you create it. You don't have to do anything special to gain copyrights. But once you gain those rights and parcel them out to other people through licensing agreements, that's a contract, and contracts are always falling under state law. So unless the contract has language that goes directly against federal law in some way, you should always be covered under state law. All right, now we're going to get into some of the actual language of the Creative Commons Agreement. And as I go through, I'm going to try to emphasize what each section means for you, what the practical implications are of each section. And so the first one is they define terms they use throughout the contract. And they define actually six or seven terms, but most important for us are these two, collective works and derivative works. Now collective work is any work that redistributes content that is unmodified, but in a collection with other content. Obvious examples are like a mixed CD with the original version of the song with other songs or a collection of short stories. Those are collective works. They have the unmodified work bundled with other works. Now derivative works build upon or change the original work that's being licensed. So again, obvious examples are remixes of songs. Or say if there's a novel and you create a sequel based on the characters or situations in the first novel, that's a derivative work because you're reusing that person's ideas. And a work under Creative Commons, a work is either collective or derivative, but not both. And my guess would be if you had a collection of derivative works, you'd probably fall under the derivative works section. At least that's my impression. All right, section two. Section two is important because it reminds us that the Creative Commons license explicitly does not want to impede upon fair use rights. Fair use rights are still intact. And what is fair use? It means that any content that's out there under normal federal copyright, you can use in a limited way. Like for example, if you're writing a book review, you can quote some dialogue from the book. And that's a fair use, probably, because you're not republishing the whole work. And it's for critique.  They can choose to follow fair use instead. You're making an offer for a contract for them to use the Creative Commons, but they don't have to agree to it. They can use fair use. And it also does not restrict first sale rights. The creator of the content retains all rights to sell their work and license it in other ways. And there are also other copyright privileges, which I don't want to get into, because I'll be here for another hour. All right, section three, the license grant. Now how is the Creative Commons license being granted? It's a worldwide, royalty-free, non-exclusive, perpetual license. So most of these are pretty self-explanatory. Worldwide, obviously, anybody in the world can use it. You're not restricting only US use or distribution. Royalty-free, you don't have to pay anything, ever, if you use a work under the Creative Commons. Non-exclusive, anybody who wants to can come use your content and perpetual, meaning it lasts for the life of the copyright, which in the US is 70 years after the original creator's death, at least for written works. And I actually forgot to look. Is that right for all works? You're not even. OK. Which we're assuming all of us are natural people here. And that, all right, no. But I believe Congress keeps extending the deadline for corporate created works. That's Disney's fault, in a way, because they don't want to lose the Mickey Mouse copyright. Section three, continuing on, is what exactly is being granted. And you have, under the Creative Commons license, if you want to utilize someone's work, you have the right to reproduce it as a collective work, or create derivative works. And you also have public performance rights, which are very important. You're not limited to creating work for your personal enjoyment. You have the right to create it for everybody's enjoyment. Section four is the share alike, also popularly known as copy left. And there are two different sections, protections for both collective and derivative works, and protections just for collective and just for derivative works. So basically, share alike or copy left, if you don't know, it requires the creator of a collective or derivative work to also place their work under the Creative Commons license so the license gets perpetuated down the line. And so that the work will always be in the Creative Commons, and everybody can always enjoy it. Now you have to include a copy of the Creative Commons license, or at least a pointer to it. And you may not sub-license the work, which is a short quote, which basically means that you're not allowed, it means several things legally, but basically it means that you're not allowed to license only part of the work or license it for a limited time. You have to use the entire Creative Commons license. You can't change the license. You can't limit the license in any way. And there are restrictions on adding additional copy protection. You're not allowed to add additional copy protections to work to create if you're utilizing Creative Commons content. So for example, if your original work was something in MP3, which is pretty widely usable, you're not allowed to then create a derivative work and place it in like a proprietary player with additional copy protection. You have to keep the amount of copy protection, or presumably less than it, in a collective or derivative work, which is a nice touch so that we're not all stuck in DMCA problems. All right, protections just for collective works. And this is a pretty cool protection that the Creative Commons has provided. All right, if someone is using your work in a collective work, you can request that they remove the attribution. Now attribution is normally required, but you can request they remove it. So for example, say like the RIAA decides to use your work, which they could. Anybody can use it. And there's your name plastered big and bold as the creator of this work right up next to the RIAA who are distributing it. And you decide, you know, I really don't need that. You can request that they remove your name from your work. And it'll just be anonymous from that point on. The only caveat to this is the request has to be reasonable. So say they print 1,000 copies of a book with your work in it, and they distributed it to bookstores across the country. You can't call them up and make them recall all the books from the bookstore and destroy them. You can, however, require them not to put your name on the work from that point forward. All right, protections just for derivative. The distributor can pick a substantially similar license. Now what this means is there are key elements to Creative Commons licenses, the ones you choose when you pick your license. Like today we're doing attribution, non-commercial, share alike. As long as you keep those main elements, you can change the country that the license supplies to. So let's say someone takes your music that was licensed under Creative Commons, someone in the UK. They're allowed to change it from the US license to the UK license as long as they keep those main elements. And so all the smart lawyers at the Creative Commons, I'm sure, are trying very hard to make the licenses as similar as possible, country to country. So this is one of those places where we trust the Creative Commons that they're doing that. And I'm sure they are. So just if you have content out there and you see the license has changed to a different country, don't be worried. This is perfectly acceptable. All right, foresee non-commercial use. I have to admit this is the one part of the license that is kind of bizarre, because here's the quote for the non-commercial use clause. A non-commercial use means you cannot use the word quote in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation.  And then the second thing I thought was I could make a lot of money litigating about this pretty easily. Because I mean, terms like primarily intended, commercial advantage, these are very squishy terms. They're not very exact. And these are the kind of terms that lawyers argue about and spend tons of money arguing about all the time. And I actually had a chance to talk to Wendy Seltzer from the EFF about this clause because I was mystified by it. And she said they wanted to have a little bit of a wider clause to catch more commercial uses in this. And which is a good thing, however, at the expense of certainty. So what's primarily intended? What's commercial advantage? I can't tell you, yes. One example I could think of was say Amazon decides to print up Creative Commons works and sell them on their website, but they sell them at cost so they're not making any money off the work. However, then they start to advertise, hey, we're the only place on the internet you can come and get printed versions of Creative Commons works. Aren't we great? You should come visit amazon.com. That would probably be commercial advantage because they're gaining reputation, they're spending advertising, getting PR from it. Now there's a special exception for file sharing and P2P applications. If anybody's followed the Groxter case, those in the Supreme Court, one of the things the Supreme Court didn't really like about Groxter is that it had banner ads next to people's copyrighted content. And so they said that Groxter was profiting from everybody's content because they had these banner ads and the more users they had on their service, the more money they made off the ads. The Creative Commons says that by definition, file sharing and P2P applications do not gain commercial advantage from distributing Creative Commons works. So your Creative Commons works can always be distributed across file sharing applications and there's never a problem with that. This is the attribution clause and what's required to properly attribute someone under the Creative Commons. So if you're a user of content, you wanna take special note of these obviously because if you don't attribute someone properly, theoretically you could get sued or you're at least in breach of the contract. And breach is the fancy lawyer word for you're not following the contract and could get sued. So you have to include the notice that's under the Creative Commons, the name of the original author or their pseudonym if they don't have a real name. It explicitly states that the pseudonyms work fine. The title of the work and a pointer to the work if there is one. Now for derivative works, they require special credit such as based on the original novel by so and so, based on the original song by so and so. So as long as you do all of these things when you reuse a work, you should be in the clear. All right, this is actually more bizarre than the commercial advantage stuff. And I think this just got added in a recent version of the license. There's a section purely for music royalties and it reserves the right of the content creator to collect royalties if there's a commercial performance. However, if you remember, we already said this is a royalty free license and you're not allowed to use it commercially. So now there's a section basically saying if you break your promise to use it commercially, I can break my promise to not require royalties, but only for music. No, audio recordings. Printed work is not covered. Probably not. He was asking if he creates a work, if there's a printed work as the original work, he creates a spoken word version. Is that under the music royalty section? And I don't think so. If he sings it. No, I think it's based on what the original work is and if the original work is music or not. And this is totally bizarre and I don't understand this section at all because when we go on later, you'll see that once someone breaches the non-commercial use section, they're pretty screwed. And so the only thing I could think of for why this section is now in the license is to give judges a clue as to how to define damages when someone gets sued for commercially performing music. That's the only thing I could come up with. Otherwise, this clause seems sort of out of place.  All right, next section we have the warranty disclaimer. Now, this isn't as big a deal for people who do creative works like writings, photography, music. This is much bigger deal for coders. Coders should be much more worried about warranties than they are. But that's a different talk. Basically, under state law, states place in a way, they place language into every contract. And these are called implied warranties. Basically saying that your work is not, easier examples are for coders, so I'm gonna do one. An implied warranty for programming would be that your work's not going to format someone's hard drive or destroy their computer if they use it because there's an implied warranty that it actually does what it says it does and won't screw someone over. However, for content creators, it's kind of like, I don't know, what's a photograph gonna do to you? Do to your computer. The big one is the non-infringement clause which basically says, here's this content I made, I'm making no guarantees that it's not infringing on someone else's content. And don't come sue me if it is. The problem with all this is that some states do not allow you to waive these warranties. This section attempts to do that, but not all states allow that. And this is a purely state by state thing and I cannot give you guidance about what your state does with implied warranties. This is something, if you're concerned about it, that you need to talk to a lawyer. But for most content users, most is not a big deal. Content creators, excuse me. Section six is very similar, it's the limit on liability. Basically attempting to shield the original creator from lawsuits based on their work. And once again, this very state by state is under the same category as the attempted waiver of warranty in the previous section. So it's another thing, if you're worried about possible liability because of your work, you should probably go talk to a lawyer. I would say 99% of us who have blogs with our rants and photos don't really care. No one's gonna sue us, but if you have more controversial work, if your work might be found obscene, for example, this might be a problem.  All right, section seven. What happens when somebody violates the license or breaches the license? Any breach by the content users immediately ends the license. Immediate instant license is over. And this is a pretty cool protection because you're out there offering your work to people on the internet. You don't know who's downloading the work. You don't know who's using the work. You probably will never even know who's redistributing it or creating derivative works.  None of that is required. The license terminates instantly if the content user breaches. Yeah. So basically there's a chain of licenses you're saying. Oh, I see. So they're saying like my example for you can request your attribution be removed. And you're asking if someone then uses the work where the attribution has been removed, they don't know who you are, can you then, are they in breach for not attributing you? Right. That's a good question. And I don't have a good answer right now. I'm not sure, because resharing derivatives many times, derivative works many times is one of the really hard questions about copy left in general. And I'm not gonna attempt to solve it right now. And as it says here, the only sections of the license that don't end when someone breaches are sections five and six, the ones limiting warranties and liability. So you're still protected from being sued. However, the content user no longer has any rights and it reverts back to federal copyright controls, which means they have very little rights. And if they're creating a derivative work, they're probably screwed under federal copyright. What happens when you wanna revoke the license, you wanna take your work back out of the Creative Commons? And the short answer is you can't, because remember we said the license is perpetual. And you'll see in some upcoming sections that there's even bigger issues for the content creator if they wanna remove their content from Creative Commons. The long version is you could create a fork in your content, which is an easy concept in the coder world. It's kind of a bizarre concept in the content world. Basically, since you can't revoke, anybody who's already downloaded your picture or whatever and is reusing it, you can't tell them to stop. They retain that license as long as they want to. It's perpetual. You can remove the offer of the contract for future people so future users can't download that picture under Creative Commons, but those people who already have a license will retain the license. So then you have two versions potentially of the exact same content existing under different licensing arrangements. The exact same content. If it's a photograph, for example, it could be exactly the same, but the people who already have a license, you can't take it back from them. Or you can, but then you'd be in breach and you could get sued instead. He asked what the evidentiary requirement is, and I'm not a lawyer, and I can't tell you. And it will depend on the state, and I couldn't tell you even if I knew, because that would be legal advice. All right, here's the reason why the content creator is in some trouble if they want to remove their license from the Creative Commons. The Creative Commons has language where basically if you own the content creator and you're licensing it under Creative Commons, you promise with this contract to re-license it every time a content user wants you to. Every time they're redistributing or performing the work, you are automatically renewing their license. And I'm under the impression this is some legal footwork to get around rules about perpetuity, and yeah, are you a law student? But yeah, there's rules against perpetuity, which are extremely complicated and I don't want to talk about. But basically, this gets around it by the content creator re-grants the license every time the content user needs one. And so that's why the content creator is gonna be put in breach if they stop re-granting the license. This is the severability clause and basically says that if one part of the Creative Commons license is found to be void, the rest of the contract will still be valid. So we talked earlier about those warranty and liability sections and how those vary state by state and they may not be valid in your state. This is saying that if some judge says, hey, those warranty sections are no good, I'm gonna strike those out of the Creative Commons license in this situation, the rest of the contract will live on and continue to operate. You'll be continued to have your protections and you'll be able to use the work. And so that's, this is a pretty cool protection from the Creative Commons people. This is not a required thing. There's many contracts where as soon as one section is found void, the whole thing is found void. All right, section 8D waiver. So waiver is knowingly giving up a right that you have under a contract. Waiver basically can completely remove a section of the contract. It cannot modify or add to the Creative Commons license, but you can completely remove a section by waiving it. And this is not something you generally want to do. And the Creative Commons has made it exceptionally hard for you to do it. Your waiver must be in writing and it must be physically signed by both parties. Now under normal law, you can waive things by accident. And this happens all the time. The Creative Commons is helping protect you by making sure you really want to remove part of the licensing agreement before you actually do it. So for example, if someone comes to you, a company comes to you and says, hey, we love your work, it's really great, but we want to use it commercially. But we're willing to abide by the other terms of the license, but we need to use it commercially. We want to make some money off your content. This is the way you could theoretically do that. You could waive the non-commercial use clause using waiver and allow them to use it commercially, make an exception to the licensing agreement, but you don't want to do this normally. The exception is just for the one company, the person who's signing the agreement. It's only valid for them. It was, yeah.  Basically, the Creative Commons, they're saying they created this license for you, they created this license for us all to use so that we can distribute our content more openly so that people can reuse it, but it's not their fault if something goes bad. And even if it is, even if you think it is, please don't sue the Creative Commons. They're nice people. Thank you, EFF. How to maximize your protection under the Creative Commons license? There's only two things, well, not only, but there's two things that are really important for you to know. You need to make sure the content users are bound to the license and make sure content users know what content is covered by the license. All right, first, how do you make sure content users are bound to the license? And the answer is make sure they can read the contract, not make sure they do read it, make sure they can read it. That's why we've all seen those obnoxious pop-ups that happen right after we install software, the EULA that pops up in a really obnoxious window. You have to click I accept because the commercial companies are making sure that you have an opportunity to read the contract. Under the law, as long as you have an opportunity to read the contract, you are legally assumed to have read the contract. And even if you didn't, no court will ever accept the excuse of I didn't read the contract, ever, ever, ever. If you only learn one thing from the talk, it should be that not reading a contract won't help you. In fact, it'll probably hurt you. So you just have to make sure that people have an opportunity to read the license. Don't put the copyright notice at the bottom of the page in six-point font saying this page covered by Creative Commons. You don't want to hide it away. At least have the little Creative Commons icon, you know, a New Year navigation like most people have that says some rights reserved. That should be enough, but don't hide it away. Put it in a prominent place. The next part is make sure you let everybody know what part of your site is covered. A lot of sites I see just have the little Creative Commons icon saying this site covered by Creative Commons, some rights reserved. But it's not always clear exactly what content they mean. If you have a mix of text and pictures, is the text covered not the pictures? Are they both under Creative Commons? Is your site design covered by Creative Commons? Is your site logo covered? Is your CSS file covered? Who knows? So the important part is clearly tell people what parts are covered by the license. Just put a little line before the icon that says all text on the site covered by the Creative Commons or all pictures on the site covered by Creative Commons or all content, right? If you do that, you'll be way ahead of the game. And it really makes it easier for content users to so they know which content they can use and which they can't. And please put a copyright or Creative Commons notice on every page that you want to release under the Creative Commons. Someone might deep link to your site and someone coming to your site may not be aware that this deep linked page with no icon is covered under the Creative Commons. So to be safe, put the icon on every page. Okay. Now, I've talked a lot about people getting sued and bad things that might happen to you if you don't follow the license correctly. But I mean 99% of the time all the content put under the license or all the content that you use under the license, all those transactions will go just fine. You shouldn't have to worry too much. But the important part is to understand your rights, understand what you can and can't do under the license to protect yourself.  You're giving up your copyrights to the community so you should know what you're doing. And if you feel unsure, like I said, contact a lawyer. I know a lot of people can't afford a lawyer but there are free legal services available. If you go to almost any law school, you can probably get some sort of free legal advice. I know in New York where I live, there's lawyers for the arts who give free legal advice to artists. And this would be right up their alley. So there are options for you if you do have legal concerns. All right, before I take more questions, let me put this up. If you wanna learn more about copyright or licensing agreements, here are some really good sites. The US Copyright Office, obvious one. The Creative Commons site itself, the EFF has a really great new bloggers law guide that they released just recently. And if you haven't already, I encourage you to go out to the EFF dunk tank and contribute to the EFF. North Carolina State has a nice little tutorial that I Googled up and found. And it's mostly about how to avoid infringing copyrights because this is university students so other audience for this. So they're mostly worried about people ripping off music but it's a good overall tutorial. And finally, if you have access to Lexis or Westlaw, this is a really great article about the GPL and whether it's enforceable. And the biggest issue in enforceability of the GPL is not any of the legal language, or at least this author says, it's not any of the legal language of the GPL. It's the fact that users don't know that it's covered under the GPL. Coders will just throw the license in some subdirectory called license.txt and not ever tell anybody that it's covered by the GPL and that's a really huge problem. But this article goes through 10 commonly asked questions about the GPL, 10 threats to the GPL and in the end finds the GPL will probably be enforced by a court whenever the ultimate challenge to the GPL comes. So it's a really great article. All right, that's my bit. And if you have any more questions, I think we have five, 10 minutes. For questions? Preferably related to the Creative Commons licensing and not to general copyright issues because I may run out of knowledge. Yeah, the next talk after this is the revolution will not be copyrighted, is that right? There's your speakers right there. Any questions about the Creative Commons? If they put it under the Creative Commons license originally, probably not because you're acting as the agent of the copyright owner and they can always do whatever they want with it. Like I said, the people who already downloaded their image under the Creative Commons license would still be allowed to use it.  How does it compare to normal copyright protections? Why would you do Creative Commons instead of normal copyright protection? Every time someone wanted to use your content, you'd have to specifically grant each user a license to do so and you'd basically have to write up your own agreement every time or find another alternative license to Creative Commons. I mean, if you don't, Creative Commons is mostly, you put content on your website, you invite everybody to come use your content for whatever purposes they like. Under normal copyright law, they can only use fair use, which is a limited use. This allows full reuse of your content. Does that answer your question? Sort of. Are there any further questions? If not, I will shuffle off stage left. All right, thank you, everybody, and stay tuned for the revolution and not be copyrighted up next.


Hey everybody, it's Brian and welcome to the 68th Qt tutorial with C++ and GUI programming. Today we are going to make another server. This time we're going to make a multi-threaded server. So we'll call this multi-server, put it in the usual place. If you watched the last tutorial you probably noticed that it only did pretty much one connection at a time, which is pretty weak. So we want to handle multiple connections at a time. So first things first, let's add in our network module. And then we need to make a couple classes here. So the first one we're going to make is going to be the server. And we're going to call it myServer. And the base class for this is going to be a QTCPServer. Here it's QObject. Make sure you spelled that right when you do that. I made that mistake one time. It was actually kind of difficult to debug. All right, the other class you want to make, we'll call myThread. And it is going to have a base class of QThread. Here it's QObject. Once again, make sure you spell that correctly. All right. And then let's compile this at this point just to make sure that we spelled everything correctly. We don't have any booboos. All right, we've got a good clean build. Let's continue. So first thing we want to do here is we want to open up myThread. This is going to be a thread that your connection is going to run in. And what you really need to understand about this is that every time you have a new connection, a new thread is going to be created. And we're going to discuss a little bit about that at the end. So because this is actually a thread, one thing we need to do is actually have the run function in there. So we'll say void, run. And then we need to add in our signals and slots. So we'll say public slots. And of course, we want the slots of the socket, which are the ready read and disconnected. But we're going to just go QTCP. Ah, we didn't add in our includes. Sorry about that. Let's go ahead and add in our includes before I forget again. QTCP socket. And QDebug, just so we have those in there. All right, now we can go QTCP. I hope if I could spell that right. QTCP socket. We're just going to call this socket. And we also need the socket descriptor. Don't really need it, but you're going to see what's going on here in a minute. Let me just type this out. The socket descriptor is the underlying socket ID number from the operating system. And we're going to actually want to modify our constructor here a little bit. So we'll say int id. And then of course we need to do that over here. And then we need to implement our run. And that's where the socket's going to start when it does its multi-threaded function. So we're just going to say thread starts here. Go back in here. Now we need those slots. So what we're going to do is just look up QTCP socket. I'm doing this just in case you didn't watch the last tutorial. You notice how there's really not much in here. It's because it inherits pretty much everything. So it's from the QIO device. And we want the... Signals, here we go. Sorry about that. We want the ready read. It tells us that there is information available. Well, that didn't work out well. Having nothing but problems today. Here we go. Copy this. Still didn't copy it. Well you know what? I'm just going to type it in then. Void. Ready read. Obviously I've got my keyboard still set up for gaming. We want disconnected. That way it's not going to conflict with the thread disconnect. So those are our slots here. Our socket, when we create an instance of this, is going to just emit our signal. And these slots are going to consume them. Very simple class we have here. But now we need to implement it. So, first things first. We need to say this. Socket descriptor. Equal. ID. That way we know the underlying socket ID number. Now we could at this point actually create the socket and set the socket descriptor right there. But I just want you to understand that there's a very big difference between the socket descriptor and the socket itself. Okay. Now what we're going to do here is we're going to actually kind of add in a signal. Sorry, I'm kind of scatterbrained today. And we're going to say void error. That way if something goes wrong we understand something went wrong. QTCP. Socket. We're going to say socket error. We'll call this socket error. Just in case. I don't really mind messages. I just don't like it when I get like a thousand messages saying, hey, how come this won't work? And then I'm trying to figure out how your internal network functions. All right, so now our header is pretty much complete here. Now in our run, remember this is when the thread actually starts. We haven't connected the socket yet, but this is when the thread starts. So what we need to do here is just say Q to bug, just so we know that something's happening. And we'll say starting thread. Kind of messed up my quotes there, didn't I?  Anyways, that way we know that we're actually starting the thread. And then we're going to say socket equal new QTCP socket. Make this the parent. Actually, no, I forgot. Don't make this the parent. You're going to start having all sorts of issues if you do that. I had some testing and it wasn't very good at all. So socket and then we'll say set socket descriptor. And this is where you set the ID. You can just set the socket descriptor there. And so we're saying if not, in other words, if something bad happened, then we're going to just admit our signal and we're going to say, hey, there was an error. Something bad happened. And if you've looked at the, if you go into here and choose examples and then go into where's networking. We're up at the top. If you go into the fortune server and then there's a threaded fortune server, you'll notice this is very similar to that. Okay, now we need to connect our signals and slots up. Now, one thing you should know is that we're going to do this a little bit differently. So we're going to say connect, socket, signal, ready read, and we're going to connect it to this slot, ready read. And this is where the different part comes in. We need to treat this a little bit differently because it is multi-threaded. So we're going to say cute direct connection. And what that does is it makes a direct connection to that thread. Otherwise you're going to start having all sorts of cross-thread operation errors. And then disconnected, connect up our other slot here. There we go. Now we've got our signals and slots all connected and ready to go. And then we can just say cute debug. We want to know that the socket connected. So we're going to say, let's see here. We want to know which one it is. So let's say socket descriptor. Because we're going to have multiple of these, right? So we want to know which one's actually doing what. And I know this might look really confusing and we're going to go over this. So don't worry. Just trying to get the code out of the way. Client connected. Now of course we need to implement our ready read and disconnected. So we'll say void, my thread, ready read. Remember this is when we're actually got data in the pipe and we're ready to go. And then void, my thread, disconnected. And this is when the client socket is disconnected. So we need to treat these very differently obviously. Now what we want to do is basically, oops sorry, I just nailed the microphone. What we need to do is make what we're going to call an echo server. Echo server used to be really popular back in the day. You rarely see them anymore. And what it is is you send information to it and it sends you the exact same information back. It was a very handy troubleshooting tools that some administrators used a long time ago. So we're going to say que byte array. And we're just going to call this data. Equal socket, read all. So now we get the information. And we want to know that they actually sent us data. So we're just going to say data in. That way we can see on the server window what was actually sent. And then we're just going to write that back out. So we'll say socket, right. And we're just going to write data out. And that's all there is to that. Now one thing I should probably back up here. One thing you should know is we are missing a critical step here that I want to discuss in my thread run. If you know anything about threading, when it goes through this run command, it'll hit the end of this and stop. So if you haven't noticed already, we have a huge flaw, meaning it's going to just drop that thread and destroy it. So what we need to do is called exec. What exec does is it creates a message loop, meaning this thread will stay alive indefinitely until we tell it to close. Now in the disconnected, the first thing we need to do is exit. And give it an exit code. So we're telling the thread at this point, okay, we no longer need you. Go away. That's how we can do the signals and slots. If you emit exec, like if you just don't have it in your code, your code is going to run, get to this point, and the thread is immediately going to drop and the socket is just going to sit out there and never, never land. And you'll get some pretty unpredictable results at that point. So in disconnected, we need to do two things. We need to A, get rid of that socket because it's still in memory. So we'll say socket, delete later. And what that does is it flags it for deletion. So after the execution context leaves this function, Qt will automatically delete that object for us. And then we want to tell the thread to exit. Now if you're wondering why we don't just make socket parent as this, it's because you get some real funky cross-thread operations, or at least I did. Let me know if you have different results, but I had a really hard time getting that to work. Then we just want to know which client is connected. Let's just go ahead and compile this real quick. Data was not declared in the scope. Ah, yes, see, that's why we do a very nice little compile here.  All right, let's compile it one more time. Not a signal. Okay, let me pause the video and see what I did here. I should probably slow down when I make these things. Silly me. All right, there we go. Should get a clean compile out of this now. There we go. Sorry about that. It's Friday. It's been a long day. I'm really trying to get this video out before the pizza gets here. All right, now we've got our server, which we haven't done anything with. So what's the big deal with the server? You see how it inherits QTCP server? Well, we have to do two things. We have to start the server. And we have to handle incoming connections. And that's really the whole job of the server here. So in the public section, we're just going to say void, start server. And then we're going to make a protected area. If you remember from our inheritance concepts. Void. And we want to do incoming connection. And it's actually socket descriptor. Not that it really matters much, but you get the point. So we have our incoming connection. And start server. So let's just save a bit of time here by copying that. And my server, we just need to implement this really quickly. And this is where we're going to actually start the server. And then we're going to just do this. And this is where we're going to handle incoming connections. I should probably put that in the proper namespace. We'll have all sorts of weirdness going on here. All right. So let's go ahead and start the server here. We'll say if, not this listen. And this is old school stuff.  You know exactly what to expect here. We're going to set it to any. And we're just going to set port one, two, three, four. Just figure out what you can set any port you want. And then we want to do a queue debug. And we want to know that we could not start server. We want to know that the server is currently listening. So say queue debug. Sorry about that. My fingers happen to go faster in my brain. We'll just say listening. So very simply, we just start the server. And then on the incoming connection, this is where the magic happens. And we need to add a reference here. So let's go back into my server. And we need to actually include queue debug. And let's go ahead and include my thread. And then back in server land here. We need to actually say we have a new connection here. So say queue debug. That way we know that that guy is connecting. And then we want to say my thread. We'll just call this thread equal new my thread. And we of course want the ID. So we need to give it the socket descriptor. And we'll give it a parent. And this is an adequate parent. So we'll add this class as the parent. And now we need to connect up the signals and slots. We haven't actually added those in yet. But what we want to do is we want to know when that thread's finished, we want to delete it later. That way we don't have to mess around with this. And it sounds confusing, but it's very simple. We just do connect thread signal. Oops, sorry. Finished. So we want to know when that thread's actually finished. And then we're going to put the slot back on itself. And we're going to say delete later. So what that does is it flags that thread for deletion. So once it's no longer used, queue will automatically delete it for us. And we don't have to worry about it. And then of course we just need to start our thread. Which calls our run function. We can set the priority if we want, but we're not going to really mess around with that too much. Alright, now in main.cpp, we need to of course add in the server and start it up. And we want to start server. There we go. Now let's go ahead and run this, see if we actually get a good compile. And I've been kind of whipping through this and made a few mistakes. There's listening. And let me go ahead and open a command prompt here. And do telnet. Open<PHONE_NUMBER>. And you can see how we have a connection. And when we type data, you can see that it's echoing the data back. I press the M key once and we get two M's. That's because this has a local echoes. We're seeing what we typed and what we got back from the server. And if we really wanted to be nice, we could actually say, you know, data from server equals, blah, blah, blah. But I'm just going to open up another one of these. I mean the whole concept of this tutorial is to show you that we can handle multiple connections at the same time. So I'm going to say telnet. Open<PHONE_NUMBER>. And you can see now we have two clients connected. You see we have 292 and 348. This is 292. This is 348. Now how would you tell those apart? Very simple. You could go into the actual socket and get the remote host and the remote IP address and the remote port. That's how you tell those apart. But the whole concept here is that you can see we have multiple connections at the same time. And when we close one, you see 348 disconnected. This guy stayed live. And we can actually make another connection. And let's just go to telnet. Open 127.001. If you're wondering what that is, because you haven't watched my previous tutorials, that's the local loopback interface. All modern computers have that. And you can see the socket ID is 380. Now if we kill the server, you'll see both of these disconnect at the same time. And see, connection to host lost, connection to host lost. Pretty neat stuff. All right, now I believe a very good review is in order, and I'm going to try and go through this rather quickly, but very informatively at the same time because my dinner's coming. All right, now in main CPP, we have an include to my server. Server, start server, that's the function we made. So when we go into server, you can see yes, there is our start server. And we're handling the incoming connection with the underlying socket descriptor, which is just a number from the operating system. And you can see in the implementation, start server, all we're doing is starting the server. And we're saying if we listen, yes, we listen, otherwise we can't. Incoming connection, we're creating a new instance of our thread. And we are actually flagging that thread for delete later when it's finished. And then we're just saying start. When we call start, it instantly jumps down into the run function and executes this code. But when it was created, we grabbed the socket descriptor. That way we know what number it is. And you should note that we could very easily have created the socket and set the descriptor right here. But I wanted you to understand that the socket descriptor and the socket itself are two different things. The socket already exists. The socket's already connected. I should say it's in a pending state, as far as the operating system's concerned. But as far as our code's concerned, we haven't created that socket, so it doesn't exist. That's the difference between the socket descriptor and the socket itself. And then we connect up the signals and slots. You can see the ready read. So we know when we have data ready and the disconnected. We know when the client is connected. And then, of course, here's our ready read. We're just getting a Q byte array with all the data and shoving that back out into the socket, just echoing the data back out there. And you could send anything you want. And then disconnected, we're just saying, OK, socket delete later. That way it doesn't stay out in memory. And then we're going to force the thread to exit. Actually, that's not true. We're not really forcing the thread to do anything. We're just telling the thread, OK, stop this message loop that we set up. Because without this message loop, you're going to get very, very unpredictable results. I think on most operating systems, it'll go through this code and then just stop. The thread will actually just die because it has nothing else to do. But because we have this message loop, it's going to sit there and sit there and sit there until we tell it to go away. So that is multi-threading in a nutshell. Now, there's some potential pitfalls with this application. I should tell you that 90, 95% of all TCP server applications are written just like this. They do a little special magic, like they make a Q-list and they put the sockets in it so they know what are connected and they can enumerate through them and disconnect or send messages to specific clients. But the underlying mechanism is almost identical to what we've just done. They make a socket and they make a thread per socket. The pitfall to that is threads are very expensive resources on an operating system. So let's go Q-thread. And if you read through this, you'll see, and I think they actually mention it in here somewhere, that Q-thread represents a separate thread of control within a program. Shares data with all other threads and processes independently, blah, blah, blah, blah, blah. Basically, a thread is an expensive operation. You will run out of threads. So if you're having a server running in 3,000 people connect to you, I don't know many computers that are going to run 3,000 threads per app. It's probably going to just crash and die.  Why is it suddenly doing that? So there's a better way of doing this. And you should look up the Q-thread pool. And what a thread pool is, it's a collection of threads where you can have, say, two, three, five, ten threads. And those threads alternate and do a lot of work. That's how web servers like IIS or Apache work, is they have just an ungodly amount of resources behind them. But they use a thread pool. And what that does is you have two or three threads that do the work of hundreds. What do they do is they read the socket and if the socket doesn't need to do anything, they just shove it off in the background. Now the thread pool works by the Q-runnable class. Very similar to a thread, but it's kind of a fire and forget sort of mechanism. See it's got the run and that's where your execution will jump in. So you'll implement a Q-runnable class and basically do your code within the run function. Now I'll admit that I kind of played around with this a little bit, but I don't have a full working example. And what I'm really hoping to get for you guys is a full working example using Q-runnable here very soon. But almost out of time, getting hungry and I'm sure my food's almost here, but I wanted you to know the potential pitfalls of using threading. So if you're going to use a purely threaded interface, which is fine, there's nothing wrong with it, just make sure you set a max connections.  So this is Brian. I hope you found this tutorial educational and entertaining and thank you for watching.


Welcome to All Hands Update. Here's what's happening around your Navy. The sun is out and the desire to play sports and compete in other outdoor activities is high. It is important to stay hydrated during the summer and to ensure you use sunblock to protect against the sun. It is also paramount to stay aware of your surroundings with the increase of bicycling, running, and chasing Pokemon. For more information on summer safety, visit the Navy Safety Center website. The world's largest maritime exercise, Rim of the Pacific 2016, continues off the coast of Hawaii and California. Sailors from China, South Korea, Australia, Canada, and the U.S. conducted humanitarian assistance exercises, stressing the importance of communication. A key takeaway was managing expectations when operating in other countries to ensure the quality of future medical care provided. You can read more about what's happening around your Navy at Navy.mil.


Thank you very much for being with WPC TV.  You've assisted a lot of governments in France and now you're, I think, head of strategy for the government of Manuel Valls. And now you've just been to sort of, difficult job. Now you've been talking about inequality and globalization. Is there an acceptable level of social inequality, social mobility, immobility, if you like, going with inequality? Somehow, I mean, the more social mobility you have, the more inequality is acceptable. Because, you know, what's very difficult to accept, whatever the judgment you have and the desirable degree of equality within the society, that it perpetuates from one generation to next. So I think we still don't have a very good approach to that. I mean, people focus much more on inequality because it's easy to measure or relatively easy to measure. It's more visible. But the question of what happens to children and what happens across generations is very important. One of your colleagues brought up at the last moment, inheritance tax. What's your view on that? Oh, as an economist, I think it has very desirable properties. Inheritance tax does not affect significantly the behavior of individuals. Inheritance tax avoids the situation in which people live out of their rents. So it gives an incentive to people to make the best of their skills. So it is desirable. Now, the politics of the inheritance tax is difficult. I think it's difficult in many countries and difficult for reasons that have to do with the fact that, you know, people who have worked hard wants to leave something to their children, even if it's not in the best interest of their children, because I would certainly prefer my children to work and to create rather than to live out of my wealth. I may leave to them. They won't be able to anyway. Your co-pagin, Thomas Piketty, went, I think, one step further advocating a wealth tax of what boils down to a wealth tax. Would you go that far?  Economists prefer taxes that do not affect the behavior of people too much. So wealth, that's something that you may wish to tax with it, not too high a level, obviously, because it may not affect the behavior too much. What you don't want is a situation in which people would be distracted, I mean, refrain from working, creating, because of taxation. The wealth there is, that's different. Now, you have to be careful also in terms of the return on investment, especially on risky investment, because if you take the wealth tax post, people have taken risk, it may affect the risk return calculation, and ex-sante may affect the willingness to take those risks. So that's something you have to be careful about. Jean-Pierre Sainte-Ferri, thank you very much. Thank you.


So one of the luxuries of working with Python is it is an interpretive language It it actually allows us to sort of program on the fly if you will Case in point one of the things that we can do is actually just start typing into the show So say for example, I wanted to do something like three plus three All right. Well, I'm actually kind of treating it like it's a massive Calculator all of a sudden I can hit enter And I'm gonna see six And I can do the same kind of concepts I can come in and maybe do three minus three And I can hit enter and I get zero Now this is where things get a little kind of off if you think about this What happens if I want to do say multiplication. Well, all right multiplication simple enough three times three, right? I got an error and this is actually kind of going all the way back to say Let's say fifth grade fifth grade you learn you're learning about the multiplication tables and you did three x three Should equal nine so one Python's yelling at me. Well, if we kind of continue on, you know You went into around the sixth grade something called algebra and in algebra you remember your instructor was like No, you can't use the X in this kind of fashion because it's a variable Well, guess what we use variables in Python And so all of a sudden what your instructor kind of gave you was while we do a dot That's how your instructor looked and so you went, okay. Well, I'll just do three period three Okay, that didn't help. Maybe maybe it's because I'm putting the space in there. So three point three No, that's a decimal point all of a sudden so Obviously we're starting to kind of rack our brain But the same kind of concept came into play because the dot is so similar to the period And there is no kind of middle dot notation on my keyboard anywhere But we kind of started to do is we said well, let's rep Replace that operator. Let's replace it with something we understand something that's kind of freely available it's not being used by anything so All of a sudden we said three asterisk three and all of a sudden That allows me to now have multiplication Now the same kind of concept comes in with division. I don't have any I don't have say for example anywhere on my computer where I have We'll get into that in a second. I don't have this symbol anywhere on my computer keyboard. So How do I work? Well, if we think about fractions for a second and you can kind of see I have some examples there I'm able to represent something like one half Same kind of way. I can make it sort of draw out like this Well, again now all of a sudden what I'm able to do is come in here and say three divided by three And if I hit enter ah Ah But you start to see oh well there's special kind of there's syntactical kind of changes It's not necessarily math. So say for example, I went ten You know a little carrot to We learned again in sort of your math classes and only a calculator that that's ten raised to the second power Yeah Ten It's not eight. Okay, that's it's clearly not eight. So how do I do my exponents first off The carrot in this case is actually being changed. It has a different purpose. That's why it's pulling up the eight It's actually taking all the ones and zeros and the binary string of ten and all the ones and zeros in the binary string of In our case two and seeing where where they are and kind of comparing them Each all right. Well, that's not what I want. It's not helping me So all of a sudden how do I do it? Well instead I come in here and I just add a Second asterisk that is our way of saying I want to take this instead of multiplying it. I want to Raise it to the second power. So in this case all of a sudden ten asterisk asterisk two is gonna allow me to have 100


How about some volleyball action? Brainerd hosting Pequot Lakes in the season opener. We start in the first set with the Patriots and Allie Hubbard. She slams it over the Brainerd defense. Pequot Lakes all smiles in this one. Brainer though getting in on the action later. Kara Helgeson sets up Courtney Russell for the spike in the point. Then still in the first set. Brainerd trying to make a little comeback. Healy Johnson sets up Russell again. She's on fire but the Patriots were in charge all night off the return. Britt Cradoville blocks it as Pequot Lakes takes this one in four, three games to one. If you've enjoyed this segment of Lakeland News, please consider making a tax deductible contribution to Lakeland Public Television.