Do I need to do anything about the mic? Probably not. Okay, so thanks for being interested in authentication. Here's the situation. You have a application that you've developed, and a large organization is interested in it, and they would like to either buy it or deploy it, and you are excited about it. And the thing is, you've probably built it around Django Contrip Auth or something like that, and maybe you've extended it a little bit, and maybe you've added a nice management interface. But the organization wants all employees, all associates to have access to that application. And perhaps not just the employees of that application, but they have partners and suppliers and maybe customers, and all of their people should have access to it. The workflow, the ideal workflow is like this. A new person joins the company. HR is a good HR, and they put the person into their central identity management system, active directory, possibly. They put the person into groups that somehow match what the person is supposed to do, or groups to which the person belongs. And when the person then finally gets their password and logs in, they should be able to log in to any service that is somehow related to the work that they do. So if you hire a new finance person, that person should be able to log in to their finance accounting or whatever application right away. If you hire a new network administrator, again, they should get their laptop set up, log into a domain, perhaps it's a Windows laptop, and then access their network management system, network administration, and be allowed to log in. And vice versa, the finance people should not have access to the networking management, and the network administrators should probably not be able to access the tax records. The problem is that no one will enter those users into application in large organizations. So when a new person is hired, that application somehow needs to learn about that new person and about their access rights right away. No one is going, none of those administrators are going to type that person's details into multiple of their applications. They only want to do it once. Moreover, different organizations have different ideas and different requirements about what authentication protocols are to be used. Sometimes it's Kerberos, typically if you have active directory. Sometimes it's some chip cards. Sometimes it's SAML, especially when you want to integrate with other companies. Sometimes, often, the organization has a verified and audited method of setting up those authentication mechanisms using some front-end HTTP servers. And they won't change it for your application. They have standard that they won't use. So I'll probably do it the reverse way. I typically do it. I'll do a demo first, so that you know what I'm talking about. And if you think that it's too easy, you can leave and won't suffer here. So I have free IP server, which is basically something like active directory just on Linux. And I have Bob account created here. And I have a very simple jungle application. The application looks like this. It just shows who is logged in and it shows the last login attempt. So we are currently not logged in. Only admin has ever logged in. That's the situation. And I also have identity provider, which is basically which provides me with SAML assertions. And it's connected to that free IP. So I have three machines. Bob currently only exists in that free IP server. Now, I can do it two ways. I can either click login here in that application, or I can click login here in that central single sign-on solution, which way do you prefer it? Okay, so please log in. I'm Bob. I know the password. I get logged in. Welcome, Bob. Now, when I come to that application, I'm currently not logged in. I click login. I got redirected to that identity provider. I get redirected back. The log now shows that at 12.35, it's GMT time, so it somehow matches the reality. Bob has logged in. And not just that, Bob has acquired some privileges in Jungle. Now, well, either say wow or leave, because that's pretty cool. At the end, I'll show you the same with Kerberos. And at the end, you will be able to pick your own login so that you know that I'm not faking it. So do we do it? I will assume that we have Apache, that Jungle is running under Apache, and that we want it to consume that typical standard remote user authentication result. So how do you do it? Well, since Jungle 1.1, you have remote user middle bar. So that's easy, right? You set it up. But at least two problems. First, remote user middle bar really expects all URLs or accesses to be authenticated. So even if, as the result of that access, and what I did not show you, and I probably should, if I look, I have two different Firefoxs running. So if I refresh the view, you can see that Bob account got created. And actually, we not just know that it's Bob, we also know his first and last name. So there's more than just to the login name. But remote user middle bar wants that login name to be present in that remote user variable or whatever you call it, upon every request. So you would even need to maintain some sessions in Apache, which is kind of duplicating what Jungle does anyway, because Jungle created a session, right, for us. Or you would need to re-authenticate upon every access. That might have been fine when HD password files and basic authentication was used. It's not fine if you use Kerberos, because you don't want to renegotiate upon every request. You don't want to renegotiate upon every renegotiate summer. Second problem is, if you use the standard AuthViewSlogin, it does not really understand when the user has already authenticated via some middleware. It still shows that login page, even if the Jungle Authentication session has already been created. What's the solution? Well, how do we want it to work? We want external authentication, the one that the organization requires, be it Kerberos or GSS API in general, be it SSL, being SAML, I'll show some example with mod.autmelon. We want it to be only created or only enabled on one login URL. The URL that we were clicking here were, let me log out from single sign, otherwise I will not be able to log out here. This is the login I'm talking about. For some reason it doesn't show the URL, but it's slash logging. The solution to the first problem is coming in Django 1.9. We have new authentication middleware called persistent remote user middleware, and it basically does what it says. It will only require that remote user external authentication to be present when the Django authenticated session is created or when the Django session is marked as authenticated, and it will basically preserve it until you log out in Django. For the second problem, I've come with a solution which basically I'm seeking some comments about that user is authenticated, but unfortunately we need to write our own view or a login, and of course it can inherit from the standard of use, but if we check that the user is authenticated, we just redirect to whatever the landing page of that login page is. So if the user happened, if we click the login page the user happened to be authenticated before the handler got chance to be involved because some middleware kicked in and found that remote user populated. We'll just say, well, okay, you are authenticated fine. Django upstream is not currently very happy about this being the default, and so at the end of the presentation there will be more links about how we want to solve the problem. Maybe even is that a problem at all. Now, if you have a modern application, the username that login is not enough. Applications want to send notifications to their users, so they need some reasonable email address. Applications want to show welcome David when David logs in and welcome Bob when Bob logs in, so they want some additional attributes about the user. So here's the proposal. Since we started with the remote user for the login, let's use remote user and underscore attribute for attributes of that user. Now, we've actually done that in other non Django, non Python projects, and it seems to work pretty well. If you are using SSSD-based installations, you can use mod-lookup-identity Apache module to configure basically mapping of LDAP or other attributes to those environment variables. If you use mod-automalon for some, you can do the same. So it's possible with, if you are depending on external, maybe Apache, maybe nGenX in the future, maybe some other front-end server, but if you are depending on external authentication, we should also somehow expect that external environment, that front-end HTTP server, is able to populate some other environment variables or headers, whatever you call it, then just remote user. How do we consume those attributes in Django? Well, I have remote user after middleware, which basically checks that the user as we see authenticated in Django is the one matching in the header so that there's no mismatch. And then it just uses those attributes, sets the attribute, uses those environment variables or meta-values, sets attributes for user and saves. This is a pointer if I had a pointer. So what this means is that upon every request, not just remote user middleware creates the user, which is what you would, what would happen normally, because you need that user record created in your application database, otherwise your foreign keys won't match or won't have anything to point to. But we will refresh that user record whenever authenticated session is started. So we have fresh data about the user. By the way, fearfully to raise your hand and ask at any time when you don't like something or when you're confused or when you want to add something. Now, that's nice, but I said that we also want user membership to somehow relate to permissions that the person has in that application. So the networking people, network admins, will be put by the HR to some groups, which will make them have more privileges in the networking application than the normal people. And it's not a bullying thing. It's not like you either get in or you're completely out because, for example, how does people, you often want them to have access to everything but read only so that they can check status of things. My background is system and network administration. So if I have IT help desk, they need to be able to see into things. They should not be able to modify anything or only a few things, maybe. So based on their group membership, group membership in Active Directory or somewhere else, they should be given application-specific permissions. The similar way, if I log in back as Bob, the similar way Bob got his three permissions here. So here's the proposal. Since we don't want to tweak the Django schema too much, we could have added special model, special database table to somehow hold the mapping. But let's start small proposal. If a group in Django starts with X-con, whenever an externally authenticated user logs in, populate his or her membership in those X-prefixed groups with whatever groups you find coming with that user. And vice versa. If the person is in that X-prefixed group and no longer you see them being member of that group when they're authenticated, remove them, so that when the person changes departments or is no longer working on the project, you have one central place to do that setting and it gets propagated to any application which gets hooked to the central server which is a similar mechanism. At the same time, if the administrator admins need to say that, yes, this person, even if they are not network administrator person, they will need to have certain permissions. They can use any other non-X-prefixed groups and manage their permissions anywhere they like. I'm just proposing that those X-prefixed groups are somehow special and yes. I'll show the code that does it. So one possibility is to have a separate... You probably don't want that, but one possibility is to also get users affiliation or walk authentication mechanism or domain. They spotted a problem. I did not want to get that deep in this talk, so you are ahead. So we said that we would have... that we could have remote user email for email, so why not have remote user group for groups? And the way you can set it up in modlookup identity which does lookups using SSSD, it's an OS-level authentication and identity solution. And the way it is possible in modaut-melon in the coming version that I hope will be released soon is that it populates group underscore n so that you know how many groups are coming and then you have those individual variables with separate names. And another possibility would be to have it just call and separate in one value. That's also a possible way to do it. And then we have the middleware and yes, the prefix is somehow hard-coded here because I thought that we need to start small and start somehow. And then we look at the groups that we get. We look at the groups that we currently have and we basically update what we have and then call this and save the user and update the user. So I showed you how it can work with SAML. Let me do it with Kerberos. Let me log out so that we have somehow a one-on-one state. What user would you like me to create?  You'll be very silent. Any or Penny? Penny, okay. Let me give her a password. Let me try to make this small so that you can see more. Yes, works cool. And I will not just create the account. I've been speaking too long so I need to re-authenticate as administrator which would be much easier if I saw the bottom of the page. Okay, so we have Penny created and let's put Penny into network admins group because she's joined the IT department. So we just created Penny. Let's change email address. Why do we have email addresses here? So that you can trust me that it's not just faking it. So we have Penny created. Sorry. We have Penny created. Let's pin it as Penny, Kerberos, slides, realms. By default, VIP creates the user with the password expired so I had to change the password. But I have a ticket granting ticket for those of you who are fluent in Kerberos which basically means it's a good thing. So let's verify what we have in the Django application. We still only have admin and BOP. And now, well, now I need to change the configuration of that application because Y is the client for some of here. So let's remove that. I could have used both, but I don't want too complicated things. Django, Extran Configuration, let's put it. Restart Apache. And so I'm blocked in, single signed on. This is what you would see. You would see ATGT if you blocked in on your Windows machine as well. Let's click Login. Now we can see that Penny has logged in, even if she did not have any account there. If I refresh now, the account is there. I can see that her email address is there all right. And I can check that Penny is a member of X Network Admins Group. So her group membership that I created, that I set up in free IPA, got propagated. And if I look at that Network Admins Group that I had pre-created, you can see that it has listed these four randomly just for the purpose of this presentation permissions. And if I look at what the application says to Penny, it lists just exactly these four permissions. Conclusion. It is possible to support multiple authentication mechanisms without writing Python code. Now this is a Python conference, so you might not find that a good thing. But first it might be required that a front-end authentication should be used because it's what the company or government body uses. And that implementation might actually be much harder than you can imagine if you start from scratch. In Django 1.9, it is possible to easily use authentication enabled, that external authentication enabled in Apache or in another front-end server, just for the login URL. And it will survive. It's that persistent remote user mid-war. You need to be careful, especially if you want that login page to still be available when the external authentication fails because you might want users to use Kerberos but fall back if they don't have a ticket. And by the way, just so that you trust me that Kerberos happened, you can see the HTTP service ticket was created. So it really was Kerberos that authenticated Penny. Now, yes, traditionally, remote user was what authenticated users. And in Django, we had the functionality to create that user automatically about the first login for some time. But these days, you probably want more than that. Attributes of that user, and yes, you need to find a way to somehow match what you have in your corporate identity management to what attributes each and every application adds to the model. And more importantly, group membership because you can link permissions to groups and have those permissions pre-created and predefined and when the user gets created, they get propagated and you can use them. Again, we were not writing a lot of Python code. We were not writing SAML or Kerberos in Python. We are just consuming external authentication. Depending on your view, it's either a good thing or a bad thing. So I welcome your questions and comments and here are some links to go with this presentation. And now really ask me some questions. Actually... What about federated logout? First, it's hard. Second, the epsilon identity provider does support it and SAML does support it, but depending on the protocol use, it's either possible or not. So if you are thinking about a kill switch, if the person gets fired, so they're really logged out, I don't think that you'll find a solution, like a standard solution. So I was not focusing on that. Would you be using the same method if you were using OAuth or something like that for login? For end users visiting the gentleman in the back? My question is actually pretty similar. I thought about more OpenID Connect. So when I already have a single sign on based, for example, OpenID Connect or anything else, do I depend on the implementation on Django that it's possible to connect it or how does it work? Because you were talking a lot about Kerberos or SAML. So what is really necessary that I'm able to connect my single sign on? Well, my answer would be, what does your Apache support? Because I'm really trying to not do it in Django. I'm trying to build a... Framework is a bad word, but I'm trying to find a approach in Django which would make it possible to use what maybe other languages and frameworks use. So if it's implemented for Apache or for some other front-end web server, then you should be able to consume it this way without having direct support for it or direct knowledge about that protocol in Django itself. Yes, but at the end of the day you get authenticated user and some attributes. So what I'm saying is don't try to... Or maybe you don't want to try to address it in Django. Maybe you want to find an existing solution for that and just consume the result. And it does not really matter how many round trips the protocol mandates to get the user authenticated. Eventually you will get the remote user or the indication that the user has authenticated and that's what we use here. Hi. Hello. We actually used to work together. I'm wondering if you have ever made a similar Django app but with Uwuzgi or something else other than Apache. With what? With Uwuzgi or some other server other than Apache. Well, we actually had a person working on the module on the modules for Nginx. So we're trying to somehow expand the approach to non Apache but we are still only focusing on Apache as our main thing. And again, it would be about implementing those protocols in those additional servers and then consuming the result in hopefully a standard way. Okay, so thank you. Everyone, please thank you.


Hi there, I'm Sandy Olnack, artist and papercrafter here on YouTube and today I'm going to bring you another in my Holiday Backgrounds series and I'm going to use a stamp set called Happy Holidays from Darcy's.  There's Doxen through the snow, Happy Holidays and of course, Meowie Christmas. But I decided I was going to make both of them on a card, which will make using one of the sentiments a little more challenging because I need to make the sentiment focused on either the dog or the cat. You'll see how that works out at the end. But I'm going to color them as if they are jumping in and out of the picture. Sometimes if you have characters that are in action, if you have them off to the left and right hand side of the paper, it almost gives them a little more action because they're breaking that plane. So I'm using some really dark browns here. E49 is the darkest brown of all of the browns in the Copic Collection and it's a little tough to get the mid-tone color to blend out a little bit and to soften that edge. I could have done a little more flicking with it, but I didn't want to chance getting too much of that really dark color in there because it is really, really dark and it'll take over real quickly. So I'm just scribbling over top of it with the E37 and that lightens it. If you take in my Copic Jumpstart class, you'll know kind of a little more about how that works because a lighter color will eat away at some of the darker color. That's how it does some of that blending. So I'm trying to put enough of the E37 down, just really saturating that paper well so that the dark color starts to lighten. Just right along that edge and even when I switch back to the E23, the lightest color, I'll still go over some of that dark because that's going to pull out a little more of that darkness as well and make it a little more soft blending. A friend of mine has a very, very dark brown doxin, so that's what I thought I'd do this in honor of her pup. So now I've got some red and green that I'm going to throw in here and actually on this little tiny detail, if you pay attention to all of the shading on the animals themselves and on that ornament, you can really get away with not shading the scarf and hat and that sort of thing. You can just color them straight up because nobody's going to be looking at them to see it, pardon me, if they're dimensional. They're going to be looking at the animals themselves, so I'm not really worrying about anything other filling in those colors on their scarves and their hats and things. Makes it a lot easier to get the coloring done. So a little puff is finished and now I'm going to move on to the kitty. I wanted the kitty to be a light gray color with all the different brown spots on it, so I started with a dark color or a medium to dark color. It just depends on what you think of as dark. I wanted it to be a light gray, so I consider it a C5 to be dark. I'm blending that out with a C3 to lighten that up and then going over it with a C1, you can see that C1 even eats away again at that C5 and lightens it and then I'll just fill in the whole inside to really give myself a nice soft blend. I'm not worried too much about that gray going over top of those spots because I'm going to color them in with brown. So if you're going to color them in with something darker, it's really easy to just go right over top of them and not have to worry about coloring around them with your markers. So I'm using the same browns that I used in the Dachshund to do a couple different color spots as well as adding just one little little bit of warm grays in there. And now I'm going to use the same green and red that I use in the other critter, but I'll just do a little bit of reverse. So I'll have a green scarf with red polka dots and that sort of thing. So there's a little more green on one animal than the other. Using that E49, that really dark color to touch up noses and then work on the ornament. Now the ornament, I just wanted to point out one thing and I thought I could illustrate it well by doing this with the marker. Sometimes it helps when you're coloring something and trying to leave a highlight. It'll help to leave the highlight while you're coloring. But I want to show you something that you'll see when we get to the end of this that isn't super helpful to do that when you have these lines across the Christmas ornament. Because see right across where that white stripe goes?  So sometimes it's going to be more helpful to make your highlights with a white pen rather than doing it with the markers themselves. Because that sort of just looks like that that highlight is broken up. But I started putting some shadows in here with a dark green. I'm just going to do two color shadows on this and not get real fussy with it. Then go back in there with my lighter green and just blend out some of that color a little bit further. Just going over that with a little soft blend. I did forget to go back and do the red before I start in with the next step of the white pen. So do as I say not as I do. I would do the red first before messing with this. And you can do just a single highlight or you can even add a funky shape to it a little bit to just add something that looks like a reflection. But see how different it looks when that white goes all the way across those black lines? It looks much more like a highlight. So now I went in with a little bit of the darker red to try to add a little dimension there. Once I already have the white in there it's a little tougher to do it. I wanted these two guys to look like they're outside in the snow. Even though this is an ornament hanging on the tree we're going to pretend that the tree outside is decorated. So I'm going to take my light green and just color in the entire background along the slope so that there's snow on the bottom but there's green all the way in the background. So they're at the base of a Christmas tree. And next I'll take that same dark green that I used before and start to make some lines in here. I want the darkest green to be at the very bottom so that'll be the richest part. And then leave some flicked lines at the top because I want to create the suggestion of pine boughs just little pine branches. Not a whole lot of detail in it. I just want enough that when somebody looks at it they think oh that's pine tree.  You can see I'm using a really light touch with the marker when I get to that flicking portion. Kind of swinging my marker back and forth so that I end up with really soft flicked lines that start to feel a little bit like pine boughs. You can make them go different directions if you're sort of thinking your mind which directions your pine boughs are going to hang down from. And make sure you get that feel depending on what the angle is that you're coloring them at. If you're doing this with different stamps your whole line structure and your your tree structure might be very different than this. And I'm going to kind of feel in more of this at the top just because I don't want to have too much light up at the top of one. There to be a little bit less way up there in the corner. Scribble some of that in. And now I'm going to go back in to fix some of the areas where I colored right over top of the ears. And I did that with my gray marker so you can use a color of splendor but you can also go back in with the gray to remove some of that green. And now I'm going to add another layer of this dark green to just darken in some of those areas. You can see that another layer of the color just adds more richness to it and it'll smooth some of it out as well as you can get some different textures in there and increase some of that texture. We carry more of those flip lines up into the section up at the top. Now one of the wonderful things about Christmas cards is that a white pen can totally change an entire card. So what I'm doing now is I added a string onto the ornament so it definitely looks like it's swinging. And I'm going to add snow everywhere. The gel pens, boy I tell you they can add so much festivity to a card by just adding snow. I'm adding it right over top of the image as well. It can hide areas that you didn't color really well so if there's a spot you want to put a little drop of something, if you had some blending that didn't work, put a little bit of snow right over top of it. And it'll look like the snow is in front of them if you put the snow over the image. If you only put it behind when it looks like it's only snowing in the background sometimes if you have just a sky back there it'll look a little bit more like stars than it will look like snow. But putting it right over top means that a lot of that coloring ends up not really being all that important because what you've got is a whole lot of snow attracting the person's eye. Now to create the illusion that they're up above the ground I'm putting the shadows way down below. So depending on how far above your critter is jumping you want to have it a little bit higher or lower to the ground. So I've added a piece of ribbon and a sentiment on a circle and popped that panel of all of that beautiful coloring so that I can end up having this beautiful little card that's so much fun and so festive with the little kitty and puppy running around. If you would like to see more of my holiday backgrounds there's two of them here you can click on or you can click on that playlist and that will take you to the full playlist of my holiday backgrounds which include not only my christmasy type of backgrounds my winter type of backgrounds but also some halloween type of ones as well getting to the fall and winter seasons in that playlist. All right thank you so much be sure to subscribe and hit the like button and I'll see you next time.


That is a printing plate Jordan back auto nice one there Rockies congrats on that good case, dude a very good case Nothing wrong with this case at all Joey bottle. Absolutely amazing


So just a little bit about me first. I'm a product school alum from summer 2018 And I'm a product manager right now for software enterprise software at guba-gu a Little bit of day-to-day for me at guba-gu is working on their conversational commerce platform for auto dealerships So we're solely focused on the car industry and our platform advocates all of the communication between customers looking for their vehicles To buy and the dealerships themselves These will include things like live chat on their websites integrations with Facebook marketplace and messenger Apple business chat Google my business email and text It's also a super exciting time for the team at guba-gu and myself Because we're pushing into digital retailing. So really cracking the nut on the entire process for buying cars online But before I had this job I worked in startups including my own and mostly in nebulous roles Touching everything from product to project management and design and coding The PM course at product school was what I used to formalize and improve on a lot of what I was doing already at the time And to help sharpen my presentation and interviews and it absolutely played a key part in helping me get this role here as A product manager at guba-gu. So there's three key things that I did while at product school that I thought really helped And the first thing was having a game plan to make the most of your time at product school So when you go to the product school class You want to make sure it's to actively shape your product school experience to give you your best chance If you want to get a PM job, you want to do more than just come into class and just absorb the information So, you know before the class think about or even write down two to three priorities you wanted to take away from the course and there's so many different Opportunities in the course that you could take away from so, you know ask yourself a couple of questions You know, are you here just for the material? Do you want to connect with like-minded product focused people? Are you looking for practice doing product development cycle work or do you want to practice PM interviews? How much time are you going to spend at product school committing to you know doing the reading and the class work all of these Questions you want to have answers to so you could tailor your time in the class to specifically bridge So the cat gaps that you have getting that PM job For example, you know, if you're getting if you're struggling on getting interviews You can talk to your instructor and you can make connections with your class to find out how your classmates or your instructor Had approached their search and so, you know asking these questions in class are super important It's not just about coming to that class For me for my own experience, you know, it was not a it was about my experience not having been in a large product organization You know, I'd always been in startups and I'd always been the lone product person in those roles so I didn't have a lot of structure to how I Approach product management when I was working in startups and I wanted to focus on connecting with my instructor and my classmates and Asking them about their structure and processes in the jobs that they have now The course covers some of this but you'll get a lot more from actively shaping your interactions And even now, you know, I keep in touch with my classmates We recommend job opportunities to each other and we get together and talk about products all the time and help each other Think about our products. I also keep in touch with my instructor and he's a great resource for challenges I face at work So really know the gaps that you have and have a plan to fill them with before even stepping into your first class And I'll be really helpful This is just a photo of the class that we had you can see that we're all quite happy And you know, we still talk to each other to this day and it's been great the second thing that helped me was product schools focus on Making sure you're playing to your strengths and that means taking your path to PMing one step at a time So during the course they'll teach you to start with what you know and do well already So, you know something with your career job and your company and you're probably already doing Some product work even if you're not a product manager So I know a lot of us do want to change industries when we're changing roles We want to step out and try something new But learning a new industry at the same time as learning product management is going to be an uphill battle Especially in your job interviews So product school can help you understand how you can tailor the work experience You have now to product experience that your company right now or a new company is looking for in a product hire As you learn throughout the class, you know pay attention to where parts of the product management role fit Well with your experience and where it doesn't look for opportunities and job posting where that fit is the strongest and then But be honest with your shortcomings, right? So, you know actively work to overcome whatever gaps you have with the knowledge from the class and it will show through in your interviews My previous work, you know before Google goo was with JP TV and we were an entrepreneurial focused content service We wanted to help educate and open up the world of entrepreneurship and startups to more people and in that class in my product management class There's a project and you and you get to focus on another company maybe in your field and dissect their their company and their product and What I'd worked on was masterclass and some of you guys may know this company They're very similar to what we did with JP TV But they have a much broader mission and because of this project and the analysis I did on the company and their products and also because of the connections that I mentioned I made in the first points a classmate in my class knew the VP of marketing at Masterclass and I was able to actually make it to the final round interviews and masterclass and you know During these interviews they told me that you know from my work on the project and because of my my experience with Draper TV That Mike's assessment of the opportunities in their in their industry and in their products Were exactly what they were going to be working on at that time So, you know just take it one step at a time look for companies similar to your expertise Or look for opportunities in your current team and your current company and help you get ahead much further The last key points and I think the biggest factor to my success with starting a PM job right after product school Was that I was constantly interviewing during the course Now you might not have actual interviews lined up before you start But you can still do mock interviews You can still practice with some PMs or product people that you might know you can also practice with your classmates It's really important to find out firsthand how the interviews work and to connect it with what you're learning in your product school Class doing both at the same time will help you remember and make those connections between the class material and the real deal And since you're in class at the same time as your interviews You can ask your instructors and you can ask your classmates for advice and guidance Before and after every single interview Don't wait until you're not seeing your instructor and your classmates at least once a week So if you're done the class, you're not going to see them anymore it really make a difference to be able to Do those interviews and hone in on some of the gaps that you have right away in class and You know that will end up making you much better as a candidate Yeah for my experience I Mentioned earlier that my instructor and my classmates were a huge resource and getting my foot in the door to get those first interviews During the class I interviewed with five different companies Some of them were in education some of them were not like Google goo and I was able to make it to a couple of the final rounds I was able to impress the team at Google goo because I was able to talk about the work that I had done in product School on my project and all the skills that I learned and I applied it to their products and their challenges at Google goo So things like talking to customers building personas finding opportunities in their products and how to apply data to their Product decisions all of these were skills that I somehow had before that I somewhat had before product school But from taking the course it really gave me the ability to articulate them in a very structured manner and having it So fresh in my mind since I was interviewing at the same time and constantly improving by talking to my instructors and my classmates It really allowed me to apply them on the fly in the interview Which was key to getting my PM role at Google goo and all of you will likely have similar skills that can be transferred over and Product school can help you bridge that gap and make that connection with the PM role So, you know what before I finish up the main key takeaways from this talk if you have Any struggles with getting that PM role or you're trying to think of how product school can help you, right? The first thing is always to have a game plan before taking the course knowing where your gaps are and making sure that when you do take a Course like this that you can you can kind of Shape it to make sure that you get the most impactful information out of it The second key point is to you know look for opportunities in your current role, right? Something that you're already an expert in in your industry in whatever job that you're doing right now And to just apply it a way of product thinking to it and see if there are product opportunities within those Situations that you have day to day and the last thing and the most important thing I think for myself and probably for a lot of you is to interview during that course right to make sure that you're Connecting the course material to the questions you're being asked to interview and to constantly improve your interviewing skills As you aim for that product role and make sure that you know, you're falling up with that right away Don't be afraid of those interviews and applying like my key point about interviewing during the course Start applying now start applying as soon as possible. Don't wait until the moment. You think you're ready, right? It's not about I'm going to take this course. I'm going to have that knowledge and then I'm going to start applying it's about jumping in right away with both feet and actually Experiencing what the interviews are like experiencing what product people and product organizations are thinking and want in a candidate And and then being able to learn those lessons and reapply them with each interview as you go and that will really help you move forward


When I got to the headquarters, I received some instructions to go to this address where the trouble call was. When I got to the address, I was needing to find the transformer. So I reached up for my GPS to look to see if I could find the transformer and then something caught the corner of my eye. I looked back up and I saw the houses on fire.  She said there's a family that lives in that house. Is there anyone in the house? I don't know. There's a family. Mom, dad, two kids. And I didn't see anybody standing outside. I immediately ran to the house and started beating on the windows and doors trying to wake up the family.  And then I crawled into the house trying to find where they were and then something in my mind is like you don't know where you're at. This isn't your home. I make sure I stay cautious of that. And then I crawled down the hallway and I came to a room and I started screaming screaming and I saw somebody get out of bed and it was a father that got out of bed and then he said his wife is in there and the two kids are in the room next door. So then I went over to the room next door and grabbed the two kids and then we crawled to the parent's room and that's when we crawled out of the window. And then once we crawled out of the window that was the time the fire department was arriving on scene. This means to me for us at Georgia Power is make sure you stay safe so you're able to go home.  The training we received at Georgia Power helped out great because they're always preaching safety and citizen wherever you serve. So when I realized there was somebody in danger and there was no one outside the home, I treat that that was like my family. So I want to make sure they can get out safely and make sure I can do what I was able to do. If I can give any advice is just kind of don't put yourself in danger.


بسم الله الرحمن الرحيم الحمد لله رب العالمين والصلاة والسلام على أشرف الأنبياء والمرسلين حبيبي إله العالمين أبل قاسم المصطفى محمد وعلى أهل بيتها الطيبين الطاهرين رسبكت براثرين والصلاة السلام عليكم ورحمة الله وبركاته هذا المنطقة will be the eve of the fifteenth of Shaaban which is considered to be the second most important night after ليلة القدر and it is also the eve in which إمام المهدي المنتظر عجل الله تعالى فرجه الشريف was born on it is a night of hope in midst of the despair it is also a night of turning to Allah سبحانه وتعالى a night of worship a night of duas and supplication so my dear brothers and sisters there are several recommended acts to be performed on this night and the dua is guaranteed to be accepted as long as a person is not asking for something that is haram and this is according to a hadith from رسول الله صلى الله عليه واله so on this eve there are several recommended acts one of them is to do the غسل the ritual shower second is to spend the night in worship and there are some short duaz that can be found on duaz.org in the books of dua in مفاتيح الجنان duaz which connect us with Allah سبحانه وتعالى and remind us of the birth of the imam of our time and most importantly there is a ziyara of imam الحسين عليه السلام a visitation of imam الحسين which is considered to be the greatest and the most important act of worship on this night where you face Karbala and you say السلام عليك يا أبا عبد الله sending سلام to imam الحسين عليه السلام my dear brothers and sisters let us do dua for the imam of our time let us ask Allah سبحانه وتعالى to hasten the reappearance of the imam of our time because he is the manifestation of the hope in Allah سبحانه وتعالى we ask Allah to hasten his reappearance والحمد لله رب العالمين والسلام عليكم ورحمة الله وبركاته


Hello everybody, I'm Shweta and today I'm going to talk about IIT Bombay Explanted MOOCs program and the software system built for that. IIT Bombay Explanted MOOCs is an integration of traditional classroom teaching along with the online MOOCs course. It may also include a view interaction with MOOCs instructor with the blended MOOC students. Say I'm a teacher who is participating in this blended MOOCs program and I run the course in the blended MOOC. My students who are attending my lectures, doing my assignments and homework, taking my test along with that they have to view online videos, participate in the discussion forum, do practice problems and do graded assignments. My energies are now focused more on problem solving, interactive discussions and presenting advanced topics of my course. As a teacher, I need the MOOCs update of my student weekly basis, on weekly basis. So I need to play a role of a facilitator to collect the MOOCs data from each of my students, collate them role number wise and feed it into the grading system of my institute. In order to reduce this manual job, we have built a system called information system for blended MOOCs. It is a very simple system where I go and tag my students saying these are my students in the MOOCs course and view their progress online, almost real time. Now think of my institute which is participating in IIT Bombay X MOOCs and they have multiple courses running in a semester. So an interface has been provided for the head of the institute so that he can appoint teachers and view the progress of their students. He also has a facility to appoint a coordinator who can also take care of all these tasks of appointing teachers, etc. Now I would pass it to my colleague Aditi Deshpande who has been part of this software since inception to take you through this software. Also to let you know that this software is a backup of the IIT Bombay X data. So the data which is available, progress data is available is around one or two working days old. Suppose I am a teacher from Ideal Engineering Institute participating in IIT Bombay X blended MOOCs program with my classroom teaching my own assessment and quizzes. Along with that my students are also watching the videos and doing quizzes on IIT Bombay X. I would factor some marks from the IIT Bombay X blended MOOCs program into the final grade of my subject. So I am logging in a system as Sita Devi teaching the demo course. So after logging you will see these steps. To see the evaluation policy and grading criteria course detail is present. Here you can also see the enrollment start date, end date, classes start date and end date. Up to today two quizzes are done for this course. To tag your student in a system you have to upload student's data. For that upload student's info tab is present. In this tab you have to download the template and you have to fill information in this way. Here the role number is the student, local role number of the institute. User name is the IIT Bombay X user name of the student. Email is the IIT Bombay X email of the student. So I will show you one file having some data. This file having data of the 18 students so I will upload the file. This file must be in a CSV format. Here total students in a file is 18. Total number of students who was tagged in a system are 16. And the students who are not validated by system are 2. Means some data of the student is wrong. Here you can see the error messages for the student. So the first error message is user name is not valid. So on the left hand side you will see the user manual. In the user manual if this kind of error you will get, you will get all kinds of error what you have to do next step to resolve this error. If the user name is not valid so it is saying that the user name is not enrolled for the course. Either the user name is incorrect or student has not enrolled for the course. So you have to go back to the student and ask the student for the correct username. So to see the information of all the students in the student details you will see all the information of the student who you previously tagged in a system. This file is also downloadable and it has two facilities one is edit and unenroll. In the edit facility you are able to edit the roll number of the student. You are also able to unenroll the student. If some student leaves the course then you can unenroll the student and you will not able to see the progress of that student. If you want to see the progress of the student in each quiz how he is performing in each quiz if he is solving all problems or he has some difficulties in a problem. So here the marks per problem is present. In this you can see the progress of student in each quiz. So I am selecting the quiz one. So in the quiz one for the course DC 101 total three questions are there and you can see the how student is performing in each quiz. So here the x means student did not attempt a question and 0 means student got wrong for this question. This file is also downloadable. All files will downloadable in a CSV format. If you want to see the overall performance of the student summary of marks is present. In the summary of marks you will see the overall performance of the each student. Here you can total two quizzes. For the two quizzes you can see the performance of the student. Now think your institute is participating in blended MOOCs program and having the multiple courses and for the multiple courses having the multiple teachers to manage this. Here comes the role of the program coordinator. Support Jay Sharma is the program coordinator for this institute. Program coordinator can manage the teachers. He can enroll new teachers for the course. He can also able to enroll for the new courses on IIT Bombay X. He can see the courses running on IIT Bombay X. This institute participated in two courses DC 101 and Scania 101. For the DC 101 two teachers are there for this institute. All tabs are same for the program coordinator but he is not able to fill the student's data. He is able to only see the progress of the student. Now to enroll the teacher. Here click to enroll for a new teacher. By clicking on enroll you can able to enroll the new teacher for this course. Program coordinator can also able to enroll the teacher. If some teacher leaves the institute then he will enroll the program coordinator from this course. Now head is the super user for this. Head is also able to see only the progress of the students. I will show you the heads dashboard. Head dashboard is same as that of program coordinator. Here he will see only the progress of the students. He is not able to do any editing in a student's data. Here you can see the when data is refreshed on IIT Bombay for this system and for which data is present. If you have any queries you can ask. Yes. Yes, single row ECSV. For a single student also. Yes. Just to let you know that I am Bangalore after seeing our IIT Bombay X blended mode. They have started using our system in blended mode and as of today on IIT Bombay X more than 25,000 students have benefited and there have been 57 teachers who have basically who did this who run the course in blended mode in 2015-16 and again ran it in 2016-17 again. So as of today till the last semester we had 57 of the teachers repeating it and finding it useful. Madam, how to restructure as a program coordinator? Okay. If your institute is entrusted in it then basically the workshop team who is also the blended course administrator team, you have to write an email to them and they will register you as a program coordinator. Then you can view the courses which are available for the next semester enroll for those courses, add your teachers and those teachers will receive emails to create passwords. You can manage them by yourself totally. Only thing that we have to ensure is that if a teacher is leaving that course and you have to unenroll the teacher then all the students have to be unenrolled from that teacher first. So these are the small things. There are user guides which is in quite detail available. We do have an interspace for the blended course administrators so whenever you get stuck you can always write to E-Outreach and they help you out. So the MOOCs instructor has an interface where they can view the progress and they can have additional sections with you and if the teacher is facing some issues they can have interact with you with the teacher. The MOOCs instructor, IIT Bombay MOOCs instructor can also. So we have an interface for them also. So as of today we have around 60 autonomous institutes participating in our blended MOOCs program. Thank you. Just one question. For that student system, is there any specific email ID required or any email ID they can use it? They can use any email ID but you have to collect that data. Okay. What is their public? If you go to IIT Bombay, there are two information. One is the email and the public username that they enter. Okay. You have to collect that and put it roll number wise. So whenever you get a report you get report roll number wise. Then you can always feed it directly to the graded system easily to your local college graded system. Okay, thank you. Welcome. We do have a place where you can view that whether your students have attempted, not attempted. Question wise also attempted. So that facility is also available. Thank you.


Hello, I'm Pei Hai Miao. I'm going to talk about amortizing rate one OT and applications to PIR and PSI. This is joint work with Melissa Chase, Sanjam Garg, Muhammad Hajjabadi, and Jialing Li. We start with the problem of oblivious transfer or OT for short, which is a protocol between two parties. We call them center and receiver. The center has two messages M0 and M1, each of length N, and the receiver has a single choice bit B as input. And from the OT protocol, the receiver will get one of the two messages, depending on his choice bit, namely M sub B, and the center gets nothing. The security guarantee is that the choice bit B is hidden to the center and the other message M sub 1 minus B is hidden to the receiver. In this work, we're interested in two message OT, where there are two messages sent between the parties. In particular, in the first round, the receiver will somehow encrypt his choice bit B and send to the center and keep some secret state. And then in the second round, the center will somehow encrypt her two messages and send to the receiver. And then the receiver can use the secret state to recover M sub B. If we look at the message sent from the center to the receiver, which we call OT S, and consider the ratio between the length of a single message M0 to the length of OT S, we know that information theoretically, OT S cannot be shorter than M0, so this ratio is at most one. And in fact, rate half is fairly easy to achieve generically. In this work, we're particularly interested in rate one OT, where this ratio goes to one as N goes to infinity. Now you might be asking, why do we care about two message OT and why in particular rate one? Let's see an example of 1 out of 4 OT, where the center has four messages M0 to M1 and the receiver wants to get one of them, in particular M sub BC. So the receiver has two choice bits, B and C. We can achieve 1 out of 4 OT from two message OT in the following way. In the first round, the receiver will send two OT messages, an encryption of B and an encryption of C, and keep two secret states, STB and STC. And then the center will first generate an OT S message using the encryption of C and this pair of messages. And she will generate another OT S message using encryption of C and another pair of messages. And then she will think of these two OT S messages as a pair of messages to generate another OT S message using the encryption of B and send that to the receiver. Now the receiver can first use STB to recover one of these OT S messages depending on the choice bit B and then use STC to recover the desired message M sub BC. If you think about this example, the two round OT allows us to do one OT inside another OT inside another OT. It allows for a sequence of nested OT. And the rate one property guarantees that the final OT S message is not too much longer than the original message. The extra communication cost only grows linearly in the number of sequential OTs, not exponentially. So at a high level, the two message rate one OT allows us to do nested OT with low communication. And this leads to more applications where the sender has a large database and the receiver is interested in a particular location, the database, but he doesn't want to reveal this location to the sender. In these applications of rate one OT, we can achieve this much communication where D is the size of a database and alumni is a security parameter. So the communication doesn't have to grow linearly in the size of the database, but only logarithmically. And here is a list of concrete applications of rate one OT. For example, single server private information retrieval or PIR with polylog communication and private set intersection or PSI with unbalanced set sizes where the communication is only polylog in the size of the larger set and so on. The next question is, can we actually achieve rate one OT? The answer is yes. The Damgard-Eurek crypto system gives a rate one OT from the DCR assumption and the recent work by Dottling et al. in 2019 constructed rate one OT from a primitive called trapdoor hash functions, which can be realized from various assumptions, including DTH, QR, LW and DCR. Now let's take a step back and look at rate one OT again. So far, we have only focused on the communication from the sender to the receiver. It is rate one, this is the best we can hope for. But how about receiver communication? If you look at the rate one OT construction from DTH, for the first bit of the messages, the receiver has to send order and group elements. And this repeats for every bit of the messages. So the overall communication from the receiver is order n square group elements. A recent work by Garg Pajapati and Ostrovsky last year improved the receiver communication from order n square group elements to order n based on the power DTH assumption. And the high level idea is to use a sliding window where the first bit uses these group elements, the second bit uses these group elements and so on. Now an actual question to ask is whether we can further reduce the receiver communication to let's say a constant number of group elements. And now you might be asking why do we even care because the receiver communication doesn't seem too bad for a single instance of OT. But if you think about the one out of four OT example, the receiver has to send two OT messages and each OT message contains order n square group elements from the DTH assumption or order n group elements from the power DTH assumption. And in the more advanced applications from rate one OT, the receiver needs to send more OT messages. In particular, this n here is equal to some polylog in D and the number of OT is also some polylog in D. So this becomes more expensive. Now can we further reduce the receiver communication to save another polylog factor? Or if you think about it another way, can we reuse some of the elements from the first OT in the other OT's to save a polylog factor? And here's our result. So we proposed a new primitive called amortized rate one OT that works as follows. There are two phases, an offline phase and an online phase. In the offline phase, the receiver will send order n square group elements to the sender and keep a secret state. This is the offline setup that's done once and for all. And then after that, in the online phase, the sender will get two messages M0 and M1, each of less n. And the receiver gets a single choice bit B. And then the receiver will use the secret state to generate an OT message and send to the sender. And the sender will somehow encrypt her two messages and send to the receiver. And then the receiver can use the secret state to recover the message M sub B. We still require the rate one property, but now the communication from the receiver to the sender in the online phase becomes only a constant number of group elements. And the online phase isn't just one time. It can be done arbitrary number of times. For example, if they get another pair of messages and another choice bit and they can do it again arbitrary number of times. Another nice property about our construction is that the secret state remains unchanged throughout the entire execution. And this is crucial for some of our PSI applications. So this is amortized rate one OT. And we gave a construction based on the bilinear SXDH assumption where we assume a bilinear map where both G1 and G2 are DDH hard. And we can further reduce the offline communication from order n square to order n group elements based on the bilinear power DDH assumption where we additionally assume G1 is power DDH hard. We call this primitive amortized rate one OT because although the offline communication is roughly the same as before, the online communication from the receiver is reduced by a lot and it can be done arbitrary number of times. So if we want to run a large number of rate one OT, we get much better amortized communication from the receiver. And given that we can save a polylog factor in the receiver communication in a lot of applications from rate one OT. Or if you think about it another way, there is an offline phase where the receiver sends a polylog number of group elements to the sender and then the online communication from the receiver is reduced by a polylog factor and this can be done arbitrary number of times. To summarize our results, we proposed a new primitive called amortized rate one OT where the receiver sends order n square group elements in the offline phase and then in the online phase the receiver only needs to send constant number of group elements and the online phase can be done arbitrary number of times. And this can be constructed from bilinear SXDH assumption and we can further reduce the offline communication from order n square to order n group elements based on the bilinear power DDH assumption. And given these new tools, we can reduce the receiver communication in a lot of applications such as PIR and PSI just to name a few. And the sender communication remains the same as before. In the rest of the talk, I will first to present the rate one OT construction from DDH and then talk about how to get amortized rate one OT from bilinear maps. And finally, I will briefly mention some concrete optimizations. Okay, first the rate one OT construction from DDH. Recall that for every bit of the messages, the receiver needs to send order n group elements and let's see how that works. Let's first look at the first bit of the two messages. The receiver will randomly sample two n group elements to form a vector HK. And then he will randomly sample an exponent row and raise every group element to the power row except these two group elements. This group element is additionally multiplied by G to the power of one minus B. And this group element is additionally multiplied by G to the power B, where G is the generator of the group and B is the choice bit. Let's take a closer look at what's going on. If B equals zero, then only this group element is additionally multiplied by G, where all the other group elements are just HK raised to the power row. So we say that there is a bump here because there is an additional G here. On the other hand, if B equals one, then there's a bump here. This group element is additionally multiplied by G, where all the other group elements are just HK raised to the power row. And the sender cannot distinguish between these two cases. She has no idea about where the bump is based on the DDH assumption. For simplicity, we're going to assume B equals zero for the rest of the talk. So there's a bump here and the receiver wants to learn the first bit of M zero. And then the receiver will send all these group elements to the sender. And then the sender will consider another vector M, which is a concatenation of M zero and M one. And then she will compute the inner product of HK and M, and also the inner product of EK and M. So for example, if the message M looks like this, then H is a product of these highlighted group elements and E is a product of these highlighted group elements. So in this case, because the first bit of M zero is equal to zero, E should be exactly equal to H to the power row. On the other hand, if the first bit of M zero equals one, then E should be equal to H to the power row times G. So in general, E should be equal to either H to the row or H to the row times G. And then the sender can just send both elements H and E to the receiver. And the receiver can figure out the first bit of M zero. By testing whether E is equal to H to the row or H to the row times G. This is just for the first bit. And then the receiver can do the same thing for all the other bits generating EK2 to EKN where there is a bump here and here. And he will send everything to the sender and the sender will compute the inner product between every vector and the message vector. And send all the results to the receiver and the receiver can recover every bit of M zero. So if we look at this construction, it is not really rate one because the communication from sender to receiver contains M plus one group elements. But our goal is to achieve one group element plus M bits so that it is rate one. So our goal is to somehow compress these group elements E1 to EN to a bunch of bits B1 to BN one group element into one bit. How can we achieve this? Let's go back to the first bit of the messages. We know that E is either equal to H to the row or H to the row times G. And the sender only needs to convey this bit of information to the receiver. We will leverage a function phi which is defined from G to bits such that for every element V in the group, we have phi of V is not equal to phi of V times G. Given such a function, the sender can just send the group element H along with phi of E. So that the receiver can learn the first bit of M zero by testing whether phi of V is equal to phi of H to the row or phi of H to the row times G. And this function phi can be achieved by the work of Boyle, Gilbo and Ishai in 2016. And that completes the construction where the sender only needs to apply the function phi on all the group elements to compress these group elements into bits. And then we're done. So that's the rate one OT construction from DDH. Next, let's see how to construct amortized rate one OT from bilinear maps. So the very, very high level idea is the following. In the offline phase, the receiver will generate all these group elements in G1 and send to the sender, where in each of the vectors here, there are two bumps, one bump here and one bump here. Because at this point, the receiver doesn't know the choice bit yet. And then in the online phase, the receiver learns the choice bit, let's say B equals zero. And then he is going to generate some group element in G2 and send to the sender. And then the sender will map all these group elements in G1 with this group element in G2 using the bilinear map to generate a bunch of group elements in GT. And somehow we want to make sure that there is only one bump in every vector, one bump here, one bump here and so on. And if this is the case, then we can run rate one OT in the target group, same as before. However, this idea doesn't quite work if there is only a single group element in each of the small boxes here. We need two group elements per box. Let's take a closer look. In each of the small boxes, it will contain two group elements in G1. We use the notation Ri to denote a random vector of dimension 2 and we use this notation to denote the vector of G to the power r. So in this vector, each small box contains two random group elements in G1. And then vk1 is just raising all these group elements to a random exponent rho1 and then we add two bumps here and here. And similarly for vk2, it is just raising all these group elements to a random exponent rho2 and adding two bumps here and here and so on. So this is the offline phase. And then in the online phase, after learning the choice bit, let's say b equals 0, the receiver will generate two boxes. Each box contains two group elements in G2. Where s and t are two random vectors of dimension 2 such that the inner product of s and u equals 1 and the inner product of t and u equals 0. And we use this notation similarly as before, but just to differentiate group elements in G1 or G2. And then the sender will map these boxes with s and these boxes with t using the bilinear map. So remember every box contains two group elements. So the mapping is like doing an inner product between the two boxes. And then the sender will get a vector of group elements in GT. And similarly for the other vectors. So because the inner product of s and u equals 1, so there is a bump here. On the other hand, because the inner product of t and u is equal to 0, there is no bump here. And similarly there is a bump here and not here. So in this way we can make sure that in every vector there is exactly one bump and it is in the correct position. And then we're done. That's the construction of amortized OH10T from bilinear map. And finally I want to briefly mention some of our concrete optimizations. In this construction, the online communication from the receiver contains four group elements in G2. There are two boxes and each box contains two group elements in G2. And we can reduce this communication to three group elements in G2. And here is the idea. First we will increase the number of group elements in each box from 2 to 3. So these vectors become vectors of dimension 3. And then we put a different bump here and here. Here we put plus u and here we put plus v. And then in the online phase, the receiver will generate a single vector s of dimension 3 such that the inner product of s and u equals 1 and the inner product of s and v equals 0. And then we're done. The rest is the same as before, but we reduce the receiver communication from four group elements to three group elements in G2. And we have more optimizations discussed in the paper. To summarize, we proposed a new primitive called amortized RH10T and we give a construction from the bilinear SXDH assumption. And we can further reduce the offline communication from the bilinear power DDH assumption. And given this primitive, we can reduce the receiver's communication in a lot of applications such as PIR and PSI. Finally, I want to mention a few open problems. Can we achieve amortized RH10T from other assumptions? And can we achieve some sort of amortized RH10T extension? And in terms of applications, can we find more applications of amortized RH10T? And can we get concretely efficient implementation of the existing applications? Thank you.


One, bingo, four o'clock rock. This is Stink Tech. I'm Jay Fidel. Wow, what a show we have for you. This is Hawaii, the state of clean energy. No kidding in all ways. Okay, and so tonight we have our special guest, Colton Ching. He's a senior vice president of planning and technology at Hawaiian Electric Companies. Did I say that right? Yep. You got it. Welcome to the show, Colton. Thank you. Thanks for having me. And my co-host, Ray Staling, say hi, I knew you could do that. Welcome. And we have Lisa Harmon from Hawaii Energy, and she has some movies she's going to talk about and show us about energy efficiency in Hawaii. Welcome to the show, Lisa. Thank you, Jay. Thanks for having me. Okay. Introduce your movies. All right. Great. So we've got a video that we did at Architects Hawaii for their Clean Energy Ally program to support their Clean Energy Allies. We want to help the contractors that are implementing these projects out in the marketplace to be able to educate their customers. So we have a co-op event funding where we kick some money in for the contractor to host an event to educate their customers about energy efficiency. So the videos are about, the first one is about a presentation we did at Architects Hawaii to educate them on Hawaii Energy program so that they can teach their customers. And the second one is an HVAC training, HVAC training that we had on Saturday to help support the contractors in the marketplace with increasing their professional development and technical knowledge. So we have funding at Hawaii Energy to support these projects. And we're really excited to help with the workforce development and help the customers and the contractors get better premium efficient equipment that saves energy. Okay, that's the point of it. So Roland Dano, let's see what the first one looks like. Our mission is really to empower island families and businesses on making smart energy choices. Oh, we live on an island, right? Tsunami, hurricane, anything, food or oil prices go up. I mean, we are at the mercy of those things, you know, in my land. And this is really important to help make sure that you guys get involved early. I don't know if a lot of our clients are aware of the incentives that are out there for the things we already are doing. So this is just an added benefit for them. No, those are the guys on the firing line. They're doing constructions and they're doing design. So they have a lot to say about how things are designed and built. That's right. That's right. And they're interacting with the customer. So in this case, we went to the company and we presented our program to them and we brought lunch. So if there's any other clean energy allies out there that are providing services to end-use customers, we would love them if they signed up as a clean energy ally as part of the program. We can go present on their behalf and we can bring lunch, which is always nice as well. Which is always nice. So how do they find out about this? Is there a website? They can go to yenergy.com slash cea and that says sign up pages right there. And then they can find out about all the benefits of being a clean energy ally. Okay, what about the second one? So I think the next video we have is again about the HVAC training, which is supporting the technical and professional development of the contractors in the marketplace. Okay, now you say that after me. Roll them, Dano. Roll them, Dano. Finding and selling energy conservation measures in HVAC. My name is Mike Hedge. A lot of you know me. We're all coming up to the same level in this. So it's not like I'm selling a product or something. I'm you know, we're selling energy efficiency, all of us, right? So it's a it's a thing for humankind. We really want to focus on workforce development because it's more than just rebates. It's more than just incentives and we have to continue to change with the the market and the industry. We want to continue to support these sorts of educational events and we want your feedback. We want to ensure that we're picking the the right right things that work for you guys. Coming on a Saturday morning, many of you may have been working otherwise or had the day off. I feel like we're always all working. So yeah, but you know this is this is awesome. Okay, really important. HVAC is so important to so much energy involved. It is. It is and we've got a lot of great people out there like Mike Hedge that presented that training that's willing to share his technical knowledge with other contractors. So we really want to support that and we appreciate all the work that the contractors are doing. So if you're not a clean energy ally, please sign up at HawaiiEnergy.com slash CEA so that you can be part of the benefits be it the professional and technical development training or take advantage of some funding for a luncheon to educate your staff or your customers. We're here to help and and get feedback and ideas from the contractors as well. Yeah, that's great because you know we've got to get the word out. That's that's the mission and you've got to get the word out through this part of our community as you know in addition to the people you know who are residential customers and so forth. Ray, you want to do some cross-examination on Lisa? Well, I we we just introduced you quickly because you're you're here quite frequently but tell a little bit about the program, the energy efficiency program and sure why why you're here. You're called by cross-examination. That's a soft one. Well, the Hawaii Energy program is for residents and businesses, electric utility customers. We have commercial offerings and residential offerings so be it lighting or HVAC pumps and motors. We have all sorts of incentives to help people make a really smart purchase, make smarter energy choices and and reduce their energy consumption in the long run and have premium energy efficient equipment all towards paving the path of the 100% renewable that we're going to that the state's going to get to by 2045. So Colton, do you have any cross-examination? After all, this is not helping you generate and sell more power, is it? It doesn't help us generate and sell more power but energy efficiency is very important to the operation of the grid. It helps us manage our system and always keep our generation and demand always in balance and so we really count on Hawaii Energy to put into place the energy efficiency program so that we can plan for and serve a more predictable electric load over time. It's been a big help to our system, helps us keep our costs down which ultimately means our customers save money. Yeah, well that's not cross-examination either but hey Lisa, thank you so much for coming down. You are great. You're going to come down again. Will you come down again? I would love it, thanks. It's on record. All right, we'll take a short break and switch seats with you right back. Aloha. My name is Carl Campania. I am the host of Think Tech Hawaii's Movers, Shakers and Reformers. I hope you join us as we take a deep dive into biofuels in Hawaii over the coming weeks and the alternative fuel supply chains necessary for the local and global transition towards transportation fuel sustainability. We are going to invite in and we will have significant interviews with various stakeholders including our producers which are our farmers and our scientists, our conversion technologies including Terra Viva, who we'll see in two weeks, as well as our consumers. Within there we're also going to have the investor groups necessary to make sure that this can advance. So I do hope you join us as we explore our deep dive into biofuels in Hawaii. Hello and Aloha. My name is Raya Salter and I am the host of Power of Hawaii, where Hawaii comes together to figure out how we're going to work towards a clean and renewable energy future. We have exciting conversations with all kinds of stakeholders, everyone who needs to come together to talk about renewable energy be they engineers, advocates, lawyers, utility executives, musicians or artists to see how we can come together to make a renewable future. Tuesdays at 1 p.m. Okay, we're back. We're live. We're here with my co-host Ray Starling and our esteemed guest, Colton Ching, Senior Vice President of Planning and Technology at Hawaiian Electric Company, very important guest, very important discussion. And Ray, can you put this in context for our monthly series? Well, we're actually looking hard at the utilities and what they've been up to and of course Colton is bringing us the message from HECO today as to, in particular, the PSIP that has been ongoing for some time. And we've got it for show and tell here when you're ready for that. But for now, Colton is going to tell us a little bit about the PSIP, where you've been and where you hope to be going with it. Okay. Rich, this is Rich Propuse, our floor manager and he's going to bring it in. Bring it in. There it is. There it is. Fabulous, fabulous 2,000 page plan. Right, so couldn't do an interview without a visual aid. So, just for everyone to see the sort of enormity of this work, this is what 2,000 pages looks like and this is actually double-sided. So, it would be twice as right. It would have been twice as tall if it actually was single-sided. But all kidding aside, the power supply improvement plan, as Ray was mentioning, was something that we've been working on for quite some time. We most recently filed our most recent version, latest version, followed it with the Public Utilities Commission December just before Christmas. And in our power supply improvement plan, we lay out several things. But I think that the thing that folks have been most interested in is looking at what we're looking to do over the next five years to get us started in a sort of very no regrets way around accelerating the amount of renewables that we have on our system that gets us in a direction towards our 100% renewable energy goal. We do look at the longer term. We do build up multiple scenarios of plans that go out to 2045. Some of those scenarios take us to 100% renewables ahead of the state goal. Some of it takes us right at 2045. But one of the really interesting things that we found in the work that we did, and you can tell just sort of by the enormity of this, how intensive the analytics were behind this study, that regardless of the scenarios that we looked at, the reasonable multiple paths to getting 200% renewable energy have a lot in common in the beginning years, especially in the first five years. And so we feel really good about the work that we've done and especially of the action plans that we identified to aggressively pursue the addition of new renewables, all five islands in the next five years. And we're really ready to go. We've taken some initial steps to get primed and ready to go once we get the green light from the Public Utilities Commission to go. Wow, exciting times. How many people were involved in the preparation of this plan? Well, we had a core team of around 20 or so engineers and planners. We also had a team of consultants that helped us out as well. But this core team would not have been able to do this alone. We had the support of our accountants, lawyers, our engineers, our designers, the folks that develop all of our forecasts, the folks that are in charge of developing and executing our demand response and DER programs. It was a real team effort consisting of teammates from across the three utilities all working to do this. So can you read some phraseology from it? You know, when we have book reviews, you know, people, we interview people who just published books. This is really kind of the same thing, isn't it? We always ask them to pick a paragraph, you know, not a long paragraph, short paragraph, that they really like and so we can sort of see and feel the poetry of it. And I know there must be poetry in the plan. You're asking an engineer to talk about poetry. Well, you know, engineers are really romantic at heart, aren't they? You should talk to my wife. So, you know, actually there's one thing that comes to mind that maybe I wanted to share with folks. It's relatively short and it's called Our Planning Principles and hopefully I can find it here. Okay, let me take this off the table because it's so big. Sure. I can hardly lift it. Let the record reflect that I'm getting a hernia. So, you know, in undertaking this very complex planning and analytical exercise, we wanted to have a set of rules or principles that sort of guided our work. We had so many teams working on so many different models doing a whole bunch of different analyses. We wanted sort of this sort of north star to guide how directionally we performed the work. So, real briefly, these principles, number one, renewable energy is the first option for us, right? Number two, the energy transformation must include everyone. So, it can't be a renewable energy plan for some of our customers. It really needs to be one for all of the customers that we serve. Number three, our decisions that we're making today on the technologies we're looking to use today must not crowd out tomorrow's breakthroughs. One of the things that just being a member of society in the last five years, we've learned how technology is improving at an ever more rapid pace. And that applies to everything. It applies to our phones, of course, but it applies to PV systems, inverters, battery systems. And we're starting to see that improvement, right? And not only are things getting better, they're getting cheaper. So, we want to make sure as we make decisions today, we're not making decisions that doesn't allow to take advantage of that improving technology. That's hard. It is, but it requires having, being aggressive, but having a measured and thoughtful plan and approach to adding the right resources on a grid over the next 20 plus years. The power grid needs to be modernized. The grid itself is a glue that keeps things together. And the grid has, therefore, a very, very critical role in operating the entire system and making all of these parts, all of these components that we're looking at in the PSIP to work. So, the grid needs to keep up with the resources it's being connected to and the new roles for which the grid is being asked to do for not just connecting customers to a few large generators, but being the grid that interconnects many small generators with all of our customers on a two-way bi-directional basis. It's a whole new paradigm. It is. It really, really is and it's really driving a lot of our redesign of our transmission and distribution system that is actually part of our PSIP whanning that we're going to explore further and develop further in a good modernization strategy that we're doing later this summer. Because there's a lot of work ahead of us in that space. Well, it's kind of poetry, don't you think? This is certain. Yeah. Certain poetry in that. You're adding poetry to it. I am adding poetry to it. By the way, your emotive way of presenting it. So, just a couple of things really quickly. Can't forget that lights must stay on. So, as we go on this journey to increase our renewable energy and achieve these very, very aggressive state goals all along the way, the state's economy and the way of life for everyone in Hawaii depends upon reliable energy. So, we have to make sure it's reliable all along the way. Number six, and this is something in Hawaii I think we tend to take for granted, but we can't forget is that our plans must address climate change. It's not just about achieving our renewable energy goals as important as it is, but ultimately the reason or one critical reason for moving to renewables is to address climate change issues. And climate change is more than eliminating fossil fuel use. It's about having a grid and a system that's more resilient to the kinds of natural events, storms, hurricanes, title changes that we're going to see as a result of climate change. And so, we need to ensure that the grid is able to deal with that. And lastly, as a planner, this is sort of very hard for me to include within this set of principles, but it's the fact that there really is no perfect choice. All of these complex choices we're making in developing plans is going to require a selection of one over another. And trying to find that balance is the key, but even in the perfect or the best optimization, you're really trading off one great thing for another important thing. And so, there is no perfect choice and we just got to acknowledge that. I was going to ask you that. I was going to ask you, is this perfect? You've already answered that. I guess the other question is, though, inherent in what you've said, though, is this has to be watched in view of events in, well, in geopolitics, events in technology, national things, whatever it is, and changes in the state. So, you have to review it going forward. So, how do you see that? You have to watch it. You have those 20 people and contractors, whatever, watching it. And then you have to make changes from time to time to be sure that you're following the ball. This is not easy either. It's not. And to add to your question, I think one really critical piece that you didn't mention that's really important is what we do with the plans. Right? And so, we've spent a lot of time and a lot of effort, a lot of money, in developing these plans. And it's really not of use if we don't actually use them towards our advancement of our renewable goals. So, I think there's a very critical step to take the plans that we file, right? Come to an agreement on what are the actions that we should be taking over the near term and actually execute on that. That is the execution in the 2000 pages? Yes. So, it's all laid out there. So, once you get the green light from the PUC, and we hope that's soon, then you already know what you're going to do. Right. And we want to execute it in a very deliberate and thoughtful way. So, one of the things that we acknowledge and actually put into report, although we've done a lot of analysis and used the best models to develop plans and identify specific resources, specific resources meaning grid scale solar or grid scale wind, we want to let the market really have a say in this. And if the market can find a solution that produces a renewable energy resource at a cost lower than what we identified in here, we want to take advantage of it. We don't want to be so rigid and stuck with the plan and inadvertently put blinders on and pursue a path without taking advantage of market. So, as we execute a big part of what we want to do is to conduct RFPs to acquire and contract for renewables. If the market says, even though the PSIP says this block of wind, if they can deliver a photovoltaic system or a PV battery system that can deliver the same operating attributes, the same amount of renewable energy or more, but do it at a more cost-effective basis, that's what we must pursue. I mean, it's the best better deal for our customers and so we should be pursuing that. And when those market-based things happen that may not be perfectly aligned with our action plan, we should then step back. After we do some actions, we actually make some progress, come back to our plan to say, let's update our plans for this new information that we have, right? And so, I kind of see it as being an iterative cycle that includes and incorporates within our work actual execution steps along the way. How often do you foresee going back? I mean, how much of the changes, for example, there's graphene, right? As a potential new technology for batteries, it could change batteries. And that might have a profound effect on the products available. And thus, the way it all works with the grid. And that might give you the idea that maybe you can change this, or you should change this because of this new revolutionary technology. So would you be able to do that yourself? Is it built in, or do you have to go back for another green light? At least the way we see it, that there is value in ensuring that the plans that we have are updated for new technologies, right? Or new economic conditions, new circumstances. And so we want to always have plans that are fresh, right? And the plans that we develop should not necessarily just be plans we develop in response to a request or an order from our regulators. Really, it should be a living document that we keep alive, keep current, keep fresh to guide the actions of the utility. So we don't necessarily see it one where we only do in order to obtain approval. That's great. That's great. And Ray is shaking his head. Ray, what do you got on this? When do you expect, if things go the way you think they will go, when do you expect to be given to go ahead on this? Well, so my desire is for that to happen as soon as possible. In the regulatory proceeding that we're currently in right now, the commission has not identified a specific timeline to make a decision. The docket for which we filed this PSIP update included milestones and dates to the commission identified most recently with all parties in the docket submitting their statement of positions. But there is no schedule beyond that filing of last week for a commission decision. Let's say around April 50, you guys go ahead. I'm looking for you to sort of close your eyes and think out into the future. In one year, if this is approved, in one year, what kinds of changes might we expect to see? Sure. I'm going to ask you like at three years and five years. So I won't go any further than that. So let me sort of take a step back and talk about one element in our PSIP plan that I think gets to your question, maybe the two or three-year question that you're going to ask me. In our plan, one of the elements is for us to aggressively pursue solicitations for wind energy, grid-scale wind energy on several of our islands. The purpose of that is to see if we can take advantage of the remaining federal tax credits for wind. As you know, that is a declining, tax credits began declining at the beginning of this year. But in our analysis, if we're able to take advantage of those tax credits, grid-scale wind provides a very, very low-cost renewable resource that provides a lot of renewable energy from fairly compact systems on the grid. So to your point about in one year, what we'd really like to do is accelerate in a thoughtful way and shorten the normal standard process for procuring things like a wind resource so that we can bring them into service by 2020 and really take advantage of those federal tax credits. And you know, if they get the tax credits, that means the cost of the infrastructure is less. And if the cost of the infrastructure is less, rates are less. What a wonderful result. So this is really going to help everybody. And my personal thing is that wind also has poetry. Wind has poetry. Wind has poetry. So you heard it here. Okay. So we might see some new windmills in three years, maybe. Right. And in order to actually achieve something like that means we have to begin very soon the process to acquire those resources, begin a competitive solicitation. And we've actually started taking steps even before we filed our PSIP with the commission to get more information upfront so that procurement process can be conducted on a more accelerated basis. So one of the things we've gotten is feedback from renewable energy developers and large landowners is that they have a hard time playing dating game. They have a hard time matching up a good renewable resource developer with a good land site and a good landowner that can work together. So we actually issued a solicitation of interest for large landowners to say if you are interested in having your land made available to be a host for a renewable resource, let us know. Provide us critical information about that property. We'll take that along with information about the system like how close or how far it may be from a transmission line and we'll make that kind of information available to developers interested in bidding into an RFP. So they start the RFP process with a bucket of information rather than a clean sheet of paper. Right. That we think will help to accelerate the process. This is so interesting to have you here, to have the plan here, to be able to talk about it. I mean it makes me feel that there should be an approval pretty soon. I hope so. And that we can get on down the road and do these things. That's what it's all about. So Ray, unfortunately, we're out of time. It means two things. One, it means that Ray gets to summarize because he always does. And the second thing, it means you have to come back. Ray? Okay. The summary is basically that you've got a power supply plan that is ready to go and waiting for approval. And once it gets approved then you expect to be moving forward pretty rapidly. And the first things we might see, hopefully, is a line of new windmills on each of the islands. Right. Like I said, if the market says that they can deliver something like photovoltaics or some other alternative technology at a lower price, we'll go with that. Okay. And you're looking at having these windmills owned by a third party and just the energy sold to you. Okay. Well, that's good. I mean that means we do have to have Colton back and talk some more because we need to get out there at five-year point, maybe the 10-year point and start talking about what if real things that we might see in our lifetime. Yeah. And the other thing is if you have a declining tax credit on wind, it means you have to act before it declines. That's right. So time is of the essence.