How do you know that you can do that? What are some of the fundamental things we need to have in place? Okay, this is all mindset right like I this is what if I've learned anything I've worked at I've worked at very large enterprise is like things then I worked at a startup that raised 40 million dollars And I was like the 30th employee then I worked at a startup that had 80 million dollars still startups not profitable yet Even if it's got 80 million dollars And that had 200 people then I started my own and now I coach startups so Honestly, like after seeing all that it really comes down You can start a startup if you're passionate about what you're doing and you really concentrate on solving a problem Right, so and you try to be profitable, right? This is the biggest thing we see Let me start from the beginning so passionate about what you're doing the biggest thing I learned from that Italian experience was it's not just Okay to have a good idea you have to be willing to give up 80 hours of your life a week to work on that idea And I'm not for like I'm not for staying in the office until you drop dead when you're building a startup I I work a lot now, but I don't work nearly as much as when I was in a full-time job because I've learned to prioritize my time better Right, like I can get way more done in five hours a day than ten hours a day Because I know I stopped being productive. So it's not about time that you put in there It's just that where you are you spending your time on something that you feel strongly about that you are passionate about The stuff I do now love it. I have like a mission. I want to teach the world how to do better product management I want to get companies really structured about products like that's what makes me tick And that's the only reason why I like working on Saturdays, right? My friends will be like, why are you not coming out with us and like going to brunch?  I enjoy it, right? So it's things that you have to feel excited to do during downtime and you also have to remember to do your vacation Right, I'm terrible at this at a certain point you need to give your brain a rest, right? Take a vacation get out there But if you're passionate about what you're building that's key one that you can do anything The second part about it is you have to have a problem, right? Find a problem that you love solving, right? It's it's about that passion But if you can find a problem where people are actually experiencing it, right? And they say they they need a solution for it You found something to work towards solving now you can iterate on different solutions So don't fall in love with the solution fall in love with the problem Doesn't matter how you solve it if you love the problem and you can start separating yourself from how you will solve it I think that's the biggest trap founders run into they get so hooked on the solution idea They came up with that they forget about the problem. So focus on that problem um in third I forgot what I said for third I was I was like you went right out of my head, but And I guess the other thing too is that it doesn't take a lot of money to start a company, right? But you have to focus on trying to make that company sustainable That that's it So a lot of people will look at companies like Facebook and Twitter and they say they got very big But they had no money. So I work with That some of my students who are in my class right now are our startups and they'll tell me Oh, we really need to We need to just onboard as many people as we can onto our site so that companies give us money That's really not how it works. You have to be careful with BC money and you don't need BC money I learned personally for myself I will not take outside money until I can prove that unprofitable and I'm at a certain later stage where I need it To scale that's the only reason I would take BC money if you're in early stages Bootstrapping is the way to go because you retain a lot of control over a company. So That means you have to monetize it right start charging immediately Figure out how to do that do freemium models if you have to but figure out how to make money off this because it is not Sustainable for you to keep working on things if you cannot figure out how to be profitable


I'm going to try to keep calm face because this angers me. Indirect assessment is the term and I understand that we operate in a real world and that sometimes you have to do this crap, but I really hope you don't do this. I just, it's when you measure something other than the behavior of interest and you use that to indicate something about the behavior of interest. In other words, you're measuring something that you're not really measuring. You're trying to find out something about something you're not measuring, which makes it indirect, which gives it a problem and you might be indirectly assessing the fact that I'm angry based on the way I'm talking to you. In reality, I'm not angry at all, but you can't directly assess that. You can infer it through indirect assessment, but that's bad. We don't like inference.  This is behavior analysis. We like concrete, that was wood, sorry. So we like wooden examples. We like concrete ones too. We like concrete wooden examples for that matter. But the point being that we just need to directly observe things. Go see the video on direct assessment to understand why that's better. But indirect assessment, where you're taking the measure of one thing as an indicator of something else. In reality, this isn't something we like. I do want to give you one more very brief example. It's really hard to directly assess how many condoms people use to give at nights. What you can do is look for the number of condoms that were left over in the garbage. That's it, bye.


Hi, I am Dr. Yogesh Singh. I work as a consultant dermatologist at Manipal Hospital, Bangalore. Lupus is an autoimmune disease. The immune system is supposed to protect the body from extra threats, especially infections like viruses and bacteria. In autoimmune diseases, the immune system becomes hyperactive and it starts attacking the own body. It attacks the healthy tissues and because of which it causes diseases.


Hi friends, welcome back to my channel and a very special welcome if you're new here. My name is Jen. I'm a certified weight loss and nutrition coach and it is Saturday, so it's grocery haul day. And I have a massive, massive, over $600 grocery haul for you, including Costco where we did a major stock up. My local Kroger store sprouts. I've got a lot of good stuff in store.  Subscribe if you're not, turn your bell on because I do a grocery haul every Saturday and five videos every single week. Down in the description box, you will find nutrition coaching, personalized macros and calories, highly recommend. This is how I have lost and maintained a 140 pound weight loss as well as one-on-one coaching for accountability to ask questions or talk with me directly. Links and discounts to my favorite healthy things in my Facebook group. Come join us, we'd love to have you. Are all down in that description box. So let me turn you around and let's talk about this massive grocery haul. So first up is my massive stock up haul from Costco. We were out of quite a few staples. So I picked up all those staples and then some other really good stuff. There's a lot of really great deals right now. So let me show you what I picked up from Costco. First up, we needed some more gallon size Ziploc bags. I usually buy the combo pack, but I have so many of the sandwich and snack bags and quart size. I just always run out of the gallon. These are currently on coupon. So I think it was $13 and you get four boxes or 152 bags. And then I grab my Unstoppable's. These are also currently on coupon. I always buy these when they're on coupon. I never pay full price. So I just wait for them to come on sale and this is the Downey Fresh scent. I also wanted the Kirkland brand of the makeup wipes, but they didn't have them. I looked everywhere. So I ended up getting the Neutrogena ones. These are also currently on coupon. So if they weren't on coupon, I would have skipped it. I do really like the Kirkland ones the best, but this is kind of cool because you get a few different wipes and some of the travel. I picked up some tuna fish. This is going to be part of my meal plan. I talk about what I'm doing starting January 1st, as far as my food goes and my training. And I need some tuna fish. It's such a great source of protein. And then I also picked up some more of my favorite butter. This is the Kirkland version of the Kerry Gold Butter. The Vital Protein's collagen peptides are on sale, which is a killer deal. So I actually bought two. I use collagen in my coffee every single morning and it lasts forever. So I was so happy to see these on coupon. Also happy to see this. I didn't know Costco carried Alani protein shakes. I about died. I almost bought two cases, but I just ordered some more winter mint from Costco from Walmart and I ordered another premier shake. That's new. I can't find it anywhere but Walmart. Stay tuned. I'll be sharing it with you guys. So I just ordered protein shakes. So I limited myself to one case, but I really like the Alani's Munchies. It's 140 calories, 20 grams of protein, and there's no carrageenan. So if you're sensitive or you avoid carrageenan, Alani is a great option. $15 for a 12 pack. That is an amazing deal. And then my favorite yogurt is also on coupon. This is a 16 pack and it was $8. That's like 50 cents a yogurt. That's an amazing deal. And the Chobani Zero Sugar is my all-time favorite. And then I got TurboTax for home and business. I do my own taxes every single year as I am self-employed. And then this allows us to do our home taxes as well. The main reason I went to Costco besides needing some staples is this is on coupon. So if you use TurboTax, this is the time to pick it up. And then I grabbed some more of the Snack Factory pretzels. I love these. These are my go-to pretzels. I love pretzels in peanut butter, pretzels in cheese. I love these as a snack before I work out. It's a really great, fast-acting carb. Or even after my workout, I like to pair it with either a protein or a fat for a really good snack. And these were only $8.99. Super good deal. And then we are almost out of Q-Tips. So I grabbed these. These are on coupon right now for $6.79. I feel like that's the price of one of these at the store. So I was excited they were on coupon. And then I mentioned in my grocery haul last week how expensive foil saran wrap parchment paper is. And I decided to get it at Costco. You get two huge packs of parchment paper for $12. So much better price. I didn't need saran wrap or foil, but I will be buying them at Costco. It's much more affordable. And then I got the two packs of the regular pepperoni for Troy. We go through a lot of pepperoni. He likes it with crackers and cheese. We make homemade pizzas. He puts it in a tortilla. If he eats a frozen pizza, he always doctors it up with a little more pepperoni and cheese. So this is a great deal, $10 for two packs. I will also be eating a lot of rolled oats and oatmeal into the new year as part of my meal plan. And this is the farmer's note organic sprouted rolled oats. So really the best of the best when it comes to rolled oats. And this was just over $10. That's an amazing, amazing deal. I can use this in baking and of course, for having hot oatmeal and overnight oats. Listerine is also on coupon. This is our go-to mouthwash. It's my favorite. So I picked that up. And then also on coupon is peanut butter. This is Troy's favorite peanut butter. $7.60 I think for two, which like I said is the price of one at the grocery store. I also got some Tillamook medium cheddar cheese slices. We just like having sliced cheese on hand. We are a cheese family. We eat a lot of cheese. So I picked that up. I want to say this was $10.99. And then I opted for this bread for Troy. It's so soft. This is the Sara Lee artesino, artesino, artesino. How do you pronounce that? We're going to call it artesino. It was $5 for two loaves. I throw one in the freezer and then we put one in our bread box. So I picked that up. And then of course one of the other main reasons I ran to Costco was for paper towels and also Gatorade Zero. I bought two cases. They're on sale for $14.50 a case, which is a killer deal. Those are already in the garage. And then I bought my paper towels. I was pretty excited to see this. I'm going to start topping my yogurt bowl with this. I'm almost out of granola. This is a better option if you want protein. So it has 11 grams of protein and nine grams of fiber per serving. This is the Cinnamon Toast Catalina Crunch. It's 110 calories for a third of a cup. I usually do about a quarter cup. So I'll still get what, four or five grams of protein. So not bad at all. And also this has nine grams of fiber. So just a better option for protein and fiber on your yogurt. And this was only 10.99. No surprise. I grabbed another two pack of Troy's Four Bean Salad. This is his favorite salad. And then I got the little bag of mini potatoes. I pay $4 for a teeny tiny bag at my Kroger store. This was 450 for five pounds. And we use these in our pot roast. I eat a lot of potatoes. They're also on my meal plan moving forward. So we'll definitely use those up. And then another staple for us is the fully cooked bacon. This just makes life so easy. I cook a whole section of these up at once in my microwave and then we have bacon ready to go. Troy uses this for breakfast sandwiches. We like to make the Felicia combo bowls with bacon. This is only 12.99 for about 50 slices. That's a really great deal. And then I did get some dog treats. They had these Superfood Sticks salmon in mango. These are human grade dog treats. So really good ingredients. Same with these sweet potato chews. All that's in there is sweet potatoes. So nice clean dog treat. And then I did pick up a pack of ketchup, a two pack of the organic ketchup from Heinz. Troy uses a lot of ketchup. And I'd rather he had the organic one. It's just a better option. And then I did grab some pears. Pears just spoke to me. They sounded really good. They're really hard. So I'm hoping they ripen quickly because they just sound super good for a fruit for the week. So that is everything that I picked up at Costco. Let's go ahead and jump into the rest of the grocery haul. So the rest of my grocery haul for the week is from both Sprouts and my local Kroger store, which in our area is called Fry's. I found some amazing, amazing deals. So let's jump in. So first let's start with Sprouts. That's the smallest haul. I mainly went there for produce. And then I always like to check their meat section and see if there's any great reduced meat deals. This is a great deal. This is from the brand Pasture Bird. This is Pasture Race Chicken Tenderloins. They were on sale for $4 and 74 cents. So that is a fantastic deal. And then I also found 85-15 grass-fed, grass-finished organic ground beef for $5 and 52 cents a pound. That is such a great deal. As you know with reduced meat, I either cook it right away or throw it in my freezer. I also picked up a couple more of my favorite electrolyte waters. I like to have these after I work out or even during or before I work out. So this is the brand Roar. And I got a strawberry lemonade and the cucumber watermelon. That's actually my favorite flavor. Like I said, I mainly went there for produce. So I got this fruit tray. It was on sale for $4. Cannellope, honeydew melon, pineapple and grape. And then I got this big pack of mushrooms. I actually need mushrooms for a couple of recipes this next week.  So I only got one. I also needed a couple of oranges for my meal prep, some asparagus for my meal prep, some green onions, and then some fresh herbs. I needed basil and I needed oregano. These are for recipes. And then lastly, just a couple of bananas. Now moving in to Kroger, starting off with two gallons of 1% milk for Tori. He goes through a couple gallons of milk every week. I also picked up the Pizzeria style blend cheese. It's a mix of low moisture, part skin mozzarella and smoky provolone. This is so good. This is better than regular mozzarella cheese for pizzas and things. So I picked that up. And then over in the reduced bakery for Tori, I got these little mini cherry strudels and some apple strudels. These were like $1.25 a pack. They're perfect. I can even, I ate them as well because they're really small. So it's the perfect pre-portioned out sweet treat. I also got my favorite hash browns, simply potatoes. I can have hash browns pretty regularly on my meal plan for my cut. So I picked up the simply hash browns. They are my favorite. And this time I got the Southwest style. I thought, why not? Why not throw in a little veggie with my potatoes? And then I did pick up a couple salad kits. I've been loving the real good chicken nuggets on salad. So these were three for 11. So I grabbed two. I have an apple pear or an apple feta kit. This is spinach and spring mix with feta, honey sweetened almonds and cinnamon puffed apples with a white balsamic shallot vinaigrette. That sounds incredible. And then I also got the Caesar with bacon chopped salad kit. Caesar is Troy's favorite. So I figure if he didn't want this one, he could do this one. And that's a quick, easy lunch or dinner. I also needed pesto for a recipe. I like having pesto on hand. Even though it's high calorie, high point, high fat, a little bit goes a long way. So it just adds some really good flavor. It's super good on sandwiches in place of other condiments. Really, really good. And then I saw these in the refrigerated section. They have tags on them. So it's kind of hard to read. But these are the light and fit, zero sugar, little yogurt shakes, 40 calories, eight grams of protein. Holy moly, that's incredible. I'm actually going to have one of these after I finish filming this grocery haul. And they were on sale for 95 cents a piece. There was three on sale, so I bought all three. I also picked up some heavy whipping cream. I like to make my own cold foam for my cold brew coffee. I do one tablespoon of heavy whipping cream and it's perfect for that cold foam. And I also noticed when I have that in my coffee, it keeps me a little bit more full. So I'm not mad about that. So I picked that up. And then I saw these at checkout. And I do like the body armor lights. And again, these go hand in hand with working out similar to my rower water. These are the body armor zero sugar. So I got an orange and a lemon lime. They were two for $3. And I thought that I would just try them out, see if I liked them. And then Troy has wanted to cut back on Diet Coke. Not eliminated completely, but cut back. So I picked up some tea for him. He thought he could try having tea in place of Diet Coke. So this is the Gold Peak Slightly Sweet Tea. And then I also found the Kroger brand of the zero sugar blackberry. So I thought that he could try those two out, see what he thinks. If you have a favorite iced tea, premade iced tea, let me know down in the comments. I also picked up some paper plates because convenient and I had a coupon. And then I found this pie plate in the clearance section of Christmas. It was a $1.50. It was a $1.50 for this super nice pie plate. I have a large one, but I've always wanted just a smaller pie plate. Couldn't pass up that deal. I also grabbed one more of my good culture cottage cheese. I've been loving cottage cheese. As you know, it's such a great source of protein. So I wanted to make sure I had enough for the week. And then I found these in the reduced bakery section for $1.94. That is a great deal. These are the Joseph's pitas. I'm going to throw them in the freezer. And then that way, when I want one for sandwiches, wraps, all I have to do is pull it out, defrost it and that way they will last. That again, such a great deal. And then the meat section, I always stop by the meat section to see what's reduced. They have their 97 3% ground chicken for $3.47. That's my favorite. I love ground chicken and I would have got more if they had more reduced, but they only had the two pounds. So I picked those up. And then I also grabbed one more pound of the 99% ground turkey, also $3.77. And then strawberries were $1.99 a pack. That's an incredible deal. So I picked up two of those for fruits for the week in addition to the pears that I bought at Costco. And then their little pomegranate seeds were on clearance for $1.80. I thought I could top my yogurt bowl with these or oatmeal. Pomegranate seeds are really, really good for you, especially if you're Perry menopause or in menopause. So I thought that for a buck, 80, I couldn't pass it up. I also needed some more lime juice. So I picked that up.  We got one of these before and we ate it all within a couple of days. This has broccoli, carrots and cauliflower in it, $1.96 reduced. So I thought we could have veggies and dip today as well. And then I did pick up a 24 pack of Diet Coke for Troy. So that finishes out this massive grocery haul, Kroger store and sprouts. Let's jump into what's for dinner and what you'll see in meal prep. Here's what is on my menu for the week. So today, Saturday, we always go out for dinner. Tomorrow, Sunday, I am making turkey meatballs. You'll probably pair that with rice or potatoes. Monday, I'm actually doing an orange chicken stir fry. You'll see that recipe in Wednesday's, what I eat in a day, Tuesday's leftovers. Wednesday, we're going to do a burger night. And then Thursday and Friday, we do leftovers as well. That way we're able to finish up everything from earlier in the week. And then here is what you'll be seeing in Monday's meal prep. Cannot wait. All of these recipes align nicely with my current cut. So for breakfast, I am doing a baked cranberry oatmeal. I may add protein to this, I'm debating on that. But I'm definitely doing this cranberry oatmeal. For lunch, we're going to do ground turkey and mushroom soup. I don't know, that just sounds really, really good. And then for a snack, I'm making a protein berry crumble. Kind of like a cobbler, but with protein. So stay tuned for all three recipes on Monday. Thank you for joining me for this week's massive haul. I hope you enjoyed seeing everything I picked up from Costco, Kroger and sprouts. We found some amazing deals. There's actually some fantastic Costco deals going on right now and Sam's Club. So if you have a Sam's Club in your area, I've heard that they're having equally as good of sales. So definitely check them out. And if you enjoyed the grocery haul, give it a thumbs up. Again, subscribe, turn your bell on so you never miss a future video. Don't forget to check out the description box for nutrition coaching, links and discounts to my favorite things. And of course, come join our Facebook group. We'd love to have you. Happy Saturday, friends. And I'll see you in tomorrow's video. Bye.


So, okay, good morning everyone, my name is Mingran and I work at Wefront. Today I'm going to talk about new memory storage engine we have been coding and debugging over the past few months. Here's the agenda. We start with a brief introduction to the current FDB memory storage engine, its main component and functionality, and then move to the motivation behind the registry base storage engine. Why would we want a new one? The last thing is some of the optimization we came up with during the development process and of course the most important part, the performance result. Let's see how storage engine fits into the big picture. In FoundationDB we have this distributed lock system and we have a storage server row. Storage engine lives inside storage server and storage server contains exactly one instance of it. Our server receive mutations in version order from distributed lock system and constantly apply them to storage engine. The main purpose of storage engine is to persist key value pairs into disk. For memory storage engine specifically, data is stored directly into Kivi container, the green box here in memory, but all the operations are locked to disk. That's how durability is guaranteed. The Kivi container is a component inside memory storage engine that helps store and retrieve data. Storage engine is used by a single process from one thread. This makes development a lot easier, right? Because we don't need to worry about the concurrent issue. All the storage engine types, including SSD, memory, implement that abstract intercourse called IQ value, this interface supports operations of recovery, set, read, rearrange and commit. Then we come to the lowest level and also our main focus today. The Kivi container. For current implementation, it's a balanced binary search tree where in each node, we store the Kivi pairs directly. Key is stored in order, of course. Both key and value are essentially string ref. String ref is a data type has been widely used inside FDB. You can think of it as a reference to heap space and we will get to detail later. The motivation, why would we want a new memory storage engine? What's the obvious weakness with the existing one? First in first, we try to be more space efficient. If we can build a new type with less memory usage, that will bring benefits to all the cluster in Wavefront. In order to do so, we probably need to revisit the Wavefront point structure today. What's the key format? What has been really stored inside the database? Key is a large mountain prefix overlap. Keys electrographically stored over the underlying bytes. For example, character zero is always stored before character one. Key starting with the same prefix are stored together. This is just the key part. Value a tiny compared to the keys. The problem is with current memory storage engine, we're storing the same prefix multiple times. There's literally no prefix compression at all. That's the reason why we decided to adopt a different key V container using Reddit tree. So what is a Reddit tree? If a familiar was tried or dictionary tree, Reddit tree is a compressed and space-optimized version of it. The differences we store in Reddit tree, we store the common prefix key usually as a string instead of one character. There are two types of nodes inside Reddit tree. The inner node maps partial key to next-level nodes and leave no stored value corresponding to the key. I have a quick demo to show you how Reddit tree works at a very high level. Let's start with an empty tree and insert first key value. Key is mine and value is term. It's pretty straightforward, but remember to update the parent. In this case, it's a root node so that parent knows it has one child with perfect starting with s. Then we insert the second with key smith and value 20. We compare smith with existing key and find the common prefix here. I highlighted in Reddit in the slides. Next step is to split the original leaf node into one internal node. The key is a common prefix, then update the old leaf node and finish inserting the new key. The main logic for insert operation is to find the right insertion point, split if necessary, and insert with a cracked key. But there are many corner cases and details involved. Let's keep inserting the key smiley with value 30. You see a split and end up having this leaf node with an empty key. The challenge is how to deal with the edge case. For my implantation, I use a special number minus one to represent the empty key. Delete is relatively simple compared to the insert operation. You find the leaf node and delete it. But the tricky part is to merge if possible. In this case, the parent LE has only one child left. It can collapse two into one to save the space. So what advantage over the comparison based binary tree for Redis tree? First one, it's a space efficient. It's especially true for the use case involves a large amount of prefix overlap because you store the common prefix only once. The height of Redis tree depends on the length of the key, but in general, not on the total elements. The third one is the Redis tree requires no rebalancing operation. All the insertion order result in the same tree. But what are the trade-offs? First, key inside Redis tree are stored implicitly. You must reconstruct from the past when you do the rate. So this could lead to increasing rate latency. The second one is possible memory fragmentation. Because Redis tree tends to split the long key into smaller parts, and we use FDB memory pool to store the key. But memory pool in FDB is allocated in chunks with smallest size 16 bytes and growing the fashion of power of two. So we start with 16 and followed by 32 and 64, leading to variable padding overhead for each key value pair. In this section, I will focus on the optimization we came up with after the first round result, and of course, the latest result as a comparison. One thing worth mentioning about is our task environment. It has six DB nodes in total. For each store server process, memory is said to be 22 gigabytes, and operating space is said to be 14 gigabytes. One of the amazing properties of our testing cluster is that it has quad buffer configurations, which means we send wavefront data to four memory shards with murmur hash to calculate distribution. This configuration gives us the ability to see how Redis tree behave against a regular one under the same workload. Memory zero and one are Redis tree storage engine, and memory two and three are regular storage engine, workloads are evenly distributed among four shards. However, the performance result for the first round design were not good enough. We ended up using more operating space and total memory. So what could cause the memory usage gap between theory and production? Let's look at our key format again. The average length of Kiwi sites on our testing cluster is around 50 bytes. So basket scenario for each input key, we can have 34 bytes in comma, exclude the value part. What's more for Redis tree? The ratio of total nodes to Kiwi pair is 2.2. However, for regular storage engine is always one because it's a binary tree where you store the Kiwi pair directly. The node overhead for both types is 72 bytes. And now let's do the math together. So for each Kiwi pair inside Redis tree storage engine, we're able to save 34 bytes in the key but create 80-something bytes of actual node overhead. The bottom line here is in order to have the same performance result as a regular tree, we need to save another 52 bytes somewhere somehow. Based on analysis here, the solution is simple. We can try to reduce two things. The first thing is node overhead. The second is total number of nodes. This is initial design of the node structure. There are seven member variables in total and the number inside parentheses indicate how big it is in by unit. And I'll go through them one by one trying to find the potential optimization we can have. The first thing is to differentiate between leaf node and inner node. I can't believe I didn't do it in the first round. So both leaf node and internal node, they share some of the member variables. But leaf node don't care about children info. By extracting this part out, we can save 24 bytes for this specific node type. The second is to change map into vector. So standard map is a sorted container usually implement as red block tree that requires additional memory usage for maintaining structure. For example, when you insert an element, it will bring at least 16 bytes additional memory usage. But vector is a sequence container. You simply append in the end. But in this case, we need to keep elements in order with doing the insertion and deletion. The second idea is to use B field for metadata. This is metadata part. We have a boolean leaf to indicate whether this node is leaf node. And we have an integer mdabs to keep track of the common prefix length with an ancestor. The value of boolean can either be zero or one, so one bit is sufficient. The value of mdabs will not exceed 100k. That's a hard limit for FDB. So 16 bits, 17 bits are sufficient. One plus 17 equals 18. By using B field, the space for one integer can hold up those two variables. That's reduced the size from 8 bytes to 4 bytes. The third idea is to use inline data and union type on string ref. In registry, we use string ref to store key prefix. It consists of two parts. An 8-byte pointer that points to a contiguous heap space assigned by the memory pool. And an integer to define the length. So total is 12 bytes. One observation we have is around 80% nodes in registry under wavefront workloads have data length smaller than 12 bytes. Hence union plus inline data. For key smaller than 12 bytes we use inline data. It's a byte array that will store the key directly inside. For key larger than 12 bytes, we switch to string ref. Store the key inside the memory pool. The next idea is inspired by a paper, adaptive registry. Instead of always using vector to store the children info, we have two types of inner node with different capacities. The first one can store up to three children, key and pointer pairs, as my example on the right. It currently holds two elements with key 0 and 4 using fixed length array. So when the children side exceeds 3, we'll switch to the origin design using vector. Theoretically, vector can hold as many elements as possible. The motivation behind is based on the observation that the number of inner nodes is 1.2 times of live node. So a good chance here that most of them might have children size smaller than 3. And why choose number 3? It's also a balance between node overhead and no children capacity. Those are the major changes to help reduce node overhead. As for to reduce the number of nodes, this part is actually interesting because I think I picked the wrong design in the first place and didn't realize for a long time. My origin design did not have the concept of value. I store everything as key. So what? Is that from my computer? I'm sorry, is that from my computer or anyone else? No. Okay, let's listen to it for a while then we can continue. Let's do it again. Health music, right? So my origin design did not have the concept of value. I store everything as a key. Here's an example. When you start the key smile and value 10, I create an internal node with key smile and the live node with key 10. But after some experiment, I finally expected to collapse 2 into 1 by adding value field inside the live node. This is my latest design. That's all the optimization we have so far and finally come to the most exciting part. As summary, the node overhead for registry, it used to be 72 bytes for all the types, but now for live node and internal vector, it's 56 bytes and for internal 3, it's 64 bytes. Also, the ratio of total nodes to a key repair has reduced from 2.2 to 1.3. As for the performance result, we've used two types of dataset. The first one is we're from workloads and there are three metrics for paying attention to. The first one is operating space as calculated inside FDB. Other than the key resides, it also includes node overhead and memory padding. When stabilized, registry has 25% more operating space than the original one. The second one is total memory usage. This metric is gathered by Linux operating space. Basically, it includes everything. Same conclusion here, registry is taking up 25% less memory for each process. The third one is a histogram. The third one is a relevancy, a histogram gathered by we're front. This data here actually makes sense to me because remember the trade-off we talked about in the previous slides, registry need to reconstruct the key. Thus, tend to have higher relevancy. The second dataset is Wikipedia title benchmark. This one is more generic and of course smaller. The key is all the titles from main space of Wikipedia archive of different language. The value is some random double small compared to the key. Total size is 300 megabytes and I did shuffle before the insertion to avoid bias sorted dataset. The table here is a performance result and for memory usage specifically, registry is taking 20% less than the regular one. Yeah, I believe that's everything I have. Thank you so much. If you have any questions or comments, come talk to me afterwards. Thank you.


Ah yes, the opening to a James Bond movie. The little circles come in, Bond walks into the gun barrel, points, BANG! Blood dribbles down, and immediately you are so ready for the adventure ahead. You always know what to expect from a Bond movie, the beautiful women, the exotic locations, the amazing stunts, the larger than life villains, and overall Bond being the smooth and sophisticated bastard going through the motions of it all. But it all starts right here, the first point where the filmmakers get us on the edge of our seat, the gun barrel. Maurice Binder came up with the opening for the very first Bond film, Dark to Know, released in 1962. He described it as something he came up with in a hurry. He put a tiny pinhole camera inside an actual gun barrel, and audiences were introduced to an opening that would live on to become one of the most iconic and recognizable openings in all of cinema. To me, nothing describes the premise of Bond is back more than this iconic opening, which would continue to be used as the opening for every Eon produced Bond movie, or at least the first 20. Sometimes the effects would be different, different stands of the actor, a different soundtrack, an updating and more digitalized version of the opening, etc., but the premise always remained the same. As soon as those white dots come in, you know what you're watching. Even if you're not a Bond fan, chances are that you at least recognize the gun barrel. It became synonymous with Bond, used in its promotional material and even in the logos. We Bond fans all love this opening. In the 21st Bond film Casino Royale, it wasn't used as the first shot of the movie, but as the opening to the titles. It was different and updated, but most of us really liked this different take, because at the very least it was still at the start of the film. It also made sense, this story was a reboot and showed the origin of how Bond first became Agent 007, but then came Quantum of Solace. No gun barrel opening at the start. First time I saw that in the theaters, I was convinced we were still watching the movie trailers. It took me a while to realize the movie had in fact already started. And what do you know, they put the gun barrel at the end of the movie, for no real reason. I can't speak for old Bond fans, but I think the consensus is pretty clear that we dislike that. We wanted this thing to be at the start. They once again did this with Skyfall, which, fair enough, at least had Bond come into the frame at the very first second, so there's no confusion you're still watching movie trailers or anything. And I do like it better how they used the gun barrel at the end of that movie, as Bond returns to the classic office. A male M returning, handing him out his mission briefing. The gun barrel comes in and it dissolves into the 50 year anniversary logo. It was better than what they did with it in Quantum. But still, it had been since 2002 that an actual Bond film had opened with the gun barrel. I remember the speculations within the Bond community well after Casino Real, was Quantum going to start with the gun barrel now, and when it didn't, speculations returned on the forums for Skyfall. After being disappointed again, we were once again left hoping they would return it at the start of Spectre. It had been 13 years since any Bond movie even started with a gun barrel at the very first second. I still remember so well going to see Spectre on its premiere, hoping the gun barrel would return at the start, and it would go like this. No, it's funny. When I went to see Spectre on its premiere, I was in a room full of Bond fans who all realized why this was so special, all cheering and joy. I never really experienced something quite like this. I went to see Spectre a few more times in cinema, but with casual fans. Obviously, there wasn't any cheering or applauding then. That shows you the difference. We Bond fans realize the significance of the gun barrel. We understand it's part of Bond history. We know that it symbolizes the first warm up to a unique adventure, a feeling only a Bond movie can give you, because there simply isn't anything quite like it. So if you're sitting there in the theaters watching No Time to Die, which hopefully starts with a gun barrel as well, and actually has James Bond walk in there, not some other double O agent, take a moment to realize the significance of this opening, and let that special feeling sink in. That feeling you are about to watch another unique movie, whether it's a good or a bad one, but one that will be part of a series of movies which are able to deliver that special feeling. That Bond is back, so let's all take a moment at the start of this movie to celebrate that.


All right, welcome everyone to today's Webmaster Central Office Hours Hangouts. My name is John Mueller. I am a Webmaster Trends Analyst here at Google in Switzerland. And part of what we do are these Office Hours Hangouts, where webmasters and SEOs, publishers, can submit us questions. And we can try to answer them, specifically topics around the web search. As always, if any of you two want to get started with the first question, you're welcome to drop in now. Yeah, I want to ask a few questions regarding to, I can say, somehow they are related. The thing is, on our website, basically, the product team runs lots of call-to-actions. And the thing is happening, they having in a multiple kind of call-to-action, they're kind of showing. So one, they are showing at the very bottom side. They don't even have the option to close that specific thing. And the user is going through the page itself. So they show three to four times similar kind of call-to-action. So we talk a lot about these specific things. But they say, I mean, there is no kind of direct effect of this thing in the quality-wise. Or like, I mean, when the user comes in and we are blocking certain, their experience like what they wanted to do, actually. So what is like that, I mean, from Google side, like, I mean, how they see these kind of things? So specifically interstitials and kind of pop-ups that block the content, that's something we would pick up with the mobile-friendly classifier that we have. So we would probably treat those pages not as being mobile-friendly. And we would not show them as high in the search results in general. So that's something you might see there. But I imagine the bigger effect is more the long-term effect, where if people are coming to your website and you're essentially blocking them from seeing what they were looking for, then why would they continue staying on your website? Why would they come back? So that's kind of what I would look at there. I think a lot of times people trade kind of the short-term wins against long-term wins, where maybe in the short-term people are going to click on that link on your interstitial a little bit, but in the long run, they're going to remember that this website is terrible and they're going to avoid it. So that's kind of the way I would look at it there. All right, so is there any kind of way? Like I mean, they're saying we are showing it after a certain second. Let's say they're saying we are showing this specific pop-up after 10 seconds or so. So is it same thing kind of applicable or is it like OK? That's the same thing. I mean, who can look at the content on a page in 10 seconds? Most pages don't even load in that time. So yeah. All right, thanks, Sean. Sure. All right, let me look at some of the questions that were submitted. So we changed a little bit with the submission because Google Plus is going away, so I have to try some other ways out to get the questions in. Let's see. If I open Google News and type a specific query, many news from my website are well-ranked. If I repeat the same query, but this time click on the Google News auto-suggest topic, none of my articles appear. It looks like Google can't rank my pages for the auto-suggested topic just for the query. What could be happening? So I don't know. I really don't know where these Google News topics come from. And in general, the ranking within Google News isn't really the same setup as with normal search results, so it's really hard for me to say there. What I'd recommend doing there is going to the Google News Help Forum and maybe posting your example there, maybe with some screenshots so that people can see exactly what you were seeing. Some e-commerce sites tend to redirect their popular search term pages to more curated landing pages, like a search query to slash video games slash Xbox, for example. Is that supposed to be a 301 or a 302? What if they want to redirect the search term to another page during different periods? So that's an interesting question. We're looking into what we can write up for e-commerce sites in general. So maybe we can include something like this too. In general, if you have one page that's replacing another one, then a redirect is a fine thing to do here. If it's something that you think is going to permanently replace that page, a 301 redirect would be the right one. If you think this is something that will change over time or maybe the redirect will kind of revert and won't redirect in the future, then a 302 would be the right approach here. From a practical point of view, there are two things that kind of play into in here when it comes to Google. On the one hand, we try to differentiate between should we be indexing the content using the originating URL, so in this case that search query, or should we be indexing the content with the destination URL, which might be slash video games slash Xbox. And the 301 and 302, they help us to make that decision. So 301 tells us you should prefer the destination page. And a 302 tells us you should prefer the originating URL. So that's something that kind of plays in there. The difficulty that we find in practice is that the web is really messy. People do things in really weird ways across the web. And we have to still try to figure out what it is that they actually meant here. So for example, if we see a 302 redirect being in place for a longer period of time, then probably we're going to assume that this is not a temporary thing, but this is something that's more of a permanent thing. And we'll start treating that like a permanent change. So that's one thing to keep in mind there. The useful part here is that it doesn't really matter which of these URLs is actually picked for indexing because we rank the page in exactly the same way. So from that point of view, I would really focus more on which of these redirects is the right one to do for this situation and not worry about the SEO aspect. Because from an SEO point of view, it's really more which of these URLs do we show in search and not which of these gets page rank or how they rank differently, because that's all the same. We just show a different URL in search. But from a ranking point of view, they would be equivalent. Many e-commerce websites optimize their categories by adding a big chunk of text under the product listings. Nothing except an H1 heading above the fold. I don't consider this good usability since users need to scroll all the way down to read this. Let's see, does Google treat this content the same as any other? Or would you, for improving rankings, recommend putting the category text above the fold? So this is something that comes up fairly regularly. One of the reasons why websites initially started doing this kind of workaround is that it was really hard sometimes for us to rank category pages on e-commerce sites if there's no useful information on that page, if there's no context on that page. So as a workaround, people started stuffing whole Wikipedia articles below the fold using a small font, sometimes using a link that says more information, and then pops out this giant article of text. And from our point of view, that's essentially keyword stuffing. So that's something which I would try to avoid. I try to stick to really informative content and put that in place where you think users will be able to see it, especially if it is content that you want to provide for users. And more than that, I would think about what you can do to make those pages rank well without having to put a giant paragraph of content below the page. So things you could do here is make sure that those pages are well integrated with your website so that we have clear context of how those pages should belong in the website and what those pages are about. And another thing you can do is when you have that listing of products, make sure that there's some information on those listings that we can understand what this page is about. So instead of just listing, I don't know, 40 photos of your product, put some text on there. Make sure that you have all text for the images, that you have captions below the images so that when we look at this page, we understand, oh, there's this big heading on top that's telling us this is the type of product that you have on your website. And there's lots of product information in those listings. And we can follow those listings to even more information so that you don't need to put this giant block of text on the bottom. Obviously, having some amount of text makes sense. So maybe shifting that giant block of text into maybe one or two sentences that you place above the fold below the heading is a good approach here because it also gives users a little bit more information about what they should expect on this page. So that's kind of the direction I would head there. I really try to avoid the situation where you're kind of fudging a page by putting tons of text on the bottom of the page just because the rest of the page is suboptimal and instead try to find ways to improve the page overall so that you don't have to go to this workaround. Hey, John. Hi, have some follow-up questions on that? So we have a sort of products where not exactly the tons of content above the fold, but we give only the information above that. Just after we're heading. But we kind of summarize also if they are looking for certain products wise. So we tell them, these are the best ones we can think of in the specific category. And we show them in the head section itself. And we somehow for the mobile thing, basically we don't want to pick a very big folder. So we kind of put them in a coin or something like that where the user can actually click to expand. So they get this information. I think that's a useful thing to have. So that's why we put it over there. So just wondering, like, I mean, is it like OK or we should get rid of all the things? Like, I mean, that's we think basically users are looking for certain products which might be useful. Yeah, I don't know. Offhand, that sounds OK. What are the things you can do to be more sure that this is really working for users is to just track what users are doing there? So how many people are clicking on this expand page? Is this something that's really common? And at some point, you might also say, well, if everyone is clicking on this expand thing, maybe we should just make it visible by default. Or maybe we should make a part of it visible by default. That might be an option there too. I think it's really useful that you brought up the mobile side because that is one area where we've seen that site sometimes struck, especially with regards to content, where on their desktop page, they have that giant paragraph of text below the fold. And on the mobile page, they remove it completely. But they don't fix the rest of the page so that we understand what is really there. So that's one of those things where if you make sure that the mobile page is really equivalent to the desktop page, and that kind of automatically works, and I think your approach is really good there. So that's one thing I'd recommend doing is really making sure that the mobile version of your pages also have enough content so that we understand what they're actually about. Sure. And you talked about when the product listing have enough information about the product itself. So on that part, I think again, we have those product listing, but these are something we cannot show all the details with the present view in the mobile itself. So we again, we can collapse things and then they will see the product details and everything. I think that is OK. Yeah, that sounds good. I think in general, if users, when they go to that page, they understand or they can get that detailed information, that's perfectly fine. It's a problem for us more. If users search for something, we show them your page. In the search results, they go to your page. And on your page, then they're like, this information is not there. I don't find what I was looking for. Then that's a problem for us, because it feels to us like, oh, we misled the user into thinking they can find this information. But maybe it's just hidden away in one of those tabs because they can't figure it out on their own. But if this is obvious for the user, it is something that is really clear that when they go there, click here for the full product description or the technical details, I think that's fine. All right. Thanks, Shilin. Sure. If a schema is a question. Yeah, yeah. I can ask a question about we created some simple tools for our website. You can use it online. For example, if you integrate some Excel document and it combines some information, it saves time in our industry. But we have some traffic from Google. Like 100 people per day visit this tool or use it. But we can sell it. We don't have any benefit from this, just to help people. And I'm interested if we create more these tools. It helps to promote our website, I mean like our commercial pages where we can sell it. Yet benefit. I think that's a good approach. That's something where if you're creating something of value that people like, that people will link to and recommend to other people, I think that's a good thing to have. And there definitely is some side effect there in that if your tool links off to your other product pages, the other services that you have, then that kind of helps those as well. I think that the only situation I would watch out for is if those tools are completely different from the rest of your business, then maybe it's confusing if you have those all together on the same website. But if they're kind of related, like if you're making the software tool that people can use with Excel for free, and you provide some other software that people can use to do kind of more complicated work and you sell that, that seems like a good mix. Oh, thank you. All right, if a schema on a site has errors, how much of impact does it have on indexing and in the search results? New schema types approved by Google started throwing errors on a site which did not have errors before. What's going to be the impact? So we look at this on a kind of almost like a feature level where we save in order to present your site in this particular way. We need to have this kind of markup on the page and it needs to follow these guidelines and it needs to follow these requirements. So for example, if you want to be visible as a recipe, rich card in the search results, there's certain requirements that you need to do. And we'll look to see if those requirements are met. And if the markup for those requirements is valid, and if that's the case, that's good. If there's other markup on the page that is invalid, then that's not a problem for us. So it's really more on a feature level. We try to show you. We want to show your site with this rich result for recipes. We see that you have all of the requirements. We'll take all of that and show that in the search results. We'll present your site in a way that really encourages users to kind of go and check those details out. And if you have other markup on those pages that maybe matches one of the other new features that is out there, but it's not valid markup yet, then we just ignore that. So from that point of view, it's not that you need to have zero errors for all of your markup, but rather you need to think about which feature you'd like to kind of make use of in the search results and double check that the requirements for that feature are met. When the team pushes out algorithm changes, are there times where the changes are aimed at just a specific industry? Or are the changes made and they just happen to affect one industry more than others? So I guess this is an interesting question with regards to generally how we work on our search results. So from our point of view, it's usually not the case that we would say we need to do something specific to make the search results better for one particular industry, but rather we look at it the other way around and try to think about ways that we can improve search results with regards to relevance for users with specific types of queries. So it's not so much that we focus on the industry, but rather we focus on the searches that people make. So obviously they're kind of related. If we see, for example, that people are getting confusing information for medical queries, then maybe we need to improve how we recognize the relevance of search results for medical queries. And it's not so much that we would target the medical industry and say, we need to improve the way that these particular 10 sites are shown in the search results, but more that we see users are confused with this type of query. It's something that's confusing a lot of people. We need to find a way to improve the relevance and the quality of the results for the medical. I migrated the website from domain A to domain B. All 301s have been in place from every old URL to the respective new versions since day one. Change of address request was submitted. Domain A has an old sitemap updated. All URLs redirect to domain B. Domain B only has a new sitemap file updated. And all the current rankings are lost. So it sounds like you have pretty much everything set up, but maybe something went wrong along the way. So what I would recommend doing here is posting in the webmaster help form to get some people to really look at this specific situation and to see if there's something specific that might have gone missing or that you might have overlooked or maybe there is even something on Google side that is somehow subtly broken. And the folks in the forum can generally figure out which categories that fits into. And they can usually help you to find an approach that would work here. And there's certainly some situations where moving from one domain to another do lead to issues. In particular, if the domain that you're moving to has weird old history associated with it, that might take a bit of time to clear out for us to recognize that actually this new website is not related to the old one. And we should treat this as a new situation and not take the old situation into account. But again, the folks in the forum, they're pretty good at sniffing out what might be happening there. So make sure to provide all of the details. Some of the queries that you're using to look and the URLs that are in there. Since Google Plus is shutting down, is it possible if Google can provide a way for publishers or users to port their followers and connections to YouTube? I don't know. I don't think so. So there are ways to export your data from Google Plus using the takeout feature. And there are various tools that migrate it to other platforms. But I'm not aware of anything that would take someone who is following you on Google Plus and automatically make them follow you on YouTube. I think that would be stretching it, because people might choose to follow differently on YouTube than they would otherwise on Google Plus. Hey, John. Hi. I can ask you a question about the ranking in the top story, Scarosell. Sure. OK, thanks. The past few months, we noticed a strange behavior. I run an international news website. And we noticed that for the same query, we ranked very well in the news tab in the SERRP. But for the same query, we don't appear in the top story, Scarosell. And for the same query, on the other side, we are very well ranked for the video, video, Scarosell. So my question is, there is a particular structured data we can implement in order to appear in the top story, Scarosell. Notice that we correctly implemented the AMP pages, the structured data about news articles, and so on. So we are wondering if there is a particular implementation we have to do in order to appear in the top story, Scarosell. Usually not. So if you've implemented the AMP, then that's, I think, for on mobile, that's something that's required. I think on desktop, you don't need to have AMP for the top stories, Scarosell. I'm not 100% sure on that. But if you have implemented it already, then you're kind of covered anyway. But otherwise, the top stories feature is an organic search feature. So it's not that you need to do anything specific to say, I want to be visible as a top story result. But rather, we try to pick that up organically and show that when we think that it makes sense. So it sounds like you're doing a lot of things right with the video Scarosell, with the news results. So you're probably on the right path there. I don't know if there's anything specific that we'd be able to point out and say, you need to do this differently so that we can show you there. What you can do is maybe send me the details so that I can double check with the team to see if there's anything happening there. So I've passed on a bunch of these in the past. And the team so far has looked at these and says, well, it looks weird, but it's working as intended. So I can't guarantee that things will change. But I'm always happy to take these kind of weird situations and pass them on so that we can make sure that there is really nothing that's artificially or accidentally blocking. Is it possible that if the image is not in the very top part of the page, this influence the appearance of the page in Top Story Scarosell? I don't know. I don't think that plays a role there. So it is for image search. We try to figure out if it's more of a landing page or if the image is just randomly on a page. But as far as I know, for Top Stories, that's not something that plays a role there. OK, thank you. All right. Can you tell us more about why these big government publishers were hit? IRS, DMV, Medicare, even though they are not government-affiliated, as the article points out, they did provide helpful content. Would another site that wrote on government information be susceptible to be hit as well? So I don't know exactly what particular sites are mentioned there. It seems like there is like this subtle mix here in that you're saying they're not government-related. But at the other hand, you're saying they are big government publishers. So maybe there is some confusion there. But in general, I don't really have any information about why specific sites are changing your rankings. That sometimes happens. That's not something where we would generally call out specific things to do. And sometimes when these sites post in the help forums or when they ask us on Twitter, we can point at specific things that are problematic. In particular, if we see technical things that are implemented incorrectly, then that's something that we'd love to point out. But sometimes things just change in rankings where we try to improve the relevance of the search results overall. And that can affect some sites more than others. There's a bit of noise in the background. Let me see. OK. Pop-up interstitials, I think we did that. How to ensure that a GeoTLD, to have a GeoTarget set or not. So if I type hotels in New York, in India, then it shows Indian websites. So I think the question is, how can I double check what kind of GeoTargeted queries look like? The thing that I usually do to double check what the results kind of look like in specific countries is on the one hand, to go to that local Google version. And on the other hand, there's an advanced search setting that you can do to say, I want to see results for this specific country. And you can get there fairly quickly by just adding or changing the URL parameters. So in the long query that you have for the search results page, you can generally add like an ampersand and then gl equals and then the country code. So gl I think is Geo something, which tells us you explicitly want the search results for that country. You can also use hl equals and a language code if you want the search results for a specific language. Both of those are things you can just set through the advanced search settings in the search results page too. But I find it a little bit easier to just change the URL and then hit refresh to get the updated search results. So on a country level, that works fairly well. What it doesn't do is provide the local search results. So if you're looking for pizzeria in one city, then that's not something that I believe we have as a parameter that you can just add there. We have an armchair that comes in leather and fabric. Each version has two color options. The leather and fabric are different model numbers. So we list them as different chairs. Is this a problem or would they be filtered out for duplicate content? Would it be better to have one listing that says in leather or fabric? That's a really common question that we get a lot, especially for e-commerce sites. And unfortunately, the answer is it depends. So the way that I would look at this is by default, I would prefer to have fewer pages. And the advantage of having fewer pages is on the one hand, there's less to crawl. So it's easier to update. And on the other hand, fewer pages mean that we can concentrate the value of that content on fewer URLs. We don't have to distribute it and dilute it across a lot of different versions. So if there's a way that you can have one product page that lists those specific variations, then chances are that one product page will be more relevant in the search results in general because we are able to concentrate all of those signals, all of that value, into that product page. So that's kind of my general direction that I would head. The thing that I would call out as an exception here is that if you can tell that people are explicitly looking for something different, so one of these variations is very different from the other one, and it doesn't make sense to combine them. So for example, if you had an armchair that, I don't know, had gold-covered wheels or something really random and people were explicitly searching for this and they really, really want this armchair with gold-covered wheels, then that might make sense to pull that out as a separate product.  That's exactly what I was looking for. Then that works a little bit better than they land on a generic armchair page that has different variations. And somewhere in the fine print, it says also in gold-covered wheels. So that's kind of the approach I would take there. First, figure out is this really something unique that people are explicitly looking for? And if so, maybe split that up. But otherwise, by default, try to prefer having fewer URLs and making those URLs stronger instead. We have an e-commerce, if you have an e-commerce website and you notice you get a lot of links to product pages, which due to their very nature expire in a short space of time, what's the best solution to this problem to ensure that link equity built to those pages won't be lost? Would you create a redirect rule that automatically redirects this product page once expired to a subcategory? What can you do there? I think, in general, people see this more of a problem than it actually is. So I also get this question quite a lot. How do you handle expired content? And for the most part, if the content is so temporary that it expires regularly, then usually that's not something that people will link to. And maybe that's something that you can also encourage people to link in different ways. For example, if you know that this product is only going to last maybe a couple of months and then it's not going to be available ever again, maybe it makes more sense to encourage users to link to the category of products instead or to your business instead of linking to this one specific product. Because in the long run, those links to that product that no longer exists, maybe in a month, that's something that doesn't really make sense for other people as well. Who would click on a link to, let's say, football world champion tickets from 2018? It's not really that useful anyway for people to click on. So what I'd recommend doing there is, on the one hand, if you have products that change over time, then maybe that new product is a replacement of the old one. And you can redirect from one old product to a new version of that product, which certainly makes sense. And I think that's something that's reasonable to do and that's reasonable for users when they click on a link to go to the new version of that product. On the other hand, if this is kind of an informational landing page that is relevant regardless of whether or not you sell that product. For example, if you're selling laptops and you're the company that makes these laptops and the models from last year and the models from the years before, they're no longer being sold. But the technical information is still relevant. It links to the support information, the drivers, the downloads, whatever you have there. They might still be relevant. So those might still be pages that you'd keep up anyway. On the other hand, if you're just kind of a reseller of those laptops and you don't have them anymore, there's usually no reason for people to go to your pages for that specific laptop because you don't sell it anymore. You don't have it anymore. You don't have a lot of those details. So that's something where it probably just makes sense to return a 404 page or to return a kind of a customized 404 experience where you're saying, well, we don't have this particular laptop anymore, but we have the new version of this laptop or we have a different brand. And here are the options. Or maybe even like we don't sell this laptop anymore, but here is a listing of the category of the same type of product. And that's something that's also fine to do. What I would just expect from a search point of view is that we would see those kind of pages as soft 404 pages and say, well, you're seeing this product doesn't exist anymore, but you're still showing some content. So instead of showing that page that says, this is no longer available, we will just concentrate on the final page instead. So we would drop that old URL from the index and focus on the rest of the pages otherwise. But I think there are lots of subtle edge cases here. So I'm really hesitant to say everyone should do it like this or everyone should do it in another way. There's some really neat presentations and write-ups on how to handle expired content out there. So I'd look around to see what options are available, what options would make sense in your specific case. And maybe there are mixes that you can do as well, where you say, well, in the first month or so after this product is no longer available, I do this. And then a year after the product is no longer available, I do something completely different, where I just return 404 because it's really gone and nobody should care about this anymore. That's all different variations that you can do there. But in general, I wouldn't worry too much about those links, especially if they're to products that are really temporary by nature. Because if you're building your whole user experience up around how Google handles those specific links, then chances are you're taking a bigger hit by having a bad user experience than you would ever gain from tricking Google into thinking that those two links that went to one expired products are now relevant to a different thing. Um, OK. Let's say I have a big 10,000 words piece of content, for example, a guide divided into 10 chapters. From an SEO perspective, is it better to publish it on a single page or to split each chapter on a different dedicated page? Unfortunately, I think the answer here is also it depends in that sometimes people are looking for one big comprehensive piece of content, and sometimes people are looking for individual pieces of content. So I don't know if it would make sense to always go into the combined route or always go into the split route. What I've noticed in working with our tech writers is that sometimes content performs in ways that you don't expect, and it's worth testing it to see how it works well for users. Kind of trying to figure out, are people actually going through that content and getting something useful out of it? Are they converting in a way that is useful for you? And based on that, then making a decision. For example, if you split an article up and they all start on page five instead of page one from the search results, is that still as useful to you and to users as if they landed on a big article where they had all of the comprehensive information? I don't know. Maybe there are ways that you can make both of those work. So I'd really recommend testing this and not blindly saying, from 8,000 words, I need to split it up into at least two chunks. And instead, trying to figure out what makes sense for your particular piece of content and what makes sense for your ultimate goal. You're putting this content out there because you want to achieve something specific. So measure what that effect is based on those different variations that you're thinking about. I noticed a few big publications listed in Google News are backdating some of the news articles to fool Google search users into believing that they're the first source of that news. Can Google detect this? How does Google act on this? Where can we report such findings? We use multiple methods to figure out what the right date is for a page. So sometimes people put a date on a page and we say, well, this is not correct and we'll treat it as something else. So that's something where I don't know if I would assume that just by backdating something you would have any kind of preferential visibility in the search results. So I kind of questioned that part of the question there. One of the things I have noticed, though, is that a lot of publications have trouble specifying dates in a way that are kind of reasonable for Google and in a way that are hard to misunderstand. So sometimes it's something as simple as the date format where we can't recognize that this is actually a date. Sometimes it's something kind of tricky in that sometimes there's a time zone specified. Sometimes there isn't. Sometimes they're using structured data to specify a date and a time. And then on the page, that information is not available. All of these things can make it really hard for us to pick the right date. So sometimes it's not so much a matter of a publisher trying to mislead Google, but rather Google kind of being confused by what a publisher is providing. And those situations are always interesting for us. So you're welcome to pass those on to me so that we can take a look to see what is actually happening here. How did we get confused? What could we do to make it so that webmasters and publishers understand better how to provide dates that work well for Google as well? When it comes to categorizing content, AdSense is classifying some of our pages as adults. And after a manual review, lifting this restriction, does AdSense feed into, or is it linked to the search categorization, or do the two platforms use the same algorithms or talk to each other? So as far as I know, AdSense does a lot of these classifications completely differently from Search. They use their own systems for this. Part of that kind of makes sense because they have different policies. So when it comes to Search, we might choose to show things in one way. But AdSense, because they're focused more on the advertising part of the kind of setup there, they might have more restrictive policies where they say, well, this type of content is not something we'd like to place ads on. Or they just might have different policies than we would have in Search overall. So just because you're seeing something happening from the ad side doesn't necessarily mean that the same thing would be applying from the search side. When will structured data testing tools start showing schema injected through Tag Manager in JSON-LD? I don't know. I have seen that question pop up again on Twitter. So I'll definitely bring that up with the team as well to see what we can do to make that a little bit easier. In general, using the Tag Manager to inject things like structured data or to inject other search related functionality into a page is something that you can do. It's something that we often pick up, but it's something that's a lot harder to diagnose. And it's a little bit fragile. So that's something where I would recommend, if at all possible, to make sure that you can inject the structured data directly on the page. That way you can use all of the testing tools out there to determine that it's working correctly. And you can be sure that Google Search is always taking that into account. Whereas if you use Tag Manager for some of these things, we can pick that up when we render the page. It takes a little bit longer to get there. And if anything happens to subtly break along the way towards rendering that page, then it might happen that we don't pick it up. And it probably will happen that other search engines won't be able to pick that structured data up either. So I'm OK with using Tag Manager as a stop-gap solution until you can actually change those pages. But I would really recommend in the long run to make sure to put that structured data directly on the page so that you don't have this kind of unclear situation. When a website rolls out a new tech stack progressively, in Googlebot, see some sections of the site and an old stack and some on a new stack. Let's see. Is this scenario something crawlers and users will be routed to? What should be monitored to ensure that all goes smoothly and organic search isn't impacted? So I think that last part is something you need to be aware that it's essentially impossible to guarantee that if you make bigger changes across your website that organic search won't be affected by that. There are positive and negative aspects there. On the one hand, you might be making bigger changes on your website, especially because you want organic search to be impacted because you want to rank better. So that's something we should be able to pick up. On the other hand, it's very possible that you roll out a new tech stack that breaks a lot of things that used to work well for search. So I would say that any time you're doing a bigger revamp of a website, you have to assume that this can affect search. And it's worth getting help from SEOs, getting help from developers, from other people, to double check things ahead of time rather than to try to go in afterwards and say, well, this didn't work. Our website disappeared from search. What do we do now? Because if you're trying to fix it afterwards, it's always going to be a much bigger struggle. It's going to take a lot longer. And it might be that you really kind of break things in a way that have a longer term impact that take a lot longer to actually fix. Then if you had the right help and the right advice from the beginning before they roll out. Obviously, sometimes schedules work out in bad ways, and sometimes the right people are not involved in the right steps, things happen. So you can't always prepare for everything. With regards to gradual rollouts, I think that's a good approach to take. And that's something where you can see how search engines start crawling the new stack that you provide. If you don't change the URLs, which is usually an ideal situation, then you can see how those URLs kind of change their performance in search. You can see that in Search Console, kind of the clicks and impressions for those URLs. And if you give it a little bit of time to settle down during your rollout, then usually you can kind of make sure that, OK, this is working. I can take the same kind of setup and apply it to the larger part of the website and really progressively roll that out. A little bit of noise somewhere. Let me see. OK, can a really bad blog cause an entire website to drop in rankings?  OK, so in general, we do try to look at a website overall. And if there are significant parts of the website that are really bad, then that can have an effect on the rest of the website's rankings as well. Usually when it comes to a situation where you have a blog and an e-commerce site, then the e-commerce site is what everyone is focusing on. And the blog just provides a little bit of extra information. And then if the blog is kind of bad, then that doesn't really affect the bigger chunk, the e-commerce site. The one kind of situation where it can play a role, and I think this question kind of goes in that direction, is that if the blog is set up in a technically bad way and that Googlebot has a lot of trouble crawling it, maybe in that accessing the URLs is really, really slow, or it returns a lot of server errors, which in this case is kind of mentioned here, then what will happen there is we will reduce the crawling of that website in general. So it's not necessarily the case that we would drop it in rankings. Bad pages on a website like from a technical point of view, if they just don't work, we try to drop those pages. But if from a crawling point of view we have trouble crawling a significant part of that website, then we will slow down crawling because we want to make sure that our crawling is not the reason why this website is performing badly. So for example, if we crawl the blog and we see a lot of server errors, then we might say, well, maybe we're crawling too hard. We don't want to cause any problems. We will reduce our crawling speed. And if the e-commerce site is on the same setup as the blog, then we would also reduce our crawling for the e-commerce site. So we track the amount of crawling that we do on a host level. So if these two parts are on the same host, then we would probably try to crawl them at the same rate. And if one of them is really bad and that we can't crawl it without a lot of server errors, then we'll reduce the crawling overall. And for a lot of websites, that doesn't really matter. We can still keep up with most changes on a website, even if we don't crawl as frequently. For a large e-commerce site, that can play a role, though. In particular, if you have products that come and go and we can't keep up with crawling those products as they come and go, then the search results for the e-commerce site will end up getting a bit stale. And that's something that maybe users will see in the search results. So if they're searching for a new, I don't know, a new phone and your e-commerce site has that new phone, but we haven't been able to crawl those pages yet, then we wouldn't be able to show your site in search results for that new phone. So that's something where I would try to take a look at that and see what you can do to improve it. So from a quality point of view, again, it's less of an issue if a part of the website is not really that great. Obviously, it can affect it as well. But especially from a technical point of view, if we have significant issues with crawling a part of the website, then we will crawl less frequently. And it's not a penalty. It's not something where we're saying, oh, this website is bad. We will not spend so much time there. It's more a matter of our algorithms trying to be good citizens of the web and saying, well, we want to be sure that we are not the reason why this website is having so much trouble. Does Googlebot follow the sitemap command in robots.txt file? We do pick up the sitemap file there, but Googlebot doesn't crawl it as a link. We process sitemap files individually. They're XML files. They're not pages with links in there. So Googlebot wouldn't follow it as an HTML page. It would request it as a sitemap file and process it with our normal XML processing instead. In a media website, I have a responsive version of the home page section's news and the news also of AMP versions. Do you recommend having AMP version of the home page and the alternate section so that Google finds the AMP version of the news first? Does it have any effect on speed of indexing? So from an indexing point of view, I don't see any reason why you would need to do this. We pick up AMP pages when they're connected to the normal pages by crawling the normal page first, and then we see the link to the AMP. We follow that, pick up the AMP page as well. But primarily, we crawl through the normal, I don't know, legacy version of the page or responsive version, I don't know how you would call it. We would crawl with the non-AMP version. The exception is, of course, if your whole website is AMP, then obviously, we will crawl back. With regards to having AMP versions of the home page and the sections, ultimately, that's up to you. So that's something where if you're seeing users go to individual news articles and they click on the home button there and you send them to your responsive home version, maybe that's OK, maybe that's confusing for users. Ultimately, that's up to you. Usually, those pages would not be kind of shown in a news section where we do pick up the AMP stuff. So probably that's less of a direct issue than more of something kind of indirect and long-term. Do you recommend having a sitemap file for URLs in the AMP version? No, you don't need to do that. Again, the exception is if your whole website is AMP only, then obviously, those are your pages. So many more questions. Wow, how do we ever get through? Since we're kind of running low on time, maybe I'll just switch it over to questions from you all. What else is on your mind?  That's partially working. Submitted questions also seems to be working, at least maybe even working too well with so many questions being submitted. What else is on your mind? Can I ask some questions? Sure. You mentioned today about the category page, that these pages are not written good because they have information, useful information, text. But I have some customers and they have text in the bottom line of this page. And today, it works good. We have traffic, sales, but these texts are not good because it was written for robots, not for people. And today, we don't know what to do. If we delete this text, we can lose our rankings. And second one, we don't know how we can integrate this text to make redesign what you can propose at this point. Yeah, I would look at this as more of a midterm or a long-term project to think about ways that you can integrate part of that text better within the normal part of the page. So it's not the case, at least at the moment, that we would look at those pages and say, oh, this is terrible, we should demote the website for doing this. But rather, we try to pick up additional content there. And to some extent, I think that additional content is useful. But if you can't just squeeze it into the rest of the page, then try to think about ways that you can do that in the long run. And especially what I would recommend doing is try to find ways to reduce the amount of text that you're providing like that. So instead of this big Wikipedia article on the bottom, reduce it maybe to a couple of sentences so that it's still useful for users when they look at it and still provides the right context for search engines when they look at the page overall. OK, thank you. So it's not something I would say is like a critical problem that you need to solve immediately, but rather is something where maybe people have just been using this as a way to, I don't know, work over other deficiencies on that page in the beginning. And maybe it's better to just fix those deficiencies in the long run than to continue building out these long texts that nobody reads. OK, if we rewrite this text to put some useful information and what problem we have today is that we have some keywords on this text, and it's connected with keywords where we get traffic from Google. And we think if we write some interesting text for clients, for customers, and we can't use the same keywords, it means it's better to rewrite it, yeah? I don't know. I would try to look at ways that you can make the text work for both. But again, I would look at this as something more long term and not say, oh, I need to rewrite everything today. Otherwise, Google will penalize me. But I think a lot of times people put a lot of text on these pages specifically for search engines, and they don't realize that search engines ignore a lot of that text already. So if you can reduce it so it's less keyword stuffing maybe it even works better. But it's something that sometimes takes a little bit of practice and finding the right approach to making sure that you cover the content that people are searching for and also provide the context that people need when they look at that page individually. Thank you. One more question, OK? Sure. I usually write the blog post for my Russian blog. And I know about recommendations that I need to use a lot of alt tags in any pictures. But if I write step-by-step guides, information like this, I use a lot of screenshots. Do I need to put alt tags because I'm not sure that I need to get traffic for these screenshots from Google Image? That's up to you. That's totally up to you. So I would look at this more as how would people searching visually come to my website rather than how can I get as many images as possible into Google Images? So from that point of view, if you're saying these screenshots help to those pages, but nobody is going to look for this screenshot, then why bother? No need to kind of go into too much detail there. Obviously, for screen readers, having the alt text is useful. So some amount of alt text is useful there. But if you know that people are not coming through with Google Images to your website for those images, then you can write your text in a slightly different way. You don't have to worry about kind of the image search targeting part of that. OK, thank you. All right. Wow, lots of stuff happening in the chat. I have no idea what is happening there. I hope it's all good. OK, I think time-wise, we're a little bit out of time. I need to head off to some other stuff as well. Thank you all for coming. Thanks for submitting so many questions that we didn't get through. I'll set up the next batch of Hangouts so that people can submit more of the things that we didn't make it through this time. And of course, you're all welcome to hop into the Webmaster Help forums where lots of product experts are out there to help you with some of the questions that you might have. So with that, I'd like to thank you all for coming and wish you all a great weekend. Thank you. Good bye. Thanks, everyone.