Well, hello, everyone. I'm so exciting to be here at KubeCon Observability Day to see so many attendants from this stage. And today I will be sharing our story of correlating metrics, logs, and chases. I will walk you through our journey from starting with SDKs to eventually bring in eBPFS and enhancement.  My name is Zhu Jie Kun. And I'm the software engineer and a member of the hotel community. I joined Chuang last year where I've been mainly focused on building an observability platform for our business. Today's talk is going to be divided into several parts. First, I will share our experience with observability and the infrastructure based on then I will cover how we construct metrics and logs from the chases span. Why we need standard signals and how we achieve that. After that, I will talk about why we brought eBPFS into the mix, the challenges we've run into while gathering data with it.  First, our journey. I promise that this is only propaganda slides. And our business is primarily focused on interest-based social networking. TDChat is our voice app for gamers. It's quite similar to TeamSpeak on the desktop, but it's specifically designed for voice chat in mobile eSport gaming. Going back to our observability journey, we use Prometheus to collect metrics. And because our business and our applications is widely distributed across different crowd providers and whereas Kubernetes cluster. So actually, our Prometheus is deployed alongside Thanos, which we use to provide global curing capability across multiple Prometheus instance and for long-term storage solutions. For chasing and logging, we adopt Tencent Crowd as our vendor. Data is collected by application or log agent and sent to the vendor. We also have open telemetry collector for modifying and filtering spans, providing certain monitoring capabilities and maintaining the flexibility to switch between different vendors. And based on these infrastructure components, we also conduct an observability platform that integrate with our configuration management database, allowing us to categorize application hierarchically and combine observability data into one centralized platform. So last year, my colleagues told me that while the data integration platform is good, it's not much different from searching for data in various different places. Therefore, we started to think about doing more on top of this data foundation. When a user sees a metrics that is on fire, if he has enough experience, he may go to check the corresponding logs. However, if the user is not familiar with it or if the person who noticed the alarm is an SRE on duty and not the application developer, how can he find out the root cause? If we can provide logs and traces corresponding to the metrics, or in other words, link all of them together, things will become much simpler. So we started looking for potential solutions in the community to correlate different signals. Before we dive into the solution we utilized, which is this band matrix connector, it's essential to first explore the universal idea of correlating signals. When we think about how to correlate different signals, we need to find what they have in common. It becomes appear that trace has trace IDs and logs can record those trace IDs. While metrics may not retain every trace ID, they can attach a handful of notable trace IDs while they sample up. So in theory, trace ID enable us to correlate all pieces of data. But practically speaking, in our system, it's more common to see logs without trace IDs and metrics without the exemplar, a consequence of legacy issues. Ideally, we can make changes on a large scale, pushing our developer to include trace IDs in their logs and metrics. However, implementing large scale changes requires significant human power and time. Therefore, we are looking for a solution that can correlate signals with most of the work can be done by our observability team. If you are familiar with distributed tracing, after trace span is reported, it's received, processed, and exported to the vendor by the hotel collector. A trace span contains a lot of information, including the application's name, span type, for example, it's an RBC request or a database query, duration, and response status. Using this information, it's entirely possible to construct metrics line query per seconds and latency error rate, also known as the RED metrics. The open telemetry collector offers a component called span metrics connector that makes this possible. It converts span into metrics like this and carries the attributes of the span as labels, we modify accordingly to export metrics like this, whose metrics name and labels name follows our standard. Based on the similar idea, since span can also carry information such as query statement and HTTP arguments, we also develop a span log connector which exports log to the vendor. More importantly, the data transformed from span will carry a trace ID or an example and we have full control over it. This means we don't need to push users to make any changes in order to get correlated signals. And you may be curious about how much extra resource it needs to add this logic outside the original trace pipeline. We conduct benchmark tests on span metrics connector with workload ranging from 2,500 to 20,000 span per seconds. The purple column and line represents the trace pipeline while the red columns and line represent the trace and metrics pipeline, which include both the span metrics connector and the permithilus exporter. As you can see, there is almost no different in civil usage between the two with additional pipeline causing only a slight increase in civil utilization. When examinating the memory data, the trace and metrics pipeline on average use 38% more memory. This increase is tied to the number of different combination of label values in metrics, also known as the cardinality of label value. And these are the benchmark result and in actual usage, I'm sorry that I cannot share our data from the production environment due to some auditing reasons. Instead, I took the data from one of our largest test cluster, which reports 14,000 spans per second. After transforming them into metrics and logs, the civil usage of the ODEL collector increased by 4% and memory usage went up by 24%. I believe that cost wise, this is a relatively inexpensive solution for obtaining correlatable signals without having to modify any user code. However, as more and more teams express interest in using this solution, we face a challenge due to the diversity of span they reported. For instance, spans describing bicycle requests might have different span name and attribute formats. To generate consistent metrics, we need to standardize those spans using whereas span or chase processor before the transformation, which lead to a growing number of configuration to be managed. This is cry in practical and the more pipeline we have, the more resource they consume and also the human resources needed. Our ultimate goal is to make sure that the metrics and logs we get from chases are all in standard formats. We realize that maintaining different configuration is necessary due to the diversity of span. If there is a way to standardize all the span or at least those important ones we care about such as those for HTTP or Reddisk call, that will be quite beneficial and the configuration of the open telemetry collector could also be simplified. So our task boils down to unifying and standardizing important spans. The first thing we did was to design, standardize the attributes for spans, specifying the enumeration of keys and values. This is our attributes protocol. Well, actually this is not a good practice because O-Tel has already defined a common set of semantic attributes. I would recommend using them if there is no concern regarding legacy issues. But anyway, now we have a standard within the organization. Establishing the protocol was straightforward but pushing everyone to adopt the changes has been challenging. To simplify the changes, we also create middlewares and interceptors for various frameworks and client SDKs. This extension method are provided by the frameworks themselves and most frameworks and client SDKs can be integrated with just one or two lines of code changes. After integration, the span they reported will follow to the protocol we have established. Actually it doesn't matter whether you use a customized SDK middleware or an open source project as long as they can report according to a specific protocol across the whole organization. And so far everything seems to be going pretty well except that we suddenly found our Prometheus instance keeps going down. If you think about it, we are generating so-called standard metrics for those HTTP and MySQL calls and others which obviously includes labels with high continuity. If anyone runs a query without the correct label filter such as service name, cluster name space, Prometheus made crash. To safely use those standard metrics, we've added a PromQL proxy in front of our panels. It passed every request separating the metrics and labels in the PromQL for a specific metrics. If the necessary labels are missing or the query time range is too broad, it will reject the request. We also set a TTL for those standard metrics so if a time series hasn't been updated for a while, it will be dropped from the scrapping result. These are fairly common measures to protect the Prometheus. In addition to this, we also try out an experimental feature of Prometheus which is the native histogram. Native histogram has been introduced many times at past keep call so I won't go over the implementation again. After enabling native histogram, we can observe a change in the precision of the collected data. The resolution of the data on the right is visually higher and this is also from our test cluster and it may not look impressive due to the lack of sufficient samples. I'd like to reuse a graph from previous speaker to show that native histogram provides a significantly higher precision and it comes with the bonus of better performance and resource usage. So check this out. With native histogram on, we are seeing a 30% faster scrap time for those high continuity targets and for queries, native histogram with different bucket factor are speeding things up by 60% to 80% compared to the conventional histogram when dealing with 13,000 time series. The bucket factor impacts the resolution of native histogram. The lower the bucket factor, the finer the detail. And with a bucket factor of 1.1, you get really precise data and it still runs better than the conventional histogram. And so by now, we've managed to provide those standard signals along with the capability to process and display them but in the observability domain, there's always a challenge you've got to face. No matter how easy we make the instrumentation, there are always users who don't want to make any changes. So we need to add the last piece to our observability platform which is the ability to collect data without any code changes. Thankfully, the evolving EBPF technique offers us many options. We went with the flow which is also a CNCF project. In our use case, EBPF can essentially be seen as a network package collector. We deploy the EBPF agent on our Kubernetes cluster to collect the network package sent and receive the bind application which are then reported to the EBPF server. The EBPF server converts them into logs, chases, and metrics according to the standard signal protocol for storage. This workflow looks pretty simple but we've still faced some problems when it comes to using the data in the rig wall. The biggest problem is how to link up the EBPF spans. In our practice, the EBPF agent doesn't modify any network calls so there's actually no application instrumentation involved meaning that the collected spans won't have trace ID or span IDs. Instead, they come with information like TCP sequence or Cisco trace IDs. To display it like a normal trace, we typically need to start with a particular span then searching for related spans using attributes like TCP sequence, Cisco trace ID, and thread IDs. We keep doing this recursively, checking down additional related spans until there are no new spans could be found. And in the end, we saw all the spans by time and TCP sequence relationship among other criteria. The whole process is line animation here. Overall, I think this idea is workable and serve as an implementation method when there is no trace IDs available. In our rig wall use, this method requires significantly more times for each query compared to the traditional SDK instrument when dealing with, especially when dealing with a high amount of spans. And for data collected by the EBPF agent, we need to store it in the click house first which takes up a substantial amount of space. To reduce the disk usage, we need to perform data sampling. Typically, we locate span with error or long duration in click house and by using the earlier mentioned recursive search, we find the trace they belong to along with the associated spans. All those spans are then stored into another click house instance, creating the final sample the data set for user to query. If you are familiar with tail-based sampling in distributed tracing, the concept here is quite similar. The only difference is that the EBPF method use disk instead of memory which incur higher causes and offer less performance. This operation sounds quite heavy, right? We think so. We believe that EBPF program that do not modify any data are generally considered saver. That's our initial impression and the reason why we chose Diffrock instead of other EBPF project that do instrument the application. And in our case, we help to collect observability data as much as possible with least amount of resources. After running this on production for a while, we believe it is necessary to reconsider whether it is worth using so many storage and computing resources. Or in other words, whether it is worth using EBPF for distributed tracing. And finally, after doing some evaluation, we remove the storage of trace data collected by EBPF. Once they are transformed into metrics and logs in memory, they are immediately discard. This save us the space of storage and about 30% of civil use, civil resources, as well as 70% of memory, which is a significant cost reduction for us. And now let's wrap things up. Our approach for correlating signals is based on the span matrix connector. We've modified the hotel collector to enable it to transform span into both logs and metrics. And in order to handle spans reported by different applications, we define a protocol for span attributes and build numerous middleware and interceptors for frameworks and client SDKs. This allows applications to report standardized spans. And for spans that cannot integrate with those middlewares, we also deployed EBPF agent to collect data on their cluster, serving as a supplementary method to user-side integration. And currently, our EBPF pipeline handles over 600,000 spans per second in a single cluster. Although we have abandoned the ability to display chases, it still offers very meaningful support for metrics and logs. We believe that to fully explore the potential of EBPF, it's best to use EBPF program that actually modifies an instrument application such as Gravana Baylor. I remember that their latest release already supports many frameworks and client that we need and we hope to try out in the future. But of course, we also have to consider the actual performance overhead. So that's the story of our observability platform. And as I said, we've made so many mistakes. And for example, not using hotel's semantic attributes as a standard and our work on EBPF is far from perfect. However, there were limitations at the time and I hope you can look at what we went through and say, hey, let's avoid that when planning similar things. I hope the idea of this band matrix connector can also inspire you to build things, beyond metrics and logs because the trace span really carries a lot of information. And that's it. If you are interested in our experience and would like to continue the conversation, you can find me on GitHub or Twitter. And as English is not my first language in case I may misunderstand your question, I will recommend you to scan a QR code or visit the link below which we will direct you to a Google form to write down your questions. And thanks again for joining my session. Much appreciate it. Thank you.


This is Peter Leonard, and today I'll be presenting on neural networks, machine vision for the Visual Archive. What I'm going to be showing you today comes from the Digital Humanities Lab inside Sterling Memorial Library in New Haven, Connecticut. I'd like to acknowledge the work of my co-workers, Doug, Kathy, and Monica in many of the projects and screens you'll be seeing today. We've tried to organize this talk around three easy-to-understand use cases that get at some of the practical real-world things that machine vision might be able to do for those of us in the library field. And the first of these use cases is the following. Given a picture of interest, how can I see more things that are like it? This problem has motivated a couple interesting projects in the last couple years in the field of digital art history or digital humanities. The noted programmer John Resig has used a commercial company called TinEye's product called MatchEngine on both his own collection of Japanese wood prints gathered from digital collections across the globe, as well as the Ferros Consortium of Museum and Library Photo Archives. Now, TinEye MatchEngine is a commercial product, and so we don't have a lot of insight into exactly how that product works, but if you look at some of John Resig's work or the paper that's noted at the bottom of this page, you'll see some really terrific results on image matching in those two domains of Japanese wood prints and of reprinted, reproduced photograph from museums. Carl Stommer, who was then at the University of California, Santa Barbara, also did some really terrific work on the Early English Broadside Archive and specifically the Ballad Impression Archive, where his own implementation of a particular kind of machine vision was able to illuminate the re-use of these pieces of clip art in all sorts of Early English broadsides, and I encourage you to look at his paper down below where he talks about his own Archive engine. And these projects are really terrific and really inspired us at Yale to think about our own collections, one of which I've put on the screen here, it's called the Mazerve-Kunhardt Collection. It's perhaps one of the largest private collections of 19th century photography in the United States and really kind of chronicles American history from the Civil War to the Gilded Age. It's best known as a repository of famous photographs and depictions of Lincoln, but it's actually over 73,000 images in total that are being digitized in extremely high quality as we speak. Now, one of the things that's really transformed machine vision in the last couple years, specifically since 2012, is the use of convolutional neural networks for image captioning or image description. This is just a diagram of the way that convolutional neural networks operate, and in a sense they kind of mimic our own brain's system of vision. So the human vision system proceeds from very simple identifications of lines and simpler patterns up all the way through more complex patterns and agglomerations of different visual icons, and then finally arrives at a kind of realization or a description of an image. That's my uncle or that's a dog with a hat on it. And that's actually the same way that convolutional neural networks work. They work with very simple layers and they progress to very complex layers that culminate in descriptive labels like cat or dog or chair, bagel or banana. Now, these networks have proven very effective at image description. They're probably in use on your own Android or iOS device.  The problem though is that in this collection, like the Monserv-Kunhardt collection of 19th century photography, there are all sorts of wonderful 19th century subjects that don't quite map onto the labels of 2018. So the semantic field of 19th century photography being heavily studio based and incorporating all sorts of different types of images than images we take with our cell phone today, including things like stereograms and portraits of Civil War generals. It's just a totally different field, which means these labels and convolutional neural networks are not really appropriate. There just aren't that many images of bananas or bagels in the 1860s. We've been really inspired by a paper that came out in DH Cracow in 2016, given by Benwas again and a couple other of European researchers who were presenting a particular case study on the Cheney archive of art photography. But the main claim in their paper, which is listed on the bottom of your screen, is that the semifinal layer of these convolutional neural networks for image captioning, that is to say the layer before the final layer with labels, might actually be more useful for certain types of digital art history than the final labeling layer, which tries to decide whether something is a cat or a dog. And then to issue that Sagan and others showed in this paper is that because this second to last layer, this penultimate layer, is more abstract. It isn't as specific as cat or dog. It might actually be more useful to domains in which the precise identification of something is a bagel or not is not the main project. Instead the real goal of many projects is to determine visual similarity like we set out in our original use case. And so we take this intuition from the team that we presented in Cracow, and what we've done is we built a demonstration application called Neural Neighbors, pictorial troops in the Miserve-Kunhardt collection.  We take a convolutional neural network, which is designed for image captioning. We have in this case we use Inception, which is provided by Google. And this network is provided by Google in a pre-trained state. It already can discern what the labels are for modern contemporary images and Google spent a lot of time and money enabled to be able to do that. It's trained it on all its own images and it's successfully solved important image description challenges like ImageNet. We take that semi-final layer, that second to last layer in the network, which as we mentioned in the previous slide has a more abstract set of visual features than cat versus dog. In fact it has about 2048 ways of seeing that are impossible to describe but are useful in determining that something is a cat or a dog, a bagel or a banana. And in this high dimensional space, in this imaginary space with 2048 different directions or dimensions, we find the approximate nearest neighbors of each image in this space. And that's really all there is to it. And what I'd like to do now is to show you exactly how this works. So what we have on the screen now are just random images from the Miser of Cunhardt collection. There actually isn't anything important about each image. It's just that they're each from this large collection of tens of thousands of images. The important part comes when I move my mouse over this particular image here on the top left. You'll see that as I move my mouse over that, I see other images which are visually similar. They're men in army uniforms, they have brass buttons on the front, their jackets are dark, they tend to be on a relatively light gray background. Whereas if I move my mouse over this woman here, the second from the left, you'll see that when I move my mouse over her, I get images which are very similar to her. Hairstyles, perhaps some of the decoration around her neck, the sense that it's all sepia-toned, that I've got some elaborate hair. And this is true of actually all the images that I could move my mouse over. As I start moving my mouse, you'll see that I'm basically pulling up images in ovals when I move my mouse over an image in an oval, when I mouse over an image in a town with a steeple, I tend to see other images that include steeples and towns, people sitting in very particular ways. Now again, I can reload this page and I can look for other people sitting like this. I can look for, for example, other people outdoors in large crowds, people wearing military uniforms, people in sort of a very particular frame here. All of this is being determined by the semi-final layer of the convolutional neural network doing approximate nearest neighbors and finding the images that are closest to, in this case, this particular actor or this particular soldier. None of what's being used is the text. We're not using the text at all. Although we can get the name of the caption of the image if we need to, but that's not actually being used in order to process this. This is pure raster processing where we're taking signal only from the images that are in front of us and not from the description of the image. So that's neural neighbors. Let me return to my slides and just show you some of the more interesting examples that we found. This one I like to talk about in particular because it shows some of the things that the neural network is sensitive to and some of the things that it's insensitive to. So in this particular example, I've moved my mouse over Johnny Giles here in the bottom and what comes up are all the other 19th century pugilists, all the boxers that are in the collections. Notably, you'll see that some of these boxers are actually turned the other direction and one of them, John Banks, to my eyes, seems African-American. And so what's interesting about that is it's the robustness of this particular algorithm of seeing in 2048 ways and being able to use those 2048 ways of seeing to identify images which may be flipped or may contain a different type of skin tone or perhaps a different color of pants. It's an incredibly powerful way to surface images that resemble an image that you care about. So that was our first use case. How can we find similar images to an image of interest? For the second example of a real-world use case where machine vision might be useful, let me give you the case of how a large-scale visual collection might be able to organize itself. And that may seem sort of like a strange way to put it. We're not used to thinking of data as having its own autonomy. But what I want to explore in this particular set of slides is a tool that we've been working on inside the Digital Humanities Lab called Pixplot, which is authored by Doug DeHaine. And this tool actually starts very similar to how neural neighbors work. We basically process all sorts of images, tens of thousands of images, with the inception convolutional neural network, which is provided for free by Google in order to provide those labels that you might remember, cat, dog, bagel, banana. And what we use is the second to final layer. So we use the penultimate layer, which gives not those final labels, but rather 2048 abstract ways of seeing. This gives us a high-dimensional space, and rather than finding the approximate nearest neighbors in this high-dimensional space as we did with neural neighbors, what we're going to do is we're going to try to compress this high-dimensional space into two dimensions. I can't show you 2048 dimensions on my computer screen, but if I'm able to reduce the dimensionality of this high-dimensional space to two, then I have a hope of being able to show you the entire image collection organized according to visual similarity. We're going to use a particular dimensionality reduction called UMAP here, which stands for Uniform Manifold Approximation and Projection. For those who keep track of modern developments in dimensionality reduction algorithms, this is similar to TISNI, or T-Stochastic Neighbor Embedding. And just like TISNI, it tries to preserve global structure in the reduced dimensionality visualization, as well as preserving local clusters. This has become a little clearer once I advance the demonstration. We have a WebGL technology, which allows us to visualize tens, if not hundreds of thousands of images at the same time, and in the resulting visualization, similar images will appear nearby. So let me go ahead and show you what this looks like. What we're doing now is loading, in this case, about 27,000 images into my web browser, which is more than most people have seen, probably. And it's almost as if what I want to do is take those 27,000 images and throw them on the floor. But if I really threw them on the floor, then they would land pretty much randomly. They wouldn't land so that images with similar visual content were clustered around each other. But in fact, that's exactly what's happened. I've thrown these images on the floor, and all of these vignetted portraits have landed in this neighborhood here, in the bottom left of my screen. There are other neighbors as well. There's a cluster of buildings over here, let's zoom to the right, and finally you can see that all of these Second Empire buildings in the East Coast cities of the United States, oftentimes shot at 45-degree angles, are all arranged around each other, as if they were all found their own place there after being thrown on the floor. There are other examples of landscapes, so I can zoom down here, and you'll see that buildings go away. Instead, what you get are the natural environment, fields and mountains and trees. Finally, I have an example of maybe performers or people with particular military uniforms on. Let's zoom down to this cluster of military images down there. Let's zoom out a little bit and look at the entire visualization and just consider what this is doing. What we're showing you are 27,000 images, all at the same time in your web browser, thrown into a virtual space, and that virtual space actually represents a dimensionality reduction of 2048 dimensions down to two. This allows the entire collection to find its own organization, to find its own patterns of similarity, and allow you to explore the conventions of depictions of women, for example, in this cluster, by just zooming around and seeing how these women were represented in studio contexts. I think this is a really powerful way of investigating collections that would otherwise be way too large to visualize all at once. So that's Pixplot, and we also have an example of this, not only on the Civil War material, but on our own Yale Center for British Art, which has, in this case, about 31,000 images from our British Art Museum. This is the same notion as our Civil War photography. What I can do is I can zoom into these constellations and find, this is my favorite, a cluster of botanical drawings from the Yale Center for British Art. These are all leaves and flowers and other illustrations of the natural world that are being depicted here and that have all found their own neighborhood. They've all clustered around each other. This work on the Yale Center for British Art is just the same as the previous work on the Civil War photography. It's a dimensionality reduction of 2048 ways of seeing, down to two dimensions. And what that will do in this case is place all the vases in this particular neighborhood. And we have other neighborhoods. This is kind of caricatures of dandies bearing nice clothing in this area of my browser window. There's landscapes, painted landscapes over here, which are nice to see, being shown in my browser window over here. I have other clusters of, I think there's one of animals. Let's see if I can find my horses here, right here. And over here, we've got all these depictions of the hunt and of various animals in both oil paintings and drawings, pen and ink, all sorts of examples here that have been discovered. And that's what this work on the Civil War is hiding out at the top right there. This is, again, a thematic way of exploring all the material in the Yale Center for British Art, all on your screen, all at the same time. And it's a really exciting way of thinking about imagery at the scale of tens of thousands, which wouldn't before have been possible. The software Pixbot is available on GitHub, and we have some important directions we want to take the software going forward. We want to be able to link back to the museum or the library digital system that actually stores the formal record, which might be available in a high-resolution TIF, and, of course, has all of the important human-generated metadata. It's provenance, the genre, the artist, all of that information would be found on the system of record. We're going to link back to those. We're excited about making the screen resolution of the images even more precise, and we may investigate the IIIF framework as a way of dynamically pulling in even higher-resolution textures as you zoom into the visuals we intend to use the WebGL technology in order to animate between different states of this particular visualization, so maybe that we want to animate how different algorithms for dimensionality reduction position the items in two dimensions. We could also animate between different layers in these artificial neural networks that mirror how our eyes see, clustering and grouping the images according to more abstract or more precise definition of the image. We're more precise definitions and layers in that network. And most exciting, I think, we want to really investigate curatorial tools for this Pixplot software. We want to think about perhaps surfacing metadata facets, such as, is something by a British painter or an Italian painter, is something an oil painting, or is it a sculpture? By colored borders that might surround each of the tens of thousands of images, so you could show me only paintings by Titian and show me things in different colors that allow you to interpret the spread of images in new ways. We also want to consider tools that you can use to directly interact with this visualization. For example, a lasso tool similar to what you might find in Photoshop to make sub-selections of, remember all of those botanical images, if I could draw an arrow sort of line around all of the images that seem to be about botanical illustrations, I'd be able to create a sub-corpus that could be really exciting for people who are perhaps seeing these collections for the first time all on their screen. And something very technical you want to tackle is the notion of transfer learning on top of neural networks. So far what we've been doing is using the penultimate layer to avoid the domain-specific captioning that is too contemporary, that is too anchored in 2018. We want to be able to retrain that final layer, and instead of discarding it, use it to make judgments of what we're seeing. Are we seeing a confederate or a union officer? Are we seeing a military portrait or a portrait of a woman who's involved in the performing arts? Those are some possibilities with enough caption training data we can adjust the networks to be responsive to our own academic questions rather than discarding their final labels as we do now. So the third and final use case that I want to talk about in terms of machine vision for visual archives is going further down the path of the agency of some of these algorithms and very sophisticated graphics hardware they were using in order to do this. And that's to allow the agency of these networks not just to organize collections, but to dream up new collections that have never existed before. And the notion of creating human culture, given enough observations of existing empirical human culture, is something that people have been doing in the textual domain for a long time. This is an example of an artificial recipe created by a particular variant of a neural network called a recurrent neural network that has observed tens of thousands of actual recipes. And what it's done is built a model of recipes that can then be sampled from. We can generate new ways of cooking from the empirical observations of tens of thousands of recipes. So you take a minute or two to read this recipe what you'll rapidly discover is that if you actually try to make this recipe do, so there's no guarantee that the food is edible. But what's amazing is that the neural network has learned the genre of a recipe. It's learned that things have categories that they yield servings that recipes begin with ingredients which have amounts and units. And then there's also a sort of neurological bottom portion which includes instructions on what you should add. Again no guarantees about the safety of food safety of this particular recipe but remember that it was created automatically by a robot having observed tens of thousands of real recipes. So the question is what can we do in the visual domain in order to generate new visual imagery out of the dream of a neural network? And the particular technique we're going to use in order to do this in our 19th century photography has to do with generative adversarial networks which are actually two networks placed against each other two networks that are working at cross purposes. There's a forger network in a generative adversarial network relationship which looks at all these pictures of 19th century Americans and tries to dream up new Americans who've never lived. But there's also a detective network which looks at all of these photographs both the real ones and the counterfeit ones and tries to determine which are fake. And what's interesting about generative adversarial networks is that each of the networks learns mistakes. So the forger learns to dream more accurately when the detective successfully detects a forgery. And the detective learns to become more discerning when the forger manages to get a false image through its network. And what's exciting about this is it happens tens of thousands of times a second for days and days. And what you actually end up with is what I'm showing you on the screen here which is a fight between two networks one of which is observing 19th century faces and trying to create new ones and one of which is trying to discern the false from real. So what you'll see on the screen here can be thought of in a couple different ways. Some people look at these faces and see something which is uncannily like a real human face. Other people look at this and find something very disturbing. We have kind of almost goya-esque images with too many noses not enough eyes. But what's interesting about this is none of these people ever lived. They're real 19th century Americans. They're plausible Americans. One is that a result of a continuing dialogue, a conflict between two networks. One desperately trying to produce faces which pass muster, which pass as real human beings. And the other network which is dead set against preventing false imagery from passing a test for legitimacy. And what you end up with is a kind of fever dream of 19th century portraiture generated by these two networks each working at cross purposes from another with a based on an incredibly large data set of faces that it can observe from and dream up Americans who never lived. So with those three examples of real world use cases in which machine vision might be useful in the library context, I'll thank you and take any questions.


Like a basketball What is up a welcome back do it to do a builder to make it so do we and we have new videos each week every Tuesday and Friday If I had a nickel for every time somebody asked us how do you make a laser cut box? I would have exactly 25 cents But how easy are they that but one we're gonna gather all of our supplies You can use anything to make one of these little boxes with we have acrylic We have some eighth inch plywood Some quarter inch plywood. I think yeah Of course we have quarter inch MDF that's our go-to So you mean you can make it out of anything, but whatever you pick you got to be able to measure it with some calipers So what are we doing it out of babe? I Want to do it out of the like wood green here over here. So it's Birch this birch. All right. Just gonna use the calipers to check the actual Measurement well, that's a millimeters. Hold on. All right, so this is actually Point one two four Great now we know Step two we're gonna go make our box We're going to start making our box here at makercase.com This is a free website where you can make different types of boxes. You can see up here just a few options We're gonna do a simple box today And then I want this one to be tall and skinny So I'm gonna do it four and a half by eight the depth is also going to be four and a half I want an image on the outside So I'm going to make these the inside dimension So I'll know I have enough room on the outside for the pattern. I want to cut out here Material thickness. So this is why we use the calipers. We're gonna put in our custom thickness Which was point one two four Yeah We're going to do a closed box and then we are going to do so what you're seeing here are The flat Joe edge joints, we're gonna do the finger edge joints. This is kind of what we demoed in the beginning Well, that way it's a whole lot easier put together. I don't have to try to line them up and glue it and then You can see you can change the size Size of your image and move it all around Right now it is at about an inch for the finger joint that seems that looks about right to me, right? Okay, we're gonna leave it at an inch and say download box plans That looks great We do not need the panel labels. We're gonna disable those. That's just guess Figure it out Gonna get crazy with it. We do not need to change the line formatting We're gonna leave the colors as is the width line as is and we do not need to change the curve We're gonna do zero or none for cut composition type and Now we're just gonna download SVG Now we're gonna take this over to Lightburn, but before we do I'm gonna go get a pattern, right? Yeah, you want to get a rapid pattern now All right, so let's start here in Canva our last couple of videos We've really shown you some of the cool things that canva can do We're gonna show you something new in this video. First of all, did anyone see this? I love this trail and the stars. I really am just so trippy. I'm so distracted by it. I love it All right, we are gonna stick with the 18 by 24 poster level poster Who I made it vertical. I don't think it matters doesn't matter We're gonna go to our elements and then we're gonna type in Laser cut in all caps. That's right yell at it Here this is what I'm looking for these panels right here, so if I click on one Magic recommendation says hey, I have lots of these if you want to choose from these Look at all of these great patterns that you could put right on the side of your box And I think I mean I guess I'm just gonna stick with the one that's here. I like that Yeah, I mean it's flowery looking What size am I working with if you go up to position? Position Five by nine. It's a little big, but I can adjust it after I download it. All right, so from here We're gonna click share and We're going to download I'm gonna download it as an SVG The little crown shows that you have to have the pro account, but definitely the pro account is worth it We're gonna keep it with a transparent background and click download All right, now we're gonna go over to light burn and Import the two things we just created So up here on our toolbar. This is the import icon I'm gonna go to my downloads and I'm gonna download the box one that I just did Here I can right click and I'm gonna ungroup these they're already grouped And they're already groupies.  Oh, I got those pretty darn tight Alright, so these are not gonna fit on one board the tops and the bottoms, but we can go ahead and do our thing with them before Before we get out of here. All right, and now I need to import my image It's my design this is also grouped so The thing about this is right now I can make this a little smaller So that it fits on here. Is that too big? Should I give it just a little more room? To five maybe I do Flat for room on the sides Okay, all right, I like that now The thing I can see here is that this image has a square frame on the outside So if I cut it as is then the whole middle is just going to be cut out So I need to right-click and ungroup this and then I want to take this outside frame and Delete that now the image will be cut out of the panel But I need to go back and group it all again control G now I can control D Will duplicate it holding my shift key. I want to drag it to the next panel control D duplicate shift and drag control D Shift and drag And now I'm going to center each one of these on their panel by using this bullseye up here align both vertical and horizontal centers So that's good That's good. That's good This one. All right, do you think that's a little close to the edge? You're about to lose control I'm about to lose control if I fall it off the edge All right, so the other thing I want to do with this box like we showed you with the jack-o-lanterns in the beginning Is that I'm going to make a lid and a base for it? And it's and it could be Here you can see that maker case has created us a lid that's going to fit down and be flush with the top and the bottom But I want them to have the top and the bottom to have a lip on the outside Just get a little lippy gonna get a little lippy. All right, so I'm going to create a Box here. I'm going to hold shift and draw my box Oh Let me go back to my arrow And it needs to come around the lid here And what am I at four seven five so I want this one to be Five and a half. I guess it's about right, huh?  Well, that's a half inch all the way here I think uh being that tall it's going to need a little A little something needs to look like it's definitely wearing a hat at that tall And you want a whole half inch so once you divide it around the edges It'll actually be like a quarter inch all the way around No, it's going to be a half on either side and a half on the top and the bottom I think we'll see we'll see how half inches. I mean we can always adjust it So I need to center these Now the next thing I'm going to do is duplicate this And I'm going to make it the same size as the box on the inside, right? Uh, yeah, so grab the measurements of the inside box Which is okay control c Go to this box control v Align the two of them you want to align the big box and the small box The the two inside boxes that's right just the big box and the one small box you just made Align these two. Yeah. Oh perfect now minus Now I'm going to cut this out of the big box, right? Yeah So minus front Now I've got Now it's basically a frame a square frame with an open inside And then I have this one and I need to merge all these together Okay, so what he's saying is now We need to make this part of that. So I've got to grab all of them. Yep Give it a little bullseye first boolean union, right? Oh Yep Okay, I think I did How about this one? Yeah, well doll Nope, that's not what I want Well, let me make sure I cut so it's important to yeah, that was my front What's that? Minus the front you got to grab the big box. Yeah, then the small box Okay now minus There you go Now it should be okay. Is it because I didn't select them in the proper order? Yes The second gets subtracted from the first. Yes, the second one selected gets subtracted from the first one All right, so if I go back and now and do boolean union, that's what you're okay. Yeah, there you go There we go Okay, so what we did here is now these finger joints that'll be sticking up from the top of this Will fit down inside the openings that we just created for the lid and we're going to just copy and paste this for the base, right? I don't need this one. Yeah, you can get rid of that little guy. All right Just control g is already one thing, right? Yeah, should be all one. So control d duplicate I think just turn everything red Control a select everything And put it all on the o2 the red layer the cut layer Step three We're going to make all of our cuts We're going to bring this piece of scrap over to the x tool p2 and we'll cut it out But first we're going to stop back into life burn and update our cut settings Now we're going to make our settings our cut settings here So we're going to for the p2 that you can see is connected down here We're going to use 25 millimeters per second at 100 power Next we're going to select everything we want cut. I want to drag from the bottom right to the top left This is everything and we're going to cut this first pass and click start Now I don't know if you noticed in the first clip We didn't cut through properly. These two line up perfectly This one does not that one's it was thinking outside the box So we use the blade bed, which is great because all the little pieces will drop to the bottom I could just dump them out But the downside to that is some of these are kind of long So what happened is it partially dropped down But left a little piece of it sticking up and the laser head caught it and dragged the whole board So we're going to swap out the blade bed for the honeycomb bed And now everything will lay perfectly flat and nothing will catch the laser head You got to kind of keep an eye on that Yeah Assembly we're just going to snap this thing together. It's like a puzzle now. It's got all these little tabs We'll just start with the bottom, I guess Put that on the bottom Yeah Oh, so this is the wrong one.  I think it's this side Oh, I still don't even have the right one. No, it's not that way.  I'm going to start with a hay corner Everything together. It's so fun when we just do it all together From the bottom fits so easy. There we go.  You can stain it not stain it Paint it spray paint it. There's so many ideas. All right. Well for real for ideas I wanted to share that you can make this even smaller. There's so many different things that you can do with these You can use these as the jack-o-lanterns like we started with or in this case This is a nice lantern or it could be a serving column. You can have a party and maybe put serving trays on there There are so many different things you can do pizza You can make it smaller and actually put a cut a little hole out of the inside and then another little frame and actually make it like a pencil holder or You could gift some candy canes and a little pencil holder So there's just so many different things that you can do with a box rather than you know Maybe it has a lid. Maybe it doesn't have a lid has a lip. It doesn't have a lip. So They it is really easy to do There are so many things that you can actually do with this box technology What are you going to make with a box? Or what have you made? There's just so many different types of things I wanted you to think outside the box.  We have illustrator techniques We have light burn techniques We even have a little bit of artificial intelligent techniques over there a little class last night So we are about out of time So if you're not going to join us for the patron after show Or kimit garret after dark is what I like to call it We will see you on tuesday where we'll do it building and make it again And again, we'll see you next friday too I'm just gonna go right for the middle balance Ooh, should I spin it like a basketball?


What is going on everybody got Kyle here relating sports cards and we are ripping 2023 bowman drop jumbo and bowman's best baseball Four box mixer number five random team style. We have a bowman best super fracter bounty going on guys if we do hit a super fracter In this case we will be giving away 425 in the Credit and break credit and we are also looking for Actually, I think it's 450 now Yes, it is it is so we're up to 450 now. Let me let me just fix that. We're up to 450 now and 110 for the 110 for the guessing already guys, so if we do hit there if we do hit a super fracter that team that has that player will get $450 in group break credit and Starting give me one second Starting now you guys can guess who the super fracter is and if you do successfully guess who the super fracter We pull is $110 in group break credit to the person who guesses can begin guessing now again This only applies to the two bowman's best boxes only get one guess per per person and Sean will keep a track and keep track of this. So if we do pull one, we will know exactly who gets it About 30 seconds here. We'll get going on the break. Thank you everybody Thank you everybody Punching aims coming in. Thank you, sir. Let's start here in just a second Again definitive is our next break with spots to fill. We got the Cubs Rockies Marlins Brewers and the Rangers in definitive All right, we'll go about 10 more seconds guys 10 more seconds sad with the Ohtani. Let's go. I know you got the angels That wouldn't be bad five four three two one Final All righty Dennis Eckersley. Let's go Lane. I like it. I'm in on pulling the egg. I'm in on the egg Alrighty guys, let's do it here bowman trap jumbo and bowman's best. We'll start with the Jumbos We'll start with the Jumbos since we got the bounty going on the on the best. Good luck here guys Start with some Jumbos Alrighty, good luck everybody Raleigh fingers. Let's go. We got both of our both of our Kyle doppelgangers Good luck. Good luck guys test Again, if we hit a super in this only counts of the bowman's best you it will be sick if we have no one here It's a 499 Jackson Cheerio for the guard for the brew crew And there's a gold auto start us off the 50 Hunter Holland you go reds nice one there John Rocker Oh god go to 50 for the reds nice one. They're true gold. Let's start for the reds Cam Collier got a first camp alderman and Carlson reek Spencer Strider. Yeah, I've heard that too. He does have a nice little mustache for sure. This guy's got a pretty decent one too skeens Skeens got a bit of a mustache going on. Oh, sorry about that Harris. I remember Sam hitting that Brady yesterday I didn't see that blue Yeah, right. He appears Lane. He appears. There's a Bryce Eldridge bowman glass Sean don't want that Connor Burns first and solace on the first No, I Got my church pants on shorts That was there's a yellow to 75 Jackson bowmeister Let me tell you for the oil for bringing that up with the guy right louder max Clark first I lost it all my husband Oza what all night over the church man. I Couldn't stop. It was good. I could entertain you guys. Thank you. No, it was good.  Oh dude. We were asking about everybody here's another Jackson Bellmeister first auto for the Oaks Have Max Clark Oh hollerin, that's good unreal so funny unreal LDB whoo There's a Jacob Wilson nice when they're A's on the mood ring mood ring First Morris and a first Jason Woodward. Let's go Harrison. I'm down. I'm down my man I'm absolutely down. You were here yesterday Church pants to work. There's a purple 250 on Andrew Lindsey first for the Marlins He took the shirt and tie off first Mahoney and so I was actually was thinking about wearing a full suit today It's wearing a full suit. Let's see what happened. I Thought about it. No, we've already had people try that true didn't work out too. Well, true Jacob Wilson on the draft card. We got Jacob Cunningham and Marcelo Marcelo Marcelo my Tyler buying some spots in Bowman Crombeck basketball tomorrow guys does release tomorrow start grabbing spots We got fanatics with Lane and we have fours here in the morning There's blue to 150 camcaller and a camcaller kind of day for the Reds First lead better and Mikey Romero So got fanatics and fours tomorrow morning guys definitely check it out Oh never mind Sam in the morning fours at night got gold paper to 50 Christian offer Sam in the morning Sam in the morning for some work here Never mind not for nags with Lane what I'm just all off never mind. Oh You've on taking a few moments best spots. Don't listen to me. Thank you Steven taking a lot of some absolute spots So just Sam in the morning then never mind Rainer Arias, he'll be at the popka show tomorrow Johnny Farmello and Garrett Balm it local one here Why do you think there was fanatics tomorrow? I don't know Don't know what you're doing. I don't know Neither here's a Jace Barofin for the Blue Jays on the base autumn Batonsi first and Braden Taylor Last pack of the first jumbo Get tops chrome black going after the next mixer, and then we got five to go in definitive Colton lead better got a first solace refractor and Brian Acunha All right one jumbo down No, that's two times in a row Can't say it again open draft large box to Draft big not the extra big though Medium size jumbo. Oh, man. I said it Fall apart Fall apart Box soup No, I don't think it does Harrison that would be something though if that's where it was found that would be something Be a nice little come up. There's a Brian Acunha on the speckle be a very nice come up right louder and coupe Louder printing plate It is a printing plate one-on-one Samuel Zavala every go Padres on the one-on-one one-on-one side and plate We go same as a ball up nice one there grande there we go Harrison just like a Starbucks Oh There's a refractor Taipea Louis Almeida I'm gonna say the J word so both grande There's a speckle a Brad and Taylor on the first and a speckle of Seth Keener back-to-back supposed to be one per box Got two back-to-back Drew Jones There's a first pinkie and term are Johnson. No, I think the super super super J would be fancy. I Went to Florida State James I Say it all the time because I went there Whenever I see a Florida State player I go for it. There's a Gabe Gonzalez blue Jacob Wilson draft card first winnaker and Davis and de los Santos I'm a no alumni to 49 I'm got a first-time Floyd light blue There's an insert auto gonna be Garrett Forrester class of 23 insert to 99 for the Pirates Garrett Forrester First AJ Ewing and James Wood Pretty much John pretty much What's up, what's up, Yogi Yogi doing? What up, man? And there's Paul Skeens on the mood ring Paul Skeens and 250 TJ Nichols Cooper Engel refractor yellow to 75. It's gonna be how you leave for the Tigers 75 watch with some hoops. It's like we got Chicago and Toronto on right now Why is that game on TNT Chicago in Toronto? I Know those guy Barnes go Light blue first is Quinn McDaniel and a lunar glow for a Zanatello for the Red Sox First Rimer and Elijah Green We're running last few jumbos here My two moments best looking for the Supers looking for the Supers So be Seth Keener on the Aqua lava auto to 199 the white tux Oh Smells like up dog Colin how first refractor?  I don't remember Let's go Yogi. Let's go first Jack Hurley and Cheerio. Yo, you let's start band dude Electric that's my dude right there Shawn's a singer. I'm ready start a band Shawn's a singer let's go and We got a camfisher on the back on the astros bass auto astros First high Floyd bus I oh oh man glasses Paul's hands First Bradfield and Brando Maia. That's true.  All right box one of moments best. Come on super. We're back for the super bounty Also have our guests bounty.  Good luck. Good luck It's just five to go on a definitive coming up here in just about hours. So just under an hour Five teams on definitive And we are under 20 on the first upper-deck ice hockey as well get that one going Yogi for the Cheers Yogi Come on super Masterpieces Max Clark and Ezekiel Tovar on the Come on Projections. Oh, I blinked on that. It's like 10 times already. Oh dual auto to 25 nice one there Mariners I'll be Felon and Celestin and Lazaro Montez That's a sick one there to their top prospects from the international signing It'll be Don L. Very nice one down. We'll get that on 12 of 25 Montez and Celestin two great hitters for the Mariners two good prospects Nice dual there go. That's awesome first dual I pulled out of here very nice one there See what else we got clean and that is sick I like that design there as a Drew Jones ring Johnson set and Lazaro very nice dual There's a wave of riots Paul Skeens refractor speckles the 299 Shay Langlears and a base auto Eddie Beltrake Padres Eddie Beltrake Zepala Shalak is gonna be Elijah Green Davison de los Santos is a projections Michael Harris a tail Michael and the 250 CJ Abrams Come on I'm on super There's a base auto Fraley and Carnassian for the Red Sox and netto Refractor angels. No, I'm sorry about that James. There's a rookie Carlos Perez And Michael Harris rookie and not a lot of cards in absolute for sure Not a ton So real the real Casas and Chris Bryant there's a well-been Francisca nice from the Guardians They saw the one of their top prospects I'm all super Not in this one Shalak is gonna be Volpe and orange. That's nice Ronald Acunha. We go braze a little throwback on those Thank you Crystal taking the Cardinals in absolute very nice orange there the MVP Go braves to 25 Bobby quits refractor the last one here box number two of bests four of our break It would have to be one of the name if they guess multiple not to do a random or something on that if Someone gets multiple Acunha's there Not sure actually on that see if that happens Yeah, but he's saying if there was a triple because there's Ronald there's Brian and there's Louisa on a helipad so It's split three ways if only one person one was guessed then there would be it would go to that Gunner Henderson masterpieces Yuri Perez and Jordan Walker refractor There's a blue to 150 same as a vala Padres Padres Shohei Otani refractor a Luca G. Alito and my trout at 299 nice when they're angels Number trout and refractor gray rod No, I know James. I'm saying there's a triple though. It has three Acunha's he's asking if we hit that There's three Acunha's so it wouldn't just be Ronald on there Ethan solace real to real But if only Ronald was guessed then it would win There's three different Acunha's There's a Braille and tavera on the auto there for the audience Jeremy Pena You saw my yeah, you saw about the triple family autos. They have a couple of different family autos There's the three Acunha's. There's the Andrew Jones and drew Jones. There's holiday Jackson and Matt There's a solace on the shellax actually some really cool cards. I would love to see one some really cool cards Here's a Matt McLean on the projections Josh young refractor. Come on I'm on super There's Riley green to 1.99 on the aqua lava and Refractor is Gabriel Rincones for the Phillies Marcelo mine Yeah, I got you James. It's just in this set. They did the family. It's a pretty cool addition. I'd like to see one There's a Colin Hauke on the shellax and a refractor toglia wave is Francisco a lindoor and re K Bradfield two more packs Get one more mixer going next another one of these There's a shellax auto another one for the Mariners Felton Celestin We go Mariners killing it At the dual auto now we got the Felton Celestin shellax 250 on the lava very nice one there congrats Mariners That'll work and save your Isaac on the back and a shellac drew Jones on the back Alrighty, alrighty guys that will do it for Boman Giraffe jumbo and best four box mixer number five do a quick head recap here and we'll do number six Then we'll be on to tops chrome black baseball and then definitive So we had to 299 speckle of trout shade Langlears to 250 Nichols CJ Abrams Andrew Lindsay to 150 cam Collier To 199 Riley Greene to 75 how you Lee and bowmeister to 25 nice Acunia for the Braves We have base auto refractor Otto Gabriel Rancones. We have to Vara Francisco and Carnasio and Eddie Beltry base auto cam Fisher Barofin and bowmeister Bluto 150 Sammy Zavala to 125 Seth Keener or sorry 199 Seth Keener to 99 Garrett Forrester gold to 50 Hunter Holland And we had a 101 printing plate Samuel Zavala for the Padres And for the Mariners had two really nice cards here We had a dual auto 25 Celestine and Montez and we had to 50 shellac auto of Celestine Really nice ones there for the Mariners to two very cool cards Alrighty there guys that will do it for another mixer number five. We'll get number six going


How dangerous is the chemical 1,4-dioxane if it gets into your water? It may seem an obscure question, but if you live somewhere where there's dioxane contamination, it's an important one. 1,4-dioxane, let's call it dioxane for short, is a colourless flammable liquid that's used as an industrial stabiliser and solvent. It dissolves readily in water and doesn't easily biodegrade, which is potentially a problem if it gets into the environment. And to make matters worse, it's considered a probable human carcinogen by the US Environmental Protection Agency. All of this is not good news if the stuff somehow gets into your water supply, but just how worried should you be if your supply is affected? According to toxicology studies, dioxane, not to be confused with a similarly named but chemically different dioxane, can damage the liver and kidneys if consumed in large quantities. However, an adult would need to be drinking a couple of microlitres of the stuff every day or around half a thousandth of a teaspoon for serious harm to occur. This is for non-cancer health risks, though. When it comes to cancer, things look somewhat different. Based on animal studies, the US EPA estimates that if an adult spends their life drinking water contaminated with just three and a half micrograms of dioxane for every litre of water, that's less than one millionth of a teaspoon. They have a one in 100,000 chance of developing liver cancer. But what does this mean in reality? The city of Ann Arbor provides a useful case study here for making practical sense of a somewhat academic risk assessment. From the 1960s to the 1980s, tens of thousands of gallons of dioxane were released into the environment to the west of the city. Aquifers underneath the city were contaminated, and some dioxane ended up in private wells. Cleanup operations are still ongoing and there's a groundwater use prohibition zone where contamination levels are excessive. There's also a fear that the contamination could reach the city's major water source, a local river in the future, and over the past few decades, some people will have been exposed to the chemical. The Michigan cleanup limit for dioxane is 85 parts per billion, or just under 20 millionths of a teaspoon per litre of water. This is the theoretical level of contamination people could be exposed to before action is taken. So a useful question is, what's the cancer risk at this level? Following the US EPA analysis, if you were to drink water contaminated with dioxane at 85 parts per billion your whole life, your chances of developing liver cancer would be around 1 in 4000. This sounds high, but it's based on some assumptions that may not be realistic, such as assuming that affected adults will be drinking 2 litres of contaminated water every day of their life for 70 years. So what if we consider a more realistic scenario? Imagine for instance that you've lived in Ann Arbor for 20 years and only drink 1 litre a day of tap water. Your highest dioxane related cancer risk in this case is closer to 1 in 30,000, still high but much lower than the 1 in 4000. Or imagine you're a teenager who drank 10 litres a week of contaminated water for 10 years before leaving for college. According to current research, your cancer risk would be closer to 1 in 35,000. These calculations do need to be treated with some care, there's still uncertainty over how 1,4 dioxane causes cancer in animals and the human risk estimates here do err on the side of caution, but they do show how a detailed scientific assessment can be used to put a number on real-world risks. However, just being able to put a number on the probability of something bad happening does raise some more challenging questions, including what you do with that number once you have it and who decides how much risk is okay, especially if someone else created the risk in the first place. These though are questions for another risk bites and another day. For more information on 1,4 dioxane, check out the links below and as always please do join the conversation in the comments.


What's up guys and welcome to trendy updates of our SPM boys.  Now of course, Vera Sidika took to her social media platform to announce and the caption, the wait is finally over. A prince has been born Ice Brown. Nakaizaku tag a page ya kepale ya Instagram at a prince underscore Ice Brown. The most handsome boy I've ever seen the new heart trove of the girls. Nakaizaku wambia watu wa watch a full bath vlog on her YouTube channel. Now of course this comes after a few weeks ago Vera Sidika and Brown Maoso have been rumada to have broken up. Akin ni nistoriam bayao deza ku confirm directly ingawa de Vera Sidika leza kwa date pale kwa social media ya ke. Nisha na ya kwa mba people who are thinking that people break up due to infidelity issues sometimes so evil. Inakwa ni issues nyingisana katika relationships na eza kwa nyawatu wa kaa chana. Lakin ni nistoria na onekana pale le picha Vera Sidika meza kwa ikelea ku announce the bath of their baby boy. Meza kwa ikelea picha ya ke Brown Maoso wa kwa memchikelea fast born daughter wa kevera Asia Brown. Namto tu pale mdogo Prince Ice Brown pieryu kwa pale. Na of course Kenyans are saying ni kama mulichezu wa ni kama wale watu wajiaeza ku a chana. Na e kumbuka kwa ma Brown Maoso wajiaeza kwa ungelea yo story a break up a ya ke na Vera Sidika. Na up Kenyans are left wondering how me a chana ama wako too iliku wa ni cloutia ku announce the bath of the baby and those are some of the questions wa Kenyans na eza kuliza pale kwenye comments section. Lakin ni tu na eza kusima congratulations to Vera Sidika na Brown Maoso kwa kwa eza ku pata ulem total. Lakin ni kitu ambachu piwa watu alupo anasewa ni komba. Vera Sidika meza kumbebo umtoto for a very long time. You know Kenyans were expecting Vera from the time that she announced that she was a pregnant with her second baby. Wali expecta ta eza kumpeto ulem total in February. Lakin ni a month ago ali onekana pale mombasa nyali a kifanya kazi aki onekana ni kama yuko bado pregnant and Kenyans were wondering how long have you been a pregnant. Na today Vera Sidika has announced the bath of the baby boy. Brown Maoso bado ajeza kwa ekelia post. Lakin ni ake ekelia tuta eza kwa tu na kudulisha. Lakin ni kitu piwa kimu afraisha watu ni komba Vera Sidika has always was on full makeup o katia li po eza kubarekia umtoto apili pale hospitali. Na suma comments kwenye comments section. Iwa on aki ni anasewa ekuza na makeup on point. Congratulations Vera. Ana Beatrice na sema already prints already akuna 10 followers na 30 seconds na kisha one hour. All right that is the baby boy's instagram account and baya meza kui tag pale neneza kupata so many followers. Ana ito aseo mani na sema congratulations a brown family. Simply slide na anambia Vera Wongo. It happened kitambo. Lakin ni Sidani ameza kusema kwe li ameza aleo yameni lakin ni cutie freedana na sema ala. Wukwo me give bath abath congratulations. Shazimin teiza mebeba member for 12 months. Congratulations. Finesu nga rana sema apu kwa browne eko kwa sana. Ofkos na jua na reactor to you know time having the rumors that they have broken up. Lakin ni ana eza kui toa prints browni none kana mechkua jina lababa ya ke. Timu shiri nae na sema Vera ali sema akuna umtumwingini ate ito asikwe kwe kwa eke. Taba muna jua first born nae toa Asia na ua pili nae toa prints browna. Mr. Bradley says wale online she medism kaskevibaya na uko jumina pangwa properly. Zaj says kwezi kuni link zaku onam toto aki zaliwa adi oh ya akuna link. Ame sema muizim kwa onipale kwenya YouTube. Captain concert says ake push kuna mwenye ali kwa na brush uso na make up. Well okay. Ayaba 6. Sisi apa SPM buzz we want to wish queen Vibose na brown mauzo congratulation za kukupatam toto awa pili. Ambayana jeli kana kama ice brown. Let us know down on the comments section una mese dia ke Vera sidika gani but in the meantime keep it trendy updates. Hapa SPM buzz.


All right, yo, it's good everyone. Nick Smith is back. Welcome to a new episode of the Indiana Pages my GM series I'll I was so upset. All right, I recorded game number seven up against the Chicago Bulls and We won obviously because we you know we advanced but When I went to my uh, you know computer I went to edit the video and it was just not there like I couldn't find I was like what the hell where it's not there And I was like, okay. Well, I can't really do anything about it But yeah, so we're here now. I'm really sorry. I couldn't show you guys game So it's annoying because you know you take out like an hour of your day Just to play a game when you could be you know editing other videos or doing homework or something And then it just goes missing which is really annoying But I'm gonna get a new capture card soon because I think it might be my Elgato Because I have the old version and I think it's time to upgrade to the new version But pretty much PG had a really good game So once I have a very efficient game as well and Eric bless who he played all right. He went one from five from downtown, which isn't great and Demaro's and still injured But yeah, we advanced so which is awesome. Um, and if we actually look at like the The team comparison we won by you know, pretty easy eight points, which is awesome So, uh, yeah now we're up against the Atlanta Hawks the four seed Atlanta Hawks and let's have a look at see let's Have a look at see let's take a look and see who they have they got Kevin. Love Jeff Teague Apple for Downish Schroeder Pretty nice quad right here. I'm gonna be alive. It's pretty nice squad. Um So, yeah, let's face up against him. Let's simulate the first game with the sim card You know how it is. We've got to simulate first game and sim card. Let's make sure everything's recording first off Yeah, all good all good. We good at here right now. Let's go Why does 2k take so long like actually like I've been wondering, you know, why do they take so long? Oh Thank you for taking so long. We got the boy tomatoism back. How are you tired bro? You playing 22 minutes? Okay, oh good. We out here. We good. You know how it is. Where was that from? I can't even remember where that one bro You serious right now. I Guess we're going back into my gym. I'll see you once for there. All right. We're back finally. We're back This better just be normal Thank you right now. Thank you very much. You actually work simulate with simcast Let's go really quickly and see if we can actually win. Oh, it's pretty close right now I might have to hop in this game. Should I yeah, I think I probably will hop in this game. Oh Yeah, bro up by one point because I don't really feel like playing a full game up against the Atlanta Hawks when I just played a full game against the Bulls unfortunately You guys didn't get to see that but I Think personally it's more fun where you see bits of each games and you see it really really close and you can see You know if I win or if I lose and how I win and how I lose because normally when you see me play a full game I normally win the whole game, but then again I did lose to the pelicans and to the Cleveland Cavaliers during the season with this team. So that's not great, but Strip it. That's to let it bro. How's to let of it's running the floor get that here? Miles Turner with a huge book. No. Oh, we left him wide open Goddamn, I don't even have a time out. I don't even have a time out I'm going with a pick and roll with miles Turner. We got to get this win There it is. There it is. No way. You're gonna defend that right there. That's too easy. That's too easy Let's go. Let's uh You might be traded, but I mean we've got to see what happens. Why did I jump? No way? That's not in no way. No, stop it Let's go. Let's go. We played some clutch defense and some clutch offense as well We came out with game one. That was pretty tight because you know, they actually hit a shot I wasn't expecting them to actually hit a shot but yeah We we played some clutch defense at the end, which is nice. Let's simulate game number two Let's simulate game number three. I guess not somebody must be injured or something must be happening I don't really know what it is. Let's take a look real quick and we came Christmas is yes That's what I always wanted man. We came Christmas is back in healthy Sweep all right, I'll sweep I'll sweep these guys I'll sweep the Atlanta Hall to you guys because uh Why not you got it? You got to get sweeps. All right If you want to win a championship, you got to get sweeps and to be honest I think we might win the championship with this team like the team that we have it's a really solid team and I like to go quick now like I like to do this thing where it just simulates with a quick and We failed we didn't see them that was messed up. I shouldn't have done that We lost by two points Great Oh, man. Okay. Now. Okay. Now we got to win this. Please don't tell me we're gonna lose this game as well Yeah, I think we should we should definitely win this game. We win this game We reached the conference finals off a PG 27 points. That's awesome And you know what? You know what? Let's let's face up against the next team as well You know what normally I would do The balls in one episode the Hawks in one episode and the 76 in another episode But you guys you guys deserve to see two teams. So yeah, we're gonna face up against the 76 as well The reason is these guys they shouldn't even be here. They're the seventh seed We're gonna advance the NBA finals. Definitely. We're gonna advance. They have an injured Jalila K'for and They're not that good We should death if we don't sweep the 76ers. I'm gonna quit YouTube. All right I know we're gonna sweep the 76. It's not even a match. Look at the score right now We beat him 59 to 111 and None of our team none of our players even played well their highest scoring player was 10 points Goddamn man. Why are you here 76ers? I'm sorry for you 76ers fans. I feel sorry for you All right, I do I actually feel sorry for you like do be honest We're not even playing well at all. Like we're playing really really bad right now, but We're up against 76ers, sir This game is pretty close though We're gonna win but yeah, that's that's that's too close. All right, that's they got Montales Okay, I see you 76ers. They actually have like a pretty decent team For a young team, but it's not crazy All right, let's do it. Yeah I Don't know whether to simulate fast like this or not. What are you guys saying comment down below? We're actually losing this game right now Yeah, we're gonna jump in this game you guys deserve to you guys deserve to see some gameplay But yeah, I want to hear from you guys in the comment section down below Do you want me to um? To end this series if we win the NBA championship or if we lose I'm obviously gonna continue But if we win would you like me to continue or to start on a new Marge m10 So yeah, comment down that below comment down below. It's what I'm trying to say. Yeah Play some good defense. That's great defense How do you make that? That was good defense right there.  So currently say much great defense aside How are they making all these shots? Really really? Come on man But yeah, like I play games, but we're up against the 76ers right now like you I know you guys Might want it some of you guys might want to see some gameplay But I know that some of you guys don't want to see me play the 76ers in a full match If I play on eight minute quarters up against the 76ers. I'm gonna beat them like Easily so that is why That is why I'm going to Play a lot of games in the NBA finals because you you probably gonna want to see like some close games in the NBA finals as well I will call for a double team right now though There we go, I knew that double team with work Why you see so slow doesn't even matter. You type this game Good stuff right there.  That was nice double team I knew the double teams are good the double teams are good the double teams are good The double teams are good. We have a timeout right there. We do have a timeout.  It doesn't even matter Oh That was a really bad shot to be honest. I don't know why I took that. We're going into overtime So in the end you guys do get to see some game play You get to see a little bit of the last quarter and you get to see five minutes of overtime You don't get to see the full five minutes gonna win a edit But you know you get to see the overtime run it up who's running with me I see Eric Blurzo down to PG easy dunk there we go gap off to Ryder in my polls Oh, welcome to your color back moment type of go home.  He redeemed himself from not get for not getting that three in the I was the code the last The what's it called man the fourth quarter to give us the win if you drive.  Oh That was not a fail right there. I was all ball That's too easy feed him. That's way too easy. That's Hassan white side. He has a mid-range shot as well people forget about that Get that out of here Hassan white side is an absolute monster And he just set a really nice screen to leave PG open Hassan white side is a defensive be he just got that still as well and you're gonna get posterized One Let's go.    Give me that. Let's go. Oh, I'm gonna love it up. Just kidding.  Welcome to your Kodak moment I need to get you know what the whole time. I was like, I'm just gonna score 10 and then I'm gonna simulate to the end of the Game, but there's 38 seconds. I might as well just you know, play the rest of the game Even if I score 10 points right here make it 11. Just kidding I'm just going with the mother Rosen. Hello, and just gonna get this mid-range shot right here And this point to say left and we sweep the the Philadelphia 76 So I really hope you guys enjoy the video if you did awesome if you guys could smash the like button subscribe if you're new I'm sorry if this video wasn't that entertaining. I was up against the frickin 76 is like it's not gonna be entertaining But that's pretty cool right there. We are Western Conference champions and With the new squad we're looking to win an NBA championship So in the next episode we're up against actually we've got to check that out right now But we're we're in the NBA finals, which is awesome And that's what I aim to do is to win the championship is that the Utah? brah Bob and Maja we need you especially because we don't have a great center, but It's us yeah, it's us we're gonna win this we're gonna win the NBA championship I have faith in the Indiana Pacers organization Because that's you know, I am the Indiana Pacers organization But the Utah Jazz the 70 Utah Jazz they might actually Jesus they sweep the Cleveland Cavaliers and who do they even have who are these guys have? The Utah Jazz Derek Favors Rondo he but this team is not even bad 88 overall Derek Favors Gordon Hayward Rudy Goat Bear Rajam Rondo Alec Burks Trey Burk Tyson channel is there don't they X him out of Australia They even got dragon bender down there, and he was picked six overall I'm not gonna lie. This team is actually pretty decent But I reckon we I reckon we'll come out with this win I reckon come out with the India Pacers winning a championship. It's been one Smith. I'm out. Peace


I bow I more passion more hacemos passion more passion more energy More energy more footwork more footwork more footwork more passion more energy


Hi, this is Aaron, co-host of Free Thoughts. Today we're launching a new podcast, Building Tomorrow, and I'm here with host Paul Matzko. Thank you, Aaron. I'm excited to start the Building Tomorrow podcast. Now, Aaron, when you decided to launch the Building Tomorrow project, you had in mind a positive vision for the show. What was that positive vision? This show is part of a broader project that we're kicking off at Libertarianism.org, which we're calling also Building Tomorrow. The idea here is we talk a lot about public policy and government and the way that those things can enhance liberty or undercut human liberty. But the story is broader than that, right? There are lots of cool things happening in the world that make the world a freer, happier, more peaceful, wealthier place that don't involve directly the government giving us permission to do something or setting up new programs or changing its laws. But instead, individuals, private citizens, through innovation, through entrepreneurship, through technological change, carving out more liberty, enabling us to live freer and better lives. I wanted to tell the stories of those people to tell our audience about those technologies, to give them a sense of how we can make the world better without waiting for the state or in the face of efforts by the state to the contrary. This podcast is kind of the flagship of that, to tell that story. It can feel very, I suppose it gets a weight off your chest as a libertarian, where you can complain about things the state is doing. Like, once again, government regulators have stymied progress innovation, but it's easy to get lost in that list of complaints. And so it's always this negative vision of what we can't do rather than imagining, well, what can we do? What can we do without waiting for the state to get out of the way? What could we do if the state was out of the way? Like, the positive vision of possibility is something we really want to focus on here with Building Tomorrow. What do you think about this, Erin? Like, kind of an Uber-style approach to innovation, right? Where rather than saying, look, first we need to change government regulation of the taxi cab industry, we're just going to start something. We're just going to start providing ride-sharing services, even though they're illegal, right? We're going to imagine the possibilities, what could happen without waiting for the state to get out of the way. I mean, is that kind of in the vision of what you see for the podcast? I think very much so. That permissionless innovation has a long history of making the world a better place, making the world a freer place. I mean, the American Revolution was permissionless innovation. And I think tied to that is, as you mentioned, this positive vision that one of the issues rhetorically that I think libertarians run into when we're promoting libertarianism, when we're trying to convince people that libertarianism is a political theory of value, is that what we're ultimately saying is give people freedom, let people pursue their own ends, let them do whatever they want to do as long as it doesn't hurt others. And the world will become better, that the market will create amazing new products and services, that people associating freely will come up with innovative solutions to existing problems, that the innovation that all of this enables will take us places that we never could have imagined, but that never could have imagined is kind of a problem. Because on the one hand, you've got the government, you've got the politician who stands up and says, if you vote for me, I will pass legislation that will give you such and such, that will give you health care, that will give you education, that will give you a job. And then on the other hand, you have libertarians saying, look, if you don't create that program, if you just stop doing all of the stuff that government's been doing in what libertarians view as harmful ways and you give people freedom, then people will take care of that stuff on their own and they'll come up with even better solutions. But that's like asking for people to put a lot of faith in something we can't even really point to. It's a bit like Frederick Bastiette's, the French philosopher from the 18th century, that which is seen, that which is not seen, right? And he's applying it in a slightly different context, but that's always the struggle when you come up with this, which is I can see the state giving me health care, you know, bread, circuses.  I can imagine, it's not even see it in the literal sense, it's I can imagine that, I can imagine the mechanism that's going to happen by versus what we're trying to say as libertarians is, well, you can't actually even imagine what that will be yet, but trust us, cool stuff will happen and it requires a leap of imagination, requires something to say that I don't see how this is going to work out, but we've seen time and time again historically, time and time again. We've seen really cool stuff come out of those free spaces where we allow individual liberties, we allow innovation to flourish, but it can be a hard sell to folks who haven't gotten used to thinking that way. It can be a hard sell and that's one of the goals of building tomorrow is to try to get across better, that it's not that we are simply saying free people up and this good stuff will happen, but that this good stuff is happening right now. Libertarianism is happening all around us and right now, a lot of the most exciting stuff is in the entrepreneurial space and in the innovation and technology spaces and so we're not stuck just saying imagine how things could be, but we can point to and we can talk to people who are actually doing it right now and so you can see this, it is working and now imagine what else we could accomplish if we could take this same dynamism, this same innovation and free it up to reach even further. And it's worth noting that it's not like the only people who innovate and come up with new ideas and new applications for ideas are Libertarians, right? Like there's a chance on the show for us to look at the cool things and talk to people who are doing innovative stuff outside the purview of the state who aren't Libertarian, who come across the political spectrum and that's something cool as well, which is again that if in these free spaces, in the place where we allow technological, innovative organization to happen spontaneously rather than trying to manage it, centralize it, you're gonna have people come up with ideas that promote human flourishing that are actually and can be opposed to each other, right? Like because each community, free individuals will be able to choose to be parts of free communities that organize around principles that make sense to them, that allow, that promote their prosperity, happiness and flourishing that other communities would not adopt, right? Like we're creating diversity in decentralization, a kind of a view of a vision of technology and innovation that multiplies across thousands, millions of local communities. And I think that's actually really exciting that this is something that doesn't just benefit capital L Libertarians, but that we can see benefiting folks from across the political spectrum and with lots of different diverse beliefs. It is exciting and that is one of the main motivators behind the Building Tomorrow project, both the podcast and the broader suite of content we'll be adding to Libertarianism.org is that the world is already because of the men and women doing these kinds of things. It's already, I think, more exciting and more optimistic than you might think and it can be so much more in the future. And that's what this project and that's what this podcast are really intended to get across and to explore and to talk about. So that's what we're trying to accomplish with Building Tomorrow. And if that sounds as exciting to you as it does to Paul and to me, you can grab the first episode of the Building Tomorrow podcast right now, look for it in iTunes or your favorite podcast client.


Great experience. I think we were, it was very intense. There were some presentations, there were some videos which candidates sent. Overall, what I could see is the PR in the communication industry is heading the right way. That's the sense that we all got and as much as I loved being part of the jury, I also loved being part of the learning process of the young guys. The ability to take risks that came out very strong. There were a couple of women entrepreneurs, a couple of young entrepreneurs who all started off on their own and that came across very strongly. The other thing is also that came across strongly is how future ready most of the candidates are. So that's a very nice sign because the marketing and the communication world is changing and we need to take cognizance of that and we need to be one step ahead of the curve. Integrated. Not just PR and COPCOM but also COPCOM, PR and marketing and CSR and product and revenue and everything else because I think the times come that where one entity, one purpose and everybody goes for that mission and COPCOM or marketing integrated is a part of it. I think there is a lot of data, big data that people are talking about, machine learning. So a lot of insightfulness that comes up from there and how to creatively input it into achieving the purpose or achieving the mission or the vision of the company is what is more important. It's not just getting the customers. Getting the customers and then being part of the customer journey is something which is imperative but I think being part of the goal of the company is also important. I wish this award has happened a couple of years back then I could also have been not just a part of Jury but at least I could have applied but at least it started 40 under 40 as something which is a great initiative by exchange for media and I look forward to the IPRCCA. It's going to be a very tough contest and that's a very good sign.