So, today we will start with basic python. So, let us begin. So, the goal of today's session is to basically try and cover as much as I can of basic python. The idea is I will try to cover enough that you have time tomorrow to look at may be more advanced concepts that may not even be on the slides. The idea is I am trying to cover a significant amount of python. So, that you are able to learn the language enough to sustain yourselves by yourself by reading documentation that is available online. And now recap what we did last class. I covered the language and the basic interpreter. I stopped just before starting basic data types. I will redo these slides very rapidly. I will take less than 5 minutes to finish it and then get to the main meat of the matter which is the rest of the python material today. Broadly what we will cover is basic introduction to the language and the interpreter, the basic data types and operators in python. We look at strings, conditionals, loops, lists which are basic data structures, input and output, how to handle files, basic functions in the use of additional more advanced data structures like tuples, dictionaries and sets. So, we will try to finish as much as we can today and then take up the rest tomorrow. And once if we finish all of this material, we will go over to object oriented programming and look at may be the standard library and things like that. So, python is basically a very high level programming language. It is often considered a scripting language, but many people consider the term scripting language to be a denigratory term that is it is not only used for some elements of scripting, it is a full fledged programming language, it is not just a toy programming language. And many people have written fairly large applications using python itself. It is very readable and has a very readable syntax that you will soon see. It is very easy to learn, hopefully you will also understand that by the end of this, by today itself you will know the basic elements of the language. And thanks to the language being easy to read and learn, it does not get in your way when you are trying to solve problems which is very important. To top this, there are extensive libraries to do pretty much anything that you want to do with python. As a result, it makes you extremely productive, unlike say a much lower level language. High level language allows you to write things much more compactly and gives you access to a lot of additional features through libraries and frameworks and other software platforms. Python provides for all of these and therefore, it is important that you learn the language very carefully. It was created by Guido van Rosum, he is a Dutchman and he is considered the benevolent dictator for life, that is what BDFL stands for. Basically, he chaperones the direction of the language, makes sure that the design decisions, most design decisions for the core language will go through him. He has the ultimate authority with respect to deciding that, but there is a very large developer team that builds Python. Therefore, it is a growing developing language that has a huge user base. And the name of this programming language is not based on the snake, but based on 70s comedy that I described in the last class. So, again several features very readable, it is highly interactive and this is something that I will emphasize on as we go through the course. A lot of the material that I will cover will actually be on my interpreter session. The reason is I want you to also understand that using the interpreter is crucial. It is important that you do not think of Python as any other programming language, where you are forced to kind of use a language reference of some sort like a book or a Bible or something like that, that you have to keep shifting through. You have to learn to use the interactive interpreter often enough and be comfortable doing that in order to be able to program way more efficiently. As a personal anecdote, I have written a lot of Python code, but I often, I do not actually own a Python book. What I will often do is I will start up the Python interpreter and explore interactively before I write my code and it turns out that is much faster for you and you do not require any resources apart from your computer, which is you do not even need the internet very often, that is very, very convenient. It is memory managed in that reference counter, you do not have to worry about memory management per se, which is a big boon, has a huge standard library, which I discussed. It is object oriented and it does not force the object orientation on you, plus it interfaces very well to C, C++ and Fortran. So, if you want to take an existing code and you want to connect to it, you can do it and essentially it allows you to use your time a lot better. So, the first thing we look at is starting the interpreter. We did this last session. What you need to do is, I assume that all of you have Python started up, set up. So, what you do to start a Python session is to type Python and you will get this prompt that you see here, this thing you see here, this is the Python prompting you for input. So, basically the interpreter is waiting for your command and let us go with our first hello world program. This is going to be your first hello world program and we are done. We did this last class. So, I am going to speed this up. Just control D to exit. Now, this Python that I started is simply Python. This is the vanilla Python, basic Python interpreter. You do not have to use this. The reason is this Python interpreter is by itself, it is powerful. There is another interpreter called Ipython. So, just add an I in front of this and this Ipython is a lot more convenient to use. It provides a lot of convenience facilities, a lot of commands, extra commands and a whole host of features that we will start using on a regular basis. Therefore, we for this course will be using Ipython. Before we go to Ipython, a note on the version, there are two versions of Python commonly used. The greatest version I think is 3.2 and the version that we will be using is 2. Something. The reason is 3.x versions are not backward compatible and lot of libraries are not ported to that yet and we will rely on certain scientific computing libraries which have not been ported to 3. 2.7 works perfectly fine as this 2.6. So, kindly use a 2.x importer. I am not going to honor questions on why 3.x, 2.x that is a separate issue. If you have separate questions, we will ask, you can ask me at the end of today's session or something like that. So, do not get worried about it too much. Just know that we will be using Python 2.x for the course. And if you want a discussion, you can ask me questions later on during the day. Not right now. Let us get on with the language. Any core aspects of the language have not changed too much. Certain things that have changed, but we would not get to that. So, let us start with iPython. So, type out iPython on the session. This should start your iPython session and you will get this prompt that looks like this i n 1. It is a numbered prompt. It is kind of like the same Python prompt. I can type Python code here and it will immediately interpret and evaluate my to quit. Again, you press ctrl D enter or ctrl D. I accidentally ctrl D on my shell. So, it went for a toss. So, ctrl D will exit the iPython session. You can press n if you do not want to exit or hit return. It will exit. So, we have started our Python interpreter. We have exited. We will now start using more of the features of iPython. So, let us get back into iPython. I have cleared the screen. So, you can all see. Let us do some simple arithmetic. Nice thing is I often find myself using iPython as a simple calculator. If I want to do some quick calculations, I can do it on the interpreter. Standard arithmetic operations, all of these operations work. Try these out on your interpreter. Now, notice that the output that you get on this session is printed with out of 4. Basically, if you put any input expression will be evaluated by Python and the result of that expression or if it is a function call, whatever be the result of that expression will be stored in this output and it will show you explicitly as out. Note however, if I did print 1 plus 2, it will not give me an out because print is essentially printing to the standard output. This is important. You need to understand the distinction between these two. When you print, it is just printing to screen. It is not storing. It is not storing that expression or anything of that kind. When I do 1 plus 2, it is an expression that the iPython interpreter is storing the result of that expression and that is why it is saying out. Think of it like a return statement. If I have a function that returns a value, that value is returned that somebody has to accept that variable. So when I call a function or have an expression, this will evaluate to something. That something is stored in out. If you do not store it into a variable. On the other hand, when you print, it is basically printing it out to screen. That is all. Now, let us do a little more exploration of iPython. If I hit the up arrow, the up arrow key, down arrow key, I can cycle through all the lines of code that I have typed and this by the way will go to previous sessions of all kinds of things that somebody else whoever has used this computer has typed, has used this login session. So the nice thing is you can access your history and be lazy. So I can go up and say, okay, I want to print 5 star 10. So you can do things like that and use the history. And this is a convenience that iPython provides. The other very powerful feature is tab completion. So if I want to look at RO and I want to find the function that is available, you press RO tab and it will complete the name for you. So this happens to be a function and if supposing there are ambiguous completions. So if I do R tab, it will tell me there is raise, range, row input. All of these are possible. So if I want to say, no, I only want round, I do RO and tab. It looks like RO, the only completion possible with RO is round. So it completes that. So the idea is you can use tab to complete your commands. It is very, very useful and we will keep using it regularly. The final thing that we will use a lot is the help feature. So if I do A, B, S question mark or let us go back to round. Round I do RO tab. Now I am pressing question mark and I press return. When I press return it gives me the output that it returns is help documentation about this function round. So it is basically saying, look at this. It is saying this is the dock string which says round a number given an optional number of digits and returns a floating point number. This is what that means. This line means round is a function that takes a number with an optional end digits. Something specified within these square brackets inside this dock string by convention is assumed to be an optional argument and this returns a floating point number. So it basically rounds a number to a given position blah, blah, blah. Now one thing you may run into is when you do this question mark it may put you, supposing it is more than one page, you have five pages of documentation for something. What will happen is it will open what is called a pager and it will say more. You press space, it will go to the next page, up arrow, down arrow. You can navigate your documentation but how do you get out? You press Q. So press Q. So let us use our round code 2.482. It is going to give me 2.482 but it also takes an optional argument the number of digits. So let me make that 2 and now it becomes 2.482. So use tab completion and the question mark to obtain help. Let us look at abs, abs tab again will tell you abs takes a number and returns another number basically is looking at the absolute value of the argument. The final thing before we get into the language is sometimes you will get stuck when you mistype something. So let us say we do round of 2.4 comma and you accidentally hit enter as you are typing around. You finish this close the bracket hit enter it will work.  So use either complete of the command complete the function invocation that you by closing the bracket or supplying any additional arguments or you hit control C. So basically you should be comfortable with the ipython session. I will give you one minute for you to review starting ipython make sure that all of you can start ipython. If you do not if you cannot start ipython you are not able to run ipython. This rest of the day is going to be useless for you. So you have not installed it I am not going to wait for you the whole day but you really have to make sure you have ipython running. If you do not you are going to miss out on a lot of fun. So please make sure you can start ipython type your first program print hello world then do R tab RO tab call round with 2.34 do round RO tab question mark. Please make sure you can do all of this. I will give you exactly one minute. So I assume since no one has any chat messages that you are all done you are comfortable with doing this finally exit the ipython interpreter by pressing control D and you should be out. So someone is saying round 56.29702 and it gives me 59.2999999999 what is happening? Well that is an exercise I want you to think about it we will come back to it in a little while. It is a good question. So given this basic introduction to your ipython interpreter we will now begin in earnest on the language itself. I will come back to your question about rounding why that does not work think about it in the meantime. Basically just understand that numbers when represented on the in python or floating point numbers. So the basic data types that python has that are built in there are plenty of data structures that are available but the basic data types that you will use probably the most often are the following. There are numbers integers floating point numbers complex numbers they are built in. There is a Boolean number Boolean data type. There is sequences like strings lists and tuples.  There are slightly more advanced data types that are part of the built in language they are not something you have to get separately and we will look at these basic data types first and then get on to the other more advanced ones later. So we will start with integers.  I clear the screen so you are able to see a is equal to 13. What I have done now is I have assigned this variable called a to the value 13. 13 is an integer. So if I say type of a it will tell me this type is int. Notice that integers can be arbitrarily long. So I can say the only thing you have to note here is when I look at a it says 999999L. So underneath in python the way you have to think about it that integers can be arbitrarily long but underneath there are actually two things happening. There is a basic integer which has a finite length and there is a long integer which can be arbitrarily long. It does not matter however long it can be. So when you see an L here do not get scared. When you see an L here in the end here notice that there is an L here it means it is a long but it is still essentially an integer. You can treat it just like an integer and you do not have to worry about it. So as far as you are concerned integers in python can be arbitrarily long. Floating point numbers are again straight forward. So let us create a floating point number 3.1415 let us say if I want to print the value of p I can say print p or if I type p notice that it gives me the full floating point representation of this number. Now in different versions of python the print function, the print expression, the print keyword does different things. I think my version of python is 2.6. In 2.7 it will round it up to 3.1415. However notice that these are floating point numbers and they conform to the IEEE 854 standard of double precision numbers. As a result many numbers cannot be exactly represented. If you know that there are many floating point numbers would not be exact because you would need to represent it with a finite sized mantissa and therefore it is not going to always be exactly what you think. There will be some small difference. So if you remember the previous case we looked at 56.23. Notice that it is actually internally represented as 56.22999999999 and finally ending in 7 because this is the only possible representation that it is able to store in binary with the floating point representation. So it is actually an issue of floating point representation with a fixed amount of precision. They are all 64 bits of precision. Therefore, you have to keep this in mind and sometimes the python interpreter will show you this, sometimes it may not but you have to know that underneath that floating point number is a fixed precision quantity. So do not worry about it too much. Your different python versions will show you slightly different things, underneath they are floating point numbers of 64 bits and the exact representation may not be what you have in mind. There will be some slight difference. Please keep that in mind. But basically creation of a floating point number is straight forward. You just type it out. Notice that we do not have to explicitly say float P is equal to this. In fact, typing float P is equal to this is illegal. It is syntactically incorrect. Complex numbers again pretty straight forward. The general syntax is variable name is real part plus imaginary part and the imaginary part is denoted by this symbol j. So for example, if I say c is 3 plus 4.123j, c will be a complex number. So if I do type of c, it will give me complex. To find the real part, I can say c dot real, c dot image and notice that if I say abs of c, it is going to calculate the square root of the sum of the squares of the real and imaginary parts which is what you can do. The other thing you have to keep in mind is let me clear this. If I define j is equal to 1, j is just some simple convenience that is made for your convenience. If I say j is 1 and I say c is 1 plus 1 j, it still works. But if I say c is 1 star j, c will be 2. So if I say c is 1 star j, c is 1 star j, c is 1 star j. So you have to be a little careful when you write your expressions in complex. I would suggest that instead of using this 1 plus 1 j form, you actually use the full notation. So I can say, I can optionally do it as c is complex. This is the real part 1. This is the imaginary part 2. So then there is no ambiguity. You do not have to worry about oh is this j defined already. Usually if you use it carefully enough j will work. But if you are in doubt, you want to absolutely make sure you use 2 j, sorry the complex 1, 2.  I think these are all fairly basic notions and you will have plenty of opportunity to try an experiment. So I am not going to go too slow. If you have specific questions, please stop me. I will probably stop after basic data types. At that point you can ask me a bunch of questions. I will answer whatever questions you have. Until then I am just going to go ahead in order to finish this basic part. It is fairly elementary. There is nothing special. One note when you are if you are in doubt and you have some confusion, you have the interpreter. I may be wrong because I am not the interpreter. Your goal should always be that you should try whatever you have a doubt. You please try it on your own interpreter first. You will get some clarity. If you do not understand that, obviously you may have to ask someone. But otherwise try it out first and most of the time your question will be answered if you just try it out. And we will come back to questions. So operations or numbers behave pretty much as you expect. So if I say 23 plus 74, 23 minus 56, 45 into 76, all of these examples are pretty straight forward. One thing you have to be careful about is what happens if I do 8 by 3. What do you expect? You would expect it to do whatever 2.6666 but it will actually give you 2 because normally when you do a division between integers, it will return only an integer value. So if you want explicitly a floating point result, you must explicitly tell python to do this either by giving one of the numbers an 8 point or a 3 point or whatever or you can explicitly say float of 8 by 3. This is particularly useful and I have a variable. So if I say a is equal to 24 or 25 and I want a by 2, it will give me only 12. But if I want to do it as floating point, I can do this. So the one thing to watch out for is integer division. Be careful about this. The other operators that are very useful are the modulo percentage and power. So exponentiation is through double star. So if I want to say 2 star star 20 or if I say 2 point star star 0.5 that will give me the square root. So you can define any kind of exponentiation using the star star operator. Note that it is not the carrot. So 2 carrot 3 will be something else. It is a Boolean operation. Star star is exponentiation. Variables and assignment. All the operations that I have done so far could be done on variables as well.  So all of these are again standards straightforward motions. This is an assignment. c is equal to c by 3. So I am basically evaluating the current value of c, dividing it by 3. So if c is an integer, this will give me another integer. It is a floating point number. This will give me a floating point number and that result will be again stored back in c. This on the other hand can be written as c slash equals 3. So you can have in place operators as well, in place assignment operators as well. So this is essentially equivalent to this. c slash equals 3 is c is equal to c by 3. Again standard, this is all familiar from c. Not very different at all. So Booleans are again some things that you will see very often in Python. In all your conditionals, what you are actually using is Booleans. So what you need to understand for a Boolean is there are two symbols defined in Python. One is called true, the other is false and the case matters. It is capital TRUE. If I type small true, it is going to give me a name error saying name true is not defined. Please note it is also important as you go along error messages are important. Python will always almost always give you an error message. You should be comfortable reading error messages because if you are not comfortable reading error messages, you will not be able to decipher, debug any problems related to your program. So when I did true, it says true is not defined. However, if I did true, capital T, it is a name that is already built. These are the Boolean type. Similarly, false is the false Boolean. So if I say T is true, T will evaluate to true. F is not T. Notice that you use N O T, the word not. Similarly, F R T, F and T, all of these define Boolean variables. You can do multiple operations in a single command. So you can say F and T or T. Please note, it does not make sense going through the operator presidents and all of that. Instead, use brackets whenever you want to make it explicitly clear which one you want evaluated first. Again straightforward. So we now have to go to the next major topic which is strings, lists and tuples. I will pause here for a second. If you have any questions right now on the content done so far, please ask them. I will continue with my next slide. But if I see any questions on the chat session, I will answer them immediately. If there are no questions, I will assume that this content is sufficiently basic and simple that you have no doubts. So the next major thing, basic data types are sequences. Sequences we broadly look at as we look at the three major types that you use. One is the string, second is the list, third is the tuple. Now each of these holds a bunch of elements in a sequence. And the elements can be accessed based on the position in that sequence. So these are all similar in the sense that they all can be indexed. They all have a notion of an order. Every element has an index which means I can access that through that index. And it is a sequence which means one follows the next in the order of specification. It is obvious to look at a string. A string is a sequence of characters in a particular order. So the order is important. The other important thing I want you to note at the end of these slides is there is a common pattern when you use sequences. And in Python this is used very often. When you access sequences, the kind of code that you will write will be the same regardless of whether it is a string, list or a tuple. So look for these common patterns as you see the slides. So how do you create a string, each of these strings, lists and tuples? These slides are initially very basic on strings, lists and tuples because this is just an introduction to strings, lists and tuples. If you look at the table of contents, we will have separate sections dedicated to each of these data types. So we will expand on this but now what we look at is the common elements. To create a string, you basically say variable name is equal to assignment operator and you can put the string inside quotes. This is hello. This is a string, greet string is now a string type with hello as the value of that. A list is always specified by square brackets and separate and elements inside are separated by commas. So this list contains 1, 2, 3, 4, 5, 6, 7, 8. A tuple instead of using brackets uses parenthesis. So let us just create this. I am lazy so I am not going to type the full name. Now if I look at type of A, it is a string, type of L, it is a list, L is a list and T is a tuple. So creation, there are differences. Strings, you create using this kind of a notation, quotation marks. We will get into the details of, there are a variety of ways by which you can define strings. You can use either double quote or single quote or something called a triple quote. All of those we will look at when we look at strings in detail. List are created like so and tuples are created like so and each of them has a distinct type. So you have to notice one thing. Even though I have not declared the type explicitly of A, A definitely has a well defined type called string. So python is what is called strongly typed but dynamically typed. There is a difference. What this means is when I assign a quantity to a variable, I do not have to explicitly statically define that type. But that quantity A has a very clear type and every object that you have in python has a clear type, has a certain type. So it is strongly typed, it is not weakly typed but it is dynamically typed. That is, it is not statically typed but dynamically typed. So this is how we create strings, lists and tuples, elementary creation. How can we operate on these? First thing is, how do I access the elements? So I can say A of 2, L of 2, T of 2. Notice that A was hello and A was hello. And L was 1, 2, 3. So which means L of 2 is giving me 3 which suggests that the index is based on 0 offset indices. So indices start at 0 and end at n minus 1 where n is the length of that sequence. You can add two sequences of the same type. So I can say A plus world. Excuse me, hello world. I can say L plus 4, 5. Notice here I accidentally put a backslash here. I went to the next line and corrected that. Notice that I typed a backslash. I just went to the next line and finished the bracket and it worked. So now notice that it created a new list of 1, 2, 3, 4 and 5. So I can add sequences of the same type. I can find out the length of a sequence by typing length of that sequence. So length of L, length of T, length of A. So now the obvious question many of you will have is what if I add a string to a number. This is not JavaScript. So you cannot say A plus 1. What does it say? It gives you an explicit error saying cannot concatenate string and int objects. It will not try to string if I int. You have to explicitly tell it saying I want you to format a string as such and then you can format it. But right now know that you cannot just arbitrarily add anything. So for example if I say A plus L I cannot do it. Neither can I do L plus 1. So I can only concatenate. So look at the error it is giving me. It is saying can only concatenate list not int to list. And please make these mistakes. Feel comfortable trying these out on your interpreter. Do all kinds of crazy things and learn to read the error messages as you get. Python is trying to tell you something. Suppose the commonality you can access quantities through the index. You can add quantities of the same type in case of sequences and you can get the length of the sequence using length. Now often if you have a sequence you want to check if something is inside that sequence. So for example if I want to say is the H character in A. Let me clear. Let us recall print A, T. This is what we have. Now if I say H in A it will tell me if the character H is there in A. Will this work for substrings? Yes. Please note that the output it gives me is a Boolean. It says true or false. And what should this give me? Predict what this will give me. False. Similarly I can check if 3 in L. 4 in L. False. What is L? L was 1, 2, 3. So the point is I can check for container ship inside an element using the in keyword. So 3 in num list, H in greet string, W in greet string, 2 in num tuple, so on and so forth. So one more obvious question people will have is, can I say 1, 2 in L? The answer is false because it is trying to check for the existence of a list with elements 1 and 2 inside L. You are not asking whether the elements 1, whether 1 is there and 2 is there. How do you express that? 1 in L and 2 in L. That is logically different from 1, 2 as an element in L. You can find maximum and minimum elements, maximum of num list. This is rather meaningless. I have never had the need to use the minimum of a string. So you could treat this as min num tuple for example. It will find the minimum element. The last two concepts are very important. I will spend a little bit of time explaining these. So let me clear your screen so you can see clearly. We have L and T. So let me now redefine num list just like the example to be, okay. Now let us look at num list 1. Num list 1. Num list 1, what do you expect? Now this funny syntax here says num list 1 colon 5. What this is doing is it is saying give me a slice of that list. So I can say 1 colon 5. What this will do is it will start, it will create a sub list. So let us see what it does and then I will explain to you what it is doing. It starts at 2. Remember num list 1 is 2 and gives me 2, 3, 4 and 5. What are the index values of each of these? 1, 2, 3 and 4. Am I clear? The index of 2 is 1, index of 3 is 2, 4 is 3, 5 is 4. But I specified 1 colon 5. Therefore understand that the slice syntax is saying start at the index number 1 and give me 5 minus 1. Do not include the last index, okay. Sometimes people ask why is this last index not included? The reason is can be looked at supposing I want to recreate the entire list. What will I do? I will want to say I process the first 4 elements and then I want to process the rest of the elements. Now I simply can do this, right. If I did this 2, 3, 4, 5, 6, 7, 8, 9 and remember it is now reconstructed the full list starting at the first index. So the reason you do not include the last index is it is easy to construct then you do not have to do a plus 1, minus 1, nothing, okay. So by default when I do, so let us look at num list again. If I do num list of 1 colon 5 it gives me 2, 3, 4 and 5 which means it gives me starting at index number 1 up to 5 but excluding 5. That is how you have to understand this slice syntax. The next thing is striding. So this syntax can be extended to add what is called striding information. Let us now try this 1 colon 5 colon 2. What does this give us? This will give us a 2 and 4. What this means is the last index, remember this is optional. I did not specify it in this column. Here I did not specify it but here I specified this. If I do specify it, it means it is a step size. Step by 2 indices, so start at 1 which is 2, step by 2 which means go to 4, step by 2 go to 6 but 6 is exceeded 5, index 5. So it will give me just 2 and 4, okay. I will repeat myself. When you give this syntax it basically says start at this index number 1, finish at 4 including 4, do not include 5, step by 2. So start and step. So you can think of it as start and non-inclusive. That would be the syntax for this. Notice also that comments in Python are given with the hash, the pound symbol and incidentally comments can be given in line. So is this clear? I have done this reasonably slowly. Let us go over the basic concepts. You create strings, lists and tuples using this syntax, single quote string or double quote string. Create lists using square brackets, elements separated by commas, tuples with parenthesis, again elements separated by commas. You access elements of the sequence using index notation with square brackets not parenthesis. Please remember parenthesis will give you an error. You have to use square brackets and the indices start from 0. We will get to more about indices, what kind of indices, what is valid, what is not subsequently. But know that indices start at 0. You can add sequences of the same type. You can find the length of any sequence using length, a built in length function. You can check container ship using the in keyword. So I can say 3 in num list, h in grid string so on and so forth. You can find the max and min in a sequence. You can slice a sequence using this syntax either 1, 5 and 1, 8, 2 will give me start and non-inclusive step. So these are the basic operations on sequences and notice that these are common. Then we will get to the actual details of strings in the next session. So I will now quickly answer some questions. Number one, please explain the difference between list and tuple. I am not going to explain the difference between list and tuple at this stage. We are going to do list, strings and tuples in greater detail later at which point the differences will become obvious to you. I do not want to get into it now because I will have to introduce various other notions at this stage. Just be patient. End of the I think by afternoon session you will understand the difference. Second question, how to print list in reverse order? Please wait is my answer. Third question, how to call a number by position? I am not, I do not understand what the question is. Can you explain what your question is? Somebody else is asking me num list minus 3 comma 9. Firstly you should get an error because num list minus 3 comma 9 is illegal syntax. I am happy you are trying all kinds of things but you are getting a type error. It is saying list indices must be integers not a tuple. So many of you are going way ahead. I am happy you are playing. I am very happy that you are playing around with your interpreter. Please wait. So be a little patient. I cannot finish all of python in 5 minutes and answer all possible questions. So if you are experimenting just learn to read the error messages and understand that there are things that are going to be different. Obviously I cannot finish lists in like that. It is not going to happen. So be a little patient. I will come back to explain. So somebody is asking me output for list minus 3 comma 9. I will not answer this question at this stage because I have not gotten into any details about sequences apart from the common features. So please hang in there. How can we search character? I am not Google. So please do not ask me questions. How can we search a character without checking case? No, this is not the time to ask me that question. I have not even come to searching for a character. Are you asking me h in container ship in sequence? If so please wait. Many of these questions can be answered when you go into the details. So I am not taking any more questions of this nature. If you have any questions on the content I have expressed so far, please ask me. 1 comma 5 comma 2, if 5 is exclude the 5, but if you write 1 comma 5 comma 3, where is comma 3 sorry 1 colon 5, colon 3 then include the 5. Sir colon sorry colon.  So 1 colon 5, colon 3. So include the 5. No it does not. Please note that all of these indices are, all of these indices are they are indices not the values. 1 colon 5, let me just do not understand the indices. These are indices and again hang on we are not getting into any of the details here. Please wait we will come back to you later. So sorry about that the question was numb you are asking me all kinds of detailed questions and I have not come to any of the details. So let me finish and then we will ask question. I am asking you questions not about other things I am going to cover, things that I have covered so far if you have some basic questions fine. In fact maybe I should not ask any questions now. I should not ask you to ask me questions now. We will continue after this full session you have questions we will sit and answer all of those questions. As I go ahead we can ask some questions. These are general questions. What is the maximum size of an integer in Python? Answer please find out for yourself try to create the largest integer you can. I already answered the question I explicitly said can we have an arbitrary size. Can we do Python programming in Windows? Definitely. Python is cross platform you can do it on a Mac, on Linux, on many cell phones, on Windows it is cross platform. So you can but the only thing is you will have to download Python and you will have to download any other libraries that you need by yourselves and it is easier on Linux because there is a package management tools make it very convenient. There are other commercial distributions available for Python on Windows and Mac but that is kind of out of the scope of this discussion. But yes you can program in Windows. What is the maximum size of an float in Python? Well again you can write a small program to find out the answer. If you want to find out the details look at the IEEE I think 8, 7, 5, 4 or 8, 5, 4 standard it will tell you all of the details of a double precision floating point number which is what Python uses.


the state of clean energy. I'm your host, Mitch Yuan, our underwriters, the Hawaii Energy Policy Forum, and that's a program of the Hawaii Natural Energy Institute. I'm very pleased to welcome my good friend and our guest, Riley Sato, of the County of Hawaii R&D Department, and he's gonna tell us about the Big Island Hydrogen Shot. So Riley, welcome to the show, and let's start off by telling us about the US Department of Energy and the hydrogen shot and how the county became involved. The US Department of Energy issued and clarified regarding hydrogen and how to advance the production and use distribution of hydrogen worldwide. And we took a look at, because we're leaning forward, toward hydrogen with the project with HNEI, we took a look at the questions and the information that they're looking for and felt we had a pretty good content and to answer those questions as we were moving along in that direction down that path. And so we worked with HNEI with Mitch and submitted a response in early July and evidently a little island state in the middle of the Pacific Ocean caught their eye and they then invited us to be on a panel at the hydrogen shot summit and at the September 1st, to actually present our approach and to hydrogen and how we can actually move it forward and scale it and be economically viable. Well, that was great. And you were down selected from like over 200, 250 submissions, I think. And this was international and went worldwide, correct? Right, yeah. It's really interesting. And what time was it? Five in a morning. There you go, you see what we do. So Riley, we're very privileged to have your slide deck which is, we can use for this show. You can take us through your presentation and elucidate us on the hydrogen shot for the state of Hawaii and for the county of Hawaii. So let's pull up the first slide which is a title slide, but it's one of my favorite pictures because it's our, the HNEI hydrogen station at Nelha. So over to you Riley. Yeah, so this picture is that it's not a concept drawing, it's a real picture. The hydrogen production station is up and operational. Not only does it produce hydrogen, it dispenses the high, you know, Nelha on the corner side of the island. And so we are, we have, I'll refer to it as the chicken right now and you can go on to the next slide. So just a quick background on Hawaii County. I provided this because, you know, it's an international conference and not everyone really understands Hawaii County versus Hawaii State versus Hawaii in general where it is. And then policies, a framework that enables us to advance toward hydrogen economy, why hydrogen and what the next steps are. Next slide. So Hawaii County, big island. And this might be very informative for many people in the state. It's a Hawaii County's 4,000 square miles with an average elevation of 3,800 feet. A population of over just slightly over 200,000. Now, the median household income is 57,000, approximately 57,000 for Hawaii Island and the state average is paid up. So you have more than 55% of the current census data. I've updated that since but it's 55% of the island households are either Alice, which is asset limited income constrained employed or in poverty. And so this really is an important profile of our community that we need to serve. Next slide. So interesting fact, we have 200,000 people and we have 200,000 registered people. So every man, woman, child, baby in the store has a vehicle registered. So what that leads is to an annual cost of ownership, the financial burden of ownership of vehicle, which is about $8,000 a year, which results in spending on a vehicle ownership of $1.7 billion a year. And that's just for our island. Next slide. Now I bring this in climate environmental justice piece of this because in transportation, it is the largest percentage of greenhouse gas emissions, partially because of the size of the island, partially because the workforce is far from, located far from the actual workplace, over 37% of the population travels more than 50 miles one way to get to work. Wow, let's hear it. And so it results in a high level of greenhouse gas emissions related to transportation. And I think Oahu is more like 37%. I think nationally it's like 26% where over 50%. Next slide. So we have a framework that has enabled us to move forward. It started way like in 2006, I think with HRS 19610, you actually go to the language it points to Hawaii Island transforming to a hydrogen economy by the year 2020. And we're not there yet, we're working on it. You're pretty good. We're towing a lot of it. And then the game-changing pivot toward advancing, accelerating this process in transportation is a June of last year, HRS 3642, was put into place, executed into statute, which allows the third-party financing for vehicles, vehicle fleets, fueling and charging infrastructure. And so this really sets it up where government agencies, I think 16 government agencies are allowed to actually utilize this transportation as a service or mobility as a service. And I'm sure some of you have heard about the Department of Transportation 50, 45, 50 Teslas coming in and that's a result of this statute. And currently Hawaii County is working on a much broader long-term, 10-year, 12-year rollout of replacing our vehicle, utilizing this statute. So how does it work, Riley? Well, let's say you have a bus fleet or a vehicle fleet and the third-party financier, sustainability partners, they own, they maintain, and in some cases they will ensure the vehicles. And the vehicles themselves are compensated back to the financier on a per vehicle mile basis. So as long as the vehicle is rolling every day, there's a payment to sustainability partners. So the vehicle has to keep rolling. So that's why sustainability partners has an interest in the maintenance. Now, it not only includes the vehicles, but it includes the fuel and charging infrastructure so that you can actually transform, say, a base yard whose there are emissions and install photovoltaics and batteries and fuel cell generators powered by photovoltaics and all through sustainability partners of capital and pay for it over a 10 to 20-year period. So in the case of, but you're getting a year one with no capital confusion, but you have the use of the vehicle and clean energy transformation occurring immediately and being paid for over 10 to 20 years. So you can make giant leap forwards with this. So like traditionally you were acquiring, let's look at buses, for example, like you'd buy one or two buses a year if the budget was good, if the budget wasn't so good, you might delay buying a bus for a couple of years. And that's kind of how the Big Island bus kind of spiraled in a little bit to where we have a limited number of buses. But this program, as I understand it, can allow you to make that giant leap. So technically you could put it in order for 40 buses. Could you not? Right, and that's what we're developing right now down to the model number of what our current fleet is going to FDA regulations. You have to maintain ownership of that grant funded vehicle for X amount of years or X amount of months. So we have them analyzed by model, link and model what year they retire. And so we can actually model, make an offer for 40 buses replaced over a seven year period based on the retirement of the assets that we currently have. And that is what we're doing right now. So I'll talk to us a little bit. I'm not sure. Talk to us a little bit about your ideas for producing hydrogen, if some of these buses are actually hydrogen buses. So what's the kind of concept you have? I call it taking advantage of the kind of advantage of previously bad behavior now becoming actually a blessing in disguise. So with one example, the landfill gas from West Hawaii and East Hawaii could be converted using the heat energy from the landfill gas to produce electricity that could produce hydrogen. And so currently we flare in the West Hawaii landfill approximately 270 cubic feet of gas per minute. That's 24 hours a day. And there's a lot of heat wasted, but it's EPA compliant. We have a cold start from EPA. No variations from the law. The statute we're right on because flaring the methane reduces the carbon output by 28 times. So the EPA says great, great job. Now, if we take that and we use that gas for operating a landfill gas generator, you can produce enough energy to produce enough electricity to produce 1,000 kilograms of hydrogen per day. Now, a bus gets about 10, 12 miles per kilogram. So you're talking about 12,000 bus miles a day, which can for about 3.5 million bus miles a year. And that would cover the entire fleet operating on its current designated routes and schedules. So from the landfill gas, which we're flaring, all that energy is wasted right now. We capture that, convert it to fuel for the fleet. And the same, the Hilo landfill is leaching methane. According to EPA standards, this cap is unlined, but the methane, they are in the liner, the capping liner, they're cubes that allow the methane to escape based on the metric tons of biomass that is in that landfill. For 30 years, it'll keep, I'll call it burping, but it burps the gas, right? So we would install a gas capture system, an active one, and then convert that gas to electricity. And that could run probably estimates of 1.6 megawatt generator, up time 90%, 365 days a year. And that could produce 2.1 million bus miles. So now we have the bus miles actually covered by the West Hawaii landfill. We can now power all the tractor trailer trucks that we use to haul our trash to the landfill. So that's the type of, and that's the type of things that we're looking at. So let's talk a little bit about capital utilization. So traditionally, I think you worked out some statistics that we only use the vehicles like maybe 33%, 35% of the time, and the rest of the time they're parked. So how can we make better use of that capital that's now being supplied or the capital is being supplied by sustainability partners? You wanna comment on that? Yeah, ideally, and this is a lot more complicated, but it serves our community in the right way. So if we take the county fleet and we have our diversified locations in which they're parked overnight and on weekends and holidays, that those vehicles are available and provide access to mobility for our low income family. Either through some type of a subsidy and or the vehicle would be shared use. Right now, there's like 116, 117 days out of the year weekends and holidays that the vehicles would not be used. And from 5 p.m. to 7 a.m. Monday through Friday. Right. So that is something like 30% of the time where it's the vehicles are idle. And so right now, what we're looking at is improving the utilization of the vehicles even through Monday through Friday by sharing the use amongst departments but then also having it available for accessibility to mobility for our community. Now, the other way possibly, it could be funded is through public charging at the county charging systems throughout pools, parks, tennis courts, things that we would stand up, refueling renewable energy systems that charge our vehicles Monday through Friday but at night. But on weekends and holidays when the other activities are occurring with the vehicle, they're not charging. And so the public could actually use the charging space. That's really cool. So talk to us a little bit about how this is being funded by the county. Sustainability partners has to be paid. I mean, this is not free. So how do we go about paying for that and what gives us the confidence to enter in that kind of a financial arrangement with sustainability partners? Well, the key is that the arrangement with sustainability partners actually saves money. So you're not exposing, you're mitigating future risk of oil prices going up. I just checked today, diesel fuel per gallon in September was $3.10. Today, in October, it went up to $3.39 a gallon. Yeah. And that's without fuel tax, is where the government, so we're getting it at a lower price because we're not paying tax to ourselves. And so it gives you that if we put in the infrastructure, it's a renewable source. Energy is produced on island, consumed on island pretty much at the point of production. So you have very little infrastructure of moving energy molecules like you do, having an oil freighter come from Indonesia, we refined in Honolulu and shipped to Hilo then truck one. So that all of that provides a margin of saving. So as far as funding, it should not increase what you already are providing in resources, but actually should stabilize Laura and stabilize. Well, how about the half a percent of GET that was applied to the counties now to emulate or copy or bring us into line with what's going on at Oahu where they're charging a half a percent that goes to the rail system. How does that factor into the big island? Well, a portion of that is going to mesh transit, but if we did nothing, if we just forget about all of this, it would go into diesel buses. Right. And have yourself exposed to fossil fuel prices and higher maintenance costs because of the 3,000 moving parts in a bus. Right. And replace your... See, and without sustainability partners, see that allows you to actually map that out 40 buses, 50 buses with the actual Federal Transit Authority grant program. There's really 304 buses a year that possibly you'll get a grant for. Yeah. 203 zero emissions bus. And so by the time we would get to the optimal 57 buses zero emission, it would be, I don't know, what year? 24 years or something. And then you're disposing buses behind that, right? So it's like... Yeah, correct. So all of this is going to support a enhanced public transportation system for the citizens of the Big Island and to make their life a little bit more affordable. Right. That's it's cleaning emissions and really moving away to a more open spoke according to your mass transit master model plan, a multimodal master plan from August of 2018. Right. So we're in the process of implementing that going through less scheduled fixed routes but like having within a mile of the route, if you're within a mile of route, you get a transit transportation to the route at no charge. Right. Those types of programs are what will work out. Awesome. Great. So let's carry on to the next slide and we're making good time here. Ah, yes. So this looks familiar, Helmut. So the hydrogen station, see that's the chicken. Because they always say hydrogen is a chicken and egg thing. You need the vehicle, but you also need the fuel. And the fuel is the chicken. And so Mitch is gonna be shipping within a few weeks, the egg, the hydrogen bus. And so the fuel from its production station can get to the consumption point of the bus to the hydrogen transport trailer. And so wherever you produce hydrogen, the same infrastructure that moves propane, you can see a propane truck could be filled with hydrogen. It's a movement of gas with energy that has energy. And so since the county, we have the landfills as a potential chicken and we have our fleet in mass transit and tractor trailers as the egg, we have somewhat control over the handouts. And so this is kind of what I was talking about of the capability of hydrogen to be moved to the point of consumption. And so not all your, you're not tied to, like with a battery electric infrastructure, you set it up and it's anchored there and all vehicles come to the, where they can get fed. So like Costco gas station, right? Everybody goes there, right? Exactly. So battery electric, that's what you end up doing is all vehicles come to the charter. Right, so this, the top photograph shows a dispenser that we have installed at Nelhoff. But we have an identical dispenser and all the ancillary equipment sitting in crates. And we're looking at, not looking at, we're planning to install that at the mass transit agency base yard in Hilo. And we've already done a conceptual rendering of it. Now the next step is to get the engineering drawings done so that we can, we still, even though we're working for the county, they still have to get permits, which was a surprise to me, so, which is really good. Hydrogen, it works for the big island, partly because of the challenges of the island being real big and with the topography. It's a zero emission solution to begin with. You can move the hydrogen to the point of consumption where it's needed. So you can have diversified production, you can have diversified distribution. And currently the numbers of more capital standing up and advancing capital improvements to produce the hydrogen is numbers are coming out very cost competitive. And each day the fossil fuel goes higher, becomes a greater savings to actually move hydrogen. All right, next slide. We're going to move it along a little bit now because we're about five minutes to go. Yeah, so landfill, these are such, I talked about landfill is geothermal. Geothermal in the crazy vision, 20 years from now, geothermal could actually produce all the airline fuel necessary to operate all the airlines in the state. And it could be produced on this island through a carbon capture hydrogen technology. So, but we'll start with the one bus and we'll get there. And of course, there's other green sources, wind, solar, inline hydro. We're looking at any kind of infrastructure in water, using the fall of the land to actually produce electricity that could run an electrolyzer that produces hydrogen. All right, so let's go to the next slide which was one of my favorite slides that you guys did. Yeah, so this is a hydrogen, if you look at the lower left hand side, you see other sources of energy. And these, this will take a set of new, it's a new set of technology with workforce development requirements and training and education. So the actual hydrogen itself, like I said, it can be stored and move so we could diversify where the workforce is actually operating. The other thing I forgot to mention, hydrogen has an unlimited shelf life in storage, unlike batteries and unlike diesel. Diesel, you have to run and burn it after six months or it'll go bad. All right. Same thing with propane. So anyway, then, so in essence, what we're doing is transforming a lot of our mobility technology and with starting with the fuel and the equipment and we'll need to develop a technical center or not necessarily one place, but it'll become the way of which we develop workforce. It'll be higher paying jobs, more technical in nature and it'll be, it can be diversified in location. So these are our next steps, DOES, how they can help. And we're looking at funding sources in addition to sustainability partners for the vehicles, but if we can stand up, emergency resiliency through fuel cell generators being diversified in its locations at our community centers and we have the hydrogen there to produce electricity, that would really make the hazard mitigation advance that and part of our community emergency facilities. Then we look at our mobility, transportation, including airline, including Marine, which everyone's afraid to talk about, including Marine and move forward. And it'll be produced in a green manner from the various sources. Well, there you go. I think we're at the end of our time, Riley. It's been really great of you to come and give us the vision and how we're going to accomplish it. So you've done a really good job and the fact that Big Island I was selected to present to the whole world, this concept is fabulous. And I would like to think that this positions the county well for some of this build better funding that's coming and infrastructure funding that's coming down the line because we're not shovel ready, we're actually shoveling. And we have a real live projects and the county has got the right regulations and programs in place. They've got identified our share of the money and we're basically ready to go. So we're ready for some of that DOE money because they're going to have a tough times I mean that getting all those billions of dollars out the door. And so this is something we have to go after. So Riley, thanks so much. I'd like to plug for Riley. He's the one that developed that whole transportation services contracting concept. So well done to you. So anyway, that's so we're going to leave it there now. You've been watching Hawaii, the state of clean energy on think tech Hawaii. Today we've been talking about the county of Hawaii's hydrogen transformation vision and plan. And we'll be back in two weeks and thanks to our viewers for tuning in. I'm Mitch Ewan, aloha.


Chairman Levin, Senator Inhofe, and distinguished members of the committee, thank you for the opportunity to testify on this important issue. Simply stated, the combined effect of a year-long continuing resolution and sequestration will reduce our Navy's overseas presence and adversely impact the material readiness and proficiency of our force, thus limiting the President's options in time of crisis. Of equal concern, we will irreversibly damage the industrial base that we depend upon to build and maintain our ships and aircraft. Under these circumstances, we assess your Navy will be limited in its ability to provide the capability and capacity called for in the current defense strategy. The Navy will be unable to execute all the naval force requirements of the combatant commanders. The impact of the continuing resolution is already being felt across the force as we reduce our operations and maintenance spending by $4.6 billion over the remainder of the fiscal year. Because we are operating under a continuing resolution, we also do not have congressional authority to initiate new programs or adjust funding for ongoing programs. Over $5 billion in planned FY13 investments are affected. For example, we will be compelled to delay the start of construction of John F. Kennedy CVN 79, the completion of America LHA-6, as well as cancel procurement of an Arleigh Burke class destroyer, and hundreds of weapons. Without congressional authority, the carrier Abraham Lincoln must remain moored at Naval Station Norfolk rather than start her overhaul, and we will not be able to complete the current overhaul of the USS Theodore Roosevelt. These debilitating effects will be compounded by the devastation of sequestration, should it execute in its present form on March 1. On that date, the Navy will face an additional reduction in this fiscal year of $4 billion to our operation and maintenance account, and a reduction of over $7 billion to our investment accounts. The immediate impact will be to our fleet operations and depot maintenance. We anticipate reducing flight operations and underway days for our deployed forces, canceling deployments, deferring more maintenance on ships and aircraft, suspending most non-deployed operations such as training and certifications, along with other cost-cutting measures. We will immediately erode the readiness of the force. Over the long term, the discretionary budget caps on our sequestration will fundamentally change our Navy. We will be compelled to reduce our force structure, our end strength, and investments as we lower funding levels and the altered landscape of our industrial base. Like many Americans, our sailors, civilians, and their families are experiencing increased anxiety as a result of this fiscal uncertainty, such as the Truman Strike Group that you alluded to, Senator. We must be mindful of the corrosive effect of this uncertainty on the morale of our people and be vigilant regarding the potential effects of sequestration on the propensity of our force to stay with us and of new recruits to join. Accordingly, we will make every effort to sustain family and sailor support programs. We ask that Congress act quickly to reduce the magnitude of these reductions and replace the mechanism of sequestration with a coherent approach that addresses our national security interests. Additionally, we request the Congress enact an FY13 appropriations bill or other legislation that provides appropriate authorities for new starts and transfer authority between our accounts to address our immediate shortfalls. We look forward to working with the Congress to resolve this fiscal uncertainty, and we must ensure that our Navy remains ready and capable to protect our nation's security and prosperity. I appreciate the opportunity to testify today and look forward to your questions. Thank you.


The second company to present today is Arquette. They have teamed up with a natural resource transformation secretariat. And this is one of my favorite projects. They're all my favorite, but this is one of my favorites because it really highlights the fact that tech in BC isn't about Victoria or Vancouver or Kelowna. This is in all of our sectors, and so as the name might give it away, the natural resource transformation secretariat, that's about natural resources. So it's really neat to see how these two worlds are coming together. So Arquette is a Vancouver-based software provider, and they are on a mission to change how people work and communicate and share through the use of mapping technology. The company combines field projects and collaboration into intuitive map-based software that everybody can access and contribute and share. So I'd love to invite up Linus UN and JP Fournier from NRTS, and they will walk through their project. Hey, I'm JP. And I'm Linus. We partnered to solve an information challenge for the natural resource ministries in BC. So if there's one thing governments tend to do really well, it's accumulate large swaths of information. Unfortunately, one consistent shortcoming we see is making all that information available in a way that allows users to find exactly what they're looking for. BC is no different. For a few decades, we've been involved in land use planning processes and have generated tons of information about those. Unfortunately, that information is pretty fragmented and tough for users to access and find exactly what they're looking for. When we heard about the STAR program, we thought it was an awesome opportunity to see if there was a startup out there to help us address this challenge and help improve resource management in the province. So this is our kid. And we are a project management software for geospatial projects. When we heard about the problems that were being faced by NRTS, we realized that many of our existing features already suffer all the problems. We're very powerful searching and filtering capabilities. We're also very customizable so we can store and display many kinds of data. And we can have all this textual and mapping data all stored, managed and displayed in single place. So over the course of three months, we created an account for NRTS. We uploaded around 1,000 data points. And we also did some extra work to pull in real time mapping data directly from BC's data warehouse. So when a user enters our system, this is what they'll see. This is a overview map with certain mapping features. The purple markers represents each of the data points and the color regions you see there are just the different BC regions. That particular feature data is being pulled from the BC data warehouse. So let's say that I am a resident of Vancouver Island and I want to search for land restriction information around my area. So I bring up my search box, I simply type in Vancouver Island and now I only see the matching data points. I can zoom in and out of the map, kind of pan around just to survey around the area. I can also click on one of these purple markers and I'll get me the full details of the data point. So you can see on the left there are all of the textual information to help me make my decisions. On the right is more mapping information. You can see the red regions there are really just more visual data pulled from the BC data warehouse. And furthermore, if I click on one of these red regions, again, nice little dialog box giving me more final details of that region. So before we started this project, if I was that same Vancouver Island resident looking for land use planning information, I would have had to go to three separate websites, look through PDF documents, hundreds of pages long and cross reference those with mapping information. Now with ARC it, all of that information is amalgamated in one place, tied to the most up to date information beaming straight from BC's data warehouse. And I've got access to powerful search and filter and point and click kind of mapping capability to allow me to find exactly what I'm looking for. From a resource management standpoint, access to this kind of information is foundational to allow us to properly manage our resources. So we're very pleased to have worked with ARC it on this. So yeah, even for ARC it has been a great opportunity. We've learned a lot about working with the government and government systems. We also learned a lot about the procurement process and the challenges faced for both the public and private sectors. On the government side, we've learned a ton as well. Some of the key things we've learned from partnering with ARC it really, the first is user centric design. So their approach there has really been helpful and has already trickled more broadly in the organization. The second thing is that same user centric design actually helped us redefine our problem statement from what we thought it was, which we assumed it was a mapping problem and that was it, to what we realized was actually a problem that would involve mapping, searching, filtering and other capabilities to allow users to find what they need. The third is ARC it works in an iterative agile approach. That has been another huge learning that is already trickling more broadly in the organization. So it's been huge. We're still in the trial period and look forward to continuing to partner with ARC it during that time and with the aim of using their product more broadly to support resource management in the product. So thank you for our time and again, we'll be doing live demos over there. One of the tables is closer to the entrance, so thank you. Thanks Linus, thanks JP. It's really neat to see how far this has come from the first day. I think yours was the first Inception Day meeting that we had hold up in an office down the way. And it was really fun. It was fun and super informative. So it's amazing to see how much it has progressed since then and see how important that one-on-one conversation really is to kind of kick off where you need to go. So thank you so much for participating.


Within the next decade or so we are going to pass a number of tipping points beyond which it's going to be very difficult to recover. Reckless burning of fossil fuels, the destruction of the forests, pollution of the ocean. How is it possible that the most intellectual being that ever walked the planet is destroying its only home? Since 1970s we lost 60% of vertebrate species. If we look at insects we lost 80%. As we lose species what we also lose is the capacity of the natural systems to really provide the services that allow us to function. One of the consequences of living in great cities and great masses is that we are cut off from that natural bar. If you lose that sense of wonder you've lost one of the most important things in your life. The human race produces more waste than it really should. We only recycle 9% of all plastic.  The crisis of biodiversity with climate change it's interlocked with many others global crisis that we are seeing.  We've stolen our children's future, we're still stealing it and we must get together now. When I first started the school strike for the climate I never would have imagined that it was going to be this big. It's over 100,000 children from all over the world. The consumer has to be the one that forces everyone's hand to say I will not buy from you unless you have a sustainability policy and a clear transparency on the whole supply chain of the product that I'm buying. We're now seeing a real increase in the number of collaborations and partnerships creating extraordinary coalitions and setting ambitious targets to get us on the right path in line with what the science is telling us. Employees have a responsibility to demand a better value system from corporations and that's one way to pressure leaders to take a stand and say that they're going to be committed to the environment. It just comes down to all leaders of all organizations recognizing far-reaching implications for how this can truly help to have an impact in the world. Never compromise. What you're doing today will have an impact on the planet for thousands and thousands of years. There has been no species that has been remotely clever and genius than homo sapiens. Let us live up to that name. We need wisdom to actually find the solution and then courage to back it.


Beast Worm Simulator is one of the most notorious games on Roblox. With millions playing every day, naturally, competition at the top is impressive, because not many people can call themselves one of the best. Players only being able to get to that point after thousands of hours of gameplay. But those who have, have esched their place into Beast Worm Simulator history, continuing to push a very high bar even higher than before. And it's all thanks to Hive Colors. First, we should establish what a Hive Color actually is. In the simplest form, a Hive Color is a hive built around maximizing the potential of a mask or an SSA passive for the benefit of pollen collection and honey making. There are four main types of Hive Colors. White, red, blue, and high red slash mixed. This being said, I think we're ready to hop right into it. Let's start at the beginning. To be honest, the traditional Hive Color wasn't a thing until the business of 2019, but there will still be Hive Builds before this. These early, primitive hives were mostly made up of legendary bees, including some shy bees for red boost tokens, diamond bees for blue boost tokens, and of course any event be available. These hives relied primarily on bombs to collect their pollen. This was the build until one faithful day in 2018. More specifically, July 11th, when the Gifted Bee Update was released to the joy of millions of people around the world. The reason why Gifted Bees were so important to the history of Hive Colors is that they truly added a reason to have anything other than legendary bees in your hive. The build now was all types of Gifted Bees for those special stat increases and then legendary bees anywhere you could fit them. Because of the release of Gifted Bees, many players were able to rise up the leaderboards quite quick, as making honey was much faster now. This would stay as the meta until the eventual release of Mythic Bees in the Beasmus of 2019. The Beasmus of 2019 introduced a series of the most important new mechanics into the game in the form of three different Mythic Bees. This was the true birth of Hive Colors like nothing we'd ever seen before, all thanks to these three bees. First, there was the Spicy Bee, which was primarily meant for red hives. It made flames, which also spawned in firebees and even converted lots of backtrack space, for the time being at least. It was absolutely broken, especially when paired with the Demon Mask, which spawned flames of its own. There was also the Tadpole Bee, which spawned in super cool and probably not cuddly frogs, because they have big eyes. These said frogs made bubbles because it was meant for blue hives and blue bubbles are blue, and they also paired well with the Diamond Mask. Lastly, you have the Vector Bee, which summoned marks and made some pretty THICK triangles. Paired with the Carpenter Bee and the Gummy Mask, you had an unbeatable trio. For quite a long time, red would stay the meta until it was eventually nerfed to only convert 1% of Convert Total rather than 1% of Backpack Space. This happened far after the damage was done, though, and people sat with tens of trillions of honey back on top of the board. After red was heavily nerfed, lots of people started switching over to white, which was lots of Carpenter's, lots of Vector's, and mainly focused on goo collection. This would stay the meta until the eventual release of the Supreme Star Amulets. These were special because they introduced six new passives into the game that completely revolutionized the idea of hive colors at whole. Before this point, hive colors were built around maximizing mask abilities, but now they were built around maximizing these passives and the masks were just an add-on to these passives. As I said, there were six new passives. They were Gummy Star, Star Saw, Star Shower, Scorching Star, Pop Star, and Guiding Star. All six of these new passives were all incredibly useful in their own ways. First off, let's discuss how White Hives changed. After SSAs were released, White Hives became RNG Hell. Why? Well, it's all thanks to Gummy Star. You see, if you had the Gummy Star passive, when you used gum drops, there was a 2% chance for them to summon a Gummy Star each time, which was 1 in 50. When summoned, any goo collected in the next 45 seconds would be converted into honey tokens at the end. Plenty of Vector Bs would be run with this because of the Triangle's ability to collect large amounts of pollen at one time, adding tons of goo to the star. People generally ran this with Star Saw, another new passive that was intended for attacking but had a secret second use. It would convert large amounts of pollen in the backpack into honey based on the attack total of your hive. Since micro-converters were too slow for the Vector Bs demands, the Star Saw was needed. White Hives haven't changed much since the release of the SSA, other than the addition of a few fuzzy bees and a few precise bees when they were finally added into the game. White Hives were the best for a little while, mostly when Beasmus wasn't around.  Red Hives took ownership of the Scorching Claw, a powerful passive that allowed the user to ascend to godlike levels of honey making. How it would work is if you had the passive, you would need to collect 30 red boost tokens to summon it for 45 seconds. During this time, standing in flames would increase many multiplayer like Red Bomb.  Red Hives would also take advantage of the Star Saw for the exact same reason White Hives would. The player E-Law was able to take Red Hives to a whole new level in the Beasmus of 2020, making over 2 quadrillion honey in just a few weeks and wreaking havoc on the leaderboards. This was because of how much pollen red could collect. So combined with the Festive Bean, which converted 100% of pollen into honey, it was just broken. The hive that changed the most at the release of the SSA passives was the Blue Hive. Before this update, Backpack Space was considered quite small by today's standards, and it really just wasn't great. Popstar would put an end to this pretty perilous packed Periwinkle Paters. By collecting 30 blue palm tokens, Popstar would summon for 45 entire seconds. During this time, popping bubbles would add a brand new buff called Bubble Blow, which increased the conversion rate at the hive as well as the Backpack Space in the fields. Obviously, this would be paired with a bunch of tadpoles to have actually produced these bubbles in large amounts. This allowed for Backpacks to get pretty darn big. During a short time after the release of these new star passives, Blue would dominate every leaderboard. This would cause, on it, the game's developer to nerf Popstars greatly, leaving red and white to compete for the top spots, and for the pretty perilous Periwinkle Paters to come back for years to come. The final hive that I need to talk about for the SSA changes is the Mix Hive. After this point, Mix Hives ran a variety of passives. I know some people who run Scorch Pop, I know some people who run Guiding Shower, which is what I run, and some that run Guiding Saw, which is the best for boosting as a mixed hive. Generally, people try to switch away from Mixed as fast as they can, so only the real ones that are into questing like Sugar Smacks stay as mixed, because that's mostly what it's for. The release of SSAs has gotta be the most important point in the history of any hive color, or just maybe even the game. Really up to that point, you could be a color, but it wouldn't mean anything as much as it did now. Even to this day, I'd say it's not even closely rivaled by any update that came after it. That doesn't mean it's the end of the history of hive colors though, not by far. The beesmiss of 2021 would add three new tools, planters, and two new bees. Doesn't seem like that much, but these few things would make a colossal difference. Planters wouldn't change hive builds very much, but they allowed for each hive color to make more honey than ever before by offering loads of compounding buffs through the nectar that they produce. The two new bees probably changed the hives the most. The buoyant bee would buff blue hives altogether, completely, entirely, fully. It did this because of the special balloons that it made. The buoyant bee would first make a balloon token, then the balloons would float over the field that the buoyant bee made the token in, storing pollen from the field, and then go to the hive after they're either filled up or they ran out of time. You could then go convert these balloons afterwards at the hive and get tons of honey from them, and a balloon blessing, which increased the honey you got from them, as well as capacity. Oh my, I'm so bad at writing. Now you see, balloons could hold different amounts of pollen. Based on how big your backpack was, which is why they were so good for blue, the buoyant bee alone would make it possible to macro over 100 trillion honey a day. Yes, you heard that right. Macro, which means not playing the game, over 100 trillion honey a day. This still hasn't been patched. Sure, it was nerfed pretty heavily near the beginning of Beasmas, but it wasn't nerfed enough, and you can still do this. STILL! The other new bee was the precise bee, which helped out red hives tons and white hives quite a bit. When you collect its purple eye thingy token, it would go above the field and make three targets on it.  If you went through all these targets, you'd get a precision stack, which increased super crit chance. If you only went through the one furthest from the bee, you'd spawn a precise mark, which connected to other marks and buffed super crit chance as well. The precise bee would also collect in the absolute butt-ton of pollen when it fired its shots. This allowed for red hives to absolutely destroy it during their Beasmas boosts, letting some people make over one quadrillion honey in one day. One quadrillion. Please note, ICs did do this as a blue hive as well. The three new tools added completely changed everything for red and white. The gummy baller was a tool for the white hives that multiplied goo by tons and made gummy stars be able to be way bigger than before through this multiplier. And the dark scythe that was for red hives would make flames into dark flames, which boosted a brand new stat called super crit, previously mentioned, which was just crit, but more super. The final of the three tools was the tide popper. It would pop bubbles with its waves and reward players with a new buff called tide rusting, which boosted something, I don't know. White hives wouldn't actually see too much change during the Beasmas of 2021. Other than the addition of a few precise bees in the hive, the build was basically identical. Although they would still make much more honey because of the gummy baller, unfortunately that didn't reduce the RNG required to be white. So not that many people ran it. As well as the fact that the gummy baller just costs a ton. Blue hives probably changed most in my opinion, as many top players became blue and flourished because of it. The addition of the point bee really changed everything up and it allowed for macros to strive more than ever before. Red hives also changed quite a bit. Currently being hives with the most pollen collection, which makes them ideal for puffs and runs and boosting. With the added benefit of a high attack total, I think we'll start to see a lot of people switching to red, not too long from now. Mixed hives, as always, basically just took the new features to the update and shoved them into their hives. And that's where the history ends for now. I have no doubt that the metal will keep switching around as on it continues to build its features in the game.  See ya.