So, hi everyone. I know we are kind of coming to a close to today's sessions, but I felt that not a lot of machine learning was covered in today's session, so we kind of wanted to cover MLOps. Of course, these days it's really relevant given all the rise of JNAI and how of course a lot of work is also being done by platform engineering teams and DevOps teams to adopt machine learning workloads on top of Kubernetes. And of course, our talk is not going to be directly towards that, but of course we'll be talking about a lot of different engineering aspects that you can leverage when it comes to adopting multi-tenancy inside of MLOps. And you'll understand why that is the scenario, why is that required, especially when dealing with a complex set of machine learning workloads where you might be working with different type of machine learning models and how all of that kind of ties up with Kubernetes since we are at Cube Day. So quick introduction, I'm Shwai, I'm an ambassador at POSMED and with me is Rohit. Hello. Yeah. I guess I'm audible. So hello. So who am I? So I'm Rohit and Shwai has already introduced. So I run small consultancy, which is the real estate service. And if you have ever been to K-studies, I was also the organizer of one, then also committee groups and a lot of things. So if you want to ask anything about DevOps, we can always reach out. So what actually today's topic about multi-tenancy with MLOps, right? But first, discuss MLOps. So if you have ever worked with the machine learning projects, how the traditional machine learning projects look like?  If you actually worked in the machine learning companies, it is not just about taking the pretend models and done. So you are playing the data sets, then you are, like, fine-tuning it, you are evaluating, you have running the training data sets, then you got the evaluation training parameters and a lot of things, then you generally scale up and scale down according to your business needs and according to your company needs, right? And then there is a heavy testing, so it goes back whenever the things goes wrong and all.  Otherwise, that pipeline runs for once and years. How, like, because I have worked in one of the companies previously which is acquired by Reliance, so it was same thing there. And then monitoring and same iterating and this pipeline works. So I think that's, that was one of the things and major pain about the data scientists. That's why the MLOPS kind of a term got introduced, but MLOPS was in the picture from the long time. So let's see what it is. So if you see our data ML infrastructure, it doesn't scale across well with the sand organization. It particularly needs the different, different, what we say, different organize, different things needs the different teams for it. Let's say there is a TMA, which is ML team and team B is the DevOps team. So if you see here, TMA is responsible for the machine-lining pipelines. So they have made some critical update, which is, we are seeing as a, yeah, pipeline update, right? So, unprecedentedly, they have also broke the pipeline Y and pipeline Z, which is not like reliable to them. It is DevOps team, right? But this happens. So it was not in a manner, but this thing happened. So that is one of the thing here. So if you see team B was not responsible for it, but things happens. So this is unintentional cause. And if you see that, it happens every time. And that's why dedicated things required when you scale across the teams. So if we move forward, you can see for, like, different different ML workloads, you require the dedicated infrastructure teams. So why? Let's see. First is our provisioning CPU and GPU memory. So every company, right, if they are working on the ML and stuff, here we are referring about how the allocation of computational resources, like your CPUs, GPUs, then memory, which are critical to ML also, like, so that's what is required. So what is one of the things? Then there is a framework, right? Every machine-lining models and stuff, like, every infrastructure suggests, like, go and use to support multiple frameworks, right? And that's how flexibility in development comes. Then there is multi-tenancy, which is, like, ability to support all of the multiple users or groups into a single instance, same as a same infrastructure without compromising your privacy and security, which is one of the important concerns in the ML ops, right? Then there is auto-scaling where you don't require any particular individual to come into the picture, and your infrastructure can auto-scale any ML workloads you have, ML pipelines you have, right? Then there is a cost-control spot machines, which is nothing but you have some spot machines, right? Then you are actually, like, using spot instances to specify the computational resources, so you can have that strategy to control your cost and define it particularly. Then model monitoring, which is nothing but you keep track of the model's performance every time, and that leads to the beneficial for the company, and also post-deployment, you ensure how the, like, efforts to be expected in the future. Now, how ML ops benefits from multi-tenancy. Let's see, we explore a lot of points, right? So we are discussing about multi-tenancy. Multi-tenancy, what happens here? Cost efficiency, because you just have, like, a single instance, which is having, like, different software stack inside it, so you don't have to worry about the infrastructure cost and licensing cost for different, different software previously. You're just combining everything into one instance. That's why platform, platform, platform engineering team, everywhere, things are happening, right? Then similarly, type-and-saving, time-saving is, like, you perform similar activities with similar software stacks, and that multi-tenancy eliminates to switch between different stack, and you are saving the time and you are using the same thing, including your work flows and everything. Then collaboration announcement, which is nothing but you foster a collaboration among ML ops practitioners, so they can work on same platform, share resources, they can share whatever, they can work with the dev ops teams and all, and everything works, combining the knowledge sharing and production deployments. Then there is a resource optimization, so with multi-tenancy, resources like power, then storage, it really optimizes, so because it is shared, right? Then there is a, it ensures, like, available infrastructure is using efficiently and not reducing your, sorry, reducing your waste and time. So, yeah. As you can see here, if you read that term, it is really hard to understand, but we can relate it to one thing, what actually is the multi-tenancy for the AI, ML architectures, so if you see that image, it is like building and it is with a lot of apartments and all, right? So, every apartment will have some families, right?  So, that is nothing but your data and models, because company needs, ML workloads needs the data and models to perform and all, so that we can relate with that. Then there is, let's say, you are using the computations here and a lot of things, right? So, that is nothing but your family using the electricity and all. Then there is another thing is, let's say, you have that, like, AI models are deployed, distributed and orchestrated, we say, and it is like, solution is accurate, reliable and scalable. What is this thing? So, let's see, in your families, so you are going and booking the apartment and stuff, right? So, which utilities will get, which apartment we will get, that is nothing but your distributions, orchestrations, deployments for your companies, and if that goes really well and stuff, that is, you will perform for the accuracy and scalability for the future. Now, let's discuss to the one of the important point, which is orchestrators. It is game changing for sure, like, you can see, it is tool source system that manage everything for you, like, it will contribute the logical flow for you are transferring one, like, raw state to desired state, which is processed state. So, how it is doing that? You will see in that diagram, which visualizes, which shows, like, that different nodes of the progression from start to finish, right? So, you will see, like, the workflow with different set of tasks. So, here you will see, like, retrival, then splitting, then data processing, data cleaning, then various possible machine learning system, you can see in the trained data and also training might be there. So, everything is going from one end to another, and this use of such orchestrators is crucial in complex system. So, that is what is efficiently ordered by the orchestrator. So, moving forward, we can see what actually is the orchestrator help you in about. So, first is units of computation you need for your workload, which is nothing but orchestrator help you to figure out and manage the individual tasks or steps required to complete your data processing or computational network. Then there is data flows between those units. That is, like, it will assist you to manage how the data is passed from one of your tasks to another and then ensure the workflow is running really smoother and without any problems. Then there is another thing which is what the types and state of your data is at any given point. So, it is nothing but you have different types of data, right? Image and all these things, like, which kind of image and stuff. So, this keeps the track, like, how the things will move and all. So, raw process and stuff. Then there is what dependencies each unit relies to do its computation. That is, like, it helps you identify and manage the dependency, which conditions or regular particular tasks it defines, then there is a, we are showing containers so you can understand it. Then there is what resources each unit has available to it. So, let's say orchestrator also manages resources, such as, like, memory processing power, if you are working in the ML workload side, computational power, then storage. So, these are assigned to each task in different big workflow, right? So, this is managed by orchestrator, like, it not managed, it helps you to reason about. Then, so, we would like to introduce this one of the open source tool, which is flight. So, what actually is a flight? You will see there are tasks and workflows. So, you can easily define it in Python. So, when you go to the flight documentation, you can easily download it. It's really easy to understand. Then you can have that import task and workflow.  Let's say you want to give some instructions to the robot, like, go left, go right and this thing. So, that is task, right? But workflow is, like, asking them to go from this stage to the other, right? So, that is the entire workflow. So, here, we are having that task and workflow, so you can define it really well. And that will help you to build the entire pipeline for your workflow. Now, just to kind of add to this flight is basically an LF A&I project. So, the Linux foundation has a separate AI related, a lot of, like, AI related projects. So, it comes under the Linux foundation. It's also similar to Kubeflow. Some of you might be aware of the term Kubeflow. That's also currently been incubated inside the Cloud Native Computing Foundation. So, of course, all these different tools really allow you to very easily manage your machine learning workloads, whether you're dealing with a very simple workflow having, like, let's say, working with an MNIST data set, where you're trying to determine, like, what is the data set. Or, of course, you're working with a lot more complex workflows that require you to run your machine learning models natively on top of Kubernetes. So, a very good example is OpenAI, where they are, of course, serving thousands of different requests with their GPT models, and all of them are running on top of Kubernetes. And that is why, like, flight or even Kubeflow, these are Kubernetes-native platforms. That means that all these workflows run on top of Kubernetes. So, as Rohit also kind of mentioned about how you can basically do resource allocation and task allocation with the help of your orchestrators. So, these orchestrators, such as flight, are running on top of Kubernetes. And very easily, you can manage what kind of pods and what kind of resources you want to allocate to these particular pods. And that's what we'll be also be showing in today's demonstration. But, yeah, over to you, Rohit. Yeah, so, same thing. And if you want to use, you can see, like, there's a config file, and there is a containers, and all. So, it is easily integrated. And it's just a MLOps platform kind of thing where you can use it really well. And you have the Kubernetes cluster for workflow execution. So, you can define that flow.  And so, you can see here, like, task, which is nothing but containerized and virtualized. And you have, like, strongly typed input and outputs you can get whenever you are defining it.  And you are defining how that will work and data flow will work. Then, moving forward, you can see here, so, task and workflows are there.  So, what is here? So, you can see, in total spend, it is just a sum, right? You are doing the sum. But, calculate spend is, like, multiplying that sum and to get some output, right? So, that is your entire workflow. So, you need to annotate really well, like, task and workflow. And, yeah, it uses various data frames, PySpark and Python data types. And you can use it. Execute locally. You can try it on any cloud providers, whatever you need. And, yeah, if you want to enable catching, yeah. And this to kind of, if you can probably go back one side. This to kind of also give a very good example is, so, of course, some of you might be, if you are working with Python, we are, of course, using decorators. So, it has a similar syntax to how you would kind of declare your decorators instead of Python. And another example that I think we can probably quote over here is, so, let's say if you take an example of a typical machine learning life cycle, starting off with cleaning out data and then, of course, moving towards data processing and then applying your machine learning model. So, each of these particular steps inside of your machine learning cycle can be attributed as individual tasks. And your entire workflow would be a sequence of these particular tasks that can run badly. So, imagine that if there are multiple teams, you can define different set of workflows and each of these workflows can have a number of different tasks. And, of course, like, it's totally up to your team on how you want to define multiple tasks and how all of them incorporate these different tasks. And that's what Rohit will basically share in the next slide. Yeah, so, you can see here, so, if you have worked in the machine learning traditional methods, so, you can see, like, there is ETL, data ETL, extractions and stuff you do, then there is a classification model, forecasting model, there are different types of a model, right? Which is nothing but the projects you are using then. There is a domains which is nothing but different type of environment, which is development, staging and production. So, you can see here, it is just a logical group of tasks and workflow for built-in multitenancy and isolation, which is really showing as a project. And domains is, like, providing specific environment to execute your workflows. So, you can see, like, development, staging, production, like, if you are here, then you know these terms. So, you have heard from it long, long time and all. So, flights in multitenancy starts with, like, projects and domains. So, you can see here, like, there is no need for, like, separate environment. So, how? We will see it in some time. And there is, like, you will see, like, how the models may need to be used or worked upon by several teams with organizations. Then single ML pipeline can be compromised with several components, each assigned to them. The teams and then team members can go and they will be able to share the files and collaborate and stuff. So, everything comes under the flight multitenant ground or something. So, yeah. Then I will like to move on to Shiva and he will present you the demo. Thank you. And I think, like, one point that I want to quickly mention is that flights infrastructure was actually inspired by AWS. So, we know that AWS is very huge in the entire, in the cloud ecosystem. So, of course, what AWS allowed you to do is have a single infrastructure, but still be able to manage different aspects of your overall cloud native experience, whether you're just using EKS or ECS for deployment, using Kubernetes or you're using something like load balancers or spot instances to manage your workloads in terms of, like, how you can do load balancing. But, of course, it provides something like IAM support where you can have, like, different people working on specific parts. So, AWS in itself kind of inspires a lot of, like, multi-tenancy inbuilt inside that particular platform. And that's what, like, flight, and as we'll kind of give you a demonstration now how it kind of incorporates that multi-tenant features directly inside of the platform itself. And, again, like, you're not just limited to flight. You can use any other orchestrator platform, like Kubeflow, that also do provide multi-tenancy out of the box. But, yes, over to the next slide. So, of course, we'll now kind of cover the main aspects of flight that kind of are inspired by multi-tenancy. So, the first one is resource isolation or resource sharing. Now, let's imagine a place where, like, let's say you have two different type of teams. One is the DevOps team and one is the machine learning team. Of course, when it comes to the ML team, they're doing a lot of, like, data pre-processing and they're running these huge machine learning models that would require you to have larger compute, for example, using GPUs in order to train these models. Whereas, DevOps teams might not require that much amount of compute because they are mainly just using that particular model that has been generated or that model artifacts that have been generated by the machine learning or data science team. And they'll just use that for deploying that particular project. So, out of the box, you get very nice support for being able to isolate your resources so as Rohit kind of shared that flight has this entire architecture of having different projects. Now, these projects are essentially, you know, you can think of, like, two different teams. Team A, the data science team, having their own separate project. And the team B, which is, like, let's say, the ML ops team, having their own set of project. And each of these projects are basically comprised of different workflows and tasks. So, team A, which is the machine learning team, will have a bunch of different tasks that they are only wanting to use. So, all the resources and all the memory that will be isolated to them. And again, since this is working on a communities level, because it's a communities native platform. So, basically, whenever you run any task instead of flight, it basically generates a new community spot and it will have, of course, the namespace that gets generated will be just limited to that particular project and that particular task that you're running it on. So, you get native support for isolation at that particular task level as well. So, of course, like, this is one example where we have team A with running one kind of workflow which has, like, multiple tasks and then you have a workflow for team B. They are having a separate workflow with themselves. You could also probably have multiple workflows if you have a much more complex architecture. So, if you want to kind of demonstrate this now, let me quickly open up my VS code to kind of just quickly demonstrate this particular aspect. And let me just go over here. So, you'll be able to probably see that if I go to this particular team A.py and I'll just quickly also zoom in my screen. So, let me know if everyone is able to see this, right? So, over here, I have basically two different files. One is team A.py and the other one is team B.py if you're able to see it inside the workflows directory. Now, of course, team A is, let's say, a data science team that is using the wine dataset. They will basically use binary classification to detect what kind of wine there is. So, we have defined different tasks such as for fetching our data, for processing our data, and then we have a task for training our model. So, here, we are just using some basic machine learning steps that you'll do in a typical data science life cycle. And then, of course, we have workflow, which will basically be used to train our dataset on using logistic regression as one of our machine learning models. Similarly to this, we'll also have a team B. In this example, we have basically used the same kind of code, but imagine that this particular team B, which is like a separate team altogether, they might have probably some other workflows. For example, deploying that same particular code that you used, they will probably have some steps related to deployment. Now, the flight UI will basically show you two different type of projects that we have created. So, if I click on our flight, you can see that I have basically created two separate projects over here. So, the first project is the demo data science, which will basically refer to this particular file, which is the team A.py. So, you can basically define one particular project. So, what I did behind the scenes was that for this particular team A.py, which is one workflow, I assigned it to the particular project, which is the team... Let me just navigate back to over here. So, one second. Okay. Yeah. So, that is for data science team. And then the other demo, which is the team B, is for the demo team MLOps. Now, what I can do is I can run workflows directly from my local machine, and I can run these workflows that are isolated on a project level as well. So, for example, I'll just quickly take up one particular line where I'm going to be running these particular workflows, and I'll go back to my terminal, and I'll run this particular command. So, over here, let's do one thing, and let's run. So, what you'll see is, if I kind of zoom in a bit more, the command that I'm running is pyflight run hyphenp. Hyphenp basically stands for the particular project, and then I'm also defining that it should only run for team A. So, and then I'm also giving it the domain, so I can define whether I want to run this particular workflow inside of my development environment, my staging environment, or my production environment. And as soon as I run this particular workflow, what it will do is it will generate that particular workflow, and I can actually visualize that particular workflow right over here in my UI as well. So, in this case, let's just wait for it to load. So, now it will basically execute that particular workflow, and as you can see that it is only happening in that particular project that is for team A. That's inside of the data science demo, and then it runs all these particular different tasks that are there as an execution. You can also visualize it through DAG, which is basically being used inside of flight. So, it helps you to visualize the different domains and the different tasks and how they are interconnected with each other. So, a DAG representation also allows you to visualize your complex machine learning workflows very easily, right? And of course, all of this, the great thing is that all of this is running natively inside of Kubernetes. So, if you want to kind of get more information about that, let's say if I want to take a look at my task, which is get data, I can actually look at my Kubernetes logs, and that will basically show you how you were able to generate a particular namespace that is just specific to that particular workflow that we have just run. So, over here, if I quickly show you all the different pods that I'm running, then the latest pod that I just ran, which is basically in the staging environment, was for that particular task that I just ran. And this particular pod that I have just instantiated will only be limited to this particular task, and all the different team members or users which are part of this particular project and this particular workflow can only access it. So, I can define role-based access as well at a task level, at a workflow and a project level as well to provide you that kind of isolation because you don't want the MLops people to interfere with the workflows that are being run for the data science people, right? We don't want that to happen. So, you get isolation at the pod level as well, and of course, if you take a look at, carefully take a look at any of the namespaces that we generate, right? So, the namespaces that you see, for example, Team A demo production, so basically a namespace gets generated from the project and the domain that is like whether you're running it in the production environment, the staging environment, or in the development environment. So, all of that is natively supported over here. Now, if I go back to the resource sharing aspect, right? We can also actually do task sharing. For example, one workflow would be that, let's say, your team B relies on the model artifacts that you generate from team A. So, you can basically reference tasks from one team to another team when you explicitly define that because by default, you don't get that capability because every team is working in their own resources because of course, because of communities, like we are generating that RBAC control. But if you want to explicitly like, let's say, team A is working on the design team, they generate a model, now you want to deploy that model. So, you could basically refer to one of the tasks that is generating the model and use it inside of your team B where you'll basically use it. And again, like one such example, I'll quickly just go back to our project over here. So, one such example is over here where basically in our team B, we are referencing to a particular task that's from another project. So, imagine that this project is generating, this particular task is generating your machine learning model artifacts that you want to use to get deployment. So, you could basically do that. So, that's one another aspect that you get with flight of being able to share tasks across different projects. Of course, another thing would be restricted access with respect to RBAC. So, of course, you can define roles and role bindings. So, that you enforce RBAC control natively inside of your different projects and different, you know, different workflows. And then, of course, you can also define GPU and CPU requirements. So, for instance, like let's say on a CPU level, like let's say one particular task is a machine learning task. You can assign explicitly assign GPU resources and CPU resources to that particular task as well. And apart from that, you can define resources on a task level as well. So, for example, once as example would be, and I'll just quickly show you because we are running out of time. So, for example, you can define, while defining a task, you can also define a port template as well. That when you execute that particular task, what that particular unique port should look like. So, in this case, we're defining a port spec to ensure that we basically put some limitations on what resources and what type of GPU you want to assign to that particular task. So, all of this gets natively implemented instead of flight. So, that makes it very easy for MLOP teams to work inside of a single platform, as Rohit mentioned, that you don't need separate platforms for your data science team working on the Python lab notebooks. All of that can be handled easily inside of one infrastructure team and that with one particular platform itself. So, of course, you get resource isolation as well. And you can actively do declarative syntax or declarative infrastructure provisioning as well with the help of flight. But yeah, I know we are sort of out of time, but you can connect with us and we'll be open to questions. And if we don't get time for questions, we can, of course, connect after our talk. Thank you. Thank you.


Okay, so let me introduce myself a little bit. My name is Joe Ray. I currently am working as a Dell Science in Shopping. So our team are doing a lot of e-commerce related machine learning projects, such as the recovery system for detection and paid ads. So before joining Shopping, I got my PhD degree from NTU. At that time, our research topic is about the natural language processing and deep learning. Okay, so actually today's my talk will cover two parts. The first part is why the Python is so popular in the machine learning and data science area. And the Python practice that we use a lot. So the second part, I will pick up three basic tools that I use a lot. Okay, so let's start with this figure. Sorry. Okay, so let's start with this figure. So this figure is actually from the Indeed website. So the Indeed website is actually a job posting website. So the line represents the percentage of the matching job posting given the query. So the query consists of the various person programming language and machine learning and data science. So if the number is high, it means the demanding is high. So as we can see in this figure, for actually the data is quite outdated. But after 2016, the Python has been ranked number one in the machine learning and data science. Okay, so as can be seen in this figure, Python is the most popular programming language in the machine learning and data science areas. So why the Python is so popular in data science? Based on my understanding, I think it can be, it actually has three factors. So the first one is Python is actually quite simple and elegant and consistent. So compared to C and C++, Python is actually a very high level programming language. It's very easy for us to pick it up. And also it achieves a trade off, a good balancing between the complexity and also the performance. Because as we all know, the most used Python interpreter is C-Python, which is right in C. So the performance is actually guaranteed. And also because the Python is a kind of open source, so it provides a full collection of tools to do the machine learning modeling and also deploy the machine learning models. So in our team, actually we use a lot of Python tools. So here I just give a very brief summarization about the Python tools that we use a lot. I just summarized into four aspects. So the first aspect is the data processing. So we will use pandas, actually it's kind of like Excel in the Python. I think our college will, for operation team will introduce it later. And also we have the Mac Pro Lib, which can help us do the data visualization. And also we have kind of like multi-processing tools, which help us do the parallel computing to speed up our process. Okay, so for the machine learning part, we use Cyclo, which provides an implementation of a lot of machine learning models. And we also have a Cyclo image and OpenCV for image processing. So for if we want to do the natural energy processing, we will use Jensen, we will use ARTK, but if we want to do the deep learning models, we will rely on the TensorFlow and Keras. And if we want to deploy the machine learning models on distributed computing platform, we will use Spark machine learning library. And also after the model deployment, we can use the web server API to deploy our models. Here we can use Flask and Geonicon. And also we will use a lot of other open source tools. For example, XGBoost, like GBM, to realize some machine learning models. And if we want to realize a very efficient database, we will just use the Redis. And if we want to do the kind of like job scheduling, do the cone job things, we will use the Airflow to help us kind of automatically do the job scheduling. And we will also use a notebook, which is kind of like web-based interface to do kind of like, to do the rapid prototyping of the machine learning projects. So here today I will pick up three basic tools, but I, sorry, okay, sorry. Sorry, could you? Sorry, Michelle. Okay, so actually today I will pick up three tools. So the, I will not touch the machine learning path because of today's conference is for the Python. So I will talk about three basic tools that actually help us a lot when we do the machine learning model deployment. So the first thing is the, it's named the Virtual EME. So Virtual EME is actually a very strong, very strong Python package that help us to manage the Python project environment. So why is controlling the Python dependency is quite important? Because, so let me take the TensorFlow as an example. Actually I want to ask how many of you guys have heard TensorFlow or used TensorFlow before? Well, quite a lot, cool. Okay, so I think for these people you know this or use this, you must know that TensorFlow actually has a lot of versions. So TensorFlow is actually a scientific computing library developed by Google, and Google is actually very actively maintaining this package. I think every two months a new version will come out. So for example, if two months ago, we were trying to build a machine learning model based on TensorFlow, we may use TensorFlow R 1.5, but maybe after two months past, we want to deploy our model. So we need to transfer our project from our previous server to another server. So the server may be the live server, right? So we just copy our code and we want to install the TensorFlow, but we may just wrongly install the newest version. For example, the R 1.7, because between the different versions, the syntax may be different. So it may cause some problems if you want to just wrong this code, this project. So it means it is very, very important to keep our Python projects dependency very clean or in a self-contained sub directory. So it is not easy to transfer your project from one place to another space. So that's how does the virtual environment help us to do that? Okay, so here the virtual environment will help you to manage the Python environments. And based on the virtual environment, we can create a complete and self-contained Python runtime environment in the sub directory. So in this way, we can just install all the Python packages specific to this project. Okay, so later I'm going to do a quick demo about this virtual environment. I'll go to mic. Okay, thank you. Okay, so I'm trying to connect to the streaming computer. Okay, I think, okay, okay, cool. Okay, so currently we arrived at a terminal. So we, firstly we open our terminal and if you, for example, if we want just to create, firstly I go to this folder to make it clean. So there's nothing here. So firstly, if we want to create a virtual environment, we only need to say virtual EMV and then we follow by a folder name. Actually the folder name, sorry. I just test the wrong name. Okay, so we just follow by the folder name. So the folder name actually will be the environment name. So we can see here we have a new Python exist in this folder. And then they are trying to help us to install the pipe and also set up tools. It may take some time. I think it will be fast, yeah, let's wait. And also we can, so here is actually they're trying to build a virtual environment for us. It may take some time. Okay, cool, so it's done. Okay, so if you want to, so actually what are these comments help us to do, they create a folder. So you can see we have a folder here and they will create some Python packages and also the PIP for us, so under this folder. So if we want to, so if we want to activate this thing we need to say source the folder name which is also the environment name and then being activate.  So if we want to test which kind of Python environment we are in, so we only need to type which Python. So actually this one is points to the specific location. So for compare, if I just go to another, to my default setting, so if I type which Python, actually that default to different locations. Okay, so it means the left environment will be independent from the left, from the right environment. So these two environments will not disturb each other. If for example, if we want to install a specific on-py package version, so we only need to type PIP install right and at the same time I think we can test which non-py version in our default Python setting. So import non-py and I, import non-py, I think the computer is quite nervous. Okay, I just print a non-py version. Okay, so the version is 1.8, right? At the same time in the virtual environment the non-py is also already, so let's just test this non-py. This non-py should be the specific version that I just installed before, so it should be up 1.11.1. So if I print non-py version, so it's the exact version that we want. Okay, so and also a good thing is that the PIP applied us a very good function to help us to manage to record the Python package that we have already installed. We only need to use a PIP freeze, so it will just list all the packages that you have already installed. So if you want to do a record to a local file, you just, for example, you can just print this package information to a TXT, okay? So actually we just generate this TXT. So if you, okay, sure, sure, sure, sure. Actually, I don't know how to do that. Okay. Okay, I got it, okay, okay, so it's, okay, so it's, okay, cool. Okay, so by doing this way, so we can have this local file, right, requirements.txt. So next time, if we want to replicate the Python environments, we only need to copy this TXT file to another location, and if we want to install the same package, we only need to create a new environment and then use the PIP install and dash R and then point to this local test. And it will help us because we're already in the same environment, so let me deactivate, then we will jump to another, we will just exist from the existing environment. So by doing this way, we can easily manage our Python environment and do the project transfer, okay? How many environments can we create? There are limitations. There's no limitation. We can create as much as you want, yeah, okay, cool. Okay, so that's how to, Michelle, could you go back to the slides? Cool, okay, so, okay, so based on the previous demo, the virtual environment can apply these basic comments, so that we can use the virtual in LV followed by the environment name. And also if we want to point our environment to a specific Python location, so we just need to pass the Python location to this comment. And if we want to activate this environment, we only need to say source and environment name and being activated. And if we want to just exist this environment, we only need to say deactivate. And also this can, like two Python comments will help us easily transfer our project. Okay, yeah. Okay, so, I think the slides, is that the reason? I think there are other slides. Oh, I think the slides, could we jump to, okay, cool. Okay, I see some slides are kind of like jumping to the front page, okay, cool. Okay, so the second tool that I want to introduce is the Jupyter Notebook. So Jupyter Notebook is a kind of like browser-based interface for us to do a rapid prototyping of machine learning and data science projects. So from its official website, so they introduce themselves as following Jupyter is an open source project aiming at creating a better work experience for the data scientists. So the Jupyter Notebook actually has a following good points. The first one is provide interactive and a scripting spot. And the second point is just a browser-based. So it's very convenient to open it up and also it supports windows such as tests and the code and the graphs and also the even videos and the pictures. So based on, so because of these points, so it's very convenient for us to share our code and do the collaboration work. So I'm going to also do a quick demo about the Jupyter Notebook. Okay, so in the Jupyter Notebook, I actually I have created a environment before so I need to activate this environment and this environment have already installed the Jupyter Notebook and other packages I will give the demo. Okay, so if we want to open the Jupyter Notebook, we just need to say Jupyter Notebook. And the browsers will automatically open up the interface. Okay, because I need to change the screen, I need to change to the... I think I need some time. Yeah, I think here, here maybe, maybe fast. The browser has already, okay, here we have arrived at the Notebook interface. So here is actually what Notebooks looks like. So if we want to build a new Notebook, we only need to click new here and then we want to, our kernel is based on the Python 2. So then it will create a Notebook. So that's actually what does the Notebook looks like. So the first thing is that we can change the Notebook name. So we only need to click the untitled and put for example, hello, POSG. Okay, so actually though, this one is named the cell structure which is a very important concept for the Jupyter Notebook. So because in the cell structure, we can put code here, we can even put markdown test here if you are familiar with markdown syntax. And so based on the, because of the cell structure, we can easily segment our code into different parts. So here I will give an example. For example, you want to import the NumPy and we only need to click this wrong and the NumPy package will be imported here and if we want to generate some random numbers, so we just need to tap A is equal to MP dot. If we've got the common name, right, we only need to hit the tap. So it can help us to do a kind of like automatic suggestion. Let's zoom in this test, okay? So we only need to the random and if I still cannot remember the function name, so I still can hit tap and it will just give me the suggestion and not be funny at this function, but if we don't remember the function usage, we only need to hit the tap and shift and shift and it will kind of like give the documentation for the function. So here we want to generate 10 random numbers. So we only need to do this way and it will help us to generate, oh sorry, I think I need to pass aside here. So it will help us to generate numbers and we can just print this number. And also if we want, and also even we can kind of like print this, we can also plot this array. I think the mouse is not so smooth, okay? So if we want, we can also kind of like print A as here and also if we know the markdown syntax, we can also make the cell structure as a markdown and we can do, this is notebook. So it will be kind of the, it's actually the natural test can be intended to this notebook very smoothly. So based on this kind of structure, it will help us to do a very rapid, very fast prototyping and also we can share our code very easily because it provides a lot of explanation tests and also the images. Okay, so that's Jupyter notebook parts. Okay, so let's go back to the slides. Okay, so finally we go to the last point. The last point is actually the parallel computing. So what does parallel computing do? Parallel computing helps us to use the CPU with multiple cores so it can help us to speed our computing process up. So, but actually the Python is not suitable for parallel computing because of the global interpreter log. So it means at that time, at each time, so the Python only allows one statement to be executed. So, but actually the Python has a multiprocessing package. So because of the multiprocessing package, it can allow us to kind of like, spawn multiple sub-process to overcome the disadvantages of the global interpreter log. So here is some good points of the, and also some bad points of the multiprocessing package. The first thing, we'll take advantage of the multiple CPUs, and also it is a very robust way because failure of one single process will not affect others. But because the multiprocessing will submit the jobs into different distributed memories. So it definitely will consume a lot of memories. And also, multi-processing Python package is good for CPU-bounding tasks. So it means if your task needs a lot of mathematical computation, you can use the multiprocessing. But if your task is IO-bounding, which means if you need to process the fails from the hard disk, you may consider the multi-sliding package. Okay, so here, because of the time limits, I will only introduce one path belong to the multiprocessing, which is named the pool. So the path pool from the module multiprocessing can be used to split our tasks into different chunks. And each chunk will be executed in parallel. And also the pool is actually to present a pool of one or more process that can execute independently available process call. So I will use the Jupyter notebook that I introduced before to illustrate this idea. Okay, actually I have already prepared a notebook fail here, so I will need to open it up. So the, okay, I need to use... Okay, so that's the notebook we have arrived. Okay, so we have arrived at notebook. So the first is the process pools. So first at cell block, we define a computing function. So what does a computing function do? The computing function is kind of like a very trivial task. If we give a positive integer n, and we just all calculate the summation of the square of the numbers, a sample from the range from the one to the n. So we run this code block, and then we have, for example, we have, we just randomly generate 40 random numbers. And these numbers are sampled from the range from zero to one thousand. And then we can just check the first 10 numbers. So the first 10 numbers are shown here. So a very, very intuitive way to do the, to apply this function, we define before on this array is that we just apply it sequentially. So we just do a for loop on these numbers, on these numbers, and then we feed this number one by one to this computing operation. And then we can run this block. I think it may take some time because it's a sequential way. And we use a time package to give the calculation. So we can see if we want to process 40,000 numbers, it may take us for 7.5 seconds, okay? So here, I, here is the parallel processing. So we can actually, we can split all the tasks this array to a different chance. And the different chance can be executed, can be processed in the parallel way. So here is also a markdown, a markdown syntax. We can just insert the image in this notebook. And so to, to, if we want to use the process, a multiprocess pool, we only need to call this command. We just define, define the multiprocessing pool and also put the number of costs into this function. So here we, we set the number of costs is equal to two. So it means we will use two costs at the same time. So we, we first initialize the disk.


We got a nice quick New Jersey and retail news chat this month. Hey there, jrew22.com here with another quick little update for our New Jersey supermarkets and retail observations, I guess you can call them, but we're gonna do four little points this month.  General Mills is candy-fying their serials for kids. You know, cereal, no matter whether it's gross granola or sugary tricks, they're just no good. But this is Hershey Kisses. It's literally, they're trying to mimic chocolate, a bowl full of chocolate. I looked at this tiny box here at the shop right and it was 240 grams of carbs per box. And that was only like a 10.8 ounce box. They sell these massive 20 ounce boxes at Walmart. Another place is, and that's like, you're pushing 500 grams of carbs.  And it's just not, and it's cheap, forget about it. It's just, I had to talk about it. One good thing about shop right, for instance, is if you look around, not just in the food section, sometimes they just shove deals up on top of the freezers in certain sections. And we found this box of this 250 piece box of blocks for kids. And it was only $14.99. This was after Christmas. And I checked it out. It was like over 50 bucks for a similar item on Amazon. So we didn't buy it. I'm gonna go check the next time we're out there to see if kids love this stuff, you know. Keep some busy. If you keep some busy for an hour, it's worth it. And here's another ridiculous thing I saw in one of the Shop Right Flyers recently. And it's this big promo on the front of the page. It says, wow, free pickup if you spend over $99 on their app. And I'm thinking to myself, wait a minute, when I go to the store to buy my food manually, it's always free, except for paying for. Like I didn't realize that when you order on the app that you have to pay a pickup charge. Why? I really don't, I mean, I guess the pay for these people to walk around for you. I don't see the logic in ordering and paying extra for it. It's just another way they probably make a profit on it. Anyway, and the last thing I think is kind of interesting in this, I scratched my head and I saw this whole big section in the Shop Right Flyer. It said, kickstart your day. And I'm thinking, oh, what are they gonna have? Like bacon and eggs.  I guess, and I like to twist the words around here. I think the only thing you'll be kickstarting is your massive diabetes file with your primary care physician. And not only that, he'll be smiling and patting his buddy and the pharmaceuticals on the back when they're playing golf on Wednesdays. Anyway, that's it. I'll see you next month. I had a short one this month, but keep your eyes open. If you have any interesting things that we should check out, shoot me in the comment or hit us on an email, please hit the like and subscribe and I'll see you next video.


Hi, I'm Joshua. I'm Mike. And I'm Daniel. And the 2022 January What's Neat starts right now! The What's Neat Show is sponsored by Lombard Hobbies, your value hobby shop for over 40 years of modelers helping modelers. Big inventory, value pricing, fast shipping, and great service. Additional support is provided by Walthers Trains. Everything you need to build a great mile railroad. Check out their website at Walthers.com. And by Bachman Trains. Now that's the way to run a railroad. Check out their website at BachmanTrains.com and thank you for helping us support the best hobby in the world. This is What's Neat for January 2022. I'm your host Ken Patterson. And this month we do have a good show in that John Fowler walks us through from start to finish everything about printing with 3D printers these days. That's all the rage. I've got two models sitting here that we got from G&L Robotics USA.com. Greg Summerland had shared with us these machines that he actually sold to James Regear. And James has been using them an awful lot as his house is being rebuilt. So he's left them here in the studio. Recently he's printed eight O-Scale Clyde stales in this device. This is the Anticubic Photon Model X, which is one of the largest print beds available to us hobbyists, whereas he was able to print eight Clyde stales at the same time on this machine. So it's got a very large print bed for 3D printers. And this, in fact, is a resin printer. There are two types presently. There are resin printers and there are filament printers. The filament printers are the ones that have like the weed eater type line. Similar to what we showed on the December 2015 what's neat with the Dremel 3D Idea Builder print machine, which was all new technology back then. And that machine back then was at $999 available at the Home Depot. These machines have truly come down in price since that. Next to it, I've got the Warsh Station, the Anticubic Warsh Station. And what that does is it washes the models after they're printed in alcohol, which cleans off the excess sticky resin that may be on the model after it's printed with the resins in this machine right here. And then it also has UV lights. So the model is spun around on a flat turntable as the UV lights further cure the model into complete hardness. And John Fowler walks us through the entire process, sharing with us his print farm, I would call it, where he has multiple types of machines, including these, set up. And he shares with us how he builds O-scale tunnel portholes from start to finish. And he's very particular in that he wears a lab coat, gloves, respirator, and vents the fumes out of his studio. So he's very cautious with regards to that.  Also on this video, Denny Yelsma shares with us his wonderful railroad club down in Jacksonville, Florida. It's called the Jacksonville Terminal Railroad Model Railroad Museum Club. And it's absolutely amazing in that this is a double deck layout. It's designed for operation. They do use a timetable, a schedule, a fast clock, and they're very strict about how they run their trains on this layout, which further enhances the hobby for so many people. Also, I'd like to make sure that you check out the What's Neat this week video podcast that we record every Saturday night, bringing you updated on all the new products in the hobby every week, and including special guests, modelers just like you that have great layouts and great talents to share with all of us. It's a fun show with our podcast crew. And again, you can check it out on YouTube, What's Neat this week, and Model Railroading. And with that, let's continue on with the rest of this January 2022 What's Neat. Hello, this is Michael Gross, and you're watching What's Neat with Ken Patterson. Hey, everybody, John Fowler. In this video, you'll see how I set up multiple print jobs and all the post processing necessary to produce the parts for these great looking tunnel portals. This particular order was produced for a gentleman in Southern California. He requested also that I paint and weather them. Of course, the first step is always PPE. I use gloves and a respirator. I also wear this lab coat to keep the resin off my clothes, and this stuff will get on everything if you're not careful. Before I open a bottle of resin or take a cover off of a resin machine, I turn on the exhaust fan. This removes resin fumes from the room. This is a one quarter horsepower air mover that I mounted in the window. I show how to build the mount in a future video. On this day, I had a full bottle of used resin. Used resin may contain small bits of cured or half cured resin and needs to be filtered before it can be used again. Used resin accumulates because after a job is done printing, I store any leftover resin in this one liter bottle. This allows me to conserve filters by filtering a whole liter at a time. Here you see the equipment and supplies used for filtering. A funnel, a filter, a lot of paper towels, and a container for discarded paper towels. These are the same filters I used to filter paint when I mixed paint for airbrushing. These filters were purchased from Amazon. I choose the smallest mesh available. The funnel is placed in an empty one liter bottle and the filter is placed in the funnel. Resin is poured slowly into the filter at the rate at which it drains. When all the resin is filtered, the equipment is wiped clean. Cleanup after every step is an important aspect of resin management. Now that I have cleaned the resin, it's time to check the resin tanks. On this day, the tanks were free of liquid resin, but still needed a final cleaning with glass cleaner. A plastic container lined with the soft cloth is used to support the tank while it's being cleaned. The cloth protects the bottom of the tank, called the FEP, or FEP, from being damaged. FEP is a transparent, low friction membrane that is stretched across the bottom of the tank frame like a drum head and is susceptible to damage. Spray away glass cleaner is used for the final step in cleaning the FEP. This can was purchased at Walmart. Paper towels and tissues will scratch the FEP, so a piece of cotton fabric is used to wipe the FEP. Holding the tank up to the light allows me to see any remaining residue and to check for any little pieces of cured resin that need to be removed. Cured resin left in the tank can damage the FEP and even the LCD on the printer if a job is run without removing it. The hardened pieces can be stubborn and difficult to remove. In this case, a piece of low-tech, magic transparent tape was used to pull it up. On this job, in addition to the mono-X, I'll be using two smaller sonic minis. The tank cleaning process is the same for these machines. It's time to install the clean tanks on the printers. The tanks are held in place with finger-tightened bolts or screws torqued until they're just snug. At this point, the build plates are also tightened, wiped down, and checked for any cured resin still attached from the last print job. While the cover is still off, the resin is poured into the tank. I shake the resin to ensure complete mixing. Air bubbles introduced by shaking will rise to the surface of the liquid if left to sit for 15 to 30 minutes. At that point, the bubbles can be soaked up with a paper towel or moved to the edge with a scraper. Each machine has its own flash drive. The print files are copied from a computer onto the drives and the drives are plugged into the printers. The printers access the drives for the duration of the print. The prints are started by navigating via a touch screen on the face of the printer to the desired file on the flash drive, selecting the file and pressing the start button. Here's a time-lapse clip of the print job. It ran for over nine hours overnight and was ready for washing in the morning. When the prints are finished, the screen displays the time it took to print. A record of hours of use are kept for each machine in a production log. Keeping records also aids in troubleshooting failed prints. At some point in the future, I'll be able to report how many hours these LCDs really last. The freshly printed parts are still covered in liquid resin. The resin will be washed off in a bath of isopropyl alcohol. Handling the parts in this state can be a challenge as they are very slippery and difficult to grip. It is also possible at this stage to mar the surface, so care in handling is required. The build plates are removed in preparation for de-plating. Liquid resin will flow off the build plates and parts so they are immediately placed into a container. If the parts were small, the excess resin could be drained back into the resin tank. A putty knife with a sharpened edge is used to de-plate the parts. Using a prying motion to pry the parts off often results in a broken part, so the knife is kept as flat as possible in an effort to slide it underneath the model. A consistent light to moderate force toward the plate and the part yields the best results. It may require up to a few minutes of this constant force, so patience is required. Parts with a large footprint generally have greater adhesion and are more difficult to de-plate. Build plate adhesion can be affected by a value set in the slicing software and by the texture of the build plate. The balance between adhesion and ease of removal is determined during the initial runs on each machine or anytime a different type of resin is used. When washing the parts, I wear a face shield to protect my eyes from splashing alcohol. Models covered in slippery resin are easily dropped and very often it's into the alcohol. I also keep the respirator on because even though it's mostly diluted, resin dissolved in alcohol still gives off irritating fumes. These plastic coffee containers have airtight lids and are good for storing alcohol and are large enough for most of the models I print. Smaller plastic salsa containers are used to make this inner strainer. About 10 small holes are drilled into the bottom rim to allow the alcohol to drain out. These are used to hold small parts. The models are put through two baths. The first bath is 90% isopropyl alcohol. The second is 70% alcohol and is only used as a rinse. Parts are left in the 90% bath for 20 minutes. After being removed, a soft brush is used to brush away the diluted resin. Then the parts are brushed and rinsed in 70% IPA. After the rinse, they're left in a box lined with paper towels to dry overnight. It's good practice to let them dry for as long as 24 hours so that any alcohol that has penetrated into the model is evaporated. After they're dry, the parts are placed out in sunlight to cure. On this day, the UV index was 9 according to the local weather report, so the parts were left for about 10 minutes and then turned over. After another 10 minutes, the parts are taken inside and left to cool to room temperature. The models are washed in laundry detergent and water, rinsed in clean water, and left to dry. When dry, the models are ready to assemble, prime, paint, and weather. I'm Denny Yeltsmaugham. Many of you know me from Yeltsmaugh graphics, the guy that makes all the railroad and embroidery clothing. And you've seen me at a thousand train shows all over the United States. And some of you know me from the What's Neat. I will be a special guest on What's Neat this week with Ken Patterson. But today you're going to see me in a little bit different light that you normally see me. I'm a member of a model railroad club here in Jacksonville, Florida. And it's a really special treat that we have for you today because this club is one of the finest railroad clubs in the Southeast United States.  And I'm a member of this club and every Friday I get the pleasure of coming and running trains. You know when Ken Patterson ends his show, he always says, let's go run some trains.  We're here inside the Jacksonville Terminal Railroad Museum Club Layout. I want to tell you a little bit about this layout. It's extremely unique. It's in a building that's 25 by 45. It's actually three levels. We have two helixes. We use code 100 for the main line. We use code 83 for some of the sightings and code 70 for some of the yards. We have hand throws and then we also have electronic throw switches. All the track is controlled by signal and we are depicting in this layout Jacksonville, Florida area. A 50 mile radius of Jacksonville and it's from Jessup Georgia all the way south to St. Augustine and all the way west to Baldwin, Florida. About a 50 mile radius of Jacksonville. Jacksonville, 90% of the trains that come into the state of Florida go through the city of Jacksonville and what this museum is doing is depicting the era from 1939 to 1974 and we run in era and every Friday we have a running session and it's really neat to come here and have a running session because we walk in just like a regular train crew would walk into the group orders and we get our orders and we're assigned a train and we start operating. Right now the club is operating in the year of 1946 and we run passengers and freight and so most of the buildings are hand built from kits and somewhere stretched built. We have some very talented members here. The club has around 15 to 18 paying members that varies and on an operating day like the day we typically will have around five to six people operating because we normally run four to six schedule passenger hand freight trains a day. So let's go watch some of the trains move around this layout. We're going to first start at the Jacksonville terminal and that's what this club is named the Jacksonville terminal railroad museum club layout and Jacksonville had a beautiful train station and we have this depicted and you'll see different sites around this layout that are actually there everything is pretty accurate because we have photographs and what as I said before I think this is one of the finest layouts that you'll find in the southeast united states. We're going to start this tour of the museum layout right here at the Jacksonville terminal railroad and we have a model here of the Jacksonville terminal this terminal was built around 1918 or started in 1718 and this what you see here is the Jacksonville train station and where all the trains are made up and so from here we go off to the west which will end up in Baldwin Florida and then to the south we cross the St. John's River and we go to Bowdoin Yard and the Florida East Coast okay what we have here is a model of the Trout River bridge this was on the main line of the seaboard north Jacksonville this is uh depicts the Trout River one of our members Bill Hardy made this scratch building it's absolutely gorgeous and this bridge is all uh controlled by signals what we have here is west Jacksonville shop and yard we have a operating uh table that moves back and forth but this here depicts the seaboard's operation in west Jacksonville what we have here is Simpson Yard Simpson Yard was the termination point for the southern railroad to Jacksonville Florida this is where they changed the engine facilities and refueling and all the passenger trains and freight trains that would be destined for Jacksonville Florida would go to Simpson Yard for the southern railroad we have here is the scene that depicts the Florida Georgia border where the Atlantic coastline crossed the St. Mary's River this scene is so unique I get really excited about this scene because when you look at the detail that is around the river the bridge the whole sea is just outstanding now an interesting story about this bridge it's kind of dear to my heart is this bridge was in my house in a pile of junk and if you saw this bridge you wanted to throw it away and I was talking to Bill Hardy and he says hey we could use this bridge at the Jacksonville Terminal Railroad Museum layout and I said we'll go for it and I gave him the bridge and just look what this gorgeous scene looks like now we're here at Folkston Georgia this is a very interesting place on the Atlantic coastline it was a place where the tracks diverted one going to the north and the other one to the northwest to Wakefoss Georgia and there was a lot of trains that went through Folkston Georgia and today there's a nice viewing platform there and what we're going to see here in just a second here is the train in 1946 the south wind and it originated in Chicago and it was pulled by the Atlantic coastline steam engine this train is exactly how it was one of the things that we pride ourselves here at the Jacksonville Terminal Railroad Museum is that each train is exact how it was when it ran in that particular era the cars we have our own member that is a scratch model builder and boy we make sure that everything is exact this is Folkston Georgia what we have here is one brief yard this was the major yard in Jacksonville Florida for the Atlantic coastline and running parallel to the one brief the southern was over to the west but a lot of activity happened in Mon Creek yard and what you see here is exactly how Mon Creek yard looked on the Atlantic coastline you have to kind of forgive me sometimes for getting excited because I get excited about a lot of a little detail about this model railroad what we have here is the train station at south Jacksonville very few people actually know that there was a train station at south Jacksonville on the floor of the east coast at one time at this section it went out to the beaches and then in the going south it went to Bowden yard but the detail that we have on this layout of this small little station is depicted on this railroad what we have here is Bowden yard this is the northern terminus of the Florida east coast railroad and for those of you who don't know anything about the Florida east coast railroad it was founded by Henry Flagler John D Rockefeller's business partner and he came to Florida and he built the Florida east coast railroad that ran from Jacksonville to Miami Florida 358 miles and what we have depicted here is the northern terminus yard the home yard their big one and it's called Bowden yard and the president of our railroad club here is Rodney Butcher he spent 44 years as an engineer running out of this yard here Bowden yard here in Jacksonville Florida and another footnote about Bowden yard which is extremely interesting why this club is so accurate on its history and depicting everything rooms showed you a picture of south Jacksonville right there was the original Florida east coast yard but in the real estate boom and the big boom in the 1920s Jacksonville and the railroad grew so much that they had to move it seven miles south and they created Bowden yard and they made a two double main line headed south and that's how Bowden yard was created we're in St Augustine Florida as you can see here the scene here we have the train station we have the Howard Johnson and we actually have Miller shop the Howard Johnson was not built until the 50s and this train station here wasn't built until the 1950s and it was a really futuristic train station at that particular time you got to remember that the Florida east coast was a seasonal railroad heavy traffic in the winter time and very slow in the summertime it was mainly passenger trains perishable such as fruits and vegetables in orange juice nationally and when the season came in that's when the railroad really got busy but the main part of their business was seasonal purist northerners coming down to sunny Florida they came from the new york area and the chicago area and actually they actually had more trains coming out of the midwest than they did out of the northeast but this is st augustine florida what we have here is fernandina beach this is a branch line of the seaboard and actually fernandina is very historic in rail history because it was the first railroad that ran from fernandina to yule to cedar key and the founder of that road was a guy named david yule and there's a town just north of jacksonville called yule but this here is yule florida it was basically a paper mill town it was a mill town and the seaboard brought in pulpwood and we picked the scene of fernandina and i think they did an outstanding job we have downtown fernandina some of our members did just an outstanding job on the different buildings fernandina it's an rs 3 heavy with pulp you can see is the uh pulpwood yard and on the seaboard this was heavy one of the greatest joys that i have is coming to the jacksonville terminal railroad museum club layout every friday not only is this a museum it is a working h o layout club and when i walk in that door i'm just totally excited because the first place i go is this right here and this is where i pick up my train order because on friday is operational day and this is when i pick up my orders to run the train that i'm assigned the day my train order is the sun queen and this is the train for the seaboard airline and right here is all my orders and i have special orders just like on the real railroad and we operate schedule and i take my orders i go to my train i do all my testing before we take off i get a hold of the dispatcher and then he tells me when i could leave the yard but it all starts right here where we are signed and this is kind of our crew headquarters right here but it is such a joy to come and run a model train layout in a museum quality type of atmosphere and run trains the way they ran in the day that they were running okay where we are now is that what we call f and j yard it's the north end of downtown jacksonville and it's the fernandina jacksonville yard uh the railroad where it first started went from fernandina nasa to jacksonville and so what we have depicted here is the yard and the switching that took part in the everyday operation of the north end of f and j yard and this was served by the seaboard uh carillon railroad and the southern and what we have here is uh a lot of heavy industry i think the same reason what we have here is just outstanding this club is basically known for running passenger trains but we do have a complete industry set here and one of the little items that i really like is the president of our club ronnie butcher has his grandfather's general store that is located right over here and in this section and he has midi fond memories that he tells the club about when he was a little boy watching trains and going to his grandfather's store so once again not only are we a model railroad club but we're on the zine what you see here is the telegram dock area uh as time went on they had to dredge the st john's and they made the first municipal dock in the railroad's sort of this particular area what we have here is the roundhouse of the industry facilities just rest of the jacksonville terminal uh station uh what you see here is the roundhouse this was scratched built from photographs and blueprints by jack wagman a long time member of our club uh who was a semi professional photographer and scratched built this entire uh roundhouse area the turntable does work basically we have a rule in our club that once the crane engine car gets on we don't want to touch it physically and so we move and make all of our moves and switch them all with the uh uh crawlers of our dc seat on behalf of ken petterson and the what's neat show we want to thank the jacksonville terminal railroad museum for allowing us to come and film this outstanding layout but before we go i want you to meet some of the members that keep this railroad going first of all we have greg who is an outstanding modeler and we have naturally the president rodney who is 44 years of florida's coast railroad engineer retired and he does keep us straight and we have mike who is a professional model builder and that's what he does for a living and then we have richard who's another outstanding member that makes a lot of models on the railroad that you've seen so once again we hope our fans across the world enjoy this club layout and so from jacksonville florida that's all saying goodbye all of the products seen on this episode of what's neat are available from lombard hobbies in lombard illinois or order online at lombard hobby dot com walthers trains supporting hobby retailers across the world since 1932 check out their website and learn more at walthers dot com bachman trains now that's the way to run a railroad check out their website at bachman trains dot com


And the passage of Scripture we want to look at is in 2 Chronicles chapter 15 verses 1 through 7. It was May 23rd, 1939. A diesel electric submarine called the USS Squalus set out on its voyage from Portsmouth, New Hampshire. As they went out into the Atlantic Ocean suddenly, unexpectedly and without warning, there was a catastrophic system-wide power failure in that submarine and it began to sink. Down, down, down, down it went until it rested 240 feet below the surface of the ocean. Trapey inside were 33 men. They were in utter darkness. Their oxygen supply was running out. As you might imagine, they had issued a Mayday and so naval vessel was, rescue vessel was sent to the site where the Squalus went down and a diver putting on special gear went down, down, down until he got up next to the USS Squalus. And inside those 33 men they could hear the metal boots of the diver hitting up the side of the submarine. They knew someone was out there. And so they grabbed a wrench and they began to tap a message on the side of the submarine in Morse code. You know that unique system of dots and dashes whereby you can communicate. And so when the diver went down and he's beside the submarine, he could hear this tap, tap, tap, tap, tap. He could hear this message and knowing Morse code, he immediately began to decode the message. And over and over those 33 trapped men in utter darkness were tapping out this message. Is there any hope? Is there any hope? Is there any hope? And I believe the message they were tapping out that day is the message so many people are asking about our country right now. When you look at all of the chaos and all of the confusion and all of the division and all of the uprising and all of the immorality and all that's going on in our country, people are asking the question is there any hope? In the Bible 2,800 years ago, there were a group of people in the nation of Judah who were asking that question. Is there any hope? They were asking it in the days of a king named Asa. And the word of the Lord came to a prophet at that time. His name was Azabriah that answered the question of the people that analyzed the situation in the society and gave a solution to the problems they were facing. Now, Asa was the fourth king of the southern kingdom of Judah. You remember King Solomon ruled over the United Kingdom, but then the kingdom divided. Jeroboam took ten tribes up in the north and Rioboam took two tribes in the south. Rioboam had a son, that son's name was Abijah and Abijah had a son and his name was Asa. Asa that means was the great grandson of King Solomon. And Asa in the beginning of his reign, he was a good king who sought the Lord and because of that God blessed him and God blessed the nation because the nation was seeking the face of God. So much so that later you can read in the previous chapter, chapter 14 of Second Chronicles on one occasion they were facing an enemy from the Ethiopians of one million soldiers. They only had 300,000 soldiers, but because the Lord was on their side, he brought them a great victory. But the time between chapter 14 and 15, something had happened. Time had gone by and like so often happens, nations turn away from the Lord. They turn their back on God. They move away from their roots and trouble and difficulty comes to their nation. And in their time of trouble as people were asking the question, is there any hope? The word of the Lord came to a prophet named Azariah. His name means the Lord is our help. And he began to give the word of the Lord. He began to give a message of hope that would show people what to do when their nation is in trouble. Look then at Second Chronicles chapter 15 verse 1 through 7.  And he went out to meet Asa. And he said to me, hear Asa and old Judah and Benjamin. The Lord is with you while you are with him. If you seek him, he will be found by you, but if you forsake him, he will forsake you. For a long time Israel has been without the true God, without a teaching priest and without law. But when in their trouble they turned to the Lord God of Israel and sought him, he was found by them. And in those times there was no peace to the one who went out, nor to the one who came in. But great turmoil was on all the inhabitants of the lands. So nation was destroyed by nation and city by city, for God troubled them with every adversity. But you, but you be strong and do not let your hands be weak for your work will be rewarded. When the nation was in trouble, when Judah had turned away from the Lord, Azariah gives a message from heaven that gives an answer to people who see their nation in trouble. And I believe this passage, as you look at what was going on in Judah, so directly parallels what we see happening in our country and gives us instruction and insight for what we as the people of God ought to be doing right now. Now in these important verses I see three things and if you happen to have a piece of paper and a pen I would encourage you to jot these three things down because I think they'll be a blessing to you and you can share them with others. So they might know what to do when a nation is in trouble. Three things we see in this passage, number one the crisis, number two the cause and number three the cure. The first thing I'd like to point out in this passage is the crisis that was going on. You see this in verse five and verse six and in those times and in those days there was no peace to the one who went out nor to the one who came in. So it was a time when there was no peace, there was no safety, especially for those who were traveling from one place to another. And there was great turmoil on all the inhabitants of the lands. So nation was destroyed by nation and city by city a crisis, no peace in the land. Traveling became difficult and there was great distress. The old King James says there was great vexation, there was trouble, there was anxiety, there was terrorism, there was fear, there was concern. Where was there trouble who was in trouble? Well interesting it says there was individual trouble, there was national trouble, there was international trouble. Notice again in verse five this great turmoil was on all the inhabitants of the land. Every single person was worried, every single person was wondering what's going to happen to our country. Every single person was living in fear but not only that city was against city. There was national trouble and not only that there was nation against nation. There was international trouble. Do we live in such a time where there is no peace? Do we live in such a time where there is fear in traveling from one place to another? Do we live in such a time where individual people have no peace? Do we live in such a time when city is against city, when there is rioting in cities, where there is confusion in cities, where there is uprising in cities? Do we live in a time where there is nation against nation? What was going on in Judah so long ago I believe is going on in our country right now. But notice listen the crisis, notice the crisis in verse six. So nation was destroyed by nation and city by city but notice this phrase. For God troubled them with every adversity. Now at first reading you think wait a minute here. There's no peace, there's individual trouble, there's national trouble, there's international trouble. But it says the Lord had troubled them with every adversity. Back in verse two you remember the Lord is with you while you were with him.  You see there is what theologians call a difference between the active wrath of God and the passive wrath of God. The active judgment of God and the passive judgment of God. There is the active judgment of God you see that in the great flood when there was such wickedness that God brought this great catastrophe upon them. You see the active wrath of God in Sodom and Gomorrah when there was such wickedness and sin that God rained fire and brimstone down from heaven. But there is another kind of wrath of God and that's the passive wrath of God and that is where the protective and blessing hand of God where at some point when people say we don't want you, we don't want you, we don't want you.  God pulls away his hand of blessing and he allows trouble and adversity to come. This dear ones is exactly what Paul was talking about in Romans chapter 1 verse 18 and following. You remember what he says. He says for the wrath of God is revealed from heaven against all on godliness. Not the active wrath of God but the passive wrath of God. Because as you keep reading the passage three times it says God gave them up. God gave them up. God gave them up. See blessed is the nation whose God is the Lord. But if the nation starts to wander away from God, if the nation starts to reject God at some point God will remove his protective and his blessing hand and he will say if you don't want my help if you don't want my blessing then I'll let you be on your own and you will experience what it is like when my protective hand is not there. This is what happened to the nation of Judah.  And I believe as we look at our country that is exactly what we see happening because as you read chapter 1 of Romans you see it's a description of the United States. Three times he gave them up. Number one he gave them up to lust. And because they continued to reject him. Number two he gave them up to perversion, to homosexuality and to lesbianism and things that are unnatural. And because they continued to reject God. The third time he gave them up to what Paul says is a debased mind. A mind that doesn't think right. A mind that doesn't function right. Is it possible for a nation to come to a place where a person would say well I'm a man today but tomorrow I'm a woman. I'm a boy today but this afternoon I'm a girl. I want to use the boys restroom today but then I want to use the girls restroom tomorrow. What we call gender dysphoria but not only that. What they're not a new disorder. What they're now calling species dysphoria. I'm a dog today. I'm a cat tomorrow. I'm not going to just use the boys room. I'm going to use the dog house. This is a mind that doesn't function right. It doesn't think right. It's a sign that God has withdrawn. His hand of blessing and protection. You say why would God do that? Does God do that because he doesn't like a nation? No, he doesn't because he loves the nation. He wants the nation to turn to him. He removes his hand of protection and blessing.  Please have mercy on us Lord. We're in trouble. We're in such trouble. We need you like never before. The crisis that was going on in the nation of Judah. I believe so directly parallels. The crisis that's going on in our nation right now. But a second thing we see in this helpful passage is the cause. Why was there such a crisis? We see the cause in verse 3. Look there again. So important. For a long time Israel has been without the true God. Without a teaching priest. And without law there's the cause. You know sometimes people they know there's a crisis. They know there's trouble but they don't know the cause. They think the cause is something else. And here in our nation we're trying to fix this problem, that problem, the other problem but we don't know what the root cause is. It reminds me of a story perhaps you've heard it before of what happened many years ago in the sanitariums over in Europe. In those mental hospitals they would take people in who were not functioning right in their mind and they would work with them and work with them to the place that hopefully they had regained their sanity and then they could release them back out into society. And one of the simple but crude tests they would use to see if a person had regained their sanity, if their mind was functioning right they would take them into this closet like this big janitor's closet that had a sink there. They would put a stopper in the sink and they would turn the sink on full blast so the sink would fill up and then start to overflow all over the ground and then they would give to the person a mop and they would say clean up the mess. And then the supervisor would go away for a few minutes and he would come back and he would see what they were doing. If they were still just mopping the floor while the sink was stopped up and the water kept going over and over and over they knew that person wasn't quite ready to be released out into society because they couldn't understand the cause of the problem. They were cleaning up the mess but they didn't know the mess would keep going because they were never really dealing with the cause of the problem. And as I look at what is happening in our country right now there's a lot of mopping going on. In fact we are going into debt, buying mops and hiring moppers. We're trying to fix the problem but we're not getting to the cause of the problem. What was the cause of the problem in Judah? Was it there wasn't enough funds for the people? There was an economic problem? There wasn't enough education for the people? There wasn't enough opportunity for the people? No. Verse 3. For a long time Israel has been without the true God. They've been without a teaching priest and without the law. Notice that little phrase for a long time. For a long time. They were in the trouble they were in not just because something happened for a moment. It had been a long time. Three things they had been without for a long time. Without the true God, without a teaching priest and without the law. Number one, they had been without the true God. Now don't mistake it to mean that they had no gods. They had all kinds of gods. They had set up all these idols as God. But they were without the true God. They had turned away. The cause is that they had turned away from the true and living God. To God's of their own making. It's like what Jeremiah said. My people have committed to evil says the Lord. They have turned to me the fountain, turned away from me the fountain of living water. And they have hewn for themselves cisterns that hold no water. For a long time Judah had been without the true God. And why had they been without the true God? Because number two they had been without teaching priests. Now again make no mistake. That doesn't mean they didn't have any priests. They had all kinds of priests. But the priests weren't teaching the people. The priests in Israel were not only to offer the sacrifices. They were to teach God's people the word of God. And these priests they were not teaching people the word of God. So they were without God the true God. They were without priests that were teaching them. And because of that they were without law.  Do we live in such a time? Is their crisis our crisis? I think so. And why are we in such a crisis in the United States of America right now? I believe the same cause for Judas crisis is the same cause for our crisis. For a long time. We've been without the true God. America has turned aside from the Lord to its own gods. An idol isn't a little statue. It's anyone or anything that will take the place of God. We even have a television show called American Idol. Because we have movie stars that are idols. We have sports stars that are idols. And people make their possessions their idols and materialism their idols. America listen has turned away from the true God to idols. And why listen why in part in large part has America turned away from the true God? Because it's been without teaching priests. It's pastors. It's leaders have been so consumed with getting people into the pew. Getting numbers of people into their church that they're not really teaching the Bible anymore. They're teaching men's ideas. And Jesus said listen you take the traditions of men and you nullify the word of God with the traditions of men. It's possible for people to go to a church and hear some sort of message. But what they're hearing really nullifies what the word of God says. There's an old saying, an apple a day keeps the doctor away. That is true sometimes. We had a friend and she decided she was going to start a candy apple business. And she used to bring me sometimes this candy apple she made called the kitchen sink. And you know this this apple she started to put on this apple white chocolate and dark chocolate and milk chocolate. And coconut and peanut and almonds and walnuts and cashews and snicker bar and everything. You know what she was done it was about the size of a grapefruit you know. Now I want to suggest you that apple a day will not keep the doctor away. Why you've added so much to it. And all the good that an apple could be is nullified by everything else that you add to it.  How many love pastor David Rizalas. I'm so thankful for him. Without the true God. Without teaching priests. And so the nation of Judah had come to the place they were without law. It was the days of judges where everyone was doing what was right in his own eyes. And Jesus said in the last days those kind of days would come. He said in Matthew chapter 24 verse 12 he says in the last days lawlessness will abound and the love of many will grow cold. Do we live in days of lawlessness. Yes we do. Or cities are in chaos and confusion. Or kids are just getting up out of the chair and walking out of their high school classroom and wandering down the street protesting because they they're so spoiled they just don't like this they don't like that they don't like the other thing. We live in such days. We're in the crisis like they were in the crisis and the same cause for their crisis is the same cause. For our crisis. God gave them up. If you forsake God. He will forsake you why he wants it to get so difficult that you will turn to him. That you will cry out to him that you will beg and plead for his mercy. Perhaps the greatest president this country has ever had was Abraham Lincoln. In 1863 Abraham Lincoln wrote these immortal words. He wrote I've been driven to my knees many times under the conviction that I had nowhere else to go. It is the duty of all nations as well as of all men to own their dependence upon the overruling power of God. To confess their sins and transgressions in humble sorrow yet with assured hope the genuine repentance will lead to mercy and pardon. And to recognize the sublime truth announced in the holy scriptures and proven by all history that those nations are blessed whose God is the Lord. We know that by his divine law nations like individuals are subjected to chastisements in this world. May we not justly fear that the awful calamities which desolate our land may be God's chastening hand upon us for our presumptuous sins. To the needful end that we may turn to him in prayer he wrote that 150 years ago. He said we have been the recipients of the choicest bounties of heaven. We have been preserved these many years in peace and prosperity. We have grown in numbers wealth and power as no other nation has ever grown. But we have forgotten God. We have forgotten the gracious hand which preserved us in peace and multiplied and enriched and strengthened us. We have vainly imagined in the deceitfulness of our hearts that these blessings were produced by some superior wisdom or virtue of our own. Intoxicated with unbroken success we have become too self-sufficient to feel the necessity of redeeming and preserving grace too proud to pray to the God that made us. But if we turn to God in prayer he will hear. He will forgive. He will heal. And I agree. That brings us to the third thing we see in this passage and that is the cure. As Araya pointed out the crisis. He pointed out the cause. But what is the cure? What was the cure for Judah? Verse 2 again. The Lord is with you while you are with him. If you seek him. If you seek him. He will be found by you. And verse 4. But when in their trouble they turned to the Lord God of Israel and sought him. He was found by them. Oh I like that. What is the cure? Turn back to God. Cry out to God. Go to the Lord in prayer. Begin to plead to him on behalf of your nation and your people. This is always the cure for the crisis when a nation is in trouble. You remember the words of Moses in Deuteronomy 4 verse 29. Moses said if you seek the Lord with all of your heart and with all of your soul then you will find him. In Jeremiah 29 verse 13 God says and you will seek me and you will find me when you search for me with all of your heart. In Isaiah 55 verse 6 the Bible says seek ye the Lord while he may be found call upon the Lord while he is near. What is the cure? God told Asa's great-grandfather Solomon. He told him in 2 Chronicles 7 and verse 14. Those famous words, if my people who are called by my name will humble themselves and pray and seek my face and turn from their wicked ways. Then I will hear from heaven. I will forgive their sin and I will heal their land. Asariah said to Asa and the people, listen, if you just turn to the Lord, if you just seek the Lord, he's going to answer your cry. Verse 7, but you be strong do not let your hands be weak for your work shall be rewarded. In other words, if you turn to the Lord, if you do what's right then God will have mercy because he is a merciful God. And you can read later what happened. Asa and the people, they got the message. They removed the idols. They restored the altar of God. And they made a covenant with each other. We're going to begin to seek the Lord with all of our hearts. In verse 12, then they entered into a covenant to seek the Lord God of their father with all of their heart and with all of their soul. Verse 15 and all Judah rejoiced at the oath for they had sworn with all of their heart and they sought him with all of their soul. And he was found by them and the Lord gave them rest all around. If my people will pray. Asariah said, Asa, Judah, if you just seek the Lord, if you'll just turn back to God, that's the answer. That's the cure. That's the solution. And they did that very thing. And at that critical time in history, God had mercy on them and their nation. And I believe what happened to them can happen to us. Their crisis is our crisis. Their cause is our cause. And their cure is our cure. Is there any hope? Is there any hope? Is there any hope? May 23rd, 1939, a diesel electric submarine, the USS Squallis, set out on a voyage out into the Atlantic from Postmouth, New Hampshire. Suddenly, unexpectedly, without warning, a system of wide power failure. It begins to sink down, down, down, down, down, 240 feet below sea level. The diver goes down. He hears this message. Is there any hope? Is there any hope? Is there any hope? Knowing Morris Code, he tapped back a message. He tapped back one word. One word. Yes. Yes. Dear ones, hear from heaven when your heart is troubled and you look at the news and all that is happening in our country. And you wonder, is there any hope? Hear the message from heaven tonight. Yes. Yes, there is hope. Hope, if we will pray, if we will cry out to God like we have never cried out to God before. And he will hear us. He's giving America another chance, I believe. One last chance, I believe, if we'll call out to him in prayer. Franklin Graham recently wrote these important words. He wrote, I believe our nation is in trouble today. More trouble than I've ever seen in my entire lifetime. We are contending with issues that are causing the very foundation of our country to crumble. Our moral and spiritual roots are eroding. The economy is misleading. Family life is disintegrating. And political forces are at unprecedented odds. There seem to be very few leaders who will take a stand for God and His Word. It can be tempting to believe that America has reached a point of no return. While these factors cause despair, we are reminded in Scripture that with God nothing is impossible. No problem is too great for him. And if God's people will call out to him in prayer like never before, he will hear their cry and he will answer their prayer. I wholeheartedly agree. Is there hope? Yes, there is. Yes, there is. We are the hope of America. Calvary Chapel Chino Valley is the hope of America. Our prayer tonight is the hope of America. The effective fervent prayer of the righteous is powerful.