For development of e-learning content, it is often asked about the visual communication strategies that need to be followed. This is a classic question of form over function. What is the message and how to show this particular message, how is it delivered become an important and integral part of this discussion. What we have kind of zero down on is that there is no need to give importance to any one of them in particular. However, giving less importance to any one of them can also need to noncommunication. Having good quality content presented in a bad format will result in noncommunication at the same time bad content having a lot of jazz of visuals will result in chaos. Therefore, it is kind of agreed upon that content should be governing the decision of what way it should be presented, which should be supported by good and supportive appropriate visual and a strategy which will enhance the content communication. Let us just get slightly deeper into that and see some examples of how we can have various types of content presented in the online format and what are the affordances of the online format which make it unique in terms of the presentation. So, here we are assuming that we have the content which is correct in all aspects which is well thought of. We have appropriate pedagogy for it which will do justice to the audience and the objectives that we have set in place and we also know the technology that we are going to use. For example, whether it is going to be online textual ebooks or videos or it is going to be mobile technology or kiosk based interaction, it is based on web, it is based on static servers all these technology decisions are taken care of and when we come to a point of actually designing something for that what are the challenges involved. So, we will just look at some of the principles which will help us to take a informed decision about that. So, let us get going. What we have found out is that the domains which affect this particular decision making are distributed over four important aspects. The first and the foremost is the graphic design or what we can call is a visual design. We have multimedia design which talks about the moving or the non-static graphics in terms of videos or animations and various other things or motion graphics as it is popularly called. The third one is the animation which is completely digitally created motion as against the video captured motion that what you are seeing now and the fourth one is the interaction design which is when you assemble multiple mediums onto a platform which is accessed digitally. It could be a desktop or a website or a app which is created for mobiles and handle devices or like I said kiosks which could be touch screen and so on and so forth. All these domains actually have certain amount of role to play when it comes to the final delivery and we would just like to make it concise by picking up important principles from each of these domains and what is boils down to is these four important aspects. The first one is the coherence which actually comes from multimedia and which talks about avoiding extraneous elements. I am sure you will have a chance to look at some of the examples of that in another content which is released in this course. We will have to talk about affordance because when we are entering into a digital domain then the interaction with the content and the user is through the appearance of that content and by affordance we mean that the elements which are present on screen suggest the possible interactions. For example, a button demands to be clicked or a slider bar demands to be dragged in order to change values and so on and so forth or a text box is pleading to be entered with some text. Now, all these affordances are the gift of online medium therefore we need to look into that in a very serious manner and followed by couple of important things such as feedback because when you are in online mode you are actually accessing this content in isolation. So you need feedback in order to modify, rectify or get a answer to whatever you have done with the system and that is given mostly through visibility or constraints which are the principles from interaction design and finally the overall appeal which is coming from the graphic design principles such as focal point, proximity which parts are nearer to each other and why or continuation and similarity because it should give a cohesive picture to you when you are trying to access multiple content in one go. So without wasting more time let us just start getting into some of the examples. So looking at proximity as an example of visual design in terms of online content for example I have here is a tabbed browsing option. So these tabs here on the top are chunked in a way that because they are really nearer to each other the user knows that these are the whatever 5 or 6 options available to them in order to access this content. So those could be given in use in types of icons or could be words written there but the user knows that this is different than the rest of the title bar because this is place where I can look for options. Now all these options being together in close proximity gives a feedback or gives a message to the users that they perform a similar function and that is where another example can just be useful in finding it out. So the example on the left hand side you see that three slider bars are one below the other with brightness, contrast and volume together. Now volume and brightness contrast actually affect two different outputs. Volume affects the speakers and brightness contrast will affect the monitor but because they are together it actually misses the point. And therefore we can think of splitting the volume thing in completely different location or in another window and just keeping brightness contrast. Also note that in the picture on the left the distance between the words brightness and the line or the line and the word below is almost same which is creating a problem about which particular icon is for which particular aspect. As against on the right hand side you see that the slider bar and the content is so nearer to each other that people have no confusion about like which is the one for brightness and which is the one for contrast. Now going ahead there is a really needed or really important principle of similarity because in our online content scenario we would be going across multiple screens one after another and if the particular treatment given or visual treatment given to every screen is different then users will be confused about the interaction with the content. For example in this case what we see here is a gray box which will show all the numerical values. Now there is also similarity in terms of the decimal factor used for volume the two boxes for volume and the weight which is having different numerical values but all of them are aligned in a particular way and every box which will have numerical values has a gray patch. If you see the screen here you will see that the values which will keep changing will be shown always in a gray box. Now this is how the similarity factor helps because then I know as a user that I have to look out of those gray boxes which will tell me about the specific cutting energy or a specific friction energy or the specific shear energy. Now these things are crucial when it comes to communicating. The principle of visibility is important because it will show things only which are relevant and necessary. In other words things which are not necessary or non-relevant at that point in time should be either hidden or shown on demand. Now look at this example we have a strip of gray boxes at the bottom and one of them is green while others are gray. It shows that during the entire journey of that particular animation or a video we have reached up to this point and this green is currently going on. Now if I want to know which one is this particular module which is going on or the next module which is going to come over I can just hover my mouse on that and I can see that the next module coming up is components of a linear compressor. This is the additional information I may want to access and only when I want it it will be made visible and otherwise it will not be shown and that will avoid clutter and kind of the mess which is created otherwise. This also helps that the user can concentrate on the objects or the animations within this particular frame and not get carried away or bogged down by the unnecessary content which are shown. So that is the visibility principle. Moving next I have taken a small example from a mobile device because that is again relevant thing where we actually access e-learning content or electronic content. As you see in the first example search is denoted only by the alphabet S which is very very difficult for people to understand and therefore the particular user will not be able to go through the process easily as against in the second picture which is at the bottom here. You have magnifying glass icon also with a highlight of blue which will tell you that now this is visible because you have typed something text some text inside this box and now this icon becomes blue after you type something which tells you that now is the time to use it. Now this is where the visibility makes its case very very clear about how to use it. Immediately after visibility comes the important principle of feedback and especially in online like I said because the users are in isolation it is very important that the system provides a immediate and constructive feedback to the learners. In the case what we see here the example shows that the answer given selected is wrong and denoted by a standard color scheme of red and green. However the feedback is elaborated at the bottom which can be read by every user in order to know to move away from the wrong answer to the right answer. Just giving that okay this is wrong and this is right will not happen or will not convert into learning instead if we can see that the wrong answer is provided with a constructive feedback can result into learning factor for the learners. The feedback can also be seen in very interesting way for example if you see this particular image number one where the user submits some solution for the assessment and after the submit button is clicked the boxes become empty which is not telling me whether the submission is accepted or I made some mistake in submitting it none of these things. On the other hand the moment I click on any one of the choices I can see that there is a feedback at the bottom which says that okay this is the answer is wrong or right a green color icon is displayed there. So these things actually help us in figuring out the feedback given by the system. Similarly the feedback is often clubbed with constraints why because the moment the user decides to click on something the system should tell them about the clickable and non clickable options also in order to avoid unnecessary clicks and navigation ideas. For example when you when I open any system and if I have not changed anything in the file obviously the save or revert to saved options are going to be disabled because I have not made any changes to it. Now if that is on then it would rather mean that it is going to be do redundant settings or redundant processes which are not required. Therefore these are grayed out. Now this can also be seen in interaction design where multiple buttons like I said till you type some text the search button is not enabled only after I write even one alphabet there you can see that the search button is enabled and then the user gets a feedback that yes I can now click the search button. One principle which is very important is the affordance principle which tells you what is to be clicked and when. Now if you look at this example the backward play pause and forward buttons here have absolutely no response or no feedback to the learners whether it is clickable or non clickable. On the other hand if you look at the buttons on this example where the pause is red right now and it has explicit labors like play pause record and with a icon I can relate it to the hardware data players or CD player or cassette recorder or any kind of player which has these standard buttons and that is very easy for me to get the meaning out of these icons and act accordingly. So a clickable button gives you a chance to interact with this system in a better manner. Consistency is equally important because once you are going from one screen to other and so on and so forth it makes it very easy for the learners to realize that they are in the same chapter or same book or even same course for that matter. Whenever we see that for example in first screen we have a blue button for back and in the second screen we have a green button for black it just breaks the consistency of the learner and they are confused about even the shape has changed because from circle it has become a square the position has changed from the bottom left to top right. So the learners feel that maybe they are in wrong place now. On the other hand if the play pause button remain at the bottom left all throughout various screens of a particular animation then the learners know for sure that they are going through a particular series of screens or animations or videos courses whatever you can call it. Now this is the consistency principle. These principles are not comprehensive enough we have not covered each and every principle which is prescribed by the experienced researchers in that area. However we have selected a subset of that to show you examples of some of them which are most relevant for creating online e-learning content. We have created a small curated list of various principles which have impact on creation of e-learning content.


I have a beer efficiently. Spray some of the... Asian? I don't know. The hair illusion? Don Juan Grocer, my favorite bodega in New York. That's my spot. And it kind of helps that there's a Dominican bodega, like two doors down. Oh yeah, yeah, yeah. I need a haircut. But first, I got to get these drinks from the bodega. Alright you guys, we just wrapped up here. I got some Arizona fruit stacks. I got this new sparkling iced starburst flavor. I got this house. Alright, thanks Papi. So what happens if you're feeling a little fuzzy with your hair in New York City? And you don't want to go to one of those new fangled barbershops that cost $100 a cut. I'm sure those are great. But what if you only have like $30? Well you got to go to a Dominican barber. And what do you recommend? Skin fade. Low skin fade. Low skin fade to a 2. Can you shape his beard or mustache a little bit? Cause look at this, look at this guy. Look at his mustache. I'm feeling fuzzy, I just need to get it all, you know. Texturize it. No, no, no, shape it, shape it all. Make his face look stronger than it would be. Yeah, and then I'll give you a skinny mustache. Okay. Hell yeah, skinny mustache. Go get the skinny mustache. Not the thick mustache, the skinny mustache. You're Asian, right? You're mainly going to know barbers that are cutting with scissors and keeping the hair tight. It's not a lot. Not going as low as skin or showing different type of hair. For example in Chinatown, they don't skin it. No. Around here, for example, where the lines are here, usually like the Asian people we get, they come here for the fade. Right, because they cannot find it in the whole community. Yeah, they can't find it around here. They usually like scissors, scissors cuts, and usually like all has usually Asians go to those type of haircuts. You probably got like a... Yo, what fade are you giving him? I'm giving him a mid-drop fade. I'm going to drop the fade down so that I'll keep the hair dark and up here. And you're talking about drop the back right here. Yeah, I'm going to drop the back. So it's not straight and then going up. You know what I'm saying? Okay, so what are you doing right now? Right now I'm going in with the one and a half. One of one more guard. I call this like the detail part. I call it the zero half and the one and a half. I call it the detail phase, because this is mainly where you're going to get the detail for the darkness of the head. For me, if I was teaching someone else, I'd prefer people to work from the bottom up because there's less risk of mistake. And if you do a mistake, you can improvise and go a little high. But if you start up from up top and it's a little harder to correct it because the hair up top is dark. You know what I'm saying? You know what's really interesting is I heard that I feel like a lot of Dominicans, they came to America at the same time that Asians did in the 1960s, the 1970s, sort of like typical parents are immigrants and then we get born here. Yeah, yeah. I feel like we had it the same like... Same timeline. Yeah, and I feel like we all have that strictness. Would you say that barbershops are kind of like a cultural hub in the Dominican community? You can go see people from the community, you can ask for advice, not just haircuts and stuff. I feel like, yeah, because Dominicans are known for their loudness and their personality that they're always cheerful, you know what I'm saying? Extraverts, right? Exactly, so you're always going to find something here if you come to a Dominican barbershop, you're always going to find that loudness, someone's watching a game on the TV, someone's getting a haircut, they're being loud, arguing with their barber, doing this, doing... People are on TikTok, always. Exactly, so, and there's always music, there's always this, you can see the culture everywhere in here, so that's probably why it's always pulling people to us, you know what I'm saying? Right, right, right. You get a little slice of the DR inside of these shops. Yeah, exactly, and we always try to keep it that way, you know what I'm saying? I'm over here hanging my flag right there. Right. It's like, we're always, we're proud from where we are. And it kind of helps that there's a Dominican bodega like two doors down. Oh yeah, yeah, yeah. Yeah, so I'm just parting the hair, separating the longer hair that he has on top with the hair on the side. I'm just going to thin this hair, I prefer to thin it out. Okay. Just so that I can give it more texture and keep the darkness and the lightness away from the fade. You got to understand, so with hair, it's the way that they grow out of your head, right? So, when they grow, Asian hair is really, sometimes they're thick, but they mainly grow out. They go straight out of the head, and you guys don't have a lot of hair. Like, you guys don't have a lot of, how do I say this? Density, the density. You know what I'm saying? It's not as dense, but the hair is thicker, right? Exactly, right? So, but when you go, for example, with curly hair or coarser hair, when they come out, they start curling up, and then that also, but you guys also have, which is the oily, nice, healthy hair. Coarser hair, they lack the oil and they're keeping the hair moisturized. I'm going to fade his sideburns. He's going to blend in with the fade after I pass the blade here. I'm going to skin all of this out, and then make it nice and light so that it flows in with the beard. You have to have a beard to flow in with the rest of your hair. He has a beard, guys. I have a beard, officially. What is this? What are you eating? Like ice cream. Ice cream? Gava ice? Mamita. Mamita, they call it mamita, but it's like guava. Is it from D.R.? From the Dominican Republic. Don Juan Grocer, my favorite bodega in New York. That's my... Most of us have baby hairs that grow around the eyelids right here.  But I've learned to sometimes that if you take it off, your face looks a little clear.  Hey guys, that's the detail work right there. You wouldn't know that if you don't consistently cut hair. Right, right. Hey, get rid of the peach fuzz. Yo, David, you look like a designated batter right here. Like I told you guys earlier, right? There's a position, like a light baby hair shadow that grows on the face, but people can't see it. Women, like, they take it off because of their makeup, right? But us, we don't really learn... Yeah, for guys, we wouldn't even believe that it would make a difference. Exactly, but if you see it with shadow and shadow around here because of the little baby hairs... You can see it on the face here, like it's way lighter than what he looked like. So when you shave this, we're gonna see that it looks almost like clear. Yeah, you will see like his skin will clear up. I got a beard! He got one! You're here at Moran Barbershop, Dominican Barbershop. What are you about to get? Fresh fade. Five on the top, skin fade, you know what I'm saying? Right.  Yeah. I actually did have that back then, but I was just too tired of it though. Right, right. You wanna lower maintenance here. Absolutely, bro. Absolutely. Alright, well good luck. I know you're gonna look fresh. I get a plate with two meats. Can I do pollo guisado? Pollo guisado. And then can I do the ribs? My beard has never looked stronger before. Listen, guys, we are just right outside Chinatown on the border actually between the LES in Chinatown. You can get a haircut for 30 at the Dominican Barbershop.  I've got pollo guisado. I've got pork ribs. I've got rotisserie. And this was 20, all for $50 combined. But really, the haircut was like 30, 35. I would go with 35. Listen, guys, prices are going up everywhere. But I am telling you, the Dominican Barbershops, in terms of value, they're probably the best in the city, dollar per dollar.


I think Africa has very serious food security challenges and I think a lot of the food also in Africa comes from the forest especially if you look at forest countries a lot of food stuff products from the forest are consumed as part of the main diets and the main nutrition within these countries I think that's one main link I think the second link is that there is an obvious link between agriculture and forestry in terms of agriculture being a leading course of deforestation on the continent of Africa and globally I think so we've got very strong linkages at those two levels there is a strong food security need and secondly Africa agriculture is likely to be very highly affected by climate change and we need to look at more sustainable ways of managing agriculture in a way that enables us to meet both the food security demands that does not destroy forests and also looks at other environmental services that we require on the continent I think yes I think if we go with sustainable intensification pathways then we might free up a lot of the pressure on forests one example would be if you take productivity in shifting cultivation that is the main driver one of the main drivers of deforestation in Africa involves moving from one piece of land to another simply because the fertility of the previous piece of land windows and so you have to move on to the other one because they don't use fertilizers I don't don't use you know a lot of inputs now if you can intensify agriculture and enable them to use inputs then they'll be able to stay on the same piece of land and they will produce more and so they do not have to clear other pieces of forest to get fresh and fertile soils on which to produce the food that they need so in that sense intensification will have theoretically spare forest land and also increase food production because a lot of the deforestation is linked to getting new land for increasing food production I think there are a couple of ways around it I think agriculture would be largely the best benefit would come from having agriculture as a strategy for reducing emissions from deforestation and then there would be two questions I guess I mean the biggest question would be what is the place of agricultural intensification in a red strategy as a way of reducing reducing and what should put how much should red invest in agricultural intensification as a strategy for reducing deforestation I think that is the most direct link that we will have the other question about whether or not we should get direct compensation for soil carbon in agricultural lands is the second part of the question but that's not fully linked to red but it is an important part of the question because farmers are already doing things that are beneficial to the climate but are not getting any benefits from that and also climate change funds can invest in agriculture because for us to have sustainable agriculture we need huge investments one source of investment is potentially climate funds for climate smart agriculture and that would be helpful because it will contribute to food security and enhance the co-benefits that we can get in terms of poverty alleviation in terms of other environmental services we need funds to help farmers adapt and mitigate climate change and we think strongly that climate change funds should invest in those because it does have wider co-benefits for poverty reduction for biodiversity that we are unlikely to get if we invest in if we don't invest investing in climate smart agriculture


Thanks so much for coming out for this. This is both Vince and I's first time speaking at Rails Compton. Actually, my first time as a developer speaking at anything, so this is a really cool opportunity for me. So I think we're both really humbled that y'all could come out and talk with us about this. So especially since you had to come all the way down to the caves to find us. Hope you brought your jacket, because it's cold in here. So yeah, my name's Shiv. I'm a software engineer at New Relic and I work on what is, we call it our business enablement team. It's kind of our internal engineering team that serves all of the various business units within the company. And you'll see throughout the presentation, I'll give a couple of examples of what that means, so we can get into that a little bit more at that point. And my name's Vince. I work on the RPM UI that you're all familiar with, hopefully, tending to work on more infrastructure back in kind of stuff these days. I've been with New Relic for about a year. I remember last year at RailsConf in Portland, I was interviewing with them, so this is a nice little anniversary for me. Also, just to get a quick raise of hands so we can just understand who's in the audience. So first of all, who here has heard of New Relic before? Okay, good, that was kind of planned. Keep your hand in the air, though. I just wanted to get everybody's hand in the air. Who's currently using New Relic either as a side project or in a production application? Okay, and then keep your hand raised if you're using it specifically in a production application currently. All right, and then keep your hand raised if you have checked New Relic in the last seven days. Okay, that's great. And your hands can go down now, sorry. And how many of you are, let's say, software engineers? So most of you, how about? Software writers. Software business people, business, you consider yourself more of a business. What about a blend between those two? Probably a lot of you, okay, cool. So the purpose of this presentation, what we kind of wanted to do is go through software analytics as an idea, as a concept, and how that can relate to making business decisions. So regardless of what your choice is for a software analytics tool, it sounds like a lot of you have used New Relic before and are using New Relic. But regardless of the choice of tool, what we want to get across is that you can use software analytics to really inform your business decisions. So throughout this presentation, what we're gonna do is start with a bit of a product overview that Vince is gonna walk through. And you're in a sponsored event, so we're gonna talk about New Relic. And then what we really want to do is show you about three or four specific examples of how Vince and I have used New Relic in our actual jobs to help inform business decisions, kind of what we're gonna work on, how we prioritize our work, and that kind of stuff. So some real life examples of how we use New Relic. And then hopefully have plenty of time for Q and A if you have questions. I'll let Vince take it away. So New Relic's been around for about six years now. Started out just as Rails Performance Monitoring, but it's expanded very greatly since then. We've added a number of extra agents, so we work in lots of environments, Java, .NET, PHP, Python. We have a platform component that lets you build your own agents of sorts, and so you can monitor things like MySQL or Memcache, whatever you can write a plugin form, you can hook into our infrastructure and have that data be reported. And lately we've started getting into mobile apps, so we have a iOS agent, and we also have been getting further into JavaScript with a Node agent and a new browser JavaScript agent. So that's sort of the history of how we've been spreading throughout the infrastructure that all of our production apps run in. And so we're expanding this idea of performance monitoring into what we call software analytics. And this is a nice slide that's been put together by people who aren't developers, but it shows the expanse of what it is we're trying to monitor. So it started out as just how is our app performing, how is the server it's running on performing, how it's using its resources, but there's a lot more information embedded in the software that we're writing. Since the software is about a domain, there's all sorts of information about that domain like that we can start using to make better decisions. And that's where we're headed as a company with the new work that we're doing, software analytics. So the extent of what we're trying to do right now is kind of shown here and we're moving it further. But the really interesting stuff is happening off to the right here with this insights. That's one of our first steps into something that raises the level of abstraction above the infrastructure, above the technical, it gets into analyzing the thing that you're doing, not just the infrastructure that it's running on. So APM is what we're calling the site that you're very familiar with. It went from Rails performance monitoring to application performance monitoring. And so this is the infrastructure of what you're familiar with now. We put the agent in whatever component we're talking about whether it's browser, your mobile app, your server, your application itself. Send it up to the collection tier, we start correlating doing aggregation and then we present it to you in our UI. And traditionally APM is aggregated information so we weren't collecting every bit. We were taking averages over time, taking sample traces and aggregating that and showing you the aggregate. But what we're moving to with insights is event level resolution. So we're no longer gonna be aggregating, we're saving off all the information and we can do complex queries on it later so you don't have to, you're not in the clouds, you're actually looking at exactly what's been happening on every request. And that's required building a pretty deep and new infrastructure for storing that and querying that. And that's the backing up. A few of the features in our APM product but also the majority of our insights product. So I'm gonna talk about a couple new features that are in APM. And since we're all Ruby developers, one of the real interesting ones is some of the new stuff that's been revealed with some work in the agent that we've released very recently regarding Ruby 2.1 garbage collection. So this is our staging environment and you'll see this deploy here is where we turned on Ruby 2.1 and that's just stock Ruby 2.1.0 out of band GC or anything. And now that we're monitoring a lot of new information about the garbage collection system, you'll see that our memory usage dropped significantly, the time spent in GC dropped significantly and the heap size got that dropped significantly as well. So this is a little bit of developer flavor for you but if you wanna gather some business insights, upgrade to Ruby 2.1 for sure. It's really a much better garbage collection system. And another new feature that's backed by our insights data store is histograms and percentiles. So like I was saying about averaged aggregated data, there's been other talks about this too, sometimes important details are lost in the muddle of the averages but we actually have histograms available for all the metrics we collect now and transactions. So you'll be able to see things like where are the bumps? There's often like a bimodal distribution and a lot of requests. And you can see percentiles. So what is it like for the every once in a while when there's some weird database contention that query takes forever? Like what are those response times actually look like? So I'm gonna turn it back over for a few more new features. All right, Jim. Yeah, so browser was released, let's say one or two months ago. So it's pretty new, you might have seen it pop up on the left hand side. Some of the features were in APM before but we found out that there was enough of a need for a front end specific tool, a front end developer specific tool that we could break it out into its own tool. So we called it browser, so you'll see it on the left hand nav within New Relic. It's just called browser and then your applications will be in there. And I'm gonna share with you a little story about what happened with my team specifically. So I mentioned before that I work with the marketing team within this kind of business enablement group. And one of our main purposes is to keep up the NewRelic.com marketing storefront site. So anytime you just go to NewRelic.com, flashy, Ajax-y, jQuery stuff going on, it's a pretty site and all that stuff. That's kind of the team that I work on with a bunch of front end developers and stuff like that. So when browser monitoring came out, this kind of crazy thing happened. So we didn't have access to this data before and what happens when the guys in Portland come up with these new tools is that we get to use them first. And usually that's pretty awesome experience because all of a sudden we have access to all this new data that we just didn't have before. So I'm gonna share with you a screenshot of what we saw the first time we clicked into browser monitoring. It's pretty small and it's actually gonna look a lot very similar to what you're used to seeing in the NewRelic APM tool. You've got the charts at the top. You've got throughput. You can dig into page views just like you can with transactions. And then there's these two new boxes at the bottom right. JavaScript errors and AJAX timing. These are brand new features that we pulled out. And I think you'll be able to see pretty quickly if you can see this why it was pretty scary. Scary it was when we first opened this up and found out that 20 to 30% of our page loads had JavaScript errors, which is a pretty scary thought to think about, right? That's a lot of JavaScript errors. We knew about a few of them. You know, a lot of them were not bringing down a side by any means. They might have been older JavaScript libraries that had some stuff in there that we weren't using and it was throwing up some red errors in the console. So not a big deal. But then we wanted to dig deeper and find out if there is anything in there that was more serious, right? So when you click into JavaScript errors you get, again, another very similar view. And it's a breakdown of all of your JavaScript errors over that time period and kind of the amount, the number of times that they happen. So it's ranked by the number of times in this case. And a lot of them we weren't surprised by. And then we started clicking around. So I wanted to click into one and show you what we found when we clicked into one. And we're not using an actual demo here because we can't really get the internet to work. So sorry about that. But you'll see down here that it's pretty interesting. So this JavaScript error is very specific. It's happening basically only on Internet Explorer and probably some versions of Firefox. So yes, slap on our wrist for not checking Internet Explorer, which we should have done. But what I like to think of a lot of New Relic tools are is we as developers can go out and develop really cool things and we're not gonna catch all of the errors that happen. But thankfully, you can use tools like this to catch the stuff that you don't and then you can go fix it. So the people that are operating on IE 7 and 8 can still maybe see your site a little bit, right? So I also want to show off AJAX timing. I don't have a specific story around this, but it's a pretty cool new feature. So you can finally get level detailed information into all of your AJAX calls that are happening within your site. So that includes anything that loads on page load. So things like tracking tags. You'll see a lot of mixed panel and Google stuff happening on this slide. And then you can dig into them and get a level of detail, including kind of the amount of time spent in JavaScript callbacks. So it's kind of a level of detail into your AJAX calls that you may not have been able to see before and I'm sure you'll be able to extract a lot of cool stuff out of that. Anything to add? No, but I really like the JavaScript errors because I helped build it. Cool. Are there any questions before we move on to insights? Because we kind of breezed through APM and browser right there. Yeah. Could you go back to the 2.1 GC graph? Yeah. Vince loves talking about this. This was like, what? I've been working on upgrading to the Ruby 2.1 for like two months now. Our test suite, when I first got it, I finally got it booting and then it had half of the tests were failing. Knocked out of like a couple hundred with a few fixes and then the rest was just like. Continuously knocking away, but anyway, yeah. 2.1. Oh, that was it. Oh, it's a little bit. Yeah, sure. This is available now. We just released it with an interesting blog post that talks about a lot of the agent features. With the recent version of the gem, so make sure you upgrade your gem.  Do you have a question back here? No, you're just scratching. Okay.  Animations, animations, and there you go. So, Insights is a brand new venture for us. It's a new product that we built from the ground up, including data collection tier and a brand new UI. And we're calling it, what's this? A real-time analytics platform. So what that means is, like I was talking about earlier, we collect every event that happens. We collect page views, transactions, within the currently existing agent that's already in your app. So we've been doing this for a while. And if you log into Insights right now, you'll see a bunch of data because we've been collecting this for some time now. As well as custom events, so you can send interesting things to the API and use this interface to query and analyze it. Database is really big, really complicated, lots of workers querying, all kinds of cool stuff. But what it gives us is a really fascinating way of interacting with our data. So each one of these, so each of these little segments here is backed by a query that is written in a query language that we developed. Looks a lot like SQL. And it has a lot of nice little functions, basic stuff like counts and averages and whatnot, but also gives you really easy access into making histograms, percentile charts, time series charts, pie charts, all kinds of interesting stuff. And this is all reflecting live results, so you don't have to re-query. You make one query, build up this chart, and it stays up to date with what's happening in real time in your app. And there's lots of really interesting stuff that you can do with this, because any bit of information that you send in to the agent can be used in one of these queries. So say you wanna start doing some performance analysis, and this is something that we've done in a particular view in your app. You could do a query that segments it down to just that controller in action. And then you can do what we call a facet based on another category of information. So we've done facets on how many hosts does this account use. So there's some hosts that have, or some accounts with a couple, three, four, and the performance of that is understood by us. We can simulate that on our local machine, but what if there's an account that uses Amazon and spins up all kinds of dynamic hosts and they have maybe 1,000 or 10,000 in their account. We can do the same kind of performance analysis that we've done in RPM, but faceted by host count. So we were able to determine that there's a threshold, and when you got over 1,000, the response time of this particular view really spiked. And so that gave us insight into what we needed to pay attention to when we were doing our performance optimizations. So we needed to look for not just N plus ones, but what are the effects of having a radically larger, this variable, host count, or another variable. So that's a way in which we've really gotten a lot of benefit out of having a way to do more complex and more customized queries based on the same data that we've been collecting for a long time. And you can make any number of these dashboards and any number of these charts and put them up on a TV or whatever, keep them on your desktop. I recently launched a new feature on my own personal site and I was watching all the visitors come as this registration system opened for both bike polo tournaments that my software hosts. And for me, 100 users on that side of the time was a lot, but I was able to see people are logging in and doing these transactions and I was recording them all just using the agent, like add custom param, new relic agent, dot add custom param, give it a key and a value, and then all of a sudden it's available in the system for you to query. You can stay there. Oh yeah, you wanna go back to that? Yeah, and I think Vince brought up host count, but really for your own usage, you could vest it by customer size or how much they spend with you and then really look at based on what tier they fall in, how your app performs for those various tiers, which can be a useful metric to look at and understand where you need to focus on, focus a majority of your time. So I wanted to share one more example and I have a little bit of a story, so bear with me for a minute here. So we were launching insights about a month ago or so and the marketing team was like, can you build as a dashboard that shows us kind of what Vince was talking about, all the people that are logging into insights, real time, how many of those people, who's viewed a dashboard, who's inserted a custom attribute into a transaction event. So I was like, yeah, yeah, totally. I can build this dashboard and here's the dashboard that I built. This is currently showing you how many people are logged in to insights right now, 815 users. And they were like, cool, this is awesome. We have a dashboard now, but Shiv, we can't do anything with this dashboard. It's just like a dashboard. What are we supposed to do with it other than look at it? It's nice to see, but we want to take some action on this data. So what they wanted to do was take off this data from this dashboard and port it over to Marketo, which we're using to facilitate a lot of our marketing automation. They wanted to be able to take user login so they can understand who's logged in, who's viewed a dashboard and then send off different emails based on that kind of information. Typically what you could do with the Rails application is set up a background job process, that just when something happens, you fire off the event to Marketo. Marketo collects it, you're all good, or you do like a daily sync with Marketo with your application. The insights team didn't want to do that, and they specifically didn't want to do that so that they could test this API implementation that they built. So they built a really, really nice, easy way to be able to pull data out of insights and push it anywhere else you want to. So if I switch back to the slides, here's kind of, I mean it's just a simple curl. It's not anything that, something that most of you have probably seen before, but what's really cool is that you can drop any query into there. So Vince showed off that NERCLE query bar at the top where you can create a dashboard. Literally anything that you put into that NERCLE query that creates a dashboard, you could put that into an API call, which will then output JSON to you to use wherever you want to use it. So where that can be cool is if you're putting in a bunch of custom attributes about your customer size, you can use insights, for example, as an aggregate store for all that data. We'll take all your data, aggregate it up, and then you can just pull it out with performance data or however you want to view it, slice and dice it and then put it wherever you want to. So this is kind of what the flow looked like for us. Obviously we're taking it out of insights. In our case, we were pushing it into our APM app only to use it as a background job processor, which then we can push it over to Marketo from there. Right, so we were basically just using APM as the server to run the process. But what I think is really interesting is that if you switch Marketo with anything, be that like a BI dashboard or really anything that you want to push data into, and then consider using a tool like Zapier, iron.io, then you've set up a process where you can take data out of insights, process it in Zapier, and then put it wherever you want to. And what gets really cool about this is that you don't have to be a developer necessarily. So if your CEO or your business partner comes up to you and says, hey, I want this data here, you might be able to just tell them, like, use Zapier, take the data out of insights, which I've already put in there for you, and then you can push it wherever you want to. I don't have to set up a new background job. I don't have to submit any more new code for this. All the data's there, and all you have to do is use it. So we think we're gonna go in this direction, hopefully using some tool. I don't know if it'll be one of these two, but I think it's a really cool idea to be able to use this data and integrate it with other tools. So the point here is that you guys can brainstorm and figure out the ways that you want to use it. So that's really all we have in terms of slides and examples. We were hoping to open up the rest of the talk just for questions to talk about in your relic. So, yep.