In today's episode of Amir Approved, I'm joined by Tom Basso. Tom Basso bought his first mutual fund at 12 from funds received from delivering newspapers. From those early days, covering over 50 plus years, Tom has extensively traded stocks, bonds, options, commodities, futures, and forex. Tom's engineering background with the knowledge of math and computers helped him leverage his time and talents in managing portfolios over his 28 years career. Tom was one of several traders featured in Jack Schweger's new market wizard dubbed Mr. Serenity by Jack. His website, EnjoyTheRide.world provides books, seminars, computer tools, and videos to help traders develop their own successful trading strategies. In today's episode, we dive into Tom's strategy, his background, and how he views today's current climate. So please sit back and enjoy today's episode of Amir Approved with Tom Basso. Tom, welcome to the show, brother. How are you doing? I'm doing great. I just looked over there a second ago and my account was hitting all-time highs, so life is good lately.  Because for me, I'm not per se a trader. It's not my psychological makeup. I'm more leaving, forget it, and I'll see you later in four or five years. I'm the lazy investor. Like a super lazy investor. That is a strategy, Amir. It may not be the easiest one at times like these, but it is a strategy.  So that's one of the reasons like, all right, let me go against my nature and dive into all these different strategies. Going to charting and talking about the Elliott waves and all these different band curves and just really understanding it. And I read about you a little bit more and diving into it, and you're very systematic. It's not more or less going by the gut feeling. It's like, oh, I got this insider information or I understand it's more like there's heuristics and their systems. We need to follow the process within these rules, no different than any computer software. There are outlier circumstances where you have to kind of go against the rules. But for the most part, if you're following these rules, you should be good. Yeah. I think when you look at, especially if you look at a day chart and a day trading type chart, five minute bars or something getting way down into the data, you see, and I'm a chemist way back when.  The thermostat's going to say, okay, wait a second, that's not getting too far. That's no longer just noise that I'm supposed to ignore.  So you have a delay. And at some point, it says, now it's getting outside the rain to take action. So turn on the air conditioning or on the other side of it, turn it off. So think of that temperature variation that normally your air conditioner goes through or your thermostat goes through as the noise. And that's just like the market's noise, where you have the high side be the buy and the low side would be the sell. That's the information, the buy and sell, the inside stuff you want to ignore. And so many people get, I don't know, they get hung up in all that noise. And I just think they lose sight of the forest for the trees, so to speak. What I try to do is just mathematically different with different indicators, try to ignore the noise and keep the meaningful information. And when meaningful information comes through, the other problem you got is you've got to have the mental fortitude and the discipline and all those things that go along with trading to actually take action and do what your plan said that you should do. There, I can't tell you how many people on social media have said, oh, I'm just stepping back. I'm going to go to cash. I'm going to wait until this is over. Well, how are you going to know when it's over?  Or like in Japanese case, two decades. Exactly. So yeah, people might get bored by then. I don't know, I sure would. So you got to have a plan that understands that times like these could happen so that when you go through it, I didn't have to make one change to my plan. I had everything ready to go. I knew that something like this, I've lived through health. 45 years of trading, the bear markets, the class of 87, the 2008, the tech bubble burst in 2001 and so not exactly new to me. It always happens differently. This one's been a bit fast. It's been kind of amazing to watch it. What's your read on the current market? What do you think? Current market, I'm starting to get some short term. Just this morning, actually, the time of this was the 31st, I'm getting the short term models are starting to kick over to the buy side. The long term ones are the stop buys are coming down to meet the market. The market's trying to come up. The buy orders are starting to come down and sooner or later they'll meet and they'll be long again. So far, the long term indicators haven't gone over. So I think the bottoming process is going to take a while. It's not a big deal. We did a lot of damage here in the last month. So it's going to take a little while to heal, but it's on its way to healing. You just have to have a plan for getting back in and understanding what that plan is and just execute it. So talking about the plan from your background with trend stats and all the systems that you have and what's happened in current, has anything changed between what you've been doing in the past versus what's going on today? I literally, if you go back two months ago and you look at what I'm doing then and what I'm doing today, it's the same exact process every day. I spend about 20 to 30 minutes tops on a tough day, just updating all the indicators, updating my orders. I trade 20 different futures markets, about 23 ETFs. I got a hedging program that's outlined in the website that you probably saw, the hedge page that describes exactly what I do there to the tee. I also trade odds and ends of a few stocks. Occasionally, if I'm going to be here at the desk all day, I'll do a little day trading of e-mini futures. I have a short-term NASDAQ composite futures trading strategy that I use and run that. That's over a nine-day period. For me, that's short-term. Let me ask you this. You mentioned futures, you mentioned indexes and some forex stuff there. How do you determine which industry within those that you pick? Well, they sort of sort themselves out. Again, if you go back to what I was talking about the thermostat, if you had, let's say for an example purpose, an ETF that was about precious metals, for instance. That's sitting over here. It's doing its own thing with its noise and its directions and everything. Over on this other side, you've got oil industry or say pick just industrial stocks. These two precisely move with their noise and with their breakouts and stuff at the same time. I let each one, I kind of pre-select a whole bunch of different sectors that seemed like they'd be different than other sectors like precious metals shouldn't move exactly like the stocks. You're looking for the uncorrelated type of stocks. Exactly. I'm looking and I'm doing it with common sense. Why should tech stocks have anything to do with gold? They may during one day or another but over the long run, they should have their own day in the sun, day in the doghouse, go their own way. If you set up indicators then on each of those ETFs, each one is going to give its own bi-signal, cell signal and you'll either be, all of them are going to start going over in a big bull market. You'll have 23 positions in ETFs and it may not go over the same day. One might go today. The next one might go two weeks from now but each one takes its own turn. That's kind of how I select a point where I don't have enough cash. I'll just say I'm fully invested and the late signals that are taking their time coming over and becoming a buy, we'll just get ignored and I'll just wait for them on the next cycle. Maybe they'd be the one I'd be in next time around. A follow-up question to that. In today's kind of choppy environment and unforeseen, so we have a couple of things. It's investor psychology. People don't really know where the bottom's going to be in. We don't know how long it's going to take. There's a lot of other black swan stuff. The Fed is printing money on autopilot. We're on MMT. Pretty scary. The deficit went for like 4 trillion to 27 trillion, some ridiculous amount. You mentioned hedging. You have a huge section on your website for hedging. What's the hedging strategies that you're doing today? What I do with the hedging is you take your long exposure and then you set up a downside only strategy. In that case, I use three different indicators, kelpners, bollingers, and dungeon channels. You can look them up on Investopedia to get the formulas. I'll spare you the math. You basically have lines on top and bottom of all this noise. When it goes through the bottom side, that's when you go ahead and put the hedge in place. There's a couple different ways to do hedges in my mind. Against my ETFs, which are fairly broadly based, if you look at all the sectors I trade and if you look at some of the stocks I own, which are more small cap, special situation type stocks, I just use the SPY, which is a Standard Ports 500 index. If it's in the taxable account or world, I can short that, which because it trades a couple hundred billion or a couple hundred million shares a day and billions and billions of dollars worth, I can easily borrow that and hedge my small relative to the market account. That takes care of that hedge. I'm volatile how much I put on to just about exactly equal what I have long. I liken it to if I put my hands into the camera this way. If this is my portfolio and I lose money when the market goes down and I put a hedge in place and notice that my palm is facing downward, so that I make money this way and lose money that way, then they kind of equal each other, they fight each other. What percentage are you looking at, like 5% and give or take? No, the actual hedge, I measure the movement of my portfolio. I take the SPYs and I look at the movement of the SPYs and I match them so that they hopefully move almost identical to each other. They'd never move exactly like each other, but I try to get them into the ballpark. That's what I do for the taxable. On a non-taxable like IRAs, excuse, which is the Standard Ports 500 inverse triple leveraged ETF. I buy some of that, again trying to balance it as best I can against whatever I'm holding in the IRAs. I'm basically out of the market, kind of. Not really, because I get two positions that both could do their own thing, but since you got the S&P 500, it can't just go crazy one direction and my stuff go crazy in another direction. They're all going to be tied together to some extent. You mentioned you went through a couple of previous, a bunch. I came out of college in 74. That was a 50% bear market. Let's see, there was in the 80s, we had some stuff in the 80s. We had 87, certainly. Then we had the tech bubble and we had the real estate crash. Then we had this one. Yeah, this is, I don't know, probably four or five at least that I've lived. My question is, as going through all these different ups and downs, do you see this market correction? Is there anything different than what you've experienced before? Yes. The one thing I've observed, and I'm very proud of all of the computer jocks out there, is that the New York Stock Exchange, what about a week ago, decided for the first time in its history to close down the floor and just do it by computer. As you can tell today and other days, nobody noticed it. Been able to handle just unbelievable volume with no breakdowns. There's been no crisis. They've had to do the circuit breakers, but that's an outside edict put on the markets. If you left the markets open and didn't have the circuit breakers, the computers kept up with it. What I've noticed in this most recent swing, I liken it to the 73-74 bearer of the difference. 73-74, the market was down about 50% and it took two years to do that. Now why? At the end of 74, there was 10 million shares a day traded on the New York Stock Exchange. People were using pieces of paper, phone calls. They didn't even have Quotron machines yet at that point. Many computers started coming in, or microcomputers started coming in around 1980. I bought my first IBM PC and I started programming and doing things. Fast forward to now. Instead of 10 million shares on the whole New York Stock Exchange, SBYs do a couple hundred million all by themselves. Over a billion shares are traded on the New York Stock Exchange. What you can do is do a two-year bear market in kind of a month and a half. It's kind of the same effect psychologically. It pierces what panics people. Isn't that what a bear market is supposed to do? That's what it did back in 74. People got bored. They eventually said, I've lost so much money. I'm never getting back in stocks. Then you started the 75 bull market. It's kind of the same concept psychologically, I think, and it just happens quicker. Yeah. I have a couple of thoughts for this. There are some differences. Obviously, the virus is one. We haven't experienced that. This is kind of like the first in the modern world after the Spanish flu. And then we have the oil wars happening with Saudi Arabia, Russia, and obviously Canada, the United States. Where was it? It was in Canada, Western Canada. Bear oil hit $5 yesterday. Yeah. Well, they're running out of storage. They want to pour it on the ground and create an environmental disaster. So they either got to shut down the darn wells or they got to pay people to hold the stuff because there's just no storage left. It's always funny when people say, we're running out of oil. I'm like, what are you talking about? They can't build storage fast enough. We have way too much. And we're filling up the petroleum reserves on top of that at cheap prices. Yeah. It's funny because I'm in the crypto space and a lot of the miners are always hunting down and Canada has become a very good source for very cheap electricity. Yeah. Well, you've always had less expense of electricity. You're blessed with a lot of ice and snow and that turns into lake. Generate around there and all of a sudden you got electricity. That's right. Gravity helps. People are doing interest because weed is federally legal in Canada. And so there's miners out there because you get a lot of heat from machines. They're like, what do we do with this heat? Well, why don't we just put it over to a greenhouse? And so they're getting two for one. They're getting cheap electricity. The A6 miners are generating heat. They're sucking out the heat because they have to. The room has to stay cold and they're putting that heat into a greenhouse to grow weed and sell it as well. There you go. Yeah. Two for one bargain. The box thinking. Yeah. Yeah. Totally. I love it. So based on like TA state currently, you mentioned like precious metals. Do you have any like insights or pulse of what's happening with the precious metal? Like obviously let's talk about like gold and silver. From a long position to a short position, not that that means anything whatsoever. Just that's what the indicator said to do. So I did it. Silver is in a down slide still. It hasn't recovered enough to the long platinum and palladium. How long that? Yeah. So I don't try to do a lot of predicting it to me. One of my famous sayings is the market will do what the market say. The markets will do what the markets will do. All of those markets are going to get a nice run.   So that's been good. But sooner or later that'll run out of steam and go the other way. As a trader, you just have to be sort of agnostic. You just have to say, look, it'll do whatever it wants to. My job is to sit here and have stops in and ready to go. So talking about those stops, right? So let's get back to that. So position length. I'm assuming you have, depending on what you have, whether it's futures or hedging or whether it's indexes, what's your general rule of thumb? Do you have like three baskets where you have short-term, medium-term, and long-term? Yeah. I would probably call it a little bit more. Well, if we made short-term say day trading or once every other day or something like that, I would probably be intermediate-term and long-term. My short stuff is probably nine days unless I happen to be doing a day trading thing that day because I happen to be in the office or something. And I could almost be doing it to hedge my positions or something. But for the most part, nine days is the lowest I go. And then most of my indicators are geared around 21 days, which is approximately a business month. 21 trading days is approximately one month worth of trading days. And that's kind of all my Keltners and my Bollingers and my Donch and Channels and those types of things. I use 21 on all of them. That just seems to be about the right time frame for a retired guy that doesn't want to sit in front of the computer all day. And you mentioned earlier you're not looking at the percentage per trade, but you're looking at the total percentage of overall portfolio. Yeah, everything is portfolio to me. When you start to single trade, if I look back, I don't know, a month ago, a palladium trade I did to the upside, blew my mind how much that thing was going up and hitting new highs. And I was wondering, this is going to run out of steam sooner or later. And it's going up screaming, exponential, parabolic. And I'm trying to move my stops up and trail it.  I'm like, whoa, I've got a lot of risk in this position.  So, palladiums were very good to me this year. But when you focus in on one thing like that, if I didn't have the 45 years of seasoning that I've got, the mental of us is, it's really simple to say, oh my gosh, I just made whatever, $60,000, $100,000 in palladium, I should take my profits now. I don't want to let that slip away because my stop loss is too far away.  It'll tell you when it's ready to go the other way. And I, frankly, there was a couple of days where I was thinking, even to myself, I was thinking, man, this is a little insane. I probably should do something about it, but I can't figure out what I should do. So, I just kind of... Or it's like the crazy people were buying on the top worth it. I guess. And so, I let it ride and I got my stop moved up eventually and was able to reverse and make some money that way. But, you know, a lot of that is just seasoning because you just, you see how many times you've been wrong guessing and predicting. And you finally just get tired of it. You say, don't stress yourself out. Just, you know, just go with the flow and do what you're supposed to be doing every day and the stress goes away. You can become Mr. Serenity that, you know, Jack Schwager called me in the new market wizards. It's just not that stressful if you're just, you know, looking at the data and making your decisions. You've already thought out exactly what you're going to do and you're just executing. Yeah. Well, I think today is a little bit different because I don't know if you were paying attention, but who was it? I think it was Forbes or something, but because of like apps like Robinhood, you have hundreds of thousands of like millennials and young people that have no experience putting options, putting puts, taking massive amounts of leverage. One of them, and they made a highlight piece on them is a subreddit called Wall Street Bets. Yeah. It's hilarious. Like it's the most insane stories ever. Yeah.  Sure. And so now you have all this. Yeah. Instead of like back in the days you mentioned, I got to call my broker. I got to do this. I got to do the paperwork. You have simple stuff. It's even simpler than going like literally an app click put by as opposed to me logging into like Questrade or something and then going through a process.  So you have all these hundreds of thousands of people right now who are just emotionally driven.  And they have no plan. I think I incited the video series creating your own personalized successful trading strategy or something like that. And 16 detailed videos that end up going into all these different topics. And I look at these millennials out there with their phones. They don't even use computers. I can't, I'm an old guy. I mean, this is an iPhone. It's, I've had it about four days now and it's the biggest one they make.  I'd much rather be on my extreme wide screens here.  And so I, I kind of look at that as they're predicting, they're guessing, they're gambling. A lot of them are certifiable for gamblers anonymous.   They just think, oh, I think it's going to go up today. I watched the social media comments. That's been fascinating too. This time around, I'm much more connected to the world than I used to be because I have the time and seeing some of the comments about, I think Monday is going to be the bottom. I'm going to go in. All right. Well, yeah, that might be the bottom of it. What's your plan? If it's not the bottom, do you have risk controls? Do you have stops in? Do you, you know, have you thought this through and they're just making up the decisions day after day, one day at a time. And I don't think that's trading. That's just having fun.  What advice would you have? So let's say somebody, you're, oh, we'll talk about a scenario. You have somebody who goes on your site, wants to learn trading. Maybe they're psychologically, that's their makeup. They're really good at that. Okay. Like I said before this, I'm like, I'm the lazy trader. I like to put my money in, see you later, maybe two, three years. I get like a 20, 20, 30% return I sell onto the next thing. And maybe they have five to 10K that they can play around with. What advice do you have for that? Well, the first thing they ought to do is concentrate on things that you can get some amount of diversification for a small amount of money. So probably the ETF markets would be a good place to focus on. The second thing they ought to do is to figure out at least three different aspects of what they're going to take on. One is going to be, they're going to need a buy-sell engine that triggers a decision and an action. It's got to be completely as much as possible clear and no nebulous nature to it at all. The indicator, the price goes through this line, I'm buying, period. And there's just no decision. The second thing that's even more important, and most people ignore it, is to try to have a systematic way of sizing your position. I think if you went on the website, you probably saw that I just wrote a book last year on position sizing. Why? Because in my mind, the simulations I used to do back at Trendstat, position sizing is far more important than the buy-sell decision. You could almost, I wouldn't recommend it, flip a coin to buy or sell if you properly size your position and maintain your risk really well. You can get away with almost random number because when a market trends and does what it did over the last month, if you had flipped it to buy and then you lost that day and you got stopped out and you flipped it again, sooner or later the coin's going to tell you to sell. Well, when you sell, you're going to get all this money that you would have made on the short side or avoided if you went to cash. Either way, you're on the right side of a lot of this slide, even with a random number generator. Does that make sense? I mean, sooner or later, you're going to get it right with the coin. If you have something even better than that, like an actual buy-sell engine that measures the trends and has the lines and it went through the line and, okay, I'm short or I'm out to cash, you're going to be on the right side of every major market move up or down where you're going to lose is all the little sideways periods where you're going to get faked in, faked out, whipsaws, all that.   Yeah, I tend to agree with that. Yeah. Well, Tom, I just want to thank you so much for coming on and sharing your experience, your wisdom. If people are interested in contacting you and learning more about your trading strategy, what is the best resource? Well, enjoy the ride.world is a website that I call it my retirement website because it's kind of, I was getting six to 12 emails a day from around the world and traders asking me this or that of the next question and I was answering them all. I've answered literally thousands of emails over my 17 years in retirement and I got tired of answering them the same way over and over again. I got a little boring. So I thought why don't I put it on a website and people can go there and sort of find a lot of answers. I still get some emails, but it's improved a little bit. A lot of times I can answer the email like I did this morning with one guy and just say, ah, the answer to your question is on this page of the website and I just give him the link and off he goes. So it saves me a lot of time. The other way you can follow me on, just put Tom Basso into Facebook and there's a page. It's called enjoytheride.world. It's at enjoytheride.world, I think, is the page. That's where I do all my economic pronouncements and interesting studies that I do or things that traders might be interested in. And on Twitter, as you know, I would be at Basso underscore Tom, one underscore. We have somebody out there that keeps trying to put two in there and spoofing me, hacking my account or something or trying to trick people into buying something. I can't remember what the guy was trying to sell, but they've shut him down. So one underscore, Basso underscore Tom. And I'm on Instagram but not real active. The photographic thing doesn't come up for me quite a lot. Maybe in my personal life more than my more trading life. So I don't know that people would be that interested in my Instagram account. But if you want, I'm on Instagram too occasionally. And my email is Tom at trendstat.com like it's been for about 35 years now, I think. So it stayed the same over all the years. And even though the company is no longer and I've been comfortably retired, I still keep the same email address so people can still get ahold of me. Awesome, Tom. Thank you so much for coming on the show. Wish you all the best and I'll talk to you soon. Hey, thanks. Bye. Cheers.


What? Microsoft growth rate is dropping! Its EPS growth rate dropped from close to 50% from the previous quarter to the recent 20% in the latest quarter. No wonder the stock price is tumbling. Wait, is that true? Is Microsoft growth rate really dropping? If you want to find out, then keep on watching. Once again, I'm Ola Kaili. This is Chloe and welcome back to my channel. The all-in-one place for you to learn about stocks, investing, as well as options. If it's the first time of you coming to my channel, remember to hit that subscribe button as well as the notification bell so that you will not miss out any of my future investment insights. An early thumbs up is also appreciated because it will tell you to algorithm that you find this video helpful and it will actually help to push out to more people so that to inspire them to start investing safely. With the recent release of the Microsoft latest earnings, investors can see that its EPS SOSnet income growth rate dropped from 50% from the previous quarter all the way to 20% in the most recent quarter. Does this spell some signs of trouble? Well, let's go into the report and check it out. As you can see in the previous quarter back in 2021 September, with its revenue and operating income increasing more than 20% year on year, while its net income and EPS had a stunning growth of 50% year on year. However, in the latest earnings, although investors can still see that there's a 20% growth rate in its revenue as well as its operating income, but its net income and EPS has fallen by close to 50% to only 20% this quarter. So what is going on? Before usual conclusion that Microsoft is slowing and you want to sell away your stocks and your options positions, chill. Let's take a closer look of the income statement and see whether it is indeed that Microsoft is slowing down. As you can see from the previous quarter, the reason why its net income as well as its earning per share increased by 50% year on year is mainly due to its income tax payout was only $19 million as compared to a $2 billion income tax payout back in 2020. In the most recent quarter, Microsoft continued to pay out $2 billion in terms of its income tax and that is why it affected the EPS growth rate as well as its net income growth rate. However, if you look closely, all of its numbers are better than the previous quarter, showing that Microsoft is not only growing at a very decent double digit growth year on year, it's also growing quarter by quarter. All the different business segments are growing very healthily, especially with the club businesses Azura growing 46% year on year. The management is also forecasting higher growth in this area due to the proliferation of hybrid cloud environment. On top of that, Microsoft just recently announced that it's planning to acquire this very popular gaming company called Activation Blizzard and I'm very sure if you are a gamer, you are definitely familiar with names like Code of Duty, Worldcraft, Candy Crush. All these popular titles belong to Activation Blizzard and if Microsoft managed to successfully acquire them, all of them will belong to Microsoft. If the deal manages to pass through, Microsoft will become the world's third largest gaming company by revenue behind Tencent and Sony. In my opinion, it's definitely a super boost to Microsoft business revenue and they will also give Microsoft a better position to pivot itself into the future of Metaverse. Talking about Metaverse, Microsoft is also a pioneer in the AR and VR technology. With the company pouring more resources into its mesh and total lens project, Microsoft is definitely going to compete hard in the race to the future of Metaverse. With the strong earnings result, my target price for Microsoft is $345. And based on the current valuation, Microsoft is indeed undervalued and it has a lot more room for growth. In fact, I've been also using options to accelerate my return further and despite of the recent volatility, you can see that my position is still more than 20% up. If you also want to learn options and how you can actually use it to accelerate your return, then do join me in my upcoming options foundation class where I'll be sharing with you different option strategies for you to profit regardless of the market condition. All you need to do is to sign up via the link below. If you find this video helpful, remember to give it a thumbs up and share it to your friends so that you can also inspire them to start investing safely. Also remember to join my Telegram channel if you want to be up to date of my latest investment insights. With that, happy investing and happy Chinese New Year. I will see you in the next video. Bye bye, mother. Like you.


The Ministry of Health, Wellness and Elderly Affairs recently handed over a renal dialysis equipment to the Millennium Heights Medical Complex, which is expected to aid in improving the quality of care services to renal patients. Acting Director of Administration at the Millennium Heights Medical Complex Jennifer Forreston Bank, the Ministry for the Unwavering Support and Investment in Healthcare in Saint Lucia. Your gesture here today in the form of a gift of renal dialysis equipment will impact the lives of a significant number of our patients. We consider it an extremely valuable and meaningful contribution in support of the delivery of care to our renal patients who present for service at the facility daily. This urgently required equipment will be put to use in very short order, in fact as soon as in the next few days with the support of our technical team who will undertake installation and our clinical team who will be utilizing the equipment. Minister for Health, the Honourable Moses Jabatis says he's very pleased to work together with the hospital to address the challenges faced on a daily basis and to improve the delivery of healthcare to patients. Well, I'm very pleased that the donation of this renal unit with eight chairs will help to augment the dialysis, the service for people who have been dialysed here at the UK EU. It is going to assist with filtration and with some other services so I'm very happy that the medical professionals will get an additional tool to help us with our situation here. Consultant nephrologists at the Millennium Heights Medical Complex, Dr. Meryl Clark expressed appreciation for the donation, which will make a huge difference in the services provided to renal patients. What has been happening really over the past few months is that water treatment has been problematic and this is why this equipment is particularly necessary. This has been, you can't dialyze patients without water. Water literally is life, we all know that, and as it pertains to dialysis, without water nothing happens. And of course because of the technicalities of dialysis, this water has to be purified and this is what this allows us to do. This makes a huge difference, it's going to make a huge difference in how we've been operating, take some stress off our very hard-working nursing staff and of course allow our patients to have the full four-hour sessions that ideally they should have that in a sense we've had to cut back a little bit on some patients because of equipment which wasn't functioning as it should. The renal dialysis equipment will be used to progressively purify water at each step and to ensure dialysis treatment is effective. Reporting from the Communications Unit of the Ministry of Health, Wellness and Elderly Affairs, I am the Neleptune.


Thank you. Hello, everyone. All right, thanks for waiting. So my name is Leonardo Losovis. I came to give a presentation called Cope with WordPress. I'm going to explain what that means in a second. My Twitter is Losovis, like my surname. My personal blog is leoloso.com. And this presentation is available in slice.com slash leoloso slash cope with WordPress, cope with the hyphen wp. I would encourage you to actually load this URL because there are some links that I'm not going to show here that you might want to see later on. So we start. So cope, what does this mean? It actually means create ones, publish everywhere. So it's a kind of clickbait title. I'm sorry about this. I didn't invent this term, but that's what actually means, okay? So yeah, that's how they promote it. So what is cope? It is a strategy for reducing the amount of work needed to publish your content into different platforms or mediums, like which ones, like websites, email, apps, virtual reality or mental reality, Apple Watch, scoreboards or giant screens, podcasts, home assistants like Amazon Alexa, in-card entertainment systems, or others, you name it. So the idea is you have an application running where? Website, yeah, maybe you have any letter. Maybe you have an app and you don't want to work so much into adapting the content for the different platforms. So the idea is how can we minimize this amount of work that we had to do? So how does it work? It establishes a single source of truth for content which can be used for all the different mediums. If we have only one single source of truth that works everywhere, we don't need to keep working on reformatting it for each platform. So there's a problem, which is that a single piece of content doesn't normally work everywhere. So for instance, you work with HTML for the web, but you cannot use HTML to make an app. Classes you use in HTML, class align center, but if you send an email or new letter, you need to transform that into styles. And then a style, like text center, doesn't make sense for an audio-based medium. What does it mean for Amazon Alexa to place some content on the middle? So not everything works everywhere and we need to pay attention to the things. So how does it work, actually? How can we do this? The key is to separate form from content. So the presentation and the meaning of the content might be the couple. Only the meaning is used as a single source of truth and the presentation can be added in another layer specific to that particular medium. So let's see an example. We have this HTML code, it's pretty simple. It's a paragraph with a type P. It's aligning the text to the center and the content is hello world. So this is where HTML is what it is. If we want to reuse it, we need to convert this into something more agnostic that we can use as independent units of data for other platforms. So this can simply be transformed into this. A simple object, an array, or a JSON object. The type is a paragraph, content is hello world and the placement in this case is center. If I can use the placement property because it's a screen, I use it. If it is audio based device, I ignore it. But now I can because the data is available as a property. So this is what we want to achieve. If we can somehow transform our content from the HTML content that we used to input in into our content management system, WordPress, into something more resembling this structure, we made it. Then we can actually use this content for apps and anything that you can think of. So why WordPress? Why are we talking about WordPress? Is it because we are in World Camp and of course we're going to talk about WordPress? Yes, but not just that. Actually WordPress is quite ideal to implement this strategy. They create one's publisher strategy because it is versatile. First thing is that WordPress allows you to create many different content models. It's not restricted to a specific one but through the use of MetaFills, you can add the properties that you need. So by default, WordPress has this structure in mind. It is very powerful because you can add new features through plugins very easily. It is widespread, everyone knows about WordPress, everyone knows how to use WordPress, not just technical people but also marketers, bloggers, everyone. It is headless. So headless is that you can access the content through APIs and we will actually need to access our content through APIs. And finally, and this is the most important one, it has a blog-based editor called Good Timber. And blogs enable to easily export the post-content metadata. So I'm giving this talk today and not one year ago because of Good Timber. The release of Good Timber is allowing us to implement this strategy. So this is what we are particularly interested about and this is what we're going to actually see in this talk. So let's talk about blogs versus blogs. A blog is a single unit of information stored all together in the database. So if we had this piece of HTML code, what we can actually see is an important piece of information like the content of the paragraph. What is it? Look at this wonderful tango. And the URL, the dimensions and the attributes of the YouTube video, okay, that URL, we can't access it directly. It's not metadata. So if you actually want to extract this information, I need to parse this HTML code, which is expensive. It is doable, but it is expensive. So there's no performance, no optimal solution to do this. So back in the day until WordPress 5.0, we were working with blogs. When you're actually typing content in the tiny MCE, in the content editor, that is a blog, okay? So basically what you had in WordPress until Good Timber was not easily accessible. So now let's talk about blogs. How do they change the situation? A blog conveys its own content and properties as metadata customized to its type, a paragraph blog, a video blog, an audio blog, image blog. And this is how it looks like. So in the previous screen, we have a paragraph and we have an embed of a video. If I represent this as a blog, as the data, it basically an object, an adjacent object or an array with two entities. The first one is a type paragraph and it has a content. The second one is a type embed provider YouTube and it has a URL. So each piece of data, depending on its type, can have its own properties. We can easily use any piece of data on its own and adapt it for the specific medium where it might be displayed. So if we're talking about watching a video on my Apple Watch, I don't need to pay attention to the width and height. Okay, I can ignore it. I just show the URL and that's all I care about. So through Gutenberg, we're talking about blogs. So in this case, you have the tile, a lovely tango and then you have a paragraph and then you have an embed of a video. Those two are blogs. And so its data, it can be accessed independently of everything else. However, Gutenberg blogs, they were not designed to work with code in mind. Whenever they designed it, nobody was thinking of this particular use case. Its representation of the information is different to the one just described. And this is how Gutenberg stores the information. Okay, we will actually make a few observations based on this piece of code. So the first one is, the blogs are all together in the same database entry. So if you actually go to table WP underscore posts, you will see an entry for the post containing all this data, which are the blogs. In this case, all the content for the blogs are all together, which is kind of a pity if you think about it, because if each blog is on its own row, you can go straight fetch it from the database on its own row. So you're not bringing the overhead of everything else. Ideally. This is a situation for all blogs except the global or reusable blogs, which they do have their own entry on the database. However, and this is a good thing, WordPress provides a function called parse blocks that you give it a piece of content in HTML. It parses this content and it gives you an array of all the data in the blogs, basically all the blog data on their own entities. And because of this function, we can work with this. Okay, so no problem. We can actually go to the next step. Next thing that we can see is that the blog type and its attributes are stored through HTML comments. So this is how a blog looks like. You can see that at the top is a WP column paragraph. Then you have a comment and then it closes that HTML comment. Then you have another HTML comment. WP core embers like YouTube and a JSON object encoded into a string with all the property for the blog. So these are HTML comments and it was a wonderful design decision when you're working with the web because now you can store the HTML content on the entry, print it on the page, and it's not visible when you're actually browsing the website for the web. However, this could be a problem if you're not thinking about the web because an HTML comment may still be visible for other mediums, okay? So you need to be aware of this. However, it's not the big deal because as long as you're using the function called parse blocks, you're getting the data from the blocks. You don't need to worry about HTML code anymore in that sense, okay? At least for the structuring of the blocks. So then we can work with this. This is quite all right. Next thing that we can observe, and this one is more tricky one, blocks contain HTML. So if you're paying attention to the first block which is a paragraph block, the content is the p tag, look at the wonderful tango and enclosing the p tag instead of just look at the wonderful tango. So the p tag is web, is HTML. So it works for the web, but I don't know if it works for other platforms, right? I mean, it may or it may not work. I cannot make that assumption. And this is a problem because HTML code is not useful for other mediums. So then the solution to this is that we need to strip those tags, okay? And we can keep only the semantic tags. Like for instance, if you use strong, which is to make a text bold, instead of using B, you can actually do that or using EM instead of using the I for italics because these are semantic representations and being semantic, they can be interpreted for different mediums. So Amazon Alexa, when it's reading the text, if it finds the strong tag, it can actually emphasize that sentence, okay? So then it is okay to keep the semantic tags. Everything else, strip it out. So this is something we have to be careful with. And finally, the last one, and this one is even trickier, is that in this case, the video caption is storing HTML and not as an attribute. So if you see at the second block, you can see there is a caption and exquisite tango performance. And this caption is stored between the fake caption tags, but it is not stored in the attributes of the block. And this is an issue because now to access that piece of information, if I want to show the video caption, I need to extract it from the HTML and it to parse HTML content like in the old days, basically. In this case, the regex, the regular expression to do it, a very simple one, okay? Doing that, we obtain the caption. But the problem is that we need to do this block by block. We need to identify what properties are stored as HTML and say, I need this property. I need to extract it and then you need to create a regular expression to do it. This one was very simple, but other ones are more difficult. So this is something that works, but it could have been better. Yeah. So implement the code. Now, what do we have to do to actually implement the algorithm to produce the metadata from the block? The first thing that we had to do is to simplify the structure of the JSON object returned by function parse blocks. The second step is to extract the pieces of metadata from each block, transforming them into a medium-agnostic format. And the third step is to make this data available through an API, okay? I'm going to show these three steps one by one by one. So the first one. We need to simplify the JSON object that we get back because on one side, it has missing data. If you have a reusable block, it is not fetching the data from that reusable block. And then because it adds data under multiple levels. So it is not easy to browse, which is for the nested and the group blocks. This is how it looks like. I'm going to show you a tiny bit. So this is a simple block here. It shows the data like this. Then it has an empty block divided that is adding between two blocks all the time. And here for instance, you have a reusable block. It's simple as a reference to that destination block, but it doesn't bring the data for that block. So we don't have it yet. And then for the nested blocks, it concatenates them under multiple levels. So this is not something that we can directly work with. So we first need to process this data and transform it into something more convenient. So what we do is to basically iterate through all the data and add it on a first level. In the case of the global block, we fetch the destination content. And in the case of the nested and group ones, we move everything to the first level. I have the functions here. And I need to actually show you in detail, but it's basically four functions. It's very simple. And the result is that all the content here is now in one single level. So now this is something that we can actually work with. And to demonstrate this, we can create an endpoint in the WordPress REST API to access this data, which looks like this. So I have here, oh, that looks very tiny. So I have this WordPress blog post with plenty of blocks. It has a video, image, some images which are missing, a video, audio. Okay, pretty much a tiny bit of everything, a tweet. Okay, so how do I see this data? Here you are, well, maybe you can see. Okay, so this is basically how WordPress gives you this data and then you put it in a format nicer.  This is the first block, which is a paragraph. Then I have an image, another paragraph. Then I have a YouTube video, okay? So you're basically transforming from the blog post into a JSON object for which you can actually manipulate and use this data. This is the first step, though. But... Works, no. Hello, hello. I'm still here. Okay, but the good thing that you don't need to worry about is that all the code that I did not show you just now for lack of time is available on a GitHub repo that I just created for this presentation. So once again, if you check the slides, those coms, slasher, also slash cop with WP, click on this link, you can access all the code. The second step, now that we have this initial data from the block, we need to transform that into something that is medium agnostic that we can use for any device. So we have data at this moment that contains HTML code, on which, as we have said, that's not suitable for the credit ones publish everywhere strategy. So we must strip the non-semitic HTML tags for each block, turning them into a medium agnostic format. And then while doing so, we can decide on a block by block basis, depending on the type of the block, what property we want to capture. If it is a paragraph, just the content, if it is the video, the URL, the width and the height, if it is an image, the same, and et cetera. And then finally, also while doing this, we identified the metadata that is not easily available because it's not inside the block attributes.  So something very important is that not all block types are suitable for this strategy. Some block types are only working for the specific medium that we have here. Screen device may be only for HTML, so we can't transform them. So for instance, core columns, core column and core cover, I don't know how to represent a cover for an audio device for instance. It just works on the screen, so maybe I will ignore it for the time being. Core HTML makes sense for the work only. Core table, core button, and core media text. All of these are different block types for Gutenberg. They are not easy to represent, medium agnostic, they might not make sense, so I have ignored them for the time being.  These are all of the default blocks shipped with WordPress. If you install plugins, it will have with extra blocks that then you need to work upon. But for these ones, I have already done it, so as a proof of concept that I'm going to show now, it's all working and everything is nice and working very nice. So to extract the metadata, we get the content that I showed you just now, that it was all the data, and we transformed that. We will create a function called getBlockMetaData for this. Once again, no need to show you the code, but it's not very long. What we do here, just to show this one function, is that on a block-by-block basis, in this case for the paragraph, I extract the content like this. In the case of the image, I extract the content like this. In the case of a YouTube embell, I extract the content like this. So on a block-by-block, I'll say how to extract the data. And finally, we had to make this data available through an API, otherwise what is the whole purpose? You need to have an API, because your app, for instance, will need to access the data through an API. So this is the final step, which is quite important. Three ways in WordPress, so far, that I know of at least. One is REST through the WordPress REST API, which is integrated in core. GraphQL, a very nice API, which is implemented through WP GraphQL. It's a plugin that you can install. And finally, POP, which is my own project. I'm going to show you something about it now, that it's also implemented for WordPress. So let's see how to export the data through each of them. So first, for REST, the REST API is very simple. Once again, no need to show you the code, but it's simply one function that is accessing our newly defined function called code block metadata, and it retrieves that, okay? And after creating this API endpoint, we see the results, okay? So if you remember that I showed you just now, that was a big blog post with a lot of content. And this is how it looks like after I have extracted the metadata. It's blog, in this case, a paragraph, with only the content for the paragraph. Then we have an image, and it only has the source for the image. Paragraph, again, YouTube video, it has the URL, and then it has the caption, quote, it has the quote. And here the site has text, and it has the HTML semantic tab that I can actually keep, okay? For the heading, as you can see, something that I have done. The heading is basically h1, h2, h3, h4, h5, h6, okay? It's an HTML tag, but can I use that in other devices, other formats, other platforms? Maybe, yeah, maybe no. So just to be on the side, I don't format that into small, medium, large, extra large, extra large. So now what we have here in something agnostic for the heading is extra large, which is heading two. Then we have the gallery with all the images and the width and the height for each of the images. The list has all the items. So this is awesome. I mean, basically we got it through this. Because now this is data that is available to any of your devices, and you don't need to actually think about it anymore. You go to your blog post, you create a new entry, and that huge piece of HTML is automatically transformed into something that you can access for every platform. This is magic. Once again, no need to show you the code for this, but all the functions that I just showed you, they're available in another GitHub repo, so you can actually download it. Next one is GraphQL. GraphQL is a tiny bit tricky, and I have not been able to implement it because all of the different responses for each of the blog type is different to each other. And GraphQL is very verbose. So for each type, for each different response structure, you need to create a new type. And if I have like 15 blogs, and I had to create 15 types to represent the information, the structure of the information in each blog, I was like, nah, forget it. So I didn't do it. What I did instead was simply to do a JSON in code of the data, okay? And I return everything that I showed you just now as a string. Once you get it in the client, you have to do a JSON decode, and you have the object again. So you can access this through GraphQL. This is quite awesome. And then finally, we have pop. Pop is a library that I'm working on. This is my own brainchild. And it works at any bit like GraphQL that you can actually define fields and you can fetch the field applied on an entity and it gives you the content for that field. So I created one entity or one field called post-blog metadata. And I'm going to show you how it works. So basically you have here the URL of our endpoint, and you define through fields, the fields that you actually want to fetch from that entity. Okay, and it looks like this. It basically same like GraphQL. I'm asking for properties. In this case, post-blog metadata. It gives me all the metadata inside that blog post, as I showed you just now. So this is very convenient. WordPress REST API, you have to make an endpoint with, and it fetches the data that it wants. So you're always limited and constrained to that piece of data. This way, similar to GraphQL, you can say gimme only this and nothing but this, which is pretty practical. But something even better that I have been able to implement through this API is that you can also filter the blocks by the block type. So one of the implications of working with different devices is that not everything works on every medium. Once again, content like text, I can read on my Apple Watch. Apple Watch, images, audio, and video. Don't give me anything else. So I only want to query for the content in the blog post, but not everything. Just give me the video, nothing else but the video. So this is what it does. It allows to add a block name attribute where you define what type of block you want. If I actually click here once again, now what I have is from a list of posts, only the videos. If they don't have any video, it doesn't give me anything, even though it does have content. Final example, here I'm querying a single post and I'm saying gimme all the images in this post. Ignore everything else, gimme the images. Once again, I want to get the images only for my Apple Watch. Okay, so this is what I get. And the beautiful thing about this is that when you're actually inputting the content through Gutenberg, you're not thinking about this. Okay, you're just adding your blog post, but you can use it for any other device. So once again, I'm not going to share the code here, but there's a GitHub repo. If you are interested, you can check it out here. So what we have after all of this that I have shown you is, we have here the HTML for a blog post as it has been set on the database by Gutenberg. Okay, something that is divided by blocks, but it is not readily accessible. Okay, and after a few steps in our algorithm, we have transformed that into this. This is what we wanted to achieve, so we basically did it. Okay, so conclusion. The code, which means create once publish everywhere strategy, helps create several applications which must run on different platforms or medium, web, email, apps, home assistance, virtual reality, augmented reality, audio, you name it. The way to do this is by creating a single source of truth for our content which separates form from presentation. Because it is block-based, Gutenberg makes all metadata inside the post readily accessible through APIs. And now we can implement this strategy. It is not optimal, as I mentioned just now, we had to parse HTML code, it's not the best, but it works, and it works pretty well. And as a result, the effort needed to release our applications to multiple platforms can be greatly reduced. This is what we wanted to achieve, success. So this is it. Once again, I need to mention this. The slides are available online. Check it out, because all the links are actually pretty useful and I couldn't show everything that I wanted to show here lack of time. Thanks very much. Okay, if you have any questions, you can also direct questions to Leonardo separately because we're running short of time. Okay, anyone? No? Okay, so if you have any questions, that's ready. Thank you, Leonardo.


The more I do these videos and the more reading I do, the more research I do, and the more reviews I read, I get the impression that Secret of Mana is considered one of the most overrated games on the Super Nintendo, and that really seems weird to me. I mean, let's start as basic as we can get. What is Secret of Mana at its core? Well, it's a non-linear beat-em-up. You wander around a huge map using all sorts of different weapons to destroy enemies from a top-down perspective, much like Link to the Past and Illusion of Gaia. So how can that be overrated? It's pretty simple and pretty satisfying. It does the fundamental things really well, like hit detection, sound, colorful graphics, a variety of enemies, huge challenging bosses, and the sheer amount of weapons that you can use. I think the problem comes from skewed expectations. It would seem people are expecting a big, ginormous sweeping story along the same lines as like Chrono Trigger or Final Fantasy VI, but that's really not the case. In other words, I think this game suffers from hype the same way that Super Mario RPG does. You get lumped in alongside all the big name, heavy-hitting RPGs. When they're not like those games at all, they're meant to be different experiences altogether. Anyway, I didn't make this video to slag on the story. It's a perfectly okay story anyway, but the problem with it is twofold. Number one, it starts out very, very slowly. It's not until the last hour or so when it really starts to get interesting. And number two, the characters have the depth of cardboard cutouts. These people just aren't interesting. You got your standard hero who says and does nothing of notes.  And that's really about it. While the characters aren't the most dynamic, what really makes the game great is the very sly way the game reveals the scope of its world. When you start out, you're just a kid that gets kicked out of his village. Then you're on a finite path where you can visit a couple more places. And then you can travel via the can and travel system, which fires you way up into the air and from there you can get kind of a hint of how big the world is. But then you finally discover Flamie the Dragon and then you get to see just how huge this game is when you zoom up into the air and view the world from a dragon's eye view. This moment right here when the music kicks in and you see that you can fly anywhere that you want. Man that's one of my favorite moments in any game ever. It's brilliantly done and it really says a lot about the thought they put into the planning and the structure of Secret of Mana. Another major strength this game has is its soundtrack and I don't mean that in an off-handed way like, oh yeah the music that's pretty cool, you know, for a SNES game. No, it's way more than that. The music is technically, conceptually, and compositionally the best on the Super Nintendo. Take the Ice Country stage here. The music here is so haunting and beautiful that you just want to wander around and squash random enemies and just hang out here just so you can listen to the music. And yeah I know music is subjective by nature, but even technically speaking from a hardware point of view, how on earth was the Super Nintendo able to squeeze out music so lush and detailed sounding? Just listen to this. It does sound like real instruments. Every time I hear this theme my jaw hits the floor. The level of detail in this track is just astounding. In my opinion the soundtrack is really what takes Secret of Mana from merely a good game to a great game. And yes I do think Secret of Mana is a great game, although I'll preface that by saying it's probably the most flawed, great game on the Super Nintendo if that makes sense. The story is limited, the characters are flimsy, and the magic system is kind of ridiculous.  The ring menu system in general isn't done very well at all. It can be really confusing at times with multiple characters, but while its flaws are prominent, Secret of Mana's strengths outshine them. Its core gameplay is really fun, the loud thwack of thrashing a rabid is addicting, the way the game's world is revealed to you is enticing, and the music is what truly makes the game an experience. So make sure to just manage your expectations. Secret of Mana is not on the level of the big named Super Nintendo RPGs, it's on a level of its own, it's its own kind of experience.