Hello everyone, my name is Carol Werner and I'm the Executive Director of the Environmental and Energy Study Institute. And I want to welcome you all here to this briefing this afternoon to look at the whole issue of carbon accounting and vehicle fuels and to go through and we have an opportunity to provide a research update to really look at this issue in terms of looking at the latest information that is available that takes into account all of the different changes that have been happening with regard to inputs, technology changes, all sorts of exciting changes that are really making a difference in how we measure an account for carbon. And it's very, very important as we move forward in so many different areas as we look at ways to address greenhouse emissions, how we address climate, how we address energy in this country to make sure that we really have the latest information and are really looking at things in a holistic way. So we are very privileged this afternoon to have a terrific panel that are doing work in this whole area that is really the sort of the cutting edge of research, the people who are really the go-to folks with regard to research in this whole area of looking at life cycle analysis, looking at the models that have been developed and put together and are continuously evolving and being updated. And our first speaker this afternoon is Dr. Michael Wang, who is Senior Scientist for Energy Systems at Argonne National Laboratory, and he has been leading the ongoing development of Argonne's GRIT model, which stands for Greenhouse Gases, Regulated Emissions and Energy Use and Transportation. Michael has been working on this model as seen as the premier modeler and analyst with regard to this whole issue has been working with not only with folks throughout the United States and state and federal agencies with regard to this, but he's also done much collaboration with automotive companies, energy companies, other universities, research institutes, not in the United States but also around the world, and particularly in Canada, Brazil and the EU. So I would at this time like to turn the podium over to Dr. Michael Wang. Carol, thank you very much and thank you EESI to organize this briefing. It is a privilege to come here to talk to everybody about our result from the GRIT model. And as you can see from this slide, the GRIT model is a model of biofuels that we have petroleum based fuels, nitric gas, electricity for electric vehicle applications, hydrogen for fuel cell vehicle applications. So biofuels are one of the many fuel options we include in our evaluation for the Department of Energy and many other agencies. So today, of course, the topic is about biofuels, core ethanol and cellulosic ethanol. So this is the flow chart to show you the system boundary we include in our life cycle analysis of ethanol as this is core to ethanol as an example. So as you can see from this slide, we include most, if not all, the activities included in the life cycle of ethanol production. There are three key stages I cover today, farming ethanol production and direct and indirect lead use change as you see here. There are two other issues, vehicle usage and the core product from ethanol plant. These two are important issues as well, but today I'm not going to cover these two issues. So for our farming stage, this chart, ethanol production, this chart shows you the historical trend of ethanol plant energy use from 1970s all the way to 2010. Of course, we all know the US ethanol program started in 1980. So back then, the oil studies and the ethanol plant energy use data, as you can see, the energy use could be as high as over 100,000 BTU or per gallon of ethanol produced. But that has been reduced to no 30,000 BTU per gallon of ethanol produced. If you look at recent trend, the downtrend continues. Of course, Dr. Stefan Munoz is going to show you the details of technology advancement, so what's behind the downtrend in ethanol plant. This chart shows you the chemicals used per busher of ethanol produced over the last 40 some years. So again, we see a downtrend for 40 other use per busher of coal harvested. Of course, for people, I was far behind. So this chart shows you the three key areas I covered, basically farming, ethanol production, direct and indirect land use change. These two, the vehicle use and the coal product, DGS, I'm not going to touch on. And as I said, this is the chart of ethanol plant energy use in the last 30 some years. And of course, the downtrend continues. And Stefan is going to tell us more what's behind the downtrend in the last 10 years. This chart shows you the chemicals used for coal farming. So over the last 40 years, we've seen a downtrend of chemicals used per busher of coal harvested in the U.S. And there are several key reasons for this downtrend. And so those are some of the key factors brought into our life cycle analysis for coal to ethanol. And this chart shows you the greenhouse gas emission sources for coal-esanol pathway. For example, the ethanol plant is still the largest greenhouse gas emission source for coal-esanol. And that's because we still use nature gas as our energy source for steam production ethanol plant. And the next significant source is M2O at CO2 from 14 hours of use in farms. So this together is 14 grams per megajoule. And at your wood pot hut, the CO2 emission is from lime in the field. The world evaluate, in fact, we re-evaluate CO2 from lime in grid. There are some trends that we may overestimate CO2 emissions from lime. And there are some other sources as you can see from this power chart. So lead use change, we develop a module called C-Club inside of grid. So C-Club is a module to generate greenhouse gas emissions for lead use change specifically. But C-Club take input from two imported models. For lead use change, we are not primarily on produce G-Type model. That's our general equilibrium model to generate lead use change for a given value of ethanol production. On the other hand, for soil carbon changes, we are not on the saturated model that develops in Colorado State University with support from USDA and EPA in Colorado State. So these are the two imported models we are not on to simulate lead use change for biofuel productions. The C-Club, of course, take into account different teenage practices and different lead conversions to generate lead use change results. This is a summary of the lead use change GRG result for coral ethanol from 2008 up to 2014. So as you can see over time, there are many organizations put tremendous amount of efforts to address lead use change. You see the downtrend from the first study all the way to 2014. But variations still exist. So that question is what are the causes for this downtrend? There are several factors to affect lead use change GRG emissions. Crop yield in existing crop lead versus new lead are the global yield differences and the potentials. So these are important factors brought into CGE models to generate results. The next group is available lead types. We know crop lead, grass lead, forest lead, wet lead, etc. So different leads can roll into crop lead to grow corn and other grains. And of course in the last several years, significant amount of effort made into those models to update the lead availability in those models. And there are some important economical parameters in the models. For example, price elasticity, specifically crop yield response to a price, food demand response to a price. So these are a few important factors to affect CGE model output. Then how to address animal feed in the CGE models. This has been an issue from 2008 all the way to 2012. And now my opinion is all the models now have a good handling of animal feed in modeling. Of course soil organic carbon change from lead conversions based on century models as some other databases or even IPCC tier one, tier two emission sources. Of course, we see variations still exist even as of now. If you look at California's 2014 result versus some other recent result, we still see a range of 10 to 23 grams per megajoule. But even more so, if we look at the EPA's 2010 result, we see three numbers and of course EPA used the 2022 result for the final RFS2 ruling. But the EPA generates 2012 at the 2017 numbers in my opinion for model configuration. So the question of course is why there is a significant reduction from 2012 to 2022 for lead use change.  So that's why your eye conclude the 2012 at the 2017 numbers are not as renewable numbers for policy purpose. But it is for model configuration. Of course, this has generated some confusion in the biofuel debate. So to roll all the results into a grid, this is the summary of what we see from grid modeling to put all those critical factors in. So as you can see, core ethanol versus gasoline, we see even with lead use change included, we see a reduction in 25 to 33 percent range. And of course when we move to sugarcane, core stalwarts, switchgrass, miscances, the so-called second generation biofuels, we have significantly increased GHG reductions. And some of us may still wonder the energy balance debate of core ethanol, whether core ethanol has positive energy balance or negative energy balance. And here is our great simulated result. So we conclude because the advancement in farming as an ethanol plant, core ethanol indeed has a positive energy balance. In fact, the energy balance is 10.1 megajoule per liter of ethanol produced in terms of energy ratios by the 1.6. Of course, other second generation biofuels has a larger energy ratio. So some new trend for ethanol production. We know in the last several years, ethanol plants started to extract oil. And they had to use the extracted oil for biodiesel production. So we now config the biodiesel production from corn oil in great 2014. So you're going to see great 2014 in two weeks. Another new trend is called production of corn grain based ethanol and the store based ethanol. We've seen the point of plants just came online a few weeks ago. And this is where the two plants are located. So you have some hate integration to benefit both side of the fence. So we are examining this new unique core production of ethanol in great 2014. So now I quickly go through our result for petroleum to guessing. So this flow chart summarized, sorry, I'll focus on the screen. So this flow chart summarized our system boundary for petroleum to guessing. Of course, we include all the major activities for guessing the pathway as you see in this flow chart. And in the last year or so, we start to address a few critical issues for petroleum fuel pathways. For example, we spent a considerable amount of effort to address petroleum refining to guessing diesel jet fuel and others with LPA modeling effort to address refinery efficiency and emissions and we have two general articles published to address to document our findings. And for oil sand, we update energy use at GHG emissions of recovery activities with Stanford University. And we address the lead disturbance related to GHG emissions with UC Davis. So the results are brought into a great 2014. At this point, we are analyzing some other crude types. For example, the last crude production in the Balkan play and the last crude production in Eagle Ford play, especially the nature gas flare in the Balkan play. So we anticipate to have a result in a few months to roll into a grid. So this is a summary of our petroleum refining modeling results. So this is a product specific efficiency. So here you see the guessing efficiency, diesel efficiency, jet fuel efficiency, residual oil, LOPG and COG. And the variation represents the variation of the 43 U.S. refiners we simulated in this effort. So you'll put this into a grid. Here is the result for guessing. So with the update, we see the guessing carbon footprint is about 95 grams per megajoule. And on the other hand, if we look closely at the oil sand result, so with our collaboration with Stafford University at UC Davis, we addressed 25 oil sand projects in Alberta. So here are the project distribution in Northern Alberta. So we have both mining operations and in situ operations. And here are the results from this effort. So the table above grid 2013 is what we have now. The new result is grid 2014 update as you see. So we see significant or somewhat increase in oil sand related pathway carbon intensity. For example, for mining operation, we increased from about 32 grams to about 41 to 31 percent depending on the type of product. For in situ, we increased from 35 grams to about 43 to 51 grams. So these are the new results you're going to see in grid 2014. So just quickly in conclusion, technology improvements in ethanol plant and coral farming have helped reduce coral ethanol GHG emissions. Lead use change modeling for coral ethanol has improved in the past six years with reduced the moderate lead use change GHG emissions. But on certain days, the confusions remain as the debate continues. As we all know, the debate continues. So this is where I hope that the community together can address this together because we know what are the key factors drive the result differences. And the community agencies together can get some of the issues resolved. So we kind of have some of your better results and some more transparencies in what are the critical factors to cause this important result. And all the other high transition to say, you know, single biofuels will result in greater GHG reductions. Thanks you for your time. Thanks so much, Michael. And I think as you said, there have been a lot of changes. There has been a lot of uncertainty, a lot of confusion and much, much discussion. And it is really important to see how we can move forward for a common good and to really make sure that we're also putting things in their appropriate context. Our next speaker is Dr. Stefan Miller, who is a principal economist with the Energy Resources Center, University of Illinois, Chicago, where he is directing research in the areas of biofuel and bioenergy at the Energy Resources Center. This work really focuses on resource assessments for biofuel and bioenergy production processes and their life cycle analyses. He's also working on a geospatial platform to help assess land use changes at a field level scale that can be very useful then in terms of this tool being used by all sorts of users. So as they also seek to manage risk. Dr. Miller. Thank you very much. Give me a second. I got to pull up the presentation. Okay. Well, thanks for having me. I, so basically I want to fill in a little bit of the, you know, elaborate a little bit on what Michael had said. Explain a little bit more on the technology side and why what's behind the sort of the lower trend in greenhouse gas emissions or life cycle emissions from corn ethanol. Well, basically we've seen protection technologies, new production technologies going into the, into the corn ethanol process, both at the plant level and during feedstock production. The main drivers for that were the RFS-2, right, which clearly for renewable fuels mandated certain energy-efficient technologies like combined heat and power technologies. It's also a state of the innovation cycle we are with corn ethanol, right? It's really a relatively young technology compared to petroleum refineries, right? And young technologies have a lot of potential to grow, to adopt new technologies to improve efficiency improvements, and we've seen that. And thirdly, lately, ethanol plants have been productive, have been profitable, and they have invested that capital into energy-efficient technologies and new processing technologies. And lastly, I want to mention that there are technologies out there that can prove and ensure long-term the sustainability of corn ethanol production, and we need to look into those as well. This is a list that's hard to read, and it's hard to read because there are a lot of new technologies going into ethanol plants, right? I mentioned combined heat and power technologies, which are really traditional industrial energy technologies, energy efficiency technologies. But there's also new processing technologies like selective grinding technology, protein recovery, more sophisticated animal feed production at the back end, which is a very important point for corn ethanol plant, is the animal feed production. It's a big component, and I'll come back to that later. And then that's on the plant side, just on the ethanol plant side, then on the feedstock production side and the corn production side. We've also seen large pushes in technologies, new hybrids, GPS technologies, order steer, on tractors, variable rate, nutrient applicators, nitrification inhibitors that prevent runoff of fertilizer, so it's been a very vibrant and active field in that space. And what have all these technologies brought? Well, on the plant side, we've seen a significant reduction in thermal energy use, meaning natural gas use. Going back from just in 2001, we used 36,000 BTUs to produce a gallon of corn ethanol. In 2012, we used 23, actually 24,000 BTUs per gallon. During the same time, we've seen a 7% yield increase at the plants. Electricity use has also gone down during the same time frame. And one of the technologies that Michael mentioned that we've seen rapid adoption in is corn oil separation, right? The production of a separate fuel product because most of the corn oil goes into the biodiesel market or the animal feed market from that same feedstock. We've also seen a reduction in water use from about 5 gallons only a couple of years ago to now about 2.5 gallons per gallon of ethanol produced, 2.7 gallons per gallon of ethanol produced. One point I want to make is obviously a huge supporter of the RFS-2 and have provided off and on data and review. You know, the new modeling in my opinion is needed or an updated modeling is needed at EPA to reflect these new numbers. Back when RFS-2 was modeled, they used the latest numbers, they used good numbers, but it's a very rapidly advancing industry and technology and we need to update the numbers there. I've just shown you what happened on the plant level. Well, on the corn feedstock level, right? We have seen, no surprise, record yields this year. We're going to be expecting 170 bushels per acre on average across the US, across the 2,500 counties that grow corn. And that is significantly up from the five-year trend, but even last year was actually very high yields, very high yields. And even during the drought year I want to mention in 2012, we did not have a crop failure as would have been expected from the prevailing weather pattern. We still grew a very sizable and robust crop back then. And that is due to the new technologies, right? The new seed technologies, the new seeds, and the new economic practices. A couple of technologies worth mentioning here, especially corn kernel fiber to ethanol. New enzyme manufacturing, new enzyme products really make it possible to turn between 6 or 8, sometimes potentially 10 percent of corn kernel fiber to turn corn kernel fiber into about 6 or 10 percent of additional ethanol at traditional starch ethanol plants. And that's cellulosic ethanol, right? Eligible for D3 RINs. We've seen Quad County processors adopting their technology just start up in July very successfully. Remember when I told you that corn oil separation was very rapidly adopted within five years by almost all plants? There is a potential for that technology to be rapidly adopted as well because it's ready. And the potential with that is one billion gallons of cellulosic ethanol just out of the existing fleet of current starch ethanol plants. Example two is corn replacement feed. I want to talk about that just for a little bit because it really speaks to the land requirements for corn ethanol production. What's been happening is that higher corn yields have also increased the amount of plant residue that is left after the harvest, and it's becoming a management issue, so a lot of growers have started to remove it, and many times it goes into bedding or it goes into animal feed. Into an animal feed, if you pre-treated it with 5 percent lime to increase digestibility, it can go into an animal feed. Obviously the removal rate varies by region. There's a certain sustainable removal rate beyond which it does not significantly impact soil health, and we have to be very mindful of that, that we do not deteriorate soil health. But the perfect or the appropriate removal rates can be pretty easily determined. So if, for example, at 170 bushel per acre yield, we remove 30 percent of corn stover, that's equivalent to producing an extra 50 bushel of corn from that field. Again, it's like getting a 30 percent land use credit. That is animal feed grown on land. Basically, we don't need this land to grow this portion of animal feed. It's a land use credit. The same is true for DDGs, and in my opinion it's very poorly understood in the press. I repeatedly read articles in major publications that say the government diverts nearly 40 percent of the US corn crop for ethanol. That is true, but it's only the partial truth, right? And it's basically an omission of the other half, and that means that there is about 40 percent, it's probably closer to 35 percent of the corn crop is diverted to corn, but if we account properly for the land saved from animal feed production, right, the net acreage is much closer to 25 percent, and that's under conservative yield assumption, and not under the high yields we've seen this year and last year. In this case, it would be much lower, it would be closer to 19 percent of corn being diverted to ethanol, counting the land use credit from DDGs. And I want to conclude my presentation with the thought that I said earlier. I think it is important to prove and record the sustainability of the industry, whether this is during RIN verification as the EPA has instituted quality assurance programs that verify that a RIN is truly a RIN and prevents fraud. So we all know if you buy a gallon of renewable fuel, it was produced under renewable conditions and it is what it is, very important. There are also third party verifiers out there, there's tool being developed that allows benchmarking of fields, farms, to see where they rank in their sustainability efforts and their certification agencies out there like international sustainability and carbon certification that certified a lot of ethanol going into the EU back when there was still a market before the EU imposed a tariff. But I think sustainability efforts should be supported. With that, I'm done. Thank you. Thanks very much, Stefan. I think it's been very important in terms of hearing from Michael with regard to thinking about how new data has been very important in terms of updating the modeling process in terms of looking at life cycle analysis for biofuels and also for petroleum and hearing from Stefan with regard to what else going on with regard to changes in terms of technology and land use. Now we're going to hear from Dean Drake who's really going to be looking at the changing economics that are involved as well. And Mr. Drake brings an interesting background in terms of having spent 34 years at General Motors, most of which was in corporate public policy and while there helped organize or initiated GM's conference on global warming that goes clear back to 1989. He's been involved in terms of looking at the development of various policies that have been involved in the President's Council on Sustainable Development as well as being involved in projects with Yale University's Next Generation Environmental Management Issues. He is the President of the D4 Group and through which he is now doing so much of his economic analysis work. So we are very pleased to welcome Dean Drake. Well thank you for having me and as by far the oldest of the presenters. I hope I can get along with his new technology. As was said I have been around for a while, worked for General Motors for 34 years, retired in 1999 which is far enough back that I've been away from General Motors longer than the statute of limitations on most crimes. In 2007 I organized a consulting company where I incorporated or brought in a lot of my fellow retired people from General Motors that I worked with and I won't go through their qualifications because I have to get through a lot of slides in 15 minutes. So I'm trusting you can read faster than I can talk. But basically together the people in the D4 Group plus Tom Darlington of AIR and Gary Hurwick together we have about a century worth or more of experience in the automotive industry and some of our people have experience in government and academia as well. And what started this whole thing is that we were talking several years ago about what the fuel of the future might be and that led us to apply for a grant to the state of Minnesota which graciously granted us some grant money and we started looking at this issue. And a lot of strange things happened along the way as we were looking at this issue. One of the things if you're one of these geriatric ninjas like myself you realize the biggest danger are things that you absolutely know to be true that have changed. And what we found coming at it from kind of an independent perspective and starting to look at this whole issue of ethanol and corn ethanol in particular what we found was nothing but assumptions that we had to go back to the drawing board and change. I'd like to start out first of all by talking a little bit of the fundamentals if you're going to look at the economic benefits of ethanol. Now there are several components. The first one obviously is how much does ethanol cost per gallon compared to gasoline. If gasoline and ethanol cost the same we refer to that as volumetric price parity or VPP. However since 2011 ethanol has sold for less than gasoline by a substantial amount. So that results in a net benefit for ethanol. The second thing is its octane boosting potential. Octane for those of you that aren't familiar with it is basically a fuel's ability to resist pre-ignition. The whole idea of a spark ignition engine is you want the gasoline air mixture to fire when the spark plug tells it to. If the fuel explodes before that you have a problem. So the measure of how well a fuel resists pre-ignition is called its octane rating and no fuel is perfect in the case of gasoline it inherently has a low octane rating. So it has to be boosted somehow. They used to do that with lead but found out that was not such a good idea. Ethanol inherently has a very high octane rating, well over 110. And the idea of octane is important because when they took the lead out they had to reduce the octane rating of gasoline which meant if you're an old guy like me remember when all the engines had to be detuned to run on new unleaded gasoline. And so there's a potential efficiency loss that was incurred there that now that we're interested in greenhouse gases in mile per gallon we need to get back. And then finally there's the energy penalty with ethanol. As you all know ethanol sells for or has about 32% less energy than regular gasoline but only sells for 19% less. So it's important and I'll be discussing a lot energy price parity where a dollar's worth of ethanol contains the same amount of energy as the dollar's worth of gasoline. That's kind of the holy grail in ethanol economics and surprisingly we're getting there. So first of all why does ethanol now cost less than gasoline? And this is kind of an interesting story and this is kind of where our group started. If you take a look at how ethanol and gasoline prices tracked between the beginning of the RFS-2 and the end of 2011 they pretty much tracked the same. There are some places where there are gaps but if you average it out over that period they're like within a couple of cents of each other. However, beginning in January 2012 ethanol became cheaper than gasoline on a volume basis and averaged about 52 cents a gallon and they continued to be different. And being kind of a curious person and in the economics we wondered why that happened and the one thing that correlated was the expiration of the tax credit for corn ethanol and the lifting of the tariff on imported ethanol at the end of 2011. That seemed to change everything. Well if you start looking at the economics of corn ethanol producers you can kind of see what happened. Well when they started out it was not really a very profitable business but over the years they managed to get the return up and then the tax credit and tariff protection went away. They had what economists might think of as a near death experience. As you see their profits for the next couple of years dropped below their capital costs and what this church doesn't show is where it looks like it went down to zero it actually went negative. And through a lot of innovation which was alluded to by the earlier speakers the corn ethanol producers managed to return to profitability selling their ethanol at an average of 52 cents a gallon less than gasoline. This is one of those interesting times when the invisible hand of the market has a green thumb because all of the things that they had to do to improve their bottom line happened to be things that also improved their greenhouse gas footprint. So this and I won't go into this because I think the other speakers were far more knowledgeable in this than I am. But it's interesting to note that the Institute for Transportation Studies at the University of California Davis never known to be a real friend of corn ethanol even notices the same trends that new processes have been adopted in 80% of the plants. The plants are more energy efficient now. There was also a great consolidation of plants during the period of no profits right after the tax credit and the tariff protection expired. So a lot of things happened what economists call creative destruction and it resulted in a much different corn ethanol production infrastructure than existed before 2012. Now at the same time and because of both the economics of ethanol and the RFS the oil industry kind of modified its processes. It used to be that oil companies refineries would produce gasoline that could be directly shipped to the retailers. They don't do that anymore because to sell it legally gasoline has to have 87 octane what's called anti knock index or AKI. And what the oil industry has done is created instead a blend stock that has 84 AKI. They ship that through the pipelines to blenders and the blenders then add 10% ethanol to it with its higher content octane content and boosting the octane up to the legal minimum. So really any of the gas you buy today really isn't pure gasoline it's 10% ethanol or what we refer to as E10. Because as I'll indicate in a minute that's the lowest cost per unit of energy or BTU that you can make is blending gasoline with 10% ethanol. The infrastructure is now tailored to it and the customers by and large universally accept it. In other words if it was decided to eliminate ethanol and ethanol disappeared from the world tomorrow there would be a tremendous problem because ethanol is now essential to making motor fuel. The stuff that comes out of refineries can't be put in the gas tanks. So that's another thing that changed I thought was interesting. The bottom line here is that like milk studies about the economics of ethanol tend to have an expiration date. You probably shouldn't use it unless if it was done before 2012. In fact some of the government models that model the economics of ethanol actually have built into them the old assumption that ethanol and gasoline cost the same per gallon. They don't anymore. And even if the study was released after 2012 you have to kind of dig through it. There's the NERA study that API put out and I have a lot of respect for NERA. They're one of the really good economic analysis firms and they published a report in October 2012. Well it turns out that the phase one of that report that everything was based on was actually published in November 2011 before anybody foresaw what the effect of the elimination of the tax credit and tariff protection would do to the economics of ethanol. Similarly the latest CBO report has 21 studies in it that were published before 2012. So if you go through that report and take a sharpie and mark out the findings from all the older reports it's a much different report with much different findings than the one most of you have read. So now I want to go on to octane because that's really what I'm excited about as a former engineer, an auto person and I'm kind of nuts about cars. I would like to see more of it. Ethanol, well first of all octane can be done two ways. As I said, blend stock is 84 octane, can't be used in the cart. It has to be boosted at least another three octane points to be legal. You can either do that at the refinery or you can do it using ethanol. If you do it at the refinery it's going to cost money to take that lower octane blend stock and boost it. Now there's a number of different studies. How you calculate what that cost is is kind of a controversial subject and the oil companies aren't exactly forthcoming on those sorts of things. So there are three studies that I looked at. The one that we did which came up with 11 cents a gallon to get that additional three octane. APF economics calculated using different methodology at 11 to 17 cents and hard energy came up with 14 cents. So I think our 11 cents looks pretty good, all things considered. So that's what it would cost if you didn't have ethanol. Now if you use ethanol and add that 10%, you can boost the octane by three octane points, making the gas legal and reduce the price of the pump by 5 cents a gallon because ethanol is cheaper. Now, so that's the difference at the pump price. If you use pure gasoline it's going to cost 11 cents a gallon more than blend stock. If you use ethanol it's going to cost 5 cents a gallon less than the blend stock. So even after you consider the energy difference that I talked about, right now it looks like gasoline to the consumer is about 6 cents a gallon cheaper because ethanol is used to boost octane rather than trying to do it to refinery. Now you multiply that over 120 billion gallons and, you know, Everett McKinley Dirksen said a dollar here and a dollar there and pretty soon you have real money. So this octane benefit can even be applied to higher blends of ethanol. Now there's the highest blend right now for sale is E85 or 85% ethanol and it's never been a value proposition for consumers. But some enterprising ethanol producers, now to make fuel ethanol you have to denature it because after all if you didn't people would be more likely to put it in their cocktails than their gas tank. So they denature it by putting in, they are companies do, by putting in blend stock by 2 to 5%. The ethanol producers, they do it by putting in something called natural gasoline which is actually a natural gas compound, it's a liquid, that has very much similar properties to gasoline but it only has about 40 to 50 a.k.a. octane. Of course if you insert that into ethanol that doesn't make any difference. So these ethanol producers said why don't we put more in, create E85 and sell it directly to retailers and that's happening all over the Midwest. In Michigan they call it the yellow hose program and so what happens when you do that is we had calculated you needed to sell E85 at 72 cents a gallon less than regular in order to make it a good value proposition. The yellow hose program, it sells for a dollar a gallon less than regular and this is not hypothetical, that picture I have happens to be the ethanol or the E85 pump nearest me and they've been running ethanol E85 at about a dollar gallon less for months and months. That's where I fill up my FFV because I'm basically very cheap. Now it turns out that this is largely the octane effect plus the advantage of selling directly to retailers but if the oil companies were to use a very low octane gasoline instead of blend stock to make their E85 they could be selling it for a buck a gallon less than a regular too and the stations that are doing that by the way are finding improved profits as a result of switching to the stuff that's produced with the natural gasoline. So that octane boosting effect, the economic benefits of boosting octane with ethanol go all the way up to E85 but the real question we ask is what's the sweet spot? What's the best blend? I'll get to that in a minute but first I want to point out I mentioned energy price parity earlier. Now it turns out that depending on who you look at or what studies you look at that may happen soon or may happen later but if this is a chart that shows ethanol, price of ethanol as a fraction of the price of gasoline. Now if you get down there you see my energy price parity line the University of Missouri estimates that the price of ethanol versus gasoline will fall and actually be below energy price parity this year. The CBO in their report and you have to go to a footnote to find this because they don't really trumpet it but they looked at futures prices and decided that by 2017 the price of ethanol would be about the same of that as gasoline on an energy basis. So here's two different groups coming up with basically the same idea. Sooner or later ethanol is going to be selling cheaper on an energy basis than gasoline and that of course changes everything. Almost anything you put ethanol in will be cost effective but then we ask ourselves what's the most cost effective way to use ethanol and the most cost effective way is to maximize its octane boosting potential and now there's various names for what you might call this concoction. We like to call it eco performance fuel or EPF. I hope to get royalties on the name tag maybe augment my pension but the industry auto industry says that what they want is 98 what's called research octane number which roughly corresponds to the 93 octane that in premium gasoline today. Now ideally you'd want this to be made with proven components because the history of boosting octane has not been good. They've started out with lead then they used MMT then they used other compounds they all got banned for environmental reasons. It's really nice if you could start out with something that we know what the environmental effects are. So ethanol fills the bill for that. It's already successful in E10 so if you add more to the gasoline to the blend stock to bring the octane up to 98 RON to where premium is you would create a fuel that would allow the auto manufacturers to increase engine compression ratios and improve efficiency meaning lower CO2 emissions, better mileage but also they're finding and the National Labs have been doing a lot of work on this when they actually run this in the labs they're finding that it does more. It enhances combustion and they're not really sure exactly why this combination does that but there's a lot of excited engineers out there wanting to find out why. At the National Labs they found if you would use this new fuel and optimize the vehicles with higher compression ratio you would have equal or better fuel economy about 7-10% lower tailpipe CO2 emissions and what makes us engineers excited double the engine torque. So now you have a choice of either improving the performance of the vehicle or downsizing the engines to get even better fuel economy and lower CO2 emissions. Now it's cleaner as I mentioned because lower CO2 emissions and also lower toxics because in order to take gasoline at the refinery and boost this octane you've got to use a lot of compounds that while they're not benzene they are very similar to benzene so the advantage of ethanol is you avoid that. Also as I pointed out it's cheaper, cheaper per gallon now the price is going to go down even more so you can see that if you went from let's say 10% now to 30% in EPF you would be boosting the octane to what the auto industry wants and you'd be lowering the price. Now assuming the oil industry would then pass all of that on to the consumers which is another discussion entirely I don't have time for the consumer if you did it today would start or in the near future would see about 20 cents a gallon less than regular gasoline today and they'd be getting a gasoline that had the octane of premium and that would increase by 2035 to 40% or to 40 cents a gallon a substantial savings at the pump. Now bottom line is this is a low cost way to meet our national energy goals reduced green oil dependence and also lower greenhouse gas emissions you've got a number of programs that have been instituted to accomplish this but most of them cost the consumer money and just as a quick comparison if you take a look at an electric car versus eco performance fuel Tesla it costs about close to $500 for each ton of carbon dioxide that you reduce. Now okay wrap up real quick only one more slide EPF it's three to nine dollars savings so I won't go through this real quickly other than to say if you compare it to other renewables ethanol is unique in that while no renewable completely at this point of time replace all fossil fuels only ethanol displaces both displaces fossil fuel by about the same amount as some of these other renewables but also saves the consumer money and in that regard if we can maximize its utility through EPF consumers will save more money the economy will be stronger and we will be using a whole lot less oil thank you. Thanks so much Dean well that was a really good sort of trip through a whole lot of questions I think that have been that was a problem with the microphone right so our apologies anyway in terms of looking at a sort of a lot of the issues I think around which there has been a lot of confusion and also questions that have come up and certainly that we at ESI have been hearing over the last few years and of course one of the things that I always think is so interesting too is with regard to thinking about biofuels refineries thinking about ethanol plants are all of the revenue streams all of the products all the co-products that really come out of that which I think is not well understood and of course Stefan and Michael also talked about that as well so at this time let's open it up for your questions and of course I know while some of the slides were difficult to see they will all be posted on ESI's website and of course the video made available to you any questions and if you could identify yourself please Doug go ahead I get that the natural gas lane is low octane because you've got a hundred or so of D85 anyway is the energy content the same? number one, the other question related to your presentation 32% hit on the energy seems to be I'm not sure I've ever seen a number that high that the energy debits that high we've always used 23, 25, something like that so it seems a little aggressive but tying into the natural gas and would you still have to debit it that much depending on the energy content of the natural gas lane so I understand the octanes give away but how does that affect the energy and then related now that E85 is legally described by ASTM as having as low as 51% ethanol, how does that affect all of that so I just think I think we're discounting too much you know as biofuel advocates where they acknowledge that the BTU is lower but I think we're giving away too much because of those factors so that's what I was wondering about question right there is it on? wonderful to your first question about natural gas lane it was very difficult to find information on the energy content of natural gas lane but what I did find tended to indicate it had about 90% the energy of oil so when we did our calculations we factored that number in on the costs because we always adjusted for energy as far as our energy content numbers I'd be interested to see yours those were the numbers we came up with using the standard 74% E85 actually being 74% ethanol and tried to factor in the denaturing now in our case we use the lowest amount of denaturing 2% it can go up to 5 and that impacts the amount of energy in the final product so basically that's what we did there and like I said hope to see your calculations and see how they differ from ours maybe it's just a matter of using the lower denaturing number of 2% and I'm old so I forget the third part of your question okay well that's an interesting thing I didn't have time to put in my presentation what I did the calculations what the ethanol producers are selling in the yellow host program is not really E85 or even E74 it's E70 because that right now in Michigan is the lowest you can go and legally sell it as E85 obviously if you could turn E85 into an even lower percentage like as you say E51 and the oil industry could use start using a low octane low cost blend stock that would be similar to natural gasoline because not a lot of that natural gasoline around and you don't want to drive up the price but there's no reason you couldn't use a much lower octane gasoline that would be a lot cheaper you could start marketing all E85 or now E51 much much less because already with this E70 you can do it at a dollar a gallon less than regular so you could go lower than that with E51 okay Stefan or Michael did you want to comment or? I think 32% is reasonable I think what you mean is pure ethanol versus pure gasoline and we own the BTO contact in ethanol versus gasoline of course now we can use E10 as the batch mark that's a little bit lower heating contact versus E100 I have not seen any efficiency again in E10 or E85 so as now as you do not have efficiency again on the vehicle side your BTO contact difference is the main driver okay any other right here okay here comes the microphone my question is on the price of ethanol and is that driven through you said the tariffs have expired is that driven through what's coming in through Brazil and if we actually do hire contents of ethanol in our vehicles outside of the fuel compatibility in the fuel systems I'll leave that for another discussion where do you see the price of ethanol going because I'm assuming that arbitrage would close I think one of the things that Dr. Walton is currently working on in a follow-up study for Minnesota on this very concept is the issue of volumes and that's very important because there's going to be some point at which the use of ethanol will expand to the point it starts driving things prices up but there seems to be a lot more potential for conventional ethanol or corn ethanol in the United States so considerable ability to expand ethanol production cane ethanol production in Brazil and one of the things that I found surprising is that also in Brazil they are beginning to use more corn ethanol because there seems and I'm not a farmer you know I work for the farmers but I can't even grow a house plant but as I understand it the bean I think it's bean crop corn crop can be grown in the same field because they harvest the bean crop and then there's time to grow corn so they're even building corn ethanol plants in Brazil so our preliminary studies indicate that for the amount of gas ethanol that would be needed for eco performance fuel given the timeline that you would have the gradual ramp up it doesn't look like you're going to hit the point at which the price of ethanol is going to start ramping up because there seems to be sufficient you know given enough time to develop it and that's important because you have to have the time for these things to develop that you shouldn't run into that problem use much more ethanol though and you could run into some price spikes but no no my discussion is for spark ignition engines only there is a whole parallel effort on using gasoline in compression ignition in diesels and what's interesting about that is that they're talking about a very very low octane gasoline almost the kind of thing you'd want to blend into E85 but using it in a diesel if you're interested in that sort of thing there's a book engine fuel interactions that's available through society about automotive engineers written by chief researcher Saudi Aramco that discusses this issue of future fuels and he says that you know the future fuel for spark ignition engines is a high octane gasoline and that ethanol would be important in making that so this isn't a wild and crazy idea but it ties in with the need then to have diesel engines that run on very low octane and that way you maximize the amount of energy you can get out of a barrel of oil okay thank you Bill go ahead do you want to identify yourself okay the sweet spot is for engineers is 98 research octane number which is equivalent to our today's premium that has a 93 anti knock index the anti knock index is an average of research octane number and motor octane number divided by two in high technology engines direct injection into the cylinder the only one of those two the only one of those two that count is a research octane number so that's in the rest of the world they use that instead of the anti knock index so the research octane number is the one to focus on and that would be 98 wrong and it turns out that yes you know it's kind of one of these curves that goes like this and so at 98 wrong there really isn't a lot more to be gained you know that gets you up to around 12 and a half 13 to 1 compression ratio something that hasn't been seen since the days of the 69 Corvette and creates a very very efficient engine and going much more than that because diesels have come down in compression ratio they're down around 16 to 1 so what happens is technology is kind of converging into very high compression spark ignition engines and lower compression diesel engines that could be built out of the same engine block engine transfer line the old diesel yes we tried it it didn't work but then again this is a whole new technology out there plus the engine would have to the gas engine would be reinforced to take the higher compression ratio well this whole issue of octane reading and gasoline mileage is an interesting one because there are some circumstances with certain advanced technologies where a little additional octane might get you better fuel economy on the other hand there's also a lot of myth and fables about octane and fuel economy so you have a placebo effect kind of thing going on at the same time and there's never been a good test program to separate the two but one of the things that happens in modern engines you have something called a knock sensor so it actually detunes the engine if it senses it's not getting enough octane and that can create some problems that maybe a little more octane can fix but again there's not been a valid test program to verify it there's a lot of myths out there so but it is possible and in fact I did see some research on various FFVs that have been optimized to run on high octane or have been optimized to run on E85 but still can run on 87 octane and they show that effect quite prominently that they get better gas mileage on the higher ethanol blends and advertisement for my old employer Buick Regal is one of them Buick Regal Turbo Okay, anything, any other comments? Because I wanted to ask all of you that since there has been so much discussion on Capitol Hill over the course of the last year, couple years with regard to the renewable fuel standard and while you've all sort of talked about it in or at least indirectly given what you know about all of that discussion and the impending EPA decisions with regard to looking at volumes what would you say are key things that you would really like to make sure that policymakers are really aware of based upon your work, your knowledge and what you know of the discussion Who wants to start? Go ahead, Stefan I can start I think I said the same thing last December at the RFS2 RVO hearing December 6th I think it was in DC and I pointed out in my presentation again, you know while I think the RFS2 is a good thing and you know, encouraging technologies to go into corn ethanol plants I think we need to update the modeling to reflect the latest science the latest efficiencies at corn ethanol plants and this is also true for CARP, California Air Resources Board modeling which still relies on also somewhat outdated data so I think, you know, it's a rapidly improving field and we need to be pushing that the newest science is being adopted in this modeling exercises Okay, Michael? We're not in policy recommendation area we're in research area from our National Laboratory so I would say from the third part of view what I see in the last several years as I elaborate in my presentation in the last several years the technology advancement I think many people, if not all, agree what we have achieved in farming and in ethanol plant what we've been debating and with some uncertainty is so in the last six years as you saw from that summary slide there are many organizations involved in modeling let's use change issues and the key factors were identified so what are the causes for the large variations among the studies since 2008 so for those of us involved in this specific research topic we have a good sense of what caused the variations and the data starts to show up where the data lead us so I think instead of each organization continue to pursue the community needs to sit down together to go over so do we agree the critical factors and where the data lead us are the assumptions about the critical factor so we can have some clarity of this important factor itself okay thank you Dean okay I guess from an economics point of view and I'm not an economist but you know like the old show saying I play one on television Dr. Walton is our economist and we've picked up a lot of economics from him and there's a couple of things regarding the RFS we've talked about the first one if you look at the RFS and the whole structure of it there's this so-called blend wall that you hear a lot about in other words the blend wall is the 10% I'm talking about that's already in gasoline that consumers accept it's transparent it saves the money the oil companies seem to be happy with it but it's not a blend wall it was envisioned to use E85 and up until recently there's been no proof that that's economically attractive to customers but as I pointed out it's never been tried with a low octane blend stock now that it's being tried the question is open whether you can sell enough E85 to flexible fuel vehicles to make up the difference for RFS too but what I'm talking about with the fuel is another thing entirely it's raising the blend wall because it raises it to 30% or roughly whatever that number happens to be that creates this optimum fuel and just as E10 is no problem for the oil companies E30 shouldn't be either and finally as far and this may seem like a nitpick but Dr. Walton and I spent quite a few years working on alternate regulatory systems and really the RIN program is a cap and trade program but if you look at the fundamentals of cap and trade it's a fairly inefficient one so a lot of improvements could be made by simplifying it and creating some features that by our analysis about half of the RIN price is actually due to the essential economics of ethanol and the other half is due to some of the inefficiencies in the RIN program that could be worked out of the system and create a more efficient system but basically the RFS I think has to be there right now until if you will the unlikely partners of the oil companies and the ethanol producers learn to work together to integrate because ethanol producers right now like the oil companies are an essential fuel to the United States but there doesn't seem from an outsider's perspective that they get along too well and so until they do the RFS is probably a very important policy instrument to make sure the American people get the lowest cost fuel possible Okay, thank you and I also wanted to mention that as far as EESI is concerned we had thought that it was very important to put together kind of a series of forum to really look at the whole range of issues around biofuels and wanted to start off by really looking at what is happening with regard to life cycle analysis to updates and technologies as we've heard today and then this will be followed by a briefing on the afternoon of October 6th, Monday October 6th in terms of taking a look at cellulosic ethanol there's been a lot of discussion about that about what's really going on with regard to the technologies and they are an important piece of the renewable fuel standard again there have been lots of questions raised about is anything happening is this going to become commercial well at that briefing we're going to have four companies that are dealing with commercial production of cellulosic biofuels and looking at different kinds of feedstocks and then we hope to take a look at aviation biofuels there's so much exciting work that's going on in that whole area as well so if you've got other questions for any for our speakers or for us we would welcome them and as Michael said it's really really important that people come together to really look at issues to make sure that we really are discussing and problem solving so that we really look at things in a holistic way and can really move issues dealing with energy, environment, greenhouse gases to help solve and move all of these issues forward in a positive way so I want to say thank you to our speakers I thought that was very very helpful thank you


Now, this is basically a real basic beginner question for a guy who probably doesn't have a whole lot of experience. The reason why you're asking this question is because a lot of times in Hollywood and the movies that we see, we tend to romanticize love and we think that, oh, if I just tell her how I feel, if I just reveal to her my feelings, then the girl's going to like me. Well, that's not really the case. She's probably already attracted to you or she's already decided whether she's attracted to you or not. So you shouldn't really have to tell her that you like her. You should have already shown it with your actions. The greatest gift that a man can give a woman, the greatest gift anybody can give anybody is their time. We don't get time back. It's something that we don't get. Who we choose to spend it with is a very important and precious thing. So what I would recommend is show with your actions. Show her that you like her. Spend time with her. Show that you care. Remember things about her. All of those types of little things that people don't really focus on that you should focus on and they should tell you in these movies rather than just revealing your feelings. So show those things.  That's not how life works. People are going to serve their self-interest just because a person likes you.  They don't need to like you back. What you should do is you should focus on the actual things that you do like about her. What is it that you like about her? Is she smart? Is she funny? Is she pretty? Is she motivated? All of these things are really important and if you do find those qualities within her that you like that are important, then you should tell her and that's a good way to express your feelings because, again, you're not coming from a selfish standpoint which is I like you and you should like me back. You're actually saying real things about her that are good that you enjoy about her. Once you reveal this, she's either going to be in one camp where she's like ew or she's going to be in the camp where maybe I might like this guy and if she's into you, then you'll go from there. The last part of it is you need to have a plan for what happens after. Why are you telling her you like her? Have you been hanging out with her for a while or what is your plan for telling her you like her?  So do you want to date this girl? Do you want to make her your girlfriend? That should be like I guess the second part to how you reveal.  I think that's too big of a jump. Take her out on a date first before that happens. Hopefully she says no and rejects you and that way you can realize that this was a stupid plan to begin with and that you should have been focusing and developing yourself and getting girls that way because that's really, I think that's really the key in this and the underlying meaning of why you asked this question. If you've gotten, if you've let it get to this point and you're kind of under this belief that just revealing your feelings is the key, is the secret that's going to make this work, that's not the case. There are a lot of other factors that are at work and chances are you need to work on yourself. You need to learn game and learn how to talk to women and improve yourself. Okay, so, you know, if it works out great, but I guarantee you you're going to still need to work on these things in the future. So hopefully that helps, man. Hopefully I gave you a good book that I kind of even use sometimes if I'm with a girl for a while and I don't really ask girls out on dates that much. I might, you know, have an option for us to hang out or something like that. That's the way to do it. So hopefully this helps, man. Thanks a lot. Thanks for being out there. Check out my other videos on how to actually be attractive, which is really the key point here. I mean, the Hollywood movies that we see shouldn't be focusing on revealing your feelings and telling a person how you feel. It should be on how to be attractive. So that's what I got here. Check it out and good luck out there.


It's over Dunski Looks like that that was our home now everything is getting taken apart it is What time is it? Nine nine o'clock it ended at eight and everybody's like I'm out I'm out I'm out I'm out I'm out and I'm out Also I'm out and we're stuck Can't get anywhere hi Judy. What's up Kelly? I know it was so great so over though We did really well thanks to all you guys that came out and saw us dead high and Bought our work. We sold a good bit Yes, Paula. We had a great time. We sold a lot Sad that it's over, but we have another show coming up in May So we get to start getting ready for all of that. I Would go ahead and get started, but we're stuck Can't go anywhere All the roads are blocked It looks like this.  Hey Jennifer Because can't go anywhere I know it's not that red today Hey, Judy Carmen Ola It's not that cold. It's like I think it got up to like 68 today. So it's not as red Little bit red Yes, you made it. We're alive. Let me set you guys up Artists that work. I love the name The next show Will be in May in Dallas again, it'll be At what's it called? Happy a sour The May show that Rudy's talking about Sorry, it's so loud Okay, maybe it's not happy a sour who knows I don't know So I'm glad we figured out how to figure nope I'm glad we figured out how to make the live work because We are gonna do a live Q&A for you guys Probably next week. So have your questions ready if you guys It did rod, thank you if you have any idea of like what times would be best because I know a lot of you guys aren't on Central which we are You're up late Scotland see So I need to figure out what time would be best for a live Q&A or the best way to do that So if you guys have any suggestions Comment below Other than that I will have tutorials up again tomorrow Yep tomorrow I have a couple that I still have to edit and Yeah, I hope you guys enjoy Everything that we have coming up We have a lot of new stuff to try out if you want to send us anything to test Or if you have any requests of stuff that you want us to test Right going going going going If you have anything that you would like us to specifically try out just send us a Link to where I can get my hands on it Thanks, cutie, I hope your trip is going well, I bet it was really cold since you're more north than we are What's up you guys? Um Yeah, we have a lot coming your way and if you have any requests Just let us know other than that. I Gotta get out of here before I get y'all that for blocking a driveway, but Jeff and I will see you Next time Craig. It was great to meet you today, too We got people from Scotland and Virginia and Dallas and not Dallas watching Yeah, I don't know all the specifics of course just um Email it to us if you don't have my email. I think it's Doing doing doing doing doing doing it will be doing doing north Georgia. We have north Georgia Chicago Indiana Worldwide, I'm sorry different Nebraska Cali all the area codes Megan said thank you Megan I'll tell him. Thank you later Connecticut Baltimore Megan said thank you for the shirt South Carolina ever we is Anyways, we gotta finish breaking down and stop blocking traffic.  Thank you guys so much for watching We'll catch you all next time Bye


So, this talk is called How Does Bundler Work Anyway? And it basically came from realizing, as I talked to people, that a lot of people are like, oh, I know how Bundler works.  That's how Bundler works. So it turns out that if what you care about is what's happening when those things happen, you actually have to understand what the problem is that Bundler solves. And to understand the problem that Bundler solves, you have to understand the problem that created the problem that Bundler solves, and then you have to understand what created that problem and then what created that problem. So this is going to be a brief history of dependency management in Ruby, hopefully brief. But before I tell you about how dependencies have worked forever, let me quickly tell you who I am. My name is Andre Arco. On the Internet, I'm pretty much always indirect. That's my current avatar on all the Internet things. You may have seen my picture on a website or something. I work for Cloud City Development, mostly joining teams who could use someone who has seen how that decision can go wrong and can warn you to avoid it. Also pairing with people who are like junior and mid-level and talking about how Ruby works. If your team could use one of those people, maybe talk to me later. I co-authored the third edition of the Ruby way. The first edition of the Ruby way was totally my favorite Ruby book ever in like 2001. And I basically learned Ruby from it. And so the Ruby way third edition is updated for Ruby 2.2 and 2.3. I'm sure it'll last at least a good six to nine months before it just turns into something that you use to prop up your monitor. The other thing that I do is called Ruby together. It's a nonprofit. It's kind of like NPM except we don't have any venture capitalists. And basically we take money from companies and people who use Ruby. And we pay developers to work on projects that everyone who uses Ruby needs to have work. So we have some companies have just agreed with us that this is a good idea, including Stripe and New Relic and Basecamp. And what Ruby together does is it pays for work on things like RubyGems and the RubyGems.org server that everyone gets gems from and Bundler. So I've been the team lead for Bundler for about four years. And that's why I'm talking to you about Bundler today. So let's share some Ruby code. How hard is it to use code written by someone else? Well, it's actually pretty easy.  And ta-da! So that was so easy, but what actually just happened when you did that? Well, it's complicated. Something got installed, something got downloaded, what got downloaded, where did it go, how did you get to it later, I don't even know. So history time, let me take you on a little dependency history tour. But by the time we finish you'll at least know, you know, not just how it works but why it works the way that it does today. And as you could maybe predict from anything that involves computers, the answer is legacy reasons. So starting, here's a little preview of what I'm going to talk about. I'm going to talk about require, which is how Ruby lets you load code from files. Then we'll look at setupRB, which was the first way that you could install code into Ruby so that you could require it without telling Ruby where it was. And then we'll look at RubyGems, which was the first way to easily download someone else's code. And then we'll look at Bunder, which lets you have multiple gems that all work at the same time. So require. The require method has been around since at least 1997, which is the oldest Ruby code that is actually in version control. I went back and checked. Presumably required did not exist at some point, but Matt wasn't using version control yet, so I don't know when that happened. Even though require is that old, it can still be broken down into some pretty small concepts. So using code from another file in Ruby, at least, is basically the same as copying and pasting the contents of that file in place of the line that says require. That's pretty straightforward. So you can actually implement the require function yourself naively with just like one line of code. You say, I have the path to a file. I would like to read that file. I would like Ruby to eval that file as if it was code, done. I've implemented require, pretty sweet. So as I said, a little naive. You'll probably notice the problems with that naive implementation, so if you call require more than once, your code will run multiple times. This is usually bad, especially if your code, say, creates a class because it defines a constant or whatever. So it's actually not that hard to implement a system that checks to see if you've already required something. I even got it to fit on a slide. Global variables are usually pretty evil. In this case, it's probably the only way to track things that you've required that make sense. So let's call that global variable loaded features for no reason in particular, and then you can see that you basically just say, hey, did I already do that? That file name? Well, if I didn't go, if I did, hey, we're done already, sweet. Turns out Ruby provides a global variable named loaded features that contains a list of all the files that you've required. Good work. So then the next problem that you may have already noticed just from looking at this code is that you have to pass absolute paths. If you say require rails, it will say there is not a file named rails. So that's probably okay if you know where every single file on your entire machine is, but I'm assuming that you don't want to have to know that all the time. So the easiest way to allow requires that aren't absolute is to just treat every file name as if it's relative to the directory that the program was started from. That's really easy, but unfortunately it doesn't work well if you want to require Ruby files from multiple directories, so let's implement something that lets us require from more than one directory. I guess theoretically that would probably look something like a global variable that's an array that contains a list of directories, and then you would loop over the list of directories, seeing if the file that's being required is present in any of those directories. I even got that code to fit on a slide. So we'll call that global variable load path for no particular reason. And then we'll say, hey, let's just find the first entry in load path that actually contains the file that we're requiring, and then we'll do the normal eval thing. So it turns out Ruby provides a global variable named load path, and when you call require, it iterates over the load path looking for the file that you just tried to require in each of the directories contained in the load path, and now you know how require works. In real Ruby, unlike my slides, both the loaded features feature and the load path feature are combined into a single method. I couldn't get that to fit on a slide, but you feel free to do it yourself if you would like. So adding the load path is pretty cool. It lets us find Ruby libraries, even if they're spread across multiple directories. We can add a directory that has the Ruby standard library in it, and now it's very easy to load net-http. You just say require net-http and it finds that there's a directory named net and there's a file named http.rb, and it works. Pretty great. So this was awesome. And then Ruby developer said, hey, I wrote some code, but someone else wants to use it. And that's how we got set up RB. So require, state-of-the-art in Ruby libraries, probably circa the year 2000, right? From 97 to 2000, require was good enough. And around 2000, everyone's installing shared Ruby code by saying, oh, this guy, he emailed me the Ruby file, and then I put it in a load path, and then I required it, and everything's awesome. That's really tedious, as you can probably imagine if you're thinking about sending people files so that they can copy them into places. So the next piece, or I guess the next solution to the obvious problem, it's called set up RB, it was written by Mianaro Aoki, and it's a script that automates copying Ruby files into a specific place. So in Ruby, when you install a copy of Ruby, it creates a place called, wow, now I'm blanking on it, site lib, thanks. I was gonna say site features, and I knew that was wrong. So site lib is where you can install things and they'll automatically be on the load path. Ruby just puts site lib on the load path, and you can put whatever you want into that directory. So set up RB is a way to automatically put things into that site, site, which is a really weird way to describe a specific installation of Ruby, but it works. So amazingly, set up RB is actually still around on the internet. I love the website, it's actually i.loveruby.net. You can even download it if you want to use it, but no one has touched it since about 2005, so I probably wouldn't recommend it. So at its core, set up RB is basically a Ruby implementation of the classic Unix trinity of commands configure, make, make, install, except for Ruby files, so you have set up, config, install. And so moving forward in time, this is now how you use Ruby libraries.  So as you, actually, so this was before rubygems.org. And there was a thing called the Ruby application archive, which is sadly lost to the internet as of a year or two ago. But it was amazing, this is about when I started using Ruby for the first time and I was so excited that there was a website that I could go to that was like, here are things that people have written in Ruby that already do stuff, so you don't have to write them yourself. Without the RAA, and honestly, even after the RAA existed, sometimes using libraries meant happening to be able to find the person who wrote the thing's website where they had posted a tar ball that had their Ruby code in it. So this was great, you could find a library, you could download it, you can install it, it was a big improvement. You may have thought of some possible problems with this so far. So a big thing that became problematic as time went on was there's no versioning whatsoever. What version of that library do you have? No idea, maybe they put it in a comment. If they didn't put it in a comment, you could just start downloading old versions and trying to guess, it was amazing. How do you update when there's a new version? Well, you hope that you bookmarked the URL where you downloaded it the first time, or that they put the URL in a comment, because good luck, and then you had to find the new version, download it, decompress the tar ball, and run Ruby SetupRB again. And then you'd have the new version, but since there was no uninstall, what you would actually have is the files from the old version, and then the files from the new version copied on top of the files from the old version. And then the next time, you'd have the files from that version copied on top of the files from the old version. So you also crossed your fingers and hoped really hard that they hadn't deleted any files as part of the new version because that got really messy really fast. And finally, this was kind of my favorite part of how this was horrible. All of the files went into a single directory. So if you had two libraries that both defined cool thing.rb, too bad, whichever library you installed last was the one that overwrote the previous library. So I don't know if this sounds tedious to you. It was pretty tedious. I was there. It took a lot of time. There was no really good way to know if new versions came out. You overwrote your old versions with new versions or your new versions with old versions by accident. And honestly, if someone changed something in a new version and you were like, oh, I want this cool new thing that's in the new version, but then you installed it and something was different than every single Ruby script that you had on your machine that needed the old version no longer worked. And you had no idea if that was going to happen or not. So that was also kind of frustrating. So in 2003, RubyGems appeared and specifically tried to address the shortcomings of setup.rb. So it provided a single command line utility, the gem command, which was pretty awesome. It let you download and install in a single command, which was pretty awesome. It let you uninstall in a single command, which was very awesome. And it let you see what libraries existed in a single centralized place, which was super, super great. This really revolutionized sharing code in Ruby, honestly. It increased the speed at which people were willing to say, hey, this thing is cool. I'll let other people use it. And it was actually a big part of why I thought Ruby was so cool as I started using it, because RubyGems was brand new at the time. And I was like, wow, no one's written things that do lots of things that could be useful. I'll sit down with my friends and write a thing that does a thing, and it'll be great. And we'll make a gem, and it'll be super cool. The last most awesomest thing that RubyGems added was multiple versions. So setup.rb put everything in the same directory, and it was impossible to tell what version you had, and it was impossible to have more than one version at the same time. RubyGems actually adds its own patches to the require method so that you can have multiple versions of a single gem installed at the same time. If no version of that gem has been added to the load path yet, RubyGems will add the newest version, but if you want to, you can explicitly say, no, no, I actually want this exact version. RubyGems put that version on the load path because that's the one I need. So you can call the gem method with a version, and RubyGems will put that version on their load path, and then when you call require, that's the version you'll get. Pretty great. And there's a little-known RubyGems feature slash horrifying hack that lets you put a version in underscores as the first argument, and then you'll get that version of the gem. I don't know if that's really relevant to any of your particular lives, but while debugging gem versions in Bundler dependency hell, sometimes it's important. So I care a lot that it exists. Thank you, Eric. So, RubyGems made installing, upgrading, creating, using gems so easy there is this huge explosion of libraries. So today, there are almost 100,000 different gems, and there are almost a million versions of those 100,000 gems. This is really cool. As you may have noticed by now, somewhat predictably, once we started using this, we noticed some problems. The new problems were, what if you have more than one project that uses Ruby and needs gems? So this turned into a big problem, I wanna say, over, it took several years for this to emerge as this is clearly the biggest problem with RubyGems. So the explosion of gems and gem versions meant that if I ran gem install foo and started using it, and then a week later, I wanted to share this with my friend and said, oh yeah, you have to run gem install foo before this will work. My friend might get a completely different gem than the one that I got when I ran gem install foo the week before. And that's really not good. And then if you ever wanted to deploy this into production, you would have to run gem install foo on the servers and hope that you got the same code, because, yeah. So, setting up a new machine, this is a thing that actually happened to me. I started at a Ruby company in 2008. They said, here's your new work laptop. We're really hoping that you'll get the app to boot in less than a week. I was really ambitious. I worked really hard. I was visiting the office and didn't really have anything to do at night. I got it working in only three days. I literally spent three days trying to boot the app and then trying to diagnose what was missing from the error message and then installing gems and then trying to boot the app again and then trying to figure out why it didn't work. Three days of that. It was pretty amazing. Once the Ruby community recognized this as a pain point, people started trying out different ways to solve this problem. The most popular way to solve this problem was something that Rails added called config.gem. So you would put in your Rails application, config.gem, I need some gem with this, and maybe with this specific version if you cared, maybe you didn't. And there was another gem called the gem installer gem that you wrote a list of gems and then the gem installer gem install all of them for you. The underlying problem here was that, well I guess it was, there were multiple underlying problems. The first underlying problem was that Ruby gems automatically uses the newest version of each gem and so just having an older version of a gem installed wasn't actually enough for you to be able to use the older version of the gem. And also a true story that actually happened to me. Three days of debugging why something worked on every single developer's machine but failed mysteriously in production, turns out that the production server had gem version 113 and every developer had 114. There was no way to even be told that. You just, at one point someone was like, wait could this possibly be and ran gem list on the server and was like oh my god this isn't a version that everyone else is using. It also led to things like version conflicts. Like god forbid you have two Rails apps rather than just one or god forbid that you're a freelancer and that you have two clients who each have a Rails app because at some point they may not have the same version of Rails and this is how you get into really really caring about that underscore hack that lets you get a specific version of a single gem. So you have two Rails applications. You say oh no this one's too old. Oh I'll solve this problem by upgrading them so that they're both on the newest version. And then the next person who pulls your code is like hey why did you break the app? And you're like oh no it's an upgrade. You have to upgrade all your gems. Run gem install again for all your gems. Which gems? Oh well I think the readme has a list. Is the readme list up to date? Well probably. And then if that person had some third app that used Ruby on their machine they would be like oh well I guess I can solve this by upgrading all of the apps too and then you just repeat the cycle.  And it kinda sucked. Just fixing that problem would be enough of a reason for Bundler to exist. But there was another even more frustrating problem. Which is you would ask RubyGems to put, I mean RubyGems calls it activating. But what that actually means is RubyGems just puts that gem, a specific version of a gem in the load path so that you can require it. And then later on some other piece of code says hey RubyGems I need this gem at this version. And RubyGems would say no actually you can't have it because a different version already got activated by some completely unrelated code too bad. Runtime error, your server no longer works. It was super great. I've actually, oh man, there was one time where our production server worked perfectly fine unless someone tried to do the one action that somehow like depended on this gem and it would always activation error and then the server would die. But we had something that automatically restarted the servers. So we didn't actually notice until we were debugging the ticket about why that particular Rails action didn't actually work. Then someone was like oh it's an activation error. Why didn't we know that? So at this point maybe you're thinking surely this wasn't very common, it sounds very complicated and difficult to produce this. I wish. Basically by the late RubyGems era, so probably like 2008 to 2010, basically every Ruby application with more than a handful of gems would get into this weird situation where certain specific circumstances would produce sorry no you can't. This was exacerbated by certain specific versions like Rails 2.3 depended on Rack 1.0 and not higher and Thin, which was a popular app server at the time depended on Rack 1.1 or higher and if you needed them both at the same time too bad. So the moral of activation errors is not to do runtime resolution, which is what RubyGems was trying to do where you say oh I'll just wait until the app is already running and then use the gems that I need because by then it's too late. And instead do install time resolution which ultimately just means that before you actually even install any of the gems you say hey is it possible to make all of these gems activated at the same time. So install time resolution, hooray, but wait how does that actually work? So this is the kind of underlying problem that Bungler has as its core problem that it exists to solve. How do you figure out which versions of all of the gems that you need actually work together? Each gem depends on other gems, those gems depend on other gems, et cetera, et cetera. So before Bungler, as I have just described at sad length, this process was done entirely by hand. If your versions did not work together you said oh no, an exception and then you tried a different version. And then you said oh no, an exception and then you tried a different version.  So unsurprisingly computers are better than humans at this kind of tedious and repetitive work. So that's what Bungler does. Happily Bungler is also by virtue of having the computer do it a lot faster than humans. So thanks to Bungler Ruby developers list the gems that they want and then Bungler finds what versions of those gems work together all at the same time. This problem is called dependency graph resolution. It's an example of dependency, I should say, dependency graph resolution is an example of a well-known hard problem, which is I guess another way of saying you might not ever be able to find an answer no matter how long you spend looking for one, which is super great. In theory it is possible to construct a gem file such that it takes into the known hard problem first to find which gems to use.  To give you an idea of why Bungler needs to do a lot of work. So most developers do not have until after the heat death of the universe to find out if their gems work together. So Bungler's resolver uses a lot of tricks and shortcuts and heuristics to try and come up with a list that will work or is at least a possible solution even if it is not necessarily the best possible solution. And so we have a pretty big library of tricks that we've built up over the years and most gem files actually now are resolved just within a few seconds. We had, I think the last kind of pathological case that we had was a gem file that took like maybe a minute to resolve and we got it down to 10 seconds in the latest release and I think all of our known horrifying gem files are down under 10 seconds so that's pretty cool. Once it has found versions that all work together and can be activated at the same time, Bungler writes down the exact version that works for every single gem and that list is called gemfile.lock and that's what makes it possible to always install the same version when I give you a copy of the code or you give the production machine the copy of the code or whatever. Amazingly it means that the CI server and the production machine and every developer always have the same versions of every gem and it means that most of the time the same code means that you get the same results which is great. So at the end of the day how Bungler actually works boils down to two things that mostly everything else is just like some aspect of those two things. So the first thing is bundle install which is figure out the versions of all the gems that work together, download all those exact versions, write down the lock file so that we know what those exact versions are and install all of those exact versions so that they're available. And then once they're all installed the second half of what Bungler does is bundle exec which basically just says make sure that the Ruby code that I'm running using bundle exec has access to the exact versions that are written down in the lock file and no other versions. So bundle exec reads the gem file and the lock if it's there, it uses the lock gems if it can, if there are versions already installed that will work then it will make a new lock file on the fly and then it deletes everything that's in the load path and puts only the gems that match the versions that are in the lock in the load path and then lets your application do its requires and everything works out great we hope. Most people don't like bundle exec I mostly don't like it because I don't like typing it so one solution which is something that I did for a long time is to just use your shell to alias the letter B to bundle exec and then you type B space before everything but another thing that you can do is create commands that are specific to your application and the version of the gem that you need for that application so here's say you can avoid completely avoid using bundle exec use the bundle binstubs command on the gem that you want to run the specific command from and then Bunder will create a file in bin that will make sure to only use the version that is written in your lock and so this particular bin RSpec will use the version of RSpec that's in the lock for this application but if you have bin RSpec in another application it will use the version of RSpec that's locked for that application and so this is a way to get around bundle execing ever and means that you always get the thing that's relevant for your local application context. Rails has actually sort of endorsed this pattern by making it part of a default Rails app starting with Rails 4, bin Rails and bin Rake are both created as part of every new Rails app and if you run those commands you will always get the exact version of Rails and the exact version of Rake that go with that application but you could do this for literally any code with literally any gem using the bundle binstubs command which is pretty cool. So that gets you more or less up to the present day. Even after Bundler was created the pattern continues. Bundler 1.0 solved activation errors which was awesome and created a new problem which was that running bundle install took multiple minutes. So to fix that we created a new version of Bundler that could download less information but still resolve. That was Bundler 1.1. There we continue to work on Bundler. We're up to Bundler 1.10. It has some cool new stuff. We have even more cooler newer stuff in the planning stages. We'll continue to keep making things better. I definitely recommend keeping an eye on bundler.io where we have a news thing that talks about new things as new versions of Bundler come out or you can follow bundler.io on Twitter. As part of those plans it would be super, super cool if you could help us since everyone uses Bundler. We would love your help. You can tweet at bundler.io or you can email us at team at bundler.io and there are people on the Bundler team who set aside time to pair with new contributors so that you can get up and running and kind of know what's going on and we would love to have your help. If you are a company and you're thinking to yourself, if you are a company, if you work at a company and you are thinking to yourself right now, that sounds great except my company doesn't have any spare time for me to work on Bundler. That's totally okay too. Make your company give money to Ruby together and then we will do it for you and you won't have to think about it. As Ruby together grows, we actually have plans that extend beyond just Bundler. We're going to start tackling other community issues. We've been working on a project mostly in stealth mode that's called gem stash and it's a server that you can run in your office or in your data center and it acts as a local cache for Ruby gems. So you can run gem stash in your data center and point all of your production servers at it and they can download and install the gems that they need super fast because they're already present in the data center or you can put it in your office and all of your developers in your office can install gem super fast because they're already in the office, it'd be great. We'll have the first release candidate of gem stash out tonight. Yeah, it'll be great. That pretty much wraps things up. I'm happy to take questions. It looks like we have about seven minutes for questions if people have any. Given that this is Bunler, I may answer the question with, I don't know, I'm sorry. Yes. So the question was, what are some of the interesting heuristics that you use to reduce the amount of time that it takes to solve the dependency graph problem? Most, I mean, none of them are actually that interesting to be honest. It's mostly just like, well, we come out with something that finishes much faster if we, and the if we is things like start with the newest version of everything. If you have a specific version number, start with that and go down from the newest backwards in time. If you are way down a rabbit hole, try going backwards and changing the version of the thing that depends on the thing that depends on the thing that means that you can't find a version that works, stuff like that. So the question was, when do changes to Bunler become new releases? We last released probably four or five months ago at this point, and there have been some changes since then. Usually the answer is when we have enough time to update all the documentation, write a blog post about what's changed, and then answer people's new questions because the new version always means that people have questions. The plan for 1.11 is sometime in the next couple of weeks, I hope. Sure. So the question was in Bunler 1.10, it added a section to the lock file named bundled with. This was really contentious with the minority of people who actually pay attention to and care deeply about whether their gem file dot lock is changed according to get or not. It turned out, so we thought we were being really smart and we specifically wrote the bundled with feature to only change the gem file dot lock when you installed new gems. So we thought this is totally fine, it's only gonna change the lock if you're also changing a gem or adding a gem or whatever. It'll be cool. Turns out, spring the command that ships with Rails by default and runs copies of Rails in the background waiting for you to want them to do things. Well, spring actually runs bundle install and Rails. I will never think that I am as smart as I thought I was. Again, basically is the summary of that. So we released a later version of 10.6 that actually has code just to work around spring and says, well, even if you run bundle install, we can't assume that you actually mean it because it could just be spring doing it automatically and so we won't change your lock file unless you actually changed a gem and then we'll add it. So that's what wound up happening. As to why it exists, it's because we want to do things like, well, I guess actually, as to why it exists, it's because we totally screwed up in bundle 1.0 and didn't put it in and realized approximately 10 minutes after we released Bundler 1.0 five years ago that it should have been in the lock file the whole time. Unfortunately, Bundler 1.0 had a bug that meant if we added it to the lock file, Bundler 1.0 would throw an exception. Five years later, no one uses Bundler 1.0 anymore and we can add it. So the question was, who owns Bundler and how is that determined? The answer is a lot of people. More or less, everyone, how to put this? So Bundler the project is licensed MIT, which means you can do whatever you want with this as long as you don't claim that you made it yourself. At various times, people have worked on it while employees at Engine Yard, while not employees anywhere at all, while lots of other things as well. Ultimately, the project only works because everyone who submits code to Bundler is implicitly agreeing to license their submission MIT along with everything else that's in Bundler so everyone can keep using it. As for ownership, it depends on what you mean by ownership. Oh, like who's allowed to merge pull requests? The Bundler core team and Bundler contributors team, which roughly means anyone who's had probably two pull requests merged in the past gets the ability to review code and merge pull requests. We have a merge bot that tries merging to make sure that it's actually possible to merge and then runs all of the tests after merging to make sure that all of the tests still pass and then actually commits that. And I think just the core team right now has the ability to trigger the merge bot. So the question was, how is unifying Bundler and review gems coming along? The answer is, we are making progress until Ruby together has more money, it will continue to be very slow. The progress we've made so far is that Ruby gems and Bundler now share a dependency resolver, which is super great. At one point they had two completely different implementations of dependency resolution, which meant that sometimes it was really confusing because Ruby gems tried to install this version and Bundler tried to install that version and why don't they agree? So that's the biggest thing that's unified right now. And ultimately a lot of the code in Bundler is actually just calling out to code in Ruby gems. So I would say that like today now that the resolvers are the same code, the overlap is probably around 40%. We'll keep making progress. Okay, so Eric the maintainer of Ruby gems just said that Ruby gems is gaining more Bundler like features to try and make them more similar so that one day they can be the same thing. That's ultimately the goal. It would be nice if they were the same thing. Yes. Oh, you're right, red light. Okay, I'm happy to talk to anyone who has questions afterwards, but we're out of time for now. Thanks.