Hello, everyone. So we are coming up right on the tail end of the day here. It is 4.35, and I have 35 minutes to go, so let's get this show on the road. So to jump into things, I'm Redbeard. I'm with CoreOS. I talk about weird things. Apparently we're talking about making cloud native weird, so I'm in the right place.  Now these are going to be lies in the sense of they are lies like high school physics, where I tell you that the smallest particle in the universe is an atom. And then you learn that there are quarks and anti-quarks and positive spin and anti-positive and all of that. So as with any good presentation, we should be able to answer a number of questions by the end of this, and this presentation will not be any different. If you can answer all of these questions by the time we're done, then I've succeeded. If you cannot answer them, then I have failed. So first off, who? Who is the target audience of this? This is going to be organizations who are looking to run Kubernetes in some redundant manner. What are we going to be talking about? In the words of Mike Tyson, everybody has a plan until they get punched in the mouth. So what we are going to talk about are the considerations that you have to make to be able to build out these types of multi-environment, possibly multi-cloud systems, and making sure that you've kind of planned the steps and that the execution makes some sense. And what are the common misunderstandings there? So, when are we going to do this? Well, we're going to let you know when everything is going to be generally available within Kubernetes. I will be talking at one small point about Tectonic, but this largely has very little to do with Tectonic. I am a huge believer in making sure that, part of the reason why you're looking at Kubernetes is to make sure that things are as agnostic as possible within some realm of general influence. So we are going to make sure that these are applicable across whatever district of Kubernetes you happen to be using. The where of this are, what are the considerations kind of broken down by the compute environment? Are there specific things that you have to worry about on DigitalOcean versus packet.net? Is there anything that's exclusive to bare metal versus AWS? And finally, getting into the why, can you answer why you want to do this? Because is not an answer to that, or at least a valid answer. So we want to make sure that you're able to break some of this down. And then with the last one, how do you actually achieve these goals? So, as I like to say, kind of in a from the trenches type perspective, let's jump step one into the past. So we need to make sure that we don't forget the past. And one of my colleagues coined the term cloud kids as a pejorative for himself. He, back when I ran the infrastructure team at CoreOS, he said that there were a whole lot of things that just weren't possible. And that he as a cloud kid, because he had ran or he was working on an infrastructure team and had never touched a physical server. That blew my mind. An infrastructure SRE type individual who had never grabbed a piece of metal and kind of worked with it. So for the cloud kids in the room, this tidbit is for you, for everybody else, we'll move through it real fast. So to understand where we're at, let's analyze an example from the past, which for this one, I will pick Oracle real application clusters. So to use Oracle Rack, you had to have a sand. And to understand what that starts to look like, let's look at this very pretty picture. So in this picture, we have two compute nodes. We have two disks. You'll notice that each of those disks is connected to both of the servers concurrently. This is not something where you're kind of doing an EBS kind of magically attaching and detaching. Both servers can access both of the disks at the same time. That's part of the basis behind a sand. And it is up to the things that consume those resources as block devices to be able to intelligently consume them. Now, for Oracle Rack, they understood how to partition out the use of that disk by machine to make sure that if one machine failed, another machine was able to take over the consumption and utilization of the rest of that disk to be able to serve resources. This was for high performance more than, or it's for high availability, more than high performance. But the reason why folks began to think of this as a pattern that you couldn't do was because the way that most people consume block devices is not directly attaching them to some piece of software like Oracle Database, but instead they put file systems on them. And if you don't have a file system that is cluster aware, like GFS2, OCFS2, or Luster, that's L-U-S-T-R-E, not Gluster, then you are going to end up in a situation where when you try to concurrently utilize that file system on two hosts, read, write, you'll probably corrupt the file system. Now, for what it's worth, there are still useful things that we can do with this, but in the end, using a SAN also meant dealing with what are called worldwide names. So for a real quick thing of welcome to the world of worldwide names, this ugly thing is a worldwide name. So to make it just a little bit more understandable, we're gonna reformat it, and we'll reformat it again, and we'll keep reformatting it. And as you go, you notice that it starts to look like a MAC address. The reason for that is, is because it's basically a MAC address for a disk. The IEEE issues what is called an organizationally unique identifier, and those OUIs are used for hardware manufacturers to be able to produce what are called media access control numbers that are used with network cards, and storage vendors use them to give individual serial numbers to dynamically provisioned disks. So in this sense right here, this gives us the sort of high level overview of what it starts to look like, because now you refer to a disk by the worldwide name within the operating system so that if you have multiple machines concurrently accessing the same disk, they're able to access it by a stable ID. This will make more sense in a moment as to why I'm talking about this, but this lack of knowledge about things like SANS and everything was largely driven by the cloud. And nobody needed to really know what a LUN was anymore or what it meant to be zoned into a host, but your SANS doesn't limit you to those things as well. And as I said, we should not get bogged down by what the cloud can't do, because we will come back to that. So moving into a bit more of the present, let's talk about the planning and any time you want to develop a plan, you've got to map some of your needs. So first and foremost, know the problem that you are solving for. Are you trying to do multi-cloud or multi-envirement things to be able to achieve higher latency? Hopefully not. Hopefully you're trying to get to lower latency, but is it that you are trying to increase throughput? Is it that you're trying to ensure that your data locality puts your services to as close to your end users as possible? Thus, a user accessing your resource in Singapore gets sent to a data center in Singapore, and a user accessing your resource in London gets sent to a data center in London. Are you trying to optimize for other types of resource utilization, like RAM or CPU? Are you trying to avoid the next five nines attack? Do you not want to be e-corp, kind of responsible for having all of your data destroyed because it was in a single location? Or especially present to the world that we live in right now, are you trying to avoid disaster through global thermonuclear war? Hopefully this is not something that you are trying to protect against, but in other words, what we are talking about here is you need to know what your failure domains are. You need to understand whether you're trying to protect against disk loss or data center loss. Because sure, you may be provisioning things at an Equinix data center in Ashburn, Virginia, and then a tornado comes through and takes out your resources and S3. So if you're not thinking about some of those things like region locality and kind of how your resources play out across different providers as well, you may not be protecting against your failure domains. So the big question is, are you prepared to answer these questions? I have a hint for you. So now that you have at least thought through this and you're starting to map out what your reasons for wanting to do this are, this means that you are going to have to define your environment via some configuration manifest. What this means is that you're probably going to do things in the realm of configuration as code. So how do I get this done? This is where things start getting actually interesting for folks because I dig into a little bit more concrete ideas. This means your configuration files must be in some version control system. Even if in a strange way this version control system is you are stuffing them as objects into Etsy D where with Etsy D you can then go back through and play back the index over time to be able to recover things. Now, in reality, you probably are not going to do that because we have a much better system for versioning text documents and that is git, but you must have something like this. If you do not have this, you are doing it wrong. On top of that, I use this beloved piece of software to react to the changes in those repositories and monitor and take action when things are occurring. Now, if I'm doing this with a bunch of Terraform definitions, there's probably going to be secrets involved in some form. Now, because, like I said, I used to run the infrastructure team at CoreOS, we've been doing this for quite a while and all of the pieces of software that are available today were not necessarily available in the past. So the way that we historically got this done was using a utility called gitcrypt, and I'm going to actually give you a snippet of Jenkins Pipeline showing exactly how we use it. It's not complex, but gitcrypt gives you a GPG-based mechanism for pulling secrets out of encrypted at rest storage, using them while you're done and then purging them from memory. But just because I am doing it with these tools does not mean that you have to do it using these tools. There are other things that can be used in similar fashions, like you can use Terraform, you can use things like cops, you can use Kubespray. All of these are mechanisms for kind of bringing up your underlying compute, which we'll also talk about here in a moment. You can also use things like Helm charts to actually manage the lifecycle of your applications and for anybody who sat through Vic's talk right before this, you kind of were kind of handed some direct design patterns on how to successfully use these. But again, the tooling is less important than committing to the process. Everybody loves to dig into tools and be like, well, what's the thing that I can just install that does this for me? Well, I've given you a list of things that you can just install and just do that for you. But if you use Perforce, yeah, there's a whole lot of feelings I have about that, but just use Perforce. If you are one of those dyed in the wool like Jenkins is garbage and we have successfully migrated everything to drone.io or to Travis, great. You have a solution. Use the solution you have and the one you understand. These are ideas and these are design patterns that you use to build these systems in this way. So continuing to move on. This is one that you have to get burned by it to know that it's important, but this is to say, if you deploy three clusters with Kubernetes, you should have three distinct ranges of addresses that are used for those clusters. Yes, Amazon will let you use the same <IP_ADDRESS> slash 16 in every VPC you set up. It does not mean you should do that. Back in the day, the kind of state-of-the-art system for IP address management or IPAMS was an Excel spreadsheet that sat on a shared drive. The synchronization problems with that were definitely non-trivial. If you have nothing, Google Sheets is good enough. If you're paying for info blocks, right on. But it does not matter whether you are in your data center or whether you're referencing the assets on a cloud provider, make sure your network ranges are non-overlapping. That now means that you can start to do things much, much easier where you have just dynamic site-to-site VPN links to allow your users to just access the resources that are on a cluster and firewall them at layer three and possibly layer two rather than having to get into NAT translations and everybody goes through one address and then you have to have proxy filtering and everything else. So this does not seem like a big deal, but just do it. And if you need some help with this, I had an intern last summer write a utility to make this easier to do. And I'm going to move on to an example of this, but we will have this back up here in a moment. So let's actually look at this. And for this I'm going to try to refresh it. There we go. So what we've got going on is I run the CLI utility and I have two different failure domains and an arbitrary address range that I pick. I pick it saying that we have a slash 20 that we want to use for the whole environment and it breaks down what the ranges should be to have a public, a private and a protected network as well as extras. I change it to a different subnet size. It does all the math for me and fixes everything. I then decide that, hey, I want to have a different number of failure domains. So I can just do that and it takes that slash 21 and now cuts it down into smaller chunks to make sure that I have a reasonable breakdown of all of this. Now maybe I don't want it just in a table. Maybe I need a Terraform definition for bringing this up on AWS. So it renders the Terraform definitions giving me the NAT gateways and all of these other things. Gives me the routing tables. And yet I know that everybody is not using Terraform so maybe you want a cloud formation and we can just do this and render a cloud formation as well. These are common design patterns that everybody should not be reinventing the same wheel. And that is the value of open source utilities like this. So if you need something like this, we have the ability to make something like this available. So continuing on here. There we go, perfect. So the next step, knowing what your storage is.  Seriously, I have sat through enough talks here and enough lightning talks and everything of being folks going, what are we going to do about storage? When is storage going to be a solved problem in Kubernetes? Guess what? If you are running any reasonable size, it is a solved problem. So let's talk about it. What is your platform? Are you using AWS? Cool, you've got EBS volumes. Are you using GCP? You've got persistent disks. Are you on Azure? Well, they have a whole matrix of managed and unmanaged and premium and standard and all of that. But it's more important to think about what's generically happening here under the hood. So we'll walk through an example. So I have two servers, server green and server blue. And I have an EBS volume attached to server green. And then that tornado strikes and server green goes down. It comes unavailable. And the whole point of my cluster scheduler in knowing about these remote storage objects is that intelligently de-schedules that disk from being attached to server red and attaches it to server blue. And to da, my stateful application still has all of its data and is able to migrate to a different system. Now, the whole point here is that Kubernetes is giving you shoulders to stand on. The what are we going to do about storage is a concept of what are we going to do without the concepts of persistent volumes or persistent volume claims or storage classes or all of these other things? By using these primitives that are built in and saying I have defined a storage class that is the default for this cluster, meaning that if I'm on AWS, my default storage class is just use EBS volumes. And if I'm on packet.net, it is please just give me their remote block storage. Then you are able to make better and more intelligent decisions here. That whole concept that I just showed you is the read write once mechanism. And you'll notice that that process of migrating a disk from one machine to another, that is the missing piece in historic compute systems when you have a SAN. Because you needed some mechanism to intelligently go, hey, this host has gone down, reschedule that workload on a different host and attach the disk. There were entire mechanisms like, what are the tools? There is CLVMD, which is like a whole clustered LVM system that uses multicast addresses to be able to dynamically change a disk that's mounted from being read only to read write. But that brings up a very good point. These are design patterns from the past that folks are now just relearning. And Kubernetes being built by a number of individuals who have also interacted with these design patterns in the past knows that. So you're able to have a disk that is simultaneously mounted into multiple machines and is available read only. And you're able to have a disk that is simultaneously mounted into multiple machines read write, and that is read write many. But just because you've never done it on the cloud, again, it doesn't mean it's not possible. So let's talk about bare metal for a second. Because hint, hint, it works extremely similarly. You have some concept of a disk that is remote, possibly it's via a SAN using iSCSI or Fiber Channel. And you've got HBAs in place that know how to use that. Possibly it's a Cinder volume because you already have some OpenStack service running and you just wanna be able to use that. Possibly you've set up Ceph and you have either CephFS, which if you have CephFS now means that you can have that file system concurrently mounted on multiple machines read write. And when you make a sync call on a file down on machine number one, you're able to immediately see that data on machine number two. Or possibly you just use the RBD mechanism from Ceph where you're still back to just the vanilla kind EBS type mechanism of I have some storage object. I want it to be available as a block device. Please make that available. But the big thing is you just need an API for your storage engine. And if you're already paying for NatApp, they give that to you. If you're already paying for EMC, they give that to you. And if you're not paying for any of those things, then guess what? Other APIs do exist for storage and it doesn't have to be expensive. So I am a huge open source Rabbler. I started out my career doing a little bit of Windows and then I saw the light and I saw that draconian evil open license called the GPL and learned that the BSD license was far superior because it had more freedom. And then I learned the air of my ways. But regardless, free BSD is still a legit operating system and in FreeNAS you have the ability to use ZFS whereas the prospect of doing that on Linux is still a bit dodgier. So what does this look like? When you download that FreeNAS ISO and you decide you want to have this storage area network so that you can use your Kubernetes cluster on the cheap and still have all of these types of easy disk accesses. Well, you have some disk and you have some Meet API which is probably going to be you and you have some server and you install the software in the server that has the disks and then you are going to configure RAID so that you have redundant or even better a redundant array of inexpensive disks and then you just take the easy route and you export iSCSI and now Kubernetes which natively understands how to support iSCSI is able to just take these block devices and plug them in and you don't have to go to the effort of thinking about all of this. Now, getting back into this I promised some more thoughts about setup. So let's take a moment and let's put all of these pieces together. So what do we need to worry about here? Well, hint, they're the things that you should already be doing. So you have a single sign-on system in place, right? Because you don't want to be running local users on the machines that power your cluster and you don't want to be running local users on the cluster itself. So that means that you should have some component like DEX hooked up and you should then have that talking back to some identity provider like LDAP or like OIDC. You also are going to need some log aggregation mechanism. That is to say collecting logs from the host from Kubernetes scheduler from your applications in a central location. And if you don't already have Splunk or you don't already have something that you set up today, then I highly encourage you to go with this relatively easy thing to setup. And I say relatively easy because you will get it up and running and it will be perfectly fine. And then when you get to the point of having about a terabyte or two of logs and you have to start learning elastic search re-indexing, well, life is an adventure. Good luck with that. But when you are just at the realm of getting started here, this is going to work just fine. You are also going to be wanting to do reasonable monitoring and alerting because you need to measure the performance and alert on all of your problems. That means that you will want to have Prometheus running. You will want to get alert manager configured and you will want to have Yeager in place so that you can actually trace the statistics of your application. This is not rocket science. This is just making sure that you are doing the same things on all of your clusters so that you have central places of being able to go, I go to my tracing dashboard and I am able to trace components of the various applications that I have regardless of where they happen to be at. The big one here, it's always a DNS problem. I make every single person who works for me read the first three chapters of DNS in Bind and they laugh about that and then I tell them I'm serious and they will read the first three chapters of DNS in Bind because it is always a DNS problem. So this means properly federate your DNS. When I say that, I mean DNS has a global scope. Do not pretend that it does not have a global scope because when you do that you are doing yourself a disservice. When I logged into our developer, AWS account, and I saw 200 tectonic.local zones, come on folks, what are you doing? There's not 200 concepts of tectonic.local. That's the whole point of namespacing. We have this globally namespaced resource called DNS. That means that if you are doing things just think about it because if you have an LDAP system, for example, and you want to be able to talk to or fail through a number of LDAP systems, one, SRV records already handle that for you, but if you don't necessarily want to go that route, let's think about it this way. If you named the host names of your LDAP servers, LDAP.sfo.example.com, and you name your other LDAP servers, LDAP.nyc.example.com, and LDAP.ber for Berlin.example.com, and then you use the built-in mechanisms of DNS resolution like end-dots and like search suffixes where you are able to provide a priority of search suffix resolution, then that means that you can say, I wish for all of the San Francisco resources to automatically attempt to resolve whatever my name is.sfo.example.com, and if that does not work, then they may fall back to nyc.example.com and ber.example.com and justfinelyexample.com, and that now gives you the mechanism of saying when you are deploying an application to your cluster, the name that you are trying to request is just LDAP. And when you deploy that same application to your resources in New York, it will just go to the local resource. So this means that you can either utilize components like core DNS with your cluster to handle some of this type of federation and to be able to expose both the cluster.local type concept as well as federating that out to your external DNS systems, but it also means you're just going to use your external DNS infrastructure. Do not reinvent this wheel. One of the most beautiful things that OpenShift V0 and V1 did was that you defined a domain for your OpenShift cluster and then you delegated that domain there and then as they dynamically handed out host names or you requested a host name, it automatically appended that domain name to whatever your application name was called and because it was federated through the just vanilla DNS infrastructure, it was just available because especially when you start building microservice type applications, you don't really care what the host name is because it's always going to be behind some other API proxy or in the case of Kubernetes ingress controller or something like that. Finally, you're going to want to sync your RBAC configuration generally across your clusters. This means today our trusty Butler or Spinnaker can handle some of these things. It's the concept of continuous deployment where as you are making changes to those configuration files that you have in revision control that Jenkins is monitoring that it is able to pull down the credentials from GitCrypt or Vault and then be able to apply those changes to the cluster. Traffic distribution. Cluster traffic needs redundancy. This is to say that utilize either your Cloud load balancers. If you are you're paying for F5, it doesn't mean that you should just throw away your F5. Now, it does mean that you should be looking into BGP and equal cost multi-path. And if you already have a properly configured clause network or leaf spine, same thing basically just ones the fancy academic name, then you should be utilizing that. Even if you have a small number of cluster or a small number of machines in a cluster, it's not unreasonable to set aside address ranges and to use static routes to route that, again, equal cost multi-path to all of the nodes in the cluster. It does not mean that you will always have the most optimal traffic path resolution if you are doing static routes. You've got BGP, you can do that, but it means that now you don't have to worry about having separate pieces of hardware which you have to buy two of for everything and then setting up heartbeat connections to them and then learning their API and everything else. Because in this case, BGP is a simple enough API to do this. What this means is that when you are taking all these components, you need to demand having network APIs because in distributed systems everything becomes a network resource, whether it is storage or whether it is a database as a service or whether it is something else. So now we move into the execution of this and we discuss how we begin to take action. So step one, cluster provisioning. Understand that there are separate stages here.  It then means that as you do that you're going to normalize and templatize your host configs. That's very easy to do with container Linux. Same manifests can be used generally for both bare metal machines and cloud and if you're using something like Kickstart and cloud configs in separate systems it may, you just want to break things down to kind of the minimum state or kind of use Ansible to manage that and avoid static configs at all cost. If you think you need static IP addresses you probably don't. There are cases where you may need that but again if your answer is well it's because we've always done it that way. That's the wrong answer. Things like DHCP exist for a reason and things like DHCP have been made redundant for a reason. These are things that you need to begin exploring. So let's get into the cluster configuration. So the things that change over time are the cooblet flags. Ensure that everything is, as we like to call it at CoreOS, under management. That means that you have the ability to change the cooblet flags if new fields are deprecated or new fields are added. Also use robots to do your bidding and by robots, I know as I said that people love to hate on Jenkins but this butler does my bidding quite well. So this is an example of like the crazy matrix build that we have that deploys things to different clusters and different regions and does it automatically based on if it's a production resource or it's a development resource. And when you start getting into that let's talk about this step by step. So first you're going to unlock your credentials using grypt or vault. This is where we pull a key from escrow. It's pretty simple. It's literally a bash script that knows how to call grypt and is using variables embedded into Jenkins and some of the identity and secret management built into Jenkins. From there, it just gives us the ability to pull this in as a pipeline stage. So I can unlock my credentials, then I do a git clean and a terraform validate. Pretty straightforward. Again, it's calling these things as bash scripts in a Jenkins pipeline. The validation script itself runs terraform validate but then as a lot of you are also go developers and you know that you should be running go-fumped on your code, you should be running terraform-fumped and we have components here that exit non-zero because this is the Van Halen's brown M&M's moment. It shows whether or not you actually read through that contract and made sure that you were doing all of the things that were required. After that we plan, we send a message over Slack asking a human being to confirm that the work should be done and then we deploy it with terraform apply. So working in a cluster this way, adding a new cluster is as easy as defining an environment variable. Then you have to maintain what you've got. So we also use a similar set of Jenkins jobs to manage these environments. Again, we define the environments, we give them names, they have paths to the location of those configs within the various repositories and we use a similar set of processes. Get crypt, get clean, helm lint and helm upgrade. And thanks very much to Brad Eisen from the infrastructure team who did a lot of this work and really insisted on making that the way that we did everything. So then we have manual operations, don't do them. Seriously, don't do them. Okay, fine, if you're going to do them at least make sure that you export things. So thanks to Duffy Cooley for this one. I had no idea about this until he pointed out that there's an export flag that you can use with Kube CTL get. And this removes all specific information that is to that cluster from the resource. So then you're just a Kube CTL apply away from mucking up all the work that your robot has done. So finally disaster recovery, things will go wrong. This is LA yesterday. This is the 405 freeway going down by the Getty Center. So for all those folks who came from Los Angeles have fun going home, have a plan and get prepared to be punched in the mouth and test the plan, do things like backing up LCD and running multiple clusters in different failure domains and use certain purpose built tools like Heptio Arc which is a utility for managing disaster recovery specifically for your Kubernetes cluster. So who is you? What is making sure that you know how to build out a multi-cloud and multi-environment Kubernetes system? I'm 19 seconds over, which is why I'm rushing. So what are the common misunderstandings? Understanding or thinking that clouds are beautiful and unique snowflakes and you have to do things differently. They're not. You just have to think about them differently. All of these features are available now. This is not things that you have to wait on. You can take this and do it all today. So knowing why, yeah, how, yeah, we can do all this. So tectonic, you can free for up to 10 nodes. It has hooks for doing a lot of this stuff automatically. You should check it out and we're hiring and that's me, thanks.


This is State Tech Hawaii. Community Matters here. Hello. Hi. I'm Marcia Joyner. And this is Cannabis Chronicles. And yes, we look different today, because we're looking at what else, but napolycliffs. Why? We are changing our format a bit today because we are going to talk to my dear friend. And everybody knows I only talk to dear friends. My dear friend, the mayor of Kauai, who is running for lieutenant governor. And if it seems strange that we're asking him to be on Cannabis Chronicles, because only if we have friends that get elected are we going to maintain our Cannabis Chronicles. Therefore, we're inviting friends. Aloha. Aloha. Mr. Mayor. And think big. I love it. He is big, isn't he? He's big. Tell us about Mr. Mayor. Tell us all about you. Okay. Well, obviously I'm sitting here. I'm running for the office of lieutenant governor. But more importantly, born and raised on Kauai, humble upbringing. I have two brothers, one sister, you know, we're going to really humble upbringing. My grandmother was a big part of our lives. She was a staunch supporter there with her love in Aloha. We didn't have too much, but we had a lot of love and good food. So that was our upbringing, you know. My parents parted when I was 11 or so. But I really took care of my brothers and sisters, so leadership in a home for me. Okay. Now, let me just add a caveat to that.  Yes. Absolutely gorgeous. Gorgeous. Class A, just wonderful human being, and she just adores you, and she is out holding signs and walking. She is all over the place. Yes. Yeah. So it's a great family. A lot of them, my parents are, everything's all good now. So I believe I'm here sitting, talking to you because of my upbringing and just having to do what I needed to do. Now, when we talk about lieutenant governor. Yeah. Which is usually a nothing office. However, because of all of your years of leadership, and well, you tell us about that, but working within the government and knowing how government works. So tell us about the years that you've been in leadership in on Kauai. Yeah. So within government, I started really coming back from my experience with the Miami Dolphins and moving back home, got married in 1985. And so I really started in my civil service experience in the Parks and Recreation Department. So I know what it's like to serve with seniors or, you know, a kupuna or a keiki in the Parks and Recreation operations. And then Mayor Baptiste came into office and he gave me a chance to be a department head. So from civil servant to department head. And then now sitting before you as mayor for the past 10 years. So I've gained that administrative experience and understanding how to pull people together. Surround yourself with a good team of cabinet members with hearts and souls that know how to make things happen. And to me, that's been very successful for us. And to really reach out and hear the voice of the people. Reach out. I take my cabinet members out every quarter and we go out into community. I kind of want to put the face to the name. I want the people to see my parks director and my county engineer and my attorney, my county attorney. I mean, I manage all of these operations, all these departments, fire, police, elderly, recreation, housing, all of it. So my experience is really not only in the office, but out in the field, talking, asking, reaching out, incorporating the thoughts and ideas of the people into the decisions that we make. And that has been very successful. I want to bring all of that experience to the lieutenant governor's office. I'm ready for that. It's been 10 years, like I said, prior to that, I'm a husband. I'm a dad. I'm a papa. When I told involved, I was PTA president, PTG president, community of schools association of schools president, meaning leading the parent organizations. I've been in a lot of community groups and partnerships. So all of that experience with the community and government and just being a husband, dad, and papa, into the lieutenant governor's office and then really bringing it to a different level. So now we talked before, just at the time of the storm, and I would like for you to tell our audience, if you can remember what we talked about, and you said that because you had been through two hurricanes, you were ready. So tell us what that means. What that means. I was ready. I mean, we were ready. So we've gone through, like I said, two hurricanes. And now we're wearing the hat of mayor and understanding prior to that, wearing different hats as a parks director, you know, I know and understand the total inner workings of how to be ready for natural disasters. And in this particular instance, of course, Kauai was hit with the highest rainfall in the nation, 50 inches of rain in a 24 hour period. And on top of that, it isolated a part of our island. So that's before you as a leader. What do you do? We were prepared. We're already working together with our emergency response teams. We've done numerous trainings. We did preparedness classes and instructional pieces. We know where and what part of our island needs additional support prior to the disaster. Not knowing what kind of disaster. So in this particular case, we're isolated. So immediately, I picked up the phone, made calls to the military base, which is PMRF, made calls to Mr. Robinson, who has a ferry and bars, goes between Kauai and Niihau, and we're able to deploy his barge to help us to get equipment and supplies immediately to the people who are isolated. We have to make do with what we had. That's another thing. You make do with what you have before the real supplies and equipment come. And that's being prepared. Now you mentioned Niihau. Is that part of your Kauai and Niihau? I am the mayor of the county of Kauai and Niihau. Tell us about Niihau. Okay. And then nobody, really, nobody ever talks about Niihau. Well, Niihau is a private island, of course, and Bruce Robinson and the Robinson family. But it's not only that. It's a cultural present. We are the oldest county in the state. Yes. Right? As far as culturally, that's what I feel. A lot of our kupuna, a lot of our ancient chants and everything come from Kauai. Our kumu hula come to Kauai to reconnect. Niihau is a special place. The Niihau language, of course, the culture, and all of it ties into setting the cultural significance for the entire state. So people cannot just go to Niihau, as you know. I've been there numerous times, just keeping the charm and the character and the cultural life there. That's important. We're working on really preserving the Niihau language. And we're doing that. We just finished our general plan update, and we're going to have a version of an entire general plan update, which is a footprint for Kauai and Niihau in the Niihau language. Wonderful. And I formed the Niihau Language Commission to help me to go to now. You're going to have an English version, a university Kahakoa version, and a Niihau version. And the real version. So to me, we're really touching the cultural side and the decisions we make of today have to be tied to the past, which is a culture so our future can flourish. And that's how I've been managing our operations and the disaster. Okay, so I have to come see you to go to Niihau, huh? You've got to come see me. We can talk. I want to see Niihau so badly. And how does it become—why is it a private island? That was long before we were here and so through our monarchy and so with the Robinson family. And they've been very—all the family members, the Kanahelis, and all the family members are living on Kauai and Niihau, so there's this connection there anyway. And so we just go with that, and we've been managing together and Niihau is a beautiful place and a big part of our county, and we continue to support. So now there's so much going on in terms of your rebuilding. Yes. What—tell us what— So the big part, like I said, in different parts of our island, Koloa, it was more a certain part of our community was really flooded, you know, so that's one part. It's gone. Then Keapana or the Kapa'a Anahola, certain parts with areas weren't isolated but of course got devastated by the storm. But the North Shore is the one that, like I said earlier, was totally isolated. So we need to go back in there, do a good job in assessing the roadway, totally wiped out. No way to get back to the North Shore, erosion below the roadway, landslides coming, washing out the roadway, amazing kind of disaster that happened. So we had to regroup, work with the State Department of Transportation, working diligently to secure the funding that we needed to help us. Immediately, got on the phone, got our declaration signed from the Mayor, the Governor signed his declaration, we went into the President of the United States of America for support and we got it, public assistance, where we could actually utilize funds to help us begin the restoration of this area that was totally isolated. And recently, we just got another proclamation signed by the President for Individual Assistance. So now we can take the funds that we have into the homes of the people who lost or got damaged through their homes and sit with them and do an assessment of their properties and they will qualify for support funding as well. It took a lot of time, effort, dedication to get the numbers that was needed but it took that boots on the ground kind of thinking and reaching out in order to qualify for the funds. And then the State Legislature gave us a million dollars and the million dollars is set aside for disaster relief as well. So we have the funding there and Hawaii is such a resilient island, Hawaii is a resilient state, as I say, with all the love and the loha that came from equipment, supplies, fundraisers and all the money and everything came back to quiet. All we had to do was shepherd the gifts to churches and to community groups and organizations and nonprofit entities who manage the funds to get the funds into the families or to the businesses. And to me that's Hawaii. We go through a challenging time, we work together, we support each other, it's not easy but you got to have leadership to understand how to pull that resources together from the federal government to the county, the state county and of course community and the people. And to me that's where we are right now. I'm happy where we're at as far as the recovery. We're not out of the woods yet but we're coming back with some good solid results so we can open up that roadway very soon and provide the support to our families so we're not able to go back home yet. We have to take a break and then we'll be right back and talk some more about, well I want to talk about rural health because that's an issue everywhere except urban Honolulu so we'll be right back. This is Think Tech Hawaii, raising public awareness. I sing this song to you because I think you either are cool or have the potential to be seriously cool. And I want you to come watch my show where I bring in experts who talk all about easy strategies to be healthier, happier, build better relationships and make your life a success. So come sit with the cool kids at Out of the Comfort Zone on Tuesdays at 1. See you then. Aloha. I'm Marcia Joyner and yes this is Cannabis Chronicles and yes we do look different with the Napoli cliffs which is the most beautiful place in the whole world. And visiting today is the mayor of that beautiful, beautiful place, Kauai. And he is also running for Lieutenant Governor at the State of Hawaii. And he brings with him, you're the only candidate with real governmental experience. Administrative yes to manage operations and all of that. And now Kauai, well all of us, these are island nations. And what is this now, the ocean rising and getting warmer and all of these things. Tell us about the effect and what if anything we can do because you deal with this every day. Every day. And yes, thank you for the question. I mean I think we have to be mindful of our environment. The major changes, the storms that came that we just experienced, just over worldwide. But Hawaii is a special place, we're islands and we have to be sure that we manage and take care of ourselves here as well. We entered into Aloha Plus Challenge and there's certain things that I think we've got to be very open and- Aloha Plus Challenge. Which is a challenge all of us mayors got together with the governor and we made a commitment that we would commit to these areas to assure that we are addressing climate change in the future. So the first area was of course clean energy. We transform all of our street lights to LED lighting. This is an example on Kauai, working closely with our island co-op, our island utility company. So all of our street lights have been converted to LED lighting. So that helps great. The second one is local food production. We took 75 acres of land and transformed it into a cultural ag park. We the government opened 75 acres of land to the community. They form a 501c3 non-profit. They are currently managing this entire area as an agricultural park. Grow what you want.  Do it. Take the lead. They are. And they're creating sunshine markets that open fresh fruits and vegetables. So that's a good one right there. The third one is green jobs and green education. We the county working with HLTA brought back into the schools the future farmer of America program, which was eliminated, but we brought it back. So now the kids, our future farmers are learning how to really farm farmers of today with science and technology. So that they get to stay home and they don't go away to college and not come back. You want to keep them home and growing and taking care of our land and really healing the land and at the same time growing what you want to grow. And farming, that's a big part. And the big farms like pineapple and sugar is no longer here. It's more of the smaller ag park kind of thinking that is at the forefront. So I think that's one of the bigger parts that we've done. And then of course the Kaua Inui Kupapa program. We've identified the Moku system on island, which is the land divisions on Kaua Inui. So when you drive along the roadways today, you'll see signage. And each sign will tell you the color, the fish, the plant, and the name of that Moku. So it grew here, didn't grow here. What flowed here, didn't flow here. So we have to be mindful of that. So the whole Kupapa program which lays out the Moku or the land divisions are going into the schools now through an educational component working with the superintendents of schools to teach our keiki about the land divisions on Kaua Inui. I want to take it to the big level. And then the last one of course is transforming the island into walkable, bikeable, complete streets, safe routes to school, lighted crosswalks. It's all about preventive health, taking care of our people before you get sick. So if you make and you create these walkways and connected community, people encouraging people to walk instead of driving a car, that has been an opening vision for our administration. And we're working it. We secured a $17 million tiger grat, which is a transportation grat from the federal government to begin this transformation of this walkable, bikeable kind of thinking. Roundabouts, peanutabouts. We enjoy the outdoors, walking paths, all of it. I think that's, when I grew up, that's kind of like the thinking of old camp setting, walking to church, walking to the little market, walking to school. That's what it was, health and wellness is at the forefront. So I think if we begin to think that we can transform our communities that way, then we can really take care of ourselves and our health before we get sick.  Yeah, we have. You're not out in the, totally out of the woods. I want to make clear that we are working in partnership with Wilcox Hospital and quite Memorial Hospital. All the key agencies, the Kauai Community College, we're all talking at the table together about how to really promote health and wellness and what would be the best way to do it.  And so we've done it for ten years, we just had our last one this past month. So that kind of thinking is all in partnership, not just by ourselves, the county, ah, I have a partnership with the education, Department of Education Superintendent, our Chancellor from Kauai Community College, our CEO from the Medical Health and Health Operator. All of the key leaders we meet and talk story and we help each other out. And that's what I want to bring to the Lieutenant's Governor's Office, the ability to reach out, connect and bring people to the table and then go back into community. I think that's what's in the same. But since we are an island nation, what about now, we talked about farming, what about the ocean, oceanography, the turtles, the fish, all of these things that are part of us. What about that? Do you teach the children about that ocean that preserving the ocean? Is that a part of the DOE or not? Or should be? I think it should be, but I don't know.  There's an indoor classroom and there's an outdoor classroom. I like the outdoor classroom setting too. So we need to encourage that kind of thinking from Malka to Makai. We on Kauai, and I want to take it to the big level, we work closely, we'll get with Hui Makai no Omakana, which is a local organization, and we came up with a fishery assistance program where the entire bay in Hanalei is closed off for restoration of our reefs, restoration and replenishing of our limo kohu, looking at how we manage the fish. So there's no, because we're finding, we've got to do things like I believe together to kind of take a little time out and help the reef and the water and the marine life replenish because it's not happening. So we did that through an organizational way and we designated this part of our island as a subsistence area where we close off for now as far as any kind of fishing, just to have it replenished. Yeah. But it's not the county doing it. The government is the community, but we're supporting the community. And that kind of thinking needs to happen, I think, in different parts of the island as well throughout the state. Well, I was thinking of in school, that ought to oceanography, and all of these things about the ocean should be taught as a curriculum in public schools, not wait until you get to the university. These children, at least my children and my grandchildren, my grandchildren, great-grand, by the time they're three, they know the ocean, they swim, they swim with the turtles. Why is it not curriculum? Why do we pretend like everything has to come from the mainland? Why can't the state develop their own curriculum so that this is a part so we grow? We've got to save that, and only if these children grow into that. Right.  That's why I think the bigger part, educational-wise, in bringing it into the classroom versus the outdoor classroom, is taking that understanding of preservation and understanding of what's happening today. Because of sea level rise, because of the heavy use of sunscreen, and that's a big one, right? Yes. That came out recently. And how to really educate our students that we need to take a time out, like I said, figure out how we can replenish, allow nature to come back, allow our limo to grow, allow our fishes to come back. That kind of thinking, to me, that's what we should be, have foresight with our keiki, that kind of thinking. And then also talk about the bigger picture. Because if not, it's going to continue to fade away, we're going to lose it. So I totally support what you're saying, however we can connect the indoor classroom with the outdoor experience classroom, and connect that to your curriculum piece, like we did with our signage, cool papa, all of that ties into that curriculum piece you're talking about. One last area that affects all of us, and that's tourism. How do we have tourism, which we depend on economically without destroying the environment and without destroying all of the beauty that we call, you know, how do we deal with tourism at a manageable, I'm saying it all wrong, but it has to be managed, rather than just said you all come. Right. How do you do that? Well, let me say this, we're going to that right now, because what happened was we're not allowing anybody into the North Shore only residents. So that is showing that there is way less traffic, way less people visiting the North Shore, but all of that is being done because of this current situation, disaster. So this is the time we're doing a better job of coming up with a solid management plan. It's about a plan, incorporating and finding balance between the resident and the visitor. Right. Instead of eliminating one or the other, how do we work hand in hand? An example would be, how do we alleviate the massive amount of cars that visit the North Shore? We look at a hollow, hollow shuttle that will take people from a certain point before you get down in Hanalei out of their cars into a shuttle that takes them down into the North Shore area or different areas, wherever it is. And we did a pilot program on that and guess what, 51% of the ridership came from the residents, the people wanting to get to work. So we can create this shuttle thinking where people who live there can get on the shuttle to work and home safely. And the visitor can get on the shuttle and see our beautiful island and get back to their car and go, that to me is a balance and what we're going to be thinking about. Just a small example. And if we take it to the bigger picture, that's where the balance should be. The visitor, the resident, the experience, the culture, preservation, all of it has to be hand in hand. If you have one over the other, it's not going to work. I believe that. So the solid plan, community plan, development plan has to be solid and then we set the footprint for the future of our islands. So with the Hawaii Tourism Authority, which is bemith, I don't know why the state is giving them all that money when the hotels ought to be advertising, but nonetheless, as Lieutenant Governor, you can have or would you have the community and the Hawaii Tourism Authority working together? Definitely. We have to. And we've learned it, especially now, what we're experiencing now.  How do we want to better this part of our island? How do we want to keep the charm and character and the beautiful setting of our island, but at the same time, open it up to people to come visit and enjoy? And then they can go, oh, and come back again. So that's what I'm saying in Hawaii, to encourage that and preserve the charm, the character, and the culture of our islands. And that to me is the thinking as leaders. And you can only do that by being able to pull the right people in and discuss this situation. And I'm ready to do that as the next Lieutenant Governor. Okay. Now I want you to tell everybody why you should be elected as the next Lieutenant Governor. My name is Bernard Covalho. I've been the Mayor of Kauai for ten years. I have the administrative experience. I understand how to pull resources together. I understand how to reach out into the community because that's what I do every day. I surround myself with good people with good hearts and souls. I have to manage this entire cabinet with different organizations and all of that. And the Lieutenant Governor's office is a place of the people. It's a place where people should come and ask questions and be served.  And that is action with aloha into the Lieutenant Governor's office. Working closely with the governor, whoever is governor, I can work with the governor. But it's about the people. And so to me, that's what I offer you, the people. And my experience, my time as mayor, my time as a dad and husband and a father, all of it ties in, but more importantly, about the people. Ask the people what they want first before we move. Take care of the emotional things before, upfront, and everything will flow. And that's what I bring to the Lieutenant Governor's office. So when you get into the voting booth on August 11, think big. Aloha. Aloha. Thank you so much. It's always a pleasure having you with us. And we will see you August 11. Yeah. Thank you. Mahalo. Thank you. Aloha.


So we are trying to map this EEG into music. We have this recording that's a seizure isn't it? That's a seizure, that's after seizure, seizure onset. Those work. They are available on the slide. You can go check out by on keo.com to check out previous versions of this tool. Now we try to add a feature which will play music when you scroll through this file. The current conversion does not work.  So we're extracting the different frequency bands. Yet this function would not work because we don't have spectrums in the data. Check what we are getting this here. No, those should be working okay. Now let's check if this function actually are returning anything. I think it does not. So we're logging in a console and then it's an object with the separate components. How do we correct this? Wasn't 110. Okay, we have the data. So that's one is working. Then nots to play. Okay, now we have undefined all notes. Notes to play, undefined, try both. What we're trying to do is normalize the power. I mean, power is zero. Okay, now I understand that that normalization doesn't work. Power input is working okay. EEG data for music that works. And it's to control of five. So we have the power input. It's that equation. So the input is okay. I mean power. It's roughly 20 and 400. Then we normalize it to zero and one. Just above it, not exceed the expected range. But what if they do instead of 400? Is there something wrong with this function? Yeah, we have notes to play that's working. We're having an error with the audio context. When we interact with the page, so that should be fine. Notes to play. Then we're having the error. She'll script 122. Error fetching EEG data, what? New help us here. Should be a simple fix. Not for me, for the bot. There's something with the volume. Play frequency function. Bullet frequency, what? So the notes, the four notes should have been translated into one frequency. Play as a chord. The duration is okay. We have the notes, the musical notes. But the volume and playing frequency are undefined. Because we're extracting features from EEG. So we can turn it into music. Features will be specific to the application. This particular data has seizures in it. So then your feature extraction should be affected by what the data actually contains. But here we're also doing feature extraction. Frequency components, we're doing feature extraction in terms of power in each frequency band. By the way, we actually don't need the whole spectrum. We're extracting those four band power and then turning it into musical notes somehow. So the mapping mechanism. So currently we do get four notes for each frequency band based on some sort of basic linear chord version. By the way, most of the stuff is done in the JavaScript front end. That's so that my server is not being overloaded. So you use your own electricity. This bar chaos.com is free at the moment. But that means in this case, you're trying to do most of the processing on your end, on the user end. Just search for frequencies quickly. Right, supply frequency. Why do I need to map it myself, surely? It's just a function that can do it. Looking into it in a sec is another might as well, because I'm getting a bit... Yeah, we do like functions like that. Do like basic mathematical equations. And yeah, I've seen this before. I would assume it is correct. We will know in a second. That's what I was saying about any other experiments as well. In this case, whatever I do, when people complain online that the GPT-4, whatever, generating false results, in this case, we can actually test everything it does. We will know in a second if it's working or not. It sounds like we do need an extra function. Yeah, we can use some sort of API in our JavaScript library, but we do want to do as much as possible as sales. Okay, yeah, obviously every line in here, it's a potential for error. Unlike this speed, set reducing an octave by one. Yeah, if anyone out there knows how music works, really use some advice. But for now, just rely on GPT and AI, keep piling up on functions. Now, the other thing I don't understand is the node is an input. If node is an input of node to frequency function, y is constant called nodes is required. If we go with this function, it's not being used still. Over here, if node is an input, we should just use that equation. We have the node to frequency. Oh yeah, that's the current one. Yeah, function play frequency, yes. We have the nodes to play, yes. It's logging into console, nodes to play. Is this correct? I don't know. This example usage probably won't work. It is an error. It's common this error usage. Yeah, I can have those. Okay, sorry for that. That was loud. That was really loud, but at least it works. So that's also a wicked combination. Let's reduce the volume. Make duration 0.5, 0.1. Okay, so now back to the question of would we need a neural network to actually make this sound better? The answer is I don't know. Still getting an error. HHS 130, second and valid node name, is it? No. Airfetching HG data, probably with the data. Yeah, we have to check all this stuff. Let's try to play these four nodes. I think some of them might not be working. I don't think this one is actually working. Yeah, because we're not playing nodes. We're not playing frequencies. Search for volume. Half volume. So let's check when there's no seeds. It's playing C3. These nodes are F3, B3, E4. It's just always playing the same nodes. Yeah, should turn off the whole spectrum by default. C3. Yes, let's play these four frequencies combined. Yeah, it seems to always play the same frequencies. Copy this into the log text while it's always playing the same frequencies. Okay, we'll just continue next time. Bye.


Hello students, let's solve the following question. It says find the derivative of the following function. The given function is x squared into cos pi by 4 upon sin x. To find the derivative of this function, we'll be using quotient rule. It is d by dx of function u by v is given by v into du by dx minus u into dv by dx upon v square. This will be the key idea. Let us now move on to the solution. We have to find the derivative of x squared into cos pi by 4 upon sin x. Now here cos pi by 4 is a constant. So we can take it out of the derivative sin So it becomes cos pi by 4 into d by dx of x square upon sin x. Now we'll use the quotient rule to obtain the derivative of this function here. u is x squared and v is sin x. So this becomes cos pi by 4 into v that is sin x into d by dx of u which is x square minus u that is x square into d by dx of v that is sin x upon v square that is sin square x. And this is equal to cos pi by 4 into sin x. And the derivative of x square is 2x as we know that derivative of x to the power n is n into x to the power n minus 1. Here n is 2. So this becomes 2 into x to the power 2 minus 1 that is 2x minus x square into derivative of sin x and the derivative of sin x is cos x upon sin square x. Again, this is equal to cos pi by 4 into 2x sin x minus x square cos x upon sin square x. Now taking x common from these two terms we have x into cos pi by 4 2 sin x minus x cos x upon sin square x. So the derivative of the given function is x into cos pi by 4 into 2 sin x minus x cos x upon sin square x. And this completes the question. Bye for now. Take care. Have a good day.


So about five or six days ago I made a video in which I spoke about both Esperanto and Tokipana and in that video I stated that I now had an interest in learning Tokipana specifically because I found some really cool stuff that was made for Tokipana and that made me explore the community a little bit more which in turn made me realize that the community was quite sizable now and therefore I had more of an interest in it because I need to give you guys a little bit of context about my brain and how it operates so I love really random communities like small communities or random communities but I don't like them being too small so that was a problem when I first discovered Tokipana many many years ago so I think like six plus years ago when I first discovered it I learned a tiny bit but the community quite well the community at that time was quite small and it was a bit too small for my liking so I didn't really stick around to see like what it would grow into or if it even continued to grow or whatnot because I'm the type of person who likes to engage in the community and also partake in a culture now I like to get into things when they're early and innovative but not too early I don't know if that's a good way of explaining it but anyway recently when I took a look at Tokipana it's now that lots of videos there's music there's lots of texts there's published books there's a lot more stuff for me to actually engage in and to put my claws into and kind of like nibble away at and I don't know why I'm making velociraptor hands right now but that's basically how my brain operates anyway I made that video and unbeknownst to me at the time lots of Tokipana speakers started leaving comments on it I don't know if that's because secretly hiding in my comment section is just a bunch of Tokipana speakers just waiting for their moment to pounce or if someone just shared it with the Tokipana community at large and then that brought some more interest over to my channel anyway I do want to say that that was very good that you guys all did that because that drove my interest in turn in fact if you have a look at the video you can see there is a ton of comments either in Tokipana or in English or even an Esperanto about Tokipana and basically saying you know they're really happy and excited to see that I've come to come learn this language and at the time for me Tokipana was one of my many languages that I was learning or planning to learn and it didn't take up too much my brain space but seeing all these like awesome comments specifically from like people's videos like this guy right here Jan Telakoman whose videos I was starting to watch made me like way more engaged in like this whole idea of learning this language so you guys are very smart about that if anyone shows any interest just like I don't know like huddle on top of them and then they will be like I am converted it's like a zombie like thing where you'll run on top of the next thing you know there's a new Tokipana zombie he's like coming out I don't know where that's leading I'm sorry guys but anyway it's been like six or so days since I declared my intention to learn this language and at the time I had a very very very small understanding of some Tokipana primarily via my ability to speak Esperanto because Esperanto has had an influence on Tokipana but you're probably more curious to know where I'm at actually Tokipana wise so I figured in this video I would speak a little bit of Tokipana about my history with the language now I do want to forewarn you I am not fluent I've probably done a cumulative four hours of study of Tokipana in the last six days or so which doesn't sound like much but it's actually quite a bit when you're working full-time studying multiple languages and you have a part-time job so I have dedicated some of my brain time to learning this language and I'm now going to attempt to go into the recesses of my brain and pull out the necessary words to tell you a really cut down summary of what I literally just said in English so before we get started I probably need a drink okay let's do this Yanpana En Mi Li Toki Mi Mute Toki Eio Mute Yanpana Mi Li Toki Eni Ivo Dia Mi Wille Eni Sina Kamasone E Tokipana Mi Toki Insa Eni Tokipana Tokipana Li Seme Mi Toki E Yanpana Mi Tokipana Li Seme Yanpana Mi Li Li Toki Eni Tokipana Li Toki Li Li Li Li Toki Wawa Li Toki Suli Mi Wille Eni Ni Kamasone E Tokipana Taso Tempo Nila Mi Yo Ala E Tempo Mute Mi Toki E Ni Tawa Yanpana Yanpana Mi Ni Li Pillen Anpa Li Pillen Anpa Taso Suno Luka Pinnila Mi Wille Luken E Sitalen Tawa Mute Mi Luken E Sitalen Tawa Ni Mi Luken E Sitalen Tawa Ni Mi Luken E Sitalen Tawa Musi Pi Toki Mi Luken E Sitalen Tawa Yani Li Toki E Toki Li Toki E Toki Mute Li Toki E Tokipana Mi Open Toki Insa Eni Tokipana Yanpana Mi Li Wille E Ni Mi Kamasone E Tokipana Mi Mi Alasa E Tokipana Kepeken Ilomi Ah Tokipana Oh Tokipana Li Suli Tokipana Yo Yanmute Kulupu Tokipana Li Suli Oh Tokipana Li Yo E Sitalen Tawa Li Yo E Yanmute Tempo Nila Mi Wille Toki E Mi Wille Sonakama E Tokipana Okay guys, I hope that wasn't too difficult for you to understand and I hope that I didn't utterly destroy the language. But that was my first attempt at speaking Tokipana beyond just like some basic phrases to myself. Like I basically been practicing a little bit by just like yelling at my cat. My cat, I feel sorry for my cats because they hear me yelling at them in English, Esparando, Chinese, German. Now Tokipana, they must be the most confused animals in the world. But anyway, that's where I'm at. I wanted to show you also a little bit what I've done with my Anki decks. So if you take a look at my screen right here, I've got two little Anki decks I've got here. So I've got this first one where I basically got, is that the right deck? Let me check. Yes, so this one is just like a whole heap of closed cards where I just do the fill in. And if you have a look at what I'm actually sentence mind here, I have sentence mind the bejesus out of, um, oh God. Oh God, I forgot his name. What's his name? Yan Telecoman. I've been watching this guy's video. This is literally how I've only been learning Tokipana. I've just been watching his videos and reading your comments. So I've been sentence minding him. So I'm probably going to sound very like him when I get to like a reasonable level. Anyway, and then I've also got over here, this other deck, which is basically just random words in, oh, there you go. I even put his name into the deck and I totally forgot his name. I'm so sorry. But this is where I've got like small little phrases that are audio, just so I can listen to them over and over again, because specifically with this word la, I don't know why, but my brain doesn't wrap its head around easily around it. But when I stack it together with like all these time ones, I see what it does here. Like I know in sentences, it means if blah, blah, blah, when blah, blah, blah, but it could also mean, you know, at this time or at this place, then blah, blah. And I seen the dictionary reference for it. So if you look at like la on here, where is it? Right here. They're like a particle between context, phrase and main sentence. See, to give you guys a little bit of information about myself, I don't really know much about grammar. Like I literally learned everything I know about grammar by learning Esperanto. And everything else I've learned about languages, I kind of just learned in context. So when I see something like this context, phrase and main sentence, I got a basic idea, but it doesn't mean anything to me until I start seeing like a whole heap of examples. And then I'm like, oh, now I get it. But that is where I am at Tokipona wise. Now to let you guys know what the plan is long term. So I make an Esperanto video every Sunday. And I'm thinking every Thursday I'm going to make a video either in English about Tokipona or in Tokipona about something. Now the goal is that eventually I will get to vlogging like I do in Esperanto and telling funny stories in Esperanto in Tokipona. But obviously that's going to take a while because my Tokipona at this stage is shocking. That in fact is my goal with many of my languages. My goal is to eventually also get to that stage with Chinese. So yeah, that's pretty much the plan. If you guys like this video, I hope you've liked it. That was like the worst way to stop a video, whatever. Bye.