Hello everyone, let's start our next talk, the last one before lunch. Martin Kraft invited Rom to give us a talk about how to better produce open software. And let's keep questions for after the main part of the talk there will be enough time for them. Rom, the floor is yours. Thank you very much. Thank you. I'm so glad to be here, but I said Martin. Martin heard me give a talk in Linux Conf. And he said, oh, you should come give this talk at DevCon. So I thought, oh, this would be so exciting. And I came here, and Matthew Garrett gave it yesterday. So I didn't know where to go from there. So there were two things that I guess I should point out at Matthew's talk. I don't know if he's here today. The first is he was pointing out how he had been contrasting where things were today from where they were 20 years ago. And he pointed out that one of the differences was that he was thinning on top. Behold the future, Matthew. Secondly, he posed a number of questions about why open source wasn't in free software, hadn't met its objectives, which was kind of what I was going to talk about. But he didn't have any answers. And so I'm here to tell you that I do have the answers. So I'm just going to talk about the answers part. And I was going to talk about the software engineering aspects. I'm a software engineer. But he did talk about other problems like revenue and whatnot. And even though I'm not an economist or a financier, I have played one on TV. So I thought we would talk a little bit about that since I had the extra time. Lou Gersner, in his book about the turnaround of IBM, talks, he's called, who says elephants can't dance, chapter 8, I think he talks about strategy. He says, people overrate strategy. The strategy is obvious. Strategy is what everybody else in your industry is doing. It's really the only thing that needs to be done. And so therefore, what differentiates people who succeed versus people who don't succeed is not their strategy, but how they implement the strategy, because this strategy is obvious. So in the case of, what do we do about revenue? The answer, of course, is fixing issue management. So why do I talk about fixing issue management? One of the things that came up, the question was asked when Matthew asserted that Windows was stabler than Linux. Were there any studies for that? So the 2012 Ovarity study, and I've been doing this for a long time, there's a bunch of other ones. Looking for bugs in proprietary software versus free software and found that the average defect density between thousands of lines of code between proprietary software and free software was the same, didn't make much difference, but there was an interesting diversion in the results. And what was that diversion? The diversion is that as proprietary software projects get bigger, they get more robust fewer bugs, and as free software projects get bigger, they get more defects, which is to say, if you believe the data, free software doesn't scale. Fix that. I think we've known this all along. The reason we got here, in fact, is because people have known this forever. In February of 1983, IBM started their OCO program. OCO was object code only. The way it used to work before that was if you had a computer, it came with the source code to the operating system, and it was the way things worked. And IBM was in the business of selling the computers, they didn't mind giving you the source code to the software because it was good for their business. And then if there was a bug or something, you could fix it because you had the source code. And if you wanted to change the behavior of the operating system, yeah, the source code, you could fix it. You could add your features yourself. And people did this for a long time, but as more and more people started using computers, they kind of kept wishing that IBM would do all the fixing instead of them.  For us, we'll pay you. We want to pay you. We want to give you money to fix the bugs in the software. We think that's reasonable because we don't want to do it ourselves. And IBM said, well, the problem is you've been fixing it. So everywhere we go, people have the software, they have the source, and they modify it. We can't be responsible for the stuff that you modify. We don't know what you did. That would potentially be an infinite cost. So what we're willing to do is we're willing to take your money and fix the software if you promise IBM Institute of Object Code only. We'll just ship you the object code, and that way if there's a problem, we'll fix it. And to this very day, right, that is a red hat model. And we said, and so now the difference between free software and open source software, of course, the free software, people said, well, we know that if you have free software, it's not going to scale as well as proprietary software. So software you're going to wind up with is going to be of lower quality. But we're okay with that because we want the freedom to modify it ourselves. So the freedom is worth the lower quality. And the open source people said, no, no, no, no, no. This open model of software development is a better engineering practice. And it sounded reasonable. More eyeballs make bubbles shallow, and it turns out it's not true. We learned this with things like shell shock and heart bleed, that in fact, all of those eyeballs don't solve the problem. And so again, we've known this forever. I highly recommend this book, the Handbook of Software and Systems Engineering. It came out in 2003, so maybe getting a little dated in sections, but it's a great collection of resources and whatnot about software engineering. So one of the things is, if you think about how many eyeballs do you need to make a box shallow, there was actually some research done on that. It turns out one of the results of research is code inspection is more cost-effective than testing in order to identify bugs. So everybody knew this, and that's why being able to look at the source code was a good thing. But then secondly, the number of eyeballs that the sweet spot is six. That is, if you have three people look at it, you find the most number of bugs for the cost involved, and as you add more people to look at it, you actually just don't find that many more bugs. Not worth it. So it is not true that more eyeballs make bugs shallower. It is true that up to six eyeballs bugs get shallower, and then after that, it stays pretty much the same. So to fix the revenue problem, Gerser's point about what should the strategy be, well to increase revenue, you should charge for something. Or, if you're an overachiever, you should charge for some things. And the first pushback that you get when you talk to crowded people in some place like at Debian is, well, but we're non-profits. This is more about a community thing, and a charitable thing. Why should we charge for stuff? So I took the trouble of Googling for, can a 501C3 charity charge for stuff? And the answer is 72% of charitable income is earned by charging for stuff. Just because you're not trying to make a profit doesn't mean you don't charge for what it costs to do stuff. So what should a free software project charge for? Well, again, if you go back to the GNU Manifesto, back in Stalman lays out when people talk about, oh, this will never work because programmers will be able to make money. No, no, no. There's lots of ways that you could make money. And one of the ways that you could make money is you could charge for distribution services. Another way you could make money is you could charge for feature requests and fixing things. So the proposal is, and it's very simple, is be able to charge for stuff. So how do we do it? Well, the easy one for this crowd starting from the bottom up is every time you do app get, charges your credit card for 99 cents, just like the App Store. And the reason I thought of this, and I don't know if she's here, was talking to somebody, Valerie, about why does that be a new packaging when we had this discussion and it was technical. But at one point she said, well, it's kind of like the App Store, right? It's a signaling. The fact that it's been packaged by Debian is kind of the stamp of approval. Kind of like, whatever, this was the App Store. I said, you made it into the App Store, or the Apple has reviewed it and the same thing for the Android Store. You know, somebody has reviewed it, and so you can kind of trust it. Well, that's worth something, right? So there's lots of ways that you can charge for this. You can charge for the people who are trying to put it in, or you can charge for the people who are trying to get it out. But you should build it in. So apps should have that capability. You know, take one of those open source and micro payment systems and build it into the app. And the thing is, it doesn't force you to charge for stuff. For those people who feel that they don't want to charge for stuff, that it should remain free as in the air, then set your price to zero. That's okay. But for those people who think that, you know, about it's not too much to ask and do that. The more interesting one is maintenance, right? It's charging for bug reports or feature requests. And the solution to that, also equally obvious, but a little history again when I first started using version control systems back when I had hair. There was... The one that we used was called Razer. It's a proprietary system.  The theory being, if there was no issue, why were you committing changes? And this is not a reduction of my freedom. If I want to go in and make a change, there's no issue. I can write an issue and say, this is the issue that I have. And by the way, here's the commit that fixes that issue that I had. It closes the loop quite nicely. So the solution for the charging part is if commits have to be associated with issues, so that you have to have the issue in order for the software to advance, charge per issue. And there's a number of different ways of doing that. And again, as for the other one, also your charge could be zero, in which case it doesn't matter, but when somebody files a bug report, it's like, you know, we need your credit card number for this. And when somebody commits a change to it, you're going to get charged. And you can revenue share free software things, so whoever it is that does the commit, gets the revenue. And the best people to implement this, of course, is GitHub. Because, you know, they're collecting people's credit card information. Anyway, a lot of projects are over there, they're going to take a 10% cut, they're going to make a fortune on this thing, just by doing it. But it doesn't have to be GitHub, it could be GitLab, it could be Launchpad, it could be Bizarre, like anybody could implement this notion. And again, so the notion is the capability should exist, charge for stuff. But still, be it charitable work, communities involved, just getting paid for their efforts, and possibly not even getting paid what it's worth. Or a buck, just to weed out people who are spamming you with all kinds of things that they really don't care about. So yeah. If everybody here just wrote an email to GitHub saying, you know, we really like the feature to be able to set a price for what it is that we would like to charge for closing a bug report. And we could set it to zero, and the default could be zero, but you know, it's like, could you add that feature? Then if people I asked they would add the feature and the people could do it. That's not what I came here to talk about. That's finance, that's funding, that's money. I'm a guy, what I came here to talk about was, how do we fix it? So the free software is not of lower quality than proprietary software. What, where did we go wrong in the engineering department so that that shouldn't be true? Just eliminate all dependencies. Software should not have dependencies. Dependencies are bad things. Dependencies are what we used to call PEC debt. If you have dependencies, then your software is of lower quality. And free software, open source software exacerbated this problem, no end. Because in the ancient times, if you had software, and you wanted to do dependencies, so you wanted to include some other stuff, you had to pay for it. So you chose your spots wisely. You picked one or two or three things that you really needed in order to give you a lift and then you used those one or two or three things. When the software became free, we went into Jeven's paradox.  William Stanley Jeven's was a British economist who in 1865 made an observation about the energy markets, which at that time was mostly coal. And the observation he made was as the price of coal came down, people spent more money on coal. If you made the resource less expensive, then people should be able to save money on that thing. So what it turned out is, it was even, so the counter argument was, well, if I have a $100 budget for coal and so I pay a buck a pound for coal and I spend $100 and then coal becomes 50 cents a pound, it's like, I still have my $100 budget so now I buy 200 pounds of coal and that makes sense. But what actually happened was people spent $150 on coal to say like, oh, since it's so cheap it must be a better value I should do more of this instead of the other things that I wouldn't have been spending my money on because this thing is a great value and that's Japanese paradox. And that's what happened with software. As it got free, we wound up using more software than we had used either to simply because it seemed like such a bargain. So unfortunately, I gave you the reference to Andres and Rombach's book because the other great source of information around this kind of stuff was the sea bay set of Hitsburg, the center for the empirically based software engineering which unfortunately is defunct because it doesn't exist anymore but they used to put out a great bunch of stuff. So this is from an article that they put out in 2001 where they were looking at COTS. COTS is a commercial off-the-shelf software but this is basically the notion of rather than writing everything yourself you should use stuff that you can get in the marketplace and so they're talking about proprietary but the principles presumably also work for free software.  So CBS, which is actually a recursive acronym, the sea stands for COTS which stands for commercial off-the-shelf. So CBS is COTS based software. It doesn't seem like you need all that level of equanimity but nevertheless. So the point being one of the major observations that they make is that if you have n moving parts when you're engineering a solution then you have n-squared possible interactions and in the best case assuming that they're not three-way interactions which might be coming into play if you just have two-way interactions. So as you add more components to this thing the cost scales super linearly, quite radically. And again he quotes from Garland et al. in 1995 pointing out that the sweet spot is four. Maybe three. So in this article the other thing they point out is by the way is if you're doing what they call glue code which is you take two pieces of software and you sort of go to integrate them and you have to write the code that glues them together and then you look at the effort involved the glue code takes three times more effort per line of code to write than the original code. So if you have like a hundred lines here and a hundred lines there and then you write ten lines to glue them together the cost of that ten lines is like you have to write 30 lines of code and if you wind up doing a lot of glue code you're actually possibly better off not having the components and just rewriting that function yourself because that is less effort than trying to glue them together for a variety of reasons so I recommend them. But the particular paper to read if you're only going to read one thing on this subject use software components only the giants survive by Butler-Lampson. And the reason I quote this one is because you know Basilien Baum did a lot of great work but they're not that famous whereas Lampson got the Turing Award and arguably is the person who invented the personal computing and distributed computing so that's what he got the Turing Award for so it's a great paper besides the start of the paper is at the 1968 NATO conference Doug McElroy proposed that a library of software components would make programming much easier since then many people have advocated and worked on this idea often it is called reusable software though this term has other meanings as well this paper explains why these ideas don't you get a bunch of dependencies bunch of software components and you aggregate them and you try to reuse them and you try to build stuff on top of them alright there's a great deal of literature that says that cannot possibly work and free software introduced Jebin's paradox to encourage everybody to do stuff that way so why doesn't it work his outline is basically well when you go to write something that's going to be reusable it's got to have all of these properties that the software that you would have written had it not been reusable so you want the thing to be portable to a bunch of different environments the person who actually needs the software only needs to run their environment so if I'm using Debian I need my software to run Debian I don't need it to run on Red Hat because I don't do Red Hat but if I'm writing something that's more general I have to worry about that if I want to run a window I have to worry about lots of code and now because that's also complicated now I need a much bigger testing infrastructure a lot more cases and so that gets much more complicated and I need more documentation for how does it work but things are it needs to be configurable differently for different environments and so forth so you wind up with if there's ten lines of code that you need out of a package and you import that package you're bringing along a thousand lines of code that you don't need you're going to solve all these problems that you don't have that somebody else has sort of the thrust of the argument that it's in fact kind of like a 10 to 1 ratio you need to be using more than 10% of the functionality and it turns out most people aren't using 10% of the functionality and that because then if it's a small enough component it's not worth writing the documentation doing all these test cases and whatnot the thing can't survive it's not viable you shouldn't use it and if you do use it you're in for a world of hurt and that's kind of the point of this talk now he does point out that large components are the biggest success in software engineering so things like a browser the renderer like a web browser that's like a huge component or a SQL database his cutoff in this paper which was written in 1999 is 5 million lines of code if it's less than 5 million lines of code and you think you need to include it you're probably done you're probably better off writing the functionality than you thought you would have gotten by doing that because that component isn't going to survive anyway you're going to have to rewrite it when it dies so you might as well start if it's more than 5 million lines of code it's probably going to be useful now again that was 1999 we're 20 years later the hair has gotten thinner on top and so I set the bar today at 20 million lines of code the thing you're looking at doesn't have 20 million lines of code you should just probably rewrite the bits that you need so how do you do that? well Google actually invented a word for this they call it vendering so if you have dependencies vendor dependencies means copy the code into your repo dependency, make a copy in the 1980s this used to be called white box reuse so there's two kinds of reuse when people are arguing about what is software reuse was a good idea black box reuse and white box reuse the black box reuse was oh you reuse this stuff like it's a black box you can't peer inside it white box reuse is get the source code copy it now now you can sort of change it and muck with it because you can see inside the box the white box vendering pretty much means take the whole project and copy it in you don't have to do that one of the things that free software did that you couldn't have done with proprietary software is since you can go and look in the area in fact you need a Shaoan algorithm you don't have to include all the open SSL for that or open SSH you just find the function that does that copy that over and you're done save yourself a million lines of code suck in all these dependencies and then code golf do we know what code golfing is? do we not know what code golfing is? so golf is one of the few supports in which the lower your score the better so you want the fewest number of strokes to win so the idea of code golf which again goes back to the 80s was given that you have some problem some algorithm that you're trying to solve and you're right to code to do that and the genesis of the hacker culture at MIT in the late 70s early 80s you figure out a way to solve this algorithm and in the book he's talking about a similar code and it takes you 100 lines of code to solve that problem then if you look at it for a bit playing golf see if you can figure out how to do it in 80 lines of code same thing it solves the same problem the 80 line of code solution is better than the 100 line of code solution you have reduced strokes you have practiced to the point where you can now sink the putt sink the ball into the hole with only 80 strokes instead of 100 strokes and you can keep playing this game see like what's the smallest number of lines you can do to do this and there are rules as in golf I mean there's certain things are considered cheating like I guess if it were in C in theory you could put everything on one line because the white space turns are optional but you know that would violate the spirit of the whole thing you're really looking for even though people do it in terms of lines it was easier to see when you were doing it as what do you call it a simpler code because then there's a number of instructions but yes the number of strokes if you will so the number of statements might be a better way of phrasing the number of lines of code so my objective here oh there's Keith so Keith is fond of saying about Ramam that whenever Ramam proposes a solution you can be certain that if you do something else that's the right answer so I'm not going to try to convince you that this is the right answer because I know it's the right answer but you're not going to be convinced by me telling you this so the purpose of this talk is to exhort you to try this yourself on one of your own projects so I tried it on one of my own I had this project which I started with 57,000 lines of code plus four dependencies and the four dependencies had transitive dependencies they brought in other stuff and so if you walk the transitive tree and wind up with 12 dependencies that got brought in and I didn't count the number of lines that consisted of but I started with this thing and said let me start removing the dependencies so copy over the bits that I need and delete it as a dependency so this is much easier to do if you're using some kind of language that has typing because what you could just do is sort of delete the import statement and see what the compiler gives you as a error message and that's what you got to know you got to fix or copy over it's a little harder if you're doing something like Python but you know Python 3 now you could type hints and whatnot and there's some IDEs that'll point out things that are defined and whatnot it's a doable thing but anyway so I removed I started removing dependencies copy over the code that I needed and then doing a little bit of golf on them and so I started with 57,000 lines of code 12 dependencies and when I was done I had 57,000 lines of code and zero dependencies software development inherits patterns of software engineering that were developed in a world where there was proprietary software and it was a given that you were not going to be able to peer inside the black box of somebody else's software and so therefore if we're trying to build reusable software you had to do certain techniques and the thing about those inherited patterns is if you live in a world where free software is the default as Matthew said yesterday then those techniques are no longer a problem so what do I mean by that? well let's think about Apache so Apache comes along first it's still the days of proprietary software how do you write software if you want it to be configurable you have to have some kind of dynamic loadable scheme because if I want to add my own features into it it's not like I can go modify the source code I need to have so I'll define API where I can write my source code separately and then have it dynamically loaded so Apache is engineered around that same concept and you have this notion of loadable modules that can be loaded at runtime and the people writing modules don't need to communicate with the people that serve her but of course in a free software world I could in fact go in and stick my functionality right into the source code of the thing I don't need to have that dynamically loadable module and when engine X comes along much later it's also an open source project and it says if you want functionality in there you have to compile it in but hey you got access to the source code crazy and what you wind up with is a thing that has much much less overhead and is stabler and is faster so engine X has been making over the years traction against Apache primarily because it sort of fits the model that another case is this notion of build pipelines I found that and I still find that hard to wrap my head around because I grew up in a world where software didn't get so I'm still struggling to do that and the world of software is changing I almost go back to the ways things were in 1981 so I'm very excited and what I mean by that is I grew up in a world where software source code wasn't in files the advanced software development environments were image based today we would call it a container in this container and you modified the code that did stop and the code was memory resident and you modified the memory resident code to do different things and then when you wanted to checkpoint your work you checkpointed your memory image you wrote out your current state of your container or your VM and then when you wanted to come back to it later you could just load that and keep going and if somebody said well where's your source code it's like I don't know what you mean by source my code is in my image where it belongs and this was true of small talk, it was true of APL it was true of list back in the day so the reason small talk and APL didn't survive is they still work that way APL which just came out last month that's the feature they added they said it is now possible to have your APL code in a operating system text file so I was I thought wow the worlds are converging and everybody else is holding containers so you don't have to keep all of your code do you have no dependencies there's not a whole lot to package go lang took this approach that's kind of pretty much their approach you write your stuff and go it spits out a static executable and then you're done you copy that on the machine that you want to run it on and it runs there's no such thing now you bake it into the executable in fact, what really impressed me was it's the only thing that will produce a static executable on macOS 10 there's macOS 10 in the documentation says you cannot run a static executable so you have to link against the system libraries the system libraries are only made like the equivalent of libc, it's only made available as a dynamic library so you will always wind up with a dynamic viewing executable at a minimum because you need to pull the map and the go people reverse engineered the entire system library they don't use the libc on any platform they generate that internally when you produce your go executable it runs as a static binary even on macOS 10 even though the documentation says that cannot be done and so figure out how to write your stuff with no dependencies I was at the open stack boss the other day they were talking about the work they had to do now they wanted to take 400 python packages which were dependencies of open stack and repackage them because they used to be part of this one package and now they wanted to be part of this other package so this is the kind of stuff that Butler Lampson was talking about you think you save time by doing that and then you have this maintenance burden that requires dozens of engineers working over years to constantly manage this tech deficit you've created because you have all of these dependencies so yes no dependencies, no dependency help that's pretty much the thing so lastly code golf I was talking about doing some golfing what kinds of things am I talking about well they're very simple things really so you can do combining files if you have two files you don't have to have two files make it into one file that's a win because one of the things that happens when you do that is that you can start noticing which things are being never called you can inline functions that are called in one place and what I mean by that is you have something that looks like this you define a function f it does a bunch of stuff then it calls g and you define the function g and it does a bunch of stuff and if you delete those four lines for the case where g is only called in that one place now you would be surprised how often this happens the reason you don't spot it is that you have to find under f like that but if you reorganize the code and start looking for these kinds of things you can actually find that occurs a surprisingly large number of times and then of course once you've done things like vendoring things, code that you didn't write but you sort of copy the whole thing in if you start looking for are there functions here that I actually never call and the answer is yes there are because you suck in this other code it turns out those compatibility stuff you're not using so you can delete that and then you start deleting stuff and then those things call other things which now that you've deleted them they no longer can call it anywhere and pretty soon the whole thing squeezes down so I would recommend studying code golf as the way to proceed so that really was my talk figure out how to get rid of your dependencies start practicing pick a small dependency and that's what I call my assertion is it will not and then once you've actually brought in all your dependencies now you have a code base which is just your code which you understand better and now you can start code golfing that 57,000 line program that I was talking about is now down to 2800 lines and I introduced a bunch so I'm going to have to probably add some more in so I'll probably pop back up to 3,000 maybe 3,500 but given that I started at 57,000 and if you have one tenth of the amount of code you are going to have on average one tenth of the amount of bugs and particularly the pre software world but we know the bigger your code gets the worse your defect density gets as you bring the code size down your defect density goes down and so it's a win, win, win, win time for questions because I suspect that there might be some questions or disagreements or what not and in that case we're not going to have enough time potentially to hold them here but I'm making myself available for the rest of the day to people in the hallway track who want to continue this discussion so I thank you very much for your attention and I will take questions it was quite interesting but I think I disagree a bit because not all defects are equal so for example if you have security issues and just copy the code then you won't notice security fixes to the code that you copied and you will have a deal with security fixes and yourself maybe examples that whatever previous epoch reappears in iOS two years later and so on I guess so you won't find you won't get these security patches that is thank you always the first question and so the couple of ways to react to that one interesting thing about security vulnerabilities is they only go after the ones that are widely deployed so if I were to write and I know you're not supposed to do this but if I were to write my own less worried about security vulnerabilities because what a hacker is going to spend hours, days, months trying to figure out how to find some memory vulnerability in this open SSH library that I'm the only one in the world using it's possible that they might have a big enough company but so that's the first thing is that the diversity makes that part interesting one thing too the thing about I don't want to go to anybody's accident room but I heard in some of the buffs that I was attending is the biggest complaint that people have about devian is it takes so long to get updates and patches and fixes through the whole process so the same argument that can be used for why one shouldn't use devian it's true that it takes longer with devian than with other distros but there are advantages that sort of compensate for that and then think 3 of course is the buff that I was sitting in on was the python buff discussing whether or not python 2 should be moving to python 3 and whether 10 years was long enough time to wait before doing that and the answer is apparently 10 years is not long enough so in that context what I would say is there are a lot of places that have that problem and I don't know that by vendering this software it makes it better or worse so again my encouragement to you is and it might make it worse but my encouragement to you is again practice doing it see how painful it is see what the benefits are see how much code you reduce because again when you including some other package as bugs and vulnerabilities many of those bugs and vulnerabilities are in places that you're not using right so it's you know the windows implementation or the bsd implementation you're using the linux implementation it's different somehow and thirdly oftentimes those bugs are introduced by things like buffer management which is like and the reason that library had to implement buffer management is because since they were operating system agnostic manager whatever the built in facilities work for that it's like oh we have to manage our own buffers and do that whereas if you step back from that potentially you don't need that buffer management code which is where the buffer would have been because you're managing buffers differently for some other reason and lastly the solution to that problem is to use a better programming language that has more software engineering modern support involved so instead of writing the stuff in python if you were writing it in rust or you were using Java you might be better off so yes what I would say is I often get that question from PHP programmers and I don't quite know how to respond it's a potentially valid point but again my exhortation is try it and see if the benefits don't outweigh that risk so I'm not sure how one is ordering here so I do quite a lot of work in Ruby and in the Ruby community vendorizing is a really hot thing and one thing they did is they have their own tool called bundler to manage dependencies and lock specific versions of external libraries containers can be seen as another approach to do the same thing and don't you think that's a real issue that we should just get better at managing vendorization and switching dependencies when we need when we want to instead of just being the victim of version changes yes so that and that's why I had a bit of prepudation to bring this thing up with Debian which arguably is all about packaging lots of dependencies together that's sort of the main activity so what I would argue is in a world where these dependencies couldn't be merged because they were proprietary software and so you had to figure out how to package them that made sense then in a world where you have license proliferation and you had all these different licenses and you didn't know what the licensing regime was to mix this software so you might have incompatibility that made sense and then when you got to a world where there was a large enough base of software using the same programming language now what you are doing is you're building arguments so if you buy the thesis right that having all of these dependencies is inferior to software engineering now what you're trying to do is say inferior to software engineering and build layers on top of that in order to solve the problem where a simpler solution is don't don't do that part first we're going to build a castle in the sand and then we're going to figure out how to put a containment around it so that it doesn't melt and what I'm saying is that's been the approach that we've been taking and we haven't stepped back all the way to Abinicio to say the reasons why we started down this path no longer apply and we should try it and again I'm perfectly happy for you to believe that I'm wrong but rather than try to containerize all of this stuff on top of that is what if you start with whatever the thing is and start figuring out how to remove all the dependencies so when you wind up with this in a program that does what it is that you want to do with no dependencies and does that feel better and it's a skill about diversity means you're like security vulnerabilities are no longer relevant because you're not one enough deployed I would rather I'm not sure that that is compatible with the idea of vandering stuff in but it's like if your code is genuinely diverse fine maybe your argument works pretty well there if what you have is like a modified copy of Abinacel or whatever I could see it being pretty difficult for that to result in enough diversity that you are not vulnerable to pretty much the same attack as the next clone of Abinacel yep so I see this a lot with Forms of Food Make 3 Engine so you have to be committed as I am so when I got into a situation where I needed to tunnel open SSH in my program and I said I said I'm not so that one is hard that was the hardest one that I attempted but I did figure out how to do it so because what happens is when you go to do that and it's like it turns out the biggest difficulty is when you include open SSH and you try to vendor that in and not have any of its dependencies and so the particular thing that I was doing was I was trying to import the C thing into a Swift library so I had to port all the C code into Swift and then I had these sub dependencies which was like BN that actually was the one that took more time than the getting the big num stuff right which actually took more time than getting the crypto stuff right but in my case since I was committed and since I was taking the C code and transliterating it into Swift and then fixing it in Swift so that whatever I wound up with in Swift wasn't the same thing so you're right, crypto code of the ones that you can do are the hardest I do not recommend that you start with crypto code when you start doing this in your application pick one of the non-crypto libraries to do first and second and third but when you get up to like your 10th or 11th time that you're doing this I'd actually go after some of the crypto libraries because it turns out that once you prune away all the stuff that you don't need to do I just needed to do an SCP and so if what you're doing is you're adopting this as a plan to I'm trying to write my thing and have no dependencies why do I need open SSH? I need open SSH because I need to do SCP what do I need to do SCP turns out I don't need 80% of open SSH and especially and so I would encourage you to do this as well switch programming languages so it's a you're running in Swift and then you call C library that's a loud right you're writing stuff in C sharp you can call C libraries you're writing stuff in Python you can call C libraries but then switch to the I'm not going to do that I'm going to use my own copy of it and in the case of Python you have Parameco so you can just copy the bits of Parameco that you want and I don't know that there are a lot of you know how much vulnerabilities people have found in Parameco because I'm going to hack the organization so I take your point crypto is hard don't start there it's you know it's for the advanced section only but you'll be able to satisfy yourself whether the rest of my thesis makes sense up through the crypto boundary and you know if you agree with me until that point then we can have a follow-up meeting in which we discuss how we cross the crypto divide is that fair? I thought Simon and Tali convinced but I'm going to compromise and say take away all your dependencies except the crypto ones and I'll consider that a win the same argument applies to network protocols to file formats you don't want to write a web application you don't want to write a web server at the same time those are very easy so those are very easy as it turns out and I've done WebSockets and I've done a bunch of stuff like that and in fact my next project I have to be CAD diagrams so I'm working on reading what it was like DCG so the CAD drawing files is kind of my next project but so what I will say is the rule here is the rule is you can use anything in your base platform so if I'm writing an iOS app then I can use whatever is built into iOS because that's free and it's there so that's not a dependency if I need to get some other library then no so if I'm Linux is a little tougher because it's so vague and formless but it's like if I take my standard distro out of the box didn't turn on any additional stuff can I do that same thing for Windows so the idea is pick your platform and then you can only use what's in that platform for your stuff different platforms will have different capabilities but most platforms have built-in HTTP support so you don't have to write HTTP support so it's not it's is there a platform for you? is there a platform? what's the subset of the BIANS that qualifies a platform for you? it's so I'm not a Debian guy I mean people because he figured a different point of view is always good so I'll leave that to the intersection of figuring out how you decide what Debian is interestingly enough I was looking for this thing about code size and stuff so the question on my mind was and you can Google for this but Google doesn't know the answer it asks in this manner which is what is the largest project in terms of lines of code right and the answer you know you can't do that but anyway you can go say how many lines of code is this much? how many codes does that project have? so Debian weighs in as the biggest open source or free software project at 85 million lines of code but I'm not sure again how they count that it might count all of the things that have been packaged so then you would be counting all the Python source code and all the Postgres source code so again I'm not sure how but what I am saying is to approach it in that spirit which is obviously if you're sitting there and you're going to write this thing and you need some date arithmetic algorithm in your Python code and it's not there and you're going to do a pip install or an app get your cheating right wasn't there in your platform at that time so in Python it's really easy if you have a dependency.txt or whatever it's called file get rid of that so in any platform there's kind of a cultural sensibility for what's in and what's out I'm getting flashed you only have 60 seconds so I'm going to have to say I don't think there's any way I can answer a question in 60 seconds I don't know if you've noticed but when I get a question I answer it and spot I am going to be out there for the rest of the day so if anybody wants to do more questions, answers, sparring debates, education etc I will deal with that that's why I'm here thank you so much for coming out great questions and I look forward to doing more. Thank you


Welcome to Free Thoughts. I'm Aaron Powell. And I'm Trevor Burris. Joining us today are Emma Ashford and Trevor Thrawl. Emma is a research fellow in Cato's Defense and Foreign Policy Department and Trevor is a senior fellow in the same department. They are also co-hosts of the bi-weekly Cato Institute podcast, Power Problems, which explores questions in U.S. foreign policy. Welcome to Free Thoughts. Great to be here. Thanks guys. Are libertarians isolationists? Oh, you really know how to lead with a punch, don't you? I'm sure that somewhere out there there are some libertarians that are isolationists. They're not here in the building at Cato. We mostly advocate a fairly practical approach to the world, which perhaps is some roots in non-interventionism, but isn't isolationist. It isn't non-interventionist. It's mostly about a pragmatic, realist, relatively restrained foreign policy. Can you define some of those terms then for us? Like what's the difference between an isolationist and a pragmatic realist and so on? Well, let's start. Let me just start and amplify the first sentence that Emma said, then I'll let her do all the hard stuff of defining things. I would say that very few libertarians are isolationist on ideological grounds and the reason for that is because good libertarians, of course, love free trade.  And so you want more engagement with the world. You don't want isolationism, which a part of which, of course, is protectionism, which is really the opposite of what any reasonable libertarian thinks. Emma then goes on to make more good points, which I'll let her expound upon a little bit. But the non-intervention part is different from isolationism. You're also kind of just saying foreign policy is bigger than war. Interaction between nations, yeah. Yeah, absolutely. And to some extent, the fact that these, the classical liberals typically frowned on war and it was because they valued trade so much, right? So these things are actually in tension.  So, yeah, so I did throw out a whole bunch of terms. So you lead with isolationist, right? And isolationist does have these connotations that it's not just about conflicts and military affairs. It's about diplomacy.  So I would say most libertarians, all libertarians are probably not isolationists. Non-interventionist is slightly trickier because you can see how libertarian political philosophy gets you to the roots of non-interventionism. The idea that the government can't be trusted at home to, you know, build roads, build schools, manage big social programs. Why on earth would we think that they can do it abroad? So non-interventionism has a pretty logical place in libertarian political philosophy as a result. That said, that's not always a practical approach to the world either. And so something that I know that, you know, I wrestle with and many of my colleagues wrestle with is where is that line? How do you decide when intervention may sometimes be necessary, whether it's military intervention, diplomacy, something like economic sanctions? And so realism, which is the final term that I mentioned, is the way that I at least square those things. It's a fairly rational approach to the world that says, well, what are the threats out there? Which ones are real threats, as opposed to, say, really inflated threats like terrorism? What is the minimum that we need to do to make sure that America remains safe from those threats? Basically, how can the government perform its minimum duty to the people to keep them safe? Which I think most libertarians would probably agree is actually one of the core functions of the state. What can we actually do to keep us safe? Without stepping over that line and becoming such a huge military juggernaut that we start to curtail civil and political liberties here at home? Is isolationism, you kind of defined it, Emma, but does it it seems like it's an epithet more than an actual description? I don't know many people who would say I'm an isolationist. It's sort of like saying I'm brainwashed. People who are brainwashed don't usually say they're brainwashed. They get described as brainwashed. And isolationism seems like the epithet that gets thrown at libertarians. Is that accurate, would you say? Yeah, absolutely. I mean, I know those of us in the Defense and Foreign Policy Group here at Cato spend a good amount of ink and time establishing that we're not isolationists before we can get into our regular monologues on a regular basis. And so exactly so. And I think the other word that often gets thrown right after or in conjunction is retreater. And as we like to use the word restraint, you know, to sort of signal prudence and caution and good judgment. And instead we get tagged with retreaters and isolationists, you know, for political reasons, not for actual reasons. And you forgot appeasement, which is the other one that... Oh yeah, that's the Devil Chamberlain one, yes. Yeah, absolutely. But I mean, I think it's also worth pointing out that this isolationist epithet, there, you know, there have been times in American history when isolationist was an accurate term. There have been people that wanted to shut off commerce and immigration, keep America completely away from Europe. And so it's an actual political term. But today it's become completely devoid of meaning. People calling the Obama administration isolationists as they were intervening to overthrow Gaddafi and Libya. You know, this is this is just so farfetched at this point that is meaningless. And let's be clear, Trump is the closest thing to an isolationist of any American president since, I don't know, George Washington maybe or something. I mean, it's, you know, at least rhetorically. At least rhetorically. Well, and also I would say on, you know, economic affairs, on immigration, not necessarily on military stuff. In military stuff, he's much more of almost an imperialist, you could say. Well, and he's got John Bolton, which would help in that regard, right? But my question was, my next question was about John Bolton. And I know, Aaron, you had a question next, but I think it's a little dovetail that you said realist. And I think that John Bolton would say realist, too. I may be wrong about that, but I know it's also a term of art. But John Bolton would say, I realistically understand the world is a very dangerous place and America needs to be involved. So what, or if that's inaccurate, what is John Bolton's philosophy about foreign affairs? So John Bolton usually gets called a neoconservative and he isn't. And he himself gets very annoyed about that fact. Because I think he would call himself something of a realist. Now, he and I differ almost entirely on how we view the world. And that's where you get to the problem, right? If I view the world as not a particularly threatening place that he views as massively threatening, we can both say we're making rational considerations and reach wildly different conclusions. And I think I'll just want to clear one thing up, too, for people who don't spend tons of time worrying about the definition of the word realist. It doesn't mean realistic. That is not what it means. People use it like that all the time, including realists. And they use that meaning of the word to defend their view of the world as a realist. But that's not what it means. Take Bolton's troika of tyranny comments that he made recently. Oh, Venezuela and Cuba and Nicaragua again are this grave danger to the hemisphere. And that's a liberal argument. It's not a realist argument. The realists are not very concerned about weak nations having issues at all.  So you can be a realistic liberal.  So I think those are important distinctions to make because realists often claim we're the only ones who see the world calmly and coolly. And I just think that's kind of silly. So I'm going to go back to something Emma said when you were defining your terms and I think you're defining non-interventionists. You said, so the role ideally of the military is to keep us safe. And we should act our, how much we intervene and how much we stay out of things should depend on what's going to keep America safe. But it seems like, so we have, we have the largest military. We can overpower most any nation, although some it wouldn't be fun to try. And there's lots of bad stuff happening in the world. And so don't we have not just an obligation to keep America safe, but if we've got the capacity to keep people safe around the world to stop wars, to stop genocide, to improve the lives of these people, don't we have an obligation to use some of that power we've got to make the world a better place? Yeah. If you're Bruce Lee and you see someone getting beat up across the street, don't you have an obligation to intervene because you're Bruce Lee? I mean, it's a hugely tempting argument, right? It really is. You can look at around the world and you can say, oh, we could make life better. We could stop the Saudi royal family from killing dissidents in a consulate and maybe that would be a good thing. The problem is there's two problems, right? So the first is this fatal conceit. It's the idea that we're saying, oh, because we have this much military power, we actually can do this. We can cause democracy to flourish in the Middle East. And I think the last 15 years have shown us all just how big a mistake that is. We cannot assume that our military power actually translates into the capacity to improve other people's lives around the world. But then the second is more philosophical and it really gets to the idea of are US policymakers responsible for Americans? Are they responsible for people in the Western world? Are they responsible for everybody in the world? And there's some really interesting philosophical arguments about this going all the way back to that post-World War II generation that started to people like Morgan Thow who started to talk about the responsibility of policymakers after the Second World War. And the line a lot of them basically take is that policymakers are responsibility to the people under their protection, basically to the voters and the people inside their country, and that that responsibility outweighs their responsibility to people in other states. And it's not a perfect solution, but I feel like that's a much more reasonable way to approach this, a way that might actually practically work than saying, well, I have a responsibility to help everyone in the world. Yeah, this is, I mean, the responsibility to protect doctrine that grew up after the sort of horrors of Rwanda and the Yugoslavians of wars has a lot of, has a compelling sort of moral component to it. Who wouldn't want to help a drowning person if all you had to do is reach in and save them? But I think as Emma was pointing out that the moral equation is simple, but the practical implementation of that is not simple. And there are a host of morally relevant factors in each of these cases that really has to weigh very heavily, including the other moral guideline, which is the safety of American lives. And remember, yes, you have an all volunteer military, but they volunteered to protect Americans, not to go save Yemenis or Syrians or other folks. And so I think there's an article that a lot of people found polarizing by Bob Pape called When Duty Calls, and in it he argues that Americans should only be sent overseas to Disney if they actually volunteer to go do that on top of already being in the military. And I think that strikes maybe some people as a little weird, but I think that there's a good moral case to be made that Americans are for protecting Americans mostly. Doesn't that just, I mean to complicate the philosophical picture, doesn't that cut against the argument that say libertarians make on immigration that we can buy, so we make lots of arguments that immigration is actually good for America and all of that. But we also make this argument that the amount of good that we can do for a poor Mexican by letting them into the country is enormous, the orders of magnitude in terms of just like how much it can improve their lives. And so that itself is a sufficient argument or a good argument for letting them in beyond any of the other effects. But aren't you basically arguing the opposite when it comes to foreign policy? I could weasel out of this and I could say, well, we've proven that we don't actually improve people's lives when we intervene abroad. So Libya is just the classic example here. There's some studies that have shown quite effectively that more people probably died in Libya because of the U.S. intervention than we actually saved by preventing a genocide in Libya. So I could weasel out of it that way. But to be honest, I think there are similar problems if you look at policy and immigration. We can make that argument on a large scale. You can believe those principles, but when you actually try and turn it into practical policy, you're probably never going to actually achieve that open borders approach to it. So it's the same with foreign policy. We're trying to find, I guess, a pragmatic medium that we can actually live with within the existing policy structure. And I know there are plenty of my colleagues here at Kato that would probably tell me I should just push all the way, but I just don't see it as practical. Well, it seems to me that at least one difference is that letting a Mexican work here and with a job that someone would give them in the free market is not spending any U.S. money or possible lives on intervention.  It'll make you better off, and it won't make anyone else worse off, which is very different than firing a couple hundred cruise missiles at Syria or something like that. I think another difference is that there's a long-term nature to someone moving to the United States and getting a job becoming part of the economy that is utterly lacking in almost all visions of U.S. military intervention abroad. We go in, we break it, we kill some people, we leave, and the assumption is, oh, it's better now? Well, clearly, empty the ump years later in Iraq and Afghanistan and wherever else, it's not better now. And then the argument, some people say, well, you just got to stay forever. That doesn't sound like a reasonable idea. And the other thing I think that, and this doesn't quite get at, Aaron, the question about, well, are we just flipping the moral compass the other way? But to me, noting how difficult military intervention is, we don't do nearly enough to consider the non-military solutions to some of these issues. Diplomacy, certainly, it's slow, it's terrible, but it's better than all the other ways of doing things. And in the case of Syria, most of the people here at Kato argued against the U.S. getting more deeply involved, despite the difficult moral questions there, how we could help, but one of the things we could have done in a different sort of politics is help the Syrian refugees a lot more. We could be a safety valve for these. I mean, there's a lot of things in the world going on that we could do more to help. If morally we felt the need to do it, that would be much more in line with, especially libertarian way of thinking about things, but in a more non-interventionist, too. How does public opinion seem to track foreign policy as a general rule? Because it seems to be that sometimes voters are really into intervening and war. I will always remember one of the more surreal things of my upbringing was watching the bombing of Baghdad twice on live television, which is just kind of disgusting in its own way. But we aired that stuff and people were pretty for those interventions. But then you have Iraq war, which may be a sourd that, and I think the lingering Vietnam question is still hangs over American psychics about everything when we talk about foreign policy. So I know, Trevor, you've studied public opinion on foreign policy more. What tend to be the ebbs and flows of that? Yeah, you hit on a lot of interesting points there. I think the Vietnam War cast a long shadow. I think mostly with older folks now, but interestingly, of course, those older folks include political leaders who carry this analogy around in their heads, some of them. And whenever the U.S. get involved in a long-ish war or the prospect of one, the Vietnam analogy gets raised. Just the summer after the invasion in 2003, people were talking about a quagmire, Allah Iraq, I mean Allah Vietnam. And that certainly reminded people of things that they thought were a bad idea. But I think your other point is really right on. People are back and forth on this. We'd love to try to read the tea leaves and are hoping that the future is more restrained. But the reality is the public is a little bit mushy on this stuff. And it's very dependent on how elites talk about these things, I think. So when elites manage to convince people it's for the defense of the realm, people tend to say, yeah, let's go do it. So if it's, we have to do this because terrorists or we have to do this because WMD and people at least temporarily are able to say, okay, let's do it. But every war that goes on more than a month, eventually a majority opposes. So you can only fool some of the people some of the time. Does the lack of a draft impact that? Do people, if they knew that their kids could get drafted, are they less willing to even for that one month that they're happy with the war? Yeah, I think there's no question that with a draft, you'd have a very different political dynamic. And it's really hard to sort of take the sixties and port them to today's internet fueled world and imagine what it would be like. But I mean, given that the people who run social media these days are young upper middle class kids who love Twitter and Instagram and stuff, it's hard for me to even imagine the freak out that would happen if you tried to send these kids somewhere they didn't know where it was on a map and tell them to go die for, I mean, that would be, it seems like not very doable. Yeah, I mean, because a part of the narrative today is somewhat shaped by the whole they volunteered part of the equation. So there was a death just a week or so ago in I think Iraq, maybe Afghanistan. And it was a man who was actually the mayor of a small town in Utah. Devout Mormon leaves behind seven kids was serving with the Utah National Guard in that conflict and was killed. And a lot of the reports basically said, but he did it because he volunteered, he wanted to serve his country, he wanted to protect freedom and all these things. And so that narrative wouldn't be the same if he had just been sent there as part of a draft, it would be, oh my God, the government is just sending our kids to die. And so the volunteer force kind of works against you if you're going to talk about quagmires in this way. How much is that there's a story we've often told that going back to the Civil War, at least in my experience too, that as soon as the public starts seeing the dead body, so the classic story for the Civil Wars, Antietam and the pictures from Antietam, made people rethink the war. And then we also tell that story about the 60s when the death toll started going up with Vietnam. And suddenly if you knew someone next door who had died that changes public opinion against the war. And then the interesting thing is for those who fight wars, they spend a huge amount of time pursuing technologies that put the fewest amount of Americans in harm's way. And then we had the situation where we might be lobbing a bunch of missiles and drone attacks in other countries, but no one is seeing American dead bodies, or at least not enough to have anyone be aware of what we're actually doing out there. Does that play a factor? Here's a really interesting difference between Vietnam and the 60s. And today, medical technology has got a lot better. And battlefield medicine has improved. There's some really interesting work. You know, Tynishov Vizals, one person has been working on this, just the creation of technologies that allow soldiers on the battlefield to stabilize fallen comrades. Then it can be airlifted out and actually treated. The death tolls are just way lower today. So fewer American soldiers have died in Iraq and Afghanistan than died sort of proportionately in Vietnam as a result. Yeah, the usual historical ratio there just on this aside for a second is usually like three to one. So if you have, you know, 7,000 deaths like we've had in the war on terrorists since 2001, you'd expect about three times that number wounded. There have been over a million Americans wounded in Afghanistan and Iraq. 7,000 dead, a million.  But as Emma said, it's incredible. And that's an interesting sort of news bit there too. But Trevor, you just summarized, you know, sort of the fascinating, I think, interplay between technology, news, public opinion, and military strategy. Because in the 80s, Michael Dever, one of Reagan's staffers sort of made the comment, you know, he was involved in all their sort of media strategies. And he said, thanks to TV, we will never fight another ground war ever again. Whoops. But he was absolutely right in spirit because what the US has done over the last several decades is to substitute technology for people. And that's on the sort of the, you know, the instrumental level, but at the political level, the government's done a great job keeping the press to the side whenever possible. And then just even more generically, just having the president avoid talking about it. And that tends to work like a charm. So Obama just stopped talking about Afghanistan before him Bush stopped, and you could just see it drop out of the news. Trump never says the word Afghanistan. And so no one holds him to the fire on this stuff. And so we can keep going basically forever, drone bombing and attacking people as long as the president doesn't talk about it and Americans are dying, our foreign policy is untethered from public opinion. Why is the press by and large so bad on issues of war?  But then they, was it shortly into Trump's presidency when he launched a bunch of cruise missiles? And suddenly everyone in the press was like, he's presidential. Like dropping bombs on people is what good presidents do, that the press just seems terrible on this issue. There's a real biased action in US foreign policy and the media is a big part of this, right? So if there is a problem out there in the world, something must be done about it and therefore we are the people to do something about it. And so that's exactly what we saw with those Syrian air strikes. You know, there was this chemical attack against civilians inside Syria. There was a big media hubbub about it. A lot of people demanding something must be done, even though when you actually sort of get into the details, it's not clear what we could have done that would actually have helped things. There weren't very many good policy options. It was really a little shaky, which is why if you go back like five years, the Obama administration didn't do anything in response to a similar attack.  You know, he is, he is presidential. I think it was Tom Roca that said, you know, I'm guided by the beauty of our weapons, watching footage of these strikes. And so all of this just feeds into an atmosphere where doing something is always easier than not doing something. To me, absolutely everything Emma said. But to me, it's really the hidden poison of being number one for so long is that you create all these mythical narratives about your president, about your military, about your role in the world, this notion of indispensability.   I mean, it's it's just gross. So right now, I was I was watching NFL games yesterday and we're in apparently salute to service month when they all dress always that way. I feel like every month is salute to service month. But that was actually one of the announcers said it said this is salute to service month, but really every month to service month. I didn't mean I mean literally not metaphorically. I think it's just when they dress up. Okay, they wear camo. But there's there is this kind of cultural notion that, you know, no one is should be venerated more than the troops that the you know, that serving your country, the only way you can serve your country is by joining the military that these are the people who keep us safe. And how much does that play in like, is that is that an unhealthy attitude for a nation to have that we see the troops as kind of the highest, you know, elders of American values. And and does that play into then this kind of constant war footing or willingness to get excited about the beauty of the weapons? I mean, there's a really fascinating cultural difference for me. So I grew up in the United Kingdom. I came to America, you know, when I started college. And so I've seen sort of both countries and how they treat the military. And there's a really fascinating cultural difference, which is that in America, it's the veneration of the military itself of veterans of people that are serving have served in the UK. The veneration is all basically of the war dead. So it's right now we're in a period of about three weeks and lead up to November 11th arms to stay when every person in the UK will be wearing a poppy on their jacket. And that's in remembrance of the war dead. And there are church services and marches. But it's it's about the people that died. And how we can avoid paying that cost again. In America, it's very much more sort of thank you for your service. You are protecting our freedoms. And I really do wonder sometimes if, as you suggest, that plays into, you know, sort of glorification of the military and of military options rather than attention that's paid to the costs of military action. And it's a really good point. And I, you know, I just to me, it's kind of like the same kind of rehearsal of of American and I'm going to use air quotes on your very visual podcast values. It to me, it reminds me a little bit of a country song, the way if you say the words pick up apple pie, grandma, you know, motherhood, whatever, enough times, you make everyone, you know, believe that we're that place. And, you know, I sort of keep waiting for the airlines to let, you know, maybe teachers go on first because they're kind of awesome or economists or I know other groups of people in America who are equally awesome to our overall prosperity, but who don't get the time of day. I mean, clearly we are out of whack in terms of our focus on this one part of our world. I just want to also do my duty as a cynic here and point out that actually the Pentagon pays for a lot of these displays. They pay the NFL to wear these uniforms. They pay for the displays before football games. So this is to some extent the military itself trying to manage his image and bolster his own image. So we're, we're in an environment and I say we as members of the Cato Institute sitting in Washington, DC, where unfortunately most of the foreign policy establishment does not agree with either one of you. And so this is a question I often ask guests who advance what sound like very reasonable positions that are well-argued is, if these are such reasonable positions that are so well-argued, why does everybody think you're wrong? Well, there was a really good recent book and book event that we had here at Cato just a couple of weeks ago with Steve Walt who's a professor at Harvard. He's not a libertarian. He's a Democrat, but he is a realist and he does believe in a more restrained U.S. foreign policy and his book is basically all about sort of diagnosing what's wrong with U.S. foreign policy and then talking about how we got here. He pins a lot of the blame on the career incentives of the foreign policy elites and now I mean I think both Trevor and I could actually claim to be part of that elite because we sit in Washington talking about foreign policy, but for a lot of people there aren't actually a lot of career options outside of the mainstream of foreign policy. So if you want to advocate against interventionism, there are a lot fewer places for you to sit and it's harder for you to get jobs in government, in think tanks than it is if you're advocating that restrained point of view. And so Walt's point basically is that until those career opportunities exist, the foreign policy elites always going to be really tilted towards interventionism. Yeah. And I think Emma as you mentioned before the action bias of our politics, presidents need to look like they're doing something. Well, then the organizations that are the doers have an incentive to keep on convincing people that those things are good. And then there's a group of think tanks that are attached to those because there are jobs then for people who, so it's a lobby basically the point. What have we seen with, we touched on it a few minutes ago, but with Trump in the particularly military action standpoint and how does that compare to Obama and George W. Bush? Because since 9-11 in particular, it seems that a lot of the things that we're doing militarily, no one knows about as you mentioned, Trevor. And they're increasing technologies to do even more things where you're attacking your enemies with drones and maybe special forces and other things. And no one really knows about it. Do we have any idea how much Trump's military advisors are out there telling them to bomb different countries and how many countries we might actually be engaged in right now? Well, we did have a moment over on the Power Problems podcast a couple of weeks back where we realized that John Bolton had been national security advisor for six months and we haven't actually started a war, which was surprising, frankly. That said, we have dialed up her engagement almost everywhere. And by engagement, I mean our military intervention. Just the Middle East, one of the areas that I focus on, there's now a quarter more troops there. So 125% of the troops that were there when Obama left office. And contrary to the public narrative, Obama hadn't really dialed down those numbers all that much from Bush. Yes, we're down from sort of the peak of the surge in Iraq and Afghanistan. But if you go back even 20 years and you look at how many troops we had in the region, under Clinton, under the elder Bush, we still just have a huge number of troops in the Middle East engaged in all these different conflicts. And so Trump is just sort of increasing those numbers everywhere. Yeah, I'd say for the most part when it comes to the war on terror, it's business as usual from Bush to Obama to Trump. There's way more continuity than change, I think over those three. Maybe rhetorical style is the biggest difference between the three, but the policies themselves are pretty consistent. I think trade is the big outlier for Trump on foreign policy. He's going a different direction. But I still feel like we have yet to see the full John Boltoning of Trump foreign policy. I think post-mid-terms, Lord only knows what the constellation of forces looks like in D.C. But I could see Trump going full. We have the troika of tyranny. We have the Iran sanctions now ramping up. We may be on the precipice of other stuff. I hope not, but maybe. Do we generally, when we send in drone strikes, for example, to the nations that we do that, do we do it with impunity in the sense that we ask them? I guess it depends on the nation, but I imagine that if they found out that some terrorist group was in, I don't know, Malawi, do you know if we tend to just send the drones over to Malawi, or do we actually try and talk to the government of Malawi? I guess it depends on this government. Yeah, I think it's been both. We have a lot of new drone bases throughout Africa and the Sahel and so on. In some cases, it's invited, but early on after 2001, it was not. The initial strikes I think in Yemen and stuff like that were not, or in Somalia were not. We did not ask permission for those sort of things, but over time, when people realize it's going to happen, you talk to them. They go, well, okay, but please not over here, that sort of thing. Yeah, and we do coordinate, I think, a lot of these things with the countries involved. You've alluded to there's a lot of growing US military involvement in basically on the African continent in areas like the Sahel. That's mostly in conjunction with the states that are there, but that also carries its own problems. We're working with those countries to help them fight extremism. I say that and it sounds wonderful, but the question of what the groups that we're fighting actually do, whether they pose a threat to the US or just to those countries that we're actually fighting in, whether it's local political grievances or international terrorism, those are all questions that largely go unanswered when you're working with the governments in these states. Yeah, absolutely. That just raises all the issues of intervention that we started with, because the last time, I mean, Bolton talks about the troika of tyranny, raises the word Nicaragua for the first time since the 1980s, but the last time we spent any time thinking about Nicaragua, we helped fuel tens of thousands of deaths, assassinations, civil war, and that's what you get when you do this sort of stuff. It's usually, we don't even know which side is which a lot of times. It's a mess. Given the, I guess, outright horror with which many, if not most people in this town view Donald Trump, do you think that there is a chance that over the remainder of his term, we will see maybe Congress or others kind of reassert their authority in the foreign policy area that they might try to scale back his ability to launch wars, especially if John Bolton kind of goes the full John Bolton? Well, so we have seen some efforts. And we, I will say that we have seen the Democratic party rediscover its non-interventionism and dovish nature. It seems to just go to go back and forth. It's a teeter-daughter. Exactly. Yeah. It pretty much goes away when you have a Democratic president and then when it's, you know, George W. Bush, everybody's out protesting. So some of that has come back, and that's a good thing. We've seen Congress start to talk about acting on things like Yemen or arms sales, none of which has really come to fruition yet. But there is some pushback and I think the fact that it is Donald Trump in the White House is helping people justify that pushback in a way that would be a little more difficult under other administrations. But again, there's a flip side to that because we've also seen Congress try and reassert itself in a more hawkish direction on some other issues, particularly the Russia question, right? So whatever Donald Trump's connection to Russia or not is Congress clearly believes there is one. They have tried to push back on that. So the past an act known as Katsa, the countering America's adversaries through sanctions act about a year ago, that basically forced the Trump administration to put really heavy sanctions on Russia, also on Iran and a couple of other countries. And so congressional reassertion of power has also been pretty hawkish under this administration just because it didn't like the fact the Trump administration was less hawkish on Russia. Yeah, it's odd. But I think, you know, assuming as most of the forecasts have now, the Senate stays Republican, the House goes Democratic. I should say that this will be out after the election. It's the day before the election right now. So a divided, you know, Congress is going to be troublesome for Trump on every level, including foreign policy, because he's going to need to get, you know, funding for various and sundry things or whatnot. And I, my guess is that the Democrats are just going to try to oppose him at every step, regardless of the strategy or the intelligence of the policies just because they're so pissed off. There's some areas I think where that could end up being pretty fruitful. So defense budget politics for the House and the Senate have to agree, arms sales where they've got to approve of them, you know, things like pushing back on Trump withdrawing from the INF by talking about the nuclear modernization budget. Those are all areas where Congress really could have an impact if they wanted to. But then there's some other areas like, you know, sending troops to the Middle East or to Africa where Congress just really doesn't have a role and has basically abdicated its responsibility. It doesn't seem like Congress, individual members of Congress would have very much incentive to really get involved in those issues. The presidents, as we mentioned, the great ones, I'm putting that in scare quotes, are usually the war ones. And if you want to be a great president, it'd be hard to imagine the incentives of a president who would actually start instigating non-interventionist or more libertarian policies pulling troops out of different countries, lowering the military budget. Do you agree that under the current incentive structure and the kind of presidents people like that that's hard to imagine happening? It's very hard for me to imagine. I think the only pipe dream that I can see where a president would be seen as great in part for drawing down the military and so on would be the next depression where you need to stop spending so much money. And then making the tough decisions, maybe you could law the president in the rear view mirror for having made those tough decisions, but I can't see under our current politics. We haven't made them look at the budget since the Cold War ended, so there's no peace dividend yet. Still waiting. Not to sort of air our dirty laundry disagreements in public, but Trevor, I disagree on this question. I think Obama was not a restrainer, but I think he was a realist and I think he did try and dial down U.S. commitments overseas, particularly military commitments. He just wasn't successful. He was pushing against too much inertia and he wasn't successful in doing it. Trevor, I know doesn't quite agree with me on this, but I think Obama's a really great example of a president who tried at least in some areas and look at what he got for it. Basically, he came out of it looking terrible. Democrats can't be the restrainer. That's the only nixing can go to China. Only a Republican could get away politically with making a restrained foreign policy argument because he or she won't get attacked as weak on national security. That was Obama's thing. That's why he made the red line in the first places. He knew politically he needed to sound a little tougher, but then he didn't want to do it because he was, I think, much more prudent than, you know, but yeah, it's a tough game. It seems like one thing you have to do is to, if you were to become president, to get some advisors who were maybe not all career Pentagon, Department of Defense, people who I think, as we mentioned before, their errors might run in the same direction as opposed to them, you know, saying, and that's another thing too with the military budgets. It seems like they're always complaining about their budgets and that they aren't high enough. And I think our military budget is 50% of the world. Is that about right is what I had heard at one point. More than the next seven countries. I think it's seven at the moment. But it's a lot. But we're still spending more on all this stuff and everyone says it's not a, is that just a standard pathology of administrative agencies no matter where they come from because you ask anyone and they always say that they don't have enough money or is it mixed with that pathology we discussed before? It's yes and no. I mean, it's absolutely what happened anyway regardless of the number. But it's also true that we actually ask our military to do so much that when the military complains we don't have enough money to both keep everything fully ready and fixed and maintained and to train all the troops on this and to fund the next generation of things you think we should buy, they're being truthful. We simply do so much that even $718 billion a year is not enough. Just like we mentioned, we're recording this the day before the election and our president has been doing making all sorts of strange proclamations in order to, you know, fire up his base and whatnot. And so one of these is he wanted to send what, 15,000 troops to the border to stop this highly threatening caravan of tired, sick, and poor people. And he's been dinged because this is politicizing the military. And so we talked about political incentives for presidents using the military and people are like, this is this abhorrent unjustified use. But is this, is that a new thing that he's doing or is it is politicizing the military or using the military explicitly for political purposes something his predecessors have gotten in on too?  So everybody, all these presidents, they all get a little into politicizing the military because it does look good if you do events with military leaders present. But under Trump and even slightly before Trump, so before he was elected, we have started to see a real fraying in civil military relations. And this is a topic of real interest for political scientists, right? Is how did the military relate to the civilian oversight of the government? And what we've seen over the last couple years in America is the military is increasingly political. Former generals, former admirals coming out and making political statements. People like Mike Flynn that was a general at the Defense Intelligence Agency coming out in open support of candidates. That's something that we really haven't seen as much in US history until recently. And when you add into that the fact that Trump is now turning around to basically just using the military to try and bolster himself right before an election, things are getting a lot more sort of blatant than they used to. Yeah, though he is not nearly the first president.  But just to give a couple of examples, I mean, the president really does enjoy this kind of unique first mover set the chess board advantage over other people because he can move military forces from place to place. Immediately, by definition, make news and then sort of frame the whole discussion. So one of the ones I like to talk about is when the United States kicked a rock out of Kuwait back in 1991. In the fall of 1990, Congress had a long debate about the war and I think acquitted itself pretty well, all things considered. But you have to remember the shadow under which they were having this quote-unquote debate was there were 500,000 U.S. troops already in the Gulf and everyone in America knew they were going to fight. So let's have a debate, even though we know what the answer is going to be. It's a fake debate and the president was able to make it so because he already moved the troops in. Fast forward and Bush's son, W, did the same thing. They had even a much crappier debate right before the midterm elections and when he had already made it pretty darn clear what was going to happen because he had moved the chess pieces on the board. Trump has moved these chess pieces in a very different direction than any president. I can remember but nonetheless he's moved the chess pieces and this I think is trying out to be a very polarizing move but I think his calculation is at least a little better for me than what else we might be talking about. So I'd like to ask about power problems, the interior about what the podcast is and what you guys, what you were thinking when you started it, what you kind of trying to get out of it, what kind of guests you've had on and what people can expect in the future. Some of it is actually that we really have enjoyed our past conversations on free thoughts. I know I've been on here a couple of times I think Trevor has too and we really like the fact that we could just sit and discuss an issue for a while. So we are to a large extent trying to replicate that in the foreign policy space. We have a guest on every episode to talk about their research, their background, the topics that occur in interest and they're not always restrainers or realists. In fact they're usually not but what we want to do is talk with them about an important issue in international politics and not always just be talking about Iraq and Afghanistan. So we've covered everything from sanctions to international wildlife poaching, all of which are interesting international relations topics, some of which are a little more important than others if I'm honest, but it gives us the scope to actually have like a 25 minute debate where we talk through the issue rather than just sort of hitting the high points. Yeah, and I think one of our real goals is to reach younger people who are both podcast listeners I think in general but also new to libertarianism, new to foreign policy. Maybe they're young staffers or they're in school and we're hoping to catch them where they are right now and provide a gentle on ramp to thinking about foreign policy in a smart way. Would you say that you've been focusing more on academics in the foreign policy realm than people maybe who work at DoD? I don't know if they'll answer your calls or not but that's something I also, him and I least have talked about that the academics seem to have different viewpoints than the foreign policy establishment in DC and so is that mostly what you're looking for your guests? You know, we've had a fair number of academics on but I would say we've also had quite a lot of people from the think tank space here in DC. So it's a little harder to get government people on the podcast. They have, particularly for DoD, they have a lot of waivers they got to say and they can't speak freely but we have had people that have former government experience so just a couple of weeks ago we had Liz Rosenberg used to be a high official at UFAC, that's the sanctions agency under Obama, so she was on to talk about her own sanctions and we were able to have a really interesting discussion with her based on her experiences in government and how we might sort of understand sanctions moving forward under Trump.  So a lot of people who have experience but I would say it's a little blob heavy maybe even for my taste but you know I think we've had a really great run of guests so far and you know looking forward to more. But if nothing else we can at least ask them questions that hopefully makes them defend their positions and then we can get in a few words edgewise about our own. Thanks for listening. Free Thoughts is produced by Tess Terrible. If you enjoyed today's show please rate and review us on iTunes and if you'd like to learn more about libertarianism find us on the web at www.libertarianism.org


Hey, this is Brett and this 2015 Chevrolet Camaro ZL1 is stock number 13954Z. I am here at Summit Automotive in Fond du Lac, Wisconsin, your new and used sports car headquarters. This 2015 Chevrolet Camaro has the 6.2 liter V8 supercharged engine, puts out 580 horsepower. It's paired up with the six speed manual transmission. This car has been fully-safetyed and inspected by our service shop, has a fresh oil and filter change. All the fluids have been checked and topped off and it is 100% ready to go. I'm going to go all the way around in this video. Inside, start it up, take a look under the hood, put the top down, and just give you the most accurate representation that I can of the car. Ashen gray is the color, shoot all my videos in 4K and if you like the video you can subscribe to my YouTube channel which is youtube.com slash summit auto. Click the bell notifications to get updates on the videos I do each and every day as well as having access to one of the largest catalogs of vehicle walk-arounds on YouTube. Driver's side front wheel, 20-inch wheels on here, excellent conditional scuffs or scrapes, and it has Continental Extreme Contact tires. These are 285 35 ZR20s and I would say they have a pretty good amount of tread left. I have about half the tread on those tires and of course you get the Brembo ZL1 brakes on here. Front fender is in fantastic condition, no major dents or dings on there. It does have a 3M tape rock guard on the front, so that's what that line is right there. You get factory fog lights, HID headlamps, and LED running lights, we'll turn those on at the end of the video so you can see how nice and bright they are. Front bumper and lower valance are in excellent shape. The hood is in really nice condition and it does come with the carbon fiber insert on that hood. Passenger's side front fender is in fantastic condition as well, and the passenger's side front wheel, no major scuffs or scrapes on there. Ashen gray metallic's got a lot of metal flake in it, some purples, blues, and greens. Really a cool color. As you go down this side of this 2015 Chevrolet Camaro, take note of how clean that body is, how reflective, and mirror like that paint is. I take these HD videos so if you are far away or even if you're close by, you just cannot make the trip down, but you're still interested in purchasing the car. You can see the car, hear the car, and have confidence in the vehicle that you're looking at before you even get here. So when you do get here, there's absolutely no surprises, and you can make a smart and informed buying decision from wherever you're at. If this video helps you make that buying decision, let your salesmen know that you saw the video that was helpful, and that brought sent you back wheels in excellent condition as well. You get the Brembo brakes back here too, and those tires look like they have a little bit more tread than the front tires. I would say maybe 80, 80, 70, 80 percent. Coming around the back, rear bumpers in gray shape, does have the backup parking sensors, the chrome tipped, quad tipped dual rear exhaust. It's in pretty nice shape as well. Get those LED tail lamps. Comes with a set of factory floor mats and a license plate holder for the front. If you ever wanted to know where your RPO codes are, they're back here underneath the carpeting. So if you ever feel free to pause this, make sure this one's got all the options you're looking for. Get that sunroof down. You're going to have this sunshade down like that. But very nice and clean back here. And that shuts nice and solidly. Coming around to the driver's side just as clean as that passenger side. No major dents or dings on the rear quarter. And for full disclosure, this back wheel is in excellent shape as well. Rocker looks pretty good there. And down the rest of this side of the door, no dents, no dings. Very nice condition. Got the heated power mirrors.  You get the ZL1 stitched into the headrest. There are no rips. There are no tears. And you do get a power driver seat. Factory all-weather floor mats in this one. Auto headlamps, power windows, locks and mirrors, Boston premium sound. And what's cool about this body style Chevy, all the door and dash trim is all metallic finish. So that's pretty cool. Take a quick look at the back seats. They're in excellent shape as well. Factory, or I should say latch child safety system, no rips or tears back there. And side curtain airbags on those seats will hop inside, check out the Myles radio. And everything that this one has to offer on the interior. You can see that this one has 17,562 miles. You do get a digital speedometer and compass display. This one also has the heads up display. That display is up there in the windshield. But insert cluster is very nice and clean. Comes with the flat bottom ZL1 steering wheel, cruise controls on the left, Bluetooth and audio controls on the right. This one comes with the Chevy Mylink radio. It does have the factory navigation system. There's highway 41, so that is working very nicely. You also get AM, FM and Sirius XM radio capabilities on here. This also where your backup camera shows up. There's your heads up display controls. Heated seat buttons has tour and sport mode for the different suspension characteristics. I guess you could say oil temp, oil pressure, volts and boost, stability control, six speed manual transmission. You get these suede wrapped dash. You also get that black trim on the dash as well. That wraps down onto the passenger side door. Passengers side format and seat are in excellent shape as well. No rips or tears. Smells very clean inside this car. I don't think it's ever been smelted in. The soft top interior looks good. Appears your sunroof controls, home link buttons for your garage door security systems and lane systems on Star and SOS in the mirror. You can see the mirrors in really nice condition. These mirrors can delaminate and stuff, so it's nice that that one's in good condition. To get this open you just have to press it like that and then you just hit open on the button there. It'll put all the windows down and then that top goes down like so. Now we'll start it up and then we'll listen to the exhaust and when it's all done it'll actually stop and it'll tell you folding top motion complete. So let's start it up. Take a look under the hood. Check out all those lights. Listen to the exhaust and we'll be all set. Starts right out. No check engine lights or anything like that other than my hood's open. I would personally like to thank you for checking out the video today. Let's listen to that exhaust for a second. Really a nice car in great condition. Look at those LED tail lamps. They look good and hopefully you were able to verify the quality condition and options of this car inside and out. There are those HID headlamps LED running lights. It has some blue fog lights down there. Under the hood we have the 6.2 liter supercharged V8 LSA engine. Has a cold air intake. Engine based very clean runs very smooth. Once again this car has been fully safe and inspected by our service shop. Has a fresh oil and filter change so the fluids have been checked and topped off. There is the emissions sticker. And this car is 100% ready to go.  You get the shock tower brace there. And to see more pictures of this car, one of other 550 new and used cars, trucks, SUVs, minivans, Wranglers, sports cars, Camaro's, Corvettes, Challengers, Chargers, Mustangs. You name it we got to go to that website right there. Summodotto.com, full pictures and descriptions of every single vehicle. All at Summodotto.com. And if you'd like to check out more HD videos you can go to YouTube.com slash Summodotto. Click the bell notifications to get updates on the videos I do each and every day as well as having access to one of the largest catalogs of vehicle and sports car walk-arounds on YouTube. In fact any second you will see a link to subscribe to my YouTube channel in the upper left. A link to more Camaro videos. I've done it in the upper right link to this vehicle and a website in the lower left. And a link to one of our latest YouTube videos in the lower right. Click those, check us out. And we're super excited to help you with this Ultra Clean 2015 Chevrolet Camaro convertible. ZL1 in Ashen Gray Mattel. Thanks again for checking out the video remember to like, subscribe and share on the YouTube channel. I really appreciate it. Thanks again.