Happy New Year, everybody! Today is the last day of Vlogmas and today is actually the first! Not the 31st! I didn't film a lick of anything yesterday, but I did do a whole bunch of other things like just some stuff that had to be done around the house and I also did a ton of editing. I had like three videos in my computer that needed to be edited. So anyway, today is the first. It's the afternoon now. However, I've got my laundry going, which is that annoying noise in the background, which I don't like to film. I mean the vlog is a little different, but I don't like to film when I have my laundry going, so I figured I would do my makeup and just kind of change that with you guys. I'm gonna put you in the medicine cabinet here and hope that you don't fall. Don't fall, okay? Just don't fall, all right? All right, a couple of vlogs back. Someone had actually asked me to do a vlog on like how I do my makeup. Pretty sure I did a video on this like a long time ago, but I figured I'd just like chitty chat and talk through it, I guess? I don't know. Just talk about, you know, like life and stuff. I like when I'm looking for something and it's like actually the thing in my hand. You know what I'm saying? Yeah, you know what I'm saying? But anyway, I have been out of the shower for a while, makeup free, and my hair just like, I just air dry my hair for the most part. Every once in a while, I will actually blow dry it, but it's like not good to, you know, heat your hair if you can help it. But this is what my hair just looks like. Like it just has this like kind of natural like, I don't know, curve to it. It's not curly. It's just like kind of, I don't know. It does what it does. I don't really manipulate it too much. First things first. I feel like I'm doing a tutorial, but I'm not. I'm just vlogging. All right, so I start with this guy. This is the number seven beautifully matte makeup primer. Just a disclaimer, I have super oily skin. So if you have super dry skin, this stuff ain't going to work for you. This just helps. I mean, it might work for you. I don't know. But all my stuff that I use is typically just geared towards oily skin, mammajamas like myself. Actually, as I'm getting older, it's getting a little bit better, but not by much. And then I have my makeup forever matte velvet plus. I am in the shade 25. The reason I have it upside down is because I'm almost out.  I get mine at Sephora.   Normally if it's the weekend and I don't have anywhere to go, I'll just take shower and like literally put my pajamas back on because I don't like to wear makeup on days that I'm not leaving the house. Seems kind of redundant, unless I'm like, you know, filming or whatever. Like I don't think I'm gonna leave the house today, but I don't know. And I like my skin to kind of breathe and not have, you know, stuff on it if I can help it. It's actually kind of later in the day now. I think it's like one o'clock or something like that, 12 31 o'clock, something like that. I won't wear this makeup for too long today. I'll be done filming by five. And I'm talking like overhead shots and stuff too. So as soon as I'm done with like my face videos as I like to call them, I will probably be taking this makeup off because I don't like to, I don't like to wear makeup if I don't need to, you know what I'm saying? Okay. So that is that. All right. And then I take my little eye primer. This is the NARS pro prime. Again, geared towards the oily friend in your life, aka me.  Actually, with the filming I have to do today, I probably don't need this just to like help prevent creasing and eyeshadow moving around all day. All right. And then I like to take, got like hair all over myself. This is my MAC paint pot in painterly. It's really hard to see so I don't really show it because, you know, it's difficult. And then I just kind of put this over my eyeballs, helps decrease any of the like veininess and stuff. Gives your eyeshadow kind of like a clean base. So it's not all dark and such. I mean, I feel like it's not as dark. It just lightens it up a little bit. Yeah, looks good. Oh, and I should say, I know I didn't do anything yesterday, but like I should say I didn't do anything last night because I'm me. So whatever. Oh, I'm going to take this as well. This is Sonia Kashuk, eyeshadow palette. Eye on neutral zero two. I'm not going to list any of this below, but you guys can just like find it. I got this at Target. I'm taking these two colors. These two light colors. And then I go like this. And then I go like this. And then I go like this. Oh, yeah, yeah, yeah. Anyway, didn't do anything last night. I don't even think I stayed up until midnight. Oh, and then I just took these two colors. This is like difficult to chat and then like also tell you what I'm using anyway. But yeah, I didn't really like do anything. Like I said, I was I also did some like pre uploading as well. I have a surprise video coming out soon. It's not really a surprise, but it is. It's like an extra video. It's not a Monday, Wednesday, Friday video. So it's coming out on a different day and it's coming out in January. So I already had the footage of it. I just wanted to get it like edited and scheduled and get my thumbnail created and everything. So I did all that last night as well as scheduled a couple of other things too. Okay, so now I'm taking this one and this one and just kind of popping it in the corner and not really blending too much there right in the corner.   I like to do messy eye shadow.  And then I will take my Mac. Let's see what this is called Studio Finish Concealer SPF 35. I am an NW 20 and I have a lot of redness in my face. So I just kind of like to clean that up a little bit. I always have a little bit of redness around my nose and on my nose as well.  And just kind of like to even it out a little bit. Also, in between my eyebrows seems to always be a little bit pinker and then, you know, any anywhere else I think needs a little dollop of stuff, but we're going to even all this tone out in a little bit anyway. So this guy is like one of my new things that I got. I recently hauled this. This is the NARS Creamy or Radiant Creamy Concealer in Light to a Vanilla. I really like this stuff. I feel like this helps quite a bit. So I use a little bit under the eye. I feel like this is like war paint and then just use a little bit up here and a little bit down there. I don't know. I just feel like it just brightens up to skin a little bit more, which is the idea, you know, like radiant concealer. Yeah. So today's going to be a filming day. Not really doing anything else besides that. And then I'm just finishing up my laundry, as you can hear in the background. So as soon as that dryer is done, which should be fairly soon, I'm going to start getting my filming stuff done. And then I'm going to start editing. I can't talk to them. And then I'm going to start editing. But yeah, I don't know if I'm going to get everything done. In my last vlogmas, I showed you guys my filming list. So hopefully that'll all get done. I'm not sure. Now I'm using my Stamat Rimmel pressed powder in Creamy Natural 011. I've already hit Pan on it. I have another one over here too because this one's kind of like breaking a little bit. But anyway, I use this to kind of like mattify my skin because you know, the oils got like pieces breaking all over the place. Okay, maybe it's time for a new one of these. So now that that is done, take my blush. This is the Tarte Exposed Amazonian Clay. I've hit Pan on this and I've literally had hit Pan on this for like at least a couple of months, maybe like four or five months now. Yeah, I just put a little bit on. And I feel like on camera it never comes off. But in person, I'm like, whoa, girl, lay off the blusher. Lay off the blusher. So and the last thing I do, well, if I don't do eyeliner, which I'm not doing eyeliner today, but I very rarely ever do eyeliner. So just take my little medieval torture device and my mascara and then, you know, go to town on this thing. I actually had a Tarte eyelash curler that just broke just randomly. So this is actually my travel one. I got this at like Walgreens or something. This is like a Revlon one. It's okay. I prefer the other one, but it just like randomly broke on me. Like the spring just completely fell off. And it was like no fixing it. So anyway. And then on my mascara, I use the Maybelline Rocket Volume Express in the waterproof. And I believe this is the blackest black.  So I don't know.  And then I get my lashes going so you can see some definition in my eyeballs. I don't do my bottom lashes solely because my bottom lashes hit my face really bad. And then I just turn into a raccoon in about 10 minutes. So it looks cute for like five, 10 minutes.  What's wrong with you? It just, it looks like a hot mess. But who knows. This makeup to some of you like like a hot mess too. You never know. All right. So that is what I do there. And then if I'm getting real fancy, I brush out my brows. What? I usually don't use any like brow products. I feel like my eyebrows are kind of dark anyway. Not that they're like that dark, but okay, guess what? My makeup's all done. That's it. That's all I do. And I do pretty much all of this on a daily basis, except for the brushing the eyebrows. I don't always do that because why the heck not? No reason to do that. I don't know why. But anyway, okay, let's close this off. Let's turn the light off. Oh, turn this light off too. Oh, I had my ring light on, but it wasn't like making that thing of a difference. So anyway, yeah, so that is all I am doing right now. Wow, sorry, extreme close up there. Doing the laundry. And then I am getting ready to film all the stuff that needs to be filmed today. I'm really, really excited to do some of my filming. I haven't been like this excited to film in quite a while just because I have like so much stuff to do and so much stuff to share, which I'm trying to cover up. One of the things right now so I can kind of show you. So yeah, but this bad boy, here I'll show you part of it. I'll show you part of it. So this bad boy, never mind the mess, that's all stuff for my plan with me that's coming up in a little bit. I need to film that as well.  That is the giveaway that I have been hinting at for a while. I am hoping to get it up this week for you guys and I'm getting really parched so I need some water. So good. Love water. Love really, really cold water. It's like my favorite. I am going to get set up for starting my filming process and then hopefully by the time I'm set up the dry over will be done and I can at least start going on this. But before I do that, let me show you the dog. You guys seem to really like the Doyle. Let's see what he's doing. He's living his best life on the first of the year.  What's going on over there buddy? Huh? What are you doing? What's going on?  Oh yep. Full hiding of the snouts. Doyle is obviously over it. So anyway, like I said, I'm going to go get started and get set up for filming and I will check in with you guys in a little bit. Bye. Well, hello friends. I have been in this room for far too long. I have filmed six, seven videos if you count this video right here today. Um, things have been intense. I have been trying to go through every little thing and let's go bug the dog because that's always fun. Um, I'm trying my hardest. There we go. Trying to make you guys not look at that table. Oh my God. It's like a problem. I'm going to put my ring light on because it's intense. What? I also sat here for a few videos because my giveaway prizes. I've got all my giveaway prizes coming up on two. I need to get to editing that, but I just uploaded the footage onto my computer and I'm transferring it over and I'm going to get to editing in just a little bit. But I wanted to close out the vlog here. I wanted to kind of wrap up vlogmas. Actually, let's like sit somewhere a little bit more comfortable. Sorry about the laundry sounds. I always had to take a break from doing laundry while I like film my other videos, whatever. But it's got to get done, you guys. It's got to get done. So let me wrap up vlogmas here. Um, vlogmas has been an interesting experience. Um, all positive for the most part. The only thing that wasn't positive for me is the work. And when I mean the work, the actual vlogging isn't work, but finding the time to edit and upload and get all of that stuff handled, that was a little bit intense. It was actually kind of nice. I'm going to switch hands. It was actually kind of nice having about half of the vlogmas while I was on vacation, but I was still working. So that was a little dicey trying to figure out my schedule. Um, I was just a little stressed out. However, I will say I will probably do vlogmas next year if you guys want me to. It was really, really fun. And I think that's kind of be kind of a cool thing to like live on my channel forever. Just the idea of these vlogs. Like a little moment in time. And I can look back many years later and say like, what was I doing on December 2nd in 2016? And I can look back and say, oh wow, this is what I did. So I mean, it's kind of cool. The only other thing I felt like didn't really work very well for me is because I'm not a full-time YouTuber. I couldn't really show you really what I was doing throughout the day. And I felt like I should have been able to do that a little bit more, have like a little bit of a better like production value or more activities I was doing. But unfortunately, I have a full-time like normal job as well as other commitments and stuff like that where I couldn't really take the vlog and I don't know. But I think it was really good. You guys seemed to really enjoy it. If you guys have any like constructive criticism, comments, please feel free to post them down below. Questions also I will get back to you. But today was just a day of filming. So I didn't really get a chance to vlog. Like I said, today is January 1. I didn't film at all on January 31. I think I just needed a break as well as I needed to take like a mental vacation day from anything to deal with social media and the camera and all of that. But yeah, I mean 31 days in a row. That's pretty good if I can say so myself. Actually, I did miss a day but not really because I'm still uploading this tonight. So technically it doesn't count. Still, this is day 31 for me even though it's January 1. So whatever. I also think you guys got to know me a little bit more too. I don't take myself too seriously at all. Like if you want to criticize anything I have to say or do go right ahead, the only thing that I have issues with is in the comments. If you want to say something about somebody else, I got problems with that. If you want to talk about me, whatever, to each your own. Just because I'm the one putting myself out there. But if someone commenting or you know something like that or if you want to talk nasty about people that are in my vlogs and they're not really putting themselves out there, I have no tolerance for that kind of stuff. I didn't get too many of those. There was a couple but nothing like really that bad. I did delete a couple of comments but like, you know, those are just trolls anyway. It really doesn't matter. So that being said, I'm pretty sure I'm going to do... Oh, the laundry's done. Oh, that's so exciting. It's like not as loud anymore. I apologize. But yeah, that being said, I think I'm going to vlog this next year. I think it was really fun. I think it was a good time. I wish I had more time to dedicate to the videos and to the vlog. I feel like that'd be so much fun to like do this full time and, you know, do vlogs and, you know, do a week of vlogs or do a month of vlogs or whatever. I don't think I could ever vlog full time honestly. Like that would just so not be my cup of tea. But like to just have random months where I would just, you know, vlog and, you know, I think was it February is like vloguary or something and like October is vlogtober and, you know, it's just like really cool. So I think I will be doing vlogmas again. But of course, my battery light is blinking because I've been... I've gone through like four batteries today, you guys. Like I've been filming non-stop. But anyway, well, I am going to let you go. That is my cue to go is this red flashing blinking light at me right now. So I hope you guys enjoyed vlogmas. If you do, make sure to give it a thumbs up and subscribe for more videos from me. I will be back to my regular posting schedule Monday, Wednesday, Friday at 9 a.m. Central Standard Time. I will be back doing that tomorrow, which is Monday. Today is Sunday. So you'll see this vlog and actually a little bit from me. I'm gonna post this before I go to bed tonight. So it'll be good to go. So we'll still count as vlogmas day 31, even though it's January one. But we won't talk about that. So anyway, that's it from me from vlogmas 2016. I hope you guys enjoyed and I will see you all in my next video. Bye guys!


I would like to welcome our next speaker. He is a computer science PhD candidate at Stanford University where he works with Jeff Heer, who hopefully any of you have heard of, to make custom visualization design accessible to non-technical audiences. Arvind is also a chief architect at Appropos, a Bay Area startup that he co-founded to build data-driven web applications. Please welcome Arvind Satyanarayan. Hi, I'm Arvind. And I'll be talking about a new set of visualization design tools we've been cooking up at the interactive data lab at Stanford and the University of Washington. So our speakers today, I think, have done a really great job of articulating why carefully constructing data visualizations is an important thing to do. So judiciously designed visualizations are successful because they convey more than just the raw data values. They seek to set a broader context and specific aesthetic animation and interaction choices can foster communication and increase dialogue and engage interests and so on. So to add yet another example to our corpus that we've seen today, here's one of my favorite examples of an impactful visualization. This is Periscopex US gun deaths in 2013. And so while a simple bar chart or line chart could also communicate these statistics, the unique design decisions here so lines over a dark background, arcs that are abruptly halted with points dropping to a baseline, and then the sudden flurry of points, all of these design decisions together convey the data in tandem with the emotional weight of the topic. And so how can we create visualizations of this caliber? So over the last two years, we've been talking to a number of visualization designers, from data journalists to analysts and researchers. And we've heard almost everyone contend with this trade-off. At one end, you've got software like Excel and Tableau that are easier to use, but they constrain the design space. You can only pick from a set number of chart types. But the trade-off is that you can create something that you recognize in just a couple of clicks. On the other end of the spectrum, you've got extremely expressive tools like Illustrator and D3. They're capable of creating highly customized visualizations, very unique things. But they present a huge barrier to entry. They require significant technical expertise in both cases. So over the last year, we've been trying to address the middle ground here with a new design tool that we're calling Lyra. And we think, we hope, that Lyra is capable of building D3 caliber visualizations but without any of the programming. So to recap, the process of building visualizations comes down to composing these few basic building blocks. You have your raw input data. And then you have transformations that you apply to the data to group it, calculate statistics, or run layout algorithms like geographic projections or tree maps or things like that. Scale functions are useful to take your input data and give you a mapping of visual values, so pixels or colors or shapes. Guides such as axes and legends visualize your scale functions.  And so to some degree, all visualization design systems use these building blocks. But they vary the degree of control designers have over them. So for example, Excel and Tableau mass scales from users while D3's real expressive power comes from exposing all of these to the user. So to make Lyra just as expressive as D3, we chose to surface all of these building blocks within the interface as well. And so here's what the interface to Lyra looks like. We've got a palette of marks at the top which can be dragged and dropped onto the visualization canvas. And once they're added to the canvas, you can interactively resize and position them like you would shapes in a program like Illustrator. The right hand panel organizes marks and guides into layers. We expose a number of properties for each mark and any of them can be bound to data. The left hand panel contains data pipelines. And a pipeline allows you to import a raw data set and then visually apply a series of transformations to them. And you can see the effect of applying a transformation in the data table at the bottom. Pipelines also list all the scales defined over their data, giving users the ability to tweak scales which, like I said earlier, is a huge win for expressivity. To expedite the process of creating visualizations from scratch, Lyra tries to automatically infer appropriate scales for your data mappings. So the visualization currently shown is one crafted by William Playfair, often cited as the inventor of modern statistical graphics. It shows about 250 years of the prices of wheat and typical weekly wages, as well as the reigning monarchs at the time in England. So originally published in 1822 to a letter of parliament, he intended to communicate that never at any former period was wheat so cheap in proportion to mechanical labor as it is at the present time. So I could show you a video of how to recreate this in Lyra, but I kind of like to live dangerously. So I'm going to jump into a live demo. So wish me luck. So like I said, this is the interface to Lyra. And by default, what you can do is import a raw data set to your pipeline. And so Lyra takes basically tabular data. I don't have fonts loading. All of these fields are labeled, I promise. You don't have to guess your way through the interface. But the idea is that you can basically import data from a JSON file, a CSV, a TSV, all your typical formats. And for now, since this is one of our canonical examples, I'm just going to preload our data. And the idea is you start by grabbing a mark from the top toolbar here and then dropping it onto the canvas. And then I can start mapping data values to it by just tearing them off this data table. And it's a little faint on the projector, but you see that these cyan regions start to appear on the canvas. And what I can do is just drop the data field on one of those regions and I've automatically set up a data mapping. So in this case, the year is set to the X position of these bars. And you can see that it's automatically created a scale function for me as well. Similarly, I can take wages and drop it over the Y. And that did, wow. No matter how many times you're actually run these, okay. Let's try this again from the start. Oh, I was supposed to do wheat, that's why. Sorry, the internet here. This is the risk of live demos, I guess. Well, here's what the final thing looks like while we wait. Eventually, I assume it will load. But basically, well, I can just walk you through what it looks like to recreate these. So you have, like I was showing earlier, the wheat bars. And basically, you drag a bar onto the canvas and drop it. Maybe I should just swap to the video. And the idea is that these handles sort of allow you to interactively resize the bars as needed. I can, again, drop an area mark to create this sort of blue region you see here. And similarly, add line marks to highlight the regions at the top there. What's especially interesting is that we try and integrate both the visual aspect of creation as well as the data manipulation side of things. So on the right-hand side here, you sort of see that, well, you should see it, of course. Oh, oh, well, let me see what happens. I don't know where my fonts are. Let's see if I can make up time again. Hey, hey, wheat, all right. Yeah, I really don't know why things are breaking down. Maybe I should, I'll just swap to the video. I think that'll be quicker. I'm glad I left it in there. I almost took it out being courageous, but. So yeah, so the basic idea is you drag and drop marks onto the canvas. The data table sort of shows you the data that you have available to work with. And so what you can do is just drag a field off the data table. And when you do that, like I was saying earlier, these cyan regions appear that allow you to map data to visual properties. So in this case, we can drop year onto width. And then we can drop wheat onto height. And we see that it automatically creates scales for us, as well as sets all these different mappings together. And on the right-hand side, we visualize all the different properties that a mark could take. So in this case, these rectangles, you can set the fill color, you can set opacity, and so on and so forth. And any of these values can be mapped to data as well. And so like you see, I'm modifying the color here and stuff like that. I can use the handles, like in Photoshop Illustrator, to manipulate the size of the marks interactively. And so similarly, I can create an area chart here. You'll notice that in this case, it's doing something a little different here. I dropped the wages field onto the y-axis. And you see that it's automatically created a new y-scale for me, in this case called y3. But really, in the original, what we wanted to show, we wanted to be able to compare wages with wheat. And so we wanted them to share basically the same y-axis or the y-scale. And so what we can do is basically just grab the y-scale originally used and then set that. And so you see it automatically rescales the area. And so here, again, I just set a couple of extra marks to mimic the original by highlighting the top of that area. Again, just following the same drag and drop process of marks and data values to drop zones. And then here's what I was talking about earlier, where it's useful to integrate both the visual side of things, so composing marks as well as the data side of things. So in this case, if you recall the original, had the monarch's reigns along the top. And so we import this data set of monarch's rules. So their names, the year they started their reign and the year they ended their reign. And we start mapping these to the rectangles as well. And so rather than setting it to the width like I had with the wages bars, instead, I set them to the left and right coordinates of the rectangles. Now, you notice something weird is going on here. All the rectangles sort of squished and clustered around this top area. And the reason that it's doing that, if you sort of look at what the axes is showing you, it's showing you that right now for that start or end date, it's plotting everything from the year zero to the year 2000, which isn't really what we want because our data set is just from the 1,500s to about the 1,800s. And so again, in this case, when we had dragged and dropped the data values, Lyra had automatically created the X scale for us. And what we need to do is basically just modify that scale and just uncheck the values that you see here to make sure that the scale doesn't start at zero and that we're not doing any additional rounding with the scale functions. And so again, we can interactively resize the bars using the handles. And then to get the offsets happening, we need to basically extend our data set with some new fields. And so to do that, well, I guess I'm going to recolor them first. To calculate the formula, we basically add a new data transformation. And we can just again drag and drop the fields to start to basically extend our data set with these transformations. So the first one I add is a formula to basically identify a little gap in the ruling line in England where Oliver Cromwell took over. And he wasn't a member of the royal family. He was Lord Protector of the Commonwealth. And so in Playfair's graphic, he sort of highlights that a little bit differently as you'll see. So we first identify the Cromwell field.  And then we just take those data fields that we calculated and just drag them and drop them onto our properties like before. And so you see here, I took the offset field that I added and I dropped it to the start y position, so the top coordinate of these bars. And you see by default Lyra has created this scale mapping to sort of give me some bars at the top and some bars at the bottom. And so what we can do is again modify that scale function with some custom values to create like the exact offset that we wanted. In this case, just a little bit of an offset at the top there. And we can use the Commonwealth field to sort of color all of our Cromwells rule a little bit differently. And so in this case, to mimic the original, we have Cromwells rule there in white. And so the final thing to sort of get this to look like Playfair's original is to label each of these rectangles with the name of the monarch. And so we drag a text mark. And although we could do the same thing we've been doing so far, which is dragging on to the canvas and then drop some data fields and muck around with the scale functions, we noticed that the ability to label or connect shapes together was sort of an important and repetitive part of the process. And so we introduced these connectors, which should be familiar to you if you use tools like Omnigraphil or Vizio or things like that. And so what I can do is take that text mark and drop it on these little diamond connectors that appear around the rectangle. And doing so gives me one text mark for each rectangle that's anchored at that particular position of the mark so in the center of each of those rectangles. And then just like before, I can take the name and I can drop it over the text mark to automatically create that binding. And using the property inspectors, I can again sort of change scale colors and fonts and things like that. So the last couple of steps basically allow us to get to play fair sort of final graphic. We tweak the axes again with fonts and we add a couple of labels. And that sort of demonstrates how constructing visualizations in Lyra is possible. Now if, aha, this is cooperating now. So one of the things that Lyra really enables is because each of these properties is exposed through this very graphical interface, these inspectors. It makes the design process a lot more easier. And we think it also accelerates the development of visualizations. So for example, here is another famous historical visualization. This is Charles Menard's depiction of Napoleon's march from Paris to Moscow. And to use, to construct this visualization, we use a Mercator projection, Mercator geographic projection. And if any of you have used one of these in D3, you know that it can take a lot of work, of a lot of parameter tweaking to get it exactly right. And especially if you look at these, like this is, I'm centering the projection at 32.52 and 53.3. That took a lot of time to figure out. And so having a tool like this where I can just modify these values in context and just nudge things back and forth makes it a lot easier to change the scale. Makes it a lot easier for me to iterate towards what the final value should actually be. Similarly, here's a force-directed layout. And all these different properties that enable things like the distance or the strength or the tension, Lyra makes it easy for you to automatically regenerate layouts, but then allows you to iterate on this design further. So I can generate a new layout, and then on the canvas just double-click to pin nodes, and then hit refresh. And you see that those nodes, those small blue nodes that I pinned, are sort of staying relatively fixed positioned with respect to the rest of the nodes there. And so in that way, we think Lyra can sort of enable a much more iterative design process, where you can work directly on the visualization you're designing and sort of flip back and forth. So as probably the live demo illustrated, this is alpha code. This is research code. But it's on GitHub. It's free and open source. There are some issues with it. But we're really excited to sort of draw the curtain back on this project that we've been working on for a year. It's early days, but we have a lot of exciting plans of how to sort of extend it to support interaction design and things like that. But we basically wanted to sort of kick the doors open to really see what you guys come up with. And we're already excited because we've already seen a number of pull requests. And also a couple of tutorials from people in the community, so this one by Jim, for example. It does a really nice job of just walking you through the process of creating a bar chart in Lyra. So the one point that I forgot to mention is great. You spent all this time designing a visualization in Lyra, then what? So what you can do is export these visualizations as either static PNGs or SVGs, which you can just include as images, or they're great for including the work in print publication. But you can also export them as Vega specifications. And Vega is this underlying visualization grammar that's been available now for a while. And it sort of builds on D3. But the idea is that it's just a purely JSON specification of your visualizations. You're not doing any JavaScript programming per se. And so these specifications can sort of be embedded in your web page. You can use the Vega JavaScript library to sort of parse them out. And you notice here that I can either export my visualization with the data values inlined or not. And so what that enables is, if you inline the data values, that specification essentially becomes a standalone description of your visualization. You can just embed it anywhere, and you'll always get the same result. If you don't inline the data, however, the specification becomes a more reusable, general purpose specification for your visualization. So you can automatically rebind the data at runtime and have the same visualization but for different data. And so you can sort of stamp out different charts that way. And once you parse it, you can sort of add interactivity, like you can with D3 by registering event listeners and stuff like that. But it's definitely a future work for us to figure out how to do interaction design, both in Vega directly, declaratively, as well as in a tool like Lyra. So I know this was a little slapdash since the internet didn't work, but I'm happy to take any questions.


The algorithm utilized minimum price incentives to optimize the allocation of load appliances, taking into account waiting times and minimum tariffs. It also prioritized powering the appliances from the microgrid first, followed by the main grid. The system included two non-shiftable and three shiftable loads, which could be transferred to periods with lower prices if necessary. Additionally, the energy internet concept was used to monitor energy usage and provide customer awareness. The results showed that the system saved energy costs by at least 50% in six different cases. This article was authored by Ali M. Jasm, Basil H. Jasm, Sohail Mosini, and others.