Alright, today I'm really excited to talk to you about something that I know we've all been waiting for. Alright, all jokes aside, I know that talking about memory cards isn't very exciting, but if you're a digital photographer, there's only one thing almost just as important aside from your camera and lens, and it's your memory card, because without memory cards, we're not taking any pictures. So I want to talk to you a little bit about memory cards, because recently I went to pick up some memory cards, and it's amazing to me how many different types of memory cards are out there, different speeds and things like that, and so I wanted to kind of decode all of the little icons that you see on these memory cards and kind of give you an idea as to what they all mean, what types of cards there are, and maybe which one is the best one for you. So let's first start by talking about what are some of the different memory cards out there. So first of all, for most of us, there are three types of memory cards. We have CF cards, which stand for our compact flash cards. Those are the big, giant, bulky square cards that you see a lot of pro photographers or pro cameras taking these days, but more consumers, the average consumer at least in the average consumer cameras, take a second type of card, which is the SD card. And I did a little bit of digging to find out what the hell SD even meant, because in all honesty, I really didn't know, and SD stands for secure digital. And then you have the third option, which is the micro SD card or the little mini SD cards that you see out there. A lot of people use those for things like GoPros or smaller cameras and things like that. So those are the three that we have at our disposal. Those are the ones that you're going to use most of the time. But aside from that, which are the best cards for you and what the hell do all these other things mean? So I've broken this down into three categories. There's basically the capacity of the card, which is what we're going to talk about first. How much storage can your memory card hold? And this comes in a range of sizes. I remember eight gigs was pretty popular than 16 gig cards. Now you're seeing more 32 gig, 64 gig and even larger cards like 128 gig card. I saw on B&H the other day for $40, which is just insane to me that much storage and how cheap it is. But on average, I mostly buy 32 to 64 gig cards. There's a couple of reasons for that. One reason is the smaller the card, usually the cheaper it is. The second reason is I don't want all of my pictures going on to one card. That's a little dangerous in my opinion because memory cards go bad. And so if I've taken my entire vacation on one memory card and it were to die, then I basically just lost everything. So do yourself a favor. Buy smaller cards. You'll save yourself some money. And if a card does go bad, you won't lose it all. Now, while the capacity of a memory card is important and also kind of obvious, the next thing maybe necessarily isn't. And that's why we're going to talk about it. So what we're going to talk about now is the X speed. And the X speed of a card is basically how fast the information, whether it's a photo or a video, is going to get written to the card. This is also known as a read and write speed. And depending on the type of photography that you're doing will depend on the type of speed at which you might need for a memory card. In other words, if you're taking pictures of flowers one at a time, you don't need this speed to be very fast. But if you're taking pictures of sports or fast moving objects or things where you're taking a lot of pictures really, really fast, you might need a card that writes fast. So let's talk about the X speed because this is a little confusing. Card manufacturers show this in a couple of different ways. So one way that you might see it is a number like 633X or 1000X, something like that. That's the X speed. You might also see this as a displayed as megabytes per second like 95 megabytes per second or 150 megabytes per second. And even though the card manufacturer is showing one or the other, and some card manufacturers actually show both on their card just to confuse you even more, the numbers are the same. In other words, if I have a card that's showing me 95 megabytes per second and or 633X, that's exactly the same.  So I'm going to talk to you for a second. Basically, the way they figure this out is that the letter X equals 0.15 megabytes per second. So if I take 633 multiplied by 0.15, then you get 94.95 megabytes per second. 94.95 doesn't sound as sexy, so they basically just rounded up to 95 megabytes per second. Again, the math is take X multiply by 0.15 and then you get your megabytes per second. Now, I'm not a techie thinker, so all of that math is a little bit too like, I don't really want to get involved in that. I'm a right side thinker, right brain side thinker, and I like things a little bit more easy. So basically X equals performance. How the card is going to perform the higher the number, the better the performance. Now that we've gotten that out of the way, let's talk about the next category, which is the speed class, which is different than the X speed, the speed class. Now the speed class is actually broken down into two different types of icons that you'll see on the card. The first one is something that you will see it kind of looks like a letter C or a half circle, and then you'll see a number on the inside of this icon. And basically this is the minimum right performance for the card. And usually this is more dedicated towards video recording. And if you ever see the letter C with the number 10, 10 is the highest class or the fastest speed that is out there. So if you see the letter C with a 10, you know that that's going to be good. There are smaller number amounts, but the letter C 10 is pretty common in most cards these days. The second type of speed class is actually something that you're going to see also a couple of different ways. It's either a UHS number or it's a letter U with a number. I'm going to talk about the UHS first. So you have two classes of UHS. You have class one and class two. And basically the different classes relate to different megabyte speeds. So a UHS one is 104 megabytes per second speed. A UHS two equals 312 megabytes per second of right or minimum right performance on a card. So that leaves the U code, which the U code you either have U1 or U3. And again, these are minimum right speeds. So a U1 equals 10 megabytes per second and a U3 is 30 megabytes per second. That becomes pretty easy to remember. Just remember U1 is 10 and U3 is 30. It makes sense to me. It might not make sense to you, but when you see it displayed, now you know what the different speeds are. And again, so if I go back to the UHS codes one and two, usually the higher these numbers are, these are really good codes. If you're something who again is doing a lot of high performance shooting, or maybe like we're doing right here where we're shooting video, if you're shooting something that's higher than high definition or HD, like 4K video, a lot of cameras are doing now, you're going to need a card that actually can perform good when recording 4K video. So you're going to need a card that has a higher UHS code. Typically UHS 2, you're going to be just fine. Now, since we've spent all this time decoding the three different things, we've talked about the capacity of the card, the X speed of the card, and the speed class. Now that we have all that out of the way, and we know what these different icons mean, what's the right card for us? And we've kind of hinted on that throughout this thing. And basically, I would say that if you're shooting a lot of high burst rate type stuff, then you're going to want cards that are going to perform better when you're shooting more stuff. You're going to want higher rate speeds. But if you're kind of a slow, methodical, casual user, you don't really need cards that are going to write super fast. And if you're not doing crazy amounts of video or high level video like 4K video, then again, you don't need these high performance cards. You could stick with class 10, which is pretty standard, and keep these other UHS or U codes or X speeds relatively inexpensive for yourself. Save yourself some money and just buy these kind of standard cards. Now, as I said at the start of this video, the cards that we had picked up recently, I got two 32 gig cards with excellent X speeds and speed class. And these two 32 gig cards cost me less than $25. So if you're interested in picking up this pack of cards, it's a really inexpensive pack of cards with all great speeds. We'll leave a link down in the description below so you can go ahead and grab these cards for little to no money. Last but not least, we've created a really awesome post over on our blog. Check it out at PhotonerdsUniversity.com where we've listed out all of the things we've talked about today in this video, as well as some other things that you could talk about, whether it's in relation to card readers or storage or how we keep track of these cards, all of that kind of stuff you can find in that blog post. So head on over to PhotonerdsUniversity.com and check it out.


Hi, I'm Nick. This is Harry. Hello. We work on truffles. And I'm the debugger guy. Well, you'll see the slide again when I get through it. Then we're going to talk about the current state of smart contract debugging. We're going to talk about debugging data formats. What are they? What do they do? Why does every other computing platform use them? Then we're going to talk about some of the design challenges, coming from a solidity perspective, but for smart contracts in general. Then we're going to make this interactive. So the idea is hopefully we'll break into groups and kind of talk about what would one of these debugging data formats look like. We'll see if people are not too afraid to share their findings. Then we'll talk about specific areas of work, like what are the specific challenges, not from a high level, but specifically break into groups again and present findings again. No one ever wants to open up to you, so great. Hopefully not. Um, I'll just try it. And then we'll conclude. So, you'll see how this all goes. Did that already? Alright, the thing almost does scan the carton. Bones down, bones down. Great. What's debugging like on Ethereum today? Well, we have solidity source mappings. These are extremely useful. They are fantastic. You have some byte code. Solidity gives us byte code. By codes, we can model it as a list of instructions. Then solidity gives us these source mappings which correspond to a particular byte code and we think of it like an array. There's an array of instructions and there's an array of source maps. And for each of the entries in the source map, it corresponds to the one byte code, you know, the corresponding byte code instruction and it tells you the file and the source range and some other stuff, but I won't get into that. Then what you can do is you can take this source map, you can take the byte code and you have some running program that you're looking at.  And you get this concept called a program counter. Program counter is where am I in the currently executing context? What you do is you take the program counter, you convert, you figure out which byte code instruction that refers to. So if you have, you know, your program counter of 10, maybe that's wherever it is in the byte code, you find out what instruction number that is. Then you take that index i or whatever, you go to the source map and that tells you what you need to know. So that's pretty handy. Trouffle's earliest version of our debugger, that's all it did. It's translated from the low level EVM op code instructions up to the high level source. This is what all of these debuggers do. These are the three debuggers that I am aware of for Solidity. I don't think there are any other high level of hearing languages that have debuggers today. Apologies if I'm missing something. It's hard work to build a debugger so I don't need to leave anyone out. But we have Trouffle Debugger. I'm just gonna have to list that one first. But Remix has a debugger and the Meadowsuite has a debugger for gradient.net. So what do these do? Well, they figure out how Solidity works through trial and error. That's... Yeah, okay, well Solidity does document quite a lot, like storage allocation. But the program does not figure things out from trial and error. No, you built the program, figured things out from trial and error. Yeah, so inside Trouffle's Debugger how do you figure out what a variable is? Well, you observe it in the wild. And the reason for that is because Solidity has no way of telling us. So hopefully we'll change that. More to add? No, I was wondering. Great. So, of course, it's not like Solidity gives us nothing because then we truly would be pretty stuck. Fortunately, it does give us the abstract syntax tree. And so, you know, for those who are now familiar, you parse the code into a structured tree which contains all the information and it's much more machine-readable and markable rather than giant string. And so we use this for a number of things. And in particular, we use it for locating the variables. We use it to determine where the state variables are located. And we use it and we combine it with the source map, right? So the source map tells us where we are in the source code considering the source code as a string. But then we combine this with our knowledge with the abstract syntax tree that the Debugger, sorry, that Solidity compiler provides us with which includes these source ranges on each node. And we use this to determine not only where we are in the source in terms of string indices but also in terms of what node we're on. And so, using this, we can do a bunch of processing to determine where the local variables on the stack are and also other things. But note that, of course, we're not just relying on the abstract syntax tree. We're also relying on our particular knowledge of how Solidity stores data, which is not supplied to us in any format. That's just stuff we programmed into the Debugger data. Yeah, figuring that out slowly. Yeah. How's that sound? Good. You want to build the Debugger? How's it work on other platforms? Like, when you compile a C program, how do you debug that? Well, there's this concept called a Debugging Data Format which comes from the compiler. The compiler provides the information about a particular program and says, well, it gives you that translation, right? You can, given any machine state, here's how you can get the high-level source code state.  You have a stack. You have memory. You have storage. Here's how you can get variables out of that. And this is extremely useful. There's a number of these. There's Dwarf is probably the most popular. You can read about it. It has a 577-page specification. It's a binary format. Yeah, so you have these concepts, right? So here's a simple program. These are not related examples. I just took them from that paper. But you have these tags. And there's a sub-program tag which says, oh, this is food. And there's a variable there. And the variable has a type and it has a location. And it even declares text. You can say, we're going to be dealing with ints. So the compiler will say, this is an int. Ints are size 4. I guess it's old. And it's signed, right? So you do that. You say, oh, what's C? C is a base type of an int. It has a particular location. This is the frame pointer offset. So when you find it, it's 12 items from the top of the stack. This is pretty useful, right? But this gets encoded as binary and gets embedded into the output. If you've used a traditional computing language and you've outputted the debug information and if you're using GCC, for instance, it's like dash, I don't remember what the options are. I don't want to see any more. But you specify a flag that says, I'm going to debug the output. And you get a binary that's twice the size or three times the size and has all this extra information, which you would then, on Ethereum, you'd deploy that and you'd pay three times as much and exceed the block gas limit. You don't have to parse this. But I mean, Dwarf works pretty well. There's others, too. I mentioned them here. There's PDB as Microsofts. They use it as a proprietary format. It seems to be better. It lives externally. So you get a .pdb file rather than loading your actual binary output. Cough is interesting because Cough is an actual binary output format. That's what the compiler gives you regardless. But it includes a specification that has debugging information. So you get this binary and the binary may or may not have the debugging information. Whereas Dwarf is like bolted on top. This is a separate standard. If anyone's familiar with ELF binaries, that's the Linux native binary format. That's why they got the name Dwarf. Someone was funny. All right, so here are some requirements that you come up with. Naturally, it has to live outside the bytecode because we have gas. It should be easy to generate because I don't want to make this live and leave developers' lives terrible. And it must be easy to read because I don't want Harry's life to be terrible. And it should be extensible because we don't only want to support Solidity. We also want to support Viper and all the other smart contract languages. And also, you know, E-Losam's coming. And that's going to break our debugger. So here's some requirements. There are probably others. Anyway, Harry, tell us why it's difficult. Okay, so there's a lot of problems that go into designing for these. And actually, the most important question is probably the one that Nick put last year. What does this format even look like? Now, if we take inspiration from Dwarf, now, Nick showed you, Dwarf uses this idea of declaring types. So, yeah, so like you can declare types and then have variables of those types.  That would be not very useful. I mean, there's the alternative approach. You know, if you can't declare types and you also don't want to limit yourself to preset types, then you could kind of stuck when it comes to like handling arrays. Or, sorry, I didn't explain that well. Because if you can't declare types and you have to associate a separate type with each variable, then you get kind of stuck when you have to hand compound things like arrays. Like are you going to associate a thing to every entry of a dynamically sized array? Like, no, you can't do that. So, this ability to declare types is quite useful and we will likely want that. Although, I don't know, I don't know much about designing a debug data format, but there's a whole sort of other challenges. And a lot of these, by the way, a lot of these points are fairly, are inspired by Solidity at the least. You know, you want to be more general than that, but these are particular challenges that come up with Solidity in particular. And therefore, I mean, if they come up with Solidity, like if we need to solve these just handle Solidity, then we're certainly going to need to solve these. So, location-dependent representation. Solidity represents data differently depending on whether it's in storage, in memory, in call data, or on the stack. Do we, you know, do we just make it so that for when you declare a type, you have to describe its representation in all locations, or maybe treat these as four different, you know, three or four different types, you know, to declare them all separately. And how do we represent the way that Solidity does dynamic arrays and mappings in storage, which has this, you know, catch-acc-based location scheme? And it's like, you really want to be putting that in your debug data format? Like, I mean, yeah, we can put a flag for it or something, but it's like, it's a little, it's a little much maybe. Nick here has this whole idea that we should make a bug data format maybe less data-based and more code-based, and you'd have these code extensions. And this maybe would be a good candidate for that. I feel like a mapping, a Solidity mapping extension, where Solidity and Kamayla would say, this is a mapping int to int or int to address or whatever, and whatever debugger builds its own implementation of what that mapping means.  Well, I mean, primitive is the wrong word here, I think. Well, so maybe we should... Who here has seen or looked at the way that Solidity does mappings under the hood? I don't know if we should get into it. Yeah, well, let's not right now. We have a slide to get through. All right, all right. Yes, so then you get to relative, like, what about call data pointers? Pointers and call data are relative, but they're not relative to themselves. They're relative to the beginning of the structure that contains them. So that potentially poses some problems. How do we represent composite types? Like, presumably we need to give the people using this format a way to specify composite types and, like, how they work. And these could be structs, but they could also be things that in Solidity are primitives but that are logically speaking composites, such as, for instance, an external function pointer, which, after all, consists of an address and a selector, or an internal function pointer, which consists of two separate values in the program counter. One for the constructor bytecode and one for the deployable bytecode. It's really, really interesting how internal function pointers are in Solidity. Harry's saying it's an 8-byte value where the first byte is if... First 4 bytes. First 4 bytes are for the constructor. So, you know, you have a pointer to some function and, like, an internal function. You want to store that in a variable. It's like, maybe you have a map function that takes another function, whatever. If you need to point to that in the actual EVM bytecode, you have to point to some byte offset. But with smart contracts, you have the constructor bytecode, the code that runs when you deploy the contract, and you have the runtime bytecode, which runs when you send a transaction to the contract. And they're not the same bytecode. So if you want to point to a function, you know, you have these two separate bytecodes, you want to point to some of them. So you need to represent both of those. Yeah, okay. Anyway, moving on. Well, this second to last one I've already talked about. Where's... How do we draw the line between, you know, to what extent do we want to rely on code-based extensions versus to what extent do we want to rely on data that, you know, I'm just building that stuff into the format? Nick and I have rather differing opinions on this, but let's save that for another time. And then, oh, I skipped the first one. How do we determine, how do we represent where local variables are? Because this is not a fixed location, right? I mean, you have state variables. These live at a fixed location. Local variables, these live on the stack. It's going to depend on, you know, what's below you on the stack. How far up, like, where did this function stack frame start?  We don't, there's no, there's no frame pointers in Solidity. There are no frame pointers in Solidity. Yeah, in other words, maybe to try and provide a second explanation, let's say you call a function. When you call that function, it goes on to call stack as a frame.  Maybe your function declares A, B and C. Those three variables go on the stack. And then you have some working space for, like, maybe you do some complex expression and you have to add and then multiply and so on. And so you have a bunch of other values on the stack on top of the variables. You have to know where that frame begins. Why didn't you get the frame pointer? I'm not. I didn't know dynamic x is the stack. Oh, that's a really good point. I mean, they're thinking about adding those op codes, but they don't, yeah, those simply do not exist. And like, there's no way you could have anticipated that or like, they're like, oh yeah, we're going to wait for them to add dynamic access to the stack. Like, yeah, that's actually a really good reason that I didn't think of. Well, okay, now we're not dealing with frame pointers then. Yeah, so anyway, there's no frame pointers. The question one still stands. Also, I want to make a tag onto that. That is that Solidity's modifier feature poses additional problems, which I'm not going to go into right now because that would take us well far afield. It's nice to say that they complicate the matter. Great. So these are some of the problems we want to solve. Anyone else have anything else? I can edit the slides and come down. Anyone know? Yeah. Maybe also take an approach from the other side. Maybe not start, how do we do it? But rather, what is the information we want to have during the debugging process? Cool. Yeah, absolutely. Anything else? I also have another thing. I see you did a good job. Here we go. Amy, sorry, Chris, gone? How to deal with intermediate representation. So if you compile it through UL, do we also want to represent that somehow? So if we have a value on the stack, do we only want to know which solidly variable that represents or do we also want to know which UL variable that represents? Yeah, that's interesting. Then you did that in the same location. Like, oh, this is this variable. This is this variable, UL. That's not the point. It seems that the debugging format is very highly coupled with some of the new languages. Have you ever seen how, like, decoupled it a little bit? Yeah, well, we wanted to. We wanted to be more general than just for solidity. And part of the idea of having a debugging data format is to help provide that decoupling, right? Because right now our debugger is specifically a solidity debugger. It relies heavily on specific knowledge about solidity. We're hoping that with the debugging data format, the whatever compiler could provide a lot of this information in the format. I mean, as I mentioned, you know, I talked a lot in the other slide about solidity specific challenges. But, you know, the idea is that any challenge we have to solve for solidity is, at the very least, a problem we have to solve. Like, the problem is at least this hard. Right. I'm not trying to exclude other things. I'm just trying to list, like, the problem is at least this hard. Yeah. To your point, you can look at this. You can declare these base types. And this is how work works. Work works on any language. You can get work output on C. You can get work output on Pascal, and so on. And it kind of provides these mechanisms where you can specify that an int is size 4 for bytes. But, you know, on another platform or on another language, you might have 8 byte integers. So, like, Dwarf provides mechanisms for doing this, but it doesn't get as complicated as, say, solidity storage arrays versus solidity memory arrays. Like, structs in solidity and memory are, which one, one's tightly packed, one's not tightly packed, storage first? Oh, storage is tightly packed. Yeah, so storage arrays are tightly packed, but memory arrays are not tightly packed, and so how do you represent that with something like this? Perhaps it is unclear. I mean, that's not even, I mean, I'm not even going to say that. I'm not sure I'd, here's a question for you, is do you represent that as a property of arrays? I probably would have represented it as a property of the underlying types. Like, I probably would have said, oh, yeah, in memory, int date is 32 bytes, even though it's called an int date, and to storage an int date is 8 bytes. But, you know, both of those are viable representations. So, you need to figure out which one to go with, because there's other differences between memory arrays and storage arrays. Like, I mean, I'd say the bigger difference is how they handle reference types. But, neat stuff. All right, so, there's some links for you. Harry wrote a paper that documents all of Solidity's data representation. Yeah, I mean, those of you who work on Solidity, I'm just recapitulating all the work you did and putting it in a form that I hope is readable, but... It has tables. They're good tables. They are. So, Truffle is about to release a library called Truffle codec, which handles encoding and decoding of values, not only Solidity values, but also ABI values. And you can see... I'm just trying to show you what we're dealing with. We have this representation of all values in Solidity. This is the output format that Truffle codec will be providing. And these are JavaScript objects, and you can see we modeled the types. So, each result will have a type field and a value field. And the type field represents one of these, you know, generally type. Yeah, and I should note that this particular thing is very Solidity-specific. So, don't look to this too much necessarily for the debugging data format, because that we really do want to be more general. Right, but this is a start, right? Because you can say we have a struct type. Oh, let's just do... Like a dynamic array, right? Dynamic array has a base type, which is another type, so that might be an integer. And it has a location, which might be memory storage, call data out of the stack. I guess arrays don't all stack. It can't call on stack. But yeah, so those are types, and then we also have values, which represent the corresponding value. So, you know, a pair of type and value gives you a representation of your source variable or whatever they are trying to decode. So, maybe, at least I think our hope is that this kind of approach will lend itself to a more general solution. But currently, this is not serializable, because data... Values in Solidity can be circular, and we can't really serialize that to JSON very easily. So, more work to be done for sure. And, of course, shout out to these Solidity docs for being excellent. Actually, the circularity can kind of have a wave. Yeah, well, we have ideas for that. Anyway, that's not relevant. Circular stuff is not particularly relevant right now. All right. So, the hope here is we can break into groups and kind of talk about a high-level structure, like this look like. Give us 20 minutes for that, unless everyone gets bored. But, you know, compare with Dwarf. Maybe we can make a JSON at least. Maybe we can get the spec under 400 pages. So, in Dwarf, the top-level concept, they call it a DIE, a debugging information entry. So, that's the thing with the tag. Each DIE has a tag, and then each tag has a number of attributes. And so, I don't know, maybe a start here will be to figure out how we can do this in JSON. We have scratch paper. I don't know. Talk amongst yourselves. There's a lot of people here. Yeah, I was expecting tables. But, now we just have chairs. All right. I'll give everyone... At least some people are talking. Anyone want to design a data format today? That's perfect. Oh, yeah, sure. All right. Maybe just call out ideas. What's the top-level? Let's stick with JSON. Is it an array or an object? How do you know that in advance? That's terrible. I'm just... All right.


We kick butt on the road like we've been doing all year, but there really is no place like home Can't wait to see you tonight am fam.


Hello, media students. In my channel, I am launching online quiz series. This quiz series consists of 16 Google Forms based questions, which will be uploaded from October 4th every day at 5pm. We have divided topics in order to help your university examinations. These questions will be very easy to difficult level. So there will be a right match between people who are preparing for university examinations and for other competitive examinations such as NEET or NEXT. So this MCQ based questions are very important because NMC has changed the undergraduate examination pattern where 20 MCQs has been included out of 100 marks in each paper. So in community medicine, you will be getting total of 40 multiple choice questions and also in NEET a considerable amount of questions from community medicine. How this quiz is different from other quiz. In other type of quiz, you need to answer based on your existing knowledge and this quiz is intended to improve your existing knowledge. So discussion with your friends, referring textbooks and searching the answer in internet are strictly encouraged in this quiz. So if you do that, get the answer 200% correct, then you answer this will help you not only in getting the answers correct, but also when you use various modalities, you will understand the concept better and also the retention of memory also will be higher. So you need to become a member in my YouTube channel, which will be costing around 159 rupees. What is the outcome expected of this quiz? I need two things to be changed that is that is the change in perception towards community medicine and change in your performance when you are approaching your university examinations or your competitive examination such as next or NEET. So this quiz starts on October 4th. Every day, 5pm, you will get Google form link posted as a member only post. It will be available till the next day 8pm. So after 8pm, you will get this course. After that, we can discuss the answers also. We will have a WhatsApp group also the details also will be posted as member only posts. So at the end, I am planning to give some worthy prices to active participants. If somebody misses the quiz earlier or in between, they should not lack motivation for continuing the quiz. So the quiz prices will be based on best 10 out of the 16 quizzes. Hopefully I wish you a wonderful experience with this quiz. See you on October 4th. Thank you all.


Okay, so our next presenter will be Sherif Rauf and he's presenting on peripapillary retinal perfusion in papillodema, a pilot study using OCT angiography, and he's a fourth-year medical student from Stony Brook. All right, everybody, thank you very much for the introduction. This is our talk, let's get right to it, no disclosures to share with you all. All right, so OCTA, what are we talking about here? This is a promising new optical imaging modality that uses motion contrast. Its fundamental premise is the same as OCT, except with the variation of how the data is processed by the software. Volumetric scans are acquired and segmented. The nice thing that we'll hopefully give to this is that you can acquire qualitative as well as quantitative data. So the technology that distinguishes OCTA from OCT that we're all familiar with is called Split Spectrum Amplitude Decorrelation, or SSADA, essentially allows the machinery to distinguish between static and non-static tissue due to the fact that non-static vessels will produce signals of larger or more varying amplitudes over time. That is, particles that move faster across the light beam will cause a higher decorrelation and can be distinguished in that way. The hope is that with this you can distinguish perfused vessels which should be more highly decorrelated from more static tissue. So this is kind of what you get with an SSADA, you get an on-face angiogram. The important point to take home here is that vessels must be perfused and kinetic in order to be seen. It can be useful in assessing the perfused retinal capillary network in the macula as well as retinal peripapillary capillaries. So those we'll just call RPCs from now on retinal peripapillary capillaries. A bit of the anatomy, depending on the depth of focus that you opt for, OCTA can image various vascular beds in the retina, including the coriocapillaries, which is not depicted in this diagram. Until recently the RPC network has been mostly visualized through histopathology, analysis ex vivo, as demonstrated here with this indian preparation. Advanced optics scanning has also been able to capture the fine details of this capillary network, but it can be somewhat limited. A recent study demonstrated a comparison between OCTA and adaptive optics. We can talk about the relative strengths and weaknesses of those, but the thinking is that OCTA will allow for better visualization of this network, while perhaps being a little bit easier on the health care provider and the patient. Short description of the kind of data that we'll get. So here I'm going to show you we're going to have a visual representation of areas that are well perfused as well as areas of dropout. In terms of the quantitative data, which affords significant advantage, we'd like to get mean perfusion values for different segments surrounding the optic disc as well as inside the disc. The analysis fundamentally begins with determining where the layer of interest is. This is just an example of the automated segmentation highlighting the NFL layer between the red and green lines. For a given image, you can then calculate what's called the mean perfused vessel density. Essentially, this is basically a calculation of the total number of voxels or pixels within a given sector that correspond to perfused anatomy divided by the total number of pixels in that anatomy. And then we can subset each of the areas that we're referring to and determine whether or not there's a spatial relationship, etc. So the basis for the sectors that you're seeing around these, and we'll refer to these throughout this, are the work that Garway Heath did in determining where RFL defects and prominent bundles kind of converged on the optic disc. So the parapapillary ring is thus divided into six sectors that were the basis for their work. So that's OCTA. This is a bit about the processing. Here on the left most, you see the image that we've viewed over and over. This is a skeletonized OCTA, which just takes every vessel that you'll see, regardless of its width, and assigns a uniform one unit width. This allows for better visualizations, various dropout, and also prevents us from perhaps overestimating the effect of large vessels on the perfused vessel density calculation. And the last two maps are simply color maps where colors assigned to each pixel in the frame based on the density in that area. Density of greater than 50% perfusion is assigned the color of red, zero is blue, and then intermediate colors are accordingly assigned. And then you can kind of see how illuminating that the overlay of the two can be. This is just a quick overview of some of the work that's already been done. A prominent paper showed that in normal discs, the dense microvascular network was visible with OCTA and that it was visibly attenuated in colcomitus eyes. So this is our fundamental question. Can this provide any new information about peripapillary retinal perfusion in papillodeminus eyes? This is our purpose. We had two hypotheses that there was a difference between our patient and control groups and that patient eyes would have lower peripiricine of the RPCs. This is our methods, all done at the same place. A bit about our control and patient numbers and their breakdowns. This is the equipment that was used and a bit about the analysis that we did. So the parametricity of the data was examined. There were some departures from it, but not enough to preclude us from using an ANOVA. And then a comparison was also performed between low and high grade. It was not found to be statistically significant, but will limit our remarks to the former comparison. Again, this is just a bit of the qualitative. Here we have color map representations of control and low and high grade papillodemus subjects. And so you can see even subjectively that there are increased blue areas of non-perfusion and papillodemidus subjects as compared to controls. These are the perfusion density values that we referred to earlier. You'll see that across the board, each of the six sectors as well as the entire peripapillary region taken together, there is significantly increased perfusion for controls. The inside disk is notably the only one that is increased in patients versus controls and we're going to get into why that might be the case. This is just an example of control in a high grade. And so you see here that for these comparison high grade papillodemus versus our controls, there was a statistically significant decrease in RPC perfusion. And this is highlighting just some of the areas of dropout. So I guess the take home result that there was really one to be taken home is that there was overall peripapillary decrease of 5.7% decrease in peripapillary perfusion between the papillodemidus and control optic nerves. So just a bit about the pathophysiology. While this isn't completely elucidated, there's very much informed way we're thinking about our results and how we might interpret what was happening. So the idea is that papillodema in increased intracranial pressure is not entirely a vascular phenomenon. Hyra has done a lot of work that's been really useful on this. The pathogenesis is not one of initial leakage of fluid into the interstitial space but rather it's thought to be caused by intrinsic swelling of the ganglion cell layer due to stasis of axoplasmic flow. The initial edema then can cause compression of low pressure venules and then venous stasis can give rise to leakage of venous blood into the extracellular space. The thinking is that low pressure venules and peripapillary capillars would be most subject to this kind of compression. So it's kind of easy to see how this might cause some kind of ischemic damage as the RPCs become progressively obstructed. The venous stasis could lead to hyperprofusion. That in turn could lead to dilation of superficial capillars at the nerve head. And ischemia is possible. Ischemic damage to the RFL is what we're worried about. And we would be very remiss if we didn't think that this could be able to predict RFL bundle loss and visual field loss in papillodema. While we haven't correlated the deficit in perfusion density with that functional loss, that's something that we would aspire to do. So there were lots of real limitations. This was the first time study that we'd done with OCTA. There are lots of artifacts in acquiring the data. A lot of good data that we would have to keep had to be thrown out. You rely quite heavily on the automated segmentation. The machine doesn't always do that well, especially in highly demented disks or very tilted disks. We often had to manually adjust the delineation of where brux membrane was opening. And then we worry about vessels where perfusion hasn't ceased entirely, but it was very slow. The concern is that the decorrelation algorithm may not be robust enough to detect those as perfused. So it becomes a matter of thresholds, and that's something I think everybody is still trying to figure out. This is an example of a notable part of me, a notable lousy image due to artifact. Again, like I mentioned, we didn't have any bases to make structure function assessments. Also, there's no normative database for us to work with while collecting the data. This is something I think that is going to be a really promising avenue for OCTA analysis. And we want to see whether changes, particularly in the perfusion of the RPC network, can be associated with bundle loss and visual field testing, and whether or not that will be robust enough to be detected. So I think OCTA is really exciting. The more I got familiar with it, the more I'm kind of convinced of its potential with the few caveats that we've discussed. I think it's a very fast, non-invasive way to image the capillary networks. I think it's, once well used, could be exquisitely sensitive to identifying changes in perfusion levels and might elucidate some of the functional losses that we see as like the capillary team that I'm indebted to. And I'll take any questions or comments. We'll talk about this more. Were all the patients either dilated or undilated? And was the illumination in the room where the OCTA testing was done controlled in all patients? Yeah, the room was, again, and patients were not only dilated, but the technician who did the scans did seem to think that that mattered. But the room was always very... Some were dilated, some were not. No, they were not dilated. All were not? Yeah. Do you think they all took it, or...? Well, just with corocatillary perfusion, I mean, you can definitely get changes in non-mount blood, perfusion with changes in, you know, lighting conditions and dilation status. No, I don't think it matters as long as it's... Yes. Any correlation to the ethnicity of Prasadena? How long you've had it? Do you have more chronic changes? Stasis changes after the OCTA? So, I think that might be a shortcoming of our analysis. You know, we didn't have very many of the high-grade, I'm going to show you the qualitative comparison, but we didn't adjust for a time of syncytagnosis. I suppose that's the best thing we could have done. We tried to do comparison by grades, I'm sure, but I think that would be interesting to pursue once our dataset was more robust, there would be more subjects with a longer span of databases. How do you know that you're seeing reduced perfusion due to papillodema versus reduced ability to detect perfusion because of the papillodema itself obscuring vasculature? I don't think that we do. We tried and we're trying to address this. I think the skeletonized version of the OCTA analysis might address that. So that was the picture where every vessel, regardless of its width, was assigned the same dimension and the same threshold was used to declare it was either perfused or not perfused. The thinking is that if you have a compression of very small vessels, but also the analogous dilation of medium or larger vessels in papillodema, that you might be overestimating the contribution from dilated vessels. So we were worried that that was going to obscure the compression of the vessels we were interested in. Beyond that, that's a difficult question to address and that was the way that we came up with to alleviate that concern in our minds, but I think that's a question we're struggling with. Thank you very much.


Live from Houston, Texas. It's theCUBE, covering Grace Hopper Celebration of Women in Computing. Well everyone, welcome back to the Grace Hopper Celebration of Women in Computing. This is SiliconANG, it's theCUBE, our flagship program. We go out to the events and extract the civil noise. I'm John Furrier, the founder of SiliconANG. I'm joining my co-host Rebecca Knight here for three days of wall-to-wall coverage, introducing our Tech Truth 18 reporters here on the big stage in the middle of the hallway of all this awesome sea of women, hardcore tech power here in Houston. Our next two guests from Avonon, combination of Avenue meets Promenade, Joint Venture, between Accenture and Microsoft, now on its full-blown path to growth. And Stella Goulet, who's our CMO of Avonon, and Steve Kelly, head of Human Resources and leadership of the company, basically runs HR. Guys, thanks for joining us here in theCUBE. We're balanced, 50% men. Finally, we are parody right here. Grace Hopper has a huge problem, there's an inclusion problem, not enough men at the event. Oh, stop, stop. A thousand. Exactly, I'm with you, Stella. Now, all kidding aside, thanks for coming on. Great to see you again. Talk about the business, because now you have a mix of technology companies like Avonon, which is doing a lot of global services across the board, and you have educational institutions here, and hardcore programming.  Well, we're going, tomorrow we are going for a Guinness Book of World Records for the most people contributing to a program within, I think it's eight hours. So we are working on a chat box based on Windows 10 apps where we want people to answer the question, what are the things that, what's the thing that's been most impactful in their life? And so it's the idea is to give inspiration to others who want to search and get ideas. So is this on site here? Is this going to be off site? It is at our booth, which is just behind the booth here. So we ask anyone to come over, we're looking for a thousand to make the record. And so you need some coders to come over. We do, we want people to come over and... And how long that's going to go for? It is for what, eight hours, Steve? Yeah, from the opening in the morning till six. Tomorrow, okay, tomorrow. So please, please come by the booth. So talk about what you're taking on the show here because obviously there's so much historic activity going on, certainly women intact. Here in the U.S., the election cycle all you're hearing about is women with sort of the Trump tape out there, which actually completely changed the narrative and certainly focuses on the word women. We were talking about that last night, but that's all like typical garbage conversations in the gutter with politics. Here it's a beautiful message. Real coding and great technology power. How is that happening in now? I mean, what do you guys see with this dynamic? Because does that mean that this is the pipeline of women? What's your take on this tech trend in the industry? Well, we're seeing more and more women in technology and that's certainly something we want to encourage is more and more women coming into Avenard and people with great ideas. It's sort of an inclusion. You need to include everybody to get great ideas to make solutions for our clients, whether it be improving the in-flight experience for Delta or improving how Williams Martini works on and off the track or even sort of the supermarket of the future with Co-op Italia. It needs a lot of different minds, different ideas and women come with great ideas. Can you share an example where you, the coolest thing you can think of that you guys have been involved with that's been built out of an initiative that was formed with the women in tech? Well, I love supermarket of the future. You were showing it last year and see if you probably have an example to share as well where you take, the whole store was in the World's Fair in Milan and all of the technology, all the signage was digital. You could point at something, pick something up, all the data comes to show you where is it from, how heavy is it, what's in it, et cetera. Everything, everything digital. I think that would be the key one. I think the other things is, you know, adjacency with that, you know, sponsorship in moving with Aspire, right? Which is not directly, but what we're trying to do there is the same thing. You know, more influence, you know, more women in society overall, but using technology as a way to try and do that. So we're trying to use our corporate social responsibility to try and put that in place in terms of being able to get more technology by influencing more women in terms of those types of things. And also in terms of the influencing women customers, but also women, women workers, women employees, I know you were also your company signed the White House pledge. Can you talk a little bit about what moved your company to do that? I think, you know, I think there's some things you have to have a responsibility to do and hold yourself to account, and I think that's one of them. And whilst it's a, the White House pledge is a U.S. thing, we're a global organization. We believe we want to do that those everywhere. It's good, best practice, and therefore putting those things in place and sitting in the pledge in place is something not just about a U.S. workforce, but it's about our workforce globally.  Can you talk a little bit about the values of your company? I mean, as John was saying, this was a joint, this was the product of a merger, Accenture and Microsoft, and it's been so successful. What are your numbers? Yeah, we're now a two billion dollar business, 29,000 people, more than across more than 23 countries. So yeah, our values are really important to us. And you know, one of the ones come to mind, we believe everyone counts. And Steve talked about the Aspire, our relationship with Aspire Foundation, and they have a vision to impact a billion women by 2020 through mentoring. So the mentees sign up, they're from non-profit organizations or government or communities, and our people sign up as mentors to these mentees. And it doesn't matter whether you are a junior person or a senior person, a man or a woman, wherever you are in the world, you can get involved as a mentee. And you're going into schools and community use. You're doing one hour mentorship to people who sign up. Now they may come from very different organizations. They may need help with what's my next job. They might need help with how do I communicate? A very senior woman, you're looking at how can I be more visible as a technologist, or it might be someone who's heading up a non-profit that says, where do we go from here and can you coach me? So it's very much tailored to them. And I think the other thing to add to that is, you know, we are trying to improve our gender diversity in the organization. So about 25% of our people are females. So that means there's a lot of men in the organization who don't have the experience of mentoring. This is an opportunity as well for them to mentor women not in their environment who have got different challenges and different opportunities. So there's some learning, passing knowledge on and for individuals to also learn, which also means they may think differently about what we're doing internally, what we have to do. So it's a great win-win in terms of passing knowledge and learning from that. Steve, talk about the future of work because you know, you have to think about the past, the current and the future. And the past has certainly been a very male-dominated culture that we've lived in. Certainly I've been in the industry for 35 years. I've seen a very heavily male-oriented. Current situation now is a huge awareness. Obviously this show is successful. But the digital transformation that's being talked about, which is totally real, people are changing the way they work. And there's been a lot of pressure on how to maintain the right employees. What is the role of performance reviews? How do you modernize the HR leadership function so that people can have a nice balanced workforce, balanced life, great diversity, everyone's contributing? I think it's a great question. I think, you know, we generally do try and do that. You know, the great advantage that we have is technology allows you to work anywhere. You know, I live in London, I'm based in Seattle. I spend all winter traveling as Stella does, right? And we have a lot of people like that in terms of that aspect. And I think what we're also trying to do is recognize how we developed our careers is not how many people here are going to develop their careers. So employers, we need to be much more flexible and adaptable and we need to begin to think about, you know, what do we really need to put in place for people? When I joined an organization as you did, Stella, loyalty was a big issue. If employers don't provide a different form of loyalty, individuals will leave because there's plenty of choices out there for women. And therefore, what we're trying to do in our organizations is be different, try and encourage more people to come in, try to be much more flexible and adaptable. Some of the things people talked about, the key notes this morning, about some of the employment policies they want to be in place, about flexibility, about investment in leadership, investment in women, you know, we're trying to do that. We run our Avonad leadership program for women. You know, we take 40 women each year, we run them through a program and we not only just put them through the program, but we're trying to look at what do they need in the future in terms of skills. The other thing that we're actually trying to do is develop what we call an associate network. You know, again, beginning to think differently. Maybe people don't want jobs anymore, they want experiences. So can we provide people with experiences? And I think that's where technology's taken people now from a technology perspective. That's a great point. Let's double down on that because I think that ties into what we were just talking about earlier about having diversity, which makes things spicier, certainly, right? But also opportunity is there. So you want to create an environment where people can be leveraged in a way that provides their talent but also provides growth for the employee. So with all this agile conversation happening, this new formation, so it's not like you're in the job or hey, they promoted that person.  That person's the wrong person for the job. What criteria? So a new kind of algorithm is developing where getting the right people in the right position is a big data problem. Yeah, and with the tools today, I mean, we work with colleagues in India or wherever you're doing an agile sprint or meetings together, you're whiteboarding things, you're sharing as if you're in the same room. Do you guys use big data because that's come up many times on CUBE interviews where HR, rethinking HR has come down to, well, if we can use analytics. Like you're fielding a team in the same way that Cybermetrics has affected has changed baseball and basketball and football. And I think we've done that this year. We've used analytics and really for the first time, trying to look at retention, attrition, why are people waving us, whether it's irrespective of gender, but why are people waving us? What's the real reason? How's the career? So the ability to use that has enabled us to really focus down on a number of key things that we've wanted to try and address because we spend a lot of time recruiting people and bringing people in the organization. There's no point. Time and money. Time and money. So I think really being able to use big data as a way to try and get better at it is something that I think HR can put a big role in. Stella, talk about your experience here at Grace Hopper. And Steve, I'd like to get your take as a first time attending. Not yet well known globally yet. It's certainly rising very fast in terms of awareness word of mouth in all circles of the globe for technology, intersecting, social justice, women in tech, women in technology, steam, et cetera. For the folks that aren't here that are watching, what's it like and how has the Grace Hopper celebration of women in computing evolved? How is it changing? What's the vibe? Could you share some color? Well, there's incredible energy. I don't know if you were in the basketball stadium this morning with those 15,000 people. I remember last year I was my first year coming here and I was stunned by the keynote so that big hall being filled. But today walking in and rewalking at the top tier.  Absolutely incredible. And there's people all walking around, milling around. These are people who have their futures ahead of them. I mean, how exciting is this? Why should someone get involved in this community? In tech. And Grace Hopper, this event, the ecosystem of what this is building. It's the networking, the ability to go and see what's out there. We're doing mentoring on our, speed mentoring on our booth. Speed mentoring. You're doing those kinds of things. There are other companies doing things to connect great way to meet people. We're accepting your resumes from interns and experienced as well as people just coming out of college. So you have a great place to find a job. Of all the shows I go to, I got to say, this is the most colorful relative to theme-based booths because the engagement is so high here that you can see the personality of the company by their booth. That's true. That's the idea. That's the marketing idea that you execute properly. I love this event. Your thoughts, your first time here. Well, I think when I, I could show you a photograph, we turned up three years ago. And I won't show you the photograph, but my team sent me the photograph and I was embarrassed, right? Then when I found out a little bit more about Grace Hopper, we got serious in the last two years. So I think, you know, I never attended last year, but I think for us, we just see so much value in richness. A, been able for us to explain a little bit of what we do, people to experience, as you say, the brands represent the organization. But for us to touch people, you know, in a way, and for people to touch us in a way that we've never been able to do before, it's just pretty phenomenal. Arrow smiling, I mean, everyone's happy and watching out here.  And there's no status, right? I think that's the other big thing.  Rebecca, your thoughts, your first time too. I'm loving it. I think this is so much fun and it's just really great to be around all of these young women who are so inspired and veterans too, who are looking out at the crowd and saying, this is wonderful, the future is yours, but I also had to take some hard knocks, so appreciate me for what I did for you for opening those doors. Well, thanks for being our host. Because last year we had no women hosts and we got kind of politely talked to in a nice way. Well, I'm glad. I'm glad I can add some diversity to the host of you. I love having more hosts. Yes. So thanks for sharing your thoughts here. Stella, appreciate it. Appreciate you guys coming on theCUBE. We are here live in Houston, Texas, for the Grace Hopper Women in Computing Celebration. You're watching theCUBE. You're back with more after this short break.


Proste za delaj. Čekaj za invitacij. To je moja pravda, da... Prejdeš mi, da je dobro? Na mikri? Prejdeš mi? So, na pravom mojsela in svojim organizacijom nevorilim organizacijom, nevorilim organizacijom.  So, in this agenda I will talk about the motivation, which will let me hear. It's just a side project and about the design, the decisions, what's under the hood. And I will make a small demo that the language is actually capable of doing something useful. Because many languages start with Fibonacci or doing some temperature calculations. I have this also in my language. So, as I said about the name of the language, so in this picture you can see that all the letters from A to Z were already taken. There are many names of ex-girlfriends, I think, like Lisa or Lily, so that was also I couldn't use. And there are many names of famous scientists and some cute animals, so that I thought that, well, never also will fit as well, so that's the name. So, it's a hobby project, a creativity escape. I also am learning a little bit about programming languages, it interests me a lot. I think that many people who work in IT or computer science, they also are interested in this, because this is the primary tool for doing things. And in the background you can see, this is a translation of the Dragon book, which I was reading, and that was one of the first books, which gives you some very theoretical background. Then there are two books, which led me to extend the language. There was a talk about types, so we have also a book about types. And there is a book, which was very useful to start doing actually the design or the language, not using the Dragon book, but rather to start writing through a machine. And this is a perfect code, there are some clean codes, so those are the things, which you also should look after, not to create some mess, but some maintaining code, which can be extended. So, the design decisions, those are, this is, first I began the language as a functional programming language, there is a chapter in a book, how to make a functional programming language. And then I decided it should be called by value, it should be statically typed, because I want to have the compiler to correct my code, and besides such code is faster. I knew that many functional programming languages are ML based, maybe you know OCaml, which is very hard to read, so I then thought, if everything is doing from scratch, then maybe I can have some C-like syntax. And then we have reference models, so everything is reference, basically we have box values, how the values in memory are represented, so every flow or integer or string is kept inside the memory as a separate object. And it's syndically scoped. So, under the hood what helped me a lot was actually not to come up with something completely new, but I read the book, which I mentioned before, and then there I found the Maurer machine. I suppose it is the basis for the OCaml language in its virtual machine. I also needed Margen Swib Gerbic collector, because how the objects are created, how the first class functions are being returned from different functions, so not to have so-called spaghetti stack, I needed the Gerbic collector, which also kind of simplifies things. As minimalities matters. And tail rates optimization, when we have a functional programming language, then we don't have loops, but using tail recursion we can change loops into functions. Then there are some other things like hash maps, trees, linked list, and everything is written in C using our old friends, Bison and Flex. So this is kind of the basis for many, many compilers when they are in the initial step. So that's how a typical code looks like in never language. So here we have static types. It means that the function calc returns a function from within a, it returns a first class function. This is its type, that it takes a float parameter, returns a float, and it converts Fahrenheit degrees into Celsius.  So that was the first part, which was written.  So those, the language, how it was developed, I decided to first begin from invoking functions, because many programming languages have loops, or ifs, conditionals, or some other control structures, but this seemed to be not very interesting to me, because it's very well written, and all the function invocations are written in a textbook at the end of it. So I decided to begin from the end, because the beginning was not very interesting, and actually I think that was a wise decision, because this way I had some kind of structure, how the program will look in the later on, some framework I could extend. So everything was expression, also functions are expressions, we have some simple operators and we have only one type, and that was the beginning, so to execute some expressions. Then I thought, oh, maybe having these controls is not enough, so I added a type integer, so I could add a new operator, I could do some Boolean expressions, like and or not. And later on I thought that, oh, maybe we should add something more, so let's go back to some controls, and I added some arithmetic functions, and also assert function, and that was also I think a good decision, because this led me to write programs, which were validating themselves. So when I would write something in the never program language, do an assert, and then I knew that if this program works, then this asset will pass, and that I can create a large test suite of many tests to validate if what I'm doing is proper and if I'm extending the language in a proper way. So then I got back to types, so matrices again as to do something more, and those were conformant arrays. Conformant arrays mean that when you pass a function, an array to a function, then you will get its dimension as an argument of a function, as such solution is in the Pascal programming language. I also overloaded operators. Then I thought, oh, maybe let's go and add some more control flow, so I added four while loops, and also variables. So at this point it's also interesting, because I was trying to write some dynamic programming language. Maybe you know the dynamic programming problem to solve, and it was cutting rot. You maybe know that you should get a maximum value in cutting the rot, and there are some values we should remember. But without side effects it was very tedious to write such a program. So I thought, oh, let's do some assignments. It was to be functional programming language, but maybe if someone doesn't want to use assignments, he or she will have functional programming language, but if we can change something that we can do more easily, call some interesting problems. Then I added types and exceptions, and that's it. So that's how the programming language was progressing. Could you tell more about the exceptions, why you decided to implement this model of exceptions? Well, I also was thinking how to handle with some runtime errors. The question was why I decided to add exceptions, not some optionals or some other form of error handling. So that's because if we had a division by zero, then the virtual machine would stop, but I didn't want to do that, because I would like to have the programmer to have a chance to handle the situation in his or her way. So I thought that maybe there is something like exceptions, and I can learn how to do exception handling. I learned that exception handlers are being searched by binary search in the code, so that was really surprising technique, which I also found somewhere, and that's how I added that. Here you can specify only the name of the exception, there are different exceptions, like array of bounds or some others. So how much time do I have? Five minutes, and then questions. Okay, so here I have an example of a neural network. So briefly I wanted also to make some example of some more advanced program, so this is backward-forward propagation of the supervised learning of a natural network. We have a perceptron, we have some input values and some output value. Okay, and so, and also some neural networks are recently a hot topic again. So basically we want to set those values to such variables, to such values, so the error, error, which is written by the perceptron, is as low as possible. So basically we need some function, which gives values from zero to one. We wanted to have a randomized function. Here we have a seed, and then we return our original congruential generator, which gives us subsequent pseudo-numbers. Then we wanted to define our own multiplication. We can multiply our rise in another language, but we want to have some other form of multiplication, so here it is. So this is kind of element by element multiplication. So those are the input values, we have four out of eight possible values, and then expected outcome, which should give us the neural network. As you can see, the output is the middle value, and the left and right column should be discarded. So then we begin with some random values. For all input values, as those are operations on all elements of an array, we get some output, which is the s, then we use something, and then we have output of our network, but we want to improve it, so we use something like called, in the back propagation, this is gradient descent method, here we have the sigmoid, it's derivative, so we move towards minimum of the function, so we calculate the error, then do some multiplications and correct the coefficients of the network. So all those operations or matrix are done in some convenient way, so you need to write how to multiply some matrices, everything is executed by the virtual machine, so matrices are first class, and in some many learning cycles we repeat the forward-backward propagation to have those coefficient low, and here are the results, those values are involved, are the input values, which the network has never ever seen, but it gives us proper results, except for one value where it's undecided, instead of saying that it should be zero, it gives us 50, value 50, which is kind of unexpected value, undecided value, so that was the longer example, and in the future I want to extend on types, add some operations on lists, use some externals and improve runtime, actually records and list comprehension and foreign function interface have been added since I wrote this presentation, so I think that I will now focus on some type inference, I think this is what Lua people want to do, and basically that's it, so to summarize, creating programming languages is a fun, can teach you a lot, although it comes at the price, and I think at the end is a satisfactory to see something that it's running and that it's being executed as you expected, so thank you very much for your attention and for invitation, and if you want to check the language and of course I like to, if someone starts me on the GitHub, so thank you a lot for your time, thank you very much, if you have any questions, and if I have time, then I have t-shirts for the best questions, for six best questions, a question, no, no, it's by reference, so you get only kind of a pointer, a reference, so only a reference is passed to that value, it's still in the memory, it's not being copied. No, you can modify them by the assignments, so if you have a reference to a variable or indexed an arid, then you can modify it with assignment, yes, yes, yes. Uh-huh, yeah. Well, I think that it's your choice if you prefer to do this this way from some academic point of view or if you would like to learn how tail recursion works or if you'd like to try to write your function in the tail recursive way, then here you go, you can try this, and if you are, and loops are syntactic sugar over tail recursion, so you can do tail loops instead. Another question? Yes. No, not yet, but this, I thought that using foreign function interface could use some libraries to do such optimizations, but it's not ready yet. Thank you. Yeah. It's 25,000 lines of code right now. 25,000. Yeah, it's virtual machine type checker and scanner parser. Okay, thank you. So, yeah.


A Beltrami County jury has found a Bemidji man guilty of aiding an offender in the death of Bemidji's Rose Downwind. 32-year-old Brandon Rossbach was accused of helping Marcello Simerusti burn and bury the body of Rose Downwind. Simerusti had previously confessed to murdering Downwind and said Rossbach helped him move Downwind's body to a location north of Bemidji where they burned and buried it. So there were things that were brought out, pictures that were shown. It just kind of opened some wounds that we've tried to heal. But now, thankfully, we got, he's guilty, which we knew all along. Rossbach was found to not have participated in burning or burying Downwind's body, but the jury did find that he inflicted emotional distress on the family when he sent text messages from Downwind's phone to her mother making it appear Downwind was still alive. It just means, thankfully, that now all three people that were involved in the murdering of my sister are now being held accountable. Rossbach's sentencing hearing will be held on December 20th. If you've enjoyed this segment of Lakeland News, please consider making a tax-deductible contribution to Lakeland Public Television.


Hello and welcome to this edition of quality of life today. Our subject is choosing success and helping us discuss that subject is Jim Lurkey. Jim is the author of choosing success Jim welcome to the show Hi, good morning Jim first of all for our viewers. Could you give us just a background on yourself? Well, I've been a guy who's been there done that from growing up on a farm to working in a workplace working all three shifts to being in human resources safety supervisor plant manager corporate safety director for a fortune 200 company and a plant manager in a fortune 200 company Wow, so you've been around the block a little bit. I have been around the block. Okay choosing success. What is it about? Well, what it's about is as I go about my teachings and leadership The biggest thing that I hear as far as a question is why aren't we getting the results? So choosing success came about because of exactly that How you deal with people treat people motivate people About being successful as a leader. Okay. Is that what brought about the book or is there a little bit more behind the story? Well, there's more of a little bit of what that story I Had a number of people through the years that asked me about writing a book and it was on The Jim lurky story and his private life. Okay, and what that was about primarily was losing a couple children and Then being involved in an I-43 crash fog accident It was going to be about overcoming tragedy and still being positive in life in that process of writing the book and It was detected by what I call a ghost writer From Indiana the port Indiana and we decided to make the shift when it was found out that I never failed with what I was doing in any 12 month period of my life Working in a professional field. That's what led me to switching to choosing success Wow, I can see that's quite a path to go down As far as that goes in the book So what are the main components of you know choosing success or how does one get to the level of success? well First of all the book talks about the seven elements to being successful Those seven elements you can apply to your life. You can apply to any leadership ownership of a business makes no difference The book primarily focused on safety and the reason for safety is safety's personal So that's the reason The emphasis was on safety, but you can use these seven principles to anything in life Wow So what are the seven principles? Seven principles Number one is commitment To get the best results you got to have commitment number two is Leading by example So often see it all the time Sell them like they goes by when someone don't say they're gonna do something and the end result is they don't do it themselves So number two lead by example do what you say, okay? Number three is goals if you can commit lead by example and then set your goals Then you'll have the best chance to meet those goals Number four number four is processes now. This is a huge category Because it could be processes and sales how you do sales Processes and standard work instruction or standard operating procedures. It can be policies and procedures You name it up to an including discipline So processes Number four and with processes It's also how certain processes interact with other processes. I'm assuming so how the whole chain or the gears fit together Absolutely correct number five is on communications some of the biggest things that I seen is Communicating one-on-one and how people communicate in there fending people You name it the other one part of communicating is Talking to you a group of people two or more and trying to get your point across so we talk about communicating in the book critical Then we move to number six And number six is celebrate Along the way, it seems like we in life sort of forgot about we need to celebrate our accomplishments and Reward those who have helped us in our successes And then we go to number seven last but not least It's audit the process and the reason for auditing the process In the workplaces and businesses. I will hear all the time Where people are making comments whether it's management and hourly folks alike Here comes another flavor of the day Businesses start something or a program and they stop they start they stop and they don't even tell the employees They stop so it is critical to have an audit process in place so that you can ensure What you say you're going to do and what you're doing is follow it and Audits are critical as far as the last step number seven Wow And I suppose you can turn right around and go back to step number one keeping in the circle because it can also be a Continuous process as well and it is a continuous process like number four talks about processes And I've learned that if there's a failure and we'll take safety for example Somebody chooses to do the wrong thing And yet maybe they commit it But they didn't walk the walk and talk to talk by leading by example and doing what they said they were going to do So so often more often than I'm not I'll get to number one or number two and that's our part of the issue is And then probably communication filters in a little bit there because you know, it's not flowing through or the light isn't going on so to speak That's where you need that's why you need all seven all seven Is there a component of education in there where to bring people up the speed or an orientation, you know So they get to see where the car is going versus doing their little part Well in the book I talked about Step-by-step with given an example, okay, and when someone is struggling with certain things they could revert back to the book Look at those seven elements and see where they do they need to align or realign to make sure they're getting the best results Okay How long have you been practicing in teaching the you know the process of choosing success? How long has that been in existence? Since I started working on the original block Being about overcoming tragedy and it's switched. I Would say about two and a half years right now, okay that I've started to talk and educate people on those seven principles Okay, with your background. Did you have any formal education or training in these types of techniques? Or is this something you came up through your life experiences and just applying common sense? I Would tell you applying common sense would be pretty accurate and When I look back at the different things that I've been involved in and being successful These are the seven that I came up with and in the two and a half years at least right now And I challenged other leaders and different folks to tell me if there's anything missing in these seven I've heard nothing different and To me, it's these seven elements are right in the head on how you can be successful in life Okay, I know you alluded to earlier as far as What can be used in the business place workplace? Where do you see people using you know this process or your guidance now? In any business any manufacturer Any type of leadership position they could use that buck whether it's from ownership to executives to human resources to Supervisors and leadership Including an hourly employee how to communicate with each other one-on-one and be respectful and a caring person How about in a personal nature or other types of you know organizations? Let's say health care or education You know those types of areas as well As I referred to earlier you can use these seven elements in anything you're doing in life because if you take processes in Any kind of business there's processes in place goals Goal is a given but how to get there Talking about first and foremost number one is commitment and leading by example Those are the things that I've forgotten the best way for me to tell you is it's like New Year's Eve when somebody wants to make Commitment or they or they're gonna try to make that commitment for a new year's resolution How often majority of the time? they don't live up to that and Probably this is a good example when I look at committing to doing what you say you're gonna do and making believers out of people Starting with yourself. That's how you get results And I could see even in the family structure so to speak You know when you're raising kids whatever you want to lead by example and do that You know instead of the old do as I say not as I do so to speak, you know Parents they used to say or whichever years ago, you know, it comes right down in the family structure, too It comes down to anything in life and you're exactly right whether it's family. It's friends. It's business. It's leadership It's an employee being the best you can be that's what it's all about In creating the book the whole structure and everything what type of support did you have? You know it must have been Quite an ordeal, you know with what you went through personally and then to come Ahead of the game so to speak, you know to get you know back on the tracks and you know come up with the book What type of support did you have? Oh? I had an unbelievable amount of people that Would help support the mission and my mission obviously once I come in because I didn't want to do anything I didn't want nothing to do with the book originally Then when I got into it, I'll never forget the one comment that someone made early on You're gonna find out and learn about yourself and that's exactly what I did So I had support whether it was proofing it was writing it was Anything I needed help when I really got that support and I'm very blessed for that excellent Can you give us some insights on the new Jim lurky so to speak and what you've learned through the process? Do you want to share? Well, I don't think it's anything about the new Jim lurky other than What the Jim lurky learned about himself? Okay? When you're so focused on doing what you do and seeing results and seeing making a difference in life You lose sight of what you're about when you're in this process and in the process. I found out I Am a caring person. I Want what I believe is is doable and achievable as far as results no matter what it is I want other people to share in that success as well And that's the biggest thing I learned about it helping people to be the best they can be in life Which then raises their quality of life which then if we're raising, you know other people's quality of life Quality of life in general raises And that's a perfect scenario Because I could give you a case in point in my personal life Remember starting softball at age 20. I mean age 18 and some 25 years later Being inducted into two hull of fames and softball winning a world championship in Louisville, Kentucky It's incredible skies the limit If you're a person who doesn't want to quit and wants to see and be the best they can be But I think that's another important note to take is there will be failures along the way But you can't look at those as okay, I can't do this or no this isn't gonna work You look at it as opportunities and how you can solve it And you may have to take a few steps back in the process and start over to see how you can overcome it and even you know Achieve success on a greater level one of the things when I teach and it's interesting you bring that point up is We are as good as we are when we deal with the worst situations Obviously in my case as I shared losing two children which now we've lost a third What makes us who we are is how well we respond to adversity and doing the worst of times when things are great Everybody's happy and satisfied when things are or our feathers are ruffled or you got to deal with the worst of times in life That's when you really find out what how good of a person you really are Yeah, that's when it's time to roll up the sleeves and But I did like your your wording Opportunities, how can you turn something into a positive? Correct? A few weeks ago you had the grand releasing of choosing success. You had your book signing Could you tell us about that as far as that experience? Well, it was a remarkable experience from the first and foremost not Wanting to do it, but I had business Leaders who convinced me to do it and if we would have had 70 there I would have really been happy here at the University of Wisconsin Sheboy in campus The reality was it was upwards of up to 300 totally overwhelmed totally numbing and It was a huge success At that point, you know, I could see you were probably on this all-time high You know riding the wave and surfing on it, you know, just enjoying the moment Could you explain to our viewers, you know, how that felt? I Think the biggest thing and how I felt I was totally numb Overwhelmed by the number of people that came for a book signing when I went on did some investigation and thinking maybe 70 would show up and There were more than that that came to the speech that was given. So it was It's way beyond my expectations of how and what happened was signing the book. Okay Again, there too. What type of help did you need to make that all happen in your process as far as the book signing and launching the book and You know getting it out there I think the biggest thing was business friends who shared you should do this do that and then putting it all together Myself and making a final decision Like choosing success choosing success choosing that process choosing What that from a time to have it to place to have it what to serve To make it the best event possible And that's why it was overwhelming planning on 70 and and so many so many people showing up Okay, what type of feedback have you been receiving from the the book in the process? so far I've had anything from business people to ownership of business to school systems to a person in a tech college That have talked about using it And and really finding themselves with the seven principles and So it's really been amazing what I've heard Because the book really is put together in the most simplistic quick read Something people could refer to to get those results that that you as a person desire I think that's important keeping things simple like you had mentioned the quick read You know here's like a quick reference guide You know we can take this and then obviously if people need help we're implementing it That's where you come in as well as you can be contacted Absolutely, I can be contacted at my email gym at safety connections calm or a simple phone call on my cell Which I take with me everywhere nine two and nine one two seven two three three nice Can they also get copies of the book from you at those same Means of contact. Yes, if they contacted me I can assure them that we will take care of somehow some way getting them a book Okay, are you going to be going through other? Distributors or bookstores for selling it as well. Yes, right now right now. It is out on Amazon. Okay So it is going extremely extremely well. I would imagine then your schedule has Increased Exponentially as well with you know launching the book and you know your career and helping other people with your passion as far as that Yes, I've actually noticed that effect Since the actual book signing day folks that want me to come in and obviously talk about leadership and Being able to be a best person you can be nice Could you walk us through Jim? Let's say I'm a manager that would like you know some guidance I'm looking a way to get things going to motivate people to you know get the train on the track so to speak again What would? You know an organization the step-by-step do to make that happen, you know using your book Well it talks about different things to motivate But going to a training session per se what I will do and that's been a process over time But it's to get leaders to think about what am I doing to motivate one of the things leaders don't realize in general for the you know It's basically common sense But we don't think about what we're doing to motivate people so that we are what we're really doing as leaders Is creating the want to get results? The seven principles create that want Okay So if I wanted to I could contact yourself You know for kind of jump-starting integrating us in the right direction and then the book should pretty much Shouldn't say the book but the choosing success seven processes or seven steps should get us there Absolutely now sometimes what we're running into and what we see and it makes total sense is when you've been in a team setting for How long and sometimes businesses aren't seeing the responses from people Well, they've been in that environment so long. It isn't that they don't know right from wrong But sometimes they need a jump-start and when a third party comes in it's ironic But because it's someone like me saying it all of a sudden now it becomes reality That's one of the things I've been learning and seeing actually firsthand That's nice. That's I know when I came to the city For my tenure and everything it kind of comes down to first thing you hear Well, that's the way we've always done it and like you said people kind of get into that mold or whatever And it's hard for them to break out where if somebody from the outside, you know, just makes that you know that remark or that Idea or launches that idea things can really change and open up Absolutely because in general people resist change as I'm sure you know and Yes, I feel the book and the training helps to open up avenues Definitely, and it isn't just government. I mean Changes change people by nature if they're comfortable in their comfort zone They don't want to change things because they're comfortable. I mean, it's working, you know, they don't want to disrupt that routine But the other thing I know is I think Industries can learn from each other where this can be the common factor, you know, like health care How did you do this?  They're going to get you help And I think that's the extreme side of it versus, you know, other industries, you know, like manufacturing the service industry Government, you know, all of that can learn from each other and how to do it because it's just you are Selling a service, a product or yourself or something else But the means should still be the same and how to deliver that service or that product One thing is, as you talk about Change, one thing that comes to my mind Those folks that are in leadership that are unwilling to change If business leaders and owners Aren't willing to change My direction is real simple five to ten years They'll find themselves on the outside looking in and it's by choice So that's where I come back to the title of choosing success. It's an individual choice It's a leader's choice To be the best you can be and being successful And actually be surprised how successful you can be just applying these simple These simple steps and you know compiling it with Common sense Well, I can look back when I look back and it was pointed out to me in this process That I made every goal at the end of a 12 month period That was set in front of me and mutually agreed upon by myself There's a lot of people that can say that And by living these seven principles when I develop what I believe are those seven principles That's to me what drove the success of my life Nice As far as goals, you know, they always say you should shoot high and then if you don't make it there That's okay, but you should still have lofty goals What's your thought on that? My goal my goal my belief is simple. Okay number one If they're extreme It's not a realistic goal. It's got to be realistic And I like using what's called the smart theory Specific measurable attainable reasonable and it must have a timetable if you can't do that To me I wouldn't be using a goal But I believe those That is what you have to do with goals And obviously once you reach the goal through a period of time you need to re-establish the goal And it should involve everyone And not certain people Or as I hear all the time on teams, it's about who's got the squeaky wheel or it's or We pay attention to the squeaky wheel. Let's just say that No We have goals, you know, we had talked about we have success We're to strategy or strategies Or visions come into how this plays out Well, I I think It's very simplistic in nature that we can talk about goals and we talk about visions And vision is more long term in my opinion Meaning if you want to have a plan that's Five years three years one year But understand that a vision is different than a goal And most goals need to be monthly All right, and yearly and to be re-established Don't wait till January of the current year to start looking at goals That should come well ahead of time meaning you're looking at Three months 90 days in advance to start preparing And then you always raise the bar All right, and keep the avenues moving when processes That you keep looking to strive to be the best you can be At what level in an organization do you think should be laying out, you know, the mission the vision Strategy and then the different tactics and goals You know from that structure from top to bottom, you know, where do you think that should all lay? I think it should lay in the beginning right from the get go If you lay out what you want And uh you make that commitment So often a lot of businesses fail because the commitment ain't there in the first place So if you follow those steps And you look to lay everything out at the get go obviously As long as we're willing to change and we're open-minded That a person's still Open to change whether it's the vision or the goal And uh, but they're moving forward And it's a no quit never quit attitude Definitely, it's almost like what do you want to be when you grow up where you always look at You know how many times you change majors and College or you know when you first start out you want to be a game warden and it's an astronaut That's whatever but as long as you have that willingness to Make those goals, you know to move forward and then as you know, you move on you realize what we need to change a little bit That's interesting. You bring that up Because one of the things I'm finding with leaders The majority of leaders Are really not happy Doing what they're doing And that's amazing to me And sometimes we in business wonder why we're not getting the results And To me it's pretty simple. We need to do what we love doing Where we have the passion The will and determination to be the best we can be When people always ask me well, how is it working for a city and I just tell them I'm living the dream. I'm living the dream. My address is one rock star lane That is awesome That's awesome and and and based on what I do it's The passion of seeing others Achieving results that they never thought were possible And then I think the other thing is recognizing those achievements that staff People in general make you know saying hey, that's a great job instead of always saying there and you know, you didn't get this done Because you know it gets discouraged easily when you're always beat down with the stick for messing up versus Recognize them rewarding. Hey, this is really great work. The team is really great. You know, this is really Did a good job. Well, that's interesting. You bring that up because when I talk in the in the actual training if you had someone that could You train you talk about a hundred things you talk about 99 of them that are positive And you talk about one that's negative And you come back three months six months a year later. What do you think people remember? They remember the negative. Yep So I revert I refer to you positive reinforcement praising people but by using one word The word thanks. Yep, definitely Well, Jim, I'd like to thank you for spending time out of your busy day and your launch of the book choosing success So it's been a pleasure having you here Well, I appreciate you having me in and being able to talk about choosing success Definitely If anybody of our viewer if any of our viewers are interested more in choosing success You can contact us on our website at www.wscsheboygan.com For quality of life and on behalf of Jim Lurkey. I'm Dave Augustine. Thanks for watching