Okay, so this talk is about Scython, who knows what Scython is? Or actually, who does not know what Scython is? Okay, that's cool, I didn't know one. That's cool. So this is kind of a general, like I'm going to show you a broader view of everything kind of talk. And so if you're already a Scython guru, you may not learn much, but you'll certainly see a lot. So to my person, I'm a Python developer, and most of the time I'm also a Python advocate since 2002, so it's been a while. And I'm currently working for Scooby, who does not know what Scooby is. Okay, yeah, a couple of people. Anyone likes reading books? Okay, go to Scooby the A, take a look. We are just great. You get unlimited reading for Android, iOS, like any device you like. And we change the way people read books. It's really that way it is. Apart from that, I'm a freelance developer, a consultant, trainer and this kind of stuff, so I actually do Scython trainings. So if you're interested in getting a bit deeper into the matter, you can talk to me after the talk. Or go to that page and have a look at what else I have. Then, well, there's a couple of other open source tools I'm working on, so I'm involved in the developer of LXML, the XML toolkit for Python. I've written a Lula integration for Python. Both of them are actually written in Scython, and so the main project that I'm working for is Scython. Scython is the topic of the talk today. So three little parts, a little intro, so we'll show you what Scython is, what it gives you, what's cool about it. Then a major part about Scython's type system, which actually involves a little demo, so you'll see Scython code, you'll learn how it works. What makes it cool, why it's so great to integrate with C code using Scython. Why it's so cool to write Scython code, how it works. And then in the end, a little quick high-performance features that we've added to the compiler. I actually got a bit confused with the times. I thought I only had half an hour. I actually have 45 minutes for this talk, and then you'll see a longer demo. So what is Scython? Scython is an open source project. You can go to Scython.org, take a look at the project, talk to us. There's a mailing list for it. Obviously, user's mailing list, so if you have any questions about it, just go to the user's mailing list. It's on, well, sadly, it's on Google groups, but you'll manage anyway. Ask your questions there, just come along. We are very happy to answer them. It's an open source project. It's a Python compiler, or almost a Python compiler, meaning you can actually take normal regular Python code and just throw it into the compiler and have it compile to C. It translates Python, actual Python source code, to C, using the C Python C API. And it features static code optimization, so you usually get a kind of a notable performance boost when you do that. The third thing that Scython is, it's an extended Python language, so you can not only throw Python code in there, you can also throw actual Scython code in there, which has an extended syntax, so it has additional constructs, which allow you to provide static type annotations, which tell the compiler, okay, make this fast, this is important, drop in to C, you'll see. And so it allows you to write fast extension modules for C Python and interface Python with external native libraries, usually in C or C++, but there's integration for 4.2, for example, and the C interface can be used to talk to any native code anyway, so just anything you'll find. Okay, so how do you use Scython? Well, basically you write Python code or Scython code. Scython then translates it into C code. The C compiler builds a shared library for C Python and you can import that module into Python. Okay, it works in Python 2 and Python 3. Actually, we had Python 3 support even before Python 3.0 was out and then we re-edit Python 3 support when it actually came out and didn't match the old implementation anymore, and we had the same for a couple of other C Python versions later, so it happens. It keeps happening actually, but we arrived in the code that you don't have to write. Okay, here's an example.  It has a class, doing nothing interesting. It has a function, passes the function into the class, executes it into, you know, the example. And then when you compile it, you can just use the Scythonize command for it. So when you install Scython, this will come with it, actually only in the next version, so the current version doesn't install yet, I think. But we're working on releasing it. There's the Scythonize script, you can just say Scythonize minus i, so do an in-place build of this thing. It compiles it, builds the shared library for you, and then you get a C file from it and the shared library, which you can just employ it and use. And it translates to 3,000 lines of C code. So that's a bit more than Python code you just saw. Why is that? Well, there's lots of quadabilities defined in there, which makes it support different C compilers, different Python versions, as I said, version two, version three, different minor versions of Python, lots of differences that came in over time. So the compiler actually has a lot of knowledge about how C Python evolves over time and adapts your code to it at compile time. There's lots of helpful C comments in the generated code that mimic your code, so it shows what code you have and that makes it kind of easier to trace your code through the generated code in case you ever have to do that. And there's definitely a lot and a lot of code that you definitely absolutely do not want to write yourself. Okay? So we write C codes so you don't have to. Okay? Okay, how do you do that? Now, in the back of this Python script, and actually, like, whenever you want to distribute a package to yourself, you'll use these details for it, normally for packaging it up and distributing it. And this is how you use Python in your distributed build. So you would just say add extension modules and they come from siphonizing some source files. Okay? And Python would just pick up the source files, compile them, build an extension object, so the metadata for it, and push it into the distributed setup function to build it all. For the more complex cases where you need an explicit configuration of your extension modules, for example, you're building against specific C libraries where you have some kind of dependencies and need to pass in options or something, you can, well, as before, as for any C extension module that you would build in Python or in this unit, you would normally create this extension object for them, which is the metadata for the build. Here, Sidenize does it for you. If it's more complex, you can do it yourself and just pass it into Sidenize. Okay? Works the same way. That just makes Sidenize pick up the metadata and build your code correctly. Okay. So what you get out of it is highly portable code. So Sidenize generates C code that compiles basically with all major C++ compilers, which means GCC normally, MSVC on Windows, but there are also people using it with the Intel compiler, for example, and it's production tested, right? Works on all major platforms, Linux, Mac, Windows, people using it on BSD, on really big machines, on all sorts of platforms, and it works in Python 2.4 through 3.4 currently, and we're keeping track of the development in 3.5, so that'll work as soon as it comes out. We dropped support, though, for really old Python versions, so the next release that we make will not support 2.4, 2.5 anymore, and, like, the old 3.1 version that no one should be using anymore anyway. But it still supports any recent, any somewhat recent Python version, even that version. So the Python language syntax itself normally follows Python 2.7, but we support Python 3 syntax if you want to write source code for Python 3. You just have to tell the compiler this is code with language level 3, this is a compiler directive, and it'll just compile your code in Python 3 mode. Regarding language features of Python itself, we compile and run more than 98% of the regression test seed that comes with CPython, which means that we have, like, pretty much complete Python language support.  Anything that says Python features is supported by the compiler. Comprehensions, any control structures, all sorts of stuff. There are only a couple of minor deviations that you're rather unlikely to meet in practice, which is we don't have the frames and functions. Does anyone know what frames are? Yeah, that's a couple of people, see? You don't need that. So we only have them for exceptions and profiling, okay? Which is the cases where you may actually meet them without knowing. And there are a couple of minor bugs. I can't see the URL, but just go to our homepage and click on it. Okay, so for speed. Python generates very efficiency code. There are lots of static and optimistic optimizations that applies to your code. It generates optimized code for the standard Python types, built-in types, many built-in functions also, which means that your code will simply run faster because Python understands it. There's static type inference inside of functions, so you don't have to declare many types, you don't have to tell it, like, this is list, this is an integer, this is whatever. It'll understand your code partly automatically, and you can help it a bit to make it understand it better. Okay. So a bit more about speed. There's a Python benchmark suite, which contains real, pure Python codes, including Django, including a couple of template engines, actually a couple of computational modules, like the real Python code. And just by compiling it, you get a factor of 1.2 to 2.4. It doesn't sound all that much compared to Python 3.4, but that's what you get out of the box. And you can make it a lot faster by, you know, add a little hand-tune. How's that done? Well, static type declarations. So, Python allows you to put kind of type hints into your code, which tells the compiler that, you know, this is not just any arbitrary Python object, it's actually enough to represent as a C int, and that will make the compiler drop some parts of the code that used this variable into plain C, instead of doing object operations on it. Some languages call this unboxing, so you may know it from Java, for example. You just, you know, the idea is to drop object operations into C, remove overhead, that's it. There's a syntax, which you can use in Python code, so in the Python language, but that's also a syntax for pure Python, so you can just add kind of this decorator here to a function, to a Python function, and have it either execute in Python, or the decorator will just disappear, or have it compile in Python, and Python will understand the decorator. The cool thing is that you can employ this exactly where performance matters, so you can profile your code, take a look at where the real bottlenecks are, drop some type annotations in there, and make it way faster just by optimizing some bits of your code. Okay, and you would normally, so for highly computational code, you would normally expect a couple of hundred times speed up. Okay, so here's the demo. Yep, so this is the IPython notebook, for those who don't know. And so here's a really tiny little example, it actually makes this a bit bigger, that's maybe too big, okay, there we go. So a tiny example that just says, okay, this is the integer, I'm assigning it a value of one, two, three, four, and then printing it, okay? And you get what you expect, unless it doesn't work, and we restart the kernel, restart this, okay, try again. Yeah, works now, okay. So what this does is, you have a C integer and your, this is a Python, it's automatically creating an object for you, wrapping it in a Python object and passing it to the print function, okay? Okay, another example this year, you get in some sequence of values or an iterable of values, then iterate over it and sum it up, okay? Here's an example we pass in range-chen, that's, well, this is Python 3, so range-chen gives you an iterable over a zero to nine, pass into your function and it'll add it up at the C level, meaning here, in this iteration loop, it'll get the value from the iterator, unpack it into a C int, and sum is a C variable, C integer variable, do a C addition here and return it and this creates an object again from the C integer variable. You can take a look, and it actually works, and since I didn't just say a Python here, I said this is a Python minus A code, it drops out a little type analysis for you and shows you, okay, this was your code, this is how it made, and you can take a look at what it made of it, and this is the C code it generates just for the iteration, and the fun thing about it, it does a couple of optimizations, so if you can read the API code, then this is checking for lists, this is checking for tuple, which is kind of the most common two cases for iteration, I mean, like iterating over the list, that's what you do all the time, right? So it kind of has optimistic optimizations that say, if it's a list, do it in faster code, okay? And you can see this line here is white, yellow kind of means this is Python operations taken place, and white means this is like plain C, and anything in between is, well, anything in between. And you can see this is like a plain C operation, so it just takes some add value, signs up to some, okay? Read the code. Okay, and gets the right result. And this is all done automatically, right? So you just write down your code as you would in Python, you're saying these two variables are integer variables, and that's all you have to do, that just works. Okay, here's another example, so you get a character pointer from somewhere, so that's kind of the basic C string type. You can call len on it, which internally calls string len, and then print it, so that would call string len, get a size C value back, convert that to a Python object, so an integer object, and print it, and when you return the character pointer, it also knows that it needs to convert it to an object, so it converts character pointer to a byte string. Okay, and it works. Okay, encoding and decoding. Again, we have a character pointer, and we say, well, decode it as UTF-8, and you get a Unicode string back. Okay? It's kind of as you would expect, if it was not a character pointer but a byte string, the same would just work in Python, exactly the same way. This is a bit more inefficient than it needs to be, because C string, so character pointer strings in C don't have a length associated with them, they're just pointer, and so in order to figure out how much of the string we have to convert here, we have to call string len on it, and since I already know, so it calls string len, and then passes the results of the pointer and length into the decoding function internally, and since I already know how long the string is here, it's like seven characters, I can tell it. I can just slice the pointer, and that's more efficient, because there's no runtime stringing detection necessary anymore. Okay. One more thing here, what we got back is, so we had to do a manual decoding here, okay, what I want here is, not the byte string that I would normally get, but decoded by UTF-8, and then return the Unicode string, and you can automate that by saying, okay, what I actually want is not byte strings, I want Unicode strings, and the encoding for that is UTF-8, so this is again a compiler directive that you're passing in, and then you just have to say return S, and it'll return the decoded Unicode string for you, all automatic, okay? So this is kind of the comfort you get by the type system. Okay, here's another little example, I'm using the A2I function from the C standard library, and I'm using it to parse a byte string into an integer, okay, that's what it does. So what I do is I write a Python function that gets in some kind of byte string, I call A2I on the byte string, add one, return it, okay? Works, so I'm passing in a byte string here, I'm calling it with byte string as argument, I'm calling it with byte array as argument, both works, both queries to C character pointers, A2I gets the character pointer in, returns some C integer value, Python generates code that adds one, then you say return that, it converts the integer value to Python object returns it, okay? Okay, here's a C++ example, I'm using the standard library, the C++ standard library, the STL, and I'm using two objects from it, a string and vector, and what I'm doing it is I'm taking a byte string here, splitting it, this is like playing Python operations, which gets me a list, a Python list, assign it to a vector of strings, so that's a C++ code, it gets copied into a C++ vector for me, I can print the vector, which needs to do a translation back into Python so that converts the C++ vector into a Python list again, and prints it, I can just show you what it does, okay, we're running it, so printing here gets me the Python list of strings, and as you see, it's been decoded, as I asked it to automatically decode for me, and then I iterate over the vector, and whenever it's found, I find this little string here, this byte string in the vector, I print it out, so here you can see it's been found, and the next thing I'm doing is I'm passing in a position into the function, and I'm just indexing the vector, getting the whatever index value I want, returning that, and I'm calling it with index one, index zero, and it tells me that at index one, it's D, H, and scrolling down, at index zero, it's A, B, C, as expected, so back and forth, Python, C++, back into Python, anywhere you like. Callbacks, who's been using callbacks in Python? Okay, basic idea is you pass a function into some code, and you want the code to call your function, okay, at some point, whenever something happens, or for any item in this or something, that's the basic idea. So if you do that in C, it's a bit more verbous because, well, functions in Python have state, they have closures, and C does not have closures. All you have in C is pointers, and so the way callbacks work in C is you not only pass in your function, so a pointer to your C function, you also pass in a pointer to some state, some data somewhere, which is then, when the callback is called, pass into the callback so that the callback can make actual use of it, know what it has to do. Okay, otherwise you couldn't remember in what state it's supposed to process something, because C can't remember it. So the normal signature of callbacks in C is you pass in some void pointer which gives you a context, and, well, some more data the callback should be operating on. Okay, so here's a function that uses a callback. As I said, you pass in your function pointer and you pass in the context. Okay, so the void pointer that keeps the state for the callback. And then what I'm doing here is I'm passing in the character pointer, iterating over it, looking for the end, and whenever I find a small or uppercase A, I call my callback. Okay, so I'm running through byte string and then I find A, I call the callback and tell it here's a byte string, here's what I found. Okay, and then I'm implementing this callback and I'm saying, okay, the context I'm getting in is actually byte array. So what I'm passing through here is not an arbitrary void pointer, it's a pointer to an object, a Python object. And then whatever character was found, I'm pending to the byte array. Okay, so I'm collecting A's. Basically, that's the idea. Okay, and here's the function that calls it all. So I'm creating the byte array and then call my function, the processes some string, tell it whenever you find A's call this append character function and the context I'm passing in is a pointer to my byte array. Okay? Then when I call it all, I pass in the byte string and let the code operate on the byte string. And here it is, it found all A's. So what happened is I called this function here. It told this function, here's the callback, here's the byte array, do stuff. And the function called my callback and appended all A's it found. Okay? Okay, that's it for the general part. I have a couple of more and a bit more time. Okay, here's an example. I'll just restart that channel too. Okay? So here's an example of using structs in Cython, a C-struct. This is the way I would define a C-struct in my code. I'll say, so C-def is kind of the keyword that tells you, okay, here's a C definition coming next. And then I say I'm defining a struct called point. It has two double values, X and Y and an in-value color. It's a C-struct. Then I have a function here, a Python function that uses this struct and I'm creating the struct here first. And the cool thing is I can actually use object creation syntax. I can say create point for me, X is one, Y is two, color is 123 and it will assign the values to the right struct fields for me. Really nice syntax, I like that. But I really like it. Then I'm printing one of the values here. This should actually have parentheses. It doesn't matter because I'm writing a Cython through code, but it looks better. I'm running it and... yep, so I'm creating functions and then when I call it, it prints 1.0, which is double value of X and it returns a dict for me. Who would have expected that? What I returned was D struct and it's automatically turned into a dict for me. Which is kind of nice. It definitely helps with debugging when you can just say print the struct. It's kind of the one obvious way to represent structs because they are named value pair as more or less. This is how structs work in Cython. What else do I have? Again, a bit more time. I'll give you an example of our Unicode processing. I'll restart that too. Here's a little function that iterates over something in Python. We're not telling you what it is. I can tell you it's a Unicode string that I'm going to be operating on. I'm iterating over Unicode string, enumerating it, and then for any character, I find that it's numeric. The first character that I find is numeric, I return the position. Then I'm creating some dummy data here, string escalators, lots of times, and then putting 1, 2, 3 in there because that's what I'm going to be looking for. I can run the whole thing like there's a position way back in the string which has what I'm looking for. I can just run time it on it and see how long it takes. Kind of okay. Not too slow. Now I'm doing the same in Cython. What I'm actually doing here is I'm using Python syntax. I'm not using a Python CDF something syntax. I'm actually changing my Python code to stay Python code. I'm just telling Cython when you compile this code here's some type information that you can explore to make it faster. What I change is I'm importing the magic Cython module which is kind of a dummy module when you use it in Python but Cython understands it and goes I know what that module does. It has a function called locals which allows me to define types for local variables. And here I'm saying s so the argument I'm passing in is actually a stir so this is Python 3 so it's a unicode string and I'm saying that here is some weird little integer type which Python uses internally to represent a unicode character. So this PyUc4 thingy is there to you can put any unicode character in there it's an integer type that represents the unicode string the unicode character and the rest of the code is actually unchanged as before and so when I run this through the compiler it tells me I generated this code for it and it tells me well this is using some speedy C API code to find out if the character is numeric this does a bit more and the main thing it does is it doesn't do really much that many checks of s maybe none before it iterates because none doesn't iterate and then for turning I it has to convert it into a Python object again and the rest actually runs in C so here's a comparison time it on both which apparently runs for a while yep and it's a tad faster okay so the well I mean the major difference is it's the Python implementation runs in plain C and the other one runs in Python so the difference here is not entirely unexpected okay I mean this is milliseconds, this is microseconds yeah, factors okay that's pretty much what I wanted to show you as a demo now quickly about the high performance features that we added to Cython so yeah, part 3 so there's a couple of features that people use when they're doing large data processing when they're doing processing with NumPy data for example, NumPy arrays usually then what they want is a way to unpack these objects these NumPy array objects into something that they can process efficiently at a native level so they want to basically iterate over the arrays and do processing on them okay that's usually the main idea what people want and we have added a simple syntax for it which looks a lot like what you would do in NumPy like the normal NumPy slicing syntax and this is a syntax for unboxing low-level data that is kind of like the n-dimensional okay that includes one-dimensional bytes objects but also NumPy arrays, 4-term buffers, c-buffers image processing is done that way lots of applications to that and all you have to do is you have to say this variable here, this argument I'm getting in is actually a two-dimensional buffer so two columns here two arguments, of type double and that's it then you can iterate over it you can just say this is the size in one direction, this is the size in the other direction, I have a nested loop over it and all I'm doing here is adding one to each item in the array and this turns into c-code so a nice second feature of these memory views here is that they support efficient slicing so without changing this code you can just say, okay I don't want to run the code over the whole array I'm only interested in all even lines so every second line and you just slice it, pass it in done exactly as efficient it just recalculates the buffer layout in memory and runs the same algorithm over it okay, views typed next big topic it allows you to have one implementation with many specializations that's also very common in numerics that you want to write an algorithm once but have it run efficiently on lots of different integer types, floating point types like item types in arrays okay and you really just want to implement it once because it's hard enough to get it right once and you don't want to copy-code over so what we've added for that is what we call views types it's kind of compile time generics and the way it works is you say I'm defining a type, a views type which I call floating and it's made up by two different types two different c-types one is called float and the other one is double and the 64-bit float and then you use it in your code and Scython will just understand it and will say okay, so I'm getting the buffer in here but it's actually a views type buffer and so it will split up your code and generate two versions from it one that's optimized for 32-bit float and one that's optimized for 64-bit float you get that all automatic we have predefined types which are floating point types or integral types or numeric types but people use it with I've seen code that uses huge lists of different types for views types here and just writes an algorithm and it expands into like 30 different versions of the code if they need it, it didn't so far okay, next bit as I said this is really quick run over everything openmp, so parallel code that's another thing that people love in numerics they want to parallelize the code because they have huge amounts of data and they want to use as many cores as they have right, or more they always want to use more cores than they have but they can't so there's a way to have thread parallel loops and also thread parallel sections so this is not only usable for numerics it's usable for any thread parallelization in your code and all you really have to do is you replace the 4i in range in your loop by 4i in p range so that's a special site on parallel module that gives you this and then your code runs in parallel that's it what you should not forget is to free the gil so that you get both thread parallel code but again that's all you need to do so p-range free the gil and then you have c-code that runs in parallel on your machine okay so pretty much through for conclusion so siphon is a tool for translating python code to efficiency and it allows it to easily interface with native code I mean you're seeing that you're calling a2i is just like a2i you use it to speed up existing python modules so you can concentrate on the optimizations you don't have to rewrite everything in c or whatever you can just drop it into siphon optimize it a little see that it works fast and that's what you get without major changes in your code you can write c extensions for c python in python in actual python code you can just swap languages and you can wrap c libraries in python by just calling c functions right out of your code and implement a nice wrapper for it in python code so you can write a class called c code and it's the interface that you get so you can really concentrate on writing an efficient mapping for the c code to python code and you get a nice api and you don't have to care about too many details about low level stuff okay and siphon gets you all the way from python to c and what I really like about it is that you can use it as a parito language does everyone know what the parito principle is? the 80-20 principle so that's exactly the type of language it is it says you get 80% of the benefit with 20% of the effort and siphon really allows you to find the right 20%, do some stuff there and you get a huge speed up so it's dynamic and simple way it will stay dynamic and simple where you can in your code and just go steady and low level where you must so siphon supports fast code writing just as well as writing fast code thanks thank you stevan for this very nice talk we have 5 minutes for questions, there's a microphone next to the camera please come to the front can you hear me? how difficult would it be to include external c or c++ libraries not just the standard library for example boost or something else oh yeah boost boost is template driven so it's not entirely fun to do it but siphon has template support so you can declare a class and say this is a template class I don't think I have an example here so we have documentation on the page that tells you a couple of examples how you declare your code basically what you do is you say cdiffextern so this is an external declaration and then you just copy the definitions you say this is a class and these methods are in there c++ class with these c++ methods add a marker that's templated and that's also what I did here for the atoy example so the atoy example just works because we are shipping the declarations for the standard c library we are also shipping the declarations for the c++ stl containers so you can just use those right away if you have your own stuff you can declare them it's totally not much work you mostly just copy stuff from your header file declare it in the way siphon wants it and then you can just say import stuff use it regarding generics and fusing the types so you are supposed to use templates for c++ so this is the templates instead of defining your fuse types in siphon it's a different mechanism I don't think so because siphon has to understand these types somehow and templates don't really have a type yeah exactly so yeah no it's a different mechanism it kind of you can use it for the same thing but this works at the generics or code generator level and the other one would work in the c++ compiler level we are using siphon extensively in our machine learning library but one problem we have is we lose all the support for the static code checking for example using pylint on sizing files isn't possible we can use the decorators with the locals for example sizing.locals but for cdev classes or something else there's nothing similar or that also works so we have a syntax you can look it up in the documentation so there's a lot of the so actually most of the syntax is available at the python level but only the things that can actually be used from python or sensitively used from python so what you can't do is talk to ccode because there's no presentation for talking to ccode from python in the way siphon would allow it to do so there's no real mapping so if you use a python syntax for your siphon code then you just can't talk to ccode but that's about it everything else or other language features are available in pure python mode as well okay any more questions one more last one hello first thank you for the talk second I use siphon in the past and I had trouble between moving from linux to windows because simply the compilers were different I mean it was simply because one compiler was ignoring something like siphon generated which was senseless but the compiler ignored it and so I was just wondering if you have some kind of test suite to be sure that code emitted by siphon works on this precise compiler you have on this machine so we can have something like a limited warranty that it will work so as far as I understand siphon was about testing how do we assure that in fact the c generated was not quite incorrect but in the gray area and so MSVC was saying this is illegal which was one correct position and GCCU was saying something else but I said okay I ignore it it's senseless so most of the development of siphon itself is based on either Mac or linux so all developers are basically like no developer is working on windows so that's a call for help that is a call for help so if you have any windows based developers here which is kind of rare on a python conference but it happens there are really people doing serious development work on windows and so we can always use help there but as I said so the main development work so the core development work is happening on windows and Mac so we have GCC and C-Lang in the loop but we do not have MSVC in the normal development loop we just kind of test it after the fact so the people run it through there MSVC compilers test our test suite on their machines tell us if it works and usually it does not work before release so we fix it and when it goes out as a release it usually works there I don't know it's just an idea but maybe when we install siton we could have the option of running a test suite to be sure that the machine does work as because maybe not so many people are windows developers but maybe they use siton on windows and test it and just to be sure I have these settings and does it work you can run the normal test suite it's part of the source distribution okay then we are at the end thank you very much again


Born on October 5, 1997, in the heart of Southern California, Michael Pittman Jr. was a football prodigy right from the get-go. His high school years were nothing short of spectacular as he spent his freshman year at Valencia High School before moving on to Oaks Christian for the remaining three, as a senior Pittman unleashed a display of skill, capturing the attention of football enthusiasts far and wide. 81 receptions, a staggering 1,990 yards, and an impressive 24 touchdowns. These achievements earned him the well-deserved title of first team All-America by both Parade and Max Preps. This solidified his status as a grid iron sensation.


Welcome back. Now it is time for us to look at an important idea in thermodynamics known as the equation of state. We go back to two premises. The first state postulate it said that the state of a thermodynamic system can always be defined using primitive variables. Then the second postulate it says that the number of independent intensive properties required to define the state of a system is the number of two-way work modes plus one. This means that if you have a simple compressible system containing a solid, a liquid or a gas, two properties are required to define the state of a system of fixed mass because we are talking of a set of intensive properties. So that means if we have a, for example, a fluid system, system containing a fluid, we may even consider a solid to be an extreme case of a fluid, then two primitive properties would define the state of a system. So this could be pressure and volume and to make it intensive properties, we may consider them to be pressure and specific volume. Specific volume is nothing but volume per unit mass of the system. So this implies that any other property say temperature must be some function of pressure and specific volume. Such relations, particularly the relation between pressure, volume and temperature is known as an equation of state. Another important equation, although we do not generally call it an equation of state but which from a thermodynamic point of view is an equation of state is this important relation. For a fluid system, how does the thermal energy depend on the state of the system? It is an equation of state but we may call it the thermal energy relation but it is as much an equation of state as is this. By default whenever you say equation of state it is the relationship between pv and t. Now here f is some arbitrary function depending on the type of fluid, this relation could be rather simple, this relationship can be very complicated. Now here we have used the first state postulate and written pv as our independent variables. But this relationship can be turned around and we can write this as p to be some function of t and v or v to be some function of p and t. It turns out that from a point of view of measurement it is very easy to control and precisely measure these two parameters pressure and temperature and that is why you will notice that in any tabulation properties of fluids, properties of steam, properties of gases the table is in terms of these two independent variables pressure and temperature. When we come to the study of steam tables you will see this in action and perhaps a most general relation is to say that look rather than decide whether pv is independent or tv is our independent pair of variable or even pt. Sometimes we say that the equation of state is represented by a function like a general function of pv and t which is 0. Where again here remember this f, this f and this f do not represent any specific function, they represent some well defined function as required in that particular case. Thank you.


Hi everyone, Joe for jaspyscasebreaks.com coming at you with 2019 tops triple thread baseball three box picker team number two From that same inner case that we busted open yesterday. My first three boxes were really nice Let's hope the trend continues here a big. Thanks to all of these folks right here The rooftop next your name means you won that in a team random. There's just one And that video should be did I upload that video? Yeah, I did that video is up if you want to see the the results of that All right, let's pop this open. Let's see what we got the final third of the case is in the store We don't have any more at least I didn't see any I don't think we have any more triple threads after that So if you're a fan of the trip threads Then I can get into it before it's gone And people are gonna be like hey any more trip that really know I told you Pick your team three box picker team three was it like man you getting any more and I'll be like I don't know Who knows all right, there's you on Moncada to 259 for the white socks Josh Hader to 299 for the Brewers Brian with the white socks Jack with the brew crew. There's Albert Pujols for the Angels Dargon with that. That's to 259 and Raphael Devers to 299 for the red socks also for Dargon Watts Some base cards here Everything will ship though You know per usual for bricks like this. All right behind Jim Palmer is Rowdy tell us triple relic and autograph to 99 Blue jays that'll go to Jacob Johnson. We got for the Giants Evan Longoria 28 out of 36 This teammate Buster Posey opting out of the exhibition season this year That'll be for a big boys 007 which I'm buster and I think Buster Posey has newborns to Make sense. Oh one of one. Wow. This case this enter a case must be a hot case One of one will Amir's That is for the Padres. That's gonna be for EA 28 and 28 homers and steals. Yeah, that's pretty good Just short of a 30-30 season Nice, there you go EA All aboard the Big Hit Express And behind Byron Buxton is Jersey and autograph Mike Fulton-Evitts 24 out of 75 Yeah, when's the last train was for you? There you go nice Braves that will be Christopher who won the The Braves in a team random box to I wonder if we're gonna start to see more more older Sort of well-off players, you know I think maybe older guys that are that have been on the vet minimum for a lot of their careers You know, maybe maybe they won't be opting out of the season But Buster Posey opted out with Goodreads family, but you know, I wonder if some if more players will just say Not comfortable.  I got my money I'm maybe I'll just sit it out and just be be a hundred percent next year and go full bore You know, maybe give some of the younger players a chance Especially the players who minor leagueers just didn't have seasons. You know what I mean? They can make a little money there Little Major League money a little show money and give them some experience for the following season as well There's John Smoltz 299 Randy Johnson Diamondbacks addition to 99. Let's see what we got behind these guys here And we got Danny Jansen 42 out of 75 Was Danny Jansen? It's a family show folks. So easy careful. I answer this question Is Danny Jansen the one that or was it Reese McGuire? I got in trouble in the Parking lot. All right, Blue Jays that goes to Jacob Johnson And we got one Soto relic right there for Dargan Watts for 27 it was Reese's jet All right, Danny Jansen is cool. So I'm sure Reese is cool, too. All right behind the man of steel is Legend triple relic Barry Larkin 10 out of 18 Nice one for the Red Legs Dennis You think Reese McGuire ever lives that down and we got Louis Severino Autograph Jersey and auto nice 76 out of 99 Robert with the Yankees. I mean teammates have to rib him about that for like the rest of his life, right? Maybe not the rest of his life this season for sure Third and final box. There's my voice a little bit here. It's not good That was Buster Posey who opted out and the triple. Oh, that was gonna be a triple auto. No five out of 18 Trio of Phillies Jake Arietta Reese Hoskins and Aaron Nola This trio might have some of the best penmanship in all baseball Tom with the Phillies I know these two definitely upgrade autographs And we got another blue J Ryan Barugui 32 out of 50. It's another one for Jacob Johnson who won the Blue Jays in a team random triple relic an autograph Isaiah Kiner Faleffa 15 out of 50 Texas Rangers that'll be for Chris and the last one here is Gonna be Wilson Contreras Because brother William Contreras is in some organization Phillies maybe and that's nine out of 36 Cubs that'll be for Matt V. There you go Matthew on The board at the very end with a little something all right That was a quick little break three box pick your team number two 2019 top strip of the Reds baseball The final third of the case final three boxes in the store now check it out Jaspys case breaks calm I'm Joe and I'll see you next time for the next one. Bye


So whatever you cannot perceive through five senses, if you perceive that, then that is called as vicesha, gyan or extraordinary knowledge. The nature of the universe can be grasped. If you know the language of the inanimate, every form, how it is made, as the concerns of survival, receipt, human beings will naturally evolve into perceiving higher things. In the yogic system, we look at the human mechanism like this. There are five dimensions to it, there are five layers to it. Usually it's referred to as sheets or a… it's called, that means sheet, one inside the other. One is the physical body, which is referred to as the food body, because this is essentially a heap of food that we have gathered over a period of time. The next is known as the mental body because we ascribe intelligence to every cell in the body. There is more memory and intelligence in each molecule of DNA than you can decipher through your brain, that much of intelligence and memory is sitting right here. The third layer is called as the energy body. There are three fundamental aspects to it. But it's the first two, which normally are experienced by most people. The right and the left, which has thirty-six thousand on the right and thirty-six thousand on the left, pathways or channels, which are described as nadis, which meet in one hundred and fourteen different major points and these points are seen as possibilities. So mysticism identifies this one hundred and fourteen, the geography, the energy geography of the body and how you could exploit this to transcend the limitations of the human mechanism. Now the fourth layer is called as Vighana Mayakosha. What the word Vighana means is, it is coming from two different words, Vashesh Gyan. Gyan means knowing or knowledge. Vashesh means an extraordinary way of knowing. So whatever you cannot perceive through five senses, if you perceive that, then that is called as Vashesh Gyan or extraordinary knowledge. So we are talking about a transitory dimension, which is transiting from physical to non-physical. So the fifth dimension, this is in whatever in the New Age language in America, they are saying this is an etheric body. It's not an appropriate description. It is a transitory state where physical is fading out into non-physical nature. The fifth dimension is referred to as Anandamayakosha, which literally translates as bliss body. This does not mean there's a bubble of bliss or something inside. It is purely non-physical in nature. Because it is non-physical, we do not know how to define or describe it. There is no definition to it, there is no description to it. We are only talking about it from our experience. Whenever we touch it, we feel blissed out. So like children, we are calling it bliss body because we do not know what is the nature of what it is and it is not physical in nature. So we cannot put it into definition of words or descriptions or whatever. Now to enter into this dimension is the whole process of mysticism because this non-physical nature is further classified in terms of our experience. How profoundly you involve in it. They talk like this, you can be in a fine spray of shower from this non-physical and how you will be. Or you can be drenched with it and how you will be. Or you can soak yourself in it and how you will be like this it is described. In this context, it's a... Here I'm... I have to surrender my logic a little bit because that's how far my logic will go. What this means is, these are referred to as different dimensions of stillness. How can stillness be of different dimensions. For example, in our experience, if you're normally a human being is breathing somewhere twelve to fifteen times per minute, breath is very directly connected to how the mental fluctuations happen. I don't know if science has explored this but in our experience it's very much there. Suppose naturally, not by effort, by doing the right kind of things with your system, naturally if your breath drops below eleven, then you begin to understand various reverberations that are happening around you in terms of all the subsonic sounds in which the animals are communicating becomes very obvious to you.   This is known as Ritambara Pragyana, that means the reverberations of every form and the sounds attached to it become very clear to you or in other words, the nature of the universe can be grasped. If you know the language of the inanimate, every form, how it is made, what is its nature, what it is right now and what it will evolve into or what it was yesterday and what it is evolved into, all this is becoming apparent to you. As the concerns of survival receive, human beings will naturally evolve into perceiving higher things. But the important thing is the level of static because breath is a survival process. If you sit still, it goes down. The more still your body becomes, the less you breathe. If you bring your whole system to a certain level of stillness, not being in a hyperventilated state, then your perception goes on increasing. So as the stillness deepens, these are referred to as, you know, traditionally there are various ways in which it is presented, it is usually called as... it's called Rudra, Hara and Sadashiva. One is still but he's vibrant, he's roaring. Another is still but he's in activity still. Another is absolutely still. Now always that which is absolutely still is referred to be as the ultimate intelligence. Everything else in its anxiety to be active, it is sacrificing its intelligence at a certain level to be in a state of action. But that which is absolutely still is considered the highest intelligence. It is only in Eastern mysticism the source of creation is been always celebrated as the highest intelligence. This is the biggest mistake I think modern societies have made is people were told God is compassion, God is love, God is generosity. These things mean something to you only when you don't have them. If you're not loved, you will look up, God should love you. If you're not fed well, you want a generous God. If you are down in somewhere, you want a compassionate God. But if you don't make any assumptions, if you look at a blade of grass, if you look at a flower, if you just look at the structure of an atom, one thing is the source of creation is the highest level of intelligence that you can ever recognize anywhere. If you look at the creation, it is smacked with intelligence all over the place. If we had only told people, God is intelligence, we would have had a more sensible world. That's what I'm thinking and that's what I'm trying to bring it into people's experience, that the source of creation is the intelligence. If you recognize that, you try to emulate that.


So how was the sessions coming so far? It's all good? Yeah, I allowed Shubhra's session on talking about the potential of immersive metaverse. And as you see, from the static.com era, we've been moving to the interactive sessions. And then right now, we're talking about the immersive digital experience of metaverse. So that evolution and the projection for the next decade, if you're talking about 2030, it's almost $13 trillion. So let's talk about how do you feel about the readiness for the next stage of metaverse? Shall we start with, oh, we don't have a mic here? And would you like to introduce yourself, Mukund first? My name is Mukundan. I'm the principal solution architect for digital twins and omniverse from NVIDIA. So I've been working in this space for a little over 14 years. And that's a bit about me. Yes, please. Hi, I'm Shivang Desai, the co-founder and CEO at BigThings. And we're an artificial intelligence company focused on fashion and retail, particularly around immersive experiences for the consumer. Hi, my name is Anand. I'm the founder of RxSeries and the CEO of Metalap Technologies. We are into building blockchain games, especially towards the mobile end of the spectrum. Namaskaram, everyone. I'm Pankaj Raut. I'm co-founder of Arsenal Lens. We at Arsenal Lens make our own augmented and virtual reality hardware, plus we have a platform for learning and development within the metaverse space. Awesome. So if you're looking at right now today, we have 400 million users. If you're talking about GenC and GenAlpha, they are living in metaverse, right? So what do you feel, like, how is your organization being ready for that? So again, the word metaverse was coined way back, and it came into practice probably two years back. But if you look at the maturity of each technologies, which is being categorized as metaverse, starting with AR and VR, it's been there for a little over a decade. It's gone through the various curves of learning, places where it has made a massive impact, especially in the learning space and also in auditing spaces where AR has made a big impact. And there have been some places where it has not been made an impact. Now, while the technology is maturing, there is also the hardware, which is in parallel also maturing. Absolutely. Again, the next big thing, what I would like to add upon us, there's a limitation when it comes to hardware, because there is only so much horse power that can fit within the hardware. Let's say a virtual reality headset, it's based on a CPU-based, and you can only throw 50,000 polygons at it. But now what we are talking about is cloud rendering, which means I can throw 50 billion polygons, and still I can make it run in an Android device, like an Oculus Quest 2. Correct. Seamlessly. I can have a natural language conversation with a game avatar, which doesn't have a person behind it. And all of this is happening because of the power of AI. Correct. So AI is going hand in hand with immersive tech. So what has been happening so far is world building space, and then on top of it, you have a human-led interaction. Now it's completely transformed into an AI-driven interaction. Yes. That's a bit of a wonder to ask. Yeah, to complete this immersive experience today here, like Mike, the CEO of 3DM, who was supposed to join us, but he couldn't come. So he should have brought him as a hologram here. And so that would have been a good experience. What about you? So how do you feel like what we are preparing for this experience of 400 million users today on the Metaverse? I feel there's a lot of people out there that want to use this. But they're confused about which channels to take. Gaming right now is one of the biggest ones as an entrant for people to start using it. But as it filters out into other industries, we work in retail, and we see a lot of people beginning to adopt. But there's still a lot of uncertainty around it. And this is where we need to start bringing down those barriers that are causing the uncertainty. Particularly on the last panel, there was a panelist speaking about data and ownership of that data. And people need to get comfortable with the ownership of their data being in their own control. And as this happens, and as the masses get educated about this, we will begin to see this mass adoption of 400 million people actually fully immersed and engaged in the Metaverse. Absolutely, yeah. Data ownership and self-sovereign ideas are the thing to come to evolve. What about you, Anand, the gaming king? I agree with Mukund. Metaverse is a fairly new world, which has been floating around for the last maybe three years post-COVID. But as individual pieces of technologies, these have been there for the last eight years. From the day Oculus, or even before Oculus was brought over by Facebook, there was a company called Oculus. And they were already into this. So why Metaverse suddenly is everywhere is because probably of COVID-1. And number two, because of the ownership which you can have on the digital things which are in the web, and the decentralization, of course. So the numbers which you're talking about, the trillions of numbers, is mostly geared towards the ownership on the transactions which happens through that by selling and transacting. And yeah, the use cases are 100, 200, 300. But last year was mostly about digital arts, 2000, 2001, 2002 fairly, was about anything NFTs were selling. Now people are asking questions on why should I buy this NFT? On and above, it's looking great. It's a good art and all that. And as I'm a part of a community, but why should I buy this? What does it give me?  So the use cases have to address all the companies and the projects have to address that. And then I think we are on the route to reaching those numbers which are being filtered around. Yes. When we started Arsenalence, we had only one simple vision that we want to create impact on society using technology as a medium. So after that was like AR, VR, metaverse, everything came in. It's very good to have them for marketing and for a password to get traction. But the real impact is what should be calculated and that is where we have been focusing on. At Arsenalence where we have deployed it is in Karnataka itself where in 18,000 individuals come onto the platform and learn vocational skills such as pre-painting and welding. So these people are people that have come from very, very tough background. People who have just seven pass, eight pass, having a really bad home situation, no one is earning at their home. How can we use technology to help them become really, really proficient? So proficient that they can take part into world skill competitions, make them qualified so much. Secondly is help them learn fast, learn accurately and get jobs faster. So that is where I think the technology should move. Although we should use all these words for marketing which will help build attraction. But this is where I think one of the biggest use cases lies is skilling, the learning and development within the metaverse space. That's right, yeah. So as we were preparing for the metaverse fashion week, with my upcoming brand Envied Future, so the question I had when I was working with Akshay and 3DM was like, will my avatar, which is in one metaverse, like will it work on the other metaverses, right? Because we are talking about a multi-verse or an omniverse at this point. So I think the main thing which is coming up is interoperability. So what does your take on like, how do we enhance the interoperability between verses? So again, in the current scenario, right? Most of these M platforms or metaverse platforms, they work in a walled garden setup, which means they don't want to share the user data with anybody else. Correct. But now if you see there are already some great players who are trying to bifrigrate the entire ecosystem, where you create one avatar and you can use that as the avatar for shopping in Flipkart or you can use the same avatar to go and visit a hospital clinic in a world. But this is again a large move and this requires open-mindedness from all customers, right? So there needs to be exceptions from the... When you say customers, did you mean the metaverses or the people? The companies, the companies, right? So it's about exposing the client data. It's more like the thought. They're not exposing the data. It's more likely the common avatar, which is going to come across the ecosystem. Correct. But it is the company who has to go and sign off saying it's okay to let another avatar ecosystem onto my brand. Correct. A quick example here is NVIDIA as a company. We are building an avatar cloud engine, which is completely interoperable. Yes. And the motive here is to completely decentralize the avatar ecosystem itself. With one avatar, I can represent a complete virtual version of myself. It can look exactly like me. Yes. With the right dimensions. So I can use that avatar to go and shop online. I don't need to again go and supply my shoulder size or my waist size or any of it. It will be an exact replica of myself. Absolutely, yeah. If I would want to attend a conference, I can go and dress myself as a formal suite, and then I can go and attend. And if it's for a party, I can go and look the hipway. Right. And all of this is feasible if we could all bring it all under one umbrella and then build on top of it. Absolutely. So I see Mike there. Mike, we were expecting you on a hologram to be in this Bangalore conference space. We cannot hear you, Mike. One, two, can you hear me well? Yes, yes. So I was saying we were expecting you as a hologram here. Mentally, I'm there as a hologram. Physically, we're not there yet as a humanity, but we're gonna get there. Yes. As a promoting person in BDA. Yes. And their strategy ahead. So Mike, we're talking about interoperability and when there's multi-verses, how do we promote more interoperability between the avatars moving around between versus and all that? So would you like to add something to that? First of all, a pleasure to be here. I would have love to be there physically, but everything that's happening in the world just makes it impossible right now. But it's exciting to be there and be able to share my 50 people advice with this great panel. Now I'm gonna be a bit more open-minded in my response in this question. I'm not really a huge advocate of interoperability. I'm a bigger advocate of omniparability. And what I mean by that is that I do not think and I don't feel that is correct or has a prudent business strategy to talking about having one avatar and taking it everywhere. I am however, and I am more bullish in the fact that there's gonna be a multiple different avatars or digital twins that can omniooperate and across different worlds, across different channels. And what I mean by that is that blockchain is just gonna allow you to gather same utility or same form of data into different worlds, into different digital twins across different channels, not necessarily having to using the same asset, but at least transferring the same kind of data ownership and data information across the different worlds. And I think that is a much bigger bet and a much more realistic bet into trying to consolidate basically the experiences across multiple environments and being able to create a much more realistic notion of giving a user the same providence, the same power across different experiences rather than just trying to solve this question of interoperability of taking one asset everywhere because in reality, it's not gonna work and you have to have a lot of good faith, a lot of parties working together with a common cause, which is not usually the case and there's a lot of competition as much as we like to try and be romantic about it. So we should always be rethinking from a different perspective. Agree, agree. What about you? What do you feel about the interoperability? So one is that, thank you for describing our business model, hyper realistic avatars that have your shoulder size, your looks and then you can try it on a shopping. Now we do hyper realistic avatars but so does Mike and so does ready player, now Mike does different kinds of avatars. Ready Player Me does different kinds of avatars. There are stylized avatars, realistic avatars. When you come down to the technology, they all behave very differently. Yes, at the core they move, they animate but beyond that, the avatars that you use for shopping are a lot more complex because they're designed to take your body shapes. But whereas the avatars that you use for gaming, you may not want to see yourself as a hyper realistic avatar in games and we actually see that a lot. People want to play as stylized avatars of themselves and they want to go wild in games. So this is where the difference is. Interoperability as a concept, as a singular concept may not actually work out in the way that, much the way that Mike was also talking about but we can see omnioperability and that is also what we believe is going to happen where you have different systems and different companies that supply it but across the same use cases. So you have the metaverses, you've got meta and sandbox and Decentraland and Roblox and Fortnite. All of their avatars look very, very different from each other and all of them perform very differently and the idea with interoperability in this case is to be able to use your own data as a user but fit into the systems that these metaverses have created for themselves so that users are the most comfortable in those environments. So we are talking about interoperability in two segments here. One is interoperability of assets which are your avatars or anything for that matter and two interoperability of NFTs which are your ownership. So we are also talking about decentralization of applications, of social media platforms and whatnot. And games, now the largest scenario is we are selling NFTs, giving NFTs for free, we are selling digital avatars, everyone is doing that. Imagine if I'm asked to buy a NFT to access a platform and then the platform tells me, okay, you pay me this much, you can access our platform, tokens, all that, et cetera, et cetera. Now there is another similar platform which is equally good and they are also telling me, you also need to buy a NFT for you to access our platform. So how does this work out for a customer if there is no interoperability? So, but I think it has to start with NFTs which are ownership in its first case but there are a lot of roadblocks for that, the backend system has to support that but NFTs are basically you're fetching your data, your own data from the ledger, right? So I think interoperability will first start with related businesses who operate on a similar backend. Example, if I am building a game where there is a, I assume it's FPS where the game screen is not going to show the avatar but only the hands and the gun, right? So I can work with similar games because the animation is going to be shooting and I'm not required to show the full avatar because the game is designed such. So I will collaborate with similar games who are building FPS for that matter. I will open up my token ID to them and vice versa and I'll ask them was you integrate or you make my NFTs login through your game, open it for us and I will also do that to you. So I think this is where the interoperability in its base will start and if there is a game which has cars, if a car raises popular games, so again, NFTs are cars, then you can easily pull up your car from, and of course the metadata has to support that because you play and you upgrade your metadata and you sort of create value through that and you sell it in the secondary market. That's the use case at least. That's the pitch which we are presenting to the customer. So then he should be with one NFT, he should be able to log in into multiple games, multiple applications, fashion, whatever it is but the core idea is one NFT and log into at least similar applications so that it has more value for the money which they are spending on the. I agree. I think there will be two ways. One is you have an Android ecosystem and then the OS, iOS. So within meta-verses as well, there will be Android ecosystems wherein it's more intra-operatable with multiple other things, it's more open. While then there are some companies that will have meta-verses, even their assets which are not intra-operatable for multiple reasons in terms of speed, privacy, for whatever reason they would have that as well. So I think going forward we'll have two kinds of companies, some companies which do not consciously go intra-operatable and some companies which do. For us it's better as consumers to have more intra-operatability. For that we can do two things. One is discuss more on forums like this. So within human consciousness we are talking about intra-operatively a lot more. And second is have consortiums which within the US is currently happening wherein there are more consortiums trying to bring the same formats, same APIs, same protocols so that the intra-operatability becomes better. Yeah, yeah, yeah. Yeah, so how many of us consider meta-verses to be a real world? Any of us hand please? No? So yeah, yeah. So if you talk to Gen C's or Gen Alpha's, they're like, are you living in, are you always in the virtual world? Like is it real? So for them like it is real. There is like a very fine difference between a real versus the reality, right? So for them even the meta-verse is the reality for them. So, but if I am spending time on with the Oculus I feel like I cannot be there more than one hour because of that hardware limitations. So what do you feel like in the gadget industry or the hardware industry? So starting with Mike like how do you feel what are the advancements needed in the gadget industry and how do you add more ease, comfort, and realism to the environment? It's an excellent question. And this is actually what's gonna shape and dictate the speed of acceleration adoption in this new internet era. Now the most important thing to denote is the fact that sales or VR headsets are slowing down by a lot even more than what was initially predicted. This could be either because they didn't manage to bring down the price sensitive inflection point that will get consumers much more interested to buy them or because in fact that a lot of people that buy headsets don't tend to spend that much time as you mentioned Hannah within those environments. Also because of different reasons either because of epileptic issues or because there's nothing too exciting that can get them there for too long. Now what is interesting though is that you see the big boys like Apple, like Facebook we were in Davos in January and we were talking with the head of innovations of Meta and he asked us where do you think that Meta is investing more right now? And we're like, I don't know, data, I don't know.  But he told us, well actually on Silicon gel because they know that they cannot build phones, right? Where phones is like the immediate extension of our hands. So they cannot go and compete against Apple but they can go and compete against glasses and lenses. So by building Silicon gels which is ultimately the lightest version of a hardware but you kind of bet on a human right now without causing extra discomfort in their everyday movements and being able to penetrate through the lenses into a mixed reality environment then they straight away go and compete against a whole new world of hardware that can be an extension of your physical lifestyle. And I think with the upcoming World Development Conference from Apple we're also gonna be seeing them unveiling their new lenses and that industry is gonna be a huge unlock of what it's about to follow. So anyone that is now in immersive content generation anyone that is now investing heavily in avatars in mixed reality, they still haven't even reached the tip of the iceberg of what it's about to follow once these things are about to be unveiled in the world and once consumers are gonna be massively in rush to go and buy them. I'm not saying they're gonna replace phones entirely it could be the day that that thing arrives just like mobile devices replace desktop devices eventually. But I strongly think that mixed reality will be the major driver into this new on-rump of the new internet and new consumer behaviors that are gonna lead the way in gaming, in commerce even in socializing. That's a great point. Anybody else would like to add on the hardware? Yes I think the major breakthrough in these metaverse or whatever we want to call it is when we have the digital assets anchored on real world assets like if someone wants to know what this panel is about they should just pop up their phone, look at the wall or whatever the in front of us without the QR code or imagine working through a sort of a shopping mall and just taking up your mobile to look at a particular asset code or a shirt or whatever it is and your digital interpretation comes near to that. So when your information is anchored on the real world and when that is accessible to you in a mobile and that metaverse is being built in companies like Niantic and other companies but I think real commerce will happen and a lot of traction will happen then instead of going to your browser or going to your application to look at what this product is about when you're actually standing there. Agree, agree. Mukund, do you want to add something? Just a couple of points. One is purely, I agree with the form factor. It's pretty big and if you wear it for more than an hour you kind of feel uneasy. So there is a lot of research already happening and bringing it down to as close to a eye spectacle, linear eye spectacles. That's the area where one research is happening and second one is the devices are lacking a lot of horsepower which means when you're going to throw a lot of AI at it especially when you're running a powerful AI inferencing which means the device doesn't have the right hardware. So there are research happening and putting an SOC which is purely for running AI inferences which means even if I am in the like 100 kilometers away from network zones or even I'm deep down in a mine while I'm the workman who is trying to take some decisions so these devices which has an SOC will be able to run the inferences and take the decision for you. And it doesn't need to be connected to the internet. So these are some areas where there is a lot of progress happening as well. One minute each. Okay, I'll keep it quick. One of the things that not been highlighted is touch and feel. So there are five senses that we utilize but within the current scope of things we are only using sight and sound. So we actually are partnering with some companies that are working in haptics which deliver the sensation of touch and feel which is crucial to experiences because even when you're doing skilling or you're working with hard goods it's extremely important what a texture of a surface is and how much pressure you're applying to it. So these are parts that are less addressed right now Even for fashion industry, the texture and feel, yes. It's ultra important because that's a great point. So as a company we make hardware so that's one of the goals to make them lighter, more user-friendly and others. How we are doing that is we are trying to move computing as much into cloud as compared to on the device which helps us reduce a lot more. Just working on the optics part of it. Optics is one thing which takes a lot of space within the device. So once there are more and more innovations within this spectrum, you'll see more and more lightweight as very similar to the glass that you wear today. So you'll be able to see that probably in a couple of years. Absolutely. What a great panel we had. Thank you all so much. And Mike, next time you should be on hologram, work on it right now. So thank you all so much for- I'm expecting big things to be able to deliver that. Yeah. Thank you all so much for being here. Thank you, thank you so much.


The COVID-19 pandemic has caused a major disruption to the global healthcare system. We have developed a mathematical model to explore the trade-off between home quarantine and hospitalization. The model takes into account the time-varying cure rate and mortality, as well as the willingness of people to go to the hospital. When the transmission rate is low, high hospitalization levels can contain the virus, while when it is high, high hospitalization levels can cause a breakdown of the healthcare system. Our model was tested with data from Japan and other countries, and the results were consistent with the real world. This article was authored by Kyugwa, Ikang Lu, Yini Geng, and others.


Welcome back to the lecture series in NPTEL on Bioelectricity. So, in the last lecture we talked about we initiated the patch clamp in the last half of the lecture I introduced the patch clamp. So, we talked about how you develop the electrodes and I told you that there are the name itself called clamp. So, essentially you are holding clamping a part of the membrane and at one part of the membrane by following the equivalent circuit model you can clamp two parameters either you can clamp the current that is why it is called current clamp or you can clamp the voltage it is called voltage clamp. So, we will resume our discussion from that point that what all parameters you can measure ok. So, once again we are into the lecture 11. So, resuming on patch clamp ok. So, this is where we were. So, in the last lecture while I was giving you the dimensions I told you that this technique helps you to approach a finite number of ion channels. So, just to have a recap what I was trying to tell you if we call this as a membrane this is the membrane structure you have and on that you have these embedded channel structures which are sitting along these are the embedded channels all along it just for the simplicity sake I am just drawing 7 or 8 channels out here and then your patch pipe it which has a dimension of around like you know 1 micron tip something like this. You can really hold a finite number of channels under the patch. So, what you do once you so this is just slightly advanced. So, let me come back what you do once you have the electrodes ready with you. So, now what you are having is essentially you have something like this you have pulled it and with a tip like this and something like this. Now, you have two options you can fill this electrode either with either with extracellular fluid or intracellular fluid extracellular fluid or depending on the configuration you want to follow intracellular fluid these are the two options. So, now once again let us draw the patch electrode here we have the patch electrode either intracellular or extracellular extra or intra then inside this you put a silver electrode. The silver electrode first is connected to a something called a head stage amplifier or the initial amplifier out here and from here it goes to the mean amplifier and whereas, you have another electrode which is your ground electrode which is let us show it like this which is essentially going here. So, here you have the mean amplifier and here you have the ground electrode and in between you have something called a head stage amplifier which is out here. So, the way it works you have to understand logic the way it works there are two amplifiers here one is a small head stage amplifier which is picking up all the signals then it transmits the signal to the mean amplifier and the mean amplifier all these analog signals are being processed. So, what is an amplifier amplifier is essentially there is a device inside it it contains a very powerful electro meter that electro meter is essentially measuring the charges and they are amplifying that current because since you are receiving current at a very small regime like you know nano nano ampere p q ampere. So, you have to really amplify that in order to distinguish it from the surrounding noise. So, those currents eventually these are all analog currents you are receiving these analog currents are now sent to a DAC card which is a digital to analog to or A D card analog to digital converter A D C analog to digital converter from analog to digital converter these and now this digitized signals. So, what is happening essentially is like this. So, what you are receiving from the pipette is analog signals these analog signals are converted into digital signal these digital signals are then sent to the computer for analysis you can really see it in the computer screen, but nowadays with the modern electronics what you essentially can do you can use the computer to give the command also. So, what you need for the signal which is coming from the pipette like this is coming from the measuring electrode if I just make it slightly more precise from measuring electrode to the amplifiers from amplifiers it goes to the analog to A D card and similarly the same computer now can give a command which will do the reverse route which it gives a digital command again a digital command these digital command is converted into analog command because that is what a cell will understand these analog command is eventually sent to the cell. So, it is pretty much a two way traffic you can use a computer both for recording as well as giving commands though initially when patch clamp was discovered computer was slowly like you know there is not very many computer PCs were nowhere there this was back in 1970s, but the modern electronics has equipped us with all these features that this whole process has become much more smooth you really can acquire a lot of data. So, coming back where I was stopping now you have this mean amplifier here. So, with this setup let me introduce let us assume to start off first with that we fill it with intracellular solution. Now this electrode is fit on a micromanipulator. So, this micromanipulator where it is fit it has the potential to make this electrode move in all the three axis. So, essentially if this is let us introduce the micromanipulator component here. So, it is connected to the micromanipulator where this knob here this knob and here this knob. So, that ensures that you can move it in x y and z axis in all the axis you should be able to move the micro move this electrode. So, essentially this electrode can move like this this electrode can go up and down and this electrode can travel a distance something like this also. So, the practical applications say for example, now I let us see a practical situation where we have the cell culture dish this is the cell culture dish out here and this is the matrix on which the cells will grow on this matrix. Now let us put the cells. So, let us represent the cells by these are the individual cells sitting. So, now we want to study this study the electrical properties of this individual cells. So, let us be more realistic to look through. So, this is the nucleus and the cells are sitting and here we have a patch electrode with us. Let us put the patch electrode in place and inside the patch electrode you have this silver and it is filled with the intracellular fluid to start off with. Now using the micromanipulator you are approaching the cell. So, basically going down on the cell eventually what will happen if I show you the stage 2 you will have the tip of the electrode touching on top of the cell and this is amplified. So, this is exactly the situation. So, if I represent all the ion channels on top of this top of this cell as like something like this if you consider these black dots are the ion channels on the surface of the cell. So, now you have finite number of ion channels in a very close proximity of the electrode this is very important because this is the diagram which I was trying to show in this slide. So, now what you have you have finite number of ion channels under that small pipette tip which is approximately 0.5 to say 1 micron at this stage there is a very simple technique which is being done along this I did not introduce that now I am going to introduce it. You have a small tubing which is connected to it for giving a gentle suction and we will see what happens when you give a gentle suction at this stage. So, let us move on to the next slide let us magnify this configuration. So, that it becomes it makes more sense here is our cell sitting here something like this individual cell and we want to patch this cell and what we have are a series of ion channels on its surface these black dots are the ion channels they were showing in the previous slide they are all over the place all scattered around on the surface of course and here you have the nucleus of the cell. So, now your patch electrode configuration let us look at it the patch electrode is sitting now much more magnified zone your patch electrode is sitting something like this almost touching on the surface. Now at this point you give a gentle suction that is what I was trying to show you in the previous slide you just give a slight suction what will happen this particular part of the cell will get inside the patch pipette essentially this is what is going to happen. So, now if I introduce the ion channels the ion channels are sitting on top of these now we have started when we started I told you that let us assume that this is filled with intracellular fluid and here we have the silver electrode which is moving to the amplifier. Now at this stage there are two options first option is that the first configuration is called the whole cell configuration when you have the whole cell within your control in the whole cell what you do you send a small impulse or a current pulse out here which is good enough to damage this membrane and what you are left with is this configuration in the whole cell this is it then this is the configuration you are left with that it is your electrode tip like this and here is the cell here is the is the ground electrode and this is the intracellular fluid filled in it mind it this is fairly thin I am just for your understanding I am showing it slightly bigger. So, this is since this is intracellular fluid inside the cell you also have intracellular fluid. So, these fluids are the same osmolarity. So, essentially now your electrode becomes part of the cell it becomes almost it is in continuous with the cell. So, what is our current which are either moving out or inside the cell out here through these ion channels now could be recorded ok. So, this is the first and first and most I should say most important configuration to understand the whole cell electrophysiology. Now, what all you can do let us see the power of this technique at this stage you can hold the membrane at different voltages you can hold the membrane at different voltage and you can measure the current or what you can do you can hold the sorry you can inject finite amount of current inside this cell and you can measure the change in voltage. So, first of all let us try to do that step 1. So, first of all do the current clamp and then we will do the voltage clamp. Current clamp essentially mean you are injecting finite amount of current inside the cell and changing its polarity. So, if you go back here let us see how the current clamp is going to work. So, once now we are in a current clamp motor. So, when we are doing current clamp what you are measuring out here you are measuring the change in voltage. So, your y axis is voltage in millivolt and your x axis is time and the cell we know is sitting at minus 90 millivolt. So, this is the resting membrane potential R n p resting membrane potential.  So, what will happen is it will be a very similar situation as that of sodium getting inside the cell. So, this will immediately you will open all the voltage gated sodium channels and all the voltage gated sodium channel will lead to enormous flux of sodium ions inside the cell. So, as sodium ion is getting inside the cell this is what you are going to observe. The membrane voltage is start to go towards the positives and this is 0 it is going to go positive like this. And if it reaches something like say minus 40 or minus 30 we call this minus 40 here slightly over minus 30 then this should something called a phenomena called all or none. It is almost the membrane as if it looks like it collapses because then there is no way it cannot look back it will overshoot 0 like this that is called all or none, but it has to reach to that of minus 40 and between minus 30 and minus 40 millivolt. And if that happens all the surrounding voltage gated channels start opening up and they will shoot an action potential. And then of course, it again comes back because this is the time when all the potassium channels start opening and then rest is we have already studied. So, this is how you do a real current clamp measurements where you are seeing the action potential, but now the challenge is how we know at this part of the curve where there is influx of sodium there is enormous influx of sodium. How I can measure the influx of this sodium? So, in other word these sodium are nothing but sodium current how I could measure the sodium current and how I could measure the other current which is the out here the potassium current which is the going out of the cell. So, in order to do that now we will move on to the next technique which is called voltage clamp now we have to measure the current. So, in order to measure the current we have to fix the voltage at different level. So, our now the way the recording will work is something like this you are measuring the current in this axis in the y axis and the x axis you have the time current in pico ampere or nano ampere and on this you have the time in milliseconds. Assume the cell is setting out here the baseline. So, this is we are assuming at the zero current like in there is no interaction of current at this point. Now, let us again go back to the configuration of the cell. So, this is where we are injecting current now expose this membrane to different voltages. So, it is sitting at minus 90 I make it from minus 90 I started holding holding it across. So, let me draw this. So, if you have this cell out here and you have two electrodes like this. For example, one electrode like this and there is another electrode out here like this.  This is where the baseline value is at this point then I make it minus 80 millivolt. I am holding the membrane at minus 80 across it. Once it is minus 80 what I will see may be some of the. So, from the baseline I will see a small dip. So, then I move to minus.  Then I put it to minus 70 millivolt and I saw trace very similar 3. Then 1, 2, 3 then I move to minus 60. I saw another trace coming like this 4 minus 50 5 minus 40 these are all millivolt something like this minus 30. This is where I will see this is where all the potassium channels starts to open 30 millivolt and simultaneously what is happening out here they are like this. Now, as I am going further say minus 20 minus 10 0 10 millivolt 20 millivolt what will essentially happen these sodium current which gets activated in a narrow window of out here they would not any further they will get closed down. So, now what will be recording is this side of the circuit. So, by axiom it is being followed that this current you can show this current on both on the upper side of the axis, but it is generally people follow it to show it like this. So, this part of the circuit what you are seeing out here of the current basically your sodium current or any form of inward current which is in entering inside the cell and out here what you see are the outward current or one of the major outward current is the potassium current. Now, what you see eventually as you are going up with your voltage clamp traces starts to start to see potassium traces like this and of course, they have a rain and these currents are much more delayed. So, these the sodium current generally these kind of sodium currents are called fast activating in activating sodium current which are ensuring the flow of this current and these currents are called slow activating or delayed rectifier potassium current or channels. So, just a word of caution there are several celtides where you do not have this fast activating or inactivating sodium current will come to those at this stage we are not getting into those will come to those later at this point we are just talking about most of the neurons what they have. So, they have this fast activating and inactivating sodium current out there. Now, how to ensure that these are sodium current this is the challenge question. So, how you can ensure is this say for example, one second you have this cell out here with let us show the sodium channel in red and show the sodium channel in red and show the potassium channel in any other color. The way you can show this is say for example, you have a specific very specific toxin which binds to which binds to the sodium channel. So, for example, it comes and it binds to the sodium channel. So, what you will essentially see is say for example, this yellow is the toxin what I am putting now and it is coming and binding to the sodium channel. What I will see out here in this trace is this part of the current will be abolished this is gone this will not be there instead the trace will look something like this what I will be essentially seeing is nothing and only the potassium current. So, what you have done is that you have block blocking sodium channels thereby aborting sodium flux and this could be done using toxins like tetrotoxin which is obtained from puffer fish which is in short it is also called TTX tetradotoxin puffer fish. This TTX could block the sodium channel similarly if I have another blocker which blocks the potassium channel what I will see going back to this second let me go back to the higher then what I can do is that I can abort this part of the this part of the current this will be lost. So, the way the trace will come is something like this the way it will come is that you will have the sodium current like this and that is it will have the all the sodium current like this. So, there would not be any. So, this is where you are blocking potassium and this you do using compounds like 4AP and tetraethylaminium likewise there are series of compounds which can block the potassium current. So, you essentially see now we are able to access the ion channels which was absolutely not feasible with the sharp electrodes or even with extracellular electrodes or any other known things that was the reason why this discovery 1970s change the way we look and it was the same time when pretty much the same time when PCR was discovered by Carrie Mullis. So, that opened up a flood gate of cloning. So, what happens is that that was the time when molecular biology was got a huge boost and electrophysiology got a very huge boost in terms of the discovery by Irwin and Nehaar on the patch clamp. So, all these techniques started you know marrying. So, people were developing cells where they could really specifically express sodium channels they could express potassium channels and then they could really access the individual cells with profound surety that yes that is what is happening. All the mechanisms are started to come into play and simultaneously that was the time when people started using molecular biology technique too. So, let us see how all these things are being done. So, for example, now one more thing which I have forgotten to tell you people is out here. So, when this cell comes in contact out here this is where it forms something called a when you pull the cell and go to this configuration out here it forms something called a giga ohm seal. This giga ohm seal is very important because this seal ensures that there is no leakage along this all the leakage are being prevented. It has been really measured and this was the ingenuity of the discoverer of this technique that you know because between the glass and the cell there is a really very strong seal which is formed and with the modern software you really can see physically whether the giga ohm seal has formed or not something like if this is this fingers of mine is an electrode and if this is the cell. So, it form something like that a fantastic strong seal out there which would not allow any leakage to take place. So, this is one thing which I just missed out while I was showing you this coming back. So, what are the techniques which are being used? So, we talked about the different toxin. So, this whole seal depends enormously on different kind of toxin and some of these toxins are also have a strategic importance because they could be used by the terrorists. So, there are a lot of restrictions in using this toxins, but these kind of toxins have open up a whole plethora of approach to understand ion channels. How they are binding? Are they competitively binding? Non competitive binding? A permanent blocker? They are likewise like this is a whole feel in its own merit where all these this toxicology merges with ion channel physiology. So, coming back how most of these so whenever we talk about ion channels. So, I told you one configuration which is a whole cell configuration. There could be several other configuration.  So, and all these channels are sitting here on its surface. Now, I take take my patch pipette and patch pipette comes here. My patch pipette is on top of a bunch of channels by silver electrode. Instead of filling this electrode with intracellular fluid now I fill it with extracellular fluid. So, now in the fluid here is extracellular this is extracellular fine. At this stage instead of completely blowing away the membrane part of that membrane patch of that membrane instead of going into the whole cell mode what I did now is that I chop off I just pull the electrode because now it is in under the control of the micro manipulator I just gently pull the membrane. So, what I will essentially get is this configuration you have the electrode inside the electrode you have this is the electrode what you have is a part of the cell like this part of the membrane like this and a finite number of ion channels in it inside this you have the extracellular fluid which is filling it and then what you do you put it in a chamber or in a small dish which has intracellular fluid in it. So, here you have the intracellular fluid now what is this configuration essentially tells you is this you have a complete control of manipulating these ion channels a finite number of ion channels. Now this is called you are basically this is called inside out patch inside of the membrane is now exposed. So, these are special configurations which are being done to you know. So, these are special different kind of configurations which are being followed to you know to understand the ion channel behavior. So, what I will do now I will talk little bit more about these ones these individual channels how they are they were studied. So, I will close in here what I expect you people really to go through these slide very carefully because there are lot of informations here go through the patch clamp understand the concept understand current clamp and the voltage clamp and how you really can access the different ion channels from here what we will do we will talk about how the molecular biology techniques helped us in understanding the different ion channel gates, pores, voltage sensor and all other things. So, I will close in here in the next class we will discuss about all those things.