DC2 and everybody was half asleep. So I promise I'm not going to drone on for too long, and I'll try to be efficient about this. But if you do start to nod off, just let me know and I'll pick up the pace a little bit. We've had a lot of great tech talks today, so it's always nice to bring in a bit of a softer side of the service and talk about something like information architecture.  I'm wrapping up my graduate degree right now at Kent State actually in information architecture. We're just cool that we've gotten to this place in the digital landscape where we can actually get graduate degrees in this specialization. I'm also the partner and director of products at Firefly out of Vernon, Virginia, which is a six-year-old 10 percent agency. So we've been around for quite a while. What I do, my background is I'm actually a full-stack developer and a designer with a psychology background, which comes back into play now. I work across industries and markets, so I'm not specialized, I don't work in higher ed. We do see trends in the business though, asphalt right now is our big thing. So if you have questions about that, I can answer them. We work both at the corporate level, all the way up from Fortune 500 down to Mom and Pop Bain Street and with nonprofits. So we get a nice intersection there as well from a business perspective. We work in web and mobile and I love a good pun. So if you have a bad joke, please stay after and tell it to me. In today's session, we're going to talk about information architecture 101. What is it? It's a big word. What does it actually mean? We're going to talk about the best practices when you're going through an information architecture project. What to do when you get stuck, when I have a Q&A and most importantly, a giveaway at the end, so I make sure you stay. So information architecture 101, what does anybody think it is? What is IA? So structure, anybody else have any guesses? Skeleton, I like that. That's a good one. Very good. So information architecture, the definitions changed over the years. Somehow this field has been around for 30 years. It came around in the early 90s and just quietly existed for a couple of decades and they just boomed. When it first hit the scene, it was about understanding and looking at the big picture of a product or an experience or a website. Then it was also about the nitty-gritty and you'll see a repeated keyword in that second definition of systems that's really important. But over the years, I grew and modified into its contemporary version, which has a bit more of a diverse definitions that. We talk about things like organization, labeling, search, and navigation systems. We talk about the structural design of shared information, which is an exciting phrase for me, that it's an emerging discipline, which is interesting since it's been around for 30 years, but it's continuing to morph and evolve. So in some sense, it's still new. Then the one that I personally use is the art and science of shaping information products and experiences to support usability and findability. So looking at where we've been and where we're at now, there's a bit of a shared ground. We look at navigation and information organization, and information relationships. That's never really changed. But now in the modern space, we're hooking into the strategy of a project. We're looking at goals, both from the business side and the user side, and we're working in tandem with content strategy, which is a question that we get a lot as IA is, what's the overlap there, and there is. There's that great saying about how you can't lead a horse to water. I like to modify that, because one of my partners is a content strategist. I say my job as an IA is to get the horse to water. His job as a content strategist is to make that horse drink, and that's how the two work together. And then lastly, we're looking at architecting the entire structure of an experience. Before, it was very much large level or nitty gritty. Now it's both. Start at the top, and you work your way down. So the big bonus that comes out of actually putting information architecture in your skill set or your knowledge base, or as a part of your process, really is alignment. And there are three different keys of the alignment space where IA can really improve your products and your websites. The first one being users. IA at its core is a subset of user experience design. So our first concern is the user. What are the user's goals in using a product or a website? And it's important to keep in mind that the goal and the task that follows are very different things. The goal is something that you wanna achieve. I wanna buy a new shirt. But then the task might be something more specific. It's something that you have to achieve in order to complete your goal. I need to find a black shirt. So there are two very different things that we deal with as IAs. Then the information seeking behavior. This is probably one of my favorite things to deal with in the IA space is how people actually navigate and consume content. Are they searchers? What kind of searcher are there? We're gonna talk about that. Are they browsers? Are they somebody who comes into a website at its homepage? Do they come into a website from a referral and go directly to their content that they wanna get to? We take all sorts of those context clues into the factory experience. And then the overall experience, both from a business standpoint, what's the ROI? That's everybody's number one question from a client perspective. If I'm going to spend X, what am I gonna get for it in return? From a user perspective, if they want to buy that black shirt, for example, what are the steps that they think are realistic to take and complete that task and achieve that goal? But then lastly on that user side, kind of from a third party point of view is the user's actual experience level. Is this somebody who's technologically savvy? Do they use apps? Do they have a lot of experience on the web? How do we need to target based on what they're capable of doing? Secondly, we have content alignment or context alignment. This is a pretty fun one because at our core, these are realists. We don't like surprises. We like clear road maps. We don't like speed bumps. We like everything to go really smoothly. So like I mentioned earlier, we look at things from a business goal perspective. What's the ROI on something? How are we going to improve a brand even though that's kind of an intangible? Funding, that's a big one because as IAs we do user research. So we need to know upfront how much money is there because if there's not a lot of cash or a lot of funding behind a project, we're not gonna plan a whole lot of user research for the basis for our strategy and recommendations. Politics are always an exciting one. Going back to that Fortune 500 and working at the corporate level, you have to be able to navigate those and to know what's a hot button for somebody. As silly as it may seem, somebody may not like a specific word for a product or they may have an internal culture there that's referred to a process or a product the same way for a very, very long time and you might not be able to change that.  Technology is a big one because what I deal with a lot is structure. So somebody mentioned skeleton was a really good term. With how we implement our recommendations affects the systems that they're run within. So technology is a huge component of a successful IA strategy because if we can do the research and make the recommendations but if nobody can implement it, it's a waste of money. We go back to number one, business goals and funding. Resources, who's there to do the work? IA is really interesting because it's user focused and it's user centric. So if I started an IA project right now, most of the work is on y'all and I like that. But I have to interpret the data then. I have to coordinate all the interviews with you. I have to run tests with each and every one of you and that's a lot of idle time in my schedule.  And then constraints, as I mentioned these can come from business goals, these can come from funding, these can come from politics but at our core we're realists so we like to know what we can't deal with. And then lastly in the alignment space is content. We look at audits quite a bit as IAs so we can establish a benchmark for how to move forward on a project. You know, one of the best things when you're trying to figure out how to architect and experience a website or a product, look what you've already got. The work's already gone into that. Hopefully you have Google Analytics or some other tracking metric on there to evaluate what's already in place. But we also look at the types of content WordPress is a great system that supports this when we look at custom post types. You know, when we build products at Firefly we very rarely use pages and posts by default. We are custom post types all the way because it allows us to create really intricate relationships between those different types of content. And then lastly the volume which we're gonna get to here in just a second when we talk about the structure of a website. We have to know how much there's gonna be. At the end of the day I don't care what's on somebody's bio page but I need to know that that bio page needs to exist if that's again from a cultural perspective or it's from a political perspective. Again, I don't care if the CEO has a page on the website or not. But if he wants one or she wants one by gosh it's gonna be there and I'm okay with that. So I really, it provides alignment in your products and your processes which can kind of get overlooked before we integrated it into our own process. There were a lot of moments of uncertainty as we would kind of go down the path of a project. One in particular I can remember was a software company and we got to the end of the project and all of a sudden we realized, there are 600 resources on this website that we missed. Crap. What do you do with that? How do you get to the end of a six month process? And you've got this great 200 page website and then all of a sudden, oh, that's only a quarter of it. We don't have designs. We don't have a structure in place for that stuff. We don't have fields in there to define relationships to get from point A to point B. What do you do? So for a long time without IA, this is how I felt going through projects.  I mean, we're planning as best we can and I hope it ends up all right, but who knows? So looking at what IA is and the alignment that it can bring to a project or process, let's look at some best practices that come out of IA. The two big things that I'm concerned with as an information architect is the structure of a website and the scheme of a website. First we're gonna talk about structures. Now this may seem elementary. A lot of things in IA are very like, John, duh, we can't help it when you know the context of them, you can really use them. So a structure is an organization to how you define the relationships between pieces of content. Couldn't be simpler, but that's a major component of how you build things. At Firefly, when we talk about products and websites, we have to talk in metaphors because nobody outside of the space understands what we do. So we always talk about building a house, building a website is like building a house. So when we talk about structures, we begin to talk about what are the dimensions of that house? How wide is it? When we go back to the realist part, we can talk about, well, you can't build a site that's wider than your piece of land or deeper. So we can talk about constraints and the reality of it. I'm not concerned at this point of you want six bedrooms or three bathrooms. I just need to know how big that house is. How wide can it be? How deep can it be? How many floors is it going to have? Is there going to be a basement? The structural elements are what I'm concerned with. So when we look at structures, there are two major types. The first is hierarchical. Now we deal with this in WordPress all the time. Pages and taxonomies by default have a hierarchy. These are great because they're top-down and they're search engine-friendly because it allows there to actually be a hierarchy for the URLs and for the content. There are drawbacks to these though. You can go too deep and too narrow when you're building a structure and all of a sudden your users find themselves in a rabbit hole that they can't get out of. We have a client that we work with. When we started with them, their website was 40-some thousand assets and 17 levels deep. 17! Okay. Exactly, so there's another talk about maintaining and editing a website on the regular. Let's tie that one into this. Talk about scope creep. How do you go from 17 to something that ideally should be one, two, or three levels deep? That's kind of a crapshoot. We didn't really know because again, organizationally that was going to be a really painful conversation. Taking this much content and putting it into a smaller space because we knew product owners were going to get mad. We knew sales was going to get mad. We knew marketing was going to be concerned that their products weren't going to be portrayed in the best light and then that's going to affect the brand. There were all of these hooks that were affected by this conversation. So we went to the data because that was really the only objective place that we had to go. And we looked at where are people landing on this website? If they're coming in from Google, are they getting straight to the page they want and then bouncing and going somewhere else? Are they hitting a category of product for example and then diving down into a product? Are they coming to the homepage and then bouncing from the homepage? Or are they actually following some sort of path from the homepage to get to where they wanted to go? Those are all the sorts of things that we looked for within the analytics. And at the end of the day we figured out five was a pretty good average for these folks. It was painful to go from 17 to five. It was a long, long painful process. In fact, our client abandoned their audit in the middle of it and just said, just finish it. We're still kind of feeling the ramifications of that one. But that's neither here nor there. So at the end of the day we had to figure out how do you reduce something again that was really narrow but also very deep and get it into something that was more balanced. And that's ultimately the challenge of a hierarchical relationship. They're kind of the default for everything which is great because everybody's really familiar with them but when you don't maintain them they get out of hand. Now, Etsy's a really good example of this. Their structure follows their navigation pretty closely in that you can find a home and living page. You can find a home decor page. You can find a wall decor page. Now it's really interesting once you get to the product level of what happens to the URL and we'll talk about that here in a little bit. But I always like Etsy as a stand out there. An example of what not to do. I wanna repaint my house right now. I like Benjamin Moore paint so I went to their website to try to find colors. I like historic colors and they have historic American color collections. Great. I also like gray. You know what I can't do? I can't find historic colors and gray paint. I get this. Now I have a design background so I somewhat know the source of these colors and can kind of figure things out between a warm gray and a cool gray and a neutral gray. I don't wanna do that. That's not my job as a consumer. They're a paint store. Show me the paint. Show me the paint that I want. So this is one of those instances where you can find yourself so deep in a rabbit hole and as an end user I get frustrated by that because they've gone narrow and they've gone deep and I don't have a way to get out now.  So on the flip side from the hierarchy is we have the database model. So again in WordPress we're all used to this because we use posts and we use tags. So everything's flat, which is great because it kind of gives priority to everything. You know the bad side of that is there's that great old design phrase when everything is bold, nothing is. So it's a bottom up organization and it relies on metadata. Now I know there have been a lot of talks about search engine optimization. I'm not talking about SEO metadata. I'm talking about actual metadata. So data about data. When we look at this kind of a presentation we're typically talking about things like e-commerce sites and products, resource catalogs. Think of all the supporting documentation for like your dishwasher for example when you go to find a part number or instructional manual or whatnot with that. So we're thinking about things data wise like colors, sizes, brands, part numbers, series, not title, description, keyword, open graph, things like that. The cool part about a database model which is what Benjamin Moore would really benefit from is that you're able to repivot as a user. So if I'm on GE's website looking for a part number for my dishwasher, I can drill down to a certain point and I can go, that's not actually the part that I need and I can go back up one level. Database model lets us do that. We all, I presume, use Amazon. Amazon's a great example of this. Etsy does this too in their URLs. Once you get to that product, you don't have a hierarchy anymore. It's .com slash product slug. It's right up front. There are deeper talks about SEO that I won't get into today about authority within a website and where does your content rank relative to everything else, yada, yada, yada. But at the end of the day, the big advantage of this is this is top-level content on your website and that's really the shining star and the shining moment of the database model. And again, you're able to introduce things through metadata like prime, colors, sizes, ratings that allow you to filter and repivot your experience. One of the great things about the hierarchical model and the database model, even though they're totally different, is they complement each other really well.  They do a great job because once you get to that point, they switch it up. So your journey has been hierarchical but once you get to that final view, they go, oh, you think you know what you probably want but I wanna show you something else because I either have a better price or a better product or I'm gonna make more money if you buy something else. So instead of just showing you Sony TVs at the end of that click path, they're gonna show you Sony TVs but in that sidebar, they're also gonna say, would you like to look at Samsung? How about an LG? And they're gonna try to redirect you that way. So that's how you can use these things and pin them to make a really robust experience. Now, the other side of the coin other than a structure is a scheme. So you know, when we go back to the house analogy, at this point, we know roughly the size of the house. We know how many floors are gonna be there. We know if it has a basement. Now it's time to answer the fun questions of how many bedrooms does it have? What about the bathrooms? Is there an open concept kitchen? These are the things that we begin to think about and consider as we build out our schemes. Now, schemes for the technical definition, how you are going to categorize your content and the various ways you'll create relationships between each piece, pretty standard. There are a few different types. There's ambiguous, which is as generic as it gets. They're really subjective, which means they're really, really easy for folks who aren't in the space to design. They're hard for us as IAs to design because all we think about is, what if I call this thing? A random word that I know, but what if you don't know what that word means? And then what if it means something else to you and something else to you? That creates confusion. So for IAs, these are terrible for us, but they're often the primary scheme of a website. When we look at ambiguous schemes, Starbucks is one of my favorite examples. So let's look at their primary navigation. Okay, coffee. Safe to say that we know what's under coffee. Tea, self-explanatory. Menu, all right. What about coffee house? What do y'all think's in that? Locations, what else? Interesting. Okay, events, community. Anything else that you think may be under that coffee house menu? In-store services, okay. Products, music. Oh, y'all are a much more informed audience than normal. So my gut response to coffee house is a store locator. That's what I think would be there. But when you open it up, you get information about Wi-Fi, because naturally that's the first thing you think of. Starbucks mobile, you're already there, so why do you need the app? And then you get into community. Then you get into store design, which really is that the top of what we need to learn on the Starbucks website. And my favorite is how they just give up at this point. They just don't even know what else to talk about. So we get a great generic link. Learn more, more and more about what. About coffee house, because I still don't know what it is. My Starbucks idea, my Starbucks idea is a better menu. Not to be confused with the other menu. Coffee house facts, great is the first one. What is it? Store locator, finally. And then my favorite, looking for something else. Tivana shaken iced tea infusions. It is the junk drawer navigation. It's exactly it. Now I'm sure that there is an IA or a content strategist or a digital manager at Starbucks and this made a hundred percent sense to them. I'm gonna freak and clue what it means. Still don't get it. You can't have enough coffee. Exactly, not enough coffee. There you go. It was already there. I didn't have the political prowess to be able to change it. Yeah, so that's always a favorite example. But y'all knew that one more than most folks. So props to y'all. So that's topic. So topic is ambiguous. It can mean a number of things. It's like when you put about us or contact. You have to slap some kind of a label on there and for the most part, we all know what those mean. But the waters can get muddied. The second type of ambiguous scheme is task. Now we saw this a lot when apps kind of came into power because everything in an app is a task. Create an account, sign in, log out, share, et cetera, et cetera. As the web became more appish, this kind of bled over into the space. Again, Etsy has great IA, so I like to cite them a lot. And in their top right corner, they have a task scheme. They've got Selen, Etsy, Register, login and cart. Now the thing about tasks is you have to be really, really clear with them. There can be no ambiguity here. You can't be funny. You can't be humorous just for humorous sake. You can't get creative. You need to be really explicit with people with what they're about to do. Because the challenging part about a task scheme is you're not just asking somebody to look at a link and decide is that the content I want. There's a little bit of mental buy in there. There's a difference between me saying, I'd like to look at home and living products versus I want to sell on Etsy. There's a tiny bit of commitment there. So it's harder for us mentally to process. And as a result of that, when you're doing something like a task-based scheme, we like to limit it to fourth the most. If you go beyond that, it gets really overwhelming. Now if you've ever been in an app, you expand the menu, just vomit of links. It's overwhelming. For the most part, we can navigate those when those are soft terms like menu, coffee, house, coffee or tea. But when it's sign in, create and count, reset your password, lost your password, can't remember your username, yadda yadda. That's exhausting to us mentally. So limit it to four. And then lastly is audience. This is always a fun one that we see on higher ed websites. This is normally limited to three or four on higher ed, but Virginia Tech takes it a little bit further and I really like it. They've got the standard of prospective students, graduate students, alumni, parents and families, faculty and staff. Their interesting addition is business and industry. So that's, it's an interesting way because when you think about it, if you're looking for content on a website that's specific to a subgroup of people, if I'm, say when I was looking for my graduate degree, I was looking for clearly prospective student information. That's the keyword that I'm gonna look for. Now I know if I don't see prospective students, I can look for something like current students. I can look for something like alumni because it's safe to say that those are always bundled together. So again, try not to muddy an audience with a task, with a topic. Try to keep really clear lines because that helps folks learn how to find your content on your website better. Now on the opposite end of the spectrum, we had ambiguous schemes which are generic. They're hard to design from an IA perspective. Then we have exact schemes. I love these because they're objective. There's no room for error. Well, there's a lot of room for error depending on who's implementing it. But in theory, there's no room for error. Developers love these because they're logical. I love to code them because they make sense. It's not a manual selection. It's sortable. I like that. These are ideal for supporting navigation. So if we think back to the Starbucks example, if we went under the coffee menu, it's safe to assume that they're either going to display all of their coffee products or product categories related to coffee. In either scenario, I can bet that that list is gonna be alphabetized because we're all looking for something specific as we browse through. If I'm looking for the details on the new blonde roast, I'm gonna be looking for bees. That's just the way that we're trained to think because we like to get more narrow as we navigate a product. So some of the examples on how you can implement an exact scheme are alphanumeric, chronological, and geological. Now back to the coffee and tea example, there's this website, Steepster, that sells tea, I bought from it a few times. Their tea organization is interesting. You can sort it alphabetically by tea name, by company, you can sort it by popularity, what's trending, what's new, all these great different things. But when you look at popularity, sorry, when you look at the highest rated, it gets interesting. So how would y'all looking at just that top row presume that these teas are being sorted? What quantified popularity for me? Or highest rated? So out of 100. So we're going off of the numbers in the green boxes. Okay. I think that's a safe first dimension. Now let's look at the groups within each number that are in the green boxes. So let's look at the 91s and the 90s. How are they organized after that? There you go. So that would be my assumption, is it tasting notes are the way that it would go? So when we look at the 91s, the first one has 90 tasting notes and the next one has nine. Great, that supports our hypothesis. When you get to the 90s, the first one has 18 tasting notes and the second one has 20. So who knows how these are organized? As an IA, that's a small detail that I pay attention to though. And I immediately distrust how they're ranking these teas. So from a developer standpoint though, when I have to implement something like this, I have to be really careful not to be lazy.  Great, spit it out, move on. But what does it mean? If it's not consistent, what does it mean? Chronological is the next exact scheme. We see these every day on news sites and on blogs. There's nothing fantastic or revolutionary to share with you about these. Just be consistent when you order things by date. If you're gonna group them by weeks, group them by weeks, you're gonna group them by years, do it by years. Just keep a consistent path. And the last one is geographical. This is really interesting with the rise of e-commerce. The reason I chose Wegmans as an example is the closest Wegmans to me is an hour and a half away. So I searched for one and I got the entire Eastern Seaboard. I like Wegmans, not going to Ohio for it, not going to Georgia for it, not happening. So you have to be really careful with geographical because while that's great and it shows me what's closest to me, you have to have some kind of a scope on it or some kind of guardrail because again, when it just spits out everything at you, it becomes meaningless. It's just white noise at that point. Yeah, exactly. We're on a road trip to Wegmans. We have in our area where we are, we have a local dairy that's kind of going east coast. They're from New York to lower Georgia right now. We're just kind of cool to see but they also have a locator on their website. So this was an issue that we ran into because how do you balance the spread of what stores show where their products are when you've got such a large area to cover? There are a couple of different ways that you can approach it when you're dealing with a geographical scheme. The easiest and my preference, ask the user what the distance is. It's an easy solution. How far do you wanna search? This can be distance. You can have a dropdown for states if they're interested. If you're at the state level, if it's not quite all over, you know, you can do regional. So that's number one. But then the other one, again going back to the reality of IA's is knowing the politics of business because they sell to many different competing grocery stores. So our big grocery store in our area is Kroger, for example. We couldn't have their product locator just show Kroger results because just outside of the Kroger area is Kroger's competition. So we had to actually expand and kind of go beyond the traditional like 10 results per page. So we could actually show a mix of retailers within their results because that was gonna be a business issue for them.  Now search, I mentioned this earlier, you know, when folks search a site, now I don't specifically mean when they type something into the search bar, but rather when they're actually looking for something. So there are four main different types of search that you need to consider when you're talking about IA on a project. You've got known item searching, which is also known as focalized searching. So when I know I want a black shirt, this is how I'm gonna go find that. There's a really interesting concept in psychology called the scent of information. And they actually call us inform of oars, which I kind of enjoy now. But it talks about how cognitively we hunt for information online just like we would forage for food. We kind of like sniff out little nuggets of information to lead us to where we want to be. It's really interesting, way too deep for this talk, but definitely look it up. It really, really fun to read about. Then you have exploratory searching. You know, when you go back to the shirt example, that's at a higher level. It's no longer I want a black shirt. I want a shirt. I don't know. I don't know what shirt I want. You just know I need one. Then you have exhaustive searching. I want to see everything. I want to see every shirt that you sell. I have no quantifiers at this point, not color, not size, not brand, not anything. And then you have the refinders. They were the folks at Bookmark. One of the folks on our team refuses to buy a shirt unless it's on clearance. His Bookmark list for shirts that he wants to buy is impressive, at least.  Just like, you are skewing their Google analytics so much. You are hitting their website for like two seconds and bouncing, stop it. Or actually do it more and then we can sell them our services, but then stop it. And then you have labeling. Again, when we talked about like ambiguous schemes, this is where you can really get into muddy waters because what means something to one person may mean something else to someone different. You have to have empathy for your users. Again, because there may be a misunderstanding there.  Still gonna hold on to Coffee House for quite a while as my example of like, hmm, not the best label. When you look at labels, you have things like contextual lengths, heading, navigation system choices, index terms, iconographic lengths.   I'll just say that upfront. I don't like it visually, but structurally from an IA standpoint, Chase does a really good job in their footer with their products index. They talk about very clearly with an introductory heading, what it is that they offer in this section. They offer you icons with a heading that goes with them so you can begin to learn the visual system. There was a talk earlier today about accessibility. Icons are one of the biggest pains in the butts that we run into when it comes to accessibility, because you have to make sure that there's alt text. You have to make sure that there's a certain naming convention behind it. If you're using something like an SVG, it's more code based in nature. But one of the ways that Chase gets around it is within their actual code structure, they're linking together that image with the descriptor that's right below it. So when something like a screen reader comes through and they see the icon for checking account, they know those are connected. So that's a really nice, again, not the best visual example, but a really nice example of how folks can use labels in a different combination of ways to really express something clearly. So we talked a lot about how we got here, what do we do? Most importantly, what do you do when you get stuck? There's a lot in IA, so how do you move forward? When you do have to deal with just not knowing what the next step is. There's really two big methods in IA. If you're stuck initially when you're trying to generate an architecture, or if you've got an architecture and you're not sure if it's very good, AKA when you go from 17 levels to five. So the first one that we're gonna look at is when you need to generate something to move forward. It's called a card sort. You can do this digitally, you can do this with index cards and go analog. Done it both ways, works fine. This is when you have no idea what your structure is. You have all your content, you have a list of your pages or assets or whatever they need to be. But you have no idea how to organize them and that's okay, because at the end of the day it's the users who need to tell you how to organize this information. There's a great article that goes into the deep, deep details of card sorting at usabilitygeek.com that y'all should definitely check out. But I wanna show you three different types of card sorting today. Open, closed, and a hybrid approach. This is screenshots in this section are from a platform called Optimal Workshop. It's what I use, there are a lot out there. Look around for ones that you may be interested in price-wise or functionality-wise. But by no means an exhaustive moment for the software. But this is what an open card sort looks like. You've got all of your content and resources over here in the left column. This was from actually a crawl of WordCamp DC's website. And what you do is you ask somebody to organize things into buckets, but not just organize them, but also label them, which is the really important part of the open sort. So not only do you get a structure out of it, but you start to work on labeling so you can avoid the ambiguity of, ooh, what's the song called? Now, if you're working with somebody, say that big corporation, who's a little bit more stringent on what things are called, you can do a closed sort instead, which is where you define the bucket yourself upfront and you go ahead and label them, and then you ask folks to put all the content into those buckets. And then lastly, you can do a hybrid approach to where you can define some buckets, but still leave it open to interpretation if somebody's not quite sure where something might fit. This is my favorite approach because it allows your end client or the person that you're working with to have some sense of control, but also allows the users to be expressive to say, ooh, what I think goes in that bucket doesn't match up with what the client thinks, which is the great part of IA because it's not about what I think, it's about what your customers think. So it's a lot harder to fight with me about that. So at the end of a card sort, if you're doing it digitally, you get something like this. If you're doing it analog, when you have card A and card B kind of in the same bucket, you give them a point in this matrix. And what you end up with is what we call an affinity scale. So this example was, it was for a generic, like for a sure website, but the one that's in the top left ended up with a rank of 92. And that was the combination of a contact phone number and an email address to get help. Again, it's not rocket science. I think we would all assume that those two types of information would get together, but it sure is nice to have that data when somebody wants to fight with you later on about it. And then the flip side of that is tree testing. So if you already have a structure in place and you need to figure out, can people actually use this? You can do a tree test. So this is the reverse of a card sort that's focused on findability within a structure. You use task-based scenarios for these. So remember when we go back to the context of a user, a user has a goal, I wanna buy a shirt, but then a user has a task, I wanna find a black shirt. So in this example, you've already bought your ticket, but aren't sure where to stay. What's your next step? It presents the entire structure that you've already created and it asks users to go through and find what page or what module they think they're gonna find the content they need. When you get through with a tree test, you can get really fancy graphics like this, which are cool to look at, not that useful and really hard to explain. Exactly. So the more simplistic view is something like this. So if somebody is looking for where to stay on that task, we can look and we can go, okay, 43% of people overall succeeded with that task. That's all right. But of those 43, an overwhelming majority of those, 29 as opposed to 17, found it on the first try. They didn't have to backtrack. So that's really interesting. And of the people who failed, well, they failed hard. The people who went directly to where they thought the content would be is almost four times the number of people who guessed around within that structure to figure out where they wanted to go. So this is a quick, easy way just to be able to say, yes, the structure that I've come up with works, or no, there's a big gap here that we need to fill. Now, I've thrown a lot at you today. So I've got it, it was a TLDR, but one of the folks that I worked with suggested since this is how to win an information architecture, I changed it to TLDW instead. So here to summarize is information architecture is the art and science of shaping information products and experiences to support usability and findability. Products are built on structures that can be hierarchical, polyhierarchical, flat, or a combination. Just don't use one inside of the other. Content inside of the structure can be organized via schemes that are ambiguous or exact. When you use one, try to use the other one to complement it. So go from generic to more specific. And when in doubt, test. Card sorting helps you define the structure itself while tree testing evaluates its navigability. Now, all that being said, and I know it's the end of the day, so I hesitate to ask this question, but are there any questions? Three in the front row already, one in the third. All right, start. So three slides back, I think it was? Uh-huh. There. Oh, it depends, I hate to say that, but it depends. I personally, I like to see a success rate of at least 75% on a task to really consider it successful. You can go the 66 route just to say, oh yeah, the majority of folks did it, but I like a strong commitment there. There's always room for improvement. And if you get something like a hundred, look at your task, because it's probably not right if it's that easy. To go with that, the fails. You sure? So what if you have a task that fails? So the thing that makes me think of, say you have a task overall that's really successful, but your failures maybe has a high rate of direct failure, but a low rate of indirect failure. That tells me that what you need is something more polyhierarchical to where content lives in one spot, but it's linked to from another spot. Whereas if you have still a high success rate, but a high indirect failure rate, people clearly cannot find what they're looking for. So that's something where you either need to reevaluate the task or the content itself. Where I'm going and then it's wrong. Correct. If it was a hundred percent success, but there's something wrong in the test. I think so. What do you normally see as far as, if it's higher than 95%, it's probably wrong? 90's normally that threshold for me. Anything that is grossly low, so 10 and below 90 and up, I try to throw out because they're just outliers within the overall kind of answer set. And I don't want those to skew how this goes. And I also never want to give the expectation that what we have done and what is perfect. Both selfishly from a business perspective because I want to resell them later, but also it's just not real. Interesting.  And you're sharing it with potential users or you're selling it to them. So how do you get that from when you just have a group of people that you work with on a normal basis? Absolutely. So there are a couple of different ways you can go about it. If you're on low budget, Facebook should friend. Get the links and send it out to everybody you know and include some qualifiers in there like age, income, gender, other things that you might want to be able to filter on to get a more realistic sample within the larger population. If you've got a little bit more funding behind you and you're on a platform like Optimal Workshop, they have users that are pre-vetted that you can order for a couple of bucks per test. So that's pretty reasonable. Or if you've got a lot of money and you really, really, really need to match a customer demographic, you can go to a research house and actually buy a list that matches something specifically. So you always use custom post types? Oh gosh, well for the custom post types versus categorization, I look at post types as, say we're working on a legal website and we've got buckets like services, industries and people. At the end of the day, I know that each of those entities are gonna want their own respective pages on the website. And I find that really hard to manage through something like a taxonomy. So I actually will create post types and then use those, this is gonna get really advanced for a second so I apologize. And I actually use the post types as like kind of a faux taxonomy. So when I'm on an entry for a person for example, I have a list of all of my services from the post types and I have a list of all of my industries from the post types. So I can really quickly say, John Doe works in industrial and he also does audits just really quickly. The other thing that I like about that is I find optimizing custom post types for search much, much easier than optimizing taxonomy terms. Any other questions? Yes, about scheming and schemes. Yes. The most common thing that you see is like, how medical except what you've got featured stuff up there that we wanna provide at you first. And that seems to be the most common, more common thing in this story. I would consider that one, gosh, where you got something that's like a sticky or a featured. I'd say overall that's still gonna be an exact because it's 99% of the content on that page is gonna be ordered by something other than that one. So I wouldn't let that one dictate the rest. Oops. There we go. To me it makes more sense to everybody if the front end navigation matches that backend abstract, the abstract hierarchy when the page starts will be possible just so that when I'm editing the backend it doesn't look different usually from the front end. But I guess, can you talk about that a little? I mean, is it important to have the abstract, I mean it's such an abstract concept and in some ways you don't have to have any of it at all. You don't, it should look like given you can have it. Absolutely. So if you'd asked me this question a couple of years ago I would have said navigation and structure are one of the same and they should marry each other exactly. I've learned over time that that can be incredibly tedious to do and it's not something that we talk to our clients about anymore. We actually specifically say that the structure of your website is not the navigation because not always are those top level items something that you want folks to be able to go to. You know, if we go back to like the legal services website as an example I don't necessarily need a page that shows every industry that that firm works on. If I can do that with a menu instead. So structurally those pages are much higher in the overall hierarchy, which is great for search. But we're not cluttering anything up with a generic page that ultimately is just links to deeper content. So that's kind of how we approach that. So it's not always a one to one. Mm-hmm. The structure of your website. Exactly. Mm-hmm. Yep. Exactly. Mm-hmm. The university is in there. Mm-hmm. The parents might also want to do as well. So you've got a single piece of structure that's used in the website that you're going to do. Yeah, exactly. Yeah, then you don't have to worry about canonicalization, which is very nice. That's a great point. Mm-hmm. Anybody else? I know it's the end of the long day. All right, the last thing, I promised. So sorry to everybody who left. Give away. Who can be the first person to tell me what is something you're going to do as a result of what you've learned today? You, sir, get what is considered to be the good book of information architecture that has a lot of great insights in there and is a good read. Mm-hmm. It's the polar bear book. Well, y'all, if nobody else has any other questions, I've enjoyed y'all today. If you want to copy of the slides, I'm sure they'll be on the WordCamp site, but they're also at Firefly site, at firefly.agency.wc. Raleigh, so thanks. IA standpoint.


news update everyone basal job in here on this 14th day Friday January we're looking at the Dow having gone quite a bit lower still low it's done 200 points at 35,900 we're looking at that patent then I call the dreaded ace the lower case H but this is very selective look the Dow is down about point five percent the S&P had a very sharp pullback in the E minis and now it's just down three point seven four at forty six fifty four also making that pattern that I call the dreaded H and what are we looking at in terms of support for the Dow certainly a break below the thirty five thousand eight thirty area would be quite quite important to monitor because that was suggested early next week we could start to go even lower how we rebound today by the close is going to be really important so the S&P now it's down eight I had that early sell-off early rally most importantly you want to see the low of the day 46-23 that has to hold no matter what I think it will today but we're looking at early next week QQQ in New York's 100 coming back from earlier on went down to 374-86 trading at 378-83 right now has that same pattern low lows lower highs arching over fails at that first peak peak ace done that numerous times since the the top was made November the 22nd kind of monitors are really carefully to go with that you've got the SMH's semiconductors in a range I'm going to talk about that in my show the Tiger traditions our number of people asked me would I look at various things in the semiconductors very important index for us so we'll be looking at that is up 2.8 303.37 let's go to the IWM the Russell 2000 again failing failing failing down 97 and 230.06 it's in the low range of the rectangle I'm going to talk about that in my show coming up you've got gold gold is down ups now it's up is up a dollar point four at 1822 holding really well now this is the test for gold early next week we start to see gold trading in the 1835 or higher area that's going to be significant because the dollar the dollar is struggling down here at the 94.97 level and crude oil had a really nice rally it is up sharp is up 86 cents at 82.98 I'll be back in a moment for the type versions how I have one for weekend and certainly


Hello, thank you for joining me. I'm at Sturrell or Metro station on the Oslo Metro. In today's video We're going to go to a technical museum. So I've come here on the Metro You see there's a main line beside there and there's a tram So there's a tram running along there on the other side of this road and then there's another tram route I think it's 11 and 12. I need to go to the end of 11 and 12 That's where a technical museum is this station the lines above ground and then in front of us there It goes underground reminds me of it Drayton Park station on the line out of Morgate the first station above ground and kind of hoping The train would go past on the mainland, but I just realized the closest track to me is Actually just deciding so it's like a single-track main line. So I Don't know how long it's gonna be till the train comes. I'm probably not gonna wait for train I'm gonna find my way out of the station to where the trams are and we've got to do a tram bash Which will be pick some new track for me or this was a new track as well But a new bit of tram line for me to find this technical museum I've been to a few technical museums lately in transport museums went to some in Germany also visited the Ulster Transport Museum in Northern Ireland recently Brutalist looking station right now. So we're gonna go up these steps Well, Brutalist and metallic station find a way out of here and that's where we'll find the trams to get us to the technical museum so the Right, yeah There's all sorts of that must take you under the road go out there now Which side am I gonna be? I'm probably be this side of the tram. So go out this entrance here There's a weird station. No ticket barriers as I may have seen some of my other videos Well, look there goes a tram down there number 128 one of the duvak trams some high-rise Tower blocks behind me That's the tram stop. So I need to cross the road to the tram stop and Catch my my tram just just over there behind that van. We are I have arrived at the last stop I'm not gonna try and pronounce it. I'm not exactly sure how it's spelt Here's the stop and then tram. You just see it just there. There's a loop and They terminate on a loop so you get off here and then it looks like you get back on again Yes, that's the next tram and It's already another tram, but the penultimate stops only just up there. There's a tram coming in now So it's one of those it's quite a busy loop. There's also a middle track So that has one as one goes the one I was on will go to there Yes, there's people on it, and then the next one's already arriving. So it's all quite busy These are built by Duvak. These are currently the oldest trams in service. I wanted to film inside the tram But it was quite busy You can see quite nice machete on the seats They only have a driver at one end and you can although the other one I was on you could sit at the back This one hasn't got seats. So this one's slightly different. Anyway, I'm gonna go across the road There's another one coming. The next one coming is one of the Althandrobero trams like the ones were very similar to what we used to have in Birmingham So that's going to go around the loop to there the one I've just been on is going to appear Somewhere near here is the railway line the same railway we saw beside the station at Sturrell and then from there That line also comes up here. So we've come up a bit of a hill But if you look that way, I don't know how obvious it's on camera, but we've now come down a bit the hill Bit foggy and misty. I'm not up as high as I was if you saw my other video when I went to the end of one Of the metro lines. I'm not quite so high up. It's much more residential. That really was just purely in forests Anyway, I'm going to look there comes the Althandrobero tram So they're very similar to the middle of Metro trams original batch. Most of them have been scrapped I think one or two still survived, but they've got an extra carriage They've got an extra carriage in the middle. So that's pulling in now I'm gonna have to go find this technical museum now because that was the reason I came here I'm just now getting a bit fascinated by the end of the tram room Just come down the hill from there and I'm coming down to the railway station Don't know how long it will be until a train comes along. I can't see the technical museum Which we've come to the end of the tram line to visit My soul traditional railway architecture There you go You just see the museum is that building in front of us all that they do this where they use an old phone box Well, it looks like still a function phone box. There's like a miniature library. Anyway, here we are Here's the railway stations. I'm kicking off this railway station visiting. I've also got to work out how to cross the track Very nice Snowy wintery railway station and look at that You know, I subtracted station building and that's the museum I've just got to go and find my way under the railways. Let's go and visit this museum Well, here we are. We've just come into the museum and straight away if we find this at your home, it's quite exciting to see that going around That's pretty big to see a few interesting things as we look around the museum there is at least One steam locomotive here. That's kind of how I knew about the museum How I discovered it and made me think right. I want to come and visit at least to tick off that steam locomotive But I'm sure it will be an interesting museum My cold day like it's today. It's quite nice to just get inside for a bit. It's what we'll do We'll walk around the museum. I won't show you everything, but I'll show you some of what I think are the more interesting parts of the museum some more interesting exhibits Quite a large museum. So sort of place, you know, I probably could have done with a bit more time here, but anyway That's the only industrial and architectural model possibly of an industrial site somewhere Various exhibits around. Have a look at that. Lots of machinery. This seems to be the machinery hall Everywhere there's different types of machinery There you've got some Some logging machinery, but look at this A nice big model railway. What happens if I press this? Looks like I might I didn't even have to press it and I've done something I think I must have set off a sensor That sounds promising. Oh look, the steam locomotive The lights just came on and It's just pulling out the station What I'll do. It looks like quite an exciting layout We'll watch it go over the bridge now, and then I'll I'll come back and do another video without me talking just purely on the steam engine. Let's just watch it cross I think here it comes So I always enjoy seeing a big model railway like this. So yeah, we'll do a few more. Thank you Have a look at things on screen now. You can see the model railway in action Now let's have a look see what else we can see There's various sort of lifts and things and stairs Going off in all sorts of directions. You're sort of not really sure where to go They did give me a map of the museum So I suppose I could have used that So there's a helicopter And uh, but above me there appears to be an aeroplane I think that's the transportation gallery. We'll get up. Yeah, there is a few airdrop So we'll get up there and have a look at that More machinery More machinery This is nice. It's like a workshop with lathes and milling machines inside That's quite good to see So it's it's like so technical museum technology Explains about bits of everything Um, we've got the impression there's air cross here. Well, look at this a whole room of milling machines and And lathes. I like seeing all these belts. It's great to see that's like, um, you don't get that in the UK now Okay, I think now we've come into like a hospital gallery Maybe it's all seems to be Everything to do with hospitals So it's uh, this isn't really my area, but no doubt interesting Yeah, that's clearly That's obviously an operating theatre. I think that's probably an ambulance So let's go and have a look around See what else we can find. Yes, it is. What's there about there being? It's like a random scroll staircase here going down. So let's just go down and see where this goes Let's see a fascinating place I always enjoy museums because you just never quite know what you're gonna find And especially when you go to other countries, you know, it's part of the fun because um Oh, is that a whole mirror? It's a weird mirror. Oh, okay I just walked into human body and now that this is going to show me Yeah, all a bit odd Okay, I think Am I going into The human I think this is a human heart. I'm walking through Yeah, this is the What I think it's supposed to be like inside a human heart. So okay, this is really bizarre This was not what I expected. So I was going to go look for a steam engine here. I'm walking through a human heart. This is That was weird. Okay. So I now know what it's like inside my heart Um, yeah, all really everyone's heart Another random mirror there Weird. Anyway, um, so As you can see, it's not it's a museum of all sorts of different things. Um A lot of the information some of it is in English, but no, um, it's all in Norwegian. So not too sure somewhere Okay, that's clearly a giant ear and various other Baby in a womb. Um You're not really my kind of subject here But yeah person's body And that's with all the organs coming out. I think I need to Get back to my kind of thing What have we got here? Oh, wow. Okay. So we're like in a great big room now Um of Of yeah, just all sorts It's a bit like how I remember the science museum to be when I was little. Look, there's the workings of a giant clock there If I need to go to the science museum when I was little they used to have a thing called the launch pad I don't know. I've still got it, but It reminds me a bit of that. I think what I'm going to do though is set myself upstairs and upstairs again And we should hopefully see the transport gallery. That's the main reason I came to visit this museum Today, so where are we now? Oh, I see that's that big model rally, isn't it? I think yeah, I'm at the other end of that model rally See So if I go I don't know what's come around the corner in this next museum. Well, okay, what for this rather red corridor Okay, I think I'm like walking through the giant heart of a person um Let's go upstairs. This this looks more my kind of style of things This must be the transport gallery saying that because it appears to be an aeroplane directly above me this is a bit of a It's a cool museum, but just a bit. I wasn't expecting that. I suppose I just expected technical And yes, I've got all the technicals of human body, but now That's like an automated bus. I think and then as I said There's an aeroplane Ah, this is what well, I'll show you one side first. You've got a few cars here. So I'm feeling more at home now the Volvo It's a police car and it's I don't think I've got to pull over and Ford tunas Ford Cortina That's some bluebird Mercedes and the beetle and then on this side is what I came to see Steam loco. It's one of these ones that's had It's been cut inside so you can see how it worked So that's the tank there. There's the boiler and we should actually be able to see inside the can So yeah, that's where the fire would go Just in there. So I don't think this one's ever going to run again I haven't even got a number of it. I have to take it off in my preserve locomotive, but at least we can see it Oh, this is a ship. How is it? Professor Yeah, I've just set A vision of a ship going And then I think oh, yeah, this is the side of a ship Oh, I see. Yeah. Look that is the engine steam engine of a paddle steamer.  Look there's a tractor engine Or a steamer or rather looks like a UK one If it was built in the UK So we can see if it Oh, look at Aving and Porter, Rochester and Kent. That's funny because we went to this technical museum at Sintzheim in Germany We found the Aving and Porter steam roller built by Rochester and Kent So it's quite funny that everywhere I go there seems to be fine on them Let's have a look over here We can go up It's recreated like a little railway stationery and that's where we can see the other side of the steam engine It's not cut into. There's also a tram. I'll look at that in a moment So here we are. Here's the steam engine Here's the steam engine. It's got number 44 on the funnel. So I can probably tick that off as 44 by really see a works number. So hopefully it will still have its work to play Um, let's have a look. Oh, yeah Built in 1923 to it's not clear to see if it's so dark in here. So it works number three two two So yeah, okay, and then there's Carriage here or part of the carriage It's down here And then there's recreated like the interior of a railway carriage. You can sit in here and um, there's a screen showing things So let's have a look and see what else we can find So it's nice to see a steam engine even if it isn't one that's going to run again And then there we have a tram An electric tram. You'll see more Of Oslo's trams. Look at Lincoln's screen now Maybe I'll see why I went to the tram. The tram museum in Oslo Quite good. I saw lots of trams a bit like this. What's quite interesting if you look here. So you got the tram quite clearly Recreated a bit tram line. Oh, and then typically no, I say they stopped they were projecting The drivers I view on so you can see where you're going. But anyway, let's stop now. Let's start again Well, let's just have a look around. Um, I think I'll show you most things I want to show you now. We'll go around to where the aircraft though. We'll have a look at the aircraft And then just see what else we can find. We're coming to the motorbikes Galleries, lots of motorbikes vintage cars And as I said, there is that that large aeroplane. So we're coming down to that end of the gallery. So We should be able to See that here It's getting foggier outside um, yeah, look this is Here's that rather It's really not that big aeroplane. Actually it just feels big in this This room It's although, you know, you need a good couple of hours here It's not as big as the museums I visited in Germany at Speyer and since I'm those ones you really didn't need a whole day I'm glad I didn't need a whole day here because Until I got here in Oslo Simply wouldn't have time To do that many things Ah, now you I've heard about this gallery I think what they do is lots of different Exhibits and what they do a personalized trail for you So if you have a look See you put you get like this stick and you put it in there And it tells you about it. So I think what you do you you get um try and find them I won't do it on camera, but I'll show you what I'm talking about basically you get yourself a stick and it takes you You answer a few questions and then It creates a trail and shows you takes you to the these exhibits The ones that think you'll be most interested in so effectively get a personalized trail of this Of this big gallery. So that's quite a good idea We go through here and we'll be looking down where we saw the steam engine. So there you are look British steam in the form of avalanche and porter and then Norwegian steam. Oh, that that's the thing What's going on here that there's a It's like a little ball rolling around in there and I think it's making a pattern as it goes anyway It's what happens is if you go into this room here this Thing here. This is not the top of a nuclear reactor. That's what it looks like. What you do you pick up one of these you go to one of any one of those screens there you answer a few questions and then it Creates a personalized trail for you. That's quite a nice idea. So you really just get to see what you're most interested in But yeah, this does look like the top of a pressurized water reactor So I think I pretty much Um, show you think sorry. I just dropped my plan Everything that I'm I'll be now interested in There's one more thing I want to show you just down here So what so that pretty much brings me to the Ends of the video. So I hope you have enjoyed it, but we're not quite done There is one more thing. There is also a gallery on the ground floor, but again, it's more stuff I'm not too interested in or know too much about so Yeah, look, we're at the top of that water wheel So you see how big it is As the water flows on that leap and drops into there Talking about railways There is one more massive model railway Unfortunately, it's not going so it does look really I'd love to see this go I think they do run it sometimes but it's not running today so From the technical museum in Oslo. I hope you enjoyed this video. Please do feel free to like subscribe and comment. Goodbye


Welcome to today's edition of frightfully forgotten and we are kicking off the Halloween season with one of three Halloween specials But to start things off. What are we drinking today? Well, perfect beer for the time portafoy's Paranoid porter. Yeah, portafoy. Back Jeremy back Today we're gonna bring to you top 10 horror movie masks You may be thinking that we're gonna add in the obvious, right? Michael Myers the Jason hockey mask Leather face, but no we're gonna leave all of those out because everybody knows how influential the movies are the masks are And we wanted to challenge ourselves a bit because we added those in behalf the list The big three right the silver shamrock masks from Halloween 3 the reason this tops the list Yeah, this masks are a little scary to look at but it's more the fact that the masks themselves Kill yeah, it's what they do. Yeah, it's not how they look necessarily The funny thing is is that they're for kids. They're right there for little kids Which is like that's I think the most frightening thing about these masks Number two on our list the tourist trap mask Now this one is pretty scary actually and there's a couple and yeah But they all have the same kind of look to them though. Yeah with the moving jaw Yeah, but the mask is actually molds of people's faces Which I think adds that extra level with the voice behind the mask is very creepy Soon you'll stop breathing Basically the whole movie is unsettling and the mask just kind of puts it over the edge Mask number three on our list is actually from a couple of movies It is the hag mask Which is in 1978 the comeback which we covered. Mm-hmm. It's also a very similar mask in the movie curtains Yeah, and there's also a variant of that mask, which is the male version the old man mask in terror train They're all very similar and we didn't think that they deserved separate spots on the list, right? So we kind of lumped him in the one as the old person When trick-or-treating is me and Mitchell yeah with that old man mask and my grandma was flipping through pictures once and she's like What's wrong with my face that pictures like that's that's a mask grandma. That's not you And our number four slot here. Mr. Decker's mask in night breed This was pretty we kind of struggled with this one between this and the collector, right? They're both different, but they're also both similar very similar. Yeah, they both hide kind of have like this stretched Sort of facial look to the mouth. Yeah But mr. Decker's has you know, he's got the buttons for eyes and almost like a zipper mouth Kind of which is kind of the cherry on the cake, right? Yeah Number five on our list is the Frankenstein mask from the fun I'm a huge fan of this mask and I think it's super scary I think the movie would have been just as good if there was no reveal, right? And he just wore that mask throughout the whole movie.  So it's like, okay. Well, what's how come he's hiding his face and his hands, right?  What is he? Knowing that these are carnies, right?  I think that is creepy. Yeah, it's pretty cool Not just the mask the whole figure Yeah, you see him like from head to toe in that outfit and then he's got the pickaxe that he's carrying too He was like oh man that whole site is like pretty unnerving.  It's nothing like any other Phantom mask That's right And then you couple it with his silver teeth, right? Yeah, and his voice box thing on top of it And it kind of completes the whole thing the black lipstick, right? Yeah, and like the black eyeshadow around to and it actually is pretty creepy Yeah knowing the foot like once you watch the movie knowing the full story. Yeah, it still gives you the shivers Yeah, it does Brings us to number eight on our list and this one is Alice sweet Alice the mask looks kind of innocent. Yeah, but what's going on sort of isn't right Right, it's like a lot of evil doing is happening, right? Because it's a kind of a lady mask with the blush and the makeup on and Alice is like coming of age Going through puberty. She's becoming a woman what's behind the woman face and what's really there It's layered again, right?     There's no definition for the mouth.  It's like a double whammy. Yeah a Few honorable mentions number one for an honorable mention for us has to be the Tommy Jarvis Collection all those masks in this room exactly the ones he created himself. Yeah They're just awesome. Yeah, they're just isn't anything else to really say about it.  I'll tell you that right now exactly in a kid of like how old is he in the fourth one, right?   We both think that baghead Jason is actually scarier than hockey mask Jason I've never been frightened or kind of disturbed by the hockey mask thing. Yeah, neither one baghead Jason with the one eye Peering out. Yeah, it's just so creepy and a lot of people like to compare that to of course the town that dreaded sundown Mask said we weren't gonna mention the Michael Myers masks, but there are two masks We're gonna mention from the Halloween Series, of course, there is the mask that Jamie and Michael wear and that mask is actually kind of creepy Yeah, especially once there's blood splattered on it and they're standing there just holding that the big night Yeah, that's pretty creepy. The other one is that weird kind of like Grumpy old man type weird mask Halloween 5 right when he's sitting in the car is all Yeah, he's all angry. It's like the first time in any of those movies where Michael wears a different mask So that's our top 10 Horror movie masks that aren't the big slasher's the underrated horror movie masks Yeah, I'm sure you guys have your own opinion and Feel free to share it with us in the comments what your favorite horror movie masks are till next time Keep drinking See you next week. We're Halloween special number two


Oh, you've got me on my knees. Yeah, I'm beggin' me to kneel. F11 Pro. Brilliant portrait in low light. OPPO.


Deep below the surface of the cloud, there is a hidden world. One where applications run without fear of vendor longing. Roam freely. Logregators lurk. And Diego Moon Supreme. This is the journey to the center of the cloud foundry. Be yourself as Ed King and Alex Lay. Take you to the deepest, darkest corner. So yeah, thank you very much for joining us this morning. So my name is Alex Lay. I'm a product manager for Pivotal in London. I'm going to be one of the guides on your journey. And I'm Ed King. I work on the garden team also in London. So just to set expectations, that was our entire production budget for this talk completely gone.  So this all started when we found this map. We're in the National History Museum in London. And we were just going through some old books. And it turned out we found a map that takes you right around the cloud foundry, going through the center of the cloud foundry. So you can see that we're going to be starting up in the top left at the CLI beach. And then we're going to be going past the UAA through the cloud controller across the CC bridge. We're going to check out Diego Island. Here there's a nice garden there. We're going to check also look at the router, the logator and the blob store. That will take us right back to the beach. So to start off our journey, we're going to be using the CLI. So what is the CLI? The command line interface. So this is the primary way that you interact with cloud foundry. And so it has the commands for both users and operators. And we're going to use this to guide our journey. And so you can see here that the CLI has a plugin interface as well. So you can extend the CLI with plugins. There's quite a good marketplace for these with community and cloud foundry repositories. So what do we first need to do on our journey? We first need to log in and authenticate with the system. And so you're going to see a lot of this from our talk. We're jumping up to the CLI to see what the user would be seeing as we're going through our journey. And so you can see here that we need to target our selected platform. And here we're just going to Pivotal's public cloud foundry. And then you need to authenticate. So there's two ways that you can do this, the username and password as usual, or you can use SSO. So we do this through a component called the user authentication, user account authentication service. And so this is the primary authentication system you'll see used across most cloud foundries. And the CLI receives the UA information from a component called the cloud controller, which we're going to take a look at next. And this performs kind of an OAuth dance. And so it's based on OAuth 2. And it came back on to LDAP, SCIM and OpenID. And this is actually built as a Spring MVC scalable web app. It's one of the only Java components left in Cloud Foundry at the moment. Quite rare. So let's just take a look at this workflow. It's quite straightforward. So we'll send a login request from the CLI to the cloud controller. We get back the UAA details of where to authenticate against. Then we can send an authorization request to the UAA. And we get back an access token. Right. So now we're authenticated. We really need an application. So we're going to be using a Spring music example app. And so you can see here it's a groovy application. We specify a manifest. It's pretty straightforward. And so we're going to be using this to guide us through our journey. So let's take a look. We want to have a manifest to describe what the application needs to look like when it's running in Cloud Foundry. So you can see we give it a name. We give it how much memory we need. And we also specify how many instances we want running. So in this case, we're saying we want three instances of our app running. And we're using this feature as well to have a random route so that we avoid collisions. Because we need a way to access our application. And so this is going to allow Cloud Foundry to find a unique name to run our app has. So now we need to get ready to push this into Cloud Foundry. So I guess everyone here must have run CF push, right? Yeah. Good. OK. So you're very familiar with this command. And so what we're going to be doing is when we run CF push, it creates a record in the Cloud Controller database. And the Cloud Controller will then keep track of your application and record the desired state. So let's take a look back at the map. So you can see we've gone through, got past the UAA. We're onto Cloud Controller, which is on Cappy Land. And so let's take a look at a bit more detail about the Cloud Controller. Cloud Controller. So this component is the core entry point. And it provides a set of RESTful APIs. These APIs are used by app developers and operators. And it's really a huge amount of endpoints. You can see that it's going under a big rewrite at the moment, going to a v3 API. The Cloud Controller also interfaces with your external services. And it uses a broker API specification to do this. So, right, next we need to get a way to access the application. So we need a route. So you can see here that Cloud Foundries Generators are nicely named random route. And so how does your application then get messages to it? So we use a Routing Release. This Routing Release contains a collection of components. You can see here we've got a Go Router and a TCP Router. So this supports HTTP and TCP Routing. And you can see on the right hand side we've got the route emitters. And these will be sending information to the routers to make them aware of your application. Go Router. Okay, so this component uses its... It offers HTTP routine for Cloud Foundry effectively. And it uses a component that you can see in the middle called NATs to advertise its availability. And so consumers have to put messages onto NATs to register with the Go Router periodically. Otherwise, the Go Router will prune it from its routing tables and then assume that your application is offline. And this stops people from getting errors when trying to reach your application. And it uses simple round robin load balancing. So next up we've got the TCP Router. So this is for TCP-based apps. You've given a reserved port and route on a shared domain. You can see that it actually uses HA proxy inside. And so this offers us a way to kind of move away from the NATs message bus and move towards a routine API. So the routine API is currently an experimental stage. And you can check it out. There's lots of good docs on the repo as well. But this uses the public subscribe model but over HTTP. So this allows us, like I said, to move away from NATs but works in the same way where stale routes are pruned from the routing tables. And so you can get started really easily by using this RTR client. You can see the link there at the bottom. So now we have our application registered with Cloud Foundry. We've got our route. But next we need to upload the files. So you can see here that we're uploading all of the files in the directory. And we're going to be passing these through to the Cloud Controller. So the Cloud Controller obviously needs somewhere to store these files. So in Cloud Foundry we normally attach a blob store. Dare you enter the blob store caverns. So yeah, this effectively is where we store all of your application files. And so it has three main concepts. You've got resources, app packages, and droplets. Resources are files that are uploaded to the Cloud Controller. And we track a unique SHA. You then have app packages. And these are unstage files that represent an application. And finally you have droplets. And this is a result of taking all of those files and getting them ready to run on Cloud Foundry. And so you might have seen a talk yesterday about the bit service. And so this is underway to kind of extract the blob store logic from the Cloud Controller. So let's take a look at what the kind of workflow is for uploading an app. So you can see to start with from the CLI, we will send a resource match request to the Cloud Controller. This will then go to the blob store and check for this unique SHAs. So what you're saying is you're sending a list of all the SHAs for your files and you get back your matches. And then based on the difference, you're going to be uploading the changed or new files to Cloud Controller. And this puts it into the blob store. So it's quite straightforward. So next up we need to start looking at how we're going to get our application because we've just pushed a raw source code. And so we need a way to turn this into something that runs in Cloud Foundry. And so you can see here from the CLI's perspective, you'll be seeing an output of this build packs, downloading build packs, downloading build packs. And so what is this you might think? So this is how we take your application code and build it into something that can run on the platform. So you can see here build packs really allow you to have a repeatable process for compiling and running your code on Cloud Foundry. It means the platform can worry about the operational concerns, especially on the underlying operating system, and you just get to focus on your code. So again, we have a three-step process for build packs. To start with, you have the detect phase. So Cloud Foundry will run every build pack's detect script until it finds a match. When it's found a matching build pack, it will then go through a compile phase where it grabs your dependencies, compiles them into an artifact and then the release phase is when it gets it ready to be extracted into a droplet, which we'll go into a bit more later. So here's an example of how we've, you know, running a Java app. And so you can see that we've been detected as Java and then we've downloaded the dependencies and packaged it up ready for extraction to run on Cloud Foundry. All right, thank you very much, Alex. Okay, so let's just briefly recap our journey so far. So far, we have created an app. We have created a route for that app, and we've also uploaded all of the source code into Cloud Foundry. So what happens next? Well, in order to answer that question, let's just take a step back and think about exactly what it is that Cloud Foundry is going to do when it receives our application pushes. And really, Cloud Foundry has two key responsibilities. The first responsibility is to take our application source code and compile that down into some artifact that can then be scheduled to run on the platform. And that's exactly the second responsibility. We need to take the output of that build, compile process, and actually schedule it to run and ensure that it continues to run until we tell it to stop. And then, of course, there are also all of the supplementary responsibilities, such as logging, metrics, et cetera, et cetera. So what exactly does this look like inside Cloud Foundry? Well, the first process, that compile process, is known as staging. And staging looks like this. First of all, we take our application source code. We then combine that together with a build pack, which, as Alex said, provides the runtime dependencies. And we compile that together into some artifact. But in order to actually do this, we need to have somewhere to actually run that compile step. We need to have a root file system or an operating system. And in Cloud Foundry terminology, this root file system is known as a stack. And every deployment of Cloud Foundry will come with a default stack. Typically, this tends to be Ubuntu, but it could just as easily as be something else as well. And so what happens is we create a container using that default stack as the root file system for this process. Once we've got these three components together, we then run the compile step and we output a droplet. So this is the immutable artifact that we can actually schedule to run on our Cloud Foundry platform. So what does that actually look like? Well, next up, we create ourselves another container. And this container is based on the exact same stack that we used to actually compile the artifact in the first place. This is how we can guarantee that it's going to run successfully and how it has all of its dependencies available. So we create a new container, and we simply copy the droplet into the container. And we say, start, start running. And this is really, really nice because we've got a very, very clear separation here between the developers who are responsible for creating the source code and the droplet and the operators who are responsible for the underlying file system. It's a very clear contract. And this approach to running your applications is really nice because it means that things like scaling is also very, very easy. Here is a typical scale command in Cloud Foundry. The minus i there means scale it up to eight instances. What does this look like? Well, rather than creating one container, we create eight. And then all we need to do is copy our droplet onto each of those containers and tell them all to start. Very, very nice and simple model there. And I think that's one of the reasons that Cloud Foundry is really excelling at this, in the running the applications here. Okay, so we've got an idea of what exactly Cloud Foundry is trying to do when we push our applications. How exactly does it do this? And in order to answer that, we are going to need to cross over the CC bridge and into Diego Island. All hail Diego. Just making sure you're all still awake. Okay, so what is Diego? Well, Diego is the component of Cloud Foundry that actually provides that staging and runtime support. At its core, Diego is a scheduler. And it's able to schedule two types of workload, tasks and LRPs. And I'm going to touch on those in just a moment. But one of the other features Diego provides is it can take all of the incoming workload and optimally distribute it across a cluster of cell components. So a Diego task, this is a workload that is guaranteed to be run at most once. So this is perfectly suited to the staging process as we only really ever want that to happen once, or at least once per push of your code. Another example there might be a one-off database migration, for example. A Diego LRP, on the other hand, these stand for long-running processes. And this is what your applications are actually going to end up running as under in the Diego cluster. So Diego provides some additional features here. It is able to distribute the LRP instances across your cluster of cells. And this is nice because it means if we lose one of the cells for whatever reason, perhaps the virtual machine crashes or goes away, your application can still continue to run as other instances of the LRP will be distributed to other cells. And it also provides us with some fairly nice health checking. So if your application instance crashes for whatever reason, perhaps it runs out of memory, Diego can detect that and automatically restart it. Okay, so we now know what staging is and we know what Diego is. How exactly does Diego stage our applications? Well, first off, the Cloud Controller sends a request into the Stager. And the Stager sits there, listens for these requests and converts them into a Diego task. In this case, it's going to be a staging task. It then sends that off to a component called the BBS. The BBS stands for the Billet in Board Service. And this is really Diego's core orchestrator and sort of the central data store of our cluster. So the BBS receives this staging task and it persists it to its database. This is currently backed by EtsyD. So at this point, Diego knows that there is a staging task that it needs to perform. But it doesn't know where it can actually perform that. So we have an entire cluster of cells available to us at the moment, any one of which might be suitable for running this workload. How do we determine which cells to send it to? Well, in order to solve this, Diego kicks off an auction process. So the BBS will go and send out a request to the auctioneer. And the auctioneer is in constant communication with the cluster of cells via a component called the Rep, which I think is the representative of this cell. And so the auctioneer says, okay, we have this staging task, one of you needs to go and perform it. And it asks all of the cells to make a bid on that workload. And the one with the highest bid is then assigned that workload. So once we've decided, the BBS sends off the request to the appropriate cell, at which point the executor will create us a garden container. And this is where the actual process gets executed. And I'm going to talk a little bit about garden in just a moment. But also worth mentioning here that the executor will also be streaming the standard out and the standard error of that process into a component called Metron, which Alex is going to talk about in just a moment as well. Okay. So at this point, the staging task is now complete. As I mentioned earlier, the output of that process is the droplet. So we now need to take that droplet and put it back in the Cloud Controller so that we can schedule it to run. And this is fairly simple. The executor simply sends off a request to the CC uploader, which is responsible for mediating that upload. Great. So that's responsibility number one done. We have now completed the staging process and we have this droplet, which we want to schedule to run in our cluster. How do we do that? Well, there is another component here called NSync. And NSync sits there listening for the desired app requests. And it will convert those into LRPs, which it will then send off to the BBS. So obviously we don't want our apps to run as a task because we want them to continue running until we tell them to stop. And then again, a very similar process happens where the BBS persists to the database, kicks off an auction, finds the cells it's actually going to run that application on, streams all the logs off to Metron. Another component worth mentioning here is the TPS. And this is responsible for providing the Cloud Controller with information about the currently running LRP instances. And it will also be monitoring activity for any crashes and reporting that information back to the Cloud Controller. Finally here, there's one last component, the Converger. And the Converger is responsible for ensuring that everything becomes eventually consistent. And it will take action to ensure that that is the case. So for example, if it detects that one of our LRP instances is missing, it can go and kick off another auction to ensure that we bring that back into focus. So that the desired state is always equal to the actual state. All right, perfect. So hopefully now I've described both of those processes, the staging and the running, and shown you how that actually works inside Diego. There's one other component that I'd like to talk about. And that is Garden. So full disclosure, I do work on the Garden team, so I'm going to be speaking very favorably about it. But I think with good reason, let me show you why. Welcome to the Garden. That's the last one, I promise. Okay, so Garden. Garden is Cloud Foundry's container technology. And the first question people tend to ask with regards to containers and Cloud Foundry is, can I run my Docker image in Cloud Foundry? And the answer is yes, absolutely you can. But as well as that, it allows us to run the build pack-based applications as I've just described. So what exactly does Garden look like? Well, at the top level, we have the Garden API. And the API provides the functions such as create container, destroy container, et cetera, et cetera. And that API is implemented by multiple and pluggable backends. And there are currently three main backends. Let's take a look at those. The first one is Garden Linux. As the name suggests, this is the Linux implementation of the Garden API. And this was essentially a rewrite of the Warden container technology, which was in use in previous versions of Cloud Foundry prior to Diego. And that's actually where the name Garden sort of originated, as we rewrote Warden in Go, and then it was Go Warden, which kind of sounds like Garden, I guess. Anyway, this is what's currently running in most production Cloud Foundry deployments. Next up, we have Garden Windows. So this brings along .NET and Windows support into Cloud Foundry. But perhaps most excitingly of all, we have Garden Run C. What is Run C? Run C is a project that's being worked on by the Open Container Initiative. So the Open Container Initiative is a body who are looking at defining standards around containers. And this is really, really exciting for a number of reasons. So first off, it means that the containers running inside Cloud Foundry are going to be running according to standards set by some independent body. The body is part of the Linux foundation, and so that's fairly nice. We have those standards there. It also means that the containers running in Cloud Foundry will be using the exact same code base as containers running with Docker. And this is great because it means that things like compatibility is going to be much better. And also with a lot more eyes on the code base, things like security issues are going to surface much quicker and be easier to fix as well. And so this is nearly ready. I think it's currently going through the Diego CI pipelines. Hopefully we will be able to ship it fairly soon. And once we do, this is going to replace Garden Linux as sort of the default backend for Cloud Foundry. Okay, so we've seen now our application is running in Cloud Foundry. And so from the outside, we need to access the application. So let's take a look at the workflow here. So we first send a request in, and that will end up hitting the Go router. While the Go router is working out what to do is continually being updated by the router meter of where to find that application. So you can see here we've got two Diego cells. And then so the router needs to know where to forward this request onto. So once it gets the information from the router meter continually, it will be looking to forward this request first. The first request will go to cell one. The second request will go to cell two. So this is just a nice straightforward workflow, very similar for TCP routing as well. So awesome apps running, but we want to really see what's happening because Cloud Foundry can be a bit of a black box.  So to do this from the outside, we can use CF logs. So you can see here we've issued a logs command and we're connected and tailing any logs that get emitted from our application. So this is awesome. It's almost like a live stream of information coming from your app, really useful for debugging. And so how is this being achieved? So Ed mentioned earlier, we have a component called Loggigator. And this is comprised of two main concepts. So we've got Dopplers, and Dopplers are there for collecting all of this information, and then we have the traffic controller, which is used to push this information. So there's a few concepts in here that you might have seen throughout the presentation. So the sources, in this case, will be your application. The Metron agents are what is going to be connecting to Doppler and sending your logs and metrics and events.  This fire hose can then be connected to and it's a massive information that's coming out of Cloud Foundry. And so this is one of the components that's under the most stress in the system, because you can imagine you have thousands of applications running, and loads of system components all emitting information to this one component set. So you can see this has some real scalability challenges. So let's take a look at how do we collect these logs. So you have the Diego cells running the Metron agents. So you could be emitting out logs or metrics. Metrics are normally from the system components. These are then collected and pushed into traffic controller, and then traffic controller creates the fire hose. So now from the CLI, how do we see these logs? Because the logs have flowed through the system and they ended up at traffic controller. So we send a request for application details and we get back everything we need to be able to connect to the traffic controller. So we send off a request to the traffic controller, which is using web sockets. So you can see here we hit up an endpoint that's like slash tail and then you pass your app good. And then so you establish your web socket connection. And then you get back at logs. Okay, so that kind of concludes our journey. We just recap. We've touched on UAA, Cloud Controller. We visited Caffeyland, crossed the CC bridge, kind of looked at the staging and running processes in Cloud Foundry. Had a walk through the garden. And then we came back out looking at the router and logigator. So I guess thanks for joining us. Cheers.