It's my great pleasure to introduce Olivier Cremieri all the way from Switzerland. Give him a hand, ladies and gentlemen. Olivier is the co-founder of Bugbuster Incorporated and this is going to be one of the highlights of the show to watch out for this. This is a session on automated testing and he's just going to walk you through the product that he's built for it and show you some cool tricks that he can do with it. Let's thank Swissnex for bringing him down from Switzerland and Bangalore JS, so Barbara and Jonathan for getting us in touch with him. He's already done one great workshop yesterday and you're about to see what he's built. Over to you, Olivier. Thank you very much. Thanks for the intro. Thanks for having me here. It's a great pleasure to be here in India and see this thriving community. As you said, I'm a co-founder of Bugbuster. I've been working with the web and with JavaScript for a long time now and a few years ago I decided that I was actually sick of JavaScript, so I was like, okay, let's do something else. Let's do a PhD, some serious things and obviously it worked very well because here I am at the JavaScript conference speaking. So anyway, I did research in software testing and it ended up in the creation of Bugbuster, which is sort of based in Lausanne, Switzerland and we're a spin-off of the school where I made my PhD and our goal is to help you guys build better applications and for that you need tools that will basically reduce the effort of testing these applications and increase the coverage so that you can produce the quality applications that your users expect. So back to the title of my talk, Generating Tests from Codes. Actually yesterday's talk was automating automated tests and it was pretty much the same idea. So if I talk about automated testing and I give you the definition, actually this is from Wikipedia, automated testing is about controlling the execution and the outcome of the test automatically. Obviously this is much better than doing everything manually, right? So let's look a little bit more about what this means. You're going to use tools like Selenium, WebDriver if you're doing front-end development or Jasmine if you're doing front-end or back-end development for JavaScript and in practice what you're going to do is you're going to start by writing one or more test cases. A test case is a piece of code, it's a script that explains basically what your code is supposed to do and what are the expectations, right? Then you're going to render tests, hopefully you're going to find some bugs. So you're going to debug your application and then once you have no more bugs in your application you're going to really use your program. Everything's going to work nicely, you're going to be happy, you're going to be able to go do something else. Then when you write new code, you have a new version of your application, you have a new commit, well you basically start the cycle again writing more tests, running more tests and so on and so forth. That's all very nice but the thing is if you look at your program, this is sort of a graph showing the control flow of your program with the if statements leading to different blocks of codes, it's actually going to be very, very big. Most non-trivial programs are going to have a huge control flow graph, sometimes it's actually infinite. When you write a test case what you're doing is you're essentially encoding the expectation for one path, right? Then if you're lucky that path will lead to a bug and you're going to be able to debug the program. But if you're not so lucky, well maybe you should have written another test case because bugs were somewhere else and then you'll be missing some problems.  Then you debug your app, then you release and then what? You fix the bugs that were reported by your users, right? And well because you were basically code with your pens down, you don't want this to happen again, so you write additional test cases, right? And then you repeat the cycle for every new version or every new comment, right? So that's exhausting and that's why, you know, testing has this reputation of being so tedious. Our goal at Bugbuster is to basically help you do better than that. So how can we test better or faster? First idea, use static analysis. We've all dreamt of having a great ID who will basically underline your code as you type it and basically tell you where the bugs are, right? So static analysis is the technique where you basically analyze the source code without executing it and well, one could imagine that with such technology you would be able to do that and, you know, and find the bugs before you actually run your code. In JavaScript, there are already some very cool static analysis tools like, you know, just hint or just lint. If you're not using them, you should definitely do that. They'll, you know, tell you about a lot of errors, syntax error and that kind of stuff. There are other tools that use static analysis like Clojure or Aglify.js for different purpose for basically compiling or minifying your codes. Well, that's all very good and useful, but the problem is that static analysis is inherently imprecise. Especially for JavaScript, which is a very dynamic language, it's very hard to know what your code is going to do without executing it. I just think that statement here is full, it's greater than zero and I want to analyze it to make sure it's correct and there is no bug. Well, I have to figure out what type, what type full can be. Could be anything, a string, a number, a function. Then I have to figure out where full is pointing to so that I can basically have an idea of what value it can take. And then I have to figure out what this statement is supposed to do in the first place, right? So it can make assumptions about all of that, but it's going to be difficult to be very precise. It's been done with other languages. It's used in other type of industries. In the aeronautics industry, for instance, it's used a lot. But for JavaScript, it's extremely difficult and basically all these imprecision are going to lead to false positives.  And so it becomes really difficult to have something really efficient. So what can you do if static analysis isn't enough? Well, we can do dynamic analysis. The idea with dynamic analysis is basically the reverse of static analysis. The idea is to analyze the code while it runs, instead of just looking at it and thinking about it. And you're probably already using a lot of dynamic analysis tools, right? A debugger is basically using dynamic analysis to step through the code and inspect the code and so on. You have profilers, you have various types of checkers. Actually, I've seen that Microsoft has a stand and they're showing modern.ie. I think they're using dynamic analysis to figure out for instance if you're using APIs that are unsafe or not compatible across browser and so on and so forth. So since we're able to basically do all these analysis at runtime, here's an idea. What if when we run a test case, what if we could actually record the path precisely and use that information to basically come up with other type of inputs that will lead the program down to different path? Well, that's actually an idea that's been around for a long time, which is called symbolic execution. I think it was first formulated in the 70s. It's been a very hot topic in research in the last few years, because we now have the computing power and the algorithms that we can implement to make it work. So symbolic execution can be used to generate test cases. Microsoft, for instance, is using it to test, I think, Windows. They found a lot of bugs in the file system, for instance. NASA is using it. But these are all prototypes for C, C++, and Java. We at Bugbuster are building an implementation for JavaScript. So how does symbolic execution work? I'm gonna give you an example. But this is basically the principle. Symbolic execution starts by recording all the constraints on inputs while you execute your program. So if you're processing input in one way or another, we record everything that's going on, and we formulate that as a mathematical equation. Then when you have a branch, a new statement in your program, we basically record the outcome of the branch, whether it went to the true side of the statement or the false side. And we record the constraint associated with that statement. We then solve that to come up with different inputs. And then we use these different inputs to rerun the program, but this time down the different path. So let's go over an example. I have here a simple JavaScript function to validate an email. So what it does is it takes the input is a string, an email address, hopefully. It trims the white space from the email address. Then it uses a regular expression to see if the syntax of the email address is correct, right? So how is symbolic execution going to handle that? Well, first it will run this function with arbitrary inputs. Let's say just the string A. Then, well, for each line, it analyzes what's going on. So at line two, the code is trimming the white spaces. So it's recording that email is not just the variable anymore, it's now email that trim. And then next line, you have an if statement. And that if statement is looking at your input value. And so we're recording a constraint that basically says, okay, I went to the false side of the branch. So my expression was false. And that's what I record. Then I basically pick that expression because I want to craft an email address that is actually valid. So I take my expression, I feed that to a solver. And the solver is basically gonna come up with another input string for my program. So I can then rerun the program with a valid email address. And that's how I basically cover the two paths of that simple statement. So what is this good for? First, it's actually very useful to understand your own codes. So we as developers, when we write code, we generally have an idea of how it works. And how it should work. But sometimes and actually very often we write things that are capable of doing things that we have no idea. And by using that kind of techniques, we can discover these other behaviors before our users do. And that's pretty useful. So from there, we can generate or complete our test suits. Which is already, which is also very useful. And we can also use that as a refactoring tool to compare the behaviors of two functions. So we are very happy to introduce today Unite. Unite is a new, it's a new toy actually that we built to demonstrate symbolic execution for JavaScript. We unveiled it yesterday at the workshop. And it basically does exactly what I just described. So I'm gonna go over a quick demo. Now if you can just stop breathing, stop tweeting, stop downloading so that I have internet access, that would be useful. So this is Unite. So Unite works by solving puzzles. So here I have a very simple puzzle that takes one variable, x, which is a number. So I have to declare that the type of the input. That's pretty trivial, right? If x is defined, it returns true. Otherwise it returns false. So I can click on run here. And if I have internet connection, I'll get the result. Yes, I have. So here you can see that the Unite came up with two input values. So first the input was x equals zero and the output of the function was false. And then x is equal one and the output of the function was true. Now if I want to test my example about validating email, I can do it very easily. So I had first a trim on the email so that I remove the white space. And then I basically said, okay, if my email matches my regular expression, which was saying basically I want to have at least one character, then I want to have an ad symbol, then I want to have another character, then I want to have a dot. And then I have to have again at least one character, right? First time I type a regular expression live, so I hope it's gonna work. Okay, so I have my validate email function and now I'm gonna change my puzzle to called validate email. And now the input is not a number anymore, it's a string. Right? Now if I run, okay, you're still tweeting and downloading. So the people at the workshop yesterday can attest that this actually works. Okay, so I'm gonna try to download again. Okay, no internet connection. So let me just explain what this was supposed to do. So it was supposed to show basically the same as before, but instead of x equals zero, it will have shown x equal a as a normal string. And then x equal an email address that was composed basically of space characters. So backslash t, backslash n, and add symbol, spaces, a dot, and some other spaces, right? And so that would have actually been a syntactically valid email address as far as my regular expression over here tells me. But it's obviously not one that is valid in reality. So basically, using a tool like this, you can figure out an input for the function or the unit you wanna test. That is probably different from the one you would have thought when writing a regular test case. But that is actually very interesting because such an email address, such a wrong input could actually be the starting point of an attack to a piece of code, right? Because if you can start inputting some weird characters in a text field, for instance, God knows what you can do with it as far as code injection goes and that kind of stuff. So it's pretty disappointing that it does. Oh, yes, it works. Ah, let's put it on the pie that it went to Ireland, to Amazon, and came back to India. So that's why it took some time. So here you can see backslash t, add backslash t, dot backslash t, backslash t. So from there, you can figure out, for instance, that the email that Trim is actually completely useless because you have lots of spaces. And that, instead of dot, you should probably put backslash w because you only want word characters. That's what's doing. Plus, so backslash w plus, backslash dot. Right, so now if I fix that, then I rerun. We have time, right? Anyway, it should work. So another thing that we can do with this thing that I'm not gonna demo but that I encourage you to try is we can actually compare two implementations. That's what I was saying before. So let's say you're doing refactoring because your code is never as nice as it should be, so you're improving it. And as part of doing this, you're writing a new function that's supposed to be functionally equivalent to the old one just nicer. Here I have an example here with string that substring. In JavaScript, you have actually two native methods, substring one is substring and the other one is substring and it's actually a cool example for refactoring because actually this is the kind of mistake you can make very easily because they sound the same, they're supposed to do the same and they mostly do the same except for some parameters. So if I run that into Unite and the other example finish, no, okay, no hope that this works but you can try it for yourself. So the address is Unite.bugbuster.com. So basically what this will show you is that with this set of parameters, there are actually inputs to the substring function that produce different result than the substring. So, and you can use that with more complicated piece of code. We have another example here. With some tag parsing codes, two functions that are equivalents where the tool actually shows all the inputs where the two functions are equivalents. So Unite is actually, as I said, it's a toy, it's a playground, we wanna get people used to the idea of dynamic analysis, the idea of generating inputs for your tests and in order to get yourself familiar with it, we also built a few challenges. So you can go on Unite, maybe not now because it doesn't work, but, and you can actually try to guess what a secret function does. So it's the same idea as the compare mode, but it's, you basically have to guess the implementation of the function. All right, that's it for the demo, which was a great success. So beyond Unite, our main product is actually called Backbuster. And what it does is integration testing. So at the core, you have the same idea with symbolic execution, but on top of that, we also detect the UI elements on your webpage. We trigger events so that we can trigger the JavaScript codes. And then when you have text values, we use symbolic execution to figure them out. So this is a way for you to explore your application as much as possible and try to basically see if, you know, your application behaves in odd ways. You also have a cool API that is timing insensitive. So if you compare that with Selenium, you're gonna actually write much less codes. I think I still have some time. So now I have a few slides explaining how this is all implemented and what are the challenges, what are the limitations. So as you can imagine, there are a few. The first one is how to go about tracing of constraints.  So there are two ways to implement that. One is you can use a JavaScript parser and you can insert hooks in the JavaScript codes so that you basically spy on everything that's being done. That's one way, it's difficult because then you're also gonna have to basically reimplement a JavaScript virtual machine embedded in your JavaScript code. It's sort of very tricky. Another way, which is the way we implemented our solution is you take a JavaScript engine like Rhino or JavaScript core. In our case, we took JavaScript core from WebKit. So JavaScript core still has a version that is a pure JavaScript interpreter. So you have all the code that basically executes every single statement of JavaScript. You can modify that so that you can spy on the values and understand how your code works and trace the constraint. One thing that you're gonna get, I think if the JavaScript code developer were to look at what we did with JavaScript core, they'll probably start crying because we have one to two orders of magnets slow down because obviously we're messing up with everything. So it's gonna be slow, but it's not a big deal because this is a tool that's meant to run by itself. It's not, you know, the JavaScript core interpreter is not gonna be used live by users. So the slowdown is not an issue. The other issue is how to solve the constraints. So again, with this example with the email address, I have to somehow be able to solve that equation and it does not really look like an equation, right? It's code. This is actually the most difficult part of the whole thing. In order to do that, you can use SMT solvers. So SMT stands for Satisfiable Modulo Theories. So it's a set of theories that map real world problems like this problem to basically logic formulas that can be solved. This is fairly challenging and this is the main reason why symbolic execution has not been used so much until now because actually this is really very hard. There are lots of smart people in research that are improving these things nowadays. In particular for JavaScript, you're gonna have specific issues. You know, you have fairly interesting string manipulating functions in JavaScript. We have regular expressions. These are very challenging because you can express very complicated things with them and then solving that is difficult. So some constraints cannot be solved. So if you try and unite you will see some things can be solved in less than a second, others they'll just time out. That's the reason there are things that we cannot necessarily solve. But in general for most type of programs we can do a good job and we can progress well in the program. Last problem, the path explosion problem. This is a problem that you're facing every day when you're trying to write test case. It's basically the fact that there is most likely an unlimited number of paths in your program. You're writing if statements, loops and things all over the place. And so it's likely that your program can actually work in many different ways. So this problem affects symbolic execution because what we do there is we're taking this huge tree and we're trying to follow one path at a time. So in a big program it's gonna take a long time. But the good news is it's gonna be much faster than you doing it manually. So you can explore thousands and thousands of paths with these techniques whereas if you were to write test cases entirely manually you'll probably only do a few dozens if you're very, very motivated. Okay that's it. I'm getting to the end of the talk. I hope I was able to give you an overview of what dynamic analysis and symbolic execution can do for you. I really encourage you to start looking into these techniques. We strongly believe that this is the future. This is what's gonna help developers build all these fancy applications for the web including Firefox OS and all these very nice application platform. It's not something that you should think of as a replacement to manual testing or unit testing or static analysis. It's really a very nice complement. So you can, for instance, use JS hints so that you get your warnings about your code and then use Unite or Bugbuster to generate more test cases and complete the test suits that you would write manually. We currently have two products. One is Unite which is this playground that I just showed you and our main product Bugbuster which is currently in beta. So it's easy to use for everyone. So that's it. Thank you for your attention and I'd be happy to take your questions. Awesome. So we have plenty of time for questions. Thanks for the talk. Is there any API which we can use from our application? Yes, but it's not documented and public yet but it's coming. Okay. So both for Unite and Bugbuster, we're gonna have public REST APIs so that you can use it all from the command line or build plugins for your IDs and stuff. We have, for Bugbuster, we have for instance a Jenkins plugin that is pending so that uses the API. So that can be used as an example. My second question is in the example, validate email example you showed us. So it was generating just a couple of test cases. So I mean, how can we trust this particular system to be a more exhaustive than a test case which is something manually prepared through some other system? So you'll see that it will do a lot of things. So it's gonna be obvious that it does more testing. Now, there is no way for us to tell you that we tested everything. The main reason being that in a program that has loops and stuff, it's very difficult to compute the number of paths in a program. So what we're doing is we're actually showing coverage. So coverage of the statements. So that gives you an idea of, where is it? So, let's see if it works better now. Yeah, so with these two things, if I highlight here, I see the coverage. Can you see the green that changes, right? So this gives you an idea of how good the tests were. You should definitely use coverage. I mean, not just with Unite, in general, that's, I guess, a common that applies to everything. If you're doing testing, you need to measure the coverage. Otherwise, you're in the dark, you have no idea if you've tested 1% or 99% of your code. The mic is moving. So to your point around coverage, doesn't the tool automatically give you all the parts because it's able to get to the parts? So why is there limitation on it not reaching all the parts? I'm still not able to get it. It's just a matter of time. Okay, so if you expanded the time horizon, will it give you? Yes, unless you have expressions that our solver cannot understand. So there are things, for instance, that are extremely difficult. I can give you an example. Here I have a regular expression with a match and it works usually just fine.  So there are limitations, but when you have constraints that our solver can understand and if you leave it enough time, then in principle, it can explore all paths. And can this tool be used also for REST-based APIs and services? No, right now it's pure JavaScript. It's pure JavaScript. Yes. Okay. So if your JavaScript interacts with the REST API, then, well, that will work. But if you have, typically, if you have inputs that is processed on the backend that we don't see, it's only front-end code. Or I mean, you can paste in here backend code, but if you talk to a remote component that we don't see. Hi. Excuse me. Where are we? Okay. Yeah, see, there can be cases of infinite recursion and all, right? Yes. So how do you deal with that? Timeouts. So if you run for too long, we just stop. But I mean, if you run for too long, you're in trouble, right? If you write a manual test that runs forever because you have an infinite recursion, that's a bug. So if you have a timeout, that's an indication that something's wrong. Okay, one more thing. The previous example that you showed, you know, there was only one path that was tracked. And there were two test cases and both the test cases returned false. So, I mean, how do we get to know that, you know, how much of the code is actually covered? So that's basically what I showed before. You can see for each path, what is the covered codes, right? Now, if, yeah, but that gives you individual coverage of one test case, right? Sorry? That gives you a coverage of one test case. Of your code, yes. So is there any way to track down, you know, which particular lines of code were not covered at all? So there could be, in the web interface that is there on Unite, there is not. On Bugbuster, the main thing, it actually runs and explores for a long time and then you see the aggregate coverage on a file. So if you have a JavaScript library that has 1,000 lines and it's been running and triggering hundreds of events that were using that library, then you will see the aggregate coverage. And so then you will see the lines that are not covered. And then you can decide if that is either things you should test in another way or if this is actually maybe that code. Oh, we have a question upstairs? Yeah. So in addition to doing, is there any way for me to kind of, or does it automatically give garbage values and try to check that? So, you know, exception cases and all that. So for example, in this particular case, you have one valid email, but emails can be of multiple formats, right? So would it actually look at your regular expression and try different versions of the valid code? No, but we have a million ideas for doing that kind of things. So far we've been focusing a lot on the exploration part of the code and we report the bugs that pop up in the form of exceptions that we will tell you. And, you know, in Backbuster, we also report all sorts of browser issues. But yes, over time, we'd like to add more dynamic analysis checks that can, you know, take, you know, look at various aspects of your code and give you hints or tips about what's going on and what should maybe be done differently. One last question from Appian. Can you use this coverage information or like instrumented code to figure out dead parts in the code and hint the programmers that these parts of your app are probably not being used anymore? You think it's also possible? You can use that to get hints about what parts of your code are dead. Because if you run for a long time and it cannot figure out inputs, and you as a developer cannot either figure out inputs to reach these parts and chances are that this is dead code. But it cannot tell you for sure this is dead code. Yeah, it doesn't have to. It can just hint at it. Well, the hint is you've been generating tons of tests and this code still hasn't been touched. That is the hint. It's difficult to go beyond that for sure. Oh, that's new. So let's say there are two functions, function one and function two, and they are modifying similar same state. And the order switches sometimes and that order has a bug because of Ajax or some Async execution. Is it possible for you to figure out that in normal case, function one is always called before function two, but in situations when function two gets called first, we'll have issues. Can you find out those issues? So there are actually quite a few papers that have been published that look at timing issues. And what they do is they will actually try to figure out the timing dependencies between the various parts of the code and then influence these timing dependencies to trigger bugs. We don't do that. This is something we could potentially do someday. If there is a hundred of us of you that want to help us do that, please come and join us. There is quite a bit of work there. But yes, these are very interesting things, especially when you run the, so this is just for unit testing. In Bugbuster, we run the full browser thing. And yes, there are lots of Ajax requests going on. We've had cases, especially with one customer where there was one bug that was due to timing issues and the bug will pop up with Bugbuster sometimes and sometimes it won't, because we don't control the timing. So then we have the same issue as a normal user or tester. If the latency of the network changes, then you get a different result. But yes, this is a very interesting direction for future work. Okay, the puzzle function, it'll take primitive objects only, is it? Yes, yes. Okay, because many cases our functions might have an actual object. So how do you test those cases? So this is a very simplified API. Currently we do not support, so basically this is fuzzing values. It's actually fuzzing in a smart way because it's trying to solve equations to find the values. We can fuzz only primitive types, but we can go into an object to tell the tool that this part of the object, which is a primitive type, should be fuzzed. Yes, so. This is not exposed in this tool yet, but it's actually there. Okay. Cool, all right. Thank you, Olivier. Round of applause, guys. Thank you. That's awesome.


The Delhi Metro is likely to become one of the world's most heavily used rapid transit systems in the future, and the system is already one of the world's largest rapid transit systems on various metrics, from lengths to number of stations to ridership. Unfortunately, despite its great size and the number of people it moves every single day, the Delhi Metro is woefully underappreciated. So let's try to fix that. Come along as we dive into one of the world's fastest growing metros. A special thanks to Aryan for his on-the-ground footage used in this video. I've made a lot of explainer videos, which you should check out if you haven't, but if you're new around here, before we get into looking at a mass transit system, I think it's helpful to get a lay of the land, so you can at least get a sense for why lines go where they do. It's important to note that in the case of Delhi, the city region is really multi-jurisdictional, in that Delhi and surrounding cities like Noida, Gurgaon, and Mehrut are not a single political unit, despite being deeply connected economically as part of the broader national capital region. Through the east of Delhi proper, bisecting the city is the Yamuna River. Delhi's main governmental precinct, with its angular planned roads, lies to the west of the Yamuna, while the primary CBD, if it could be called that, lies roughly to the north at Conahut Place. Further to the west-south-west is Delhi Ridge, a major forested nature preserve near the geographic center of the region. To the northeast of the CBD and governmental precinct is New Delhi Station, a major transport hub for long-distance and suburban rail services. Other major stations include Delhi Junction, Anand Vihar, and Nizamuddin. The primary airport for Delhi is IGI Indira Gandhi International, which lies to the southwest of Delhi Ridge. Now it may come as a surprise, given the topic of the video, that Delhi and more broadly India's famous mainline railways, which, much like the Delhi Metro, really are underappreciated, won't be a major topic in this video. For better or for worse, the mainline railways in Delhi need a lot of work, and hold a lot of potential that will likely be needed to be tapped into to properly serve the city as it continues to grow into one of the world's largest. That being said, the overlap between Metro and mainline rail is surprisingly small, and the existing connections are not great, likely because the Metro is seen as something new and worth focusing on as the mainline rail unfortunately falls a bit by the wayside. Speaking of the Metro though, it's no slouch on its own. The network currently has 400 kilometers of track and nearly 300 stations with more under construction, meaning Delhi Metro is already longer than almost every other Metro system in the world. The system has a total of nine lines, and it connects directly to two more that are under the jurisdiction of adjacent cities, but which to different extents have been influenced and in recent years increasingly been operated by Delhi Metro Rail Corporation, the state-owned company which runs and builds rapid transit in Delhi. Pre-COVID ridership of the system was over 5 million per day, similar to other larger systems, but probably low given the huge population of Delhi. Unfortunately the fares, which are distance-based and started around 10 cents US, still price many residents out, and this is made far worse by the de facto replacement of some previous more inexpensive transit with the rail lines. That being said, in the future it seems entirely conceivable to me that given many more lines, Delhi Metro could move more than 10 million people every single day. Keeping all of this in mind, as a decent amount of new infrastructure opens as the beginning of the COVID pandemic, with ridership beginning to recover, there's a good chance it could reach new heights in coming years. The system's reach is also being extended somewhat by a network of buses operated directly by Delhi Metro, but bad congestion and limited service seriously limits their usefulness. Now it probably comes as a surprise given the rough around the edges nature of many mainline railways in India, but Delhi Metro is really stunningly modern. From the interconnected air-conditioned trains with built-in chargers, to the large clean station facilities with fare gates and smart cars, when you're in the system it really mostly feels like any other modern metro, and in many cases miles ahead of many famous legacy metros like New York, London, and Paris, which is awesome. With the background laid out, let's take a look at the actual lines of the system, which were somewhat uniquely built in fairly well-coordinated phases, which usually created lines with similar features, construction styles, and common rolling stock. The first phase came with the initial segments of the red, yellow, and blue lines, which all use Indian mainline gauge, which is broad at 5'6", or 1676mm. The lines are all electrified with 25,000 volt AC overhead line power, which is very uncommon for metros globally, but was adopted by Delhi Metro, and thanks to the system's influence has become quite common within India. Trains are large, and the blue and yellow line trains are eight cars long, while the red line currently has six, but is moving to eight soon. At the same time, metro trains on the Delhi Metro have a higher than normal top speed of 100kmh, which helps with the long distance between many stations, many of which in a somewhat well-known Delhi fashion feature rooftop solar power arrays to generate clean energy, something that way more systems could benefit from, even if only in suburban areas. The red line was the first in the system to be built, and opened just 20 years ago in 2002. The line is a total of 35km long, with 29 stations, and broadly runs east-west. The line is virtually all overground, which is the de facto style of alignment across much of the system, typically on large concrete viaducts. That being said, somewhat uniquely, northeast of the city center, which the line doesn't really pass directly through, operations are at grade, adjacent to mainline rail tracks, something which really hasn't been done on the other lines of the system. Now, I mentioned Delhi Metro's influence on other systems in India, but it itself was heavily influenced by other systems, probably most notably Hong Kong's MTR, a great system which I do have an explainer on, and which was hired as a consultant on the Delhi Metro project, the influence of which is definitely noticeable, including the original Phase 1 rolling stock that bears a lot of resemblance to MTR's K trains built by Rotoman Mitsubishi, and with whom Delhi has worked on along with local manufacturers on several subsequent train orbits. That being said, Delhi doesn't use the 5 doors per car standard seen in Hong Kong. The yellow line is an arc opening west, and is 49km long with 37 stations, connecting to the red line at Kashmir Gate, which is also a major interstate bus terminal or ISBT. These exist at a number of locations across Delhi, and provide bus services to other states. Just to the south, there's also a station not far from Delhi Junction Station, as well as a connection to Delhi Station near the city center. The alignment of the line is elevated north of the center, then underground from the core to some distance to the south, before merging back above ground into an elevated guideway. The blue line is an east-west arc that opens to the south, and is the longest in the system at 65km with 57 stations, which puts it up with some of the longest single metro lines in the world. Like with the yellow line, the line is underground within the core where it connects with the yellow line at Central Park, creating an odd topology where the yellow line is connected to both the red and blue lines, but the red and blue lines are not directly connected to one another. Unlike the yellow line, the blue line pops above ground almost immediately after leaving the center on both sides. To the east, the blue line splits, with a short branch to the north, and a longer southern branch that ends with an array of elevated tail tracks that sort of reminds me of Chicago. For the second phase of construction, three new lines, the green, violet, and orange, were added, and while these lines like earlier ones did opt for 25,000v AC overhead power, they moved to standard rather than broad gauge track. Trains were also a little narrower than in phase 1, and stations were built to be shorter. The green line is super weird and fairly substantial at nearly 30km long with 24 stations, and it travels very far from Central Delhi. This is mainly because the line terminates quite far west of the center, with two reverse branches, one ending at the red line and another at the blue. A very unusual design for a metro service, and something made even more strange by the lack of a flyover between the branches. The line, as you may expect, is entirely elevated. The violet line is more of a conventional north-south line, again with six-car trains, which starts at the interchange of the yellow and red lines, the major hub of Kashmir Gate, and runs south through the core, with an interchange with the blue line, east of Central Park, as it then swings west to Central Secretariat where it connects again with the yellow line. The line travels underground all the way to south of Jalan Stadium, towards the south of the core, before going elevated again traveling east, and then south all the way to its terminus, arguably the furthest away from Central Delhi. The questionable integration between mainline rail and metro seen across the system is quite apparent at the southern terminus, which is connected to mainline rail, but via a 300m covered walkway, something that reminds me very much of a recent video. The orange line is the first Delhi metro line that really diverges from the traditional metro model, in that it operates as a relatively high speed airport express with a top speed of 130km per hour. The line is 23km long, with a total of six stations, and runs southwest from New Delhi station, where it connects to the yellow line and mainline trains, then to IGI airport, and then beyond to the terminus of the blue line. The portions around the airport and Central Delhi are underground, while the rest of the line, including parts of it through Delhi Ridge, are elevated. The line was one of MTR's most direct influences on the Delhi Metro. The company directly consulted on the project, and it has a number of similar elements to Hong Kong's airport express service, including in-town check-in and platform screen doors at all stations, as well as even calf rolling stock. Unfortunately though, while the orange line or airport express as it's known does serve the main airport terminal area, it doesn't serve the newer IGI terminal one used by low cost carriers. It's also somewhat different from the Hong Kong airport express, and may be a bit more like Taipei's in that it extends beyond the airport to other areas of the city. The Magenta line is 37km long with 25 stations, in an east-west arc opening north, and starts to show the limits of the color-based line naming. I mean magenta, really? Though it's worth mentioning that Delhi's lines do have numbers as well. When the line opened, it was the first automated metro line in India, and the line pops above and below ground frequently along its alignment, and terminates at the blue line at both ends, with connections in between to the violet and yellow lines. The Magenta line also serves IGI airport, albeit terminal one rather than the main terminal area, though a people mover or other similar connection would be a great addition in the future to connect to the main terminal area. The pink line is sort of the penultimate line on the Delhi metro, in my personal opinion. It forms an almost complete loop around the city, currently being an arc opening north, and is 59km long with 38 stations, making it the longest line in the system if you don't count the blue line branch as part of its length. Along the route, the pink line connects to all earlier Delhi metro lines, including three times to the blue line, one of which is at Anand Vihar mainline rail station, and two times to the red and yellow lines. There was initially one missed connection with the green line, but this has been rectified with a new infill station, which is a pretty decent transfer. The pink line also goes to Sarai Kale Khan, a major interstate bus terminal that's also going to be a major feature hub for the under construction regional rapid transit system, which I have a dedicated video on, as well as connecting to another major mainline rail station. Unfortunately though, not all of the connections are good, and this is a broader problem with the Delhi metro. Connections within phases tend to be fairly good, but between phases can be incredibly rough. The connection from the pink line to the airport express is over a kilometer long for example, which is just bad, even if it is enclosed and has an incredible number of travelators. Seriously, I'm pretty sure it's a world record holder here. Most transfers on the system are a lot better than this, but given the pre-planned nature of the system and how good it generally is, I would have liked to see cross-platform transfers in a lot of places, which should be doable given that most of the system is elevated. Now fortunately, much of the pink line has a really smooth alignment, but that goes out the door east of the river, where the alignment swerves all over the place, and this is in part due to land acquisition issues that have been a recurring problem for the Delhi metro, which also forced the pink line to initially open as two separate segments. They've also forced some crazy depots, including this multi-level split depot on the pink line, this super stretched out depot on the green line, and one which is on an elevated deck with a park and ride underneath on the magenta line, as well as this depot across the river from the blue line. The grey line is the shortest on the system, with just four stations over five kilometers, spurring off to the west of the western end of the blue line, and using space on the aforementioned blue line depot site for train storage and maintenance. There are also two additional metro lines which are in states adjacent to Delhi, but which function as part of the Delhi metro system, with connections to it and operations managed by DMRC. The first of these is Noida Metro's Aqua Line, which even has a colored name, and is 30 kilometers long with 21 stations, connected to Delhi Metro via the southern branch of the blue line, albeit with another very long walkway that at least is well fitted out and weather protected. The line uses 25,000 volt AC power and standard gauge, as with most newer Delhi Metro lines, and is entirely elevated. While the line currently doesn't get huge ridership, it has provision for much more frequency, longer trains and extensions on both ends, and many areas it runs through remind me of South Korea, with forests of high-rise residential towers, though other parts travel to mostly undeveloped land. The second non-Deli Metro metro line in the national capital region is the Rapid Metro Gurgao, which is a 13 kilometer 11 station light metro line connected to the Delhi Metro via the far southern end of the yellow line. Like the Noida Aqua Line, the Rapid Metro is fully elevated, but unlike it and every other metro line in Delhi, it's powered by 750 volt DC third rail, and features a unidirectional loop through a major business development area at its northern end. As it turns out, with both the airport Express and the Rapid Metro Gurgao, private companies initially built the systems, but then failed to be able to continue operating them and they were taken over by government entities. All of this leaves us with the national capital region's greater metro network as of late 2022, but things are set to continue to grow in a big way. The Magenta line will be extended to the northeast and then self to form an almost complete loop, while the Pink Line will become a fully closed loop, albeit with an offshoot like many other looping metro lines such as London Circle Line. A new line is also already being built known as the Silver Line that will cut across southern Delhi and connect to the airport express at Delhi Aero City. Beyond this, there will also be an extension of the red line, two new lines known as the Brown and Indigo lines, and a couple of other projects in the works. Now overall, most of my comments on the Delhi Metro, besides the connections between some lines, are quite positive, but one feature that does concern me a little is the tendency to create entirely separate suburban metro lines. This is being rectified somewhat with the RRTS system, but it's still concerning to see the Mexico City Metro style of development, where traveling to the suburbs requires getting on an entirely separate suburban metro line, as is required with the Green Line, the Grey Line, the Norda Metro, and the Rapid Metro Gurgaon. With that said, given the Delhi Metro's impressive scale and large ridership, it's been quite influential. I mentioned how much of the system is elevated, and surely it's no coincidence that many other, more recently constructed metro systems across India and other parts of South and Southeast Asia have frequently used similar elevated guideways to build out their systems. This influence from the Delhi Metro has actually been formalized, and now DMRC consults for other cities, particularly in India, on creating their own metro systems. Of course, I hope you've also gotten an appreciation from this video for just how modern Delhi Metro is. This is an advantage the system has over a lot of other famous metros around the world, with universal accessibility, level and mostly straight platforms, and large trains basically standard across the system, not to mention air conditioning, smart card payment, modern signaling, many stations with pretty good integrated transit oriented development, as well as the aforementioned solar power. When you step onto the Delhi Metro, in many ways, it doesn't feel all that different from an iconic system like the MTR, and that's a big achievement. Delhi Metro also has pretty good wayfinding, which is in multiple languages, like a lot of systems in Asia, which is something else I think systems around the world could learn from to make world cities more accessible. Despite these sometimes bad transfers, the maps also do a good job of showing you which transfers are particularly long, so you can at least try to avoid them. All in all, the Delhi Metro is one of the world's great metro systems, and given it's only had 20 years to get there, the future looks bright. Thanks for watching.


What's up everybody? Jason here for jazby's case breaks calm. We just sold out another March Madness promo break and 2021 tops dynasty baseball. This is a five box case break random teams number one So remember guys only 28 total spots were sold and we're no Royals Are a part of this and then Diamondbacks and Guardians are a combo team. So that should make 28 right there For the names and then like I said, I took out the Royals and Diamondbacks Guardians are a combo Rollets Six and a two eight times. Good luck one two three four five six seven eight six two eights Nicholas down to Jason two three four five six seven eight eight times Rockies down to the Royals So Nicholas you have the Rockies Gregor the Braves Mark with the Giants and Marlins Steve Locke You have the Cardinals Matt Buckley with the Yankees Michael with the A's Mark with the Cubs and Matt Steve Verge. You have the Diamondbacks Guardians combo Chris with the Mariners Elwaba with the Cincinnati Reds Mark with the Poggers Josh with the Twins Harry with the Angels PJ of the Pirates Josh with the Tigers Harry with the Red Sox Monte with the Brewers Alan with the White Sox Mark with the Dodgers Joe with the Rangers Michael L with the Astros Mark with the Rays Alan with the Phillies Mark with the Nationals PJ of the Blue Jays and Jason with the Baltimore Royals All right, so I'll open up the trade window I'll pause the video if there's any trades. We'll do it. If not, we'll come back and start the break guys All right, you guys no trade talk no nothing Stick to what you got Here we go. Here we go 2021 dynasty hobby case Just telling like 15 bucks All right guys, good luck first one Tim Anderson to start us off six out of 10 Chicago White Sox that's Alan with that one box two for the Tampa Bay Rays nine out of 10 Austin Meadows TB it's going to mark the player of the month box three one of one Xander Bogarts look at that majestic tag there's even that little hologram right there That's for the Red Sox and Harry. There you go There's actually only two total players at Tampa Bay. We got it. That's funny This is a redemption you're due to receive an autograph patch card of Boba Shet and the Toronto Blue Jays Going to PJ. There you go. So that's probably going to be out of 10. I assume Since it didn't say parallel or nothing like that There you go. Last one Such a quick break right guys It's like imagine we did like a 10 case break of this how fun it would be I mean how expensive it would be first of all I see a Philly And it's Bryce Harper 10 out of 10 For the Phillies and Alan with the Philadelphia Phillies on track for greatness There you go fellas. That was the break So Bryce Harper Boba Shet Xander Bogart, one of one Tampa Bay with Austin Meadows and then Tim Anderson There you go guys really appreciate it guys remember this is a promo break as well guys So let's copy and paste the list of customer names here And customer number one gets a promo spot Which actually oh I already have it right here actually the original names there we go. All right roll it Two times all right two times nice Lego one two Boom snake eyes two times Just missing out with Steve Burch But congrats to Wow, what a break for you Alan. I think you got two hits out of this right You got the Phillies and I think the White Sox hit and now you got a promo spot man. Have yourself a break There you go So let's paste in your name right here This was 2021 Dynasty Five bots or a t number one So again guys, um all we have to do now is Sell out two more fillers guys either the limited filler with the break and contenders filler With the break as well Um, I think nick did text me that he created a filler for six spots in limited r&b So someone may have bought that one spot, but we do have to do a filler I guess maybe people weren't buying into that because it's a little pricey So now you have an opportunity to save some money and potentially win a spot in that limited football break with a Random number of blocks. So appreciate it guys. Jasper's case breaks.com


Talking about Pound and the cantos last week, I was talking about translation a lot. In the case of Eliot, I'll be talking about quotation, a related but different practice, and one that we'll see again in Marianne Moore. In Pound's case, there is a wish in poetry for immediacy, for some kind of seemingly natural language. Pound doesn't want and doesn't use quotation marks, just as he doesn't use footnotes. If you look at Pound in any of the additions of his work from the cantos backward, you will find that the poems are presented without notes, without any kind of apparatus, without any kind of help. That's because, I think, Pound wants to, in some sense, give you a kind of – he doesn't want to get in your way in any sense. He wants you to have a kind of immediate experience of the writing that he's presenting, even when it comes in the form of quotation. But as I suggested, for Pound, the sort of central practice is one of translation, which he also describes as transmitting the impulse. And I spoke last time as if the impulse meant the motive or the emotion in a piece of writing. I think that Pound also had a kind of scientific or technical sense of that process of transmitting the impulse, and that what he wants to do is carry – he wants writing to carry energy. He wants it to carry a kind of pulse, and he wants to give you kind of direct access to this. The contrast with Eliot is striking, I think. Instead of translation, you find in Eliot more often quotation, which implies a certain relation to the literary past. Just as Pound's practices of translation imply a relation to tradition. Think about the difference between these forms, translation and quotation. It's a way to understand the difference between Eliot and Pound, and through them to think about at least two of modern poetry's possible relations to the literature of the past. Remember, too, that modern poetry, and that's a word or a phrase that Eliot and Pound both used, that modern poetry is a particularly historical category. It's a historical way of naming what it is. You could contrast this with romantic poetry, say, or imagism, which are names or labels that identify something more like an aesthetic project or a tendency. Here, to call modern poetry modern is to choose, as it's defining quality, its position in history, its place in literary history, and it does place modern poetry in history ambiguously. Is modern poetry, is its modernness an index of the way it extends the past, or is it rather modern because it breaks with the past? Does modern mean some kind of renewal and continuity, or does it mean rupture? Translation and quotation suggest, well, as I say, different relations to the past. Pound aims to make it new. Itself, I suggested a translated phrase from the ancient Chinese. Pound in doing this aims to carry culture forward, to hand it over to us as a kind of living and immediate thing. The past is renewable in translation. It is communicable. That's part of the premise of translation. For Pound, the past is something that can be re-embodied continually and needs to be re-embodied continually over and over again in forms. In this sense, translation envisions a past that is metamorphic and mobile and durable. It's something that is always essentially itself. It's something that is capable of being carried forward. You'd think about Pound's voyagers, his seafarers, Odysseus, or the seafarer poet, as being, well, agents or representatives of acts of translation. They embody the action of carrying something across, journeying. In quotation, however, the past is something to be preserved, which is different. Preserved or maybe mocked in the sense of copied or parodied. Quotation seems to imply two possible relations to the past when you think about it. Deference to the past, deference to what has been done, or some kind of violation of it. When you quote someone, especially maybe your parents or a teacher, well, what are you doing? Probably you mean either to honor them or to mock them, right? To, in a sense, defer to their authority or to take it away, to empty it out. Both of these are possible. Empty it out by parroting it, treating it as if it were merely iterable and formulaic, and therefore without substance. Eliot's quotations teeter ambiguously between these two options, and sometimes you may feel he's doing the one thing and sometimes you may feel he's doing the other, that he's somehow deferring to the past and honoring it, or he's doing something quite subversive, something parodic. In Pound I don't think there's any of that ambiguity ever. It's a very striking contrast. If you listen to Pound Online, you hear a voice that is fierce and melodramatic and in earnest.  This is all worked into the poetry and our encounters with it on the page. Again, you might contrast the heroic figures that you meet in Pound, whether they're Odysseus or a Troubadour poet, or one of the political leaders that Pound fastens on. These are men of will and willpower and action. These are the people that attract Pound's admiration and imagination. Who do you meet in Eliot? J. Alfred Prufrock, this figure of extraordinary indecisiveness and indeterminate will, someone who's diffident. Well, Prufrock is surely a version of Eliot, and we encounter in Eliot generally some of the problems that Prufrock raises for us through his meandering mode of speech and difficult to place tone. Let's look at some pictures of Eliot, maybe my favorite one, especially since we're going to be thinking about and talking about Eliot's age and how he projects himself. This is Tom at eight. He was born in St. Louis, the only major British poet born in St. Louis. In 1888 he went to Harvard. This was not a surprise, in a sense, a family mission. He spent his summers, importantly, in Massachusetts and on the coast of Massachusetts, the north shore of Boston, and these places return and recur in his poetry. As a graduate student at Harvard in 1910, he expatriated to Europe. This is Eliot in 1910, 1911. He had studied philosophy at Harvard and he went on to study philosophy at Cambridge with Bertrand Russell. He wrote his master's thesis on F.H. Bradley. That's an association I'll say more about when we get to Iceland. In 1915 he met and married Vivian Hay Wood, a charismatic and volatile English woman. This romance produced for Eliot a kind of dramatic conflict with his family over his wish to marry her, his wish to take up residence in England and, with all of this, his sense of vocation, his desire to become, to establish himself as a poet and man of letters, rather than the more easily-to-be-approved career of a professor and scholar that he had seemed to have been made for. Pound was Eliot's older friend and mentor very quickly upon their meeting in Europe. Pound, always putting his fingers in everything, wrote quite an extraordinary letter to Eliot's father. I've got that on your handout in the top page, a little quotation from it. It says a lot about Pound. It says something about Eliot, too. This is a letter in which Pound felt the need to, probably with some encouragement, but probably also some embarrassment from Eliot, felt the need to defend Eliot's expatriation to the family and Pound says, as to his Eliot's coming to London, well, anything else is a waste of time and energy. No one in London cares a hang what is written in America. After getting an American audience, a man has to begin all over again if he plans for an international hearing, and who wouldn't plan for an international hearing? He even begins at a disadvantage. London likes discovering her own gods. Again, in a literary career, mediocrity is worse than useless. Either a man goes in to go the whole hog or he had better take to selling soap and gents furnishings. Is this the right way to write Mr. Eliot? I don't know. He must have felt so. The situation has been very well summed up in the sentence, Henry James stayed in Paris and read Targanyev and Flaubert. Mr. Howells returned to America and read Henry James. Then he says in another important sentence, a literary man's income depends very much on how rigidly he insists on doing exactly what he himself wants to do. It's interesting. The idea is that by establishing some kind of independence from tastes in a literary market, Eliot will in fact come to establish his position in that literary market and his ability in fact to create taste, and so in fact he did. At this early point in his career there is a kind of important conflict between conformity and revolt. Conformity to his parents' wishes, social expectations were revolt from them, which is also I think another way to describe the tension between two different senses or aspects of quotation. Pound wants Eliot's father to see that his son's revolt is okay, because in fact he's also going to conform. He's going to conform to a certain ideal of tradition, to professional standards. He's not just going to have a wild time. He's going to work hard and do what a literary man should do. Eliot, you'll see, takes up these themes in different terms but related ways in tradition and the individual talent, which I'll talk about later. Like Pound, Eliot will see wants to ally himself with tradition, wants to ally himself with tradition over against ver libra, Amy Lowell and Amy Gism, and at the same time his relation to tradition, even from very early on, was potentially subversive, and his poetry was very new and disturbing. Now there are all sorts of interesting things in Beinecke, including the author of T.S. Eliot's Waste Coat, H.D.'s death mask I showed you last time. Here's Eliot's Waste Coat. I like this as an object, as part of the literary archive we have. Also, well, it's interesting, isn't it? It's a piece of Eliot's costume. Costume is very important for T.S. Eliot. I think it's also potentially a kind of emblem of quotation in his work. Is Eliot taking on the past in the horror of propriety in order to parody it or empower himself? These are questions we might ask even about the Waste Coat. Is it some kind of disguise? Is it a costume through which he conforms to social forms and expectations? Or is it, again, something he puts on? All of these questions are at, for me, the center of Eliot's interest and power. Also, I think some of the lasting power that he exerts in schools and for students. I will confess that my High School Yearbook carries a quotation from T.S. Eliot, in fact, a love song of J. Alfred Prufrock, which I won't identify for you. As I think about that, why I cared about Eliot when I was seventeen or so, not that I don't now, too. When I think about that, it seems to me that his special combination of ambition and aggression, expressed, as it is very often by young people, through parody or satire or diffidence, was powerful for me, too, as a young person. All of this is on display in Eliot's great poem, the Love Song of J. Alfred Prufrock, which is what I'll concentrate on today. Prufrock is a poem composed initially at Harvard and carried with something Eliot carried along with him in the years after. A poem created out of pages of drafts which Eliot kept adding to and going back over and recombining and recomposing them somewhat like his repetitive and wayward speaker. You can find early versions of the poem in a book of Eliot's early and otherwise uncollected work that Christopher Ricks edited a few years ago called The Inventions of the March Hair. It's a very interesting book, and you can see Eliot exploring different ways to write this poem, which hung around for a long time. It was eventually published in 1915 in Poetry Magazine, and in this way just like Yates's The Fisherman, which also appeared there then. Also, a poem we'll get to in a couple weeks, Marianne Moore's A Grave and some of the imagist poems we discussed last week, all these appearing thanks to Pound in Poetry Magazine. The poem became the title of Eliot's first volume. Interesting, and this is the cover of the book. It leaves off the full title, which was Proofrock and Other Observations, which is an interesting title. First of all, is Proofrock an observation? Eliot was treating this character as if he were an observation. You could think about what that might imply, and then think about that word observations. It suggests something seen, of course, as well as some kind of speculation. It's also a way of defining and presenting Eliot's poems. He doesn't say proofrock in other poems. He says proofrock in other observations. His observations is, in fact, a word that Marianne Moore would use to title her first book of poems a few years later. On that cover, we see Eliot's name and Proofrock in some kind of alternation. Rather, Proofrock being a little bit bigger than T.S. but raising for us graphically the simple question, what is the relationship between these two? The one man created the other thing, Proofrock. Are they the same thing? How different are they? Here's the interior of the book. You can see, although, well, you can't see, but if you get a better look at this online, you will see that this book, which is in Beinecke, has a signature on it, W. Stevens, NY, October 17th, 1917. This is Stevens' copy, which he, as he was a young man, wandering around the streets of New York, picked up and kept. It was like Frost's early work published in London in 1917 now, in Bloomsbury by the egoist press. Here's the table of contents. The first and long poem included in the volume being The Love Song of J. Alfred Proofrock. Well, what do we expect from a poem that calls itself that? The love song of J. Alfred Proofrock. First of all, what do we expect from this genre? The love song, a love song. What is a love song? Like, presumably it would be a romantic poem, even a poem about romance. What we get is perhaps something more like a parody of a romantic poem and something much stranger. This is going to be familiar to very many of you. Let us go then, you and I, when the evening is spread out against the sky like a patient etherized upon a table. Let us go through certain half-deserted streets, the muttering retreats of restless nights and one-night cheap hotels, and sawed us restaurants with oyster shells, streets that follow like a tedious argument of insidious intent to lead you to an interesting question. Oh, do not ask what is it. Let us go and make our visit. In the room, the women come and go talking of Michelangelo meter. It's a topic we've raised before. It isn't iambic pentameter. It's notably, importantly not iambic pentameter. Instead, you are introduced to another kind of rhythm of speech, which you can work at to scan, but without even going into any detail about it, I think we can describe that rhythm as languid, as open to variation, as including hand hesitancy and sometimes abruptness. It is a way of speaking that is interrupted often, is alternately valuable and nervous. The poem's initial discontinuities of rhythm and pattern and image introduce us to really a new kind of structure in poetry that would include, well, a kind of almost a principle that any time you establish a pattern, you must quickly break it. Let us go then, you and I, when the evening is spread out against the sky. Sounds like this character is going to speak in couplets, like a patient etherized upon example. Where did that come from? We could supply another third line that would be very different, I think. Immediately, we are invited to, well, surrealistically conjure a prone patient, someone sick and being attended to and etherized, unconscious, and objectified upon a table. If we felt as though we were going to be in a romantic, crepuscular atmosphere, we are suddenly confronted with an image quite disturbing and ugly and note that it doesn't rhyme. I suppose you could connect table to hotels and shells below, but it's not a strong connection and there has been no preparation for it before. Immediately we are given an image and a rhyme decision, if you like, that complicates any kind of sense of pattern that we might have predicted from the first two lines. That rhythm, well, the contrast to an Iambic poem is strong and should be emphasized. You want to draw your attention to an example that would have been in the ears of Eliot's listeners, and that is the Eliot's listeners, Eliot's readers. That is the end of Tennyson's Ulysses, a poem well known in the nineteenth century, the long day wanes, the slow moon climbs, runs round with many voices. I quote it too because Eliot loved this passage and it returns in his late poetry in interesting echoes. Come, my friends, tis not too late to seek a newer world. It may be that the gulfs will wash us down. It may be we shall touch the happy aisles and see the great Achilles whom we knew, though much is taken, much abides. And though we are not now the ninth which in old days moved earth and heaven, we're older. That which we are, we are one equal temper of heroic hearts made weak by time and fate, but strong in will to strive to seek to find and not to yield. Where, echoing, I think, Milton's Satan, the blank verse suddenly becomes a kind of heroic medium of the will. Well, the contrast is important with the poetry that Eliot is presenting to us because here the question of the speaker's will is so much at issue and his manner of speech is so different from the example that Tennyson gives us. Tennyson specifically in this dramatic monologue, as in others of his erve or other important nineteenth-century examples, introduces us to a dramatic speaker who has a kind of coherent character whose unity of character, if you like, is allied to the unity of the verse form itself. Eliot gives us something very different. He creates in proofrock, I would say, not a character. Rather, he creates something more like a consciousness. He creates a fragmentary consciousness that rises and falls, takes shape and disperses before us. John Stuart Mill said in a memorable passage that poetry, lyric poetry is what he was thinking of, is overheard speech. Well, and you can think if you have some sense of the romantic poetry of Wordsworth or Coleridge as examples before you of what Mill had in mind, the way in which in those poems we listen in on a soliloquizing poet's thoughts. Listening to proofrock is much less like listening to someone speak on the street or on the stage than it is like closing your eyes and remembering or inventing voices in your mind. Eliot is creating a kind of overheard inner speech. He's letting us listen in on a mind that we don't see whole, we don't feel whole. We only get parts of it. Fluctuation. This is the medium and the rhythm that we enter when we enter the poem. There is, as I was already suggesting, no overarching pattern for the poem's verse form. I think this is probably true for other dimensions of organization as well. There are, rather in this poem, what I would call a kind of set of unfolding local systems of organization. There are couplets. We see couplets in that first paragraph, but then they're not systematically pursued. Instead, what you get in the poem are a lot of loose ends, clauses, bits and pieces of language, language that is almost always full of quotations, which your editor will give you the source for some of them. What we have then in the poem as you move through it is a lot of shifting improvised orders. This formal instability in the poem is related to, and it constructs, a special sort of speaker, one who is performing for us his thoughts. His thoughts experienced as a set of routines or riffs or acts, and they come and go without very definite aim or conclusion. Looking at the cover of Proofrock, I asked you to think about the relationship between Proofrock and T.S. Eliot. You can think about Proofrock. The name itself, J. Alfred Proofrock, almost a kind of parody of T.S. Eliot. The name suggests a kind of upper class English or Anglophile person, those formal initials are pretentious in a way. I think it's proper to think of Proofrock as in some sense a kind of comic figure, almost like a cartoon or a caricature or device. On one level, he is a kind of parody of a romantic singer. He is bourgeois. He is intellectualizing. He's incapable of grasping and expressing what we expect from a love song. That is strong emotion. The poem can be seen, too, as a kind of critique of romantic egotism and of the words worthy and ideal of expression. This is something that Eliot theorizes polemically in his essay, Tradition and the Individual Talent. In fact, why don't we look there for a few minutes to get more sense of Eliot's ideas? On 946, at the back of your book there, he says, quoting words worth in the preface to lyrical ballads, we must believe that emotion recollected in tranquility is an inexact formula, for it is neither emotion nor recollection nor without distortion of meaning tranquility that you get in Eliot Poem at least. It is a concentration and a new thing resulting from the concentration of a very great number of experiences, which to the practical and active person would not seem to be experiences at all. It is the concentration which does not happen consciously or of deliberation. These experiences are not recollected and they finally unite in an atmosphere which is tranquil only in that it is a passive attending upon the event. Eliot is trying to describe poetry here as having a kind of generating a kind of experience in and of itself that is distinct from any kind of recollected experience. It is curiously impersonal, as he imagines it, and he continues, there's a great deal in the writing of poetry which must be conscious and deliberate. In fact, the bad poet is usually unconscious where he ought to be conscious and conscious where he ought to be unconscious. We know what he means. Both eras tend to make him personal. And now, T.S. Eliot will say, poetry is not a turning elusive emotion but an escape from emotion. It is not the expression of personality but an escape from personality. But, of course, only those who have personality and emotions know what it means to want to escape from these things, which is an extraordinary kind of coda to this polemical passage. And revealing, of course, the way in which Eliot, even as he's polemicizing against a romantic poetry that would be too personal, is deeply invested in the personal and personality and conflicted about it. When talking about ambiguity in Eliot, well, we can speak of ambivalence. This essay retains, even while it is critiquing, a certain romantic story of creation. And we could say something similar about Eliot's love song. Prufrock is a kind of pretext or a device through which Eliot can speak of himself. Prufrock becomes a way of writing about the self when, to Eliot, it no longer seems plausible to write as oneself, as Wordsworth had felt it to be. You can think of Prufrock as a kind of mask behind which you hear a young poet asking questions about himself and his life. List the poem's questions. Prufrock asks questions throughout. Do you recall them? They are, Do I Dare? Do I dare disturb the universe? So how should I presume and how should I begin? Shall I say, he says that pretty often, shall I say this, shall I say that? Daring, presuming, beginning, what shall I say? These are, are they not, an ambitious young poet's questions about how to write poetry. The question is, why should beginning be something that you really have to dare? What does that imply? Why should it be frightening? Why should it give you pause? Why, if these are young man's questions, as I'm suggesting, does Prufrock seem as old, as old and weary as he does? In fact, how old do you think he is? I don't know. Ask yourselves that question. Ask yourselves what evidence you would have for one answer further. It's hard to pinpoint his age. Prufrock is, isn't he, a kind of old young man or young old man? He is cautious and aggressive at the same time, old and young.  Prufrock is burdened by the question of how to begin. Indeed, he begins exactly by deferring beginning, by failing to come to the point, by putting it off, by delaying, because by implication beginning is indeed something threatening, something that must be dared. But this only makes sense if Prufrock really does want to disturb the universe, or at least the system of culture as he found it. It only makes sense if beginning really does require disturbing things. The implication is that the universe is already complete without Prufrock, without T.S. Eliot, and anything that he might do or say. You can extend this to Eliot's idea of culture, and in particular to his sense of the literary past. You see the idea in tradition and the individual talent. On 942, 943 he speaks of, towards the bottom of the page, on 942, tradition as a kind of ideal order of arguments. Tradition is in some sense, well, it's monumental and it's already complete, as he imagines it. To add to it, to enter it would be to change it, to disturb it. In fact, Eliot evolves here a quite ingenious and complicated argument for how the new could indeed be introduced to a tradition conceived in the terms I just describe. Eliot says on the bottom of the page about any new poet, the necessity that he shall conform, and there's that word conform, think of the waistcoat, the necessity that he shall conform, that he shall cohere and remain put together, not one-sided. This is quite an extraordinary argument. You're saying it's not only necessary for a new poet to, in a sense, conform to tradition. What happens when a new work of art is created is something that happens simultaneously to all the works of art which preceded it, something which happens simultaneously to all the works of art which preceded it. This is quite a claim. The existing monuments form an ideal order among themselves which is modified by the introduction of the new, the really new work of art among them. The existing order is complete before the new work arrives. For order to persist after the supervention of novelty, novelty comes as something that supervenes. It has force. It's leopard in the temple. The whole existing order must be, if ever so slightly, altered, and so the relations, proportions, values of each work of art toward the whole are readjusted, and this is conformity between the old and the new. Here, Eliot is struggling with an idea of tradition as something that is static and fully present in and of itself, a sense of the new as something that is revolutionary and that threatens tradition or is threatened by it. How can he bring them into alignment? Well, through this very complicated process that he describes which gives the modern, gives the new, an extraordinary power to make us see and, in fact, to realign the relations among all the works of the past. This is, as I say, quite an extraordinary power. The implication is the new poet must, in some sense, rest authority from all those who have come before through a kind of imaginative and rhetorical violence, with insurrection in the temple of culture. Prufrock's sense of age expresses for him a feeling of belatedness and anxiety that he's already run out of time. His very youth, the fact that he's the only just now starting, makes him old. To presume would be to reverse this order, to dare to come before and to claim priority for his own work. As I say these sentences, I sound a whole lot like Harold Bloom as he describes the mission of any poet in his work on the anxiety of influence, and that is because Bloom's work is deeply indebted, precisely to Eliot and to tradition in the individual talent. These are questions I'll say a little bit more about next time as we finish discussing Eliot's love song and begin to talk about the Wasteland.


They're like, how can I sabotage Captain a little bit more? He's about to barrel it and move it. That's all. Cross one of those.


If, for an employer, government office, or just for your own peace of mind, you require additional authentication for your TEFL certificate, we have several options to choose from. One option is via OTTSA, who moderate and validate our courses. For a small fee of 25 US dollars, they will stamp your certificate with an additional seal of approval. Another popular option is to have a notarized copy of your certificate printed, stamped and signed by a Thai notary public as Thailand is where all our certificates are printed and posted from. This official copy can then be sent to you along with your original TEFL certificate. The fee for the notary public service is 45 US dollars. A third option is to have a copy of your original TEFL certificate authenticated by the ITTT registrar and then have it counter signed by a notary public at the same time. Once again, both the original certificate and the verified copy can then be sent to you anywhere in the world by post. The fee for the registrar verification and notary public authentication is 95 US dollars. Although most of our graduates do not require these services, we are in hand to get them sorted out if and when required.


Lesson 9. Business idioms, part 1. Idioms are short phrases with meanings that are different from the meanings of their individual words. Idioms are different from slang. Idioms are in-between formal and informal, so they are acceptable in everyday English conversations and emails, including some communication at work. Slang is very informal and is usually used in humor, music, and conversations between close friends. Formal English is used in official business, legal, and academic areas. Casual English includes idioms and is used in everyday conversation and emails. And informal English can use slang. You'll find that in humor and music. Slang is almost never used in business English, but idioms are often used in conversations and emails, so I'm going to introduce you to some common idiomatic expressions. This is the method we'll use for learning the idioms. First, look at the example of the idiom in context. Then, try to guess the meaning of the idiom. Then, wait for the answer and explanation. Why do I recommend these three steps? Well, it's important to try to figure out the meanings of the idioms from the context. This helps you think actively about the expressions and learn to understand new expressions faster. Ready? Let's begin! We showed the president twenty ideas for new products, but she didn't like any of them, so we had to go back to the drawing board. Does go back to the drawing board mean A, ask other people for advice, B, start again from the beginning, or C, reuse a good idea from the past? Go back to the drawing board means B, start again from the beginning. Designers and engineers often draw a picture of a product as the first step in its development, so going back to the drawing board means to start again at step one of a process. Number two. Our sales estimates were way off the mark. We'd projected sales of 15 million, but the actual numbers were closer to 9 million. Does way off the mark mean A, too optimistic, B, higher than average, or C, very wrong or inaccurate? Way off the mark means C, very wrong or inaccurate. This idiom comes from the sport of archery, where arrows that do not hit the target are said to be off the mark. The word way means very, so way off the mark means very inaccurate. Number three. The text for the article is almost perfect. I just want to tweak one or two sentences. Does tweak mean A, remove, B, make small adjustments, or C, make longer? Tweak means B, make small adjustments. I don't know the origin of this word, but it can be used as either a noun or a verb. You can say, I want to tweak one or two things, or I want to make a few tweaks to talk about minor adjustments. Number four. I need to submit a weekly report on this project, so please keep me in the loop. Does in the loop mean A, informed or updated, B, working hard, or C, in the office? In the loop means A, informed or updated. You can also say the opposite, out of the loop, if you are not being informed or updated about a project or news. Number five. Three people from my department are on vacation, so I've got a lot on my plate at the moment. Does I've got a lot on my plate mean A, I have a lot of responsibilities? B, I wish I was on vacation too, or C, I have nothing to do. I've got a lot on my plate means A, I have a lot of responsibilities. If you go to a buffet and you put a lot of food on your plate, then you are obligated to eat it all. So having a lot on your plate means you have many tasks or responsibilities. Number six. The rule of thumb is to reinvest no more than 30%, but it's okay if you go over that number occasionally. Does rule of thumb mean A, minimum amount, B, strict limit, or C, general practice? Rule of thumb means C, general practice. A rule of thumb is a general rule or general practice that may have exceptions in some situations. This is your thumb. If you use your thumb to measure something, you can get a general idea, but the measurement will not be perfectly accurate. So a general rule with exceptions permitted is called a rule of thumb. Number seven. Bob said I missed the deadline, but I want to set the record straight. I submitted my work on time, but he didn't check his email. Does set the record straight mean A, correct a mistake and say the truth, B, express a different opinion, or C, get permission? Set the record straight means A, correct a mistake and say the truth. When there is a misunderstanding or something was falsely reported, you should set the record straight. Say what is true so that people have the correct understanding of the situation. Number eight. We have until December to prepare these documents, so let's put them on the back burner for now. We have other more urgent projects. Does put them on the back burner mean A, send them back to their origin, B, give them low priority, or C, finish them quickly? To put something on the back burner means B, give it low priority. This idiom comes from cooking. The picture shows a stove with four burners. If you are cooking multiple things at the same time, you put the less important items which don't need your attention on the back burner. And you put the items on which you are actively working on the front burner. So to put something on the back burner is to temporarily give it low priority and less attention. Number nine. That program never produced any significant results, so the director finally decided to pull the plug. Does pull the plug mean A, get personally involved, B, improve the technology, or C, stop or discontinue? Pull the plug means C, stop or discontinue. The picture shows a plug. If you pull, remove the plug of your television from the source of electricity, the television will stop working. So to pull the plug on a project or program means to discontinue it. Number ten. Yesterday's meeting lasted four hours, but in a nutshell we decided to close our office in India and open a branch in China. Does in a nutshell mean A in an argument, B in the end, or C in summary? In a nutshell means C in summary. When you summarize a lot of information in a short phrase or explanation, you can begin the statement with in a nutshell. The picture shows nuts. The shell is the hard exterior of the nut. A nutshell is very small, so when you put a lot of information into a small number of words, you can say in a nutshell to express the fact that you are giving a summary. Number eleven. Laura didn't go to the meeting. Could you send her a summary of the discussion to bring her up to speed? Does bring her up to speed mean A, help her work faster, B, give her the most recent information, or C, find out what her perspective is? Bring her up to speed means B, give her the most recent information. If someone is up to speed, it means they are fully informed about the latest information. So to bring or get someone up to speed is to give them the most recent information so that they can be up to date on the current situation. Number twelve. Don't make any changes without talking to Peter. He's the one calling the shots on this project. Does calling the shots mean A, communicating with the supervisor, B, making the important decisions, or C, working very hard? Call the shots means B, making the important decisions. The person who is calling the shots is the one who has authority to decide what must be done, and other people must follow his or her instructions. Now take the quiz to put these idioms into practice, and come back tomorrow for your first progress test to review what you've learned so far.


Today's harsh criticism request was sent in by Kevin Hansen. He's one of my subscribers on the channel And he's been asking about me doing his draft for quite some time. So let's get started SCP XXX sleazy supermarket object class Euclid special containment procedures any area that has the cape. Oh my god When you have a typo in the very the first three Words I mean because we're not going to consider the object class or the special because that's a copy-paste job the first Three words you wrote. There's a typo Any area that has the capability of spawning an SCP instance is be monitored covertly by hidden cameras Disguised as objects in the area such as street lamps and fire hydrants. Okay, I'm gonna stop you right there You're using already far more words than are necessary Disguised as objects in the area is enough. You don't need to give me examples Due to high public visibility when active instances are to be put out of business via legal means quotation mark if possible and located Legal in this situation applies to any method that is used by the law. No lawful reason the shutdown To the shutdown the instance is needed. I think you mean to shut down the instances needed.    Just say the thing in the first place This is to be carried out by mtf November 28 tricky tycoons common methods of foreclosing SCP XXX instances included false foreclosure notes fake health inspections or purchase.  I mean also seriously Did you read this before you send it to me because you write digression, but I think you mean Discretion any successful raid of an scp xxx x instance should have it entire stock Be removed by the class personnel and be law if you don't after I read that out loud Understand exactly what your problems were and there are multiple problems with the sentence structure there I don't know what I can do for you. So I'm just gonna move on No personnel are to interact with an unlocked scp xxx x-1 instance or any instance marked as dangerous Any civilians fired due to replacement vents are to be agnostic I wasn't as yet before but after foundation intervention I now accept that there may be a God Pretty sure you meant amnesticized, but you know, yeah, let's see the foundation is now going to start agnosticizing people That's a thing And given a new job once the SUV is reverted to an oil supermarket the $2,000 provided to citizen Not citizens or not to the citizen, but to citizen Maybe confiscated or not at head researcher Phillips Decretion I'm just gonna pretend you said discretion there even though you said digression again And also if you think about it the idea that had researcher Phillips is just using the money to fund a lavish lifestyle Until he dies of course and then no one knows what to do with the money because the containment procedures are too specific Well, let's move on to then to the description here description. Oh my god. That is a long paragraph. Oh boy SCP xxx is an anomalous chain of supermarket grocery stores Boy, you better tell me in the next sentence what the anomaly is This is a regenerator by copying an existing supermarket and replacing it entirely referred to as a replacement event Okay, that's not exactly how I would structure things, but we'll go with it Anyway, this can only occur to currently operating supermarkets This can only occur to What the shit with all employees being sent a letter containing a document informing them of their termination and $2,000 or equivalent. What what is the point of that detail?  You don't need Replacement events occur every month at the minimum with the longest recorded time in between replacement events being exactly one year Well, sir, the statistics department has figured out that the replacement events occur at least once a month. Oh Excellent Also while we were collecting data we noticed that there was one year where no replacements events happened You just said it happened once a month. It's our full disclosure. We're not actually very good at math Oh boy These stores commonly sell anomalous food stuffs and goods referred to as scp x x x x dash one most instances of another dangerous to humans They're digestion or simply touch simply touch as opposed to complex touch So it didn't amnest to for short list of all acquired and blah blah blah Where are the staff security working in? Oh? Now we're talking about the employees instances are created at the same time as their respective blah blah blah instances are biologically the same as humans with the exception of lacking Unappendix and having a total of 12 toes so kind of like how this is similar to a good article with the exception that it's actually shit instances of scp xx x dash to Utilize dirty and underhanded methods to sell their goods.  We're getting edgy There's unknown whether I think this is the how the law works. What's the this in that sentence is unknown whether And it thinks this is how the law works what the law works as selling Dismembered limbs of a deceased patron. That's not a law. I mean there's a law against that I think what you mean is like they think it's okay to sell limbs of dismembered patrons Oh, man That's not a sentence. I ever thought I'd say in my life.  Are they the selling things dismembering people and selling them replacing supermarkets? I don't I don't know Or they are intentionally being underhanded scp xxx-2 instances display a market lack of knowledge To our reality. I think you mean of I think you accidentally need a preposition in there somewhere. Yeah Instances as people shut down after receiving any sort of legal warning legitimate or not so Everything that you've ever said about in the containment procedures or elsewhere About how to shut these down outside of legal warnings. You could just serve them a legal warning and they shut down automatically Okay, so You know, I didn't point this out in your containment procedures, but it applies here. Yeah, that was all one paragraph Why is that all one paragraph?  Stop it.  I found a single piece that was Useful that had intrinsic value and honestly, I suggest you just start all over again and work from that idea A frozen box of corn dogs corn dogs resembled cartoonish dogs with small legs Corn dogs were sentient and had intelligence comparable to average dogs dogs require no feeding your care Dogs are inedible.