Alright, why don't we go ahead and get started. So greetings everyone and thanks very much for joining in this webinar that's going to be about fondling Earth surface with land lab version two. I'm Greg Tucker, I'm at the University of Colorado in Boulder, and I'm the director of CSDMS. And I'm thrilled to have the opportunity to tell you a little bit about land lab and some of what it can do. I'll say that this webinar is going to be, it's going to be emphasizing pointing toward resources where you can learn more at land lab at this point has gotten to be quite a large package. And there's no way to do justice to it in just a brief webinar. So my emphasis is going to be very much pointing you toward tutorials and online documentation and that kind of thing. I suspect I have about 24 slides so on the rule of a minute per slide I expect this will go now maybe half an hour or something like that so we'll leave plenty of room for questions and discussion. Let me go ahead and fill the screen with this slide hopefully you are seeing title slide. I just want to say that I encourage you if you've got questions as we go. Don't hesitate to interrupt. I won't be able to see if you use the raise hand function as I'm doing this presentation mode so just go ahead and jump in with questions verbally if you've got them. Okay, so to tell the story of land lab I have to tell you a little bit about the community surface dynamics modeling system or CSDMS. There's an NSF supported facility that supports computational modeling of various kinds of Earth surface processes, hydrological geomorphological sedimentological eco hydrological etc. There is a small integration facility based at the University of Colorado where I'm talking to you from that supports the community with community engagement computing support and various kinds of educational resources. The land lab is one element of the CSDMS software ecosystem. It is a Python language toolkit, a programming library. And it's designed to make it quicker and more efficient for you to build integrated and modular numerical models of all sorts of different kinds of surface processes. So here's an example. This little video you're looking at is obviously a very geomorphological and geological example it's representing a island micro continent that's being rifted tectonically. There's isostatic response to original unloading and sedimentary loading there is sedimentation in the deep sea and rivers on land and so on. This is composed of various modular components and we'll be learning about what that means. This is just one example I could have chosen a more short term engineering scale or human time scale process that could have been hydrology or eco hydrology or something like this but the point is that land lab is designed to make it easier to write grid based numerical models and to create integrated models from reusable components. It's geared toward various kinds of surface processes so it's not necessarily limited to those I mean it's a numerical modeling toolkit so you could in principle model all kinds of things from plasma physics to, you know who knows. Okay, so let me before I tell you about what's in land lab and what it does I'll give you a few examples of how land lab has been used in the recent past in the literature. So this slide shows a variety of images from different papers or ongoing studies that have used land lab in different contexts. And it gives you a little bit of a sense for the topical variety so for example, there's a paper that's just recently come out where a group in the UK has built a dry land hydrology simulator. Next to that is an example from work by Nathan Lyons and colleagues where they're interested in how river captures drive speciation of aquatic species. There's a bunch of other examples that range from hydrodynamics basin stratigraphy tectonics landslide susceptibility title circulation and title marshes sentiment yield big picture earth mantle related tectonics and a variety of other things. So it's a pretty diverse package. I'm going to choose some resources to learn about land lab before I tell you a little bit about overview. There's a couple of papers that give a kind of a high level overview of land lab and what it does. There's a 2017 paper by Dan hobley and colleagues. The link is here. That was sort of the first all about land lab what it is and what it does paper. Hey Barnhart has a follow up paper from last year that describes version 2.0 and some of the design changes that were made in that. And then we have a pre print out that includes land lab in a greater description of CSDMS, it's software ecosystem and how that fits into the larger picture of geoscience software places you can access to learn about land lab. But it's completely open source so there is a digital repository on GitHub at this website. All the, all the code all the documentation and associated files are there. And there's also a fairly comprehensive website that includes tutorials and user guide and a reference manual. So here's words about the tutorials. We've worked hard with land lab to create a wide variety of hands on tutorials so for me personally I I learned best technical kinds of things when I have a tutorial that I can work for and get a feel for how it works with Jupiter notebooks. Making tutorials is a really easy and fun process you have these wonderful interactive documents that can combine text and pictures and code. So that's what we've used to create the land lab to port tutorials. How do you find them well. I'm going to skip out of this for a second. Here's the land lab website. You'll notice that across the banner on the top one of the items here is tutorials. I click on that link. There are some instructions on how you can connect to the tutorials. And here I've listed some of these. So one of the ways you can do it. If you want the tutorials on your own computer where you can open them up in a Jupyter notebook you can clone the repository. And here's the address of the repository. You'll find the tutorials under the subfolder land lab notebooks tutorials that referee raises a point I want to make here is there's two kinds of notebooks associated with land lab there's the tutorials that are designed for people to learn about different aspects of land lab. And then there's a series of teaching notebooks that are designed for use in the classroom and they've been developed by various folks, including Nicole Gasperini and at Tulane and others. As basically lab exercises in classrooms so check both of those out. So you can get them on your own computer another way you can do it is with the free notebook hosting service binder. I'm sure some of you are familiar with this. If you go to the tutorials page. You'll notice that there's a section launch notebooks online if I click this link. Doing a new tab. It will open the tutorial notebooks in binder. You know that you know it's a free service sometimes it works really well and sometimes it, you know there's so much demand for their servers it just won't function so. But this is what you'll see as the notebooks is starting to load. So that's one method. The method is that you can access the land lab tutorials and land lab itself through hydro share. So as many of you probably know hydro share is a wonderful web platform for the hydro logical sciences. It's a place to store and share and disseminate all kinds of data and other resources about water related systems. So let me show you show you quickly how you can find land lab and its tutorials on hydro share. So here I'm on hydro share I've logged in you need an account supreme count. If I go to discover. It takes me to a search bar. And I can type in land lab notebooks. And one of the items I get is land lab Jupyter notebooks I click on that resource. It opens the resource. I can page down and see what's contained in the resource is a folder called notebooks. If I want to run them, I go to the button open with select quasi Jupyter hub. From quasi Jupyter hub you'll notice that one of the server options is the CSC mass workbench. So this is an instance of a Jupyter hub that will have all the CSC mass software installed on it will select that and say start. And this will ultimately start up a server where we can run the notebooks directly online so this way you don't have to install anything on your local computer you can just get right to it and start working with them. Sometimes it takes a few minutes to start up and I'll let that just do its thing. So okay so that's three ways that you can interact with the tutorials. We hope soon there will be a fourth we're going to be rolling out actually there exists already a CSC mass Jupyter server soon to be branded as the Earthscape hub. Thanks to an award from NSF that just arrived this week. So you'll be you'll be hearing about that soon. Okay, so I've told you all about the documentation but I haven't said all that much about what land lab actually is and what's in it so let's take a look at that. And actually before I do that let me say one thing about the one further thing about the tutorials. There's a lot of them. There's probably over 100 I haven't counted lately. So if you want a pathway through it. The welcome notebook which is the first tutorial notebook you'll find is kind of the overview and starting place. It includes a link to something called the land lab syllabus. So this is simply a sequence of notebook tutorials that we've set up as what we think is a reasonable order to go in to get a comprehensive picture of what land lab is and how it works. So one way you can dive into this course you don't have to follow that you can go pick and choose among different topics, whatever makes sense. Let me say something too about pre prerequisites for using land lab. It's, it's, it's designed to make it easier to work with numerical models and create them but it doesn't spare you from needing to know some things. So one of those things is to know a Python programming, and in particular to be familiar with using Python classes and objects, the object oriented features of the language, because that's something that land lab uses heavily. You need to know something about NumPy arrays and how to work with arrays how to index them and so on. Fortunately, both of these topics there are plenty of resources online for learning if you, if you don't already know. The other thing that's useful to know is to know something about numerical methods and particular the methods that you're going to use in your favorite application. There's really no substitute for good numerical methods course but to to semi substitutes that I particularly like are a textbook by Stingerland and comp called mathematical modeling averse dynamical systems is a 2011 a text that walks you through some fundamentals of numerical methods with very geoscientific examples. That's a great resource. Another one more generally is the famous numerical recipes book that you may have heard of that contains essentially numerical recipes, sub routines and algorithms for all kinds of different, different methods from root finding to partial differential equations. So, I recommend both of those. Okay, so let's dive in I want to look now at a live example of some land lab code that is a concise code that will create a comprehensive model. And, you know, once again I freely admit, I'm a geomorphologist so I picked a geomorphological example. It doesn't have to be geomorphological we could have picked something more short term or hydrological or ecological but I guess it's a geomorphic one. On the right you're looking at a little simulation of a hypothetical landscape that has evolved with hill slopes and channels and networks. It's what's called a landscape evolution model, and here it's been written in 15 lines of code that you see picture. So this will be our work example as we go through, and I'll be referring to different pieces of this code. One of the things this indicates is that you can write fairly comprehensive models, rather succinctly as compared to having to do it from scratch. The first piece that we need to look at in thinking about the main components of land lab is what's called the gridding engine. At the heart of most land lab built models is a simulation grid at the moment land lab is designed to support two dimensional grids. We hope in the coming near future to support 3D and global grids as well. The idea here is that a grid is a data object that contains all the geometry and topology to represent some kind of a two dimensional mesh. There are different kinds of grid meshes that are available that you can create you can see them pictured here. So raster grids with regular spacing, and you know, Cartesian orientation hex grids unstructured grids based on a Voronoi diagram and a triangulation, a subset of that called radial grids, and a relatively new type that comes out of work by Katie Barnhardt and Allison Pfeiffer called a network model grid that really focuses on the topology of a river network or really any kind of network. So the idea here is we want to be able to create a grid object in just a single line of code. The idea is that that line will create a data object that again has all the elements that describe the geometry and topology. So grids and land lab are made of graph primitives. So think nodes and links and things like that. So let's look at some examples. First of all, in our 15 line landscape evolution model. Here's the line that creates a grid. In this case, it'll be a raster model grid. So that's the name of the grid class. So we're going to give it 40 rows, 64 columns with an XY spacing between points of 100 units, in this case, meters. And all of that will be returned in a variable that I've just called grid. Right, so there's creating a grid in one line of code. Let me dig into this a little bit more and give you some examples with with graphics to accompany it. Here's that line of code creating a raster model grid with the shape of 10 rows and 16 columns. And here's a picture of what that looks like in terms of some of its primitive geometric elements. So the black dots here are points that are called nodes. The red line segments are called links, and they have a direction as well as a magnitude. The blue boundaries outline cells. And these are three of what are actually six basic primitive elements of a land lab grid. The other ones are the sort of dual complement to these so if you notice these four line segments here the links they enclose an area that's called a patch. The sides of each cell here are called faces, and the vertices of the cells are called corners. So there's six different kinds of geometric primitive that you can work with. Not every application requires you to work with all of them often applications will just use nodes or nodes plus links or nodes links and cells, it depends on the application. Here's a couple of examples of other kinds of grids. Here's the command to create a hex model grid. And here's what that grid looks like. The grid creation functions give you some control over size as and layout so here's an alternative hex model grid that has a rectilinear layout to its structure. Here's a example of a semi structured grid this in this case a radial model grid. So maybe you're doing a volcano simulation or something like this so a radial arrangement of nodes that uses under the hood a Delaney triangulation. So these are a few examples of grids. And where do you go to learn more about land lab grids. So what I'm going to go is a little online tool that allows you to visualize the complete geometry and topology of a kind of a mini grid. So I'm going to turn to that now just so you can see what that looks like I've got the URL here. And I'll skip over to this browser. The lab grid sketchbook gives us as a default a little starting raster grid. And if I hover over the different elements, it will tell me the name of the element, and it's number. So if I hover over this little blue circle I see that that's a node, and it starts with node zero. And this I can get a sense of the numbering scheme so if I go left to right I've got node zero 123 and then I go up to the next row for five, six, seven, etc. So this is an indication that the numbering scheme for all the elements is bottom to top and left to right. So if I hover over this this is patch zero patch one patch to patch three, etc. And I can find out the same information for links faces cells and corners. I can switch over if I want to a hex arrangement can switch to a radial arrangement. So this tool to help you picture how a grid is composed of its various geometric elements, and if you need to know the numbering of a particular thing like I want to like monitor what's happening at this link here. It's a good way to go and and find out which number it actually is. The limitation of this is that there's a limit on how big you can make these so you know once you get to hundreds and hundreds of grid points on a side, this tool doesn't really work anymore. But there is an alternative. In a built in there is a plot graph function that you can import, and it will display all the elements of a grid or subsets of those elements with the numbers displayed directly. I won't show that live now but I'll point you to a tutorial it's called the land lab false garb tutorial that shows how to use this plot graph function. There's also a tutorial on introduction to the model grid object that will tell you more about working with grids. Okay, so let's move on so that's the grid but a grid by itself isn't of much use unless it has some data associated with it. And that's where we get to this concept of fields. So a field is a flat array of data that are associated with one particular type of grid element. Here's an example. There's a function associated with grid objects called add zeros. Its purpose is to create a new field filled initially with zeros with a name that you give it. So here's the command to make a field. Here's the name. I'm going to call it topographic underscore elevation. And I have to say what kind of element I want to associate it with. In this case, nodes. What I will do is to create a new array. It's a flat array where there is one value per grid node. I can then access that array in a couple of different ways. I can access it through the variable that I used here LF, or I can access it through the grid itself because the grid will remember a list of all the fields that are associated with itself. If I say LF is grid at node topographic elevation, it says true, meaning those are two, those two things are looking at exactly the same data in memory. So that's all I'm going to say about fields other than quickly looking at an example from our mini landscape evolution model, but you can learn more about working with fields from the user guide section about adding data to land lab grid elements. And there's also a working with fields tutorial. Let me just briefly skip out of this to show you where the user guide lives. That's easy. If I go back to the homepage. The second banner item here is user guide. And you can see there's a whole bunch of topics here. So in our little mini landscape evolution model where, where was the field. Well, here it is. I'm using that same function add zeros to create a topographic elevation field and then the next line I initialize it with some random noise. So, we've talked about grids we've talked about fields meaning layers of data that I attached to it the next thing to talk about is components. Before I give you a definition of a component let me give you a pictorial example of one way to build a model with land lab. So this diagram is sort of a pictorial representation of what would really be a Python code. The concept here is that you can build a complete standalone model by combining three kinds of things. You have a grid. It has fields, and you have one or more components associated with it and each component handles one of the processes that you're interested in modeling. Well, let's let's look more at what a component is so a definition of a component is given in the upper left here component is a Python class that has a semi structured interface, and then implements either a model for a particular kind of process. Or a calculation of some kind of analysis. So what do I mean by that, the various pictures on this slide show a few examples of some of the processes that land lab components are meant to model. So for example those who are into tectonics there is a component that models the flexure of the lithosphere as an elastic sheet subject to surface loads. And so that's handled by one land lab component. There's others for generating stochastic rainstorms or calculating soil creep or calculating channel incision or probability of landsliding and a whole range of different things. The current version of land lab has around 64 components, and the collection is steadily growing and thanks in no small part from contributions from lots of folks in the community. So if you want to learn about the component library one of the places to go is the section of the reference manual that describes the components. And here's a little snapshot on the left from that manual pause here and click over to it so you can see how I get to that. So here I'm back on the main website and you'll notice that one of the tabs is reference manual. We used to call this API reference but we found a lot of geologists and hydrologists don't know what an API is so we just call it reference manual. Maybe that's changed now. But if I go to reference manual at any rate you can see a variety of different topics here. And under it, one of the items is components. There's a variety of different types of components there's a lot of geomorphology because land lab was written by a team that includes geomorphologists like me. There's a lot of hydrology because there's also hydrologists on the team, but there's some other things as well. One, one thing that components can do, as I mentioned is analysis so you'll see for example under terrain analysis there's a variety of components that don't so much calculate a process or simulate a process as they do perform a calculation so for example, I can calculate what's called the steepness index or there's one by David Litwin at Johns Hopkins that does the height above nearest drainage calculation for flood analysis. Okay, so that's a little bit about the component library. So why do we actually work with a component. Well, you saw a glimpse of an example in our, in our short little mini landscape evolution model. There's really three, three steps to working with a pre existing component. Step one you import it. And that's pretty easy from land lab dot components import name of component. And the second step because a component is a class. And if you want to create an instance of that class and object you do what's called instantiating it. So next step is to instantiate a component and that's really just typing the name of the component with some arguments and parentheses and returning it to a variable that is your object that's, that's your instantiated component. So here are some examples from our little mini landscape evolution model three different components. One does the flow routing on the surface one does water erosion and one does hill slope gravitational transport. Normally components take a grid as their first arguments do you have to make your grid first, then there normally will follow one or more parameters that are specific to that component.  Then the third step is to run the component. There's a sort of a semi standard I wouldn't call it a strict standard but many of the components have a method or a function called run one step. It says do your thing.  So an amount of time is one of the arguments called DT think of it as a time step. So you pass that as an argument. If the component doesn't require that argument we can leave it off. All components will have a go method like this they it won't always be called run one step. So that's really the basics of working with pre existing components, some resources to learn more about it. The user guide has a section as on the component library, the reference manual I showed you the section on components. And there's also quite a few tutorial notebooks about specific components. Let me also show you a little trick. I learned probably too late but it's a quite a fun little trick.  And you want to quickly find out what's up with this component and what are its parameters. There's a couple of cute tricks here. One thing is I can print the components header doc string. So part of the standardization is that every component has a doc string a little document documentation string at its top. And that's internal to the code right it's actually written in the code, but we can peek at it by simply printing out name of component dot underscore underscore doc underscore underscore. So if I do this with the flow accumulator component gives me some text that I can read through about that component. Sometimes that text will list all the parameters it takes and what their units are and things like that. Sometimes that information is provided instead by what's called the init doc string. So another thing I can do is to print out the init doc string. Here's an example of that. In this little line of code, I'm going to the linear diffuser component, going to its init method. So that's what's called the constructor or it's the thing that sets the component up. And then say give me your doc string again double underscore doc double underscore. And normally you'll find there a list of all the parameters that that component requires it tells me I need a grid, it needs this parameter linear diffusivity here's what the units are and so on. Okay, so far what I've told you is about how you would work with a component that already exists but let's suppose you want to write a new component that's something we definitely encourage and it's not all that hard to do. I'm not going to tell you how to do it here but I'll tell you where you can learn. There's a couple of places one is a an introductory tutorial on how to make a component it's called the making components tutorial. And there's another one on component design tips that gives you some tips and tricks on how to design a component that that is somewhat standardized and conforms with usual land lab practice. So this first one will walk you through the example of making a little kinematic wave overland flow model that's kind of a kind of a fun little exercise. Okay, let's see. Let me say a few quick words about numerics land lab after all is a package for writing numerical models so what about numerical computing and numerical functions. So one thing I want to point out is that because we have this graph based data structure representing a mesh that has lots of different kinds of elements connected to one another. It opens up the possibility of doing a lot of different kinds of numerical solutions so finite difference finite volume finite element. All these are in theory possible. We have done some work to provide some built in numerical methods. But it's by no means complete. But I'll point out with a little code snippet here is to particular numerical methods. So this is a code snippet that's from one of the sort of first introductory tutorials. It's called the land lab false car tutorial. And it walks you through the exercise of creating a diffusion model to model diffusion of a of an uplifted false car. One of the functions it's used is the one that I'm showing here with a pointer called calc grad at link. That's a numerical function that goes to each link. Now link is a line segment that connects to grid nodes, and all it does is it computes the gradient in the field that you give it between those two nodes, and it assigns that gradient to the link between them. It's a nice handy tool for gradient based models things like a diffusion model where the temperature gradient or the land surface gradient or the chemical concentration gradient or whatever gradient you care about is part of the solution. Another example on the one of the lines in the middle here is calc flux div at node. It's a sort for divergence. One of the things we often have to do with numerical computing is if we have a mass balance model we need to do the flux divergence, meaning calculate all the inflows and the outflows of mass or maybe it's energy or whatever in a particular grid cell. Calc flux div node does that for you, given the way that represents fluxes at the link so it takes each link, and it adds up all the flows through all the faces of each cell surrounding a grid node and gives you the resultant net flux. You can read more about both of those in the gradient and divergence tutorial. They also appear in the land lab false car tutorial as I mentioned. Another thing is matrix creation, you know, often we have numerical methods that involve inverting a matrix. So there is a matrix creation tutorial as well. We have, you know, we haven't gotten very advanced with that but there is at least one component called the title flow calculator component that uses a matrix inversion to solve a steady diffusion equation. So there's an example of that. And that's one of the things that I'm interested in working with matrices. Okay, I'll tell you a little bit very quickly about other kinds of utilities, especially for data input and output. So one of the things we've tried to do is to use standard input output formats. One of the things that we use standard format text files, yeah the so called YAML format to read parameter input so there's a way if you write a little text input file in that format you can read it and land lab will parse it for grids and data. We make use of three formats. One is the Esri ASCII format for writing individual raster based data or reading it in so this is one way you can read in a digital elevation model if that's relevant to your favorite application. There's tools to read and write net CDF files, which are a nice standard, and maybe a little bit more exotic but there's a little utility that will write an OBJ file for a 3D mesh that you can then read into visualization and sort of solids modeling packages like Blender. Alongside that there's a number of because again bunch of hydrologists and geomorphologists are working on this. There's a lot of DEM digital elevation model analysis routines and functions. You can configure watershed type boundary conditions in a otherwise rectangular DEM and there's a variety of others. Places to learn about all these things there's a reference manual section that covers input and output. There's a tutorial on reading DEMs into land lab and a various terrain analysis tools you'll see under the list of tutorial topics terrain analysis is among them. Okay, I think the last thing I want to say here is has to do with contributing to land lab and getting involved. Landlab is a community resource it's open source it at this point has a lot of different contributors and developers. So folks have gotten involved in, you know, anywhere from raising or answering issues, here's a little snapshot from the GitHub issues page you can see it's sort of an active, active conversations ongoing. We certainly encourage people to if they want to help review a pull request that's great. I really want people to feel encouraged to contribute new components new capabilities new utilities, whatever it may be this is not meant to be a closed chop by any way, by any means land lab is meant to be a resource for for the complete scientific community who are interested in Earth surface processes. So I encourage everybody to get involved and probably one of the easiest ways to do that is simply to, if you have a question, or an issue or you found a bug, heaven forbid, or you see a need for a new enhancement. Go to the issues page on the GitHub site again github.com land lab land lab and simply post an issue and folks on the development team at CSMS will try to get back to you as soon as possible. So without I have all I have for an overview. I'm happy to entertain questions. I've put my own email address here as well as let me go back to this the CSMS contact and a reminder of the land lab website. And while we're waiting to see if there's any questions and verbally or in the chat. I'd be really interested if you are willing. If you'd like to just paste in the chat, a quick summary of your own interests. You know whether you're an active land lab user, and you're really interested in, I don't know, eco hydrology capabilities or just curious to see what the capabilities are, or you'd really like to see more on this topic or that topic. We'd love to hear about that. Interesting I'm seeing some different applications roll in in the chat. You know one thing I'll say I want to make a comment about speed so one of the trade offs you have in writing. One of the things that we do have a scientific modeling code is do you want your code. Do you want to develop it quickly, or do you want it to run really fast and sometimes those are conflicting imperatives. So our philosophy has been to to write code in a way that we can write it quickly and generate capabilities relatively quickly and efficiently, and then when we need speed to go back and do some reengineering for speed. One of the things for example that we've used in the land lab code base is Scython. You may or may not know that Scython is essentially a super set of Python that can be compiled, essentially translated to see and compiled. By writing certain computationally intensive pieces in this flavor of see and compiling them you gain the speed of a compiled language, alongside the efficiency of the kind of human efficiency of an interpreted language. I would really admit that in the development team our emphasis has very much been on on getting capabilities rolled out quickly. And so you'll find that there are, there are many components that don't run as fast as you probably like them to. I would say if you find that's the case, we would be happy to hear about it what are your bottlenecks first of all, and happy to work with you to think about ways to speed things up whether it's optimal algorithms, or it's, you know, wrapping things coding things in Scython or whatever it might take. I would suggest we can, we can wrap up at this point, and I wish everybody a good day but I'll hang out for a few minutes in case anybody has any, any specific questions, or you actually do have a couple of questions now in the chat. I'm seeing these but they, I think they're, oh I see okay great good. Okay, so there's a question about, could land lab be used to model processes, other than physical. Well let's see I'm not, I'm not totally sure what you mean by other than physical I suppose I think chemical or biological, and if, if that's what you mean yeah of course, you know. Although we have a linear diffusion component and you know because it was written by geomorphologists we tend to use diffusion theory to represent soil moving across hillslopes but of course, diffusion at its core is about motion of molecules in solution right so you could, there's a, there's a chemical process that one could, that one could model. You could model, you know things like the descent of a weathering front in a geochemical system. I saw at least one published application in an ecological context for frog habitat. And if I understood right I think they were using land lab really just to figure out the local moisture and the landscape so they weren't really directly modeling a biological process. But they were using it as part of an eco dynamics kind of approach. Another application that I think is really cool is something that Matt Rossi here at the University of Colorado has been working on. He's interested in how the growth and of trees in a in a forested montane landscape can drive the gradual turning of rock to soil. He has used the net logo agent based modeling package to represent the individual trees and the seeds that they spread across the landscape, and then he's married that with a land lab module that that moves the soil down slope over time. So in principle you can do a lot of different things that anything you can do on a grid essentially with grids and fields, you can, you can model. So that's on improving collaboration through interaction with hydro share. I think there's a there's a lot of scope here I mean the beauty of hydro shares, people can collaborate on on things like notebooks and codes. The land lab is now installed thanks to a wonderful collaboration with the hydro share team. As you know David, we have, we have land lab and the other CSD mass tools installed on that Jupiter Hub server. So it's a nice way. I think one of the neat possibilities is bringing models and data together you know one of the great things about hydro share is it's a great place to, to store and share data. And the fact that you can run models on the same platform as you have your data makes that model data integration process a little bit easier. In terms of geotips that's something that we'd like to do is have a geotip capability. G doll is super powerful. I've been hesitant to make it another dependency of land lab itself but it's pretty easy to integrate G doll functions and libraries with land lab calculations because they're all because of G dolls Python, Python package. Stephanie you can go ahead and ask your question. Hi, I'm Stephanie. Thanks Greg for your presentation and thanks for everything you do for the community and with land lab. So, I guess a little bit of my background I'm a kind of a tecton assist and I'm doing a project and tectonic geomorphology. One of the things that I'm interested in is like fault block rotation in the basin and range sort of Eastern California shear zone. And I know that this is currently a 2D kind of landscape evolution model. I know that there's some components like the normal fault component and some tectonic components and I was just wondering what kind of like I'm interested, like I said fault block rotation and I was wondering like what kind of options are there for like that kind of tectonic situation and looking at the geomorphic evolution in particular associated with that. Yeah, it's a great question, Stephanie. So, so far, the various tectonic pieces in land lab the components are our kinematic. Well and the components and other would not dynamic. And you would know better than me but my sense is that deformation codes are pretty computationally expensive. And he has so far tried to write a deformation code in land lab but that said, one of the, one of the tools for doing the kind of thing that I think you're talking about here that I think is exciting and that we're hoping to work with as part of this new open project, is a 2D plane strain, not plane strain sorry what do you call a cross section strain model written by Jean Arturo Aleve, working with Mark Bain that they've used to study extension and how the interaction between extensional fault blocks and surface processes erosion and sedimentation can effectively prolong the life of a master fault. And so they've got this deformation code sisters, the acronym for it that I think is actually written in MATLAB and we've been thinking about and hoping to couple that with surface process models written in land lab so we weren't thinking of actually rewriting sister in land lab though that's something you could do, but rather using the existing version of sister and then combining that with the surface process model that uses land lab. I mean John Archer has already done this with a different surface process code written in another way. But if you look at his, I don't know if you familiar with his work it's really fascinating he can show how the, the creation and lifespan of faults varies depending on how intense the surface erosion and sedimentations. Oh that's interesting what how do you spell his name I haven't heard of. Your name is spelled like olive like an olive in a martini. Oh, okay. I have heard of him. Okay. Yeah that's interesting no I do like my lithospheric scale deformation stuff in aspect, and they're trying to couple that with fast scape which I know there's a component in land lab that uses fast scape or odor, which is kind of cool. But yeah I'm just like trying to figure out what the different options are sort of trying to couple the surface processes with the lithospheric scale deformation, but. Right I mean that should be totally doable my sense is that it's the aspect is going to be the, the major number crunching part of it and the surface processes will run a lot faster, we have not yet tried to parallelize pieces of land lab but that's another thing that's on the, on the horizon for this new open Earthscape project is to try to take advantage of some of the modern parallelization built in parallelization tools like what's that new Python package call and blanking on it now but that's coming soon so I think it's doable but you know somebody has to actually do the work to stitch the things together. Let's see so there's a question about is net logo or agent based modeling part of land lab library the answer is no it's not but they're easy to combine and there is a. Gosh, I think this is in the land lab collection I have to double check but there is a demo notebook that shows an example of combining the Mesa agent based modeling library with land lab. A couple of simple examples of this from a tutorial we ran a workshop we ran, I guess, two years ago, and then Matt Rossi has one that shows shows something similar. So it's it's we haven't tried to build in the agent based rules directly in land lab because there's already really nice packages out there that do that and it's just a matter of sort of marrying them together. So, another question about creating nested locally refined grids. So the answer sort of a qualified yes yes you can do it the topology supports it. But we have not so far created the machinery to actually do that, though in other words, there's nothing about the land lab data structures that would prevent it having locally refined grids. But we haven't, for example, written like a, what do they call the quad tree grid type grid class that or the or the methods that you would need to, you know, add points or densify here or undensify there. That was one of the things that we had in mind when we created the grid routines but it just hasn't been a priority to write that stuff but if you want to write it, we'd be happy to talk to you. Let's see I see there's a question from Niles J. Swara on can we generate a drainage boundary at a desired poor point exit using a land lab tool. And can we do drainage divide analysis for identifying a possible drainage reorganization. Yeah, you can do both of those things so there is a way to set up. If you have a DEM. There's a way you can. There's a question that Nicole Gasperine wrote that will I pick. I think it's the lowest elevation point on the perimeter and treat that as the watershed outlet and then identify the watershed upstream of that. And then in terms of identifying drainage divide analysis there's a. CHI finder tool that will calculate the so called CHI index, which is this weighted weighted drainage area upstream integral that you may be familiar with. And that's a good way for identifying drainage divides. As I say we're, we're always happy to answer your questions. Please feel free to reach out and contact me or contact CSD mess at CSD mess colorado.edu. Or if you have a, you know a land lab specific question or capability or something like that. I highly encourage you to go ahead and post it on the land lab issues board. But for now thanks again for tuning in and I wish you all a good weekend.


Okay, last two weeks we've been working on this little application here. Basically, it's just a form submit which we originally created in about five minutes. We're now spending probably between all three videos, 45 minutes to an hour, working on this, mainly making it nice for mobile devices. That's something I find about most programming. Actual functionality can be done pretty quickly, but making it look nice and the user interface usually takes more time to create than the functionality. Luckily, we have tools, libraries out there like jQuery and jQuery mobile to make things look nice, especially for mobile devices and also work on desktops. As we're working in a desktop here, this can be brought up in a mobile device, probably look more like this and it's very easy to click. This gives you a little drop down on a phone automatically. It will bring up a larger buttons because the phone mobile browsers tend to default to that. Although we could also, using jQuery mobile, make larger buttons for those drop-downs on a desktop as well. I prefer having the regular drop-downs because if you have a long list, you can always start typing on the keyboard and jump if everything is alphabetically, which it should be if you're writing code. Also, things like this input here is a number input. When you click it on a mobile device, it will bring up a number pad rather than the keyboard, which allows you to easily put in numbers. If we did a regular form submit, HTML5 will check if there's letters like that in there. It will say no, you can't have that. Unfortunately, we're using our own JavaScript to submit it, so I think it ignores that because we're just getting a value in submitting rather than submitting a form. All depends on how you do it, but if you were submitting a regular form, this would do error checks for you if there's not a regular number in there. What we're going to work on today is once we fill out the information and we click Submit, either yes or no, for is the PSI over 4500, which actually is very full, it's actually over 4000, is actually the cutoff. That's my bad, we can actually just change that in the text, but it doesn't matter since this isn't really being used. You can see we just submitted that information, but when we submit it, it doesn't clear out this information, which would be nice, the comments and the ID number, so you can right away go into typing the next one. It doesn't give the user really any information, oh, this was sent, so we'll create an alert box that does that, and also we're going to throw in a little PHP to grab an inventory number through a get form submit, which would be nice because then we can create QR codes, which I have tutorials on if I remember. Maybe I'll put an annotation somewhere that will link to my QR code video, and you can create QR codes, put them on the bottles. I think the hardest part about that is making a sticker that would be water resistant since these bottles get wet. I don't think heat would be too much of a problem because even though we go into fires, hopefully the bottles don't get too hot. In fact, as air comes out of them, they get kind of cold moist, which would be, I think, more of a problem for the stickers. Anyway, hopefully I remember to put the annotation somewhere on the screen. If not, I'm sure someone will comment, and then I will, and that will just basically allow you to scan with your phone or anything with a webcam and will automatically bring up this application and input the inventory number for that bottle, and so you would have that option as well. So that's what we're working on today. Let's get started. We'll go to our code here, and the first thing we'll do is a simple thing. We will add an alert box here, and we will just say sent. You can have whatever message. Oh, thank you for submitting sent, thank you. Smiley face. Okay, we'll save that. Now, when we go back to our page here, type in the bottle number, tester, and whether we click the yes or no button, we should get, oh, refresh the page first. Type in an inventory number, obviously choose your information. Notice when I refresh the page, it lost who we were, and that's what we're going to work on here in a moment. We'll just say blah, blah, blah. It says sent, thank you. Yes, and it still says sent, thank you. You know, you get the same information. So we're done with that. That's just, and if we go here, you can see that information was sent. Next, let's work on clearing out the comment box and the ID so you can start inputting anew. So I'm working on this for efficiency. I want you to be able to go from one bottle to the next bottle to the next bottle and just type in this information fast and get it done and over with, unlike what we're working with now at work where we have paperwork that you fill out, you got to find a pen and fill in this information. Sometimes it's hard to read the ID number, so it'd be nice if there was a QR code that also had the ID number written under it in a visible place. So just get things done a little bit faster, a little bit more efficient. What I'm going to work on now though, as I said, is clearing out the information from the bottle. We're going to say look at, this is after we do our post submit. We're going to say, and before our, well it doesn't really matter if it goes before or after our alert, I'm going to put it before. We're going to say look at the elements with pound, which means the ID of, in this case, bottle. If we scroll down here a little bit, you can see our input here for our ID bottle. The number input is bottle, so we're saying look at that element. And before we said dot, oops, said dot val, like so, and that was retrieving the value. Well, if we put anything inside these parentheses instead of retrieving, it's replacing. So we're just going to put two parentheses, I'm sorry, two quotation marks inside the parentheses, and that will say set the value to, in this case, nothing. And we will do the same thing, look for the element with the ID of comments and set its value to nothing. So now we'll save that, go to our form here, let's refresh the page, which updates the code. And another nice thing about doing things on the web is you can update the code, and next time the person goes to the page it will be updated. We'll say 899 for the inventory number, choose a user, oops, choose a engine, type whatever for comments, or just leave comments blank. And when we click submit, we get sent a thank you. It cleared out those two things, so I can start putting in the next bottle. Comments and, I mean, if there's no problems, I don't need to put comments, so I can just keep going like so. And if we go to, oops, that was it, to here you can see all those by Mike Jones, station 21 into 21 with different ID numbers, they're all full, everything's good. Once again, Google automatically puts time and date, which is nice, you don't have to worry about putting that into your code. And so we're doing good so far. Also, we're not really putting any error check here because if for some reason there is some sort of connection error and this isn't submitted, they're still getting an alert saying sent thank you. And I'm actually not sure how to do an error check in this case. If I was submitting to my own PHP code, I could, you know, detect, retrieve information and say did it connect. I'm sure there's a way to post check error. I'm not going to worry about this since this is just a tutorial, but in real world situations you probably would want to have some sort of check to make sure it's actually sent to the server. You know, if you lost interconnection, you click the button and we're not going to get any errors here on the screen saying that, you know, not available. And since everything here so far is running locally, you would not know that this connection error is happening. Once again, just for tutorial uses I'm mentioning that, but not going to do that. But once again, as long as you have an interconnection, that shouldn't be an issue. Going back up to the very top of our code here. So once again, with our jQuery, we're saying once the document is ready, once the page is loaded, is when we start running all our JavaScript. So what we want to do is we want to store, we want to retrieve local storage, which actually we should probably create the local storage first. So what I'm going to do is I'm going to scroll down here. Oops. And right here, what I'm going to do, local storage is so simple. In the past, I've played with cookies a little bit and they were kind of a pain in the butt. Local storage just seems so much easier because all I have to do is type in local storage dot and the dot is what it's going to be stored as. Oops. So we want to store to the local device, whether it be your computer, phone, tablet, whatever, a variable called user, and it's storing it for your site. So if they go to another site that has user, it's not going to affect that. So here, we're going to set it equal to a variable called user, which we created up here, which you chose from the dropdown. Same thing will say local storage dot user, station equals station local storage dot truck equals truck. So again, we're saying store locally a variable called user and the value we're putting into there is our variable, which we created up here, which is the user or station or truck that's chosen from the dropdown. So we'll save that and refresh this page. So you notice when we refreshed it, we lost our information. So I can say Mike Jones, station 22, engine 22, put in a number there, click submit, it's submitted. Right now our information is saved, so if I press F5 to refresh the page you can see, so if I exit out of the program or refresh the page, it loses that value. But we did just write so it's stored locally, so what we need to do now is call it locally, call the local data. So now that we've stored that, I'm going to go up here and we're going to, when the page loads, retrieve that information. So I'm going to say, find the element with the ID of user, set the value equal to local storage dot user. I'm going to do the same thing for the station. So look at the element with the ID of station and set its value to local storage dot station, dollar sign, parentheses, quotation, ID. We're looking at the element truck and replace its value with local storage dot truck. And now if I spelled everything right, wait, something's not color coded properly. What am I missing? Someone at home now is going, ah, I know what it is. But I'm not, oh, because I put these in quotations they're not supposed to be in quotations. Thank you. Thank you viewer at home that was yelling that at me. Okay, so now when document or page is ready, meaning it's done loading, first things we're going to do is we're going to look at the local storage and set the values. Let's go see how that works. I'm going to tell you right now a little secret. We're not. Okay, so refresh this page. We'll say four, five, eight, eight. We're going to say Mike Jones station 22. Now you notice when I'm clicking the drop down, it's highlighting the proper things, but it's not changing the values here when we refresh the page. So Mike Jones, station 20, engine 20, submit. Okay, refresh the page. Well, station 20, I shouldn't have done that because that was the first one on the list. So let's do that again. We'll say Mike Jones, station 22, engine 22, bottle, blah, blah, blah. Yes, sent. Thank you. Now if I refresh the page, you'll see that it says John Smith, station 20, engine 20. We go to our form here. You can see that Mike Jones, station 22, engine 22, submit the last one. Let's just go 9, 9, 0, 0. Submit that. Thank you. Go here. Wait for it to appear. 9, 9, 0, 0. You can see it says Mike Jones, station 22, engine 22. Coming back here, though, that's not what it says. And that's because it's setting those values but not updating the drop-down box default view. This is simple to fix. But a lot of things in jQuery Mobile, since it's adding these CSS themes and making it look nice to update them, you need to refresh them. So what we're going to say here is, once again, look at the elements with the ID of user.selectMenu. So we're looking at that element. We're looking at SelectMenu. And what we're going to tell it to do is simply refresh. It's that simple if you spell menu right. SelectMenu. So we'll do the same thing for the two other elements. So we'll say dollar sign, parentheses, quotations, pound for the ID of station, dot select menu, refresh. And here we're going to say the same thing for the truck, pound. There might be an option to refresh all. I don't know. And that would shorten our code up a little bit. I should look into that. I'm sure if there is someone who will comment below. If not, I'm sure you could write out a little code that does it. But for a simple little application like this, we'll just do it this way. Now, if I spelt everything right, we come back here and we hit F5 to refresh the page. Oh, look. It brought up our local storage, Mike Jones, station 22. No matter how many times I hit F5, it brings up that information. If I fill out our form, put an ID number, I'll choose Sam Johnson, station 24, engine 24, and click Submit. Now if I refresh the page, oh, it saved that information. I can even change that stuff. And if I don't submit the form and I hit F5, it brings back the local storage stuff. Great. We are almost done with this code. We've got one thing left to do. And that is I want to be able to pass it information. So let's go to our code here. Now you'll notice that we called this index.html. I'm going to exit out of the program here. And what I'm going to do is I'm actually going to move the index.html. Now we could move that to index.php because we want this to be a php file, but I'm actually going to call it something else because we're in our scba folder. Self-contained breathing apparatus, by the way, is what that stands for. We have our bottle checklist, but we also have our pack checklist for scba. So we're going to have different forms here. So we're not going to make this the default index. We'll just call this bottle.php. So now if I go back here and hit F5, in my case, because I have indexing on my web server, you'll see that we have our php instead of index.html. I'm going to click that. And the form looks the same. It'll work the same at this point. But since it's php now, we can now pass it some variables. And actually, I guess technically you could leave it as an HTML and pull apart the location to get variables. I've never seen a clean way of doing that. So we're going to do it with php. So obviously in this case, you would need a server running php. To do this, you couldn't do this locally because php is a server-side scripting language. So I'm going to say vim going to our bottle php here.  So you say greater than... I'll make this bigger so you can read it. Sorry, less than dollar sign php. Close it with a dollar sign. And then a greater than symbol. Actually, this is going to be one line, so we can actually put all this on one line here. What I'm going to do is I'm going to create a variable called bottle. We're going to say equals dollar sign underscore get inside some brackets here, inside quotations, bottle. And then don't forget our semicolon there. So what we're doing here is in the php code, we're creating a variable called bottle. This has nothing to do with the JavaScript, so the JavaScript is not going to see this, recognize this variable at all. What it's going to do is it's going to look for a get submit variable called bottle and put its value into the php variable of bottle. So what we can do now is come down here to our HTML code where we have our bottle inventory number here. And we can give it a default value. If we say value equals, we can say here one, two, three, four. If we were to save that and go in here and refresh, every time you start this application, it's going to put one, two, three, four there. Obviously we don't want that because the bottle isn't always going to be one, two, three, four. What we can do though is we can pass it some information here. So what we're going to do is we're going to once again put our tags for php code. We're going to say echo dollar sign bottle. Technically you could do this all in this one line rather than two separate spots, but in other cases you may have more than one variable and it's good to have that up at the top in my opinion. So if I did this properly, what it's going to do is we save that. If we hit F5 to refresh, nothing. We don't get anything in here. But up here if we say dollar sign bottle equals 5599 and hit enter, it puts that value in there. So now we can take this address for bottle 5599, make a QR code. Once again I'll try to remember to put an annotation or in the description of the video to my video on QR codes. I'll put that on each bottle, but with a different inventory number for each one and when you scan it, it brings up this, automatically puts in that number. Now technically this works if there's no bottle information there. It will just leave it blank. Technically I guess if you want to be technical about stuff, you probably could do an if then statement, but I don't see a problem with it. I thought maybe it might create an error log here, but apparently it didn't, a PHP error log, and I do have error logs turned on on my server. So it's not even going to fill up an error log or anything, which would be my one concern. So that's it. We are done. We can now either open up this application with no bottle number and have it be blank, or we can scan a bottle and have it put in the bottle number using a get form submit. And what I can do is I can scan the first barcode, submit it, and I can either close this out and go and scan the next one, or I could just type in the next barcode and keep going, or inventory number and keep going. So that's it for this tutorial. I think it took me three tutorials to do this, probably 45 minutes an hour for this entire application, really the main functionality as far as the form submit was done in the first five minutes. We spent the next 45 minutes an hour creating this, and a lot of that was explaining. So probably half an hour to 45 minutes, you could have had this application done and save your work a lot of paperwork, because paperwork builds up, and lots of times that paperwork has to be entered into a computer anyway. So this is my first real tutorial on jQuery mobile, at least this last first series on it. Once again, let me know what you think. Did you like this kind of longer tutorials showing more, which I think with jQuery mobile might be a good thing. We kind of got some jQuery, jQuery mobile, JavaScript, PHP, HTML, HTML5, all in this. Or do you prefer when I do simple little individual tutorials, which I will always do because that's what I prefer. I prefer a tutorial on this is how you create a dropdown box. This is a tutorial on how you create a comment box that you can submit rather than longer tutorials. But some people have asked me once again to do real world scenario applications, which is just putting together this stuff from the small tutorials, but maybe their minds just work different than me, where I much rather just see I need to do this, show me how to do this, I can figure out the rest, or watch other videos on the rest. Anyway, comment below, let me know what you think. I hope you enjoy this. I'll try to put a link in the description to this application online so you can play with it. Once again, thank you for watching FilmsByChris.com. That's Chris with the K, and I hope that you have a great day.


Hi everyone, I'm George Cao and today I'm here with Esther Lemons. She's a visual brand consultant And she is a member of my MasterHeart client group coaching program Esther. It's so great to have you here Thanks, George. It's great to be here. Thanks for having me. So Esther is going to be sharing some of the lessons She's learned in the journey of her business and I think it'll be helpful for all of you who are consultants coaches service providers as well, so before I we get started so I wanted to Read out her bio so that y'all have some Context of what kind of work Esther does so here we go So Esther Lemons is a visual brand consultant with 20 years of experience in graphic design and creative art working Which is the technical and detailed process of preparing documents for print Esther has found that her true skills and passion are in the brand application and Implementation which Esther I'm going to ask you about and what that means Working with entrepreneurs and business owners who care about consistency and excellence in their visual presentation Helping them get the best out of their brand online and offline and her website is Zesty branding dot co dot UK and I'll put a link to that in the notes of this video and Esther I'm going to have you probably share some branding tips, which you know Most people watching this are working to build some business or share their message So I'm sure we have barely enough time to get into anything around that but we'll do our best here But I always want to just start with your own lessons from growing your own business and we were You sent me a few notes about this Before hand and one of the things you mentioned is That you had to learn to slow down in order to speed up and maybe you can talk about what that means for you Yeah, of course, and I've got my notes on the side here on my screen as well Yeah, and I think well for years I I mean I know my my stuff like my skills and my my field, you know design and branding But building an online business, that's a whole different story really and the way I go about that because I do sort of Work as you know consult consulting contracting and so contracting is what I've been doing for a long time working in local agencies And having my own clients as well and doing sign and branding work for them But translating that into an online business and repackaging it as such That's that's a whole different ball game really so I think for years I was just doing doing doing lots of, you know, consuming every course I could find Just you know 24 seven really just all the time learning stuff researching things and I think I just pretty much exhausted myself and But I found a lot of this the information out there is very you know, there's like a blueprint for this and a system for that and And it I don't know just none of it really resonated with me and and the advice you get and I just couldn't bring myself Plament it just didn't feel right and it just didn't feel aligned and I was really resistant to it And I think when I started finding more authentic marketing like what you do That's when I realized this is why that stuff is not resonating with me because it's all about selling and about, you know yourself rather than other people, you know, it's about You know getting the money in and getting the clients and getting the numbers Rather than thinking what can I do for someone? How can I serve people? How can I help them? so That's why I found that the stuff that you teach. It's kind of like a breath of fresh air really There's not a lot of it out there as far as I found yet I think one more people are catching on now, which is really good And that's just been really really helpful to me. So yeah, yeah Yeah, and yes, this idea of Taking the focus away from the numbers to the people is a paradigm shift You know, because it is so different from what we usually hear out there. So much of marketing is really coming from like Corporate the corporate world in terms of originally that you know are bigger businesses where it is they're trying to get They need to get tens of thousands of customers to make something work, right? But when it comes to us solopreneurs We can't you know serve tens of thousands of clients We can serve a few clients at a time serve them. Well, and so it is about so talk about that How has how have what have you learned in terms of? Looking at it in terms of people rather than Rather than trying to sell, you know the people Rather than, you know, you're connecting and said but tell us about that Well, it's kind of how I found your you know, your your master heart group program really because I started Consuming your your content watching your videos and thinking oh my gosh. Yeah, this guy talks a lot of sense And just just sort of it kind of it's kind of it keeps things warm, doesn't it? There's momentum. You've got a lot of content out there yourself.  So that's the connection gets made in that way and When I I found Master Heart basically you were not selling Master Heart really anywhere You just mentioned it that it's it's one of the things you offer and it was me actually asking you Tell me more about this Master Heart. What is it? And then I did, you know, like a little Trial week and then, you know, I joined because that was it was the right thing for me to do So you didn't have to sell anything really you just have your content out there And you've got your services out there for people to find so the right people can connect with that and with you and Then it kind of sells itself. I think yeah, that's what I think. Yeah, that's so so true. So Let's get into some of the things that you talk about in terms of branding and Yeah, I think that'll be really interesting for for everybody watching. So tell us how you What is branding? I mean people I've heard of it and I think probably a lot of people think branding means the logo Isn't it the logo or the graphic design of something? Yeah, and it's probably part of it but but you've thought a lot more about branding and Yeah, and consistency in branding for for for people including solopreneurs like us So now give us your definition of it or your description of it. Yeah Well, I think your brand is kind of like your business personality. Really. That's how I see it and this this if you consider it a person It has a way of speaking and he or she or they have their own, you know the way they dress maybe and the sort of The physical side of it and the way a person might dress if your brand were a person That could be the visual representation of your brand like your logo your fonts your colors the photography you use Yeah, and then there's the tone of voice in the way your brand communicates, you know What if it were a person, you know, would you like that person? Would you connect with them? Would you resonate with them? so Yeah, that's kind of how I I like to see it and and kind of explain it So a logo is part of a brand, but it's not the whole thing I think a brand is really hard to define to be honest and there's a lot of definitions out there But it's kind of like the total package I see it as the total package of someone's business and it includes their values their vision You know their ethical policy everything really so yeah Wow, so What have you seen to be? You know as you look at various Other solar solopreneurs coaches mentors healers consultants authors speakers, which is I think most of the folks in my audience What do you see is like? How do they need to work on their brand? Maybe I know it's a bit kind of a general question What have you seen kind of again and again like oh gosh so and so should do this or is there a pattern of Lack of understanding about branding in the solar printer world or entrepreneur world yeah, yeah I think there is I think Because entrepreneurs as entrepreneurs we kind of have to do a lot of stuff ourselves especially in the beginning So even before you outsource anything or subcontract a higher VA or an accountant or anything like that You still have to know what's involved and how it all works because that helps you You know to find the right person to do it for you and also to obviously have some sort of quality control over what's going on And and I think tools like canva Make it really easy for people to do their own design And I mean I haven't used it much myself because obviously I use my own software not my own software But you know I use the Adobe create cloud software and but that really is really helpful little tool for people to get the basics in place and it helps them You know get sizes right so it takes a lot of the thinking work out of it, which is really really helpful but also just just because they use canva doesn't make them designers and You know some people have a real feel for it and they make really good stuff But others not so much and I think it's also a matter of people Recognizing or you know being honest with yourself and thinking okay. This is working for me or it's really not and The main issue that I find is that people are not really consistent with their branding Which means that they might know up to put their logo on their you know flow charts and worksheets and downloads and everything But they might not be using the fonts consistently. They might not be using their colors consistently and that's the main thing And also it's it's how you apply it It's kind of it's kind of an art in itself I find because even one of my services is I help people with social media graphics and you know all the channels have their own individual sizes and specs and It's it can be quite a challenge to make it work for every you know There's no one generic image that you can use for every channel basically So what I do for people is I I set every image up individually So the Facebook pages Facebook groups LinkedIn profiles Twitter and you know everything really and That's that can be kind of challenging because people think oh, I really love this photograph For example, and I want to use it throughout all my you know all my hedges and everything like that Which is great because that brings consistency in But then they find that it works in sort of a you know square-ish format But if you make it into a really thin banner, it you know It doesn't crop it right and you it takes it out context and you don't really get anything out of it So it's important especially when people choose photography That they allow for I think it's important for stuff to be kept in the center, especially horizontally and Well, but with horizontally and vertically but especially sort of vertically actually so yeah, there's just little things to think about and Yeah, so that that's the biggest thing that I see out there that people need to you know, keep in mind really because I think if you You know, it doesn't have to be super You know super special or super clever design. I think simple is often the best But there is a way, you know, you can you can get it sort of right But if you get it wrong you can do your brand more honed and good So it is a bit of a balance to find for people Especially if they're just starting out or they haven't got the funds yet to hire a designer So yeah, just getting the basics in place is a really good idea. Yeah So let's talk about the the stage of someone's business where they Where you would recommend they start thinking about brand What would you say somebody just starting out? Well, that's just a couple of stages. Let's say one stage is they're so trying to figure out What they're what their offerings going to be Another stage is okay. They've got they've gotten a bit of an audience They've got an offering you want to get out there. They want to grow that and another stage would be of course much further along They've got you know, regular offerings that are working and maybe they even have small team So so at what stage or or maybe there's different thought, you know, sort of different considerations for each stage But how would you talk about that? Yeah Well, I think it's good before you even start thinking about logos and colors and things Although it can be a fun thing to do and I noticed from from my own point of view I'm a very visual person. So I tend to even doodle and draw things that I don't might never use but it's um, I think it's a matter of Having the basics in place like I like to call them brand pillars really it's like Who you know, who are you first of all and what what are your values? What are your desires and what do you want to put out there in the world? And then it's obviously your audience who do you want to serve? There's what is it? You're offering? How do you do it? What's your why? You know get all those things in place and then you can think about how to translate that almost into a Visual logo that really corresponds your, you know, your brand personality well So logo colors fonts again, and then the next step is how to implement that across all your You know your material whether it's your your social media channels your website or if it's business cards or anything else Printed that you have and get that consistency Throughout that so it becomes recognizable and memorable And for all the right reasons so not in a way that people think oh dear God that is awful, you know But rather like oh, yeah, I've seen that and it's just it's more of a subconscious thing, isn't it? so it just sticks in people's heads if you use something consistently like You know your fonts and colors especially because I think people may think their logo is most important But it's it's the whole you know those three things are really core to you know the visual side of a brand Yeah That's great. That's that's so this is something that you love working with clients on right What you've just talked about the the sort of the brand pillars like You mentioned for example, who is their audience? What do they what do they stand for these are things also? You enjoy kind of working through with clients Well, I kind of like clients to have that in place already so right before that Yeah, then you can work on that the brand part of it Yes, then they need to translate that into a visual brand some people already actually look my clients already have a brand or have Part of a visual brand, you know, they might have a logo in place. They might be not quite sure what to do with their color palette Because it's not just a matter of choosing a few colors they one have to you know work together well And the next thing is using them well throughout all your material So not too many, you know and make them make them sort of a nice nice combination So I always like to say to people to use You know start with a theme if they're not quite sure what to do with their color scheme Then start with a theme and make it not too generic like you know seasonal colors That's a bit generic because you might choose a bit of summer and a bit of winter and a bit of autumn And it becomes a bit of a mess But if someone were to say actually I like autumn colors So you get your lovely, you know your your reds and browns and your yellows and oranges and that can be quite a nice combination So that's how I like to tell people to you know sort of as a as a starting point for finding out what colors they really want to use And and as for fonts, there's some good guidelines as well. So also again, not too many different ones two or three is enough And and just make make sure you use them consistently Like one for header fonts one for header titles One for body copy and maybe one for quotes highlights or special, you know memes or pictures And yeah, just just keep just stick to it and make it consistent So that's the main thing. That's very helpful to kind of hear those examples So anything else you want to say about your offerings as we kind of close out the Um, I don't know. I think I've covered most of it here Already like the the main thing I'm focusing on is helping people with their social media graphics and website sort of bringing consistency and all those channels throughout so that's That's kind of what I'm really into at the moment because I see that a lot of people are asking me about that really so Yeah, that's great. So if anybody watching this is seeing the power of having the consistent visual brand throughout the Um, different touch points that your audience has with you contact esther and you know get a consultation and See how you can unify your your your brand so that you can Be more memorable essentially for people and and actually come across as more professional as well Absolutely. Yes. Thank you esther. I'll be sure to put your links In the notes of the video and I just appreciate you doing this, uh call with us Thank you for interviewing me George. Yeah, it was great. Thanks. Thank you


What do we call people with no conscience who seem to have absolute disregard to other people, society and societal rules? The usual, psychopaths and sociopaths. You must be thinking, Buffalo Bill, Patrick Batem, Hannibal Lecter, John Doe, The Joker, and the list goes on. If Hollywood isn't your cup of tea, then images of Ted Bundy, Jeffrey Dahmer, and Charles Manson definitely pop into your head. You're right to think so, but these are not the most accurate and rather realistic examples. Actually, there might be examples that you might know of on a personal level. Psychopathy and sociopathy are perhaps two of the most confused terms in the field of psychology and criminology. While these terms sound very similar, they do in fact differ in characteristics. Both disorders are categorized as anti-social personality disorders as they share major characteristics. Although many experts disagree on the significance of these differences, Dr. Scott A. Bond offers a compelling hypothesis that psychopathy is a result of genetics while sociopathy is a learned behavior because sociopaths do have the ability to feel empathy as well as form emotional attachments to certain people. He suggests childhood trauma and physical or emotional abuse are possible causes of sociopathy. So, is it possible that you might personally know a sociopath? Unfortunately, it is. Here are five signs of sociopaths that will tell you if you might have met a sociopath but just don't know him. 1. They have a grandiose sense of self. Sociopaths tend to entitle themselves to certain things and claim them as their own, as they think it is their right to do so. When confronted, they do not find anything wrong with their actions or themselves. They can even turn tables to manipulatively make it seem like others are the selfish ones. This sense of self-righteousness is supported by their artificial charm, which in turn stands for their manipulation, resulting in a loop of characteristics. Although they do appear quite attractive personality-wise, they are in fact domineering and considered others as mere instruments to be used for self-indulgence. On the business level, they are highly authoritarian, sometimes even tyrannical, when given the opportunity. 2. They are mischievous, cunning, or have behavioral problems. Usually, sociopaths have a history of behavioral and or academic trouble, but only in rare cases are they in trouble with the law. A sociopath lies so often it becomes part of their personality. They are extremely cunning and know how to easily convince people. However, they have difficulties in making and keeping friends. The compassion a sociopath demonstrates is usually stimulated rather than felt and serves a certain motive. Despite that, they do actually have a sense of morality, unlike psychopaths, but appear to be satisfied by their own antisocial behavior. 3. They are irresponsible or unreliable. A sociopath is not interested in others' needs, lives, or even safety, and is oblivious to the damage they cause. Sometimes they aren't even concerned about their own safety. On the personal level, when in trouble, they tend to quickly accuse someone else of being guilty even when the action is of their own doing. On both the personal and business levels, they fail to plan ahead, lack realistic visions for the future, and exploit others for their own advantage without a second thought. 4. They have poor behavioral controls or an impulsive nature. When dealing with a sociopath, you find yourself in a cycle of short periods of peaceful expressions followed by periods of rage that can sometimes develop into abuse, and once again followed by short periods of emotional and mental peace. This cycle makes the abused feel helpless. Sociopath's poor rage control issues lead to repeated violent assaults on other people as well as, if not especially, on animals. Sometimes a matter that would make a normal person angry would mean nothing to a sociopath, and yet matters which might be of no worth to a normal person can outrage a sociopath. 5. They are unable to feel guilt, shame, or remorse. The ends justify the means is perhaps the most descriptive idiom of how sociopaths feel about their actions. When a sociopath has a certain goal in mind, they have no problem causing devastation to others as long as they can reach that outcome. They won't let anything stand in their way and have no remorse. This is because they have shallow emotions and lack empathy, in addition to having a grandiose sense of self. Their lack of remorse and guilt stems from their ability to rationalize the pain they inflict on others and inability to empathize with the pain of their victims. So does anyone come to mind after listening to these traits? Let us know in the comments below. If you liked this video, be sure to check out our other social media for more content. And we'd like to announce that Psych2Go has now opened a Patreon. Check it out if you want to support our channel. And don't forget to subscribe. Thanks for watching.


The first one is not going super late, but he's going later than he should. That's Lamar Jackson, currently the QB3, but he is my QB1 for this year. And the reason is, I'm expecting Lamar's passing efficiency to tick back up this year. They added 70 Watkins into the fold and drafted Rashad Bateman in round one. And if you give Lamar Jackson passing efficiency with what I'd expect to be still good rushing volume, he is going to be a star for fantasy. So QB3 is not late, but still later than he should be as he is my top ranked quarterback for this year.