I want to talk to you this afternoon about data and data privacy and data platforms. This talk is mostly about economics, but I'll throw in some political economy and related issues as well. This is not one of the topics that was much discussed in Karl Manger's day, but I think some basic Austrian principles can generate a lot of insight and help us to think more clearly about these complicated issues that are so much in the public eye today, right? Oh, within the last year, year and a half, but then stepping up in the last few months, there has been increasing attention on questions about privacy in the digital age, what are the big social media platforms, Google, Amazon, et cetera, what are they doing with our data? Are they infringing upon our privacy? Are they making money by selling our data in ways that we didn't consent to? This is a bipartisan issue in the US and, of course, in Europe and elsewhere in the world as well. Europe has always been a little bit, or last few years, a little bit more strict than the US in terms of data privacy protection. Protection, I'll put in scare quotes, but you can expect, within the next several months, to see additional action in the US. So there will be hearings, there have probably been some hearings there will be more coming from all kinds of directions in the political landscape. The President, of course, is constantly going on about how his tweets are being downgraded and so forth, so this is a big deal. I don't know if any of you are aware that January 28th is now known as International Data Privacy Day. Did you do anything to celebrate on January 28th? I'm not really sure what you're supposed to do, but it must be a big deal because it has its own Wikipedia entry. So let's start with a few very basic concepts that I think will help us to frame this kind of conversation. First of all, what is privacy? And can we have such a thing as a market for privacy? Well, first question, is privacy like a thing, or rather is privacy an economic good? Can you buy a unit of privacy? Can you sell a unit of privacy? What is the price of some quantity of privacy? I would argue that privacy, per se, is not an economic good. Is privacy important? Yeah. Do I like my privacy? Yes. I also think love is important in the world, but love is not an economic good either. Perhaps the best analog to privacy is information. Brother, there's been a lot of discussion in economics and related topics over the last few years about how to study information. How do we apply economic analysis to information? What I think is a very good book is a book by Carl Shapiro and Hal Varian called Information Rules. It's a neoclassical economics analysis of information that raises some really important issues. More recent book by Josh Gans called Information Wants to Be Shared, which talks more about the networking aspects of information sharing. But one of the points that Shapiro and Varian and these other authors make is that information, per se, is not the thing that is bought and sold in markets. Rather, there are things like information goods. There are information goods and information services that are bought and sold, the things in which information is embodied. Okay. Go back to Manger's notion of an economic good. Right, an economic good is something that is scarce, something that can be separated into discrete units and valued on the margin can be bought and sold in markets and so forth. So for example, a book is an information good. Why? Because there is information in a book. You can read a book and obtain the information. Maybe we don't all obtain the same information from reading the same book. And you can buy and sell books. You can do it downstairs in the bookstore. Right, a movie is an information good. Some kind of communications infrastructure, like a wire or a satellite transmitter or a receiving unit. Certain kinds of labor could be described as information goods. Hiring a consultant, right? If those of you students, if you're getting ready to take the GRE or something and you sign up for one of those GRE or LSAT or MCAT training courses, that is an information good. In other words, the thing that you buy and sell is not the information itself, but some discrete economic good in which the information is embodied. And I think the same kind of distinction makes sense for privacy.   But of course, the paparazzi always find you and there you are on, I don't know what's the modern equivalent of the National Enquirer, TMZ, yeah, TMZ or something, right?  I can buy sunglasses. I can buy a hat designed to prevent people from knowing who I am from seeing me, right?  These shades on the window, right? Are privacy goods, prevents people from outside who didn't pay for Mrs. U, from peeking in the window and seeing all the great stuff that we're doing in here. I guess they don't have access to YouTube or something.  You know, rich people like to buy a huge property and then put their house in the middle surrounded by trees where nobody can see in. Okay, those are economic goods, according to Manger's definition. What is it, you know, what does the human want that is satisfied by the purchase and consumption of this economic good, protecting your privacy, okay? And of course, the digital versions of these, an encryption program, you know, something you install on your computer to block cookies or to scrub your hard drive, Bleach Bit became famous a few years ago. That was the software that Hillary Clinton apparently used to wipe clean the server in her basement, you know, that had all the incriminating emails and so forth. You know, to the extent that you buy these things from some marketplace or some store, those are privacy goods. So my point is privacy like information is not some kind of spooky, weird, nebulous thing for which we need a whole kind of new economic theory. Right, we can just use conventional Austrian analysis of markets and prices and so forth to analyze information goods or privacy goods just like we can anything else. Again, the thing you buy and sell is not privacy, you can buy or sell privacy goods. Given that, right, entrepreneurs offer us various information and communication goods and services that include varying levels of privacy protection with them. Okay, so if you are really paranoid that the government is reading your emails, I mean, I believe that the NSA can get all of my communications but they don't bother and they're pretty incompetent and I'm not all that important, right? But if I really cared about it, there are all kinds of specific products that I can purchase and probably pay a premium for, right? Or sacrifice some other desirable attribute if I want more privacy. Instead of using regular email and texting and so forth, I can use Telegram or various kind of Tor encrypted clients. People complain all the time about Google, how much information Google has about us. Okay, fine, you can use DuckDuckGo, you can use any other number of search providers that do not track you, that do not put cookies on your machine and so forth. It turns out that, well, so first of all, I should say in a free market, we would expect that when you are considering which kinds of communications tools or information goods or any economic goods you wanna purchase, you would think about, okay, the various attributes of that economic good or service compared to the alternatives, the quality, the ease of use, the value it will add to my business and so forth, but you would also think of the level of privacy protection as one of those attributes, right? And of course, most communications tools and information tools do disclose something to you about how they handle privacy. I mean, the Mises Institute, if you go to Mises.org, there is a privacy statement, which I'm sure you have all read and studied in great detail, right, that describes, discloses the institute's formal policy on data retention and what information it gets about you and so forth. And if you read this thing and say, no, no, no, I don't want them knowing my IP address when I go on Mises.org, guess what? There's an easy solution to that. Don't go on Mises.org, okay? But we do, most of us, because we feel like the benefits we get from going to Mises.org, vastly outweigh the risk that, you know, Jeff Deist is back there looking on your screen or whatever. I should say as an aside, you know, if you just think about the Austrian concept of demonstrated preference, right, just looking at the data demonstrated preference suggests that much as we all talk and complain and whine about privacy and how we are worried about big tech spying on us, yada, yada, yada, yada, yada, most of us are really not willing to give up almost anything for a little bit of extra privacy. Few people use those super encrypted tools.  I mean, but why would I do that? That is way harder, way less convenient and has all kinds of other drawbacks compared to just calling him even though somebody might be listening in or sending him a regular encrypted email or whatever. You know, if you don't want people to know, read your electronic diary, well, you could just write it on paper and put it in a safe or something or try to memorize it, whatever. I just saw a thing from a friend of mine, Alex Stapp, two days ago, pointing me to this New York Times article on DuckDuckGo which indicates that hardly anybody uses it because the search results aren't as good, okay? And much as we hate Google, it's just more convenient, it works better. You know, the point is there's not any sort of a mark, so-called market failure here. If people really value privacy over other attributes like the accuracy and quality and usefulness of the search results, then we would expect there to be greater use of products like DuckDuckGo, but in fact, hardly anybody uses those, okay? Some other sort of empirical facts that are interesting. I like the way Brian Kaplan put it in a recent, sorry, in a recent Econ, I guess it was Econ Lib article. I mean, in fact, much as we complain, we actually have a lot of privacy today compared to most other periods in human history.   I guess I'd have the sunglasses and the fake nose on, et cetera. Yeah, am I worried that when I ordered on Amazon, Jeff Bezos knows? Yeah, I guess so, but lots of people who otherwise wouldn't know don't. I mean, I can buy some embarrassing product or watch some video that I would not want everyone to know I'm watching from the comfort of my own home in a way that was not possible, you know, in any previous period of human history. So, if you put it in proper perspective, actually in many ways, we have more privacy now than we did in the pre-Internet, pre-Amazon, you know, pre-Google era. And in fact, if you wanna put this in sort of technical economics jargon, there are huge efficiency gains for matching buyers and sellers, right? Uber, Airbnb, eBay or Alibaba, Rover, right? Any number of these sharing platforms that allow us to sort of soak up excess capacity by allowing people to borrow fixed resources that would otherwise be idle and so forth, you know, meeting people online, right? Dating sites provide a great platform for people to interact and match up. I saw a chart recently, I forgot to screenshot it for you. It was like looking at people in different age groups or maybe in different periods of time, where did you meet your spouse? And you know, in a bar at work, through mutual friends, whatever, and then the category met online, we know it's like really trending steeply upward. Back when I was young, if you said, I met somebody online, that was like weird, okay? Now it's totally normal. Lots of people meet their spouses online. It's perfectly fine. Also keep in mind, the evidence suggests there are huge cost savings from synthesizing and organizing our information and keeping it online. Savings that more than outweigh what most of us are worried about in terms of loss of privacy. Okay, I don't know if you guys use any kind of note-taking app if you use Evernote or OneNote or something like that to organize your school notes or whatever.  You know, you'd lose your paper notes. They'd get out of order or whatever. If you have your notes in electronic fashion, you know, on Dropbox or something, oh well, you know, they're not secure or somebody can hack into Dropbox and get my class notes from Peter Klein's privacy lecture. Yeah, I mean, that's a risk, but it's greatly outweighed by the convenience and security of having all of your electronic information in one place. A lot of concern about digital medical records, right? People say, well gosh, it would be so much better if I could have all my medical information on a little chip, you know, on a USB, on my phone, whatever.  Why? Because people are paranoid that your digital medical information is not secure. Well, yeah, that's a risk, but it's also super convenient to have it all in one place. Also, public policy people have worried that companies will use our digital information to try to engage in, you know, so-called price discrimination, like charging different prices to different users for the same thing based on your ability to pay, your willingness to pay and so forth. There's really very little evidence that any online vendors are doing that. Of course, when you go to Amazon, you know, what shows up on your home page as here's some stuff you might want to buy depends on your personal information, right? But there's not any evidence that somehow consumers are being taken advantage of and charge different prices based on willingness to pay. Okay, so what about regulation? What about attempts by the government to protect our privacy, to increase our privacy and so forth? Well, the kinds of things that Congress, in the U.S. Congress is now discussing, European and other regulators are discussing, some of which have been implemented, right? Includes, for example, you know, rules that mandate privacy protection, right? There are proposed laws that would say, okay, Twitter, Facebook, Instagram, whatever. It is illegal for them to share any of your information with a third-party advertising firm or with third-party merchants, people who want to sell you stuff, et cetera, okay? Other rules that have been proposed are to impose mandatory data portability. In other words, somehow, like if I get tired of, I don't know, I get tired of Instagram and I want to switch to some other platform that does the same kinds of things that Instagram does. Instagram, by law, would have to like, let me download all of my data in some kind of universal database format. Then when I joined some other platform, I could upload and it would like seamlessly give me a history on that other platform. I mean, just thinking about that, just the technical aspects are kind of challenging, right? But there are laws that claim that all any user data should be stored in some universal portable format so that you're not locked into any one platform, right? Some people maybe don't want to delete their Facebook account even though they're mad at Facebook because they don't want to lose all that great stuff they have before, all their previous photos and all that. If you could only just switch to some other platform and preserve all that, that'd be great. So the argument goes. Also, it's been proposed that some very recent legislation wants the FTC or a similar agency to impose very stiff fines on platforms for any data breaches. Like the Cambridge Analytica scandal at Facebook or lots of online companies and brick and mortar firms have had data breaches, you've heard about these. Sometimes you get a call or an email. Oh, if you swiped your credit card at JC Penney within the last year, you need to check your credit card statement because there might be fraudulent charges on there. You know, one thing that's interesting is, of course, the market is not very, the market is quite harsh in penalizing data breaches, especially for financial firms. Wells Fargo had a big fraud and data breach case a few years ago and the share price of Wells Fargo went way, way down. So of course, if we find out that a merchant with whom we are dealing is not protecting our credit card information or whatever, we're much less likely to use that merchant in the future. So I guess, but also just from a sort of regulatory and legal perspective, the issue here is, do we need Congress or an executive branch agency to legislate some kind of penalties for data breach or can we rely on something like the common law? In other words, if when I upload my data to my bank, JP Morgan Chase or something, there's a click through license, right? There's some contract. I agree to abide by certain terms and the bank agrees that my information will be kept secure and so forth. If there's a data breach, well, that's just like, you took your gold to the gold warehouse and now you're carrying around little paper tickets instead of gold bullions or gold coin. Somebody breaks into the warehouse and steals your stuff in your deposit box. Okay, well, that's just like any other kind of theft. It's like if I store my furniture at a self-storage place it gets broken into, somebody steals my furniture. We don't need like a regulation. We don't need legislation or some kind of executive action to say if Peter Stuff gets stolen from the self-storage place, the government is gonna find that self-storage company. No, I mean, I would have a legal action against the firm for breach of contract, right? We signed a contract that you would keep the door locked, you left it unlocked, my stuff got stolen, you gotta reimburse me for my stuff. We already use those kinds of remedies to deal with property rights violations. So this would be just or breaches of contract. This would be just a breach of contract like any other, okay? Also, it's worth realizing that these kinds of proposals have pretty substantial costs as well as prospective benefits, okay? So it's possible that these kind of stricter rules about privacy protection might make using services more valuable, okay? I'm more likely to use some online service or to use a social media platform if I know that the government is forcing them to be forcing them to take better care of my data, protect my data. But sort of as I've already suggested, right? The market can kind of sort this out in the sense that if you and I value stronger protection for our information, then it should be in the interest of some entrepreneur to provide a verifiably safer method of storing my information and then charging a premium for that, okay? So it's not clear why you would need government intervention to realize those benefits. But what people haven't talked about that much is there's also a lot of costs associated with these kinds of remedies. Look, a lot of us are uncomfortable with the fact that Google has so much information about us. Now, you worry about the state, I worry about the NSA knowing everything about me, I worry about the FBI listening into my phone calls and reading my emails without a warrant and XYZ and all other kinds of black agencies that I don't even know about, right? Why am I worried about them? What do I think that they could do to me? Well, they could like kill me, right? Or put me in jail or they could do something really horrible to me.  Why does Google want that information? So that it can give it to advertisers who want to advertise stuff that I might want to buy. Okay, that's the horrible thing that Google is doing to me. It's making it easier for people to try to sell me stuff. So I mean, like I don't like getting sales calls in the middle of the night any more than you do or junk mail, spam email, but in the grand scheme of things, that's not all that terrible. People wanna sell me stuff, okay? Why is it significant that that's the kind of business model that firms like Google use? Well, as I think I mentioned in my monopoly lecture, all those fantastic services that you get from companies like Google, Gmail, Google Maps, Search, obviously. Think of all the extra sort of applications and tools that are provided by firms like Google. How much do we pay for most of those? Zero, right? We don't pay a dime because the business model, of course, is you give away the services for free to the end user, that's us, and then you make money by selling advertising to those users. It's not really a new business model. It's the business model that commercial radio operators figured out and perfected in the 1920s and 1930s, right? Broadcast, radio, broadcast TV is free. If you've got the equipment, you just have to listen to ads. That's how it gets paid. If it's illegal for Google and Twitter and Facebook and so forth to use our information to feed that into algorithms that will target advertisements to us, well, we're not gonna get that stuff for free anymore. They've gotta come up with another business model. Now, it might involve paying service fee, paying user fees, okay? It might involve different kinds of advertising, maybe more intrusive and less, more unpleasant kinds of advertising. I mean, are we willing to give up the low cost to us and convenience of using these services in exchange for some other kind of business model that maybe offers better privacy protection but for which we have to pay or suffer some other inconvenience. I mean, again, it's like the example with DuckDuckGo. I suspect that most people would not be, would not consider it an improvement if you have to pay for every Google search because Google has no other way to make money, okay? You know, good example of how many of these mandatory data protection rules and laws tend to work is given by the European GDPR. How many Europeans do we have here? If you've been in Europe or if you've visited any European websites, you might have noticed you have to click through a lot more annoying pop-ups to give your consent to lots of different things. I consent to the cookies, I consent to this, I consent to that.  I'm tired of consenting, right? A lot of that is GDPR rules. So GDPR is a EU-level set of policies that impose stricter legal requirements on how, partly on disclosure, right? That they have to be more transparent to us about how they're using our information and their greater penalties and so forth for potential misuse of that information. What has been the effect of GDPR on the tech sector in Europe? Oh, by the way, another way that in my mind makes it ridiculous is I'm involved with an academic society that holds a big annual conference with several thousand people and I was involved in putting the program together and so you get people who want to present their papers, they submit their papers in a computer system and then those papers are assigned to anonymous reviewers who will read them and provide comments and ratings and it gets fed back into another system and then you select the papers that will be on the program and I had to manage a lot of that stuff. At one point I asked the back office people, I said, look, I need to contact some of these reviewers who haven't turned in their reviews on time or I need to contact authors about these issues. Can I just get a list of everybody who submitted something or everybody who agreed to review? Can you just give me a spreadsheet with their name and email address so I can easily and conveniently contact the people I need to follow up on? Nope, GDPR made it illegal for the back office of this organization to send me a spreadsheet with the names and email addresses of all the submitters. Why? Because when people submitted their papers or signed up to be anonymous reviewers, apparently there was no box where they could consent to have their email addresses given to Peter Klein or the person who was doing the Peter Klein function. I mean, everybody that I was involved with in this conversation agreed that it was completely ridiculous but that was the nature of GDPR, right? So remember, legislation or government intervention through the executive is a very blunt tool and when these rules are imposed, you really have no idea how they will actually work out in practice. But the legislators and executive officials don't care. They just impose the whole thing on you. There have been a number of studies I've seen in recent months on the effects of GDPR. I think it's been in place for about two years and one effect that was fairly easy to anticipate, especially if you were in my lecture this morning on big business, what kinds of firms would you expect to benefit from the kinds of privacy rules and restrictions imposed by GDPR? Small struggling startups that barely have enough cash to pay salaries each month for big, powerful, deep-pocketed tech platforms. The latter, right? So there are a lot of studies showing that the primary beneficiaries of these stricter privacy rules are Google, Facebook, Amazon, Twitter, the big platforms and the big providers, right? Because they can much more easily comply with GDPR than smaller newer firms, okay? It's the argument that I discussed this morning raising your rival's costs. So these kinds of privacy restrictions are they impose a differential burden on small firms. So who do you think is speaking to Congress in Washington and giving either explicit or maybe implicit support for a GDPR kind of thing in the US? Google, Facebook, Twitter and so forth. Let me digress for a moment to talk to you about something I've been thinking about a lot and that is the infamous section 230 of the Communications Decency Act. You might be thinking, what the heck is he talking about? Okay, it turns out to play a very important role in some contemporary debates. I haven't quite made up my mind on the analysis here but I've got some preliminary thoughts that I'll share with you. The issue here is recent concerns about so-called content neutrality, right? So conservatives and libertarians are usually pretty upset about Facebook, Twitter, Instagram, I guess Google and other social media platforms for displaying a kind of a political bias, right? So you've heard about all of the figures that have been de-platformed, banned explicitly or shadow banned, poor Alex Jones, right? Infos was banned from Facebook, banned from Twitter, banned from YouTube, app is thrown out of the app store and so forth. I don't know if any of you have used any of these sort of more anonymous, sorry, the sort of social media platforms that don't regulate content like GAB, the social media network GAB which in the mainstream is called the Nazi network, right, but GAB calls itself the free speech network because it has a policy that no content is monitored or regulated at all. I think only direct personal threats to harm a specific individual can be removed. Other than that, you can post stuff that's pro-communism, pro-fascism, whatever and the whole idea is it's just a completely unmoderated platform.  You click mute or block and you never see that person again, okay? GAB has, so it's a social media platform, GAB had an iOS app and an Android app, those were quickly banned by Apple and Google respectively from their app stores. Then the PayPal and the other big payment systems blocked GAB from accessing any of their services to collect money from premium users and so forth. So as I'm sure you guys have heard, there are a lot of complaints that because of sort of bias, political bias, websites and other content that is not politically correct or whatever can easily be pushed off of social media platforms, okay? Like I think I mentioned before, even the president complains that Google is shadow banning him, okay? He says that if you search for Trump news, all you get is the fake news media. It's all rigged, all caps. It is rigged and this stuff is bad. You know, fake CNN is getting, anyway, you guys have heard of these kinds of concerns, right? So there are several proposals in Congress. Josh Hawley, who's sort of a rising star in the Republican Party, the current governor of Missouri has a proposal that would essentially make it illegal for Facebook and Twitter to discriminate based on political content, okay? I mean, why would you worry about this kind of stuff at all? I mean, would you really think that Jack Dorsey, the CEO of Twitter guy who looks like that, could he possibly be biased against libertarians and conservatives and traditionalists? No, that would never happen. The root of all this is a very important piece of legislation in the early history of the internet, which was the Communications Decency Act, which was passed by the US Congress in 1996. So the CDA was a response to concerns that began to arise in the early 90s when the precursors to today's sort of social media platforms and internet sites began to emerge like Prodigy, America Online, CompuServe. Most of you weren't born then, but maybe you've read about these things in the history books, but there used to be dial-up internet and the way people got access to information and so forth was not on websites like you do today, but by dialing into these proprietary communities in which you could share photos and have chat rooms and there were things that were like web pages and so forth. So around this time, there was a big push by people in Congress and activists. There was concern about harmful content on these networks, on these kind of pre-internet or early internet kinds of networks, electronic bulletin board and so forth. In particular, like Child Pornography or Pornography in general, the wife of Senator Al Gore who was the vice president under Bill Clinton, her name was Tipper Gore, she led sort of a public relations campaign claiming that there was all kinds of bad stuff on the internet, we need to protect children from the internet and so forth. So the Communications Decency Act was passed to hold hosting companies potentially liable for harmful, indecent content that was posted on their networks. So the Prodigy, AOL, CompuServe and so forth, they had argued, well, we really don't have the capability to police all the information that's on our networks. We're not like a newspaper. So if you look at the Wall Street Journal or the New York Times, with the possible exception of the classified ads, all the content that's in those newspapers was reviewed, it was edited, there's some sort of curation involved. So if something libelous or slanderous or obscene or pornographic or whatever is in the New York Times, someone who claims to have been harmed by that can sue the publisher of the New York Times even if the New York Times itself didn't write the content. Some journalist wrote it, some freelance reporter maybe wrote it, but you published it in your curated newspaper, therefore you're responsible. Well, the platforms argued, we're kind of not like that, we're just like a bulletin board where anybody can post something, we don't really have control over it, so you can't really hold us liable. So they managed, the telecom companies managed to get an additional piece put into the Communications Decency Act called Section 230 that essentially gave online computer platforms an exemption from the standard kind of common law liability rules. So the standard common law kind of distinction is between what you might call a publisher or what the law typically did call a publisher and a so-called common carrier. So if I own like a physical bulletin board or a chalkboard and I put it in Downhound Auburn on Tumor's Corner and I say, this is the free speech chalkboard, come and write what you want, I just provide the chalkboard and some chalk and then I walk away, then I'm not choosing who's gonna, anybody can write on it, anybody can write whatever they want, all I'm doing is providing the infrastructure on which the writing can take place, but I don't have any control over the content. So it's kind of like if somebody calls you and threatens you in a phone call, you can't sue the phone company, right? You can take action against the person who threatened you or harassed you, but in traditional telecommunications law, something like the telephone network where anybody can pick up the phone and call anybody, the phone company was not deciding whether or not you could make a call based on what you were gonna say or who you were, right? So they said, we're just a neutral platform, we're not responsible for content, as opposed to a publisher like The New York Times or Mises.org or Arlington House Books or something where they choose what to publish. So the idea was a publisher can be held liable in court for material that is obscene or defamatory or whatever because they are controlling the content, whereas a common carrier cannot be held liable for harmful content because the carrier is not exercising any control over that content. So section 230 of the CDA basically wiped out that distinction and said, hey, Prodigy, AOL, CompuServe and so forth, feel free to go in there and moderate all you want. Again, at the time the concern was not getting rid of Alex Jones, but the concern was getting rid of pornography or I don't know, threats or whatever kind of inappropriate or obscene material might be out there. Go ahead and be as aggressive if you want in removing that stuff. You're not responsible if you miss one and something is still there and hurts somebody. The law will treat you like a common carrier but we still want you to go in and moderate and get rid of bad stuff. Okay, of course the issue now is not so much about direct personal threats, but okay is Facebook has the so-called community standards which are so vaguely written that it's impossible to know what does or does not violate community standards and I'm sure you all have plenty of examples of stuff content you know that was blocked or banned or users who were kicked off for saying things that might be out of the mainstream, but don't seem to satisfy any objective criteria of being threatening or harmful.  So if you say mean words that offend me that's basically the same as violence so I'm justified in punching you over the head in my Antifa garb or whatever. People ask me, are you worried about stuff you put on social media like me personally? Like well, as long as Tom Woods is still on Twitter as long as Lou Rockwell is out there I feel like I'm safe but you never know. Anyway, so critics of section 230, sort of libertarian critics some have said section 230 it's basically, it's kind of like a subsidy. I mean I don't think subsidy is really the technically correct term, it's not cash but it's like a form of protectionism. It gives online publishers special rights that other kinds of publishers do not enjoy and that therefore 230 enabled the growth and the rise of the big tech firms that everybody's now complaining about and that maybe in a pure free market if we didn't have something like section 230 then we would have, you know the internet would have evolved in a different way. And you know again it's a little bit ambiguous but I think this is a thing that we really need, people in our circles really need to be looking at very closely. You know my view has been whatever concerns people have about the, you know who should be held liable in a particular case. Is it Twitter's fault if somebody says something that is harmful to me on Twitter or not? You know are they technically capable of having removed that content and they fell down on the job? Did they fail to remove that content because they're out to get me? That really this is something that can be decided by the courts. This can be decided through the common law rather than sort of top down legislation. So here I'm appealing to you know Hayek's distinction between what Hayek calls no most and thesis, right? No most is the bottom up kind of market oriented common law solutions to these sorts of problems and thesis is the top down legislative statutory remedy and I much prefer the bottom up to the top down. Okay so last thing, every time somebody says, well the big tech platforms are bad because they're stealing your data, they're taking your data, I always stop for a moment. You know do you own your data? Well my answer is no you don't own your data if we define that properly. Right so of course there's a whole literature, libertarian literature on intellectual property, our ideas property and of course many of us argue, like I said before, you know a book is an economic good and if somebody takes your book that's theft. An idea is not an economic good and if somebody copies your idea that is not theft. Right because you can't own ideas, you can own books and you can have some data on a hard drive, you own the hard drive but you don't own information per se. You own your computer, you have some legal rights that you've specified by contract. Right about the storage services or data transmission services. I have a thing that I've signed from Dropbox. My contract with Dropbox is that they can't delete my data without telling me or whatever. But that's just a contractual stipulation. But I say I don't own my data because what is my data? What is my data on Facebook? Right what is, well it's my reputation, it's what other people think about me. Ah okay, you may have seen Walter Block's arguments about things like libel and defamation. Walter Block says in a libertarian society you would not be able to sue somebody for saying a bad thing about you because that's not a violation of your person or property. Right likewise, do I own my reputation? I hope that I have a decent reputation in our circles and in the community where I live. But no I don't own my reputation because my reputation is things that other people think about me.  Likewise, if I'm sitting in my bedroom at home in whatever, doing whatever, and somebody comes and opens the blinds and peeps through my window. We would consider that a violation of privacy because what I do in the privacy of my own home I have a reasonable expectation especially if I have the blinds closed that other people will not see in. If I'm walking down the street here in Auburn, Alabama I'm walking down the street wearing a Mises hat and somebody says, hey guess what everybody there's Peter Klein with a Mises hat. That's not a violation of my privacy because I'm walking down the street and I don't have any reasonable expectation of privacy because I'm in a public place. If I write something on Twitter or I post something on Facebook and you copy it or you tell somebody else about it or you record my activity on Twitter and then sell it to an advertiser is that like peeping through my bedroom window? I would say no, that's like observing me walking down the street, right? Stuff I post on social media, I do not have a reasonable expectation that no one else will see that, draw any conclusions from it and take any action based on it. Okay, so the stuff that Facebook's advertisers know about me is not property that I own. Okay, that's information that is embodied in goods and services that they own. So you can steal somebody's stuff and we can say, you know, philosophically you can respect someone's privacy or not but you can't steal someone's privacy so we should stop talking about platforms as if that's the kind of thing that they do. Okay, thanks very much. Thank you.


And so today I'm going to present you Source E-Verify, which is a source level formal verification tool for Solidity. I'm actually a PhD student at the Budapest University of Technology and Economics, but this is a work that I've been doing together with some people from SRI International. So coming back to verification, there's a wide selection of verification tools available for Solidity and Ethereum smart contracts, ranging from testing tools and fuzzers, all the way to static analyzers, symbolic executors, and also formal verification tools, like you've seen, Ksolidity, there's also going to be some more talks on this topic later. And these are all pretty good tools, I would say, and they all have their strengths and application areas. And with today's talk, I would like to convince you that our tool, Source E-Verify, also has its place in this landscape, and it can also provide you some useful features that other tools might not. So let me start right away with a quick demo on what you should expect. So here's a really basic contract. It has two state variables, X and Y, which should always be the same. The constructor sets them to a starting value, and then there's an add function, which will just increment both of them with the same value. So basically, when you say that these two values should always be the same, except of course, during some intermediate steps within a transaction, basically by this statement, you are formulating a so-called invariant over the contract. And invariants basically must hold before and after every transaction. So roughly speaking, before and after the execution of every public function. Now with Source E-Verify, you can actually express this as in code annotation. You can say, we use this special notice doc tag. You can say invariant X equals to Y. So then you can just run Source E-Verify on this example, and it will tell you that they found no errors, both the constructor and both add satisfy the specs. But for example, if you mess something up, you forget to initialize value, or you do some wrong arithmetic operations, then we can report that there are errors, your invariant is not satisfied by for example, the constructor or for example, by this add function. So as you've seen, Source E-Verify takes smart contracts annotated with these specification exceptions, for example, invariants, but I will also show you many more in today's talk. And we are using our extended version of the compiler, from which we reuse parsing, reference dissolving, and type checking in order to build an AST. And then we traverse this AST and translate it into a boogie program, which has a formal semantics. And basically by doing this translation, this is how we give a formal meaning to the Solidity language, on which we actually spent a lot of time, as also highlighted by the previous talks, there are many corner cases and interesting stuff, especially going around with the storage and memory, reference types and things like that. I will have some links at the end of my presentation to some of these papers. So then this boogie program can be passed to the boogie verifier, which is a modular program verifier. It was originally built for object-oriented programs, but since smart contracts are somewhat similar to classes, boogie is also a good match for smart contracts. And what boogie does is it checks the program by discharging these verification conditions to logic solvers, SMT solvers, which have a sound mathematical basis, and they support various theories, such as arithmetic, arrays, data types, and so on. And these solvers can return proofs or refutations, so boogie can tell if the boogie program is correct or not. And of course, in order to be useful for the developers, we back annotate these results to the original contract as you've seen it in my demo. So now we say we perform formal verification. It is important to note that we prove functional correctness with respect to the specification that you wrote. So if you don't have any specs or you have some problems in your specs, of course then the results of the formal verification cannot be trusted, but that is how these things usually work in common. And we are also not targeting these common vulnerability patterns besides some examples that I will present you, like overflows and reinterancy. There are many other tools for that. Our focus is really on these functional specifications. And these specifications can be implicit coming from the code, like for example, checking for failing assertions or checking for overflows. But as I presented you, our main goal is to provide explicit annotation possibilities, like for example, invariance and the other ones that I will present you in the moment. And basically, SOSI verified performs modular verification, which means that functions are verified independently from each other to give a better performance and scalability. And basically each function will have a precondition and the post condition, which might come of course from invariance, like for example, in the example, we have a precondition that X should be equal to Y and then we execute the body and the post condition should hold. So basically this is what we want to check given the precondition does executing the body, guarantee the post condition. And this can be done or this is done by translating the specs and the function to SMT formulas by Boogie and feeding it to solvers. This is what Boogie does in the background. So if we start with the same X and Y and then we increment both of them with one, then can we prove that they are afterwards the same? And this is what SMT solvers can basically prove. And if interestingly, if there are other functions that call each other, like for example, here's a function G, which has its own pre and post conditions and it can call F. Then in order to be scalable and efficient, basically we replace, we substitute the call with the specs, which basically act like a summary of what the function is doing. So just speaking a little bit about these implicit and explicit annotations, you can see a similar contract here, which has X and Y and there's a function to add some integer which will just call another function to add it to X and then in a loop it will increment Y just for illustrative purposes. It does some of this stuff. And Solidity provides some of these implicit specs, like for example, you can write require and assert statements, but in order to give more flexibility, we developed our annotation language to explicitly provide specs. And I will tell you or introduce you all these in a demo. For now I just want to quickly summarize what are the possibilities. So of course we support pre and post conditions. You already saw contract level invariants, like X should always be equal to Y. We also support loop invariants. This is required because of this modular and efficient reasoning. These are basically formulas that should hold on entry and on every iteration and on exit for the loop. But we also support fine grained access control. We can, for example, specify that the function should only modify state variable X if a given condition holds. We are also working on specifying events. If I have some time and you're interested, I can show you some examples. And these annotations are essentially side effect free Solidity expressions that are given in code. So this way you don't have to learn a new language to write specs. And also the specs are not separated from the code. They are strongly tied together. And we also have some extra elements to be more flexible. For example, we can express the sum of the collections. I will show you some examples. You can refer to previous values of variables. And we are also experimenting with using quantifiers with which you can express properties like every element of an array is non-negative. Or for example, this array is sorted and this kind of stuff. So let me get back now to my demo to illustrate these features. Also in the meantime, if you have questions, feel free to ask. I will provide a link also to these examples and to the slides. So let's see now a little bit more complex example. This is a typical token. It's a fixed cap token.  And it has a mapping that keeps track of the balance of each user by mapping the address of the user to his or her balance, which is an integer. There's a constructor which will just set, which will put all the tokens to the creator. And there's a typical transfer function, which does some checks to make sure that the transfer can happen. And then it does the transfer by changing these values. So for these kinds of tokens, it's pretty obvious that you would like to have some high-level functional properties. For example, with the fixed cap tokens, it makes sense to specify that the total amount equals to the sum of individual balances. This is actually an invariant that it must always hold for the token. And you can express it in a way that saying an invariant, the total should be equal to verifier sum you int. This is a bit ugly. It's something that we are working on it. But for now, you can express it with this special function so that we don't have any collisions with other already existing functions balances. So the total amount should be equal to the balances. So now you can run saucy verify on this example. And it will tell you that, yes, your contract is correct. But for example, if you mess up something, it can tell you that the invariant is broken. However, this is alone not enough. Like for example, I can just swap the minus and the plus. So the transfer still takes place. And actually the sum of the tokens will stay constant. So the verifier will say that this is correct modulo the specs that you wrote because it still holds. In order to verify these kind of properties, we have to give some extra conditions. We actually have to state what a transfer does. And what the transfer does is basically you want to make sure that you have a post condition that after the transfer, the balance of the message sender should be equal to the old value of the sender minus the amount that was transferred. And the same or a similar should hold for the receiver. Let me just treat with that. So the balance of the receiver equals to the old balance plus the amount. So now if you run the tool on this example, which is still swept, so it's wrong. Now it will, oops, I made a typo. It's not balance, but balances. This is the benefit of reusing the compiler. And I guess I also have to fix it here. But now, so see, verify, we'll basically report that this condition does not hold. So then if you actually fix it, you make the transfer in the correct direction, then we will be able to prove that your specs hold. OK, so this is one example on why these specs are important. So let me show you, again, a little bit more complex example. This is the same token. It's just that now I'm using this batch transfer function, which can transfer some amount of some value of tokens to an array of receivers. It does some checks on the length of the receivers. It calculates the total amount. It checks that the sender has this amount. And then it subtracts this amount from the sender. Then it uses a loop to transfer this amount to each receiver step by step. And for most of the operations, it is actually using this SafeMath library, like for example, the subtraction and for the addition. But there was this famous bug where developers forget to use it for multiplication, which could result in a potential overflow and basically a generation of tokens out of thin air. So if you run, so as to verify on this example, maybe I will just move it a little bit so that it's visible. You have to turn on overflow checking that you can do with the special flag. And it will tell you that there's a potential overflow. But if you fix it, you are using multiple from SafeMath, then it's no longer reporting any false overflow alarms, which many of the tools actually tend to do. But just because there's no overflow, it does not necessarily mean that the functional properties are met. So now we can, for example, just put back our invariant that the total number of tokens should be equal to the sum of the individual balances. And we might want to try to prove that this will fail because we have a loop. And in this case, the verifier actually needs some loop invariant that must hold for the loop. This is required because of this verification approach. And one invariant that we need is that the loop count is always less than equal to the receiver's length, which it can be equal because when it exits the loop, it's equal. And we need also the contract level invariant, but a slightly generalized version. So when we are doing the loop, the total amount of tokens equals to the sum of the balances. But since we first subtracted the amount and we have not made all transfers yet, we have to add those transfers that we have not made yet. So we still have length minus i transfers to make. So this should be added. And with this invariant, now we can verify this example. And this is an interesting example because it's pretty complex from a verification point of view. There's a reasoning going on over, like bit precise reasoning going on over 256 bits. There's invariants. There's also some non-linearity. So this is a pretty nice example of what we can achieve in terms of performance. Let me show you another classic example. Do we have a question here? Yes, sure. Does it also work if you use the symbolic multiplication instead of the safe multiplication? So does it find the error? Reface, so does it find the error if you use the asterisk for multiplication but you do not turn on overflow checking? So this is a good question. If you do not turn on overflow checking, then it will not find the issue because essentially in this case your spec holds because if there's an overflow in the balances, then basically there will also be an overflow in the sum of the balances. So because we have this symmetry, there are two overflows. They will cancel each other. So yes, really good question. And this also highlights why you should pay attention on what you are actually verifying and what are your specs and what's your configuration. Yeah, thanks. Can I also ask some stuff or...? Yeah, sure. Okay, so yeah, thanks for showing this. Also verify this is really nice. And I think we're doing very similar things as everybody talked with Dayan. So I have actually multiple questions so maybe we check them offline. But one question that I wanted to ask now is for the loop invariant and also maybe for the contract invariants, do you try to verify them as well or do you assume them to hold? The invariants, we are verifying them. So you have to manually write them but if you write them, then basically we are essentially verifying them. So... Also the loop invariant. Yes, also for the loop invariant. So basically we will check whether it holds on entry and then we will use an inductive proof which says that like, okay, if it holds on entry, then let's check if for every iteration, if we assume them before the iteration and then we execute one step, can we prove that it will also hold after the iteration? So it's basically an inductive proof. For the contract level invariants, we do the same. We prove that the constructor ensures it. And afterwards for every function, we will assume in the beginning and assert in the end. Basically that's the main idea. And for these functions that you call like underscore and score, verify something because you didn't want to potentially have conflicts. One thing that I've been doing to get an interpret function is basically to write an extra interface with names of functions like with unimplemented functions that I want to use as an interpret functions. Yes, that's a... So if you do that, you can also get like a nice AST for the function and the function call. Yes, that's a good point. I've also seen other verifiers doing that. But I think our main decision, I mean, we were considering this method, but our argument against that was that, so in that case, I think you can, you will have to include some other source file in your contract. So you have to actually modify your source code a little bit. And what we wanted to actually do is to like have the original source code completely unmodified and just include everything in comments. So basically when you would compile this contract with the original compiler, it would still compile and produce the same binary or AST output without these verification specifications. So I guess both methods have their advantage and go back. I can pause now if people have more questions, but otherwise I still have more questions. Okay, maybe I will just continue for a while and then in the end we can discuss or we can also create a breakout room and take some of this stuff offline. Yes, just a heads up. We have like seven to eight minutes left. Okay, yeah, that's perfect. Okay, so let me just get back to this other classic example, the re-intrancy, which is usually illustrated by these simple wallets where you keep track of balances in terms of ether and you have some deposit function which is payable so that users can deposit, you memorize their balance, and then you have a withdrawal function where the users can specify some amount to be withdrawn. You do some checks and then you use this call function to make the transfer if it fails, you revert, otherwise you deduct the amount. And this is a well-known bug, like for example from the DAO for re-intrancy. And many of the tools actually, like even the linter from VS Code, we'll tell you that you should not use this call because it's dangerous. And here we also have an invariant which says that the sum of the balances should be less than equal to the balance of the contract. It's less than equal because on self-destruct, this contract can receive some funds. So it's a slightly generalized invariant, but also in this case, if you run source, you verify, it can tell you that, yes, this is dangerous. There are errors because when you are making this external call, your invariant does not hold, your contract is in an inconsistent state. However, like what many of the tools tend to do is just like if you have a call function, then that's dangerous and you should not use it at all. But for example, here, if you actually fix the contract and you first make the deduction and then you do the transfer, then if there's even a re-intrancy, it's not an issue anymore because the check will not succeed. So this is actually safe to do. And in this case, if you run the verifier, it will tell you that, yes, basically your contract is fine. Modulo, of course, your specs. So it can check when you make the external call, whether your contract is in a safe state to make this external call. Okay, so just because there's an external call, it does not necessarily have to be dangerous. And let me just get back to the final example for this fine-grained access control. So here's a contract which implements a simple storage. Users can store some data. And for illustrative purposes, let's assume that it is now just a simple integer and we have a flag that indicates whether this data has been set or not. So we have a mapping for entries. We have an owner who will have some special permissions. We have a constructor to set up the owner and we have some other functions. So let's first start with the function for changing the owner. And here what you want to really make sure is that it can first of all, it will first of all not modify any of the data and then it can only modify the owner if it was called by the actual previous owner. And you can specify it with the following tag which says modifies owner if the message sender is the owner. So you can only modify the owner if it is indeed the old owner. Here just for illustrative purposes, I introduced the set data private helper function which will take an entry in storage as a storage pointer and some data and it will set this data and it will also set the flag. So since this is a storage pointer, it can basically modify any of the entries. So we just specify that it can modify the entries. Now you have the add function where a user can set some data by first checking that the data has not yet been set. Then it takes the pointer and calls the set data. So now you can specify it that it modifies entries but only at the address of message sender. So you are not allowed to modify someone else's entry if and only if this has not yet been set. Then you're allowed to do this modification and you can do similarly for update and so on since I'm running out of time, I will not show you that. But what's interesting is that for example, if you specify update, it will call the set data which modifies both the set and the data. There's syntactic assignments going on but since the update will require the entry to be already set, you can specify that it will not actually modify this set field because it's true, it should be true. And when you make the call, you set it to become true. So just because there's some syntactic assignment going on, we can still prove that it's not a real modification. So yeah, but I guess I'm not gonna finish this example.  You can find these examples in a complete form in the demo repository, you can try them out. So to summarize, I've presented Sourcey Verify, a source level formal verification tool for checking high level functional properties with in-code annotations. We have lots of supported annotations and we are using Boogie, modular verification and SMT solvers to achieve this task. And you can find it online on GitHub, it's open source, we also have a Docker image. You can also take a look at my website or my Twitter and you can find these examples and some papers. So I guess I'll finish now and let me know if it's still time for a few questions or we can also discuss online. I've seen in the Gitter that there's some discussion going on with the tags. Right now we use this notice because it was the easiest. So we could not really introduce our own one like we could not write like for example at invariant or at precondition, but if there will be some support for custom tags as discussing discussion is going on, we could also switch to that. So that would be something interesting for us as well. Okay, thank you so much for your talk. I think we would have time for like one more question if there is any more questions in the room. Yeah, Richard. Yeah, so it looked like when you didn't have the loop invariant for example that Salsy Verify reported an error, right? But I would assume that the SMT server in that case would have run up in like, you know, an unknown. So it's like, it didn't really disprove the claim. It just didn't manage to prove it. Yes, well in this case, I think the actual report that we are getting back from Boogie is that because there's a loop, the loop will basically have all the variables. So in the end, because of the loop, the conditions will not hold. But I think we could possibly detect that there's a loop going on without some invariant. So we could give some hints to the user that like, okay, we are reporting an error, but it might be because there are some loops which are not annotated. Yeah, because it would be interesting to see like when you get an error, I guess what you want is, you know, a counter example. Here's something that violates, right? And when it's an unknown, it's an unknown. We couldn't prove it. So, you know, you need to hit it more. Yes. Boogie doesn't support that or? Boogie has some limited support for generating error traces, but there's actually a different verifier called Corel. It consumes the same Boogie language and that's basically a bounded model checker. So I think what we could essentially do is to first run Boogie to say, to check if it reports an error or it can prove the property. And if there's an error, then we could do a second run. With Corel, which will perform a bounded model checking. But since we already know that there should be an error, it will find a trace. Or if it does not find a trace, then we know that the original error should just be like an unknown result. Okay, thanks. Yes, but yeah, thanks for the question.


Hello everyone, Rob Greenfield here in the garden and today I'm going to share my tips for beginner gardeners. So if you are out there feeling like you have a black thumb feeling like whatever you plant dies and you are dreaming of having a green thumb, dreaming of growing an abundance of food and having that fresh food on your table to eat, then this is the video for you. I actually feel like I'm in a really good position to be able to share these tips with you and the reason why is it's not that long ago that I was a complete rookie gardener myself. Go back just three years ago and I had grown very little food and then I launched into a year-long project of attempting to and successfully growing and foraging everything that I ate for an entire year and during that year I grew over a hundred different foods in my garden. So I quickly went from a beginner who had grown very little to a pretty experienced gardener who has spent hundreds of hours in my garden and in other people's gardens both in the United States and in other parts of the world. So I'm in a place where I can still remember the nights of frantic searching online and calling friends and seeds not sprouting and plants dying and just that that fear to now having the confidence and really being way beyond that beginner stage. So that's why I'm really excited to be able to share this advice with you from a recent beginner to a now pretty decent gardener. So my first tip is a really simple one and that is to start small. A lot of people have this dream of turning their whole yard into a garden and growing an incredible amount of food. That is a wonderful dream to have. I completely support it. But what a lot of people miss out on is the fact that it doesn't happen overnight that you go from having very little gardening skills to all of a sudden this paradisical garden. Everybody has to start somewhere and for a lot of us who don't have gardening in our background, our parents didn't garden where we're starting kind of from scratch as adults starting small is one of my absolute key places for beginner gardeners. So that could mean a small raised bed in your front yard.  Don't put yourself down for any amount of food that you grow. Any amount of food you grow is a really positive step forward. So start small and each season you can add on more and more and more. And this will also build your confidence one step at a time. If you start with way more than you could possibly handle, often it gets away from you. You become overwhelmed and then you just kind of lose it all. So if that's the case for you and you don't think you can go big right away, absolutely start small. Now if you have so much free time and you really think this is what you want to do, I'm not discouraging you from going big, but definitely one of my number one tips is start small if you feel like that is what is needed for you at the time. Next up is keep it local. Really try to seek out the local resources. The truth is is that the gardening knowledge is almost everywhere. It's often that we pass it up. We don't realize that anybody gardens in our area because we're not looking for it. We don't realize it, but everywhere around the country and around the world there are local resources. That really know that area well. So seek out local nurseries, local seed companies, local gardeners. If you're driving around your neighborhood and you see a garden in someone's front yard, knock on that door and say hello and talk to them. A really great way to go local is community gardens. Join a community garden so that you can learn what plants are growing well there. Get support from them. Another thing is local classes. If you can find classes that are in your area, that's a great way to get the knowledge that is based on your area and then books as well. Check out your local library. Often they will have books that are based on your region or your state. For example, when I was in Florida, I got Robert Bowden's book, which was Florida Fruit and Vegetable Gardening. So it was geared exactly towards my area and leaves out so much of the information that I didn't need. It focuses on the information that you need. Keeping it as local as you possibly can. And then that moves into the next one and they're pretty much tied together. And that is garden as a community, garden together. There's no reason to do this alone. If you are at home alone, doing this all by yourself and all you're doing is looking on the internet, you know, Facebook groups and things like that, watching YouTube videos. Sure, those things are helpful, but it's easy to feel, you know, really overwhelmed and unempowered when it's all by yourself. So get involved with others. When I had my garden in my front yard, I'd have people drive by and I would see them stop and look and I would encourage them to stop by. One time I even had someone knock on my door and he very timidly said, I know this is awkward, but I've been dreaming of starting to grow food with my kids. I just had to knock on the door and ask and I walked him throughout my garden, sent him home with a bunch of food and gardeners love that. Gardeners love to share their time and their knowledge. So get involved with local people. Joining a community garden is one of the simplest, easiest ways to do that if you can. Another thing you can do is volunteer at local organic farms. There's a website called Woofing, Worldwide Opportunities on Organic Farms. It's W-W-O-O-F dot net. And that's a great way to just immerse in local food growing. And you can also travel and do it as well. So there is no need to do it alone. The resources are out there. The knowledge is out there. The community is out there. Gardeners welcome people in. So don't do it alone. Do it with community. Now, keeping on that theme of local, but moving into actual plants, moving into the planting, where do you source your seeds and your plants? For me, it's all about local varieties. So seeking out local seed companies and local nurseries that have been growing these plants in your region for years or even decades. How that works is if a plant is designed for that area, it already knows the insects that are going to attack it. It already knows the weather patterns. This is a plant that is designed to grow in that area. So if you can buy your seeds from local seed companies that produce them in your area, as well as nurseries, this drastically increases your chance of success. Whereas going to the big box stores and buying the plants that have been shipped from who knows how far away from some sort of centralized distribution center, those plants might not be designed for your area. For example, where I did a lot of my gardening in Florida, big, fat, juicy tomatoes like beef steak tomatoes don't do well there. What does really well is the small everglades tomato. And with the everglades tomato, a person with a black thumb, boom, green thumb and tomatoes in incredible amounts.  So seeking out your local seed companies and your local nurseries is a huge step in the right direction. When a lot of people start planning their garden and they start planning what they want to plant, what they do is they think about what their favorite foods are. And they even walked on the grocery store aisles and think, OK, these are my favorite things to eat, so this is what I'm going to plant. And sure, that can be beneficial, but here's the downside of that. If you're doing that, most of our grocery stores are based on globalization, where food is shipped in from all different regions, where it does really well in this area and not well in that area. And if you do it that way, you'll often end up planting things that just aren't going to do well in your area. So I think the best thing to do is instead of going to the grocery store and asking what you like to eat, talk to people in your community, ask them what grows so ridiculously well that you can't even kill it. What grows so well that it becomes a problem because there's so much of it and plant those things. For example, here in this garden that I'm in, mint is taking over like crazy. And I just made a video about easy plants to start growing. This is one of them. Plant what has the fewest pests, what grows really easily. And then once you've mastered those easier plants, then you can start to get into the more difficult ones. Maybe you love blueberries, but they grow in acidic soil. So if you don't have acidic soil, you don't want to start there. But once you get more experience, then you can work with changing the pH of your soil. That's a little bit more advanced gardening. So again, with the grocery store, we've become disconnected with the seasons, being able to get most things at any time throughout the year. But one of the absolute most important things is to plant the right things at the right time. If you try to plant tomatoes early on in the spring, while it's still very cold and the soil temperature is really low, you're going to have a hard time because in colder climates, they like heat. The same goes for basil. That's going to be later on. Early things, for example, kale can be started earlier. And actually in very hot places, it doesn't do well in the peak heat because it likes the colder temperatures. So it's really important to plant the right things at the right time. And you don't have to figure out each individual plant. What you have to do is simply find a planting schedule. You can check at local universities. Often their extension program will have a planting schedule. Some community gardens will have them. And you can also just go online and search for, for example, if you live in New York, New York planting schedule. And this will help you to plant the right things at the right time. And by doing that, ensure the success of those plants. As far as the details, like how far apart do you plant each different thing? Like tomatoes or kale or arugula and how deep do you plant the seeds? And should you transplant as in starting from pots in the greenhouse or in your house or direct so the seeds into the ground? For that, I recommend following the instructions on back of the seed packs that you get and really importantly, getting a book for your area, which I mentioned at the beginning. A lot of these books that are based on your area, they give you those details so you don't have to seek it out for each individual one. So in this video, I'm not going to go through those details because they're based on each area. Instead, get a local book for your region and follow the instructions from the seed companies where you buy those seeds. There's a lot of other details. For example, sun and water and soil. You could talk about that for hours and hours and hours. But I want to give just a few tips on that. As far as sun goes for beginner gardeners, I generally recommend full sun. Now, if you're in a shaded area like I am right now, that's really difficult. There's plants that can grow well in shade, but generally most plants need a lot of sun. Make sure that you're not under the shade of a tree or where your house casts shade for half of the day. So before you plant your garden, keep an eye on that spot. And remember that the sun changes throughout the year.  Ideally, it should stay in a clump that breaks a little bit. And it's basically the consistency of a rung out sponge. So watering in the morning is the best before the heat. And if not the morning, then the evening, not in the middle of the day. Another way to test if you have enough water is you stick your finger down into the soil. And if it's moist when you get your finger down to about your second knuckle here, then that's another sign that you have enough water. If it's dry all the way down, it needs to be watered. So soil varies all over the place and how you're watering, whether you're in the desert or in a very fertile area like Southwest Wisconsin or in Florida, where it's mostly sand, it's going to vary a lot. But those are a few tips with water. And again, local resources are key because they're going to know your soil. And then another one is healthy soil. A lot of people, they only focus on the plants. And when they see problems, they think about the plants. But the truth is one of the most important things is having healthy, living soil. So take care of your soil. Take very good care of your soil. Your soil is your life source to have that healthy and abundant food. My next tip is to make it convenient. Now, what I mean by that is putting your garden in a location where you naturally go. If you put your garden in, you know, a 10 minute walk on the other side of your property where you can't see it. It easily becomes out of sight, out of mind, and it's easy to neglect. So put it in an area where you naturally go every day, maybe your front yard right next to your front sidewalk, where every day you have to walk past it to get to your car. That way, every morning and night, you're naturally drawn to it. And the same goes for water, making sure that you have your water source near your garden ideally, whether that's a long hose. Or if you don't have a hose right next to the spigot, where you have your buckets or your rainwater harvesting, designing it so that it has a relative amount of convenience will make it easier to get out there. Don't put a whole bunch of obstacles in the way. And this is really important when you are getting started and you're not used to it and you don't have a habit of getting into the garden and you have a habit of just going to the grocery store. It's easy to neglect it if it's out of sight, out of mind. So design it to be relatively convenient when you're just getting started and you have an incredible amount of information out there. And it's really hard to choose which is the right information. It's it's easy to be infiltrated by chemical mindsets. The idea that, you know, you need to spray things, that every insect should die, that the soil needs these massive amount of fertilizers. But my tip is don't fall into the chemical mindset. In my year of growing and foraging all of my food, where I grew over 100 different foods, I never used a single pesticide, not even organic ones. And these pesticides have only existed for a tiny, tiny fraction of all the times that humans have lived off of the food that they've grown. So you can grow without all of that, without needing to have all of this money and this outside resources and be able to grow in an organic in a sustainable manner. Next, I want to talk a little bit about mindset and focusing on a mindset of abundance rather than scarcity. Because when you think in scarcity, it often creates scarcity around you. But when you design in abundance and you think in abundance, it can actually help create that abundance. A really important part of that is remembering that in order to have an abundance, you have to have death. Death is a part of the gardening experience.  In fact, when you kill plants, think of that as part of your lessons, part of your learning to becoming a successful gardening. And in that way, it's it's not a failure. It's a part of the success. But even more importantly, remember, plants die. It's not like especially annual plants like carrots and kale and collards and broccoli. All of these only live for a period of time.  Don't think of death as a failure. Think about it as a part of the cycle of the gardening. Another thing that I mentioned just now, I mentioned annuals.  Perennials are plants that you plant once and they come back for a very long time. Raspberries and blackberries and blueberries, strawberries, fruit trees like apples and pears and plums, nut trees, Jerusalem artichoke, rhubarb, all of these foods that come back year after year are perennials. So I recommend working with perennials as much as you can because they generally take less work. They have a lot fewer pests. They take less nutrients and they keep on coming back year after year after year. And many perennials thrive on neglect. Focusing on perennials is definitely a big tip that I would move towards. It's often great to start with annuals. For example, radishes, they produce in 30 days. That's one of those easy plants that I mentioned that can give you that boost of success and that confidence to move forward. But as you get better and better, I recommend moving more away from those annuals and moving more towards the perennial system. So there you have it. Those are some of my most important tips for beginner gardeners. There's a lot of other ones out there. But if you just start with those ones and you remember to start small, start simply, maybe start with just five easy plants that you're excited about. And if you do five the next year and you do five the next year within a few years time, you can be growing dozens of different species.  So I hope that you gained a lot from this video. If you did, make sure that you subscribe. If you have friends who are beginner gardeners that consider themselves to have a black thumb, make sure to share this video to help them if you think it would be helpful. And if you want to get this out into the YouTube world, ask questions, comment in the comments below and make sure to give it a thumbs up as well. So I love you all very much and I'll see you again in the garden real soon.


The name of the exercise is Raiku Vice-21. So this is Max-Force 1st Air Defense Centric Exercise that we're doing on Island here in Okinawa. Really what we're doing is providing aviation command and control services for fixed-wing aircraft. So for this specific exercise, we got VMFA-121 and 242 from Iwakuni. Those are your F-35s. And then we also have on the Air Force side the 9-61st AWACS. And then we have 67th and 44th Fighter Squadron, which are F-15s. So really what we're doing is running two missions a day, mixed between offensive, defensive, counter-air type, live flight scenarios, where the aircraft, they go flying the local range spaces here in Okinawa. And then us down here in the tactical air operation center, we've got Marines providing air intercept controller services, and then other aviation command and control services in support of those aircraft.


Hi everyone, Joe for Jasper's case breaks.com coming at you with 2019-2020 hip parade hockey Limited edition series eight five box random team break number two one spot gets you two random teams And we comboed up those teams right there big. Thanks to these folks right here. So one spot gets to let's oh double up Oh Mike Sir mix a lot. Let's roll it. Let's randomize it four and a three seven times Kentucky Derby's about star the main race Four and a three Does that call the Kentucky Derby? Hey, oh some Woodford reserve four and a three seven times names first one two six Seven and eighth and final time now seven times. Damn it Got distracted by the horses now. I gotta go back. That's seven right there. I really have to do this by hand I think so Hold the spreadsheet out. Let's get all this on the same page Jeff Derek Hamilton and number four Robert Throne Matt McLaughlin Schmidt Robert Throne the birch Jeremy Port Jeff Krugnell Rick Serrano Mark Copeland and Jeremy Port Last spot mojo star 15 is Matt McLaughlin Jeff 16 17 Steve Birch Mike Tower 18 Mike Tower 19 Derek Hamilton Jeremy Port Rick Serrano Mark Copeland Jeff Rick Serrano Jeremy Port And the number 26 spot There's seven right there All right dice roll seven times four and a three. I actually went a 27 Rick Serrano 28 Rich Schmidt And then Steve with the last two Let's pop this back here Just spot checking here All right, I think I got it right folks I know I got it right because I had hit pause at the right time Yeah, we're gonna have to we're gonna have to roll with that. All right. There you go All right now seven times four and a three seven times four The teams let's not screw this up It is my Friday folks. Maybe my brain is checking out already two three four five six And seven and final time after seven times. We've got the Rangers all the way down to the Canucks All right, so there you go mark with the rangers blue jackets Jeff with the Preds Derek with the Devils Robert with the Oilers Matt with the Coyotes wild combo We got rich with the Kings Robert with the Ducks Steve with the Flyers Jeremy with the Jets Jeff with the Senators Rick with the Islanders Mark with the Panthers Jeremy with the Caps Matt with the Stars Jeff with the Black Hawk Steve with the Golden Knights Mike tower with the Bruins and the Sharks Derek with the Sabres Jeremy with the Red Wings Rick with the Blues Mark with the Penguins Jeff with the Maple Leafs Rick with the Canadians Jeremy with the Avs Rick with the Lightning Rich with the Hurricanes and Steve with the Flames and the Vancouver Canucks Let's get all that on one page. Let's sort by team right there All right, there you go. Sorry about the the confusion there, but We got it typed in correctly. Everything's fixed now. There you go I'm going to pause the video allow for a little bit of trading time When we come back, we'll see if there's any trades and then the break stick around All right, welcome back everybody. There were no trades. So that list remains the same No, that's not working There we go one of those days folks. All right. So some nice high end Hockey potential in here. Remember I marked all all of these two Right there. So you know that they're from that same case we did yesterday We've got hip parade baseball hip parade basketball and hip parade football on the website right now So check it out on jaskiescasebrates.com. We can do more of these fun repack products All day long if you want well until we run out if you want to All right, good luck I think just the two on the site Frankie Is all we need to do. All right. First one out of the gate is Brad Marchand Now I'm assuming that everybody in a product like this are good players, right? So here's a good one for Mike tower in the Bruins The allure red rainbow Brad Marchand autograph that looks really clean Not a scratch on the card or the top loader. Sometimes he scratches on the top loader. It's pretty nice. It's next box Next up is Andre Shrednikov a hurricane Signature sensations for carolina that'll be for rich Next up is Mark stone future watch autograph 110 out of 999 Ottawa senator jeff with that one He's the only good one says rich for his hit anyone have any uh Any stake in the 146 kentucky derby? All right next one is dual relic and autograph there's A vigni kusuf hand numbered 55 out of 92 Nice dual relic and autograph from the cup hockey. I love the cup hockey, right? This is from the cup. Yeah 15 16 cup hockey caps That's going to be for jeremy. There you go jeremy And the last one we've got more hit parades for different sports in the store right now jaspy's case breaks dot com Go for it. It's a lot of fun I think some of the maybe Baseball basketball might have and football might have some more uh graded card options here, but Get it going. All right, and we got carry price dual relic and autograph 202 out of 4 99 That's for the canadiens From spx hockey There you go, and there you have it boys and girls canadiens That'll be for montreal. That'll be for rick serrano with that one. There you go rick. Thanks for getting in folks I'm joe for jaspy's case breaks dot com. I'll see you next time for another break. Bye. Bye


In a dramatic turn of events, Governor Umaru Finteri finds himself entangled in a legal showdown with Abubaka Babazango, aka Abaza, a prominent member of the Adamawa All Progressives Congress, the dispute centers around the revocation of a two-hectare plot of land in Yola, initially designated for a model school in the name of public interest. Finteri's lawyer, Barista Desmon Adewale, countered the official narrative, a setting that a revocation was driven by political motives rather than a genuine commitment to public welfare. Adewale argued in court that the Governor's decision had no intention of building a model school and was in fact an illegal and politically motivated act. Speaking to the media after the court session, Adewale revealed that the fear of losing ownership prompted Babazango to seek legal intervention. And the plaintiffs have come to court to challenge the reactionary government. The law says that before you file any suit against the state government or any of its agents, you must give reactionaries of 30 days. So you cannot come to court. That's how we demand reactionary actions. That must be for 30 days before you file any suit against Babazango. The council for Babazango contended that the government's reliance on the Adamawa Limitations of Law was misplaced as imminent threats and human rights violations warranted immediate legal action, circumventing the need for a pre-action notice. In response, the government's council Barista Bayumi, a comedy, defended Finteri's right to revoke the land for overriding public interest, citing section 28 of the Land Use Act. The 2020 general election was especially presidential. The APC has a party sought to use the battle square as a campaign center. The government confuses them. And my point being a stakeholder of the government, the APC decided to allow them to use the battle square as a campaign center.


Let's begin sort of at the beginning. It's often said that this building was was hard won Not easy to achieve and of course that's true But the whole institution was also the result of intense debate a great Hard-fought battle for what kind of institution should get created that act of Parliament 1972 was the result of more decade and a half That really emerged from that great post-war Institution building period that gave us everything in succession from the National Health Service the Arts Council a third program open University the National Theatre and One thing the nation did not have which was a distinct national library But it was born in a very very particular spirit a Determination always to look at the future and this is a theme we'll come back to again It's the theme of the evening not just a commemorative library looking back at heritage but putting collections to work to generate new knowledge and That that sense of youthful forward-looking institution has been with us all the way through we checked which What was in the charts the day it finally opened for business in 19 and appropriately for the organization which is now home of the National Sound Archive And it was born into an extraordinary time of possibility and change within a couple of years These two companies had come into existence and rather like the British Library Nobody knew at the time what they would become and in a sense it was similar for this institution It was sort of almost Invisible and that was partly because it had not it was not so much homeless has had too many homes Of course one of them which is still with us is in the north of England very proudly still 500 staff Employed at Boston Spa in Yorkshire the dead's geographical center of the country the library at the center of the system and 43-acre estate little known to Londoners, but certainly known to everyone in Yorkshire But here in London even here The library had a plethora of locations at least half a dozen I'm sure I'm going to get corrected on this because I'm sure there was smaller collection somewhere That no one's told me about but of course it was centered Emotionally and headquarters and practically at birth in the wonderful British Museum And I know we have colleagues from that institution here tonight and that home Presented itself with opportunities and and challenges It was so deep-rooted that the task of creating something new was all the more difficult for everyone involved and of course the task of synthesis fell to Sandy Wilson Colin singed Wilson and his team and Collaborators some of whom are here tonight. I don't know if MJ is here but many others who were involved in that project are still close friends of this Institution and truly it has to go down in history as one of the most challenging and brilliantly Executed works of synthesis of problem-solving in architectural history