feet and with the amazing ability to do the Vulcan hand sign with her toes. Now if no one knows what I'm talking about, you have to go check out Chuck's interview with Alistair on the road to Max Dock. Would you know that made that into the couple of days? You know, I did not listen. Oh wait, I probably have to turn myself on here. There we go. One, two, three. There we go. Yeah, no, I didn't watch all the way to the end's credit, so. You got it all the way to the end. It's not everybody knows this, but I can do live long and prosper with my toes. And so that is my big claim to fame here, right? This is the kind of stuff you miss if you do not watch Road to Max Dock. That's right, that's the pod feet, right? That's the pod feet, right? So we're ready to roll. Podcast, Alison Sheridan. And Thorne and Mike Seid. Well, I want to start by explaining why everybody's been talking about that I changed my top.  Oh, I'm sorry. Well, I'm not to my topic yet. I'm talking about the topic I'm not doing. Oh, that's right, yes. I was going to introduce that as the title. Okay. The topic I'm not actually doing. So everybody thinks that I'm really mean to Chuck Joyner, right? They think that it's all me, it's my fault, it's a big problem, but I want to show you this is my iPhone. This is what's normally on my iPhone screen because that's my adorable grants on Forbes, but at the last party I went to when I got my phone, I mean, look at those cold, dead eyes. Look at that. And that's the kind of horror that I deal with. So anyway, when I was on the Road to Max Dock with Chuck and I kept begging to be on, begging to be on, he wouldn't let me be on. Finally, a week and a half before the show, he lets me finally be on. And I'm talking about my topic and my topic was going to be keystrokes inside text editing because I write about 5,000 words a week and I've gotten really good at a bunch of really cool keystrokes. But it turns out there was a problem in them and I'm going to demonstrate this, hopefully this video will play. I want you in the back of the room to tell me how well you can see the cursor blinking in that, in this, oh, I got a hit play here. Can you guys see where the cursor is from the back? Oh, well, then I should have done it. Well, so the point of what I was trying to tell Chuck and the thing was I was really struggling with it. You can't make the blinking eye beam thicker. There is no way to make it thicker. There's no accessibility you can do. There is no way to do it. You can do it like a control scroll and zoom up. But I was going to be showing the keystrokes using Boinx's mouse posse. So it shows you what the keystroke is down below. So if I did a control scroll zoom, that would disappear off the screen, completely defeating the purpose of being able to show it to you.  And I say, well, I use mind maps and yeah, and I do this and it's really cool. And he goes, wow, you should talk about that instead. And so I am not going to be talking about keystrokes at all. If you want to know my keystrokes, you can ask me about it. Instead, let's see if I can get out of this and switch. We're going to switch keynotes. There it is. Instead, we are going to do mind map your way to productivity.  He had to print him again, but it's Chuck's fault. Okay? Does everybody understand? Chuck made me do it. Does he get equal time? I would say no. Sit down. Sit down. All right. I will never again surrender my phone.  Let me tell you. All right. So we're going to talk about mind maps today. And the first thing I just want to bring up is what is a mind map? A mind map is a way of visually creating, getting ideas down and organizing them in order to complete some sort of task, some sort of project you're working on. I'm going to be showing a lot of different views. You're going to see mind maps that look all different colors. And I just want to, I did that on purpose, not to make an inconsistent slide deck, but to make it where you guys could actually tell that you can be a lot more creative than just one way of making a mind map. I'm going to be using iThoughts from Toketaware. This is my favorite mind mapping app. It is by no means the only one out there. I like it because it runs on the Mac. It runs on the iPhone. It runs on the iPad. I sync it through Dropbox. There's other ways you can sync it. It even runs on Windows. I mean, anybody here might care. I met a woman this morning who uses Windows. So there she can use it too. But it is definitely not the only one in town. I have learned since I've been here it is in SetApp. So if you guys have SetApp, you can give it a try. It's kind of the big guns version. There's another favorite one is MindNode. People like that one a lot. I used to use MindNode. I switched iThoughts. And to be honest, I cannot remember why. So I was going to do a thing saying why pros and cons, but I don't remember why. They're both great. So what can I do with a mind map? The first thing you might want to do is plan a talk at Mac stock. You know, you've got to figure out, okay, you can just throw down ideas. I've got to have my topic ideas. I've got to decide if I'm going to do keynote or I'm going to do a live demo. Never do a live demo. It always fails. Plan the flow of my talk. I've got to think about which part is my deep dive. You could, let's see, we already said that, didn't we? Did I go ahead? That's right. You could organize a complex project. I happen to be doing a home remodel right now. So you've got your, you've got to find a contractor. You've got to look at materials. You've got to think of the stuff to buy. How are you going to figure all these things out? You just throw these ideas out here and get them out so that you can start organizing and figuring out where you're going to do in how you're going to do that. The next thing you might want to do is plan a vacation. My notes here say click twice and I always forget to click the second time. So you want to do, I'm planning a vacation. I want to do a packing list. I'm going to need my electronics, my clothes, my swim gear, sundry, and then start filling in all these different things that you need within those. I'm going to need my big girl camera, my iPhone, my iPad. You know, these things are all crucial here, right? Click twice, Allison. There we go. So you could write a book. If you're going to write a book, you've got to figure out, you've got to have characters. You're going to need to have a plot line. You're going to want to be able to figure out how I'm going to, what are my options for publishing. I've got to figure out what I'm going to do when I make my millions of dollars after I write my book, right? So I'm going to have all of these different things that I'm going to keep plopping these in. I've got my characters. I'm modeling my house, by the way. I did this to make them laugh, because they were mad at me for making this, stopping the jackhammers that were running while I was trying to work on this. So you can see, you can start fleshing out more and more ideas on all kinds of different topics. I'm going to give you some real life examples here. So when Game of Thrones first came out, I was really confused. If you haven't seen it, don't look, if you don't want any spoilers. The red ones are the dead ones, as of when I made this. I'm pretty sure they're all red by the end of the series. But anyway, I made this my map, because I was trying to figure out, okay, who is Joffrey? Who is this guy? And I was real funny. If you look at these up close, you can see I'm saying all kinds of ridiculous things in the way I described it. And I sent it to my son, who's really into Game of Thrones. And I thought I was being clever and look at me being all hip, watching this, and he put it on Reddit to make fun of his mom. And I was really, really sad. I was like, I'm that loser, my mom's trying to watch Game of Thrones. But I thought it was a good way to keep track of what was going on. This is not even close to one of my most complex mindmaps. I do mindmaps when I'm trying to plan out a video. I do screencasts online. I do screencasts online. I do videos for Don. And when I'm starting to work on a new app, even if it's an app I know really well, I have to go through and figure out what's the order that I'm going to explain this. What are the important pieces? And I do that all in a mindmap. So I'll go through the menus and highlight what it is I want to say about each thing. And I can move things around and say, okay, I need to talk about this first. Oh wait, this idea goes over with that idea. I can slide things around and reorganize it. Because when I first start, it's just a jumble of ideas. These are the things I like about the app.  And as I'm working, as I'm actually doing the video, I bring this up and I highlight in a different color. So I usually flip it from purple to green. And so when I've already done it, I can hit it green. And once all the bubbles are green within a branch, I can collapse that branch and make it go away and get it out of my way so I can see the progress as I go through it. Steve and my driver, he drives us around everywhere at MacStock. And he made fun of me because he said, you know, we have this thing called rain in Chicago. And you, being from California, might not know that we don't stop and not do anything when it rains. In California, we shut down. And people leave work early if it's going to sprinkle a quarter of an inch. Because it'll take you like six days to get home because nobody knows how to drive in the rain. Because in the Midwest, you grab your umbrella and if it rains in your raincoat, they're right by the door and you go about your business.  But in California, we leave work early, we stay inside and we wonder, where is that umbrella we bought seven years ago and have never used? The craziest thing I ever did with of my map was I decided to map all of the iOS 11 settings. And this was a moment of madness that I should not have done. I'm going to click each level one time. So that was all of the top level. We've now gone out to the second level. That's the third level. Four. Five. Six. Now you'll notice it's falling off the screen, right? Seven. Wait for it. Eight. There, nine. That was the last one. If you look at that, here is the entire mind map. Now what I really learned from this is wouldn't you expect it to be deeper, not so tall, so the height of that tells you there are way too many things at the top level. So as I went through this, there's a lot of commentary going why is this at the top level? Like change wallpaper. If that had been buried a little bit deeper, Chuck would not have been able to get the time to get that face on there, right? I think that one needs to be lower is just what I'm saying. So if I did some math on this, if I printed this 11 inches wide, it would be 5 feet 4 inches tall. It would be as tall as me. Some people suggested I should print it out, roll it up, put it in a tube and mail it to Tim Cook. This is available online by the way if you would like a high res version you can print for your own wall. Now a lot of people say to me, why don't you just use an outline? How is an outline really that much different than a mind map? And this is the same information. I mean this would have to go taller than you can see it's falling off screen. But this is the same information that I have in a mind map in an outline. And that's a good question because there's a lot of times where an outline would be a better way to go. But the problem is that mind maps don't actually start like this. Here is my packing for a vacation in Hawaii. Look how organized that is. That's beautiful, right? You can tell exactly where ever it goes. But that's not the way we think of these ideas. What actually happens is these ideas just start popping into our brain going oh I need swim fins, I need a toothbrush, I need to bring my comb, I've got to have a t-shirt, my iPad, oh my batteries. That's the way that actually comes into our brain. So putting that into an outline you can't do it that way, right? It's a lot of work. The other thing is these ideas come to us at different times. They come to us when we're at work. These are the ideas that come in there. Then we get other ideas when we get home. And then we're at the gym when we think about even more things. And so the ideas are coming in all jumbled and they're coming in all different places. And they're also coming in when we're at different devices. So sometimes you're on your computer, sometimes you're on your phone, sometimes you're on your tablet. You're getting them at different times, different places, different devices you're on and they're all jumbled up. So let's take a look at the actual process to get packing for Hawaii together. So here is, I've got all my ideas. I've just thrown them into a mind map. But that isn't useful at all because it's not organized at all. So let's take a look at how we would organize this. Now this is the way iThoughts works. I'm clicking the center node and I'm going to create a category here and this is going to be for close.  And I don't know, it's pretty quick. When it gets to the right you see how an arrow clicks out to the right? That shows you that I'm making it subordinate to that node. So each one of those is going to pop to the right.  So let me drag it up over here. I'll go get my snorkel and you saw that pop to the left. It had the arrow to the left. No, that one went to the left up there. We'll create another category now. We'll have one for sundry and we'll pop that one in between and everything moves out of my way. And so I'm not scrolling up and down a long list of items in an outline. I'm actually able to move these things and have them pop into the right category. I've got to have one for electronics. Let's just grab a whole bunch of nodes instead of doing one at a time and we'll drag them and we'll pop them into the electronics. And yes, you guys have noticed there's a mistake there. Now we'll get fixed. Pop those over to the right. Now this is a big mess. I need to move things around to where I can actually see what's going on. I need to add my charger and my cables to my iPad. I'm going to get the waterproof case that goes with my GoPro. Memory cards for the GoPro. Mask is in here. Let's get that over. Pop it into swimming stuff. This is actually how it works. You just kind of jump around throwing these things together. I've added a couple of things to my big girl camera and I've got my iPhone but it also needs a charger and cables. Let me select those. I'm going to copy those and of course I'm using command C, command V because I'm not an animal but I just thought I'd show it that way. And now I just pasted it into big girl camera so I've got the charger and oh, I do need a memory card for my bigger camera. Let me copy and paste that over there. Now this is looking pretty good but it's kind of a big mess. Let me organize that like that. And now that's what it looks like when it's done. Looks like I got you guys sold on mind maps, right? But here's the problem. I remember you 30 years ago. But the thing is sometimes an outline is better. Sometimes I take my outline I take my mind map and I want it in the outline when I'm working on screencast online because maybe I want to put in more paragraphs of text and I want to be a little more detailed in it. But the thing is you don't actually have to choose between the two because mind maps speak OPML and so do outlines. OPML is the open processor markup language and David Sparks told me three times yesterday that I had to make sure I gave him credit that I learned this from him. So what he explained was that you can round trip between the two David Sparks maxsparky.com by his videos. You can't tell I'm being blackmailed for something, can you? But the cool thing is you can shove a mind map into OPML and then just simply open it up into your outlining application and then you can make changes and you can put it right back. So you don't actually have to choose between the two. So let's see that in action. This is a more boring format in iThoughts so this shows you that I've got the same thing. Here's my packing for vacation and I'm going to just go up to file and export, oh sorry share in this one and map and there's a lot of different sharing formats but one of them is my map and the desktop format is OPML. So I'm going to save that out. It's called packing for vacation and I'll hit save and let me pop down iThoughts and I've got an application called Cloud Outliner Pro. Very cool. You can get it in setup. So I'll say file open and I'm going to open that up and click open and there's all of the items that you saw before. I'm going to use a keystroke here to pop all of these down so you get to see everything that I had in my mind map is in here. And now let's say I want to change this up a little bit. I'm going to take my cameras and I'm going to put them in a separate category from electronics. So I created a new item down here and I'm going to put my main cameras down at the bottom and I'll fold up my big girl camera and my GoPro and I'm going to drag each one of those and put them under cameras. So electronics was a little bit big of a category so I want to move those down in. And now that that's done I can export this packing for a vacation back out to my desktop. I'm going to go to I forget what it said there, it says share and I'm going to change it to OPML and I've got to mess up on my title here but I want to call this V1 and I can tell it apart from the first one and I'll click save and I'm going to go back to iThoughts and this time I'm going to say file open and I can simply open an OPML there's V1, we'll open that up and there's our mind map and you can now see that the cameras are separated from electronics. Full circle. Yeah, so you don't have to choose, that's the main thing, right? There is easy to use back and forth and any, all of the outlining programs I believe read OPML. Alright, let's talk about what we're going to do in the deeper dive. By the way, these animations you're seeing in, of the way these things are growing that was all done in iThoughts. iThoughts creates these animations of, so you can create slides, it's really cool. I discovered that when I was starting my presentation a week and a half ago, thanks Chuck. So I am going to go, let's see, does it say click twice, there we go. So in a live demo, I'm going to do a live demo. We'll use iThoughts on a Mac with iOS if we have time. I'm going to show you how to create a map from scratch and we'll go through some efficiencies with keystrokes because you can do a lot more with keystrokes, you don't have to click buttons but you can if you want to. And we'll talk about how you can do search and filters within these when you get really complicated ones like the iOS 11 one. That's a lot, I can open that one for you guys in the deep dive if you actually want to go through it. We'll look at some of the other export options and there's a lot of elements beyond text that you can do in at least in iThoughts, I'm not sure about the other applications but you can do, it's got markdown support, you can put in graphics, you can have links, you can have photos. It's really, really powerful. So let's see. There we go. Oh, I already talked about elements beyond text, the other stuff, there's color coding, you can add icons, I forgot about those. You can do task management. I don't do that because I don't manage any tasks anymore. But you can do task management and I'll show you the animated slide thing is super fun. So let's see. Isn't that cool how that animates? I thought that was really nifty. We could definitely do some Q&A. A lot of people say to me I've tried to do mind maps but I just can't get my head around them and anything I can help to try to get you over that hump to help you feel the love for it can be good. You might want to see that OPML thing again more slowly. Maybe it was slowly enough. And what was that cool outlining program? Let's see. Oh, I remembered to hit it twice. And we can talk about some of the other mind mapping apps. I'm curious what mind mapping apps you guys use if there's some that you really like. There's open source mind mapping apps you don't have to pay a fortune. They're not all expensive and we can talk through a few of those. So at this point you're thinking I must attend where and when is this deeper dive. It is at one o'clock today in breakout room one. You absolutely should be there. I do want to make a shout out to all of the NoCillicast ways that are here. If you've ever listened to the live show, if you've ever the NoCillicast, especially if you've ever been in the live show at 12.30 in the lunch room there, we're going to try to get a picture together. So I hope people will show up. You can even pretend you listen. I don't care. Make the picture. There's only like three people. That looked really bad. No, I know there's actually 12 people from my live show here at the event. And especially when Toby is here for the first time. Wave at everybody. Toby there. Toby is I believe is now our youngest. Daniel, you're like old news now, right? You're the old guy showing them the ropes. And if you are interested in checking out any of my other stuff, I do three podcasts, the NoCillicast, which is mostly me, but also Bart Bouchotte's doing security bits. Great segment. A lot of love for Bart. Yeah, absolutely. And I have an interview show called Chit Chat Across the Pond Light, which is whoever I find interesting to talk to on the internet, usually of a technical nature of some sort. And then for the heavy propeller beanie types, we've got programming by Stealth where we're learning HTML, CSS, and JavaScript in an audio podcast, which sounds ridiculous, but it actually works. Let's see, how's my time? Nobody told me time. Two minutes. Questions? Yes, over here first then down here. Can you roundtrip OPML with the Notes app? I don't know. Does Notes app import and export OPML? Yeah, the lists in there, I don't know whether those are real, they're a little more staticky. It'd be interesting to try. If it's got an export, then yes. If it doesn't... Yeah, we could try it. Oh, okay. Okay, so I'm going to repeat what Brett answered. He said, if you copy and paste it, if it was a checklist, if you copy and pasted it will be you could put it in OPML into an outline that would work. Not quite as elegant. She had her hand up there. Well, Microsoft Word outlines transfer into MyMap. If it reads and writes OPML, yes. Yeah, we could check it out in the deep dive. We could give that a try. I've got word on here. I don't ever use it, but I pay for it, Chuck. Don't ever use it. Yeah, go ahead. Okay, the answer was Omni Outliner is her favorite outlining app. I think it's too expensive. That's why I use Outliner. Okay. She loves knowing now that she can do a round trip. Does drag and drop work the same in the iPad as it does in the Mac? Yeah. You can drag things around with your finger and it all reflects through and syncs. It's a little slow syncing through Dropbox because it's got to go all the way up and all the way back down, but it absolutely does work. Was there a hand over here? Oh, Steve. All right, so my videographer says never do a live demo. Never do a live demo on the big stage. Maybe that was what I meant. Yeah, I got a question in the very back. Okay, he's saying word does Okay, he's saying in word, I could have increased the iBeam size. I'll have to check that. I'll have to check that. You just tested it. So it gets thicker? Wow. Okay, so there was one other example Don. What is the name of your developer? Simon Wolfe figured out that TextEdit was open sourced a few years ago by Apple and you can get old versions of it. He got an old version of it and hacked it so that he made a thicker iBeam for me. So I could have used that, but the point was to show you it was everywhere that you could do these keystrokes. Chuck, the question was can you add graphics at any level to a mind map? Absolutely. You can do it too. Like I said, I don't use all of the mind mapping applications, but I know and I thought it's absolutely. So I take screenshots and throw them in there so I can just remember something and then edit later. And you can shrink them so they're real small and they don't splat all over the page, but you can also increase them in size when you want to look at them. So it's kind of the best of both worlds. I'm getting the hook here. One last question. I'm going to repeat that for the video. He said he thought it was endearing that I actually was going to tweet out. I should have done it. I was getting ready for this conference. I didn't pack makeup. I didn't pack earrings, but I thought very long and hard about which Apple Watch band I was going to wear. And that's my kind of conference. Thank you very much. Hope to see you at the deep dive in the photo at 12.30. Thank you.


Don't overcomplicate it. Friends, family, be healthy, keep things simple.   I have to tell myself that a lot. The simpler your life is, actually, believe it or not, the more money you make, too. It's just a simple idea. And those ideas are much more, I mean, any business idea can fail, but make you more money, make you happier, and make more time for better people. Like Sigma Freud said, you can't love everybody the same because if you love everybody the same, then you take away time from good people. You gotta have simple life so you have time to remember the good people, the people that are your closest friends. They should spend more time with attention, too.


Hello and welcome to NewsClick. Today we have with us Prabhat Patnaik, a well-known economist and who's been with us discussing the economy now for a number of years. Prabhat, good to have you with us. Thank you. Mr Modi claims that the economy is well on track and it's all the fault of the critics and the naysayers who are making it out to be a dismal picture. What's the picture of the economy now and how much of the slowdown is visible? Well, you know Mr Modi's diet tribe was really all over the place. In some places he suggests that there is a setback in the first quarter. In other places he suggests that this is something which is going to overcome very quickly. In still other places he suggests that it is only the critics who are kind of making all this up that in fact there is nothing wrong with the economy. But as a matter of fact governments own statistics. These are not statistics manufactured by any of the critics. The government's own statistics show that firstly there is a distinct slowdown in the growth rate. 5.7% in the first quarter by the new method of estimating GDP and apparently if you use the old method it's even less 3.7%. And the new method of estimating GDP has been much criticized by economists and statisticians. And if you look at even sectorally you look at manufacturing it's virtually stagnant. Again if you take the older method then it is literally stagnant with the new method it's very slow growth rate. In agriculture if you take at least the last 3 years of the Modi government in real terms the rate of growth of the agricultural sector is just about the same as the agricultural population growth rate. In other words per capita incomes in the agricultural sector in real terms have remained unchanged. When you add to it the fact that agricultural prices have actually fallen then the command over commodities is something which is really likely to have even marginally declined. So altogether it's a very bleak picture of the economy and you add to it the fact that employment growth rate has not only slowed down but now is in a negative region. So altogether the economy is in a pretty desperate state. So Modi had promised jobs when he came into power. So when you say the employment has turned negative that means compared to the number of young people who are coming to the job market there is actually a squeeze on physical employment or is it only in the shall we say the more established manufacturing sector and so on that the jobs are falling. But the services sector is able to provide some amount of cushion to this. No if you look at the macro picture the rate of growth of employment earlier was about 2% you know let's say until 2004-5 annually and then it came down if you compare the NSS reports of 2004-5 and 9-10 to 0.7% per annum. So even at the best of times when the economy was growing rapidly you actually had a rate of growth of employment which was much less than the rate of growth of the workforce. Now if you take the macro picture again in the last 3 years according to the labour bureau's data employment actually has come down in absolute terms. But the point is that this is not only employment in the agricultural sector or in manufacturing. This is true even in employment in all those industries which at one point appeared to be very promising in terms of providing jobs to the educated and so on. So there is an overall slowing down of employment which is really quite serious. If you take both of this together do you think that the Modi period is qualitatively worse than what happened at the Malmohan's period or do you see this is a secular decline as it were which has come to a crisis now? Well to start with of course there is a slowing down of the world economy and that belatedly is catching up with economies including China, China, India and so on. The emerging market, the emerging economies. But the point is that you know that the slowing down begins before you know sometime ago it really begins in the Malmohan period. But on the other hand what you do find is that the Modi government instead of doing something about the slowing down has actually worsened things because of its measures of GST and demonetization and so on. All of which are severe body blows to the economy particularly to the small informal sector, petty production sector, small capitalist sector and that in turn has multiplier effects on the formal sector as well. So the Modi government has actually worsened the situation which in any case was deteriorating even before. It's interesting what you say because demonetization was really a huge blow to the informal sector and it translates to the formal sector relatively little later or you see it in the statistics a little later. In the case of GST people haven't registered but it's a huge blow to the informal sector. In fact it weighs entirely the economy in favor of the formal sector against the informal sector. Yes, absolutely. In fact which is why the GST was being demanded. You see nobody demanded demonetization but big business, international agency they were all demanding the GST and it has been tried in other countries. So in a sense GST was a much more thought out measure in terms of strategy, a measure which would favor the formal sector, the expense of the informal sector. It was a measure of centralization as far as the economy is concerned but on the other hand even that measure is now being criticized by everybody because the blow to the informal sector is so great that before the formal sector could possibly take advantage of it. In fact it is suffering from the multiplier effects of that blow. Now do you see any way out that the government is thinking of or do you see it as more concessions to the rich as the model that they would likely be to follow? Yes, I think they are talking about this giving some fiscal stimulus to the economy. Now to the extent the fiscal stimulus simply takes the form of transfers or tax concessions or transfers of various kinds to the capitalist to boost in quotes their animal spirits then that of course is not going to have much of an impact because capitalists invest if there is demand and if you have no demand then no investment is going to come about. In fact as you know the investment has been so badly hit that the capital goods sector in the economy now is having negative growth rates. But what is more, there is another aspect which has not received the attention it deserves namely that international finance does not like fiscal deficits. Now if you have fiscal concessions which are actually financed through a fiscal deficit in that case there would be an outflow of finance. If there is an outflow of finance and if this outflow is further compounded by an increase in interest rates in the US which the Fed is likely to announce then you would find that it will become very difficult to finance our current account deficit which as you know has really increased quite significantly. One of the factors contributing to this slowdown and when that happens then the government the rupee would come down. Already the day the government announced a fiscal stimulus there was a drop in the rupee. When the rupee comes down the government would then adopt austerity measures of various kinds to shore up the rupee. So I think a fiscal stimulus that they are talking about if it is to be meaningful would require capital controls of some kind which to my knowledge the government is not thinking of. No stimulus regarding spending for the poor or for public infrastructure except of course the bullet train which as you know is a fiscal stimulus for the Japanese industry not for the Indian one. Much of the demand generated for setting up the bullet train would be leaking out to Japan anyway. So it's not likely to create much of an impact on the Indian economy. And any other stimulus that you think could help in this current situation not what the government is doing but could do if it had some sense. You see they are actually attacking the small scale sector. On the contrary what they should be doing is to really put demand back into the economy by transfers to the poor. I mean enlarge health expenditures enlarge education expenditures as a matter of fact health expenditures in India are really among the lowest in the world. Instead of a 3% of GDP which is normally seen as the target for health expenditures you actually still have way below 3%. Likewise education which the Kothari Commission had said 6% of the GDP you have way below not more than 4% is the total expenditure in education. So you have this kind of a situation where the government is withdrawing from these critical areas which are of great potential benefit to the working people and handing it over to the private sector that actually fleeces them. Any other thoughts on what Mr. Shauri has called the 2.5% government Modi, Amit Shah and the in-house lawyer being the half? You know normally of course I mean these people of course have no ideas of the economy. Normally in India used to have a fairly intelligent economic bureaucracy which really advised and so on. After all finance ministers or prime ministers did not often know much about the economy. What has happened now is that the economic bureaucracy has also tended to become increasingly psychophantic. In other words instead of giving independent thought out correct bold opinions they tend to echo what the leadership wants to hear and that is something which is really quite disastrous. Thank you very much Pramath. We hope to have you more with us on this and other issues. This is all the time we have for Newsclick today. Do keep watching Newsclick.


Today, we're making yogurt fruit clusters covered in chocolate. Now I'm making two flavors today. One is strawberry and almond, and the other is blueberry and lemon with sliced almonds. And both of these, I like to pack it up with some protein powder. So I'm using some whey protein. You can use that if you'd like or you can leave it out. These are easy to put together and they are relatively healthy. They have a lot of protein in them. And we try to keep the sugar a little bit low. So I'm rockin' Robin and I'm gonna show you how to make them right after my chef joke. What are twins' favorite fruit? Pears. Simple and sweet. I'm starting off here with some whole milk yogurt. You can use any kind you like, Greek yogurt, whatever you prefer. And I'm gonna place that into a bowl with all my other ingredients.  Now to that, I'm adding my protein powder. I'm using naked whey here. This blends in nicely by using a whisk to combine it. Don't forget, you can get the written recipe below the video in the description area. Once that's all combined, we're gonna add some sweetener. Free to use any sweetener you like, like honey or maple syrup, but I'm gonna use a combination of liquid stevia and honey in this. Here I'm using six drops of the stevia and then I'm gonna put about a teaspoon of honey in this. Give that honey a good squeeze, just like you would the like button if you're enjoying this video. Then I'll give that a little mix. We're gonna add a little crunch to this by adding some sliced roasted almonds. I get mine from Trader Joe's so you don't have to roast them yourself. Toss those in and give it a little stir. Now we need to add our strawberries. So I have some organic ones here. I like to always use organic, especially with strawberries because they absorb more pesticides. So anyway, after you've rinsed them, go ahead and remove the stems and then slice these up nice and small. They should look something like this. After we've got about a cup full, then we're gonna add that to our mixture. Fold those strawberries in and we're just about ready to start placing them on our baking sheet. Get yourself a baking sheet and line it with parchment paper. That way they won't stick. I have a very small scoop here, which is perfect for these. And so you just basically wanna just scoop them up and place them right on the sheet. After making these a couple of times, I decided that they're a little bit messy and so placing a toothpick in each one makes eating them so much easier and just neater. Gotta do is make sure that that toothpick stays vertical and you're good to go because once it freezes, it sticks really well. So my advice is to use the toothpick because it makes dipping these in chocolate very easy to do and it makes eating them much easier because the chocolate doesn't melt in your fingertips when you're eating it. Now I like to store mine in the freezer. They'll keep probably about a month nicely wrapped and then in the refrigerator, you could keep them for about three days. Probably the easiest way to do this is just put all your scoops out and then add all your toothpicks and just get them to stand up the best you can and then pop this in the freezer for at least two hours. It must be time for chef joke number two. What do cats call mice on skateboards? Meals on wheels. Okay, we're gonna make our next flavor, which is lemon blueberry. So we're gonna go ahead and add the yogurt into the bowl like we did before and then we're gonna whisk in our protein powder so it's nice and smooth and next comes our lemon zest from our organic lemon. Plus we're gonna add a teaspoon or two of lemon juice. Then six drops of stevia, a teaspoon of honey and we'll give it a good mix. We'll add the almonds, the blueberries and then we'll give that a stir and we're ready to place it on our baking sheet just like the others. So with the blueberry ones, I'm not going to put the toothpicks in. These are also going in the freezer for at least two hours. Overnight is really best. To dip our yogurt clusters in chocolate, I'm using Guitard's milk chocolate, but feel free to use any kind you like. I'm gonna add some coconut oil to the chocolate so that it makes dipping the yogurt clusters much easier because the chocolate will be nice and thin. Once your chocolate is melted and smooth, then we can start dipping those frozen yogurt clusters. And I think you can see why having the toothpick in there makes dipping these in chocolate so much easier. And I think you can see that the chocolate's not too deep so tipping the pan over allows it to get deeper and I can just dunk the whole thing in. So this is definitely how I would recommend dipping these in chocolate by using the toothpick. Now here's how I did it without the toothpicks and it is much more challenging and the chocolate does get a little bit hot, but you can do it. I mean, I've done it and it does work, but it's just messier. And sometimes I would just dip half of the cluster into the chocolate and that works too. I'm hoping you'll try both these flavors, the lemon blueberry and the strawberry and let me know in the comments which one you like the best. The chocolate starts to firm up right away but you still need to put these in the freezer to really chill them down before you eat them and then you need to let them defrost when you take them out to eat them for one to three minutes. These really are a great treat for a summer day, so refreshing and I have to say my favorite of these two was the strawberry because probably because my strawberries were so sweet and delicious. If you love chocolate desserts, then you're gonna wanna try my three-layer sun butter bars. They are delicious and easy to make. Click the link on the screen and it'll take you right to the recipe. I hope you enjoyed today's video. If you did, let me know by leaving me a comment and smashing the old like button. And if you want, share this video with someone who you know might enjoy it. All right, we'll see you back here next week for another delicious and healthy recipe.


One of my favorite things that DT does is his annual youtuber shout out video that he does And this is where he talks about some of his favorite linux youtubers that he's found over the last year And I think it's such a nice idea because it kind of spreads the love around and admittedly I'm a little bit biased because I was featured on one of those videos So I really you know kind of like that even more because of that But I think it's just a nice idea to kind of share the love around when it comes to those of us making Videos about linux now I did do this last year So this is my second year doing it and I figure why not go ahead and make a 2023 version of that video So today I'm going to be talking about my 10 favorite linux youtubers at the moment now Obviously, this is not all-inclusive. There are many more that I watch I just kind of narrowed it down to 10 honestly I could have done 15 or 20 but the video would have been way too long So I just narrowed it down to 10 and I did pair out the big guys So like Chris Titus Tech and DT and Brody those guys are all big enough that they don't really need to be featured on a list like this So let's go ahead and take a look at my 10 favorite linux youtubers right now So the first one on the list is Jake at linux now if you like window managers and Baskrypting and things like that you won't find a better linux youtuber out there honestly He does a ton of stuff that is just kind of amazing like he uses scratch pads in ways that I've never seen anyone Use scratch pads before he likes to talk about all of the menu systems that he's created through like Rofi and things like that I think he uses fcf now But he does all of this really cool scripting and window managers stuff and he's doing an emacs challenge So, you know, there's just a ton of stuff on this channel that if you are a uber nerd You'll probably will want to check him out now. He's also done a ton of stuff with many different window managers He's not he's not committed to one window manager, although he does have a favorite He talks about many of them and he doesn't talk about mainstream ones on that much either So things like herp's love WM. You'll see on his channel Q tile X mode and a lot of that stuff And if you like those kind of window managers again, this is a very good channel to subscribe to the second channel That I want to shout out to is the linux tube linux tube does a lot of stuff when it comes to distro reviews now I'm On the fence about distro reviews So I'm you know, not a bit the biggest fan of this reviews But one of the things that I like about this channel is that he finds some really up-ski or distros that you may have never heard of before and Those are my favorite types of distro views if this reviews have to exist I want to see just reviews of distros that I've never heard of before or very rare I don't care about the most recent a boon to everybody's going to make a video about that But things like ultramarine linux like hello system OS and stuff like that very obscure distros and I like those kind of videos so Definitely give the linux tube a subscribe very good content. The next one. I'm going to butcher their name So I apologize for that. I'm going to try it. Anyways Traffoton traffoton. I apologize for Not being able to pronounce that name. Yeah, I just couldn't do it. Anyways If you like linux and you like security and things like that they make fantastic Videos on all that content. You'll see things like they most recently made one on kde But they've also talked about things like the anti javascript movement A lot of anti big tech stuff things like tour And a whole bunch of stuff like that and they also make some more esoteric videos like stuff on Inkscape and stuff like that. So they also made one video about Trading youtube thumbnails, which I found very interesting Interesting and I almost followed that tutorial but decided just to stick with the thumbnails that I use right now but anyways, if you like a whole bunch of Linuxy type content security and stuff like that This is a very good channel to subscribe to the next one on the list is bud labs now bud labs does not make a lot of Content. So if you're looking for someone who publishes every day or even every week That's not going to be bud labs. But if you like i3 He has some of the best i3 content on youtube And that's I mean that may even be underplaying it just a little bit simply because Some of his videos about i3 are just absolutely spectacular. He has a series on i3 with system d that was the most informative system d video a series that i've ever watched to my life It's fantastic And like I said, if you want to learn how to start services with system d even things that aren't Specifically services are ready if you want to learn how to start up with system d those videos were fantastic He also does a whole bunch of other stuff with i3. So if you like i3 win a manager This is definitely a channel to check out the next one is one of the youtubers that I've been following for a long time And that's Linux dabbler. He might have might have also been on the last list that I made icons They can't remember but it doesn't matter because he definitely deserves a shout now again like bud labs He doesn't make a lot of content. He has a little baby. So he doesn't focus on youtube But when he does make a video You can count on that thing to be gold So if you like debbie and if you like butterfests, if you like obscure window managers like speckier wm Give the linux dabbler a try because his videos are all Fantastic and they're full of actual like how-to information So if you are looking for really really good tutorials on how to do some of the stuff like use butterfs on debbie and or install debbie and in You know interesting ways or use and configure dwm or speckier wm or whatever You can get a lot of information from linux dabbler. So definitely head on over and give him a subscribe Now the next one on the list is arnie's tech and this is another one of those channels that doesn't publish all that often But when they do they make a very very good video. They talk about things like upgrading to new versions of fedora using the arch install script Installing opensusa. So there's a lot of tutorials and stuff on here And it's all linux content all very well produced and put together. So definitely check out this channel if you're into Linux content. It's really really good. Now the next four on the list are bigger So there I was trying to get everybody under 5000 subscribers to be on this list but There's a few that I just kind of want to shout out simply because they're just really good even though they do Overshoot that threshold. So the first one is nico loves linux. If you like kde I highly suggest heading on over to his channel and giving it a subscribe because he's a kde developer So anything he talks about you can pretty much take his pure gold because he talks about all the updates That kde does and all the features that they add and a whole bunch of other stuff And what I like most about his channel is that he's not so attached to kde that he can't open his mind up to other desktop environments So he spent a month with ganome. He's made several videos on ganome. So I really like that about him It's just seriously good content from someone who has the ability to keep an open mind about their competitor Basically a competitors product. So that is nico loves linux. Definitely give them a try The next one is bugs writer and you might have seen bugs writers challenge before That's like a rising channel challenge. I think it's kind of spread throughout You know the smaller Darker corners of youtube like a couple of years ago I guess now But bugs writer makes some meme content that I don't really care for but the rest of the stuff that he talks About scripting and making Different types of small programs that enable you to Do interesting things like bring in a youtube feed via rss or Rename a whole bunch of files in your media folder or whatever a lot of these really small Programs that he shows you that he's made are really really good I do wish that he took a little bit more time in Showing you how he does some of the stuff that he does But you do get a good idea of what he's done with some of these scripts And I've used several of them including one for news boat, which allows me to use YouTube feeds and then open them an mpv, which is really nice. So A bugs writer is definitely another another one to check out Now this one here is mark and now he doesn't make a lot of videos at all He does stream from time to time So really what if you subscribe to him you'd be subscribing for the streams Basically, what you'll see is that when he streams he streams about asahi linux and I'm saying that right That's the linux that is being developed for m1 max now That's not going to be for everyone But if you're at all into development or even just watching developers work His workflow is astonishingly good. It's so cool. Like This man uses tabs like a beast I like I don't like It's fantastic. I like I worship the amount of tabs that this guy uses I'm not a developer. I don't I can't understand any of the things That he does in his videos that are all way beyond me But I like just watching it's like asmr almost like he just sits there and he fixes stuff live on stream And it's just really really good content. So if you even if you're not a developer Definitely check that out because those live streams are fantastic. All right. So the last one Is tj devries. I'm not again. Sorry if I mispronounce your name He is a new of them Developer as far as I'm aware and he does a lot of content on new of him In fact, all of his content as far as I'm aware is on vim and neo vim And if you're into neo vim or if you're into vim at all You definitely give him a try because a lot of his stuff is fantastic One of the videos that I really really liked was this one here effective neo vim instant ide I actually installed that script that he wrote. It's called kickstart.vim And basically what it does is it takes you into a complete configuration of Neo vim using lua. Now, I've been Resisting moving my neo vim stuff to lua. So that was really really helpful But it's not that he wrote a script to do it for you that was so impressive It's that he went through and spent a good 15 20 minutes or whatever it was to Show you exactly what you were getting as you install the script so that you knew exactly what your configuration file looked like and did After you were done and honestly, I learned more about lua And neo vim with lua in that video than I ever had before that's one of the reasons why I had been not Doing that. So that video was really helpful for me. And like I said, if you are into neo vim Definitely give this a try. So those are My favorite linux youtubers as of right now. Now, like I said, I did not include some of the big guys So if you haven't subscribed to district tube or brody or chris titus tech Obviously go ahead and give those a subscribe because they all make really good content Uh, I'll also take a small moment to shout out some of the my more personal channels that I support So check out dark zero who does zero linux Steve he's on the podcast check out zany at zany youtube.com slash zany og And check out josh. He's on youtube.com slash tenley j I think is his youtube channel, although i'm not sure if he's actually still youtubeing So i'm i apologize if that channel no longer exists So that is it for this video if you have youtube channels that you'd like to share give those a shout out in the comment section below But don't post the links YouTube will just delete the links and nobody will ever see your content So just post the name of the channel if you have someone to share Give them a shout out in the comments below. I'd love to hear from you You can follow me on mastodon or honestly those links will be in the video description You can support me on patreon on patreon.com slash linux cast links for libera pay and youtube will be in the video description Thanks to everybody who does support me on patreon youtube you guys are all absolutely amazing without you the challenge It's not be anywhere near where it is right now. I think it's a very very much for your support I truly do appreciate you guys are all awesome. Thanks everybody for watching. I'll see you next time


Hello and welcome back to the craft box my name is Brent and today we are on episode 249 of the Wizard101 Death Walkthrough last time if you haven't checked it out already we headed on over to the Arcanum and we got given our next mission which is to go into Imperia we found pork and beans and we meet Taylor Coleridge again or Captain Cool Ranch as Tarek said but today we're heading into Imperia itself today so ye let's head off on our adventure just a crazy mess of doors and rooms so yeah if you haven't checked out last episode you should because it was pretty lit but let us take off finally into Imperia are we ready all right crew it's go time wizard would you do the honors of initiating the takeoff sequence on the systems console yes sure thing my dude this one here I remember when this was bugged but it isn't anymore they used to be bugged which is sad because it's cool no maybe it's still it now doesn't just kidding are you gonna say something I don't know are they I don't know we are all excellent mr. spark initiate the photon propellers photon propellers initiated captain we have liftoff sir take us out mr. spark we are clear all systems nominal captain shall I spool the stream drive for warp speed absolutely and point us toward imperia while you're at it already done sir the stream drive is spooled entering warp speed now take her in spark head long into the storm listen to this kitten per you've built quite an impressive sky ship mr. spark quite impressive indeed thank you sir we are approaching the imperian storm gate in three two one we have breached imperian airspace reducing stream drive to normal speed whoa the imperial ether just as mean and nasty as I remember a for impact we have sustained catastrophic damage the shields are failing there must be something wrong with the luxe capacitor we're losing altitude pull up man pull up pull up should be fine glad you could join us wizard just take it slow you've been out in the cold for a while now how do you feel can you walk that's it nice and easy around a full diagnostic on you while you were snoozing the good news is you're gonna be fine the bad news is you're an imperia the ship took a knockout punch to the chin it's bad real bad the jewel inside that cyclo thingy looks even worse the captain's gone outside to look around and I haven't heard much from spark I assume he's okay hard to tell if he's concussed to just weird I've got a salvage my medical supplies can you run down to the hold and see if sparks all right he'll want to know about the cyclo what's it whoa okay well that was quite that was really cool really really cool um okay let's talk to spark hello an answer to your query I am uninjured unfortunately I cannot say the same of the arc the crash was certainly unexpected the aether storms have intensified since my sister and I were smuggled out of imperia I can only speculate that the conflict between grandmother Raven and grandfather spider is somehow amplifying the storms most intriguing the crash damaged the hull beyond repair the ship will never fly again we may however still be able to use our escape pods to reach Sanadu I require a working cyclo labe and lux capacitor to modify a pod our capacitor is intact but apparently our cyclo labes broken we cannot leave this island until the storm jewel in the cyclo labe is replaced captain pork is outside you can help him search for a new one okay here we go first out first time going out into aerial shore also known as the starting area of imperia are you ready for this team I think I am look at this loading screen the first the first new loading screen that they ever released and it looks pretty dope pretty dope okay can we load that'll be also nice please please and thank you please just go foosh foosh with the page foosh can we do that please nope okay well that's fun haha oh here we go hello look at this oh my wash hello there whoa well we made it to imperia but can we make it to Sanadu the good news is I know where we are this is aerial we landed here on my last trip with captain cool rich cool ranch sorry cool ranch the bad news it's not a very hospitable place the jungles inland are very dangerous last time we ran into trouble not all of us made it you tell me we need to repair the cyclo labe but first things first let's see if the world door we brought made it through the crash well it looks like it did but I mean that's just a very brief observation the world doors working perfectly we can get back to the rest of the spiral but that doesn't get us any closer to Sanadu the ether storms wreck ships here all the time their windstones might serve as a replacement storm jewel for our broken cyclo labe ah that wall wasn't there when I came here last time and neither was that village it looks like some castaways settled down here in the meantime the castaways may be able to give us a windstone for the cyclo labe let's go check out this village and see okay we've got poor what does he give us he must give us something good right well three accuracy anything else because that's pretty lackluster nope nope nope nope just three accuracy okay well he's trying to get us to work together I'm glad to see your shipwreck had survivors welcome strangers to nowhere this is your home now thanks for the welcome but we will be leaving as soon as our ship is repaired once we all felt as you do but no one can leave the Isle of Ariel speak to prespero our elder he will explain okay let's do that then look at all these things yeah so many reuse models from pirate 101 like seriously didn't realize how many there were the third arc is literally just reused pirate 101 models like that's literally all the third arc is welcome newcomers to your new home you need windstones they are gone this is also a face of a character that we see in every single puppet show in pirate 101 as well so nice to know that they're reusing him in a different game we have recovered all of the windstones from the shipwrecks and given them to the master he had need of them this master is he the reason you can't leave is he keeping you prisoners here of course not the master is our protector and provider he keeps the beast man away so that we are safe from his tower in the jungle he sees all he saw your ship crash and will no doubt come to greet you ah here he is now kubla is that you my name is Khan pork i see you still remember me i cannot help but be touched i of course remember you wizard if you have come here with this cowardly off you are doomed he will give you nothing but pain and betrayal gone listen to me i thought you were dead i never would have left you don't insult my intelligence why are you here we are on a critical mission to save the spiral but our ship crashed here on the way to zanadu and zanadu don't taunt me driven by dire need i left my throne and beloved city trusting you and your hapless captain to bring me to the arcanum instead you marooned me here and now years later with who knows what horrors are leashed upon my beloved home now you sail back to zanadu it's true khan we'll take you with us we'll take you home all we need is a storm jewel we can escape this place if we work together we must work together a storm jewel i had one once years ago when i tried to build my own ship to escape this wretched place the beast man stole it from me calliban chief of the beast man he has it now you will never get it from him you are trapped here as are we are now if you will excuse me i must return to my tower i must prepare you see to take my sweet revenge against you khan wait khan my path is catching up with me khan was aboard cool ridges ship years ago we were taking him from zanadu to the arcanum but the storms ravaged our ship we stopped here for repairs khan and i went into the jungle for supplies when suddenly we were attacked in the melee khan fell into a rocky crevasse i was sure he was dead i somehow evaded the beastly attackers and retreated to the ship those beastly creatures they must be these beast men khan was talking about they have the storm jewel we need how can we get it from them you cannot the beast men were here before us before khan even before sycorax the great witch the master defeated they are terrible enemies caliban their leader rules them with an iron hand he has a magic stone that controls their minds his fortress is unassailable but there is one among them who might help you an outcast called crusher you will find her cave in the jungle caliban's magic stone that must be our storm jewel we've got to get it from him go find this crusher i'll stay here and see if the villagers can help us in other ways find me when you're ready to take on caliban good luck wizard well i haven't seen that much dialogue since pirate 101 jeez luckily they brought over their writers they brought over all of the writers from pirate 101 to work on this and um blind mu and the pirate 101 forums was actually one of the lead writers for this um so that's why the story is actually good um so yeah let's head on to the jungle uh and let's continue on the theme of we must work together that was actually the biggest meme when this first came out because in the well when medulla fight came out because pork would just spam his cheat which is we must work together and he would say that all the time so kind of became the biggest meme of 2017 especially in this community yep okay let's do our first we first we thingy mabob do her co what's it there's a lot of gauntlets in this area so yeah that's gonna be fun right i don't know we'll see uh but let's find crusher i think we have to defeat her first or her yeah her crushes are her go away puny human crusher crush you okay so because we've got a lot planned for this episode i am going to cut out this battle and i will be back in just a sec not so puny after all human what you want okay i don't know how i did that but um i did somehow oh flying squidding that's nice uh i died once not gonna lie he was a bit she was a bit difficult um but we did it finally just good her um pet casts a um myth and death shield every like five rounds i think it is it's like a cheat but it's not classified as a cheat i don't really know but yeah that kind of put me off the first time i did it you're safe to steal from caliban i hate caliban you want to bring caliban down i'm happy to help caliban he cast me out of tribe and through our son wesley in the monkey spider game daraba you must help wesley monkey spiders will eat him please bring him back then we get caliban okay all let's get over there i'm just gonna mark here because i don't know where we're going next um but i'm assuming that marking there's probably a good idea i'm just getting some health and in here apparently that's fun this looks like a great week cave that i'd love to go in yep definitely oh look chrysalis is that you i think it is is there a way to get okay there is a way to get down there i don't know if we i'm assuming we have to like go past these guys like in chrysalis this is literally chrysalis 2.0 what the hell i did not sign up for chrysalis part chrysalis part three yep chrysalis part three confirmed um no i did not sign up for this also why no mount seriously no mount are you ridiculously joking me right now are you serious that you can't use mounts here i got a snappy lobster uh you can't what is this what is this torture i don't want to run no you there help you're a human what are you doing in the jungle my mother sent you that's great you've got to help me i hid from the monkey spiders as long as i could but they finally got me i'm trapped here will you get me out of this their saliva will dissolve this webbing it can get me free if you can get enough of it but there's another problem even if you free me i can't walk the monkey spider's venom has paralyzed me the fungus in these caves is an antidote so get some of it too okay so let's quickly get some of the cave fungus just because that is something we can do on camera and then i will be back or once i've defeated these monkey spiders or spider monkeys or things like that i don't want to have to walk all the way back down but it's fine you know what we're just gonna have to deal with it sometimes you just have to why can we not go are we stuck i was about to say i'll be stuck we've been not be stuck we nearly got stuck three four and five up there four oh even here that's just probably quicker one five okay i'll be back or once i've defeated the spider monkeys okay i am back i'm free let's get back to my mom quickly that was a interesting sound what do you give me what do you give me tell me what you give me well we make it out of here not crits not block not pierce not that not that not that what is it is it like damage it's damage three damage oh that's not much that's a bit of that's a bit of a let down it is yep just three damage rub oh well whatever it's fine it's better than nothing oh wait i have a mark just as well i left the mark i did not want to run all the way back up geez that would have been terrible honestly terrible um so yeah that wasn't too difficult it was just one mob fight which is nice um yeah hello where's the you come back to my mom caliban live high on mountain in strong fortress no way you get in without horn you blow horn caliban thugs open gate raiders have horn the raiders aren't beastmen they're calamar castaways who refuse to live under con's rule instead they've allied themselves with caliban raiders built fort here in jungle gates are locked you get key from raider hunters then you go in and get then you come here there we go that is max level it looks so weird so weird i've never had no experience part down here before that's so weird that's really weird it looks even i think it looks better on pirate because there's still like a space there where it could be on pirate there isn't i think your thing just drops down right below that's weird i've never had this before um oh things aren't loading so i'll be back in just a sec okay i am back let us enter the secret tunnel i think nathan here is um noa sorry nope noa is not going in um we're gonna team up this is the secret tunnel i know everyone's going to be doing this because this is apparently one of the u.s places to get gear so lots of people team up for this and i'm hoping they go right to the end because if they know that would be bad uh yeah so the yeah it's not too long it's just a couple of elite bosses elite mobs and then a boss um so yeah we should we should be good we should be good that is for sure um we'll just i'll be back when we're going in there is a better way father sycorax the evil witch tricked the beast man into believing this jewel controlled their minds long before i was born the beast man lived as her slaves you were her favorite father but when you found the one called con you turned against her con rid the island of her once and for all but after sycorax fell what did you do you took the jewel and turned it on the beast man again now the tribes were your slaves as one against the outsiders let it go father we've let fear and hate rule us for too long we will work with the outsiders and live in peace wizard take this jewel far away from here my caliban trick us he must die no he will be exiled just as he exiled my mother and i maybe he will bury his hate in the jungle well done wesley you beast man can overcome your savage past and build a better destiny the jewel will hold on wait wait this isn't a storm jewel it's just worthless courts but why did con say con lied to us he wanted us to come up here and leave the ark unguarded we have to go before it's too late uh-oh we done something wrong um so yeah that was um fun wasn't it just a lot of boss fights and fights in general so yeah i thought i'd just leave them in just so you know how tedious it can be sometimes because um it can be quite tedious quite tedious indeed but let us head over to the ark um and we will see what con did or did not do who knows um then we'll do a little little and then we'll end off the episode there the ark hello load load load load load load thank you beads what happened wow james we're in trouble while you were gone somebody must have snuck on board they got the jump on me and spark i didn't see who it was they hit me from behind when i woke up spark was gone in the luxe capacitor too if we don't get it back we're stuck here it was gone inside voice captain look if we're gonna get to zanadu or anywhere we need that luxe capacitor back and we still need a cycle of late to boot we need to find con's tower maybe the castaways be careful james you too wizard okay so next time we will finish off aerial jungle and aerial shore this kind of area we will defeat con hopefully um then recruit him and then basically yeah so thank you for watching sort of like and subscribe and if you've already subscribed press the wee little bell so you know exactly when i post another video and remember craft outside the box


Hello, everybody, and welcome to this talk at KubeCon, Cloud Native Con, about Postgres extensions in Kubernetes. In this talk, I would like to introduce a novel mechanism built into an open source project to allow dynamic loading of Postgres extensions in Kubernetes. This is a very novel way that enables to run any extension that you may want to run in, again, Kubernetes. So, first, about myself, who am I? You can just get to the slide, but basically, I am the CEO and founder of a company called Ongress. Ongress means on Postgres, and that's pretty much everything that we do. I've been myself, Postgres DBA developer, application developer for more than 20 years, and I like to specifically focus on R&D on databases, specifically Postgres. I also like to speak at Postgres and all the types of conferences online. I actually have to say that this is my first talk at KubeCon. I've tried four times before I've been rejected so I'm very happy to finally made it. Finally, very happy to be here with you. So, let's look at Postgres extensions. Let me do a one-on-one on Postgres extensions in case you're not familiar with them. So, Postgres extensions, you can think of them as the plugins of a browser, right? They're software vandals that you may install that enhance the browser functionality. So, Postgres extensions are pretty much the same but apply to a Postgres database. They extend the database in so many ways as we shall see. They are actually one of the most often cited best features of Postgres. So, when someone speaks about Postgres, very early on discussions say extensions are one of the very best things of Postgres because actually they transform Postgres, they significantly augment the Postgres functionality and make it a very adaptable and rich database. What is also important about extensions is that they do not follow the yearly cadence release cycle of Postgres. The new features come to Postgres only once a year. So, if you want to develop new features and you pack them as extensions, you'll be able to deliver these features to your users any moment. And so, that's why you're normally developed by third parties. The extensions are also important for the ecosystem because they have prevented many forks of Postgres because if you can run everything as all your functionality as an extension, which is often the case, then you don't need to fork Postgres and it's just something that built on top of Postgres and can run on top of any existing Postgres without having to fork it. And most of them are open source. So, what are some examples of these extensions? PostGIS is one of the most advanced GIS systems available for databases. And this is just a set of extensions on top of Postgres. Just run a simple commands and you'll get all these extensions for you on your environment. Or look at Citus data, which transforms Postgres from a non-distributed database into a distributed database with charging capabilities. And all this is just by installing a single extension called Citus. Also from the same thing, there's PGA auto failover which is an extension that adds automatic failover capabilities to Postgres without require any external component. Again, just an extension. There's also a great example of timescale which is yet another extension that adds time series capabilities to Postgres including automatic partitioning of time series data and advanced function for querying time series data. Or somebody be extension that creates an index type that behind the scenes is an elastic search class where you can do advanced full text search without living Postgres. So, what is the extent of which functionality you can build on top of extensions? Well, first of all, you can add any database object. Database objects can be data types, function. This includes aggregate functions, operators or even procedural languages. Yes, procedural languages are the languages that are used in Postgres to call functions or procedures and Postgres allows you to bring your own languages. So, you could bring a procedural languages on extension. They could also be what they're called another database storage engines which in Postgres are a table and index access methods which allows, is an API part of the Postgres API that allows you to create, you can do this on extension to implement the different mechanisms for storing the data in either tables or indexes. You could, there's hooks which you can call to implement extension functionality but in reality in an extension you can call any internal Postgres function. Everything is allowed from this perspective. So, you could also do replication wall that affects your ability of the database. You can create background workers which are processes that are managed by the database to perform different tasks. And you can even include external files to the database like binary or all the kind of data that may also compact as extensions. So, how do you program an extension? Well, if the extension is just about creating objects in the database, you could use either SQL or PLPD SQL or any other procedural language to create these objects. But for the most part, extensions are programmed in C and compiled into a shared library that can be loaded into the database.  But in reality, anything that compiles to a shared library can use with extensions. So, for example, you could use, some would be extension that I just mentioned before is programming Rust. You could also use C++ or any new innovation is welcome bring your own favorite language. If it can compile to an extension it will run or should run. So, how do you use the extensions? Let's assume for a moment that they're already installed. So, if they're installed, they should have some files under typically a user shared Postgres TOL may or version extension directory. There you may find the control files which are metadata about the extension and SQL files which are the commands required to create the objects that will represent the extension if that's the case. Now, once the extension is installed if it is a C extension which is gonna load the shared library into the Postgres space, then it probably needs to be loaded via a mechanism which is a PostgresQL.conf configuration parameter called shared preload libraries. This is a list CSV, a list of extensions that you want to preload when the database starts. So, you add the extension to this parameter and then you require database restart because those are loaded into memory at the start of the database. And we'll still see how it's also important later. Then you connect to any database where you want this extension just to say functions, data types, whatever to become available. And just around the SQL command create extension extension name. Done, that's all you need to run the extension. Last but not least, some extensions provide additional configuration parameters and you can then write them for tuning the extension, configure the extension on PostgresQL.conf. But how do we install the extension? Before I said, let's assume they are unregistered. How do we install them? Well, there's no such thing as an extension store. So basically search engines, right? In reality, some extensions come packed as their packages or RPM packages. And there's also a repository called PGXN which also comes with a client tool that you install and helps downloads the extensions. The, this is a fantastic tool that you promised that PGXN extensions they are in source code form. So you need to compile them. PGXN automates this process. But if and only if you have already installed all the build libraries plus all the build libraries and dependencies of all dependencies that the extension that you're gonna compile requires which oftentimes is a hard task for the user. So it's great, but it's not batteries included that they're providing the source code for. So this is how extensions are in Postgres for the general part. Now let's look at extensions specifically in Kubernetes and what problems can when trying to bring all these extensions into Kubernetes. Just before doing that, let's have a look at what is the available set of extensions on cloud managed offerings. So if we look at Postgres, Postgres basically includes 76 extensions. There's a small typo there inside, 76 extensions. Eight procedural language extensions which are procedural languages for creating functions and procedures and 68 so-called contrary extensions. They all come with a Postgres source code package. So total of 76. You will look at the main cloud offerings like our Amazon RDS and Aurora, Google Cloud SQL or Azure in its different offerings. The number of extensions is between 50 and 70 in total. And if you look at the core extensions, this country plus this procedural language, most of them are available, but definitely not all of them. In some cases, even 32 of those core country extensions are not available to use. You cannot install them. And with regards to third party extensions of which there are hundreds or even thousands available in the world, a very few, a very small number of them are available. The best case is Amazon Aurora where 38 extensions are available. Now, what do you do if you want one of the extensions that are not present on these environments because you cannot load them. It's they need to be allowed on a one by one basis because this is a managed offering, right? So you're out of clack. You either need to do without extension or manage database yourself. Now Kubernetes operators allows you to enjoy and experience similar to manage Postgres as a service. So maybe Kubernetes operators is the answer to this because there maybe you will have more freedom. Well, the reality is that the landscape looks pretty much the same. We look here at some of the open source Postgres operators that were able to run the test to run the number of extensions available. And the Salando operator, for example, brings around 90 extensions of which around 40 are third party. It's not a bad number, but all the operators are definitely more limited in terms of the extensions and particularly third party extensions that are open. So what I would like to introduce today is a mechanism developed in an open source Postgres operator called stack risk, which in version 1.0 introduces a mechanism for dynamic loading extensions, which basically allows any number of extensions to be loaded. Right now there is more than 100 extensions available, but this number is dynamic and it's growing every day and it will cover hundreds of extensions over the future. Now, if we wanted to do this in a naive approach, let's call it that way, we could think of, okay, let's back all these hundreds of extensions into a single container. Well, that may work, but it has some problems. First of all, that may result in a gigantic container image, but the extensions are normally not that large, some of them are like post-GAS, it's weights in around 200 megabytes. In reality, you're gonna end up with a gigabytes database, gigabytes container image. Well, that's not the end of the world, but it's certainly not ideal. But also from a security perspective, you're loading hundreds of different projects, which represent a huge attack surface, and that is not ideal from a security perspective. But last but not least, when you want to introduce a new extension or a new extension version to fix a security problem on one of the available extensions as part of this container image, you need to bring a new image. And this means restart the pods and this means restart the database, which is a quite disruptive operation for a database. So it is something you don't want to do when running a database to frequently restart the container just because you want to add a new extension or a new version of an extension that appeared as a result of a security problem with the previous version. So what is the mechanism that this open source project, Stacris, has introduced that allows dynamic loading of Postgres extensions? Let me describe it first. So first of all, no extension is built into the container image. Then we could think, okay, we could load the extensions into the ephemeral storage of the container itself. The image is immutable, but once the container is running, there's the ephemeral storage of the container and maybe we could load the extensions there. That would work. However, it has some problems. If for example, the node dies or the container is restarted, this is lost. You will need to redownload the process all the time and reprocess the extensions all the time. That's also doable, but it's not ideal. Instead, what we do is download and install the extensions as on the PV and the persistent volume. It is typically external or distributed storage so that it will persist to survive and node failures or pod restarts. So once you have installed the extension once, it will probably be there all the time. It will have basically the same lifecycle of your database that data, the PG data directory in Postgres. We also use this functionality to relocate Postgres binaries into the persistent volume and simulating the extensions. This is also useful not only for the extension process, but also for major invention upgrades. And after this, the most important and significant feature introduced by this functionality is what we call the cluster controller. The cluster controller is a Kubernetes controller or operator, more precisely a controller that runs as a sidecar along the pod. This is because this sidecar requires access to the file system. It's gonna download the extensions and pack them and install them into the PV, but it operates as a small controller on itself. And I'll explain the functionality. Actually, I don't know if this is a, this model of having this local controller or hierarchical controller that also participates in part of the reconciliation cycle is something that is common to other projects and this is new to these projects. In cases, as far as we know, it's quite unique in terms of Postgres, but maybe it's a pattern that could be useful for other projects. And the extensions, they are provided in compile form and they are provided as an external repository. So from the architectural perspective, we see here that there are two operators or two controllers, the main stacker's operator, which is the usual Postgres operator you can think of, which is on the top left corner of the diagram. And when the user instantiates a CRG of type f2sv cluster with a spec field that basically specifies that you want to install some extension, we're also gonna see how this works. Then the operator is gonna perform some actions and it's gonna instantiate the pods and so forth. Within the pod, this local controller, the cluster controller is gonna read the information on the CR and it's gonna interpret which extension needs to download, it's gonna connect to this external extension repository running on the internet, download the extensions, unpack them, verify digital signatures, create symlinks and in general, make them available to Postgres and they will all be stored in the persistent folder. Finally, there is an optional component which is a cache proxy that will allow to cache locally extensions so that if you need to download the extensions in many, many clusters, you can cache them locally and it's also provided as part of the open source stuff. So let's see how it really works with a real code example. So this is the minimal CR, minimal sd cluster that you may need in this type res to create a cluster with two pods for the latest Postgres version taking about this storage for each node and this will also include connection pooling and envoy proxy for Postgres traffic and a few high availability, a few other bills. Okay, so this is a basic cluster CR that you may want to create. So let's say that the cluster is already created, let's add an extension to it. So to do so, we just need to add these two lines that are involved here, extensions and the name of the extension. We could also add a specific version for the extension but this is optional. If not, Stacros will resolve it. Now, how do we know which extensions are available? Their names or their versions? Well, there's three ways and you can do this. You can either go to the Stacros web console which allows you to search for extensions and provide descriptions and see their available versions. You can also check the documentation or if you're gonna go the hard way you can use JQ to parse the repository metadata. So let's go back to the extension. So when we create these and do a Qtab apply and we add these extensions named PostGIS, what happens is that there's gonna be a new thinking webhook that is gonna retrieve the extension metadata from the repository and it's gonna add these to install Postgres extensions section which is basically additional metadata about the extension including the internal bill number, the Postgres major version with which it's compatible, the detailed PostGIS version in this case 301, the publisher or what is the repository to get the extension. If this extension would not be found, a warning would be issued. Then there's a validating webhook that checks that the requested extensions because there have been expressed declaratively that you want this PostGIS extension to be present that is also present in the to install Postgres extensions resolve metadata. If there is no matching if PostGIS would not be both on the top section and the section below then the validation webhook would reject this change. So because the extension would not be available. Now, if this process goes on, then the cluster controller will come into place and the cluster controller will read this CR and understand that there's a willing to install the PostGIS extension. This cluster controller runs its own reconciliation cycle that is watching on these extra clusters and we'll use a status field that post statuses as you see here in the screenshot that basically allows for checks for every pod whether the requested extensions have been installed. How it does so because this post statuses is an array that takes for every pod, looks into the install Postgres extensions and you need to find the same metadata here that is available in between install Postgres extensions. That's that will list the extensions installed. Again, you need to be installed for every pod. And then updates the status, bringing back information feedback to the user about which extensions have been installed successful. Also, following standard Kubernetes patterns, it creates a set of conditions in also in this part of the status field. One of those represents the status of the operation whether this installation of the extensions work or not and second whether the pod requires restart. Some extensions as I mentioned are loading dynamic libraries and under certain conditions they may require database restart, database restart also. So this condition is also signaled by the control as part of the status field. So let's see a demo. Here we have a cluster running already called Qtcon. Sorry, it's not very original. So it should be an SD cluster, sorry. Yes, thank you. Called Qtcon, right? There we go. Which it has some pods running. Let's check that we can connect and check Postgres and see what available available extensions are there. So we'll just do an exec on Qtcon zero, container Postgres util because we're gonna run command line. So this gets us connected to Postgres. Sorry, my bad. All right. Should get connected to Postgres and there's a function here in Postgres called PG available extensions that will list the available, not loaded just on the file system. Not my day, available, sorry. The available extensions in the file system. And as you'll see, there's no post-GIS. Actually, there's a very small amount of extensions here. Normally you would find those and some extensions in a normal installation. These are just the extensions that are used internally. So they are built by, they're brought by default but they're also installed by the same mechanism. So let's look at the Jamo file. It looks like this is exactly like in the presentation. And let's add this extension that we want to install. So under the Postgres section, we'll call extensions and we're just going to say name post-GIS. Quite simple. Let's just keep it all up like this and the extension should be promptly installed. We can check this by checking the, let's for example, the SQ cluster cube con. So let's do again, SQ cluster cube con. And we will see here that on the request section, we just said that we want post-GIS, also the mutating webhook added the version here. But then there's going to be this to install Postgres extensions section where the extensions are listed in this case. We can see here that post-GIS has been resolved to be version 301 that is going to the publisher is this one for the compile for this major postgres version, this bill number and repository, et cetera, et cetera. As you see, the other ones are also listed here because they are downloaded using the same mechanism. Then if we're looking to the status, we'll see that the condition says that it didn't fail. So which means that extensions were successfully installed and that it may require a restart at some point. And last but not least, if we look at the pod statuses that we will see that on container cube con zero, the post-GIS version, yes, one install as well as in the container cube con one. So we have post-GIS here. So yes, it looks like everything worked well. So if I connect again to the database and run the same query, now I see post-GIS. So it has been indeed dynamically loaded into the container, the PV and made available to postgres. So actually I could just say create extension post-GIS, oh my God, post-GIS. And now I have this extension available. And I can, for example, list the objects that are brought by post-GIS, which are a lot of them, right? So this is how it looked like. If we actually look into the web console, which I also have here handy, we go to the configuration tab, we will see that it is indicated here the list of extensions that have been installed in the cluster. You can also check from the web console which extensions are configured here. And if, for example, you may want to add new extensions, you can just edit the cluster, go to the extension section and pick any of the available extensions to install. Now let's finalize this demo by looking into the container image to see how this looks like. So let's connect to the cluster controller, which is the sidecar controller that is running, and run a shell here to see where these extensions have been downloaded. So the PV is mounted on barley postgres. So if we go to barley postgres and look here, we see that this is the data for the database. We see the binaries for postgres which have been relocated and the extension. So let's look into the extension directory and they are split by postgres minor version and then build number. And here we have the downloaded extensions. So here we see the post-GIS that we requested with the tar package, which contains all the code about extension, digital signature and a file indicated whether it has been installed or not. Then these extensions are unpacked into this directory under the USR folder. So if you get under USR, we can look at the share, postgres 13 major version extensions. And here we see post-GIS with all these control and SQL files that are created when you install the extension, which happened to be symbolic links to the real directory where the postgres binaries are being run and are accessible to postgres. So even though it looks a bit complicated, the good thing and the good news is that all this process is absolutely transparent to you. So in summary, what are these extensions mechanism, dynamic loading mechanism for extensions built by the stack-risk open-source drive? So it is a mechanism that obviously, as I mentioned before, allows loading dynamically extensions, removing loading and loading, upgrading extensions, they're not built into the container image. And this is very good because the container image becomes extension less. It has two main advantages.  There's no dynamic, this dynamic libraries and potential source code of other extensions being built into the container, but it also decreases the container size. Also, this enables a declarative approach to loading and unloading postgres extensions because they are built into the SG cluster CRD or via the web console, which piggybacks on the same system internally, you're able to express which your intent with these which extensions you want to have. And actually on a future version, we'll all mechanism to restrict by an administrator which extensions may be used on the SG cluster CRD so you could limit. If you want to, which extensions can be or cannot be downloaded. Uninstall, obviously. And the main novelty that has been introduced, definitely in the postgres world, not sure if a similar approach has been done with other operators that are not related to postgres is the use of what we call the cluster controller or a pod local controller, which is a small controller running as a side car that has access to the file system in the pod so that it can watch on some fields on the CR, the SG cluster CR, watching for extensions that need the user wants them to be installed, then downloading them from the external extension repository and bringing them to the local file system, downloading and packing, verifying the digital signatures and installing and making them available to postgres. This is a pattern that we believe is quite useful, potentially also for other projects. We're also looking for feedback. So if you have any idea or willingness to share some thoughts on this, feel free to do so. And at the end, what this allows you is to run postgres on Kubernetes with practically unlimited number of extensions without having to download new images. So it allows you to run as of today more than 100 extensions and with a growing number in the future. So if you faced any restriction by running on a cloud managed environment, now you can get the same experience by running a stagress and postgres operators in Kubernetes with any extensions that you may need. So that's it. I'm gonna open for questions. Thank you for listening so far. If after this talk, you still have some questions when I reached, yes, please join the Slack and or Discord Stagress community services. So you can join us and continue the talk there. So open for questions and thank you very much for listening.