In recognition of National Disability Employment Awareness Month, the U.S. Army Research Laboratory held a speaking event Tuesday, October 11 at the Adelphi Laboratory Center. ARL Acting Director Dr. Phil Burkanti pointed out how the month's theme, Inclusion Works, uniquely ties into the importance of workforce diversity. Special guest speaker, Specialist Claude Pullen of ARL's Sensors and Electron Devices Directory, shared a message about his military career, transitions following his injury, and insight on how his life has changed since joining ARL. Closing remarks were provided by ARL Military Deputy Colonel Kevin Ellison, who highlighted ARL's Wounded Warrior Hiring Initiative.


Hi everyone, you hear me? Yeah, okay. So, how many of you play video games? Great. How many of you develop video games? How many of you would like to develop video games? Better. Okay. Again, how many of you know this tool? For those of you that don't know this tool, it is the engine, the framework that has been used for the following titles. If you are a video game player, you should recognize at least one of them. Years of War, one of the masterpieces for the current Xbox. Tekken. This is the seventh installment. Street Fighter, I hope everyone knows it. The recently announced Dark Siders 3. This company started with its own engine with the previous two installment, then moved to Unreal Engine 4. This is not so famous, but it is a Kickstarter, a successful Kickstarter, made by the designer of the original Castlevania series. And even the remake of Final Fantasy VII, that is one of the most famous and beautiful games ever made, it is in work with Unreal Engine 4. And a lot of more titles. So, before starting working with Unreal Engine 4, you need to get it. For those of you that don't know it, don't know it, Unreal Engine 4 is open source. It's not free software, but it is open source. So you register on the arealengine.com site, and then you get access to the GitHub repository, where you can clone the source code of the whole engine and editor. You can eventually build it for Linux, Windows, Mac, or download a binary release. Our Epic, the company that makes Unreal Engine, makes money. Basically, Epic asks you for the 5% when you start earning more than $3,000. Only for games. If you make simulations, or films, or whether it can be considered a game, it is free for use. Once you download the engine, you get something like that. On the left side, on the left side, you have a list of the actors. An actor is something you can drag on the world. The world is a representation of your game. Each actor can have its logic, so you can program them, and when you hit play, your game starts. If those two chair a table and I don't know what it is that strange shadow on the table does not impress you, I've prepared another screenshot. I think it's way better and can show you how much powerful is Unreal Engine 4. We are programmers, so this is the most interesting question for us. By default, you can program your game logic with C++ that I suppose everyone knows, and blueprints. How many of you know what a blueprint is? OK. Everyone knows C++ right? OK. This is a blueprint. It is basically visual scripting. On the left, you see an event node. It means when the spacebar event, so when you press the spacebar on your keyboard, do something, in this case is jump. So your character will start jumping. Even if you are not a programmer, it should be easy understandable as it cause effect. This is another example of blueprint. We have another event, left control on your keyboard. And then we spawn, so we generate a new actor, in this case a missile. So we basically shot a missile from the position of our player. The get actor transform on the lower left is to extracting the transform in the gaming world and the linear algebra world is the description of position, rotation and scaling of an object in the space. This is another example of blueprint. The same one as before, but with a delay node added. With only that node we can implement some form of cooldown for your weapon. So you don't start shooting missile one after another, but you slow down them by 0.2 seconds. Then you may want to start working with vector map. It is very common in game development to start working with vectors. And then you can easily start with this kind of spaghetti. Or you can do even worse. Now, do not get me wrong. Scripting with blueprint is effectively programming. Blueprints remove only the syntax part of programming. If you respect all of the good programming rules it is very hard to make this kind of mess by following both common sense and good design role. Blueprints are effectively really cool. This is a debugging session. So in real time, while your games run you can see the nodes highlighting. You can stop and you can make a breakpoint. You can see the value of variables to change and so on.  Your object is the main class in the sense of C++ that is used by the engine. Basically, anything is in the editor and in your game is a subclass of your object. An actor is a subclass of your object that can be spawned, so generated on your word, so it is effectively been seen on the word. A pawn is a subclass of an actor. A pawn is a special actor because it can be possessed. By possessed it means a controller. A controller can be a keyboard, a mouse, a joypad, everything that can abstract the human player or an AI controller for artificial intelligence. A character is a subclass of pawn that has all the same characteristics of pawn but for anthropomorphic figures. So you have a human with a skeleton that can jump, run, crouch and so on. Then we have component. Component and reusable pieces of code that you can attach to all of the previous classes. If you ever really used some other engine like Unity or Godot you may be used to the tick paradigm so you basically write a single function update tick, it depends on how the editor use. And in this single function you make all of your game logic. That function is run 60 times per second, 30 times per second independent of the frame rate of your game. In a real engine 4 using the tick is considered an antipattern. You have to rely on events. On the left you can see a bunch of events, of example events that have defined, so explode, move forward, past and so on. So you should always follow the event paradigm. Why? First of all for code organization we have already seen how easy is to generate spaghetti with blueprints. So thinking in an evented way should simplify the organization of code or visual code. Events are network friendly. A real engine includes a network stack out of the box and whenever you use events that events can be propagated on clients on the server, broadcaster to all of the clients, to a bunch of clients and so on. As you have already seen you will get time management for free. Events can be triggered by animations too. For example if you have a running animation you can trigger an event when the foot of your character is on the ground. I don't know for spawning particles or for doing noise. Most important, game development is done by a lot of different figures from programmers to artists to some designer, level designer, architect and so on. So there are a lot of non programmers in a team so following the event pattern should simplify the explanation of your gaming rules to non programmers. When and why should they choose blueprint over C++? Unfortunately not all of the C++ low level API is exposed to blueprint only a little subset. On the other side writing shaders materials in the aerial engine jergo is extremely easy with the blueprint extremely hard with C++ or with the native languages of shaders. Interfacing with C or C++ library is basically a master. It is very rare that all included library in the engines will be enough for your work. Good design the blueprint are really easy to read even for non programmers. This is a personal thing. Blueprints are sometimes too much silent for me during error. Then this is the central topic. In addition to C++ and blueprint we can now program our game logic or eventually script the whole editor with Python. It is an open source project you can freely download it. It is supported on Linux, Mac and Windows. Why I did it? First of all my dream was to code AAA level game with Python instead of C++ or eventually blueprint. Unfortunately I miserably failed. Why? After the first release of the project I obviously started checking comments on Reddit, Facebook and all of the channels where I posted the announcement of the release. I didn't realize that for the game industry coding in C++ is not seen as a problem. As something that slows down your work.  So instead of stopping working on it I started asking my colleagues and the other company doing games how I should change the direction of the development. So after a bunch of chats with these people I came up with this list of tasks. First of all the main project in the C++ industry is managing tons of assets. There are a lot of artists musicians that throw assets in the project and these assets must be managed by a programmer assets can change and the programmer have to change again what is mapped to assets and so on. So scripting, doing orchestration of your development pipeline it is something really wanted by the game industry especially before for artists in the 3D areas modeling, animating and so on. Python is already present in their development pipeline. A lot of animators scripts their working pipeline. So having the ability to use the same scripts, the same code base even into the game engine would be really really interesting. Unit testing as well as functional testing really diffuse practice in the gaming industry. Most of the time because writing tests in C++ you really are. If you fail on a test generally it means a segmentation fault or a crash, you have to restart your work from the beginning. So even having the ability or running unit test was an interesting thing. There is a lot you know there is a lot of Python in the scientific and academic world and data visualization is another interesting topic for them. So having a really powerful 3D engine will be really useful to show their work. Another almost strange thing is simplifying the versioning of their work. A good part of a game is composed by binary data you cannot version so well. So for a lot of areas it will be very interesting to write code that regenerate the status of your project and eventually write AAA games with the engine. So I started in August last year I didn't have high expectation, it was more of a toy project for me. First step was obviously embedding a Python virtual machine into the engine having a console for issuing Python commands and obviously running code and getting output. If you do not know I am the author of the YuWizgi project so I have a really huge experience in embedding Python in application so it was pretty easy for me to reach this level in basically a couple of hours of development. Here you see a console built over the native Unreal Engine graphical user interface I issue the import command and I get the output. I was already really really happy that the hardware starts. First challenge I already told you that the most important class into the engine is the UObject1. It is the class from where all of the other ones is. So I needed to find a mapping between a UObject, native C++ class and a Python native class. Following these rules the mapping must be fast. In this time of the development I was still trying to use this plug-in to write AAA games so performance were really really important. This mapping must take into account that both Unreal Engine and both Python update garbage collection.  A funny thing in the Unreal Engine instructor is that properties of classes and functions of classes are built like UObject. So I needed to find a way to map this particular behavior even to Python. Obviously even on Python both classes and properties can be objects. Those are the solutions. For managing the Python UObject mapping C++ plus 11 map if you do not know C++ only added in 2011 standard the ability to add dictionaries or ashes.  So I must ensure that UObject are not destroyed without Unreal Engine knowing it because it will mean a crash of the whole editor. Whenever from Python I access the Python UObject mapping I need to always check that the mapping UObject is still valid because if it is still valid it means Unreal Engine has kicked out that UObject so the Python mappings maps to something that is no more valid. And then automatically expose properties and function as Python equivalent. After a couple of days I came up with this. So I can directly call Python script for Unreal Engine added event. Next step there are I think hundreds of C++ classes into the editor. I think there are thousands but let's say hundreds of classes into the Unreal Engine editor, an engine. Mapping each of them to a Python class will be a huge work that I don't want to do. But Unreal Engine exposes a reflection system so I can basically get a reference to a class using a string. My objective was to do something like that. So import the character class like it is a native Python class and spawn on the last line a character so an instance of a character into the editor. So let's take care of the slide. This is how you write extension in C for Python. The interesting part is line 150 that find object camel case function. This is how we access the reflection system of Unreal Engine. Basically we find object we find a reference to a class with that name. In 155 we build the mapping within that object and its Python equivalent. So now I have a way to get a reference to Unreal Engine a native class using a string in Python. What I do with this, I don't know if you can read it. This is basically a hack for faking the import system of Python. Basically, whenever you import check the last line from fakingPorter.classes the getAtR method of figure class is called. So I use this technique to fake the import system. So whenever you import from Unreal Engine.classes a special getAtR method is triggered returning the equivalent classes. Incredibly I get unexpected results. Positive unexpected results. The same approach work even from structure. In Unreal Engine there are objects and there are structures. Structures are passed by value in the vast majority of languages and even for in-hounds. So with the same approach I can import the three main structures of Unreal Engine. And without knowing it I would have already reached that kind of coverage. 80% of the Unreal Engine for reflection system was ready. So with my pattern plugin I was already able to do all of the things we can already do with blueprints. So it was a huge success. Third challenge. Scripting the development pipeline includes even generating blueprint programmatically. I know it could be something strange. It's like generating a language with another language. But this is what people or game developers ask at me, especially animator. In Unreal Engine animators generally add logic to their animation using blueprints. So for them it's way more easy to use Python to generate those nodes. The nodes are not really pretty for a Pythonista but this is how you can build a blueprint graph with Python. What I needed to do to reach the point I needed to implement Python classes, abstraction classes for graphs. The gray background is there. Nodes. The big blocks. And pins. The arrows and the thing that generates spaghetti every time. The current state of the art can be seen in this tutorial. Basically with only Python you can generate a whole monster with its animation, its brain. I don't remember. You can do really a lot of things in this. It is a pretty huge tutorial. As before I get unexpected results. This time not very positive. I get the ability to script animation graphs for free. Beaver tree are blessed in a real engine to write artificial intelligence. They are like state machine on steroids. Unfortunately I started getting crashes all over the place. What happened? I was obviously working in a way not expected by epic developers. So I started messing with their code. I started playing at the same level as C++. So every error results in a brutal crash of the engine. I was playing as a virtual editor. So basically everything I do from Python should be doable even into the editor. If it is not possible, expect only pain from a real engine. And especially the reflection system does not like messing up with their internal structures. After about a year this system has become really solid. But it requires one year of full time development. First challenge, unit test. Here you can see a unit test checking that when I create a new material a new shader for your graphics card. And I give a name to it that name is effectively put into the engine. It is a pretty easy test case. First of all, when we run tests from the command line with PyTest, however you generally do from PySharm and so on. A new Python interpreter a new full Python interpreter is generated on your system. So when the test send data generated by them is erased and destroyed. We cannot generate a whole new Python interpreter into a real engine. It will mean generating a whole new real engine editor for running a single test. So my solution was generating a Python sub interpreter. The Python CAVI allows you to generate a new copy of a Python virtual machine that can be destroyed without destroying the main virtual machine. So when you run tests written in Python a new Python virtual machine is spawned without destroying the original one and it runs the test. Standard output and standard error are mapped to the real engine Python console the window we seen before. And at each run of tests we do rollback. This is one of the feature of the real engine that shocked me most. It is not documented so well it is really hidden. I discovered it for a case I was checking sources and I found it. Basically each operation in the real engine editor is a transactional one like in a database system. So I can build my test and rollback everything that I do in the editor. So I am free to generate actors into the world, check that they are good and then destroy them. Obviously the gameplay is still something I really want to do in Python. So I've started having these abstraction. They are subclasses of actor-pwn character Python component and PyHard. We will see later what is it. They are wrapper for their native counterpart but the ability to call Python code at specific events. After a bunch of tests and crashes all over the place I decided to use a proxy pattern for mapping Python classes to native real engine object. So basically you write a native Python class a special attribute is injected in this class so you get access to the native Python object. This is an example of an actor fully written in Python. The begin play method is automatically called when the game starts and the tick method, albeit it is an anti-pattern, is called a very refresh of the game. The interesting part here is that self view object you can see here right to the location. The self view object attribute that is injected by a real engine when you map a native class to an already existing object. Why I chose this approach? First of all for almost safe reloading at each play iteration once you load a module or a class into the Python virtual machine that module is resonant that code is resonant but during development you want to change code. When you do web development generally you restart the application server to see code modification we can't restart the whole real engine editor because it requires a bunch of seconds to spawn. So in this way I can call a simple imp.reload from Python to reload the code of a proxy class. In this way I have a clean separation between a real engine 4 and Python especially from the garbage collection point of view. As the class is not really tied in I can destroy one of them without bothering too much the other one. This is something I found really interesting but others don't. Once you have packaged your game that is executable with all of your Python scripts into the project directory you are free to change that Python files and basically modify all of the game logic. Logic I understand is not an interesting thing to do for a game developer or something that it doesn't want to do from its customer. Obviously you are free to include not the .py files but the compiled one Another advantage of using proxy pattern is that I can change during gameplay the class mapped to an object. A character could be mapped at some time of the game to a class and then remap to another one during gameplay. This is another challenge I'm still working on and I'm still failing at it for those people that don't like proxy pattern. Basically I want to allow the developer to subclass native Unreal Engine classes with Python classes something a bit strange and immoral for some people. As you can see as Unreal Engine uses C++ and it secretize Python 3 annotation for specifying to a Unreal Engine what type of value this function take. I'm talking about on C++ Those are the steps I did for reaching this broken result. I use the Python annotation for enforcing types. Python became something like a data description language so I use Python to inform Unreal Engine on how to build its internal classes. I needed to rely on metaprogramming a lot and a lot of pain for reaching the result. Why Python metaprogramming? Because character the class from each monster is an object, it is not a class. So I need to write logic to inherit from an object that is not a class and generate a new class. This is how you can fake the inheritance system.  It could blow your mind and understand. Unfortunately as I already said it is really buggy. It could crash your system. Incredibly as different behaviors on different engine version I really have no idea why it happens. It is absolutely a good exercise to know how a real engine internals work. I think it is not so worthy because the proxy paradigm is way more safer and solid but it is obviously a lot. So I think I will try to improve it. What I still need to do to improve the project? I would like to stabilize this sub class in EBI. I would like to introduce mobile integration because currently you can build games Audi for Linux, Windows and Mac. I would like a stronger integration with PDB for simplified debugging of Python script into the engine. This is a really huge task covered in C++ API.  First of all should I follow in the C part integration of Python should I follow the Python C coding style so underscore lower case or the C++ 11 with full camel case. In the code you have seen before the implementation of reflection you have seen two different styles in the code. It is something really really ugly but currently I have still not made a decision. Should I invest more on threads? Threads are supported out of the box. The gil has become not a huge problem. I added a bunch of tricks to reduce its impacts. By default if you download from the sites have no threads enabled there are builds with threads enabled. When I started the project a lot of Python developers are really used to Maya or Studio Max want to use QTE in their project so I invested a lot in easy integration between Python and PySide into the engine. Nowadays I have exposed the native graphical user interface of a real engine so it is called Slate so it is a good solution instead of QTE. Slate is based on preprocessor C macros so you can write some kind of readable interface in Python trying to give to the developer the same taste of the C++1. This is how you can generate a window in the real engine with a button on its center when the button is clicked the cell yellow function is called into the button there is a text block with a simple string. Currently I'm dreaming about more orchestration in the game industry there is still a lot of manual work I would like to integrate Gherkin for a behavior test another dream is build some kind of domain specific language for writing shaders so material and or blueprints and obviously someone using it for to-go-lay gameplay. These two companies had a lightning from Los Angeles and good thing it's from Toronto, Canada they heavily sponsored the development of the project there are at least dozens of company already heavily using it but these two are the ones that put money into the effort. If you are into the scientific academic world and would like to start drawing your academic research results into a powerful graphical engine this is a really gentle introduction for pedonista that includes matplotlib into your game so basically whenever the player work over one of that colored cube the graphs on the carpet it is updated to generating a new pie charts. I need to switch laptop because unfortunately a real engine is able to melt down my MacBook Pro so can you see it? This is the third person template you can generate from the standard real engine distribution. I have added on the level a bunch of phases, of famous phases so when I play the game I can move into the world and see spark gillen Anderson Wolverine at 800 Sheldon my objective now is to allow the player the mannequin to see and recognize phases using facial recognition included in opencb open computer vision all in python first step is adding a python actor into the scene that will implement the the site of our player so in the list of actors I search for pie actor and I drag into the scene on the right you can see the fields where you can specify the module and the class to map to this actor we will start with this simple code into the init method we better you initialize a timer of one seconds in the gameplay you simply print some message into the console and then this value of timer is decreased at the retic and when it reaches the zero it means the time has elapsed and restart counting it is a very simple code just to check the python actor is so the module is eyes first and the class is site this is our python console hate play and on the bottom you should see on red the elapsing time so our python actor is already working let's go on second step is adding a special component to our actor the scene capture component 2D basically you can see it as a virtual camera that track anything it sees and save it into a texture a texture is a memory area into your graphics card that can be drawn on the screen during the initialization we generate a special texture known as a render target it is where our capture component will write data I've called it what I'm seeing I create a texture 512 for 512 you should always try to use the power of true texture when doing game development it is a transient object it means it is not an asset on your pipeline when the game ends this object is destroyed this special look is called automatically defined before initializing components in your actor so we want to add a new component so we use this look to create it this is how we add a component in our code the scene capture one we specify in which texture he has to write data and we specify that we want the linear values of the colors it is something I will not want I am just playing you it is not the topic interesting for us so I go there and change the model to eyes second I hit play and here you can see pay actor with a new component scene capture on the right it is already tracking what is seeing unfortunately we cannot see what the player is seeing before doing this we have to fix another problem this pay actor has no position into the world our objective is to attach it over the head of the player here all is the same once the game starts we get a reference to the pawn used by the player in our case the mannequin the robot working on the screen and then we attack ourselves this is the injected field into the proxy class and we attach it to the mesh component of the mannequin into its head bone what is a bone here you can see our player and on the left you see what happened to its mesh bones are basically objects mapped to a group of vertices so whenever I move a bones vertices follow it so our objective is to attach our eyes to the head so if we go back you see the third person character that is our mannequin is pi actor 7 as its child here you can see the axis of the character and here you can see the axis of our python actor as you can see it is moving because the head of the mannequin by Wally Nidol to some kind of breath next step we want to develop a head up display some kind of 2D graphics onto the screen we have added this code so we spawn a new actor into the scene head is another actor directly specifying the python module in the python class to use we get a reference to the proxy class mapped to this head so we can start injecting values into it and we specify into the proxy class which is the texture to draw and finally the engine that is new python head should be the player one so the default created one is destroyed so our python one will be used this is our head HUD proxy class expects you to define a drawHUD method where you can call graphics primitives like drawing textures, lines, rectangles and so on until texture to draw I remember you it is defined in the player class it is not defined it exit from the method if it is defined it will start drawing it at the 00 position so top left with these sides so ok on the top left you can see what the player seeing you can see even the balancing when it runs texture containing all of the pixel the player is seeing next step for good results OpenCB needs a grayscale image so we need to generate a grayscale variant of this texture this is pretty easy this is the fifth one this time we import so it is the wrapper for OpenCB and NumPy because OpenCB uses NumPy for all of the data in the tick method of our eyes we get the data as a byte array of the texture of the data we are seeing we inform we generate a new NumPy array giving special dimensions so we have a three dimensional array with four components RGBA and the sides of the texture and we use this OpenCB function to convert this texture from VGRA to grayscale so basically we have a byte for a single pixel of the image on the other side the head class is changed it is now in the head second module we create another texture with a single channel for color another transient texture this time we need to cooperate with a real engine garbage collector because this texture is never used by a real engine it even does not know it exists so after a bunch of time it will destroy it we do not want this so we inform with this method that we are responsible for destroying it when the Python object is destroyed and in addition to drawing what the player is seeing in full color we draw another texture below it without ignoring transparency channel because we have a single byte for each color so I needed to add these additional values so we have the same view but in grayscale now OpenCB is able to recognize cases from the below image this is the last version of the code these remain the same all of the OpenCB logic has been done in the HUD so we set up a cascade classifier it is the way OpenCB uses it is the algorithm OpenCB uses to detect something in this case I'll feed it with information about frontal phases and then at each iteration I try to detect phases with this function detect multiscale and it will return a quadridimensional array with the information about where the phase is you should see green see it? let's see if we can recognize Spock here it is it is even recognizing Dana I push Spock away people with beards are really hard to recognize but this time is taking it good we have a... I don't know if it is a good thing but it is not able to recognize a terminator I don't know if it's good or bad it is interesting that it is not able to recognize Sarah Connor I think it's because of the goggles of the battle goggles that are really strange to recognize for a machine last part by default Unreal Engine has no features for using the webcam of your mobile phone of your laptop but OpenCB is able to do it so I've created this cube and I've added it a Python component mapped with the Utils webcam class that initialize a video capture create a transient texture with the size of the texture my webcam is able to to manage and I assign the texture to the material to the shader assigned to the cube at every frame I try to capture the image from the webcam I convert it to a suitable format for my graphics card and I assign the data to my texture I think you should see me Thank you Who has a question for Roberto? I have been working for Crytek for 5 years and I know what game development is and I know what pain it is to code game logic in C++ or in Lua script and how ugly look unit test Come on, Lua script is not so painful as C++ Yes, yes but anyway so I think integrating game logic in Python is a really great idea and it's absolutely brilliant so it's Bravo Yes and I wanted to ask you did you have any performance issues especially in tick methods calling it in update loop in every frame Performance issues? Yes, yes I've started having performance issues and I started doing it too much with the gil acquiring and releasing the gil is one of the most heavy part into the Python virtual machine so the default build you get from the site of the gil completely disabled so you cannot use Python threads and the impact of Python is not so bad Last year Blueprints was an interpreted language faster than blueprints now blueprints are compiled to native C++ code so unfortunately faster than Python Another question Just a quick question How do people interact with Python inside Unreal Is there only the repel or is there also an ability to maybe extend the ribbon bar there on top like putting little scripts into I cannot feel you Sorry, I try again I was wondering how people would interact with Python inside Unreal So I saw the repel obviously Is there also a thing planned to put code snippets into buttons on the top of the ribbon for users that are maybe not so much also deep into coding Just wondering No, no Yeah So I saw the repel so people would interact with Unreal in Python via the repel and maybe there are some recurring tasks people have while working with Unreal I was wondering if there was also planned maybe to have some of these buttons that I see on the top to incorporate Python snippets in there Yeah Yeah, I imagined Cool, thanks Another question? I don't need to run That's fine, thank you Roberto


Hello and welcome to This Week in the City. Highlight's brought to you by the Public Relations, Media and Marketing Department with the City of Columbia. I'm your host, Alicia Utsi. This week in the City on Monday, the planning commission will meet at 5.15pm at City Hall. For agenda items, visit our website at ColumbiaSC.net. On Tuesday, May 7th, Columbia City Council will hold a work session at 2pm and their regular evening meeting at 6pm. Both meetings will be held at City Hall, located at 1737 Main Street. If you cannot attend the meeting, you can watch the live stream at ColumbiaSC.net, and you can also find agenda items on the same website. On Wednesday, join us for the At Large Open House. This month, Councilwoman Timika Isaac Devine and Councilman Howard DeVall will meet with citizens one-on-one, but you must call first to schedule an appointment. Call 545-3061 to schedule an appointment for the At Large Open House on Wednesday, May 8th, from 5pm until 7pm. You will receive a 15-minute appointment. On Thursday, it's time for the design development review commission to meet at 4pm at City Hall. For agenda items, visit the website at ColumbiaSC.net. And on Friday, it's the National Small Business Week Conference, hosted by the Office of Business Opportunities. To find out more details about how to register for this small business week conference, visit our website at ColumbiaSC.net and check out our social media platforms on Facebook, Twitter and Instagram. And of course, this month is May, and it's National Bike Month, and it's also National Preservation Month. There will be events all month for both of those recognition months. Event details are on our website on the website calendar at ColumbiaSC.net and of course on social media on Facebook, Twitter and Instagram. Well, it's a busy week planned, and we hope you have a great week in the city.


Right, welcome back to the channel, everybody. I have a lot I wanna share with, well, certainly the loyal supporters of this channel because, well, things are about to change. Quite simply, I cannot carry on like this. It seems January is the perfect time to evaluate your life and career path. I've already seen other YouTube channels post similar videos outlining their intentions for 2023. It's not in my DNA to not attempt to try and keep pushing forward, grow this channel. But the reality is that unless things change or we've reached our limits and I have realized that to move forward, I'm gonna need some help. And some of that help is from my loyal viewers. You see, the questions I continually ask myself are, what can make this channel better? How can you get more involved with the channel? And how can I build a community amongst loyal viewers? And I think we've come up with a number of ways in which we think we can make this happen. And hopefully all of which will be of benefit to you, including the announcement of a new official channel partner. Right, the first thing we're gonna do in 2023 is launch the Average Golfers members club, which you'll find access to via this button on our YT channel page and in the link on this video. Why are we doing this? Well, because it allows you greater input into the future of the channel. You will help decide on what type of content we produce, have your say in exclusive live content and via our members only community tab. You will have access to exclusive previews on upcoming content. The live chats give me a chance to answer questions you can raise in advance and have some meaningful dialogue in those live chats. The option to become a member of the channel is the first way in which we answer the questions raised. But there is also extra reason to become a member which is linked to our new channel partner. So who is the new channel partner and maybe more importantly why? Well, I'm pleased to say that the new channel partner is HotGolf. They are one of the largest online golf retailers in the UK selling everything that we review on the channel and more, which is important. First of all, HotGolf gives me access to a line of products that we have never featured before and access to brands that I don't have a relationship with currently, which means lots more content opportunities. Now I've met with a team at HotGolf who are fully behind the channel and very keen and supportive of this partnership. They've also got some great ideas for exclusive content and giveaways for keen followers of the channel. So keep your eyes peeled because we'll be seeing a lot more from HotGolf very soon. Which ties me back into memberships. To kick things off, I'm giving you the chance to win the brand new TaylorMade Stealth Plus driver and that's to all members who join our members club between now and the end of Feb. The draw will be made via a live YouTube video which all members will get an exclusive pre-notification and invitation to. Now next up is my attempt to get you all involved by hosting golf days at Hollywood Golf Club with the help of Lewis, who you all know for the channel. The idea is to host small groups, let you test some of the products you see featured on the channel, maybe some coaching from Lewis, play some golf with all of us and maybe grab some food and drink. I've already mentioned this in previous videos and more details will follow very shortly. And let me know your thoughts. Club members again will get first refusal on these days so another reason to join the club. Now I also want to broaden the content again this year to include more on course and travel content. Many of you will have noticed that the travel videos lessened in 2022 and that is simply due to my ability to finance them. So whilst I like you want to see a variety of content, it is important always to understand that the costs involved are significant and hopefully memberships and partnerships are gonna help me finance these projects in 2023. I'm finally just a huge thank you to all who support this channel. Week to week it really is greatly appreciated and hopefully these plans allow me to further grow the channel and its content. My final request would be that if you do watch the channel but don't subscribe then please consider doing so just to remind that it is free of charge and it makes a huge difference to the way this channel progress, how it's perceived on YouTube and that general growth. Whether it be like I said via you subscribing, that like button of course and always getting involved in the comments. I just really want to try this year like I said to develop that community. I see the same people commenting all the time in on the videos and it's great to see. I feel like we've got a trust and a relationship that's been built over a period of time and what I want to try and do is further sort of develop that into 2023. Hence this introduction of the members club. I also realized that it's a financial implication. Money is tight right now so I understand there'll be a lot of people that it's not an option too and again I fully understand that. There's no obligation of course but if you can and want to get involved in that way then yet your support would be appreciated. More on hot golf to follow. Like I said there's a lot to come that's all I can say and I'm pleased to be able to give that tailor-made stealth plus driver away so don't forget if you are considering joining do it between now and the end of Feb. We'll do a live chat similar to this and we'll draw out the winner. That's it. Thank you for watching. That's the update. That's the plans for 2023 and I hope that when we sit down in a year's time we've managed to develop that community as I suggested and everybody has been able to benefit in some way from the content we produce in 2023. As ever, thanks for watching and I will see you all probably or hopefully tomorrow night.


Coming to you from our GIS Studios, I am Anicia Antoine and this is your Mayday News Brief. The Ministry of Education is hoping to change the educational landscape of St Lucia through art. The Ministry endorsed the Third Annual Art Conference for Teachers, which according to the Deputy Permanent Secretary in the Ministry of Education, Kendall Cordra, was an opportunity to create and sustain the professional learning communities that must be developed so that the art programmes can be strengthened within all schools. Cordra is hopeful that the art programme would be expanded into printmaking, photography, computer art, sculpture and papier-mache. The Deputy Permanent Secretary also hopes that art will evolve to become integral to all overall teaching method within schools. St Lucia's carnival celebrations continued this past weekend with a number of activities including Groovy and Power Soka Monarch on Saturday. Rikitty retained his title as Power Soka Monarch King, whilst Sly Viet Vizin was crowned the new Groovy Soka Monarch King. The sub-plainfield came alive on Sunday as the children came out in their splendour to depict what carnival means to them. Grossly Junior Carnival Band emerged winners with the depiction of something fishy. The World Pediatric Project in collaboration with the Ministry of Health are conducting its second annual free scoliosis clinic on Island. The clinic will cater to all children aged 0 to 21 years. The clinic was held at the Victoria Hospital on Tuesday July 9th from 11am and will be held at the St Jude Hospital on Wednesday July 10th from 8am. Parents and guardians are asked to walk with the children's recent x-rays when attending the clinic. The Village of Canaries recently saw the implementation of two developmental initiatives, that is the rebranding of the ICT Access Centre to the Innovation and Career Development Centre and the launch of the Youth and Adult Literacy Programme, Yes I Can. The centres will not only focus on technology but also serve as a medium for citizens to obtain career guidance among other things. The Yes I Can programme is an initiative between the Government of St Lucia and the Government of Cuba. It is a literacy programme developed in Cuba that is a teaching method for adult education and has been implemented in many countries the world over. Minister for Education, Innovation, Gender Relations and Sustainable Development, Honourable Dr Gil Rigabet, indicated that the launch and rebranding mark, the commencement of the implementation of a suite of initiatives, geared towards better equipping citizens to access opportunities for self advancement and economic independence. The official ceremony was held on Sunday July 7th 2019 at the Innovation and Career Development Centre in Canaries. This has been your media news brief. Thank you for watching.


Live from Cambridge, Massachusetts, it's the Cube at the MIT Chief Data Officer and Information Quality Symposium with hosts, Jeff Kelly and Paul Gillin. Good morning, welcome to the Cube. We're here live at the MIT Chief Data Officer Information Quality Symposium here at Cambridge, Massachusetts. I'm Jeff Kelly. I'm joined by my co-host, Paul Gillin. We're here, of course, talking about the role of the CEO, how that role is evolving and maturing, and really just kind of coming to the fore in a lot of organizations. We're lucky enough to be joined here in this segment with one of the keynote presenters this morning at the MIT show, Dr. Rick Watson, who is Professor of Information Systems at the University of Georgia. Dr. Watson, thanks for joining us. Thank you. So why don't we start off talking a little bit about your keynote. For those watching who weren't able to see your keynote, it was about the digitization of capital. Could you kind of, in a nutshell, tell us what you mean by that? What does that really mean? OK, so for me, an organization is something that converts capital from one form to another. And if you can digitize that capital, you can create more value from the capital that you have, and you can make the conversion process more efficient. So the idea really is to, when you're digitizing that, you're talking about capital could be human capital, it could be social capital. That's right. You outlined the different forms of capital, so that takes the, as a little bit of complexity to the process. Yeah, and so there are six forms of capital that I identify. And the digitization capabilities vary with the form of capital. So if you think about natural capital, which for a mining company can be its order policy, to digitize that, you need to know the characteristics, say, by the cubic meter of your body. How much gold is in there? How much zinc and silver? Things like that. And you capture all of that, and then you can use advanced data visualization techniques to work out where the ore bodies are and then how to mine it in some optimum fashion, right? So that's one form of digitization. We were talking earlier about digitizing an economic asset like a parking space, right? So for a parking space, you want to know whether or not someone's using it. And once you digitize it, you have that data. You also have the capability to change the price for using that parking space. And so you can create more value from it by controlling or linking it to demand, linking price to demand, right? So those are two examples of different types of capital and different ways in which you digitize. I want to pick up on your example of the parking space. I think it's a wonderful way of demonstrating how information about something as simple as a parking space can be translated into greater economic value. But can't that also be used to destroy value? And I'll give you the example of Airbnb, which is an internet service that is making it possible for people to rent their apartments or their homes or rooms for a much lower price than hotels would charge. And this is actually potentially can have a devastating effect on the hotel industry by undercutting their business. Is that a case where achieving greater efficiency actually destroys capital rather than creating it? Well, it creates capital for another group. It creates capital for the person who's willing to take a room in their house and rent it out on a short-term basis, right? So on the other side, the hotel has less use of its capital, but we live in a capitalist system, right? And we tend to think of it only as financial capital, but there are all sorts of other forms of capital and people are continually competing on the basis of the capital offering that they give you. So if I rent a room, that's my capital, right? And I found a way to do it that gives me a good return. The hotel has to find a way to compete with me, right? Private enterprise system. When you talk about digitizing capital, people may think, well, there's some capital that simply can't be digitized. There are physical assets that can't be digitized. How do you respond to that or how do you digitize those kinds of assets? Yeah, I think that's where you're creative. Now, I never thought that a parking space could be capitalized, right? But then once you see it, you say, ah, every asset that an organization has can be turned into some digital capital, right? And so when I was working with the Port of Gothenburg, they said the problem is we don't know when a ship leaves berth. And so what happens there? Well, the ship is connected to Bollard, which is actually a cheap piece of iron that sits on the wharf, but it's an asset, right? And if you digitize that asset in some way so that when the rope is taken off and there's less pressure on the Bollard, and you can detect that, you then know that a boat's left, right? And now you can think of a marina that's got lots of Bollards. You've got then a way of managing what's happening there. So I think that the trick is to understand what creates value, even the little pieces of value, and then find a way to digitize those, sensitize them as what's happening as well. So kind of building on that. So what got you thinking about this topic now? Is it simply the ability to, you know, this whole Internet of Things movement around the ability to take relatively cheap sensors and apply them to physical objects? Or are there some other forces of play that got you thinking about the digitization of capital? Right, so the history of this is quite long. About six years ago, I got with my colleague and said, when we look at sustainability and global warming, people in the information systems field are ignoring it totally. They don't seem to think it's our property. So we started researching what we called initially green information systems and later converted them into energy informatics. And behind that came the realization that in order to manage the use of energy by all of the devices you have, you need sensor networks, right? So one of the examples I gave was Telenoor, which is sensitized each workspace and then they decide how much air to deliver, right? Simple sensor network. The parking space we saw as a way of reducing congestion. So we got on this notion of sensitize all assets in order to reduce energy consumption. And then gradually I made the broader recognition that what you're really doing is creating a digital data stream that's telling you about your assets and then you're finding ways to use that information to be better at using that capital, right? So that's how I got to it. It's taken several years to think about it. So it's both about building value but also about finding efficiencies, whether it's energy efficiencies or efficiencies with through existing assets. Yeah, and in fact, the way I framed the problem at the beginning, we have two big issues, greenhouse gas emissions, right? Which change the habitability of the earth and population growth. And we solve, as a society, most of our problems through technology. So we can start to work on greenhouse gases by increasing energy efficiency, which the US has been doing really well for many years. But also combined with that is increasing capital productivity. So we do more with less, which is a sustainability argument. So that's why I said, I think there are four main factors that determine the state of the earth. And therefore, if you want to do more with capital, you have to know the state of your capital at any time, right? And this is a problem we see in the shipping industry. They don't know when the cranes are available. So you'll find ships that will sail full speed to a port and then sit there for three days waiting for birthing space, right? If they knew the data about utilisation of the harbour, they could sail at a slower speed and get there just in time, right? So there's all sorts of issues about not knowing the status of capital. There's a lot of excitement today. I mentioned Airbnb earlier over this so-called collaborative economy. The idea that I can use my car, I can turn my car into a taxi cab for a few hours or I can turn myself into a delivery person and generate some value for that. And many, many other examples. Even parking spaces now, I can arbitrage and sell public parking spaces. Are we on the verge of a revolution that's enabled by these kinds of new uses that do mobile-enabled, real-time uses of the internet that enable us to, for example, know that a shipment is awaiting on a dock and if I can, I don't have to send a boat back empty. I can send it back with the shipment on it because the internet makes that happen. I don't know that it's so much the internet. I think it's ubiquitous access to information and through wireless networks, right? Through G4 and potentially G5 and all that.  And the internet sort of gets it to some point. It's those last few metres or yards that gets it to you personally and then you can start to utilise resources better, right? But it's an information problem in most cases, right? So many of your resources are underutilised because we have no information about the current status. So your car is underutilised when you're here. And if you want to rent it for two or three hours, that's good for the economy because it raises C-prime and therefore we need less resources, less cars, to create a sustainable economy, right? That's good for everybody. Now, it's bad news for the car company, bad news for the rental company, but it's a free enterprise system. We should celebrate these sort of things, right? That's what we're about. So we're here at the MIT Chief Data Officer and Information Quality Symposium. So I wanted to ask about the role of the CDO and how a CDO or equivalent type of position can help an enterprise actually start this process of digitising their capital assets. Do you outline in your keynote three core areas where the CDO could help? Maybe if you could share with our audience what those are and then we could talk a little bit about how they actually go about doing this. Yes, I think the first thing is for the organisation to understand its capital conversion process. And I gave a model of a prestige car company. This is, if you think, the business model of the company. Now, until that's understood, the CDO can't really do anything because if you don't know the purpose of the company or how it's converting capital, you can't decide which capital you should provide. And in many cases, when I talk to people who help develop information systems strategies, they say there's often a gap, there is no strategy for the organisation. So I think if they can work with the organisation to work out what the capital conversion system is for that company, then what are the prime capitals? And then start to say, how do we hone in to make the conversion between one form of capital to another, the prime ones, more effective? What do we need to know about them, right? And then how might we digitise capital to improve the capital conversion process? So first of all, work out what the organisation's strategy. And that identifies what needs to be digitised. Then once you've done that, you implement the plan, right? You make it happen and you collect the data and you ensure that there's integrity and quality and all of the sort of security things you need. And then, and I think Jeannie alerted to this, is you then go through the process of making certain that the organisation exploits it fully. And she's done research that shows that many times companies create these systems, but they don't get every last dollar and send out of them, right? And if you've spent all that money, then you have to reap it. Yeah, I mean, I would agree with that from some of the research we've done at Wikibon. We find that there's a lot of investment going on in technology and services to support some of these so-called big data initiatives, but they're not getting the full value because it's that last mile. It's actually getting people to either change the way they make decisions or take actions or in some cases, actually you've got to infuse your business processes with these new approaches to making decisions. So one thing you didn't mention, and we talked a little bit before we went on air, was I wanted to get your opinion on the role of a CDO, specifically, but more generally in an organisation, what are the challenges around kind of the ethical use of data, essentially your digitised capital, and some of the risks associated with that. We hear a lot about data governance, information qualities, and the title of this symposium we're here at. What role, what is your opinion on the risks associated with digitising capital? Well, I think there's any change in the risk because we've been digitising capital for some years. The problem is, is so much more capital is now digitised, there is much more to manage, right? And of course, once you digitise a lot of capital, there's much more advantage to be gained by being able to access that capital, right? So very simple, if you've got your intellectual property and previously you stored it on paper and now you digitise it and put it on a disk system or a server somewhere, and then that's a big incentive for people outside to come and grab it. So those issues are amplified, but the core problem of preventing unauthorised access doesn't change, right? It's been there for a long time. We just have to continue to be better at managing that risk against the people who are trying to continually invade the organisation. I know you have a special interest in energy, and I want to ask you about, there are some office buildings now in Europe that are completely off the grid. They are actually net energy generators by using solar and wind power and such. Clearly it's possible now to operate off the grid, and if this were to happen on a large scale, what do you see as being the ultimate, the economic impact, some of the economic implications of large amounts of capital being taken off of the grid and essentially allowed to move around geographically wherever the companies want to position them? Yeah, you can't totally move off the grid without a lot of cost, because solar power and wind power is intermittent. You must have some base generating power that provides continual support for emergency type services. So I think we will still need a grid, but we will need less of a grid and a smarter grid so that you can dynamically start to think about which things do I power now? One of the, I've been in Europe this summer, went to an energy conference there. One of the big issues in Germany is, when do you power the one million electric cars given all of this intermittency in the system? So I think with this smart grid, we will have much more flexibility in how we use electricity. So you want to wash your dishes, but you don't have to wash them now, we can do that later. And so if we're getting more electricity generated locally, we have this massive grid system and that overhead now has to be handled somehow or other. And so the overhead of that is gonna appear in your bills, but you might be paying less for electricity and this is the problem that worries the utility companies because when people go off grid, that overhead is now left for everybody else to pay. And if you're the last one on the grid, your electricity bill's gonna be very expensive. So we have to work out how to do that transition and some of the utilities are rejecting that. So in some states, you cannot feed your solar power into the grid system, right? They won't allow it. And this really is an intrinsic characteristic of transitioning to a more efficient economy is there is entrenched opposition from those institutions that are threatened. Yes, exactly. And they're large organizations and they have tremendous lobbying power and a lot of influence and they will resist it. But ultimately, are you an optimist? Oh, I don't think we have any other alternatives than to move to power sources that don't generate CO2. I mean, unless we want to destroy the environment, but the interesting thing is companies have worked this out. A lot of large companies now say sustainability is our future. In fact, one of my papers, I argue, we're shifting from a customer service dominant logic to a sustainability dominant logic. And so you'll get someone like the CEO of Coca-Cola saying, we don't have a chief sustainability officer. I'm the chief sustainability officer. This is a problem for the whole company. The chairman of Hewlett Packard has come out and said, our future is in building systems to support sustainability. So I think the organizations have got it. The politicians haven't, not all of them, some of them have. But I think that's the great advantage of the system we live in that the organizations see the problem, they think long-term and we're going to solve it. Maybe not as fast as we need to, but we're working towards it. Well, yeah, I'm glad you're an optimist. I think if we all need to be, we see the forecast and they sometimes look a little dire, but I agree with you that many of the organizations and enterprises around the world are starting to get it. I think there's certainly still some in the US specifically that are fighting this trend, but I think as more data comes online that's kind of showing the real impact of climate change, I think more and more will start to get it. Yeah, I think for them, the data they see is, it hits their bottom line. Well, right, that was one of my next questions. How do we incentivize those who don't get it at this point to move in this direction? Well, the economists say the simplest thing to do is have a carbon tax, because the problem with carbon-based fuels is they create the problem and they don't pay the full costs of it. So we all have to pay the costs of pollution and things like that, but it's an externality. If you tax pollution so that those who use polluting products pay the full cost, then there's an opportunity for alternatives to come into the marketplace. But while we in effect subsidize those, then you squeeze out the opportunities for others to exist in the marketplace. One of the interesting discussions that was presented at this energy conference in Germany was the German government dictated that would be wind and solar power. And one of the economists said that was a lousy decision. They should have just set up a carbon tax and then let the market work out what the good solutions are. And in fact, Germany's paid a lot of money for its system. On some days, Germany generates far more electricity than it can use. And Holland and Poland get paid to take electricity. They think this is a wonderful system, right? Of course, we're about to see in this country or we're in the middle of a large-scale move to natural gas because of the new opportunities opened up by shale exploration. In fact, is that going to put off other sustainability initiatives that we should be making now? Yeah, I think we got lucky. We got lucky with shale and burning natural gas doesn't produce as many emissions. And it's going to drive the coal industry, is driving the coal industry out. But eventually, we're going to have to switch to a carbon-neutral system. Well, I guess my question is, is that buying us time to develop sustainable resources or is it putting off the problem further? It's doing a bit of both, actually. It gives us a bit more breathing space, but it doesn't force us to address the problem immediately, right? Which we're going to have to do at some stage. Now, if you look at what's happening, the US has become very energy efficient. It's places like China that present the major problem. I don't know if you've ever been to China, but you arrive in Beijing, you taste the air immediately, right? Yeah, it's a black cloud. And you don't see much. And China has to get out of that, right? Right, well, I think the argument, I guess, in the developing world as well, we didn't benefit from kind of one of the, maybe the first or two ways of the industrial evolution, and now it's our turn. And really, we're the ones, and this climate change has really been created by some of the more developed nations. How do you fix that problem? Yeah, that's the response of the developing economies that they need their turn to be wealthy, but their timing is pretty bad because this is a global problem.  Right. And so I think they have a valid case, but there's a much bigger argument and that is we're talking about the economic impact upon the world, right? And if every economy starts to suffer, China suffers as well. And also, they've got a large middle class now who don't want pollution. I've taught in China a couple of times, and people there are allowed to criticise the government for pollution. You can't criticise actions into bad and a few other things, but you can complain about pollution. So the government knows they have a problem. Interesting. So we only have time for one more question. We'll have to hear what's on your roadmap in terms of research. Are you going to be building out your thesis around the digitisation of capital? What's kind of on your roadmap? Yes, so I'm working on this in a practical way. So with the shipping industry in Europe, we were applying some of these ideas to help the shipping companies and the other stakeholders understand what's going on. In parallel with this, we're working on the idea of digital data streams and what sort of opportunities they create and how we can move decision-making to real-time by letting entrepreneurs get access to digital data streams in some standard format and with standard APIs to create all sorts of services that we can't imagine at this stage. So in the shipping industry is saying, put everything online, stream everything, control who has access to it and then let the market provide you new sorts of services so you can be more efficient. You can reduce your energy, increase safety and become more sustainable. So that's what I'm going to work on over the next couple of years, I think, unless some other problem lands on my desk that looks just too interesting to put us off. Well, I hope that because I'm interested in seeing the outcome of that research, very interesting. So Dr. Rick Watson from the University of Georgia, thank you so much for joining us on theCUBE. Appreciate it. We hope we can have you back some time again soon. Thank you. Thanks for the opportunity. You can see it.


Hey everyone, welcome to figure fantasy. He's a big dipper here with manipulation. We'll start off with our hard stage and let's see my lineup. Okay, so not much change with the previous lineup. Using the same strategy almost. Just wanted to use Yamazaki up there. And Sanada up front, Diouchan as usual. This stage is actually quite easy to clear. I'm not sure why they dubbed this as hard. But clearing this in what? 12 seconds? Thank you guys, so next off. Okay, so next would be your torment stage and let's see what I have. Again, almost the same lineup as the previous one. I just included here Midori, Yamazaki's here. And let's join them for this party. So just have to interrupt someone. Not specifically White Tile, but anyone casting their skill. Clear the stage within 25 seconds or even, not even 20. So I was wondering why some of the stages now are so easy. So there you go. Okay guys, thank you very much for staying this far.  This is the Warden and I'm out of here.


Have you noticed there's been a lot of talk circulating around social media about watching out for red flags and cutting off toxic people from your life? Lately, the cancel culture of today has made us all more accountable than ever for how we act online and in real life. The problem with being toxic, however, is that you can be toxic without even knowing it or doing it intentionally. That's why it's important for all of us to check ourselves from time to time and take a good honest look at how our actions impact those around us. Because no one's perfect. And while it might be a painful truth to admit, sometimes we even hurt the ones we love without meaning to. With that said, here's your worst personality trait based on your personality type. ISTP. The Virtuoso. Because of their spontaneous and relaxed nature, sometimes ISTPs get into trouble with their friends and family for being unreliable. They can be unapologetically stubborn about things and can easily come off as insensitive to others with their use of logic and rationality. They also tend to dislike commitment because they focus too much on the moment and are prone to risky, antagonistic behaviors when bored. ISFP. The Adventurer. Similar to the ISTP, ISFPs dislike for long-term commitments and plans make them too unpredictable to be dependable. They love to live in the moment, so they're not very adept at planning their futures or reflecting on their past. Thus, the ISFP's worst trait is that they struggle to learn from their mistakes. ESTP. The Entrepreneur. ISTPs are the life of the party because of their bold, fun-loving, spontaneous personality. That being said, they can sometimes be spontaneous to a fault and put themselves at risk in unfamiliar places or with unfamiliar people. Because once an ISTP sees an opportunity to fix a problem, to advance, to have fun, all rules and expectations fly out the window. ESFP. The Entertainer. Next, the ESFP has somewhat of the opposite problem with the ISTP. That is, they think about other people too much and not enough about themselves. They can become compulsive people-pleasers because of their emotionally sensitive and conflict-averse nature. ESTJ. The Executive. Dedicated and strong-willed. ESTJ's main strengths lie in their direct, logical, and reliable nature. But this can also be their downfall if they run with it too far and become too inflexible, closed-minded, and judgmental. They're also notorious for being workaholics who find it difficult to relax and express their true feelings. ISFJ. The Defender. Warm and protective. ISFJs are all about making people happy and keeping the peace. They value harmony and tradition. But at their worst, they can become extremely rigid in their views and their support for authority figures and the status quo. Reluctant to change and too altruistic, ISFJs struggle to break tradition and rock the boat, even when things clearly aren't working anymore. ESTJ. The Logistician. Responsible, dutiful, organized, and practical.  Their factual decision-making process makes them resistant to new ideas. If it ain't broke, why fix it? And usually do not respect people who are either willfully ignorant or too clouded by their own emotions to separate facts from opinions. ESFJ. The Console. The ultimate people person and ISFJ feels best when they have strong relationships with others, which makes them empathetic leaders and compassionate communicators. At their worst, however, ISFJs can use their keen sense of awareness of other people's emotions to manipulate or bully them. They are also notorious for caring too much about their social status and influence and rarely stepping out of their own comfort zones for fear of being too different. ENFP. The Campaigner. ENFPs are known as true free spirits because of how outgoing, open-minded, and enthusiastic they are about life. But these strengths can also be weaknesses as it makes them unfocused and disorganized. Their adventure as an idealistic nature also makes them restless at times and easily dissatisfied with their life. INFP. The Mediator. What makes INFPs unique is also their most fatal flaw, their strong sense of idealism. Quiet and unassuming on the outside, INFPs have a vibrant imagination, deep feelings, and a strong sense of passion. So much so that they often lose themselves in daydreams most of the time and tend to have too unrealistic of standards for themselves and others. In this way, INFPs are constantly setting themselves up for disappointment and self-criticism. ENFJ. The Protagonist. One of the best things about ENFJs is how empathetic and nurturing they are. Often our favorite mom friends, they have a natural talent for inspiring people and helping them reach their potential. But at their worst, ENFJs may hurt others in unintentional ways just to keep the harmony, like ignoring important issues or pressuring others to live up to their overly idealistic standards. INFJ. The Advocate. Similar to the ENFJ, INFJs always strive for perfection, but their efforts are more directed inwards with themselves than outwards. So it's no surprise then that their worst personality trait is their toxic perfectionism and overthinking. Most INFJs struggle with analysis paralysis, meaning that they get in their heads too much, that it often makes them get in their own way. They become indecisive and struggle to leave room for the beautiful messiness and spontaneity of real life and imperfect people. INTJ. The Architect. Although rational, self-sufficient, and extremely determined, INTJs who are too in touch with their thinking side and not enough with their feeling side often come across to others as arrogant, insensitive, overly critical, and dismissive of others. Unhealthy INTJs believe that they are superior to others and become aloof, selfish, and harsh because they think they have better things to do than care about other people's feelings all the time. ENTJ. The Commander. ENTJs are nicknamed the Commander because they're natural-born leaders. Although efficient, strong-willed, and strategic thinkers, ENTJs who aren't careful can become domineering, intolerant, cold, and ruthless. That's because unhealthy ENTJs no longer care about how their words or decisions affect those around them as long as it's in pursuit of their own goals and their obsession with efficiency. ENTP. The Debater. At their best, ENTJs balance a logical, rational mentality with an awareness of the needs of others. Enterprising, witty, and argumentative, ENTJs need to be careful not to seem like they're uncaring and just arguing for the sake of it. They can also be unabashedly critical towards others for being inefficient and incompetent and in times of emotional crisis will give unsolicited advice instead of comfort. INTP. The Logician. Because INTPs are so intellectual and independent, they're often difficult to get close to and may struggle to connect with others on a deep emotional level. Their worst personality trait is that they have a tendency to get so caught up in their own logic that they fail to show others emotional consideration. Because of this, social interactions aren't really their forte, as they can often seem sarcastic and condescending to those who don't understand them. So, do you agree with the things we've mentioned here? What are some strengths and weaknesses to your personality type? Let us know in the comments below. And until next time, don't forget to like and subscribe to our channel. Thanks, and see you in the next video, Psych2Goers!