Hey, welcome back to the Think Tech Studios. This is Security Matters Hawaii. I'm your host, Andrew, the security guy, and I am here today with Mr. Gordon Bruce, and we're going to kick the can on the role of the security consultant in a security project. But first, I'd like to ask my guests, being a short-term security guy, with only 40 years of experience, 50 years of experience, what keeps you up at night, sir, these days? What keeps you up? In this particular space, I would say the lack of understanding that commercial property owners have when it comes to physical security on their premises, like shopping centers, office buildings, even schools. We start looking at the school systems and so on. And the way the industry has evolved and is evolving, and the way the criminal factor within this country has increased to a level like we've never seen in our lives, there's still a lack of really understanding of how important it is now that to secure your properties. And the people that are not only working there, but those that are visiting there as well. The guests on the site. Yeah, interestingly, finally, we're seeing a big push out here in Hawaii from DHS. We had a big meeting there just last month, and it was gratifying to see maybe 200 of Hawaii's security people in the room, finally, with DHS starting to give some education. And there's a level of understanding that's raising, finally. And I agree with you that it's been sort of sorely lacking here. We've sort of been like, let's put more guards that keeps our tourists comfortable, but there's a lot of technology we can use to help those guards respond better, respond quicker. It's been a slow rollout in Hawaii for sure. Yeah, no offense on the guards, but these are not exactly the $75 an hour individuals. The police department in Hawaii, especially, they're understaffed. Yeah, and they're like a half, like a thousand short or something. They're huge short. So it becomes the citizen's responsibility to sort of take this on. Doesn't mean you become a police officer or a guard, because there's technologies out there that can help you augment what you have at your company or your facility or whatever. Yeah, it's kind of like the whole see-saw. If you see something, say, be a part of the solution, right?  That's a good point you make.  So I was thinking that just kind of a little bit about some of your history here in Hawaii. I think you brought some of the very first ATM technology it was ever delivered. And that got me to thinking about security. And you probably had a security component, maybe, if anyone thought about it. But when did security ever come into that realm? Because I'm sure the first one that rolled out, they probably just chained it to the floor. So I don't even know what security thought about. It got bolted to the concrete sidewalk. And you used a plain old telephone line. OK. It was just a pox line. To communicate. The ATM was over the phone. Over the phone line. There was no internet. There was no internet. You used that to connect back to a router that was the size of a two-door refrigerator that ran at 300 bod, which is 30 characters per second, in a data center that was connected to an IBM mainframe. Wow. And IBM mainframes, even to this day, are still one of the most secure hardware platforms out there, if not the most. But security wasn't, per se, first in mind at that time. Now, during that year, when we put up the first ATM, I was actually an employee. And I wrote access control software in assembler for green screen computers, because there was no PCs. So you had to sign on to the network. So that was for Bank of Hawaii. And I wrote that code. And they used it for years. So there was a little bit of access. Was it smart enough to know if the device went missing? No, none of that. And there was no portable devices. These were CRTs that weighed about 20 pounds. The ATM was. No, the terminal sitting on the employee's desk. And it used to go on. You just turn it on. And you'd start getting into whatever you needed to get into the banking part. Well, I wrote a front end that required them to sign on to that machine before they could then get in. It was wide open. Before it was wide open.  So you both. But so the ATM technology was asynchronous. Right. So if somebody took the ATM and ran away with it, the line didn't know it was missing on that. Well, no way the line knew it was missing. But you needed a forklift. And because ATMs back in those days were not. Like I said, they were the size of a refrigerator. I see. And the computer technology inside of them weighed a ton. Wow. No, not a ton. But it weighed a lot. So it wasn't something like the ones you see when you go to the pizza place and they got a portable ATM sitting in the corner. That was not the case. These were pretty heavy duty. The physical security in them was the fact that they were made out of steel. And they were heavy. And they were like 500 or 600 pounds. Wow. OK. So there's an element of security to that anyway. But no cameras, none of that kind of stuff in there. There was no camera in the ATM. So you've been a consumer. You've been an advisor. You've had a lot of these roles in more different security consulting heads. When did you start to see security be part of IT projects or part of property management projects or healthcare projects? I know you had city and county projects. Yeah, city and county projects. And I was when I was at Queens Medical Center again back then. I think the catalyst that really pushed it initially was email. When email started to come out, there wasn't like phishing attacks or anything like that yet. But all of a sudden you realize you were pushing information around. OK. The internet when the internet browser came out, the Netscape browser came out. I still remember people saying, why do I need a browser? Why do we need the internet? Who's going to use this thing? OK. So but then that was really the catalyst to at least the, I'll call it the soft security side. Which is now known as cyber security side. The physical security side hadn't really matured. I'd say until maybe the last 10, 12 years. So it's still a relatively new phenomenon, if you will. And the blending of cyber and the blending of physical is a new phenomenon as well. So fortunately for me, I've been involved from the ground up when these things were all starting. You know, the military, DOD, all of those, they're very secure conscious when it comes to a physical standpoint. Prisons, you know, those kinds of things. Initially everybody just threw guards at it and then they threw cameras at it. OK. And VCRs that didn't work. And they threw more cameras at it and more screens that no one looked at. Right? So and that became the solution. And I hate to say that's still kind of like the mindset right now for physical security people at commercial entities. Oh, we'll just throw some more guards at it and we'll throw some more screens. But no one's watching the screens. Yeah. And you don't, you know, they just don't and there's no way of knowing stuff. What's going on? But the technology enables you to do that. Plus the other piece is now the architects want these to be pleasant and not invasive into the designs of buildings and things like that. So that's another piece that I get brought into is working with the architects and they want to know, well, how can we put this in and not make it invasive into this nice retail space or in this nice commercial location. Make it not threatening to the client when they walk in the door. Which kind of leads to the last piece is that low voltage is just like, low voltage communications is the thing now. OK. How much things are on low voltage now? Yeah. Cameras, access controls, television sets, nurse call systems, HVAC systems. All of those are all on low voltage and it's the Wild Wild West out there. And what I've been able to do is help large projects consolidate all of that low voltage work, monitor it, get it all standardized, get it built in so that it's in a nice clean infrastructure not taped up all over the place and so on and easily easy to manage and secure it. Because as you know, you can hack into those devices. I mean, one of the vulnerable ones is mechanical systems. They're the target. If you look, we're both in infraguard. You look at the papers that are coming up from the FBI and such that targeted mechanical systems that are running wastewater plants, water systems, office buildings, fuel lines, fuel lines, train lines, train lines. They're all the ones that are being hacked now. They're the big targets. Yeah, that's a scary situation. And the physical security of those devices, a piece of it that also does ship with vulnerabilities, right? We've discussed. Yes. So what's your, do you think the end user, like if I were a property owner, a property manager around a mall, around a hospital, do you think the end user is just overwhelmed? The ones when you talk to them today, is there too much guidance? They can go on Google and find out all kinds of stuff. Is it just blow their mind? Or they can walk into Costco and say, wait, I can get a camera system at Costco. And that's consumer grade. And I'll pop that up in my commercial enterprise because it's inexpensive. And then next, I'm getting a call saying, we put this in, and obviously, I didn't recommend it. Can you come and look at this? And I'll come and look at what you have. But I'm not going to fix what you have here. You're running a professional organization. It might be OK in your house. But definitely not something that I would put in my shopping center. Yeah.   So I try to get them to understand the four layers of security. You've got CCTV cameras. You've got guards. You'll have that. You're going to have limitations of where you can go, right? Barricades, perimeter type technology. And then you're going to throw in access control. Am I using fobs, badges, or whatever? And the other one that drives me crazy is I'm not a big fob fan. I mean, they're easily lost. They're not easy to control. I'm big on badges with photos on them. Like on a property? On a property. So I can identify that you belong here at a glance. You said it earlier. See something, say something. You see someone, and they're supposed to be wearing their badge. Then as an employee or whatever, you should remind them they need to be wearing their badge. Hospitals. Sure. Look at people walking through hospitals. Look at the stuff that we've done in the industry to prevent babies from being taken away. Baby guards and all that stuff that's happened in there. Yeah, infant abduction. They used to call them infant abduction. I think now they call them infant IPS, infant protection system. Systems, right. Abduction word was just a little bit. Not very good. Right. It's fear-selling thing. We use word Smith. But just all of those kinds of things. And the things that we can do with credentials are just phenomenal now. And I have one client that totally went away from FOBS. And their entire employee base are now on ID, credentialed ID, with access controls to communications closets, data center, FM 200 rooms, fire closets. I mean, because there's people wandering the halls, right? It's a hospital. And they can open a door and go into a, you know, they can go into a broom closet. And then managing all the keys for all of this. And a new play comes in and another employee leaves. Is that a thing, do you get that often where they don't understand the cost of like key replacement, lock replacement, where you see them using hard keys?  You have to replace everything because the master key is going to have to re-cylinder everything or whatever. And that's a, I still see some of the campuses and things out here periodically issue RFPs for, you know, complete key replacement. I'm just, I cringe every time.  They're floating around. I'll use. So that's an interesting problem. I'll use an example. City and County of Honolulu. When I was there, we converted from keys, from keys to federally compliant credential for all employees. Okay. So if anyone gets on the bus and you see the badge that the bus driver is wearing, it has a color. It's all, that means that badge meets a federal standard or met a federal standard. If you see a city employee or someone with a border water supply or whatever, they're wearing a federally approved credential, the police department. You'll look at the police department's card and it looks very similar to the bus color differences, but you know, there's, there's, they're meeting, they're meeting a federal standard. Well, that eliminated thousands of keys. No. Thousands of keys. And I remember one of the things that we, it was 1,400, I won't name the entity, there was one department had 1,400 unaccounted four keys. I can't even, I can't add them. And once we put in these, this credentialing, people could no longer get into buildings that they were not allowed to get into, yet they had a key for it. Ah. And so that, that came to light. That worked. And then we, then one of my favorites was in one of the buildings was the, the vendor lockers. And I was like, what vendor lockers? Well, you go down by the elevator and there was a bank of maybe 50 lock boxes all along, bolted on the wall for all the vendors. So they would come in to the facility, no badge, no signing in, go down to the elevator basement, they would unlock their lock and get their key to take them to wherever they were allowed to go. Oh my gosh. But what if you were a former employee? Yeah. You think they changed those combinations on those lock boxes? I've tried every 20 years. They just, some of them didn't even know they had lock boxes down there. So that was all uncovered. So, and so I'm always, every time I look and walk into large shopping centers and so on, I'm with elevators and escalators. And I let go, okay, well boy, I wonder where the vendor lock boxes are and what's in there and what you don't know. What you don't know, that's what we're talking about. And we'll be back in a minute with talking about security consulting. Got to pay some bills. We'll be right back. Thank you. Aloha. My name is Mark Shklav. I am the host of Think Tech Hawaii's Law Across the Sea. Law Across the Sea is on Think Tech Hawaii. Every other Monday at 11 a.m., please join me where my guests talk about law topics and ideas and music and Hawaii Anna all across the sea from Hawaii and back again. Aloha. Hi, I'm Pete McGinnis-Mark and every Monday at one o'clock, I'm the host of Think Tech Hawaii's Research in Munna. And at that program, we bring to you a whole range of new scientific results from the university, ranging from everything from exploring the solar system to looking at the earth from space, going underwater, talking about earthquakes and volcanoes, and other things which have a direct relevance not only to Hawaii, but also to our economy. So please try and join me one o'clock on a Monday afternoon to Think Tech Hawaii's Research in Munna and see you then. Hey, welcome back to Security Matters. I'm here with Gordon Bruce and we are kicking the can on security consulting today.  You know, your point was old employees would still know the combination could come in, roam around the place. Who knew really what was going on? The answer is no one. No one. No one. And with access control, you're able to- And we changed all of that. So people go to City Hall now, if they walk down there, they'll notice that they have to go through the guards. They have to show their ID. They, you know, it does a number of things. One, it ensures people know who's coming in and out of the building. If something was to happen in the building and they needed to get people out, they would know that you were there visiting. So you're accountable for that. The employees have to have their ID and know that they've been badged in. Again, for that same situation, so that if a threat happens of some kind, the employees protect it. It's not the track that was to make sure the employees protect it and that the visitors are protected. So City's done a good job when it comes to that aspect of securing their various campuses and such. When it was with standard credentialing and such elimination of keys, you know, and all of those kinds of things. So I like seeing that kind of thing happen a lot. Yeah, it's good that it's, you know, I remember when some of those projects started, it's been quite a while and we started with like wastewater treatment. So it was a big concern from a terrorist perspective, especially in Hawaii. We had to somewhere to attack our wastewater treatment facilities and kind of shut the city down if you can't use the toilets, right? I mean, that becomes a big problem very quickly. We have how many tourists here at any given time? Yeah, you have a million tourists. Yeah, so you can imagine if the sewers quit working, I had to be a problem. And that was that was the one good thing and not many good things came out. One good thing about when we had that sewer line break at Waikiki, 40 million gallons of raw sewage gets dumped into the ocean. The question was, do we let it flow or do we block it and let it back up into the hotels? Right? Whoa. So that became what was the issue. It's like you can stop it right here, but that means every toilet gets flushed, everything that happens in the hotels are all eventually going to back up into the hotels themselves. So the decision had to be made to let it go. But that brought to light the issue. What if they said someone was able to shut down your wastewater treatment facility? Yeah. People couldn't flush their toilets. Yeah. So that helped and Hanuman was visionary enough. He said, we can't let this happen. We need to make sure that we've got the right security things in place. And it helped escalate it to get to be a priority. And we got federal money for it. In that instance, you were actually a customer. So you used a consultant. You went out and got a big consultant. Exactly.  Brought into town and got hired as a consultant to help us review all the different opportunities. They didn't sell a particular product as I don't represent any vendor line. I don't sell a particular product. I know what I like, but every client's different. And each, I give each one when I do the studies for them. I try to give them three options to look at and then they can kick the tires on it and see which one fits best for their environment and how they want to operate their protocols. And then through that, they negotiate the deals and so on. But I don't take any commission checks of that. I mean, I represent the client. Yeah, exactly. And that's an important point that people should understand when, if you don't know what to do when you get a consultant, he's going to be there on your behalf. That's super important.  Well, I'm going to give you the advice that works for our company, not necessarily what works best for you. And so it's best if we don't have a trust relationship with someone already, that they get a third party to help audit that or at least give them that input. I mean, we represent most of the stuff that's really good out there. We've got 20 years of experience, but I always advise people to get extra quotes. Talk to our competitors, things like that. And there's different models. Different competitors have different, you have ways that you do it in a certain way. There are other providers out there that their model is a little bit different. And again, you go back to the client, they might like the operational model of this particular provider of physical security systems. And again, that's the client. Just represent the client. I just make sure that they get the right product. It gets installed properly. They get properly trained. And the services are in place to keep this thing up and running, as opposed to the old days when people were just selling this stuff out of the back of their truck. Yeah, and they drop it in, and it takes care of it. And they've gone. That would be it. You'd never see them again. This becomes almost IT-like. It becomes an ongoing relationship. You have to work with the IT departments. I mean, I have interesting discussions with the IT departments.  And I go, I totally agree. And they go, oh. OK. Then so let's us come up with a way of doing this, so that it's not on your network. Or if it is, it's segmented and secured on your network. And not filling your bandwidth up with stuff that's now making your system. Video traffic. Video traffic. Especially in the world of megapixel cameras. Yeah, megapixel cameras. So it's sitting and working with this. Typically, you don't see the IT departments that involved. Yeah, it's been difficult. For sure. More and more today, we do get that interaction. We, as an organization, ask for that interaction. But oftentimes, facilities in IT, when we ask them to get together, it's the first time they ever done a project together. It's because we're saying, look, you've got to have IT here. This is an IT system, right? Well, because these systems are running on the cloud. They're running on servers, depending on the flavor of what you want. Workstations that you want. Do you want it on your network or not on your network? How is that network being secured? You've got to stay on that piece as well. So you've got to bring IT in. And in some cases, one of the models I'm liking now is managed service physical IT. And what that means is the IT department happily says, wait, I don't have to touch any of this. It's on its own network. And someone else is going to manage those router switches and everything else. Yes. And we're not going to touch your banking system network or your health care system network. This is all going to run over here. So the cameras are here. The access controls, HVAC is all over here. All of those things are all segmented, physically segmented from your network. Now, when you're doing new facilities and new campuses, it's a lot of the issues you do. Renovations, not too bad. If it's existing old school stuff, then it requires some thinking.  Or IT's got to let you get on that pipe and they're not necessarily going to be all that happy and supportive. Is how often now do you, is a lot of your IT experience brought to the fold when you're talking about physical security? Is that a piece that you bring that the typically the end users just don't have that they don't understand the IT requirements of our systems? Yeah, fortunately for me, typically most of the physical security consultants out there have not come from within the IT world. Mm-hmm. Yeah, they're physical. And then they're learning the IT. You know, I grew up in the IT world and then got married into this over 15 years and now I've been doing the physical side. But, you know, coming in, coming in and get married into this side. So I always say, okay, I need to meet with their IT department. You know, why? I need to talk with the IT department to see what their standards are. Yeah. Make them aware of what we're going to be doing and whether we are or are not going to be on their particular network or are we going to do something different? Because, you know, many cases there's already a physical network in there that's not on IT's network. Sure. And we can modify that so that it works that way. But if I like to buy routers and switches that meet the standard of the IT department, even if the IT department doesn't support it. Manage it, sure. Or manage it, at least they've said, okay, we like to use XYZ, these configurations, and we go, I go, okay, then rest assured that that's what we're going to spec. No matter who the vendor is, that will be the spec for what goes in that particular. Yeah, it gives them some comfort when they know if they end up having to inherit it. Because IT sometimes gets given stuff that, you know, like all of a sudden, like, oh, well, you have to help us with this. So they like to know that they would understand. I'm familiar with that idea as well. Is the, how much has the cloud impacted the consulting that you're doing? You know, we've moved a lot of systems into the cloud today, and we have a good percentage of our clients are now doing cloud-based systems. So how's that been for you? Yeah, I'm looking at right now that the clients that I've been advising are about 50-50 right now. Wow, okay, good. So not all the manufacturers are up on the cloud yet. Some are, you know, scheduled to be on the cloud, you know, first quarter of next year and those kinds of things. So they've still got the physical servers in the locations, which some clients want. Some still want to have that physical device. Server huggers. They still want to have it. Again, you go back to, like, what's the client want? But I'm seeing a lot more going under the cloud. It certainly makes it a lot easier from a monitoring standpoint. I have one client that they don't want any of the guards in the security office. They want them roving. Sure, on the move. And they're going to walk around with mobile device. And on that device are all the cameras. Not only are the cameras for that particular area that they're roving in, they can get access to the cameras on another island. Awesome. So now all of a sudden the guard company is more productive. Mm-hmm. Right? They get alerts. Boom. I could be on one side of the campus and boom. I see something here.  I've got people getting alerts, things that are happening. There's a whole bunch of new things coming up with analytics. I'm looking, getting excited for it. The cloud is really helping to make the guards more effective and more efficient. The client more comfortable that, you know, they've got the right things in place. They know when cameras are down. Remember the common complaint? Mm-hmm. My camera's been down for a month. I didn't know it. Sure. Right? Yeah. Oh, wait, you've got guys sitting there monitoring me, right? They never changed. But now you've got cameras that give an alert. So you know that they're not, the camera's not happy. Yeah. And so you can get in it quickly. You've got companies like yourself can be alerted to know that the camera's having problems. You can get it or fix it before the client even knows it. Yeah. So that's the next piece that's happening. It's good stuff. Awesome. So be proactive. Go out there. Get a security consultant if you don't know what you're doing and you need help with your project because security matters. Thanks a lot for tuning in. We'll see you next week. Aloha.


Everyone, Shaber1000 here. Do you guys watch the proper people? Well, today I wanna talk about a video they uploaded on September 30th. Stick around, this is pretty interesting. Okay, so what I've got for you is the video I seen that they uploaded September 30th. Now, I'm not sure where they were or when it was actually filmed. It doesn't really matter, I guess. But I wanna talk about a clip that I'm gonna show you that I noticed while we was watching the video when they uploaded it. I did make a comment on the video and then after that, of course, a bunch of other people seen it. But anyway, I see someone there. They're in a hotel and they're filming this room. And when they pan over, I think it's sliding glass doors or a window. And if you look real close down the bottom of that, you'll see somebody walking past. And it almost looks to me like they're crouching down. I don't know if they noticed it or what and then they pan away, but when they pan back, you can't see them. I think, since I didn't see them go past any further than what they did, I think whoever that was was crouched down. And the interesting thing is what they were talking about right just a few seconds before that. So let's take a look at this clip. I'm gonna slow it down for you. I'm gonna screenshot it and then we'll talk more about it when we come back. And now, I just got scrappers in here, probably bringing truckloads of scrap out of here. There might be people living in here too. Really? That's a generator or that's an air compressor? Yeah, but look at the way the beds are and like there's stuff thrown about. People must have been sleeping.  And like there's stuff thrown about. People must have been sleeping. Like there's stuff thrown about. People must have been sleeping. There might be people living in here too. Really? That's a generator or that's an air compressor? Yeah, but look at the way the beds are and like there's stuff thrown about. People must have been sleeping.  Yeah. This is right. If there were people living in here, then I feel really bad for them. There might be people living in here too. Really? generator or that's an air compressor. Yeah but look at the way the beds are. Brain bottles. Yeah. This is right. There were people living in here then. I feel really bad for them. So that's pretty interesting. They were just just a few seconds before that they were just talking about you know maybe someone's living there in that room. There might be people living in here too and you know that they feel bad for them and stuff. There were people living in here then. I feel really bad for them. That was after the clip but before the clip they was just talking about maybe someone's living there. Now could that been the person they heard them coming through and they got outside and they're watching that room to make sure they didn't mess with anything. Who knows you know why is there an air compressor sitting there. But that's very interesting and they weren't alone by any means so that's you know and they were just talking about that. So I don't know if they've noticed it. I don't know if they read their comments or anything but several people after I'd commented also commented they've seen it too. So usually if they see something like that if you follow them guys they'll they'll tell you you know there's been a couple times they've seen people and they filmed them and they followed them or you know and talked about there's someone here and you know they're following us or whatever. They didn't say anything. I mean but when it pans back you still can't see them but you only see them go so far. It's kind of like there's crotch down and you know they're looking at them. I don't know but that's pretty eerie to know that someone was there with them. I mean especially if they didn't know it so anyway yeah proper people if you would happen to see this video yeah you guys be safe out there and you know keep tabs on what's going on around you at all times. Of course you guys know that but you know I'm an explorer as well and I know one time in the hospital in Indiana I seen someone that was just standing there staring at me. I don't think the camera picked it up but there was someone down there this hall staring at me and I don't know who it was they didn't say anything and when I was on my way in I noticed there was I even commented that there was footprints in the snow fresh footprints but they were going in but not coming out. You know Ricky mistake I shouldn't have went in there because I knew someone was in there but I did and so that's that's strange when you know it just makes you wonder how many abandoned places we've been to you know as far as us urban explorers that there was someone there we just did not know it you know I mean pretty spooky so anyway guys I'll leave a link to that video and to their channel in the description box and uh go check them out if you haven't seen them and you'd like to be in a place you like these guys uh they're they're a pretty big channel so um but they they do all kinds of neat explorers and this was one of them this was really it was a good good explorer all the way through but and then that just kind of like put the icing on the cake is a paranormal no there's somebody there so that's sometimes just even more creepy you know that especially if they didn't know someone was there oh my gosh weird you know me being a fellow urban explorer I just I'm getting chills right now talking about it so anyway guys um y'all stay safe and uh remember um October 31st is coming up you know I mean it won't be long and Halloween will be here so we're going to do try to do some spooky stuff for you and throughout this month or at least I'm going to try or something but we'll find out uh we do have something planned um towards the end of the month but it'll it it is related to um Halloween so kind of in spooks and stuff like that so anyway guys Shaber of the myth the man alleged I'm gone for now let me know what you think in the comments below do you think they've seen it I don't think they did because they they have always when they saw someone they've always commented and and tried to get them on film or whatever they didn't say anything so you know it's interesting to say the least so anyway guys thanks for watching appreciate it and uh we'll see you in the next one y'all stay safe and uh take care


Hey, how's everyone doing this afternoon? So you have made it through the first day of WordCamp Atlanta, 2019. Congratulate yourselves. Everyone looks mostly awake. I hope that there was like coffee and soda out there to get this afternoon. This is going to be a little theoretical on the shorter side because it is warm in here. I'm Gary Kovar. I'm a back end developer at Modern Tribe. If you've heard of Modern Tribe, you've probably heard of us because of the events calendar plugin. I don't know anything about the events calendar plugin because that's an entire part of the company that I don't work with. About half the company is product and half is agency. So I work on the agency side. We're mostly doing WP sites or WP sites with a lot of weird third party things happening. We work with like some big clients like Harvard and Stanford and Disney and Microsoft, and those are fun because those clients do things like say we have crazy unreasonable time to first bite requirements or we have actually scoped everything, which is neat. But we also work with a lot of medium and smaller sized clients that through the process of looking at what their requirements are, we find some neat ways to clean up their really messy data and make it work faster. So this talk is going to be about alternative data stores in WordPress. This is a table of contents. I kind of wanted to put this out here, mostly for my own recollection as far as what I hope to accomplish in this talk. There's no prerequisites here. So if you're not like a hardcore dev in PHP every day, we're not going to look at a ton of code. There's definitely a version of this talk that has that. But we're just going to talk about these tools as options for speeding up your site. So we're going to talk about how WP currently stores data, just a quick look at MySQL. We're going to talk through three different categories of alternative data stores. So custom tables and views, elastic search, and then brightest memcached, generally caching type stuff. And then I want to walk through three real-world examples where I've used something other than core tables and then just some real quick implementation notes and then we can get into questions. Also, because it is May the 4th, Star Wars Day, I have picked all Star Trek images. So how does WP storage work? So WordPress, when it's not a multi-site, when you install it, has around a dozen database tables. If you've got an older site and you upgrade, you might have links and stuff hanging around. But generally, the way they're related is you're going to have the object and the object meta. So users, user meta, post, post meta, term, term meta. Following that logic, WordPress really has two models of data storage, two things. I'm going to omit users because users is a very concrete thing and pretty well mirrors how a post and post meta are set up. So posts are a thing that have very defined properties as evidenced by, if you look at the post table, right? Look at the post table, there's an ID, there's a title, there's an author, there's a date, post type, et cetera. And those are all very sensible things that you would need for a post or a custom post. With that, then, any extra attributes that we want to define generally end up in the post meta table. The other model is taxonomy terms, right, in that relationship. And the sole purpose of taxonomy terms is to provide an indexed way, a fast way, to find those posts, right? These are super sensible defaults. So as WordPress developed, this became a nice way to say, here's a general purpose CMS that you can extend however you need. The nice part about this is that WordPress, in addition to that, then builds in all the APIs you need. So to register a CPT, like, you don't write a single line of SQL.  But there are situations, right, where those defaults don't make sense and using alternative data stores can help us in those situations to keep sites performant. So the three, I keep saying three, because something about off by one errors in programming or whatever, right? We're talking about three things. My SQL, which is structured query language. It's relational, immediately consistent. Elasticsearch, we're gonna talk about a bit more. It's really like a search database, no SQL thing. You just pass it documents. It's eventually consistent. Memcache and Redis will, you probably think of them as caching data stores. And that's, in general, we're gonna use them. There's a benefit of those being available and we'll get into that as well. So heading to the first one. When I explain how WordPress stores data to non-devs, the easiest way to explain it is think of it like a giant Excel document with a bunch of tabs. So the tabs being the different tables. People immediately understand Excel because it's nice and square. I think MySQL spooks folks when you think about, well, I've got these weird relationships and stuff happening. But if you can paint it as each table's its own thing and they're related to each other, it becomes a bit easier to digest. So interacting with custom tables and views, we already have the stuff to do that, right? It's built into the WPDB class. So you can write direct SQL and do whatever you need to do. So the positive for using a custom table or a view, and I'll talk about how to create those a few more slides. The positive about those is you know that you already have the tools you need. Like it's built into WP core. You can work with tables and views and custom tables and views. The negative is it's still MySQL. So you can still shoot yourself in the foot and write slow queries and that kind of thing. I wanna quickly differentiate between custom tables and views. I think custom tables is something we're all probably familiar with. Views might be something that we don't use often. So if you think of a view as nothing more than a virtual table, combining other tables, right? So instead of like writing a massive query that's always has the same subquery somewhere within it, you write the subquery once, it becomes a view. In MySQL, it's no more efficient to do it that way, but it keeps your code a bit easier to understand. So Elasticsearch, it's evidenced by the name. It's great for search. It's a document store. So instead of passing like an array or object that has like a key and value, you give it this crazy nested JSON object and you define some attributes. And then Elasticsearch does this thing where it ingests it and it sends it out to different nodes in Elasticsearch because it all requires like more than one piece. And eventually it's consistent. Eventual consistency pops up a few times in here and what that means is when you put that document in there, you might ask with a search for something that that document should return back with and you may or may not get it right away because Elasticsearch has to replicate across all its nodes. So the node you stuck it into might not be the node that you're directed to when you ask for it. Eventually it'll show up, but it may not be an immediate thing. That's the limitation of Elasticsearch that pending load you may never run into. Under high load it's something you'll definitely run into and limits how we use ES. Great, so Redis memcached, this is the third one. I'm gonna group these two together a lot. The first note indifference that really matters, actually really, well there's a couple of notes. The first one that really matters is memcached has a limit of like one megabyte of data per thing it stores and Redis is 500, does anybody know, I'm pretty sure it's 500 megabytes is the limit. So both of these things are a key value. So you give it like a unique key, you give it whatever string, so serialized or JSON or whatever thing you're working with. When you need it later on, you say, hey I want the value that's at this key. It's fast because it's all in memory. So it's a great way to work with things. The other difference, started on to Redis and memcached, Redis is not just a key value data system, it does some cool lists and that kind of stuff. So if you're working with a more complex data structure, Redis might be a value. This is like a MySQL though. Most likely you have this available with your host, one or the other, which means most likely you can use some kind of composer package and interact with these things. Okay, so we're now gonna get into the part where we talk about like, how can you actually use these things, right? So we're gonna pretend that we have a client that says, I have a geolocation requirement and that's like I have some stores, right? And I want to store the latitude and longitude of those stores.  We're just gonna assume that we've created the CPT. We've created a meta box that captures this latitude and longitude, either address and figures out after the fact or whatever. So like the normal method we need to get this, oh, hold on, I duplicated my notes. Cool, so if we save it this way, right? We put latitude and longitude in post meta. The stinky part about post meta is that the meta value is set to long text. So long text, we're kind of getting in the weeds here. I said we weren't, I lied. Long text is, the limit is four gigabytes of data. So none of us in this room would do this, but it's possible that there are some plugins out there that would be abusing the post meta table and slapping tons of data in there. If you're using text fields for search in MySQL, search queries are not performant because the server has to call each object individually and scan through the entire thing, right? Whereas if you're using like integers or in the case of latitude longitude, you define it as a float. It's super fast for MySQL to zero in on this. So long and short, like any lookup you do in post meta, the meta value, has the potential to be slow. I'm not gonna say it is slow, has the potential to be slow. So this is like the code. This is, if you were doing geolocation, right? This is the formula that you would pass in to figure out the distance and miles from the latitude and longitude that was passed to you by the user. However the user passes that in. This would give you like 20 results where the distance is less than 25 miles. So I don't, this really doesn't matter except to get in your head that you're looking at that whole sub thing down there, right? Where you're doing like cosine and all, sine and radians and all sorts of math stuff that maybe like computer science folks know. I don't, I don't know. It's like magic, right? But it gives you the distance no matter what the latitude and longitude is for whatever is queried. So if we were gonna do this, right? With the default WordPress post meta table, you would want to figure out a way to create a query that would put that latitude and longitude in line with the ID. It's gonna be a gnarly looking thing. You're probably gonna have a couple left joins or a couple sub queries and at the end of the day you've written something that's not going to be continuously performant, especially as you continue to add things to post meta. So the first option is we create a custom table, right? The benefit is that when you save you can say all I need is the ID and the latitude and longitude. That becomes a sub query and then you can pass to your WP query on post in arg the results of that sub query. So just three columns ID, latitude, longitude and it makes that query look that two screens ago a lot faster. If you haven't created a custom table before the function you're gonna want to look at it's called DB Delta. First check if the table exists. If not, you can create it and off you go. It's that simple to have a custom table available. So in this case we would assume that on post save we're just gonna stick that into the latitude and longitude into the custom table. So the next alternative continuing that same path is if we were to create a view. This is a bad idea but like just for the point of conversation we'll assume we did that. Let's assume we created a view using the query from just standard post meta that now looks like the table we defined in the previous screen. The problem here is all we've done is hide a non-performant query in a view to make ourselves feel better as a dev looking at this simple to read data versus what was there previously in post meta. It's, yeah, you could do it. There's just no good reason to. So elastic search, this is like the right solution in this case. Elastic search has this concept of geo points. So if you're using a plugin, probably let's say an elastic press is kind of like the de facto standard or if you've rolled your own way of ingesting posts into elastic search, you can assign the geo point based on latitude and longitude. And so on subsequent searches after ES has indexed that it's gonna be like an immediate search. ES generally responds in like a dozen milliseconds for most sensible stuff. So this is gonna be like amazingly fast. It's gonna feel a bit like magic. Especially if you're coming to it from like a post meta lookup. The last one continuing, so like the Redis memcached. There's like not a good benefit of using a key value situation here because you're gonna end up putting so much data into Redis or memcached. And you run the possibility of evicting data that you do need in Redis or memcached. So I'm only including this for completeness in the four or the three that we were talking through. I will say one caveat to this is if you have only a few locations and you're using this location information like as a JSON object, at this point you could just use Redis as like what it's built for as an object cache or what we use it for in WordPress generally as an object cache and just dump that string in there and pass it to the front end without having to do any kind of query lookup except for getting one value from Redis. So that's the first example sample. The next one, this is the one that excites me the most, right? So the task order, like let's assume the client comes and says, I don't know, my site's slow when people check out, right? That's like a very like broad loaded like, well there's probably a billion things we can do. Here's one that's like a simple win that I've started doing on most sites. So we implement the idea of a task runner. I want you to think about like when you go in WooCommerce and you check out, there's three emails that are sent, right? There's like the purchase confirmation receipt and then the email to the site admin. Every single one of those calls WP mail. Generally every single one of those is going to have to connect them to an external service and send the message. So you're making three external requests that when the person clicks check out like all that has to happen before they see the check out page. But for humans like there's no difference, you know, if I get an email immediately when I click check out or if it shows up in my inbox five or 10 or 15 seconds later, like it's not part of the request in browser. It has not diminished my browser experience. So the concept here is we take the WP mail and instead of sending it immediately, let's drop it into a queue and then process that task later on. Processing that task later on will get into generally roughly, but oh, I tend to jump ahead on the slide sometimes. Yeah, so serving with an action and related arguments. And then you can either run it with WP Cron, System Cron or there are systems built specifically for this things like Gearman or TaskRabbit that you could say here are things I need to do. And it will handle that. Here's the neat thing, WordPress has this built in. So if you've used WP Schedule single event and passed like something that's slow to that, you've been using WP Cron as a TaskRunner. The big gotcha with using WP as its own TaskRunner is that WP stores all Cron in like one giant serialized blob. So if you have like a bunch of repetitive tasks and maybe you're importing a CSV and you break every line of the CSV into an individual task, which is one of the things I commonly use queues for. Now you've just made this Cron serialized thing like huge. And the same deal in the options table, it's long text. So we could be one of those like abusing the long text column. So the simple thing to do is say, let's create a custom table. And let's drop the tasks in there, mark them as complete or remove them pending what you need to do. I think after like Norcross's conversation on GDPR, maybe just delete them, right? Yeah, so this is simple, create the table. Instead of running the task immediately, put it in there and then figure out what your async thing is that consumes those tasks and runs them. Don't use Elasticsearch for this because Elasticsearch has that, it's eventually consistent, but if you're sticking stuff in there that you want to process quickly, that's counterintuitive or counterproductive or counter something. So with Redis or Memcached, you can handle this a couple ways. For both of them, you could say let's drop a key in with like some kind of unique ID for the task and then let's create another key value pair that has like whatever the key is for list of tasks and then a string or serialize something that says, hey, here are the tasks we need to run. The flip is on Redis, Redis has the concept of lists so you can actually accomplish this with just one key in value. You can add things to the list and pull it off and Redis is super great because now you've removed one requirement on yourself for like, well, I took this thing, I need a mark that I've taken this thing. Redis says, well, you've got this thing. I've popped off the list, it's already gone, which means it's on you to return it if for whatever reason the task fails. Yeah, so that's it on task runners. That's like a quick way to recover a lot of time. The last one I want to talk about like real world example is content syndication and this is one of those things I've done, I don't know, three or four different ways and it really comes down to like what the client means when they say content syndication, right? There's a lot of things to consider like from an SEO perspective, like duplicate content obviously. Like we're not gonna dig into that here but that's a piece of it. If you're syndicating content and what I mean by that is taking something that's posted on one site and using it on multiple other sites, very much a hub and spoke model, you could easily just say on all the spoke sites, let's just consume like an RSS feed or something. But let's see if there's like some better options than that that don't require us to make some remote requests and whatnot. The first one is on a smaller, let's say it's a multi-site network, on a smaller multi-site network, you could on post save on the hub, go ahead and switch to blog and insert it on all 15 blogs or whatever the number is. The negative here is switch to blog is slow. Probably doesn't matter so much in WP admin but you run the risk of hitting timeouts pretty quickly if you're running any real quantity of sites. You could also then say well, let's just use direct SQL then. So I know what I inserted into this primary blog, let's go ahead and take it and then I know the blog ID that I wanna insert it into. So I'll just change the tables and go from there. The thing we lose there is all sorts of great WP core goodness, right? Like we don't know where we are in term count, we don't know where we're on taxonomy count so we need to stick that stuff in there but then we also need to get the result and then map term to taxonomy. We need to map the post meta to the post. All that stuff that just happens automatically using WP core methods we miss out on by doing direct SQL. So contents education with my SQL, like you can do it but you're creating a lot of hurdles. So this is where views really shines and this is like my favorite solution for syndication. It only works if syndication requirement is hub and spoke because you wanna limit the amount of tables you're working with but on your spoke sites instead of using posts or post meta, terms, term meta, et cetera, create a view and then hook to the query and replace the table name. And the view will be a combination of the primary site and the hub site and the spoke site. Combine them. Only like potential issue here is that you need to make sure that you set the auto increment on the hub sites on the ID high enough so that you're not gonna eventually create a conflict. But at that point then you have effectively merged two sites in multi-site. It is an increase in one query but it's still very performant. So using elastic search. This is a good solution and I see this a lot of times when we need to syndicate stuff and we're not doing within multi-site. We need to syndicate from one WordPress site to a few others but there's a lot of business logic into what needs to syndicate. In this case you can also get rid of the concept of hub and spoke. Like you can set some parameters in there so that it doesn't really matter whose hub and whose spoke. You can share content pretty easily between sites. The negative to this obviously is if you have a bunch of sites in use and they're all sticking data into ES, ES is gonna be thrashing so you're gonna eventually get to the consistency but on the sites that you're pulling from elastic search you need to know that just cause I pulled something this time the absence of it next time doesn't necessarily mean it's deleted. So there's that weird consistency thing again on elastic search. Okay so implementation notes. Elastic press like I said is kind of like the de facto standard if you're working with elastic search but if you're doing something more complex you have more complex data models. It's not hard to work directly with ES. There's some cool composer packages. Elastic search has one and it's not difficult to create the array. Elastic search, the package handles the logic of then passing it to ES. Predis and Memcached PHP are also the other two composer packages you'd use to interact with Redis and Memcached. So that is it. Well all right, let's get to the after party y'all.


Simo, you have the screen. Yeah, just a second, I'll try to find the correct page. So yeah, so in this section, I'll quickly go through a quick example of how to install stuff, how stuff is usually installed in a cluster environment. And specifically, I'll talk about condi environments, because nowadays, Python is by far the most popular language for scientific computing. So like no, no, I'm going to say no favorites chosen, but it just happens to be because everybody's using it and it's a very simple language to use. So condi environments are these kinds of environments that are used to install Python with specific versions of specific packages that you need, because Python has a rich ecosystem of packages. So you usually need, for your code, you need some Python packages, usually specific packages to get your stuff rolling. And condi is nowadays also very influential to many other frameworks. Many other languages provide similar kinds of tools. So for example, has is one example, Julia has Julia packages and many other languages have a similar kind of a structure or similar kinds of tools to handle the same problems that condi tries to solve. So but without further ado, let's check what how we can install some condi packages. So this is a bit of a spoiler that we will be, I will be showing some things that you will see later on, such as connecting to the cluster. But but you will be able to do this later on. So how do how does stuff usually work with with condi is that you you basically you need the installer. So condi, like many other languages has this as well. But condi is this package manager. So basically you can use it to install various packages. And it can handle all of these packages yourself. So so in in the cluster, you first need to like tell condi what what what kind of environment it's working on. And this can change from side to side. But usually if you're working with condi, you need to load it in some sort of a module. We'll talk about this later. But you'll need to like get access to the condi. And then you will have to tell it to install stuff to the right place. So you need to run these commands, you know, to get it working. This is a good example also of how to read documentation in in our webpage or many other places. So in many places, you will see these kinds of like, like commands that you need to run first time, you set something up, and then you don't have to worry about them too much. So so if you have a problem with a specific software, you usually need to go to the documentation of the cluster, search for the application in in question, and see if there's instructions provided. Some of course, if the instructions are old or some some don't look good, or they don't work, you need to contact us. But basically, well, I have already run these. So I don't run them in a comment. But usually, you have something like this when you first start using a program. So you need to like, if you're going to use some program in a specific environment, you need to usually do some like cleaning up make make certain that program works in the system. But why is conda popular? Well, the reason is that usually, if you create these environments in in conda, you use can specify all of the dependencies in there. So many of you are probably going to be working with Python. And I highly recommend you start working with these environments already, because that will save you a lot of TS in the future, because usually in in this kind of computing environments, it's very hard to get like a consistent, like, everybody to work together, like all of the software that you want to work together. And conda is designed to like, make it as easy as possible to install, like very, very many different packages at the same time, and make certain that everything works together. Like, it's it's like, everybody, like, if you think about your laptop, your laptop might be a Windows machine, your laptop might be a Linux machine or Mac machine, it has different rules than an HPC cluster, which is a Linux machine, and probably some operating system you haven't ever heard of.  So so this is the case. So so in conda, you typically create an environment. So here's some like a quick example. So I have this environment here. I copy this name this. And I create an environment file for it. It's it's called like this environment Jameless. In this case, I have already already created this. There's a spoiler there. I will remove that line. But basically here I have an environment where I need to create an environment with certain packages. And with conda, you can simply, if you first do the initial steps that you load the module, you can simply create this environment using these commands. So conda and create. I might have already have this created. So I will need to remove it. Yeah. Once we install this, you will see what is the why, why, why this, these kinds of tools are important. So in, let's think at what we were talking with Enrico previously that you were working at your laptop, you might be working at the HPC cluster, you might be working in different places. You want the same tools to be available everywhere. And you want the installation procedure to be documented so that you can you can replicate the same environment. You want you don't want to like every time you go to a different kitchen to have like different try to find where are the utensils that you need. You don't want to like, like, you don't want to always try to figure out how do you get your code to run. So with conda and similar tools, you can simply create an environment in different places that are like the same, like you can get the same environment in different places. If you don't use these kinds of tools, or if you cannot use these kinds of tools, you still would benefit in having some sort of like an description of what you how do you install whatever you're doing. Because then you can replicate this instructions, even if the instructions are just like a text file for yourself, you can you can replicate it. And of course, in this case, the conda automatically does the thing. So you can see here that it it solved this environment. So it sold which packages it needs to install and then it does the installation for you. So this is conda is mainly used for Python and R nowadays, but it can also install Julia, I think as well. But similar tools are available for other other things. So now that you you have the environment, instead of using what it says here, you set and do what it says in the documentation. So use the source activate conda example. And if you just follow these orders, you get like an environment and now you can see that I'm this in this kind of an environment where where I have the packages installed. In the in the environment, now if I list whatever packages I have, you notice that there's a huge bunch of packages, huge bunch of software that was built, but was provided by the conda. And this is like a small, small example, small example environment. But in in general, when you are working with scientific code, you usually need to like, you need to specify quite repeatedly, the installation instructions, what you need to do, you need to specify the requirements. And and these requirements are usually defined from the top down. So instead of like, installing lots of like, if you have your own laptop, you might run some installation commands, and you try to build it from the bottom up, instead, you should look at what is the program data you want to use, and what does it require, and then work backwards from there. So in this case, for example, if I wanted to use NumPy and pandas, these popular Python packages, I set these as dependencies, and conda will handle like, it will draw all of these other packages automatically, and it will create me this environment that that that supports these packages that I actually require. And this is common thing in scientific software installation that you need to look at this documentation of the site, what the site provides. So in this case, what our documentation says, or what what your university's documentation says, you should look at the documentation of the actual packages, or the actual software that you want to use, and then work backwards from there and and install it or find out whatever those needs. Of course, some programs such as conda and they handle this for you, so you don't have to like worry about it. You will automatically get the prerequisites of those packages. There is over here in the documentation, there is description of how do you read these environment files. So so they're pretty self evident. Once you look at the documentation, so this where do you get the packages, what packages you need to install, you can specify, specify versions, and stuff like that, you can install stuff from peep as well. So if you need need like packages that are not yet provided by conda. There are various tools. And if, especially if you're going to be working in machine learning world. So this is part of the reason why we why we decided to give this talk here, even though it might not affect everybody. If you're going to be working with deep learning or machine learning, you will use GPUs. And in those cases, the GPU codes require other libraries and they require gigabytes worth of libraries to work. And to get that stuff working, you need to use these more complex conda environments to get it everything working together. And for that, I highly recommend checking some of these example, like if you know you're going to be using TensorFlow or Python or whatever. There's example environments here that you can use to do the installation. So in general, I would suggest that if you are going to be working with, well, any scientific code, this is related to conda, this example, but if you're going to be working with any scientific code, it's a good idea to check the documentation, ask us, and then work from the top down instead of from the bottom up. If you Google, like how to install, let's say TensorFlow, you will get blog posts from 2013 that describe the thing, how to do it. And they will lead you into this route of, okay, I need to like, I, I need to get this stuff working in order to get my stuff like the end product that I want to work. But that is not how it's nice to say it needs to be nowadays. So it's a good idea to start from the top, like start, what do you actually want? What software do you want to work? What software do you want to use? And then look at that and what that requires. So ask the software or the documentation, what does it need? And then work from there downwards. If there's any complications, if you have any problems, then that's why we are here to either write the documentation or to help with that. And there are plenty of tools such as conda that can do it automatically so that we don't, we don't need to like, we don't need to handcraft every installation out like by ourselves. Yeah, I don't, I don't know if I have more to say. Were there any questions? Yeah, so yeah, so this was a quick demo. So it was mainly like, yeah, this was not a typo long, because they were basically spoilers ahead, like something that we haven't yet, like we haven't yet connected to the cluster, we will do that after this talk. But in the future, you will encounter this situation where you want to install stuff. And then it's good idea to first check, do we have instructions to how to install this stuff? If we have instructions, then we'll use that. If those instructions don't work, then let us know because then we don't want to publish policy news. And if, if, yeah, yeah, so, so it's, but it's important to know that there's information around, like you don't want to be in a situation where you think that, okay, like, I need to figure it out myself. Because that's not how scientific computing works, like it's a shared system, everybody shares the problems, everybody has similar kinds of problems. There's like, you're not alone in this. You're not the only one doing what you're doing. So, so it's important to know that, okay, everybody else is fighting the same fight. And somebody might be using different tools, somebody might use another tool, but it's important to like learn from the whole field, like, okay, there's, there are things like these available, and then utilize them in your work. Do you expect anyone to be an expert on these topics after this course? No. Okay, no. So, like, like, like, for me, like, I, I personally learn, like, I, I forget everything almost immediately. And then I relearn it and relearn it. Time and time again. But the important thing is not to stop learning. Like, like the important thing is that, okay, you have a, have a problem. And then you figure out how to solve it.  You forget how to do it. Then you have to do it again, like half a year later, that happens all the time. And that can be solved in the best way by documenting what you're doing. But if you're not documenting it, it's important to, like, relearn and keep, keep learning. And if, and in many cases, asking other people, like, hey, do you, do you know how to do this? Because, like, that is the best way of, of, of, like, getting the information, like, getting information that is the best way of doing stuff. Yeah. So I think I'm seeing a lot of questions here. A lot of these will be answered in future days, or it's more logical to answer them there. This was just sort of like a preview to get you interested in the next days, I think. And yeah, it's, it was like, like, this was just, like, this was just like, I just went through a small subset of the documentation of a single program in, in the cluster. And, and if you think about like, okay, this is only one program, this is one of the most popular. So that's why we gave it as an example. But there are hundreds of programs that people are running in the cluster, hundreds of different programs. And all of them have their own complications. And all of them have their own things. Like, and it's not only in the HPC world, it's if you try to install it in your own workstation, it might get complicated. So all of these occur, everything like this happens in scientific computing, because all of the software is interlinked and everything works together. So it's important to realize that, okay, you're not in this alone.  Like, it's not solved by you, you find the solution in Stack Overflow, you find a solution in some, somebody else has written a program that fixes your problems. And it's important to get to this mindset that okay, before I try to do it for weeks and on end, to figure it out myself, you've, you've tried to find a solution outside. I was just like, yeah, I was just talking to one of my friends this weekend. And she said, I asked her the standard question, okay, I'm doing this course. What do you know now that you wish someone had taught you when he first started? And she had a really good point, like, ask for help when it's needed. And I might be hard to know, but like, she had developed the strategy, okay, like, I'll work on this problem for one hour, and then I'll go to garage and not waste much more time. And I thought that was a really good way to look at it somehow. Yes, so like, as scientists, people who work in scientific fields, everybody's curious, usually how to how to do stuff. And if you don't figure out how stuff works, you become, you can become irritated that okay, like, it shouldn't be that hard, I should be smarter than this, I should be able to understand this. Like that that's a natural, at least for me, that's a natural reflex. But, but there's always like this cost benefit analysis of is it something you really need to, like, is this something I really need to use my time on, or would it be better used in somewhere else, like actual doing something I like instead of like doing something I hate, and like, trying to trying to figure out how to install some stuff that I don't, I don't like the whole workflow, I don't like to do stuff. So in those cases, it's better to ask other people to find information in our documentation, in other places, that try to maybe describe what is the problem and try to solve it so that you don't you can focus on the stuff that you like. So because like, even though we don't want to talk about it that much, we're still part of it, basically, like, that like, or there is it kind of problems. And that is the most frustrating kind of problems when when you have like, you cannot get something installed. And in those cases, it's usually better to just like, find solutions that work for other people, maybe in the documentation, maybe somewhere else, and then use those instead of like, trying, trying to like, just get through by brute force and force of will. Okay, our time's almost up, I guess we can go to the break. So what we have next, so there'll be a one hour demo on secure shell. This is a special topic. And special means it varies each year. So if it's too boring for you, it's not strictly necessary to be there. And then one hour from now, at 15 Helsinki time, we have the connecting to an HPC cluster part. And this uses SSH and gets us ready for the next day for days two and three. So, yeah, so what's the point here? So in the next hour, we have a sort of general overview demo. Here's some things that you might not have known. And then we go to the the important part for the next day. So let's go to a break. And you can decide which of the next sessions you attend. Yeah, great. So see you soon. Bye.


to Exotic Wine Travel. I am your host, Matthew Horkey. So we're doing a little hybrid video today. This is gonna be on one of our regular YouTube episodes. Plus it's an update, a Kickstarter update for Discover Hungaring Wine. If you haven't backed it yet, back it today. We still have a big mountain to climb, but you know what, we're just gonna keep, we're trying to build some momentum, trying to create a snowball effect to get this project off the ground. We wanna make it the definitive guide in English to Hungarian wines. But in this episode, we're gonna break down the region of sex hide. I just recently got back from visiting the region for a day. I wanna thank Vita Peter of Vita Winery for setting up a wonderful afternoon, a wonderful day of visiting vineyards, even though it was wet, rainy, we couldn't see a lot, and then meeting with some of the smaller producers in the region. For those of you who don't know, this is one of Hungary's premier red wine regions. You know, when you think of red wine in Hungary, there's four that come to mind. One of the most prestigious is Vilan, which is a little bit south. Sexhard, Chopron, which borders Burgunlin, and Eger, where they also make Bikavar, that's further north, actually next to Tokai. So just a little word on Sexhard, there's about 2,400 hectares of vineyards there. It's a region that I love. It's one of my favorite regions in Hungary. Sexhard is a cool region because there's a lot of micro-climates. If you're going down the highway from Budapest to south, you'll also even see these strips of hills.  And from the highway, you couldn't even tell it's a wine region, but once you get into those hills, you're gonna see cool little valleys which create tons of micro-climates. There's not a lot of big humongous plots of vineyards. Most vineyard plots are small and they're hidden within some of these valleys. That's why they're trying to develop a cruise system to identify some of these great terroirs. Most of the soil there you're gonna see is loss.  So I'm gonna show you what you're gonna find. So in Sexhard, you're typically gonna find red wines. There are some white wines being made, but most of the production is red. You're gonna find varietal wines, exciting wines, like these wines from Heteini, Kadarka is made there, new varietal wine. Keckfrankosch. This Tabernac keckfrankosch is also fantastic. You're also gonna see varietal wines from Cabernet Saint-Yon, Merlot, Cabernet Franck, Syrah in some aspects. That's mostly what you're gonna see. I find the keckfrankosch and the kadarka wines to be very exciting and very underpriced, especially if you're in Hungary. They're spicy or they're medium-body reds. They're very, very food-friendly. Cabernet Franck as a varietal is also something that does really, really well.  Maybe down in Vélon, they're a little bit bigger, a little more brooding, but in Sexhard, they kind of resemble a Cabernet Franck, kind of like a Riper-Chino morgue in style. On top of that, you're gonna see Bikavar. That's right, Sexhard is one of the regions besides agar that can make Bikavar or bull's blood. Now, what you're gonna see, these wines are made up of about 40, at least 40 to 45% of keckfrankosch. It's gotta be about 5% of kadarka, and then you can play. Syrah, merlot, Cabernet Sauvignon, Cabernet Franck. I've seen Sacrantino, Carmenier in these blends. I think these wines are outstanding. They're something that you should try when you're hungry. I've tasted ones that have been everything from maybe a village Burgundy in style, all the way up to a really nice Chianti classical with some grippy tannins. I love Sexhard and Bikavar.  It's a reason why I love hungarian wines in general.  As Sexhard's starting to try to roll out some crews. Shibaschen is a winery that I like very much. I write about so much. I really like their single vineyard Bikavars. It's something that really turned me into the end of the region in the first place. Another thing, Bikavar, Cacfrancos, Cadarco, kind of the local Sexhard thing. They can be bottled in these Sexhard bottles. Now I'll put this up there. These Sexhard bottles are kind of, they're kind of cool. I compare it like almost the, it's almost got the pound round bottom of like a Burgundy bottle, but then the slimness of a Bordeaux bottle. You smush those two together and that's kind of what you get with the Sexhard bottle. They say Sexhard right there. They have to go through a blind tasting of local producers too for the wines to be able to be bottled in this manner. You're also gonna see some producers make premium single vineyard, like I said, of the variety of wines. Cabernet Franc, Cabernet Sauvignon, Merlot.  You also see some Bordeaux blends which can be premium wines as well. And at the very top, there's a brand called the Sexhard Grande which can only be declared in good vintages. Must be 50% cake Francoise. Blau Frankis and the rest of a bunch of other varieties that goes through strict yield control and a blind tasting and these wines are expensive. We're talking 40, 50, 90 euros. Some can be really darn delicious. So if you make it to Hungary, check out some of these wines. They have a great, great name, the region Sexhard. And you'll be finding out a lot about those in our book, Discover Hungarian Wines. So if you haven't backed it already, please back it. Let's bring Hungarian wines to the world. It's gonna take all of us. And guys, if you like this video, please subscribe to our YouTube channel, Exact Minesharval. I will see you at the next episode.


Hello friends, myself, Darshan Pandit, Assistant Professor, Department of Computer Science and Engineering from Walchand Institute of Technology in Solarpur. So today we are going to discuss about CDMA scheme in medium access control. So the learning outcome is at the end of this session student will be able to describe CDMA mechanism that regulates user access to the medium. So in this we are going to see what is code division multiple access and spread aloha multiple access. So in CDMA scheme all terminal send on same frequency at same time using bandwidth of transmission channel. So in this each sender has a unique random number and this sender exhausts the signal with the random number. Remember that receiver can tune into the signal if he knows the pseudo random number. So this is simple concept of CDMA. So the advantage of CDMA is higher complexity of receiver as receiver cannot just listen into medium and start receiving if there is a signal. So receiver has to know the pseudo random number. So another disadvantage is all signal should have same strength at receiver. So advantage of this scheme is all terminal can use same frequency and no planning is required. So CDMA provides huge code space when compared to frequency space and in this interference is not coded and also forward and error correction and encryption techniques can be easily integrated in the CDMA scheme. So as an example you can see so sender A and sender B we are having two senders. So sender A is sending data equal to 1, sender B is sending data equal to 0. So both signal get superimposed in the space. So to identify the data from A and data from B we require a unique code that is pseudo random number. So let us see an example where two senders A and B want to send data then CDMA assigns orthogonal key sequence AK equal to 0 1 0 0 1 1 to sender A and BK that is key BK equal to 1 1 0 1 0 1 for sender B. Now sender A wants to send data that is AD equal to 1 and sender B that is BD equal to 0. So in this let us assume that binary 0 as minus 1 and binary 1 as plus 1. So now both sender spread their signal using their key as a chipping sequence. So here chipping sequence are applied to single bit for spreading. So now sender A then sends the signal as AS, AS equal to AD into AK.  After that sender B does the same with the data to spread the signal. So it will be like BS equal to BD into BK.  So here both signals are transmitted that is sender A and sender B both signal then transmitted at same time using same frequency. So this signal get superimposed in the space. So we get signal C, C equal to AS plus BS. So the resulting data will be minus 2 0 0 minus 2 plus 2 0. So now if receiver want to know data from sender A, so it has to tune into code of A that is C into AK. So C is minus 2 0 0 minus 2 plus 2 0.  So the resulting signal will be 2 plus 0 plus 0 plus 2 plus 2 plus 0. So the resulting data will be 6. So as the result is much larger than 0 the receiver detects as binary 1 that is send by sender A. Now tuning into sender B that is if you want to know data from sender B then B code is applied that is BK C into BK that gives you result of 2 plus 0 plus 0 minus 2 minus 2 plus 0. So the resulting data will be minus 6. So here the result is negative, so 0 has been detected. So that is this is the original data sent by sender B that is 0 and same is detected at the receiver. So in this way we can apply code division multiple access to identify the data received from sender A and sender B which was superimposed in the space. So let us see the next scheme that is spread Aloha multiple access. So here CDMA sender and receiver are not really simple device. So communicating with N devices require programming of receiver that it should be able to decode N different code that is while communicating with N device CDMA scheme require N different pseudo random number that is N unique random numbers. So the wireless and mobile devices communicate with base station only. So here Aloha was very simple scheme but could only provide a relatively low bandwidth due to collision. So spread Aloha multiple access it is a combination of spreading of CDMA plus medium access of Aloha. So in this we use CDMA with only a single code that is without collision detection. So in this diagram you can see spread Aloha multiple access which is a combination of CDMA and TDMA that is code division multiple access and time division multiple access. So in this Aloha has only low efficiency so it has very low efficiency and CDMA needs complex receiver to be able to receive different sender with individual code at a same time. So in this spread Aloha multiple access works as so in this you can see each sender uses same spreading code that is sender A and sender B access medium at a same time in their narrowband spectrum. So all three bits shown as a collision so in the diagram you can see. So to avoid this collision same data could be also sent with higher power and for a shorter period. Now spread spectrum is used to spread shorter signal that is to increase bandwidth that is spreading factor S equal to 6 in this example. So in this way we can send data using spread Aloha multiple access that is without collision. So advantage of this scheme is finding good chipping sequence so that is the disadvantage and so that is for each sender has to find a good chipping sequence. So that is one of the disadvantage and advantage is like this scheme is very robust against narrowband interference and simple coexistence with other system in the same frequency band. So you can pause the video here and answer the question how are guard space realized between users in CDMA. So the answer is like guard space between user in CDMA system is the orthogonality that is single data bit is spread over a longer sequence of transmitted bit between spreading codes. So the lower the correlation is the better is the user separation. So in this orthogonality bit that is pseudo random number are used as a guard space. So these are the references which are used to create this video. Thank you.