Welcome to George H. Smith's Excursions into Libertarian Thought, a production of Libertarianism.org and the Cato Institute, narrated by James Foster. Neoconservatism vs Libertarianism Part 2 In 1971, Irving Crystal, the godfather of neoconservatism, published an article in the New York Times magazine, Pornography, Obscenity, and the Case for Censorship. The article holds a special place in my memory because it was the subject of a ferocious argument in 1974 that I had with Roy Childs, one of the most influential figures in the early phase of the modern Libertarian movement. Our argument per se was of no consequence. We remained close friends until Roy's untimely death in 1992, but the intellectual factors that contributed to our disagreement are directly relevant to a key question. How fundamental are the differences between neoconservatism and libertarianism? It will take a while to explain what precipitated my argument with Roy, so please bear with me. In late 1974, around a year after I had moved from Hollywood back to Tucson, I asked Roy to serve as best man at my wedding. Roy agreed, so I sent him plane tickets. Shortly before all this occurred, the first issue of Libertarian Review, October 1974, was published. This issue contained Roy's review of Irving Crystal's On the Democratic Idea in America, an anthology that includes Crystal's previously mentioned article on censorship. It was Roy's favorable review that occasioned our argument in Tucson. I accused Roy of sucking up to Crystal, and Roy did not respond well to my unfortunate choice of words. Things got ugly after that. I knew of Roy's plan to review Crystal's book. He'd mentioned it to me some time earlier while we were both living in Hollywood. I knew nothing about Crystal at the time, so Roy explained that though Crystal was not a Libertarian, he might be persuaded to the Libertarian point of view. This was more than idle speculation. Roy, as usual, had a plan. Roy had written a prize-winning essay, The Defense of Capitalism in Our Time, that won him a trip to the 1975 meeting of the Mont Pelerin Society in Brussels, where he would present his paper for a distinguished audience that included Irving Crystal. Roy's paper began. In an address before the Mont Pelerin Society, social philosopher Irving Crystal has given us a searching and challenging account of the moral dilemma of our time, of the contemporary dispute and conflict between capitalism and socialism, and nihilism. Crystal's thesis is a paradoxical one. In briefest essence, Crystal maintains that while the advocates of capitalism and bourgeois liberal society are winning the battles, they are losing the war. The war for liberty and a free market society against the onslaught of opposing ideologies and the encroaching power of the state. Roy's paper was part of his grand design to convert Irving Crystal, so, in my opinion, was his L.R. review, published before he delivered his paper in Brussels. Roy hoped to show how libertarianism could solve the moral dilemma of our time and thereby win a sympathetic hearing and perhaps outright agreement from Crystal. As I said, I knew nothing about Crystal before I read Roy's review of the Democratic Idea in America. His praise for the book was high indeed. On the Democratic Idea in America is a collection of eight of Crystal's major essays published during the last seven years. Every one of them, without exception, is brilliant, probing, and profound. In the last paragraph of his review, Roy wrote, While I do not agree with all of Crystal's analysis, that of pornography and censorship is particularly inadequate, most of it is so refreshing and so profound that I found the book an experience at once exciting and disturbing. It's at my mind racing with new ideas, the level on which most political radicals, including libertarians, address cultural, social, and political problems, is so distressingly simplistic that this is more than welcome. When all is said and done, Irving Crystal and the Neoconservatives take reason, liberty, and civilization seriously. Roy's effusive review made Crystal's book so appealing that I immediately ordered a copy. But the book did not set my mind racing with new ideas. On the contrary, many of Crystal's points struck me as little more than hackneyed clichés, elegantly written to be sure, but hackneyed clichés nonetheless. If anyone was simplistic about matters pertaining to culture and values, it was surely Irving Crystal. I felt mildly annoyed while reading the first few essays, but my mood quickly changed to disgust upon reading pornography, obscenity, and the case for censorship. A treatment that Roy described as inadequate was nothing less than an unvarnished defense of censorship, not only of pornographic photographs and movies, but also of obscene art and literature, as Crystal put it, and lest there be any misunderstanding as to what I am saying, I will put it as bluntly as possible. If you care for the quality of life in our American democracy, then you have to be for censorship. This was the issue that provoked my argument with Roy.  Fully to appreciate why I responded so vigorously to Roy's positive review, you need to know a little about our friendship. Although only one month my senior, Roy had functioned as my mentor in some respects, especially during the year that we lived in the same apartment building on Selma Avenue in Hollywood. I was working on my first book during that period, and Roy was writing his brilliant series of articles on anarchism and justice for the individualist. As writers are wont to do, Roy and I were always looking for things to do other than write, thus in addition to going to movies and haunting bookstores, we spent endless hours discussing the fine points of libertarian theory, objectivism, and other matters, including the importance of history. I learned much more from Roy than he learned from me. Indeed, Roy altered the trajectory of my intellectual career with one comment. George, you are great in philosophy, but you are tabula rasa in history. It was at this point that I resolved to read virtually nothing other than history for the next five years, a span of time that would stretch into a decade. This is how seriously I took Roy's ideas and recommendations. Moreover, I knew that Roy pulled no punches when writing book reviews, even though books for libertarians, originally SIL book review and later libertarian review, was a commercial enterprise in the business of selling books. Rare is a reviewer who will trash a book that he hopes to sell, but this is precisely what Roy did in his 1972 review of It Usually Begins with Ayn Rand by Jerome Tuchilly. Roy hated Tuchilly's satirical skewering of Ayn Rand and other libertarian figures. This book should never have been published, he wrote. Tuchilly shows that he does not take the libertarian movement or the tiny band of heroes at its apex seriously and that he does not respect them or honesty. Roy continued, Consider the fact that libertarianism is vitally important for man, a life or death matter. Consider the fact that Rand and Rothbard are the Jefferson and Payne, the garrison and spooner of our tiny movement. Then consider the fact that it is these people, among others whom Tuchilly attempts to ridicule. It is not, you see, that he wants to demolish them. He just wants them not to be taken seriously. At least that is the impression one gets while reading this book, which makes both look like eccentric nuts. Given this background, I could not understand how Roy could write such a favorable review of the democratic idea in America, unless his purpose was to curry Crystal's favor. As I saw the matter, Roy's comments were strategically motivated.  Crystal's arguments, which were as far removed from brilliant probing and profound as it is possible to get, appeared sleazy to me. It was the sort of performance that I expected the Roy I knew to call rat poison. So I was astonished that he settled for inadequate. Roy stood his ground, always looking for bridges to build between the libertarian movement and other movements on both ends of the political spectrum. Roy insisted that libertarianism and neoconservatism shared a good deal in common and that there was no need to alienate neocons unnecessarily. I maintained in contrast that the differences between neoconservatism and libertarianism were fundamental and irreconcilable. Any similarities between the two ideologies were relatively superficial. Such similarities were no more significant or promising than the occasional overlap of views between libertarians and modern liberals and or conventional conservatives. Our argument resolved nothing, as is normally the case when two young libertarian warriors, each brimming to his eyeballs with intellectual testosterone, square off. I do not know if Roy ever changed his opinion about neoconservatism, but my opinion has never changed. While rereading dozens of Irving Crystal's essays over the past few weeks, I experienced a sense of deja vu, feeling the same queasy frustration that I experienced in 1974 when I first read the Godfather of neoconservatism. In my next essay, I will explore Irving Crystal's ideas about personal freedom, ideas that are shared by most neocons in more detail. Thank you for listening to Excursions. To learn more about libertarian philosophy and history, visit www.libertarianism.org.


So what are the earliest signs of spiritual regression? Look out for these and then make sure you repent in these areas. Number one, you begin to neglect God's word. A hunger for God's word is a sign of spiritual vitality. This is your first line of defense. Once you begin to neglect the word, you become an easy target for the enemy. Number two, your prayer life becomes inconsistent. It should be the practice of every believer to pray without ceasing. This simply means that prayer should be a regular part of your life. If you notice your prayer life becoming inconsistent, repent immediately. Number three, old habits begin to return. The spirit and the flesh desire opposite of one another. So you know the spirit is losing influence when the flesh is gaining influence. Number four, you isolate from other believers. Troubly resort to fellowship with one another. So if you find yourself withdrawing from others, this could be a sign of spiritual regression. If you notice any of these signs in your life, don't condemn yourself, just repent. And then ask the Holy Spirit to help you correct these areas. Address the small issues before they become big ones.


This study investigated the age group characteristics of children who visited the emergency department with acute poisoning by ingestion. It was found that infants had a higher rate of non-intentional ingestions, while schoolers had a higher rate of intentional ingestions. Additionally, schoolers were more likely to be treated with decontamination and antidotes, and to be admitted to the hospital. This article was authored by Wion Xi'en Riu, Ji Yun Choy, Jin Song Chou, and others.


Unilateral condylar hyperplasia causes significant facial and occlusion changes, and assessing side-to-side condylar activity differences is crucial for managing the condition. This article was authored by Cajun Zara Dalalai, Motivacili Safa, Nezab Naveed Karimi, and others.


So we're going to be talking in my part of the talk, at least briefly just a quick introduction to Singularity, which is a software that I'm a developer on, here's our website. So Singularity is developed as a container solution for high-performance scientific computing as opposed to Docker where they mainly developed for industry solutions. There are three main reasons that we've been finding it useful to have containers in scientific computing. One, escape dependency health, somebody having to go around and manage everybody's versions of their libraries for every single scientist. Number two is that you can ensure that your code is going to work on your laptop the same way that it's going to work on the cluster every time. That's a huge benefit. A third also very important point for scientific computing is we can take one file and we can send it everywhere, and that's really great for reproducibility of your research. You can take that file, send it to some other supercomputer, and have somebody verify your results. So I'm sure many people who have worked on it, HBC are familiar with the scenario. On the left, you're working on your computer, you run some code and it works, and you send it over to run on the HBC, and all of a sudden, nothing works anymore. So that's what we developed Singularity for. So Singularity, any user on the cluster, they can run a container without any special privileges as opposed to Docker where they're always having a root-level daemon running. Singularity integrates right into an HBC infrastructure, so when you would normally run whatever code that you've built, you can instead just run a Singularity container as an executable, but instead you're executing now inside of a container. Singularity is portable between systems. We allow you to run your Singularity container on essentially any system that can support Singularity, and we actually have users that are running on incredibly old kernels. We don't require any new features, so you don't have to take use of namespaces if you don't want to, and it'll run back on kernel 2 even. Then any user can bring any container onto the HBC, and so you don't have to worry about screening a user's container for malicious content, you don't have to worry about security implications of people bringing any container that they want to onto your HBC system, and that makes the job a lot easier for administrators and IT security people who are worried about malicious code being run. Again here, I reiterate the same points. Something really important to note is the concept that we have one single image file, and for scientific work we found that's really important. One of the things that we talked about in a paper that we submitted for publishing about Singularity is the fact that we can now use just an image file to distribute not only the code that you've used to run your experiments, but also the environment you use to run it in and data that you used to generate, and so you can ensure that somebody who wants to reproduce your results has the means to do so. So here's a list, incomplete list of some of the places that have installed Singularity. There's a couple of places I think in the top 10 from the top 500 list, like Stampede is on there, GSI which they're still working on their cluster there. So the basic usage of Singularity falls into three main parts for the workflow.  So that's usually done with pseudo Singularity Create and you give it a name, and that creates a physical .img file on the disk. Then the second part is to bootstrap it, and that's the process of installing whatever software you want on your image, configuring inside the image, your operating system, and then you're going to run it. We can run it in three separate ways. Singularity Shell just opens up an interactive shell inside the container. Singularity Exec will execute any file inside the container that you want it to, and then Singularity Run is a special command. We can, on the bootstrapping process, we can actually generate a script inside the container that will do anything you want when you do Singularity Run. That's actually what happens when you just directly execute the image file. Is that it will execute that run script and allow you to just execute the image as an executable. So this is just a small comparison in contrast between a couple other container solutions. So as far as HPC goes, Singularity fulfills what we had determined were some very important points, and you can see that Docker doesn't fulfill a lot of things since Docker is developed with a totally different kind of goal in mind. Shifter and Charlie Cloud are similar to Singularity and that they're both developed also for HPC environments. However, we do have some slight differences between them, and this is just an overview of a couple of the commands and what we are able to run as far as container formats. So now, I'll turn it over to you for the full size, please. So good morning to everyone. I hope you enjoyed last night. I'm this guy, Cesar Gomed, which is the guy that appears on the website and on every other place, had a medical issue. He's well, I don't mind on him. But we will have a little secret between all of the room and me, and this talk was given by Cesar. So if anyone asks you, I'm Cesar. I'll be talking about, given the introduction Michael gave us on Singularity, I'll be talking about an specific HPC use case for Singularity. For those of you that hadn't worked as a systems administrator on a super computing center, the real pain is that when one user opens a ticket, pushing you to upgrade some kind of library.  There's no worse thing than that. You have a very stable configuration, very well-performant configuration, and the trickiest part of that is maintaining that over time. So as long as you don't upgrade anything, everything will be well. So by the time you ask someone to install this 1.0.0 P4 of OpenSSL, because you need that for that Python library that connects to any other place, you are totally screwing them up. So don't do, please. But given that, we have Singularity to rescue us. I won't be talking about the creation of a portable container because Michael did better than me. So I'll be talking about two use cases for Singularity in the HPC environment. One of them is having access to InfiniBand interconnection and actually using that. And the other one is having very expensive GP GPU cards installed on the machines and actually using them with the same software stack you are used to in your Ubuntu or in your Debian laptop. So, well, text is very small because I didn't do the presentation. I'd do it better. But it's uploaded to the website.  So definition files will be available to all of you so you don't get blind by having to look at this small text size. In this part are the basic commands of creating a container. This parameter is important as you select the size for the container. You can have a container as big as you need because it creates a sparse file on the file system. So let's say you need 32 gigabytes but maybe you won't be using them since the beginning of your development. You will create an actual 32-gigabyte file but it will be like maybe 200 megabyte on the file system so it can grow as you are putting things inside the container. The bootstrap definition is the secret source for singularity. It's all of the work with singularity will be done in the definition files. It's where you have a minimal setup of the line distribution you are going to use within the container. And then you add as many software as you need and as many stages for building the software or installing any code you need to install inside the container. And one of the options is expanding the container. Given you're running out of space because you have to download those NVIDIA drivers that take 1 gigabyte compressed and like 5 uncompressed, you will have to expand your container. The easiest definition file is in this form. The preferred thing to specify is the bootstrap method you are going to use. Almost all of our work has been done on jump with centOS or the bootstrap with Debian or Ubuntu. You select the operating system version and the mirror you are going to download that. There's a very clever solution for that. Given you can install APT, k-share, NG in the machine you are creating in the containers and you only download the RPM or depth files once and the container creation will speed up over time. On the run script section, you write a code that will be executed when you call singularity run or slash dot slash container name. And in the post section is the secret source part for your reproducibility as Michael was talking to us. Let's have a look at the example. These guys have been working in a blind association in Spain so they do so tiny text in order to push you to our association of blind people. We only have to concentrate on this part. We are creating a bunch of directories for the paths that we are going to bind between outside world given the machine and inside world given the container. So let's say we have a very high speed parallel file system for scratch. We can bind this scratch inside the container. So when our application running inside our environment needs to write local files per node, they can be written in the fanciest hardware available. And if you need to dump some of your partial results in a shared file system, you can point them to a scratch file system that is shared among the machines. So it gives you access to the actual enjoyable part of running code on a supercomputer, which is everything is faster than your laptop. And by this part of the definition file, you are installing every dependence you are going to need. This step is run on your local machine. So the root privileges you are needing are more or less granted or can be run inside a virtual machine that you have installed in a machine. You don't have root access, let's say. And for the run script, you are loading as many environment variables you're going to need as possible. So in the case of the examples, you're going to use OpenMPI libraries with local InfiniBand drivers, bind it to the image, and you're going to use the OpenMPI version that suits most your code. So you are not limited to the OpenMPI version or Intel MPI version available at the supercomputer inside it. Given that, we have almost a magical example, Greg told us yesterday, of what can be done with containers. This is actual code in a Spanish supercomputer. This is native code. It's an Alliancy value. It's the same code run inside a CentOS singularity container and the same on an Ubuntu singularity container. As you can see, there's improvement only by updating the version of the operating system. On the other hand, if you follow the path of CentOS 7.3 within singularity, you're not going to have so much bandwidth. And the scale doesn't make sense because there's not such difference between the parts. But the general idea is a container is performing better than native code for this specific US case. And in terms of bandwidth, a container is performing almost equal that native code within the cluster. Now, this is the setup for the benchmarks. We'll be uploaded with the presentation to the web page. All another example of trying to make you blind. As you cannot see, I will tell. We are installing the QDA version we are going to need within the container. And the only thing we have to have is the driver available at the external file system. Given it can be loaded as a module to the kernel, we can run this code with the libraries we are needing. And we can take the advantage of having a very powerful GPU card in the host. And we have all of our stack values too outside the host. So another example this time is with Chainr, it will be hard. If you thought the other slides were the difficult ones, this one, it's Paolo's fault. Now we are bootstrapping the last version, the last LTS version of Ubuntu. And for the post part, you can see we are compiling OpenMPI installing QDA inside the container. So it will have matching versions of the QDA stack and QDA drivers inside and outside the container. And you are loading those libraries when running the container. So you don't have to take care about running some script just before calling Sbatch or any other Q manager you are going to use because the container will take care for itself of setting up the correct environment.  Now you are actually downloading and compiling the source code for Chainr.  In case you need to write, your home directory will bind it directly inside the container. So anything you are writing in the home directory inside the container will be outside also. And if you need to bind the special folders for, let's say, drivers or libraries for the infinite band stuff, you can bind them by placing outside path and inside path. And the container run script will set up the environment for using these libraries. I'm a bit long on time, so I will give you some time for questions. And thank you very much for the presentation. Somebody has to ask something. We have a couple of minutes for questions. Any questions? Could you provide some intuition why running it in a container would be fast? We were guessing about newer versions of GCC compiling the libraries inside the container. But we didn't profile that. That's something we found. But it's more likely that Ubuntu 16 is using GCC 5 and CentOS is using a bit older version. So it could be like that. But we don't have data. It's just guessing. Yeah? But for what I've seen, we can also bind the code in the container. We can also do some sort of escalation if you run it. Oh, you will have the same permissions. Well, can you repeat the question? Oh, he was asking if you are binding host directories inside the container. You can escalate privileges inside the container for actual file system outside the container. When you're running the container for the creation part, you need root privileges in the machine. But by the time you're running the container, you will be running them with the actual user privileges that is running the container. So in a shared supercomputing environment, it's likely a privilege user. Let's say you have to bind some ETC library barbs for infinitive libraries. And those files are all barred root and only right ballerite root. Inside the container, you will have the same permissions for this file. So you cannot do anything inside the container that won't be allowed to you outside the container. I didn't understand you. Environment module. Environment module. But you have to install the module. Yeah, you have to have a module installed inside the container. A bit louder, please. You mentioned that same similarity when it does not require a root permission, right? But my understanding is that it requires either user namespaces or a set UID root helper. Yeah, that's correct. So I mean, the question was, the understanding was that singularity requires either user namespaces or a set UID binary. OK. I'll just hold it. And so the answer is essentially yes. So that's the entirety of how singularity is working, is we're either having a set UID binary, in which case all privileges are dropped before any user code is run. We only use it to do certain things like that require root privileges. Or on some newer kernels, you can do it entirely in user space, and in which case, then you're using user namespaces instead. Yeah, that's all we have time for. Let's thank the speakers again. This button goes green. It's OK. Matt? Oh, thank you. It's not bad, right? Yeah. Go ahead. Plastic. I have a badge of all the things on the table. And a piece of it. It's all right.