All right, well, I think it's about time to begin. Thanks, everybody, for coming. My name is Joel Dice. This is Joe. We're here to talk to you about Wazzy Cloud Core, which is a set of specifications, a set of worlds, if you will, to use the wit terminology to allow applications to target a native cloud environment. And if you attended Brendan Burns keynote this morning, you can probably heard some of the rationale for that. But the basic idea here is cloud applications don't necessarily want to deal with traditional operating system sorts of interfaces, such as low-level file system calls and environment variables and so on. Instead, they want to deal with high-level concepts, such as key value stores, messaging cues, and HTTP, and so on. So we're going to use the SPIN open source project as a showcase for an implementation of Wazzy Cloud Core and talk a bit about the motivation behind it, as well as the potential for making this a portable platform that could be run on a variety of infrastructure, cloud providers, service providers, and so on. So like I said, my name is Joel. I'm not really on social media, so you can just email me. Or you could probably catch me on the Byte Code Alliance Zulip, if you have a quick question. Always happy to chat. I am the principal engineer, a principal engineer at Fermion. Been there for about a year. Primarily, my focus has been working on improving programming language support, making WebAssembly more truly polyglot, and also working on a lot of other things, trying to help get Wazzy Preview to shipped, and then also help with this cloud core standard. I've implemented parts of Wazzy Messaging and Wazzy HTTP. And the good news is it was pretty easy to implement. And some of my hobbies are bike packing, which if you don't know what that is, it's like backpacking, except there's more crashes. Actually, that's what some of this little scar is there. And then wrestling with my two boys, which are very cute and also kind of rough when you get in the ring with them. And here's Joe. My name is Joe. Hey, everyone. Self-engineer Microsoft. And Microsoft is pretty huge. Working under Azure Container Upstream. And I work on various open source projects under Byte Code Alliance in CNCF Container D, and others. I'm a programming language enthusiastic. I really love the functional programming paradigm that exists in some programming languages like Haskell and Rust. Besides work, I love playing video games, love skiing with friends, and lifting weights against gravity. All right, today's talk is going to split into three parts. First, I'm going to talk about what is Wazzy Cloud Core and why. And then I'll hand off to Joe to talk about spin. And in the end, if you still have time, we'll do a demo of spin-running Wazzy Cloud Core capabilities. To motivate things, I want to first talk about monolithic applications. It's a pretty popular paradigm of programming models that Google and MATA are still using today. One characteristic of monolithic applications are they are typically developed in a single runtime in a single family of languages. An example would be Java Virtual Machine and applications written in Java. So applications need a lot of common capabilities to do state management, networking, error handling, logging, telemetry, and for detection and recovery from thoughts. And connecting to external services. One consequence of application developing in a single runtime is that they have to use those libraries and SDKs from this single language ecosystem. And the result of that is those libraries are tightly integrated with the core business logic of the applications. Moving on to more cloud-native ecosystem, and there are some tendencies that these two application features are moving to the platform level. So nowadays we have a strong sense of separation of application developers and platform engineers. A lot of the application ops side, like packaging, deployment, health check, for detection and recovery, are being automated by orchestrators like Kubernetes and containers. Applications are required to run on different platforms, OSs and CPU architectures. If you asked me like five or six years ago, Linux containers are mostly compiled to running on x86, but today when we package application to containers, we want to build them in this cross-platform manner. There is also a stronger security requirement for cloud-native applications. So what can Wazen provide in this sense? Well, if you went to Luke Wagner's talk yesterday of what is component Y, he kind of summarized three characteristics or advantage of Wazen to provide to accelerate this cloud-native tendencies. One is language neutrality. You can write your services in whatever language that that can compile to Wazen. Second is sandbox support, so you can securely run your applications. And three is linkable modules. That means you can link to modules and to allow them to communicate with each other. Well, we'll probably ask, what about containers? Well, containers give you language neutrality. You can package your application in whatever language into a container and deploy to the production environment. Containers also use Linux kernel features like C-groups and Secum to give you sandbox support. Containers can also be composed together like Kubernetes. Well, I will argue that containers Kubernetes do a great job on the application lifecycle management and automating a lot of operations stuff like scaling, deployment, networking, for detection recovery and much more. But inside of containers, you still write your application that use a language specific SDKs or libraries to do data plan operations. For example, accessing to a key value store like Redis or listening to events from Apache Kafka. So I'd like to shift focus to, like to go back to the year of 2004 and there is a paper coming from Google. It's called MapReduce. MapReduce is a very classic and famous programming model that allow you to do large data processing on a cluster of hundreds or thousands of machines. What I found interesting or fascinating about MapReduce is that it gave user two simple APIs, a map function and a reduced function to implement. Once you implement those two simple functions, it spawns a huge distributed systems to process a lot of data in Google to just process large data. So in this particular example, I have a map function that takes a document name and document contents and scan each word in that document that emit one for that word. In the reduced function, it takes a word and all of those emitted ones as a list of values or iterator of values and sum them up. So that give you the number of occurrences of the word in all of the documents. So this is a distributed WordCon program. What if we can abstract common distributed application capabilities into interfaces that are as simple as MapReduce and as powerful too? Well, first we need to define common distributed application capability. What do you mean by common? I will argue common means we can satisfy 80% of application needs and from the experience of building applications, cloud native applications. We need things like accessing to key value stores for durability, exchanging events through messaging brokers, uploading files to blob storage, doing inbound and outbound HTTP requests, listen to a key change in front-end configurations and some locking mechanism too for critical paths of your transactions and maybe more. So let's dive into one thing in that list of common capabilities. I'd like to talk more about key value store. We want to find MapReduce APIs for key value store but there are so many key value store out there and each one of them has their own flavor or unique sets of features. For example, memcashd is commonly used as a caching layer and we have cloud providers like Azure Cosmos DB and Amazon Dynamo DB. We have no SQL databases like MongoDB and Cassandra. So in order to find an API set that works for lots of the key value stores, we need to find the minimum set of APIs that every single key value store implements and at the same time it's going to be useful for application developers. So I believe a simple interface like rewrite that give you get, set, delete and exist functions is pretty useful. You can use those functions to access your key value store, retrieve a value given a key or set a key value pair and this interface can be implemented by all of those key value stores mentioned before and that gave us a decoupled business logic from platform concerns because now key value stores are provided by the platform. It's out of the concern of your application developers doing implementing core business logic. So that makes your business logic more portable, simpler, has less dependencies and more modular. Well, you may say this idea is not new. We have sidecar containers and there are popular runtime framework dapper is already doing this. In sidecar container, we have the business logic is doing a request into the sidecar container and the sidecar container is going to take care of the job to access to a key value store. In this case, we can link into Weizen's linkable modules to provide better performance. Instead of doing a full stack networking call from the business logic into a sidecar container, what we can do is a cheap function call from your business logic that compiled to Weizen and which composed or linked to Weizen key value interface that's provided by a gas component or provided by the host platform. All right, so we think this idea is pretty useful and we go through each, every other capabilities that I listed before and we standardize all of the capabilities like Weizen key value, Weizen blob storage, Weizen messaging, SQL under the WebAssembly organization W3C. And then we think we can bundle all of them together to create a cloud core world that targets serverless functions and so we come up with this proposal on the Weizen and you can check out the proposal in this QR code. Okay, what's the tradeoff here? What's the cost when you use Weizen cloud core? I think there is a fundamental tradeoff between portability and feature richness. If I draw a diagram where the Y axis is portability the higher you go, the more portable application is and access being the feature richness. There might be a curve like this and I think if we draw dots on that curve there is a life-side dot called YZHP proxy. It's a very simple interface that allows you to handle incoming and album HP requests. So application targeting this world is extremely portable. It can port from your local environment to cloud environment to edge environment at the cost of its minimum API set so you don't get too many features. Well, on the other side, if you use a specific provider like AWS or Azure you get all the powerful features from the cloud that provides but you can't port it from one cloud to another. But I think there is a sweet spot in the middle. Why is it called core that gives you 80% of the features that you need in your application while at the same time being portable you can port from one cloud to the other? And this idea, as I said, is not new. Dapper is standardizing the API for common district applications in a special interest group called SIG API. And we are happy to announce that we are working with the Dapper team to standardize the APIs in the community so that we can unify the APIs. At the same time, we can do interoperate between YZ Cloud Core and the Dapper. We are also working with external implementers to push in the proposal forward. And the requirement of phase two, we need to work with implementers to prototype and we find the design. And then eventually when we reach the stable version of YZ Cloud Core we need at least two production ready external implementers. Early this year at YZ and IO, my colleague Dan and Bailey from Cosmonic did a talk about CNC of YZ Cloud with implementing YZ Cloud Core capabilities. In the last few months, I'm working with the Fermion team to bring YZ Cloud Core capabilities into Spring. So now I'm going to hand it off to Joe to talk more about Sting. Thank you, Joe. Yeah, so I'd like to talk a little bit about what Spin is, why it exists, and how it's relevant to YZ Cloud Core. The first thing I'll say is that it's in a nutshell, it's a tool for building and running event-driven microservices. So think functions as a service, serverless types of workloads, and not just handle events, but essentially use a fairly rich set of functionalities such as key value stores, SQL, messaging, PubSub, that sort of thing. And so as you might imagine, YZ Cloud Core is of great interest to us. It's built on Wazen Time, which has a really interesting set of features for optimizing for low startup latency and quick switching between multi-tenant workloads. It's entirely open source, it's got an open process, we use Spin improvement proposals from the community and from Fermion to move the project forward. So it's not just your typical corporate throw code over the wall type of thing, it's a true community. And it's also both internally modular in the sense that you can plug host components in as desired and extensible via plugins, which can be either native written in any language or written in WebAssembly itself. So why would we have chosen WebAssembly to run a service like this? Well, it's a variety of reasons and it turns out that a lot of the reasons why WebAssembly is such a good fit for a web browser also make a good fit for a multi-tenant cloud scenario. The first, of course, is security. Each request that comes in to Spin is handled by its own instance, which is isolated from all other concurrent or prior or subsequent requests. And not only that, with the component model support that was introduced in Spin 1.1 experimentally, we now have the per component, subcomponent sandboxing that Luke talked about yesterday. And so the idea there is that if you have sensitive information, you can ensure that only a subset of your code actually has access to that information and third party dependencies are verifiably not able to access it. Another big reason, again, inspired by the browser use case is portability. It's platform agnostic, we talk about that to death but it's really important. It also means the development experience is a lot smoother, especially if you're not on a Linux platform on your laptop or what have you. There's no VM to manage, there's no overhead in running a WebAssembly workload, at least not at the scale of a virtual machine running a whole other kernel. And then performance is a big deal, being able to pre-initialize these modules and or components results in sub millisecond startup times. And I think there's a relationship between these two things, portability and performance. Hypothetically, you could write a state snapshotting tool for a native process, say a Linux process running on X86. It would take a lot of work, you could do it. And then it would only work on Linux on X86 and then you'd have to do it again for Windows on X86 and again for Mac on ARM and so on and so forth. And none of the products of these snapshots would be runnable on other platforms. And so eventually you'd probably throw up your hands and say it's not worth it. Whereas with WebAssembly, literally I did implemented one of these pre-initializers in an afternoon. Wasn't that difficult. So performance, big deal, portability. And then finally related to performance cost efficiency. One of our big theses at Fermion is that we can deliver serverless computing features at lower cost through, and that tends to be a result of this quick startup and tear down experience that you have with Wasm Time. And on the next slide I'll kind of go into what I mean by this. And the analogy I sometimes use here is a utility company that's providing electricity to customers. If you had a utility company that only had a handful of customers, they would have a really hard time delivering power efficiently because the load would be so variable. As soon as customer A turns on, there are conditioning, suddenly you've doubled the amount of load and spinning up a steam turbine is not what you want to do frequently. And so having a small number of customers would make it really hard to both handle the peak load but also minimize the gap between that and the average load. And that's kind of what we see here illustrated. The dashed line at the bottom or near the, in the middle there is the average load, but you see it's a big gap between that and the peak load when all the peaks of these resource usage is kind of correspond. That's in contrast when if you increase the number of tenants, just even add in a couple more tenants here, you start to see that gap close. And that's really important for ensuring that you are providing the amount of capacity that's appropriate to the workload. The smaller that gap is and that gap indeed will, assuming you have a lot of uncorrelated diverse workloads, will continue to shrink. And thus you're utilizing the resources, your hardware, your electricity, et cetera, more efficiently than you did in the less multi-tenant scenario. And then maybe the question, or this is an obvious question to people, but why Wazzy Cloud Core and Spin? Well, like I said, Spin already has been providing from day one these elements of functionality, but at the time there wasn't, at least in the wasm world, a standard for expressing these things. And so you tended to have to, you spin to target Spin, but now the vision is that you can use Spin or another tool to target Spin or another tool that provides these same interfaces. And then just a few more things about Spin, the language support, this is something I'm passionate about. I'll be given a talk about Python later today. We fully support Rust and Go. We have pretty mature, but still technically experimental support for TypeScript, JavaScript, Python and .NET. We're also on the bleeding edge of developments for the component model. The next generation Python support is what I'll be talking about later. Guy's work on JCo and Commodatize.js is what we're hoping to base the next generation Spin JavaScript SDK on. And then I've also talked to a few of you about the future of the JVM family of languages on WebAssembly. That one's still a little bit more up in the air. I gave a talk last year at Wasm Day. We can talk more about that later if you want to, but there's a lot of dynamics going on there. And then unofficially, people have written Spin apps in a variety of languages, both obscure and popular, including Swift, ZIG, Haskell, Idris, what have you. Anything that can target WebAssembly potentially could run on Spin, depending on how much work you want to put into it. And then hopefully some of those SDKs will graduate to official status. And then finally, Spin hosting options. WebAssembly, the big tagline is it scales to zero and it can scale way up as well. So you can run it on Kubernetes. There's a variety of options. There's Container Dshim. There's a K-Wasm, AKS has built-in support for it. You could run it, bring your own orchestrator, whether it's distributed or local, like No Matter System D.  So you choose your own adventure there. And then finally, if you don't want to mess with platform engineering at all, at any scale, you can run it on Permion Cloud. And then I mentioned that we really feel that Wazzy Cloud Core is a great fit and a natural fit for Spin. We've actually supported the component model and thus Wazzy Preview 2, things like file system access and so on. Since Spin 1.1, I say support because it's unstable. You have to make sure the versions line up of all your tools. Once it releases, we will make a Spin release that actually is stable. And we've done some experimental work that we're gonna demo here today, implementing Wazzy HTTP key value and messaging and wrapping all that up into a nice little web crawler demo. And then all this stuff exists in a fork right now because it's just, everything's changing so quickly, but as it stabilizes, we will merge it into upstream Spin. This is my last slide. The last thing I wanna mention is the state of asynchronous Wazzy. This was alluded to in a few different presentations, including Luke's yesterday, which is that the state of Wazzy, asynchronous and concurrent IO is not where we want it to be, but it's actually surprisingly straightforward for some languages. Any language that has languages that are based on essentially stackless co-routines that use this async await syntax with a little bit of glue code, you can create a very idiomatic experience even with Wazzy preview one, certainly Wazzy preview two. It's gonna get even better with preview three, but I don't wanna scare people off and think they can't do concurrent IO. We'll show you, it can be done, it can be idiomatic, but preview three will make it composable. And then for languages that are more focused on a stackful co-routine model, such as GoRoutines, the new Java fibers, it's a little bit more awkward. You have to use this in-script in a syncify transformation. Again, that should be eliminated and you'll have fully idiomatic native support in preview three. And with that, I'll hand it back to Joe. All right, it's time to see a demo. If you want to see the source code, I have a QR code here. Let me switch to here. So the demo we did with Spin and Wazzy Cloud Core is a web crawler. If you don't know what web crawler is, it's a crown job that kicks in when you give an URL and they fetch the HTML from the URL and find all the other URLs in that HTML and then recursely going to fetch, crawl the other website that can be reached from the single source you provided. All right, I'm going to make this. Is this good enough, folks? All right, so the web crawler application is targeting a crawler world. In this crawler world, we are implementing a message producers and that allow you to send messages to a broker. We are importing outgoing handler, which allow you to do outbound HP requests. We are importing Wazzy key value rewrite interface. I just showed you in the previous slides, it has get, set, delete, and exist functions. All of those imports are, well, where are they implemented? They are implementing the host, where in this case is Spin. So we implemented Spin in a branch that has Wazzy messaging, key value, and HP. This application is exporting a messaging guest which handles a event or kind of like a subscriber and export a incoming HP handler. So whenever there is a request comes in, the handler module is going to be filed up. So I want to first run this, this is breaking down into kind of two application, two services. One is called a publisher and the other one is called a subscriber. The publisher is taking Redis address and works as a HTTP server. So it's using the, it's implementing the HP inbound HP request. So now it's serving on the local host. The subscriber on the other hand is implementing Wazzy messaging handler. So it's also using a Redis address to listen to that Redis stream. So now both applications are running. I'm going to do a curl. So this curl is going to hit this local endpoint of crawl path and sending the original url, fermion.com. And what happened is the publisher is receiving this HTTP request and send a message into the Redis pop-up. So it's publishing message. And the subscriber is subscribing to that stream. So you got a message, you're getting fermion.com as the first url and then try to fetch the HTML and then find all the links from that HTML. And then it's going to recursively publishing events to Redis and receiving those events. So that's why you're seeing now I got 32 messages. I'm assuming those are 32 urls at fermion.com. And still going. I want to quickly mention that the entire applications are written in Python. Although I know people love Rust, to be able to write application in Python componentize with componentizepy is just awesome experience. I want to quickly show you the publisher code. All you need to implement is a handle function. You wrap that into a class that inherits a incoming handler class, which is automatically generated. So this is the binding generated from componentizepy. And now the handler function taking a request or a resource and try to return a response. The subscriber on the other hand is implementing a messaging guest. So it also uses componentizepy's generated bindings to implement to inherit that class and try to implement a messaging handler. And the messaging handler you may guess is going to fetch the url using allbound HTTP. At the same time, it's also using YZ key value to save those images we get from the url into a red store. So you can see here we're opening a bucket and then we are going to set the url as the key and the content of that url as a value into the key value store. In this code, there is no specific provider. It's just key value interface. But when we run it in Spring, it knows what kind of providers I'll be talking about, maybe through a configuration file. All right, that's the demo. And thank you so much. Any questions? The difference as I see this is that if it wasn't for providers, they run on, they run anywhere, so they can run to the file. So it requires them on the same nodes or whatever, or those as a business code? No, they shouldn't be required. I mean, speaking of Fermion Cloud as one implementation, I mean, you could rebuild something like Fermion Cloud, but that's the one I'm most familiar with. No, any given application is generally on at least two nodes, if not more. And we're actually working on geographic distribution and smart routing that way, more of an edge approach. But yes, the idea is that part of the appeal, of course, of serverless types of computing is that the state lives in the key value store, et cetera, and so having the same app concurrently deployed to a variety of nodes is the intention. So I showed the interface for YZ key value, and if the business logic is targeting YZ Cloud Core, it can use the key value rewrite interface as a library. So where is the library from? It's being generated by two chains like Web Engine. And so when it's tried to call a gap in set function, it's actually making a function call in the module. Yes, and then that makes a, if it's a Redis backed key value get, say, then that would cause a network, you know, using the Redis protocol, a network request to the Redis server. Yes. Correct. Right. Great question. Yeah, the vision is that eventually these popular HTTP client libraries and any socket libraries would be just as we expect that socket libraries would be usually built in the standard library of your programming language of choice would be implemented in terms of wazzy sockets. Likewise, HTTP libraries, we'd ideally like to see them ported to wazzy HTTP and be using that instead of sockets. Yeah, correct. Yeah, it comes down to what kind of host you're trying to target is the host kind of more low level and it wants to provide you sockets and not provide you HTTP, in which case, yes, you'd want to, but you had a component that wanted to speak HTTP, then that's where Luke's kind of style of virtualization would come in where you'd have an HTTP to sockets adapter, essentially, that would be inserted between your application component and your host, if that makes sense. And I want to follow up very quickly. At Microsoft, we develop a runtime called slide and slide is also targeting, implementing the host side of wazzy cloud core and we have AWS DynamoDB and AWS S3 targeting wazzy key value. So that's more like a directed approach. The host is using AWS SDKs to talk to AWS services that implements the host side of wazzy key value, but those are transparent from the guest side. Any more questions? Thanks everybody. Thanks. Thank you.


Hi, I'm Peter Burris, and welcome to another CUBE conversation. We are here in our Palo Alto studios with Chenxi Wang. Thank you Peter. Chenxi is the founder and general partner of Rain Capital and an old colleague. Chenxi, you've been around for a long time. We're very happy to have you here in theCUBE. Thank you for having me. At least in my opinion, one of the leading thinkers in security, what's happening in IT, data security, digital business security. We were colleagues at Forrester many years ago. What are you doing now? Well, I'm doing this new fund. I just started Rain Capital. It's an early stage venture fund focusing on cyber security innovation. So very excited about that. And very specific. Yeah, cyber security and AI as well, but the core focus is cyber security. So let's talk about what that actually means because there's a lot of new practices, new groups within IT that are being spawned as a consequence of this need for more AI agile DevOps. One of the groups or one of the practices or expertise centers that's especially underrepresented in the security world, somewhat surprisingly is DevOps. What do we need to do to bring more security into DevOps? Right, that's a really good question. And that's one of the areas that I've been focusing on in the last two, three years is looking at the impact of DevOps practices to IT, including security. And it's a huge impact because initially or originally what we have is security is a practice that is gatekeeper. So you got applications being developed and then you test them and then you go through security tests at the end and before you could deploy it. DevOps practices disrupt all of that. What DevOps says is, I'm a developer, I can deploy my application directly onto a production server without going through all those gates because business agility demands it, right? Once you have developers or testers touching your production servers directly, some of the old security practices go away, right? You cannot do that anymore because too heavy handed. There's also the notion of portability. So today it's very common for companies to want to move their workloads from the internal data center to AWS or maybe next month I want to move to Google Cloud or Azure and I don't want to go through all the testing and pre-implementation practices, I want to do it right away. And the portability also disrupts existing security practices, right? So if your security policy depends on you instrumenting the server to put some kind of module on there, tomorrow the server's not there anymore, right? So what do you do? So engender is a whole slew of issues and also is a catalyst for innovation. So that's why I'm very, very excited about that. So when you talk to customers, users, because I know you still have a lot of relationships in the industry and I'm sure that's going to be one of the distinctions that you bring to bear when you think about what rain capital does, what are say the three things that you tell, I mean you've already mentioned you got to ensure that the practices are in place, that portability is at least made more obvious and that you don't bind security down to a particular device because that device may not be there. That's three, what are some of the kind of organizational and institutional things that dev ops folks have to do to make sure that everybody gets the security profile that they need. Right, so what we're seeing in terms of organizationally or culturally, the change is that in a dev ops led organization, the boundaries are going away, right? So some of the companies that I'm seeing cloud native to start with, they may not have an ops team, right? What they do is that IT, their infrastructure team is embedded with the applications team. It breathes the application demand and knowing what the application wants to do and then works with the developers to establish policies and deployment practices as opposed to being arms length from the developers which creates all kinds of tension. So it's an organizational shift as well and mindset shift, right? So the mindset shift is that you're no longer somebody who enforces policies, you actually enable business versus the policy enforcer and it's easy to say, but it actually requires a very deep shift in thinking. So I got another question from security and then we'll move to something else really quickly. As IT organizations or as businesses source their IT capabilities more from public cloud or service providers, that means that they also have to have a new approach to institutionalizing the work, the practice, the processes, the certainty associated with good security. In your experience, what are just a couple of things that businesses have to worry about as they negotiate and monitor and manage relationships with third parties as it pertains to security? Right, that's a good question. They are possibly a long list of things, right? The top things is don't get locked in, right? All the platform providers want to give you oh, all these enriched capabilities as long as you buy into our services, right? So what you want to do is I want to stay at the level that I can easily move, right? So this may mean I have to do a little bit more things or I have to compensate with the party technologies as opposed to buying into this vertically integrated notion of the platform providers and that's where you need to stay at because otherwise you get locked in. So that's one. Second is the ability to do monitoring has to be real-time and the thing about DevOps is real-time visibility, real-time closed-loop response, right? So you cannot like security analytics in the past has to usually is you get tons of logs put there and somebody turn through logs and look for anomalies. It's not fast enough, it's not good enough anymore. So what we want is monitoring capabilities that are able to do it platform-independent way but able to give you real-time visibility and response capability right there and that's where the innovation comes from. You know, one thing I've noticed we've been talking, I've been talking to a couple of customers and they're starting to discover that some of the cloud service providers are using security as a way to lock in. Yeah, right. So security I think should be built in, right? It should be by default. Secure by default is the way we want it to be. But always know how to get out. Yeah, and you should be able to get out. If security is a differentiation then maybe it's not the right market, right? That's a great point. All right, so Ring Capital has, in addition to looking at the whole DevOps world you bring in your security expertise to bear on potential investments, it's got another distinction. What's the other distinction about Ring Capital? It's a woman led venture fund which is a rarity in Silicon Valley, right? So. Oh, is it? I don't know, you tell me. No, I've heard, yeah, no, it is a rarity. There are not a lot of firms that one would associate as being broadly representative or very inclusive. So as you are moving forward with Ring Capital, talk a bit about the evolving role of women in technology. So I would say that even though it's a woman led venture fund, I don't think of ourselves as different just because woman led. I think we are different because we have a deep, deep understanding of the market and deep understanding of the technology and also very extensive relationship with end users. But in terms of women in technology and women in security, I'm a big advocate. So for the past two years, I was the program co-chair for the Grace Hopper Conference. I put together the security and privacy content for the conference. And the need for an ecosystem that is inclusive, that is enabling for underrepresented either gender or race is huge, right? So people go to Grace Hopper Conference and they come back and they're so inspired because they see all these women representing them. And I think in Silicon Valley, we need that. In security, we need that even more because if you look at some statistics, I think women in general IT is about 24% representative, I mean, representation. In security is about 11%. So we have a long way to go. Yeah, and I'm going to avoid making comments about that because it's smart not to. But those are numbers that are distressing. That's obvious. Clearly, there's a lot of talent. You're not the only one. There's a lot of talent there that could be bought to bear. And so you might not be differentiated by the fact that as women, you do things differently, but it might nonetheless be a more comfortable home for women like yourself that have a great idea and want to turn it into a business. We hope so, yeah. Excellent. All right, so, Chency, and by the way, I got to say just a quick advertisement for theCUBE. theCUBE has been a major supporter for women in tech for a couple of years now. We've been in a number of these different conferences. Jeff Frick, who's the general manager, John Furrier, co-CEO, Dave Laundee, co-CEO, put a lot of time and energy. So we look forward to. Thank you for your support. Oh, absolutely. We look forward to more fruitful relationships like that in the future. So once again, I'm Peter Burris with Wikibon SiliconANGLE, and we've been talking to Chency Wang of Rain Capital, founder, general partner, about a number of different topics. Chency, once again, thank you very much for being on theCUBE. Thank you for having me.


What are your thoughts on Joe Biden? Did you expect him to run and I mean he's obviously running now But what are your thoughts on how how he's done so far and how do you think he'll do in the in the primary? Yeah, you know, I did expect him to run Although he was waiting so long that I kind of had like this still hope inside of me that thinking maybe he won't run But he's running and the way that I view Joe Biden is he's kind of like the Hillary Clinton of 2020 where he's painfully out of touch He doesn't actually talk to ordinary people. He just is talking to the elites I mean on his very first day he held a fundraiser with a Comcast lobbyist So that tells you pretty much everything you need to know about him in terms of how he'll do during the primary I mean you can't deny that he's polling extremely well He's surpassing Bernie in most polls from what I understand although I'm fully expecting him to face plan and this is because Everything he says he manages to piss off somebody like he is so tone deaf so out of touch And I just can't see him sustaining this momentum I kind of am thinking and this is just speculation that he'll kind of have the same problem that Hillary has When the more you hear from him the less you like him and that's just my thoughts Maybe it's me projecting because I personally can't stand Joe Biden But the way that I kind of have been looking at this is people view Joe Biden Nostalgically like everyone loves Obama and They view the Obama days as giving Americans a lot of stability There was not really any change and to me I view that as a bad thing but a lot of people liked that there wasn't like a nonstop scandal every single day and just Blame in stupidity like we see with Donald Trump. So I think a lot of people long for those days But when they hear him speak I Think they're probably going to realize. Yeah, we only like Joe Biden because we associated him with Obama But he's nothing like Obama. There's no charm. There's no charisma.  So I'm not gonna discount him But I think he probably won't have any message that resonates. Yeah, so I definitely agree with most of your analysis I do have a small worry though Just just based on name recognition alone that it's gonna carry him far the way that it carried Hillary Clinton far So at the time, I mean when Hillary was going up against Bernie Bernie didn't have much name recognition at all but now that Bernie does have that name recognition. I at least think there is a good chance that Bernie will win this primary because of that but He still has this candidate beside him in Biden where you have I mean just decades long experience in politics that just being in the public eye in general Do you do you worry at all that that name recognition is going to carry him farther than maybe he deserves to be? Absolutely because name recognition can do Wonders for a candidate's career. I mean Donald Trump the name recognition I mean we saw how powerful that was when he trumped for lack of a better word, you know the entire field You know 16 candidates Joe Biden could have the same effect It's kind of why I think we saw Bernie Sanders get a boost towards the end of the primary Especially because everyone just kind of defaulted to Hillary Clinton But as they learned more about Bernie Sanders, they thought oh I actually like the message that he has and one thing that I think Democratic Party voters do that Republicans don't is they try to think like two or three steps ahead So they wouldn't necessarily support Joe Biden because politically he's closer to them or ideologically Rather, he's closer to them. I think they would consider supporting him because They view him as the best bet against Donald Trump and currently when you look at head-to-head matchups He's doing better than Bernie. I think that's probably gonna change But I mean that this is one of the reasons why they supported Hillary They just thought well, you know, we can't have a socialist go up against Donald Trump or a Republican Otherwise, we will lose so they don't think oh well this person is actually better ideologically they just think well this person can beat that individual and I'm kind of Getting that sense based on just people who I know on Facebook like friends and family And it's a little bit soul-crushing because people need to just vote who's better based on policy And they're also not thinking about who can actually energize the base Which is something everyone misses in DC And apparently a lot of people, you know, just normal the normies they miss that too. So yeah, I do worry I wouldn't discount him I'm not betting on him face-planning even though I think it's highly likely but you know You can't dismiss Joe Biden. He could win


He's about to eat, he's about to eat, he, alright, this is when we're about to catch him guys, right here. Yes, yes, yes, here we go, right here, oh it's a good one, boop, boop, boop, boop. Yo what's up people, welcome back to another episode of Kickin' The Bass TV, I hope you guys are having a great week, in today's video we're going to be doing some canal fishing, but before we even hop into that, I actually have three packs of soft plastic worms right here that I'm going to be giving away to y'all, if you guys want to enter the giveaway, be subscribed to the channel, hit the notification bell right next to the subscribe button, hit the like button on today's video, and if you could drop a comment down below on videos that you guys want to see next, and I'll be picking one lucky winner here shortly, and if you guys would like to, go follow me on the IG man, at Kickin' The Bass TV, I'll have the ad in the description box down below, but yeah, I always get a lot of DMs of people saying, know what, it's been so hard for me recently to catch some fish, and I'll tell you, it doesn't matter the time of year, a bass always loves to eat a worm, so that's what we're doing for today's little giveaway, just three packs of these worms, but yeah, we're going to go ahead and hop into today's video, we went canal fishing, and I ended up catching my first bed fish of 2022, not only that, but I had a juicy little spot towards the end of the video, and ended up slaying the bass, and ended up landing a really good fish towards the end of the video, so make sure you guys watch it all the way through, I hope you enjoy it, and I'll catch you on the next one. Alright y'all, are you getting to work today? And dang, I only got a couple left, that's not good, alright, so I'm throwing a rage crawl, this is actually a black and blue rage crawl, if you guys want to get a discount on any of the striking baits, I'll have my discount codes and links down below, but we're rigging this up on a standard Texas rig, I just got a black quarter ounce bullet weight on a three-eyed extra wide gap hook with this black and blue rage crawl, we're gonna have to go slow today, the fishing has not been the best for me, I don't know if it's just because I haven't found the right spots, or if the fishing's just been tough, whether it has been a little iffy, it's been so inconsistent, the weather's just been, eh, I don't know, but we're gonna get to work today guys, and cover a lot of water and really go finesse for these bass, I'm hoping I can find some on bed here in Florida, because I don't know, I just have a feeling that I could find some really big bass on bed, but I'm gonna go slow today, like, I don't know, if we're not catching them on a Texas rig, then we'll definitely switch up to like a chatter bait or something of that sort, even a spinner bait, but for the time being, I'm really just gonna hunker down with a crawl and cover a lot of water, put a sinko on if I have to, and just all on out trying to catch as many bass as possible, so let's go ahead and get started, there's a canal right here behind this fence, and we're gonna see if we can catch some big ones, all right, first look at this canal, oh, oh my god, there's freaking a lot of them right there, I'm gonna catch one like a topwater bro, right here, always behind it, oh my god, he's not big, but yo, okay, that is first look on the canal, to see some dang fish swimming around, that is like, yeah, that's what we want baby, I kind of spooked them, they're hanging out on the shopping cart, and there's a bunch of grass and pads around them, there's like multiple, they weren't big, they're about a pound, but still, I'll catch whatever right now, look at, look at the boils right here, boys, I really think we're about to get on some right here, that looks like a dang bass on bed right there, I might be going crazy, it is windy today guys, it's really hard for me to see in the water, gosh, I look so good with that fresh water coming out guys, that's like, money, I could totally see a big bass sitting up on there, a lot of grass, a lot of slop, I don't know what this is, isn't a bass this guy to be, I can't see him anymore, there's one under this grass patch right here, oh there's a bass right there, good bass, good bass, he's gonna eat it, he's gonna eat it boys, it's literally like a three pounder, wait, wait, it's a bass bro, oh it's an armored catfish, I'm not used to those things guys, I thought it was a bass, so what is under here, is it a bass, I feel like he would have definitely ate my bait, oh it is an armored catfish, there's tons of those man, there's, I had two of them already tricked me, look at that one, oh my gosh, should we just film an armored cat video, would he eat it, all right those are kind of cool, if you guys know how to catch the armored catfish, let your boy know in the comment section down below, I'd actually love to film a video of doing that, every time I come to this canal, I see those things, but I just won't, I don't really know how to catch them where I've never really targeted them, yeah, yeah, yeah, there's a bass on bed right here, I thought it was, I just spooked him, but I'm gonna stay far off guys, yeah he's looking at me, boy is this gonna be my first bed fish of the year, it's like a solid two to three pounder, all right here we go guys, I'm catching this bass, here we go, look at this, oh my gosh, he pulled up on it right when I reeled it off, he's very territorial actually, yeah usually these bass, you know, they'll kind of spook off and they won't even pull back up, he's looking and he's eyeballing me right now, I guess about to get to the point where he's gonna eat, I just gotta make him mad, he keeps looping around me, that's exactly what I want him to do, I'm trying to get him fired up, yep you're mad now, come on eat it right there buddy, eat it, he's nose down on me right now guys, here he goes, I think he just put it in his mouth, he did, he just ate, oh he's about to eat it, he's about to eat it, all right this is when we're about to catch him guys, right here, yes, yes, yes, here we go right here, oh it's a good one, yeah he's about three, let's go, that's a four pounder, he's not even three, oh yes, look at that four straight bass baby, oh man, no freaking way, my first bed fish of the year is a high three pounder, I literally thought you were two and a half pounds buddy and you are close to freaking four, wow, thank you for biting buddy, that is a beautiful fish guys, beautiful four to strain bass, I knew the moment after that cast that we were about to get her to bite and boy we just got us a nice one to start off the video, wow, first bed fish of 2022, man that is exciting, I appreciate you buddy, you are a healthy dude, I appreciate you biting, I'm gonna get you right back in the water, his bed's actually right there in front of us, I don't know if you can see it, these clouds did get in front but we're gonna get him right back in the water right here so he can swim back on the bed, there he goes, wow what a catch guys, first bed fish of 2022, Rage Crawl has yet again pulled it out for us, I'm pretty sure that my first bed fish of 2021 was on a Rage Crawl as well which is freaking sweet, this bait right here, that had to have been him, I don't know why he was jumping like that, it's odd, the problem we have now is the sun is behind the clouds and I literally can't see anything and we played that fish perfectly, the trick is you don't want them to really see you like you can still catch the bass but I played it as if that fish would be very finicky, I played very far off the bank, I didn't really let her see me and ended up catching her so I actually saw the bed, I didn't see a fish on it but when I flipped on it I saw her move and I was like yes, that's exactly what we want but I'll tell you right now there's definitely gonna be another bed with a bass on it, we just have to keep our eyes peeled and see if we can find us another one, maybe we'll find us like eight, nine pounder on bed, the water's so murky over here, I'm gonna be able to dang see one if he's on bed and also see a big old shadow, we're at canal number two, I didn't find any more bed fish at that first canal that was like literally the only one so I don't know, it's a great sign that I found one on bed but it's also a weird little sign that I only found one but I know that he's not the only fish on bed, like the fact that we have one on bed like that there's definitely another one so we're going to keep fishing here and see if we can get you know some good fish on the bank and hopefully find some more on bed, I'm really really really really wanting to catch some bed fish after catching that one, I just like put a fire in my belly right now so I'm like just in the mood, I don't even want to cast for bass anymore, I literally just want to catch bed fish so let's start walking this canal, this one looks a lot different than the other one, it is the same canal but it's on the different side of it so let's keep on walking this and uh let's see if we spot any bass up shallow or any fish on bed and kind of get the work freaking me out, I don't know what's going on, oh boys canal number three, there's actually a pond right next to this canal too, don't get it started come on dude, there ain't no way, freaking decent one right there just chasing me in guys oh how do you miss it like that dude that's just disrespectful, lights have not been easy guys so when something like that happens it's a little just a little aggravating oh my gosh what, guys I wasn't recording, I just had like such a cool fish catch guys what in the world man I keep doing this, there's a bunch of wind pushing up in this little pocket right here and I just let the wind push my bait in the pipe and I literally caught them out of the pipe and I just released the fish and I looked down and my GoPro wasn't recording it was like my first cast, that's so aggravating guys, these bites don't come often so the fact that I just so aggravating, it's all good we're gonna catch some more guys, I mean first cast on this pond and we caught one, I'm sure there's gonna be more, the bass was super dark too, looks like there's a bed right there as well, I'm trying to keep the wind out of the freaking GoPro guys and messing me up here, I just got freaking slammed though right here, I stuck the fish, I doubt anybody in, golly, that was a freaking good one, all right I think we found this spot that has some fish though, we've had two bites pretty quick, oh there he is boy, yep, oh my gosh, why am I just getting, I'm getting freaking beat up guys, between the wind and just my GoPro not being on when I actually catch one, me not landing the bites that I'm getting, sometimes fishing goes this way but we're gonna have to flip it around here, all right boys, the wind is not as bad over here but we're gonna start with this chatter bait and see if we can get them to eat this today, hopefully we will, when I'm fishing a place, this pond's honestly pretty dang large, when I'm fishing a place this big and I'm really trying to break it down and figure it out, I really like to throw a bait that I can cover water with, like if I've been here before and I know where these fish are gonna sit, it's a little different but you know when I don't know anything about a place, I kind of like to put on a moving bait and cover water so let's just hope that they eat it today, the pad's out there and there should be some fish in there, you got all these pipes around the pond too, I'm kind of working up for this one, just tied on this Texas rig, I mean there's got to be some in those lily pads and if we don't want to get any bites over here I just have to say it's this side of the pond, there he is boys, oh my gosh, why am I fishing so dirty today, that could have been a really small bass, I thought I felt the pity when my line was like, man I mean I'm just, I'm fishing like I've never fished before, I've been fishing like I've been fishing for about five days my whole life and in reality I've fished three to seven days a week for the last 12 years, something just hit my freaking bullet weight, are you kidding me, wait, hold up y'all, hold up, wait a minute, that was the weirdest thing I've ever experienced, we should get a bit right here, this was freaking going a million miles an hour right there, coming through here, there should be some big, you need that big, you need that big, did he eat it good, at least he won't splash me, it's chilly buddy, don't be splashing me, look at that, okay, he ate the Rage Crawl, a little black and blue action, we're gonna try to get on these fish as much as possible, we got a lot of wind coming through this little spot, I think it might be good, he had a fat little belly for how small he was, right under that bridge man, oh my goodness, these fish are slamming it guys, they're slamming it, I will say tonight is a full moon, these fish are about to start feeding, I think that's probably why you know here earlier in the day is a lot slower, obviously we're at a different spot that I think has a lot more fish in it, but I can tell those fish are eating good, they're not acting weird, the fur there, they are running odd, it's like they hit it and then they just start taking off, oh man, let's keep on catching them guys, let's try to get as many as we can right here, need to get right up on that piling right there, right there baby, right in the center of them, watch we're gonna be slamping you, okay we found the fish, they're loaded on this piling, they're not big, but that does not mean there ain't a big fish lurking by, look at that, pretty little bass, man I'm just enjoying it guys, I'm just enjoying it catching them, it's been a freaking tough day, it's like we found a spot that's got some fish, just gotta capitalize, and this pond lays out really good for some bass, I promise you there's some savings in here, there should be money already right in front of me, I might need a lot of fish right here boiling, might get on really good, I'm like starting to think if I should throw that chatter bait, but I'm just gonna keep on checking this crawl right now while they're eating it, if you want to eat that I probably would have taught it all, but I think I can still catch them on this, I can work it slow, work it fast, work it at the top, work it in the middle of the water column, I can do just about anything with this rage crawl, which is why I love it so much, bait, we'll get one chasing bait on like that, chasing bait on the right, they're here, I might need to put on that chatter bait guys, going how much time, probably 10 minutes left, we're gonna have to hustle, I wonder if this is going to help, putting on moving bait right here, the whole chatter is how you catch the big ones, I'm all bigging, I know there's a big one over here eating bait, I know we got an opportunity here, just put us on it real quick baby, I'm all big bass, it's crazy, what in the world, that was crazy guys, that's the ones I get you on your tippy toes right there, oh my goodness, I don't know what in the world that was, come on do it again, what's I'm saying, they're not like wanting this chatter dog for some reason, even like other spots today, I could not get one to even touch it, because it's very odd, I wonder if it's my trailer that I have on it, I don't know man, they should, that was crazy, that is a fat dude, that is the definition of a freaking football, look he didn't even eat it, three I did there man, what to say is under his chin, he did eat it though, look at that, that's a freaking football, we're chugging back real quick, we just got to hustle guys, we don't have much daylight left, saw a lot of activity out here too, I'm gonna start fan casting, fish he ain't that fat, let's get that chatter bait right up in there, look at that big old mouth, that's a nice fish baby, that's a freaking big one, that's a nice fish, it's a high two pound, there's a tank baby, I can eat like a top warrior, that's so freaking big, that's how you eat that sucker, that was a good one, guys that was so cool, I saw a fish moving on that grass, that was a freaking three and a half pounder right there, thank you buddy, oh that was so cool, all right boys we're closing out the day, I hope you guys enjoyed it, if you did hit the like button, subscribe button if you haven't already, we had a tough day, it took us all day to get this dang video but I enjoyed every single second of it and ending off on a tank like that was very enjoyable and we also caught our first bad fish of 2022 in a canal, so that was amazing, hope you guys enjoyed it, hit the like button like I said and I'll catch you all in the next video


Snow White and Rose Red Retold by Meredith Herston Illustrated by Fitzgerald Zellis There once was a woman who lived in a little cottage with a beautiful garden in the front yard. She grew two rose trees, one bearing white roses and the other red. She had two children who were just like the two rose trees. One was called Snow White and the other Rose Red. They were the sweetest and best children in the whole world. Rose Red loved to run around the fields and meadows, but most of all she liked to pick flowers and catch butterflies. Snow White liked to sit at home with her mother and help her with the house and the sewing or read to her by the fire. The two girls were the best friends and when they ventured into the forest no animal was scared of them and none tried to hurt them. One evening as the family sat cosily together, someone knocked at the door. The mother answered the door. She thought it could be a traveler in need of shelter, but it was no such thing.  Rose Red was frightened and ran to Snow White, who was already hiding behind her mother. But the bear began to speak and he said, don't be afraid, I won't hurt you. I am very cold and only wish to warm myself up.  Then she called, Snow White and Rose Red, come out. The bear will not hurt you. He is a good honest creature. The bear let the children help him clean his fur of the snow and dirt and they soon grew to like him. When it was time for bed, the mother told the bear he was welcome there any time he needed a place to stay. The girls grew to love him and they looked forward to their nights of fun and games by the fire. So the bear returned every night until the spring time came. One night, the bear announced, now I must leave for the whole summer. But why, dear bear, asked Snow White. I must go into the woods and protect my treasure from the sneaky dwarves. In the winter, when everything is frozen, the dwarfs stay underground. But now, when the ground is warm from the sun, they come up to look for food and treasure. Snow White was quite sad about the bear having to leave. And when she opened the door to say goodbye, he caught a piece of his fur on the door handle. Snow White thought for sure that underneath his fur was a suit of glittering gold. But before she could say anything, the bear was gone off into the woods. A few days after the bear had left, the mother sent the girls into the woods to collect some branches for their fire. They came to a large tree and saw something jumping up and down. But they weren't sure what it was until they came up close. When they were nearer to the trunk of the tree, they could see a small man springing up and down with his long beard caught in the tree's trunk. Well, what are you standing there for? Aren't you going to help me? Said the little man. This old tree sprang out on me as I was trying to collect chips for my dwarf friend's fire, and now my beard is caught. Which one of you silly girls is going to get me out of here? Snow White and Rose Red looked at each other and then to the little man. They both had a feeling that he could be one of the dwarfs the bear warned them about, but they offered to help him anyway. The girls pulled and pulled, but could not set him free. The little man screamed, I am only a small dwarf. How come neither of you can set me free? Don't be so impatient, said Snow White. And she pulled out a pair of scissors from her pocket. She quickly snipped the dwarf's beard and he was free from the tree.  As the dwarf yelled and complained, he grabbed a large sack of precious jewels and stones that he had stashed behind the tree. And as he began to run away, a large bear came growling up behind him. Oh no, Mr. Bear, please spare me. I'll give you all this treasure. Just look at these precious stones. The bear looked at the dwarf and said, I will spare you, but you must leave these woods with your dwarf colony and never return. The dwarf left in such a hurry that the girls couldn't believe how quickly he was gone. They were so frightened that they began to run away themselves. Just then, the bear yelled to them, Snow White and Rose Red, don't be afraid. Wait and I'll come with you. Then they recognized his voice and stood still. And as the bear moved closer, they saw that his fur was falling off. Underneath was a beautiful man all dressed in gold.  I had to get it back from him to break the curse, and thanks to you, I found him. Snow White was so thrilled that her beloved bear was a prince, and they all left the woods together for the king's palace. Soon, Snow White and the prince were married and Rose Red married the prince's brother. They all shared the found treasure with the girl's mother who came to live at the palace. When she came, she brought the rose bushes with her so they could have beautiful red and white roses forever after.


So, okay, I'll start. This one is about to deploy a pro-show program on AWS Lambda. Actually, it's my personal project, which is retweet stack overflow questions to tweet. So it's the account. If you are interested, you can follow. So it's all about closure and closure script questions. Is it yours? Is it yours? Oh, what do you mean? Mine. I'm not only a maintainer. So some backgrounds. First is a tweet bot. And previously, I put it on digital ocean. And also, it uses Chrome job to run every two hours. So I pay $20 instance, both my blogs and the bot itself. Later, something changed. I have my children came to the world. So I really no time to maintain my blogs. So I don't want to pay the $20 anymore. So yeah, I think I need to move it to a cheaper solution. So I saw AWS Lambda. So I'm thinking how difficult to move a closure code to AWS. Actually, if you see the code here, previously Java run the job. So then I do some research and find, actually, it's quite easy to do so to move all my codes into AWS Lambda. So there are around five problems need to be solved. The first is Java in top. Because AWS don't have a native closure solution for us, but it has a Java solution. So closure provides us very strong ways to interact with Java. So that's not a problem. Then also with some help of the AOT. Then what my bot do now is every two hours, it will query the Stack Overflow API then to get all the list. But I saved last updated time. So it's only query from two ranges. So that's a problem. Because in my instance, I save it in a file. But to move to AWS, I need to use AWS solutions. I cannot do like in my local file system. And also for my credentials, also are some AWS problem I will talk later. So I will go through these solutions one by one. Any questions? So first is Java in top. I don't talk too much about how you call a Java function or use something. For here, what we use actually is a gen class. What it provides us is it helps us to create some classes for we can specify the name, also the method. So for example, in my case, I want to make it a Java class called Tweet Publisher with some namespace. Also, I specify these methods, publish something. And then in my namespace, I only need to define this method as dash publish. So Cluture will solve everything for me. It will generate a class with this package name and a class name, and also include this publish method. Here, I only mentioned a bit. Actually, this publish previously, if you are using the AWS Lambda, it will give you the events. It's passed it into a map. When I first am doing this, I use publish strings and a string. I want to get the event in a string format, then pass myself. But I failed. AWS do the default way. So you can only, if you need some events, you need the maps to get the map. Then call it to get the things. So any question here? Why is it dash publish not just publish? No, that's the default naming convention by Cluture. So if you want the methods here, you need to use a dash. It's used by Java, but in the name space itself, you need to specify a dash. And also, if you don't care the package name, you also can use the name space keyword, the gen class, instead of you call it directly. This one provides me the possibility to rename the package name of the class. So you can see my, actually, this is a code I moved to Namda. And I did not change any of my logic just to add this part. Then it works immediately. So then I need to mention about AOT. AOT is called a head of time compilation. I'm not sure how many of you use it. It's also a very cool function. Actually, it's export. It will compile your Cluture code into the Java classes. So in my last job, we use it to improve our startup time and also some performance. But if you are using the Cluture dynamic class load and you need some dynamic function, then you may need to use it carefully. So you can see, after I upper-jump my codes, actually, it will generate the classes below the CLJSOAWSNAMDA, which I specified as the name. And also, it will compile all my Cluture codes. OK. How do you set up AOT? Which one? How do you set up? AOT. OK. Let me show. It's very easy. If you go to my project, it's on GitLab. So normally, we only do it when we upper-jump. So when you set AOT all, actually, it will do everything for you. And also, you can have other ways. For example, you can specify your namespace function. Or you can set AOT to give the namespace, which you want to do the AOT. It will find all the dependencies and do all the things for you. OK. Any questions? No. So that's made me very comfortable. Actually, I don't need to touch any of my existing codes and the logics. Then I can move it very quickly from the command line to the AWS. So that's the second problem I mentioned. That is the S3 access. I did not use the database or something. I just want to save a timestamp, like a line of the files. So I come to the S3 solutions. So Absonica is a great library. I'm not sure whether you use it. I think it covers 70% of the functions of the AWS SDK. So you almost can do everything with this. In your repo, you even can run your AWS to don't use the console. So you can build your EC2. You can access your S3. You can do almost anything normally you do in your consoles. So that's very cool. So you may encounter some problem with where you use Absonica. What I encounter is dependency problems, because it implements almost all the Amazon functions. But I only need to S3. So what I try to do is when I set the dependency of the Absonica, I will exclude the AWS and Java SDK, DynamoDB, and to add the dependence separately in myself. So it will, how to say, minimize your jar also. Otherwise, it will download all the Amazon SDK jars into where you do the package. Sorry. And also the codes use hotspots a bit slow. The API is also very clear and simple. What I do is I just put an object or what, then get to the object when I need it. OK. So any questions about? OK. Any tips on how to come up with a good set of exclusions? Sorry? Suppose when you're dealing with Amazonica or any other big monolithic library, do you have any tips on how to come up with good exclusions? OK. Actually, there are two kinds of exclusions. Normally when we are doing the crucial projects, we can set our global exclusions. Like we will cope with every project. We exclude the closure itself. Because in our project, we will specify to use closure 1.9 or 1.8. But many libraries, they may not update to the latest one. They are using some older versions. So it will give you some troubles. So we will exclude the closure itself. And also some logging libraries. We find it gives you a lot of trouble. And the commons libraries. So that's when you're doing some projects. That's the thing you may consider to do. You're doing some global exclusions of the closure, some logging, and the commons. Yeah. I'm asking about the lane as the tree function. So it can list all the potential conflicts. And then you can resolve the tree. Yeah. That's one. Normally, I only use that. I find something that does not work. I encounter some problems. For example, some Jackson library, some codes library use some very old one. So cost my code totally broken. So I need to do it. Normally, when you encounter such kind of problem, you can run the tree or use a boot shoe dash d to find all these conflicts. Then to solve one by one. But normally, you don't need to. Any other questions? OK. This one is about credentials. Actually, previously, I do is I export my credentials in the machine instance as an environment variable. AWS also provides you with such things. You can set in the console. You say, I need these environment variables. So when it brings up the lambda function, it will inject or export all these environment variables for you. But when you are using Closure, we all know there is a great library, the environment. So for example, this one is for the Twitter OOS. So I can use the environment my variable name. It will use a small case. But in the back end, normally, we use a shell format. We will use the up case one. But the environment will automatically change. It will use the up case. Any questions on this? What do you do when the token takes file? What do you do when the token takes file? Actually, it's quite long. I didn't really encounter the problem yet. Because this one is an API token. It's quite long. I think I already run it one and a half years. Never expect. OK. That's all about Closure things. So any questions on this? No. This one is about the lambda thing, the AWS, which I want to mention a bit. The first is the commands, which you can use to create your function, delete your function, and update your function codes. So you can see, you can set the function name, its role. Role is a bit important one.  So when I set this lambda exe state role, it can access my S3 and to access my CloudWatch. So if you did not set it properly, you will have some access problems. For example, you cannot update your object in S3 or something. So that's why when you are doing this, you need to pay attention to it. Any questions? For example, this timeout is set a timeout time for every function wrong. So when it's more than 10 seconds, it will take as an error. Your function does not work. So it will give you some error logs and some error statistics. You can see the handler is the Java classes and the method which I use Jain class to generate it before. This one is about the CloudWatch. That's the thing I used to replace the Chrome job. So Amazon can not run automatically. So to simulate the Chrome job, I need to use the Amazon CloudWatch. You can put some rule to run something like every two hours, every one hour. Then you can add the permission. Say I need to call these functions. Then you put the target. Then it will run as a Chrome job to access your function so you can do something. You don't need to put it into the machine instance. You can call it from the function. So the benefits. Now I pay zero. So I don't need to pay anymore because Amazon gives me a quota much higher than what I used. And also it gives me a very nice counsel to see all my settings. For example, after I finish my settings, I can see all my lambda function could be triggered by the CloudWatch events. It can generate logs and can access my S3. So I can see all my functions and its structures. And also it can give me a very nice dashboard. So after I deployed my function, it will show me, for example, when it's be caught, what's the duration it has been run, and how many errors encountered. Normally it tries three times. Then it fails, then fails your task. So you can all see all these in charts. And also you can go to the logs. It will list all your detailed logs. OK, that's all about my talk. Any questions? Actually, any thoughts you want to? You can also try some such kind of drops you can put to Amazon AWS. Are you on some kind of a free trial right now? No, my free trial period has ended. But the Amazon lambda now, I'm not sure whether it's a promotion.  Can you do that for celebrities? Hm? For celebrities, they will do that. Exactly. So in normal use case, I don't think you will use up it. OK. OK, that's all. OK. OK. Thank you.


just friends with and interact with is to live a better overall life. As we just settle down in the room, just because, we'll wait till everybody kind of takes their seats. Let me just talk about David Tien, PhD. I actually first heard about David from the academic world. I had friends who are, I mean like, just tremendously, tremendously intelligent guys. But then I heard about him in the dating world, here, here, here and there, and he was on the other side of the world in Singapore, and it just kind of grew and grew and grew. And after a while, you start to get these clients who are just like, no man, no this guy. And I'm like, is he a professor or something like that? Anyway, it turns out that he went from professor to being this amazing dating coach. He has a radio show. He's kind of like the source of so much going on in all of Asia when it comes to dating and seduction and lifestyle. And what I see from this guy is living a good, clean life, a solid message. I really respect him for that. I've talked to him on the phone and interacted with him. We've just shared different friendships and stuff like that. It's great to finally meet him and shake his hand just a couple hours ago. Let's bring him on to the stage. Welcome, David Tien. Thank you, thank you. Awesome, man. Yeah, yeah, yeah, yeah. Take it away, man. Thank you. It is an honor to be here, really fluent from Singapore and really pumped up to be speaking in front of you. I remember back in the day when the 21 convention was just starting up and seeing the videos on YouTube and thinking, wow, this is an amazing opportunity. And the fact that Anthony was putting up these videos for free back then was without any charge. There's no like 9.99 for the first week and at two months later, you can cancel it. All that stuff, it was just free. And now I'm really honored to be part of that lineup and to contribute to that. So great to meet Steve and Anthony. I wanna thank them both for the invitation and great to see them finally in person. Now, being out in Singapore, I'm sort of isolated from all my mentors. So a lot of my training and coaching was over Skype. I flew in about once every year or so back to North America to do my check-in with my professors for my research as well as to hook up with my mentors. And that was it. I get my once a year thing. So a lot of what I did was just based on a few Skype calls here and there, a bunch of emails, but really a lot of it out of my own experience. And what I'm giving you today is a talk called honesty as a cornerstone of attraction. And I found that for myself, when I discovered the power of honesty and being genuine, it really took my social life to the next level. And I hope to show you how that came about. What I'm gonna show you today is also inspired by my own study. My PhD was in Asian cultures at University of Michigan and I was in Beijing for four years before I moved to Singapore. All of that was in research in East Asian religion, East Asian philosophy. And what I'm showing you today actually resonates very closely with over thousands of years of East Asian philosophy, religion, including Confucianism, Neo-Confucianism, Taoism, Buddhism. I'm not sure how you guys feel about that, but I think it's pretty cool that a lot of what I'm covering today has been thought and taught by very wise men throughout the ages, as well as in the Christian tradition through spiritual cultivation and specifically in the Jesuit tradition. So a lot of this is not PUA. I mean, my background was pickup, I guess. That's where I came out of it in 2005 after being separated from my wife at that time and then getting a divorce and having to just pick up the pieces as a 30-year-old Asian dude in a town of 100,000 people, mainly white, where all the hot girls were 20-year-old sorority girls who didn't go to clubs because they weren't of age and you had to break into the frat. And the frat houses were worse than clubs because in a club you could just flash your black Amex or pay some money, buy a table. But in a frat, they don't really care how much money you have. So it was really working from the ground up. And so what I'm teaching you today is a lot of it is gonna be based on what inspired me through over 15 years of university study and then going on to be a professor at the National University of Singapore teaching Asian philosophy. So although it's coming out of this pickup world, most of this is really not having anything to do with the POA and it's been three or four years since I've been in that community. So it's refreshing today actually on this panel to be a sandwich between two fitness talks. It makes me feel very decreepified as a result of that. So as I'm showing you, there's honesty and there are two parts. We're gonna look at the inner and the outer. Very simple, inner and outer. We're gonna start with the inner. The inner part of using honesty is basically, I'm gonna use the example of overcoming limiting beliefs. Your limiting belief could take any form.  It's amazing how many limiting beliefs there are out there. So let's take a limiting belief. So you're gonna use honesty to overcome limiting beliefs. And there are many ways actually to overcome limiting beliefs. You could use NLP and hypnosis and I've used those to good effects in the past. But that takes specialized training and specialized skills and knowledge that maybe you don't have. So what I'm gonna show you today, the method of basically psychological archeology is something that you can use without any specialized skill or training. And probably you've already been using it to a limited extent. You just need to do more of it. So take a limiting belief. You start off by asking, is it true or false? So on the handout, I have it just written out in linear form, just horizontally. On this whiteboard here, I'm gonna use it. I'm gonna show it like a tree. And if you like truth trees or decision trees, it'll be from top down. Okay, true or false? Let's take a belief, I don't know, let's say I'm too old to get girls I like, right? Let's take old age, right? All right, you feel that one? Okay, so let's say you're, I don't know. I hear this from my clients who are in their 40s and they like girls who are in the 20s. So they're thinking, oh, I'm 20 years older than that girl. It's a limiting, this is gonna limit my opportunities in dating, what can I do?  Okay, and along with reflection is research, reflect, research. Okay, so that's the first. So you notice under inner, I had R and R. R and R, which is when you have a limiting belief at the aura dating academy would say you need some R and R. So it's reflecting and reframing. So the first is reflecting. If it's, first with reflecting you ask yourself, is it true that women will not like a man who is older? Then you just do some research.  And it turns out that the research shows that women actually prefer men who are older. The minimum of two years, but up to five years in many cases, and that as women age, they actually prefer men who are even older. So a woman in her 30s will prefer a man in his 40s. A woman in her 40s will date a man in his 60s. And that's because as you age, your life experiences tend to be less different. Versus 18 and 21. So you do the research and you find out, hey, actually being older is an advantage in dating. So then you say, well, then it must be false that women don't like me because I'm old. So that limiting belief is false. But if it's a deep-seated limiting belief, just learning that first surface level of it won't destroy the limiting belief. You're like, yeah, okay, I know rationally that I shouldn't feel this way, but I still do, right? And then you need to condition your mind. Condition, you do mental, emotional conditioning. So this idea of research then conditioning is gonna be repeated on the rest of the truth tree. I'll just show you very briefly how you can do conditioning on old age. So let's say you're an older guy, you're in the 40s, you wanna get a day to grow in the 20s. One easy way of conditioning it is looking at images or seeing videos or meeting people in real life, guys who are older dating younger women. And the world is replete with these. Take an example, Michael Douglas and Catherine Zeta-Jones, she's 20 years as junior, right?  So we have these ideas, these limiting beliefs that come to us through various means. They could be through the media, they could be through society, through our parents or our peers. What you need to do is cut out all of the negative sources that are giving you these limiting beliefs and replace them with empowering sources that support the belief.


Welcome back everyone. So this week we're going to look at equity markets. We will have a look at what equity markets are, what stock exchanges are, the difference between the two. Then we'll look at the transactions that take place at the stock markets. After this we'll move on to understanding what the efficient market hypothesis is all about and how it relates to the equity markets. And then finally, we'll see how stocks are issued. We'll look at the different ways that companies can raise capital through equity financing. So first things first, if we want to look at stock markets and stock exchanges, you may recall a few weeks ago when we had a chat about what are stock markets. So now we're going to delve a little deeper into this and we will see what stock markets actually are and how they look like. So basically stock exchanges are these kinds of trading floors where you have different buyers and sellers of securities they meet up and they trade with these securities. Now these kinds of exchanges are composed of two different types of exchanges. So you'll have secondary markets and then primary markets. Of course we're going to have a look at what primary markets look like and what secondary markets are. We will see the different transactions just shortly from now. Normally stock exchanges, the way that they function is that they act like a platform that gives investors with all the information that they need to learn about the stocks, to learn about the performance of the securities, so that when they make their investments, they make an informed decision based on the data that is available for them. And so because of this, when we look at stock markets and we try to understand what stock markets are, we can see that stock markets are basically exchanges and markets together. So these are basically places or platforms where the trading and different securities take place. So here when we're talking about securities, we're talking about stocks and we're talking also about bonds. So not only in equity security, not only in equity financing but also we're talking about debt financing options. Normally if we want to issue stocks or if we want to start trading with stocks, as we said there is primary markets and there are secondary markets, something that we will be looking into together today. But in general, what you have, we have different types of financing options through equity financing. The first one is through initial public offering. Here is when a company decides to issue stocks for the very first time and they decide to sell these stocks to sell these shares for the public. So for the general public, anyone can subscribe to it. And this is basically the very first time someone buys the shares of this particular company or this particular organization. So basically they are the first owners. Relatively speaking, they become the first owners of the shares of the newly issued shares. If we're talking about the secondary offering, secondary offering is the sale of an already sold or an already issued security. So here what we're talking about, remember when we said that initial public offering is basically when you start selling the shares for the very first time of a particular company. Now here is basically when you start trading with these shares that were already purchased by particular investors. So now these investors who bought the shares for the very first time are offering the shares for other investors who are interested in buying these shares. Now if we're talking about private placements could be a primary market offering, a primary market or a secondary market kind of offering. We will look into how this happens again within today's presentation. However, for us to understand right now the general notion of private placement is when a company decides to issue specific shares and these shares are to be sold for specific pre-selected investors. So these could be institutional investors like hedge funds, equity, like private equity funds or even to investment banks. So these are pre-selected organizations or institutions or even high net worth investors. So it could be individuals. These pre-selected individuals are offered the opportunity to buy into the stocks of these of the company that is issuing the stocks. So basically here it's issuance of stocks but the sale of the stocks is for pre-selected group of investors. So for private investors put it this way rather than issuing it for the general public like an IPO. Now stock buyback is a little different from all these three financing options that we looked into. So stock buyback is basically when an organization decides that they want to buy back all the shares that were already sold for the public or maybe even through private placement. So if there are shares that are being traded on the trading floors, if there are shares that are already owned by institutional investors or by private investors, then the organization may decide to take these shares and put it back to buy them back again so that the company would return to become private rather than become a publicly held organization or a publicly held company. Now these are the different kinds of these are the basically the differences between between stock exchanges and stock markets. Now if we want to understand a little deeper about the kind of transactions that happen within the stock markets, here we can divide them into two parts. You have primary market transactions and then secondary market transactions. If you remember from what we just seen together about IPOs and private placements and stock buyback and also secondary offerings, these are now allocated and as we will see they take specific they are traded in specific markets. So if we're talking about primary market transactions here is basically when initial public offering takes place. As we said initial public offering is the very first time that the organization issues its shares for the public and so the trading that happens is a trading market transaction in this kind of situation. Now when we spoke about private placement is also a primary market transaction because the shares initially were issued for the very first time from the organization itself and it becomes a primary market transaction. And as we said there is an exception sometimes these transactions so for private placements sometimes these could be secondary market transactions but these are very rare and very specific and there are specific basically rules for you to become a secondary market transaction. But the general notion is that private placement is a primary market transaction. Now if we're talking about secondary market transactions basically when you have already had the shares issued for the very first time now these already owned shares, publicly owned shares become traded in secondary markets on trading floors in the Europe stock exchange for example where the first owners of these shares would offer them to other investors who are interested in buying the shares of the specific company or organization that the primary investor have held the shares for. So this is where the secondary market this is where secondary market takes place secondary market transactions take place. Another way or another kind of transaction that takes place in the secondary markets is basically when you have a secondary offer. Now we've looked at a primary at a private placement and initial public offering so initial public offering when the shares were very first introduced and for the public for the very first time secondary offering is basically when you resell these already sold that these already owned shares again in the stock markets for the second time basically. Now stock buyback as we explained in the previous slide is when an organization decides that it wants to buy back again the shares that were already traded and that were already traded and owned by different investors so it purchased them back again and then it becomes a private institution. But the question is how do I know if a the market that I'm trading in is a good market or a strong market how will I know if all the data that is being given to me as an investor is actually all the data I need to make an informed decision or not. Basically this is where the efficient market hypothesis comes into play so the efficient market hypothesis takes all the data and all the information about a specific company about the securities of these organizations any security that is traded in the stock exchanges in the stock markets and looks at this data to help assist investors make an informed decision about the particular price of the security whether that securities price is justified based on the data or maybe it is inflated so investors in this instance are able to make a very informed decision about their investments so what it does it it gives investors the opportunity to make them their informed decision about a particular investment about a potential investment that they are interested in and for us to see whether this is something tangible or not as investors we can measure the efficient market hypothesis in three different ways so we have a strong measurement and then we have a weak one and then we have a semi-strong one so if we're talking about a strong strong markets or a strongly efficient markets here that means to us that all publicly available data and all private data have been shared and the price basically reflects all these publicly available and privately available data and that means in situations like these or in markets basically like these there isn't any room for someone to make access returns on the basis that they have maybe some information that wasn't available that wasn't available to other investors and this means that the room for insider information here that affects the share price is null now if we're talking about weak markets that means that basically the prices of the price of the securities we've traded within this markets are reflected only based on past available past publicly available data or information so it's we're not talking here about data that is updated we're talking about data that is that happened in the past so we're collecting past data and this past data has effects basically the share price or this the price of the security and because of this here normally the room to make access returns is a little difficult to find so it is minimal again but insider information could help particular investors maybe gain a little advantage why because already the information that is there would does not at the insider information that a particular individual have could have an effect on how the price of the share or the price of security could could fluctuate on the other hand if we're talking about a semi strong markets here we're talking about markets that their prices or the shares of these the prices of these securities are only affected by past publicly available data and past publicly available information and because of this the changes and the price of these securities is going to be very much dependent on the amount of data that is being fed on the new data that is being fed into the market now here normally making returns or making excess returns could be achieved by taking risk that is higher or by using maybe non publicly available information so these are basically the measurements of how we can measure a strength of a market or an exchange but if we want to look at the way that stocks are issued remember when we said we have primary market transactions and then we have secondary market transactions now we're going to delve a little deep into these what are primary market transactions so here again we try to re-emphasize what we discussed before that primary market transactions are stocks that are being traded for the very first time that are being issued for the very first time to the public and here buyers of the buyers of these shares of the security of these stocks are first time owners of the stocks that were issued this could happen through initial public offering or through private placement secondary market on the other hand is as we explained these already sold stocks or already issued stocks or share or securities are being resold to new owners so the first owners are now reselling these securities to secondary owners or to other owners and here we have different types of markets so we have a broker's markets which basically are exchanges where buyers and sellers meet together on a trading floor through a particular broker and this broker on a centralized floor makes a transaction on behalf of these two parties for broker's markets we have two types of that they are divided into two main types of markets so we have national exchanges and then we have regional exchanges if we want to understand what national exchanges are think about New York Stock Exchange if you want to to learn if you want to differentiate between what national exchanges and regional exchanges think about regional exchanges as the Boston Stock Exchange now on the other hand to the to the broker's markets we have the dealer's markets so we said if there in the broker's markets there is a particular centralized floor where the buyers and sellers meet together and the broker basically facilitates the exchange of the shares of the money and the shares or the stocks between the buyers and the sellers in a dealer's market there is a floor there is a trading floor but this trading floor is not centralized like in the broker's market this one is mostly decentralized and the fact that it is decentralized means that it utilizes or it uses the it benefits from the telecommunication networks to facilitate any trade in these stocks or shares and in this particular instance these dealers could be on a national level so that we don't have a regional or national markets rather it's all the transactions take on a national level and they take a place on what we call over-the-counter transactions or over-the-counter markets so OTC basically stands for over-the-counter this is what we wanted to discuss for for this week about how shares are issued the types of secondary markets and the different types of exchanges and stock markets and also how we can measure the efficiency of exchanges and markets but before I leave you I'd like for you to have a thought about a particular thing so if we want to if we want to assess private and public data for a particular security as an investor what would you what kind of measurement would you do what kind of data would you prefer to have access to so as an investor for you to make an informed decision what kind of data do you think you would need to make an informed decision and subsequently to purchase a particular stock or invest in a particular security think about this and I look forward to seeing you next week