Hey, what's up, Coach? Welcome back to our YouTube channel. In today's video, I'm going to be talking about the pros and cons of being a coach or personal trainer. If you're working with clients, whether you are brand new, maybe you've been doing this for a while. I'm going to be talking about the differences and the benefits of being a coach or personal trainer having your own business. Now, this is for you if you are considering having a business. There's a big difference between having a business and not having a business. When you don't have a business, a lot of the stuff that we talk about today will not apply to you. I'm going to assume this is for you if you are already in business. Let's dig in. Let me first start with the cons of coaching a personal trainer. This is what I experienced early on with my business. It's good that I share this with you. Maybe you can relate to me. When I first started a bunch of the problems that I ran into, it came down to clients who were uncommitted, clients who didn't pay or clients that owed money. That was my fault. I ultimately attracted clients that would show up late. They didn't respect my time. Clients who were late on paying. I would do this session and then I wouldn't get paid and I would get paid like a week later or a month later. A big con with that is sometimes based on how you run your business. You are at the disposal of your client's time. If they show up late, what are you going to do about it? Are you going to fire them or are you going to just continue working with them, let them run all over you? Again, these are problems that I ran into early. If you are disorganized with your business, you are going to run into a ton of problems. Not only financially, but you're always going to feel like your clients don't respect you because they are never on time. A couple other cons that I want to touch on is you can easily be burned out with being a personal trainer or coach. That comes down to how you have your schedule set up. I ran into this problem personally. I remember in the summer, I think it was 2014, I was training around 37 sessions per week. That is a lot. That was just the training. That had nothing to do with customer support, dealing with clients outside of the sessions, setting up the sessions. I was working probably 70 to 80 hours every week of just preparing and working with my clients. That's a lot. It's a lot more than the average person who works 40 hours per week. Again, that came down to my scheduling. My scheduling was terrible, but I set it up that way. That was my fault. These are choices. A lot of coaches and trainers, they make without really thinking. They are just like, I want to take on more clients. When we take on more clients, you end up working more hours. That leads into my next con here, which is a lot of coaches and trainers, they trade their time for money. They're saying, this is how much I'm worth for one hour. Typically, that's 40 to 60 bucks for that one session. Then that client comes, you train them, they pay you for your time, and then they leave. Then they come back again the next week or the next session, they do the same thing.  The only way to make more money is by spending more time. That means you have to work more. A lot of coaches and trainers look at this as a service-based business, and it is, but it's impossible to scale what you do if you are trading time for money. This is why when I look at coaches in our mastermind program, when I help them evolve what they do with their business, we stop thinking in terms of trading time for money. We start thinking, how can we maximize our time so we can take on more clients at once, and when those clients are training with you, now you are making way more money per session, making way more money per month, and we're starting to minimize the amount of time that you work throughout the month. Here are the pros of being a personal trainer. For me, it's freedom. I don't have to answer anyone. I get to wake up whenever I want. I get to work whenever I want. I get to take on whatever clients I want, and my schedule can be whatever I want whenever I want. Now, if you go back earlier and heard what I said about getting burned out and stuff like that, I already experienced that. I learned very valuable lessons early on. You can't just work like a dog 24-7 as a trainer. You need to have time off. You need to set your schedule up correctly. You need to have a certain amount of sessions that you can do throughout the week that make you, as the coach, happy to where you have a high energy level throughout the week with the sessions that you're putting on. When you have a lot of freedom within your business, then you get to decide who you take on as clients. That comes with experience. The more experience you have, the more picky you can be with the clients that you work with. The less experience, I would say, the less picky you get to be taking on clients. When you go back and you think about, well, if I don't have to work for anyone, then who's going to get me clients? I look at that as a big pro within the training industry. I get to market myself however I want. No one is telling me what I can or what I can't say. I get to do that however I want. I can market as hard as I want. I can be on Facebook every single day. I could be writing a newsletter every single day, right? Another pro is no one's going to be able to cap the amount of money that you generate. If you set up your program, whether it's in person or online, if it's in person, there's no cap on what you do financially. You could have hundreds of clients. You could have 20 clients. You could work three hours per day. You could work one hour per day. Whatever you're doing, is it scalable? Yes or no? Are you trading time for money? Hopefully you're not. When we think about the financial aspect of coaches and trainers, when you set up your business the right way and you set up to where it's scalable, you start to work less and generate more income. This is why it's very common for coaches that work with us in our mastermind. They can go from, I've seen many coaches have gone from like $5,000 a month to $20,000 a month. That's because we change the way they approach their business. We change the way their model, their business models. We flip it upside down and we reverse engineer the process from start to finish, where here's how you get clients. Here's how you train clients. Here's how we put them into a system. Here's how we get them results. Here's how we can track everything. Here's how we can systemize everything and here's how we can scale everything. Again, if you're one of those trainers that wants to bring on infinite amount of clients, well, because it's your business, you can hire other coaches and trainers to work for you. It's why you're working on the business, not in the business. That's very common for a lot of coaches to work with. Once they develop their client base and they start to get more success and they start to be more well known within their area, they start to bring on other coaches. Now they can delegate coach one, coach two, coach three. They can start to bring on more clients. Again, as the business owner, you're not having to fulfill the work. You are bringing on coaches and other assistants. They can do the work for you. I hope this video helps you. You can look at some of the cons, some of the pros. If you're a coach or trainer and you already have a business, I'd love to hear from you in the comments. Tell me where you're based out of.  My number is<PHONE_NUMBER>. Every single day coaches and trainers reach out to me. They're texting me. I get on calls with with coaches that are just like you and I want to see how I can help you grow your business. Currently we're serving tons of coaches throughout the world. They're part of our mastermind program and I think that'd be a great fit for you. If you're serious, you love helping clients and you love seeing a huge difference with within your clients lives. That's it for today's video. I'll see you soon.


A i ddim yn gwybod i ddweud y sydd wedi ei dweud arian yn yr unig o'r ffordd o ddeligedd ar y cymryd hyaidd, ac mae'n teimlo i fy mod dechreufwy o'r pethol. Ychyniddiadol ffasilfoton 1328 yn yr ymddiiddor John Adam, a srif i ddweud ffasilfoton, ac amgylcheddor John Adam, nhw hefyd, i ddod yr elcau. The motion is moved, Presiding Officer. If any member wishes to contribute, please press your request to speak button now. I call on Stephen Kerr. I rise to speak against— Sorry, Mr Kerr. Can you just excuse me for one moment, please? Okay. Thank you, Mr Kerr. If you could just bear with me, we're going to hear from Mr Bibby first. Neil Bibby. Thank you, Presiding Officer. I wish to move an amendment to the business motion requiring a ministerial statement to take place on Covid vaccination certificates. This is something Scottish Labour requested that the parliamentary bureau both last week and this week. Parliament voted for certification after the Scottish Government brought forward a debate, but it did so before the Government could set out how the scheme would be implemented. The Government rightly saw the importance of debating the principle of the certification in Parliament. We didn't support the Government's proposals, but it's equally important now that there's proper and full scrutiny of the Government's implementation of this in the chamber. The First Minister's Covid updates are on a range of issues, and we need dedicated time so that members can raise the many questions they have about the implementation of this scheme. Many sectors of the Scottish economy have questions that they want us to raise on their behalf. Indeed, we learned today that the Night Time Industries Association are launching a legal challenge. The scheme will have a massive impact on businesses and workers and will go live at the end of next week. We need a statement because there are still too many unanswered questions. For example, where is the economic impact assessment? Will one be carried out? Further questions about what is a nightclub and what isn't. Detailed questions for venues that don't normally have door staff about how and when enforcement is carried out. I wouldn't expect the Minister for Parliamentary Business to be able to answer these questions now. That's why we need a dedicated ministerial statement or another debate if the Government wants one in this chamber to address the many outstanding concerns that our constituents have. I move the amendment. I rise to speak against today's business motion. The proposed programme does not include a further debate on the details of the Scottish Government's shambolic vaccination certification plans. While we will support Neil Bibby's amendment, we still believe the final business motion if amended falls short of an adequate level of scrutiny. Members really should need no reminder. It is the business of Parliament to scrutinise the executive. After weeks of the Deputy First Minister dodging questions on the definition of a nightclub, the First Minister yesterday believed that she had clarified the matter. In fact, her definition raised more questions than it answered. Dr Liz Cameron, chief executive of the Scottish Chambers of Commerce, said that the Government's new definition will result in thousands of businesses being caught up in vaccine certification rules with little time left to understand, plan and implement. She said that the Scottish Government was now going beyond what was initially proposed. Each time the Deputy First Minister dodged the question, it was Scottish businesses who lost out. Each time an SNP backbencher read a Google definition of a nightclub and what I am sure they thought was a clever debate rebuttal, it added to the confusion for Scottish businesses. Now, with the First Minister's new definition, thousands of business owners are despairing at being included in the category of nightclub, despite being nothing of the sort. There is confusion, genuine confusion. The First Minister may assume a certain level of intelligence among those she speaks to, but I for one would rather the Government explained itself rather than suggest that those who do not understand are simply stupid. I hear that there is now a legal challenge being mounted. Presiding Officer, we must have more time to properly scrutinise these proposals in a meaningful way. The business motion does not allocate time to do so, and that is why we will be opposing it at decision time. Thank you. I now call on George Adam to respond on behalf of the Parliamentary Bureau. Initially, when I took on the role of Minister for Parliamentary Business, I vowed that I would be reasonable with colleagues in the Parliament, and I have said to Mr Bibby on numerous occasions that there will be time when we will be able to work together and ensure that you will get a statement that you have requested. There are times when I will not be able to do that. I will give the reasons in this case just further down the line, but I have tried to be reasonable. I think that, just by Mr Kerr's intervention earlier on there, we see how difficult that job is when I am trying to be this reasonable, reasonable individual trying to work through the business that we have got in front of us here today, because how can you deal when you are trying to be reasonable with someone who is just constantly show-boting and just playing for the gallery all the time? It is impossible to deal with that. What I will say on Covid certification and how it works is extremely important, and it is my position that we have had the opportunity to debate, question and discuss, and if surely we can forget the theatrics at the moment, and we can possibly move on to the reasons why I actually believe that there will be ample time. We have had a topical question on the issue last week, we have had Covid statement of which the First Minister has stood in her feet for the past two weeks for two hours and answered questions to every single individual who has asked regarding Covid. During that period, we have had Opposition members, and that may shock you. Opposition members on the issue that I was told at the bureau was one of the most important issues that had to be debated and had to be discussed. Five Opposition members asked questions about it. The First Minister is on her feet for two hours over the past two weeks. There has been a topical question on it. To add to that, the Deputy First Minister attends the Covid Committee every two weeks. Let's revise this again. Apart from the topical question, two hours of Covid-19 statement, the Deputy First Minister attending the Covid-19 Committee every two weeks, I don't think that there's much more we can do. I have to ask if Mr Kerr feels there's not time for scrutiny of the Government, it's not my fault that he's not good at the actual thing itself. He has to ensure that he gets his act together. I would just like to say that the Scottish Parliament has already had a full debate on this issue, and during that debate, the Parliament actually said that it would actually go forward with this. Let's look at this. The whole point is that ministers must review the regulations at least every three weeks to assess whether any requirement and the regulations are still necessary to protect against control or to price a public health response. Mr Adam. I am concerned that all colleagues in the chamber cannot hear your contribution. I would be grateful if we could hear Mr Adam. Thank you very much, Presiding Officer. In closing, I was just trying to say that, as soon as the ministers consider the requirements no longer to be necessary to this purpose, they must be revoked. The devolved position will be that the certification regulations are due to expire on 28 February 2022. Presiding Officer, in closing, all I can say is that our place here is to actually scrutinise to be part of a Government, to come up to solutions, not actually play pantomime season before it is Christmas. The question is that amendment 1328.1 be agreed. Are we all agreed? No. The Parliament is not agreed, therefore we will move to vote and there will be a short suspension to allow access to the digital voting system.


The Kraft Foods Company presents Willard Waterman as the great Gildesleeve. Great Gildesleeve is brought to you partially transcribed by the Kraft Foods Company. Tonight, Kraft has sensational news for all of you about Parquet Margarine. There's a delicious new Parquet and it spreads smoothly even when ice cold. Think of that. The minute you take Kraft's new Parquet ice cold from your refrigerator, it's ready to cut into neat pats, ready to spread smoothly on the freshest slice of bread. Kraft's new Parquet Margarine comes in a new ice blue package. You'll love the way it tastes. You'll love the way it spreads. But the great Gildesleeve considers himself Summerfield's most eligible bachelor. Perhaps his best proof of this is the fact that at present he has two girlfriends. Naturally, this is somewhat flattering to the water commissioner's ego. I'm glad to see the weekend rolling around. Let's see now. Who will I take out tomorrow night? Paula? Or Gloria? Yeah, depends on where I want to go. Nice to be able to pick your girl the way you select the suit of clothes for the evening. Gildesleeve, you're really living. Hello, Bertie. Ironing, Bertie? Yes, sir, just setting up your suit. Which one are you going to want next? Tomorrow night, I think I'll wear the brunette.  Yes, sir. Is Lear-Eye home yet? Oh, yes. He's in there on the phone talking to a little girl. That's why I've been hot for the last hour. That boy, always talking on the phone. Oh, he's not talking much. He's just listening. Oh? She's laying him out. What's his problem now, Bertie? Well, the way I did, he invited a little girl down the street to go to the move. He's meant to forgot about it and invited another girl. Now the girl he invited and forgot about won't let him forget it. You know, I'll have to have a talk with Lear-Eye. He's about as well organized as an octopus. Look at that position he's slid into. One leg draped over the sofa. The other one around the coffee table. He even looks like an octopus. Yeah, but Susan, listen. Cut the wire and get him out of this. If you get your wires crossed like this, you'll never be able to get along with a girl. That's a temporary attitude. I had to make a deal with them. I offered to take them both at once. Girls don't like to be taken both at once. They don't like to think they have rivals. Yeah? They know they have them, but they don't like to think about it. I guess I just don't understand women. Well, my boy, take years of experience and know-how. Take your old uncle. I can handle him like a juggler handles Indian clubs. I go with two different girls myself. I never let the one on my right know who I'm juggling in my left. You mean Mrs. Winthrop doesn't want you to go out with Miss McKinley? No. Well, I have the poor girls all upset and worried. I'm going to phone Paul to Winthrop right now and make a date for tomorrow night. Then I'll phone Miss McKinley and take her out Saturday night. What if they go wise to you? They don't get wise to an old smoothie like me. Now, if you just observe the way I operate, you'll learn a few things. Yeah, I bet I will. This is Drachmaud. Guess who I've been thinking about all day. Yep, you. When I came in the house tonight, I said to myself, I'll phone Paula and ask her for a date tomorrow night. Tomorrow night it is. I can't wait. I'm looking forward to it, too. Great. I have to eat now. Ta-ta. Hi. She wasn't busy, huh? Leroy, when I call them, they're never busy. Get him. Well, I have to call Miss McKinley. This is Drachmaud. Guess who I've been thinking about all day. When I came in the house tonight, I said to myself, I'll phone Gloria and ask her for a date Saturday night. Saturday night it is. I can't wait. I mean, Saturday night is fine. You're fine and dandy. See you then. Could be improved. Talk to both girls at once. Oh, hop in, Horace. Gildy, I need my morning exercise. But I want to talk to you. If you want to talk to me, I'll travel along beside the cab. Oh, my goodness. Jud, you'd never keep up. Perhaps I shouldn't race you on foot. I might get excited and run through a stoplight. You get all your pep. Well, for one thing, I keep regular hours.  Can I help it if I'm popular? I can't stand this. I think I'll get out and walk. No, Judge. Oh, here's a pair of ladies' gloves on the floor of the car. Ladies' gloves? Do they belong to one of your friends? See, they're glorious. Miss McKinley's, huh? Yes. Thanks for finding them, Judge. I think I'll park here at Hogan Brothers and return them. You're going to disturb her during business hours? Why don't you wait until you see her tonight? I'm not going to see her tonight. This is Paula's night. Gloria's night is tomorrow night. I don't see how you keep your engagement straight. Yeah, like I was telling Leroy, you never get mixed up if you're clever. See you later, Judge. No, no. I'm going in with you. Yes. I want to watch a clever fellow work. Yes, yes. Now stand back, Judge. Good morning, Gloria. My throck, Morton. Hello there. Good morning, Miss McKinley. What's that? Oh, Judge Hooker. Yeah, the judge tagged along. Gloria, you were a little careless when I drove you home the other night. I was? What'd I do? You left your gloves in my car. My gloves? So I thought I'd return them this morning. Any excuse to see you? Throck, Morton. Those are not my gloves. He said you're not? Come along, Judge. But, Gilday, if they aren't Miss McKinley, they must be Miss... Come along, Judge. They must be Miss Who. Judge means they must be Miss Singh, from somewhere else. Who knows? Maybe I got in the wrong car this morning. Oh, I get it. Miss McKinley doesn't know about me. Come along, you old goat. What's that mistake about the gloves this morning? You didn't like me to make mistakes. Oh, well. Gloria, you'll get over it. End of this, Gilday. Hello, Bertie. You don't mind if dinner's a little late, do you? Oh, not at all. Miss Margie's out in the kitchen, and we've been talking. Fine. I'll drift out later and see her. Yes, sis. I guess I'll take off my coat and relax. Say, I didn't realize these gloves are sticking out of my pocket. Better stuff them inside. Leroy sees them. He'll start asking questions. They're all my big talk last night about how to handle women. I'd hate for him to know what happened this morning. Hi, Alk. Whoop. Hello, Leroy. I've been waiting for you to come home. You have? I took a telephone call for you this afternoon. You did? Yeah, one of your girls. Oh? Bet you can't guess which one. Well, either girl's likely to call me at any time. Tell me what you want, and I'll call her back. It was Miss McKinley at Hogan Brothers. You'll I'll call her later. She doesn't want to talk to you. She doesn't? Oh, she said just to give you the message. Oh. But I can't believe the message. This is fantastic. Leroy, what is the message? She doesn't want to go out with you tomorrow night. She called off our date? Yep. Yes, ma'am. Oh, my. Ank, after all you told me last night, this is very confusing to a young man. All right, Leroy. So Miss McKinley got upset because I thought Paula's gloves belonged to her. Ank, far be it from me to try to give you advice, but why didn't you play at KG? What do you mean, KG? Why didn't you keep quiet? A girl who lost the gloves would ask about them sooner or later. Leroy, I had every reason to believe they were glorious. I'm just glad I didn't make the mistake with Paula. And I better phone her now and let her know I have her gloves. Yeah? Hello, Paula. Throckmorton. Oh, it's you, Throckmorton. Yeah, me. I could have waited until tonight, but I wanted to hear your voice anyway. Oh. I found your gloves in my car, just in case you're wondering what happened to them. Throckmorton, I haven't lost any gloves. They were not... You haven't lost any gloves? Oh, man. But Paula, they must be yours. You know, no, they don't belong to Miss... I mean, well, anyway, I'll see you tonight. Yeah, just because I tried to be nice and return a pair of ladies' gloves. Now, whose gloves could... Excuse me, Auntie. Yes, Marjorie. When I drove Bertie to the grocery yesterday, did I leave my gloves in your car? Only once in a blue moon can there be news like this. It's about Kraft's new Parquet margarine that comes to you in a new ice-blue package. Kraft has just perfected a new way to make margarine, and new Parquet has the texture you've always wanted in the table spread. It does away with the warm-up that any ordinary table spread needs when taken from the refrigerator. Even when ice cold, new Parquet spreads smoothly. It won't tear holes in the freshest slice of bread. Even when ice cold, new Parquet creams fast and easy when you use it as a flavor shortening in your baking.  It holds its shape, won't separate, and Parquet tastes even better than ever before. Don't you agree this is the most exciting news you've ever heard about a table spread? You'll recognize Kraft's new Parquet margarine because it comes in a new ice-blue package. There's a picture of a cake of ice in the corner to remind you that it spreads smoothly even when ice cold. If your grocer doesn't already have his stock of new Parquet now, he will in just a few days. Look for a new Parquet tomorrow. It ought to be popular with two girls at the same time until he found a pair of ladies' gloves in his car. He tried to return them to Gloria and he tried to return them to Paula, but they didn't belong to either one. How do I get into these things? Anki, I'll be glad to go across the street and explain to Paula that they're my glove. Well, my treat. I won't do any good. Uncle already let it slip that he has another girl. Have another girl. Yes, yes. Now, Leroy, don't poke fun at Anki. Oh, no, I wouldn't do that. I'm on good terms with Babs and Susan again just for watching us operate. Great. That way I don't make the same mistakes. Miss Gessie. What is it, Bertie? I don't suppose you want to hurry for dinner since you ain't dating tonight. No hurry. I'm staying home, Bertie. Yes. Don't sound so sad, Uncle. There's lots of things you can do. Sit by the fireside and listen to the radio, work a crossword puzzle, wait up for me to come home for my date. Isn't Leroy awful? Well, I've got it coming, Margie. I shouldn't have set myself up as a Don Juan.   I don't know, Bertie. There's ways for you to get your girl back. Which one? There's ways for him to get both girls back. All he's got to do is to write to Mary Jane Trueheart. Why write to another woman? He's in the Dark House for 12 hours. Leroy, Mary Jane Trueheart has the love lawn column in the paper. Yeah. Oh, my goodness. Here's the paper. Let's just see who she helped out today. Bertie, please. Read it, Bertie. Yeah, I am. Go ahead. Well, here's her column and here's a picture and here's the letter some love lawn arose. Let's see. Dear Mary Jane Trueheart, I'm a 31-year-old youth. Youth? I am considered handsome, attractive, and a big spender, but the girl shunned me. What should I do? Silly stuff. What does she tell him, Bertie? She says, dear, just courage. Oh, for... These days, no handsome, attractive man need long remain without feminine companionship. Yeah. Marching isn't for you men. There's no shortage of eligible bachelors and don't think the girls aren't aware. You say she's right about that. You see, Miss Giffey, you feel better already. Why don't you ride around? I am a handsome, attractive, middle-aged youth. Young man. Not the laughing stock. It must be some way to save face. And they gotta stop in and talk this thing over with Peevy. Of course, he doesn't have to know I'm the guy in trouble. Peevy? Yeah, huh? I don't know. I'm resting down this way. What can I do for you today? Peevy, I'm trying to help a friend. You don't say. I thought I'd come to you for some advice. You have a head on your shoulders. Well, I have to have some place to put my hat. Peevy, this friend of mine is in a little difficulty with his girlfriends. You mean he has more than one? He has two. He is in trouble. Well, not because he has two girls, Peevy. He really doesn't have any. How's that? That is, right now he doesn't have it. Well, then what's his trouble? Peevy, he wants his two girls back. Mr. Guelty, may I hesitate to say this about your friend, but isn't he a little greedy? No, I'm not. All right, I'll admit, I'm the guy. I found a pair of ladies' gloves in my car, and I made the mistake of trying to return them to both Paula and Ms. McKinley, and they didn't belong to either one. My, my. Now they're both mad at me. What do you think I should do, Peevy? Get out of town. Be serious, Peevy. Why should girls get all upset just because of a pair of little gloves? Well, it might be because... Oh, no, that, that couldn't be. What couldn't be, Peevy? Well, I was about to suggest that they might be jealous of you, but that couldn't be. Wait a minute, Peevy. You may have stumbled onto something there. Why else would they break their dates with me? Because they're jealous. That's the answer? That's the only answer. It's the only answer. The green-eyed monster has clouded their judgment. That's why they've thrown me over. That's possible, isn't it, Peevy? Yeah, anything's possible. Sure. And if they can sell us over a pair of gloves, think how I could worry them if I really put my mind to it. Isn't this the other thing if I wouldn't push my luck too far? Peevy, I know what I'm doing. I'll make them think I'm so popular they'll be scrambling to get dates with me. They'll consider me the catch of Summerfield. Well, they're not a bigger fish in town. No, sir. Peevy, my only problem is that I've been underestimating myself. No, no, no, I wouldn't say that. Looks a little drawn and haggard. Poor girl. She's probably been losing sleep over me. Too ill, I'll toy with her for a while. I had the advantage all the time and didn't know it. Why not use it? Good morning, Gloria. Oh, it's you. Yep, me. You hear I'm business, Mr. Gildesley? Mr. Gildesley? Say she's jealous all right. If not, I know you'll excuse me while I go about mine. No, Gloria, how about a little smile? Swatmorton, why are you here? Why? Well, if you must know, I finally found the girl the gloves belong to. So I thought I'd take her a bottle of perfume and make a men's for keeping them so long. The man has to be tactful, you know. This is not the perfume counter. Oh, I know. But I thought you might recommend something that would make a big impression on Jane. Oh, or was it Mabel? I wouldn't know. Oh, well, I'll get both of them something. Any suggestions? Yes, are you sure you want to hear them? No, Gloria. I know you don't like the idea, but you just have to face it. I have other girlfriends, many of them. In fact, next week I'm booked solid that I want to be big about this. How about a date a week from Saturday night? I happen to be busy that night. Well, how about Sunday night? Busy? Monday night? Busier. Well, Tuesday? Wednesday? Thursday? For your information, I'm dating nobody but the assistant manager. Hmm. I didn't think I'd make her that jealous. You bet. While we're on the subject, Leroy, I'd like to give you a little advice about girls. Some more? Pick out one nice girl and stick to her, like I'm doing. What do you mean, like I'm doing? You haven't even got a girl. Well, I'm going across the street to get one back right now. When I phoned and said I wanted to come over, she was very nice. The other day, I just temporarily upset her, that's all. She's not a butterfly flitting from flower to flower like Miss McKinnon. Miss McKinley flitted back to the assistant manager, huh? Yes, all right, Leroy. Everything's working out for the best. Paula's the girl for me. She's lived across the street for over a year now, and she never dates with anybody else. We've been going steady without me realizing it. Well, good luck, steady. You run back in the house. I'll see you later. Okay. Leroy, a little family. We wait until you know how I come out. If I don't swing it, I'll never hear the last of it. I'll have to handle this differently. No bragging. I'll be humble. My old, sincere self. Hello, Crockmorton. Hello, Paula. Come in. I appreciate you're seeing me, permitting me to come over. Oh, relax, Crockmorton.  Well, I have. I've been a heel. I should have told you long ago that I have other dates occasionally. You're under no obligation to do that. Sit down. Well, on the edge of the chair. You shouldn't tell me anything you don't want to. I want to tell you about it. After all, we're going steady. We are? Well, practically. I haven't been going out lately, and you never go out. You're the stay-at-home book reading type. Oh. Well, I don't sound very interesting, do I? Well, not to a lot of people, maybe. But to me, you are. You're solid, Paula. Wow. You're true blue. The salt of the earth. A real wholesome old-fashioned girl. Well, Crockmorton, you say such flattering things. Well, I mean them. You make a little stay-at-home book reading old-fashioned girl feel so good. Then I'm forgetting. Well, there's nothing to forgive, really. Great. Then how about me coming back a little later? How about a date tonight? Oh, if you like. Maybe. Yeah, I knew I could count on you, Paula. There's no use in both of us sitting at home twiddling our thumbs any longer. Would you like to come over about eight? Love it. Until tonight, then, Paula. Paula? Now, Crockmorton, good Paula we're making up. Run along, you impetuous boy. She tweaked my cheek. Here's your hat. I'll see you tonight. Tonight. Can't wait. Bye. Bye, George. I do feel like a boy. She tweaked my cheek. Wait until I tell Leroy. Leroy! Well, things happen just as I said they would. She's been lonesome. Sitting over there waiting for me to ask her for a date. Just pining away. Yeah. What has? That hat you're wearing. The sleeve will be back in just 30 seconds. The newest discovery in a table spread now comes in an ice blue package. It's Craft's New Parquet. The margarine that spreads smoothly even when ice cold. Compare New Parquet with any other table spread. And you'll agree it spreads better. Far better. New Parquet is good eating too with a delightful flavor that sings a freshness. Tomorrow, look for Craft's New Parquet in the blue package. It looks wonderful, it tastes wonderful. And it spreads smoothly even when ice cold. I'll be seeing another man with me right across the street. You know all the time I thought she was reading a book. I'm glad I didn't keep my date with her last night. I'm glad I had Leroy return that hat. I never want to see Paula again. I'll show her. Yeah, there's Gloria at the complaint desk. I know she prefers me to that assistant manager. I like to get a date with her and drive right past Paula's house. Might even get a look at the guy who owns the hat. Yeah, I'll be charming. Good morning, Gloria. Good morning, Gloria. I'm very busy this morning. Yeah, so I see. Somebody returned a purchase? Some woman returned a hat. I asked her what was wrong with it, and she said, not a thing. It served its purpose. Say, that's a man's hat. Looks like the one I wore home last night. I mean, Gloria, who had this hat sent out? A woman who lives on your street. Do you know Mrs. Paula Winthrop? Not as well as she knows me. A man should never try to outsmart a woman. Good night, folks. That's the features of the Great Gilder Sleeves. It's good if you like it nippy. Get both kinds of craft prepared mustard at your food store. Tonight, play You Bet Your Life on NBC.


So yeah, I'm going to talk about my work with the New York Times, really the past year, I guess. Seems like every year I'm kind of talking about what my big project was for the year. And this year it was internationalization. Times has a big initiative called MIT Global, where figuring out what it means for the New York Times to be internationalized. And you know what it takes to do that within the company. So yeah, I'm here with my wife Allie. That's what I say real quick. She was voted for 40 under 40 in New York City politics. She works in animal rights. I'm very proud of her, so I just wanted to shout out to her real quick. She's the brilliant one in the relationship. I'm just going to talk about JavaScript and stuff.  So yeah, I am Scott Taylor. You may know me from doing work in WordPress. But I've been at the New York Times for about three and a half years, I guess. Before that I was at a company called eMusic for about five years. When I first started at the Times, I was on the blogs team. The Times used to have a very traditional WordPress footprint where they had the main website.  Blogging in general has kind of collapsed into section fronts and just kind of columns and there really hasn't been a big thing at the Times lately. So a lot less stuff on that. Interactive News, the talks I gave last year were about the live coverage platform. We built using WordPress and at the time the newly christened REST API. And then now I'm actually on a team called Web Frameworks. We are working on building a new stack for the New York Times built on Node.js and React. So I'm going to take you through a lot of the different technologies we're using to do those things. So yeah, the New York Times recently launched New York Times in Espanol. If you go to nytimes.com.es, that's actually the first internationalization project we've done. And it's actually not a lot to it. This is what the homepage of it looks like. This is what sort of a section front or collection or in WordPress terms archive page looks like. And then this is, you know, an article. And in WordPress we already have these paradigms. You know, we have the next page, we have archive pages and we have posts. So it really wasn't doing anything crazy to do this in WordPress. In the Times general architecture for the website, these things are all separate apps. They're all separate PHP apps built on like a homegrown framework, which is a lot more complex. WordPress actually kind of exposes how easy it is to do this kind of stuff. But why did we use WordPress specifically when we wanted to do internationalization? Well, a couple of reasons. One was the CMS portion. The Times is built and kind of exists on this homegrown CMS called Scoop, which is written mostly in Java and CoffeeScript. And making changes to Scoop or trying to interrupt the publishing pipeline midstream is not, it's a little complicated and it's also dangerous and it's not as simple as doing the things we do in WordPress. They kind of wanted to do, let's try out internationalization on WordPress and then we'll fix all the stuff in our homegrown systems and then we'll get rid of the WordPress project. Well, the WordPress thing has been running for a couple of years now. So WordPress makes it easy to do something like internationalization because we can use a multi-site setup to where nytimes.com slash es. That slash es is just a site in the network. Each site in the network has its own specific options or settings, which you can include locale. So the thing about WordPress you get out of the box is that WordPress already has internationalization laced completely through it. So if you've ever used the translation functions to print out strings or numbers, it's already there. A lot of software at companies that write proprietary stuff, internationalization is not built in at all. So one of the initiatives with this nyt global thing is looking across the New York Times code bases and figuring out how do we first internationalize them. Because there's two pieces to internationalization. One is the taking your code base and setting it up to where it can be translated. And then there's localization, which is providing the translation files. And so you can actually, when you're in Spanish and you've set the locale to be in Spanish, you can provide translation files for it to render in Spanish. This stuff is actually pretty commonplace in WordPress. In software in general, there are tools to do this, but a lot of people don't approach their products with localization in mind. And even at the times, it never came up until we decided, oh wait, you know what, we want to have this global presence where we're actually presenting content in language. So once you've had the translation files, which is actually just translating the hard-coded strings that are throughout your code, WordPress also, because we're on the ES site and the multi-site network, they can just write in language. So there's nothing enforcing the content of the translation and the content of the fly. There's writing in language. But multi-site gives us a great way of partitioning by language. So if we wanted to do Portuguese or Japanese, whatever, we could then do slash JP for Japanese, and that would be all of our Japanese content and all that. And also, there was a pretty good workflow I had with using Gulp to be able to generate these translation files pretty easy. And the other thing about WordPress that makes it appealing for doing projects quickly or doing projects kind of isolated is that you control the front end and the back end. So at something like the New York Times with Scoop, Scoop's kind of like this back end that provides data and then we have this framework called MIT5, which is the front end.  With WordPress, we have both, which is why WordPress was a pretty good choice for doing this. So I mentioned one of the things that really helped me was using Gulp so that it may end up in the future that we have 10 different languages we're supporting for translations. And all of those different sites are going to require translation files like these .po or .mo files. And one of the complicated workflow things is how do you generate these files and how do you, you know, how do you translate your code base to be in a certain language? Using Gulp, Gulp actually has a lot of plugins for doing stuff to generate profiles and to generate .mo files. Gulp is written in Node.js and it's similar to Grunt. If you've ever used Grunt, Grunt's very much configuration-based. Gulp supports a lot more Node.js paradigms and is a lot faster and more streamlined. We also built, our platform we used to deploy this stuff was built on Docker. And if you work at a bigger company that has to deploy to various servers, Docker and containerization are becoming a pretty common place for describing your servers or your setups. We've also used Puppet in the past, but it's basically Docker's a way of describing, I need Linux, I need Nginx, and then here's my code base, and that container will be the same on every machine it's deployed to. Docker, the way we deploy and interact with our deployments is through Kubernetes, which is by Google. It's instrumentation for Docker containers. And what this means is that through some configuration files, I can go in there and say, I want this deployed eight times. I want this deployed six times. It allows me to scale those instances. So some of the other things we used when we were internationalizing Amazon Web Services, we needed to hook into our search service at the New York Times so that when we update a post, our search team can dynamically update our sitemaps so we get highly ranked in Google very quickly. There's a lot of very newsworthy things in the New York Times, obviously, so if we have a live blog or a live coverage going, or if we have something that's very timely, doing this using SNS and SQS, which are from Amazon Web Services, allow us to get ranked highly in Google very quickly. We also provide, using the REST API, the data we have for the Spanish site. When you save a post, we actually generate JSON files in a New York Times JSON format and upload them into S3. Those files get served by a service called Sami's Dot, which is internal, which actually powers the data for Android app, iOS app, Kindle, that kind of stuff. We use RDS, which is a MySQL service from Amazon. We use ElastiCache, which is a memcached service from AWS. But none of this really matters because we're actually switching over to the Google Cloud Platform for a lot of this stuff. So one of the themes here, and you'll see as I keep going through my slides, is that there's a lot of stuff to kind of get your hands around to learn, and then everything's always changing as you're doing that. So just when I thought I had finally learned enough about AWS to where I could kind of manage a system and I could deploy stuff, and I kind of knew what was going on, we're moving a lot of stuff over to here. For a long time, there was really AWS, and then eventually there was Azure from Microsoft, which not a lot of people quickly ran over to. But Google's getting into the game now, and the things I was talking about, Docker and Kubernetes and like Container Engine, make it pretty easy to get on Google's infrastructure, which is extremely reliable and extremely fast. Some of the stuff Google offers is 52 or 100 times faster than AWS. Okay. So this begs the question, when we start projects like this, nowadays what is a PHP project? Because your project may start off something like this. This is a traditional WordPress setup for people that are doing a highly customized thing. You're not just going to plop WordPress files into a folder. You're actually going to have WordPress in a subfolder. You're going to have your WP content, which will serve your site stuff. You're probably going to have JavaScript there. If it's just either to do build processes, to do tasks, or to actually, you're going to use it to download your libraries and compile your JavaScript for the front end. But there's a lot going on.  And so internationalization for us was a project to where we had a lot of control because we control the Docker file, which means we can control the version of the PHP we're using. We can control how we're talking to MySQL or Memcached, and we chose to use ElastiCache and RDS in those situations. But you can also like, WordPress is a very small part of this whole system. It's definitely a big part, and it's going to be our admin, and we're going to use the traditional structure of it providing our rewrites and our theme into extent. But there's a lot going on that has little to do with WordPress. Another thing, too, is that once you really understand WordPress and you're in kind of your own environment to where, you know, this is a lot different than starting a blog on Dreamhost or something, and WordPress is just kind of off to the side, and you're going to get auto updates and all that kind of stuff, and you're going to install plugins from the admin. WordPress is really just kind of a set of tools available to you, and you're kind of free to do with it what you want. This is actually our index.php. When you use, when you just download WordPress, WordPress actually has to do a lot of guessing and figuring out where your configuration file is, whether you have MySQL installed properly, whether you've actually installed your database, all that kind of stuff. But when it gets on the brass tacks, you're eventually just going to do this, and this is the equivalent of like index.php, blogheader.php, and the template loader kind of all in one. And in our version here, we're basically saying, yeah, load our config file, do the initial WordPress request, and then at the bottom there, we're going to say fire our action, which is how we're going to render our templates, which is not going to use the traditional theming that WordPress gives us. And when you see something like this, you can actually imagine a scenario where you're using a different framework to render your site, and then you can just fall back to WordPress when you need to. So you can imagine like an if-else statement where you could even have a different framework in here, and then if you're like, no, actually it needs to go to WordPress, you just load all this stuff. Okay. So one of the things that makes up a PHP project these days so if we look at like, I have a blank slate, I am going to start a PHP project. It's 2016. What would I do to start that project? WordPress may come into it, and WordPress may not come into it. Composer is a package manager for PHP, and Composer gives you access to a whole plethora of libraries that you can use to write PHP code. If you've never seen a file, it looks something like this. And what you'll notice if you've ever done anything with NPM or Node.js or your package.json file is it's actually very similar. So I think there's a difference between WordPress and a PHP project, and there's also a difference between a PHP project that uses WordPress or not. But if you were today going to start a PHP project, it might look something like this. And if you can see in here, there's a difference between a WordPress install that's going to be like a DreamHouse blog and a code base that you're going to have under version control and that you're going to want to lock the version numbers of plugins and libraries and all that. WordPress has a great auto-update system to where you don't have to do anything and WordPress will update your site for you. But that can be problematic switching from version to version if you're using version control and if you have a continuous delivery setup or if there can be breaking changes from version to version. The same thing is true for plugins. But what Composer can give you is there may be something WordPress doesn't provide and is available in the PHP ecosystem that you want to pull in for your project. And there's nothing stopping you from using WordPress and using other PHP libraries. Okay. And another piece here, you can see how in the bottom of the set here it says W Packagist. So the entire... I could be wrong about this, I think the entire plugin directory is actually mirrored in W Packagist plugin to where you can actually load your WordPress plugins for your project via Composer. And it'll put them in the proper directory in WP Content Plugins so that you can actually have a list of the stuff your project requires in here. And then you can either check that stuff in or you can have it where people's individual setups when they run Composer install, they get that stuff. And also your Composer file is where you set up your PSR4 namespaces so that if you're writing PHP 7, PHP 5, 5 code and you're using more of the object-oriented stuff, you're really describing your project here. And then something else you get with PHP projects that aren't necessarily WordPress projects is you can do more sophisticated things with registering stuff kind of in global scope to be available to your project. So one of the things I've been complaining about in WordPress for years is all the stuff that's in global scope. And you don't have to do that if you're using... And I'll show you some of these tools coming up, but if you're using a dependency injection container to where you have one place called App where you're putting all of your global stuff you want to use. This is also typical of a lot of PHP projects where once you include the autoload, the vendor autoload, then you kind of have access to everything. You don't have to require files to start using them. You just have access to whatever tools you've described in your Composer JSON. Okay, one of the other decisions I made when we were doing the internationalization project was to use Mustache, which is logic-less templating really in almost any language. One of the things WordPress does by default throughout the admin and throughout theming is actually uses PHP as a templating language, which is okay, but what happens is that you're not really describing your data ahead of time. A lot of times you get to the template and you're doing business logic or you're actually making database queries or you're making HTTP requests to get your data, and there's not a clear separation of what is code that's running and what's templating. Mustache helps with doing that, and this is an example I did. I've been doing a lot of experiments around where could WordPress go code-wise, and this is an example of one of the admin pages. Those of you who've done WordPress core development or ever looked under the hood of WordPress, there are some PHP handlers that are a giant mix of code variables, templating, output, just all kinds of crazy stuff, but when you get to, if you actually use a templating language, it gets very simple to describe your UI, and then somewhere else you can actually really strictly define what your data is that you want to use. Another piece we used, WordPress really, you don't have to rely on WordPress to give you the best version of every tool you might need, so WordPress a lot of times is just going to give you the tools that it needs to do its thing, and it's not gonna actually try to give you a full-featured version of everything. So we use Guzzle to do HTTP stuff, and Guzzle was written by the guy who wrote the Amazon SDK for PHP, and so it's very modern and does things like pipelining, and does promises, async, all kinds of nice stuff. So when we look at PHP projects, we already have an example of symphony, which provides best-in-class PHP components. So if you're doing your own PHP project, there's something stopping you from also using stuff from symphony. Symphony is actually built a nice way to where you can use the parts you want, and you don't have to take all of it. It's not an all-or-nothing approach. WordPress, in a lot of ways, is an all-or-nothing approach unless you kind of know how to massage things in and out of it. We use HTTP Foundation. One of the things in modern PHP projects that's suggested is to not use Superglobals everywhere, which is like the capital get or post or server variables. HTTP Foundation allows you to do that. It gives you a whole API to access that stuff in an immutable way without having to touch all those things. Another piece is that WordPress provides kind of this big, huge database object, but one of the things it does not do is give you an API to generate select statements in SQL. There were some custom database tables we needed to add, and that's something too. In the WordPress paradigm, we tend to issue doing complicated things with the database because we kind of allow WordPress to do all of that. But when you get into the state where you need something global in a multi-side instance, you may need data that is accessed by everything. It doesn't make sense to be a custom post-type. When you need to interact with the database, Doctrine is kind of like a best-in-class tool to do that. The thing I really like about Doctrine is that when you start doing a complicated project, you're going to definitely want unit testing and you're going to definitely want a lot of your use cases. You're going to want an expressive tool set to take care of a lot of your use cases, and you're going to want caching to be taken care of for you. And with Doctrine, it's so much better than writing your own. In WordPress, there's a lot of code that's kind of ad hoc for getting stuff from the database that isn't a post or a user. When you do that and you don't have 100% unit test coverage, there's going to be a lot of holes and there's going to be a lot of weird things that could happen with the use cases that maybe weren't thought of when that code was written. With Doctrine, you get kind of a very solid platform to run on to do that stuff. And then Pimple is the... There's this concept called dependency injection. And what happens is that instead of maintaining a bunch of data in global state, and WordPress has global state everywhere, you have a container that contains all that stuff and you pass that container around to read your data or to use single tensor or methods. So Pimple kind of looks like this. And this is super complicated to maybe look at, but if you see I have app up here, which I'll use the pointer, here's app. And then you see down here, I'm saying like db-host, db-user, db-password. Rather than having a concrete implementation or having something hard coded like a string, I'm saying give me whatever this represents. Give me whatever this is, whatever this is. And then these can kind of be encapsulated too so that if I needed to mock stuff to do unit testing I needed to encapsulate a piece of functionality. As I'm defining pieces of functionality here, I can also get passed in app, which will have other definitions. Yeah, and here's an example in the object cache we did for the New York Times. We're in the constructor. Here we go. This is an app to the constructor. So rather than reaching out in the global state to do anything, and there's a lot of examples in the WordPress ecosystem and in the WordPress object caches where it's actually reaching out into global state to pull out some instance of an object, this you're actually passing in all that together. And then also, what can happen too in a lot of these big projects is that you don't have strong typing everywhere and you don't have a way of enforcing kind of implementation. So this is our cache interface that we wrote so that when we were writing our own version of the WP object cache, we make it implement this interface so that we know it has to be all these methods and it has to be all these parameters. Anyways, Sylex, if you want to take a look, is a good implementation of a micro framework using symphony components. And here's an example of how Sylex works. So a PHP application can be this simple. You include your autoloader and then you run a couple things and you already have a pretty powerful API here. This looks actually very similar to Express in JavaScript if you've ever seen it. Also, for modern PHP projects, there's something stopping you from looking at stuff like Hack and HHVM which come from Facebook. And Facebook, because it needed to scale the billions of users, implementation of, you know, hip-hop is the server that serves Hack and it allows PHP to be transpiled into intermediate bytecode and it actually runs as like C++. It's extremely fast. Hack has a lot of different types that PHP doesn't have. So PHP, you're really using arrays everywhere or you're using standard class everywhere to describe data. Hack makes that a lot more strict and we have collections and shapes. So the scope for errors when you strongly type are significantly reduced. So is WordPress a PHP project? Maybe not. WordPress is really a consumer product and it's not meant to be a tool chain that gives you all these crazy awesome features of PHP. It gives you enough PHP to do what you need to do, but it's not necessarily a PHP project from the ground up. Okay, so real quick, the New York Times, so I talk about all these things we were doing and how we're switching to Google Cloud Platform. Well, we're also switching everything over to JavaScript. So pretty soon, within a year or two, the New York Times will run on Node.js and will run using React and Relay and GraphQL. So the past month or so, I have switched teams to the Web Frameworks team and I've had to learn a ton of things about JavaScript. It's a whole new universe that we're moving to. So number one, if you use JavaScript in your projects, there's a tool Facebook made called Yarn, which is great. I'm gonna post these slides too, so if I go through fast, you can catch up later on. Yarn is like the next generation of NPM. I think it's great. Flow is a tool that Facebook wrote to strongly type JavaScript so that you can actually catch a lot more bugs in your IDE ahead of actually deploying your code. A lot of people, I think, have heard of React, and React is the Facebook's tool for... Facebook's kind of like language for building UIs. Redux is for kind of managing global state within your application. There's Immutable.js, which is a way of passing down immutable objects so you have predictable state and JavaScript. There's Relay, which is a framework for data-driven applications. There's GraphQL, which is what Relay kind of talks to. It's an open-source project Facebook has given us recently that is completely their universe of the way they build apps, but it's actually been pretty interesting to learn, and The New York Times is gonna be using GraphQL as well. All of this is... You can use all this kind of latest, freshest, newest JavaScript type stuff with the Atom Editor. There's plugins for all this stuff, and I've actually switched... I was a NetBeans user for years. I was hardcore NetBeans, and I switched to Atom recently, and it feels nice to be in the modern world. And the latest trend, too, is isomorphic apps, meaning you're going to have Node.js, and you're gonna have it render on the server, and you're gonna have it render on the front end. And this is kind of something Airbnb was one of the first pioneers of to where, yeah, we have all this Node.js stuff, and we have all this... apps are becoming more JS-driven, but how do we go from an infrastructure to where we have a server language here, to where we have our client app, and make it more like this, to where we have one JavaScript code base that's running on both sides. That's something we're exploring at The New York Times. That's something that is very complicated, and it's kind of this new universe that's crazy to be a part of. The New York Times has already open-sourced a tool that makes this a lot easier, and if anybody's interested in isomorphic apps or Node, and wants to talk more about it, we can, open-source project called KIT, which makes it a lot easier to start these kind of projects. Starting a Node.js project can be so frustrating and baffling that you may just want to give up. KIT makes this a lot easier, the initial setup, so it's a lot more approachable. Yeah, and then kind of the last piece, CSS modules is, you know, this is really the future of web development kind of encapsulated in a lot of ways. This is a ES6, you know, transpiled using Babel JavaScript file. It has a React component, and it's also loading SAS in here, and using CSS modules. Like, this is the future of kind of like where a lot of stuff is going. And I don't think anybody needs to be an expert at this to be, obviously, you don't even know any of this to be a WordPress developer or to do WordPress sites. I think being exposed to this stuff is cool and interesting because a lot of big companies are going here faster, you know, sooner than later. And for me, who was really kind of an enterprise-level PHP developer, all of a sudden I'm now an enterprise-level Node.js developer, and where does that even mean? You know, it's like I'm learning this stuff as fast as anybody else, and I'm like, you know, it's a whole new world of things to be aware of. And I don't think anybody needs to become an expert at it tomorrow, but just know that companies like Facebook are having to think about these gigantic problems and think about these gigantic websites with huge teams of developers, and what's the best experience for building these apps and for maintaining these code bases, and there's a lot we can get from them just by being exposed to this stuff. Anyways, so let's do some Q&A if we have time. Oh, thanks. Thank you. Thank you, Scott. Yeah, we have about eight minutes for questions, so if anyone has questions, feel free to come up. Cool. Hi there. I've got two questions and a kudos. First, kudos for adopting yarn. It's amazing. Oh, yeah. Way, way faster than NPM. So two questions, the simple one first. Why did you go with handlebars as opposed to using something like Twig that has a little bit of logic in it? Okay, it's mustache. Oh, mustache, sorry. I actually wanted even less tools than handlebars. I had forced me to separate all of my data layer and actually all of my logic layer. I wanted the most terse set of templating tools possible, so that way we wouldn't be tempted to do anything that was too complex in the templating itself. It's just a personal preference. Oh, absolutely. Okay, great. And then the other question, you mentioned switching to some JavaScript frameworks for the front end, like using React and that you have Scoop on the back end where a lot of the data is managed. Does WordPress sit in the middle and how does it fit into this new ecosystem that you're moving to? I was a little bit, I didn't follow along. So if you look at it like this, take Scoop and WordPress and make them kind of things that can publish data. In our new ecosystem, believe it or not, those are actually going to post into a log that's gonna be Apache Kafka. That's going to get read by a service that's called Bodega, which is going to be like a materialized view of that stuff, which will actually get read by a service that posts it through GraphQL. So right now, all these systems are kind of ad hoc.  There may be data that our real estate app is getting that does its own kind of random thing. There's WordPress, and God knows how you're getting that data. Is it from the REST API? Is it from wherever? A lot of this stuff too has to be highly available, so you can't just be hitting, we're not going to hit Scoop directly, we're not going to hit WordPress directly, right? We may hit a WordPress read-only endpoint for REST API that's behind Varnish and behind Fastly or whatever, but most of the time, we're actually putting those files in S3 or something. So like our mobile apps, there's no way they're going to hit us directly because we can't have a single point of failure for the data, so we're actually going to push our feeds into S3, and then they're going to read a service that reads S3, something like that. But WordPress and Scoop are like the lowest level possible, and only because WordPress is the back-end and the front-end, there are times when you're hitting a page and it is hitting WordPress, but the Scoop piece, it's really kind of hidden back here. Okay, so WordPress, the front-end of WordPress, is still going to be represented and out there and accessible by unique visitors?  Okay, so where does React fit into this ecosystem? My impression, most people, whenever they go to React, they use that to replace the front-end. Right, so... So, look at the New York Times Proper. The New York Times Proper is run on a framework called MYT5, which is internal. That is web service-driven, which means that it's going to parse the URL, make a web service request to get JSON back, and then it's going to render out articles on the home page and that kind of stuff. So, in the new React universe, that front-end, the whole application is going to be React and Relay. It's going to hit GraphQL. GraphQL is kind of replacing that API layer. That API layer may be behind GraphQL. The GraphQL is going to be the one place you get data from. I don't know if you've ever mess with GraphQL very much, but the discoverability of data is amazing. So, hopefully, all these different pieces of the site that need to get data will be in one place. So, any team that wants to build a Relay app will have access to all of the data. Excellent. All right, thank you very much. Thanks. I just had a quick question about... I've worked on projects where you're handling internationalization and translations and stuff, and one of the things I ran into was if there's a site out there in a language that you personally don't understand and people are making change requests and stuff, we would often have to pull it from production back to a staging site, flip it back to English, kind of figure out what they're talking about, make a change, flip it back to their language on staging, get approval, and then ship, and it really just kind of drew out the development process and was hard to sprint. Do you talk about maybe sort of that experience working in a language you don't understand and maybe if you have a better way to solve that problem? Well, I think the challenge is with different languages. We kind of have so much lead time for when we do a thing that there's lots of QA involved with... Because when you're internationalizing, there's really two pieces to it. One is the code base. So, the New York Times has a lot of projects that are built with the shell, which means that they have the furniture on it and the middle is, you know, whatever the app is. So, if we were going to start a Japanese site or an Arabic site, we would spend a lot of time looking at making sure when we're doing stuff like buttons or navigation or all that that it works correctly, kind of for every language we're doing. And then, yeah, there can be things on an ongoing basis to where when you're creating content, things can arise where you're like, oh, you know what, in Spanish this is weird. But because we have such an elaborate editorial process at the Times, we're never doing things fast enough to where that becomes a broken problem. One of the big things, too, is interactive. So, you may have an article that has a ton of imagery and graphics, and we may say, oh, you know what, let's translate that into Spanish, and it requires a ton of work with graphics to change out the text themselves and these images to... You know, it can be like a challenge for each little piece to figure out, oh, you know what, this is weird in Spanish. How do we make it? So it's kind of a case-by-case basis, but it's an ongoing workflow to where... You know, the way a Spanish site works, too, is that it's not the exact same as the New York Times. It's like there's a whole team of people that are doing, I think, 10 or 20 articles a day, and each one has to really be curated to be like, all right, how does this work in Spanish? So, yeah, it can be a challenge, but as you go and as you learn things, you try to be as flexible as possible to be like, all right, let me solve this problem for Spanish, but let me also make sure it's solved for Arabic or whatever. Yep. Hi, thanks for the presentation. Thanks. A question about internationalization, too. You kind of tricked us. You talked about it only for 5, 10 minutes. Yeah. I just wanted to know a little bit more about business editorial requirements. For example, the content itself in Spanish, is it written in Spanish by Spanish journalists that you have on site, or is it translated from the English site, adapted, how does this work? Yes, so the Spanish, the people who are producing the site in Spanish, they're in Mexico City, and they are Spanish-speaking editors, and so the translations they're doing, you know, a lot of the coverage we're doing for the Spanish site is for Latin America, and so the people who are doing it are picking stuff that's newsworthy for the region, and the people who are translating it are native speakers and are from like Columbia and Venezuela, and yeah, I think it's a subset of content that people think will be relevant to that area. So I think for the New York Times global strategy, it's really trying to figure out in different regions of the world what do they want from the New York Times, and there are a lot of people who don't have access to something as good as the New York Times as far as journalism goes. They don't have journalism that's as free, but yeah, it's native speakers and native translators that are doing that content. Thanks. Thank you. So we're out of time for this discussion, but if Scott has a couple of minutes, it looks like there's a couple more questions that you might be able to answer one-on-one. Sure. We have to prep for the next speaker. Thanks.